From 9055dbbe659a92118ee1d134a2e9b79a3d0040c0 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Tue, 29 Aug 2023 21:29:26 +1000 Subject: [PATCH 001/496] Branch point for 20230827 breaking change. --- readme.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/readme.md b/readme.md index 5649ddfa09..c2fcda103e 100644 --- a/readme.md +++ b/readme.md @@ -1,3 +1,7 @@ +# THIS IS THE DEVELOP BRANCH + +Warning- This is the `develop` branch of QMK Firmware. You may encounter broken code here. Please see [Breaking Changes](https://docs.qmk.fm/#/breaking_changes) for more information. + # Quantum Mechanical Keyboard Firmware [![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) From 367b8e09d9c7d4aa62e49eedac0d66fb72414c38 Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Fri, 1 Sep 2023 07:20:24 +0800 Subject: [PATCH 002/496] is31fl3741: Allow changing config register (#21861) When not all SW pins are used, it's useful to disable those that aren't. Can reduce audible noise. ``` Layout: D7:D4 D3 D2:D1 D0 SWD LGC OSDE SSD SWS: SWx Setting. Change how many SW pins are active LGC: H/L Logic SSD: Software Shutdown Control ``` Signed-off-by: Daniel Schaefer --- drivers/led/issi/is31fl3741.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/led/issi/is31fl3741.c b/drivers/led/issi/is31fl3741.c index 70671c2a40..5c84ac2067 100644 --- a/drivers/led/issi/is31fl3741.c +++ b/drivers/led/issi/is31fl3741.c @@ -61,6 +61,10 @@ # define ISSI_PERSISTENCE 0 #endif +#ifndef ISSI_CONFIGURATION +# define ISSI_CONFIGURATION 0x01 +#endif + #ifndef ISSI_SWPULLUP # define ISSI_SWPULLUP PUR_32KR #endif @@ -162,7 +166,7 @@ void is31fl3741_init(uint8_t addr) { is31fl3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION); // Set to Normal operation - is31fl3741_write_register(addr, ISSI_REG_CONFIGURATION, 0x01); + is31fl3741_write_register(addr, ISSI_REG_CONFIGURATION, ISSI_CONFIGURATION); // Set Golbal Current Control Register is31fl3741_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT); From faa7c1a1d89f58dc5540df88c2ca231add63e37b Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 31 Aug 2023 22:34:28 -0700 Subject: [PATCH 003/496] 1UpKeyboards Pi60 Layout Additions (#21874) * [refactor] rename LAYOUT_60_ansi to LAYOUT_all * [enhancement] add LAYOUT_60_ansi * [enhancement] add LAYOUT_60_ansi_split_bs_rshift * [enhancement] add LAYOUT_60_ansi_tsangan * [enhancement] add LAYOUT_60_tsangan_hhkb * [enhancement] add LAYOUT_60_iso * [enhancement] add LAYOUT_60_iso_split_bs_rshift * [enhancement] add LAYOUT_60_iso_tsangan * [enhancement] add LAYOUT_60_iso_tsangan_split_bs_rshift * [enhancement] enable Community Layout support * [enhancement] add LAYOUT_60_hhkb * [enhancement] add LAYOUT_60_ansi_arrow * [enhancement] add LAYOUT_60_iso_arrow * [docs] add layout/matrix diagram --- keyboards/1upkeyboards/pi60/info.json | 784 +++++++++++++++++- .../pi60/keymaps/default/keymap.c | 8 +- .../1upkeyboards/pi60/keymaps/via/keymap.c | 20 +- keyboards/1upkeyboards/pi60/matrix_diagram.md | 60 ++ 4 files changed, 857 insertions(+), 15 deletions(-) create mode 100644 keyboards/1upkeyboards/pi60/matrix_diagram.md diff --git a/keyboards/1upkeyboards/pi60/info.json b/keyboards/1upkeyboards/pi60/info.json index 1f8bdb4592..2d3797c1a8 100644 --- a/keyboards/1upkeyboards/pi60/info.json +++ b/keyboards/1upkeyboards/pi60/info.json @@ -66,8 +66,19 @@ {"flags": 2, "x": 20, "y": 13} ] }, + "community_layouts": [ + "60_ansi", + "60_ansi_split_bs_rshift", + "60_ansi_tsangan", + "60_tsangan_hhkb", + "60_hhkb", + "60_ansi_arrow", + "60_iso", + "60_iso_split_bs_rshift", + "60_iso_tsangan" + ], "layouts": { - "LAYOUT_60_ansi": { + "LAYOUT_all": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, @@ -138,6 +149,777 @@ {"label": "Menu", "matrix": [4, 13], "x": 13, "y": 4}, {"label": "RCtrl", "matrix": [4, 14], "x": 14, "y": 4} ] + }, + "LAYOUT_60_ansi": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps", "matrix": [2, 15], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "LShift", "matrix": [3, 15], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "RShift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"label": "LCtrl", "matrix": [4, 15], "x": 0, "y": 4, "w": 1.25}, + {"label": "LGui", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "RAlt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "FN", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "RCtrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "BS", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [0, 14], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps", "matrix": [2, 15], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "LShift", "matrix": [3, 15], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "RShift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "FN", "matrix": [3, 14], "x": 14, "y": 3}, + + {"label": "LCtrl", "matrix": [4, 15], "x": 0, "y": 4, "w": 1.25}, + {"label": "LGui", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "RAlt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "FN", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "RCtrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps", "matrix": [2, 15], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "LShift", "matrix": [3, 15], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "RShift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"label": "LCtrl", "matrix": [4, 15], "x": 0, "y": 4, "w": 1.5}, + {"label": "LGui", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "FN", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Menu", "matrix": [4, 13], "x": 12.5, "y": 4}, + {"label": "RCtrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "BS", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [0, 14], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps", "matrix": [2, 15], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "LShift", "matrix": [3, 15], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "RShift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "FN", "matrix": [3, 14], "x": 14, "y": 3}, + + {"label": "LCtrl", "matrix": [4, 15], "x": 0, "y": 4, "w": 1.5}, + {"label": "LGui", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "FN", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Menu", "matrix": [4, 13], "x": 12.5, "y": 4}, + {"label": "RCtrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "BS", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [0, 14], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps", "matrix": [2, 15], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "LShift", "matrix": [3, 15], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "RShift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "FN", "matrix": [3, 14], "x": 14, "y": 3}, + + {"label": "LGui", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "FN", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Menu", "matrix": [4, 13], "x": 12.5, "y": 4} + ] + }, + "LAYOUT_60_ansi_arrow": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1}, + + {"label": "Caps", "matrix": [2, 15], "w": 1.75, "x": 0, "y": 2}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "LShift", "matrix": [3, 15], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.75}, + {"label": "RShift", "matrix": [3, 12], "x": 13, "y": 3}, + {"label": "FN", "matrix": [3, 14], "x": 14, "y": 3}, + + {"label": "LCtrl", "matrix": [4, 15], "x": 0, "y": 4, "w": 1.25}, + {"label": "LGui", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "RAlt", "matrix": [4, 10], "x": 10, "y": 4}, + {"label": "FN", "matrix": [4, 11], "x": 11, "y": 4}, + {"label": "Mid1U", "matrix": [4, 12], "x": 12, "y": 4}, + {"label": "Menu", "matrix": [4, 13], "x": 13, "y": 4}, + {"label": "RCtrl", "matrix": [4, 14], "x": 14, "y": 4} + ] + }, + "LAYOUT_60_iso": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + + {"label": "Caps", "matrix": [2, 15], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "ISO'", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"label": "LShift", "matrix": [3, 15], "x": 0, "y": 3, "w": 1.25}, + {"label": "ISO<>", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "RShift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"label": "LCtrl", "matrix": [4, 15], "x": 0, "y": 4, "w": 1.25}, + {"label": "LGui", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "RAlt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "FN", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "RCtrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "BS", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [0, 14], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + + {"label": "Caps", "matrix": [2, 15], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "ISO'", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"label": "LShift", "matrix": [3, 15], "x": 0, "y": 3, "w": 1.25}, + {"label": "ISO<>", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "RShift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "FN", "matrix": [3, 14], "x": 14, "y": 3}, + + {"label": "LCtrl", "matrix": [4, 15], "x": 0, "y": 4, "w": 1.25}, + {"label": "LGui", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "RAlt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "FN", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "RCtrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + + {"label": "Caps", "matrix": [2, 15], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "ISO'", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"label": "LShift", "matrix": [3, 15], "x": 0, "y": 3, "w": 1.25}, + {"label": "ISO<>", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "RShift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"label": "LCtrl", "matrix": [4, 15], "x": 0, "y": 4, "w": 1.5}, + {"label": "LGui", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "FN", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Menu", "matrix": [4, 13], "x": 12.5, "y": 4}, + {"label": "RCtrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "BS", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [0, 14], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + + {"label": "Caps", "matrix": [2, 15], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "ISO'", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"label": "LShift", "matrix": [3, 15], "x": 0, "y": 3, "w": 1.25}, + {"label": "ISO<>", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "RShift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "FN", "matrix": [3, 14], "x": 14, "y": 3}, + + {"label": "LCtrl", "matrix": [4, 15], "x": 0, "y": 4, "w": 1.5}, + {"label": "LGui", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "FN", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Menu", "matrix": [4, 13], "x": 12.5, "y": 4}, + {"label": "RCtrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_arrow": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + + {"label": "Caps", "matrix": [2, 15], "w": 1.75, "x": 0, "y": 2}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "ISO'", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"label": "LShift", "matrix": [3, 15], "x": 0, "y": 3, "w": 1.25}, + {"label": "ISO<>", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.75}, + {"label": "RShift", "matrix": [3, 12], "x": 13, "y": 3}, + {"label": "FN", "matrix": [3, 14], "x": 14, "y": 3}, + + {"label": "LCtrl", "matrix": [4, 15], "x": 0, "y": 4, "w": 1.25}, + {"label": "LGui", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "RAlt", "matrix": [4, 10], "x": 10, "y": 4}, + {"label": "FN", "matrix": [4, 11], "x": 11, "y": 4}, + {"label": "Mid1U", "matrix": [4, 12], "x": 12, "y": 4}, + {"label": "Menu", "matrix": [4, 13], "x": 13, "y": 4}, + {"label": "RCtrl", "matrix": [4, 14], "x": 14, "y": 4} + ] } } } diff --git a/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c b/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c index acf9ce1adb..8a83e83b52 100644 --- a/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_ansi( + [0] = LAYOUT_all( KC_ESC, 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_BSPC, KC_GRV, 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_TRNS, KC_ENT, @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_TRNS, KC_APP, KC_RCTL ), - [1] = LAYOUT_60_ansi( + [1] = LAYOUT_all( 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_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS, @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [2] = LAYOUT_60_ansi( + [2] = LAYOUT_all( 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [3] = LAYOUT_60_ansi( + [3] = LAYOUT_all( 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_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, diff --git a/keyboards/1upkeyboards/pi60/keymaps/via/keymap.c b/keyboards/1upkeyboards/pi60/keymaps/via/keymap.c index 80f9d3a9f6..e9af7a7138 100644 --- a/keyboards/1upkeyboards/pi60/keymaps/via/keymap.c +++ b/keyboards/1upkeyboards/pi60/keymaps/via/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_ansi( + [0] = LAYOUT_all( KC_ESC, 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_BSPC, KC_GRV, 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_TRNS, KC_ENT, @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_TRNS, KC_APP, KC_RCTL ), - [1] = LAYOUT_60_ansi( + [1] = LAYOUT_all( 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_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS, @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [2] = LAYOUT_60_ansi( + [2] = LAYOUT_all( 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [3] = LAYOUT_60_ansi( + [3] = LAYOUT_all( 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_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, @@ -50,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [4] = LAYOUT_60_ansi( + [4] = LAYOUT_all( 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_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, @@ -58,7 +58,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [5] = LAYOUT_60_ansi( + [5] = LAYOUT_all( 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_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, @@ -66,7 +66,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [6] = LAYOUT_60_ansi( + [6] = LAYOUT_all( 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_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, @@ -74,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [7] = LAYOUT_60_ansi( + [7] = LAYOUT_all( 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_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, @@ -82,7 +82,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [8] = LAYOUT_60_ansi( + [8] = LAYOUT_all( 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_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, @@ -90,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [9] = LAYOUT_60_ansi( + [9] = LAYOUT_all( 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_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, diff --git a/keyboards/1upkeyboards/pi60/matrix_diagram.md b/keyboards/1upkeyboards/pi60/matrix_diagram.md new file mode 100644 index 0000000000..2300245bdb --- /dev/null +++ b/keyboards/1upkeyboards/pi60/matrix_diagram.md @@ -0,0 +1,60 @@ +# Matrix Diagram for 1upkeyboards pi60 + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ ─ Switch or Encoder +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐ ┌─────┐ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │ │1D │ │1D │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter ┌──┴┬────┤ 1u/1.25u Split Enter ┌──┴─┬───┤ 1.25u/1u Split Enter +│2F │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │2C │ │ │2C │2D │ │2C │2D │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤ └───┴────┘ └───┴────┘ └────┴───┘ +│3F │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3E │─┐ +└────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴──────┴───┴───┘ │ +┌────────┐ ┌───┬──────┬───┐ │ +│3F │ 2.25u LShift 1u/1.75u/1u RShift │3B │3C │3E │─┼─ Switch or Encoder +└────────┘ └───┴──────┴───┘ │ + ┌───┐ ┌───┬───┐ │ + 1u/0.75u Gap/1u/1u RShift │3B │ │3C │3E │─┘ + └───┘ └───┴───┘ + +[Bottom Rows]──────────────────────────────────────────────── +────────────────────[6u & 6.25u Spacebar]──────────────────── +┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ +│4F │41 │42 │46 │4A │4B │4D │4E │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +┌─────┬───┬────┬──────────┬────┬────────┬────┬────┬───┬─────┐ +│4F │41 │42 │44 │46 │48 │4A │4B │4D │4E │ +└─────┴───┴────┴──────────┴────┴────────┴────┴────┴───┴─────┘ + ┌────────┬────┬──────────┬───┬───┬───┬───┬───┐ + │44 │46 │48 │4A │4B │4C │4D │4E │ + └────────┴────┴──────────┴───┴───┴───┴───┴───┘ + ┌───────────────────────┬───┬─────┬────┬────┐ + │46 │4A │4B │4D │4E │ + └───────────────────────┴───┴─────┴────┴────┘ + ┌───┬─────┬───┬─────┐ + │4A │4B │4D │4E │ + └───┴─────┴───┴─────┘ + +────────────────────────[7u Spacebar]──────────────────────── +┌────┬────┬─────┬───────────────────────────┬───┬───┬───┬───┐ +│4F │41 │42 │46 │4B │4C │4D │4E │ +└────┴────┴─────┴───────────────────────────┴───┴───┴───┴───┘ +┌─────┬───┬─────┬──────────┬─────┬──────────┬─────┬────┬────┐ +│4F │41 │42 │44 │46 │48 │4B │4D │4E │ +└─────┴───┴─────┴──────────┴─────┴──────────┴─────┴────┴────┘ + ┌───────────┬───┬───────────┬─────┬───┬─────┐ + │44 │46 │48 │4B │4D │4E │ + └───────────┴───┴───────────┴─────┴───┴─────┘ + └─ Switch or Encoder + +───────────────────────[10u Spacebar]──────────────────────── +┌────┬────┬───────────────────────────────────────┬────┬────┐ +│4F │41 │46 │4D │4E │ +└────┴────┴───────────────────────────────────────┴────┴────┘ +┌─────┬───┬───────────────────────────────────────┬───┬─────┐ +│4F │41 │46 │4D │4E │ +└─────┴───┴───────────────────────────────────────┴───┴─────┘ +``` From a74647c1fa6dc19a8aa5a5eed7eb08557c74c993 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 3 Sep 2023 12:24:52 +1000 Subject: [PATCH 004/496] Remove old `IS_LED_ON/OFF()` macros (#21878) --- tmk_core/protocol/host.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/tmk_core/protocol/host.h b/tmk_core/protocol/host.h index add408caf6..e4fb3a74f2 100644 --- a/tmk_core/protocol/host.h +++ b/tmk_core/protocol/host.h @@ -23,9 +23,6 @@ along with this program. If not, see . #include "host_driver.h" #include "led.h" -#define IS_LED_ON(leds, led_name) ((leds) & (1 << (led_name))) -#define IS_LED_OFF(leds, led_name) (~(leds) & (1 << (led_name))) - #ifdef __cplusplus extern "C" { #endif From dd887eae360098cd13939d252c772bb95735e0e9 Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Sun, 3 Sep 2023 20:56:02 +0800 Subject: [PATCH 005/496] [Core] Allow customizing PWM frequency (#21717) * [Core] Allow customizing PWM frequency Some frequencies can cause audible noise. Changing the frequency eliminates that. Signed-off-by: Daniel Schaefer * docs/feature-backlight: Mention PWM frequency Signed-off-by: Daniel Schaefer --------- Signed-off-by: Daniel Schaefer --- docs/feature_backlight.md | 1 + platforms/chibios/chibios_config.h | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/feature_backlight.md b/docs/feature_backlight.md index d032c33f18..2f9381e3dc 100644 --- a/docs/feature_backlight.md +++ b/docs/feature_backlight.md @@ -39,6 +39,7 @@ Add the following to your `config.h`: |`BACKLIGHT_LIMIT_VAL` |`255` |The maximum duty cycle of the backlight -- `255` allows for full brightness, any lower will decrease the maximum.| |`BACKLIGHT_DEFAULT_LEVEL` |`BACKLIGHT_LEVELS`|The default backlight level to use upon clearing the EEPROM | |`BACKLIGHT_DEFAULT_BREATHING`|*Not defined* |Whether to enable backlight breathing upon clearing the EEPROM | +|`BACKLIGHT_PWM_PERIOD` |2048Hz |Defaults to `BACKLIGHT_PWM_COUNTER_FREQUENCY / 2048`, which results in a PWM frequency of 2048Hz. | Unless you are designing your own keyboard, you generally should not need to change the `BACKLIGHT_PIN` or `BACKLIGHT_ON_STATE`. diff --git a/platforms/chibios/chibios_config.h b/platforms/chibios/chibios_config.h index 1f8a7842fe..f1636f9da0 100644 --- a/platforms/chibios/chibios_config.h +++ b/platforms/chibios/chibios_config.h @@ -37,7 +37,9 @@ # define BACKLIGHT_PAL_MODE (PAL_MODE_ALTERNATE_PWM | PAL_RP_PAD_DRIVE12 | PAL_RP_GPIO_OE) # endif # define BACKLIGHT_PWM_COUNTER_FREQUENCY 1000000 -# define BACKLIGHT_PWM_PERIOD BACKLIGHT_PWM_COUNTER_FREQUENCY / 2048 +# ifndef BACKLIGHT_PWM_PERIOD +# define BACKLIGHT_PWM_PERIOD BACKLIGHT_PWM_COUNTER_FREQUENCY / 2048 +# endif # ifndef AUDIO_PWM_PAL_MODE # define AUDIO_PWM_PAL_MODE (PAL_MODE_ALTERNATE_PWM | PAL_RP_PAD_DRIVE12 | PAL_RP_GPIO_OE) From 1b42d2ccfda1bdd0592187e24f03d061986cdf7d Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 4 Sep 2023 09:18:34 +1000 Subject: [PATCH 006/496] is31fl3218: driver naming cleanups (#21892) --- drivers/led/issi/is31fl3218.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/drivers/led/issi/is31fl3218.c b/drivers/led/issi/is31fl3218.c index 970e9a0be9..6072f6cecd 100644 --- a/drivers/led/issi/is31fl3218.c +++ b/drivers/led/issi/is31fl3218.c @@ -17,17 +17,17 @@ #include "i2c_master.h" // This is the full 8-bit address -#define ISSI_ADDRESS 0b10101000 +#define IS31FL3218_I2C_ADDRESS 0xA8 // These are the register addresses -#define ISSI_REG_SHUTDOWN 0x00 -#define ISSI_REG_PWM 0x01 -#define ISSI_REG_CONTROL 0x13 -#define ISSI_REG_UPDATE 0x16 -#define ISSI_REG_RESET 0x17 +#define IS31FL3218_REG_SHUTDOWN 0x00 +#define IS31FL3218_REG_PWM 0x01 +#define IS31FL3218_REG_CONTROL 0x13 +#define IS31FL3218_REG_UPDATE 0x16 +#define IS31FL3218_REG_RESET 0x17 // Default timeout if no I2C response -#define ISSI_TIMEOUT 100 +#define IS31FL3218_I2C_TIMEOUT 100 // Reusable buffer for transfers uint8_t g_twi_transfer_buffer[20]; @@ -40,35 +40,35 @@ bool g_pwm_buffer_update_required = false; void is31fl3218_write_register(uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; g_twi_transfer_buffer[1] = data; - i2c_transmit(ISSI_ADDRESS, g_twi_transfer_buffer, 2, ISSI_TIMEOUT); + i2c_transmit(IS31FL3218_I2C_ADDRESS, g_twi_transfer_buffer, 2, IS31FL3218_I2C_TIMEOUT); } void is31fl3218_write_pwm_buffer(uint8_t *pwm_buffer) { - g_twi_transfer_buffer[0] = ISSI_REG_PWM; + g_twi_transfer_buffer[0] = IS31FL3218_REG_PWM; memcpy(g_twi_transfer_buffer + 1, pwm_buffer, 18); - i2c_transmit(ISSI_ADDRESS, g_twi_transfer_buffer, 19, ISSI_TIMEOUT); + i2c_transmit(IS31FL3218_I2C_ADDRESS, g_twi_transfer_buffer, 19, IS31FL3218_I2C_TIMEOUT); } void is31fl3218_init(void) { // In case we ever want to reinitialize (?) - is31fl3218_write_register(ISSI_REG_RESET, 0x00); + is31fl3218_write_register(IS31FL3218_REG_RESET, 0x00); // Turn off software shutdown - is31fl3218_write_register(ISSI_REG_SHUTDOWN, 0x01); + is31fl3218_write_register(IS31FL3218_REG_SHUTDOWN, 0x01); // Set all PWM values to zero for (uint8_t i = 0; i < 18; i++) { - is31fl3218_write_register(ISSI_REG_PWM + i, 0x00); + is31fl3218_write_register(IS31FL3218_REG_PWM + i, 0x00); } // Enable all channels for (uint8_t i = 0; i < 3; i++) { - is31fl3218_write_register(ISSI_REG_CONTROL + i, 0b00111111); + is31fl3218_write_register(IS31FL3218_REG_CONTROL + i, 0b00111111); } // Load PWM registers and LED Control register data - is31fl3218_write_register(ISSI_REG_UPDATE, 0x01); + is31fl3218_write_register(IS31FL3218_REG_UPDATE, 0x01); } void is31fl3218_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { @@ -91,7 +91,7 @@ void is31fl3218_update_pwm_buffers(void) { if (g_pwm_buffer_update_required) { is31fl3218_write_pwm_buffer(g_pwm_buffer); // Load PWM registers and LED Control register data - is31fl3218_write_register(ISSI_REG_UPDATE, 0x01); + is31fl3218_write_register(IS31FL3218_REG_UPDATE, 0x01); } g_pwm_buffer_update_required = false; } From 1e3095f9cce45fab0a566e692b1ff1c2047cfa08 Mon Sep 17 00:00:00 2001 From: era <73109780+eerraa@users.noreply.github.com> Date: Mon, 4 Sep 2023 08:36:33 +0900 Subject: [PATCH 007/496] [Keyboard] Update era/divine (#21767) --- keyboards/era/divine/config.h | 20 ++++++++++++++++++++ keyboards/era/divine/halconf.h | 21 +++++++++++++++++++++ keyboards/era/divine/info.json | 9 +++++++-- keyboards/era/divine/mcuconf.h | 22 ++++++++++++++++++++++ keyboards/era/divine/readme.md | 4 ++-- 5 files changed, 72 insertions(+), 4 deletions(-) create mode 100644 keyboards/era/divine/config.h create mode 100644 keyboards/era/divine/halconf.h create mode 100644 keyboards/era/divine/mcuconf.h diff --git a/keyboards/era/divine/config.h b/keyboards/era/divine/config.h new file mode 100644 index 0000000000..e1083fe5e2 --- /dev/null +++ b/keyboards/era/divine/config.h @@ -0,0 +1,20 @@ +/* Copyright 2023 eerraa + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define BACKLIGHT_PWM_DRIVER PWMD0 +#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A \ No newline at end of file diff --git a/keyboards/era/divine/halconf.h b/keyboards/era/divine/halconf.h new file mode 100644 index 0000000000..5a527da781 --- /dev/null +++ b/keyboards/era/divine/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2023 eerraa + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next \ No newline at end of file diff --git a/keyboards/era/divine/info.json b/keyboards/era/divine/info.json index de87fd83e2..d02241da78 100644 --- a/keyboards/era/divine/info.json +++ b/keyboards/era/divine/info.json @@ -2,12 +2,17 @@ "manufacturer": "ERA", "keyboard_name": "DIVINE 1.0.0", "maintainer": "eerraa", + "backlight": { + "pin": "GP0", + "levels": 5 + }, "bootloader": "rp2040", "build": { "debounce_type": "sym_defer_pk" }, "diode_direction": "COL2ROW", "features": { + "backlight": true, "bootmagic": true, "command": false, "console": false, @@ -18,8 +23,8 @@ "indicators": { "caps_lock": "GP1", "num_lock": "GP2", - "scroll_lock": "GP3", - "on_state": 0 + "on_state": 0, + "scroll_lock": "GP3" }, "matrix_pins": { "cols": ["GP13", "GP12", "GP19", "GP20", "GP21", "GP22", "GP23", "GP24", "GP25", "GP26", "GP27", "GP28", "GP29", "GP18", "GP5", "GP6", "GP7"], diff --git a/keyboards/era/divine/mcuconf.h b/keyboards/era/divine/mcuconf.h new file mode 100644 index 0000000000..7698b5d139 --- /dev/null +++ b/keyboards/era/divine/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2023 eerraa + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef RP_PWM_USE_PWM0 +#define RP_PWM_USE_PWM0 TRUE \ No newline at end of file diff --git a/keyboards/era/divine/readme.md b/keyboards/era/divine/readme.md index decc7e3d31..3049e3b840 100644 --- a/keyboards/era/divine/readme.md +++ b/keyboards/era/divine/readme.md @@ -3,7 +3,7 @@ DIVINE Keyboard * Keyboard Maintainer: [ERA](https://github.com/eerraa) -* Hardware Supported: RP2040 +* Hardware Supported: DIVINE 1.0.0 PCB * Hardware Availability: [ERA](https://github.com/eerraa) Make example for this keyboard (after setting up your build environment): @@ -21,5 +21,5 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at ESC(0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Short the reset hole of the PCB twice within 1 second. +* **Physical reset button**: Briefly short the `RESET` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file From 41bd4e35a09cc50f45112074d2b776254a3a17f8 Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 4 Sep 2023 10:19:59 +1000 Subject: [PATCH 008/496] Clean up RGB LED type (#21859) --- docs/feature_rgblight.md | 6 +-- drivers/led/apa102.c | 8 +-- drivers/led/apa102.h | 2 +- drivers/ws2812.h | 2 +- keyboards/1k/keymaps/default/rgblite.h | 2 +- keyboards/1k/keymaps/media/rgblite.h | 2 +- .../super16/keymaps/15game/keymap.c | 2 +- .../25keys/zinc/keymaps/ginjake/keymap.c | 8 +-- .../clueboard/66/keymaps/magicmonty/keymap.c | 6 +-- keyboards/dp60/keymaps/indicator/indicator.c | 4 +- keyboards/dp60/keymaps/indicator/led_driver.c | 2 +- keyboards/ergodox_ez/led_i2c.c | 2 +- .../lovelive9/keymaps/default/keymap.c | 20 ++++---- keyboards/handwired/promethium/rgbsps.c | 2 +- keyboards/hineybush/hbcp/hbcp.c | 14 +++--- .../hineybush/hbcp/keymaps/hiney/keymap.c | 12 ++--- keyboards/ibm/model_m/mschwingen/mschwingen.c | 22 ++++---- .../niu_mini/keymaps/xtonhasvim/keymap.c | 2 +- .../levinson/keymaps/xtonhasvim/keymap.c | 2 +- .../ave/ortho/keymaps/default/keymap.c | 4 +- .../ave/staggered/keymaps/default/keymap.c | 4 +- keyboards/kprepublic/bm60hsrgb/rev2/rev2.c | 2 +- .../kprepublic/bm60hsrgb_iso/rev2/rev2.c | 2 +- .../kprepublic/bm60hsrgb_poker/rev2/rev2.c | 2 +- .../manyboard/macro/keymaps/default/keymap.c | 6 +-- .../manyboard/macro/keymaps/via/keymap.c | 6 +-- keyboards/matrix/abelx/abelx.c | 2 +- keyboards/matrix/m20add/rgb_ring.c | 2 +- keyboards/matrix/noah/noah.c | 2 +- keyboards/mxss/mxss_frontled.c | 2 +- keyboards/mxss/rgblight.c | 46 ++++++++--------- keyboards/neson_design/700e/700e.c | 8 +-- keyboards/neson_design/n6/n6.c | 4 +- keyboards/neson_design/nico/nico.c | 4 +- keyboards/oddforge/vea/ws2812_custom.c | 6 +-- keyboards/rgbkb/pan/pan.c | 2 +- keyboards/tetris/keymaps/default/keymap.c | 34 ++++++------- .../minivan/keymaps/halvves/keymap.c | 28 +++++------ .../minivan/keymaps/jetpacktuxedo/keymap.c | 8 +-- .../minivan/keymaps/josjoha/keymap.c | 20 ++++---- .../v60_type_r/keymaps/xtonhasvim/keymap.c | 2 +- keyboards/wilba_tech/wt_rgb_backlight.c | 2 +- keyboards/work_louder/rgb_functions.c | 2 +- keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c | 2 +- .../xd002/keymaps/multilayer_rgb/rgblite.h | 2 +- .../xiudi/xd002/keymaps/rgb_lite/rgblite.h | 2 +- keyboards/xiudi/xd75/keymaps/odyssey/keymap.c | 8 +-- keyboards/zykrah/fuyu/keymaps/via/keymap.c | 2 +- platforms/avr/drivers/ws2812_bitbang.c | 4 +- platforms/avr/drivers/ws2812_i2c.c | 4 +- .../drivers/vendor/RP/RP2040/ws2812_vendor.c | 2 +- platforms/chibios/drivers/ws2812_bitbang.c | 2 +- platforms/chibios/drivers/ws2812_pwm.c | 2 +- platforms/chibios/drivers/ws2812_spi.c | 4 +- quantum/color.c | 2 +- quantum/color.h | 37 +++----------- quantum/rgb_matrix/rgb_matrix_drivers.c | 4 +- quantum/rgblight/rgblight.c | 50 +++++++++---------- quantum/rgblight/rgblight.h | 8 +-- users/curry/rgb_lighting_user.c | 2 +- users/xtonhasvim/fancylighting.c | 4 +- users/xtonhasvim/fancylighting.h | 2 +- users/zer09/lights.h | 2 +- 63 files changed, 222 insertions(+), 243 deletions(-) diff --git a/docs/feature_rgblight.md b/docs/feature_rgblight.md index 39b7e6a6f1..2bdfe6a7cf 100644 --- a/docs/feature_rgblight.md +++ b/docs/feature_rgblight.md @@ -370,9 +370,9 @@ If you need to change your RGB lighting in code, for example in a macro to chang Example: ```c -sethsv(HSV_WHITE, (LED_TYPE *)&led[0]); // led 0 -sethsv(HSV_RED, (LED_TYPE *)&led[1]); // led 1 -sethsv(HSV_GREEN, (LED_TYPE *)&led[2]); // led 2 +sethsv(HSV_WHITE, (rgb_led_t *)&led[0]); // led 0 +sethsv(HSV_RED, (rgb_led_t *)&led[1]); // led 1 +sethsv(HSV_GREEN, (rgb_led_t *)&led[2]); // led 2 rgblight_set(); // Utility functions do not call rgblight_set() automatically, so they need to be called explicitly. ``` diff --git a/drivers/led/apa102.c b/drivers/led/apa102.c index 766d8cd2eb..87db19523c 100644 --- a/drivers/led/apa102.c +++ b/drivers/led/apa102.c @@ -61,18 +61,18 @@ void static apa102_end_frame(uint16_t num_leds); void static apa102_send_frame(uint8_t red, uint8_t green, uint8_t blue, uint8_t brightness); void static apa102_send_byte(uint8_t byte); -void apa102_setleds(LED_TYPE *start_led, uint16_t num_leds) { - LED_TYPE *end = start_led + num_leds; +void apa102_setleds(rgb_led_t *start_led, uint16_t num_leds) { + rgb_led_t *end = start_led + num_leds; apa102_start_frame(); - for (LED_TYPE *led = start_led; led < end; led++) { + for (rgb_led_t *led = start_led; led < end; led++) { apa102_send_frame(led->r, led->g, led->b, apa102_led_brightness); } apa102_end_frame(num_leds); } // Overwrite the default rgblight_call_driver to use apa102 driver -void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) { +void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds) { apa102_setleds(start_led, num_leds); } diff --git a/drivers/led/apa102.h b/drivers/led/apa102.h index 58cf020c1e..cd0a19d445 100644 --- a/drivers/led/apa102.h +++ b/drivers/led/apa102.h @@ -37,5 +37,5 @@ extern uint8_t apa102_led_brightness; * - Set the data-out pin as output * - Send out the LED data */ -void apa102_setleds(LED_TYPE *start_led, uint16_t num_leds); +void apa102_setleds(rgb_led_t *start_led, uint16_t num_leds); void apa102_set_brightness(uint8_t brightness); diff --git a/drivers/ws2812.h b/drivers/ws2812.h index 8750b0110e..1527df23d3 100644 --- a/drivers/ws2812.h +++ b/drivers/ws2812.h @@ -73,4 +73,4 @@ * - Send out the LED data * - Wait 50us to reset the LEDs */ -void ws2812_setleds(LED_TYPE *ledarray, uint16_t number_of_leds); +void ws2812_setleds(rgb_led_t *ledarray, uint16_t number_of_leds); diff --git a/keyboards/1k/keymaps/default/rgblite.h b/keyboards/1k/keymaps/default/rgblite.h index e64f49ee0a..29d684ac08 100644 --- a/keyboards/1k/keymaps/default/rgblite.h +++ b/keyboards/1k/keymaps/default/rgblite.h @@ -7,7 +7,7 @@ #include "color.h" static inline void rgblite_setrgb(RGB rgb) { - LED_TYPE leds[RGBLED_NUM] = {{.r = rgb.r, .g = rgb.g, .b = rgb.b}}; + rgb_led_t leds[RGBLED_NUM] = {{.r = rgb.r, .g = rgb.g, .b = rgb.b}}; ws2812_setleds(leds, RGBLED_NUM); } diff --git a/keyboards/1k/keymaps/media/rgblite.h b/keyboards/1k/keymaps/media/rgblite.h index e64f49ee0a..29d684ac08 100644 --- a/keyboards/1k/keymaps/media/rgblite.h +++ b/keyboards/1k/keymaps/media/rgblite.h @@ -7,7 +7,7 @@ #include "color.h" static inline void rgblite_setrgb(RGB rgb) { - LED_TYPE leds[RGBLED_NUM] = {{.r = rgb.r, .g = rgb.g, .b = rgb.b}}; + rgb_led_t leds[RGBLED_NUM] = {{.r = rgb.r, .g = rgb.g, .b = rgb.b}}; ws2812_setleds(leds, RGBLED_NUM); } diff --git a/keyboards/1upkeyboards/super16/keymaps/15game/keymap.c b/keyboards/1upkeyboards/super16/keymaps/15game/keymap.c index 5988a7cf0e..e92a9fc10d 100644 --- a/keyboards/1upkeyboards/super16/keymaps/15game/keymap.c +++ b/keyboards/1upkeyboards/super16/keymaps/15game/keymap.c @@ -85,7 +85,7 @@ uint8_t remap[16] = { void refresh_leds(void) { for (uint8_t index = 0; index < 16; ++index) { uint8_t tile = tiles[index]; - setrgb(r[tile], g[tile], b[tile], (LED_TYPE *)&led[remap[index]]); + setrgb(r[tile], g[tile], b[tile], (rgb_led_t *)&led[remap[index]]); } rgblight_set(); } diff --git a/keyboards/25keys/zinc/keymaps/ginjake/keymap.c b/keyboards/25keys/zinc/keymaps/ginjake/keymap.c index b7d0e5c93a..5cadafb4be 100644 --- a/keyboards/25keys/zinc/keymaps/ginjake/keymap.c +++ b/keyboards/25keys/zinc/keymaps/ginjake/keymap.c @@ -341,10 +341,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { //キー毎に時間差で色が変化していく if (aqours_next_color_timer_count % NEXT_CHANGE_TARGET_TIME == 0) { if (target_col < MATRIX_COLS) { - sethsv(aqours_h[aqours_num], aqours_s[aqours_num], aqours_v[aqours_num], (LED_TYPE *)&led[target_col]); - sethsv(aqours_h[aqours_num], aqours_s[aqours_num], aqours_v[aqours_num], (LED_TYPE *)&led[11 - target_col]); - sethsv(aqours_h[aqours_num], aqours_s[aqours_num], aqours_v[aqours_num], (LED_TYPE *)&led[12 + target_col]); - sethsv(aqours_h[aqours_num], aqours_s[aqours_num], aqours_v[aqours_num], (LED_TYPE *)&led[23 - target_col]); + sethsv(aqours_h[aqours_num], aqours_s[aqours_num], aqours_v[aqours_num], (rgb_led_t *)&led[target_col]); + sethsv(aqours_h[aqours_num], aqours_s[aqours_num], aqours_v[aqours_num], (rgb_led_t *)&led[11 - target_col]); + sethsv(aqours_h[aqours_num], aqours_s[aqours_num], aqours_v[aqours_num], (rgb_led_t *)&led[12 + target_col]); + sethsv(aqours_h[aqours_num], aqours_s[aqours_num], aqours_v[aqours_num], (rgb_led_t *)&led[23 - target_col]); target_col++; rgblight_set(); } diff --git a/keyboards/clueboard/66/keymaps/magicmonty/keymap.c b/keyboards/clueboard/66/keymaps/magicmonty/keymap.c index 238147537d..2a0cf1509f 100644 --- a/keyboards/clueboard/66/keymaps/magicmonty/keymap.c +++ b/keyboards/clueboard/66/keymaps/magicmonty/keymap.c @@ -172,7 +172,7 @@ void clueboard_set_midi_led(uint8_t base_oct, uint8_t val) uint8_t sat = 255; for (uint8_t i = 0; i < RGBLED_NUM; i++) { - sethsv(oct_hues[base_oct], sat, val, (LED_TYPE *)&led[i]); + sethsv(oct_hues[base_oct], sat, val, (rgb_led_t *)&led[i]); } uint8_t next_oct = base_oct < MAX_OCT ? base_oct + 1 : base_oct; @@ -183,11 +183,11 @@ void clueboard_set_midi_led(uint8_t base_oct, uint8_t val) for (uint8_t i = 0; i < 3; i++) { - sethsv(next_hue, next_sat, next_val, (LED_TYPE *)&led[i]); + sethsv(next_hue, next_sat, next_val, (rgb_led_t *)&led[i]); } for (uint8_t i = 11; i < 14; i++) { - sethsv(next_hue, next_sat, next_val, (LED_TYPE *)&led[i]); + sethsv(next_hue, next_sat, next_val, (rgb_led_t *)&led[i]); } rgblight_set(); diff --git a/keyboards/dp60/keymaps/indicator/indicator.c b/keyboards/dp60/keymaps/indicator/indicator.c index 683ae3625a..02450ce68d 100644 --- a/keyboards/dp60/keymaps/indicator/indicator.c +++ b/keyboards/dp60/keymaps/indicator/indicator.c @@ -70,9 +70,9 @@ void keyboard_post_init_user(void) { extern rgblight_config_t rgblight_config; extern void rgblight_layers_write(void); -extern void indicator_write(LED_TYPE *start_led, uint8_t num_leds); +extern void indicator_write(rgb_led_t *start_led, uint8_t num_leds); -void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) +void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds) { ws2812_setleds(start_led, RGBLED_NUM-RGB_INDICATOR_NUM); diff --git a/keyboards/dp60/keymaps/indicator/led_driver.c b/keyboards/dp60/keymaps/indicator/led_driver.c index 677eb8af57..b31e2daacd 100644 --- a/keyboards/dp60/keymaps/indicator/led_driver.c +++ b/keyboards/dp60/keymaps/indicator/led_driver.c @@ -20,7 +20,7 @@ #define ws2812_setleds_pin indicator_setleds_pin #include "ws2812_bitbang.c" -void indicator_write(LED_TYPE *start_led, uint8_t num_leds) +void indicator_write(rgb_led_t *start_led, uint8_t num_leds) { indicator_setleds(start_led, num_leds); } diff --git a/keyboards/ergodox_ez/led_i2c.c b/keyboards/ergodox_ez/led_i2c.c index fe40ab797e..23ef91b74f 100644 --- a/keyboards/ergodox_ez/led_i2c.c +++ b/keyboards/ergodox_ez/led_i2c.c @@ -22,7 +22,7 @@ along with this program. If not, see . # include "ergodox_ez.h" -void rgblight_call_driver(LED_TYPE *led, uint8_t led_num) { +void rgblight_call_driver(rgb_led_t *led, uint8_t led_num) { i2c_init(); i2c_start(0x84, ERGODOX_EZ_I2C_TIMEOUT); int i = 0; diff --git a/keyboards/handwired/lovelive9/keymaps/default/keymap.c b/keyboards/handwired/lovelive9/keymaps/default/keymap.c index 605f722f44..6d863449fe 100644 --- a/keyboards/handwired/lovelive9/keymaps/default/keymap.c +++ b/keyboards/handwired/lovelive9/keymaps/default/keymap.c @@ -154,15 +154,15 @@ int aqours_color_v[] = {255, 255, 255, 255, 255, 255, 200, 255, 255}; void LED_default_set(void) { - sethsv(aqours_color_h[2], aqours_color_s[2], aqours_color_v[2], (LED_TYPE *)&led[0]); - sethsv(aqours_color_h[7], aqours_color_s[7], aqours_color_v[7], (LED_TYPE *)&led[1]); - sethsv(aqours_color_h[1], aqours_color_s[1], aqours_color_v[1], (LED_TYPE *)&led[2]); - sethsv(aqours_color_h[5], aqours_color_s[5], aqours_color_v[5], (LED_TYPE *)&led[3]); - sethsv(aqours_color_h[8], aqours_color_s[8], aqours_color_v[8], (LED_TYPE *)&led[4]); - sethsv(aqours_color_h[6], aqours_color_s[6], aqours_color_v[6], (LED_TYPE *)&led[5]); - sethsv(aqours_color_h[0], aqours_color_s[0], aqours_color_v[0], (LED_TYPE *)&led[6]); - sethsv(aqours_color_h[4], aqours_color_s[4], aqours_color_v[4], (LED_TYPE *)&led[7]); - sethsv(aqours_color_h[3], aqours_color_s[3], aqours_color_v[3], (LED_TYPE *)&led[8]); + sethsv(aqours_color_h[2], aqours_color_s[2], aqours_color_v[2], (rgb_led_t *)&led[0]); + sethsv(aqours_color_h[7], aqours_color_s[7], aqours_color_v[7], (rgb_led_t *)&led[1]); + sethsv(aqours_color_h[1], aqours_color_s[1], aqours_color_v[1], (rgb_led_t *)&led[2]); + sethsv(aqours_color_h[5], aqours_color_s[5], aqours_color_v[5], (rgb_led_t *)&led[3]); + sethsv(aqours_color_h[8], aqours_color_s[8], aqours_color_v[8], (rgb_led_t *)&led[4]); + sethsv(aqours_color_h[6], aqours_color_s[6], aqours_color_v[6], (rgb_led_t *)&led[5]); + sethsv(aqours_color_h[0], aqours_color_s[0], aqours_color_v[0], (rgb_led_t *)&led[6]); + sethsv(aqours_color_h[4], aqours_color_s[4], aqours_color_v[4], (rgb_led_t *)&led[7]); + sethsv(aqours_color_h[3], aqours_color_s[3], aqours_color_v[3], (rgb_led_t *)&led[8]); rgblight_set(); @@ -171,7 +171,7 @@ void LED_default_set(void) { void LED_layer_set(int aqours_index) { for (int c = 0; c < 9; c++) { - sethsv(aqours_color_h[aqours_index], aqours_color_s[aqours_index], aqours_color_v[aqours_index], (LED_TYPE *)&led[c]); + sethsv(aqours_color_h[aqours_index], aqours_color_s[aqours_index], aqours_color_v[aqours_index], (rgb_led_t *)&led[c]); } rgblight_set(); } diff --git a/keyboards/handwired/promethium/rgbsps.c b/keyboards/handwired/promethium/rgbsps.c index f439876911..957726e775 100644 --- a/keyboards/handwired/promethium/rgbsps.c +++ b/keyboards/handwired/promethium/rgbsps.c @@ -1,7 +1,7 @@ #include "ws2812.h" #include "rgbsps.h" -cRGB led[RGBSPS_NUM]; +rgb_led_t led[RGBSPS_NUM]; void rgbsps_set(uint8_t index, uint8_t r, uint8_t g, uint8_t b) { led[index].r = r; diff --git a/keyboards/hineybush/hbcp/hbcp.c b/keyboards/hineybush/hbcp/hbcp.c index 7d0f5ecf73..df17650f27 100644 --- a/keyboards/hineybush/hbcp/hbcp.c +++ b/keyboards/hineybush/hbcp/hbcp.c @@ -49,19 +49,19 @@ bool led_update_kb(led_t led_state) { bool res = led_update_user(led_state); if (res) { if (led_state.caps_lock) { - sethsv_raw(HSV_CAPS, (LED_TYPE *)&led[0]); + sethsv_raw(HSV_CAPS, (rgb_led_t *)&led[0]); } else { - sethsv(HSV_BLACK, (LED_TYPE *)&led[0]); + sethsv(HSV_BLACK, (rgb_led_t *)&led[0]); } if (led_state.num_lock) { - sethsv_raw(HSV_NLCK, (LED_TYPE *)&led[1]); + sethsv_raw(HSV_NLCK, (rgb_led_t *)&led[1]); } else { - sethsv(HSV_BLACK, (LED_TYPE *)&led[1]); + sethsv(HSV_BLACK, (rgb_led_t *)&led[1]); } if (led_state.scroll_lock) { - sethsv_raw(HSV_SCRL, (LED_TYPE *)&led[2]); + sethsv_raw(HSV_SCRL, (rgb_led_t *)&led[2]); } else { - sethsv(HSV_BLACK, (LED_TYPE *)&led[2]); + sethsv(HSV_BLACK, (rgb_led_t *)&led[2]); } rgblight_set(); } @@ -83,7 +83,7 @@ void keyboard_post_init_user(void) { __attribute__ ((weak)) void hbcp_sethsv_range(uint8_t hue, uint8_t sat, uint8_t val, uint8_t start, uint8_t end) { - LED_TYPE tmp_led; + rgb_led_t tmp_led; sethsv_raw(hue, sat, val, &tmp_led); for (uint8_t i = start; i < end; i++) { led[i] = tmp_led; diff --git a/keyboards/hineybush/hbcp/keymaps/hiney/keymap.c b/keyboards/hineybush/hbcp/keymaps/hiney/keymap.c index 26a67fe7ca..2311d4020f 100644 --- a/keyboards/hineybush/hbcp/keymaps/hiney/keymap.c +++ b/keyboards/hineybush/hbcp/keymaps/hiney/keymap.c @@ -79,19 +79,19 @@ void matrix_scan_user(void) { // The first three LEDs are used as indicators for CAPS_LOCK, NUM_LOCK and SCROLL_LOCK. bool led_update_user(led_t led_state) { if (led_state.caps_lock) { - sethsv_raw(HSV_SOFT_RED, (LED_TYPE *)&led[0]); + sethsv_raw(HSV_SOFT_RED, (rgb_led_t *)&led[0]); } else { - sethsv(HSV_BLACK, (LED_TYPE *)&led[0]); + sethsv(HSV_BLACK, (rgb_led_t *)&led[0]); } if (led_state.num_lock) { - sethsv_raw(HSV_WARM_WHITE, (LED_TYPE *)&led[1]); + sethsv_raw(HSV_WARM_WHITE, (rgb_led_t *)&led[1]); } else { - sethsv(HSV_BLACK, (LED_TYPE *)&led[1]); + sethsv(HSV_BLACK, (rgb_led_t *)&led[1]); } if (led_state.scroll_lock) { - sethsv_raw(HSV_SOFT_BLUE, (LED_TYPE *)&led[2]); + sethsv_raw(HSV_SOFT_BLUE, (rgb_led_t *)&led[2]); } else { - sethsv(HSV_BLACK, (LED_TYPE *)&led[2]); + sethsv(HSV_BLACK, (rgb_led_t *)&led[2]); } rgblight_set(); return false; diff --git a/keyboards/ibm/model_m/mschwingen/mschwingen.c b/keyboards/ibm/model_m/mschwingen/mschwingen.c index b764660e21..8e3810cd23 100644 --- a/keyboards/ibm/model_m/mschwingen/mschwingen.c +++ b/keyboards/ibm/model_m/mschwingen/mschwingen.c @@ -39,26 +39,26 @@ static uint8_t isRecording = 0; # if RGBLED_NUM < 3 # error we need at least 3 RGB LEDs! # endif -static cRGB led[RGBLED_NUM] = {{255, 255, 255}, {255, 255, 255}, {255, 255, 255}}; +static rgb_led_t led[RGBLED_NUM] = {{255, 255, 255}, {255, 255, 255}, {255, 255, 255}}; # define BRIGHT 32 # define DIM 6 -static const cRGB black = {.r = 0, .g = 0, .b = 0}; +static const rgb_led_t black = {.r = 0, .g = 0, .b = 0}; -static const __attribute__((unused)) cRGB green = {.r = 0, .g = BRIGHT, .b = 0}; -static const __attribute__((unused)) cRGB lgreen = {.r = 0, .g = DIM, .b = 0}; +static const __attribute__((unused)) rgb_led_t green = {.r = 0, .g = BRIGHT, .b = 0}; +static const __attribute__((unused)) rgb_led_t lgreen = {.r = 0, .g = DIM, .b = 0}; -static const __attribute__((unused)) cRGB red = {.r = BRIGHT, .g = 0, .b = 0}; -static const __attribute__((unused)) cRGB lred = {.r = DIM, .g = 0, .b = 0}; +static const __attribute__((unused)) rgb_led_t red = {.r = BRIGHT, .g = 0, .b = 0}; +static const __attribute__((unused)) rgb_led_t lred = {.r = DIM, .g = 0, .b = 0}; -static const __attribute__((unused)) cRGB blue = {.r = 0, .g = 0, .b = BRIGHT}; -static const __attribute__((unused)) cRGB lblue = {.r = 0, .g = 0, .b = DIM}; +static const __attribute__((unused)) rgb_led_t blue = {.r = 0, .g = 0, .b = BRIGHT}; +static const __attribute__((unused)) rgb_led_t lblue = {.r = 0, .g = 0, .b = DIM}; -static const __attribute__((unused)) cRGB turq = {.r = 0, .g = BRIGHT, .b = BRIGHT}; -static const __attribute__((unused)) cRGB lturq = {.r = 0, .g = DIM, .b = DIM}; +static const __attribute__((unused)) rgb_led_t turq = {.r = 0, .g = BRIGHT, .b = BRIGHT}; +static const __attribute__((unused)) rgb_led_t lturq = {.r = 0, .g = DIM, .b = DIM}; -static const __attribute__((unused)) cRGB white = {.r = BRIGHT, .g = BRIGHT, .b = BRIGHT}; +static const __attribute__((unused)) rgb_led_t white = {.r = BRIGHT, .g = BRIGHT, .b = BRIGHT}; static led_t led_state; static uint8_t layer; diff --git a/keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/keymap.c b/keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/keymap.c index 78fdb0713c..5a50c1556d 100644 --- a/keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/keymap.c +++ b/keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/keymap.c @@ -162,7 +162,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /** Set just 4 LEDs closest to the user. Slightly less annoying to bystanders.*/ void rgbflag(uint8_t r, uint8_t g, uint8_t b, uint8_t rr, uint8_t gg, uint8_t bb) { - LED_TYPE *target_led = user_rgb_mode ? shadowed_led : led; + rgb_led_t *target_led = user_rgb_mode ? shadowed_led : led; for (int i = 0; i < RGBLED_NUM; i++) { switch (i) { case 12: case 13: diff --git a/keyboards/keebio/levinson/keymaps/xtonhasvim/keymap.c b/keyboards/keebio/levinson/keymaps/xtonhasvim/keymap.c index b260f5d43c..c82bf06075 100644 --- a/keyboards/keebio/levinson/keymaps/xtonhasvim/keymap.c +++ b/keyboards/keebio/levinson/keymaps/xtonhasvim/keymap.c @@ -157,7 +157,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #define C_ORG 0xFF, 0x93, 0x00 void rgbflag(uint8_t r, uint8_t g, uint8_t b, uint8_t rr, uint8_t gg, uint8_t bb) { - LED_TYPE *target_led = user_rgb_mode ? shadowed_led : led; + rgb_led_t *target_led = user_rgb_mode ? shadowed_led : led; for (int i = 0; i < RGBLED_NUM; i++) { switch (i) { case 10: case 11: diff --git a/keyboards/kingly_keys/ave/ortho/keymaps/default/keymap.c b/keyboards/kingly_keys/ave/ortho/keymaps/default/keymap.c index c8dbb6c18d..7c0dc92812 100644 --- a/keyboards/kingly_keys/ave/ortho/keymaps/default/keymap.c +++ b/keyboards/kingly_keys/ave/ortho/keymaps/default/keymap.c @@ -217,7 +217,7 @@ void keyboard_post_init_user(void) { rgblight_sethsv_noeeprom(50, 255, 100); rgblight_mode_noeeprom(RGBLIGHT_EFFECT_BREATHING + 2); // Init the second LED to a static color: - setrgb(225, 185, 0, (LED_TYPE *)&led[1]); + setrgb(225, 185, 0, (rgb_led_t *)&led[1]); rgblight_set(); #endif // RGBLIGHT_ENABLE } @@ -232,7 +232,7 @@ layer_state_t layer_state_set_user(layer_state_t state){ if (layer_state_cmp(state, 3)) { led1r = 200; } - setrgb(led1r, led1g, led1b, (LED_TYPE *)&led[1]); + setrgb(led1r, led1g, led1b, (rgb_led_t *)&led[1]); rgblight_set(); #endif //RGBLIGHT_ENABLE return state; diff --git a/keyboards/kingly_keys/ave/staggered/keymaps/default/keymap.c b/keyboards/kingly_keys/ave/staggered/keymaps/default/keymap.c index 4a56915ae5..8c5033302c 100644 --- a/keyboards/kingly_keys/ave/staggered/keymaps/default/keymap.c +++ b/keyboards/kingly_keys/ave/staggered/keymaps/default/keymap.c @@ -217,7 +217,7 @@ void keyboard_post_init_user(void) { rgblight_sethsv_noeeprom(50, 255, 100); rgblight_mode_noeeprom(RGBLIGHT_EFFECT_BREATHING + 2); // Init the second LED to a static color: - setrgb(225, 185, 0, (LED_TYPE *)&led[1]); + setrgb(225, 185, 0, (rgb_led_t *)&led[1]); rgblight_set(); #endif // RGBLIGHT_ENABLE } @@ -232,7 +232,7 @@ layer_state_t layer_state_set_user(layer_state_t state){ if (layer_state_cmp(state, 3)) { led1r = 200; } - setrgb(led1r, led1g, led1b, (LED_TYPE *)&led[1]); + setrgb(led1r, led1g, led1b, (rgb_led_t *)&led[1]); rgblight_set(); #endif //RGBLIGHT_ENABLE return state; diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c index bbc3e8db52..e51bec0049 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c @@ -148,7 +148,7 @@ bool rgb_matrix_indicators_kb(void) { // ========================================================================== # if WS2812_LED_TOTAL > 0 -LED_TYPE rgb_matrix_ws2812_array[WS2812_LED_TOTAL]; +rgb_led_t rgb_matrix_ws2812_array[WS2812_LED_TOTAL]; # endif static void rgb_matrix_driver_init(void) { diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c index c4ac03e447..075e8ae580 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c @@ -148,7 +148,7 @@ bool rgb_matrix_indicators_kb(void) { // ========================================================================== # if WS2812_LED_TOTAL > 0 -LED_TYPE rgb_matrix_ws2812_array[WS2812_LED_TOTAL]; +rgb_led_t rgb_matrix_ws2812_array[WS2812_LED_TOTAL]; # endif static void rgb_matrix_driver_init(void) { diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c index bd976f315a..0084fd9245 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c @@ -144,7 +144,7 @@ bool rgb_matrix_indicators_kb(void) { // ========================================================================== # if WS2812_LED_TOTAL > 0 -LED_TYPE rgb_matrix_ws2812_array[WS2812_LED_TOTAL]; +rgb_led_t rgb_matrix_ws2812_array[WS2812_LED_TOTAL]; # endif static void rgb_matrix_driver_init(void) { diff --git a/keyboards/manyboard/macro/keymaps/default/keymap.c b/keyboards/manyboard/macro/keymaps/default/keymap.c index 0b9d2ac927..d068fa8d3d 100644 --- a/keyboards/manyboard/macro/keymaps/default/keymap.c +++ b/keyboards/manyboard/macro/keymaps/default/keymap.c @@ -41,15 +41,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { switch (get_highest_layer(state)) { case 0: - sethsv(HSV_WHITE, (LED_TYPE *)&led[0]); + sethsv(HSV_WHITE, (rgb_led_t *)&led[0]); rgblight_set(); break; case 1: - sethsv(HSV_GREEN, (LED_TYPE *)&led[0]); + sethsv(HSV_GREEN, (rgb_led_t *)&led[0]); rgblight_set(); break; case 2: - sethsv(HSV_BLUE, (LED_TYPE *)&led[0]); + sethsv(HSV_BLUE, (rgb_led_t *)&led[0]); rgblight_set(); break; } diff --git a/keyboards/manyboard/macro/keymaps/via/keymap.c b/keyboards/manyboard/macro/keymaps/via/keymap.c index 0b9d2ac927..d068fa8d3d 100644 --- a/keyboards/manyboard/macro/keymaps/via/keymap.c +++ b/keyboards/manyboard/macro/keymaps/via/keymap.c @@ -41,15 +41,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { switch (get_highest_layer(state)) { case 0: - sethsv(HSV_WHITE, (LED_TYPE *)&led[0]); + sethsv(HSV_WHITE, (rgb_led_t *)&led[0]); rgblight_set(); break; case 1: - sethsv(HSV_GREEN, (LED_TYPE *)&led[0]); + sethsv(HSV_GREEN, (rgb_led_t *)&led[0]); rgblight_set(); break; case 2: - sethsv(HSV_BLUE, (LED_TYPE *)&led[0]); + sethsv(HSV_BLUE, (rgb_led_t *)&led[0]); rgblight_set(); break; } diff --git a/keyboards/matrix/abelx/abelx.c b/keyboards/matrix/abelx/abelx.c index 9585948e0c..ea3e57aeaf 100644 --- a/keyboards/matrix/abelx/abelx.c +++ b/keyboards/matrix/abelx/abelx.c @@ -66,7 +66,7 @@ const aw9523b_led g_aw9523b_leds[AW9523B_RGB_NUM] = { {AW9523B_P07_PWM, AW9523B_P06_PWM, AW9523B_P05_PWM}, }; -void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) +void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds) { uint8_t num = num_leds < AW9523B_RGB_NUM ? num_leds : AW9523B_RGB_NUM; diff --git a/keyboards/matrix/m20add/rgb_ring.c b/keyboards/matrix/m20add/rgb_ring.c index 4567f0348d..be41e0ac02 100644 --- a/keyboards/matrix/m20add/rgb_ring.c +++ b/keyboards/matrix/m20add/rgb_ring.c @@ -357,7 +357,7 @@ static void custom_effects(void) effect_funcs[rgb_ring.effect](); } -void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) +void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds) { if (rgb_ring.state != RING_STATE_QMK) { return; diff --git a/keyboards/matrix/noah/noah.c b/keyboards/matrix/noah/noah.c index 0969998fa9..f3d6062059 100644 --- a/keyboards/matrix/noah/noah.c +++ b/keyboards/matrix/noah/noah.c @@ -20,7 +20,7 @@ extern rgblight_config_t rgblight_config; #if RGBLED_NUM < 7 #error "MUST set the RGBLED_NUM bigger than 7" #endif -LED_TYPE noah_leds[RGBLED_NUM]; +rgb_led_t noah_leds[RGBLED_NUM]; static bool noah_led_mode = false; void rgblight_set(void) { memset(&noah_leds[0], 0, sizeof(noah_leds)); diff --git a/keyboards/mxss/mxss_frontled.c b/keyboards/mxss/mxss_frontled.c index 2ab9a27bea..11c942c959 100644 --- a/keyboards/mxss/mxss_frontled.c +++ b/keyboards/mxss/mxss_frontled.c @@ -25,7 +25,7 @@ // Variables for controlling front LED application uint8_t fled_mode; // Mode for front LEDs uint8_t fled_val; // Brightness for front leds (0 - 255) -LED_TYPE fleds[2]; // Front LED rgb values for indicator mode use +rgb_led_t fleds[2]; // Front LED rgb values for indicator mode use // Layer indicator colors __attribute__ ((weak)) diff --git a/keyboards/mxss/rgblight.c b/keyboards/mxss/rgblight.c index 94f6b1dfe8..873139b5c6 100644 --- a/keyboards/mxss/rgblight.c +++ b/keyboards/mxss/rgblight.c @@ -98,7 +98,7 @@ animation_status_t animation_status = {}; #endif #ifndef LED_ARRAY -LED_TYPE led[RGBLED_NUM]; +rgb_led_t led[RGBLED_NUM]; # define LED_ARRAY led #endif @@ -111,10 +111,10 @@ rgblight_ranges_t rgblight_ranges = {0, RGBLED_NUM, 0, RGBLED_NUM, RGBLED_NUM}; // MxSS custom extern uint8_t fled_mode; extern uint8_t fled_val; -extern LED_TYPE fleds[2]; +extern rgb_led_t fleds[2]; hs_set fled_hs[2]; -void copyrgb(LED_TYPE *src, LED_TYPE *dst) { +void copyrgb(rgb_led_t *src, rgb_led_t *dst) { dst->r = src->r; dst->g = src->g; dst->b = src->b; @@ -135,7 +135,7 @@ void rgblight_set_effect_range(uint8_t start_pos, uint8_t num_leds) { __attribute__((weak)) RGB rgblight_hsv_to_rgb(HSV hsv) { return hsv_to_rgb(hsv); } -void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1) { +void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, rgb_led_t *led1) { HSV hsv = {hue, sat, val}; // MxSS custom // if led is front leds, cache the hue and sat values @@ -150,9 +150,9 @@ void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1) { setrgb(rgb.r, rgb.g, rgb.b, led1); } -void sethsv(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1) { sethsv_raw(hue, sat, val > RGBLIGHT_LIMIT_VAL ? RGBLIGHT_LIMIT_VAL : val, led1); } +void sethsv(uint8_t hue, uint8_t sat, uint8_t val, rgb_led_t *led1) { sethsv_raw(hue, sat, val > RGBLIGHT_LIMIT_VAL ? RGBLIGHT_LIMIT_VAL : val, led1); } -void setrgb(uint8_t r, uint8_t g, uint8_t b, LED_TYPE *led1) { +void setrgb(uint8_t r, uint8_t g, uint8_t b, rgb_led_t *led1) { led1->r = r; led1->g = g; led1->b = b; @@ -454,7 +454,7 @@ void rgblight_sethsv_noeeprom_old(uint8_t hue, uint8_t sat, uint8_t val) { fled_hs[0].hue = fled_hs[1].hue = hue; fled_hs[0].sat = fled_hs[1].sat = sat; - LED_TYPE tmp_led; + rgb_led_t tmp_led; sethsv(hue, sat, val, &tmp_led); rgblight_setrgb(tmp_led.r, tmp_led.g, tmp_led.b); } @@ -465,7 +465,7 @@ void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool w rgblight_status.base_mode = mode_base_table[rgblight_config.mode]; if (rgblight_config.mode == RGBLIGHT_MODE_STATIC_LIGHT) { // same static color - LED_TYPE tmp_led; + rgb_led_t tmp_led; sethsv(hue, sat, val, &tmp_led); // MxSS custom @@ -515,7 +515,7 @@ void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool w _hue = hue - _hue; } dprintf("rgblight rainbow set hsv: %d,%d,%d,%u\n", i, _hue, direction, range); - sethsv(_hue, sat, val, (LED_TYPE *)&led[i + rgblight_ranges.effect_start_pos]); + sethsv(_hue, sat, val, (rgb_led_t *)&led[i + rgblight_ranges.effect_start_pos]); } rgblight_set(); } @@ -601,7 +601,7 @@ void rgblight_sethsv_at(uint8_t hue, uint8_t sat, uint8_t val, uint8_t index) { return; } - LED_TYPE tmp_led; + rgb_led_t tmp_led; sethsv(hue, sat, val, &tmp_led); rgblight_setrgb_at(tmp_led.r, tmp_led.g, tmp_led.b, index); } @@ -640,7 +640,7 @@ void rgblight_sethsv_range(uint8_t hue, uint8_t sat, uint8_t val, uint8_t start, return; } - LED_TYPE tmp_led; + rgb_led_t tmp_led; sethsv(hue, sat, val, &tmp_led); rgblight_setrgb_range(tmp_led.r, tmp_led.g, tmp_led.b, start, end); } @@ -702,8 +702,8 @@ static void rgblight_layers_write(void) { break; // No more segments } // Write segment.count LEDs - LED_TYPE *const limit = &led[MIN(segment.index + segment.count, RGBLED_NUM)]; - for (LED_TYPE *led_ptr = &led[segment.index]; led_ptr < limit; led_ptr++) { + rgb_led_t *const limit = &led[MIN(segment.index + segment.count, RGBLED_NUM)]; + for (rgb_led_t *led_ptr = &led[segment.index]; led_ptr < limit; led_ptr++) { sethsv(segment.hue, segment.sat, segment.val, led_ptr); } segment_ptr++; @@ -737,11 +737,11 @@ void rgblight_unblink_layers(void) { #endif -__attribute__((weak)) void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) { ws2812_setleds(start_led, num_leds); } +__attribute__((weak)) void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds) { ws2812_setleds(start_led, num_leds); } #ifndef RGBLIGHT_CUSTOM_DRIVER void rgblight_set(void) { - LED_TYPE *start_led; + rgb_led_t *start_led; uint8_t num_leds = rgblight_ranges.clipping_num_leds; if (!rgblight_config.enable) { @@ -769,7 +769,7 @@ void rgblight_set(void) { # endif # ifdef RGBLIGHT_LED_MAP - LED_TYPE led0[RGBLED_NUM]; + rgb_led_t led0[RGBLED_NUM]; for (uint8_t i = 0; i < RGBLED_NUM; i++) { led0[i] = led[pgm_read_byte(&led_map[i])]; } @@ -1089,7 +1089,7 @@ void rgblight_effect_rainbow_swirl(animation_status_t *anim) { for (i = 0; i < rgblight_ranges.effect_num_leds; i++) { hue = (RGBLIGHT_RAINBOW_SWIRL_RANGE / rgblight_ranges.effect_num_leds * i + anim->current_hue); - sethsv(hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i + rgblight_ranges.effect_start_pos]); + sethsv(hue, rgblight_config.sat, rgblight_config.val, (rgb_led_t *)&led[i + rgblight_ranges.effect_start_pos]); } rgblight_set(); @@ -1130,7 +1130,7 @@ void rgblight_effect_snake(animation_status_t *anim) { fled_hs[0].sat = fled_hs[1].sat = 0; for (i = 0; i < rgblight_ranges.effect_num_leds; i++) { - LED_TYPE *ledp = led + i + rgblight_ranges.effect_start_pos; + rgb_led_t *ledp = led + i + rgblight_ranges.effect_start_pos; ledp->r = 0; ledp->g = 0; ledp->b = 0; @@ -1203,7 +1203,7 @@ void rgblight_effect_knight(animation_status_t *anim) { cur = (i + RGBLIGHT_EFFECT_KNIGHT_OFFSET) % rgblight_ranges.effect_num_leds + rgblight_ranges.effect_start_pos; if (i >= low_bound && i <= high_bound) { - sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[cur]); + sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, (rgb_led_t *)&led[cur]); } else { // MxSS custom code if (cur == RGBLIGHT_FLED1) { @@ -1262,7 +1262,7 @@ void rgblight_effect_christmas(animation_status_t *anim) { for (i = 0; i < rgblight_ranges.effect_num_leds; i++) { uint8_t local_hue = (i / RGBLIGHT_EFFECT_CHRISTMAS_STEP) % 2 ? hue : hue_green - hue; - sethsv(local_hue, rgblight_config.sat, val, (LED_TYPE *)&led[i + rgblight_ranges.effect_start_pos]); + sethsv(local_hue, rgblight_config.sat, val, (rgb_led_t *)&led[i + rgblight_ranges.effect_start_pos]); } rgblight_set(); @@ -1285,7 +1285,7 @@ void rgblight_effect_rgbtest(animation_status_t *anim) { uint8_t b; if (maxval == 0) { - LED_TYPE tmp_led; + rgb_led_t tmp_led; sethsv(0, 255, RGBLIGHT_LIMIT_VAL, &tmp_led); maxval = tmp_led.r; } @@ -1322,7 +1322,7 @@ void rgblight_effect_rgbtest(animation_status_t *anim) { #ifdef RGBLIGHT_EFFECT_ALTERNATING void rgblight_effect_alternating(animation_status_t *anim) { for (int i = 0; i < rgblight_ranges.effect_num_leds; i++) { - LED_TYPE *ledp = led + i + rgblight_ranges.effect_start_pos; + rgb_led_t *ledp = led + i + rgblight_ranges.effect_start_pos; if (i < rgblight_ranges.effect_num_leds / 2 && anim->pos) { sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, ledp); } else if (i >= rgblight_ranges.effect_num_leds / 2 && !anim->pos) { @@ -1383,7 +1383,7 @@ void rgblight_effect_twinkle(animation_status_t *anim) { // This LED is off, and was NOT selected to start brightening } - LED_TYPE *ledp = led + i + rgblight_ranges.effect_start_pos; + rgb_led_t *ledp = led + i + rgblight_ranges.effect_start_pos; sethsv(c->h, c->s, c->v, ledp); } diff --git a/keyboards/neson_design/700e/700e.c b/keyboards/neson_design/700e/700e.c index cf31b6b72b..70438233c5 100644 --- a/keyboards/neson_design/700e/700e.c +++ b/keyboards/neson_design/700e/700e.c @@ -322,7 +322,7 @@ void housekeeping_task_kb(void) } else if (rgb_state.state == CAPS_ALERT) { if (rgb_state.alert) { is31fl3731_set_color_all(ALERM_LED_R, ALERM_LED_G, ALERM_LED_B); - LED_TYPE leds[4]; + rgb_led_t leds[4]; for (int i = 0; i < 4; i++) { leds[i].r = ALERM_LED_G; leds[i].g = ALERM_LED_R; @@ -331,7 +331,7 @@ void housekeeping_task_kb(void) ws2812_setleds(leds, 4); } else { is31fl3731_set_color_all(0, 0, 0); - LED_TYPE leds[4] = {0}; + rgb_led_t leds[4] = {0}; ws2812_setleds(leds, 4); } @@ -349,14 +349,14 @@ void housekeeping_task_kb(void) housekeeping_task_user(); } -void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) +void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds) { if (rgb_state.state != NORMAL) return; for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) { is31fl3731_set_color(i, start_led[i].r, start_led[i].g, start_led[i].b); } - LED_TYPE leds[4]; + rgb_led_t leds[4]; for (int i = 0; i < 4; i++) { leds[i].r = start_led[RGB_MATRIX_LED_COUNT+i].g; leds[i].g = start_led[RGB_MATRIX_LED_COUNT+i].r; diff --git a/keyboards/neson_design/n6/n6.c b/keyboards/neson_design/n6/n6.c index cf99404641..0bff544672 100644 --- a/keyboards/neson_design/n6/n6.c +++ b/keyboards/neson_design/n6/n6.c @@ -320,7 +320,7 @@ void housekeeping_task_kb(void) self_testing(); } else if (rgb_state.state == CAPS_ALERT) { //gold 0xFF, 0xD9, 0x00 - LED_TYPE led = { + rgb_led_t led = { .r = 0xFF, //.g = 0xD9, .g = 0xA5, @@ -351,7 +351,7 @@ void housekeeping_task_kb(void) housekeeping_task_user(); } -void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) +void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds) { if (rgb_state.state != NORMAL) return; diff --git a/keyboards/neson_design/nico/nico.c b/keyboards/neson_design/nico/nico.c index 63f08b8639..b4d15777b7 100644 --- a/keyboards/neson_design/nico/nico.c +++ b/keyboards/neson_design/nico/nico.c @@ -22,7 +22,7 @@ static bool alert = false; static bool backup = false; -static LED_TYPE caps_led; +static rgb_led_t caps_led; static uint16_t last_ticks = 0; #define ALERT_INTERVAL 500 @@ -66,7 +66,7 @@ void housekeeping_task_kb(void) housekeeping_task_user(); } -void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) +void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds) { start_led[2].r = start_led[0].r; start_led[2].g = start_led[0].g; diff --git a/keyboards/oddforge/vea/ws2812_custom.c b/keyboards/oddforge/vea/ws2812_custom.c index 0dc5a2d0f1..f52c8d06a8 100644 --- a/keyboards/oddforge/vea/ws2812_custom.c +++ b/keyboards/oddforge/vea/ws2812_custom.c @@ -22,13 +22,13 @@ void ws2812_init(void) { } // Setleds for standard RGB -void ws2812_setleds(LED_TYPE *ledarray, uint16_t leds) { +void ws2812_setleds(rgb_led_t *ledarray, uint16_t leds) { static bool s_init = false; if (!s_init) { ws2812_init(); s_init = true; } - i2c_transmit(WS2812_I2C_ADDRESS, (uint8_t *)ledarray, sizeof(LED_TYPE) * (leds >> 1), WS2812_I2C_TIMEOUT); - i2c_transmit(WS2812_I2C_ADDRESS_RIGHT, (uint8_t *)ledarray+(sizeof(LED_TYPE) * (leds >> 1)), sizeof(LED_TYPE) * (leds - (leds >> 1)), WS2812_I2C_TIMEOUT); + i2c_transmit(WS2812_I2C_ADDRESS, (uint8_t *)ledarray, sizeof(rgb_led_t) * (leds >> 1), WS2812_I2C_TIMEOUT); + i2c_transmit(WS2812_I2C_ADDRESS_RIGHT, (uint8_t *)ledarray+(sizeof(rgb_led_t) * (leds >> 1)), sizeof(rgb_led_t) * (leds - (leds >> 1)), WS2812_I2C_TIMEOUT); } diff --git a/keyboards/rgbkb/pan/pan.c b/keyboards/rgbkb/pan/pan.c index 023c766de6..d175be3641 100644 --- a/keyboards/rgbkb/pan/pan.c +++ b/keyboards/rgbkb/pan/pan.c @@ -22,7 +22,7 @@ # include "ws2812.h" // LED color buffer -LED_TYPE rgb_matrix_ws2812_array[RGB_MATRIX_LED_COUNT]; +rgb_led_t rgb_matrix_ws2812_array[RGB_MATRIX_LED_COUNT]; static void init(void) {} diff --git a/keyboards/tetris/keymaps/default/keymap.c b/keyboards/tetris/keymaps/default/keymap.c index 9e2a96ffc3..057e19d987 100755 --- a/keyboards/tetris/keymaps/default/keymap.c +++ b/keyboards/tetris/keymaps/default/keymap.c @@ -94,40 +94,40 @@ void matrix_scan_user(void) { uint16_t kc = keymap_key_to_keycode(layer, (keypos_t) {.row = 0, .col = i }); if (kc == KC_TRNS) { - setrgb(5, 5, 5, (LED_TYPE * ) & led[j]); /* TRNS color 0-255*/ + setrgb(5, 5, 5, (rgb_led_t * ) & led[j]); /* TRNS color 0-255*/ } else if (kc == KC_NO) { - setrgb(0, 0, 0, (LED_TYPE * ) & led[j]); /* NO color 0-255*/ + setrgb(0, 0, 0, (rgb_led_t * ) & led[j]); /* NO color 0-255*/ } else { if (layer == 1) { - setrgb(128, 64, 0, (LED_TYPE * ) & led[j]); /* 1 layer 0-255*/ + setrgb(128, 64, 0, (rgb_led_t * ) & led[j]); /* 1 layer 0-255*/ } else if (layer == 2) { - setrgb(0, 64, 128, (LED_TYPE * ) & led[j]); /* 2*/ + setrgb(0, 64, 128, (rgb_led_t * ) & led[j]); /* 2*/ } else if (layer == 3) { - setrgb(64, 128, 0, (LED_TYPE * ) & led[j]); /* 3*/ + setrgb(64, 128, 0, (rgb_led_t * ) & led[j]); /* 3*/ } else if (layer == 4) { - setrgb(0, 128, 64, (LED_TYPE * ) & led[j]); /* 4*/ + setrgb(0, 128, 64, (rgb_led_t * ) & led[j]); /* 4*/ } else if (layer == 5) { - setrgb(128, 0, 128, (LED_TYPE * ) & led[j]); /* 5*/ + setrgb(128, 0, 128, (rgb_led_t * ) & led[j]); /* 5*/ } else if (layer == 6) { - setrgb(128, 0, 128, (LED_TYPE * ) & led[j]); /* 6*/ + setrgb(128, 0, 128, (rgb_led_t * ) & led[j]); /* 6*/ } else if (layer == 7) { - setrgb(128, 128, 0, (LED_TYPE * ) & led[j]); /* 7*/ + setrgb(128, 128, 0, (rgb_led_t * ) & led[j]); /* 7*/ } else if (layer == 8) { - setrgb(0, 128, 128, (LED_TYPE * ) & led[j]); /* 8*/ + setrgb(0, 128, 128, (rgb_led_t * ) & led[j]); /* 8*/ } else if (layer == 9) { - setrgb(128, 192, 64, (LED_TYPE * ) & led[j]); /* 9*/ + setrgb(128, 192, 64, (rgb_led_t * ) & led[j]); /* 9*/ } else if (layer == 10) { - setrgb(64, 192, 128, (LED_TYPE * ) & led[j]); /* 10*/ + setrgb(64, 192, 128, (rgb_led_t * ) & led[j]); /* 10*/ } else if (layer == 11) { - setrgb(128, 64, 192, (LED_TYPE * ) & led[j]); /* 11*/ + setrgb(128, 64, 192, (rgb_led_t * ) & led[j]); /* 11*/ } else if (layer == 12) { - setrgb(64, 128, 192, (LED_TYPE * ) & led[j]); /* 12*/ + setrgb(64, 128, 192, (rgb_led_t * ) & led[j]); /* 12*/ } else if (layer == 13) { - setrgb(128, 192, 0, (LED_TYPE * ) & led[j]); /* 13*/ + setrgb(128, 192, 0, (rgb_led_t * ) & led[j]); /* 13*/ } else if (layer == 14) { - setrgb(192, 0, 128, (LED_TYPE * ) & led[j]); /* 14*/ + setrgb(192, 0, 128, (rgb_led_t * ) & led[j]); /* 14*/ } else if (layer == 15) { - setrgb(0, 192, 128, (LED_TYPE * ) & led[j]); /* 15*/ + setrgb(0, 192, 128, (rgb_led_t * ) & led[j]); /* 15*/ } } } diff --git a/keyboards/thevankeyboards/minivan/keymaps/halvves/keymap.c b/keyboards/thevankeyboards/minivan/keymaps/halvves/keymap.c index 6ef5ecc2c6..ece72f3319 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/halvves/keymap.c +++ b/keyboards/thevankeyboards/minivan/keymaps/halvves/keymap.c @@ -180,8 +180,8 @@ void keyboard_post_init_user(void) { rgblight_mode_noeeprom(RGBLIGHT_EFFECT_BREATHING + 2); // set other led's to off - setrgb(0, 0, 0, (LED_TYPE *)&led[0]); - setrgb(0, 0, 0, (LED_TYPE *)&led[1]); + setrgb(0, 0, 0, (rgb_led_t *)&led[0]); + setrgb(0, 0, 0, (rgb_led_t *)&led[1]); rgblight_set(); #endif } @@ -190,23 +190,23 @@ layer_state_t layer_state_set_user(layer_state_t state) { state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); #ifdef RGBLIGHT_ENABLE if (layer_state_cmp(state, _ADJUST)) { - setrgb(70, 255, 200, (LED_TYPE *)&led[0]); - setrgb(255, 70, 100, (LED_TYPE *)&led[1]); + setrgb(70, 255, 200, (rgb_led_t *)&led[0]); + setrgb(255, 70, 100, (rgb_led_t *)&led[1]); } else if (layer_state_cmp(state, _LOWER)) { - setrgb(70, 255, 200, (LED_TYPE *)&led[0]); - setrgb(0, 0, 0, (LED_TYPE *)&led[1]); + setrgb(70, 255, 200, (rgb_led_t *)&led[0]); + setrgb(0, 0, 0, (rgb_led_t *)&led[1]); } else if (layer_state_cmp(state, _RAISE)) { - setrgb(0, 0, 0, (LED_TYPE *)&led[0]); - setrgb(255, 70, 100, (LED_TYPE *)&led[1]); + setrgb(0, 0, 0, (rgb_led_t *)&led[0]); + setrgb(255, 70, 100, (rgb_led_t *)&led[1]); } else if (layer_state_cmp(state, _UTIL)) { - setrgb(200, 70, 225, (LED_TYPE *)&led[0]); - setrgb(200, 70, 225, (LED_TYPE *)&led[1]); + setrgb(200, 70, 225, (rgb_led_t *)&led[0]); + setrgb(200, 70, 225, (rgb_led_t *)&led[1]); } else if (layer_state_cmp(state, _MOUSE)) { - setrgb(255, 145, 5, (LED_TYPE *)&led[0]); - setrgb(255, 145, 5, (LED_TYPE *)&led[1]); + setrgb(255, 145, 5, (rgb_led_t *)&led[0]); + setrgb(255, 145, 5, (rgb_led_t *)&led[1]); } else { - setrgb(0, 0, 0, (LED_TYPE *)&led[0]); - setrgb(0, 0, 0, (LED_TYPE *)&led[1]); + setrgb(0, 0, 0, (rgb_led_t *)&led[0]); + setrgb(0, 0, 0, (rgb_led_t *)&led[1]); } rgblight_set(); diff --git a/keyboards/thevankeyboards/minivan/keymaps/jetpacktuxedo/keymap.c b/keyboards/thevankeyboards/minivan/keymaps/jetpacktuxedo/keymap.c index ae3619859a..0999c9490c 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/jetpacktuxedo/keymap.c +++ b/keyboards/thevankeyboards/minivan/keymaps/jetpacktuxedo/keymap.c @@ -50,8 +50,8 @@ void keyboard_post_init_user(void) { rgblight_mode_noeeprom(RGBLIGHT_EFFECT_BREATHING + 2); // Init the first two LEDs to a static color - setrgb(0, 0, 0, (LED_TYPE *)&led[0]); - setrgb(0, 0, 0, (LED_TYPE *)&led[1]); + setrgb(0, 0, 0, (rgb_led_t *)&led[0]); + setrgb(0, 0, 0, (rgb_led_t *)&led[1]); rgblight_set(); #endif //RGBLIGHT_ENABLE } @@ -75,8 +75,8 @@ layer_state_t layer_state_set_user(layer_state_t state){ led1r = 255; } - setrgb(led0r, led0g, led0b, (LED_TYPE *)&led[0]); - setrgb(led1r, led1g, led1b, (LED_TYPE *)&led[1]); + setrgb(led0r, led0g, led0b, (rgb_led_t *)&led[0]); + setrgb(led1r, led1g, led1b, (rgb_led_t *)&led[1]); rgblight_set(); #endif //RGBLIGHT_ENABLE return state; diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c index 145da6b2a5..39eb45e15e 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c @@ -192,8 +192,8 @@ void keyboard_post_init_user (void) { rgblight_mode_noeeprom (RGBLIGHT_EFFECT_BREATHING + 2); // Init the first and last LEDs to a static color. - setrgb (0, 0, 0, (LED_TYPE *)&led[0]); // Led[0] is led 0 - setrgb (0, 0, 0, (LED_TYPE *)&led[2]); // 2nd led + setrgb (0, 0, 0, (rgb_led_t *)&led[0]); // Led[0] is led 0 + setrgb (0, 0, 0, (rgb_led_t *)&led[2]); // 2nd led // The logic seems to be to establish the effect first, and then toggle it on/off. # ifdef STARTUP_MID_LED_OFF @@ -301,8 +301,8 @@ void isolate_rgblight_set (void) { led2r = 0; led2g = 0; led2b = 0; - setrgb(led0r, led0g, led0b, (LED_TYPE *)&led[0]); // Led 0 - setrgb(led2r, led2g, led2b, (LED_TYPE *)&led[2]); // Led 2 + setrgb(led0r, led0g, led0b, (rgb_led_t *)&led[0]); // Led 0 + setrgb(led2r, led2g, led2b, (rgb_led_t *)&led[2]); // Led 2 } rgblight_set (); # endif @@ -326,8 +326,8 @@ void indicate_fun_stay (void) { led0g = 50; // led2r = 255; // red } - setrgb(led0r, led0g, led0b, (LED_TYPE *)&led[0]); // Led 0 - setrgb(led2r, led2g, led2b, (LED_TYPE *)&led[2]); // Led 2 + setrgb(led0r, led0g, led0b, (rgb_led_t *)&led[0]); // Led 0 + setrgb(led2r, led2g, led2b, (rgb_led_t *)&led[2]); // Led 2 isolate_rgblight_set (); # endif //RGBLIGHT_ENABLE @@ -369,8 +369,8 @@ void indicate_base (void) { led2g = 255; led2b = 255; } - setrgb(led0r, led0g, led0b, (LED_TYPE *)&led[0]); // Led 0 - setrgb(led2r, led2g, led2b, (LED_TYPE *)&led[2]); // Led 2 + setrgb(led0r, led0g, led0b, (rgb_led_t *)&led[0]); // Led 0 + setrgb(led2r, led2g, led2b, (rgb_led_t *)&led[2]); // Led 2 isolate_rgblight_set (); # endif //RGBLIGHT_ENABLE @@ -535,8 +535,8 @@ void set_led_colors_ (layer_state_t state) { //--- // pushes the configuration - setrgb (led0r, led0g, led0b, (LED_TYPE *)&led[0]); // Led 0 - setrgb (led2r, led2g, led2b, (LED_TYPE *)&led[2]); // Led 2 + setrgb (led0r, led0g, led0b, (rgb_led_t *)&led[0]); // Led 0 + setrgb (led2r, led2g, led2b, (rgb_led_t *)&led[2]); // Led 2 isolate_rgblight_set (); // Activates the led color change, after on/off check. diff --git a/keyboards/v60_type_r/keymaps/xtonhasvim/keymap.c b/keyboards/v60_type_r/keymaps/xtonhasvim/keymap.c index f2fd693ece..b211ec0f3f 100644 --- a/keyboards/v60_type_r/keymaps/xtonhasvim/keymap.c +++ b/keyboards/v60_type_r/keymaps/xtonhasvim/keymap.c @@ -97,7 +97,7 @@ float rgb_brightness = 1.0; void rgbflag(uint8_t r, uint8_t g, uint8_t b) { float rgb_brightness = ((float)rgblight_get_val())/256; if(rgb_brightness == 0) rgb_brightness = 0.05; - LED_TYPE *target_led = user_rgb_mode ? shadowed_led : led; + rgb_led_t *target_led = user_rgb_mode ? shadowed_led : led; target_led[0].r = (uint8_t)(r*rgb_brightness); target_led[0].g = (uint8_t)(g*rgb_brightness); target_led[0].b = (uint8_t)(b*rgb_brightness); diff --git a/keyboards/wilba_tech/wt_rgb_backlight.c b/keyboards/wilba_tech/wt_rgb_backlight.c index 6c57416622..d2ec610df8 100644 --- a/keyboards/wilba_tech/wt_rgb_backlight.c +++ b/keyboards/wilba_tech/wt_rgb_backlight.c @@ -64,7 +64,7 @@ #if defined(RGB_BACKLIGHT_DAWN60) #include "ws2812.h" -LED_TYPE g_ws2812_leds[WS2812_LED_TOTAL]; +rgb_led_t g_ws2812_leds[WS2812_LED_TOTAL]; #endif #include "progmem.h" diff --git a/keyboards/work_louder/rgb_functions.c b/keyboards/work_louder/rgb_functions.c index 138779465e..b4d1a2ad72 100644 --- a/keyboards/work_louder/rgb_functions.c +++ b/keyboards/work_louder/rgb_functions.c @@ -24,7 +24,7 @@ #include "ws2812_bitbang.c" -void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) { +void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds) { ws2812_setleds(start_led, num_leds); } #endif diff --git a/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c b/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c index 7b77807326..b10114e134 100644 --- a/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c +++ b/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c @@ -23,7 +23,7 @@ #include "ws2812.h" #ifdef RGB_MATRIX_ENABLE -LED_TYPE rgb_matrix_ws2812_array[WS2812_LED_TOTAL]; +rgb_led_t rgb_matrix_ws2812_array[WS2812_LED_TOTAL]; const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations diff --git a/keyboards/xiudi/xd002/keymaps/multilayer_rgb/rgblite.h b/keyboards/xiudi/xd002/keymaps/multilayer_rgb/rgblite.h index 8a14a8f956..1fa6f899b9 100644 --- a/keyboards/xiudi/xd002/keymaps/multilayer_rgb/rgblite.h +++ b/keyboards/xiudi/xd002/keymaps/multilayer_rgb/rgblite.h @@ -4,6 +4,6 @@ #include "color.h" static inline void rgblite_setrgb(uint8_t _r, uint8_t _g, uint8_t _b) { - LED_TYPE leds[RGBLED_NUM] = {{.r = _r, .g = _g, .b = _b}, {.r = _r, .g = _g, .b = _b}}; + rgb_led_t leds[RGBLED_NUM] = {{.r = _r, .g = _g, .b = _b}, {.r = _r, .g = _g, .b = _b}}; ws2812_setleds(leds, RGBLED_NUM); } diff --git a/keyboards/xiudi/xd002/keymaps/rgb_lite/rgblite.h b/keyboards/xiudi/xd002/keymaps/rgb_lite/rgblite.h index b7919f9767..15ee0c0f6b 100644 --- a/keyboards/xiudi/xd002/keymaps/rgb_lite/rgblite.h +++ b/keyboards/xiudi/xd002/keymaps/rgb_lite/rgblite.h @@ -4,7 +4,7 @@ #include "color.h" static inline void rgblite_setrgb(uint8_t _r, uint8_t _g, uint8_t _b) { - LED_TYPE leds[RGBLED_NUM] = {{.r = _r, .g = _g, .b = _b}, {.r = _r, .g = _g, .b = _b}}; + rgb_led_t leds[RGBLED_NUM] = {{.r = _r, .g = _g, .b = _b}, {.r = _r, .g = _g, .b = _b}}; ws2812_setleds(leds, RGBLED_NUM); } diff --git a/keyboards/xiudi/xd75/keymaps/odyssey/keymap.c b/keyboards/xiudi/xd75/keymaps/odyssey/keymap.c index 4fe70b9cca..61eb4a2dcf 100644 --- a/keyboards/xiudi/xd75/keymaps/odyssey/keymap.c +++ b/keyboards/xiudi/xd75/keymaps/odyssey/keymap.c @@ -49,7 +49,7 @@ int speed = 300; void set_colors(int r, int g, int b) { for(int i = 0; i<6; i++) { - sethsv(r, g, b, (LED_TYPE *)&led[i]); + sethsv(r, g, b, (rgb_led_t *)&led[i]); } rgblight_set(); } @@ -213,7 +213,7 @@ void matrix_scan_user(void) { if (rc == 0) { rc = speed; for(int i = 0; i<6; i++) { - sethsv(42*((t+i)%6), 255, 255, (LED_TYPE *)&led[i]); + sethsv(42*((t+i)%6), 255, 255, (rgb_led_t *)&led[i]); } rgblight_set(); t++; t = t % 6; @@ -224,9 +224,9 @@ void matrix_scan_user(void) { col = (col + 1) % 36; for (int i = 0; i<6; i++) { if (i==t) - sethsv(42*(((col-1)/6)%6), 255, 255, (LED_TYPE *)&led[(right ? t : 5-t)]); + sethsv(42*(((col-1)/6)%6), 255, 255, (rgb_led_t *)&led[(right ? t : 5-t)]); else - sethsv(0, 0, 0, (LED_TYPE *)&led[right ? i : 5-i]); + sethsv(0, 0, 0, (rgb_led_t *)&led[right ? i : 5-i]); } rgblight_set(); t++; t = t % 6; diff --git a/keyboards/zykrah/fuyu/keymaps/via/keymap.c b/keyboards/zykrah/fuyu/keymaps/via/keymap.c index 11f33854ce..1ad867731e 100644 --- a/keyboards/zykrah/fuyu/keymaps/via/keymap.c +++ b/keyboards/zykrah/fuyu/keymaps/via/keymap.c @@ -106,7 +106,7 @@ bool rgb_matrix_indicators_user(void) { #if defined(RGB_MATRIX_ENABLE) #define INDICATOR_RGB_DIVISOR 4 -extern LED_TYPE rgb_matrix_ws2812_array[DRIVER_LED_TOTAL]; +extern rgb_led_t rgb_matrix_ws2812_array[DRIVER_LED_TOTAL]; bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { for (uint8_t i = led_min; i < led_max; i++) { if (g_led_config.flags[i] & LED_FLAG_INDICATOR) { diff --git a/platforms/avr/drivers/ws2812_bitbang.c b/platforms/avr/drivers/ws2812_bitbang.c index aad10d86b0..116053591f 100644 --- a/platforms/avr/drivers/ws2812_bitbang.c +++ b/platforms/avr/drivers/ws2812_bitbang.c @@ -37,13 +37,13 @@ static inline void ws2812_sendarray_mask(uint8_t *data, uint16_t datlen, uint8_t masklo, uint8_t maskhi); -void ws2812_setleds(LED_TYPE *ledarray, uint16_t number_of_leds) { +void ws2812_setleds(rgb_led_t *ledarray, uint16_t number_of_leds) { DDRx_ADDRESS(WS2812_DI_PIN) |= pinmask(WS2812_DI_PIN); uint8_t masklo = ~(pinmask(WS2812_DI_PIN)) & PORTx_ADDRESS(WS2812_DI_PIN); uint8_t maskhi = pinmask(WS2812_DI_PIN) | PORTx_ADDRESS(WS2812_DI_PIN); - ws2812_sendarray_mask((uint8_t *)ledarray, number_of_leds * sizeof(LED_TYPE), masklo, maskhi); + ws2812_sendarray_mask((uint8_t *)ledarray, number_of_leds * sizeof(rgb_led_t), masklo, maskhi); _delay_us(WS2812_TRST_US); } diff --git a/platforms/avr/drivers/ws2812_i2c.c b/platforms/avr/drivers/ws2812_i2c.c index f4a2fbe0b3..f52a037b8e 100644 --- a/platforms/avr/drivers/ws2812_i2c.c +++ b/platforms/avr/drivers/ws2812_i2c.c @@ -18,12 +18,12 @@ void ws2812_init(void) { } // Setleds for standard RGB -void ws2812_setleds(LED_TYPE *ledarray, uint16_t leds) { +void ws2812_setleds(rgb_led_t *ledarray, uint16_t leds) { static bool s_init = false; if (!s_init) { ws2812_init(); s_init = true; } - i2c_transmit(WS2812_I2C_ADDRESS, (uint8_t *)ledarray, sizeof(LED_TYPE) * leds, WS2812_I2C_TIMEOUT); + i2c_transmit(WS2812_I2C_ADDRESS, (uint8_t *)ledarray, sizeof(rgb_led_t) * leds, WS2812_I2C_TIMEOUT); } diff --git a/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c b/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c index 8d59e13bb2..de317e269a 100644 --- a/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c +++ b/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c @@ -268,7 +268,7 @@ static inline void sync_ws2812_transfer(void) { busy_wait_until(LAST_TRANSFER); } -void ws2812_setleds(LED_TYPE* ledarray, uint16_t leds) { +void ws2812_setleds(rgb_led_t* ledarray, uint16_t leds) { static bool is_initialized = false; if (unlikely(!is_initialized)) { is_initialized = ws2812_init(); diff --git a/platforms/chibios/drivers/ws2812_bitbang.c b/platforms/chibios/drivers/ws2812_bitbang.c index c55e0f654c..e3b735a1a6 100644 --- a/platforms/chibios/drivers/ws2812_bitbang.c +++ b/platforms/chibios/drivers/ws2812_bitbang.c @@ -72,7 +72,7 @@ void ws2812_init(void) { } // Setleds for standard RGB -void ws2812_setleds(LED_TYPE *ledarray, uint16_t leds) { +void ws2812_setleds(rgb_led_t *ledarray, uint16_t leds) { static bool s_init = false; if (!s_init) { ws2812_init(); diff --git a/platforms/chibios/drivers/ws2812_pwm.c b/platforms/chibios/drivers/ws2812_pwm.c index cfee547a82..440687bd72 100644 --- a/platforms/chibios/drivers/ws2812_pwm.c +++ b/platforms/chibios/drivers/ws2812_pwm.c @@ -379,7 +379,7 @@ void ws2812_write_led_rgbw(uint16_t led_number, uint8_t r, uint8_t g, uint8_t b, } // Setleds for standard RGB -void ws2812_setleds(LED_TYPE* ledarray, uint16_t leds) { +void ws2812_setleds(rgb_led_t* ledarray, uint16_t leds) { static bool s_init = false; if (!s_init) { ws2812_init(); diff --git a/platforms/chibios/drivers/ws2812_spi.c b/platforms/chibios/drivers/ws2812_spi.c index f188576e04..f56236a8b8 100644 --- a/platforms/chibios/drivers/ws2812_spi.c +++ b/platforms/chibios/drivers/ws2812_spi.c @@ -106,7 +106,7 @@ static uint8_t get_protocol_eq(uint8_t data, int pos) { return eq; } -static void set_led_color_rgb(LED_TYPE color, int pos) { +static void set_led_color_rgb(rgb_led_t color, int pos) { uint8_t* tx_start = &txbuf[PREAMBLE_SIZE]; #if (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_GRB) @@ -187,7 +187,7 @@ void ws2812_init(void) { #endif } -void ws2812_setleds(LED_TYPE* ledarray, uint16_t leds) { +void ws2812_setleds(rgb_led_t* ledarray, uint16_t leds) { static bool s_init = false; if (!s_init) { ws2812_init(); diff --git a/quantum/color.c b/quantum/color.c index 767155c9db..395383f428 100644 --- a/quantum/color.c +++ b/quantum/color.c @@ -110,7 +110,7 @@ RGB hsv_to_rgb_nocie(HSV hsv) { } #ifdef RGBW -void convert_rgb_to_rgbw(LED_TYPE *led) { +void convert_rgb_to_rgbw(rgb_led_t *led) { // Determine lowest value in all three colors, put that into // the white channel and then shift all colors by that amount led->w = MIN(led->r, MIN(led->g, led->b)); diff --git a/quantum/color.h b/quantum/color.h index 135ad623b5..a0414a291f 100644 --- a/quantum/color.h +++ b/quantum/color.h @@ -83,12 +83,6 @@ # pragma pack(push, 1) #endif -#ifdef RGBW -# define LED_TYPE cRGBW -#else -# define LED_TYPE RGB -#endif - #define WS2812_BYTE_ORDER_RGB 0 #define WS2812_BYTE_ORDER_GRB 1 #define WS2812_BYTE_ORDER_BGR 2 @@ -97,26 +91,7 @@ # define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_GRB #endif -typedef struct PACKED { -#if (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_GRB) - uint8_t g; - uint8_t r; - uint8_t b; -#elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_RGB) - uint8_t r; - uint8_t g; - uint8_t b; -#elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_BGR) - uint8_t b; - uint8_t g; - uint8_t r; -#endif -} cRGB; - -typedef cRGB RGB; - -// WS2812 specific layout -typedef struct PACKED { +typedef struct PACKED rgb_led_t { #if (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_GRB) uint8_t g; uint8_t r; @@ -130,10 +105,14 @@ typedef struct PACKED { uint8_t g; uint8_t r; #endif +#ifdef RGBW uint8_t w; -} cRGBW; +#endif +} rgb_led_t; -typedef struct PACKED { +typedef rgb_led_t RGB; + +typedef struct PACKED HSV { uint8_t h; uint8_t s; uint8_t v; @@ -146,5 +125,5 @@ typedef struct PACKED { RGB hsv_to_rgb(HSV hsv); RGB hsv_to_rgb_nocie(HSV hsv); #ifdef RGBW -void convert_rgb_to_rgbw(LED_TYPE *led); +void convert_rgb_to_rgbw(rgb_led_t *led); #endif diff --git a/quantum/rgb_matrix/rgb_matrix_drivers.c b/quantum/rgb_matrix/rgb_matrix_drivers.c index 695ecc78a4..cd0e80cc24 100644 --- a/quantum/rgb_matrix/rgb_matrix_drivers.c +++ b/quantum/rgb_matrix/rgb_matrix_drivers.c @@ -426,8 +426,8 @@ const rgb_matrix_driver_t rgb_matrix_driver = { # endif // LED color buffer -LED_TYPE rgb_matrix_ws2812_array[RGB_MATRIX_LED_COUNT]; -bool ws2812_dirty = false; +rgb_led_t rgb_matrix_ws2812_array[RGB_MATRIX_LED_COUNT]; +bool ws2812_dirty = false; static void init(void) { ws2812_dirty = false; diff --git a/quantum/rgblight/rgblight.c b/quantum/rgblight/rgblight.c index 158112f31d..70672ceb8f 100644 --- a/quantum/rgblight/rgblight.c +++ b/quantum/rgblight/rgblight.c @@ -115,7 +115,7 @@ animation_status_t animation_status = {}; #endif #ifndef LED_ARRAY -LED_TYPE led[RGBLED_NUM]; +rgb_led_t led[RGBLED_NUM]; # define LED_ARRAY led #endif @@ -144,17 +144,17 @@ __attribute__((weak)) RGB rgblight_hsv_to_rgb(HSV hsv) { return hsv_to_rgb(hsv); } -void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1) { +void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, rgb_led_t *led1) { HSV hsv = {hue, sat, val}; RGB rgb = rgblight_hsv_to_rgb(hsv); setrgb(rgb.r, rgb.g, rgb.b, led1); } -void sethsv(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1) { +void sethsv(uint8_t hue, uint8_t sat, uint8_t val, rgb_led_t *led1) { sethsv_raw(hue, sat, val > RGBLIGHT_LIMIT_VAL ? RGBLIGHT_LIMIT_VAL : val, led1); } -void setrgb(uint8_t r, uint8_t g, uint8_t b, LED_TYPE *led1) { +void setrgb(uint8_t r, uint8_t g, uint8_t b, rgb_led_t *led1) { led1->r = r; led1->g = g; led1->b = b; @@ -516,7 +516,7 @@ void rgblight_decrease_speed_noeeprom(void) { void rgblight_sethsv_noeeprom_old(uint8_t hue, uint8_t sat, uint8_t val) { if (rgblight_config.enable) { - LED_TYPE tmp_led; + rgb_led_t tmp_led; sethsv(hue, sat, val, &tmp_led); rgblight_setrgb(tmp_led.r, tmp_led.g, tmp_led.b); } @@ -532,7 +532,7 @@ void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool w rgblight_status.base_mode = mode_base_table[rgblight_config.mode]; if (rgblight_config.mode == RGBLIGHT_MODE_STATIC_LIGHT) { // same static color - LED_TYPE tmp_led; + rgb_led_t tmp_led; #ifdef RGBLIGHT_LAYERS_RETAIN_VAL // needed for rgblight_layers_write() to get the new val, since it reads rgblight_config.val rgblight_config.val = val; @@ -576,7 +576,7 @@ void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool w _hue = hue - _hue; } dprintf("rgblight rainbow set hsv: %d,%d,%d,%u\n", i, _hue, direction, range); - sethsv(_hue, sat, val, (LED_TYPE *)&led[i + rgblight_ranges.effect_start_pos]); + sethsv(_hue, sat, val, (rgb_led_t *)&led[i + rgblight_ranges.effect_start_pos]); } # ifdef RGBLIGHT_LAYERS_RETAIN_VAL // needed for rgblight_layers_write() to get the new val, since it reads rgblight_config.val @@ -679,7 +679,7 @@ void rgblight_sethsv_at(uint8_t hue, uint8_t sat, uint8_t val, uint8_t index) { return; } - LED_TYPE tmp_led; + rgb_led_t tmp_led; sethsv(hue, sat, val, &tmp_led); rgblight_setrgb_at(tmp_led.r, tmp_led.g, tmp_led.b, index); } @@ -717,7 +717,7 @@ void rgblight_sethsv_range(uint8_t hue, uint8_t sat, uint8_t val, uint8_t start, return; } - LED_TYPE tmp_led; + rgb_led_t tmp_led; sethsv(hue, sat, val, &tmp_led); rgblight_setrgb_range(tmp_led.r, tmp_led.g, tmp_led.b, start, end); } @@ -786,8 +786,8 @@ static void rgblight_layers_write(void) { break; // No more segments } // Write segment.count LEDs - LED_TYPE *const limit = &led[MIN(segment.index + segment.count, RGBLED_NUM)]; - for (LED_TYPE *led_ptr = &led[segment.index]; led_ptr < limit; led_ptr++) { + rgb_led_t *const limit = &led[MIN(segment.index + segment.count, RGBLED_NUM)]; + for (rgb_led_t *led_ptr = &led[segment.index]; led_ptr < limit; led_ptr++) { # ifdef RGBLIGHT_LAYERS_RETAIN_VAL sethsv(segment.hue, segment.sat, current_val, led_ptr); # else @@ -897,15 +897,15 @@ void rgblight_wakeup(void) { #endif -__attribute__((weak)) void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) { +__attribute__((weak)) void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds) { ws2812_setleds(start_led, num_leds); } #ifndef RGBLIGHT_CUSTOM_DRIVER void rgblight_set(void) { - LED_TYPE *start_led; - uint8_t num_leds = rgblight_ranges.clipping_num_leds; + rgb_led_t *start_led; + uint8_t num_leds = rgblight_ranges.clipping_num_leds; if (!rgblight_config.enable) { for (uint8_t i = rgblight_ranges.effect_start_pos; i < rgblight_ranges.effect_end_pos; i++) { @@ -931,7 +931,7 @@ void rgblight_set(void) { # endif # ifdef RGBLIGHT_LED_MAP - LED_TYPE led0[RGBLED_NUM]; + rgb_led_t led0[RGBLED_NUM]; for (uint8_t i = 0; i < RGBLED_NUM; i++) { led0[i] = led[pgm_read_byte(&led_map[i])]; } @@ -1230,7 +1230,7 @@ void rgblight_effect_rainbow_swirl(animation_status_t *anim) { for (i = 0; i < rgblight_ranges.effect_num_leds; i++) { hue = (RGBLIGHT_RAINBOW_SWIRL_RANGE / rgblight_ranges.effect_num_leds * i + anim->current_hue); - sethsv(hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i + rgblight_ranges.effect_start_pos]); + sethsv(hue, rgblight_config.sat, rgblight_config.val, (rgb_led_t *)&led[i + rgblight_ranges.effect_start_pos]); } rgblight_set(); @@ -1267,10 +1267,10 @@ void rgblight_effect_snake(animation_status_t *anim) { # endif for (i = 0; i < rgblight_ranges.effect_num_leds; i++) { - LED_TYPE *ledp = led + i + rgblight_ranges.effect_start_pos; - ledp->r = 0; - ledp->g = 0; - ledp->b = 0; + rgb_led_t *ledp = led + i + rgblight_ranges.effect_start_pos; + ledp->r = 0; + ledp->g = 0; + ledp->b = 0; # ifdef RGBW ledp->w = 0; # endif @@ -1340,7 +1340,7 @@ void rgblight_effect_knight(animation_status_t *anim) { cur = (i + RGBLIGHT_EFFECT_KNIGHT_OFFSET) % rgblight_ranges.effect_num_leds + rgblight_ranges.effect_start_pos; if (i >= low_bound && i <= high_bound) { - sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[cur]); + sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, (rgb_led_t *)&led[cur]); } else { led[cur].r = 0; led[cur].g = 0; @@ -1392,7 +1392,7 @@ void rgblight_effect_christmas(animation_status_t *anim) { for (i = 0; i < rgblight_ranges.effect_num_leds; i++) { uint8_t local_hue = (i / RGBLIGHT_EFFECT_CHRISTMAS_STEP) % 2 ? hue : hue_green - hue; - sethsv(local_hue, rgblight_config.sat, val, (LED_TYPE *)&led[i + rgblight_ranges.effect_start_pos]); + sethsv(local_hue, rgblight_config.sat, val, (rgb_led_t *)&led[i + rgblight_ranges.effect_start_pos]); } rgblight_set(); @@ -1415,7 +1415,7 @@ void rgblight_effect_rgbtest(animation_status_t *anim) { uint8_t b; if (maxval == 0) { - LED_TYPE tmp_led; + rgb_led_t tmp_led; sethsv(0, 255, RGBLIGHT_LIMIT_VAL, &tmp_led); maxval = tmp_led.r; } @@ -1439,7 +1439,7 @@ void rgblight_effect_rgbtest(animation_status_t *anim) { #ifdef RGBLIGHT_EFFECT_ALTERNATING void rgblight_effect_alternating(animation_status_t *anim) { for (int i = 0; i < rgblight_ranges.effect_num_leds; i++) { - LED_TYPE *ledp = led + i + rgblight_ranges.effect_start_pos; + rgb_led_t *ledp = led + i + rgblight_ranges.effect_start_pos; if (i < rgblight_ranges.effect_num_leds / 2 && anim->pos) { sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, ledp); } else if (i >= rgblight_ranges.effect_num_leds / 2 && !anim->pos) { @@ -1512,7 +1512,7 @@ void rgblight_effect_twinkle(animation_status_t *anim) { // This LED is off, and was NOT selected to start brightening } - LED_TYPE *ledp = led + i + rgblight_ranges.effect_start_pos; + rgb_led_t *ledp = led + i + rgblight_ranges.effect_start_pos; sethsv(c->h, c->s, c->v, ledp); } diff --git a/quantum/rgblight/rgblight.h b/quantum/rgblight/rgblight.h index 001058f962..450caf603e 100644 --- a/quantum/rgblight/rgblight.h +++ b/quantum/rgblight/rgblight.h @@ -233,7 +233,7 @@ void rgblight_unblink_all_but_layer(uint8_t layer); #endif -extern LED_TYPE led[RGBLED_NUM]; +extern rgb_led_t led[RGBLED_NUM]; extern const uint8_t RGBLED_BREATHING_INTERVALS[4] PROGMEM; extern const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[3] PROGMEM; @@ -283,9 +283,9 @@ typedef struct _rgblight_ranges_t { extern rgblight_ranges_t rgblight_ranges; /* === Utility Functions ===*/ -void sethsv(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1); -void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1); // without RGBLIGHT_LIMIT_VAL check -void setrgb(uint8_t r, uint8_t g, uint8_t b, LED_TYPE *led1); +void sethsv(uint8_t hue, uint8_t sat, uint8_t val, rgb_led_t *led1); +void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, rgb_led_t *led1); // without RGBLIGHT_LIMIT_VAL check +void setrgb(uint8_t r, uint8_t g, uint8_t b, rgb_led_t *led1); /* === Low level Functions === */ void rgblight_set(void); diff --git a/users/curry/rgb_lighting_user.c b/users/curry/rgb_lighting_user.c index 34156744fe..81f3c4e505 100644 --- a/users/curry/rgb_lighting_user.c +++ b/users/curry/rgb_lighting_user.c @@ -142,7 +142,7 @@ void scan_rgblight_fadeout(void) { // Don't effing change this function .... rg if (light->life) { light->life -= 1; if (get_highest_layer(layer_state) == 0) { - sethsv(light->hue + rand() % 0xF, 255, light->life, (LED_TYPE *)&led[light_index]); + sethsv(light->hue + rand() % 0xF, 255, light->life, (rgb_led_t *)&led[light_index]); } light->timer = timer_read(); } else { diff --git a/users/xtonhasvim/fancylighting.c b/users/xtonhasvim/fancylighting.c index a88ca4beb3..e3d1093b8d 100644 --- a/users/xtonhasvim/fancylighting.c +++ b/users/xtonhasvim/fancylighting.c @@ -45,7 +45,7 @@ void matrix_scan_keymap(void) { uint16_t effect_start_timer = 0; uint8_t user_rgb_mode = 0; -LED_TYPE shadowed_led[RGBLED_NUM] = {{0}}; +rgb_led_t shadowed_led[RGBLED_NUM] = {{0}}; void start_firey_return(void) { user_rgb_mode = BREATH_FIRE; @@ -79,7 +79,7 @@ void set_color_for_offsets(uint16_t time_offset, uint16_t space_offset, uint8_t float alpha = (time_progress + 0.1) * 7.0 - space_progress; alpha = fmin(1.0, alpha*alpha); - LED_TYPE px[1] = {{0}}; + rgb_led_t px[1] = {{0}}; sethsv((uint16_t)(fmod(time_progress * 1.5 + space_progress,1.0)*360), 255, (uint8_t)(progress*255),&px[0]); led[idx].r = alpha * px[0].r + ( 1.0 - alpha) * shadowed_led[idx].r; led[idx].g = alpha * px[0].g + ( 1.0 - alpha) * shadowed_led[idx].g; diff --git a/users/xtonhasvim/fancylighting.h b/users/xtonhasvim/fancylighting.h index 02fb58b84a..b1a5c725f1 100644 --- a/users/xtonhasvim/fancylighting.h +++ b/users/xtonhasvim/fancylighting.h @@ -22,7 +22,7 @@ extern uint8_t user_rgb_mode; -extern LED_TYPE shadowed_led[]; +extern rgb_led_t shadowed_led[]; #endif //RGBLIGHT_ENABLE diff --git a/users/zer09/lights.h b/users/zer09/lights.h index f1bd7245d5..380283b733 100644 --- a/users/zer09/lights.h +++ b/users/zer09/lights.h @@ -9,7 +9,7 @@ #define EECONFIG_LED_DIM_LVL (uint8_t *)15 #define SET_LED_RGB(r, g, b, led_dim, pos) \ - setrgb(r >> led_dim, g >> led_dim, b >> led_dim, (LED_TYPE *)&led[pos]) + setrgb(r >> led_dim, g >> led_dim, b >> led_dim, (rgb_led_t *)&led[pos]) typedef enum { DEFAULT, From a40cccced29990eef5dac798d522c87807aa5e3a Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 4 Sep 2023 03:13:35 +0100 Subject: [PATCH 009/496] Resolve some "Layout should not contain name of keyboard" lint warnings (#21898) --- keyboards/aeboards/ext65/rev1/info.json | 5 +++- .../ext65/rev1/keymaps/default/keymap.c | 20 ++-------------- .../aeboards/ext65/rev1/keymaps/via/keymap.c | 20 ++-------------- keyboards/aeboards/ext65/rev2/info.json | 5 +++- .../ext65/rev2/keymaps/default/keymap.c | 20 ++-------------- .../aeboards/ext65/rev2/keymaps/via/keymap.c | 20 ++-------------- keyboards/aeboards/ext65/rev3/info.json | 5 +++- .../ext65/rev3/keymaps/default/keymap.c | 20 ++-------------- .../aeboards/ext65/rev3/keymaps/via/keymap.c | 20 ++-------------- .../crimsonkeyboards/resume1800/info.json | 8 +++++-- .../resume1800/keymaps/dee/keymap.c | 2 +- .../resume1800/keymaps/default/keymap.c | 2 +- .../resume1800/keymaps/iso/keymap.c | 2 +- .../resume1800/keymaps/via/keymap.c | 2 +- keyboards/ergoslab/keymaps/default/keymap.c | 8 +++---- keyboards/ergoslab/rev1/info.json | 5 +++- keyboards/evolv/info.json | 8 +++++-- keyboards/evolv/keymaps/default/keymap.c | 22 +++-------------- keyboards/evolv/keymaps/gondolindrim/keymap.c | 8 +++---- keyboards/evolv/keymaps/iso/keymap.c | 22 +++-------------- keyboards/evolv/keymaps/via/keymap.c | 22 +++-------------- keyboards/jolofsor/denial75/info.json | 6 ++++- .../denial75/keymaps/default/keymap.c | 6 ++--- .../jolofsor/denial75/keymaps/via/keymap.c | 24 +++---------------- keyboards/moonlander/info.json | 5 +++- keyboards/moonlander/keymaps/default/keymap.c | 6 ++--- keyboards/moonlander/keymaps/via/keymap.c | 16 ++++++------- 27 files changed, 87 insertions(+), 222 deletions(-) diff --git a/keyboards/aeboards/ext65/rev1/info.json b/keyboards/aeboards/ext65/rev1/info.json index ffe8d2443e..0e110e9235 100644 --- a/keyboards/aeboards/ext65/rev1/info.json +++ b/keyboards/aeboards/ext65/rev1/info.json @@ -14,8 +14,11 @@ "cols": ["B2", "B3", "B1", "B0", "F7", "F0", "F1", "F4", "F5", "F6"], "rows": ["C6", "C7", "B5", "B6", "D7", "B4", "D4", "D6", "B7", "E6"] }, + "layout_aliases": { + "LAYOUT_ext65": "LAYOUT" + }, "layouts": { - "LAYOUT_ext65": { + "LAYOUT": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [1, 0], "x": 1, "y": 0}, diff --git a/keyboards/aeboards/ext65/rev1/keymaps/default/keymap.c b/keyboards/aeboards/ext65/rev1/keymaps/default/keymap.c index c931729258..e246b5c471 100644 --- a/keyboards/aeboards/ext65/rev1/keymaps/default/keymap.c +++ b/keyboards/aeboards/ext65/rev1/keymaps/default/keymap.c @@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght| * `------------------------------------------------------------------------------------------' */ - [0] = LAYOUT_ext65( + [0] = LAYOUT( KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, KC_ESC , 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_BSLS, KC_GRV , KC_PSCR, KC_PPLS, KC_P9 , KC_P8 , KC_P7 , 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_BSPC, KC_DEL , KC_PPLS, KC_P6 , KC_P5 , KC_P4 , 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_ENT , KC_PGUP, @@ -37,27 +37,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_PENT, KC_PDOT, KC_P0 , KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_ext65( + [1] = LAYOUT( 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, QK_BOOT, KC_TRNS, RGB_TOG, RGB_MOD, 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, EE_CLR, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, 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, DB_TOGG, KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, 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_TRNS, KC_TRNS - ), - - [2] = LAYOUT_ext65( - 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_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_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_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 - ), - - [3] = LAYOUT_ext65( - 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_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_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_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 ) }; diff --git a/keyboards/aeboards/ext65/rev1/keymaps/via/keymap.c b/keyboards/aeboards/ext65/rev1/keymaps/via/keymap.c index c931729258..e246b5c471 100644 --- a/keyboards/aeboards/ext65/rev1/keymaps/via/keymap.c +++ b/keyboards/aeboards/ext65/rev1/keymaps/via/keymap.c @@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght| * `------------------------------------------------------------------------------------------' */ - [0] = LAYOUT_ext65( + [0] = LAYOUT( KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, KC_ESC , 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_BSLS, KC_GRV , KC_PSCR, KC_PPLS, KC_P9 , KC_P8 , KC_P7 , 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_BSPC, KC_DEL , KC_PPLS, KC_P6 , KC_P5 , KC_P4 , 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_ENT , KC_PGUP, @@ -37,27 +37,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_PENT, KC_PDOT, KC_P0 , KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_ext65( + [1] = LAYOUT( 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, QK_BOOT, KC_TRNS, RGB_TOG, RGB_MOD, 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, EE_CLR, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, 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, DB_TOGG, KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, 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_TRNS, KC_TRNS - ), - - [2] = LAYOUT_ext65( - 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_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_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_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 - ), - - [3] = LAYOUT_ext65( - 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_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_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_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 ) }; diff --git a/keyboards/aeboards/ext65/rev2/info.json b/keyboards/aeboards/ext65/rev2/info.json index d9d0ee62ee..ab229e19ec 100644 --- a/keyboards/aeboards/ext65/rev2/info.json +++ b/keyboards/aeboards/ext65/rev2/info.json @@ -38,8 +38,11 @@ "cols": ["B14", "B6", "A0", "B1", "B0", "A7", "A6", "A5", "A4", "A3"], "rows": ["A10", "A9", "A8", "B7", "A2", "A1", "B12", "B11", "B10", "B2"] }, + "layout_aliases": { + "LAYOUT_ext65": "LAYOUT" + }, "layouts": { - "LAYOUT_ext65": { + "LAYOUT": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [1, 0], "x": 1, "y": 0}, diff --git a/keyboards/aeboards/ext65/rev2/keymaps/default/keymap.c b/keyboards/aeboards/ext65/rev2/keymaps/default/keymap.c index c931729258..e246b5c471 100644 --- a/keyboards/aeboards/ext65/rev2/keymaps/default/keymap.c +++ b/keyboards/aeboards/ext65/rev2/keymaps/default/keymap.c @@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght| * `------------------------------------------------------------------------------------------' */ - [0] = LAYOUT_ext65( + [0] = LAYOUT( KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, KC_ESC , 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_BSLS, KC_GRV , KC_PSCR, KC_PPLS, KC_P9 , KC_P8 , KC_P7 , 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_BSPC, KC_DEL , KC_PPLS, KC_P6 , KC_P5 , KC_P4 , 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_ENT , KC_PGUP, @@ -37,27 +37,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_PENT, KC_PDOT, KC_P0 , KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_ext65( + [1] = LAYOUT( 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, QK_BOOT, KC_TRNS, RGB_TOG, RGB_MOD, 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, EE_CLR, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, 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, DB_TOGG, KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, 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_TRNS, KC_TRNS - ), - - [2] = LAYOUT_ext65( - 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_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_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_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 - ), - - [3] = LAYOUT_ext65( - 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_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_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_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 ) }; diff --git a/keyboards/aeboards/ext65/rev2/keymaps/via/keymap.c b/keyboards/aeboards/ext65/rev2/keymaps/via/keymap.c index c931729258..e246b5c471 100644 --- a/keyboards/aeboards/ext65/rev2/keymaps/via/keymap.c +++ b/keyboards/aeboards/ext65/rev2/keymaps/via/keymap.c @@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght| * `------------------------------------------------------------------------------------------' */ - [0] = LAYOUT_ext65( + [0] = LAYOUT( KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, KC_ESC , 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_BSLS, KC_GRV , KC_PSCR, KC_PPLS, KC_P9 , KC_P8 , KC_P7 , 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_BSPC, KC_DEL , KC_PPLS, KC_P6 , KC_P5 , KC_P4 , 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_ENT , KC_PGUP, @@ -37,27 +37,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_PENT, KC_PDOT, KC_P0 , KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_ext65( + [1] = LAYOUT( 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, QK_BOOT, KC_TRNS, RGB_TOG, RGB_MOD, 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, EE_CLR, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, 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, DB_TOGG, KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, 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_TRNS, KC_TRNS - ), - - [2] = LAYOUT_ext65( - 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_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_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_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 - ), - - [3] = LAYOUT_ext65( - 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_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_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_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 ) }; diff --git a/keyboards/aeboards/ext65/rev3/info.json b/keyboards/aeboards/ext65/rev3/info.json index bb507545a0..0faf6fa135 100644 --- a/keyboards/aeboards/ext65/rev3/info.json +++ b/keyboards/aeboards/ext65/rev3/info.json @@ -19,8 +19,11 @@ "cols": ["F6", "F7", "B1", "B3", "B2", "D5", "D3", "D2", "D1", "D0"], "rows": ["B5", "B6", "C6", "C7", "E6", "B0", "B4", "D7", "D4", "D6"] }, + "layout_aliases": { + "LAYOUT_ext65_hotswap": "LAYOUT" + }, "layouts": { - "LAYOUT_ext65_hotswap": { + "LAYOUT": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [1, 0], "x": 1, "y": 0}, diff --git a/keyboards/aeboards/ext65/rev3/keymaps/default/keymap.c b/keyboards/aeboards/ext65/rev3/keymaps/default/keymap.c index 72a10cae1b..ac6dd4dfed 100644 --- a/keyboards/aeboards/ext65/rev3/keymaps/default/keymap.c +++ b/keyboards/aeboards/ext65/rev3/keymaps/default/keymap.c @@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght| * `------------------------------------------------------------------------------------------' */ - [0] = LAYOUT_ext65_hotswap( + [0] = LAYOUT( KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, KC_ESC , 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_BSPC, KC_PSCR, KC_PPLS, KC_P9 , KC_P8 , KC_P7 , 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_DEL , KC_P6 , KC_P5 , KC_P4 , 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_ENT , KC_PGUP, @@ -37,27 +37,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_PDOT, KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_ext65_hotswap( + [1] = LAYOUT( 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, QK_BOOT, KC_TRNS, RGB_TOG, RGB_MOD, 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, EE_CLR, RGB_HUI, RGB_SAI, RGB_VAI, 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, DB_TOGG, KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, 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 - ), - - [2] = LAYOUT_ext65_hotswap( - 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_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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [3] = LAYOUT_ext65_hotswap( - 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_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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; diff --git a/keyboards/aeboards/ext65/rev3/keymaps/via/keymap.c b/keyboards/aeboards/ext65/rev3/keymaps/via/keymap.c index 72a10cae1b..ac6dd4dfed 100644 --- a/keyboards/aeboards/ext65/rev3/keymaps/via/keymap.c +++ b/keyboards/aeboards/ext65/rev3/keymaps/via/keymap.c @@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght| * `------------------------------------------------------------------------------------------' */ - [0] = LAYOUT_ext65_hotswap( + [0] = LAYOUT( KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, KC_ESC , 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_BSPC, KC_PSCR, KC_PPLS, KC_P9 , KC_P8 , KC_P7 , 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_DEL , KC_P6 , KC_P5 , KC_P4 , 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_ENT , KC_PGUP, @@ -37,27 +37,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_PDOT, KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_ext65_hotswap( + [1] = LAYOUT( 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, QK_BOOT, KC_TRNS, RGB_TOG, RGB_MOD, 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, EE_CLR, RGB_HUI, RGB_SAI, RGB_VAI, 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, DB_TOGG, KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, 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 - ), - - [2] = LAYOUT_ext65_hotswap( - 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_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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [3] = LAYOUT_ext65_hotswap( - 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_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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; diff --git a/keyboards/crimsonkeyboards/resume1800/info.json b/keyboards/crimsonkeyboards/resume1800/info.json index 0a967d11d6..23257be46e 100644 --- a/keyboards/crimsonkeyboards/resume1800/info.json +++ b/keyboards/crimsonkeyboards/resume1800/info.json @@ -20,8 +20,12 @@ }, "processor": "atmega32a", "bootloader": "usbasploader", + "layout_aliases": { + "LAYOUT_resume1800_ansi_all": "LAYOUT_ansi_all", + "LAYOUT_resume1800_iso_all": "LAYOUT_iso_all" + }, "layouts": { - "LAYOUT_resume1800_ansi_all": { + "LAYOUT_ansi_all": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -138,7 +142,7 @@ {"matrix": [5, 19], "x": 19, "y": 5} ] }, - "LAYOUT_resume1800_iso_all": { + "LAYOUT_iso_all": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/crimsonkeyboards/resume1800/keymaps/dee/keymap.c b/keyboards/crimsonkeyboards/resume1800/keymaps/dee/keymap.c index c7f471a113..27e1e2bc50 100644 --- a/keyboards/crimsonkeyboards/resume1800/keymaps/dee/keymap.c +++ b/keyboards/crimsonkeyboards/resume1800/keymaps/dee/keymap.c @@ -34,7 +34,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_resume1800_iso_all( + [0] = LAYOUT_iso_all( /* Esc F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 Print Scroll Lock Pause Insert End */ KC_ESC, 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_F13, KC_F14, KC_PRINT_SCREEN, KC_SCRL, KC_PAUS, KC_INS, KC_END, /* ~ 1 2 3 4 5 6 7 8 9 0 - = Backspace Delete Num Lock Num / Num * Num - */ diff --git a/keyboards/crimsonkeyboards/resume1800/keymaps/default/keymap.c b/keyboards/crimsonkeyboards/resume1800/keymaps/default/keymap.c index b8adef49b0..a8bb2c13d5 100644 --- a/keyboards/crimsonkeyboards/resume1800/keymaps/default/keymap.c +++ b/keyboards/crimsonkeyboards/resume1800/keymaps/default/keymap.c @@ -34,7 +34,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_resume1800_ansi_all( + [0] = LAYOUT_ansi_all( /* Esc F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 Print Scroll Lock Pause Insert End */ KC_ESC, 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_F13, KC_F14, KC_PSCR, KC_SCRL, KC_PAUS, KC_INS, KC_END, /* ~ 1 2 3 4 5 6 7 8 9 0 - = Backspace Delete Num Lock Num / Num * Num - */ diff --git a/keyboards/crimsonkeyboards/resume1800/keymaps/iso/keymap.c b/keyboards/crimsonkeyboards/resume1800/keymaps/iso/keymap.c index ea08c07b19..2f5f351f13 100644 --- a/keyboards/crimsonkeyboards/resume1800/keymaps/iso/keymap.c +++ b/keyboards/crimsonkeyboards/resume1800/keymaps/iso/keymap.c @@ -34,7 +34,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_resume1800_iso_all( + [0] = LAYOUT_iso_all( /* Esc F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 Print Scroll Lock Pause Insert End */ KC_ESC, 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_F13, KC_F14, KC_PSCR, KC_SCRL, KC_PAUS, KC_INS, KC_END, /* ~ 1 2 3 4 5 6 7 8 9 0 - = Backspace Delete Num Lock Num / Num * Num - */ diff --git a/keyboards/crimsonkeyboards/resume1800/keymaps/via/keymap.c b/keyboards/crimsonkeyboards/resume1800/keymaps/via/keymap.c index b8adef49b0..a8bb2c13d5 100644 --- a/keyboards/crimsonkeyboards/resume1800/keymaps/via/keymap.c +++ b/keyboards/crimsonkeyboards/resume1800/keymaps/via/keymap.c @@ -34,7 +34,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_resume1800_ansi_all( + [0] = LAYOUT_ansi_all( /* Esc F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 Print Scroll Lock Pause Insert End */ KC_ESC, 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_F13, KC_F14, KC_PSCR, KC_SCRL, KC_PAUS, KC_INS, KC_END, /* ~ 1 2 3 4 5 6 7 8 9 0 - = Backspace Delete Num Lock Num / Num * Num - */ diff --git a/keyboards/ergoslab/keymaps/default/keymap.c b/keyboards/ergoslab/keymaps/default/keymap.c index 093d586eba..e2a9f0b322 100644 --- a/keyboards/ergoslab/keymaps/default/keymap.c +++ b/keyboards/ergoslab/keymaps/default/keymap.c @@ -16,7 +16,7 @@ enum layer_names { #endif const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [BASE] = LAYOUT_ergoslab( + [BASE] = LAYOUT( KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LBRC, KC_LPRN, KC_ESC, MO(MDIA),KC_RGUI, KC_TAB, TG(MOUS), KC_BSPC, KC_RPRN, KC_RBRC ), - [MDIA] = LAYOUT_ergoslab( + [MDIA] = LAYOUT( 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_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, KC_MUTE, @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [NUMB] = LAYOUT_ergoslab( + [NUMB] = LAYOUT( KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_BSLS, KC_PIPE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_GRV, KC_COLN, KC_TILD, _______, _______, _______, @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [MOUS] = LAYOUT_ergoslab( + [MOUS] = LAYOUT( _______, _______, KC_MS_U, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_BTN3, KC_WH_D, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/ergoslab/rev1/info.json b/keyboards/ergoslab/rev1/info.json index e92dd4dccc..51c522043b 100644 --- a/keyboards/ergoslab/rev1/info.json +++ b/keyboards/ergoslab/rev1/info.json @@ -24,8 +24,11 @@ }, "processor": "atmega32u4", "bootloader": "caterina", + "layout_aliases": { + "LAYOUT_ergoslab": "LAYOUT" + }, "layouts": { - "LAYOUT_ergoslab": { + "LAYOUT": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0.625}, {"matrix": [0, 1], "x": 1, "y": 0.125}, diff --git a/keyboards/evolv/info.json b/keyboards/evolv/info.json index dc00260cf3..4274e9e437 100644 --- a/keyboards/evolv/info.json +++ b/keyboards/evolv/info.json @@ -40,8 +40,12 @@ }, "processor": "STM32F072", "bootloader": "stm32-dfu", + "layout_aliases": { + "LAYOUT_evolv_ansi": "LAYOUT_ansi", + "LAYOUT_iso_ansi": "LAYOUT_iso" + }, "layouts": { - "LAYOUT_evolv_ansi": { + "LAYOUT_ansi": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -150,7 +154,7 @@ {"matrix": [5, 14], "x": 15, "y": 5.5} ] }, - "LAYOUT_evolv_iso": { + "LAYOUT_iso": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, diff --git a/keyboards/evolv/keymaps/default/keymap.c b/keyboards/evolv/keymaps/default/keymap.c index 2286627041..d049c356b9 100755 --- a/keyboards/evolv/keymaps/default/keymap.c +++ b/keyboards/evolv/keymaps/default/keymap.c @@ -17,35 +17,19 @@ along with this program. If not, see . #include QMK_KEYBOARD_H -#define MEDIA_KEY_DELAY 100 - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_evolv_ansi( + [0] = LAYOUT_ansi( KC_ESC , 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_INS , - KC_GRV , 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_BSPC, KC_BSPC, KC_DEL , KC_VOLU, + KC_GRV , 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_BSPC, KC_BSPC, KC_DEL , KC_VOLU, 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_PGUP, KC_MPRV, KC_MPLY, KC_MNXT, 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_ENT , KC_PGDN, KC_VOLD, KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , MO(1) , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [1] = LAYOUT_evolv_ansi( + [1] = LAYOUT_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_TRNS, - _______, _______, _______, _______, _______, _______, _______, _______, _______), - [2] = LAYOUT_evolv_ansi( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______), - [3] = LAYOUT_evolv_ansi( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/evolv/keymaps/gondolindrim/keymap.c b/keyboards/evolv/keymaps/gondolindrim/keymap.c index bf0944fbd1..992901a86d 100755 --- a/keyboards/evolv/keymaps/gondolindrim/keymap.c +++ b/keyboards/evolv/keymaps/gondolindrim/keymap.c @@ -145,28 +145,28 @@ Due to the way rgblight.c stores to and re-stores RGB configurations from EEPROM Adapt this at will with the caveat that you should not have more nor less than four layers. And let's be honest, if you find yourself needing more than four layers on a 75% keyboard you are probably doing something wrong. */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_evolv_iso( + [0] = LAYOUT_iso( KC_ESC , 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_INS , KC_GRV , 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_BSPC, KC_BSPC, KC_DEL , ENCNTH, 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_ENT , KC_PGUP, ENCWST , ENCCLK, ENCEST, 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_PGDN, ENCSTH, KC_LSFT, KC_BSLS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , MO(1) , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [1] = LAYOUT_evolv_iso( + [1] = LAYOUT_iso( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCNTH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCWST , ENCCLK, ENCEST, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCSTH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_TRNS, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [2] = LAYOUT_evolv_iso( + [2] = LAYOUT_iso( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCNTH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCWST , ENCCLK, ENCEST, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCSTH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [3] = LAYOUT_evolv_iso( + [3] = LAYOUT_iso( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCNTH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCWST , ENCCLK, ENCEST, diff --git a/keyboards/evolv/keymaps/iso/keymap.c b/keyboards/evolv/keymaps/iso/keymap.c index 391bcdf5bb..379b9a51ca 100755 --- a/keyboards/evolv/keymaps/iso/keymap.c +++ b/keyboards/evolv/keymaps/iso/keymap.c @@ -17,35 +17,19 @@ along with this program. If not, see . #include QMK_KEYBOARD_H -#define MEDIA_KEY_DELAY 100 - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_evolv_iso( + [0] = LAYOUT_iso( KC_ESC , 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_INS , - KC_GRV , 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_BSPC, KC_BSPC, KC_DEL , KC_VOLU, + KC_GRV , 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_BSPC, KC_BSPC, KC_DEL , KC_VOLU, 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_ENT , KC_PGUP, KC_MPRV, KC_MPLY, KC_MNXT, 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_PGDN, KC_VOLD, KC_LSFT, KC_BSLS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , MO(1) , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [1] = LAYOUT_evolv_iso( + [1] = LAYOUT_iso( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_TRNS, - _______, _______, _______, _______, _______, _______, _______, _______, _______), - [2] = LAYOUT_evolv_iso( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______), - [3] = LAYOUT_evolv_iso( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/evolv/keymaps/via/keymap.c b/keyboards/evolv/keymaps/via/keymap.c index 391bcdf5bb..379b9a51ca 100755 --- a/keyboards/evolv/keymaps/via/keymap.c +++ b/keyboards/evolv/keymaps/via/keymap.c @@ -17,35 +17,19 @@ along with this program. If not, see . #include QMK_KEYBOARD_H -#define MEDIA_KEY_DELAY 100 - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_evolv_iso( + [0] = LAYOUT_iso( KC_ESC , 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_INS , - KC_GRV , 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_BSPC, KC_BSPC, KC_DEL , KC_VOLU, + KC_GRV , 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_BSPC, KC_BSPC, KC_DEL , KC_VOLU, 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_ENT , KC_PGUP, KC_MPRV, KC_MPLY, KC_MNXT, 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_PGDN, KC_VOLD, KC_LSFT, KC_BSLS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , MO(1) , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [1] = LAYOUT_evolv_iso( + [1] = LAYOUT_iso( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_TRNS, - _______, _______, _______, _______, _______, _______, _______, _______, _______), - [2] = LAYOUT_evolv_iso( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______), - [3] = LAYOUT_evolv_iso( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/jolofsor/denial75/info.json b/keyboards/jolofsor/denial75/info.json index 545243e410..18becc3ffb 100644 --- a/keyboards/jolofsor/denial75/info.json +++ b/keyboards/jolofsor/denial75/info.json @@ -27,8 +27,12 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", + "community_layouts": ["75_ansi"], + "layout_aliases": { + "LAYOUT_denial75_ansi": "LAYOUT_75_ansi" + }, "layouts": { - "LAYOUT_denial75_ansi": { + "LAYOUT_75_ansi": { "layout": [ {"x": 0, "y": 0, "matrix": [0, 0]}, {"x": 1.25, "y": 0, "matrix": [0, 1]}, diff --git a/keyboards/jolofsor/denial75/keymaps/default/keymap.c b/keyboards/jolofsor/denial75/keymaps/default/keymap.c index b324f24558..cf3be1f3e7 100644 --- a/keyboards/jolofsor/denial75/keymaps/default/keymap.c +++ b/keyboards/jolofsor/denial75/keymaps/default/keymap.c @@ -114,7 +114,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_denial75_ansi( + [0] = LAYOUT_75_ansi( KC_ESC, 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_PSCR, KC_INS, KC_DEL, KC_GRV, 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_BSPC, KC_HOME, 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_PGUP, @@ -123,12 +123,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_denial75_ansi( + [1] = LAYOUT_75_ansi( KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BRIU, KC_NO, LEDRED, LEDBLUE, LEDYELLOW, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BRID, KC_NO, LEDORANGE, LEDGREEN, LEDPURPLE, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAI, KC_NO, LEDWHITE, LEDPINK, LEDBLACK, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAD, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MO(1), RGB_TOG, KC_NO, KC_NO, KC_NO + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, RGB_TOG, KC_NO, KC_NO, KC_NO ) }; diff --git a/keyboards/jolofsor/denial75/keymaps/via/keymap.c b/keyboards/jolofsor/denial75/keymaps/via/keymap.c index 678522ddfb..cf3be1f3e7 100644 --- a/keyboards/jolofsor/denial75/keymaps/via/keymap.c +++ b/keyboards/jolofsor/denial75/keymaps/via/keymap.c @@ -114,7 +114,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_denial75_ansi( + [0] = LAYOUT_75_ansi( KC_ESC, 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_PSCR, KC_INS, KC_DEL, KC_GRV, 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_BSPC, KC_HOME, 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_PGUP, @@ -123,30 +123,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_denial75_ansi( + [1] = LAYOUT_75_ansi( KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BRIU, KC_NO, LEDRED, LEDBLUE, LEDYELLOW, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BRID, KC_NO, LEDORANGE, LEDGREEN, LEDPURPLE, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAI, KC_NO, LEDWHITE, LEDPINK, LEDBLACK, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAD, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MO(1), RGB_TOG, KC_NO, KC_NO, KC_NO - ), - - [2] = LAYOUT_denial75_ansi( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO - ), - - [3] = LAYOUT_denial75_ansi( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, RGB_TOG, KC_NO, KC_NO, KC_NO ) }; diff --git a/keyboards/moonlander/info.json b/keyboards/moonlander/info.json index acbb278a33..92cb898933 100644 --- a/keyboards/moonlander/info.json +++ b/keyboards/moonlander/info.json @@ -13,8 +13,11 @@ }, "processor": "STM32F303", "bootloader": "stm32-dfu", + "layout_aliases": { + "LAYOUT_moonlander": "LAYOUT" + }, "layouts": { - "LAYOUT_moonlander": { + "LAYOUT": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0.375}, {"matrix": [0, 1], "x": 1, "y": 0.375}, diff --git a/keyboards/moonlander/keymaps/default/keymap.c b/keyboards/moonlander/keymaps/default/keymap.c index 754227262f..ad7705eff8 100644 --- a/keyboards/moonlander/keymaps/default/keymap.c +++ b/keyboards/moonlander/keymaps/default/keymap.c @@ -33,7 +33,7 @@ enum custom_keycodes { // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [BASE] = LAYOUT_moonlander( + [BASE] = LAYOUT( KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HYPR, KC_MEH, KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), LGUI_T(KC_QUOT), @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_SPC, KC_BSPC, KC_LGUI, KC_LALT, KC_TAB, KC_ENT ), - [SYMB] = LAYOUT_moonlander( + [SYMB] = LAYOUT( VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, _______, _______, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, _______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, _______, _______, KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, _______, @@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RGB_HUD, RGB_VAD, RGB_HUI, TOGGLE_LAYER_COLOR,_______, _______ ), - [MDIA] = LAYOUT_moonlander( + [MDIA] = LAYOUT( LED_LEVEL,_______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, KC_MS_U, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, diff --git a/keyboards/moonlander/keymaps/via/keymap.c b/keyboards/moonlander/keymaps/via/keymap.c index 91ad0d1bf7..4b1e4c83e7 100644 --- a/keyboards/moonlander/keymaps/via/keymap.c +++ b/keyboards/moonlander/keymaps/via/keymap.c @@ -29,7 +29,7 @@ enum layers { // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [BASE] = LAYOUT_moonlander( + [BASE] = LAYOUT( KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HYPR, KC_MEH, KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), LGUI_T(KC_QUOT), @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_SPC, KC_BSPC, KC_LGUI, KC_LALT, KC_TAB, KC_ENT ), - [SYMB] = LAYOUT_moonlander( + [SYMB] = LAYOUT( QK_KB_0, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, _______, _______, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, _______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, _______, _______, KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, _______, @@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RGB_HUD, RGB_VAD, RGB_HUI, _______, _______, _______ ), - [MDIA] = LAYOUT_moonlander( + [MDIA] = LAYOUT( QK_KB_1, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, KC_MS_U, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, @@ -55,7 +55,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, KC_BTN1, KC_BTN2, _______, _______, KC_VOLU, KC_VOLD, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT_moonlander( + [3] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -63,7 +63,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [4] = LAYOUT_moonlander( + [4] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -71,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [5] = LAYOUT_moonlander( + [5] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -79,7 +79,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [6] = LAYOUT_moonlander( + [6] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -87,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [7] = LAYOUT_moonlander( + [7] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, From aec7f29df797637476390ec2b374661b61966b2a Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 4 Sep 2023 12:14:14 +1000 Subject: [PATCH 010/496] Add `mousekey.h` include to `quantum.h` (#21897) --- .../kitten_paw/keymaps/ickerwx/keymap.c | 1 - .../keymaps/vlukash_trackpad_right/keymap.c | 9 --------- .../plaid/keymaps/gipsy-king/keymap.c | 2 -- keyboards/ergodox_ez/keymaps/pvinis/keymap.c | 1 - keyboards/gboards/butterstick/sten.h | 2 -- keyboards/gboards/georgi/sten.h | 2 -- .../traveller/keymaps/default/keymap.c | 1 - quantum/quantum.h | 4 ++++ users/romus/romus.c | 20 ------------------- 9 files changed, 4 insertions(+), 38 deletions(-) diff --git a/keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c b/keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c index f0c75284f7..a2f36a303a 100644 --- a/keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c +++ b/keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c @@ -1,5 +1,4 @@ #include QMK_KEYBOARD_H -#include "mousekey.h" #define MEDAPP LT(MEDIA, KC_APP) diff --git a/keyboards/crkbd/keymaps/vlukash_trackpad_right/keymap.c b/keyboards/crkbd/keymaps/vlukash_trackpad_right/keymap.c index 2d2535cda9..5f95ad497f 100644 --- a/keyboards/crkbd/keymaps/vlukash_trackpad_right/keymap.c +++ b/keyboards/crkbd/keymaps/vlukash_trackpad_right/keymap.c @@ -1,13 +1,4 @@ #include QMK_KEYBOARD_H -#include "bootloader.h" -#include "mousekey.h" -#include "pointing_device.h" -#include "report.h" - -#ifdef PROTOCOL_LUFA - #include "lufa.h" - #include "split_util.h" -#endif extern bool isScrollMode; diff --git a/keyboards/dm9records/plaid/keymaps/gipsy-king/keymap.c b/keyboards/dm9records/plaid/keymaps/gipsy-king/keymap.c index 0d1ec2b762..a91664f0c9 100644 --- a/keyboards/dm9records/plaid/keymaps/gipsy-king/keymap.c +++ b/keyboards/dm9records/plaid/keymaps/gipsy-king/keymap.c @@ -15,8 +15,6 @@ */ #include QMK_KEYBOARD_H -#include "mousekey.h" - enum plaid_layers { _QWERTY, diff --git a/keyboards/ergodox_ez/keymaps/pvinis/keymap.c b/keyboards/ergodox_ez/keymaps/pvinis/keymap.c index dcdaa7098b..b99b2c7ffc 100644 --- a/keyboards/ergodox_ez/keymaps/pvinis/keymap.c +++ b/keyboards/ergodox_ez/keymaps/pvinis/keymap.c @@ -20,7 +20,6 @@ #include QMK_KEYBOARD_H #include "pvinis.h" -#include "mousekey.h" // layers enum { diff --git a/keyboards/gboards/butterstick/sten.h b/keyboards/gboards/butterstick/sten.h index 84c54c9e2e..42ccdd8e69 100644 --- a/keyboards/gboards/butterstick/sten.h +++ b/keyboards/gboards/butterstick/sten.h @@ -8,9 +8,7 @@ #pragma once #include QMK_KEYBOARD_H -#include "mousekey.h" #include "keymap_steno.h" -#include "wait.h" extern size_t keymapsCount; // Total keymaps extern uint32_t cChord; // Current Chord diff --git a/keyboards/gboards/georgi/sten.h b/keyboards/gboards/georgi/sten.h index b5aa79893e..44a6472044 100644 --- a/keyboards/gboards/georgi/sten.h +++ b/keyboards/gboards/georgi/sten.h @@ -7,9 +7,7 @@ #pragma once #include "georgi.h" -#include "mousekey.h" #include "keymap_steno.h" -#include "wait.h" extern size_t keymapsCount; // Total keymaps extern uint32_t cChord; // Current Chord diff --git a/keyboards/handwired/traveller/keymaps/default/keymap.c b/keyboards/handwired/traveller/keymaps/default/keymap.c index 2cd57db35f..5d2a3b3750 100644 --- a/keyboards/handwired/traveller/keymaps/default/keymap.c +++ b/keyboards/handwired/traveller/keymaps/default/keymap.c @@ -1,5 +1,4 @@ #include QMK_KEYBOARD_H -#include "mousekey.h" enum layer_names { _QW, diff --git a/quantum/quantum.h b/quantum/quantum.h index 4d183e755f..66e4569991 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -209,6 +209,10 @@ extern layer_state_t layer_state; # include "pointing_device.h" #endif +#ifdef MOUSEKEY_ENABLE +# include "mousekey.h" +#endif + #ifdef CAPS_WORD_ENABLE # include "caps_word.h" # include "process_caps_word.h" diff --git a/users/romus/romus.c b/users/romus/romus.c index e16dd3b8a0..a49a2fe205 100644 --- a/users/romus/romus.c +++ b/users/romus/romus.c @@ -1,25 +1,5 @@ #include "romus.h" -/*---------------*\ -|*-----MOUSE-----*| -\*---------------*/ -#ifdef MOUSEKEY_ENABLE -#include "mousekey.h" -#endif - -/*-------------*\ -|*-----RGB-----*| -\*-------------*/ -#ifdef RGBLIGHT_ENABLE -#include "rgblight.h" -#endif - -/*-------------*\ -|*---UNICODE---*| -\*-------------*/ -#ifdef UNICODE_ENABLE -#endif - /*-----------------*\ |*-----SECRETS-----*| \*-----------------*/ From 5fab310e65f30514ec5d119af756f9a45e7e8454 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 5 Sep 2023 01:53:05 +0100 Subject: [PATCH 011/496] Implement data driven wear leveling (#21906) * DD encoder map, wear leveling * remove encoder map from DD let's avoid the support headache * wear leveling: specify the allowed drivers by name Co-authored-by: Ryan * Add additional params * Relocate under eeprom * disable parsing --------- Co-authored-by: Dimitris Mantzouranis Co-authored-by: Ryan --- data/mappings/info_config.hjson | 4 ++++ data/mappings/info_rules.hjson | 1 + data/schemas/keyboard.jsonschema | 14 +++++++++++++- docs/reference_info_json.md | 7 +++++++ 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index ab9a4a0e45..c3db2e46a2 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -49,6 +49,10 @@ "DYNAMIC_KEYMAP_EEPROM_MAX_ADDR": {"info_key": "dynamic_keymap.eeprom_max_addr", "value_type": "int"}, "DYNAMIC_KEYMAP_LAYER_COUNT": {"info_key": "dynamic_keymap.layer_count", "value_type": "int"}, + // EEPROM + "WEAR_LEVELING_BACKING_SIZE": {"info_key": "eeprom.wear_leveling.backing_size", "value_type": "int", "to_json": false}, + "WEAR_LEVELING_LOGICAL_SIZE": {"info_key": "eeprom.wear_leveling.logical_size", "value_type": "int", "to_json": false}, + // Indicators "LED_CAPS_LOCK_PIN": {"info_key": "indicators.caps_lock"}, "LED_NUM_LOCK_PIN": {"info_key": "indicators.num_lock"}, diff --git a/data/mappings/info_rules.hjson b/data/mappings/info_rules.hjson index 07191551da..6a0f0a3030 100644 --- a/data/mappings/info_rules.hjson +++ b/data/mappings/info_rules.hjson @@ -42,6 +42,7 @@ "STENO_ENABLE": {"info_key": "stenography.enabled", "value_type": "bool"}, "STENO_PROTOCOL": {"info_key": "stenography.protocol"}, "WAIT_FOR_USB": {"info_key": "usb.wait_for", "value_type": "bool"}, + "WEAR_LEVELING_DRIVER": {"info_key": "eeprom.wear_leveling.driver"}, "WS2812_DRIVER": {"info_key": "ws2812.driver"}, // Items we want flagged in lint diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 901caa75fe..0f0576b1c3 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -247,7 +247,19 @@ }, "eeprom": { "properties": { - "driver": {"type": "string"} + "driver": {"type": "string"}, + "wear_leveling": { + "type": "object", + "additionalProperties": false, + "properties": { + "driver": { + "type": "string", + "enum": ["custom", "embedded_flash", "legacy", "rp2040_flash", "spi_flash"] + }, + "backing_size": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "logical_size": {"$ref": "qmk.definitions.v1#/unsigned_int"} + } + } } }, "encoder": { diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 91581afc73..b81aacb43c 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -202,6 +202,13 @@ Configures the [EEPROM](eeprom_driver.md) driver. * `driver` * The EEPROM backend to use. Must be one of `custom`, `i2c`, `legacy_stm32_flash`, `spi`, `transient`, `vendor`, `wear_leveling`. * Default: `"vendor"` + * `wear_leveling` + * `driver` + * The driver to use. Must be one of `embedded_flash`, `legacy`, `rp2040_flash`, `spi_flash`, `custom`. + * `backing_size` + * Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size. + * `logical_size` + * Number of bytes “exposed” to the rest of QMK and denotes the size of the usable EEPROM. ## Encoder :id=encoder From 3aebc8acb06bcef11bee989c62f1696c6d09e182 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Tue, 5 Sep 2023 20:51:34 -0700 Subject: [PATCH 012/496] Add RTC IRQ Priority to RP2040 board files (#21926) --- .../chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h | 1 + platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h | 1 + platforms/chibios/boards/QMK_BLOK/configs/mcuconf.h | 1 + platforms/chibios/boards/QMK_PM2040/configs/mcuconf.h | 1 + 4 files changed, 4 insertions(+) diff --git a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h index 8621807cbb..4f39793264 100644 --- a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h @@ -54,6 +54,7 @@ #define RP_IRQ_USB0_PRIORITY 3 #define RP_IRQ_I2C0_PRIORITY 2 #define RP_IRQ_I2C1_PRIORITY 2 +#define RP_IRQ_RTC_PRIORITY 3 /* * ADC driver system settings. diff --git a/platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h index 902f9b5005..3a10f67727 100644 --- a/platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h @@ -54,6 +54,7 @@ #define RP_IRQ_USB0_PRIORITY 3 #define RP_IRQ_I2C0_PRIORITY 2 #define RP_IRQ_I2C1_PRIORITY 2 +#define RP_IRQ_RTC_PRIORITY 3 /* * ADC driver system settings. diff --git a/platforms/chibios/boards/QMK_BLOK/configs/mcuconf.h b/platforms/chibios/boards/QMK_BLOK/configs/mcuconf.h index 0c2ef592d6..d5dec0fcd0 100644 --- a/platforms/chibios/boards/QMK_BLOK/configs/mcuconf.h +++ b/platforms/chibios/boards/QMK_BLOK/configs/mcuconf.h @@ -54,6 +54,7 @@ #define RP_IRQ_USB0_PRIORITY 3 #define RP_IRQ_I2C0_PRIORITY 2 #define RP_IRQ_I2C1_PRIORITY 2 +#define RP_IRQ_RTC_PRIORITY 3 /* * ADC driver system settings. diff --git a/platforms/chibios/boards/QMK_PM2040/configs/mcuconf.h b/platforms/chibios/boards/QMK_PM2040/configs/mcuconf.h index 493dcf6434..e3351deb3b 100644 --- a/platforms/chibios/boards/QMK_PM2040/configs/mcuconf.h +++ b/platforms/chibios/boards/QMK_PM2040/configs/mcuconf.h @@ -54,6 +54,7 @@ #define RP_IRQ_USB0_PRIORITY 3 #define RP_IRQ_I2C0_PRIORITY 2 #define RP_IRQ_I2C1_PRIORITY 2 +#define RP_IRQ_RTC_PRIORITY 3 /* * ADC driver system settings. From 32c90bf026f6775d71ea8c41d7db21ad1e8a1170 Mon Sep 17 00:00:00 2001 From: cttt <57359810+ctt-t@users.noreply.github.com> Date: Thu, 7 Sep 2023 00:05:31 +0800 Subject: [PATCH 013/496] [Refactor] Make changes to some pins (#21380) --- keyboards/citrus/erdnuss65/info.json | 52 +++++++++---------- .../citrus/erdnuss65/keymaps/default/keymap.c | 11 ++-- .../citrus/erdnuss65/keymaps/via/keymap.c | 13 +++-- 3 files changed, 35 insertions(+), 41 deletions(-) diff --git a/keyboards/citrus/erdnuss65/info.json b/keyboards/citrus/erdnuss65/info.json index 44d597ffb4..4faaa05431 100644 --- a/keyboards/citrus/erdnuss65/info.json +++ b/keyboards/citrus/erdnuss65/info.json @@ -1,43 +1,39 @@ { - "keyboard_name": "Erdnuss65", "manufacturer": "Citrus Lab", - "processor": "STM32F103", - "bootloader": "stm32duino", + "keyboard_name": "Erdnuss65", "maintainer": "ctt", - "usb": { - "vid": "0x636C", - "pid": "0x6374", - "device_version": "0.0.1" - }, - "matrix_pins": { - "rows": ["B10", "B1", "B0", "A7", "A6"], - "cols": ["B12", "B14", "B15", "A8", "B13", "B3", "B4", "B5", "A1", "A2", "A0", "A3", "A4", "A5", "B11"] - }, + "bootloader": "stm32duino", "diode_direction": "COL2ROW", "features": { "bootmagic": true, - "mousekey": true, "extrakey": true, - "console": false, - "command": false, + "mousekey": true, "nkro": true, - "backlight": false, - "rgblight": true, - "audio": false + "rgblight": true + }, + "matrix_pins": { + "cols": ["B12", "B14", "B15", "B5", "B13", "B3", "B4", "B6", "A0", "A1", "A2", "A3", "A4", "A5", "B11"], + "rows": ["B10", "B1", "B0", "A7", "A6"] + }, + "processor": "STM32F103", + "rgblight": { + "led_count": 1 + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x6374", + "vid": "0x636C" }, "ws2812": { "pin": "A15" }, - "rgblight": { - "led_count": 1 - }, "layouts": { "LAYOUT": { "layout": [ {"label": "ESC K00 (B10,B12)", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1 K01 (B10,B14)", "matrix": [0, 1], "x": 1, "y": 0}, {"label": "2 K02 (B10,B15)", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "3 K03 (B10,A8)", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "3 K03 (B10,B5)", "matrix": [0, 3], "x": 3, "y": 0}, {"label": "4 K04 (B10,B13)", "matrix": [0, 4], "x": 4, "y": 0}, {"label": "5 K05 (B10,B3)", "matrix": [0, 5], "x": 5, "y": 0}, {"label": "6 K06 (B10,B4)", "matrix": [0, 6], "x": 6, "y": 0}, @@ -52,7 +48,7 @@ {"label": "TAB (B1,B12)", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"label": "Q (B1,B14)", "matrix": [1, 1], "x": 1.5, "y": 1}, {"label": "W (B1,B15)", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E (B1,A8)", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "E (B1,B5)", "matrix": [1, 3], "x": 3.5, "y": 1}, {"label": "R (B1,B13)", "matrix": [1, 4], "x": 4.5, "y": 1}, {"label": "T (B1,B3)", "matrix": [1, 5], "x": 5.5, "y": 1}, {"label": "Y (B1,B4)", "matrix": [1, 6], "x": 6.5, "y": 1}, @@ -64,10 +60,10 @@ {"label": "] (B1,A4)", "matrix": [1, 12], "x": 12.5, "y": 1}, {"label": "\" (B1,A5)", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, {"label": "DEL (B1,B11)", "matrix": [1, 14], "x": 15, "y": 1}, - {"label": "CAPSLOCK (B0,B12)", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.25}, + {"label": "CAPSLOCK (B0,B12)", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, {"label": "A (B0,B14)", "matrix": [2, 1], "x": 1.75, "y": 2}, {"label": "S (B0,B15)", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D (B0,A8)", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "D (B0,B5)", "matrix": [2, 3], "x": 3.75, "y": 2}, {"label": "F (B0,B13)", "matrix": [2, 4], "x": 4.75, "y": 2}, {"label": "G (B0,B3)", "matrix": [2, 5], "x": 5.75, "y": 2}, {"label": "H (B0,B4)", "matrix": [2, 6], "x": 6.75, "y": 2}, @@ -81,7 +77,7 @@ {"label": "LSHIFT (A7,B12)", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, {"label": "Z (A7,B14)", "matrix": [3, 1], "x": 2.25, "y": 3}, {"label": "X (A7,B15)", "matrix": [3, 2], "x": 3.25, "y": 3}, - {"label": "C (A7,A8)", "matrix": [3, 3], "x": 4.25, "y": 3}, + {"label": "C (A7,B5)", "matrix": [3, 3], "x": 4.25, "y": 3}, {"label": "V (A7,B13)", "matrix": [3, 4], "x": 5.25, "y": 3}, {"label": "B (A7,B3)", "matrix": [3, 5], "x": 6.25, "y": 3}, {"label": "N (A7,B4)", "matrix": [3, 6], "x": 7.25, "y": 3}, @@ -95,12 +91,12 @@ {"label": "LCTRL (A6,B12)", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, {"label": "WIN (A6,B14)", "matrix": [4, 1], "x": 1.5, "y": 4}, {"label": "ALT (A6,B15)", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"label": "SPACE (A6,A8)", "matrix": [4, 3], "x": 4, "y": 4, "w": 7}, + {"label": "SPACE (A6,B5)", "matrix": [4, 3], "x": 4, "y": 4, "w": 7}, {"label": "FN (A6,A0)", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, {"label": "LEFT (A6,A4)", "matrix": [4, 12], "x": 13, "y": 4}, {"label": "DOWN (A6,A5)", "matrix": [4, 13], "x": 14, "y": 4}, {"label": "RIGHT (A6,B11)", "matrix": [4, 14], "x": 15, "y": 4} - ] + ] } } } diff --git a/keyboards/citrus/erdnuss65/keymaps/default/keymap.c b/keyboards/citrus/erdnuss65/keymaps/default/keymap.c index 0daef5af64..fdc36ae65e 100644 --- a/keyboards/citrus/erdnuss65/keymaps/default/keymap.c +++ b/keyboards/citrus/erdnuss65/keymaps/default/keymap.c @@ -5,19 +5,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - KC_ESC, 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_BSPC, KC_INS, + QK_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_BSPC, KC_INS, 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_DEL, 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_ENT, KC_PGUP, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), 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_MPRV, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, RESET, KC_MNXT, + KC_TILD, 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_MPRV, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, QK_BOOT, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, KC_HOME, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MYCM, KC_VOLU, KC_END, - _______, _______, _______, _______, _______, KC_MUTE, KC_VOLU, KC_MPLY + _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_MPLY ) }; - diff --git a/keyboards/citrus/erdnuss65/keymaps/via/keymap.c b/keyboards/citrus/erdnuss65/keymaps/via/keymap.c index 0f1bf9525e..3014b72cfe 100644 --- a/keyboards/citrus/erdnuss65/keymaps/via/keymap.c +++ b/keyboards/citrus/erdnuss65/keymaps/via/keymap.c @@ -5,19 +5,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - KC_ESC, 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_BSPC, KC_INS, + QK_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_BSPC, KC_INS, 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_DEL, 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_ENT, KC_PGUP, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), 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_MPRV, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, RESET, KC_MNXT, + KC_TILD, 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_MPRV, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, QK_BOOT, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, KC_HOME, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MYCM, KC_VOLU, KC_END, - _______, _______, _______, _______, _______, KC_MUTE, KC_VOLU, KC_MPLY + _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_MPLY ), [2] = LAYOUT( @@ -34,6 +34,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - + ) }; From 9d4347b699daab3be51f380b732e853126f817e8 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Wed, 6 Sep 2023 10:30:10 -0700 Subject: [PATCH 014/496] Enable RP2040 support for apa102 RGB LED driver (#21908) --- drivers/led/apa102.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/led/apa102.c b/drivers/led/apa102.c index 87db19523c..527519eb8a 100644 --- a/drivers/led/apa102.c +++ b/drivers/led/apa102.c @@ -24,7 +24,7 @@ # elif defined(PROTOCOL_CHIBIOS) # include "hal.h" # include "chibios_config.h" -# if defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32L0XX) || defined(GD32VF103) +# if defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32L0XX) || defined(GD32VF103) || defined(MCU_RP) # define APA102_NOPS (100 / (1000000000L / (CPU_CLOCK / 4))) // This calculates how many loops of 4 nops to run to delay 100 ns # else # error APA102_NOPS configuration required From 4a51f06c830abf9f3d82a78b6a6eff64539e0e2b Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 7 Sep 2023 06:42:46 +1000 Subject: [PATCH 015/496] BIOI keyboards: use core UART driver (#21879) --- keyboards/bioi/ble.h | 30 - keyboards/bioi/{ble.c => bluetooth_custom.c} | 28 +- keyboards/bioi/g60/rules.mk | 6 +- keyboards/bioi/g60ble/rules.mk | 7 +- keyboards/bioi/morgan65/rules.mk | 6 +- keyboards/bioi/usart.c | 1522 ------------------ keyboards/bioi/usart.h | 436 ----- 7 files changed, 16 insertions(+), 2019 deletions(-) delete mode 100644 keyboards/bioi/ble.h rename keyboards/bioi/{ble.c => bluetooth_custom.c} (94%) delete mode 100644 keyboards/bioi/usart.c delete mode 100644 keyboards/bioi/usart.h diff --git a/keyboards/bioi/ble.h b/keyboards/bioi/ble.h deleted file mode 100644 index 529ebf5241..0000000000 --- a/keyboards/bioi/ble.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2019 Basic I/O Instruments(Scott Wei) -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#include - -typedef union { - uint32_t raw; - struct { - bool init : 1; - }; -} keyboard_config_t; - -extern keyboard_config_t ble_config; - -void send_str(const char *str); -void usart_init(void); -void module_reset(void); diff --git a/keyboards/bioi/ble.c b/keyboards/bioi/bluetooth_custom.c similarity index 94% rename from keyboards/bioi/ble.c rename to keyboards/bioi/bluetooth_custom.c index 12c180966a..7d88a837d1 100644 --- a/keyboards/bioi/ble.c +++ b/keyboards/bioi/bluetooth_custom.c @@ -13,23 +13,18 @@ along with this program. If not, see . */ #include "bluetooth.h" -#include "ble.h" -#include "usart.h" +#include "uart.h" #include "progmem.h" #include "wait.h" #include "debug.h" #include "usb_descriptor.h" #include "report.h" -keyboard_config_t ble_config; - -static void bluefruit_serial_send(uint8_t); - void send_str(const char *str) { uint8_t c; while ((c = pgm_read_byte(str++))) - uart1_putc(c); + uart_write(c); } void serial_send(uint8_t data) @@ -43,7 +38,7 @@ void send_bytes(uint8_t data) sprintf(hexStr, "%02X", data); for (int j = 0; j < sizeof(hexStr) - 1; j++) { - uart1_putc(hexStr[j]); + uart_write(hexStr[j]); } } @@ -72,7 +67,12 @@ static void bluefruit_serial_send(uint8_t data) } void bluetooth_init(void) { - usart_init(); + uart_init(76800); + wait_ms(250); + + send_str(PSTR("\r\n")); + send_str(PSTR("\r\n")); + send_str(PSTR("\r\n")); } void bluetooth_task(void) {} @@ -162,13 +162,3 @@ void bluetooth_send_consumer(uint16_t usage) bluefruit_trace_footer(); #endif } - -void usart_init(void) -{ - uart1_init(UART_BAUD_SELECT_DOUBLE_SPEED(76800, 8000000L)); - wait_ms(250); - - send_str(PSTR("\r\n")); - send_str(PSTR("\r\n")); - send_str(PSTR("\r\n")); -} diff --git a/keyboards/bioi/g60/rules.mk b/keyboards/bioi/g60/rules.mk index 2b955ce793..f4532628ae 100644 --- a/keyboards/bioi/g60/rules.mk +++ b/keyboards/bioi/g60/rules.mk @@ -18,7 +18,5 @@ BLUETOOTH_ENABLE = yes VIA_ENABLE = yes # VIA support should be enabled here due to the main() loop will be compiled first. -SRC += usart.c ble.c - -OPT_DEFS += -DUART_RX1_BUFFER_SIZE=16 -DUART_TX1_BUFFER_SIZE=16 -OPT_DEFS += -DUSART1_ENABLED +QUANTUM_LIB_SRC += uart.c +SRC += bluetooth_custom.c diff --git a/keyboards/bioi/g60ble/rules.mk b/keyboards/bioi/g60ble/rules.mk index 31cc2c22b6..2e79ce77a5 100644 --- a/keyboards/bioi/g60ble/rules.mk +++ b/keyboards/bioi/g60ble/rules.mk @@ -13,8 +13,7 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes LTO_ENABLE = yes -# these lines are all for bluetooth BLUETOOTH_ENABLE = yes -SRC += usart.c ble.c -OPT_DEFS += -DUART_RX1_BUFFER_SIZE=16 -DUART_TX1_BUFFER_SIZE=16 -OPT_DEFS += -DUSART1_ENABLED + +QUANTUM_LIB_SRC += uart.c +SRC += bluetooth_custom.c diff --git a/keyboards/bioi/morgan65/rules.mk b/keyboards/bioi/morgan65/rules.mk index 2b955ce793..f4532628ae 100644 --- a/keyboards/bioi/morgan65/rules.mk +++ b/keyboards/bioi/morgan65/rules.mk @@ -18,7 +18,5 @@ BLUETOOTH_ENABLE = yes VIA_ENABLE = yes # VIA support should be enabled here due to the main() loop will be compiled first. -SRC += usart.c ble.c - -OPT_DEFS += -DUART_RX1_BUFFER_SIZE=16 -DUART_TX1_BUFFER_SIZE=16 -OPT_DEFS += -DUSART1_ENABLED +QUANTUM_LIB_SRC += uart.c +SRC += bluetooth_custom.c diff --git a/keyboards/bioi/usart.c b/keyboards/bioi/usart.c deleted file mode 100644 index f37845e5c6..0000000000 --- a/keyboards/bioi/usart.c +++ /dev/null @@ -1,1522 +0,0 @@ -/************************************************************************* - - Title: Interrupt UART library with receive/transmit circular buffers - Author: Andy Gock - Software: AVR-GCC 4.1, AVR Libc 1.4 - Hardware: any AVR with built-in UART, tested on AT90S8515 & ATmega8 at 4 Mhz - License: GNU General Public License - Usage: see README.md and Doxygen manual - - Based on original library by Peter Fluery, Tim Sharpe, Nicholas Zambetti. - - https://github.com/andygock/avr-uart - - Updated UART library (this one) by Andy Gock - https://github.com/andygock/avr-uart - - Based on updated UART library (this one) by Tim Sharpe - http://beaststwo.org/avr-uart/index.shtml - - Based on original library by Peter Fluery - http://homepage.hispeed.ch/peterfleury/avr-software.html - -*************************************************************************/ - -/************************************************************************* - -LICENSE: - Copyright (C) 2012 Andy Gock - Copyright (C) 2006 Peter Fleury - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - -*************************************************************************/ - -/************************************************************************ -uart_available, uart_flush, uart1_available, and uart1_flush functions -were adapted from the Arduino HardwareSerial.h library by Tim Sharpe on -11 Jan 2009. The license info for HardwareSerial.h is as follows: - - HardwareSerial.cpp - Hardware serial library for Wiring - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 23 November 2006 by David A. Mellis -************************************************************************/ - -/************************************************************************ -Changelog for modifications made by Tim Sharpe, starting with the current - library version on his Web site as of 05/01/2009. - -Date Description -========================================================================= -05/11/2009 Changed all existing UARTx_RECEIVE_INTERRUPT and UARTx_TRANSMIT_INTERRUPT - macros to use the "_vect" format introduced in AVR-Libc - v1.4.0. Had to split the 3290 and 6490 out of their existing - macro due to an inconsistency in the UART0_RECEIVE_INTERRUPT - vector name (seems like a typo: USART_RX_vect for the 3290/6490 - vice USART0_RX_vect for the others in the macro). - Verified all existing macro register names against the device - header files in AVR-Libc v1.6.6 to catch any inconsistencies. -05/12/2009 Added support for 48P, 88P, 168P, and 328P by adding them to the - existing 48/88/168 macro. - Added Arduino-style available() and flush() functions for both - supported UARTs. Really wanted to keep them out of the library, so - that it would be as close as possible to Peter Fleury's original - library, but has scoping issues accessing internal variables from - another program. Go C! -05/13/2009 Changed Interrupt Service Routine label from the old "SIGNAL" to - the "ISR" format introduced in AVR-Libc v1.4.0. - -************************************************************************/ - -#include -#include -#include -#include -#include "usart.h" - -/* - * constants and macros - */ - -/* size of RX/TX buffers */ -#define UART_RX0_BUFFER_MASK (UART_RX0_BUFFER_SIZE - 1) -#define UART_RX1_BUFFER_MASK (UART_RX1_BUFFER_SIZE - 1) -#define UART_RX2_BUFFER_MASK (UART_RX2_BUFFER_SIZE - 1) -#define UART_RX3_BUFFER_MASK (UART_RX3_BUFFER_SIZE - 1) - -#define UART_TX0_BUFFER_MASK (UART_TX0_BUFFER_SIZE - 1) -#define UART_TX1_BUFFER_MASK (UART_TX1_BUFFER_SIZE - 1) -#define UART_TX2_BUFFER_MASK (UART_TX2_BUFFER_SIZE - 1) -#define UART_TX3_BUFFER_MASK (UART_TX3_BUFFER_SIZE - 1) - -#if (UART_RX0_BUFFER_SIZE & UART_RX0_BUFFER_MASK) - #error RX0 buffer size is not a power of 2 -#endif -#if (UART_TX0_BUFFER_SIZE & UART_TX0_BUFFER_MASK) - #error TX0 buffer size is not a power of 2 -#endif - -#if (UART_RX1_BUFFER_SIZE & UART_RX1_BUFFER_MASK) - #error RX1 buffer size is not a power of 2 -#endif -#if (UART_TX1_BUFFER_SIZE & UART_TX1_BUFFER_MASK) - #error TX1 buffer size is not a power of 2 -#endif - -#if (UART_RX2_BUFFER_SIZE & UART_RX2_BUFFER_MASK) - #error RX2 buffer size is not a power of 2 -#endif -#if (UART_TX2_BUFFER_SIZE & UART_TX2_BUFFER_MASK) - #error TX2 buffer size is not a power of 2 -#endif - -#if (UART_RX3_BUFFER_SIZE & UART_RX3_BUFFER_MASK) - #error RX3 buffer size is not a power of 2 -#endif -#if (UART_TX3_BUFFER_SIZE & UART_TX3_BUFFER_MASK) - #error TX3 buffer size is not a power of 2 -#endif - -#if defined(__AVR_AT90S2313__) \ - || defined(__AVR_AT90S4414__) || defined(__AVR_AT90S4434__) \ - || defined(__AVR_AT90S8515__) || defined(__AVR_AT90S8535__) \ - || defined(__AVR_ATmega103__) - /* old AVR classic or ATmega103 with one UART */ - #define AT90_UART - #define UART0_RECEIVE_INTERRUPT UART_RX_vect - #define UART0_TRANSMIT_INTERRUPT UART_UDRE_vect - #define UART0_STATUS USR - #define UART0_CONTROL UCR - #define UART0_DATA UDR - #define UART0_UDRIE UDRIE -#elif defined(__AVR_AT90S2333__) || defined(__AVR_AT90S4433__) - /* old AVR classic with one UART */ - #define AT90_UART - #define UART0_RECEIVE_INTERRUPT UART_RX_vect - #define UART0_TRANSMIT_INTERRUPT UART_UDRE_vect - #define UART0_STATUS UCSRA - #define UART0_CONTROL UCSRB - #define UART0_DATA UDR - #define UART0_UDRIE UDRIE -#elif defined(__AVR_ATmega8__) || defined(__AVR_ATmega16__) || defined(__AVR_ATmega32__) \ - || defined(__AVR_ATmega323__) - /* ATmega with one USART */ - #define ATMEGA_USART - #define UART0_RECEIVE_INTERRUPT USART_RXC_vect - #define UART0_TRANSMIT_INTERRUPT USART_UDRE_vect - #define UART0_STATUS UCSRA - #define UART0_CONTROL UCSRB - #define UART0_DATA UDR - #define UART0_UDRIE UDRIE -#elif defined(__AVR_ATmega8U2__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega16U4__) || \ - defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega32U6__) - /* ATmega with one USART, but is called USART1 (untested) */ - #define ATMEGA_USART1 - #define UART1_RECEIVE_INTERRUPT USART1_RX_vect - #define UART1_TRANSMIT_INTERRUPT USART1_UDRE_vect - #define UART1_STATUS UCSR1A - #define UART1_CONTROL UCSR1B - #define UART1_DATA UDR1 - #define UART1_UDRIE UDRIE1 -#elif defined(__AVR_ATmega8515__) || defined(__AVR_ATmega8535__) - /* ATmega with one USART */ - #define ATMEGA_USART - #define UART0_RECEIVE_INTERRUPT USART_RX_vect - #define UART0_TRANSMIT_INTERRUPT USART_UDRE_vect - #define UART0_STATUS UCSRA - #define UART0_CONTROL UCSRB - #define UART0_DATA UDR - #define UART0_UDRIE UDRIE -#elif defined(__AVR_ATmega163__) - /* ATmega163 with one UART */ - #define ATMEGA_UART - #define UART0_RECEIVE_INTERRUPT UART_RX_vect - #define UART0_TRANSMIT_INTERRUPT UART_UDRE_vect - #define UART0_STATUS UCSRA - #define UART0_CONTROL UCSRB - #define UART0_DATA UDR - #define UART0_UDRIE UDRIE -#elif defined(__AVR_ATmega162__) - /* ATmega with two USART */ - #define ATMEGA_USART0 - #define ATMEGA_USART1 - #define UART0_RECEIVE_INTERRUPT USART0_RXC_vect - #define UART1_RECEIVE_INTERRUPT USART1_RXC_vect - #define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect - #define UART1_TRANSMIT_INTERRUPT USART1_UDRE_vect - #define UART0_STATUS UCSR0A - #define UART0_CONTROL UCSR0B - #define UART0_DATA UDR0 - #define UART0_UDRIE UDRIE0 - #define UART1_STATUS UCSR1A - #define UART1_CONTROL UCSR1B - #define UART1_DATA UDR1 - #define UART1_UDRIE UDRIE1 -#elif defined(__AVR_ATmega64__) || defined(__AVR_ATmega128__) - /* ATmega with two USART */ - #define ATMEGA_USART0 - #define ATMEGA_USART1 - #define UART0_RECEIVE_INTERRUPT USART0_RX_vect - #define UART1_RECEIVE_INTERRUPT USART1_RX_vect - #define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect - #define UART1_TRANSMIT_INTERRUPT USART1_UDRE_vect - #define UART0_STATUS UCSR0A - #define UART0_CONTROL UCSR0B - #define UART0_DATA UDR0 - #define UART0_UDRIE UDRIE0 - #define UART1_STATUS UCSR1A - #define UART1_CONTROL UCSR1B - #define UART1_DATA UDR1 - #define UART1_UDRIE UDRIE1 -#elif defined(__AVR_ATmega161__) - /* ATmega with UART */ - #error "AVR ATmega161 currently not supported by this libaray !" -#elif defined(__AVR_ATmega169__) - /* ATmega with one USART */ - #define ATMEGA_USART - #define UART0_RECEIVE_INTERRUPT USART0_RX_vect - #define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect - #define UART0_STATUS UCSRA - #define UART0_CONTROL UCSRB - #define UART0_DATA UDR - #define UART0_UDRIE UDRIE -#elif defined(__AVR_ATmega48__) ||defined(__AVR_ATmega88__) || defined(__AVR_ATmega168__) || \ - defined(__AVR_ATmega48P__) ||defined(__AVR_ATmega88P__) || defined(__AVR_ATmega168P__) || \ - defined(__AVR_ATmega328P__) - /* TLS-Added 48P/88P/168P/328P */ - /* ATmega with one USART */ - #define ATMEGA_USART0 - #define UART0_RECEIVE_INTERRUPT USART_RX_vect - #define UART0_TRANSMIT_INTERRUPT USART_UDRE_vect - #define UART0_STATUS UCSR0A - #define UART0_CONTROL UCSR0B - #define UART0_DATA UDR0 - #define UART0_UDRIE UDRIE0 -#elif defined(__AVR_ATtiny2313__) || defined(__AVR_ATtiny2313A__) || defined(__AVR_ATtiny4313__) - #define ATMEGA_USART - #define UART0_RECEIVE_INTERRUPT USART_RX_vect - #define UART0_TRANSMIT_INTERRUPT USART_UDRE_vect - #define UART0_STATUS UCSRA - #define UART0_CONTROL UCSRB - #define UART0_DATA UDR - #define UART0_UDRIE UDRIE -#elif defined(__AVR_ATmega329__) ||\ - defined(__AVR_ATmega649__) ||\ - defined(__AVR_ATmega325__) ||defined(__AVR_ATmega3250__) ||\ - defined(__AVR_ATmega645__) ||defined(__AVR_ATmega6450__) - /* ATmega with one USART */ - #define ATMEGA_USART0 - #define UART0_RECEIVE_INTERRUPT USART0_RX_vect - #define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect - #define UART0_STATUS UCSR0A - #define UART0_CONTROL UCSR0B - #define UART0_DATA UDR0 - #define UART0_UDRIE UDRIE0 -#elif defined(__AVR_ATmega3290__) ||\ - defined(__AVR_ATmega6490__) - /* TLS-Separated these two from the previous group because of inconsistency in the USART_RX */ - /* ATmega with one USART */ - #define ATMEGA_USART0 - #define UART0_RECEIVE_INTERRUPT USART_RX_vect - #define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect - #define UART0_STATUS UCSR0A - #define UART0_CONTROL UCSR0B - #define UART0_DATA UDR0 - #define UART0_UDRIE UDRIE0 -#elif defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega640__) - /* ATmega with four USART */ - #define ATMEGA_USART0 - #define ATMEGA_USART1 - #define ATMEGA_USART2 - #define ATMEGA_USART3 - #define UART0_RECEIVE_INTERRUPT USART0_RX_vect - #define UART1_RECEIVE_INTERRUPT USART1_RX_vect - #define UART2_RECEIVE_INTERRUPT USART2_RX_vect - #define UART3_RECEIVE_INTERRUPT USART3_RX_vect - #define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect - #define UART1_TRANSMIT_INTERRUPT USART1_UDRE_vect - #define UART2_TRANSMIT_INTERRUPT USART2_UDRE_vect - #define UART3_TRANSMIT_INTERRUPT USART3_UDRE_vect - #define UART0_STATUS UCSR0A - #define UART0_CONTROL UCSR0B - #define UART0_DATA UDR0 - #define UART0_UDRIE UDRIE0 - #define UART1_STATUS UCSR1A - #define UART1_CONTROL UCSR1B - #define UART1_DATA UDR1 - #define UART1_UDRIE UDRIE1 - #define UART2_STATUS UCSR2A - #define UART2_CONTROL UCSR2B - #define UART2_DATA UDR2 - #define UART2_UDRIE UDRIE2 - #define UART3_STATUS UCSR3A - #define UART3_CONTROL UCSR3B - #define UART3_DATA UDR3 - #define UART3_UDRIE UDRIE3 -#elif defined(__AVR_ATmega644__) - /* ATmega with one USART */ - #define ATMEGA_USART0 - #define UART0_RECEIVE_INTERRUPT USART0_RX_vect - #define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect - #define UART0_STATUS UCSR0A - #define UART0_CONTROL UCSR0B - #define UART0_DATA UDR0 - #define UART0_UDRIE UDRIE0 -#elif defined(__AVR_ATmega164P__) || defined(__AVR_ATmega324P__) || defined(__AVR_ATmega644P__) || \ - defined(__AVR_ATmega1284P__) - /* ATmega with two USART */ - #define ATMEGA_USART0 - #define ATMEGA_USART1 - #define UART0_RECEIVE_INTERRUPT USART0_RX_vect - #define UART1_RECEIVE_INTERRUPT USART1_RX_vect - #define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect - #define UART1_TRANSMIT_INTERRUPT USART1_UDRE_vect - #define UART0_STATUS UCSR0A - #define UART0_CONTROL UCSR0B - #define UART0_DATA UDR0 - #define UART0_UDRIE UDRIE0 - #define UART1_STATUS UCSR1A - #define UART1_CONTROL UCSR1B - #define UART1_DATA UDR1 - #define UART1_UDRIE UDRIE1 -#else - #error "no UART definition for MCU available" -#endif - -/* - * Module global variables - */ - -#if defined(USART0_ENABLED) - #if defined(ATMEGA_USART) || defined(ATMEGA_USART0) - static volatile uint8_t UART_TxBuf[UART_TX0_BUFFER_SIZE]; - static volatile uint8_t UART_RxBuf[UART_RX0_BUFFER_SIZE]; - - #if defined(USART0_LARGE_BUFFER) - static volatile uint16_t UART_TxHead; - static volatile uint16_t UART_TxTail; - static volatile uint16_t UART_RxHead; - static volatile uint16_t UART_RxTail; - static volatile uint8_t UART_LastRxError; - #else - static volatile uint8_t UART_TxHead; - static volatile uint8_t UART_TxTail; - static volatile uint8_t UART_RxHead; - static volatile uint8_t UART_RxTail; - static volatile uint8_t UART_LastRxError; - #endif - - #endif -#endif - -#if defined(USART1_ENABLED) - #if defined(ATMEGA_USART1) - static volatile uint8_t UART1_TxBuf[UART_TX1_BUFFER_SIZE]; - static volatile uint8_t UART1_RxBuf[UART_RX1_BUFFER_SIZE]; - - #if defined(USART1_LARGE_BUFFER) - static volatile uint16_t UART1_TxHead; - static volatile uint16_t UART1_TxTail; - static volatile uint16_t UART1_RxHead; - static volatile uint16_t UART1_RxTail; - static volatile uint8_t UART1_LastRxError; - #else - static volatile uint8_t UART1_TxHead; - static volatile uint8_t UART1_TxTail; - static volatile uint8_t UART1_RxHead; - static volatile uint8_t UART1_RxTail; - static volatile uint8_t UART1_LastRxError; - #endif - #endif -#endif - -#if defined(USART2_ENABLED) - #if defined(ATMEGA_USART2) - static volatile uint8_t UART2_TxBuf[UART_TX2_BUFFER_SIZE]; - static volatile uint8_t UART2_RxBuf[UART_RX2_BUFFER_SIZE]; - - #if defined(USART2_LARGE_BUFFER) - static volatile uint16_t UART2_TxHead; - static volatile uint16_t UART2_TxTail; - static volatile uint16_t UART2_RxHead; - static volatile uint16_t UART2_RxTail; - static volatile uint8_t UART2_LastRxError; - #else - static volatile uint8_t UART2_TxHead; - static volatile uint8_t UART2_TxTail; - static volatile uint8_t UART2_RxHead; - static volatile uint8_t UART2_RxTail; - static volatile uint8_t UART2_LastRxError; - #endif - #endif -#endif - -#if defined(USART3_ENABLED) - #if defined(ATMEGA_USART3) - static volatile uint8_t UART3_TxBuf[UART_TX3_BUFFER_SIZE]; - static volatile uint8_t UART3_RxBuf[UART_RX3_BUFFER_SIZE]; - - #if defined(USART3_LARGE_BUFFER) - static volatile uint16_t UART3_TxHead; - static volatile uint16_t UART3_TxTail; - static volatile uint16_t UART3_RxHead; - static volatile uint16_t UART3_RxTail; - static volatile uint8_t UART3_LastRxError; - #else - static volatile uint8_t UART3_TxHead; - static volatile uint8_t UART3_TxTail; - static volatile uint8_t UART3_RxHead; - static volatile uint8_t UART3_RxTail; - static volatile uint8_t UART3_LastRxError; - #endif - - #endif -#endif - -#if defined(USART0_ENABLED) - -#if defined(AT90_UART) || defined(ATMEGA_USART) || defined(ATMEGA_USART0) - -ISR(UART0_RECEIVE_INTERRUPT) -/************************************************************************* -Function: UART Receive Complete interrupt -Purpose: called when the UART has received a character -**************************************************************************/ -{ - uint16_t tmphead; - uint8_t data; - uint8_t usr; - uint8_t lastRxError; - - /* read UART status register and UART data register */ - usr = UART0_STATUS; - data = UART0_DATA; - - /* */ -#if defined(AT90_UART) - lastRxError = (usr & (_BV(FE)|_BV(DOR))); -#elif defined(ATMEGA_USART) - lastRxError = (usr & (_BV(FE)|_BV(DOR))); -#elif defined(ATMEGA_USART0) - lastRxError = (usr & (_BV(FE0)|_BV(DOR0))); -#elif defined (ATMEGA_UART) - lastRxError = (usr & (_BV(FE)|_BV(DOR))); -#endif - - /* calculate buffer index */ - tmphead = (UART_RxHead + 1) & UART_RX0_BUFFER_MASK; - - if (tmphead == UART_RxTail) { - /* error: receive buffer overflow */ - lastRxError = UART_BUFFER_OVERFLOW >> 8; - } else { - /* store new index */ - UART_RxHead = tmphead; - /* store received data in buffer */ - UART_RxBuf[tmphead] = data; - } - UART_LastRxError = lastRxError; -} - - -ISR(UART0_TRANSMIT_INTERRUPT) -/************************************************************************* -Function: UART Data Register Empty interrupt -Purpose: called when the UART is ready to transmit the next byte -**************************************************************************/ -{ - uint16_t tmptail; - - if (UART_TxHead != UART_TxTail) { - /* calculate and store new buffer index */ - tmptail = (UART_TxTail + 1) & UART_TX0_BUFFER_MASK; - UART_TxTail = tmptail; - /* get one byte from buffer and write it to UART */ - UART0_DATA = UART_TxBuf[tmptail]; /* start transmission */ - } else { - /* tx buffer empty, disable UDRE interrupt */ - UART0_CONTROL &= ~_BV(UART0_UDRIE); - } -} - - -/************************************************************************* -Function: uart0_init() -Purpose: initialize UART and set baudrate -Input: baudrate using macro UART_BAUD_SELECT() -Returns: none -**************************************************************************/ -void uart0_init(uint16_t baudrate) -{ - ATOMIC_BLOCK(ATOMIC_FORCEON) { - UART_TxHead = 0; - UART_TxTail = 0; - UART_RxHead = 0; - UART_RxTail = 0; - } - -#if defined(AT90_UART) - /* set baud rate */ - UBRR = (uint8_t) baudrate; - - /* enable UART receiver and transmitter and receive complete interrupt */ - UART0_CONTROL = _BV(RXCIE)|_BV(RXEN)|_BV(TXEN); - -#elif defined (ATMEGA_USART) - /* Set baud rate */ - if (baudrate & 0x8000) { - UART0_STATUS = (1<>8); - UBRRL = (uint8_t) baudrate; - - /* Enable USART receiver and transmitter and receive complete interrupt */ - UART0_CONTROL = _BV(RXCIE)|(1<>8); - UBRR0L = (uint8_t) baudrate; - - /* Enable USART receiver and transmitter and receive complete interrupt */ - UART0_CONTROL = _BV(RXCIE0)|(1<>8); - UBRR = (uint8_t) baudrate; - - /* Enable UART receiver and transmitter and receive complete interrupt */ - UART0_CONTROL = _BV(RXCIE)|(1<> 8; - } else { - /* store new index */ - UART1_RxHead = tmphead; - /* store received data in buffer */ - UART1_RxBuf[tmphead] = data; - } - UART1_LastRxError = lastRxError; -} - - -ISR(UART1_TRANSMIT_INTERRUPT) -/************************************************************************* -Function: UART1 Data Register Empty interrupt -Purpose: called when the UART1 is ready to transmit the next byte -**************************************************************************/ -{ - uint16_t tmptail; - - if (UART1_TxHead != UART1_TxTail) { - /* calculate and store new buffer index */ - tmptail = (UART1_TxTail + 1) & UART_TX1_BUFFER_MASK; - UART1_TxTail = tmptail; - /* get one byte from buffer and write it to UART */ - UART1_DATA = UART1_TxBuf[tmptail]; /* start transmission */ - } else { - /* tx buffer empty, disable UDRE interrupt */ - UART1_CONTROL &= ~_BV(UART1_UDRIE); - } -} - - -/************************************************************************* -Function: uart1_init() -Purpose: initialize UART1 and set baudrate -Input: baudrate using macro UART_BAUD_SELECT() -Returns: none -**************************************************************************/ -void uart1_init(uint16_t baudrate) -{ - ATOMIC_BLOCK(ATOMIC_FORCEON) { - UART1_TxHead = 0; - UART1_TxTail = 0; - UART1_RxHead = 0; - UART1_RxTail = 0; - } - - /* Set baud rate */ - if (baudrate & 0x8000) { - UART1_STATUS = (1<>8); - UBRR1L = (uint8_t) baudrate; - - /* Enable USART receiver and transmitter and receive complete interrupt */ - UART1_CONTROL = _BV(RXCIE1)|(1<> 8; - } else { - /* store new index */ - UART2_RxHead = tmphead; - /* store received data in buffer */ - UART2_RxBuf[tmphead] = data; - } - UART2_LastRxError = lastRxError; -} - - -ISR(UART2_TRANSMIT_INTERRUPT) -/************************************************************************* -Function: UART2 Data Register Empty interrupt -Purpose: called when the UART2 is ready to transmit the next byte -**************************************************************************/ -{ - uint16_t tmptail; - - - if (UART2_TxHead != UART2_TxTail) { - /* calculate and store new buffer index */ - tmptail = (UART2_TxTail + 1) & UART_TX2_BUFFER_MASK; - UART2_TxTail = tmptail; - /* get one byte from buffer and write it to UART */ - UART2_DATA = UART2_TxBuf[tmptail]; /* start transmission */ - } else { - /* tx buffer empty, disable UDRE interrupt */ - UART2_CONTROL &= ~_BV(UART2_UDRIE); - } -} - - -/************************************************************************* -Function: uart2_init() -Purpose: initialize UART2 and set baudrate -Input: baudrate using macro UART_BAUD_SELECT() -Returns: none -**************************************************************************/ -void uart2_init(uint16_t baudrate) -{ - ATOMIC_BLOCK(ATOMIC_FORCEON) { - UART2_TxHead = 0; - UART2_TxTail = 0; - UART2_RxHead = 0; - UART2_RxTail = 0; - } - - /* Set baud rate */ - if (baudrate & 0x8000) { - UART2_STATUS = (1<>8); - UBRR2L = (uint8_t) baudrate; - - /* Enable USART receiver and transmitter and receive complete interrupt */ - UART2_CONTROL = _BV(RXCIE2)|(1<> 8; - } else { - /* store new index */ - UART3_RxHead = tmphead; - /* store received data in buffer */ - UART3_RxBuf[tmphead] = data; - } - UART3_LastRxError = lastRxError; -} - - -ISR(UART3_TRANSMIT_INTERRUPT) -/************************************************************************* -Function: UART3 Data Register Empty interrupt -Purpose: called when the UART3 is ready to transmit the next byte -**************************************************************************/ -{ - uint16_t tmptail; - - - if (UART3_TxHead != UART3_TxTail) { - /* calculate and store new buffer index */ - tmptail = (UART3_TxTail + 1) & UART_TX3_BUFFER_MASK; - UART3_TxTail = tmptail; - /* get one byte from buffer and write it to UART */ - UART3_DATA = UART3_TxBuf[tmptail]; /* start transmission */ - } else { - /* tx buffer empty, disable UDRE interrupt */ - UART3_CONTROL &= ~_BV(UART3_UDRIE); - } -} - - -/************************************************************************* -Function: uart3_init() -Purpose: initialize UART3 and set baudrate -Input: baudrate using macro UART_BAUD_SELECT() -Returns: none -**************************************************************************/ -void uart3_init(uint16_t baudrate) -{ - ATOMIC_BLOCK(ATOMIC_FORCEON) { - UART3_TxHead = 0; - UART3_TxTail = 0; - UART3_RxHead = 0; - UART3_RxTail = 0; - } - - /* Set baud rate */ - if (baudrate & 0x8000) { - UART3_STATUS = (1<>8); - UBRR3L = (uint8_t) baudrate; - - /* Enable USART receiver and transmitter and receive complete interrupt */ - UART3_CONTROL = _BV(RXCIE3)|(1< @endcode - * - * @brief Interrupt UART library using the built-in UART with transmit and receive circular buffers. - * @see README.md - * - * This library can be used to transmit and receive data through the built in UART. - * - * An interrupt is generated when the UART has finished transmitting or - * receiving a byte. The interrupt handling routines use circular buffers - * for buffering received and transmitted data. - * - * The UART_RXn_BUFFER_SIZE and UART_TXn_BUFFER_SIZE constants define - * the size of the circular buffers in bytes. Note that these constants must be a power of 2. - * - * You need to define these buffer sizes as a symbol in your compiler settings or in uart.h - * - * See README.md for more detailed information. Especially that relating to symbols: USARTn_ENABLED and USARTn_LARGE_BUFFER - * - * @author Andy Gock - * @note Based on Atmel Application Note AVR306 and original library by Peter Fleury and Tim Sharpe. - */ - -/**@{*/ -#include -#include - -#if (__GNUC__ * 100 + __GNUC_MINOR__) < 304 -#error "This library requires AVR-GCC 3.4 or later, update to newer AVR-GCC compiler !" -#endif - -/* - * constants and macros - */ - -/* Enable USART 1, 2, 3 as required */ -/* Can be defined in compiler symbol setup with -D option (preferred) */ -#ifndef USART0_ENABLED - #define USART0_ENABLED /**< Enable USART0 */ -#endif -//#define USART1_ENABLED -//#define USART2_ENABLED -//#define USART3_ENABLED - -/* Set size of receive and transmit buffers */ - -#ifndef UART_RX0_BUFFER_SIZE - #define UART_RX0_BUFFER_SIZE 128 /**< Size of the circular receive buffer, must be power of 2 */ -#endif -#ifndef UART_RX1_BUFFER_SIZE - #define UART_RX1_BUFFER_SIZE 128 /**< Size of the circular receive buffer, must be power of 2 */ -#endif -#ifndef UART_RX2_BUFFER_SIZE - #define UART_RX2_BUFFER_SIZE 128 /**< Size of the circular receive buffer, must be power of 2 */ -#endif -#ifndef UART_RX3_BUFFER_SIZE - #define UART_RX3_BUFFER_SIZE 128 /**< Size of the circular receive buffer, must be power of 2 */ -#endif - -#ifndef UART_TX0_BUFFER_SIZE - #define UART_TX0_BUFFER_SIZE 128 /**< Size of the circular transmit buffer, must be power of 2 */ -#endif -#ifndef UART_TX1_BUFFER_SIZE - #define UART_TX1_BUFFER_SIZE 128 /**< Size of the circular transmit buffer, must be power of 2 */ -#endif -#ifndef UART_TX2_BUFFER_SIZE - #define UART_TX2_BUFFER_SIZE 128 /**< Size of the circular transmit buffer, must be power of 2 */ -#endif -#ifndef UART_TX3_BUFFER_SIZE - #define UART_TX3_BUFFER_SIZE 128 /**< Size of the circular transmit buffer, must be power of 2 */ -#endif - -/* Check buffer sizes are not too large for 8-bit positioning */ - -#if (UART_RX0_BUFFER_SIZE > 256 & !defined(USART0_LARGE_BUFFER)) - #error "Buffer too large, please use -DUSART0_LARGE_BUFFER switch in compiler options" -#endif - -#if (UART_RX1_BUFFER_SIZE > 256 & !defined(USART1_LARGE_BUFFER)) - #error "Buffer too large, please use -DUSART1_LARGE_BUFFER switch in compiler options" -#endif - -#if (UART_RX2_BUFFER_SIZE > 256 & !defined(USART2_LARGE_BUFFER)) - #error "Buffer too large, please use -DUSART2_LARGE_BUFFER switch in compiler options" -#endif - -#if (UART_RX3_BUFFER_SIZE > 256 & !defined(USART3_LARGE_BUFFER)) - #error "Buffer too large, please use -DUSART3_LARGE_BUFFER switch in compiler options" -#endif - -/* Check buffer sizes are not too large for *_LARGE_BUFFER operation (16-bit positioning) */ - -#if (UART_RX0_BUFFER_SIZE > 32768) - #error "Buffer too large, maximum allowed is 32768 bytes" -#endif - -#if (UART_RX1_BUFFER_SIZE > 32768) - #error "Buffer too large, maximum allowed is 32768 bytes" -#endif - -#if (UART_RX2_BUFFER_SIZE > 32768) - #error "Buffer too large, maximum allowed is 32768 bytes" -#endif - -#if (UART_RX3_BUFFER_SIZE > 32768) - #error "Buffer too large, maximum allowed is 32768 bytes" -#endif - -/** @brief UART Baudrate Expression - * @param xtalCpu system clock in Mhz, e.g. 4000000L for 4Mhz - * @param baudRate baudrate in bps, e.g. 1200, 2400, 9600 - */ -#define UART_BAUD_SELECT(baudRate,xtalCpu) (((xtalCpu)+8UL*(baudRate))/(16UL*(baudRate))-1UL) - -/** @brief UART Baudrate Expression for ATmega double speed mode - * @param xtalCpu system clock in Mhz, e.g. 4000000L for 4Mhz - * @param baudRate baudrate in bps, e.g. 1200, 2400, 9600 - */ -#define UART_BAUD_SELECT_DOUBLE_SPEED(baudRate,xtalCpu) ((((xtalCpu)+4UL*(baudRate))/(8UL*(baudRate))-1)|0x8000) - -/* test if the size of the circular buffers fits into SRAM */ - -#if defined(USART0_ENABLED) && ( (UART_RX0_BUFFER_SIZE+UART_TX0_BUFFER_SIZE) >= (RAMEND-0x60)) - #error "size of UART_RX0_BUFFER_SIZE + UART_TX0_BUFFER_SIZE larger than size of SRAM" -#endif - -#if defined(USART1_ENABLED) && ( (UART_RX1_BUFFER_SIZE+UART_TX1_BUFFER_SIZE) >= (RAMEND-0x60)) - #error "size of UART_RX1_BUFFER_SIZE + UART_TX1_BUFFER_SIZE larger than size of SRAM" -#endif - -#if defined(USART2_ENABLED) && ( (UART_RX2_BUFFER_SIZE+UART_RX2_BUFFER_SIZE) >= (RAMEND-0x60)) - #error "size of UART_RX2_BUFFER_SIZE + UART_TX2_BUFFER_SIZE larger than size of SRAM" -#endif - -#if defined(USART3_ENABLED) && ( (UART_RX3_BUFFER_SIZE+UART_RX3_BUFFER_SIZE) >= (RAMEND-0x60)) - #error "size of UART_RX3_BUFFER_SIZE + UART_TX3_BUFFER_SIZE larger than size of SRAM" -#endif - -/* -** high byte error return code of uart_getc() -*/ -#define UART_FRAME_ERROR 0x0800 /**< Framing Error by UART */ -#define UART_OVERRUN_ERROR 0x0400 /**< Overrun condition by UART */ -#define UART_BUFFER_OVERFLOW 0x0200 /**< receive ringbuffer overflow */ -#define UART_NO_DATA 0x0100 /**< no receive data available */ - -/* Macros, to allow use of legacy names */ - -/** @brief Macro to initialize USART0 (only available on selected ATmegas) @see uart0_init */ -#define uart_init(b) uart0_init(b) - -/** @brief Macro to get received byte of USART0 from ringbuffer. (only available on selected ATmega) @see uart0_getc */ -#define uart_getc() uart0_getc() - -/** @brief Macro to peek at next byte in USART0 ringbuffer */ -#define uart_peek() uart0_peek() - -/** @brief Macro to put byte to ringbuffer for transmitting via USART0 (only available on selected ATmega) @see uart0_putc */ -#define uart_putc(d) uart0_putc(d) - -/** @brief Macro to put string to ringbuffer for transmitting via USART0 (only available on selected ATmega) @see uart0_puts */ -#define uart_puts(s) uart0_puts(s) - -/** @brief Macro to put string from program memory to ringbuffer for transmitting via USART0 (only available on selected ATmega) @see uart0_puts_p */ -#define uart_puts_p(s) uart0_puts_p(s) - -/** @brief Macro to return number of bytes waiting in the receive buffer of USART0 @see uart0_available */ -#define uart_available() uart0_available() - -/** @brief Macro to flush bytes waiting in receive buffer of USART0 @see uart0_flush */ -#define uart_flush() uart0_flush() - -/* -** function prototypes -*/ - -/** - @brief Initialize UART and set baudrate - @param baudrate Specify baudrate using macro UART_BAUD_SELECT() - @return none -*/ -/*extern*/void uart0_init(uint16_t baudrate); - - -/** - * @brief Get received byte from ringbuffer - * - * Returns in the lower byte the received character and in the - * higher byte the last receive error. - * UART_NO_DATA is returned when no data is available. - * - * @return lower byte: received byte from ringbuffer - * @return higher byte: last receive status - * - \b 0 successfully received data from UART - * - \b UART_NO_DATA - *
no receive data available - * - \b UART_BUFFER_OVERFLOW - *
Receive ringbuffer overflow. - * We are not reading the receive buffer fast enough, - * one or more received character have been dropped - * - \b UART_OVERRUN_ERROR - *
Overrun condition by UART. - * A character already present in the UART UDR register was - * not read by the interrupt handler before the next character arrived, - * one or more received characters have been dropped. - * - \b UART_FRAME_ERROR - *
Framing Error by UART - */ -/*extern*/uint16_t uart0_getc(void); - -/** - * @brief Peek at next byte in ringbuffer - * - * Returns the next byte (character) of incoming UART data without removing it from the - * internal ring buffer. That is, successive calls to uartN_peek() will return the same - * character, as will the next call to uartN_getc(). - * - * UART_NO_DATA is returned when no data is available. - * - * @return lower byte: next byte in ringbuffer - * @return higher byte: last receive status - * - \b 0 successfully received data from UART - * - \b UART_NO_DATA - *
no receive data available - * - \b UART_BUFFER_OVERFLOW - *
Receive ringbuffer overflow. - * We are not reading the receive buffer fast enough, - * one or more received character have been dropped - * - \b UART_OVERRUN_ERROR - *
Overrun condition by UART. - * A character already present in the UART UDR register was - * not read by the interrupt handler before the next character arrived, - * one or more received characters have been dropped. - * - \b UART_FRAME_ERROR - *
Framing Error by UART - */ -/*extern*/uint16_t uart0_peek(void); - -/** - * @brief Put byte to ringbuffer for transmitting via UART - * @param data byte to be transmitted - * @return none - */ -/*extern*/void uart0_putc(uint8_t data); - - -/** - * @brief Put string to ringbuffer for transmitting via UART - * - * The string is buffered by the uart library in a circular buffer - * and one character at a time is transmitted to the UART using interrupts. - * Blocks if it can not write the whole string into the circular buffer. - * - * @param s string to be transmitted - * @return none - */ -/*extern*/void uart0_puts(const char *s); - - -/** - * @brief Put string from program memory to ringbuffer for transmitting via UART. - * - * The string is buffered by the uart library in a circular buffer - * and one character at a time is transmitted to the UART using interrupts. - * Blocks if it can not write the whole string into the circular buffer. - * - * @param s program memory string to be transmitted - * @return none - * @see uart0_puts_P - */ -/*extern*/void uart0_puts_p(const char *s); - -/** - * @brief Macro to automatically put a string constant into program memory - * \param __s string in program memory - */ -#define uart_puts_P(__s) uart0_puts_p(PSTR(__s)) - -/** @brief Macro to automatically put a string constant into program memory */ -#define uart0_puts_P(__s) uart0_puts_p(PSTR(__s)) - -/** - * @brief Return number of bytes waiting in the receive buffer - * @return bytes waiting in the receive buffer - */ -/*extern*/uint16_t uart0_available(void); - -/** - * @brief Flush bytes waiting in receive buffer - */ -/*extern*/void uart0_flush(void); - - -/** @brief Initialize USART1 (only available on selected ATmegas) @see uart_init */ -/*extern*/void uart1_init(uint16_t baudrate); - -/** @brief Get received byte of USART1 from ringbuffer. (only available on selected ATmega) @see uart_getc */ -/*extern*/uint16_t uart1_getc(void); - -/** @brief Peek at next byte in USART1 ringbuffer */ -/*extern*/uint16_t uart1_peek(void); - -/** @brief Put byte to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_putc */ -/*extern*/void uart1_putc(uint8_t data); - -/** @brief Put string to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_puts */ -/*extern*/void uart1_puts(const char *s); - -/** @brief Put string from program memory to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_puts_p */ -/*extern*/void uart1_puts_p(const char *s); - -/** @brief Macro to automatically put a string constant into program memory of USART1 @see uart1_puts_p */ -#define uart1_puts_P(__s) uart1_puts_p(PSTR(__s)) - -/** @brief Return number of bytes waiting in the receive buffer of USART1 */ -/*extern*/uint16_t uart1_available(void); - -/** @brief Flush bytes waiting in receive buffer of USART1 */ -/*extern*/void uart1_flush(void); - - -/** @brief Initialize USART2 (only available on selected ATmegas) @see uart_init */ -/*extern*/void uart2_init(uint16_t baudrate); - -/** @brief Get received byte of USART2 from ringbuffer. (only available on selected ATmega) @see uart_getc */ -/*extern*/uint16_t uart2_getc(void); - -/** @brief Peek at next byte in USART2 ringbuffer */ -/*extern*/uint16_t uart2_peek(void); - -/** @brief Put byte to ringbuffer for transmitting via USART2 (only available on selected ATmega) @see uart_putc */ -/*extern*/void uart2_putc(uint8_t data); - -/** @brief Put string to ringbuffer for transmitting via USART2 (only available on selected ATmega) @see uart_puts */ -/*extern*/void uart2_puts(const char *s); - -/** @brief Put string from program memory to ringbuffer for transmitting via USART2 (only available on selected ATmega) @see uart_puts_p */ -/*extern*/void uart2_puts_p(const char *s); - -/** @brief Macro to automatically put a string constant into program memory of USART2 @see uart2_puts_p */ -#define uart2_puts_P(__s) uart2_puts_p(PSTR(__s)) - -/** @brief Return number of bytes waiting in the receive buffer of USART2 */ -/*extern*/uint16_t uart2_available(void); - -/** @brief Flush bytes waiting in receive buffer of USART2 */ -/*extern*/void uart2_flush(void); - - -/** @brief Initialize USART3 (only available on selected ATmegas) @see uart_init */ -/*extern*/void uart3_init(uint16_t baudrate); - -/** @brief Get received byte of USART3 from ringbuffer. (only available on selected ATmega) @see uart_getc */ -/*extern*/uint16_t uart3_getc(void); - -/** @brief Peek at next byte in USART3 ringbuffer */ -/*extern*/uint16_t uart3_peek(void); - -/** @brief Put byte to ringbuffer for transmitting via USART3 (only available on selected ATmega) @see uart_putc */ -/*extern*/void uart3_putc(uint8_t data); - -/** @brief Put string to ringbuffer for transmitting via USART3 (only available on selected ATmega) @see uart_puts */ -/*extern*/void uart3_puts(const char *s); - -/** @brief Put string from program memory to ringbuffer for transmitting via USART3 (only available on selected ATmega) @see uart_puts_p */ -/*extern*/void uart3_puts_p(const char *s); - -/** @brief Macro to automatically put a string constant into program memory of USART3 @see uart3_puts_p */ -#define uart3_puts_P(__s) uart3_puts_p(PSTR(__s)) - -/** @brief Return number of bytes waiting in the receive buffer of USART3 */ -/*extern*/uint16_t uart3_available(void); - -/** @brief Flush bytes waiting in receive buffer of USART3 */ -/*extern*/void uart3_flush(void); - -/**@}*/ - -#endif // UART_H - From ec09c03b64b612bbc65d4ad155e9f513bf5a7008 Mon Sep 17 00:00:00 2001 From: Vino Rodrigues <366673+vinorodrigues@users.noreply.github.com> Date: Sat, 9 Sep 2023 20:17:09 +1000 Subject: [PATCH 016/496] [Keyboard] Add Binepad Pixie (#21524) * Add Binepad Pixie * Post waffle87 and drashna review recommendations applied * Post-drashna code review suggestions applied Co-authored-by: Drashna Jaelre * post zvecr review --------- Co-authored-by: Drashna Jaelre --- keyboards/binepad/pixie/config.h | 6 +++ keyboards/binepad/pixie/info.json | 49 +++++++++++++++++++ .../binepad/pixie/keymaps/default/keymap.c | 22 +++++++++ .../binepad/pixie/keymaps/default/rules.mk | 2 + keyboards/binepad/pixie/keymaps/via/keymap.c | 22 +++++++++ keyboards/binepad/pixie/keymaps/via/rules.mk | 3 ++ keyboards/binepad/pixie/readme.md | 27 ++++++++++ keyboards/binepad/pixie/rules.mk | 1 + 8 files changed, 132 insertions(+) create mode 100644 keyboards/binepad/pixie/config.h create mode 100644 keyboards/binepad/pixie/info.json create mode 100644 keyboards/binepad/pixie/keymaps/default/keymap.c create mode 100644 keyboards/binepad/pixie/keymaps/default/rules.mk create mode 100644 keyboards/binepad/pixie/keymaps/via/keymap.c create mode 100644 keyboards/binepad/pixie/keymaps/via/rules.mk create mode 100644 keyboards/binepad/pixie/readme.md create mode 100644 keyboards/binepad/pixie/rules.mk diff --git a/keyboards/binepad/pixie/config.h b/keyboards/binepad/pixie/config.h new file mode 100644 index 0000000000..00d5ddf035 --- /dev/null +++ b/keyboards/binepad/pixie/config.h @@ -0,0 +1,6 @@ +// Copyright 2023 binepad (@binepad) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define ENCODER_DEFAULT_POS 0x3 // enable 1:1 resolution diff --git a/keyboards/binepad/pixie/info.json b/keyboards/binepad/pixie/info.json new file mode 100644 index 0000000000..7d9d2ceb9a --- /dev/null +++ b/keyboards/binepad/pixie/info.json @@ -0,0 +1,49 @@ +{ + "manufacturer": "binepad", + "keyboard_name": "PIXIE", + "url": "http://binepad.com", + "maintainer": "binepad", + "processor": "RP2040", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "usb": { + "vid": "0x4249", + "pid": "0x5078", + "device_version": "1.0.0" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": false, + "encoder": true + }, + "matrix_pins": { + "cols": ["GP19", "GP4"], + "rows": ["GP28", "GP5"] + }, + "encoder": { + "rotary": [ + { + "pin_a": "GP18", + "pin_b": "GP17" + }, + { + "pin_a": "GP20", + "pin_b": "GP21" + } + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1.25, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1.25 }, + { "matrix": [1, 1], "x": 1.25, "y": 1.25 } + ] + } + } +} diff --git a/keyboards/binepad/pixie/keymaps/default/keymap.c b/keyboards/binepad/pixie/keymaps/default/keymap.c new file mode 100644 index 0000000000..b49c4db6de --- /dev/null +++ b/keyboards/binepad/pixie/keymaps/default/keymap.c @@ -0,0 +1,22 @@ +// Copyright 2023 Binepad (@binpad) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_MUTE, KC_MPLY, + KC_MPRV, KC_MNXT + ) +}; + +#if defined(ENCODER_MAP_ENABLE) + +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { + ENCODER_CCW_CW(KC_VOLD, KC_VOLU), + ENCODER_CCW_CW(KC_WH_U, KC_WH_D) + } +}; + +#endif diff --git a/keyboards/binepad/pixie/keymaps/default/rules.mk b/keyboards/binepad/pixie/keymaps/default/rules.mk new file mode 100644 index 0000000000..34789bf172 --- /dev/null +++ b/keyboards/binepad/pixie/keymaps/default/rules.mk @@ -0,0 +1,2 @@ + +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/binepad/pixie/keymaps/via/keymap.c b/keyboards/binepad/pixie/keymaps/via/keymap.c new file mode 100644 index 0000000000..b49c4db6de --- /dev/null +++ b/keyboards/binepad/pixie/keymaps/via/keymap.c @@ -0,0 +1,22 @@ +// Copyright 2023 Binepad (@binpad) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_MUTE, KC_MPLY, + KC_MPRV, KC_MNXT + ) +}; + +#if defined(ENCODER_MAP_ENABLE) + +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { + ENCODER_CCW_CW(KC_VOLD, KC_VOLU), + ENCODER_CCW_CW(KC_WH_U, KC_WH_D) + } +}; + +#endif diff --git a/keyboards/binepad/pixie/keymaps/via/rules.mk b/keyboards/binepad/pixie/keymaps/via/rules.mk new file mode 100644 index 0000000000..82b46f5873 --- /dev/null +++ b/keyboards/binepad/pixie/keymaps/via/rules.mk @@ -0,0 +1,3 @@ + +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/binepad/pixie/readme.md b/keyboards/binepad/pixie/readme.md new file mode 100644 index 0000000000..98287ab97b --- /dev/null +++ b/keyboards/binepad/pixie/readme.md @@ -0,0 +1,27 @@ +# BINEPAD PIXIE + +![BINEPAD PIXIE](https://i.imgur.com/OnQnkdUh.jpeg) + +*A 2x2 macropad with 2x rotary encoders* + +* Keyboard Maintainer: [binepad](https://github.com/binepad) +* Hardware Supported: BINPAD PIXIE +* Hardware Availability: [binepad.com](https://www.binepad.com/pixie) + +Make example for this keyboard (after setting up your build environment): + + make binepad/pixie:default + +Flashing example for this keyboard: + + make binepad/pixie:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (010) in the matrix (the bottom left key) and plug in the keyboard +* **Physical reset button**: Briefly press the PCB button located on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` or `RESET` if it is available diff --git a/keyboards/binepad/pixie/rules.mk b/keyboards/binepad/pixie/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/binepad/pixie/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From 9a29ddf6aff4dd4356bf902cb6b4932ccec6639e Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 9 Sep 2023 12:15:57 -0700 Subject: [PATCH 017/496] dnworks FRLTKL Community Layout support (#21922) * Add layout/matrix diagram [docs] * Rename `LAYOUT` to `LAYOUT_all` [refactor] * Add `LAYOUT_tkl_nofrow_iso_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_nofrow_iso` [enhancement] * Add `LAYOUT_tkl_nofrow_iso_tsangan_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_nofrow_iso_tsangan` [enhancement] * Add `LAYOUT_tkl_nofrow_iso_wkl_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_nofrow_iso_wkl` [enhancement] * Add `LAYOUT_tkl_nofrow_ansi_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_nofrow_ansi` [enhancement] * Add `LAYOUT_tkl_nofrow_ansi_tsangan_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_nofrow_ansi_tsangan` [enhancement] * Add `LAYOUT_tkl_nofrow_ansi_wkl_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_nofrow_ansi_wkl` [enhancement] * Enable Community Layout support [enhancement] --- keyboards/dnworks/frltkl/info.json | 961 +++++++++++++++++- .../dnworks/frltkl/keymaps/default/keymap.c | 4 +- keyboards/dnworks/frltkl/keymaps/via/keymap.c | 4 +- keyboards/dnworks/frltkl/matrix_diagram.md | 21 + 4 files changed, 984 insertions(+), 6 deletions(-) create mode 100644 keyboards/dnworks/frltkl/matrix_diagram.md diff --git a/keyboards/dnworks/frltkl/info.json b/keyboards/dnworks/frltkl/info.json index dda394649b..86796a6084 100644 --- a/keyboards/dnworks/frltkl/info.json +++ b/keyboards/dnworks/frltkl/info.json @@ -26,8 +26,15 @@ "rows": ["GP4","GP3","GP2","GP1","GP29","GP28","GP19","GP20","GP10","GP11"], "cols": ["GP26","GP25","GP24","GP23","GP22","GP21","GP6","GP5","GP0"] }, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, + "community_layouts": [ + "tkl_nofrow_ansi", + "tkl_nofrow_iso" + ], "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [ { "matrix": [1, 0], "x": 0, "y": 0 }, { "matrix": [0, 0], "x": 1, "y": 0 }, @@ -108,6 +115,956 @@ { "matrix": [9, 8], "x": 16.25, "y": 4 }, { "matrix": [8, 8], "x": 17.25, "y": 4 } ] - } + }, + "LAYOUT_tkl_nofrow_ansi": { + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 0}, + {"matrix": [0, 0], "x": 1, "y": 0}, + {"matrix": [1, 1], "x": 2, "y": 0}, + {"matrix": [0, 1], "x": 3, "y": 0}, + {"matrix": [1, 2], "x": 4, "y": 0}, + {"matrix": [0, 2], "x": 5, "y": 0}, + {"matrix": [1, 3], "x": 6, "y": 0}, + {"matrix": [0, 3], "x": 7, "y": 0}, + {"matrix": [1, 4], "x": 8, "y": 0}, + {"matrix": [0, 4], "x": 9, "y": 0}, + {"matrix": [1, 5], "x": 10, "y": 0}, + {"matrix": [0, 5], "x": 11, "y": 0}, + {"matrix": [1, 6], "x": 12, "y": 0}, + {"matrix": [0, 6], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 7], "x": 15.25, "y": 0}, + {"matrix": [1, 8], "x": 16.25, "y": 0}, + {"matrix": [0, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 7], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 7], "x": 15.25, "y": 1}, + {"matrix": [3, 8], "x": 16.25, "y": 1}, + {"matrix": [2, 8], "x": 17.25, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [4, 6], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 5], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [6, 8], "x": 16.25, "y": 3}, + + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [9, 3], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [8, 6], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [9, 7], "x": 13.75, "y": 4, "w": 1.25}, + {"matrix": [8, 7], "x": 15.25, "y": 4}, + {"matrix": [9, 8], "x": 16.25, "y": 4}, + {"matrix": [8, 8], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 0}, + {"matrix": [0, 0], "x": 1, "y": 0}, + {"matrix": [1, 1], "x": 2, "y": 0}, + {"matrix": [0, 1], "x": 3, "y": 0}, + {"matrix": [1, 2], "x": 4, "y": 0}, + {"matrix": [0, 2], "x": 5, "y": 0}, + {"matrix": [1, 3], "x": 6, "y": 0}, + {"matrix": [0, 3], "x": 7, "y": 0}, + {"matrix": [1, 4], "x": 8, "y": 0}, + {"matrix": [0, 4], "x": 9, "y": 0}, + {"matrix": [1, 5], "x": 10, "y": 0}, + {"matrix": [0, 5], "x": 11, "y": 0}, + {"matrix": [1, 6], "x": 12, "y": 0}, + {"matrix": [0, 6], "x": 13, "y": 0}, + {"matrix": [1, 7], "x": 14, "y": 0}, + {"matrix": [0, 7], "x": 15.25, "y": 0}, + {"matrix": [1, 8], "x": 16.25, "y": 0}, + {"matrix": [0, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 7], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 7], "x": 15.25, "y": 1}, + {"matrix": [3, 8], "x": 16.25, "y": 1}, + {"matrix": [2, 8], "x": 17.25, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [4, 6], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 5], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 14, "y": 3}, + {"matrix": [6, 8], "x": 16.25, "y": 3}, + + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [9, 3], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [8, 6], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [9, 7], "x": 13.75, "y": 4, "w": 1.25}, + {"matrix": [8, 7], "x": 15.25, "y": 4}, + {"matrix": [9, 8], "x": 16.25, "y": 4}, + {"matrix": [8, 8], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_tsangan": { + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 0}, + {"matrix": [0, 0], "x": 1, "y": 0}, + {"matrix": [1, 1], "x": 2, "y": 0}, + {"matrix": [0, 1], "x": 3, "y": 0}, + {"matrix": [1, 2], "x": 4, "y": 0}, + {"matrix": [0, 2], "x": 5, "y": 0}, + {"matrix": [1, 3], "x": 6, "y": 0}, + {"matrix": [0, 3], "x": 7, "y": 0}, + {"matrix": [1, 4], "x": 8, "y": 0}, + {"matrix": [0, 4], "x": 9, "y": 0}, + {"matrix": [1, 5], "x": 10, "y": 0}, + {"matrix": [0, 5], "x": 11, "y": 0}, + {"matrix": [1, 6], "x": 12, "y": 0}, + {"matrix": [0, 6], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 7], "x": 15.25, "y": 0}, + {"matrix": [1, 8], "x": 16.25, "y": 0}, + {"matrix": [0, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 7], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 7], "x": 15.25, "y": 1}, + {"matrix": [3, 8], "x": 16.25, "y": 1}, + {"matrix": [2, 8], "x": 17.25, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [4, 6], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 5], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [6, 8], "x": 16.25, "y": 3}, + + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [9, 0], "x": 1.5, "y": 4}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [9, 3], "x": 4, "y": 4, "w": 7}, + {"matrix": [9, 5], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [8, 6], "x": 12.5, "y": 4}, + {"matrix": [9, 7], "x": 13.5, "y": 4, "w": 1.5}, + {"matrix": [8, 7], "x": 15.25, "y": 4}, + {"matrix": [9, 8], "x": 16.25, "y": 4}, + {"matrix": [8, 8], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 0}, + {"matrix": [0, 0], "x": 1, "y": 0}, + {"matrix": [1, 1], "x": 2, "y": 0}, + {"matrix": [0, 1], "x": 3, "y": 0}, + {"matrix": [1, 2], "x": 4, "y": 0}, + {"matrix": [0, 2], "x": 5, "y": 0}, + {"matrix": [1, 3], "x": 6, "y": 0}, + {"matrix": [0, 3], "x": 7, "y": 0}, + {"matrix": [1, 4], "x": 8, "y": 0}, + {"matrix": [0, 4], "x": 9, "y": 0}, + {"matrix": [1, 5], "x": 10, "y": 0}, + {"matrix": [0, 5], "x": 11, "y": 0}, + {"matrix": [1, 6], "x": 12, "y": 0}, + {"matrix": [0, 6], "x": 13, "y": 0}, + {"matrix": [1, 7], "x": 14, "y": 0}, + {"matrix": [0, 7], "x": 15.25, "y": 0}, + {"matrix": [1, 8], "x": 16.25, "y": 0}, + {"matrix": [0, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 7], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 7], "x": 15.25, "y": 1}, + {"matrix": [3, 8], "x": 16.25, "y": 1}, + {"matrix": [2, 8], "x": 17.25, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [4, 6], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 5], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 14, "y": 3}, + {"matrix": [6, 8], "x": 16.25, "y": 3}, + + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [9, 0], "x": 1.5, "y": 4}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [9, 3], "x": 4, "y": 4, "w": 7}, + {"matrix": [9, 5], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [8, 6], "x": 12.5, "y": 4}, + {"matrix": [9, 7], "x": 13.5, "y": 4, "w": 1.5}, + {"matrix": [8, 7], "x": 15.25, "y": 4}, + {"matrix": [9, 8], "x": 16.25, "y": 4}, + {"matrix": [8, 8], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_wkl": { + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 0}, + {"matrix": [0, 0], "x": 1, "y": 0}, + {"matrix": [1, 1], "x": 2, "y": 0}, + {"matrix": [0, 1], "x": 3, "y": 0}, + {"matrix": [1, 2], "x": 4, "y": 0}, + {"matrix": [0, 2], "x": 5, "y": 0}, + {"matrix": [1, 3], "x": 6, "y": 0}, + {"matrix": [0, 3], "x": 7, "y": 0}, + {"matrix": [1, 4], "x": 8, "y": 0}, + {"matrix": [0, 4], "x": 9, "y": 0}, + {"matrix": [1, 5], "x": 10, "y": 0}, + {"matrix": [0, 5], "x": 11, "y": 0}, + {"matrix": [1, 6], "x": 12, "y": 0}, + {"matrix": [0, 6], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 7], "x": 15.25, "y": 0}, + {"matrix": [1, 8], "x": 16.25, "y": 0}, + {"matrix": [0, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 7], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 7], "x": 15.25, "y": 1}, + {"matrix": [3, 8], "x": 16.25, "y": 1}, + {"matrix": [2, 8], "x": 17.25, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [4, 6], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 5], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [6, 8], "x": 16.25, "y": 3}, + + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [9, 3], "x": 4, "y": 4, "w": 7}, + {"matrix": [9, 5], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [9, 7], "x": 13.5, "y": 4, "w": 1.5}, + {"matrix": [8, 7], "x": 15.25, "y": 4}, + {"matrix": [9, 8], "x": 16.25, "y": 4}, + {"matrix": [8, 8], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 0}, + {"matrix": [0, 0], "x": 1, "y": 0}, + {"matrix": [1, 1], "x": 2, "y": 0}, + {"matrix": [0, 1], "x": 3, "y": 0}, + {"matrix": [1, 2], "x": 4, "y": 0}, + {"matrix": [0, 2], "x": 5, "y": 0}, + {"matrix": [1, 3], "x": 6, "y": 0}, + {"matrix": [0, 3], "x": 7, "y": 0}, + {"matrix": [1, 4], "x": 8, "y": 0}, + {"matrix": [0, 4], "x": 9, "y": 0}, + {"matrix": [1, 5], "x": 10, "y": 0}, + {"matrix": [0, 5], "x": 11, "y": 0}, + {"matrix": [1, 6], "x": 12, "y": 0}, + {"matrix": [0, 6], "x": 13, "y": 0}, + {"matrix": [1, 7], "x": 14, "y": 0}, + {"matrix": [0, 7], "x": 15.25, "y": 0}, + {"matrix": [1, 8], "x": 16.25, "y": 0}, + {"matrix": [0, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 7], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 7], "x": 15.25, "y": 1}, + {"matrix": [3, 8], "x": 16.25, "y": 1}, + {"matrix": [2, 8], "x": 17.25, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [4, 6], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 5], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 14, "y": 3}, + {"matrix": [6, 8], "x": 16.25, "y": 3}, + + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [9, 3], "x": 4, "y": 4, "w": 7}, + {"matrix": [9, 5], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [9, 7], "x": 13.5, "y": 4, "w": 1.5}, + {"matrix": [8, 7], "x": 15.25, "y": 4}, + {"matrix": [9, 8], "x": 16.25, "y": 4}, + {"matrix": [8, 8], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso": { + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 0}, + {"matrix": [0, 0], "x": 1, "y": 0}, + {"matrix": [1, 1], "x": 2, "y": 0}, + {"matrix": [0, 1], "x": 3, "y": 0}, + {"matrix": [1, 2], "x": 4, "y": 0}, + {"matrix": [0, 2], "x": 5, "y": 0}, + {"matrix": [1, 3], "x": 6, "y": 0}, + {"matrix": [0, 3], "x": 7, "y": 0}, + {"matrix": [1, 4], "x": 8, "y": 0}, + {"matrix": [0, 4], "x": 9, "y": 0}, + {"matrix": [1, 5], "x": 10, "y": 0}, + {"matrix": [0, 5], "x": 11, "y": 0}, + {"matrix": [1, 6], "x": 12, "y": 0}, + {"matrix": [0, 6], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 7], "x": 15.25, "y": 0}, + {"matrix": [1, 8], "x": 16.25, "y": 0}, + {"matrix": [0, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [2, 7], "x": 15.25, "y": 1}, + {"matrix": [3, 8], "x": 16.25, "y": 1}, + {"matrix": [2, 8], "x": 17.25, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [3, 7], "x": 12.75, "y": 2}, + {"matrix": [4, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [7, 0], "x": 1.25, "y": 3}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 5], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [6, 8], "x": 16.25, "y": 3}, + + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [9, 3], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [8, 6], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [9, 7], "x": 13.75, "y": 4, "w": 1.25}, + {"matrix": [8, 7], "x": 15.25, "y": 4}, + {"matrix": [9, 8], "x": 16.25, "y": 4}, + {"matrix": [8, 8], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso_split_bs_rshift": { + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 0}, + {"matrix": [0, 0], "x": 1, "y": 0}, + {"matrix": [1, 1], "x": 2, "y": 0}, + {"matrix": [0, 1], "x": 3, "y": 0}, + {"matrix": [1, 2], "x": 4, "y": 0}, + {"matrix": [0, 2], "x": 5, "y": 0}, + {"matrix": [1, 3], "x": 6, "y": 0}, + {"matrix": [0, 3], "x": 7, "y": 0}, + {"matrix": [1, 4], "x": 8, "y": 0}, + {"matrix": [0, 4], "x": 9, "y": 0}, + {"matrix": [1, 5], "x": 10, "y": 0}, + {"matrix": [0, 5], "x": 11, "y": 0}, + {"matrix": [1, 6], "x": 12, "y": 0}, + {"matrix": [0, 6], "x": 13, "y": 0}, + {"matrix": [1, 7], "x": 14, "y": 0}, + {"matrix": [0, 7], "x": 15.25, "y": 0}, + {"matrix": [1, 8], "x": 16.25, "y": 0}, + {"matrix": [0, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [2, 7], "x": 15.25, "y": 1}, + {"matrix": [3, 8], "x": 16.25, "y": 1}, + {"matrix": [2, 8], "x": 17.25, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [3, 7], "x": 12.75, "y": 2}, + {"matrix": [4, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [7, 0], "x": 1.25, "y": 3}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 5], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 14, "y": 3}, + {"matrix": [6, 8], "x": 16.25, "y": 3}, + + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [9, 3], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [8, 6], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [9, 7], "x": 13.75, "y": 4, "w": 1.25}, + {"matrix": [8, 7], "x": 15.25, "y": 4}, + {"matrix": [9, 8], "x": 16.25, "y": 4}, + {"matrix": [8, 8], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso_tsangan": { + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 0}, + {"matrix": [0, 0], "x": 1, "y": 0}, + {"matrix": [1, 1], "x": 2, "y": 0}, + {"matrix": [0, 1], "x": 3, "y": 0}, + {"matrix": [1, 2], "x": 4, "y": 0}, + {"matrix": [0, 2], "x": 5, "y": 0}, + {"matrix": [1, 3], "x": 6, "y": 0}, + {"matrix": [0, 3], "x": 7, "y": 0}, + {"matrix": [1, 4], "x": 8, "y": 0}, + {"matrix": [0, 4], "x": 9, "y": 0}, + {"matrix": [1, 5], "x": 10, "y": 0}, + {"matrix": [0, 5], "x": 11, "y": 0}, + {"matrix": [1, 6], "x": 12, "y": 0}, + {"matrix": [0, 6], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 7], "x": 15.25, "y": 0}, + {"matrix": [1, 8], "x": 16.25, "y": 0}, + {"matrix": [0, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [2, 7], "x": 15.25, "y": 1}, + {"matrix": [3, 8], "x": 16.25, "y": 1}, + {"matrix": [2, 8], "x": 17.25, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [3, 7], "x": 12.75, "y": 2}, + {"matrix": [4, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [7, 0], "x": 1.25, "y": 3}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 5], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [6, 8], "x": 16.25, "y": 3}, + + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [9, 0], "x": 1.5, "y": 4}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [9, 3], "x": 4, "y": 4, "w": 7}, + {"matrix": [9, 5], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [8, 6], "x": 12.5, "y": 4}, + {"matrix": [9, 7], "x": 13.5, "y": 4, "w": 1.5}, + {"matrix": [8, 7], "x": 15.25, "y": 4}, + {"matrix": [9, 8], "x": 16.25, "y": 4}, + {"matrix": [8, 8], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 0}, + {"matrix": [0, 0], "x": 1, "y": 0}, + {"matrix": [1, 1], "x": 2, "y": 0}, + {"matrix": [0, 1], "x": 3, "y": 0}, + {"matrix": [1, 2], "x": 4, "y": 0}, + {"matrix": [0, 2], "x": 5, "y": 0}, + {"matrix": [1, 3], "x": 6, "y": 0}, + {"matrix": [0, 3], "x": 7, "y": 0}, + {"matrix": [1, 4], "x": 8, "y": 0}, + {"matrix": [0, 4], "x": 9, "y": 0}, + {"matrix": [1, 5], "x": 10, "y": 0}, + {"matrix": [0, 5], "x": 11, "y": 0}, + {"matrix": [1, 6], "x": 12, "y": 0}, + {"matrix": [0, 6], "x": 13, "y": 0}, + {"matrix": [1, 7], "x": 14, "y": 0}, + {"matrix": [0, 7], "x": 15.25, "y": 0}, + {"matrix": [1, 8], "x": 16.25, "y": 0}, + {"matrix": [0, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [2, 7], "x": 15.25, "y": 1}, + {"matrix": [3, 8], "x": 16.25, "y": 1}, + {"matrix": [2, 8], "x": 17.25, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [3, 7], "x": 12.75, "y": 2}, + {"matrix": [4, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [7, 0], "x": 1.25, "y": 3}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 5], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 14, "y": 3}, + {"matrix": [6, 8], "x": 16.25, "y": 3}, + + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [9, 0], "x": 1.5, "y": 4}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [9, 3], "x": 4, "y": 4, "w": 7}, + {"matrix": [9, 5], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [8, 6], "x": 12.5, "y": 4}, + {"matrix": [9, 7], "x": 13.5, "y": 4, "w": 1.5}, + {"matrix": [8, 7], "x": 15.25, "y": 4}, + {"matrix": [9, 8], "x": 16.25, "y": 4}, + {"matrix": [8, 8], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso_wkl": { + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 0}, + {"matrix": [0, 0], "x": 1, "y": 0}, + {"matrix": [1, 1], "x": 2, "y": 0}, + {"matrix": [0, 1], "x": 3, "y": 0}, + {"matrix": [1, 2], "x": 4, "y": 0}, + {"matrix": [0, 2], "x": 5, "y": 0}, + {"matrix": [1, 3], "x": 6, "y": 0}, + {"matrix": [0, 3], "x": 7, "y": 0}, + {"matrix": [1, 4], "x": 8, "y": 0}, + {"matrix": [0, 4], "x": 9, "y": 0}, + {"matrix": [1, 5], "x": 10, "y": 0}, + {"matrix": [0, 5], "x": 11, "y": 0}, + {"matrix": [1, 6], "x": 12, "y": 0}, + {"matrix": [0, 6], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 7], "x": 15.25, "y": 0}, + {"matrix": [1, 8], "x": 16.25, "y": 0}, + {"matrix": [0, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [2, 7], "x": 15.25, "y": 1}, + {"matrix": [3, 8], "x": 16.25, "y": 1}, + {"matrix": [2, 8], "x": 17.25, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [3, 7], "x": 12.75, "y": 2}, + {"matrix": [4, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [7, 0], "x": 1.25, "y": 3}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 5], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [6, 8], "x": 16.25, "y": 3}, + + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [9, 3], "x": 4, "y": 4, "w": 7}, + {"matrix": [9, 5], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [9, 7], "x": 13.5, "y": 4, "w": 1.5}, + {"matrix": [8, 7], "x": 15.25, "y": 4}, + {"matrix": [9, 8], "x": 16.25, "y": 4}, + {"matrix": [8, 8], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 0}, + {"matrix": [0, 0], "x": 1, "y": 0}, + {"matrix": [1, 1], "x": 2, "y": 0}, + {"matrix": [0, 1], "x": 3, "y": 0}, + {"matrix": [1, 2], "x": 4, "y": 0}, + {"matrix": [0, 2], "x": 5, "y": 0}, + {"matrix": [1, 3], "x": 6, "y": 0}, + {"matrix": [0, 3], "x": 7, "y": 0}, + {"matrix": [1, 4], "x": 8, "y": 0}, + {"matrix": [0, 4], "x": 9, "y": 0}, + {"matrix": [1, 5], "x": 10, "y": 0}, + {"matrix": [0, 5], "x": 11, "y": 0}, + {"matrix": [1, 6], "x": 12, "y": 0}, + {"matrix": [0, 6], "x": 13, "y": 0}, + {"matrix": [1, 7], "x": 14, "y": 0}, + {"matrix": [0, 7], "x": 15.25, "y": 0}, + {"matrix": [1, 8], "x": 16.25, "y": 0}, + {"matrix": [0, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [2, 7], "x": 15.25, "y": 1}, + {"matrix": [3, 8], "x": 16.25, "y": 1}, + {"matrix": [2, 8], "x": 17.25, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [3, 7], "x": 12.75, "y": 2}, + {"matrix": [4, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [7, 0], "x": 1.25, "y": 3}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 5], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 14, "y": 3}, + {"matrix": [6, 8], "x": 16.25, "y": 3}, + + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [9, 3], "x": 4, "y": 4, "w": 7}, + {"matrix": [9, 5], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [9, 7], "x": 13.5, "y": 4, "w": 1.5}, + {"matrix": [8, 7], "x": 15.25, "y": 4}, + {"matrix": [9, 8], "x": 16.25, "y": 4}, + {"matrix": [8, 8], "x": 17.25, "y": 4} + ] + } } } diff --git a/keyboards/dnworks/frltkl/keymaps/default/keymap.c b/keyboards/dnworks/frltkl/keymaps/default/keymap.c index 295066696d..d761ce63a7 100644 --- a/keyboards/dnworks/frltkl/keymaps/default/keymap.c +++ b/keyboards/dnworks/frltkl/keymaps/default/keymap.c @@ -17,14 +17,14 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT( +[0] = LAYOUT_all( KC_ESC, 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_BSPC, KC_BSLS, KC_INS, KC_HOME, 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_DEL, KC_END, 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_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_RSFT, MO(1), KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), -[1] = LAYOUT( +[1] = LAYOUT_all( KC_TRNS, 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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/dnworks/frltkl/keymaps/via/keymap.c b/keyboards/dnworks/frltkl/keymaps/via/keymap.c index 295066696d..d761ce63a7 100644 --- a/keyboards/dnworks/frltkl/keymaps/via/keymap.c +++ b/keyboards/dnworks/frltkl/keymaps/via/keymap.c @@ -17,14 +17,14 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT( +[0] = LAYOUT_all( KC_ESC, 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_BSPC, KC_BSLS, KC_INS, KC_HOME, 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_DEL, KC_END, 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_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_RSFT, MO(1), KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), -[1] = LAYOUT( +[1] = LAYOUT_all( KC_TRNS, 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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/dnworks/frltkl/matrix_diagram.md b/keyboards/dnworks/frltkl/matrix_diagram.md new file mode 100644 index 0000000000..6a0cbe43ed --- /dev/null +++ b/keyboards/dnworks/frltkl/matrix_diagram.md @@ -0,0 +1,21 @@ +# Matrix Diagram for dnworks DN FRLTKL + +``` +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ ┌───────┐ +│10 │00 │11 │01 │12 │02 │13 │03 │14 │04 │15 │05 │16 │06 │17 ││07 │18 │08 │ │06 │ 2u Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ └─┬─────┤ +│20 │30 │21 │31 │22 │32 │23 │33 │24 │34 │25 │35 │26 │37 ││27 │38 │28 │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ ┌──┴┐46 │ ISO Enter +│40 │50 │41 │51 │42 │52 │43 │53 │44 │54 │45 │55 │46 │ │37 │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ └───┴────┘ +│60 │70 │61 │71 │62 │72 │63 │73 │64 │74 │65 │75 │66 │77 │ │68 │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ +│80 │90 │81 │93 │85 │95 │86 │97 ││87 │98 │88 │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ +┌────────┐ ┌──────────┐ +│60 │ 2.25u LShift 2.75u RShift │66 │ +└────────┘ └──────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│80 │90 │81 │93 │95 │86 │97 │ Tsangan/WKL +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` From 3561c3a1f93d107057f76b8fba8bd4547da2d542 Mon Sep 17 00:00:00 2001 From: Falco Gerritsjans Date: Mon, 11 Sep 2023 22:43:16 +0200 Subject: [PATCH 018/496] Repair malformed links in keyboard README files (#21969) --- keyboards/alpine65/readme.md | 2 +- keyboards/pkb65/readme.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/alpine65/readme.md b/keyboards/alpine65/readme.md index 0be4396176..6ae9f03e6d 100644 --- a/keyboards/alpine65/readme.md +++ b/keyboards/alpine65/readme.md @@ -4,7 +4,7 @@ This is the QMK firmware repository for the Alpine65, a 65% hotswap keyboard designed by Bitmap Designs and Gondolindrim. -The Alpine65 has entered GB and sucessfully finalized in november 2020; there is no further way to buy an Alpine65 other than the secondhand market. The IC page for the keyboard can be found [here](https://https://geekhack.org/index.php?topic=106974). +The Alpine65 has entered GB and sucessfully finalized in november 2020; there is no further way to buy an Alpine65 other than the secondhand market. The IC page for the keyboard can be found [here](https://geekhack.org/index.php?topic=106974). ## How to compile diff --git a/keyboards/pkb65/readme.md b/keyboards/pkb65/readme.md index b47552da0f..a7dce94a4f 100644 --- a/keyboards/pkb65/readme.md +++ b/keyboards/pkb65/readme.md @@ -6,7 +6,7 @@ A regular 65% layout keyboard. This will be the default layout flashed for all p Made and sold by MCKeebs. [More info on MCKeebDeisgn](https://www.mckeebdesign.com) * Keyboard Maintainer: [MCKeebs](https://github.com/chrisquocmai) -* Hardware Supported: [PKB65 PCB](https://https://mckeebdesign.com/PKB65/) +* Hardware Supported: [PKB65 PCB](https://mckeebdesign.com/PKB65/) * Hardware Availability: [PKB65](https://mckeebdesign.com/PKB65/) Make example for this keyboard (after setting up your build environment: From 62105b5c07971387026e676815a8358c9833149e Mon Sep 17 00:00:00 2001 From: Dasky <32983009+daskygit@users.noreply.github.com> Date: Tue, 12 Sep 2023 02:55:05 +0100 Subject: [PATCH 019/496] Remove oversize binaries (#21976) This stops a situation where a user could end up flashing oversize firmware soft bricking hardware. --- builddefs/common_rules.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/builddefs/common_rules.mk b/builddefs/common_rules.mk index 5d635307ed..d20e9ad74d 100644 --- a/builddefs/common_rules.mk +++ b/builddefs/common_rules.mk @@ -392,6 +392,8 @@ check-size: if [ $(MAX_SIZE) -gt 0 ] && [ $(CURRENT_SIZE) -gt 0 ]; then \ $(SILENT) || printf "$(MSG_CHECK_FILESIZE)" | $(AWK_CMD); \ if [ $(CURRENT_SIZE) -gt $(MAX_SIZE) ]; then \ + $(REMOVE) $(TARGET).$(FIRMWARE_FORMAT); \ + $(REMOVE) $(BUILD_DIR)/$(TARGET).{hex,bin,uf2}; \ printf "\n * $(MSG_FILE_TOO_BIG)"; $(PRINT_ERROR_PLAIN); \ else \ if [ $(FREE_SIZE) -lt $(SIZE_MARGIN) ]; then \ From 06cec720dde5e4c9acfb476cbdf3e098a2172eee Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 12 Sep 2023 05:16:39 +0100 Subject: [PATCH 020/496] Remove 'Firmware size check does not yet support' message (#21977) --- builddefs/common_rules.mk | 26 +------------------------- builddefs/message.mk | 1 - platforms/avr/platform.mk | 23 +++++++++++++++++++++++ 3 files changed, 24 insertions(+), 26 deletions(-) diff --git a/builddefs/common_rules.mk b/builddefs/common_rules.mk index d20e9ad74d..261ab7da02 100644 --- a/builddefs/common_rules.mk +++ b/builddefs/common_rules.mk @@ -380,33 +380,9 @@ dump_vars: objs-size: for i in $(OBJ); do echo $$i; done | sort | xargs $(SIZE) -ifeq ($(findstring avr-gcc,$(CC)),avr-gcc) -SIZE_MARGIN = 1024 +# size check optionally implemented in its platform.mk check-size: - $(eval MAX_SIZE=$(shell n=`$(CC) -E -mmcu=$(MCU) -D__ASSEMBLER__ $(CFLAGS) $(OPT_DEFS) platforms/avr/bootloader_size.c 2> /dev/null | $(SED) -ne 's/\r//;/^#/n;/^AVR_SIZE:/,$${s/^AVR_SIZE: //;p;}'` && echo $$(($$n)) || echo 0)) - $(eval CURRENT_SIZE=$(shell if [ -f $(BUILD_DIR)/$(TARGET).hex ]; then $(SIZE) --target=$(FORMAT) $(BUILD_DIR)/$(TARGET).hex | $(AWK) 'NR==2 {print $$4}'; else printf 0; fi)) - $(eval FREE_SIZE=$(shell expr $(MAX_SIZE) - $(CURRENT_SIZE))) - $(eval OVER_SIZE=$(shell expr $(CURRENT_SIZE) - $(MAX_SIZE))) - $(eval PERCENT_SIZE=$(shell expr $(CURRENT_SIZE) \* 100 / $(MAX_SIZE))) - if [ $(MAX_SIZE) -gt 0 ] && [ $(CURRENT_SIZE) -gt 0 ]; then \ - $(SILENT) || printf "$(MSG_CHECK_FILESIZE)" | $(AWK_CMD); \ - if [ $(CURRENT_SIZE) -gt $(MAX_SIZE) ]; then \ - $(REMOVE) $(TARGET).$(FIRMWARE_FORMAT); \ - $(REMOVE) $(BUILD_DIR)/$(TARGET).{hex,bin,uf2}; \ - printf "\n * $(MSG_FILE_TOO_BIG)"; $(PRINT_ERROR_PLAIN); \ - else \ - if [ $(FREE_SIZE) -lt $(SIZE_MARGIN) ]; then \ - $(PRINT_WARNING_PLAIN); printf " * $(MSG_FILE_NEAR_LIMIT)"; \ - else \ - $(PRINT_OK); $(SILENT) || printf " * $(MSG_FILE_JUST_RIGHT)"; \ - fi ; \ - fi ; \ - fi -else -check-size: - $(SILENT) || echo "$(MSG_CHECK_FILESIZE_SKIPPED)" -endif check-md5: $(MD5SUM) $(BUILD_DIR)/$(TARGET).$(FIRMWARE_FORMAT) diff --git a/builddefs/message.mk b/builddefs/message.mk index bf39554dab..c7cc5171e7 100644 --- a/builddefs/message.mk +++ b/builddefs/message.mk @@ -91,7 +91,6 @@ MSG_AVAILABLE_KEYMAPS = $(eval $(call GENERATE_MSG_AVAILABLE_KEYMAPS))$(MSG_AVAI MSG_BOOTLOADER_NOT_FOUND_BASE = Bootloader not found. Make sure the board is in bootloader mode. See https://docs.qmk.fm/\#/newbs_flashing\n MSG_CHECK_FILESIZE = Checking file size of $(TARGET).$(FIRMWARE_FORMAT) -MSG_CHECK_FILESIZE_SKIPPED = (Firmware size check does not yet support $(MCU_ORIG); skipping) MSG_FILE_TOO_BIG = $(ERROR_COLOR)The firmware is too large!$(NO_COLOR) $(CURRENT_SIZE)/$(MAX_SIZE) ($(OVER_SIZE) bytes over)\n MSG_FILE_TOO_SMALL = The firmware is too small! $(CURRENT_SIZE)/$(MAX_SIZE)\n MSG_FILE_JUST_RIGHT = The firmware size is fine - $(CURRENT_SIZE)/$(MAX_SIZE) ($(PERCENT_SIZE)%%, $(FREE_SIZE) bytes free)\n diff --git a/platforms/avr/platform.mk b/platforms/avr/platform.mk index 09028d80af..aef449cadf 100644 --- a/platforms/avr/platform.mk +++ b/platforms/avr/platform.mk @@ -109,6 +109,29 @@ DEBUG_HOST = localhost #============================================================================ +SIZE_MARGIN = 1024 + +check-size: + $(eval MAX_SIZE=$(shell n=`$(CC) -E -mmcu=$(MCU) -D__ASSEMBLER__ $(CFLAGS) $(OPT_DEFS) platforms/avr/bootloader_size.c 2> /dev/null | $(SED) -ne 's/\r//;/^#/n;/^AVR_SIZE:/,$${s/^AVR_SIZE: //;p;}'` && echo $$(($$n)) || echo 0)) + $(eval CURRENT_SIZE=$(shell if [ -f $(BUILD_DIR)/$(TARGET).hex ]; then $(SIZE) --target=$(FORMAT) $(BUILD_DIR)/$(TARGET).hex | $(AWK) 'NR==2 {print $$4}'; else printf 0; fi)) + $(eval FREE_SIZE=$(shell expr $(MAX_SIZE) - $(CURRENT_SIZE))) + $(eval OVER_SIZE=$(shell expr $(CURRENT_SIZE) - $(MAX_SIZE))) + $(eval PERCENT_SIZE=$(shell expr $(CURRENT_SIZE) \* 100 / $(MAX_SIZE))) + if [ $(MAX_SIZE) -gt 0 ] && [ $(CURRENT_SIZE) -gt 0 ]; then \ + $(SILENT) || printf "$(MSG_CHECK_FILESIZE)" | $(AWK_CMD); \ + if [ $(CURRENT_SIZE) -gt $(MAX_SIZE) ]; then \ + $(REMOVE) $(TARGET).$(FIRMWARE_FORMAT); \ + $(REMOVE) $(BUILD_DIR)/$(TARGET).{hex,bin,uf2}; \ + printf "\n * $(MSG_FILE_TOO_BIG)"; $(PRINT_ERROR_PLAIN); \ + else \ + if [ $(FREE_SIZE) -lt $(SIZE_MARGIN) ]; then \ + $(PRINT_WARNING_PLAIN); printf " * $(MSG_FILE_NEAR_LIMIT)"; \ + else \ + $(PRINT_OK); $(SILENT) || printf " * $(MSG_FILE_JUST_RIGHT)"; \ + fi ; \ + fi ; \ + fi + # Convert hex to bin. bin: $(BUILD_DIR)/$(TARGET).hex ifeq ($(BOOTLOADER),lufa-ms) From 909054c35772ae62d6d2de0cefd1bef18762e754 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 12 Sep 2023 06:47:12 +0100 Subject: [PATCH 021/496] Migrate spi_flash WEAR_LEVELING_DRIVER to info.json (#21978) --- keyboards/akko/5108/info.json | 6 ++++++ keyboards/akko/5108/rules.mk | 3 +-- keyboards/akko/acr87/info.json | 6 ++++++ keyboards/akko/acr87/rules.mk | 4 +--- keyboards/akko/top40/info.json | 6 ++++++ keyboards/akko/top40/rules.mk | 7 +------ keyboards/annepro2/c15/info.json | 6 ++++++ keyboards/annepro2/c15/rules.mk | 4 ---- keyboards/annepro2/c18/info.json | 6 ++++++ keyboards/annepro2/c18/rules.mk | 4 ---- keyboards/chosfox/cf81/info.json | 5 ++++- keyboards/chosfox/cf81/rules.mk | 2 +- keyboards/gmmk/gmmk2/p96/ansi/info.json | 6 ++++++ keyboards/gmmk/gmmk2/p96/ansi/rules.mk | 2 -- keyboards/gmmk/gmmk2/p96/iso/info.json | 6 ++++++ keyboards/gmmk/gmmk2/p96/iso/rules.mk | 2 -- keyboards/gmmk/numpad/info.json | 6 ++++++ keyboards/gmmk/numpad/rules.mk | 3 --- keyboards/gmmk/pro/rev2/ansi/info.json | 6 ++++++ keyboards/gmmk/pro/rev2/ansi/rules.mk | 2 -- keyboards/gmmk/pro/rev2/iso/info.json | 6 ++++++ keyboards/gmmk/pro/rev2/iso/rules.mk | 2 -- keyboards/hfdkb/ac001/info.json | 6 ++++++ keyboards/hfdkb/ac001/rules.mk | 2 -- keyboards/horrortroll/handwired_k552/info.json | 6 ++++++ keyboards/horrortroll/handwired_k552/rules.mk | 4 ---- keyboards/inland/kb83/info.json | 6 ++++++ keyboards/inland/kb83/rules.mk | 2 -- keyboards/inland/mk47/info.json | 8 +++++++- keyboards/inland/mk47/rules.mk | 3 +-- keyboards/monsgeek/m1/info.json | 6 ++++++ keyboards/monsgeek/m1/rules.mk | 7 +------ keyboards/monsgeek/m5/info.json | 6 ++++++ keyboards/monsgeek/m5/rules.mk | 3 +-- keyboards/monsgeek/m6/info.json | 6 ++++++ keyboards/monsgeek/m6/rules.mk | 3 +-- keyboards/projectd/65/projectd_65_ansi/info.json | 6 ++++++ keyboards/projectd/65/projectd_65_ansi/rules.mk | 3 +-- 38 files changed, 122 insertions(+), 55 deletions(-) diff --git a/keyboards/akko/5108/info.json b/keyboards/akko/5108/info.json index 7049b20a64..74379db27b 100644 --- a/keyboards/akko/5108/info.json +++ b/keyboards/akko/5108/info.json @@ -26,6 +26,12 @@ "rows": ["B15", "C6", "C7", "C8", "C9", "A8"] }, "diode_direction": "ROW2COL", + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash" + } + }, "indicators": { "num_lock": "A15", "caps_lock": "C10" diff --git a/keyboards/akko/5108/rules.mk b/keyboards/akko/5108/rules.mk index 24d5f6f52e..6e7633bfe0 100644 --- a/keyboards/akko/5108/rules.mk +++ b/keyboards/akko/5108/rules.mk @@ -1,2 +1 @@ -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = spi_flash +# This file intentionally left blank diff --git a/keyboards/akko/acr87/info.json b/keyboards/akko/acr87/info.json index 5ff1926d0c..5ce22462d9 100644 --- a/keyboards/akko/acr87/info.json +++ b/keyboards/akko/acr87/info.json @@ -26,6 +26,12 @@ "rows": [ "B15", "C6", "C7", "C8", "C9", "A8"] }, "diode_direction": "ROW2COL", + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash" + } + }, "rgb_matrix": { "driver": "is31fl3733", "max_brightness": 180, diff --git a/keyboards/akko/acr87/rules.mk b/keyboards/akko/acr87/rules.mk index 0dc7a33142..6e7633bfe0 100644 --- a/keyboards/akko/acr87/rules.mk +++ b/keyboards/akko/acr87/rules.mk @@ -1,3 +1 @@ -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = spi_flash - +# This file intentionally left blank diff --git a/keyboards/akko/top40/info.json b/keyboards/akko/top40/info.json index 48252e6c77..e66f79e6c0 100644 --- a/keyboards/akko/top40/info.json +++ b/keyboards/akko/top40/info.json @@ -26,6 +26,12 @@ "rows": ["C7", "C8", "C9", "A8"] }, "diode_direction": "ROW2COL", + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash" + } + }, "rgb_matrix": { "driver": "is31fl3733", "max_brightness": 180, diff --git a/keyboards/akko/top40/rules.mk b/keyboards/akko/top40/rules.mk index b753f0682e..6e7633bfe0 100644 --- a/keyboards/akko/top40/rules.mk +++ b/keyboards/akko/top40/rules.mk @@ -1,6 +1 @@ -# Build Options -# change yes to no to disable -# -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = spi_flash - +# This file intentionally left blank diff --git a/keyboards/annepro2/c15/info.json b/keyboards/annepro2/c15/info.json index 15c3ca8ba1..7138294987 100644 --- a/keyboards/annepro2/c15/info.json +++ b/keyboards/annepro2/c15/info.json @@ -3,6 +3,12 @@ "usb": { "pid": "0xAC15" }, + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash" + } + }, "rgb_matrix": { "driver": "custom" }, diff --git a/keyboards/annepro2/c15/rules.mk b/keyboards/annepro2/c15/rules.mk index 05b715e034..8694893ac2 100644 --- a/keyboards/annepro2/c15/rules.mk +++ b/keyboards/annepro2/c15/rules.mk @@ -26,10 +26,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Wear-levelling driver -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = spi_flash - # Custom RGB matrix handling RGB_MATRIX_ENABLE = yes diff --git a/keyboards/annepro2/c18/info.json b/keyboards/annepro2/c18/info.json index f7acff808c..439188b2f7 100644 --- a/keyboards/annepro2/c18/info.json +++ b/keyboards/annepro2/c18/info.json @@ -3,6 +3,12 @@ "usb": { "pid": "0xAC18" }, + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash" + } + }, "rgb_matrix": { "driver": "custom" }, diff --git a/keyboards/annepro2/c18/rules.mk b/keyboards/annepro2/c18/rules.mk index 1d53851df6..dab7269570 100644 --- a/keyboards/annepro2/c18/rules.mk +++ b/keyboards/annepro2/c18/rules.mk @@ -26,10 +26,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Wear-levelling driver -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = spi_flash - # Custom RGB matrix handling RGB_MATRIX_ENABLE = yes diff --git a/keyboards/chosfox/cf81/info.json b/keyboards/chosfox/cf81/info.json index 827347f41e..65134dfedf 100644 --- a/keyboards/chosfox/cf81/info.json +++ b/keyboards/chosfox/cf81/info.json @@ -10,7 +10,10 @@ "suspend_wakeup_delay": 400 }, "eeprom": { - "driver": "wear_leveling" + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash" + } }, "processor": "WB32FQ95", "bootloader": "wb32-dfu", diff --git a/keyboards/chosfox/cf81/rules.mk b/keyboards/chosfox/cf81/rules.mk index 002458405e..6e7633bfe0 100644 --- a/keyboards/chosfox/cf81/rules.mk +++ b/keyboards/chosfox/cf81/rules.mk @@ -1 +1 @@ -WEAR_LEVELING_DRIVER = spi_flash +# This file intentionally left blank diff --git a/keyboards/gmmk/gmmk2/p96/ansi/info.json b/keyboards/gmmk/gmmk2/p96/ansi/info.json index cb0ecf9445..67c08e95a9 100644 --- a/keyboards/gmmk/gmmk2/p96/ansi/info.json +++ b/keyboards/gmmk/gmmk2/p96/ansi/info.json @@ -19,6 +19,12 @@ "rows": ["B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", "B11", "B12", "B13"] }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash" + } + }, "processor": "WB32F3G71", "bootloader": "wb32-dfu", "layouts": { diff --git a/keyboards/gmmk/gmmk2/p96/ansi/rules.mk b/keyboards/gmmk/gmmk2/p96/ansi/rules.mk index a076e01916..2d2e9895fd 100644 --- a/keyboards/gmmk/gmmk2/p96/ansi/rules.mk +++ b/keyboards/gmmk/gmmk2/p96/ansi/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality. RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow. AUDIO_ENABLE = no # Audio output. RGB_MATRIX_ENABLE = yes # Enable RGB matrix effects. -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = spi_flash diff --git a/keyboards/gmmk/gmmk2/p96/iso/info.json b/keyboards/gmmk/gmmk2/p96/iso/info.json index 6534d28027..672bdb4e49 100644 --- a/keyboards/gmmk/gmmk2/p96/iso/info.json +++ b/keyboards/gmmk/gmmk2/p96/iso/info.json @@ -19,6 +19,12 @@ "rows": ["B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", "B11", "B12", "B13"] }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash" + } + }, "processor": "WB32F3G71", "bootloader": "wb32-dfu", "layouts": { diff --git a/keyboards/gmmk/gmmk2/p96/iso/rules.mk b/keyboards/gmmk/gmmk2/p96/iso/rules.mk index a076e01916..2d2e9895fd 100644 --- a/keyboards/gmmk/gmmk2/p96/iso/rules.mk +++ b/keyboards/gmmk/gmmk2/p96/iso/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality. RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow. AUDIO_ENABLE = no # Audio output. RGB_MATRIX_ENABLE = yes # Enable RGB matrix effects. -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = spi_flash diff --git a/keyboards/gmmk/numpad/info.json b/keyboards/gmmk/numpad/info.json index 604a49b503..66aead113e 100644 --- a/keyboards/gmmk/numpad/info.json +++ b/keyboards/gmmk/numpad/info.json @@ -8,6 +8,12 @@ "pid": "0x5088", "device_version": "0.0.1" }, + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash" + } + }, "encoder": { "rotary": [ {"pin_a": "A2", "pin_b": "A1"} diff --git a/keyboards/gmmk/numpad/rules.mk b/keyboards/gmmk/numpad/rules.mk index 5a0d3e34f8..e30aa52954 100644 --- a/keyboards/gmmk/numpad/rules.mk +++ b/keyboards/gmmk/numpad/rules.mk @@ -16,9 +16,6 @@ MIDI_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = spi_flash - LTO_ENABLE = yes SRC += analog.c \ diff --git a/keyboards/gmmk/pro/rev2/ansi/info.json b/keyboards/gmmk/pro/rev2/ansi/info.json index 082b5f8656..44151f874a 100644 --- a/keyboards/gmmk/pro/rev2/ansi/info.json +++ b/keyboards/gmmk/pro/rev2/ansi/info.json @@ -16,6 +16,12 @@ "rows": ["B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10"] }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash" + } + }, "encoder": { "rotary": [ {"pin_a": "C15", "pin_b": "C14"} diff --git a/keyboards/gmmk/pro/rev2/ansi/rules.mk b/keyboards/gmmk/pro/rev2/ansi/rules.mk index 2f50d82c82..6d23fe350a 100644 --- a/keyboards/gmmk/pro/rev2/ansi/rules.mk +++ b/keyboards/gmmk/pro/rev2/ansi/rules.mk @@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = spi_flash diff --git a/keyboards/gmmk/pro/rev2/iso/info.json b/keyboards/gmmk/pro/rev2/iso/info.json index a4aef24e65..bb76da4493 100644 --- a/keyboards/gmmk/pro/rev2/iso/info.json +++ b/keyboards/gmmk/pro/rev2/iso/info.json @@ -16,6 +16,12 @@ "rows": ["B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10"] }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash" + } + }, "encoder": { "rotary": [ {"pin_a": "C15", "pin_b": "C14"} diff --git a/keyboards/gmmk/pro/rev2/iso/rules.mk b/keyboards/gmmk/pro/rev2/iso/rules.mk index db00e4c84c..46eda64be7 100644 --- a/keyboards/gmmk/pro/rev2/iso/rules.mk +++ b/keyboards/gmmk/pro/rev2/iso/rules.mk @@ -15,5 +15,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = spi_flash diff --git a/keyboards/hfdkb/ac001/info.json b/keyboards/hfdkb/ac001/info.json index 0a361d63ed..36583e2e58 100644 --- a/keyboards/hfdkb/ac001/info.json +++ b/keyboards/hfdkb/ac001/info.json @@ -17,6 +17,12 @@ "rows": ["B15"] }, "diode_direction": "ROW2COL", + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash" + } + }, "ws2812": { "pin": "A1" }, diff --git a/keyboards/hfdkb/ac001/rules.mk b/keyboards/hfdkb/ac001/rules.mk index 81b7e82c3f..1358ab075a 100644 --- a/keyboards/hfdkb/ac001/rules.mk +++ b/keyboards/hfdkb/ac001/rules.mk @@ -10,5 +10,3 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = spi_flash diff --git a/keyboards/horrortroll/handwired_k552/info.json b/keyboards/horrortroll/handwired_k552/info.json index d137a03a52..2c97ce1306 100644 --- a/keyboards/horrortroll/handwired_k552/info.json +++ b/keyboards/horrortroll/handwired_k552/info.json @@ -20,6 +20,12 @@ "rows": ["C12", "C10", "A10", "A8", "C8", "C9"] }, "diode_direction": "ROW2COL", + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash" + } + }, "community_layouts": ["tkl_ansi"], "layouts": { "LAYOUT_tkl_ansi": { diff --git a/keyboards/horrortroll/handwired_k552/rules.mk b/keyboards/horrortroll/handwired_k552/rules.mk index fd1825af35..6d6ec253db 100644 --- a/keyboards/horrortroll/handwired_k552/rules.mk +++ b/keyboards/horrortroll/handwired_k552/rules.mk @@ -32,7 +32,3 @@ RGB_MATRIX_ENABLE = yes # OLED enabled OLED_ENABLE = yes WPM_ENABLE = yes - -# Wear-levelling driver -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = spi_flash diff --git a/keyboards/inland/kb83/info.json b/keyboards/inland/kb83/info.json index ce577fb029..33545515ad 100644 --- a/keyboards/inland/kb83/info.json +++ b/keyboards/inland/kb83/info.json @@ -18,6 +18,12 @@ "rows": ["B15", "C6", "C7", "C8", "C9", "A8"] }, "diode_direction": "ROW2COL", + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash" + } + }, "encoder": { "rotary": [ {"pin_a": "B14", "pin_b": "B13", "resolution": 4} diff --git a/keyboards/inland/kb83/rules.mk b/keyboards/inland/kb83/rules.mk index 756d0c0719..aefdb5a168 100644 --- a/keyboards/inland/kb83/rules.mk +++ b/keyboards/inland/kb83/rules.mk @@ -14,6 +14,4 @@ AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes # DPI Switch ENCODER_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = spi_flash #RGB_MATRIX_CUSTOM_USER = yes #Add turnoff LED diff --git a/keyboards/inland/mk47/info.json b/keyboards/inland/mk47/info.json index 184527e0de..3c4818cf7b 100644 --- a/keyboards/inland/mk47/info.json +++ b/keyboards/inland/mk47/info.json @@ -25,6 +25,13 @@ "cols": ["C1","C2","C3","A0","A1","A2","A3","A4","A5","A6","A7","C4"], "rows": ["C6", "C7", "C8", "C9"] }, + "diode_direction": "ROW2COL", + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash" + } + }, "rgb_matrix": { "driver": "is31fl3733", "max_brightness": 200, @@ -99,7 +106,6 @@ { "flags": 4, "matrix": [3, 11], "x": 224, "y": 64} ] }, - "diode_direction": "ROW2COL", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/inland/mk47/rules.mk b/keyboards/inland/mk47/rules.mk index 24d5f6f52e..6e7633bfe0 100644 --- a/keyboards/inland/mk47/rules.mk +++ b/keyboards/inland/mk47/rules.mk @@ -1,2 +1 @@ -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = spi_flash +# This file intentionally left blank diff --git a/keyboards/monsgeek/m1/info.json b/keyboards/monsgeek/m1/info.json index 5e772f81f6..fe979b7c31 100644 --- a/keyboards/monsgeek/m1/info.json +++ b/keyboards/monsgeek/m1/info.json @@ -26,6 +26,12 @@ "rows": ["B15", "C6", "C7", "C8", "C9", "A8"] }, "diode_direction": "ROW2COL", + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash" + } + }, "encoder": { "rotary": [ {"pin_a": "B14", "pin_b": "B13"} diff --git a/keyboards/monsgeek/m1/rules.mk b/keyboards/monsgeek/m1/rules.mk index b753f0682e..6e7633bfe0 100644 --- a/keyboards/monsgeek/m1/rules.mk +++ b/keyboards/monsgeek/m1/rules.mk @@ -1,6 +1 @@ -# Build Options -# change yes to no to disable -# -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = spi_flash - +# This file intentionally left blank diff --git a/keyboards/monsgeek/m5/info.json b/keyboards/monsgeek/m5/info.json index 4e504b8663..ecc6b309ae 100644 --- a/keyboards/monsgeek/m5/info.json +++ b/keyboards/monsgeek/m5/info.json @@ -25,6 +25,12 @@ "rows": ["B15", "C6", "C7", "C8", "C9", "A8"] }, "diode_direction": "ROW2COL", + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash" + } + }, "indicators": { "num_lock":"A15", "caps_lock": "C10" diff --git a/keyboards/monsgeek/m5/rules.mk b/keyboards/monsgeek/m5/rules.mk index 24d5f6f52e..6e7633bfe0 100644 --- a/keyboards/monsgeek/m5/rules.mk +++ b/keyboards/monsgeek/m5/rules.mk @@ -1,2 +1 @@ -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = spi_flash +# This file intentionally left blank diff --git a/keyboards/monsgeek/m6/info.json b/keyboards/monsgeek/m6/info.json index d23d2f8322..2aa297570c 100644 --- a/keyboards/monsgeek/m6/info.json +++ b/keyboards/monsgeek/m6/info.json @@ -25,6 +25,12 @@ "rows": ["C6", "C7", "C8", "C9", "A8"] }, "diode_direction": "ROW2COL", + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash" + } + }, "rgb_matrix": { "driver": "is31fl3733", "max_brightness": 200, diff --git a/keyboards/monsgeek/m6/rules.mk b/keyboards/monsgeek/m6/rules.mk index 24d5f6f52e..6e7633bfe0 100644 --- a/keyboards/monsgeek/m6/rules.mk +++ b/keyboards/monsgeek/m6/rules.mk @@ -1,2 +1 @@ -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = spi_flash +# This file intentionally left blank diff --git a/keyboards/projectd/65/projectd_65_ansi/info.json b/keyboards/projectd/65/projectd_65_ansi/info.json index 0c8b9585bb..3d4041db17 100644 --- a/keyboards/projectd/65/projectd_65_ansi/info.json +++ b/keyboards/projectd/65/projectd_65_ansi/info.json @@ -10,6 +10,12 @@ "dynamic_keymap": { "layer_count": 13 }, + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash" + } + }, "features": { "bootmagic": true, "command": false, diff --git a/keyboards/projectd/65/projectd_65_ansi/rules.mk b/keyboards/projectd/65/projectd_65_ansi/rules.mk index 24d5f6f52e..6e7633bfe0 100644 --- a/keyboards/projectd/65/projectd_65_ansi/rules.mk +++ b/keyboards/projectd/65/projectd_65_ansi/rules.mk @@ -1,2 +1 @@ -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = spi_flash +# This file intentionally left blank From bd2e59af60a9ceacb1e6806c594caea3de9592e5 Mon Sep 17 00:00:00 2001 From: Joy Lee Date: Tue, 12 Sep 2023 13:57:18 +0800 Subject: [PATCH 022/496] Fixed WB32 MCU remote wakeup issue (#20863) Co-authored-by: Joy --- platforms/chibios/boards/GENERIC_WB32_F3G71XX/board/board.c | 5 +---- platforms/chibios/boards/GENERIC_WB32_FQ95XX/board/board.c | 5 +---- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/platforms/chibios/boards/GENERIC_WB32_F3G71XX/board/board.c b/platforms/chibios/boards/GENERIC_WB32_F3G71XX/board/board.c index f74c9e8be7..80472b88f7 100644 --- a/platforms/chibios/boards/GENERIC_WB32_F3G71XX/board/board.c +++ b/platforms/chibios/boards/GENERIC_WB32_F3G71XX/board/board.c @@ -73,6 +73,7 @@ void __early_init(void) { wb32_clock_init(); wb32_gpio_init(); } + /** * @brief Board-specific initialization code. * @note You can add your board-specific code here. @@ -80,7 +81,3 @@ void __early_init(void) { void boardInit(void) { } - -void restart_usb_driver(USBDriver *usbp) { - // Do nothing. Restarting the USB driver on these boards breaks it. -} diff --git a/platforms/chibios/boards/GENERIC_WB32_FQ95XX/board/board.c b/platforms/chibios/boards/GENERIC_WB32_FQ95XX/board/board.c index a99537fc27..5701fd2e0d 100644 --- a/platforms/chibios/boards/GENERIC_WB32_FQ95XX/board/board.c +++ b/platforms/chibios/boards/GENERIC_WB32_FQ95XX/board/board.c @@ -73,6 +73,7 @@ void __early_init(void) { wb32_clock_init(); wb32_gpio_init(); } + /** * @brief Board-specific initialization code. * @note You can add your board-specific code here. @@ -80,7 +81,3 @@ void __early_init(void) { void boardInit(void) { } - -void restart_usb_driver(USBDriver *usbp) { - // Do nothing. Restarting the USB driver on these boards breaks it. -} From 6adf461aa033d3be2e0a2ea065560db9ba8a5ade Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 12 Sep 2023 07:07:40 +0100 Subject: [PATCH 023/496] Remove duplication of RP2040 EEPROM defaults (#21979) --- keyboards/cannonkeys/brutalv2_1800/rules.mk | 3 +-- keyboards/cannonkeys/caerdroia/rules.mk | 3 +-- keyboards/cannonkeys/ortho48v2/rules.mk | 3 +-- keyboards/cannonkeys/ortho60v2/rules.mk | 3 +-- keyboards/cannonkeys/typeb/rules.mk | 3 +-- 5 files changed, 5 insertions(+), 10 deletions(-) diff --git a/keyboards/cannonkeys/brutalv2_1800/rules.mk b/keyboards/cannonkeys/brutalv2_1800/rules.mk index 59f8593f18..6e7633bfe0 100644 --- a/keyboards/cannonkeys/brutalv2_1800/rules.mk +++ b/keyboards/cannonkeys/brutalv2_1800/rules.mk @@ -1,2 +1 @@ -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = rp2040_flash +# This file intentionally left blank diff --git a/keyboards/cannonkeys/caerdroia/rules.mk b/keyboards/cannonkeys/caerdroia/rules.mk index 59f8593f18..6e7633bfe0 100644 --- a/keyboards/cannonkeys/caerdroia/rules.mk +++ b/keyboards/cannonkeys/caerdroia/rules.mk @@ -1,2 +1 @@ -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = rp2040_flash +# This file intentionally left blank diff --git a/keyboards/cannonkeys/ortho48v2/rules.mk b/keyboards/cannonkeys/ortho48v2/rules.mk index 59f8593f18..6e7633bfe0 100644 --- a/keyboards/cannonkeys/ortho48v2/rules.mk +++ b/keyboards/cannonkeys/ortho48v2/rules.mk @@ -1,2 +1 @@ -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = rp2040_flash +# This file intentionally left blank diff --git a/keyboards/cannonkeys/ortho60v2/rules.mk b/keyboards/cannonkeys/ortho60v2/rules.mk index 59f8593f18..6e7633bfe0 100644 --- a/keyboards/cannonkeys/ortho60v2/rules.mk +++ b/keyboards/cannonkeys/ortho60v2/rules.mk @@ -1,2 +1 @@ -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = rp2040_flash +# This file intentionally left blank diff --git a/keyboards/cannonkeys/typeb/rules.mk b/keyboards/cannonkeys/typeb/rules.mk index 59f8593f18..6e7633bfe0 100644 --- a/keyboards/cannonkeys/typeb/rules.mk +++ b/keyboards/cannonkeys/typeb/rules.mk @@ -1,2 +1 @@ -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = rp2040_flash +# This file intentionally left blank From 8975dc6c3b35bc49a8b3d64f9e3dd17d82b52371 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 12 Sep 2023 10:09:31 +0100 Subject: [PATCH 024/496] Remove duplication of STM32L432 EEPROM defaults (#21981) --- keyboards/keychron/q0/rev_0130/rules.mk | 4 +--- keyboards/keychron/q0/rev_0131/rules.mk | 4 +--- keyboards/keychron/q10/ansi_encoder/rules.mk | 2 -- keyboards/keychron/q10/iso_encoder/rules.mk | 2 -- keyboards/keychron/q11/ansi_encoder/rules.mk | 5 ----- keyboards/keychron/q12/ansi_encoder/rules.mk | 2 -- keyboards/keychron/q12/iso_encoder/rules.mk | 2 -- keyboards/keychron/q2/ansi/rules.mk | 3 --- keyboards/keychron/q2/ansi_encoder/rules.mk | 3 --- keyboards/keychron/q2/iso/rules.mk | 3 --- keyboards/keychron/q2/iso_encoder/rules.mk | 3 --- keyboards/keychron/q2/jis/rules.mk | 3 --- keyboards/keychron/q2/jis_encoder/rules.mk | 3 --- keyboards/keychron/q3/ansi/rules.mk | 3 --- keyboards/keychron/q3/ansi_encoder/rules.mk | 2 -- keyboards/keychron/q3/iso/rules.mk | 3 --- keyboards/keychron/q3/iso_encoder/rules.mk | 2 -- keyboards/keychron/q3/jis/rules.mk | 3 --- keyboards/keychron/q3/jis_encoder/rules.mk | 2 -- keyboards/keychron/q4/ansi_v1/rules.mk | 3 --- keyboards/keychron/q4/ansi_v2/rules.mk | 3 --- keyboards/keychron/q4/iso/rules.mk | 3 --- keyboards/keychron/q5/ansi/rules.mk | 2 -- keyboards/keychron/q5/ansi_encoder/rules.mk | 2 -- keyboards/keychron/q5/iso/rules.mk | 2 -- keyboards/keychron/q5/iso_encoder/rules.mk | 2 -- keyboards/keychron/q6/ansi/rules.mk | 2 -- keyboards/keychron/q6/ansi_encoder/rules.mk | 2 -- keyboards/keychron/q6/iso/rules.mk | 2 -- keyboards/keychron/q6/iso_encoder/rules.mk | 2 -- keyboards/keychron/q60/ansi/rules.mk | 3 --- keyboards/keychron/q65/ansi_encoder/rules.mk | 2 -- keyboards/keychron/q7/ansi/rules.mk | 3 --- keyboards/keychron/q7/iso/rules.mk | 3 --- keyboards/keychron/q8/ansi/rules.mk | 3 --- keyboards/keychron/q8/ansi_encoder/rules.mk | 3 --- keyboards/keychron/q8/iso/rules.mk | 3 --- keyboards/keychron/q8/iso_encoder/rules.mk | 3 --- keyboards/keychron/q9/ansi/rules.mk | 3 --- keyboards/keychron/q9/ansi_encoder/rules.mk | 3 --- keyboards/keychron/q9/iso/rules.mk | 3 --- keyboards/keychron/q9/iso_encoder/rules.mk | 3 --- keyboards/keychron/s1/ansi/rgb/rules.mk | 3 --- keyboards/keychron/s1/ansi/white/rules.mk | 3 --- keyboards/keychron/v1/ansi/rules.mk | 2 -- keyboards/keychron/v1/ansi_encoder/rules.mk | 2 -- keyboards/keychron/v1/iso/rules.mk | 2 -- keyboards/keychron/v1/iso_encoder/rules.mk | 2 -- keyboards/keychron/v1/jis/rules.mk | 2 -- keyboards/keychron/v1/jis_encoder/rules.mk | 2 -- keyboards/keychron/v10/ansi_encoder/rules.mk | 2 -- keyboards/keychron/v10/iso_encoder/rules.mk | 2 -- keyboards/keychron/v2/ansi/rules.mk | 3 --- keyboards/keychron/v2/ansi_encoder/rules.mk | 3 --- keyboards/keychron/v2/iso/rules.mk | 3 --- keyboards/keychron/v2/iso_encoder/rules.mk | 3 --- keyboards/keychron/v2/jis/rules.mk | 3 --- keyboards/keychron/v2/jis_encoder/rules.mk | 3 --- keyboards/keychron/v3/ansi/rules.mk | 3 --- keyboards/keychron/v3/ansi_encoder/rules.mk | 2 -- keyboards/keychron/v3/iso/rules.mk | 3 --- keyboards/keychron/v3/iso_encoder/rules.mk | 2 -- keyboards/keychron/v3/jis/rules.mk | 3 --- keyboards/keychron/v3/jis_encoder/rules.mk | 2 -- keyboards/keychron/v4/ansi/rules.mk | 3 --- keyboards/keychron/v4/iso/rules.mk | 3 --- keyboards/keychron/v5/ansi/rules.mk | 2 -- keyboards/keychron/v5/ansi_encoder/rules.mk | 2 -- keyboards/keychron/v5/iso/rules.mk | 2 -- keyboards/keychron/v5/iso_encoder/rules.mk | 2 -- keyboards/keychron/v6/ansi/rules.mk | 2 -- keyboards/keychron/v6/ansi_encoder/rules.mk | 2 -- keyboards/keychron/v6/iso/rules.mk | 2 -- keyboards/keychron/v6/iso_encoder/rules.mk | 2 -- keyboards/keychron/v7/ansi/rules.mk | 3 --- keyboards/keychron/v7/iso/rules.mk | 3 --- keyboards/keychron/v8/ansi/rules.mk | 3 --- keyboards/keychron/v8/ansi_encoder/rules.mk | 3 --- keyboards/keychron/v8/iso/rules.mk | 3 --- keyboards/keychron/v8/iso_encoder/rules.mk | 3 --- 80 files changed, 2 insertions(+), 207 deletions(-) diff --git a/keyboards/keychron/q0/rev_0130/rules.mk b/keyboards/keychron/q0/rev_0130/rules.mk index f6868e88e3..6e7633bfe0 100644 --- a/keyboards/keychron/q0/rev_0130/rules.mk +++ b/keyboards/keychron/q0/rev_0130/rules.mk @@ -1,3 +1 @@ -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - +# This file intentionally left blank diff --git a/keyboards/keychron/q0/rev_0131/rules.mk b/keyboards/keychron/q0/rev_0131/rules.mk index f6868e88e3..6e7633bfe0 100644 --- a/keyboards/keychron/q0/rev_0131/rules.mk +++ b/keyboards/keychron/q0/rev_0131/rules.mk @@ -1,3 +1 @@ -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - +# This file intentionally left blank diff --git a/keyboards/keychron/q10/ansi_encoder/rules.mk b/keyboards/keychron/q10/ansi_encoder/rules.mk index 7da353fbd1..4c6e5bebf0 100644 --- a/keyboards/keychron/q10/ansi_encoder/rules.mk +++ b/keyboards/keychron/q10/ansi_encoder/rules.mk @@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q10/iso_encoder/rules.mk b/keyboards/keychron/q10/iso_encoder/rules.mk index 7da353fbd1..4c6e5bebf0 100644 --- a/keyboards/keychron/q10/iso_encoder/rules.mk +++ b/keyboards/keychron/q10/iso_encoder/rules.mk @@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q11/ansi_encoder/rules.mk b/keyboards/keychron/q11/ansi_encoder/rules.mk index 60d5c6bea2..c6e2988321 100644 --- a/keyboards/keychron/q11/ansi_encoder/rules.mk +++ b/keyboards/keychron/q11/ansi_encoder/rules.mk @@ -1,6 +1 @@ -# Build Options -# change yes to no to disable -# -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash SERIAL_DRIVER = usart diff --git a/keyboards/keychron/q12/ansi_encoder/rules.mk b/keyboards/keychron/q12/ansi_encoder/rules.mk index 80a3f300bd..213c733c9c 100644 --- a/keyboards/keychron/q12/ansi_encoder/rules.mk +++ b/keyboards/keychron/q12/ansi_encoder/rules.mk @@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q12/iso_encoder/rules.mk b/keyboards/keychron/q12/iso_encoder/rules.mk index 9867724957..39b0594039 100644 --- a/keyboards/keychron/q12/iso_encoder/rules.mk +++ b/keyboards/keychron/q12/iso_encoder/rules.mk @@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q2/ansi/rules.mk b/keyboards/keychron/q2/ansi/rules.mk index ede7d6fab2..eca21676ee 100644 --- a/keyboards/keychron/q2/ansi/rules.mk +++ b/keyboards/keychron/q2/ansi/rules.mk @@ -13,6 +13,3 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = no # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/q2/ansi_encoder/rules.mk b/keyboards/keychron/q2/ansi_encoder/rules.mk index b294cf950e..dfa13564d2 100644 --- a/keyboards/keychron/q2/ansi_encoder/rules.mk +++ b/keyboards/keychron/q2/ansi_encoder/rules.mk @@ -13,6 +13,3 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/q2/iso/rules.mk b/keyboards/keychron/q2/iso/rules.mk index b3de962291..2cdda3f9a7 100644 --- a/keyboards/keychron/q2/iso/rules.mk +++ b/keyboards/keychron/q2/iso/rules.mk @@ -13,6 +13,3 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = no # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/q2/iso_encoder/rules.mk b/keyboards/keychron/q2/iso_encoder/rules.mk index aba76c0944..f7e6a950e8 100644 --- a/keyboards/keychron/q2/iso_encoder/rules.mk +++ b/keyboards/keychron/q2/iso_encoder/rules.mk @@ -13,6 +13,3 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/q2/jis/rules.mk b/keyboards/keychron/q2/jis/rules.mk index c37beecb9e..cf31e094cb 100644 --- a/keyboards/keychron/q2/jis/rules.mk +++ b/keyboards/keychron/q2/jis/rules.mk @@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/q2/jis_encoder/rules.mk b/keyboards/keychron/q2/jis_encoder/rules.mk index 5091fe9414..5d77f09971 100644 --- a/keyboards/keychron/q2/jis_encoder/rules.mk +++ b/keyboards/keychron/q2/jis_encoder/rules.mk @@ -13,6 +13,3 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/q3/ansi/rules.mk b/keyboards/keychron/q3/ansi/rules.mk index 58bbb89a72..cf4b02e6da 100644 --- a/keyboards/keychron/q3/ansi/rules.mk +++ b/keyboards/keychron/q3/ansi/rules.mk @@ -13,6 +13,3 @@ AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes LTO_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/q3/ansi_encoder/rules.mk b/keyboards/keychron/q3/ansi_encoder/rules.mk index 77b90f2466..929c4532a0 100644 --- a/keyboards/keychron/q3/ansi_encoder/rules.mk +++ b/keyboards/keychron/q3/ansi_encoder/rules.mk @@ -14,8 +14,6 @@ ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes LTO_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q3/iso/rules.mk b/keyboards/keychron/q3/iso/rules.mk index 58bbb89a72..cf4b02e6da 100644 --- a/keyboards/keychron/q3/iso/rules.mk +++ b/keyboards/keychron/q3/iso/rules.mk @@ -13,6 +13,3 @@ AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes LTO_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/q3/iso_encoder/rules.mk b/keyboards/keychron/q3/iso_encoder/rules.mk index 77b90f2466..929c4532a0 100644 --- a/keyboards/keychron/q3/iso_encoder/rules.mk +++ b/keyboards/keychron/q3/iso_encoder/rules.mk @@ -14,8 +14,6 @@ ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes LTO_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q3/jis/rules.mk b/keyboards/keychron/q3/jis/rules.mk index 58bbb89a72..cf4b02e6da 100644 --- a/keyboards/keychron/q3/jis/rules.mk +++ b/keyboards/keychron/q3/jis/rules.mk @@ -13,6 +13,3 @@ AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes LTO_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/q3/jis_encoder/rules.mk b/keyboards/keychron/q3/jis_encoder/rules.mk index 77b90f2466..929c4532a0 100644 --- a/keyboards/keychron/q3/jis_encoder/rules.mk +++ b/keyboards/keychron/q3/jis_encoder/rules.mk @@ -14,8 +14,6 @@ ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes LTO_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q4/ansi_v1/rules.mk b/keyboards/keychron/q4/ansi_v1/rules.mk index cad488b009..04fb3f58a3 100644 --- a/keyboards/keychron/q4/ansi_v1/rules.mk +++ b/keyboards/keychron/q4/ansi_v1/rules.mk @@ -13,6 +13,3 @@ AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes LTO_ENABLE = no -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/q4/ansi_v2/rules.mk b/keyboards/keychron/q4/ansi_v2/rules.mk index cad488b009..04fb3f58a3 100644 --- a/keyboards/keychron/q4/ansi_v2/rules.mk +++ b/keyboards/keychron/q4/ansi_v2/rules.mk @@ -13,6 +13,3 @@ AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes LTO_ENABLE = no -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/q4/iso/rules.mk b/keyboards/keychron/q4/iso/rules.mk index cad488b009..04fb3f58a3 100644 --- a/keyboards/keychron/q4/iso/rules.mk +++ b/keyboards/keychron/q4/iso/rules.mk @@ -13,6 +13,3 @@ AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes LTO_ENABLE = no -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/q5/ansi/rules.mk b/keyboards/keychron/q5/ansi/rules.mk index e859eb9c34..465dfa9348 100644 --- a/keyboards/keychron/q5/ansi/rules.mk +++ b/keyboards/keychron/q5/ansi/rules.mk @@ -12,8 +12,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q5/ansi_encoder/rules.mk b/keyboards/keychron/q5/ansi_encoder/rules.mk index 7da353fbd1..4c6e5bebf0 100644 --- a/keyboards/keychron/q5/ansi_encoder/rules.mk +++ b/keyboards/keychron/q5/ansi_encoder/rules.mk @@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q5/iso/rules.mk b/keyboards/keychron/q5/iso/rules.mk index e859eb9c34..465dfa9348 100644 --- a/keyboards/keychron/q5/iso/rules.mk +++ b/keyboards/keychron/q5/iso/rules.mk @@ -12,8 +12,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q5/iso_encoder/rules.mk b/keyboards/keychron/q5/iso_encoder/rules.mk index 7da353fbd1..4c6e5bebf0 100644 --- a/keyboards/keychron/q5/iso_encoder/rules.mk +++ b/keyboards/keychron/q5/iso_encoder/rules.mk @@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q6/ansi/rules.mk b/keyboards/keychron/q6/ansi/rules.mk index ec47b77d0f..9383cc955f 100644 --- a/keyboards/keychron/q6/ansi/rules.mk +++ b/keyboards/keychron/q6/ansi/rules.mk @@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes LTO_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q6/ansi_encoder/rules.mk b/keyboards/keychron/q6/ansi_encoder/rules.mk index 77b90f2466..929c4532a0 100644 --- a/keyboards/keychron/q6/ansi_encoder/rules.mk +++ b/keyboards/keychron/q6/ansi_encoder/rules.mk @@ -14,8 +14,6 @@ ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes LTO_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q6/iso/rules.mk b/keyboards/keychron/q6/iso/rules.mk index 6548448302..f16a475f61 100644 --- a/keyboards/keychron/q6/iso/rules.mk +++ b/keyboards/keychron/q6/iso/rules.mk @@ -14,8 +14,6 @@ DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes RAW_ENABLE = yes LTO_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q6/iso_encoder/rules.mk b/keyboards/keychron/q6/iso_encoder/rules.mk index 548b0d696b..712c2ef1fd 100644 --- a/keyboards/keychron/q6/iso_encoder/rules.mk +++ b/keyboards/keychron/q6/iso_encoder/rules.mk @@ -15,8 +15,6 @@ DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes RAW_ENABLE = yes LTO_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q60/ansi/rules.mk b/keyboards/keychron/q60/ansi/rules.mk index 46f5aef144..468ed6fae3 100644 --- a/keyboards/keychron/q60/ansi/rules.mk +++ b/keyboards/keychron/q60/ansi/rules.mk @@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/q65/ansi_encoder/rules.mk b/keyboards/keychron/q65/ansi_encoder/rules.mk index 7da353fbd1..4c6e5bebf0 100644 --- a/keyboards/keychron/q65/ansi_encoder/rules.mk +++ b/keyboards/keychron/q65/ansi_encoder/rules.mk @@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/q7/ansi/rules.mk b/keyboards/keychron/q7/ansi/rules.mk index c37beecb9e..cf31e094cb 100644 --- a/keyboards/keychron/q7/ansi/rules.mk +++ b/keyboards/keychron/q7/ansi/rules.mk @@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/q7/iso/rules.mk b/keyboards/keychron/q7/iso/rules.mk index c37beecb9e..cf31e094cb 100644 --- a/keyboards/keychron/q7/iso/rules.mk +++ b/keyboards/keychron/q7/iso/rules.mk @@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/q8/ansi/rules.mk b/keyboards/keychron/q8/ansi/rules.mk index c37beecb9e..cf31e094cb 100644 --- a/keyboards/keychron/q8/ansi/rules.mk +++ b/keyboards/keychron/q8/ansi/rules.mk @@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/q8/ansi_encoder/rules.mk b/keyboards/keychron/q8/ansi_encoder/rules.mk index 5091fe9414..5d77f09971 100644 --- a/keyboards/keychron/q8/ansi_encoder/rules.mk +++ b/keyboards/keychron/q8/ansi_encoder/rules.mk @@ -13,6 +13,3 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/q8/iso/rules.mk b/keyboards/keychron/q8/iso/rules.mk index c37beecb9e..cf31e094cb 100644 --- a/keyboards/keychron/q8/iso/rules.mk +++ b/keyboards/keychron/q8/iso/rules.mk @@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/q8/iso_encoder/rules.mk b/keyboards/keychron/q8/iso_encoder/rules.mk index 5091fe9414..5d77f09971 100644 --- a/keyboards/keychron/q8/iso_encoder/rules.mk +++ b/keyboards/keychron/q8/iso_encoder/rules.mk @@ -13,6 +13,3 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/q9/ansi/rules.mk b/keyboards/keychron/q9/ansi/rules.mk index c37beecb9e..cf31e094cb 100644 --- a/keyboards/keychron/q9/ansi/rules.mk +++ b/keyboards/keychron/q9/ansi/rules.mk @@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/q9/ansi_encoder/rules.mk b/keyboards/keychron/q9/ansi_encoder/rules.mk index 911c497043..ed8fd33800 100644 --- a/keyboards/keychron/q9/ansi_encoder/rules.mk +++ b/keyboards/keychron/q9/ansi_encoder/rules.mk @@ -14,6 +14,3 @@ ENCODER_ENABLE = yes # Enable Encoder ENCODER_MAP_ENBALE = no DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/q9/iso/rules.mk b/keyboards/keychron/q9/iso/rules.mk index c37beecb9e..cf31e094cb 100644 --- a/keyboards/keychron/q9/iso/rules.mk +++ b/keyboards/keychron/q9/iso/rules.mk @@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/q9/iso_encoder/rules.mk b/keyboards/keychron/q9/iso_encoder/rules.mk index 911c497043..ed8fd33800 100644 --- a/keyboards/keychron/q9/iso_encoder/rules.mk +++ b/keyboards/keychron/q9/iso_encoder/rules.mk @@ -14,6 +14,3 @@ ENCODER_ENABLE = yes # Enable Encoder ENCODER_MAP_ENBALE = no DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/s1/ansi/rgb/rules.mk b/keyboards/keychron/s1/ansi/rgb/rules.mk index c37beecb9e..cf31e094cb 100644 --- a/keyboards/keychron/s1/ansi/rgb/rules.mk +++ b/keyboards/keychron/s1/ansi/rgb/rules.mk @@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/s1/ansi/white/rules.mk b/keyboards/keychron/s1/ansi/white/rules.mk index cb70ced917..afcbe18d62 100644 --- a/keyboards/keychron/s1/ansi/white/rules.mk +++ b/keyboards/keychron/s1/ansi/white/rules.mk @@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes LED_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/v1/ansi/rules.mk b/keyboards/keychron/v1/ansi/rules.mk index e859eb9c34..465dfa9348 100644 --- a/keyboards/keychron/v1/ansi/rules.mk +++ b/keyboards/keychron/v1/ansi/rules.mk @@ -12,8 +12,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v1/ansi_encoder/rules.mk b/keyboards/keychron/v1/ansi_encoder/rules.mk index 7da353fbd1..4c6e5bebf0 100644 --- a/keyboards/keychron/v1/ansi_encoder/rules.mk +++ b/keyboards/keychron/v1/ansi_encoder/rules.mk @@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v1/iso/rules.mk b/keyboards/keychron/v1/iso/rules.mk index e859eb9c34..465dfa9348 100644 --- a/keyboards/keychron/v1/iso/rules.mk +++ b/keyboards/keychron/v1/iso/rules.mk @@ -12,8 +12,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v1/iso_encoder/rules.mk b/keyboards/keychron/v1/iso_encoder/rules.mk index 7da353fbd1..4c6e5bebf0 100644 --- a/keyboards/keychron/v1/iso_encoder/rules.mk +++ b/keyboards/keychron/v1/iso_encoder/rules.mk @@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v1/jis/rules.mk b/keyboards/keychron/v1/jis/rules.mk index e859eb9c34..465dfa9348 100644 --- a/keyboards/keychron/v1/jis/rules.mk +++ b/keyboards/keychron/v1/jis/rules.mk @@ -12,8 +12,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v1/jis_encoder/rules.mk b/keyboards/keychron/v1/jis_encoder/rules.mk index 7da353fbd1..4c6e5bebf0 100644 --- a/keyboards/keychron/v1/jis_encoder/rules.mk +++ b/keyboards/keychron/v1/jis_encoder/rules.mk @@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v10/ansi_encoder/rules.mk b/keyboards/keychron/v10/ansi_encoder/rules.mk index 7da353fbd1..4c6e5bebf0 100644 --- a/keyboards/keychron/v10/ansi_encoder/rules.mk +++ b/keyboards/keychron/v10/ansi_encoder/rules.mk @@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v10/iso_encoder/rules.mk b/keyboards/keychron/v10/iso_encoder/rules.mk index 7da353fbd1..4c6e5bebf0 100644 --- a/keyboards/keychron/v10/iso_encoder/rules.mk +++ b/keyboards/keychron/v10/iso_encoder/rules.mk @@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v2/ansi/rules.mk b/keyboards/keychron/v2/ansi/rules.mk index c37beecb9e..cf31e094cb 100644 --- a/keyboards/keychron/v2/ansi/rules.mk +++ b/keyboards/keychron/v2/ansi/rules.mk @@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/v2/ansi_encoder/rules.mk b/keyboards/keychron/v2/ansi_encoder/rules.mk index 5091fe9414..5d77f09971 100644 --- a/keyboards/keychron/v2/ansi_encoder/rules.mk +++ b/keyboards/keychron/v2/ansi_encoder/rules.mk @@ -13,6 +13,3 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/v2/iso/rules.mk b/keyboards/keychron/v2/iso/rules.mk index c37beecb9e..cf31e094cb 100644 --- a/keyboards/keychron/v2/iso/rules.mk +++ b/keyboards/keychron/v2/iso/rules.mk @@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/v2/iso_encoder/rules.mk b/keyboards/keychron/v2/iso_encoder/rules.mk index 5091fe9414..5d77f09971 100644 --- a/keyboards/keychron/v2/iso_encoder/rules.mk +++ b/keyboards/keychron/v2/iso_encoder/rules.mk @@ -13,6 +13,3 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/v2/jis/rules.mk b/keyboards/keychron/v2/jis/rules.mk index c37beecb9e..cf31e094cb 100644 --- a/keyboards/keychron/v2/jis/rules.mk +++ b/keyboards/keychron/v2/jis/rules.mk @@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/v2/jis_encoder/rules.mk b/keyboards/keychron/v2/jis_encoder/rules.mk index 5091fe9414..5d77f09971 100644 --- a/keyboards/keychron/v2/jis_encoder/rules.mk +++ b/keyboards/keychron/v2/jis_encoder/rules.mk @@ -13,6 +13,3 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/v3/ansi/rules.mk b/keyboards/keychron/v3/ansi/rules.mk index c37beecb9e..cf31e094cb 100644 --- a/keyboards/keychron/v3/ansi/rules.mk +++ b/keyboards/keychron/v3/ansi/rules.mk @@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/v3/ansi_encoder/rules.mk b/keyboards/keychron/v3/ansi_encoder/rules.mk index 7da353fbd1..4c6e5bebf0 100644 --- a/keyboards/keychron/v3/ansi_encoder/rules.mk +++ b/keyboards/keychron/v3/ansi_encoder/rules.mk @@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v3/iso/rules.mk b/keyboards/keychron/v3/iso/rules.mk index 2eadfbded9..118bf40e5a 100644 --- a/keyboards/keychron/v3/iso/rules.mk +++ b/keyboards/keychron/v3/iso/rules.mk @@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/v3/iso_encoder/rules.mk b/keyboards/keychron/v3/iso_encoder/rules.mk index 7da353fbd1..4c6e5bebf0 100644 --- a/keyboards/keychron/v3/iso_encoder/rules.mk +++ b/keyboards/keychron/v3/iso_encoder/rules.mk @@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v3/jis/rules.mk b/keyboards/keychron/v3/jis/rules.mk index c37beecb9e..cf31e094cb 100644 --- a/keyboards/keychron/v3/jis/rules.mk +++ b/keyboards/keychron/v3/jis/rules.mk @@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/v3/jis_encoder/rules.mk b/keyboards/keychron/v3/jis_encoder/rules.mk index 7da353fbd1..4c6e5bebf0 100644 --- a/keyboards/keychron/v3/jis_encoder/rules.mk +++ b/keyboards/keychron/v3/jis_encoder/rules.mk @@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v4/ansi/rules.mk b/keyboards/keychron/v4/ansi/rules.mk index 46f5aef144..468ed6fae3 100644 --- a/keyboards/keychron/v4/ansi/rules.mk +++ b/keyboards/keychron/v4/ansi/rules.mk @@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/v4/iso/rules.mk b/keyboards/keychron/v4/iso/rules.mk index 46f5aef144..468ed6fae3 100644 --- a/keyboards/keychron/v4/iso/rules.mk +++ b/keyboards/keychron/v4/iso/rules.mk @@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/v5/ansi/rules.mk b/keyboards/keychron/v5/ansi/rules.mk index e859eb9c34..465dfa9348 100644 --- a/keyboards/keychron/v5/ansi/rules.mk +++ b/keyboards/keychron/v5/ansi/rules.mk @@ -12,8 +12,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v5/ansi_encoder/rules.mk b/keyboards/keychron/v5/ansi_encoder/rules.mk index 7da353fbd1..4c6e5bebf0 100644 --- a/keyboards/keychron/v5/ansi_encoder/rules.mk +++ b/keyboards/keychron/v5/ansi_encoder/rules.mk @@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v5/iso/rules.mk b/keyboards/keychron/v5/iso/rules.mk index e859eb9c34..465dfa9348 100644 --- a/keyboards/keychron/v5/iso/rules.mk +++ b/keyboards/keychron/v5/iso/rules.mk @@ -12,8 +12,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v5/iso_encoder/rules.mk b/keyboards/keychron/v5/iso_encoder/rules.mk index 7da353fbd1..4c6e5bebf0 100644 --- a/keyboards/keychron/v5/iso_encoder/rules.mk +++ b/keyboards/keychron/v5/iso_encoder/rules.mk @@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v6/ansi/rules.mk b/keyboards/keychron/v6/ansi/rules.mk index 980311d3f2..eff255ee8c 100644 --- a/keyboards/keychron/v6/ansi/rules.mk +++ b/keyboards/keychron/v6/ansi/rules.mk @@ -12,8 +12,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v6/ansi_encoder/rules.mk b/keyboards/keychron/v6/ansi_encoder/rules.mk index 80a3f300bd..213c733c9c 100644 --- a/keyboards/keychron/v6/ansi_encoder/rules.mk +++ b/keyboards/keychron/v6/ansi_encoder/rules.mk @@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v6/iso/rules.mk b/keyboards/keychron/v6/iso/rules.mk index 980311d3f2..eff255ee8c 100644 --- a/keyboards/keychron/v6/iso/rules.mk +++ b/keyboards/keychron/v6/iso/rules.mk @@ -12,8 +12,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v6/iso_encoder/rules.mk b/keyboards/keychron/v6/iso_encoder/rules.mk index 9867724957..39b0594039 100644 --- a/keyboards/keychron/v6/iso_encoder/rules.mk +++ b/keyboards/keychron/v6/iso_encoder/rules.mk @@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash # custom matrix setup CUSTOM_MATRIX = lite diff --git a/keyboards/keychron/v7/ansi/rules.mk b/keyboards/keychron/v7/ansi/rules.mk index 46f5aef144..468ed6fae3 100644 --- a/keyboards/keychron/v7/ansi/rules.mk +++ b/keyboards/keychron/v7/ansi/rules.mk @@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/v7/iso/rules.mk b/keyboards/keychron/v7/iso/rules.mk index 46f5aef144..468ed6fae3 100644 --- a/keyboards/keychron/v7/iso/rules.mk +++ b/keyboards/keychron/v7/iso/rules.mk @@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/v8/ansi/rules.mk b/keyboards/keychron/v8/ansi/rules.mk index e506e322d5..08a7658da3 100644 --- a/keyboards/keychron/v8/ansi/rules.mk +++ b/keyboards/keychron/v8/ansi/rules.mk @@ -14,6 +14,3 @@ ENCODER_ENABLE = no # Enable Encoder ENCODER_MAP_ENABLE = no DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/v8/ansi_encoder/rules.mk b/keyboards/keychron/v8/ansi_encoder/rules.mk index e3b0d8f03f..d53dc0f5d5 100644 --- a/keyboards/keychron/v8/ansi_encoder/rules.mk +++ b/keyboards/keychron/v8/ansi_encoder/rules.mk @@ -14,6 +14,3 @@ ENCODER_ENABLE = yes # Enable Encoder ENCODER_MAP_ENABLE = no DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/v8/iso/rules.mk b/keyboards/keychron/v8/iso/rules.mk index 8edab2465b..4aa9221c24 100644 --- a/keyboards/keychron/v8/iso/rules.mk +++ b/keyboards/keychron/v8/iso/rules.mk @@ -13,6 +13,3 @@ AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = no # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/keychron/v8/iso_encoder/rules.mk b/keyboards/keychron/v8/iso_encoder/rules.mk index e3b0d8f03f..d53dc0f5d5 100644 --- a/keyboards/keychron/v8/iso_encoder/rules.mk +++ b/keyboards/keychron/v8/iso_encoder/rules.mk @@ -14,6 +14,3 @@ ENCODER_ENABLE = yes # Enable Encoder ENCODER_MAP_ENABLE = no DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - From 7b313dbc893369a1a58da260f2c9b5b9b0a7a850 Mon Sep 17 00:00:00 2001 From: zvecr Date: Tue, 12 Sep 2023 10:30:54 +0100 Subject: [PATCH 025/496] Migrate stray WS2812_DRIVER to info.json --- keyboards/1upkeyboards/1upocarina/info.json | 1 + keyboards/1upkeyboards/1upocarina/rules.mk | 2 +- keyboards/handwired/phantagom/baragon/info.json | 1 + keyboards/handwired/phantagom/baragon/rules.mk | 3 +-- keyboards/handwired/phantagom/varan/info.json | 1 + keyboards/handwired/phantagom/varan/rules.mk | 3 +-- keyboards/keebio/cepstrum/rev1/info.json | 1 + keyboards/keebio/cepstrum/rev1/rules.mk | 1 - keyboards/novelkeys/nk_plus/info.json | 1 + keyboards/novelkeys/nk_plus/rules.mk | 5 ----- keyboards/stront/info.json | 1 + keyboards/stront/rules.mk | 1 - 12 files changed, 9 insertions(+), 12 deletions(-) diff --git a/keyboards/1upkeyboards/1upocarina/info.json b/keyboards/1upkeyboards/1upocarina/info.json index fccf9d8899..c6a3718082 100644 --- a/keyboards/1upkeyboards/1upocarina/info.json +++ b/keyboards/1upkeyboards/1upocarina/info.json @@ -37,6 +37,7 @@ ] }, "ws2812": { + "driver": "vendor", "pin": "GP24" }, "rgb_matrix": { diff --git a/keyboards/1upkeyboards/1upocarina/rules.mk b/keyboards/1upkeyboards/1upocarina/rules.mk index 8e853e0af7..6e7633bfe0 100644 --- a/keyboards/1upkeyboards/1upocarina/rules.mk +++ b/keyboards/1upkeyboards/1upocarina/rules.mk @@ -1 +1 @@ -WS2812_DRIVER = vendor \ No newline at end of file +# This file intentionally left blank diff --git a/keyboards/handwired/phantagom/baragon/info.json b/keyboards/handwired/phantagom/baragon/info.json index f86dfcf436..390f114dd9 100644 --- a/keyboards/handwired/phantagom/baragon/info.json +++ b/keyboards/handwired/phantagom/baragon/info.json @@ -15,6 +15,7 @@ "encoder": true }, "ws2812": { + "driver": "vendor", "pin": "GP15" }, "rgblight": { diff --git a/keyboards/handwired/phantagom/baragon/rules.mk b/keyboards/handwired/phantagom/baragon/rules.mk index bffd02535d..6e7633bfe0 100644 --- a/keyboards/handwired/phantagom/baragon/rules.mk +++ b/keyboards/handwired/phantagom/baragon/rules.mk @@ -1,2 +1 @@ -# Needed for RP2040 -WS2812_DRIVER = vendor \ No newline at end of file +# This file intentionally left blank diff --git a/keyboards/handwired/phantagom/varan/info.json b/keyboards/handwired/phantagom/varan/info.json index 636c2d00e6..a767d45de0 100644 --- a/keyboards/handwired/phantagom/varan/info.json +++ b/keyboards/handwired/phantagom/varan/info.json @@ -14,6 +14,7 @@ "rgblight": true }, "ws2812": { + "driver": "vendor", "pin": "GP28" }, "rgblight": { diff --git a/keyboards/handwired/phantagom/varan/rules.mk b/keyboards/handwired/phantagom/varan/rules.mk index bffd02535d..6e7633bfe0 100644 --- a/keyboards/handwired/phantagom/varan/rules.mk +++ b/keyboards/handwired/phantagom/varan/rules.mk @@ -1,2 +1 @@ -# Needed for RP2040 -WS2812_DRIVER = vendor \ No newline at end of file +# This file intentionally left blank diff --git a/keyboards/keebio/cepstrum/rev1/info.json b/keyboards/keebio/cepstrum/rev1/info.json index b5bf188c92..b4b764c889 100644 --- a/keyboards/keebio/cepstrum/rev1/info.json +++ b/keyboards/keebio/cepstrum/rev1/info.json @@ -121,6 +121,7 @@ } }, "ws2812": { + "driver": "vendor", "pin": "GP18" }, "rgb_matrix": { diff --git a/keyboards/keebio/cepstrum/rev1/rules.mk b/keyboards/keebio/cepstrum/rev1/rules.mk index 8fb51ec82d..161ec22b16 100644 --- a/keyboards/keebio/cepstrum/rev1/rules.mk +++ b/keyboards/keebio/cepstrum/rev1/rules.mk @@ -1,2 +1 @@ SERIAL_DRIVER = vendor -WS2812_DRIVER = vendor diff --git a/keyboards/novelkeys/nk_plus/info.json b/keyboards/novelkeys/nk_plus/info.json index f6fad60b01..51a23057c4 100755 --- a/keyboards/novelkeys/nk_plus/info.json +++ b/keyboards/novelkeys/nk_plus/info.json @@ -109,6 +109,7 @@ "max_brightness": 120 }, "ws2812": { + "driver": "pwm", "pin": "B4" }, "layout_aliases": { diff --git a/keyboards/novelkeys/nk_plus/rules.mk b/keyboards/novelkeys/nk_plus/rules.mk index 928a45cfae..0ab54aaaf7 100644 --- a/keyboards/novelkeys/nk_plus/rules.mk +++ b/keyboards/novelkeys/nk_plus/rules.mk @@ -1,7 +1,2 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF - -# Build Options -# change yes to no to disable -# -WS2812_DRIVER = pwm # Per-key RGB MCU Driver diff --git a/keyboards/stront/info.json b/keyboards/stront/info.json index c3435b1f5d..cd418aa246 100644 --- a/keyboards/stront/info.json +++ b/keyboards/stront/info.json @@ -86,6 +86,7 @@ "pin": "GP14" }, "ws2812": { + "driver": "vendor", "pin": "GP29" }, "rgblight": { diff --git a/keyboards/stront/rules.mk b/keyboards/stront/rules.mk index 940a592d11..c6cdeb5bfc 100644 --- a/keyboards/stront/rules.mk +++ b/keyboards/stront/rules.mk @@ -1,5 +1,4 @@ SERIAL_DRIVER = vendor -WS2812_DRIVER = vendor POINTING_DEVICE_ENABLE = yes POINTING_DEVICE_DRIVER = cirque_pinnacle_spi From 91e0e46e4a949080c0d203d4433170ce49d42ada Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue, 12 Sep 2023 12:57:45 -0700 Subject: [PATCH 026/496] Drewkeys Mercury65 Layout Additions (#21924) * Rename `LAYOUT` to `LAYOUT_all` [refactor] * Add layout/matrix diagram [docs] * Correct `LAYOUT_all` data Correct the order of the Up arrow and End keys. [enhancement] * Tidy-up `info.json` formatting - add line breaks between physical rows - remove trailing spaces [style] * Add `LAYOUT_iso_blocker_split_bs` [enhancement] * Add `LAYOUT_iso_blocker_tsangan_split_bs` [enhancement] * Add `LAYOUT_ansi_blocker_split_bs` [enhancement] * Add `LAYOUT_ansi_blocker_tsangan_split_bs` [enhancement] --- keyboards/drewkeys/mercury65/info.json | 449 +++++++++++++++--- .../mercury65/keymaps/default/keymap.c | 4 +- .../drewkeys/mercury65/keymaps/via/keymap.c | 4 +- .../drewkeys/mercury65/matrix_diagram.md | 25 + 4 files changed, 407 insertions(+), 75 deletions(-) create mode 100644 keyboards/drewkeys/mercury65/matrix_diagram.md diff --git a/keyboards/drewkeys/mercury65/info.json b/keyboards/drewkeys/mercury65/info.json index 93f7b2ec3b..68fa52d8d3 100644 --- a/keyboards/drewkeys/mercury65/info.json +++ b/keyboards/drewkeys/mercury65/info.json @@ -21,79 +21,386 @@ "cols": ["B0", "B1", "B2", "B3", "B7", "D1", "D2", "D3", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5"], "rows": ["D5", "D4", "D6", "D0", "E6"] }, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [ - {"matrix": [0, 0], "label":"`", "x":0, "y":0}, - {"matrix": [0, 1], "label":"!", "x":1, "y":0}, - {"matrix": [0, 2], "label":"@", "x":2, "y":0}, - {"matrix": [0, 3], "label":"#", "x":3, "y":0}, - {"matrix": [0, 4], "label":"$", "x":4, "y":0}, - {"matrix": [0, 5], "label":"%", "x":5, "y":0}, - {"matrix": [0, 6], "label":"^", "x":6, "y":0}, - {"matrix": [0, 7], "label":"&", "x":7, "y":0}, - {"matrix": [0, 8], "label":"*", "x":8, "y":0}, - {"matrix": [0, 9], "label":"(", "x":9, "y":0}, - {"matrix": [0, 10], "label":")", "x":10, "y":0}, - {"matrix": [0, 11], "label":"_", "x":11, "y":0}, - {"matrix": [0, 12], "label":"+", "x":12, "y":0}, - {"matrix": [0, 13], "label":"Del", "x":13, "y":0}, - {"matrix": [0, 14], "label":"Bsp", "x":14, "y":0}, - {"matrix": [1, 0], "label":"Tab", "x":0, "y":1, "w":1.5}, - {"matrix": [1, 2], "label":"Q", "x":1.5, "y":1}, - {"matrix": [1, 3], "label":"W", "x":2.5, "y":1}, - {"matrix": [1, 4], "label":"E", "x":3.5, "y":1}, - {"matrix": [1, 5], "label":"R", "x":4.5, "y":1}, - {"matrix": [1, 6], "label":"T", "x":5.5, "y":1}, - {"matrix": [1, 7], "label":"Y", "x":6.5, "y":1}, - {"matrix": [1, 8], "label":"U", "x":7.5, "y":1}, - {"matrix": [1, 9], "label":"I", "x":8.5, "y":1}, - {"matrix": [1, 10], "label":"O", "x":9.5, "y":1}, - {"matrix": [1, 11], "label":"P", "x":10.5, "y":1}, - {"matrix": [1, 12], "label":"{", "x":11.5, "y":1}, - {"matrix": [1, 13], "label":"}", "x":12.5, "y":1}, - {"matrix": [1, 14], "label":"|", "x":13.5, "y":1, "w":1.5}, - {"matrix": [1, 16], "label":"PgUp", "x":15.5, "y":1}, - {"matrix": [2, 0], "label":"Caps Lock", "x":0, "y":2, "w":1.75}, - {"matrix": [2, 2], "label":"A", "x":1.75, "y":2}, - {"matrix": [2, 3], "label":"S", "x":2.75, "y":2}, - {"matrix": [2, 4], "label":"D", "x":3.75, "y":2}, - {"matrix": [2, 5], "label":"F", "x":4.75, "y":2}, - {"matrix": [2, 6], "label":"G", "x":5.75, "y":2}, - {"matrix": [2, 7], "label":"H", "x":6.75, "y":2}, - {"matrix": [2, 8], "label":"J", "x":7.75, "y":2}, - {"matrix": [2, 9], "label":"K", "x":8.75, "y":2}, - {"matrix": [2, 10], "label":"L", "x":9.75, "y":2}, - {"matrix": [2, 11], "label":":", "x":10.75, "y":2}, - {"matrix": [2, 12], "label":"@", "x":11.75, "y":2}, - {"matrix": [2, 13], "label":"ISO", "x":12.75, "y":2}, - {"matrix": [2, 14], "label":"Enter", "x":13.75, "y":2, "w":1.25}, - {"matrix": [2, 16], "label":"Home", "x":15.5, "y":2}, - {"matrix": [3, 0], "label":"Shift", "x":0, "y":3, "w":1.25}, - {"matrix": [3, 1], "label":"\\", "x":1.25, "y":3}, - {"matrix": [3, 2], "label":"Z", "x":2.25, "y":3}, - {"matrix": [3, 3], "label":"X", "x":3.25, "y":3}, - {"matrix": [3, 4], "label":"C", "x":4.25, "y":3}, - {"matrix": [3, 5], "label":"V", "x":5.25, "y":3}, - {"matrix": [3, 6], "label":"B", "x":6.25, "y":3}, - {"matrix": [3, 7], "label":"N", "x":7.25, "y":3}, - {"matrix": [3, 8], "label":"M", "x":8.25, "y":3}, - {"matrix": [3, 9], "label":"<", "x":9.25, "y":3}, - {"matrix": [3, 10], "label":">", "x":10.25, "y":3}, - {"matrix": [3, 11], "label":"?", "x":11.25, "y":3}, - {"matrix": [3, 13], "label":"Shift", "x":12.25, "y":3, "w":1.75}, - {"matrix": [3, 14], "label":"End", "x":15.5, "y":3}, - {"matrix": [3, 16], "label":"\u2191", "x":14.25, "y":3.25}, - {"matrix": [4, 0], "label":"Ctrl", "x":0, "y":4, "w":1.25}, - {"matrix": [4, 1], "label":"Win", "x":1.25, "y":4, "w":1.25}, - {"matrix": [4, 2], "label":"Alt", "x":2.5, "y":4, "w":1.25}, - {"matrix": [4, 6], "x":3.75, "y":4, "w":6.25}, - {"matrix": [4, 10], "label":"AltGr", "x":10, "y":4, "w":1.25}, - {"matrix": [4, 11], "label":"Win", "x":11.25, "y":4, "w":1.25}, - {"matrix": [4, 13], "label":"\u2190", "x":13.25, "y":4.25}, - {"matrix": [4, 14], "label":"\u2193", "x":14.25, "y":4.25}, - {"matrix": [4, 15], "label":"\u2192", "x":15.25, "y":4.25}] + {"matrix": [0, 0], "label":"`", "x":0, "y":0}, + {"matrix": [0, 1], "label":"!", "x":1, "y":0}, + {"matrix": [0, 2], "label":"@", "x":2, "y":0}, + {"matrix": [0, 3], "label":"#", "x":3, "y":0}, + {"matrix": [0, 4], "label":"$", "x":4, "y":0}, + {"matrix": [0, 5], "label":"%", "x":5, "y":0}, + {"matrix": [0, 6], "label":"^", "x":6, "y":0}, + {"matrix": [0, 7], "label":"&", "x":7, "y":0}, + {"matrix": [0, 8], "label":"*", "x":8, "y":0}, + {"matrix": [0, 9], "label":"(", "x":9, "y":0}, + {"matrix": [0, 10], "label":")", "x":10, "y":0}, + {"matrix": [0, 11], "label":"_", "x":11, "y":0}, + {"matrix": [0, 12], "label":"+", "x":12, "y":0}, + {"matrix": [0, 13], "label":"Del", "x":13, "y":0}, + {"matrix": [0, 14], "label":"Bsp", "x":14, "y":0}, + + {"matrix": [1, 0], "label":"Tab", "x":0, "y":1, "w":1.5}, + {"matrix": [1, 2], "label":"Q", "x":1.5, "y":1}, + {"matrix": [1, 3], "label":"W", "x":2.5, "y":1}, + {"matrix": [1, 4], "label":"E", "x":3.5, "y":1}, + {"matrix": [1, 5], "label":"R", "x":4.5, "y":1}, + {"matrix": [1, 6], "label":"T", "x":5.5, "y":1}, + {"matrix": [1, 7], "label":"Y", "x":6.5, "y":1}, + {"matrix": [1, 8], "label":"U", "x":7.5, "y":1}, + {"matrix": [1, 9], "label":"I", "x":8.5, "y":1}, + {"matrix": [1, 10], "label":"O", "x":9.5, "y":1}, + {"matrix": [1, 11], "label":"P", "x":10.5, "y":1}, + {"matrix": [1, 12], "label":"{", "x":11.5, "y":1}, + {"matrix": [1, 13], "label":"}", "x":12.5, "y":1}, + {"matrix": [1, 14], "label":"|", "x":13.5, "y":1, "w":1.5}, + {"matrix": [1, 16], "label":"PgUp", "x":15.5, "y":1}, + + {"matrix": [2, 0], "label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"matrix": [2, 2], "label":"A", "x":1.75, "y":2}, + {"matrix": [2, 3], "label":"S", "x":2.75, "y":2}, + {"matrix": [2, 4], "label":"D", "x":3.75, "y":2}, + {"matrix": [2, 5], "label":"F", "x":4.75, "y":2}, + {"matrix": [2, 6], "label":"G", "x":5.75, "y":2}, + {"matrix": [2, 7], "label":"H", "x":6.75, "y":2}, + {"matrix": [2, 8], "label":"J", "x":7.75, "y":2}, + {"matrix": [2, 9], "label":"K", "x":8.75, "y":2}, + {"matrix": [2, 10], "label":"L", "x":9.75, "y":2}, + {"matrix": [2, 11], "label":":", "x":10.75, "y":2}, + {"matrix": [2, 12], "label":"@", "x":11.75, "y":2}, + {"matrix": [2, 13], "label":"ISO", "x":12.75, "y":2}, + {"matrix": [2, 14], "label":"Enter", "x":13.75, "y":2, "w":1.25}, + {"matrix": [2, 16], "label":"Home", "x":15.5, "y":2}, + + {"matrix": [3, 0], "label":"Shift", "x":0, "y":3, "w":1.25}, + {"matrix": [3, 1], "label":"\\", "x":1.25, "y":3}, + {"matrix": [3, 2], "label":"Z", "x":2.25, "y":3}, + {"matrix": [3, 3], "label":"X", "x":3.25, "y":3}, + {"matrix": [3, 4], "label":"C", "x":4.25, "y":3}, + {"matrix": [3, 5], "label":"V", "x":5.25, "y":3}, + {"matrix": [3, 6], "label":"B", "x":6.25, "y":3}, + {"matrix": [3, 7], "label":"N", "x":7.25, "y":3}, + {"matrix": [3, 8], "label":"M", "x":8.25, "y":3}, + {"matrix": [3, 9], "label":"<", "x":9.25, "y":3}, + {"matrix": [3, 10], "label":">", "x":10.25, "y":3}, + {"matrix": [3, 11], "label":"?", "x":11.25, "y":3}, + {"matrix": [3, 13], "label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"matrix": [3, 14], "label":"\u2191", "x":14.25, "y":3.25}, + {"matrix": [3, 16], "label":"End", "x":15.5, "y":3}, + + {"matrix": [4, 0], "label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"matrix": [4, 1], "label":"Win", "x":1.25, "y":4, "w":1.25}, + {"matrix": [4, 2], "label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"matrix": [4, 6], "x":3.75, "y":4, "w":6.25}, + {"matrix": [4, 10], "label":"AltGr", "x":10, "y":4, "w":1.25}, + {"matrix": [4, 11], "label":"Win", "x":11.25, "y":4, "w":1.25}, + {"matrix": [4, 13], "label":"\u2190", "x":13.25, "y":4.25}, + {"matrix": [4, 14], "label":"\u2193", "x":14.25, "y":4.25}, + {"matrix": [4, 15], "label":"\u2192", "x":15.25, "y":4.25} + ] + }, + "LAYOUT_ansi_blocker_split_bs": { + "layout": [ + {"label": "`", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Del", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Bsp", "matrix": [0, 14], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 3], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 4], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 5], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 6], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 8], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 9], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 10], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 11], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 12], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 13], "x": 12.5, "y": 1}, + {"label": "\\", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "PgUp", "matrix": [1, 16], "x": 15.5, "y": 1}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 2], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 3], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 4], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 5], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 6], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 7], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 8], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 9], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 10], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 11], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 12], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Home", "matrix": [2, 16], "x": 15.5, "y": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 14], "x": 14.25, "y": 3.25}, + {"label": "End", "matrix": [3, 16], "x": 15.5, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "AltGr", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 13], "x": 13.25, "y": 4.25}, + {"label": "\u2193", "matrix": [4, 14], "x": 14.25, "y": 4.25}, + {"label": "\u2192", "matrix": [4, 15], "x": 15.25, "y": 4.25} + ] + }, + "LAYOUT_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"label": "`", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Del", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Bsp", "matrix": [0, 14], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 3], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 4], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 5], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 6], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 8], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 9], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 10], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 11], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 12], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 13], "x": 12.5, "y": 1}, + {"label": "\\", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "PgUp", "matrix": [1, 16], "x": 15.5, "y": 1}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 2], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 3], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 4], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 5], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 6], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 7], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 8], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 9], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 10], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 11], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 12], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Home", "matrix": [2, 16], "x": 15.5, "y": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 14], "x": 14.25, "y": 3.25}, + {"label": "End", "matrix": [3, 16], "x": 15.5, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "GUI", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "GUI", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 13], "x": 13.25, "y": 4.25}, + {"label": "\u2193", "matrix": [4, 14], "x": 14.25, "y": 4.25}, + {"label": "\u2192", "matrix": [4, 15], "x": 15.25, "y": 4.25} + ] + }, + "LAYOUT_iso_blocker_split_bs": { + "layout": [ + {"label": "`", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Del", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Bsp", "matrix": [0, 14], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 3], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 4], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 5], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 6], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 8], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 9], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 10], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 11], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 12], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 13], "x": 12.5, "y": 1}, + {"label": "PgUp", "matrix": [1, 16], "x": 15.5, "y": 1}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 2], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 3], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 4], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 5], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 6], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 7], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 8], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 9], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 10], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 11], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 12], "x": 11.75, "y": 2}, + {"label": "#", "matrix": [2, 13], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"label": "Home", "matrix": [2, 16], "x": 15.5, "y": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "\\", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 14], "x": 14.25, "y": 3.25}, + {"label": "End", "matrix": [3, 16], "x": 15.5, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "AltGr", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 13], "x": 13.25, "y": 4.25}, + {"label": "\u2193", "matrix": [4, 14], "x": 14.25, "y": 4.25}, + {"label": "\u2192", "matrix": [4, 15], "x": 15.25, "y": 4.25} + ] + }, + "LAYOUT_iso_blocker_tsangan_split_bs": { + "layout": [ + {"label": "`", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Del", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Bsp", "matrix": [0, 14], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 3], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 4], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 5], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 6], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 8], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 9], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 10], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 11], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 12], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 13], "x": 12.5, "y": 1}, + {"label": "PgUp", "matrix": [1, 16], "x": 15.5, "y": 1}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 2], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 3], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 4], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 5], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 6], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 7], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 8], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 9], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 10], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 11], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 12], "x": 11.75, "y": 2}, + {"label": "#", "matrix": [2, 13], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"label": "Home", "matrix": [2, 16], "x": 15.5, "y": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "\\", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 14], "x": 14.25, "y": 3.25}, + {"label": "End", "matrix": [3, 16], "x": 15.5, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "GUI", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "GUI", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 13], "x": 13.25, "y": 4.25}, + {"label": "\u2193", "matrix": [4, 14], "x": 14.25, "y": 4.25}, + {"label": "\u2192", "matrix": [4, 15], "x": 15.25, "y": 4.25} + ] } } - } diff --git a/keyboards/drewkeys/mercury65/keymaps/default/keymap.c b/keyboards/drewkeys/mercury65/keymaps/default/keymap.c index 2f9cc945c9..c37dac5359 100644 --- a/keyboards/drewkeys/mercury65/keymaps/default/keymap.c +++ b/keyboards/drewkeys/mercury65/keymaps/default/keymap.c @@ -26,7 +26,7 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base https://i.imgur.com/viQdtbB.png */ - [_BASE] = LAYOUT( + [_BASE] = LAYOUT_all( KC_ESC, 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_BSLS, KC_BSPC, 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_DEL, 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_PGUP, @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT ), - [_FN] = LAYOUT( + [_FN] = LAYOUT_all( QK_BOOT, 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_BSLS, KC_BSPC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/drewkeys/mercury65/keymaps/via/keymap.c b/keyboards/drewkeys/mercury65/keymaps/via/keymap.c index 2af6a064f2..faa3cfc3ec 100644 --- a/keyboards/drewkeys/mercury65/keymaps/via/keymap.c +++ b/keyboards/drewkeys/mercury65/keymaps/via/keymap.c @@ -26,7 +26,7 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base https://i.imgur.com/viQdtbB.png */ - [_BASE] = LAYOUT( + [_BASE] = LAYOUT_all( KC_ESC, 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_BSLS, KC_BSPC, 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_DEL, 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_PGUP, @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT ), - [_FN1] = LAYOUT( + [_FN1] = LAYOUT_all( QK_BOOT, 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_BSLS, KC_BSPC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/drewkeys/mercury65/matrix_diagram.md b/keyboards/drewkeys/mercury65/matrix_diagram.md new file mode 100644 index 0000000000..32fd838a3e --- /dev/null +++ b/keyboards/drewkeys/mercury65/matrix_diagram.md @@ -0,0 +1,25 @@ +# Matrix Diagram for RocketKeyboards mercury65 + +``` + ┌───────┐ + 2u Backspace │?? │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌───┐ ┌─────┐ +│10 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ │1G │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┤ ┌──┴┐2E │ ISO Enter +│20 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2E │ │2G │ │2D │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘ ├───┤ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │┌───┐│3G │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─────┘│3E │└───┘ +│40 │41 │42 │46 │4A │4B │ ┌───┼───┼───┐ +└────┴────┴────┴────────────────────────┴────┴────┘ │4D │4E │4F │ + └───┴───┴───┘ +┌────────┐ +│30 │ 2.25u LShift +└────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┐ +│40 │41 │42 │46 │4B │ Blocker Tsangan +└─────┴───┴─────┴───────────────────────────┴─────┘ +``` From 4468662d640c87bdfd830863bddf2e41fc782f89 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue, 12 Sep 2023 13:57:25 -0700 Subject: [PATCH 027/496] Gray Studio Think65 v3 Layout Additions (#21930) * Add layout/matrix diagram [docs] * Format `info.json` as strict JSON [style] * Add `LAYOUT_all` [enhancement] * Refactor keymaps to use `LAYOUT_all` Refactor the `default` and `via` keymaps to use the `LAYOUT_all` macro. - change second Left Shift key to `KC_NUBS` - insert `KC_NUHS` keycode - update keycode grid alignment - remove trailing whitespace [refactor] * Rename `LAYOUT_65_blocker` to `LAYOUT_ansi_blocker` [refactor] * Rename `LAYOUT_65_iso_blocker` to `LAYOUT_iso_blocker` [refactor] * Correct `LAYOUT_iso_blocker` matrix data The Quote key was mapped as [1, 14] instead of [2, 12]. [bugfix] * Add `LAYOUT_ansi_blocker_split_bs` [enhancement] * Add `LAYOUT_ansi_blocker_tsangan_split_bs` [enhancement] * Add `LAYOUT_ansi_blocker_tsangan` [enhancement] * Add `LAYOUT_iso_blocker_split_bs` [enhancement] * Add `LAYOUT_iso_blocker_tsangan_split_bs` [enhancement] * Add `LAYOUT_iso_blocker_tsangan` [enhancement] --- keyboards/gray_studio/think65v3/info.json | 949 ++++++++++++++---- .../think65v3/keymaps/default/keymap.c | 16 +- .../think65v3/keymaps/via/keymap.c | 16 +- .../gray_studio/think65v3/matrix_diagram.md | 24 + 4 files changed, 775 insertions(+), 230 deletions(-) create mode 100644 keyboards/gray_studio/think65v3/matrix_diagram.md diff --git a/keyboards/gray_studio/think65v3/info.json b/keyboards/gray_studio/think65v3/info.json index 0fbab667d4..8fba691fa4 100644 --- a/keyboards/gray_studio/think65v3/info.json +++ b/keyboards/gray_studio/think65v3/info.json @@ -2,13 +2,13 @@ "keyboard_name": "think65v3", "url": "https://graystudio.club/products/testthink6-5-v3", "maintainer": "edwardslau", - "manufacturer":"GrayStudio", + "manufacturer": "GrayStudio", "processor": "STM32F072", "diode_direction": "COL2ROW", "bootloader": "stm32-dfu", - "usb": { - "vid":"0x4753", - "pid":"0x4003", + "usb": { + "vid": "0x4753", + "pid": "0x4003", "device_version": "0.0.3" }, "features": { @@ -22,19 +22,19 @@ }, "ws2812": { "pin": "B10" - } + }, "matrix_pins": { "cols": ["A3", "A5", "A4", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "B0", "A8", "B15", "B14", "B13"], "rows": ["A6", "B12", "A2", "A0", "A1"] }, -"rgblight": { - "led_count": 6, - "sleep": true, - "max_brightness": 150, - "layers": { - "enabled": true - "override_rgb": true - }, + "rgblight": { + "led_count": 6, + "sleep": true, + "max_brightness": 150, + "layers": { + "enabled": true, + "override_rgb": true + }, "animations": { "alternating": true, "breathing": true, @@ -47,228 +47,749 @@ "static_gradient": true, "twinkle": true } - }, + }, + "layout_aliases": { + "LAYOUT_65_blocker": "LAYOUT_ansi_blocker", + "LAYOUT_65_iso_blocker": "LAYOUT_iso_blocker" + }, "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 1.5, "y": 1}, + {"matrix": [1, 3], "x": 2.5, "y": 1}, + {"matrix": [1, 4], "x": 3.5, "y": 1}, + {"matrix": [1, 5], "x": 4.5, "y": 1}, + {"matrix": [1, 6], "x": 5.5, "y": 1}, + {"matrix": [1, 7], "x": 6.5, "y": 1}, + {"matrix": [1, 8], "x": 7.5, "y": 1}, + {"matrix": [1, 9], "x": 8.5, "y": 1}, + {"matrix": [1, 10], "x": 9.5, "y": 1}, + {"matrix": [1, 11], "x": 10.5, "y": 1}, + {"matrix": [1, 12], "x": 11.5, "y": 1}, + {"matrix": [1, 13], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 14], "x": 13.75, "y": 2, "w": 1.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, "LAYOUT": { "layout": [ - {"matrix": [0,0], "x": 0, "y": 0}, - {"matrix": [0,1], "x": 1, "y": 0}, - {"matrix": [0,2], "x": 2, "y": 0}, - {"matrix": [0,3], "x": 3, "y": 0}, - {"matrix": [0,4], "x": 4, "y": 0}, - {"matrix": [0,5], "x": 5, "y": 0}, - {"matrix": [0,6], "x": 6, "y": 0}, - {"matrix": [0,7], "x": 7, "y": 0}, - {"matrix": [0,8], "x": 8, "y": 0}, - {"matrix": [0,9], "x": 9, "y": 0}, - {"matrix": [0,10],"x": 10, "y": 0}, - {"matrix": [0,11],"x": 11, "y": 0}, - {"matrix": [0,12],"x": 12, "y": 0}, - {"matrix": [0,13],"x": 13, "y": 0}, - {"matrix": [0,14],"x": 14, "y": 0}, - {"matrix": [0,15],"x": 15, "y": 0}, + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, - {"matrix": [1,0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1,2], "x": 1.5, "y": 1}, - {"matrix": [1,3], "x": 2.5, "y": 1}, - {"matrix": [1,4], "x": 3.5, "y": 1}, - {"matrix": [1,5], "x": 4.5, "y": 1}, - {"matrix": [1,6], "x": 5.5, "y": 1}, - {"matrix": [1,7], "x": 6.5, "y": 1}, - {"matrix": [1,8], "x": 7.5, "y": 1}, - {"matrix": [1,9], "x": 8.5, "y": 1}, - {"matrix": [1,10],"x": 9.5, "y": 1}, - {"matrix": [1,11],"x": 10.5, "y": 1}, - {"matrix": [1,12],"x": 11.5, "y": 1}, - {"matrix": [1,13],"x": 12.5, "y": 1}, - {"matrix": [1,14],"x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1,15],"x": 15, "y": 1}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 1.5, "y": 1}, + {"matrix": [1, 3], "x": 2.5, "y": 1}, + {"matrix": [1, 4], "x": 3.5, "y": 1}, + {"matrix": [1, 5], "x": 4.5, "y": 1}, + {"matrix": [1, 6], "x": 5.5, "y": 1}, + {"matrix": [1, 7], "x": 6.5, "y": 1}, + {"matrix": [1, 8], "x": 7.5, "y": 1}, + {"matrix": [1, 9], "x": 8.5, "y": 1}, + {"matrix": [1, 10], "x": 9.5, "y": 1}, + {"matrix": [1, 11], "x": 10.5, "y": 1}, + {"matrix": [1, 12], "x": 11.5, "y": 1}, + {"matrix": [1, 13], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, - {"matrix": [2,0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2,2], "x": 1.75, "y": 2}, - {"matrix": [2,3], "x": 2.75, "y": 2}, - {"matrix": [2,4], "x": 3.75, "y": 2}, - {"matrix": [2,5], "x": 4.75, "y": 2}, - {"matrix": [2,6], "x": 5.75, "y": 2}, - {"matrix": [2,7], "x": 6.75, "y": 2}, - {"matrix": [2,8], "x": 7.75, "y": 2}, - {"matrix": [2,9], "x": 8.75, "y": 2}, - {"matrix": [2,10],"x": 9.75, "y": 2}, - {"matrix": [2,11],"x": 10.75, "y": 2}, - {"matrix": [2,12],"x": 11.75, "y": 2}, - {"matrix": [2,13],"x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3,0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3,1], "x": 1.25, "y": 3}, - {"matrix": [3,2], "x": 2.25, "y": 3}, - {"matrix": [3,3], "x": 3.25, "y": 3}, - {"matrix": [3,4], "x": 4.25, "y": 3}, - {"matrix": [3,5], "x": 5.25, "y": 3}, - {"matrix": [3,6], "x": 6.25, "y": 3}, - {"matrix": [3,7], "x": 7.25, "y": 3}, - {"matrix": [3,8], "x": 8.25, "y": 3}, - {"matrix": [3,9],"x": 9.25, "y": 3}, - {"matrix": [3,10],"x": 10.25, "y": 3}, - {"matrix": [3,11],"x": 11.25, "y": 3}, - {"matrix": [3,13],"x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3,14],"x": 14, "y": 3}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, - {"matrix": [4,0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4,1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4,2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4,7], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4,10],"x": 10, "y": 4, "w": 1.25}, - {"matrix": [4,11],"x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4,13],"x": 13, "y": 4}, - {"matrix": [4,14],"x": 14, "y": 4}, - {"matrix": [4,15],"x": 15, "y": 4} + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} ] }, - "LAYOUT_65_blocker": { + "LAYOUT_ansi_blocker": { "layout": [ - {"matrix": [0,0], "x": 0, "y": 0}, - {"matrix": [0,1], "x": 1, "y": 0}, - {"matrix": [0,2], "x": 2, "y": 0}, - {"matrix": [0,3], "x": 3, "y": 0}, - {"matrix": [0,4], "x": 4, "y": 0}, - {"matrix": [0,5], "x": 5, "y": 0}, - {"matrix": [0,6], "x": 6, "y": 0}, - {"matrix": [0,7], "x": 7, "y": 0}, - {"matrix": [0,8], "x": 8, "y": 0}, - {"matrix": [0,9], "x": 9, "y": 0}, - {"matrix": [0,10],"x": 10, "y": 0}, - {"matrix": [0,11],"x": 11, "y": 0}, - {"matrix": [0,12],"x": 12, "y": 0}, - {"matrix": [0,13],"x": 13, "y": 0, "w": 2}, - {"matrix": [0,15],"x": 15, "y": 0}, + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, - {"matrix": [1,0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1,2], "x": 1.5, "y": 1}, - {"matrix": [1,3], "x": 2.5, "y": 1}, - {"matrix": [1,4], "x": 3.5, "y": 1}, - {"matrix": [1,5], "x": 4.5, "y": 1}, - {"matrix": [1,6], "x": 5.5, "y": 1}, - {"matrix": [1,7], "x": 6.5, "y": 1}, - {"matrix": [1,8], "x": 7.5, "y": 1}, - {"matrix": [1,9], "x": 8.5, "y": 1}, - {"matrix": [1,10],"x": 9.5, "y": 1}, - {"matrix": [1,11],"x": 10.5, "y": 1}, - {"matrix": [1,12],"x": 11.5, "y": 1}, - {"matrix": [1,13],"x": 12.5, "y": 1}, - {"matrix": [1,14],"x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1,15],"x": 15, "y": 1}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 1.5, "y": 1}, + {"matrix": [1, 3], "x": 2.5, "y": 1}, + {"matrix": [1, 4], "x": 3.5, "y": 1}, + {"matrix": [1, 5], "x": 4.5, "y": 1}, + {"matrix": [1, 6], "x": 5.5, "y": 1}, + {"matrix": [1, 7], "x": 6.5, "y": 1}, + {"matrix": [1, 8], "x": 7.5, "y": 1}, + {"matrix": [1, 9], "x": 8.5, "y": 1}, + {"matrix": [1, 10], "x": 9.5, "y": 1}, + {"matrix": [1, 11], "x": 10.5, "y": 1}, + {"matrix": [1, 12], "x": 11.5, "y": 1}, + {"matrix": [1, 13], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, - {"matrix": [2,0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2,2], "x": 1.75, "y": 2}, - {"matrix": [2,3], "x": 2.75, "y": 2}, - {"matrix": [2,4], "x": 3.75, "y": 2}, - {"matrix": [2,5], "x": 4.75, "y": 2}, - {"matrix": [2,6], "x": 5.75, "y": 2}, - {"matrix": [2,7], "x": 6.75, "y": 2}, - {"matrix": [2,8], "x": 7.75, "y": 2}, - {"matrix": [2,9], "x": 8.75, "y": 2}, - {"matrix": [2,10],"x": 9.75, "y": 2}, - {"matrix": [2,11],"x": 10.75, "y": 2}, - {"matrix": [2,12],"x": 11.75, "y": 2}, - {"matrix": [2,13],"x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3,0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3,2], "x": 2.25, "y": 3}, - {"matrix": [3,3], "x": 3.25, "y": 3}, - {"matrix": [3,4], "x": 4.25, "y": 3}, - {"matrix": [3,5], "x": 5.25, "y": 3}, - {"matrix": [3,6], "x": 6.25, "y": 3}, - {"matrix": [3,7], "x": 7.25, "y": 3}, - {"matrix": [3,8], "x": 8.25, "y": 3}, - {"matrix": [3,9], "x": 9.25, "y": 3}, - {"matrix": [3,10],"x": 10.25, "y": 3}, - {"matrix": [3,11],"x": 11.25, "y": 3}, - {"matrix": [3,13],"x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3,14],"x": 14, "y": 3}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, - {"matrix": [4,0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4,1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4,2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4,7], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4,10],"x": 10, "y": 4, "w": 1.25}, - {"matrix": [4,11],"x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4,13],"x": 13, "y": 4}, - {"matrix": [4,14],"x": 14, "y": 4}, - {"matrix": [4,15],"x": 15, "y": 4} + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} ] }, - "LAYOUT_65_iso_blocker": { + "LAYOUT_ansi_blocker_split_bs": { "layout": [ - {"matrix": [0,0], "x": 0, "y": 0}, - {"matrix": [0,1], "x": 1, "y": 0}, - {"matrix": [0,2], "x": 2, "y": 0}, - {"matrix": [0,3], "x": 3, "y": 0}, - {"matrix": [0,4], "x": 4, "y": 0}, - {"matrix": [0,5], "x": 5, "y": 0}, - {"matrix": [0,6], "x": 6, "y": 0}, - {"matrix": [0,7], "x": 7, "y": 0}, - {"matrix": [0,8], "x": 8, "y": 0}, - {"matrix": [0,9], "x": 9, "y": 0}, - {"matrix": [0,10],"x": 10, "y": 0}, - {"matrix": [0,11],"x": 11, "y": 0}, - {"matrix": [0,12],"x": 12, "y": 0}, - {"matrix": [0,13],"x": 13, "y": 0, "w": 2}, - {"matrix": [0,15],"x": 15, "y": 0}, + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, - {"matrix": [1,0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1,2], "x": 1.5, "y": 1}, - {"matrix": [1,3], "x": 2.5, "y": 1}, - {"matrix": [1,4], "x": 3.5, "y": 1}, - {"matrix": [1,5], "x": 4.5, "y": 1}, - {"matrix": [1,6], "x": 5.5, "y": 1}, - {"matrix": [1,7], "x": 6.5, "y": 1}, - {"matrix": [1,8], "x": 7.5, "y": 1}, - {"matrix": [1,9], "x": 8.5, "y": 1}, - {"matrix": [1,10],"x": 9.5, "y": 1}, - {"matrix": [1,11],"x": 10.5, "y": 1}, - {"matrix": [1,12],"x": 11.5, "y": 1}, - {"matrix": [1,13],"x": 12.5, "y": 1}, - {"matrix": [1,15],"x": 15, "y": 1}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 1.5, "y": 1}, + {"matrix": [1, 3], "x": 2.5, "y": 1}, + {"matrix": [1, 4], "x": 3.5, "y": 1}, + {"matrix": [1, 5], "x": 4.5, "y": 1}, + {"matrix": [1, 6], "x": 5.5, "y": 1}, + {"matrix": [1, 7], "x": 6.5, "y": 1}, + {"matrix": [1, 8], "x": 7.5, "y": 1}, + {"matrix": [1, 9], "x": 8.5, "y": 1}, + {"matrix": [1, 10], "x": 9.5, "y": 1}, + {"matrix": [1, 11], "x": 10.5, "y": 1}, + {"matrix": [1, 12], "x": 11.5, "y": 1}, + {"matrix": [1, 13], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, - {"matrix": [2,0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2,2], "x": 1.75, "y": 2}, - {"matrix": [2,3], "x": 2.75, "y": 2}, - {"matrix": [2,4], "x": 3.75, "y": 2}, - {"matrix": [2,5], "x": 4.75, "y": 2}, - {"matrix": [2,6], "x": 5.75, "y": 2}, - {"matrix": [2,7], "x": 6.75, "y": 2}, - {"matrix": [2,8], "x": 7.75, "y": 2}, - {"matrix": [2,9], "x": 8.75, "y": 2}, - {"matrix": [2,10],"x": 9.75, "y": 2}, - {"matrix": [2,11],"x": 10.75, "y": 2}, - {"matrix": [1,14],"x": 11.75, "y": 2}, - {"matrix": [2,13],"x": 12.75, "y": 2}, - {"matrix": [2,14],"x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3,0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3,1],"x": 1.25, "y": 3}, - {"matrix": [3,2], "x": 2.25, "y": 3}, - {"matrix": [3,3], "x": 3.25, "y": 3}, - {"matrix": [3,4], "x": 4.25, "y": 3}, - {"matrix": [3,5], "x": 5.25, "y": 3}, - {"matrix": [3,6], "x": 6.25, "y": 3}, - {"matrix": [3,7], "x": 7.25, "y": 3}, - {"matrix": [3,8], "x": 8.25, "y": 3}, - {"matrix": [3,9], "x": 9.25, "y": 3}, - {"matrix": [3,10],"x": 10.25, "y": 3}, - {"matrix": [3,11],"x": 11.25, "y": 3}, - {"matrix": [3,13],"x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3,14],"x": 14, "y": 3}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, - {"matrix": [4,0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4,1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4,2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4,7], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4,10],"x": 10, "y": 4, "w": 1.25}, - {"matrix": [4,11],"x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4,13],"x": 13, "y": 4}, - {"matrix": [4,14],"x": 14, "y": 4}, - {"matrix": [4,15],"x": 15, "y": 4} + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_ansi_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 1.5, "y": 1}, + {"matrix": [1, 3], "x": 2.5, "y": 1}, + {"matrix": [1, 4], "x": 3.5, "y": 1}, + {"matrix": [1, 5], "x": 4.5, "y": 1}, + {"matrix": [1, 6], "x": 5.5, "y": 1}, + {"matrix": [1, 7], "x": 6.5, "y": 1}, + {"matrix": [1, 8], "x": 7.5, "y": 1}, + {"matrix": [1, 9], "x": 8.5, "y": 1}, + {"matrix": [1, 10], "x": 9.5, "y": 1}, + {"matrix": [1, 11], "x": 10.5, "y": 1}, + {"matrix": [1, 12], "x": 11.5, "y": 1}, + {"matrix": [1, 13], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 1.5, "y": 1}, + {"matrix": [1, 3], "x": 2.5, "y": 1}, + {"matrix": [1, 4], "x": 3.5, "y": 1}, + {"matrix": [1, 5], "x": 4.5, "y": 1}, + {"matrix": [1, 6], "x": 5.5, "y": 1}, + {"matrix": [1, 7], "x": 6.5, "y": 1}, + {"matrix": [1, 8], "x": 7.5, "y": 1}, + {"matrix": [1, 9], "x": 8.5, "y": 1}, + {"matrix": [1, 10], "x": 9.5, "y": 1}, + {"matrix": [1, 11], "x": 10.5, "y": 1}, + {"matrix": [1, 12], "x": 11.5, "y": 1}, + {"matrix": [1, 13], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_iso_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 1.5, "y": 1}, + {"matrix": [1, 3], "x": 2.5, "y": 1}, + {"matrix": [1, 4], "x": 3.5, "y": 1}, + {"matrix": [1, 5], "x": 4.5, "y": 1}, + {"matrix": [1, 6], "x": 5.5, "y": 1}, + {"matrix": [1, 7], "x": 6.5, "y": 1}, + {"matrix": [1, 8], "x": 7.5, "y": 1}, + {"matrix": [1, 9], "x": 8.5, "y": 1}, + {"matrix": [1, 10], "x": 9.5, "y": 1}, + {"matrix": [1, 11], "x": 10.5, "y": 1}, + {"matrix": [1, 12], "x": 11.5, "y": 1}, + {"matrix": [1, 13], "x": 12.5, "y": 1}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_iso_blocker_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 1.5, "y": 1}, + {"matrix": [1, 3], "x": 2.5, "y": 1}, + {"matrix": [1, 4], "x": 3.5, "y": 1}, + {"matrix": [1, 5], "x": 4.5, "y": 1}, + {"matrix": [1, 6], "x": 5.5, "y": 1}, + {"matrix": [1, 7], "x": 6.5, "y": 1}, + {"matrix": [1, 8], "x": 7.5, "y": 1}, + {"matrix": [1, 9], "x": 8.5, "y": 1}, + {"matrix": [1, 10], "x": 9.5, "y": 1}, + {"matrix": [1, 11], "x": 10.5, "y": 1}, + {"matrix": [1, 12], "x": 11.5, "y": 1}, + {"matrix": [1, 13], "x": 12.5, "y": 1}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_iso_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 1.5, "y": 1}, + {"matrix": [1, 3], "x": 2.5, "y": 1}, + {"matrix": [1, 4], "x": 3.5, "y": 1}, + {"matrix": [1, 5], "x": 4.5, "y": 1}, + {"matrix": [1, 6], "x": 5.5, "y": 1}, + {"matrix": [1, 7], "x": 6.5, "y": 1}, + {"matrix": [1, 8], "x": 7.5, "y": 1}, + {"matrix": [1, 9], "x": 8.5, "y": 1}, + {"matrix": [1, 10], "x": 9.5, "y": 1}, + {"matrix": [1, 11], "x": 10.5, "y": 1}, + {"matrix": [1, 12], "x": 11.5, "y": 1}, + {"matrix": [1, 13], "x": 12.5, "y": 1}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_iso_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 1.5, "y": 1}, + {"matrix": [1, 3], "x": 2.5, "y": 1}, + {"matrix": [1, 4], "x": 3.5, "y": 1}, + {"matrix": [1, 5], "x": 4.5, "y": 1}, + {"matrix": [1, 6], "x": 5.5, "y": 1}, + {"matrix": [1, 7], "x": 6.5, "y": 1}, + {"matrix": [1, 8], "x": 7.5, "y": 1}, + {"matrix": [1, 9], "x": 8.5, "y": 1}, + {"matrix": [1, 10], "x": 9.5, "y": 1}, + {"matrix": [1, 11], "x": 10.5, "y": 1}, + {"matrix": [1, 12], "x": 11.5, "y": 1}, + {"matrix": [1, 13], "x": 12.5, "y": 1}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} ] } } diff --git a/keyboards/gray_studio/think65v3/keymaps/default/keymap.c b/keyboards/gray_studio/think65v3/keymaps/default/keymap.c index 82ff711808..a3c2e873c1 100644 --- a/keyboards/gray_studio/think65v3/keymaps/default/keymap.c +++ b/keyboards/gray_studio/think65v3/keymaps/default/keymap.c @@ -3,18 +3,18 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_all( QK_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_BSPC, KC_BSPC, KC_DEL, - 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_HOME, - 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_ENT, - KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + 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_HOME, + 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_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_all( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, QK_BOOT, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; diff --git a/keyboards/gray_studio/think65v3/keymaps/via/keymap.c b/keyboards/gray_studio/think65v3/keymaps/via/keymap.c index 82ff711808..a3c2e873c1 100644 --- a/keyboards/gray_studio/think65v3/keymaps/via/keymap.c +++ b/keyboards/gray_studio/think65v3/keymaps/via/keymap.c @@ -3,18 +3,18 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_all( QK_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_BSPC, KC_BSPC, KC_DEL, - 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_HOME, - 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_ENT, - KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + 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_HOME, + 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_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_all( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, QK_BOOT, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; diff --git a/keyboards/gray_studio/think65v3/matrix_diagram.md b/keyboards/gray_studio/think65v3/matrix_diagram.md new file mode 100644 index 0000000000..e2bbb127b6 --- /dev/null +++ b/keyboards/gray_studio/think65v3/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for GrayStudio think65v3 + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │0F │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ ┌─────┐ +│10 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │1F │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┘ ┌──┴┐2E │ ISO Enter +│20 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │2D │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │3E │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┐ +│40 │41 │42 │47 │4A │4B │ │4D │4E │4F │ +└────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ +┌────────┐ +│30 │ 2.25u LShift +└────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┐ +│40 │41 │42 │47 │4B │ Blocker Tsangan +└─────┴───┴─────┴───────────────────────────┴─────┘ +``` From de381ad3b72ccc8161744c8c14b95430fd4d498d Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 13 Sep 2023 01:12:46 +0100 Subject: [PATCH 028/496] Generate keymap.json config options more forcefully (#21960) --- lib/python/qmk/cli/generate/config_h.py | 5 +++++ lib/python/qmk/cli/generate/rules_mk.py | 26 +++++++++++++++---------- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py index 64d4db6ffe..828785ea48 100755 --- a/lib/python/qmk/cli/generate/config_h.py +++ b/lib/python/qmk/cli/generate/config_h.py @@ -15,7 +15,12 @@ from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE def generate_define(define, value=None): + is_keymap = cli.args.filename value = f' {value}' if value is not None else '' + if is_keymap: + return f""" +#undef {define} +#define {define}{value}""" return f""" #ifndef {define} # define {define}{value} diff --git a/lib/python/qmk/cli/generate/rules_mk.py b/lib/python/qmk/cli/generate/rules_mk.py index fc272da6c6..5291556109 100755 --- a/lib/python/qmk/cli/generate/rules_mk.py +++ b/lib/python/qmk/cli/generate/rules_mk.py @@ -14,6 +14,12 @@ from qmk.path import normpath, FileType from qmk.constants import GPL2_HEADER_SH_LIKE, GENERATED_HEADER_SH_LIKE +def generate_rule(rules_key, rules_value): + is_keymap = cli.args.filename + rule_assignment_operator = '=' if is_keymap else '?=' + return f'{rules_key} {rule_assignment_operator} {rules_value}' + + def process_mapping_rule(kb_info_json, rules_key, info_dict): """Return the rules.mk line(s) for a mapping rule. """ @@ -29,15 +35,15 @@ def process_mapping_rule(kb_info_json, rules_key, info_dict): return None if key_type in ['array', 'list']: - return f'{rules_key} ?= {" ".join(rules_value)}' + return generate_rule(rules_key, " ".join(rules_value)) elif key_type == 'bool': - return f'{rules_key} ?= {"yes" if rules_value else "no"}' + return generate_rule(rules_key, "yes" if rules_value else "no") elif key_type == 'mapping': - return '\n'.join([f'{key} ?= {value}' for key, value in rules_value.items()]) + return '\n'.join([generate_rule(key, value) for key, value in rules_value.items()]) elif key_type == 'str': - return f'{rules_key} ?= "{rules_value}"' + return generate_rule(rules_key, f'"{rules_value}"') - return f'{rules_key} ?= {rules_value}' + return generate_rule(rules_key, rules_value) @cli.argument('filename', nargs='?', arg_only=True, type=FileType('r'), completer=FilesCompleter('.json'), help='A configurator export JSON to be compiled and flashed or a pre-compiled binary firmware file (bin/hex) to be flashed.') @@ -77,21 +83,21 @@ def generate_rules_mk(cli): 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}') + rules_mk_lines.append(generate_rule(f'{feature}_ENABLE', enabled)) # Set SPLIT_TRANSPORT, if needed if kb_info_json.get('split', {}).get('transport', {}).get('protocol') == 'custom': - rules_mk_lines.append('SPLIT_TRANSPORT ?= custom') + rules_mk_lines.append(generate_rule('SPLIT_TRANSPORT', 'custom')) # Set CUSTOM_MATRIX, if needed if kb_info_json.get('matrix_pins', {}).get('custom'): if kb_info_json.get('matrix_pins', {}).get('custom_lite'): - rules_mk_lines.append('CUSTOM_MATRIX ?= lite') + rules_mk_lines.append(generate_rule('CUSTOM_MATRIX', 'lite')) else: - rules_mk_lines.append('CUSTOM_MATRIX ?= yes') + rules_mk_lines.append(generate_rule('CUSTOM_MATRIX', 'yes')) if converter: - rules_mk_lines.append(f'CONVERT_TO ?= {converter}') + rules_mk_lines.append(generate_rule('CONVERT_TO', converter)) # Show the results dump_lines(cli.args.output, rules_mk_lines) From e6ce481179e8337d34f26f0a1c0ce902c8814702 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue, 12 Sep 2023 23:05:10 -0700 Subject: [PATCH 029/496] Handwired ScottoKeebs Configurator Updates (#21990) * ScottoKeebs ScottoAlp: Correct layout data [enhancement] * ScottoKeebs ScottoCMD: Correct layout data [enhancement] * ScottoKeebs ScottoErgo: Correct layout data Add hand separation and vertical stagger to the layout data. [enhancement] * ScottoKeebs ScottoFrog: Correct layout data [enhancement] * ScottoKeebs ScottoGame: Correct layout data [enhancement] * ScottoKeebs ScottoInvader: Correct layout data [enhancement] * ScottoKeebs ScottoNum: Correct layout data [enhancement] * ScottoKeebs ScottoSplit: Correct layout data [enhancement] * ScottoKeebs ScottoStarter: Correct layout data [enhancement] --- .../handwired/scottokeebs/scottoalp/info.json | 10 +-- .../handwired/scottokeebs/scottocmd/info.json | 80 +++++++++---------- .../scottokeebs/scottoergo/info.json | 66 +++++++-------- .../scottokeebs/scottofrog/info.json | 10 +-- .../scottokeebs/scottogame/info.json | 6 +- .../scottokeebs/scottoinvader/info.json | 56 ++++++------- .../handwired/scottokeebs/scottonum/info.json | 8 +- .../scottokeebs/scottosplit/info.json | 66 +++++++-------- .../scottokeebs/scottostarter/info.json | 24 +++--- 9 files changed, 163 insertions(+), 163 deletions(-) diff --git a/keyboards/handwired/scottokeebs/scottoalp/info.json b/keyboards/handwired/scottokeebs/scottoalp/info.json index d6262e11e6..7a4210bb40 100644 --- a/keyboards/handwired/scottokeebs/scottoalp/info.json +++ b/keyboards/handwired/scottokeebs/scottoalp/info.json @@ -65,11 +65,11 @@ { "matrix": [2, 9], "x": 9, "y": 2 }, // Row 4 - { "matrix": [3, 1], "x": 1, "y": 3 }, - { "matrix": [3, 2], "x": 2, "y": 3 }, - { "matrix": [3, 4], "x": 4, "y": 3 }, - { "matrix": [3, 6], "x": 6, "y": 3 }, - { "matrix": [3, 7], "x": 7, "y": 3 } + { "matrix": [3, 1], "x": 1.5, "y": 3 }, + { "matrix": [3, 2], "x": 2.5, "y": 3 }, + { "matrix": [3, 4], "x": 3.5, "y": 3, "w": 3 }, + { "matrix": [3, 6], "x": 6.5, "y": 3 }, + { "matrix": [3, 7], "x": 7.5, "y": 3 } ] } } diff --git a/keyboards/handwired/scottokeebs/scottocmd/info.json b/keyboards/handwired/scottokeebs/scottocmd/info.json index d945b70ce9..a26b95c1db 100644 --- a/keyboards/handwired/scottokeebs/scottocmd/info.json +++ b/keyboards/handwired/scottokeebs/scottocmd/info.json @@ -35,54 +35,54 @@ "LAYOUT_ortho_4_3x10_4": { "layout": [ // Row 1 (Macros) - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, // Row 2 - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, // Row 3 - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2}, - {"matrix": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [2, 8], "x": 8, "y": 2}, - {"matrix": [2, 9], "x": 9, "y": 2}, - {"matrix": [2, 10], "x": 10, "y": 2}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, // Row 4 - {"matrix": [3, 1], "x": 1, "y": 3}, - {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [3, 6], "x": 6, "y": 3}, - {"matrix": [3, 7], "x": 7, "y": 3}, - {"matrix": [3, 8], "x": 8, "y": 3}, - {"matrix": [3, 9], "x": 9, "y": 3}, - {"matrix": [3, 10], "x": 10, "y": 3}, + {"matrix": [3, 1], "x": 1.5, "y": 3}, + {"matrix": [3, 2], "x": 2.5, "y": 3}, + {"matrix": [3, 3], "x": 3.5, "y": 3}, + {"matrix": [3, 4], "x": 4.5, "y": 3}, + {"matrix": [3, 5], "x": 5.5, "y": 3}, + {"matrix": [3, 6], "x": 6.5, "y": 3}, + {"matrix": [3, 7], "x": 7.5, "y": 3}, + {"matrix": [3, 8], "x": 8.5, "y": 3}, + {"matrix": [3, 9], "x": 9.5, "y": 3}, + {"matrix": [3, 10], "x": 10.5, "y": 3}, // Row 5 - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 5], "x": 5, "y": 4}, - {"matrix": [4, 9], "x": 9, "y": 4}, - {"matrix": [4, 10], "x": 10, "y": 4} + {"matrix": [4, 1], "x": 1.5, "y": 4, "w": 1.75}, + {"matrix": [4, 5], "x": 3.25, "y": 4, "w": 6.25}, + {"matrix": [4, 9], "x": 9.5, "y": 4}, + {"matrix": [4, 10], "x": 10.5, "y": 4} ] } } diff --git a/keyboards/handwired/scottokeebs/scottoergo/info.json b/keyboards/handwired/scottokeebs/scottoergo/info.json index cc4fb126b6..4f6d955271 100644 --- a/keyboards/handwired/scottokeebs/scottoergo/info.json +++ b/keyboards/handwired/scottokeebs/scottoergo/info.json @@ -28,48 +28,48 @@ "LAYOUT_split_3x5_3": { "layout": [ // Row 1 - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 0], "x": 0, "y": 0.5 }, + { "matrix": [0, 1], "x": 1, "y": 0.25 }, { "matrix": [0, 2], "x": 2, "y": 0 }, - { "matrix": [0, 3], "x": 3, "y": 0 }, - { "matrix": [0, 4], "x": 4, "y": 0 }, - { "matrix": [0, 5], "x": 5, "y": 0 }, - { "matrix": [0, 6], "x": 6, "y": 0 }, - { "matrix": [0, 7], "x": 7, "y": 0 }, - { "matrix": [0, 8], "x": 8, "y": 0 }, - { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0.25 }, + { "matrix": [0, 4], "x": 4, "y": 0.5 }, + { "matrix": [0, 5], "x": 7, "y": 0.5 }, + { "matrix": [0, 6], "x": 8, "y": 0.25 }, + { "matrix": [0, 7], "x": 9, "y": 0 }, + { "matrix": [0, 8], "x": 10, "y": 0.25 }, + { "matrix": [0, 9], "x": 11, "y": 0.5 }, // Row 2 - { "matrix": [1, 0], "x": 0, "y": 1 }, - { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 0], "x": 0, "y": 1.5 }, + { "matrix": [1, 1], "x": 1, "y": 1.25 }, { "matrix": [1, 2], "x": 2, "y": 1 }, - { "matrix": [1, 3], "x": 3, "y": 1 }, - { "matrix": [1, 4], "x": 4, "y": 1 }, - { "matrix": [1, 5], "x": 5, "y": 1 }, - { "matrix": [1, 6], "x": 6, "y": 1 }, - { "matrix": [1, 7], "x": 7, "y": 1 }, - { "matrix": [1, 8], "x": 8, "y": 1 }, - { "matrix": [1, 9], "x": 9, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1.25 }, + { "matrix": [1, 4], "x": 4, "y": 1.5 }, + { "matrix": [1, 5], "x": 7, "y": 1.5 }, + { "matrix": [1, 6], "x": 8, "y": 1.25 }, + { "matrix": [1, 7], "x": 9, "y": 1 }, + { "matrix": [1, 8], "x": 10, "y": 1.25 }, + { "matrix": [1, 9], "x": 11, "y": 1.5 }, // Row 3 - { "matrix": [2, 0], "x": 0, "y": 2 }, - { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 0], "x": 0, "y": 2.5 }, + { "matrix": [2, 1], "x": 1, "y": 2.25 }, { "matrix": [2, 2], "x": 2, "y": 2 }, - { "matrix": [2, 3], "x": 3, "y": 2 }, - { "matrix": [2, 4], "x": 4, "y": 2 }, - { "matrix": [2, 5], "x": 5, "y": 2 }, - { "matrix": [2, 6], "x": 6, "y": 2 }, - { "matrix": [2, 7], "x": 7, "y": 2 }, - { "matrix": [2, 8], "x": 8, "y": 2 }, - { "matrix": [2, 9], "x": 9, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2.25 }, + { "matrix": [2, 4], "x": 4, "y": 2.5 }, + { "matrix": [2, 5], "x": 7, "y": 2.5 }, + { "matrix": [2, 6], "x": 8, "y": 2.25 }, + { "matrix": [2, 7], "x": 9, "y": 2 }, + { "matrix": [2, 8], "x": 10, "y": 2.25 }, + { "matrix": [2, 9], "x": 11, "y": 2.5 }, // Row 4 - { "matrix": [3, 2], "x": 2, "y": 3 }, - { "matrix": [3, 3], "x": 3, "y": 3 }, - { "matrix": [3, 4], "x": 4, "y": 3 }, - { "matrix": [3, 5], "x": 5, "y": 3 }, - { "matrix": [3, 6], "x": 6, "y": 3 }, - { "matrix": [3, 7], "x": 7, "y": 3 } + { "matrix": [3, 2], "x": 2.5, "y": 3.25 }, + { "matrix": [3, 3], "x": 3.5, "y": 3.5 }, + { "matrix": [3, 4], "x": 4.5, "y": 3.75 }, + { "matrix": [3, 5], "x": 6.5, "y": 3.75 }, + { "matrix": [3, 6], "x": 7.5, "y": 3.5 }, + { "matrix": [3, 7], "x": 8.5, "y": 3.25 } ] } } diff --git a/keyboards/handwired/scottokeebs/scottofrog/info.json b/keyboards/handwired/scottokeebs/scottofrog/info.json index 202626b70f..147f2d8aa7 100644 --- a/keyboards/handwired/scottokeebs/scottofrog/info.json +++ b/keyboards/handwired/scottokeebs/scottofrog/info.json @@ -43,11 +43,11 @@ { "matrix": [2, 3], "x": 3, "y": 2 }, { "matrix": [2, 4], "x": 4, "y": 2 }, { "matrix": [2, 5], "x": 5, "y": 2 }, - { "matrix": [3, 0], "x": 0, "y": 3 }, - { "matrix": [3, 1], "x": 1, "y": 3 }, - { "matrix": [3, 3], "x": 3, "y": 3 }, - { "matrix": [3, 5], "x": 5, "y": 3 }, - { "matrix": [3, 6], "x": 6, "y": 3 } + { "matrix": [3, 0], "x": 0, "y": 2, "h": 2 }, + { "matrix": [3, 1], "x": 1, "y": 3, "w": 1.5 }, + { "matrix": [3, 3], "x": 2.5, "y": 3, "w": 2 }, + { "matrix": [3, 5], "x": 4.5, "y": 3, "w": 1.5 }, + { "matrix": [3, 6], "x": 6, "y": 2, "h": 2 } ] } } diff --git a/keyboards/handwired/scottokeebs/scottogame/info.json b/keyboards/handwired/scottokeebs/scottogame/info.json index 5c300b866e..912cfdfaaa 100644 --- a/keyboards/handwired/scottokeebs/scottogame/info.json +++ b/keyboards/handwired/scottokeebs/scottogame/info.json @@ -38,7 +38,7 @@ { "matrix": [0, 2], "x": 2, "y": 0 }, { "matrix": [0, 3], "x": 3, "y": 0 }, { "matrix": [0, 4], "x": 4, "y": 0 }, - { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 6], "x": 5.125, "y": 0, "w": 2.75 }, // Row 2 { "matrix": [1, 0], "x": 0, "y": 1 }, @@ -79,8 +79,8 @@ // Row 5 { "matrix": [4, 1], "x": 1, "y": 4 }, { "matrix": [4, 2], "x": 2, "y": 4 }, - { "matrix": [4, 3], "x": 3, "y": 4 }, - { "matrix": [4, 6], "x": 6, "y": 4 }, + { "matrix": [4, 3], "x": 3, "y": 4, "w": 2 }, + { "matrix": [4, 6], "x": 5, "y": 4, "w": 2 }, { "matrix": [4, 7], "x": 7, "y": 4 }, { "matrix": [4, 8], "x": 8, "y": 4 } ] diff --git a/keyboards/handwired/scottokeebs/scottoinvader/info.json b/keyboards/handwired/scottokeebs/scottoinvader/info.json index 89a4fca4b4..2a9054cd4f 100644 --- a/keyboards/handwired/scottokeebs/scottoinvader/info.json +++ b/keyboards/handwired/scottokeebs/scottoinvader/info.json @@ -30,47 +30,47 @@ "LAYOUT_split_3x5_3": { "layout": [ // Row 1 - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 0], "x": 0, "y": 0.5 }, + { "matrix": [0, 1], "x": 1, "y": 0.25 }, { "matrix": [0, 2], "x": 2, "y": 0 }, - { "matrix": [0, 3], "x": 3, "y": 0 }, - { "matrix": [0, 4], "x": 4, "y": 0 }, - { "matrix": [0, 5], "x": 5, "y": 0 }, - { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0.25 }, + { "matrix": [0, 4], "x": 4, "y": 0.5 }, + { "matrix": [0, 5], "x": 5, "y": 0.5 }, + { "matrix": [0, 6], "x": 6, "y": 0.25 }, { "matrix": [0, 7], "x": 7, "y": 0 }, - { "matrix": [0, 8], "x": 8, "y": 0 }, - { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0.25 }, + { "matrix": [0, 9], "x": 9, "y": 0.5 }, // Row 2 - { "matrix": [1, 0], "x": 0, "y": 1 }, - { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 0], "x": 0, "y": 1.5 }, + { "matrix": [1, 1], "x": 1, "y": 1.25 }, { "matrix": [1, 2], "x": 2, "y": 1 }, - { "matrix": [1, 3], "x": 3, "y": 1 }, - { "matrix": [1, 4], "x": 4, "y": 1 }, - { "matrix": [1, 5], "x": 5, "y": 1 }, - { "matrix": [1, 6], "x": 6, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1.25 }, + { "matrix": [1, 4], "x": 4, "y": 1.5 }, + { "matrix": [1, 5], "x": 5, "y": 1.5 }, + { "matrix": [1, 6], "x": 6, "y": 1.25 }, { "matrix": [1, 7], "x": 7, "y": 1 }, - { "matrix": [1, 8], "x": 8, "y": 1 }, - { "matrix": [1, 9], "x": 9, "y": 1 }, + { "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "matrix": [1, 9], "x": 9, "y": 1.5 }, // Row 3 - { "matrix": [2, 0], "x": 0, "y": 2 }, - { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 0], "x": 0, "y": 2.5 }, + { "matrix": [2, 1], "x": 1, "y": 2.25 }, { "matrix": [2, 2], "x": 2, "y": 2 }, - { "matrix": [2, 3], "x": 3, "y": 2 }, - { "matrix": [2, 4], "x": 4, "y": 2 }, - { "matrix": [2, 5], "x": 5, "y": 2 }, - { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2.25 }, + { "matrix": [2, 4], "x": 4, "y": 2.5 }, + { "matrix": [2, 5], "x": 5, "y": 2.5 }, + { "matrix": [2, 6], "x": 6, "y": 2.25 }, { "matrix": [2, 7], "x": 7, "y": 2 }, - { "matrix": [2, 8], "x": 8, "y": 2 }, - { "matrix": [2, 9], "x": 9, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2.25 }, + { "matrix": [2, 9], "x": 9, "y": 2.5 }, // Row 4 { "matrix": [3, 2], "x": 2, "y": 3 }, - { "matrix": [3, 3], "x": 3, "y": 3 }, - { "matrix": [3, 4], "x": 4, "y": 3 }, - { "matrix": [3, 5], "x": 5, "y": 3 }, - { "matrix": [3, 6], "x": 6, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3.25 }, + { "matrix": [3, 4], "x": 4, "y": 3.5 }, + { "matrix": [3, 5], "x": 5, "y": 3.5 }, + { "matrix": [3, 6], "x": 6, "y": 3.25 }, { "matrix": [3, 7], "x": 7, "y": 3 } ] } diff --git a/keyboards/handwired/scottokeebs/scottonum/info.json b/keyboards/handwired/scottokeebs/scottonum/info.json index 2907b47af8..f71f75d62b 100644 --- a/keyboards/handwired/scottokeebs/scottonum/info.json +++ b/keyboards/handwired/scottokeebs/scottonum/info.json @@ -40,16 +40,16 @@ { "matrix": [1, 0], "x": 0, "y": 1 }, { "matrix": [1, 1], "x": 1, "y": 1 }, { "matrix": [1, 2], "x": 2, "y": 1 }, - { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1, "h": 2 }, { "matrix": [2, 0], "x": 0, "y": 2 }, { "matrix": [2, 1], "x": 1, "y": 2 }, { "matrix": [2, 2], "x": 2, "y": 2 }, { "matrix": [3, 0], "x": 0, "y": 3 }, { "matrix": [3, 1], "x": 1, "y": 3 }, { "matrix": [3, 2], "x": 2, "y": 3 }, - { "matrix": [3, 3], "x": 3, "y": 3 }, - { "matrix": [4, 0], "x": 0, "y": 4 }, - { "matrix": [4, 1], "x": 1, "y": 3 } + { "matrix": [3, 3], "x": 3, "y": 3, "h": 2 }, + { "matrix": [4, 0], "x": 0, "y": 4, "w": 2 }, + { "matrix": [4, 1], "x": 2, "y": 4 } ] } } diff --git a/keyboards/handwired/scottokeebs/scottosplit/info.json b/keyboards/handwired/scottokeebs/scottosplit/info.json index 792084b82c..a44ec32976 100644 --- a/keyboards/handwired/scottokeebs/scottosplit/info.json +++ b/keyboards/handwired/scottokeebs/scottosplit/info.json @@ -30,48 +30,48 @@ "LAYOUT_split_3x5_3": { "layout": [ // Row 1 - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 0], "x": 0, "y": 0.5 }, + { "matrix": [0, 1], "x": 1, "y": 0.25 }, { "matrix": [0, 2], "x": 2, "y": 0 }, - { "matrix": [0, 3], "x": 3, "y": 0 }, - { "matrix": [0, 4], "x": 4, "y": 0 }, - { "matrix": [0, 5], "x": 5, "y": 0 }, - { "matrix": [0, 6], "x": 6, "y": 0 }, - { "matrix": [0, 7], "x": 7, "y": 0 }, - { "matrix": [0, 8], "x": 8, "y": 0 }, - { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0.25 }, + { "matrix": [0, 4], "x": 4, "y": 0.5 }, + { "matrix": [0, 5], "x": 7, "y": 0.5 }, + { "matrix": [0, 6], "x": 8, "y": 0.25 }, + { "matrix": [0, 7], "x": 9, "y": 0 }, + { "matrix": [0, 8], "x": 10, "y": 0.25 }, + { "matrix": [0, 9], "x": 11, "y": 0.5 }, // Row 2 - { "matrix": [1, 0], "x": 0, "y": 1 }, - { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 0], "x": 0, "y": 1.5 }, + { "matrix": [1, 1], "x": 1, "y": 1.25 }, { "matrix": [1, 2], "x": 2, "y": 1 }, - { "matrix": [1, 3], "x": 3, "y": 1 }, - { "matrix": [1, 4], "x": 4, "y": 1 }, - { "matrix": [1, 5], "x": 5, "y": 1 }, - { "matrix": [1, 6], "x": 6, "y": 1 }, - { "matrix": [1, 7], "x": 7, "y": 1 }, - { "matrix": [1, 8], "x": 8, "y": 1 }, - { "matrix": [1, 9], "x": 9, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1.25 }, + { "matrix": [1, 4], "x": 4, "y": 1.5 }, + { "matrix": [1, 5], "x": 7, "y": 1.5 }, + { "matrix": [1, 6], "x": 8, "y": 1.25 }, + { "matrix": [1, 7], "x": 9, "y": 1 }, + { "matrix": [1, 8], "x": 10, "y": 1.25 }, + { "matrix": [1, 9], "x": 11, "y": 1.5 }, // Row 3 - { "matrix": [2, 0], "x": 0, "y": 2 }, - { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 0], "x": 0, "y": 2.5 }, + { "matrix": [2, 1], "x": 1, "y": 2.25 }, { "matrix": [2, 2], "x": 2, "y": 2 }, - { "matrix": [2, 3], "x": 3, "y": 2 }, - { "matrix": [2, 4], "x": 4, "y": 2 }, - { "matrix": [2, 5], "x": 5, "y": 2 }, - { "matrix": [2, 6], "x": 6, "y": 2 }, - { "matrix": [2, 7], "x": 7, "y": 2 }, - { "matrix": [2, 8], "x": 8, "y": 2 }, - { "matrix": [2, 9], "x": 9, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2.25 }, + { "matrix": [2, 4], "x": 4, "y": 2.5 }, + { "matrix": [2, 5], "x": 7, "y": 2.5 }, + { "matrix": [2, 6], "x": 8, "y": 2.25 }, + { "matrix": [2, 7], "x": 9, "y": 2 }, + { "matrix": [2, 8], "x": 10, "y": 2.25 }, + { "matrix": [2, 9], "x": 11, "y": 2.5 }, // Row 4 - { "matrix": [3, 2], "x": 2, "y": 3 }, - { "matrix": [3, 3], "x": 3, "y": 3 }, - { "matrix": [3, 4], "x": 4, "y": 3 }, - { "matrix": [3, 5], "x": 5, "y": 3 }, - { "matrix": [3, 6], "x": 6, "y": 3 }, - { "matrix": [3, 7], "x": 7, "y": 3 } + { "matrix": [3, 2], "x": 2.5, "y": 3.75 }, + { "matrix": [3, 3], "x": 3.5, "y": 4 }, + { "matrix": [3, 4], "x": 4.5, "y": 4.25 }, + { "matrix": [3, 5], "x": 6.5, "y": 4.25 }, + { "matrix": [3, 6], "x": 7.5, "y": 4 }, + { "matrix": [3, 7], "x": 8.5, "y": 3.75 } ] } } diff --git a/keyboards/handwired/scottokeebs/scottostarter/info.json b/keyboards/handwired/scottokeebs/scottostarter/info.json index ade3db28a0..5e6a70114b 100644 --- a/keyboards/handwired/scottokeebs/scottostarter/info.json +++ b/keyboards/handwired/scottokeebs/scottostarter/info.json @@ -38,7 +38,7 @@ {"matrix": [0, 7], "x": 7, "y": 0}, {"matrix": [0, 8], "x": 8, "y": 0}, {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0, "w": 1.5}, // Row 2 {"matrix": [1, 0], "x": 0, "y": 1}, @@ -51,7 +51,7 @@ {"matrix": [1, 7], "x": 7, "y": 1}, {"matrix": [1, 8], "x": 8, "y": 1}, {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1, "w": 1.5}, // Row 3 {"matrix": [2, 0], "x": 0, "y": 2}, @@ -64,7 +64,7 @@ {"matrix": [2, 7], "x": 7, "y": 2}, {"matrix": [2, 8], "x": 8, "y": 2}, {"matrix": [2, 9], "x": 9, "y": 2}, - {"matrix": [2, 10], "x": 10, "y": 2}, + {"matrix": [2, 10], "x": 10, "y": 2, "w": 1.5}, // Row 4 {"matrix": [3, 0], "x": 0, "y": 3}, @@ -77,17 +77,17 @@ {"matrix": [3, 7], "x": 7, "y": 3}, {"matrix": [3, 8], "x": 8, "y": 3}, {"matrix": [3, 9], "x": 9, "y": 3}, - {"matrix": [3, 10], "x": 10, "y": 3}, + {"matrix": [3, 10], "x": 10, "y": 3, "w": 1.5}, // Row 5 - {"matrix": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 2], "x": 2, "y": 4}, - {"matrix": [4, 4], "x": 4, "y": 4}, - {"matrix": [4, 7], "x": 7, "y": 4}, - {"matrix": [4, 8], "x": 8, "y": 4}, - {"matrix": [4, 9], "x": 9, "y": 4}, - {"matrix": [4, 10], "x": 10, "y": 4} + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4}, + {"matrix": [4, 4], "x": 3.5, "y": 4, "w": 3}, + {"matrix": [4, 7], "x": 6.5, "y": 4}, + {"matrix": [4, 8], "x": 7.5, "y": 4}, + {"matrix": [4, 9], "x": 8.5, "y": 4, "w": 1.5}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5} ] } } From b9f2121d109cf8c3c4ff8ba7cc382db34cc3e1e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= Date: Wed, 13 Sep 2023 08:48:38 +0200 Subject: [PATCH 030/496] chibios: mark boot2 bootlader data readonly (#21986) --- .../wear_leveling/wear_leveling_rp2040_flash.c | 4 ++-- platforms/chibios/vendors/RP/stage2_bootloaders.c | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/platforms/chibios/drivers/wear_leveling/wear_leveling_rp2040_flash.c b/platforms/chibios/drivers/wear_leveling/wear_leveling_rp2040_flash.c index 640628e1e9..6624c30b5b 100644 --- a/platforms/chibios/drivers/wear_leveling/wear_leveling_rp2040_flash.c +++ b/platforms/chibios/drivers/wear_leveling/wear_leveling_rp2040_flash.c @@ -25,8 +25,8 @@ #define FLASHCMD_READ_STATUS 0x05 #define FLASHCMD_WRITE_ENABLE 0x06 -extern uint8_t BOOT2_ROM[256]; -static uint32_t BOOT2_ROM_RAM[64]; +extern const uint8_t BOOT2_ROM[256]; +static uint32_t BOOT2_ROM_RAM[64]; static ssi_hw_t *const ssi = (ssi_hw_t *)XIP_SSI_BASE; diff --git a/platforms/chibios/vendors/RP/stage2_bootloaders.c b/platforms/chibios/vendors/RP/stage2_bootloaders.c index e65b0a5802..131fa0ce9e 100644 --- a/platforms/chibios/vendors/RP/stage2_bootloaders.c +++ b/platforms/chibios/vendors/RP/stage2_bootloaders.c @@ -13,7 +13,7 @@ #if defined(RP2040_FLASH_AT25SF128A) -uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = { +const uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = { 0x00, 0xb5, 0x31, 0x4b, 0x21, 0x20, 0x58, 0x60, 0x98, 0x68, 0x02, 0x21, 0x88, 0x43, 0x98, 0x60, 0xd8, 0x60, 0x18, 0x61, 0x58, 0x61, 0x2d, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x04, 0x21, 0x59, 0x61, 0x01, 0x21, 0xf0, 0x22, @@ -40,7 +40,7 @@ uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = { #elif defined(RP2040_FLASH_GD25Q64CS) -uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = { +const uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = { 0x00, 0xb5, 0x31, 0x4b, 0x21, 0x20, 0x58, 0x60, 0x98, 0x68, 0x02, 0x21, 0x88, 0x43, 0x98, 0x60, 0xd8, 0x60, 0x18, 0x61, 0x58, 0x61, 0x2d, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x04, 0x21, 0x59, 0x61, 0x01, 0x21, 0xf0, 0x22, @@ -67,7 +67,7 @@ uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = { #elif defined(RP2040_FLASH_W25X10CL) -uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = { +const uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = { 0x00, 0xb5, 0x14, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x04, 0x21, 0x59, 0x61, 0x12, 0x49, 0x19, 0x60, 0x00, 0x21, 0x59, 0x60, 0x11, 0x49, 0x12, 0x48, 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0xbb, 0x21, 0x19, 0x66, 0x02, 0x21, @@ -94,7 +94,7 @@ uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = { #elif defined(RP2040_FLASH_IS25LP080) -uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = { +const uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = { 0x00, 0xb5, 0x2b, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x04, 0x21, 0x59, 0x61, 0x29, 0x49, 0x19, 0x60, 0x01, 0x21, 0x99, 0x60, 0x28, 0x48, 0x00, 0xf0, 0x42, 0xf8, 0x28, 0x4a, 0x90, 0x42, 0x12, 0xd0, 0x06, 0x21, 0x19, 0x66, @@ -121,7 +121,7 @@ uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = { #elif defined(RP2040_FLASH_GENERIC_03H) -uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = { +const uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = { 0x00, 0xb5, 0x0c, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x04, 0x21, 0x59, 0x61, 0x0a, 0x49, 0x19, 0x60, 0x0a, 0x49, 0x0b, 0x48, 0x01, 0x60, 0x00, 0x21, 0x59, 0x60, 0x01, 0x21, 0x99, 0x60, 0x01, 0xbc, 0x00, 0x28, 0x00, 0xd0, @@ -148,7 +148,7 @@ uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = { #else -uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = { +const uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = { 0x00, 0xb5, 0x32, 0x4b, 0x21, 0x20, 0x58, 0x60, 0x98, 0x68, 0x02, 0x21, 0x88, 0x43, 0x98, 0x60, 0xd8, 0x60, 0x18, 0x61, 0x58, 0x61, 0x2e, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x04, 0x21, 0x59, 0x61, 0x01, 0x21, 0xf0, 0x22, From a0aebe5cd586bb464105a8ce6eddf926372c6146 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 13 Sep 2023 22:45:17 +1000 Subject: [PATCH 031/496] aw20216: driver naming cleanups (#21891) --- builddefs/common_features.mk | 8 +- docs/feature_rgb_matrix.md | 42 ++--- docs/reference_info_json.md | 2 +- drivers/led/aw20216.c | 168 ------------------ drivers/led/aw20216s.c | 168 ++++++++++++++++++ drivers/led/{aw20216.h => aw20216s.h} | 44 ++++- keyboards/gmmk/gmmk2/p65/ansi/ansi.c | 2 +- keyboards/gmmk/gmmk2/p65/ansi/info.json | 2 +- keyboards/gmmk/gmmk2/p65/config.h | 10 +- keyboards/gmmk/gmmk2/p65/iso/info.json | 2 +- keyboards/gmmk/gmmk2/p65/iso/iso.c | 2 +- keyboards/gmmk/gmmk2/p96/ansi/ansi.c | 2 +- keyboards/gmmk/gmmk2/p96/ansi/info.json | 2 +- keyboards/gmmk/gmmk2/p96/config.h | 10 +- keyboards/gmmk/gmmk2/p96/iso/info.json | 2 +- keyboards/gmmk/gmmk2/p96/iso/iso.c | 2 +- keyboards/gmmk/numpad/config.h | 8 +- keyboards/gmmk/numpad/info.json | 2 +- keyboards/gmmk/numpad/numpad.c | 12 +- keyboards/gmmk/pro/config.h | 10 +- keyboards/gmmk/pro/rev1/ansi/ansi.c | 2 +- keyboards/gmmk/pro/rev1/ansi/info.json | 2 +- .../pro/rev1/ansi/keymaps/mattgauf/ansi.c | 2 +- keyboards/gmmk/pro/rev1/iso/info.json | 2 +- keyboards/gmmk/pro/rev1/iso/iso.c | 2 +- keyboards/gmmk/pro/rev2/ansi/ansi.c | 2 +- keyboards/gmmk/pro/rev2/ansi/info.json | 2 +- keyboards/gmmk/pro/rev2/iso/info.json | 2 +- keyboards/gmmk/pro/rev2/iso/iso.c | 2 +- .../projectd/65/projectd_65_ansi/config.h | 10 +- .../projectd/65/projectd_65_ansi/info.json | 2 +- .../65/projectd_65_ansi/projectd_65_ansi.c | 2 +- quantum/rgb_matrix/rgb_matrix.h | 4 +- quantum/rgb_matrix/rgb_matrix_drivers.c | 18 +- 34 files changed, 292 insertions(+), 262 deletions(-) delete mode 100644 drivers/led/aw20216.c create mode 100644 drivers/led/aw20216s.c rename drivers/led/{aw20216.h => aw20216s.h} (83%) diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 094eda6fef..18f8b0bbfc 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -416,7 +416,7 @@ endif RGB_MATRIX_ENABLE ?= no -VALID_RGB_MATRIX_TYPES := aw20216 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a ckled2001 ws2812 custom +VALID_RGB_MATRIX_TYPES := aw20216s is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a ckled2001 ws2812 custom ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) ifeq ($(filter $(RGB_MATRIX_DRIVER),$(VALID_RGB_MATRIX_TYPES)),) $(call CATASTROPHIC_ERROR,Invalid RGB_MATRIX_DRIVER,RGB_MATRIX_DRIVER="$(RGB_MATRIX_DRIVER)" is not a valid matrix type) @@ -437,10 +437,10 @@ endif CIE1931_CURVE := yes RGB_KEYCODES_ENABLE := yes - ifeq ($(strip $(RGB_MATRIX_DRIVER)), aw20216) - OPT_DEFS += -DAW20216 -DSTM32_SPI -DHAL_USE_SPI=TRUE + ifeq ($(strip $(RGB_MATRIX_DRIVER)), aw20216s) + OPT_DEFS += -DAW20216S -DSTM32_SPI -DHAL_USE_SPI=TRUE COMMON_VPATH += $(DRIVER_PATH)/led - SRC += aw20216.c + SRC += aw20216s.c QUANTUM_LIB_SRC += spi_master.c endif diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index 44899d70d9..5cc498a9ed 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -465,41 +465,41 @@ Configure the hardware via your `config.h`: ``` --- -### AW20216 :id=aw20216 -There is basic support for addressable RGB matrix lighting with the SPI AW20216 RGB controller. To enable it, add this to your `rules.mk`: +### AW20216S :id=aw20216s +There is basic support for addressable RGB matrix lighting with the SPI AW20216S RGB controller. To enable it, add this to your `rules.mk`: ```make RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = aw20216 +RGB_MATRIX_DRIVER = aw20216s ``` -You can use up to 2 AW20216 IC's. Do not specify `DRIVER__xxx` defines for IC's that are not present on your keyboard. You can define the following items in `config.h`: +You can use up to 2 AW20216S IC's. Do not specify `DRIVER__xxx` defines for IC's that are not present on your keyboard. You can define the following items in `config.h`: | Variable | Description | Default | |----------|-------------|---------| -| `DRIVER_1_CS` | (Required) MCU pin connected to first RGB driver chip select line | B13 | -| `DRIVER_2_CS` | (Optional) MCU pin connected to second RGB driver chip select line | | -| `DRIVER_1_EN` | (Required) MCU pin connected to first RGB driver hardware enable line | C13 | -| `DRIVER_2_EN` | (Optional) MCU pin connected to second RGB driver hardware enable line | | +| `AW20216S_DRIVER_1_CS` | (Required) MCU pin connected to first RGB driver chip select line | B13 | +| `AW20216S_DRIVER_2_CS` | (Optional) MCU pin connected to second RGB driver chip select line | | +| `AW20216S_DRIVER_1_EN` | (Required) MCU pin connected to first RGB driver hardware enable line | C13 | +| `AW20216S_DRIVER_2_EN` | (Optional) MCU pin connected to second RGB driver hardware enable line | | | `DRIVER_1_LED_TOTAL` | (Required) How many RGB lights are connected to first RGB driver | | | `DRIVER_2_LED_TOTAL` | (Optional) How many RGB lights are connected to second RGB driver | | -| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | +| `AW20216S_DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | | `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | | -| `AW_SCALING_MAX` | (Optional) LED current scaling value (0-255, higher values mean LED is brighter at full PWM) | 150 | -| `AW_GLOBAL_CURRENT_MAX` | (Optional) Driver global current limit (0-255, higher values means the driver may consume more power) | 150 | -| `AW_SPI_MODE` | (Optional) Mode for SPI communication (0-3, defines polarity and phase of the clock) | 3 | -| `AW_SPI_DIVISOR` | (Optional) Clock divisor for SPI communication (powers of 2, smaller numbers means faster communication, should not be less than 4) | 4 | +| `AW20216S_SCALING_MAX` | (Optional) LED current scaling value (0-255, higher values mean LED is brighter at full PWM) | 150 | +| `AW20216S_GLOBAL_CURRENT_MAX` | (Optional) Driver global current limit (0-255, higher values means the driver may consume more power) | 150 | +| `AW20216S_SPI_MODE` | (Optional) Mode for SPI communication (0-3, defines polarity and phase of the clock) | 3 | +| `AW20216S_SPI_DIVISOR` | (Optional) Clock divisor for SPI communication (powers of 2, smaller numbers means faster communication, should not be less than 4) | 4 | Here is an example using 2 drivers. ```c -#define DRIVER_1_CS B13 -#define DRIVER_2_CS B14 +#define AW20216S_DRIVER_1_CS B13 +#define AW20216S_DRIVER_2_CS B14 // Hardware enable lines may be connected to the same pin -#define DRIVER_1_EN C13 -#define DRIVER_2_EN C13 +#define AW20216S_DRIVER_1_EN C13 +#define AW20216S_DRIVER_2_EN C13 -#define DRIVER_COUNT 2 +#define AW20216S_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 66 #define DRIVER_2_LED_TOTAL 32 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) @@ -510,10 +510,10 @@ Here is an example using 2 drivers. Define these arrays listing all the LEDs in your `.c`: ```c -const aw_led PROGMEM g_aw_leds[RGB_MATRIX_LED_COUNT] = { -/* Each AW20216 channel is controlled by a register at some offset between 0x00 +const aw20216s_led PROGMEM g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { +/* Each AW20216S channel is controlled by a register at some offset between 0x00 * and 0xD7 inclusive. - * See drivers/awinic/aw20216.h for the mapping between register offsets and + * See drivers/led/aw20216s.h for the mapping between register offsets and * driver pin locations. * driver * | R location diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index b81aacb43c..9030c99aa6 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -530,7 +530,7 @@ Configures the [RGB Matrix](feature_rgb_matrix.md) feature. * The centroid (geometric center) of the LEDs. Used for certain effects. * Default: `[112, 32]` * `driver` (Required) - * The driver to use. Must be one of `aw20216`, `ckled2001`, `custom`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `ws2812`. + * The driver to use. Must be one of `aw20216s`, `ckled2001`, `custom`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `ws2812`. * `hue_steps` * The number of hue adjustment steps. * Default: `8` diff --git a/drivers/led/aw20216.c b/drivers/led/aw20216.c deleted file mode 100644 index 479643add4..0000000000 --- a/drivers/led/aw20216.c +++ /dev/null @@ -1,168 +0,0 @@ -/* Copyright 2021 Jasper Chan - * 2023 Huckies - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "aw20216.h" -#include "wait.h" -#include "spi_master.h" - -/* The AW20216 appears to be somewhat similar to the IS31FL743, although quite - * a few things are different, such as the command byte format and page ordering. - * The LED addresses start from 0x00 instead of 0x01. - */ -#define AWINIC_ID 0b1010 << 4 - -#define AW_PAGE_FUNCTION 0x00 << 1 // PG0, Function registers -#define AW_PAGE_PWM 0x01 << 1 // PG1, LED PWM control -#define AW_PAGE_SCALING 0x02 << 1 // PG2, LED current scaling control -#define AW_PAGE_PATCHOICE 0x03 << 1 // PG3, Pattern choice? -#define AW_PAGE_PWMSCALING 0x04 << 1 // PG4, LED PWM + Scaling control? - -#define AW_WRITE 0 -#define AW_READ 1 - -#define AW_REG_CONFIGURATION 0x00 // PG0 -#define AW_REG_GLOBALCURRENT 0x01 // PG0 -#define AW_REG_RESET 0x2F // PG0 -#define AW_REG_MIXFUNCTION 0x46 // PG0 - -// Default value of AW_REG_CONFIGURATION -// D7:D4 = 1011, SWSEL (SW1~SW12 active) -// D3 = 0?, reserved (apparently this should be 1 but it doesn't seem to matter) -// D2:D1 = 00, OSDE (open/short detection enable) -// D0 = 0, CHIPEN (write 1 to enable LEDs when hardware enable pulled high) -#define AW_CONFIG_DEFAULT 0b10110000 -#define AW_MIXCR_DEFAULT 0b00000000 -#define AW_RESET_CMD 0xAE -#define AW_CHIPEN 1 -#define AW_LPEN (0x01 << 1) - -#define AW_PWM_REGISTER_COUNT 216 - -#ifndef AW_SCALING_MAX -# define AW_SCALING_MAX 150 -#endif - -#ifndef AW_GLOBAL_CURRENT_MAX -# define AW_GLOBAL_CURRENT_MAX 150 -#endif - -#ifndef AW_SPI_MODE -# define AW_SPI_MODE 0 -#endif - -#ifndef AW_SPI_DIVISOR -# define AW_SPI_DIVISOR 4 -#endif - -uint8_t g_pwm_buffer[DRIVER_COUNT][AW_PWM_REGISTER_COUNT]; -bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false}; - -bool aw20216_write(pin_t cs_pin, uint8_t page, uint8_t reg, uint8_t* data, uint8_t len) { - static uint8_t s_spi_transfer_buffer[2] = {0}; - - if (!spi_start(cs_pin, false, AW_SPI_MODE, AW_SPI_DIVISOR)) { - spi_stop(); - return false; - } - - s_spi_transfer_buffer[0] = (AWINIC_ID | page | AW_WRITE); - s_spi_transfer_buffer[1] = reg; - - if (spi_transmit(s_spi_transfer_buffer, 2) != SPI_STATUS_SUCCESS) { - spi_stop(); - return false; - } - - if (spi_transmit(data, len) != SPI_STATUS_SUCCESS) { - spi_stop(); - return false; - } - - spi_stop(); - return true; -} - -static inline bool aw20216_write_register(pin_t cs_pin, uint8_t page, uint8_t reg, uint8_t value) { - // Little wrapper so callers need not care about sending a buffer - return aw20216_write(cs_pin, page, reg, &value, 1); -} - -void aw20216_soft_reset(pin_t cs_pin) { - aw20216_write_register(cs_pin, AW_PAGE_FUNCTION, AW_REG_RESET, AW_RESET_CMD); -} - -static void aw20216_init_scaling(pin_t cs_pin) { - // Set constant current to the max, control brightness with PWM - for (uint8_t i = 0; i < AW_PWM_REGISTER_COUNT; i++) { - aw20216_write_register(cs_pin, AW_PAGE_SCALING, i, AW_SCALING_MAX); - } -} - -static inline void aw20216_init_current_limit(pin_t cs_pin) { - // Push config - aw20216_write_register(cs_pin, AW_PAGE_FUNCTION, AW_REG_GLOBALCURRENT, AW_GLOBAL_CURRENT_MAX); -} - -static inline void aw20216_soft_enable(pin_t cs_pin) { - // Push config - aw20216_write_register(cs_pin, AW_PAGE_FUNCTION, AW_REG_CONFIGURATION, AW_CONFIG_DEFAULT | AW_CHIPEN); -} - -static inline void aw20216_auto_lowpower(pin_t cs_pin) { - aw20216_write_register(cs_pin, AW_PAGE_FUNCTION, AW_REG_MIXFUNCTION, AW_MIXCR_DEFAULT | AW_LPEN); -} - -void aw20216_init(pin_t cs_pin, pin_t en_pin) { - setPinOutput(en_pin); - writePinHigh(en_pin); - - aw20216_soft_reset(cs_pin); - wait_ms(2); - - // Drivers should start with all scaling and PWM registers as off - aw20216_init_current_limit(cs_pin); - aw20216_init_scaling(cs_pin); - - aw20216_soft_enable(cs_pin); - aw20216_auto_lowpower(cs_pin); -} - -void aw20216_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - aw_led led; - memcpy_P(&led, (&g_aw_leds[index]), sizeof(led)); - - if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { - return; - } - g_pwm_buffer[led.driver][led.r] = red; - g_pwm_buffer[led.driver][led.g] = green; - g_pwm_buffer[led.driver][led.b] = blue; - g_pwm_buffer_update_required[led.driver] = true; -} - -void aw20216_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) { - aw20216_set_color(i, red, green, blue); - } -} - -void aw20216_update_pwm_buffers(pin_t cs_pin, uint8_t index) { - if (g_pwm_buffer_update_required[index]) { - aw20216_write(cs_pin, AW_PAGE_PWM, 0, g_pwm_buffer[index], AW_PWM_REGISTER_COUNT); - } - g_pwm_buffer_update_required[index] = false; -} diff --git a/drivers/led/aw20216s.c b/drivers/led/aw20216s.c new file mode 100644 index 0000000000..1b7861a1ec --- /dev/null +++ b/drivers/led/aw20216s.c @@ -0,0 +1,168 @@ +/* Copyright 2021 Jasper Chan + * 2023 Huckies + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "aw20216s.h" +#include "wait.h" +#include "spi_master.h" + +/* The AW20216S appears to be somewhat similar to the IS31FL743, although quite + * a few things are different, such as the command byte format and page ordering. + * The LED addresses start from 0x00 instead of 0x01. + */ +#define AW20216S_ID 0b1010 << 4 + +#define AW20216S_PAGE_FUNCTION 0x00 << 1 // PG0, Function registers +#define AW20216S_PAGE_PWM 0x01 << 1 // PG1, LED PWM control +#define AW20216S_PAGE_SCALING 0x02 << 1 // PG2, LED current scaling control +#define AW20216S_PAGE_PATCHOICE 0x03 << 1 // PG3, Pattern choice? +#define AW20216S_PAGE_PWMSCALING 0x04 << 1 // PG4, LED PWM + Scaling control? + +#define AW20216S_WRITE 0 +#define AW20216S_READ 1 + +#define AW20216S_REG_CONFIGURATION 0x00 // PG0 +#define AW20216S_REG_GLOBALCURRENT 0x01 // PG0 +#define AW20216S_REG_RESET 0x2F // PG0 +#define AW20216S_REG_MIXFUNCTION 0x46 // PG0 + +// Default value of AW20216S_REG_CONFIGURATION +// D7:D4 = 1011, SWSEL (SW1~SW12 active) +// D3 = 0?, reserved (apparently this should be 1 but it doesn't seem to matter) +// D2:D1 = 00, OSDE (open/short detection enable) +// D0 = 0, CHIPEN (write 1 to enable LEDs when hardware enable pulled high) +#define AW20216S_CONFIG_DEFAULT 0b10110000 +#define AW20216S_MIXCR_DEFAULT 0b00000000 +#define AW20216S_RESET_CMD 0xAE +#define AW20216S_CHIPEN 1 +#define AW20216S_LPEN (0x01 << 1) + +#define AW20216S_PWM_REGISTER_COUNT 216 + +#ifndef AW20216S_SCALING_MAX +# define AW20216S_SCALING_MAX 150 +#endif + +#ifndef AW20216S_GLOBAL_CURRENT_MAX +# define AW20216S_GLOBAL_CURRENT_MAX 150 +#endif + +#ifndef AW20216S_SPI_MODE +# define AW20216S_SPI_MODE 0 +#endif + +#ifndef AW20216S_SPI_DIVISOR +# define AW20216S_SPI_DIVISOR 4 +#endif + +uint8_t g_pwm_buffer[AW20216S_DRIVER_COUNT][AW20216S_PWM_REGISTER_COUNT]; +bool g_pwm_buffer_update_required[AW20216S_DRIVER_COUNT] = {false}; + +bool aw20216s_write(pin_t cs_pin, uint8_t page, uint8_t reg, uint8_t* data, uint8_t len) { + static uint8_t s_spi_transfer_buffer[2] = {0}; + + if (!spi_start(cs_pin, false, AW20216S_SPI_MODE, AW20216S_SPI_DIVISOR)) { + spi_stop(); + return false; + } + + s_spi_transfer_buffer[0] = (AW20216S_ID | page | AW20216S_WRITE); + s_spi_transfer_buffer[1] = reg; + + if (spi_transmit(s_spi_transfer_buffer, 2) != SPI_STATUS_SUCCESS) { + spi_stop(); + return false; + } + + if (spi_transmit(data, len) != SPI_STATUS_SUCCESS) { + spi_stop(); + return false; + } + + spi_stop(); + return true; +} + +static inline bool aw20216s_write_register(pin_t cs_pin, uint8_t page, uint8_t reg, uint8_t value) { + // Little wrapper so callers need not care about sending a buffer + return aw20216s_write(cs_pin, page, reg, &value, 1); +} + +void aw20216s_soft_reset(pin_t cs_pin) { + aw20216s_write_register(cs_pin, AW20216S_PAGE_FUNCTION, AW20216S_REG_RESET, AW20216S_RESET_CMD); +} + +static void aw20216s_init_scaling(pin_t cs_pin) { + // Set constant current to the max, control brightness with PWM + for (uint8_t i = 0; i < AW20216S_PWM_REGISTER_COUNT; i++) { + aw20216s_write_register(cs_pin, AW20216S_PAGE_SCALING, i, AW20216S_SCALING_MAX); + } +} + +static inline void aw20216s_init_current_limit(pin_t cs_pin) { + // Push config + aw20216s_write_register(cs_pin, AW20216S_PAGE_FUNCTION, AW20216S_REG_GLOBALCURRENT, AW20216S_GLOBAL_CURRENT_MAX); +} + +static inline void aw20216s_soft_enable(pin_t cs_pin) { + // Push config + aw20216s_write_register(cs_pin, AW20216S_PAGE_FUNCTION, AW20216S_REG_CONFIGURATION, AW20216S_CONFIG_DEFAULT | AW20216S_CHIPEN); +} + +static inline void aw20216s_auto_lowpower(pin_t cs_pin) { + aw20216s_write_register(cs_pin, AW20216S_PAGE_FUNCTION, AW20216S_REG_MIXFUNCTION, AW20216S_MIXCR_DEFAULT | AW20216S_LPEN); +} + +void aw20216s_init(pin_t cs_pin, pin_t en_pin) { + setPinOutput(en_pin); + writePinHigh(en_pin); + + aw20216s_soft_reset(cs_pin); + wait_ms(2); + + // Drivers should start with all scaling and PWM registers as off + aw20216s_init_current_limit(cs_pin); + aw20216s_init_scaling(cs_pin); + + aw20216s_soft_enable(cs_pin); + aw20216s_auto_lowpower(cs_pin); +} + +void aw20216s_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { + aw20216s_led led; + memcpy_P(&led, (&g_aw20216s_leds[index]), sizeof(led)); + + if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { + return; + } + g_pwm_buffer[led.driver][led.r] = red; + g_pwm_buffer[led.driver][led.g] = green; + g_pwm_buffer[led.driver][led.b] = blue; + g_pwm_buffer_update_required[led.driver] = true; +} + +void aw20216s_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) { + aw20216s_set_color(i, red, green, blue); + } +} + +void aw20216s_update_pwm_buffers(pin_t cs_pin, uint8_t index) { + if (g_pwm_buffer_update_required[index]) { + aw20216s_write(cs_pin, AW20216S_PAGE_PWM, 0, g_pwm_buffer[index], AW20216S_PWM_REGISTER_COUNT); + } + g_pwm_buffer_update_required[index] = false; +} diff --git a/drivers/led/aw20216.h b/drivers/led/aw20216s.h similarity index 83% rename from drivers/led/aw20216.h rename to drivers/led/aw20216s.h index e342cb6bac..49b0a8e0ad 100644 --- a/drivers/led/aw20216.h +++ b/drivers/led/aw20216s.h @@ -21,19 +21,49 @@ #include "progmem.h" #include "gpio.h" -typedef struct aw_led { +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_COUNT +# define AW20216S_DRIVER_COUNT DRIVER_COUNT +#endif +#ifdef AW_SCALING_MAX +# define AW20216S_SCALING_MAX AW_SCALING_MAX +#endif +#ifdef AW_GLOBAL_CURRENT_MAX +# define AW20216S_GLOBAL_CURRENT_MAX AW_GLOBAL_CURRENT_MAX +#endif +#ifdef AW_SPI_MODE +# define AW20216S_SPI_MODE AW_SPI_MODE +#endif +#ifdef AW_SPI_DIVISOR +# define AW20216S_SPI_DIVISOR AW_SPI_DIVISOR +#endif +#ifdef DRIVER_1_CS +# define AW20216S_DRIVER_1_CS DRIVER_1_CS +#endif +#ifdef DRIVER_2_CS +# define AW20216S_DRIVER_2_CS DRIVER_2_CS +#endif +#ifdef DRIVER_1_EN +# define AW20216S_DRIVER_1_EN DRIVER_1_EN +#endif +#ifdef DRIVER_2_EN +# define AW20216S_DRIVER_2_EN DRIVER_2_EN +#endif +// ======== + +typedef struct aw20216s_led { uint8_t driver : 2; uint8_t r; uint8_t g; uint8_t b; -} aw_led; +} aw20216s_led; -extern const aw_led PROGMEM g_aw_leds[RGB_MATRIX_LED_COUNT]; +extern const aw20216s_led PROGMEM g_aw20216s_leds[RGB_MATRIX_LED_COUNT]; -void aw20216_init(pin_t cs_pin, pin_t en_pin); -void aw20216_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); -void aw20216_set_color_all(uint8_t red, uint8_t green, uint8_t blue); -void aw20216_update_pwm_buffers(pin_t cs_pin, uint8_t index); +void aw20216s_init(pin_t cs_pin, pin_t en_pin); +void aw20216s_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); +void aw20216s_set_color_all(uint8_t red, uint8_t green, uint8_t blue); +void aw20216s_update_pwm_buffers(pin_t cs_pin, uint8_t index); #define CS1_SW1 0x00 #define CS2_SW1 0x01 diff --git a/keyboards/gmmk/gmmk2/p65/ansi/ansi.c b/keyboards/gmmk/gmmk2/p65/ansi/ansi.c index 2ed8874491..6230e76472 100644 --- a/keyboards/gmmk/gmmk2/p65/ansi/ansi.c +++ b/keyboards/gmmk/gmmk2/p65/ansi/ansi.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { +const aw20216s_led g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/gmmk/gmmk2/p65/ansi/info.json b/keyboards/gmmk/gmmk2/p65/ansi/info.json index 902d1b6b5d..cd9296b81a 100644 --- a/keyboards/gmmk/gmmk2/p65/ansi/info.json +++ b/keyboards/gmmk/gmmk2/p65/ansi/info.json @@ -12,7 +12,7 @@ "tap_keycode_delay": 10 }, "rgb_matrix": { - "driver": "aw20216" + "driver": "aw20216s" }, "matrix_pins": { "cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"], diff --git a/keyboards/gmmk/gmmk2/p65/config.h b/keyboards/gmmk/gmmk2/p65/config.h index 3c6a2fd906..37cf430a56 100644 --- a/keyboards/gmmk/gmmk2/p65/config.h +++ b/keyboards/gmmk/gmmk2/p65/config.h @@ -29,12 +29,12 @@ #define SPI_MOSI_PIN B15 #define SPI_MISO_PIN B14 -#define DRIVER_1_CS A15 -#define DRIVER_2_CS B9 -#define DRIVER_1_EN C13 -#define DRIVER_2_EN C13 +#define AW20216S_DRIVER_1_CS A15 +#define AW20216S_DRIVER_2_CS B9 +#define AW20216S_DRIVER_1_EN C13 +#define AW20216S_DRIVER_2_EN C13 -#define DRIVER_COUNT 2 +#define AW20216S_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 54 #define DRIVER_2_LED_TOTAL 34 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/gmmk/gmmk2/p65/iso/info.json b/keyboards/gmmk/gmmk2/p65/iso/info.json index 90609dc911..a266ce2b4f 100644 --- a/keyboards/gmmk/gmmk2/p65/iso/info.json +++ b/keyboards/gmmk/gmmk2/p65/iso/info.json @@ -12,7 +12,7 @@ "tap_keycode_delay": 10 }, "rgb_matrix": { - "driver": "aw20216" + "driver": "aw20216s" }, "matrix_pins": { "cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"], diff --git a/keyboards/gmmk/gmmk2/p65/iso/iso.c b/keyboards/gmmk/gmmk2/p65/iso/iso.c index a296844f44..234fe71975 100644 --- a/keyboards/gmmk/gmmk2/p65/iso/iso.c +++ b/keyboards/gmmk/gmmk2/p65/iso/iso.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { +const aw20216s_led g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/gmmk/gmmk2/p96/ansi/ansi.c b/keyboards/gmmk/gmmk2/p96/ansi/ansi.c index 467765e435..11cad9fd55 100644 --- a/keyboards/gmmk/gmmk2/p96/ansi/ansi.c +++ b/keyboards/gmmk/gmmk2/p96/ansi/ansi.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { +const aw20216s_led g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/gmmk/gmmk2/p96/ansi/info.json b/keyboards/gmmk/gmmk2/p96/ansi/info.json index 67c08e95a9..b80e334e0a 100644 --- a/keyboards/gmmk/gmmk2/p96/ansi/info.json +++ b/keyboards/gmmk/gmmk2/p96/ansi/info.json @@ -12,7 +12,7 @@ "tap_keycode_delay": 10 }, "rgb_matrix": { - "driver": "aw20216" + "driver": "aw20216s" }, "matrix_pins": { "cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"], diff --git a/keyboards/gmmk/gmmk2/p96/config.h b/keyboards/gmmk/gmmk2/p96/config.h index e3b5cdcfa1..4200bae922 100644 --- a/keyboards/gmmk/gmmk2/p96/config.h +++ b/keyboards/gmmk/gmmk2/p96/config.h @@ -33,12 +33,12 @@ #define SPI_MOSI_PIN A7 #define SPI_MISO_PIN A6 -#define DRIVER_1_CS A15 -#define DRIVER_2_CS B15 -#define DRIVER_1_EN C13 -#define DRIVER_2_EN C13 +#define AW20216S_DRIVER_1_CS A15 +#define AW20216S_DRIVER_2_CS B15 +#define AW20216S_DRIVER_1_EN C13 +#define AW20216S_DRIVER_2_EN C13 -#define DRIVER_COUNT 2 +#define AW20216S_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 66 #define DRIVER_2_LED_TOTAL 54 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/gmmk/gmmk2/p96/iso/info.json b/keyboards/gmmk/gmmk2/p96/iso/info.json index 672bdb4e49..ee59bfd4ff 100644 --- a/keyboards/gmmk/gmmk2/p96/iso/info.json +++ b/keyboards/gmmk/gmmk2/p96/iso/info.json @@ -12,7 +12,7 @@ "tap_keycode_delay": 10 }, "rgb_matrix": { - "driver": "aw20216" + "driver": "aw20216s" }, "matrix_pins": { "cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"], diff --git a/keyboards/gmmk/gmmk2/p96/iso/iso.c b/keyboards/gmmk/gmmk2/p96/iso/iso.c index 40d28818b0..4bab8e60ec 100644 --- a/keyboards/gmmk/gmmk2/p96/iso/iso.c +++ b/keyboards/gmmk/gmmk2/p96/iso/iso.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { +const aw20216s_led g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/gmmk/numpad/config.h b/keyboards/gmmk/numpad/config.h index 6aa0a6c016..9096ce1d56 100644 --- a/keyboards/gmmk/numpad/config.h +++ b/keyboards/gmmk/numpad/config.h @@ -28,11 +28,11 @@ #define SPI_MOSI_PIN B5 #define SPI_MISO_PIN B4 -#define DRIVER_1_CS B12 -#define DRIVER_1_EN A15 -#define DRIVER_1_PW_EN B13 +#define AW20216S_DRIVER_1_CS B12 +#define AW20216S_DRIVER_1_EN A15 +#define AW20216S_DRIVER_1_PW_EN B13 -#define DRIVER_COUNT 1 +#define AW20216S_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 31 diff --git a/keyboards/gmmk/numpad/info.json b/keyboards/gmmk/numpad/info.json index 66aead113e..406f22603a 100644 --- a/keyboards/gmmk/numpad/info.json +++ b/keyboards/gmmk/numpad/info.json @@ -20,7 +20,7 @@ ] }, "rgb_matrix": { - "driver": "aw20216" + "driver": "aw20216s" }, "processor": "WB32F3G71", "bootloader": "wb32-dfu", diff --git a/keyboards/gmmk/numpad/numpad.c b/keyboards/gmmk/numpad/numpad.c index f1a46170fd..377dde810b 100644 --- a/keyboards/gmmk/numpad/numpad.c +++ b/keyboards/gmmk/numpad/numpad.c @@ -19,10 +19,10 @@ #ifdef RGB_MATRIX_ENABLE -const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { -/* Each AW20216 channel is controlled by a register at some offset between 0x00 +const aw20216s_led g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { +/* Each AW20216S channel is controlled by a register at some offset between 0x00 * and 0xD7 inclusive. - * See drivers/awinic/aw20216.h for the mapping between register offsets and + * See drivers/led/aw20216s.h for the mapping between register offsets and * driver pin locations. * driver * | R location @@ -110,12 +110,12 @@ led_config_t g_led_config = {{ 2, 2, 2, 2, 2, 2, 2 } }; -# ifdef DRIVER_1_PW_EN +# ifdef AW20216S_DRIVER_1_PW_EN void keyboard_pre_init_user(void) { wait_ms(2000); - setPinOutput(DRIVER_1_PW_EN); - writePinHigh(DRIVER_1_PW_EN); + setPinOutput(AW20216S_DRIVER_1_PW_EN); + writePinHigh(AW20216S_DRIVER_1_PW_EN); } # endif diff --git a/keyboards/gmmk/pro/config.h b/keyboards/gmmk/pro/config.h index 069823663e..6b62241839 100644 --- a/keyboards/gmmk/pro/config.h +++ b/keyboards/gmmk/pro/config.h @@ -26,12 +26,12 @@ #define SPI_MOSI_PIN A6 #define SPI_MISO_PIN A7 -#define DRIVER_1_CS B13 -#define DRIVER_2_CS B14 -#define DRIVER_1_EN C13 -#define DRIVER_2_EN C13 +#define AW20216S_DRIVER_1_CS B13 +#define AW20216S_DRIVER_2_CS B14 +#define AW20216S_DRIVER_1_EN C13 +#define AW20216S_DRIVER_2_EN C13 -#define DRIVER_COUNT 2 +#define AW20216S_DRIVER_COUNT 2 #define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/gmmk/pro/rev1/ansi/ansi.c b/keyboards/gmmk/pro/rev1/ansi/ansi.c index 9cd6a3739c..faaa6335a0 100644 --- a/keyboards/gmmk/pro/rev1/ansi/ansi.c +++ b/keyboards/gmmk/pro/rev1/ansi/ansi.c @@ -136,7 +136,7 @@ led_config_t g_led_config = {{ 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4 }}; -const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { +const aw20216s_led g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { {0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, ESC, k13 {0, CS4_SW1, CS5_SW1, CS6_SW1}, // 1, ~, k16 {0, CS7_SW1, CS8_SW1, CS9_SW1}, // 2, Tab, k11 diff --git a/keyboards/gmmk/pro/rev1/ansi/info.json b/keyboards/gmmk/pro/rev1/ansi/info.json index 7e0adbdb05..fc2197a0d7 100644 --- a/keyboards/gmmk/pro/rev1/ansi/info.json +++ b/keyboards/gmmk/pro/rev1/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "aw20216" + "driver": "aw20216s" }, "matrix_pins": { "cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"], diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/ansi.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/ansi.c index a7ab0c9cc3..b56d237552 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/ansi.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/ansi.c @@ -136,7 +136,7 @@ led_config_t PROGMEM g_led_config = {{ 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4 }}; -const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { +const aw20216s_led g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { {0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, ESC, k13 {0, CS4_SW1, CS5_SW1, CS6_SW1}, // 1, ~, k16 {0, CS7_SW1, CS8_SW1, CS9_SW1}, // 2, Tab, k11 diff --git a/keyboards/gmmk/pro/rev1/iso/info.json b/keyboards/gmmk/pro/rev1/iso/info.json index 52ea4538c8..492a5cf486 100644 --- a/keyboards/gmmk/pro/rev1/iso/info.json +++ b/keyboards/gmmk/pro/rev1/iso/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "aw20216" + "driver": "aw20216s" }, "matrix_pins": { "cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"], diff --git a/keyboards/gmmk/pro/rev1/iso/iso.c b/keyboards/gmmk/pro/rev1/iso/iso.c index 0ded23162f..f7d97585c2 100644 --- a/keyboards/gmmk/pro/rev1/iso/iso.c +++ b/keyboards/gmmk/pro/rev1/iso/iso.c @@ -137,7 +137,7 @@ led_config_t g_led_config = {{ 2, 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4 }}; -const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { +const aw20216s_led g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { {0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, ESC, k13 {0, CS4_SW1, CS5_SW1, CS6_SW1}, // 1, ~, k16 {0, CS7_SW1, CS8_SW1, CS9_SW1}, // 2, Tab, k11 diff --git a/keyboards/gmmk/pro/rev2/ansi/ansi.c b/keyboards/gmmk/pro/rev2/ansi/ansi.c index ccdcd42726..5d8955d808 100644 --- a/keyboards/gmmk/pro/rev2/ansi/ansi.c +++ b/keyboards/gmmk/pro/rev2/ansi/ansi.c @@ -136,7 +136,7 @@ led_config_t g_led_config = {{ 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4 }}; -const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { +const aw20216s_led g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { {0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, ESC, k13 {0, CS4_SW1, CS5_SW1, CS6_SW1}, // 1, ~, k16 {0, CS7_SW1, CS8_SW1, CS9_SW1}, // 2, Tab, k11 diff --git a/keyboards/gmmk/pro/rev2/ansi/info.json b/keyboards/gmmk/pro/rev2/ansi/info.json index 44151f874a..968a1952ee 100644 --- a/keyboards/gmmk/pro/rev2/ansi/info.json +++ b/keyboards/gmmk/pro/rev2/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.2" }, "rgb_matrix": { - "driver": "aw20216" + "driver": "aw20216s" }, "matrix_pins": { "cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"], diff --git a/keyboards/gmmk/pro/rev2/iso/info.json b/keyboards/gmmk/pro/rev2/iso/info.json index bb76da4493..54ebc2d2f7 100644 --- a/keyboards/gmmk/pro/rev2/iso/info.json +++ b/keyboards/gmmk/pro/rev2/iso/info.json @@ -9,7 +9,7 @@ "device_version": "0.0.2" }, "rgb_matrix": { - "driver": "aw20216" + "driver": "aw20216s" }, "matrix_pins": { "cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"], diff --git a/keyboards/gmmk/pro/rev2/iso/iso.c b/keyboards/gmmk/pro/rev2/iso/iso.c index e056ff6c12..3a723c7f0c 100644 --- a/keyboards/gmmk/pro/rev2/iso/iso.c +++ b/keyboards/gmmk/pro/rev2/iso/iso.c @@ -137,7 +137,7 @@ led_config_t g_led_config = {{ 2, 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4 }}; -const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { +const aw20216s_led g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { {0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, ESC, k13 {0, CS4_SW1, CS5_SW1, CS6_SW1}, // 1, ~, k16 {0, CS7_SW1, CS8_SW1, CS9_SW1}, // 2, Tab, k11 diff --git a/keyboards/projectd/65/projectd_65_ansi/config.h b/keyboards/projectd/65/projectd_65_ansi/config.h index 312a72979f..64e4595e1b 100644 --- a/keyboards/projectd/65/projectd_65_ansi/config.h +++ b/keyboards/projectd/65/projectd_65_ansi/config.h @@ -33,10 +33,10 @@ #define SPI_MOSI_PIN A7 #define SPI_MISO_PIN A6 -#define DRIVER_1_CS A15 -#define DRIVER_2_CS B15 -#define DRIVER_1_EN C13 -#define DRIVER_2_EN C13 +#define AW20216S_DRIVER_1_CS A15 +#define AW20216S_DRIVER_2_CS B15 +#define AW20216S_DRIVER_1_EN C13 +#define AW20216S_DRIVER_2_EN C13 -#define DRIVER_COUNT 1 +#define AW20216S_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 71 diff --git a/keyboards/projectd/65/projectd_65_ansi/info.json b/keyboards/projectd/65/projectd_65_ansi/info.json index 3d4041db17..c385f00ed1 100644 --- a/keyboards/projectd/65/projectd_65_ansi/info.json +++ b/keyboards/projectd/65/projectd_65_ansi/info.json @@ -80,7 +80,7 @@ "solid_multisplash": true }, "center_point": [76, 25], - "driver": "aw20216", + "driver": "aw20216s", "layout": [ { "flags": 4, "matrix": [1, 3], "x": 0, "y": 0 }, { "flags": 4, "matrix": [1, 7], "x": 10, "y": 0 }, diff --git a/keyboards/projectd/65/projectd_65_ansi/projectd_65_ansi.c b/keyboards/projectd/65/projectd_65_ansi/projectd_65_ansi.c index 6027128a96..a945e8020e 100644 --- a/keyboards/projectd/65/projectd_65_ansi/projectd_65_ansi.c +++ b/keyboards/projectd/65/projectd_65_ansi/projectd_65_ansi.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { +const aw20216s_led g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/quantum/rgb_matrix/rgb_matrix.h b/quantum/rgb_matrix/rgb_matrix.h index 38040fb0cc..ab5184fe18 100644 --- a/quantum/rgb_matrix/rgb_matrix.h +++ b/quantum/rgb_matrix/rgb_matrix.h @@ -38,8 +38,8 @@ # include "is31flcommon.h" #elif defined(CKLED2001) # include "ckled2001.h" -#elif defined(AW20216) -# include "aw20216.h" +#elif defined(AW20216S) +# include "aw20216s.h" #elif defined(WS2812) # include "ws2812.h" #endif diff --git a/quantum/rgb_matrix/rgb_matrix_drivers.c b/quantum/rgb_matrix/rgb_matrix_drivers.c index cd0e80cc24..67330434ed 100644 --- a/quantum/rgb_matrix/rgb_matrix_drivers.c +++ b/quantum/rgb_matrix/rgb_matrix_drivers.c @@ -393,30 +393,30 @@ const rgb_matrix_driver_t rgb_matrix_driver = { }; # endif -#elif defined(AW20216) +#elif defined(AW20216S) # include "spi_master.h" static void init(void) { spi_init(); - aw20216_init(DRIVER_1_CS, DRIVER_1_EN); -# if defined(DRIVER_2_CS) - aw20216_init(DRIVER_2_CS, DRIVER_2_EN); + aw20216s_init(AW20216S_DRIVER_1_CS, AW20216S_DRIVER_1_EN); +# if defined(AW20216S_DRIVER_2_CS) + aw20216s_init(AW20216S_DRIVER_2_CS, AW20216S_DRIVER_2_EN); # endif } static void flush(void) { - aw20216_update_pwm_buffers(DRIVER_1_CS, 0); -# if defined(DRIVER_2_CS) - aw20216_update_pwm_buffers(DRIVER_2_CS, 1); + aw20216s_update_pwm_buffers(AW20216S_DRIVER_1_CS, 0); +# if defined(AW20216S_DRIVER_2_CS) + aw20216s_update_pwm_buffers(AW20216S_DRIVER_2_CS, 1); # endif } const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, .flush = flush, - .set_color = aw20216_set_color, - .set_color_all = aw20216_set_color_all, + .set_color = aw20216s_set_color, + .set_color_all = aw20216s_set_color_all, }; #elif defined(WS2812) From eb2db05e8a7338568fea43b05822aa8089524f61 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 13 Sep 2023 13:45:49 +0100 Subject: [PATCH 032/496] Migrate spi EEPROM_DRIVER to info.json (#21991) --- keyboards/bastardkb/charybdis/3x5/blackpill/info.json | 3 +++ keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk | 1 - keyboards/bastardkb/charybdis/3x6/blackpill/info.json | 3 +++ keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk | 1 - keyboards/bastardkb/charybdis/4x6/blackpill/info.json | 3 +++ keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk | 1 - keyboards/bastardkb/scylla/blackpill/info.json | 3 +++ keyboards/bastardkb/scylla/blackpill/rules.mk | 1 - keyboards/bastardkb/skeletyl/blackpill/info.json | 3 +++ keyboards/bastardkb/skeletyl/blackpill/rules.mk | 1 - keyboards/bastardkb/tbkmini/blackpill/info.json | 3 +++ keyboards/bastardkb/tbkmini/blackpill/rules.mk | 1 - keyboards/custommk/ergostrafer/info.json | 3 +++ keyboards/custommk/ergostrafer/rules.mk | 2 -- keyboards/custommk/evo70_r2/info.json | 3 +++ keyboards/custommk/evo70_r2/rules.mk | 2 -- keyboards/handwired/tractyl_manuform/5x6_right/f303/info.json | 3 +++ keyboards/handwired/tractyl_manuform/5x6_right/f303/rules.mk | 1 - keyboards/handwired/tractyl_manuform/5x6_right/f411/info.json | 3 +++ keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk | 1 - keyboards/tzarc/djinn/info.json | 3 +++ keyboards/tzarc/djinn/rules.mk | 2 -- keyboards/tzarc/ghoul/info.json | 3 +++ keyboards/tzarc/ghoul/rules.mk | 1 - 24 files changed, 36 insertions(+), 15 deletions(-) diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/info.json b/keyboards/bastardkb/charybdis/3x5/blackpill/info.json index 89e181b8f9..a20b2ce636 100644 --- a/keyboards/bastardkb/charybdis/3x5/blackpill/info.json +++ b/keyboards/bastardkb/charybdis/3x5/blackpill/info.json @@ -3,6 +3,9 @@ "usb": { "device_version": "1.0.0" }, + "eeprom": { + "driver": "spi" + }, "rgb_matrix": { "driver": "ws2812" }, diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk b/keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk index 9cc216bb71..4bd570ddd8 100644 --- a/keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk +++ b/keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk @@ -23,5 +23,4 @@ POINTING_DEVICE_DRIVER = pmw3360 MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint KEYBOARD_SHARED_EP = yes -EEPROM_DRIVER = spi SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/info.json b/keyboards/bastardkb/charybdis/3x6/blackpill/info.json index 5ac7a1cdca..bda53275f8 100644 --- a/keyboards/bastardkb/charybdis/3x6/blackpill/info.json +++ b/keyboards/bastardkb/charybdis/3x6/blackpill/info.json @@ -3,6 +3,9 @@ "usb": { "device_version": "1.0.0" }, + "eeprom": { + "driver": "spi" + }, "rgb_matrix": { "driver": "ws2812" }, diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk b/keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk index 9cc216bb71..4bd570ddd8 100644 --- a/keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk +++ b/keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk @@ -23,5 +23,4 @@ POINTING_DEVICE_DRIVER = pmw3360 MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint KEYBOARD_SHARED_EP = yes -EEPROM_DRIVER = spi SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/info.json b/keyboards/bastardkb/charybdis/4x6/blackpill/info.json index b9fb103496..b4040e84a5 100644 --- a/keyboards/bastardkb/charybdis/4x6/blackpill/info.json +++ b/keyboards/bastardkb/charybdis/4x6/blackpill/info.json @@ -3,6 +3,9 @@ "usb": { "device_version": "1.0.0" }, + "eeprom": { + "driver": "spi" + }, "rgb_matrix": { "driver": "ws2812" }, diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk b/keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk index 1cfe4724b4..f8de9a3fb1 100644 --- a/keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk +++ b/keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk @@ -23,5 +23,4 @@ POINTING_DEVICE_DRIVER = pmw3360 MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint KEYBOARD_SHARED_EP = yes -EEPROM_DRIVER = spi SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/scylla/blackpill/info.json b/keyboards/bastardkb/scylla/blackpill/info.json index 24fb8bc701..8d7cb4c823 100644 --- a/keyboards/bastardkb/scylla/blackpill/info.json +++ b/keyboards/bastardkb/scylla/blackpill/info.json @@ -3,6 +3,9 @@ "usb": { "device_version": "1.0.0" }, + "eeprom": { + "driver": "spi" + }, "rgb_matrix": { "driver": "ws2812" }, diff --git a/keyboards/bastardkb/scylla/blackpill/rules.mk b/keyboards/bastardkb/scylla/blackpill/rules.mk index 8c0e9b5891..b5612ce38a 100644 --- a/keyboards/bastardkb/scylla/blackpill/rules.mk +++ b/keyboards/bastardkb/scylla/blackpill/rules.mk @@ -21,5 +21,4 @@ SPLIT_KEYBOARD = yes MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint KEYBOARD_SHARED_EP = yes -EEPROM_DRIVER = spi SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/skeletyl/blackpill/info.json b/keyboards/bastardkb/skeletyl/blackpill/info.json index 1d25639281..c0f0d6a3b1 100644 --- a/keyboards/bastardkb/skeletyl/blackpill/info.json +++ b/keyboards/bastardkb/skeletyl/blackpill/info.json @@ -3,6 +3,9 @@ "usb": { "device_version": "1.0.0" }, + "eeprom": { + "driver": "spi" + }, "rgb_matrix": { "driver": "ws2812" }, diff --git a/keyboards/bastardkb/skeletyl/blackpill/rules.mk b/keyboards/bastardkb/skeletyl/blackpill/rules.mk index 8c0e9b5891..b5612ce38a 100644 --- a/keyboards/bastardkb/skeletyl/blackpill/rules.mk +++ b/keyboards/bastardkb/skeletyl/blackpill/rules.mk @@ -21,5 +21,4 @@ SPLIT_KEYBOARD = yes MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint KEYBOARD_SHARED_EP = yes -EEPROM_DRIVER = spi SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/tbkmini/blackpill/info.json b/keyboards/bastardkb/tbkmini/blackpill/info.json index dcdce8f63b..c410460857 100644 --- a/keyboards/bastardkb/tbkmini/blackpill/info.json +++ b/keyboards/bastardkb/tbkmini/blackpill/info.json @@ -3,6 +3,9 @@ "usb": { "device_version": "1.0.0" }, + "eeprom": { + "driver": "spi" + }, "rgb_matrix": { "driver": "ws2812" }, diff --git a/keyboards/bastardkb/tbkmini/blackpill/rules.mk b/keyboards/bastardkb/tbkmini/blackpill/rules.mk index 8c0e9b5891..b5612ce38a 100644 --- a/keyboards/bastardkb/tbkmini/blackpill/rules.mk +++ b/keyboards/bastardkb/tbkmini/blackpill/rules.mk @@ -21,5 +21,4 @@ SPLIT_KEYBOARD = yes MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint KEYBOARD_SHARED_EP = yes -EEPROM_DRIVER = spi SERIAL_DRIVER = usart diff --git a/keyboards/custommk/ergostrafer/info.json b/keyboards/custommk/ergostrafer/info.json index 590925065e..92d1fe99e8 100644 --- a/keyboards/custommk/ergostrafer/info.json +++ b/keyboards/custommk/ergostrafer/info.json @@ -4,6 +4,9 @@ "maintainer": "customMK", "bootloader": "stm32-dfu", "diode_direction": "ROW2COL", + "eeprom": { + "driver": "spi" + }, "features": { "bootmagic": true, "command": false, diff --git a/keyboards/custommk/ergostrafer/rules.mk b/keyboards/custommk/ergostrafer/rules.mk index ee519ea8b5..72f75f4367 100644 --- a/keyboards/custommk/ergostrafer/rules.mk +++ b/keyboards/custommk/ergostrafer/rules.mk @@ -1,3 +1 @@ -EEPROM_DRIVER = spi - AUDIO_DRIVER = pwm_hardware diff --git a/keyboards/custommk/evo70_r2/info.json b/keyboards/custommk/evo70_r2/info.json index 18c618abc6..a11daef092 100644 --- a/keyboards/custommk/evo70_r2/info.json +++ b/keyboards/custommk/evo70_r2/info.json @@ -24,6 +24,9 @@ "device_version": "1.0.0" }, "diode_direction": "ROW2COL", + "eeprom": { + "driver": "spi" + }, "processor": "STM32F411", "bootloader": "stm32-dfu", "rgblight": { diff --git a/keyboards/custommk/evo70_r2/rules.mk b/keyboards/custommk/evo70_r2/rules.mk index b79d08c6b7..193fe4f1a4 100644 --- a/keyboards/custommk/evo70_r2/rules.mk +++ b/keyboards/custommk/evo70_r2/rules.mk @@ -3,8 +3,6 @@ AUDIO_DRIVER = pwm_hardware # project specific files SRC += matrix.c -EEPROM_DRIVER = spi - QUANTUM_PAINTER_DRIVERS = st7735_spi CUSTOM_MATRIX = lite diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f303/info.json b/keyboards/handwired/tractyl_manuform/5x6_right/f303/info.json index 62fa261ac7..eafb77fce2 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f303/info.json +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f303/info.json @@ -5,6 +5,9 @@ "rows": ["B10", "B11", "B12", "A14", "A13", "A15"] }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "spi" + }, "rgblight": { "led_count": 20, "split_count": [10, 10] diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f303/rules.mk b/keyboards/handwired/tractyl_manuform/5x6_right/f303/rules.mk index 3959814c8d..ab601e31f9 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f303/rules.mk +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f303/rules.mk @@ -1,6 +1,5 @@ # KEYBOARD_SHARED_EP = yes CONSOLE_ENABLE = yes -EEPROM_DRIVER = spi SERIAL_DRIVER = usart AUDIO_DRIVER = dac_additive diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/info.json b/keyboards/handwired/tractyl_manuform/5x6_right/f411/info.json index 3f0c316928..e5a6dc6c7a 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/info.json +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/info.json @@ -5,6 +5,9 @@ "rows": ["B12", "B13", "B14", "B15", "A8", "A10"] }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "spi" + }, "rgblight": { "led_count": 57, "split_count": [26, 31] diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk b/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk index b466a6234a..0c4b05ee7e 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk @@ -2,6 +2,5 @@ KEYBOARD_SHARED_EP = yes CONSOLE_ENABLE = yes MOUSE_SHARED_EP = yes -EEPROM_DRIVER = spi SERIAL_DRIVER = usart AUDIO_DRIVER = pwm_hardware diff --git a/keyboards/tzarc/djinn/info.json b/keyboards/tzarc/djinn/info.json index f0904b8578..8f47f35027 100644 --- a/keyboards/tzarc/djinn/info.json +++ b/keyboards/tzarc/djinn/info.json @@ -9,6 +9,9 @@ "build": { "lto": true }, + "eeprom": { + "driver": "spi" + }, "features": { "audio": true, "backlight": true, diff --git a/keyboards/tzarc/djinn/rules.mk b/keyboards/tzarc/djinn/rules.mk index e7c32e4dc1..5a4589a86f 100644 --- a/keyboards/tzarc/djinn/rules.mk +++ b/keyboards/tzarc/djinn/rules.mk @@ -4,8 +4,6 @@ SERIAL_DRIVER = usart CIE1931_CURVE = yes -EEPROM_DRIVER = spi - AUDIO_DRIVER = pwm_software QUANTUM_PAINTER_DRIVERS = ili9341_spi diff --git a/keyboards/tzarc/ghoul/info.json b/keyboards/tzarc/ghoul/info.json index bf07f122c3..26824ca4da 100644 --- a/keyboards/tzarc/ghoul/info.json +++ b/keyboards/tzarc/ghoul/info.json @@ -5,6 +5,9 @@ "build": { "lto": true }, + "eeprom": { + "driver": "spi" + }, "features": { "bootmagic": true, "console": true, diff --git a/keyboards/tzarc/ghoul/rules.mk b/keyboards/tzarc/ghoul/rules.mk index 9590c52217..5efa406e26 100644 --- a/keyboards/tzarc/ghoul/rules.mk +++ b/keyboards/tzarc/ghoul/rules.mk @@ -1,5 +1,4 @@ CUSTOM_MATRIX = lite -EEPROM_DRIVER = spi QUANTUM_PAINTER_DRIVERS = ssd1351_spi DEFAULT_FOLDER = tzarc/ghoul/rev1/stm32 From 35aceab1a48076a0c508c663781de30717518fcb Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 13 Sep 2023 22:47:01 +1000 Subject: [PATCH 033/496] ckled2001: driver naming cleanups (#21890) --- drivers/led/ckled2001-simple.c | 89 +++++----- drivers/led/ckled2001-simple.h | 154 +++++++++++------- drivers/led/ckled2001.c | 89 +++++----- drivers/led/ckled2001.h | 154 +++++++++++------- keyboards/keychron/c1_pro/ansi/rgb/config.h | 5 +- keyboards/keychron/c1_pro/ansi/white/config.h | 5 +- keyboards/keychron/c2_pro/ansi/rgb/config.h | 2 +- keyboards/keychron/c2_pro/ansi/white/config.h | 2 +- keyboards/keychron/q0/rev_0130/config.h | 2 +- keyboards/keychron/q0/rev_0131/config.h | 5 +- keyboards/keychron/q10/config.h | 5 +- keyboards/keychron/q11/config.h | 2 +- keyboards/keychron/q12/config.h | 2 +- keyboards/keychron/q2/config.h | 5 +- keyboards/keychron/q3/config.h | 5 +- keyboards/keychron/q4/ansi_v1/config.h | 5 +- keyboards/keychron/q4/ansi_v2/config.h | 2 +- keyboards/keychron/q4/iso/config.h | 2 +- keyboards/keychron/q5/config.h | 2 +- keyboards/keychron/q6/config.h | 2 +- keyboards/keychron/q60/config.h | 2 +- keyboards/keychron/q65/config.h | 5 +- keyboards/keychron/q7/config.h | 5 +- keyboards/keychron/q8/config.h | 5 +- keyboards/keychron/q9/config.h | 2 +- keyboards/keychron/s1/ansi/rgb/config.h | 5 +- keyboards/keychron/s1/ansi/white/config.h | 5 +- keyboards/keychron/v1/config.h | 5 +- keyboards/keychron/v1/jis/config.h | 5 - keyboards/keychron/v10/config.h | 5 +- keyboards/keychron/v2/config.h | 5 +- keyboards/keychron/v3/config.h | 5 +- keyboards/keychron/v4/config.h | 2 +- keyboards/keychron/v5/config.h | 2 +- keyboards/keychron/v6/config.h | 2 +- keyboards/keychron/v7/config.h | 5 +- keyboards/keychron/v8/config.h | 5 +- 37 files changed, 320 insertions(+), 289 deletions(-) diff --git a/drivers/led/ckled2001-simple.c b/drivers/led/ckled2001-simple.c index c4d4c0a4cc..936b915af8 100644 --- a/drivers/led/ckled2001-simple.c +++ b/drivers/led/ckled2001-simple.c @@ -16,18 +16,17 @@ #include "ckled2001-simple.h" #include "i2c_master.h" -#include "wait.h" -#ifndef CKLED2001_TIMEOUT -# define CKLED2001_TIMEOUT 100 +#ifndef CKLED2001_I2C_TIMEOUT +# define CKLED2001_I2C_TIMEOUT 100 #endif -#ifndef CKLED2001_PERSISTENCE -# define CKLED2001_PERSISTENCE 0 +#ifndef CKLED2001_I2C_PERSISTENCE +# define CKLED2001_I2C_PERSISTENCE 0 #endif -#ifndef PHASE_CHANNEL -# define PHASE_CHANNEL MSKPHASE_12CHANNEL +#ifndef CKLED2001_PHASE_CHANNEL +# define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_12CHANNEL #endif #ifndef CKLED2001_CURRENT_TUNE @@ -44,25 +43,25 @@ uint8_t g_twi_transfer_buffer[20]; // We could optimize this and take out the unused registers from these // buffers and the transfers in ckled2001_write_pwm_buffer() but it's // probably not worth the extra complexity. -uint8_t g_pwm_buffer[DRIVER_COUNT][192]; -bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false}; +uint8_t g_pwm_buffer[CKLED2001_DRIVER_COUNT][192]; +bool g_pwm_buffer_update_required[CKLED2001_DRIVER_COUNT] = {false}; -uint8_t g_led_control_registers[DRIVER_COUNT][24] = {0}; -bool g_led_control_registers_update_required[DRIVER_COUNT] = {false}; +uint8_t g_led_control_registers[CKLED2001_DRIVER_COUNT][24] = {0}; +bool g_led_control_registers_update_required[CKLED2001_DRIVER_COUNT] = {false}; bool ckled2001_write_register(uint8_t addr, uint8_t reg, uint8_t data) { // If the transaction fails function returns false. g_twi_transfer_buffer[0] = reg; g_twi_transfer_buffer[1] = data; -#if CKLED2001_PERSISTENCE > 0 - for (uint8_t i = 0; i < CKLED2001_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, CKLED2001_TIMEOUT) != 0) { +#if CKLED2001_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < CKLED2001_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, CKLED2001_I2C_TIMEOUT) != 0) { return false; } } #else - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, CKLED2001_TIMEOUT) != 0) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, CKLED2001_I2C_TIMEOUT) != 0) { return false; } #endif @@ -85,14 +84,14 @@ bool ckled2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j]; } -#if CKLED2001_PERSISTENCE > 0 - for (uint8_t i = 0; i < CKLED2001_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, CKLED2001_TIMEOUT) != 0) { +#if CKLED2001_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < CKLED2001_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, CKLED2001_I2C_TIMEOUT) != 0) { return false; } } #else - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, CKLED2001_TIMEOUT) != 0) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, CKLED2001_I2C_TIMEOUT) != 0) { return false; } #endif @@ -102,48 +101,48 @@ bool ckled2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { void ckled2001_init(uint8_t addr) { // Select to function page - ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE); + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_FUNCTION_PAGE); // Setting LED driver to shutdown mode - ckled2001_write_register(addr, CONFIGURATION_REG, MSKSW_SHUT_DOWN_MODE); + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURATION, CKLED2001_MSKSW_SHUT_DOWN_MODE); // Setting internal channel pulldown/pullup - ckled2001_write_register(addr, PDU_REG, MSKSET_CA_CB_CHANNEL); + ckled2001_write_register(addr, CKLED2001_REG_PDU, CKLED2001_MSKSET_CA_CB_CHANNEL); // Select number of scan phase - ckled2001_write_register(addr, SCAN_PHASE_REG, PHASE_CHANNEL); + ckled2001_write_register(addr, CKLED2001_REG_SCAN_PHASE, CKLED2001_PHASE_CHANNEL); // Setting PWM Delay Phase - ckled2001_write_register(addr, SLEW_RATE_CONTROL_MODE1_REG, MSKPWM_DELAY_PHASE_ENABLE); + ckled2001_write_register(addr, CKLED2001_REG_SLEW_RATE_CONTROL_MODE1, CKLED2001_MSKPWM_DELAY_PHASE_ENABLE); // Setting Driving/Sinking Channel Slew Rate - ckled2001_write_register(addr, SLEW_RATE_CONTROL_MODE2_REG, MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_ENABLE); + ckled2001_write_register(addr, CKLED2001_REG_SLEW_RATE_CONTROL_MODE2, CKLED2001_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_ENABLE); // Setting Iref - ckled2001_write_register(addr, SOFTWARE_SLEEP_REG, MSKSLEEP_DISABLE); + ckled2001_write_register(addr, CKLED2001_REG_SOFTWARE_SLEEP, CKLED2001_MSKSLEEP_DISABLE); // Set LED CONTROL PAGE (Page 0) - ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE); - for (int i = 0; i < LED_CONTROL_ON_OFF_LENGTH; i++) { + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_CONTROL_PAGE); + for (int i = 0; i < CKLED2001_LED_CONTROL_ON_OFF_LENGTH; i++) { ckled2001_write_register(addr, i, 0x00); } // Set PWM PAGE (Page 1) - ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_PWM_PAGE); - for (int i = 0; i < LED_CURRENT_TUNE_LENGTH; i++) { + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_PWM_PAGE); + for (int i = 0; i < CKLED2001_LED_CURRENT_TUNE_LENGTH; i++) { ckled2001_write_register(addr, i, 0x00); } // Set CURRENT PAGE (Page 4) - uint8_t current_tuen_reg_list[LED_CURRENT_TUNE_LENGTH] = CKLED2001_CURRENT_TUNE; - ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, CURRENT_TUNE_PAGE); - for (int i = 0; i < LED_CURRENT_TUNE_LENGTH; i++) { - ckled2001_write_register(addr, i, current_tuen_reg_list[i]); + uint8_t current_tune_reg_list[CKLED2001_LED_CURRENT_TUNE_LENGTH] = CKLED2001_CURRENT_TUNE; + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_CURRENT_TUNE_PAGE); + for (int i = 0; i < CKLED2001_LED_CURRENT_TUNE_LENGTH; i++) { + ckled2001_write_register(addr, i, current_tune_reg_list[i]); } // Enable LEDs ON/OFF - ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE); - for (int i = 0; i < LED_CONTROL_ON_OFF_LENGTH; i++) { + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_CONTROL_PAGE); + for (int i = 0; i < CKLED2001_LED_CONTROL_ON_OFF_LENGTH; i++) { ckled2001_write_register(addr, i, 0xFF); } // Select to function page - ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE); + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_FUNCTION_PAGE); // Setting LED driver to normal mode - ckled2001_write_register(addr, CONFIGURATION_REG, MSKSW_NORMAL_MODE); + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURATION, CKLED2001_MSKSW_NORMAL_MODE); } void ckled2001_set_value(int index, uint8_t value) { @@ -183,7 +182,7 @@ void ckled2001_set_led_control_register(uint8_t index, bool value) { void ckled2001_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { - ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_PWM_PAGE); + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_PWM_PAGE); // If any of the transactions fail we risk writing dirty PG0, // refresh page 0 just in case. @@ -196,7 +195,7 @@ void ckled2001_update_pwm_buffers(uint8_t addr, uint8_t index) { void ckled2001_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { - ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE); + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_CONTROL_PAGE); for (int i = 0; i < 24; i++) { ckled2001_write_register(addr, i, g_led_control_registers[index][i]); } @@ -206,16 +205,16 @@ void ckled2001_update_led_control_registers(uint8_t addr, uint8_t index) { void ckled2001_sw_return_normal(uint8_t addr) { // Select to function page - ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE); + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_FUNCTION_PAGE); // Setting LED driver to normal mode - ckled2001_write_register(addr, CONFIGURATION_REG, MSKSW_NORMAL_MODE); + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURATION, CKLED2001_MSKSW_NORMAL_MODE); } void ckled2001_sw_shutdown(uint8_t addr) { // Select to function page - ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE); + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_FUNCTION_PAGE); // Setting LED driver to shutdown mode - ckled2001_write_register(addr, CONFIGURATION_REG, MSKSW_SHUT_DOWN_MODE); + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURATION, CKLED2001_MSKSW_SHUT_DOWN_MODE); // Write SW Sleep Register - ckled2001_write_register(addr, SOFTWARE_SLEEP_REG, MSKSLEEP_ENABLE); + ckled2001_write_register(addr, CKLED2001_REG_SOFTWARE_SLEEP, CKLED2001_MSKSLEEP_ENABLE); } diff --git a/drivers/led/ckled2001-simple.h b/drivers/led/ckled2001-simple.h index c94df62dd2..d1765b912b 100644 --- a/drivers/led/ckled2001-simple.h +++ b/drivers/led/ckled2001-simple.h @@ -20,6 +20,34 @@ #include #include "progmem.h" +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_COUNT +# define CKLED2001_DRIVER_COUNT DRIVER_COUNT +#endif +#ifdef CKLED2001_TIMEOUT +# define CKLED2001_I2C_TIMEOUT CKLED2001_TIMEOUT +#endif +#ifdef CKLED2001_PERSISTENCE +# define CKLED2001_I2C_PERSISTENCE CKLED2001_PERSISTENCE +#endif +#ifdef PHASE_CHANNEL +# define CKLED2001_PHASE_CHANNEL PHASE_CHANNEL +#endif + +#define MSKPHASE_12CHANNEL CKLED2001_MSKPHASE_12CHANNEL +#define MSKPHASE_11CHANNEL CKLED2001_MSKPHASE_11CHANNEL +#define MSKPHASE_10CHANNEL CKLED2001_MSKPHASE_10CHANNEL +#define MSKPHASE_9CHANNEL CKLED2001_MSKPHASE_9CHANNEL +#define MSKPHASE_8CHANNEL CKLED2001_MSKPHASE_8CHANNEL +#define MSKPHASE_7CHANNEL CKLED2001_MSKPHASE_7CHANNEL +#define MSKPHASE_6CHANNEL CKLED2001_MSKPHASE_6CHANNEL +#define MSKPHASE_5CHANNEL CKLED2001_MSKPHASE_5CHANNEL +#define MSKPHASE_4CHANNEL CKLED2001_MSKPHASE_4CHANNEL +#define MSKPHASE_3CHANNEL CKLED2001_MSKPHASE_3CHANNEL +#define MSKPHASE_2CHANNEL CKLED2001_MSKPHASE_2CHANNEL +#define MSKPHASE_1CHANNEL CKLED2001_MSKPHASE_1CHANNEL +// ======== + typedef struct ckled2001_led { uint8_t driver : 2; uint8_t v; @@ -47,90 +75,90 @@ void ckled2001_sw_return_normal(uint8_t addr); void ckled2001_sw_shutdown(uint8_t addr); // Registers Page Define -#define CONFIGURE_CMD_PAGE 0xFD -#define LED_CONTROL_PAGE 0x00 -#define LED_PWM_PAGE 0x01 -#define FUNCTION_PAGE 0x03 -#define CURRENT_TUNE_PAGE 0x04 +#define CKLED2001_REG_CONFIGURE_CMD_PAGE 0xFD +#define CKLED2001_LED_CONTROL_PAGE 0x00 +#define CKLED2001_LED_PWM_PAGE 0x01 +#define CKLED2001_FUNCTION_PAGE 0x03 +#define CKLED2001_CURRENT_TUNE_PAGE 0x04 // Function Register: address 0x00 -#define CONFIGURATION_REG 0x00 -#define MSKSW_SHUT_DOWN_MODE (0x0 << 0) -#define MSKSW_NORMAL_MODE (0x1 << 0) +#define CKLED2001_REG_CONFIGURATION 0x00 +#define CKLED2001_MSKSW_SHUT_DOWN_MODE (0x0 << 0) +#define CKLED2001_MSKSW_NORMAL_MODE (0x1 << 0) -#define DRIVER_ID_REG 0x11 -#define CKLED2001_ID 0x8A +#define CKLED2001_REG_DRIVER_ID 0x11 +#define CKLED2001_DRIVER_ID 0x8A -#define PDU_REG 0x13 -#define MSKSET_CA_CB_CHANNEL 0xAA -#define MSKCLR_CA_CB_CHANNEL 0x00 +#define CKLED2001_REG_PDU 0x13 +#define CKLED2001_MSKSET_CA_CB_CHANNEL 0xAA +#define CKLED2001_MSKCLR_CA_CB_CHANNEL 0x00 -#define SCAN_PHASE_REG 0x14 -#define MSKPHASE_12CHANNEL 0x00 -#define MSKPHASE_11CHANNEL 0x01 -#define MSKPHASE_10CHANNEL 0x02 -#define MSKPHASE_9CHANNEL 0x03 -#define MSKPHASE_8CHANNEL 0x04 -#define MSKPHASE_7CHANNEL 0x05 -#define MSKPHASE_6CHANNEL 0x06 -#define MSKPHASE_5CHANNEL 0x07 -#define MSKPHASE_4CHANNEL 0x08 -#define MSKPHASE_3CHANNEL 0x09 -#define MSKPHASE_2CHANNEL 0x0A -#define MSKPHASE_1CHANNEL 0x0B +#define CKLED2001_REG_SCAN_PHASE 0x14 +#define CKLED2001_MSKPHASE_12CHANNEL 0x00 +#define CKLED2001_MSKPHASE_11CHANNEL 0x01 +#define CKLED2001_MSKPHASE_10CHANNEL 0x02 +#define CKLED2001_MSKPHASE_9CHANNEL 0x03 +#define CKLED2001_MSKPHASE_8CHANNEL 0x04 +#define CKLED2001_MSKPHASE_7CHANNEL 0x05 +#define CKLED2001_MSKPHASE_6CHANNEL 0x06 +#define CKLED2001_MSKPHASE_5CHANNEL 0x07 +#define CKLED2001_MSKPHASE_4CHANNEL 0x08 +#define CKLED2001_MSKPHASE_3CHANNEL 0x09 +#define CKLED2001_MSKPHASE_2CHANNEL 0x0A +#define CKLED2001_MSKPHASE_1CHANNEL 0x0B -#define SLEW_RATE_CONTROL_MODE1_REG 0x15 -#define MSKPWM_DELAY_PHASE_ENABLE 0x04 -#define MSKPWM_DELAY_PHASE_DISABLE 0x00 +#define CKLED2001_REG_SLEW_RATE_CONTROL_MODE1 0x15 +#define CKLED2001_MSKPWM_DELAY_PHASE_ENABLE 0x04 +#define CKLED2001_MSKPWM_DELAY_PHASE_DISABLE 0x00 -#define SLEW_RATE_CONTROL_MODE2_REG 0x16 -#define MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_ENABLE 0xC0 -#define MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_DISABLE 0x00 +#define CKLED2001_REG_SLEW_RATE_CONTROL_MODE2 0x16 +#define CKLED2001_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_ENABLE 0xC0 +#define CKLED2001_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_DISABLE 0x00 -#define OPEN_SHORT_ENABLE_REG 0x17 -#define MSKOPEN_DETECTION_ENABLE (0x01 << 7) -#define MSKOPEN_DETECTION_DISABLE (0x00) +#define CKLED2001_REG_OPEN_SHORT_ENABLE 0x17 +#define CKLED2001_MSKOPEN_DETECTION_ENABLE (0x01 << 7) +#define CKLED2001_MSKOPEN_DETECTION_DISABLE (0x00) -#define MSKSHORT_DETECTION_ENABLE (0x01 << 6) -#define MSKSHORT_DETECTION_DISABLE (0x00) +#define CKLED2001_MSKSHORT_DETECTION_ENABLE (0x01 << 6) +#define CKLED2001_MSKSHORT_DETECTION_DISABLE (0x00) -#define OPEN_SHORT_DUTY_REG 0x18 -#define OPEN_SHORT_FLAG_REG 0x19 +#define CKLED2001_REG_OPEN_SHORT_DUTY 0x18 +#define CKLED2001_REG_OPEN_SHORT_FLAG 0x19 -#define MSKOPEN_DETECTION_INTERRUPT_ENABLE (0x01 << 7) -#define MSKOPEN_DETECTION_INTERRUPT_DISABLE (0x00) +#define CKLED2001_MSKOPEN_DETECTION_INTERRUPT_ENABLE (0x01 << 7) +#define CKLED2001_MSKOPEN_DETECTION_INTERRUPT_DISABLE (0x00) -#define MSKSHORT_DETECTION_INTERRUPT_ENABLE (0x01 << 6) -#define MSKSHORT_DETECTION_INTERRUPT_DISABLE (0x00) +#define CKLED2001_MSKSHORT_DETECTION_INTERRUPT_ENABLE (0x01 << 6) +#define CKLED2001_MSKSHORT_DETECTION_INTERRUPT_DISABLE (0x00) -#define SOFTWARE_SLEEP_REG 0x1A -#define MSKSLEEP_ENABLE 0x02 -#define MSKSLEEP_DISABLE 0x00 +#define CKLED2001_REG_SOFTWARE_SLEEP 0x1A +#define CKLED2001_MSKSLEEP_ENABLE 0x02 +#define CKLED2001_MSKSLEEP_DISABLE 0x00 // LED Control Registers -#define LED_CONTROL_ON_OFF_FIRST_ADDR 0x0 -#define LED_CONTROL_ON_OFF_LAST_ADDR 0x17 -#define LED_CONTROL_ON_OFF_LENGTH ((LED_CONTROL_ON_OFF_LAST_ADDR - LED_CONTROL_ON_OFF_FIRST_ADDR) + 1) +#define CKLED2001_LED_CONTROL_ON_OFF_FIRST_ADDR 0x0 +#define CKLED2001_LED_CONTROL_ON_OFF_LAST_ADDR 0x17 +#define CKLED2001_LED_CONTROL_ON_OFF_LENGTH ((CKLED2001_LED_CONTROL_ON_OFF_LAST_ADDR - CKLED2001_LED_CONTROL_ON_OFF_FIRST_ADDR) + 1) -#define LED_CONTROL_OPEN_FIRST_ADDR 0x18 -#define LED_CONTROL_OPEN_LAST_ADDR 0x2F -#define LED_CONTROL_OPEN_LENGTH ((LED_CONTROL_OPEN_LAST_ADDR - LED_CONTROL_OPEN_FIRST_ADDR) + 1) +#define CKLED2001_LED_CONTROL_OPEN_FIRST_ADDR 0x18 +#define CKLED2001_LED_CONTROL_OPEN_LAST_ADDR 0x2F +#define CKLED2001_LED_CONTROL_OPEN_LENGTH ((CKLED2001_LED_CONTROL_OPEN_LAST_ADDR - CKLED2001_LED_CONTROL_OPEN_FIRST_ADDR) + 1) -#define LED_CONTROL_SHORT_FIRST_ADDR 0x30 -#define LED_CONTROL_SHORT_LAST_ADDR 0x47 -#define LED_CONTROL_SHORT_LENGTH ((LED_CONTROL_SHORT_LAST_ADDR - LED_CONTROL_SHORT_FIRST_ADDR) + 1) +#define CKLED2001_LED_CONTROL_SHORT_FIRST_ADDR 0x30 +#define CKLED2001_LED_CONTROL_SHORT_LAST_ADDR 0x47 +#define CKLED2001_LED_CONTROL_SHORT_LENGTH ((CKLED2001_LED_CONTROL_SHORT_LAST_ADDR - CKLED2001_LED_CONTROL_SHORT_FIRST_ADDR) + 1) -#define LED_CONTROL_PAGE_LENGTH 0x48 +#define CKLED2001_LED_CONTROL_PAGE_LENGTH 0x48 // LED Control Registers -#define LED_PWM_FIRST_ADDR 0x00 -#define LED_PWM_LAST_ADDR 0xBF -#define LED_PWM_LENGTH 0xC0 +#define CKLED2001_LED_PWM_FIRST_ADDR 0x00 +#define CKLED2001_LED_PWM_LAST_ADDR 0xBF +#define CKLED2001_LED_PWM_LENGTH 0xC0 // Current Tune Registers -#define LED_CURRENT_TUNE_FIRST_ADDR 0x00 -#define LED_CURRENT_TUNE_LAST_ADDR 0x0B -#define LED_CURRENT_TUNE_LENGTH 0x0C +#define CKLED2001_LED_CURRENT_TUNE_FIRST_ADDR 0x00 +#define CKLED2001_LED_CURRENT_TUNE_LAST_ADDR 0x0B +#define CKLED2001_LED_CURRENT_TUNE_LENGTH 0x0C #define A_1 0x00 #define A_2 0x01 @@ -334,4 +362,4 @@ void ckled2001_sw_shutdown(uint8_t addr); #define L_13 0xBC #define L_14 0xBD #define L_15 0xBE -#define L_16 0xBF \ No newline at end of file +#define L_16 0xBF diff --git a/drivers/led/ckled2001.c b/drivers/led/ckled2001.c index 6ababf55e9..8340aae823 100644 --- a/drivers/led/ckled2001.c +++ b/drivers/led/ckled2001.c @@ -16,18 +16,17 @@ #include "ckled2001.h" #include "i2c_master.h" -#include "wait.h" -#ifndef CKLED2001_TIMEOUT -# define CKLED2001_TIMEOUT 100 +#ifndef CKLED2001_I2C_TIMEOUT +# define CKLED2001_I2C_TIMEOUT 100 #endif -#ifndef CKLED2001_PERSISTENCE -# define CKLED2001_PERSISTENCE 0 +#ifndef CKLED2001_I2C_PERSISTENCE +# define CKLED2001_I2C_PERSISTENCE 0 #endif -#ifndef PHASE_CHANNEL -# define PHASE_CHANNEL MSKPHASE_12CHANNEL +#ifndef CKLED2001_PHASE_CHANNEL +# define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_12CHANNEL #endif #ifndef CKLED2001_CURRENT_TUNE @@ -44,25 +43,25 @@ uint8_t g_twi_transfer_buffer[65]; // We could optimize this and take out the unused registers from these // buffers and the transfers in ckled2001_write_pwm_buffer() but it's // probably not worth the extra complexity. -uint8_t g_pwm_buffer[DRIVER_COUNT][192]; -bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false}; +uint8_t g_pwm_buffer[CKLED2001_DRIVER_COUNT][192]; +bool g_pwm_buffer_update_required[CKLED2001_DRIVER_COUNT] = {false}; -uint8_t g_led_control_registers[DRIVER_COUNT][24] = {0}; -bool g_led_control_registers_update_required[DRIVER_COUNT] = {false}; +uint8_t g_led_control_registers[CKLED2001_DRIVER_COUNT][24] = {0}; +bool g_led_control_registers_update_required[CKLED2001_DRIVER_COUNT] = {false}; bool ckled2001_write_register(uint8_t addr, uint8_t reg, uint8_t data) { // If the transaction fails function returns false. g_twi_transfer_buffer[0] = reg; g_twi_transfer_buffer[1] = data; -#if CKLED2001_PERSISTENCE > 0 - for (uint8_t i = 0; i < CKLED2001_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, CKLED2001_TIMEOUT) != 0) { +#if CKLED2001_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < CKLED2001_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, CKLED2001_I2C_TIMEOUT) != 0) { return false; } } #else - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, CKLED2001_TIMEOUT) != 0) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, CKLED2001_I2C_TIMEOUT) != 0) { return false; } #endif @@ -84,14 +83,14 @@ bool ckled2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j]; } -#if CKLED2001_PERSISTENCE > 0 - for (uint8_t i = 0; i < CKLED2001_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 65, CKLED2001_TIMEOUT) != 0) { +#if CKLED2001_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < CKLED2001_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 65, CKLED2001_I2C_TIMEOUT) != 0) { return false; } } #else - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 65, CKLED2001_TIMEOUT) != 0) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 65, CKLED2001_I2C_TIMEOUT) != 0) { return false; } #endif @@ -101,48 +100,48 @@ bool ckled2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { void ckled2001_init(uint8_t addr) { // Select to function page - ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE); + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_FUNCTION_PAGE); // Setting LED driver to shutdown mode - ckled2001_write_register(addr, CONFIGURATION_REG, MSKSW_SHUT_DOWN_MODE); + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURATION, CKLED2001_MSKSW_SHUT_DOWN_MODE); // Setting internal channel pulldown/pullup - ckled2001_write_register(addr, PDU_REG, MSKSET_CA_CB_CHANNEL); + ckled2001_write_register(addr, CKLED2001_REG_PDU, CKLED2001_MSKSET_CA_CB_CHANNEL); // Select number of scan phase - ckled2001_write_register(addr, SCAN_PHASE_REG, PHASE_CHANNEL); + ckled2001_write_register(addr, CKLED2001_REG_SCAN_PHASE, CKLED2001_PHASE_CHANNEL); // Setting PWM Delay Phase - ckled2001_write_register(addr, SLEW_RATE_CONTROL_MODE1_REG, MSKPWM_DELAY_PHASE_ENABLE); + ckled2001_write_register(addr, CKLED2001_REG_SLEW_RATE_CONTROL_MODE1, CKLED2001_MSKPWM_DELAY_PHASE_ENABLE); // Setting Driving/Sinking Channel Slew Rate - ckled2001_write_register(addr, SLEW_RATE_CONTROL_MODE2_REG, MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_ENABLE); + ckled2001_write_register(addr, CKLED2001_REG_SLEW_RATE_CONTROL_MODE2, CKLED2001_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_ENABLE); // Setting Iref - ckled2001_write_register(addr, SOFTWARE_SLEEP_REG, MSKSLEEP_DISABLE); + ckled2001_write_register(addr, CKLED2001_REG_SOFTWARE_SLEEP, CKLED2001_MSKSLEEP_DISABLE); // Set LED CONTROL PAGE (Page 0) - ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE); - for (int i = 0; i < LED_CONTROL_ON_OFF_LENGTH; i++) { + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_CONTROL_PAGE); + for (int i = 0; i < CKLED2001_LED_CONTROL_ON_OFF_LENGTH; i++) { ckled2001_write_register(addr, i, 0x00); } // Set PWM PAGE (Page 1) - ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_PWM_PAGE); - for (int i = 0; i < LED_CURRENT_TUNE_LENGTH; i++) { + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_PWM_PAGE); + for (int i = 0; i < CKLED2001_LED_CURRENT_TUNE_LENGTH; i++) { ckled2001_write_register(addr, i, 0x00); } // Set CURRENT PAGE (Page 4) - uint8_t current_tuen_reg_list[LED_CURRENT_TUNE_LENGTH] = CKLED2001_CURRENT_TUNE; - ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, CURRENT_TUNE_PAGE); - for (int i = 0; i < LED_CURRENT_TUNE_LENGTH; i++) { - ckled2001_write_register(addr, i, current_tuen_reg_list[i]); + uint8_t current_tune_reg_list[CKLED2001_LED_CURRENT_TUNE_LENGTH] = CKLED2001_CURRENT_TUNE; + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_CURRENT_TUNE_PAGE); + for (int i = 0; i < CKLED2001_LED_CURRENT_TUNE_LENGTH; i++) { + ckled2001_write_register(addr, i, current_tune_reg_list[i]); } // Enable LEDs ON/OFF - ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE); - for (int i = 0; i < LED_CONTROL_ON_OFF_LENGTH; i++) { + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_CONTROL_PAGE); + for (int i = 0; i < CKLED2001_LED_CONTROL_ON_OFF_LENGTH; i++) { ckled2001_write_register(addr, i, 0xFF); } // Select to function page - ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE); + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_FUNCTION_PAGE); // Setting LED driver to normal mode - ckled2001_write_register(addr, CONFIGURATION_REG, MSKSW_NORMAL_MODE); + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURATION, CKLED2001_MSKSW_NORMAL_MODE); } void ckled2001_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { @@ -198,7 +197,7 @@ void ckled2001_set_led_control_register(uint8_t index, bool red, bool green, boo void ckled2001_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { - ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_PWM_PAGE); + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_PWM_PAGE); // If any of the transactions fail we risk writing dirty PG0, // refresh page 0 just in case. @@ -211,7 +210,7 @@ void ckled2001_update_pwm_buffers(uint8_t addr, uint8_t index) { void ckled2001_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { - ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE); + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_CONTROL_PAGE); for (int i = 0; i < 24; i++) { ckled2001_write_register(addr, i, g_led_control_registers[index][i]); } @@ -221,16 +220,16 @@ void ckled2001_update_led_control_registers(uint8_t addr, uint8_t index) { void ckled2001_sw_return_normal(uint8_t addr) { // Select to function page - ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE); + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_FUNCTION_PAGE); // Setting LED driver to normal mode - ckled2001_write_register(addr, CONFIGURATION_REG, MSKSW_NORMAL_MODE); + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURATION, CKLED2001_MSKSW_NORMAL_MODE); } void ckled2001_sw_shutdown(uint8_t addr) { // Select to function page - ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE); + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_FUNCTION_PAGE); // Setting LED driver to shutdown mode - ckled2001_write_register(addr, CONFIGURATION_REG, MSKSW_SHUT_DOWN_MODE); + ckled2001_write_register(addr, CKLED2001_REG_CONFIGURATION, CKLED2001_MSKSW_SHUT_DOWN_MODE); // Write SW Sleep Register - ckled2001_write_register(addr, SOFTWARE_SLEEP_REG, MSKSLEEP_ENABLE); + ckled2001_write_register(addr, CKLED2001_REG_SOFTWARE_SLEEP, CKLED2001_MSKSLEEP_ENABLE); } diff --git a/drivers/led/ckled2001.h b/drivers/led/ckled2001.h index 32da137fb7..bfd70f7173 100644 --- a/drivers/led/ckled2001.h +++ b/drivers/led/ckled2001.h @@ -20,6 +20,34 @@ #include #include "progmem.h" +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_COUNT +# define CKLED2001_DRIVER_COUNT DRIVER_COUNT +#endif +#ifdef CKLED2001_TIMEOUT +# define CKLED2001_I2C_TIMEOUT CKLED2001_TIMEOUT +#endif +#ifdef CKLED2001_PERSISTENCE +# define CKLED2001_I2C_PERSISTENCE CKLED2001_PERSISTENCE +#endif +#ifdef PHASE_CHANNEL +# define CKLED2001_PHASE_CHANNEL PHASE_CHANNEL +#endif + +#define MSKPHASE_12CHANNEL CKLED2001_MSKPHASE_12CHANNEL +#define MSKPHASE_11CHANNEL CKLED2001_MSKPHASE_11CHANNEL +#define MSKPHASE_10CHANNEL CKLED2001_MSKPHASE_10CHANNEL +#define MSKPHASE_9CHANNEL CKLED2001_MSKPHASE_9CHANNEL +#define MSKPHASE_8CHANNEL CKLED2001_MSKPHASE_8CHANNEL +#define MSKPHASE_7CHANNEL CKLED2001_MSKPHASE_7CHANNEL +#define MSKPHASE_6CHANNEL CKLED2001_MSKPHASE_6CHANNEL +#define MSKPHASE_5CHANNEL CKLED2001_MSKPHASE_5CHANNEL +#define MSKPHASE_4CHANNEL CKLED2001_MSKPHASE_4CHANNEL +#define MSKPHASE_3CHANNEL CKLED2001_MSKPHASE_3CHANNEL +#define MSKPHASE_2CHANNEL CKLED2001_MSKPHASE_2CHANNEL +#define MSKPHASE_1CHANNEL CKLED2001_MSKPHASE_1CHANNEL +// ======== + typedef struct ckled2001_led { uint8_t driver : 2; uint8_t r; @@ -49,90 +77,90 @@ void ckled2001_sw_return_normal(uint8_t addr); void ckled2001_sw_shutdown(uint8_t addr); // Registers Page Define -#define CONFIGURE_CMD_PAGE 0xFD -#define LED_CONTROL_PAGE 0x00 -#define LED_PWM_PAGE 0x01 -#define FUNCTION_PAGE 0x03 -#define CURRENT_TUNE_PAGE 0x04 +#define CKLED2001_REG_CONFIGURE_CMD_PAGE 0xFD +#define CKLED2001_LED_CONTROL_PAGE 0x00 +#define CKLED2001_LED_PWM_PAGE 0x01 +#define CKLED2001_FUNCTION_PAGE 0x03 +#define CKLED2001_CURRENT_TUNE_PAGE 0x04 // Function Register: address 0x00 -#define CONFIGURATION_REG 0x00 -#define MSKSW_SHUT_DOWN_MODE (0x0 << 0) -#define MSKSW_NORMAL_MODE (0x1 << 0) +#define CKLED2001_REG_CONFIGURATION 0x00 +#define CKLED2001_MSKSW_SHUT_DOWN_MODE (0x0 << 0) +#define CKLED2001_MSKSW_NORMAL_MODE (0x1 << 0) -#define DRIVER_ID_REG 0x11 -#define CKLED2001_ID 0x8A +#define CKLED2001_REG_DRIVER_ID 0x11 +#define CKLED2001_DRIVER_ID 0x8A -#define PDU_REG 0x13 -#define MSKSET_CA_CB_CHANNEL 0xAA -#define MSKCLR_CA_CB_CHANNEL 0x00 +#define CKLED2001_REG_PDU 0x13 +#define CKLED2001_MSKSET_CA_CB_CHANNEL 0xAA +#define CKLED2001_MSKCLR_CA_CB_CHANNEL 0x00 -#define SCAN_PHASE_REG 0x14 -#define MSKPHASE_12CHANNEL 0x00 -#define MSKPHASE_11CHANNEL 0x01 -#define MSKPHASE_10CHANNEL 0x02 -#define MSKPHASE_9CHANNEL 0x03 -#define MSKPHASE_8CHANNEL 0x04 -#define MSKPHASE_7CHANNEL 0x05 -#define MSKPHASE_6CHANNEL 0x06 -#define MSKPHASE_5CHANNEL 0x07 -#define MSKPHASE_4CHANNEL 0x08 -#define MSKPHASE_3CHANNEL 0x09 -#define MSKPHASE_2CHANNEL 0x0A -#define MSKPHASE_1CHANNEL 0x0B +#define CKLED2001_REG_SCAN_PHASE 0x14 +#define CKLED2001_MSKPHASE_12CHANNEL 0x00 +#define CKLED2001_MSKPHASE_11CHANNEL 0x01 +#define CKLED2001_MSKPHASE_10CHANNEL 0x02 +#define CKLED2001_MSKPHASE_9CHANNEL 0x03 +#define CKLED2001_MSKPHASE_8CHANNEL 0x04 +#define CKLED2001_MSKPHASE_7CHANNEL 0x05 +#define CKLED2001_MSKPHASE_6CHANNEL 0x06 +#define CKLED2001_MSKPHASE_5CHANNEL 0x07 +#define CKLED2001_MSKPHASE_4CHANNEL 0x08 +#define CKLED2001_MSKPHASE_3CHANNEL 0x09 +#define CKLED2001_MSKPHASE_2CHANNEL 0x0A +#define CKLED2001_MSKPHASE_1CHANNEL 0x0B -#define SLEW_RATE_CONTROL_MODE1_REG 0x15 -#define MSKPWM_DELAY_PHASE_ENABLE 0x04 -#define MSKPWM_DELAY_PHASE_DISABLE 0x00 +#define CKLED2001_REG_SLEW_RATE_CONTROL_MODE1 0x15 +#define CKLED2001_MSKPWM_DELAY_PHASE_ENABLE 0x04 +#define CKLED2001_MSKPWM_DELAY_PHASE_DISABLE 0x00 -#define SLEW_RATE_CONTROL_MODE2_REG 0x16 -#define MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_ENABLE 0xC0 -#define MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_DISABLE 0x00 +#define CKLED2001_REG_SLEW_RATE_CONTROL_MODE2 0x16 +#define CKLED2001_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_ENABLE 0xC0 +#define CKLED2001_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_DISABLE 0x00 -#define OPEN_SHORT_ENABLE_REG 0x17 -#define MSKOPEN_DETECTION_ENABLE (0x01 << 7) -#define MSKOPEN_DETECTION_DISABLE (0x00) +#define CKLED2001_REG_OPEN_SHORT_ENABLE 0x17 +#define CKLED2001_MSKOPEN_DETECTION_ENABLE (0x01 << 7) +#define CKLED2001_MSKOPEN_DETECTION_DISABLE (0x00) -#define MSKSHORT_DETECTION_ENABLE (0x01 << 6) -#define MSKSHORT_DETECTION_DISABLE (0x00) +#define CKLED2001_MSKSHORT_DETECTION_ENABLE (0x01 << 6) +#define CKLED2001_MSKSHORT_DETECTION_DISABLE (0x00) -#define OPEN_SHORT_DUTY_REG 0x18 -#define OPEN_SHORT_FLAG_REG 0x19 +#define CKLED2001_REG_OPEN_SHORT_DUTY 0x18 +#define CKLED2001_REG_OPEN_SHORT_FLAG 0x19 -#define MSKOPEN_DETECTION_INTERRUPT_ENABLE (0x01 << 7) -#define MSKOPEN_DETECTION_INTERRUPT_DISABLE (0x00) +#define CKLED2001_MSKOPEN_DETECTION_INTERRUPT_ENABLE (0x01 << 7) +#define CKLED2001_MSKOPEN_DETECTION_INTERRUPT_DISABLE (0x00) -#define MSKSHORT_DETECTION_INTERRUPT_ENABLE (0x01 << 6) -#define MSKSHORT_DETECTION_INTERRUPT_DISABLE (0x00) +#define CKLED2001_MSKSHORT_DETECTION_INTERRUPT_ENABLE (0x01 << 6) +#define CKLED2001_MSKSHORT_DETECTION_INTERRUPT_DISABLE (0x00) -#define SOFTWARE_SLEEP_REG 0x1A -#define MSKSLEEP_ENABLE 0x02 -#define MSKSLEEP_DISABLE 0x00 +#define CKLED2001_REG_SOFTWARE_SLEEP 0x1A +#define CKLED2001_MSKSLEEP_ENABLE 0x02 +#define CKLED2001_MSKSLEEP_DISABLE 0x00 // LED Control Registers -#define LED_CONTROL_ON_OFF_FIRST_ADDR 0x0 -#define LED_CONTROL_ON_OFF_LAST_ADDR 0x17 -#define LED_CONTROL_ON_OFF_LENGTH ((LED_CONTROL_ON_OFF_LAST_ADDR - LED_CONTROL_ON_OFF_FIRST_ADDR) + 1) +#define CKLED2001_LED_CONTROL_ON_OFF_FIRST_ADDR 0x0 +#define CKLED2001_LED_CONTROL_ON_OFF_LAST_ADDR 0x17 +#define CKLED2001_LED_CONTROL_ON_OFF_LENGTH ((CKLED2001_LED_CONTROL_ON_OFF_LAST_ADDR - CKLED2001_LED_CONTROL_ON_OFF_FIRST_ADDR) + 1) -#define LED_CONTROL_OPEN_FIRST_ADDR 0x18 -#define LED_CONTROL_OPEN_LAST_ADDR 0x2F -#define LED_CONTROL_OPEN_LENGTH ((LED_CONTROL_OPEN_LAST_ADDR - LED_CONTROL_OPEN_FIRST_ADDR) + 1) +#define CKLED2001_LED_CONTROL_OPEN_FIRST_ADDR 0x18 +#define CKLED2001_LED_CONTROL_OPEN_LAST_ADDR 0x2F +#define CKLED2001_LED_CONTROL_OPEN_LENGTH ((CKLED2001_LED_CONTROL_OPEN_LAST_ADDR - CKLED2001_LED_CONTROL_OPEN_FIRST_ADDR) + 1) -#define LED_CONTROL_SHORT_FIRST_ADDR 0x30 -#define LED_CONTROL_SHORT_LAST_ADDR 0x47 -#define LED_CONTROL_SHORT_LENGTH ((LED_CONTROL_SHORT_LAST_ADDR - LED_CONTROL_SHORT_FIRST_ADDR) + 1) +#define CKLED2001_LED_CONTROL_SHORT_FIRST_ADDR 0x30 +#define CKLED2001_LED_CONTROL_SHORT_LAST_ADDR 0x47 +#define CKLED2001_LED_CONTROL_SHORT_LENGTH ((CKLED2001_LED_CONTROL_SHORT_LAST_ADDR - CKLED2001_LED_CONTROL_SHORT_FIRST_ADDR) + 1) -#define LED_CONTROL_PAGE_LENGTH 0x48 +#define CKLED2001_LED_CONTROL_PAGE_LENGTH 0x48 // LED Control Registers -#define LED_PWM_FIRST_ADDR 0x00 -#define LED_PWM_LAST_ADDR 0xBF -#define LED_PWM_LENGTH 0xC0 +#define CKLED2001_LED_PWM_FIRST_ADDR 0x00 +#define CKLED2001_LED_PWM_LAST_ADDR 0xBF +#define CKLED2001_LED_PWM_LENGTH 0xC0 // Current Tune Registers -#define LED_CURRENT_TUNE_FIRST_ADDR 0x00 -#define LED_CURRENT_TUNE_LAST_ADDR 0x0B -#define LED_CURRENT_TUNE_LENGTH 0x0C +#define CKLED2001_LED_CURRENT_TUNE_FIRST_ADDR 0x00 +#define CKLED2001_LED_CURRENT_TUNE_LAST_ADDR 0x0B +#define CKLED2001_LED_CURRENT_TUNE_LENGTH 0x0C #define A_1 0x00 #define A_2 0x01 @@ -336,4 +364,4 @@ void ckled2001_sw_shutdown(uint8_t addr); #define L_13 0xBC #define L_14 0xBD #define L_15 0xBE -#define L_16 0xBF \ No newline at end of file +#define L_16 0xBF diff --git a/keyboards/keychron/c1_pro/ansi/rgb/config.h b/keyboards/keychron/c1_pro/ansi/rgb/config.h index a103d190d0..cc95a6b45c 100644 --- a/keyboards/keychron/c1_pro/ansi/rgb/config.h +++ b/keyboards/keychron/c1_pro/ansi/rgb/config.h @@ -20,7 +20,7 @@ // #define MATRIX_UNSELECT_DRIVE_HIGH /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 +#define CKLED2001_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110111 #define DRIVER_ADDR_2 0b1110100 @@ -29,8 +29,7 @@ #define DRIVER_2_LED_TOTAL 39 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ -#define PHASE_CHANNEL MSKPHASE_9CHANNEL +#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL /* Set led driver current */ #define CKLED2001_CURRENT_TUNE \ { 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 } diff --git a/keyboards/keychron/c1_pro/ansi/white/config.h b/keyboards/keychron/c1_pro/ansi/white/config.h index dd3e1da477..898f59cdca 100644 --- a/keyboards/keychron/c1_pro/ansi/white/config.h +++ b/keyboards/keychron/c1_pro/ansi/white/config.h @@ -20,14 +20,13 @@ // #define MATRIX_UNSELECT_DRIVE_HIGH /* LED Matrix Driver Configuration */ -#define DRIVER_COUNT 1 +#define CKLED2001_DRIVER_COUNT 1 #define DRIVER_ADDR_1 0b1110100 /* LED Matrix Configuration */ #define LED_MATRIX_LED_COUNT 90 -/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ -#define PHASE_CHANNEL MSKPHASE_9CHANNEL +#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL /* Set led driver current */ #define CKLED2001_CURRENT_TUNE \ { 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 } diff --git a/keyboards/keychron/c2_pro/ansi/rgb/config.h b/keyboards/keychron/c2_pro/ansi/rgb/config.h index d62b756f5a..f783f37a14 100644 --- a/keyboards/keychron/c2_pro/ansi/rgb/config.h +++ b/keyboards/keychron/c2_pro/ansi/rgb/config.h @@ -17,7 +17,7 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 +#define CKLED2001_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110111 #define DRIVER_ADDR_2 0b1110100 diff --git a/keyboards/keychron/c2_pro/ansi/white/config.h b/keyboards/keychron/c2_pro/ansi/white/config.h index d2a0e27b57..e8c282a551 100644 --- a/keyboards/keychron/c2_pro/ansi/white/config.h +++ b/keyboards/keychron/c2_pro/ansi/white/config.h @@ -17,7 +17,7 @@ #pragma once /* LED Matrix Driver Configuration */ -#define DRIVER_COUNT 1 +#define CKLED2001_DRIVER_COUNT 1 #define DRIVER_ADDR_1 0b1110100 /* Set LED driver current */ diff --git a/keyboards/keychron/q0/rev_0130/config.h b/keyboards/keychron/q0/rev_0130/config.h index 12ecfe1356..ce4d510e10 100644 --- a/keyboards/keychron/q0/rev_0130/config.h +++ b/keyboards/keychron/q0/rev_0130/config.h @@ -17,7 +17,7 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 1 +#define CKLED2001_DRIVER_COUNT 1 #define DRIVER_ADDR_1 0b1110100 /* RGB Matrix Configuration */ diff --git a/keyboards/keychron/q0/rev_0131/config.h b/keyboards/keychron/q0/rev_0131/config.h index e4c5c2d3fc..214bfc3455 100644 --- a/keyboards/keychron/q0/rev_0131/config.h +++ b/keyboards/keychron/q0/rev_0131/config.h @@ -17,15 +17,14 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 1 +#define CKLED2001_DRIVER_COUNT 1 #define DRIVER_ADDR_1 0b1110111 /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 26 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL -/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ -#define PHASE_CHANNEL MSKPHASE_9CHANNEL +#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL /* Enable num-lock LED */ #define NUM_LOCK_LED_INDEX 5 diff --git a/keyboards/keychron/q10/config.h b/keyboards/keychron/q10/config.h index 0ef4edf245..6361990798 100644 --- a/keyboards/keychron/q10/config.h +++ b/keyboards/keychron/q10/config.h @@ -30,7 +30,7 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 +#define CKLED2001_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110111 #define DRIVER_ADDR_2 0b1110100 @@ -41,8 +41,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ -#define PHASE_CHANNEL MSKPHASE_9CHANNEL +#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL #define CKLED2001_CURRENT_TUNE \ { 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A } diff --git a/keyboards/keychron/q11/config.h b/keyboards/keychron/q11/config.h index d2c7ad4a96..3285823d54 100755 --- a/keyboards/keychron/q11/config.h +++ b/keyboards/keychron/q11/config.h @@ -27,7 +27,7 @@ #define MATRIX_MASKED // actual mask is defined by `matrix_mask` in `q11.c` /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 1 +#define CKLED2001_DRIVER_COUNT 1 #define DRIVER_ADDR_1 0b1110100 /* Increase I2C speed to 1000 KHz */ diff --git a/keyboards/keychron/q12/config.h b/keyboards/keychron/q12/config.h index 95281b4854..309b426612 100644 --- a/keyboards/keychron/q12/config.h +++ b/keyboards/keychron/q12/config.h @@ -26,7 +26,7 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 +#define CKLED2001_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110111 #define DRIVER_ADDR_2 0b1110100 diff --git a/keyboards/keychron/q2/config.h b/keyboards/keychron/q2/config.h index 63e31cd01d..f58633d2e4 100644 --- a/keyboards/keychron/q2/config.h +++ b/keyboards/keychron/q2/config.h @@ -22,12 +22,11 @@ #define DIP_SWITCH_MATRIX_GRID { {4, 4} } /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 +#define CKLED2001_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110111 #define DRIVER_ADDR_2 0b1110100 -/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ -#define PHASE_CHANNEL MSKPHASE_9CHANNEL +#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL /* Disable DIP switch in matrix data */ #define MATRIX_MASKED diff --git a/keyboards/keychron/q3/config.h b/keyboards/keychron/q3/config.h index 79f07d0390..9fbe1ed745 100644 --- a/keyboards/keychron/q3/config.h +++ b/keyboards/keychron/q3/config.h @@ -24,7 +24,7 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 +#define CKLED2001_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110111 #define DRIVER_ADDR_2 0b1110100 @@ -35,8 +35,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ -#define PHASE_CHANNEL MSKPHASE_9CHANNEL +#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL /* DIP switch */ #define DIP_SWITCH_MATRIX_GRID { {5, 4} } diff --git a/keyboards/keychron/q4/ansi_v1/config.h b/keyboards/keychron/q4/ansi_v1/config.h index e11ab12b93..d20feacd29 100644 --- a/keyboards/keychron/q4/ansi_v1/config.h +++ b/keyboards/keychron/q4/ansi_v1/config.h @@ -17,7 +17,7 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 +#define CKLED2001_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110111 #define DRIVER_ADDR_2 0b1110100 @@ -26,8 +26,7 @@ #define DRIVER_2_LED_TOTAL 30 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ -#define PHASE_CHANNEL MSKPHASE_9CHANNEL +#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL #define CKLED2001_CURRENT_TUNE \ { 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60 } diff --git a/keyboards/keychron/q4/ansi_v2/config.h b/keyboards/keychron/q4/ansi_v2/config.h index cc906fed03..0772fa576e 100644 --- a/keyboards/keychron/q4/ansi_v2/config.h +++ b/keyboards/keychron/q4/ansi_v2/config.h @@ -17,7 +17,7 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 1 +#define CKLED2001_DRIVER_COUNT 1 #define DRIVER_ADDR_1 0b1110100 /* RGB Matrix Configuration */ diff --git a/keyboards/keychron/q4/iso/config.h b/keyboards/keychron/q4/iso/config.h index 9e4a1fc3e5..2b934eb801 100644 --- a/keyboards/keychron/q4/iso/config.h +++ b/keyboards/keychron/q4/iso/config.h @@ -17,7 +17,7 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 1 +#define CKLED2001_DRIVER_COUNT 1 #define DRIVER_ADDR_1 0b1110100 /* RGB Matrix Configuration */ diff --git a/keyboards/keychron/q5/config.h b/keyboards/keychron/q5/config.h index bf25cb7441..7fefee341e 100644 --- a/keyboards/keychron/q5/config.h +++ b/keyboards/keychron/q5/config.h @@ -30,7 +30,7 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 +#define CKLED2001_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110111 #define DRIVER_ADDR_2 0b1110100 diff --git a/keyboards/keychron/q6/config.h b/keyboards/keychron/q6/config.h index 060804057f..cca00a631d 100644 --- a/keyboards/keychron/q6/config.h +++ b/keyboards/keychron/q6/config.h @@ -24,7 +24,7 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 +#define CKLED2001_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110111 #define DRIVER_ADDR_2 0b1110100 diff --git a/keyboards/keychron/q60/config.h b/keyboards/keychron/q60/config.h index 779feea4ce..9a560a0927 100644 --- a/keyboards/keychron/q60/config.h +++ b/keyboards/keychron/q60/config.h @@ -17,7 +17,7 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 1 +#define CKLED2001_DRIVER_COUNT 1 #define DRIVER_ADDR_1 0b1110100 /* Increase I2C speed to 1000 KHz */ diff --git a/keyboards/keychron/q65/config.h b/keyboards/keychron/q65/config.h index 148ea9ad14..533d5ae0dd 100644 --- a/keyboards/keychron/q65/config.h +++ b/keyboards/keychron/q65/config.h @@ -26,7 +26,7 @@ { NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, A2, A3, A4, A5, A6, A7, B0, B1 } /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 +#define CKLED2001_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110111 #define DRIVER_ADDR_2 0b1110100 @@ -37,8 +37,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 30U -/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ -#define PHASE_CHANNEL MSKPHASE_9CHANNEL +#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL #define CKLED2001_CURRENT_TUNE \ { 0xB8, 0xB8, 0x58, 0xB8, 0xB8, 0x58, 0xB8, 0xB8, 0x58, 0xB8, 0xB8, 0x58 } diff --git a/keyboards/keychron/q7/config.h b/keyboards/keychron/q7/config.h index 0ea9ee5f46..450a9a3bcb 100644 --- a/keyboards/keychron/q7/config.h +++ b/keyboards/keychron/q7/config.h @@ -17,7 +17,7 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 +#define CKLED2001_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110111 #define DRIVER_ADDR_2 0b1110100 @@ -28,8 +28,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ -#define SCAN_PHASE_CHANNEL MSKPHASE_9CHANNEL +#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL #define CKLED2001_CURRENT_TUNE \ { 0xF8, 0xF8, 0x80, 0xF8, 0xF8, 0x80, 0xF8, 0xF8, 0x80, 0xF8, 0xF8, 0x80 } diff --git a/keyboards/keychron/q8/config.h b/keyboards/keychron/q8/config.h index e0f6c673a5..33de9af247 100644 --- a/keyboards/keychron/q8/config.h +++ b/keyboards/keychron/q8/config.h @@ -20,7 +20,7 @@ // #define MATRIX_UNSELECT_DRIVE_HIGH /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 +#define CKLED2001_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110111 #define DRIVER_ADDR_2 0b1110100 @@ -31,8 +31,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ -#define PHASE_CHANNEL MSKPHASE_9CHANNEL +#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL #define CKLED2001_CURRENT_TUNE \ { 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60 } diff --git a/keyboards/keychron/q9/config.h b/keyboards/keychron/q9/config.h index 742dde3ff2..7973a1ff85 100644 --- a/keyboards/keychron/q9/config.h +++ b/keyboards/keychron/q9/config.h @@ -23,7 +23,7 @@ #define DIP_SWITCH_MATRIX_GRID { { 3, 4 } } /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 1 +#define CKLED2001_DRIVER_COUNT 1 #define DRIVER_ADDR_1 0b1110100 /* Increase I2C speed to 1000 KHz */ diff --git a/keyboards/keychron/s1/ansi/rgb/config.h b/keyboards/keychron/s1/ansi/rgb/config.h index 9cf8df3b82..3d54864bdf 100644 --- a/keyboards/keychron/s1/ansi/rgb/config.h +++ b/keyboards/keychron/s1/ansi/rgb/config.h @@ -17,15 +17,14 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 +#define CKLED2001_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110111 #define DRIVER_ADDR_2 0b1110100 #define DRIVER_1_LED_TOTAL 46 #define DRIVER_2_LED_TOTAL 38 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ -#define PHASE_CHANNEL MSKPHASE_9CHANNEL +#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL #define CKLED2001_CURRENT_TUNE \ { 0xA0, 0xA0, 0x48, 0xA0, 0xA0, 0x48, 0xA0, 0xA0, 0x48, 0xA0, 0xA0, 0x48 } diff --git a/keyboards/keychron/s1/ansi/white/config.h b/keyboards/keychron/s1/ansi/white/config.h index 65a79726ca..18b676c941 100644 --- a/keyboards/keychron/s1/ansi/white/config.h +++ b/keyboards/keychron/s1/ansi/white/config.h @@ -17,13 +17,12 @@ #pragma once /* LED Matrix Driver Configuration */ -#define DRIVER_COUNT 1 +#define CKLED2001_DRIVER_COUNT 1 #define DRIVER_ADDR_1 0b1110100 #define DRIVER_1_LED_TOTAL 84 #define LED_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL -/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ -#define PHASE_CHANNEL MSKPHASE_6CHANNEL +#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_6CHANNEL #define CKLED2001_CURRENT_TUNE \ { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 } // 250mA // { 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40 } // 127mA diff --git a/keyboards/keychron/v1/config.h b/keyboards/keychron/v1/config.h index e5b82a143d..bf6de31e13 100644 --- a/keyboards/keychron/v1/config.h +++ b/keyboards/keychron/v1/config.h @@ -32,7 +32,7 @@ #define DIP_SWITCH_MATRIX_GRID { {5,4} } /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 +#define CKLED2001_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110111 #define DRIVER_ADDR_2 0b1110100 @@ -43,8 +43,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ -#define PHASE_CHANNEL MSKPHASE_9CHANNEL +#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL /* turn off effects when suspended */ #define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/keychron/v1/jis/config.h b/keyboards/keychron/v1/jis/config.h index 300beba867..474a84c8b9 100644 --- a/keyboards/keychron/v1/jis/config.h +++ b/keyboards/keychron/v1/jis/config.h @@ -16,11 +16,6 @@ #pragma once -/* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110111 -#define DRIVER_ADDR_2 0b1110100 - /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 46 #define DRIVER_2_LED_TOTAL 40 diff --git a/keyboards/keychron/v10/config.h b/keyboards/keychron/v10/config.h index 9bc5d0f559..7cdf465f5a 100644 --- a/keyboards/keychron/v10/config.h +++ b/keyboards/keychron/v10/config.h @@ -31,7 +31,7 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 +#define CKLED2001_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110111 #define DRIVER_ADDR_2 0b1110100 @@ -42,8 +42,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ -#define PHASE_CHANNEL MSKPHASE_9CHANNEL +#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL #define CKLED2001_CURRENT_TUNE { 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A } /* DIP switch */ diff --git a/keyboards/keychron/v2/config.h b/keyboards/keychron/v2/config.h index 08cc5b8e84..6b44dba17f 100644 --- a/keyboards/keychron/v2/config.h +++ b/keyboards/keychron/v2/config.h @@ -20,7 +20,7 @@ // #define MATRIX_UNSELECT_DRIVE_HIGH /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 +#define CKLED2001_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110111 #define DRIVER_ADDR_2 0b1110100 @@ -31,8 +31,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ -#define PHASE_CHANNEL MSKPHASE_9CHANNEL +#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL /* Disable DIP switch in matrix data */ #define MATRIX_MASKED diff --git a/keyboards/keychron/v3/config.h b/keyboards/keychron/v3/config.h index 87ab3c8667..8af491f1c7 100644 --- a/keyboards/keychron/v3/config.h +++ b/keyboards/keychron/v3/config.h @@ -20,7 +20,7 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 +#define CKLED2001_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110111 #define DRIVER_ADDR_2 0b1110100 @@ -31,8 +31,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ -#define PHASE_CHANNEL MSKPHASE_9CHANNEL +#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL /* DIP switch */ #define DIP_SWITCH_MATRIX_GRID { {5, 4} } diff --git a/keyboards/keychron/v4/config.h b/keyboards/keychron/v4/config.h index 8d92219f20..2cea12c06a 100644 --- a/keyboards/keychron/v4/config.h +++ b/keyboards/keychron/v4/config.h @@ -17,7 +17,7 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 1 +#define CKLED2001_DRIVER_COUNT 1 #define DRIVER_ADDR_1 0b1110111 /* Increase I2C speed to 1000 KHz */ diff --git a/keyboards/keychron/v5/config.h b/keyboards/keychron/v5/config.h index 142dfead34..7282b28181 100644 --- a/keyboards/keychron/v5/config.h +++ b/keyboards/keychron/v5/config.h @@ -26,7 +26,7 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 +#define CKLED2001_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110111 #define DRIVER_ADDR_2 0b1110100 diff --git a/keyboards/keychron/v6/config.h b/keyboards/keychron/v6/config.h index 38cff19e6b..4416591fb9 100644 --- a/keyboards/keychron/v6/config.h +++ b/keyboards/keychron/v6/config.h @@ -20,7 +20,7 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 +#define CKLED2001_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110111 #define DRIVER_ADDR_2 0b1110100 diff --git a/keyboards/keychron/v7/config.h b/keyboards/keychron/v7/config.h index c439a7e366..5d7e6cf22e 100644 --- a/keyboards/keychron/v7/config.h +++ b/keyboards/keychron/v7/config.h @@ -17,7 +17,7 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 +#define CKLED2001_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110111 #define DRIVER_ADDR_2 0b1110100 @@ -28,8 +28,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ -#define SCAN_PHASE_CHANNEL MSKPHASE_9CHANNEL +#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL #define CKLED2001_CURRENT_TUNE { 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70 } /* DIP switch */ diff --git a/keyboards/keychron/v8/config.h b/keyboards/keychron/v8/config.h index 7c6076e199..902f0202e7 100644 --- a/keyboards/keychron/v8/config.h +++ b/keyboards/keychron/v8/config.h @@ -20,7 +20,7 @@ // #define MATRIX_UNSELECT_DRIVE_HIGH /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 +#define CKLED2001_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110111 #define DRIVER_ADDR_2 0b1110100 @@ -31,8 +31,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ -#define PHASE_CHANNEL MSKPHASE_9CHANNEL +#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL #define CKLED2001_CURRENT_TUNE { 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60 } /* DIP switch */ From 4a0badfb34257b8af819433a6358ed16a50455cb Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 13 Sep 2023 22:48:01 +1000 Subject: [PATCH 034/496] is31fl3741: driver naming cleanups (#21929) --- drivers/led/issi/is31fl3741.c | 118 +++++++++--------- drivers/led/issi/is31fl3741.h | 49 ++++++-- keyboards/acheron/apollo/87h/gamma/config.h | 2 +- keyboards/dztech/dz65rgb/v3/config.h | 2 +- keyboards/ilumkb/simpler61/config.h | 2 +- keyboards/ilumkb/simpler64/config.h | 2 +- keyboards/kbdcraft/adam64/config.h | 2 +- keyboards/kbdfans/bella/rgb/config.h | 2 +- keyboards/kbdfans/bella/rgb_iso/config.h | 2 +- keyboards/kbdfans/boop65/rgb/config.h | 2 +- keyboards/kbdfans/kbd67/mkiirgb/v3/config.h | 2 +- keyboards/kprepublic/bm68hsrgb/rev2/config.h | 2 +- keyboards/kprepublic/bm80v2/config.h | 2 +- keyboards/kprepublic/bm80v2_iso/config.h | 2 +- .../mechlovin/adelais/rgb_led/rev3/config.h | 2 +- .../mechlovin/infinity87/rgb_rev1/config.h | 2 +- keyboards/melgeek/mach80/config.h | 2 +- keyboards/melgeek/mj61/config.h | 2 +- keyboards/melgeek/mj63/config.h | 2 +- keyboards/melgeek/mj64/config.h | 2 +- keyboards/melgeek/mj65/config.h | 2 +- keyboards/melgeek/mojo68/config.h | 2 +- keyboards/melgeek/mojo75/config.h | 2 +- keyboards/melgeek/tegic/config.h | 2 +- keyboards/melgeek/z70ultra/config.h | 2 +- keyboards/owlab/voice65/hotswap/config.h | 2 +- keyboards/owlab/voice65/soldered/config.h | 2 +- keyboards/tkc/portico68v2/config.h | 2 +- keyboards/tkc/portico75/config.h | 4 +- keyboards/xelus/pachi/rgb/rev1/config.h | 2 +- keyboards/xelus/pachi/rgb/rev2/config.h | 2 +- 31 files changed, 129 insertions(+), 98 deletions(-) diff --git a/drivers/led/issi/is31fl3741.c b/drivers/led/issi/is31fl3741.c index 5c84ac2067..2459677df0 100644 --- a/drivers/led/issi/is31fl3741.c +++ b/drivers/led/issi/is31fl3741.c @@ -17,12 +17,10 @@ * along with this program. If not, see . */ -#include "wait.h" - #include "is31fl3741.h" #include #include "i2c_master.h" -#include "progmem.h" +#include "wait.h" // This is a 7-bit address, that gets left-shifted and bit 0 // set to 0 for write, 1 for read (as per I2C protocol) @@ -34,50 +32,50 @@ // ADDR1 represents A1:A0 of the 7-bit address. // ADDR2 represents A3:A2 of the 7-bit address. // The result is: 0b101(ADDR2)(ADDR1) -#define ISSI_ADDR_DEFAULT 0x60 +#define IS31FL3741_I2C_ADDRESS_DEFAULT 0x60 -#define ISSI_COMMANDREGISTER 0xFD -#define ISSI_COMMANDREGISTER_WRITELOCK 0xFE -#define ISSI_INTERRUPTMASKREGISTER 0xF0 -#define ISSI_INTERRUPTSTATUSREGISTER 0xF1 -#define ISSI_IDREGISTER 0xFC +#define IS31FL3741_COMMANDREGISTER 0xFD +#define IS31FL3741_COMMANDREGISTER_WRITELOCK 0xFE +#define IS31FL3741_INTERRUPTMASKREGISTER 0xF0 +#define IS31FL3741_INTERRUPTSTATUSREGISTER 0xF1 +#define IS31FL3741_IDREGISTER 0xFC -#define ISSI_PAGE_PWM0 0x00 // PG0 -#define ISSI_PAGE_PWM1 0x01 // PG1 -#define ISSI_PAGE_SCALING_0 0x02 // PG2 -#define ISSI_PAGE_SCALING_1 0x03 // PG3 -#define ISSI_PAGE_FUNCTION 0x04 // PG4 +#define IS31FL3741_PAGE_PWM0 0x00 // PG0 +#define IS31FL3741_PAGE_PWM1 0x01 // PG1 +#define IS31FL3741_PAGE_SCALING_0 0x02 // PG2 +#define IS31FL3741_PAGE_SCALING_1 0x03 // PG3 +#define IS31FL3741_PAGE_FUNCTION 0x04 // PG4 -#define ISSI_REG_CONFIGURATION 0x00 // PG4 -#define ISSI_REG_GLOBALCURRENT 0x01 // PG4 -#define ISSI_REG_PULLDOWNUP 0x02 // PG4 -#define ISSI_REG_RESET 0x3F // PG4 +#define IS31FL3741_REG_CONFIGURATION 0x00 // PG4 +#define IS31FL3741_REG_GLOBALCURRENT 0x01 // PG4 +#define IS31FL3741_REG_PULLDOWNUP 0x02 // PG4 +#define IS31FL3741_REG_RESET 0x3F // PG4 -#ifndef ISSI_TIMEOUT -# define ISSI_TIMEOUT 100 +#ifndef IS31FL3741_I2C_TIMEOUT +# define IS31FL3741_I2C_TIMEOUT 100 #endif -#ifndef ISSI_PERSISTENCE -# define ISSI_PERSISTENCE 0 +#ifndef IS31FL3741_I2C_PERSISTENCE +# define IS31FL3741_I2C_PERSISTENCE 0 #endif -#ifndef ISSI_CONFIGURATION -# define ISSI_CONFIGURATION 0x01 +#ifndef IS31FL3741_CONFIGURATION +# define IS31FL3741_CONFIGURATION 0x01 #endif -#ifndef ISSI_SWPULLUP -# define ISSI_SWPULLUP PUR_32KR +#ifndef IS31FL3741_SWPULLUP +# define IS31FL3741_SWPULLUP IS31FL3741_PUR_32KR #endif -#ifndef ISSI_CSPULLUP -# define ISSI_CSPULLUP PUR_32KR +#ifndef IS31FL3741_CSPULLUP +# define IS31FL3741_CSPULLUP IS31FL3741_PUR_32KR #endif -#ifndef ISSI_GLOBALCURRENT -# define ISSI_GLOBALCURRENT 0xFF +#ifndef IS31FL3741_GLOBALCURRENT +# define IS31FL3741_GLOBALCURRENT 0xFF #endif -#define ISSI_MAX_LEDS 351 +#define IS31FL3741_MAX_LEDS 351 // Transfer buffer for TWITransmitData() uint8_t g_twi_transfer_buffer[20] = {0xFF}; @@ -88,22 +86,22 @@ uint8_t g_twi_transfer_buffer[20] = {0xFF}; // We could optimize this and take out the unused registers from these // buffers and the transfers in is31fl3741_write_pwm_buffer() but it's // probably not worth the extra complexity. -uint8_t g_pwm_buffer[DRIVER_COUNT][ISSI_MAX_LEDS]; -bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false}; -bool g_scaling_registers_update_required[DRIVER_COUNT] = {false}; +uint8_t g_pwm_buffer[IS31FL3741_DRIVER_COUNT][IS31FL3741_MAX_LEDS]; +bool g_pwm_buffer_update_required[IS31FL3741_DRIVER_COUNT] = {false}; +bool g_scaling_registers_update_required[IS31FL3741_DRIVER_COUNT] = {false}; -uint8_t g_scaling_registers[DRIVER_COUNT][ISSI_MAX_LEDS]; +uint8_t g_scaling_registers[IS31FL3741_DRIVER_COUNT][IS31FL3741_MAX_LEDS]; void is31fl3741_write_register(uint8_t addr, uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; g_twi_transfer_buffer[1] = data; -#if ISSI_PERSISTENCE > 0 - for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) == 0) break; +#if IS31FL3741_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3741_I2C_TIMEOUT) == 0) break; } #else - i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT); + i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3741_I2C_TIMEOUT); #endif } @@ -113,21 +111,21 @@ bool is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { for (int i = 0; i < 342; i += 18) { if (i == 180) { // unlock the command register and select PG1 - is31fl3741_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM1); + is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER, IS31FL3741_PAGE_PWM1); } g_twi_transfer_buffer[0] = i % 180; memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 18); -#if ISSI_PERSISTENCE > 0 - for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 19, ISSI_TIMEOUT) != 0) { +#if IS31FL3741_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 19, IS31FL3741_I2C_TIMEOUT) != 0) { return false; } } #else - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 19, ISSI_TIMEOUT) != 0) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 19, IS31FL3741_I2C_TIMEOUT) != 0) { return false; } #endif @@ -137,14 +135,14 @@ bool is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { g_twi_transfer_buffer[0] = 162; memcpy(g_twi_transfer_buffer + 1, pwm_buffer + 342, 9); -#if ISSI_PERSISTENCE > 0 - for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 10, ISSI_TIMEOUT) != 0) { +#if IS31FL3741_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 10, IS31FL3741_I2C_TIMEOUT) != 0) { return false; } } #else - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 10, ISSI_TIMEOUT) != 0) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 10, IS31FL3741_I2C_TIMEOUT) != 0) { return false; } #endif @@ -160,18 +158,18 @@ void is31fl3741_init(uint8_t addr) { // Unlock the command register. // Unlock the command register. - is31fl3741_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG4 - is31fl3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION); + is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER, IS31FL3741_PAGE_FUNCTION); // Set to Normal operation - is31fl3741_write_register(addr, ISSI_REG_CONFIGURATION, ISSI_CONFIGURATION); + is31fl3741_write_register(addr, IS31FL3741_REG_CONFIGURATION, IS31FL3741_CONFIGURATION); // Set Golbal Current Control Register - is31fl3741_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT); + is31fl3741_write_register(addr, IS31FL3741_REG_GLOBALCURRENT, IS31FL3741_GLOBALCURRENT); // Set Pull up & Down for SWx CSy - is31fl3741_write_register(addr, ISSI_REG_PULLDOWNUP, ((ISSI_CSPULLUP << 4) | ISSI_SWPULLUP)); + is31fl3741_write_register(addr, IS31FL3741_REG_PULLDOWNUP, ((IS31FL3741_CSPULLUP << 4) | IS31FL3741_SWPULLUP)); // is31fl3741_update_led_scaling_registers(addr, 0xFF, 0xFF, 0xFF); @@ -228,8 +226,8 @@ void is31fl3741_set_led_control_register(uint8_t index, bool red, bool green, bo void is31fl3741_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { // unlock the command register and select PG2 - is31fl3741_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM0); + is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER, IS31FL3741_PAGE_PWM0); is31fl3741_write_pwm_buffer(addr, g_pwm_buffer[index]); } @@ -248,8 +246,8 @@ void is31fl3741_set_pwm_buffer(const is31_led *pled, uint8_t red, uint8_t green, void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_scaling_registers_update_required[index]) { // unlock the command register and select PG2 - is31fl3741_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_SCALING_0); + is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER, IS31FL3741_PAGE_SCALING_0); // CS1_SW1 to CS30_SW6 are on PG2 for (int i = CS1_SW1; i <= CS30_SW6; ++i) { @@ -257,8 +255,8 @@ void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index) { } // unlock the command register and select PG3 - is31fl3741_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_SCALING_1); + is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER, IS31FL3741_PAGE_SCALING_1); // CS1_SW7 to CS39_SW9 are on PG3 for (int i = CS1_SW7; i <= CS39_SW9; ++i) { diff --git a/drivers/led/issi/is31fl3741.h b/drivers/led/issi/is31fl3741.h index 4ae84dc3c6..ffa4be9250 100644 --- a/drivers/led/issi/is31fl3741.h +++ b/drivers/led/issi/is31fl3741.h @@ -23,6 +23,39 @@ #include #include "progmem.h" +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_COUNT +# define IS31FL3741_DRIVER_COUNT DRIVER_COUNT +#endif +#ifdef ISSI_TIMEOUT +# define IS31FL3741_I2C_TIMEOUT ISSI_TIMEOUT +#endif +#ifdef ISSI_PERSISTENCE +# define IS31FL3741_I2C_PERSISTENCE ISSI_PERSISTENCE +#endif +#ifdef ISSI_CONFIGURATION +# define IS31FL3741_CONFIGURATION ISSI_CONFIGURATION +#endif +#ifdef ISSI_SWPULLUP +# define IS31FL3741_SWPULLUP ISSI_SWPULLUP +#endif +#ifdef ISSI_CSPULLUP +# define IS31FL3741_CSPULLUP ISSI_CSPULLUP +#endif +#ifdef ISSI_GLOBALCURRENT +# define IS31FL3741_GLOBALCURRENT ISSI_GLOBALCURRENT +#endif + +#define PUR_0R IS31FL3741_PUR_0R +#define PUR_05KR IS31FL3741_PUR_05KR +#define PUR_1KR IS31FL3741_PUR_1KR +#define PUR_2KR IS31FL3741_PUR_2KR +#define PUR_4KR IS31FL3741_PUR_4KR +#define PUR_8KR IS31FL3741_PUR_8KR +#define PUR_16KR IS31FL3741_PUR_16KR +#define PUR_32KR IS31FL3741_PUR_32KR +// ======== + typedef struct is31_led { uint32_t driver : 2; uint32_t r : 10; @@ -51,14 +84,14 @@ void is31fl3741_set_scaling_registers(const is31_led *pled, uint8_t red, uint8_t void is31fl3741_set_pwm_buffer(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue); -#define PUR_0R 0x00 // No PUR resistor -#define PUR_05KR 0x01 // 0.5k Ohm resistor -#define PUR_1KR 0x02 // 1.0k Ohm resistor -#define PUR_2KR 0x03 // 2.0k Ohm resistor -#define PUR_4KR 0x04 // 4.0k Ohm resistor -#define PUR_8KR 0x05 // 8.0k Ohm resistor -#define PUR_16KR 0x06 // 16k Ohm resistor -#define PUR_32KR 0x07 // 32k Ohm resistor +#define IS31FL3741_PUR_0R 0x00 // No PUR resistor +#define IS31FL3741_PUR_05KR 0x01 // 0.5k Ohm resistor +#define IS31FL3741_PUR_1KR 0x02 // 1.0k Ohm resistor +#define IS31FL3741_PUR_2KR 0x03 // 2.0k Ohm resistor +#define IS31FL3741_PUR_4KR 0x04 // 4.0k Ohm resistor +#define IS31FL3741_PUR_8KR 0x05 // 8.0k Ohm resistor +#define IS31FL3741_PUR_16KR 0x06 // 16k Ohm resistor +#define IS31FL3741_PUR_32KR 0x07 // 32k Ohm resistor #define CS1_SW1 0x00 #define CS2_SW1 0x01 diff --git a/keyboards/acheron/apollo/87h/gamma/config.h b/keyboards/acheron/apollo/87h/gamma/config.h index 6209fa21f7..9d681aedb5 100644 --- a/keyboards/acheron/apollo/87h/gamma/config.h +++ b/keyboards/acheron/apollo/87h/gamma/config.h @@ -27,7 +27,7 @@ along with this program. If not, see . // RGB Matrix defines #define DRIVER_ADDR_1 0b0110000 -#define DRIVER_COUNT 1 +#define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 87 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL #define ISSI_DRIVER_TOTAL RGB_MATRIX_LED_COUNT diff --git a/keyboards/dztech/dz65rgb/v3/config.h b/keyboards/dztech/dz65rgb/v3/config.h index 421ae8277c..2077bd93d4 100755 --- a/keyboards/dztech/dz65rgb/v3/config.h +++ b/keyboards/dztech/dz65rgb/v3/config.h @@ -73,7 +73,7 @@ # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL # define DRIVER_ADDR_1 0b0110000 -# define DRIVER_COUNT 1 +# define IS31FL3741_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 68 # define DRIVER_INDICATOR_LED_TOTAL 0 #endif diff --git a/keyboards/ilumkb/simpler61/config.h b/keyboards/ilumkb/simpler61/config.h index 151eba96c9..12c6390683 100644 --- a/keyboards/ilumkb/simpler61/config.h +++ b/keyboards/ilumkb/simpler61/config.h @@ -22,7 +22,7 @@ #define RGB_MATRIX_LED_FLUSH_LIMIT 26 #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define DRIVER_ADDR_1 0b0110000 -#define DRIVER_COUNT 1 +#define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 61 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/ilumkb/simpler64/config.h b/keyboards/ilumkb/simpler64/config.h index 5554f56bd1..58268e23cf 100644 --- a/keyboards/ilumkb/simpler64/config.h +++ b/keyboards/ilumkb/simpler64/config.h @@ -22,7 +22,7 @@ #define RGB_MATRIX_LED_FLUSH_LIMIT 26 #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define DRIVER_ADDR_1 0b0110000 -#define DRIVER_COUNT 1 +#define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 64 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/kbdcraft/adam64/config.h b/keyboards/kbdcraft/adam64/config.h index 81101bbb61..c7fa1aecc9 100644 --- a/keyboards/kbdcraft/adam64/config.h +++ b/keyboards/kbdcraft/adam64/config.h @@ -23,7 +23,7 @@ #define I2C1_CLOCK_SPEED 400000 #define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_16_9 -#define DRIVER_COUNT 1 +#define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_ADDR_1 0b0110000 #define RGB_MATRIX_LED_COUNT 64 diff --git a/keyboards/kbdfans/bella/rgb/config.h b/keyboards/kbdfans/bella/rgb/config.h index c8114dc57b..8e416d77d9 100644 --- a/keyboards/kbdfans/bella/rgb/config.h +++ b/keyboards/kbdfans/bella/rgb/config.h @@ -72,7 +72,7 @@ //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define DRIVER_ADDR_1 0b0110000 -#define DRIVER_COUNT 1 +#define IS31FL3741_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 108 #define DRIVER_INDICATOR_LED_TOTAL 0 #endif diff --git a/keyboards/kbdfans/bella/rgb_iso/config.h b/keyboards/kbdfans/bella/rgb_iso/config.h index 8dea9c2164..50d5120beb 100644 --- a/keyboards/kbdfans/bella/rgb_iso/config.h +++ b/keyboards/kbdfans/bella/rgb_iso/config.h @@ -72,7 +72,7 @@ //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define DRIVER_ADDR_1 0b0110000 -#define DRIVER_COUNT 1 +#define IS31FL3741_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 109 #define DRIVER_INDICATOR_LED_TOTAL 0 #endif diff --git a/keyboards/kbdfans/boop65/rgb/config.h b/keyboards/kbdfans/boop65/rgb/config.h index c1955ac84f..0e80e2c67e 100644 --- a/keyboards/kbdfans/boop65/rgb/config.h +++ b/keyboards/kbdfans/boop65/rgb/config.h @@ -27,7 +27,7 @@ # define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL # define DRIVER_ADDR_1 0b0110000 -# define DRIVER_COUNT 1 +# define IS31FL3741_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 83 # define DRIVER_INDICATOR_LED_TOTAL 0 #define ENABLE_RGB_MATRIX_ALPHAS_MODS diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h index e291fa6368..d36bce7d83 100755 --- a/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h @@ -73,7 +73,7 @@ #define RGB_MATRIX_LED_FLUSH_LIMIT 26 #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define DRIVER_ADDR_1 0b0110000 -#define DRIVER_COUNT 1 +#define IS31FL3741_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 67 #define DRIVER_INDICATOR_LED_TOTAL 0 #endif diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/config.h b/keyboards/kprepublic/bm68hsrgb/rev2/config.h index 3e74f353f9..15f47e8ba5 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm68hsrgb/rev2/config.h @@ -20,7 +20,7 @@ #define DRIVER_ADDR_1 0b0110000 -#define DRIVER_COUNT 1 +#define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 68 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/kprepublic/bm80v2/config.h b/keyboards/kprepublic/bm80v2/config.h index 98a784d638..3eea8c3aa4 100644 --- a/keyboards/kprepublic/bm80v2/config.h +++ b/keyboards/kprepublic/bm80v2/config.h @@ -54,7 +54,7 @@ #define ENABLE_RGB_MATRIX_SOLID_SPLASH #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH #define DRIVER_ADDR_1 0b0110000 -#define DRIVER_COUNT 1 +#define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 87 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/kprepublic/bm80v2_iso/config.h b/keyboards/kprepublic/bm80v2_iso/config.h index 526150acbd..98c712703d 100644 --- a/keyboards/kprepublic/bm80v2_iso/config.h +++ b/keyboards/kprepublic/bm80v2_iso/config.h @@ -55,7 +55,7 @@ #define ENABLE_RGB_MATRIX_SOLID_SPLASH #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH #define DRIVER_ADDR_1 0b0110000 -#define DRIVER_COUNT 1 +#define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 88 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/config.h b/keyboards/mechlovin/adelais/rgb_led/rev3/config.h index c4961c6492..8620ab3949 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev3/config.h +++ b/keyboards/mechlovin/adelais/rgb_led/rev3/config.h @@ -30,7 +30,7 @@ along with this program. If not, see . // 0b1110101 AD <-> SCL // 0b1110110 AD <-> SDA #define DRIVER_ADDR_1 0b0110010 -#define DRIVER_COUNT 1 +#define IS31FL3741_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 66 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/config.h b/keyboards/mechlovin/infinity87/rgb_rev1/config.h index 10fc42f830..84acb09308 100644 --- a/keyboards/mechlovin/infinity87/rgb_rev1/config.h +++ b/keyboards/mechlovin/infinity87/rgb_rev1/config.h @@ -81,6 +81,6 @@ #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_REACTIVE_SIMPLE #define DRIVER_ADDR_1 0b0110010 -#define DRIVER_COUNT 1 +#define IS31FL3741_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 91 #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/melgeek/mach80/config.h b/keyboards/melgeek/mach80/config.h index f73ab7345c..4850f9a177 100755 --- a/keyboards/melgeek/mach80/config.h +++ b/keyboards/melgeek/mach80/config.h @@ -26,7 +26,7 @@ //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define DRIVER_ADDR_1 0b0110000 -#define DRIVER_COUNT 1 +#define IS31FL3741_DRIVER_COUNT 1 #define ENABLE_RGB_MATRIX_ALPHAS_MODS #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN diff --git a/keyboards/melgeek/mj61/config.h b/keyboards/melgeek/mj61/config.h index af2393e5ec..64f144d43a 100644 --- a/keyboards/melgeek/mj61/config.h +++ b/keyboards/melgeek/mj61/config.h @@ -71,4 +71,4 @@ //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define DRIVER_ADDR_1 0b0110000 -#define DRIVER_COUNT 1 +#define IS31FL3741_DRIVER_COUNT 1 diff --git a/keyboards/melgeek/mj63/config.h b/keyboards/melgeek/mj63/config.h index af2393e5ec..64f144d43a 100644 --- a/keyboards/melgeek/mj63/config.h +++ b/keyboards/melgeek/mj63/config.h @@ -71,4 +71,4 @@ //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define DRIVER_ADDR_1 0b0110000 -#define DRIVER_COUNT 1 +#define IS31FL3741_DRIVER_COUNT 1 diff --git a/keyboards/melgeek/mj64/config.h b/keyboards/melgeek/mj64/config.h index af2393e5ec..64f144d43a 100644 --- a/keyboards/melgeek/mj64/config.h +++ b/keyboards/melgeek/mj64/config.h @@ -71,4 +71,4 @@ //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define DRIVER_ADDR_1 0b0110000 -#define DRIVER_COUNT 1 +#define IS31FL3741_DRIVER_COUNT 1 diff --git a/keyboards/melgeek/mj65/config.h b/keyboards/melgeek/mj65/config.h index af2393e5ec..64f144d43a 100644 --- a/keyboards/melgeek/mj65/config.h +++ b/keyboards/melgeek/mj65/config.h @@ -71,4 +71,4 @@ //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define DRIVER_ADDR_1 0b0110000 -#define DRIVER_COUNT 1 +#define IS31FL3741_DRIVER_COUNT 1 diff --git a/keyboards/melgeek/mojo68/config.h b/keyboards/melgeek/mojo68/config.h index b5f846ae78..0353fb8fc7 100755 --- a/keyboards/melgeek/mojo68/config.h +++ b/keyboards/melgeek/mojo68/config.h @@ -70,4 +70,4 @@ //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define DRIVER_ADDR_1 0b0110000 -#define DRIVER_COUNT 1 +#define IS31FL3741_DRIVER_COUNT 1 diff --git a/keyboards/melgeek/mojo75/config.h b/keyboards/melgeek/mojo75/config.h index bdee36b66b..3f95a82ea9 100644 --- a/keyboards/melgeek/mojo75/config.h +++ b/keyboards/melgeek/mojo75/config.h @@ -72,4 +72,4 @@ #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_REACTIVE_SIMPLE #define DRIVER_ADDR_1 0b0110000 -#define DRIVER_COUNT 1 +#define IS31FL3741_DRIVER_COUNT 1 diff --git a/keyboards/melgeek/tegic/config.h b/keyboards/melgeek/tegic/config.h index e371af9552..ea457a3fcb 100755 --- a/keyboards/melgeek/tegic/config.h +++ b/keyboards/melgeek/tegic/config.h @@ -23,7 +23,7 @@ //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define DRIVER_ADDR_1 0b0110000 -#define DRIVER_COUNT 1 +#define IS31FL3741_DRIVER_COUNT 1 #define ENABLE_RGB_MATRIX_ALPHAS_MODS #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN diff --git a/keyboards/melgeek/z70ultra/config.h b/keyboards/melgeek/z70ultra/config.h index 3c19a6f93c..978982a5b1 100644 --- a/keyboards/melgeek/z70ultra/config.h +++ b/keyboards/melgeek/z70ultra/config.h @@ -71,6 +71,6 @@ //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define DRIVER_ADDR_1 0b0110000 -#define DRIVER_COUNT 1 +#define IS31FL3741_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 69 #define DRIVER_INDICATOR_LED_TOTAL 6 diff --git a/keyboards/owlab/voice65/hotswap/config.h b/keyboards/owlab/voice65/hotswap/config.h index 04bd741d77..ccf103cfa3 100644 --- a/keyboards/owlab/voice65/hotswap/config.h +++ b/keyboards/owlab/voice65/hotswap/config.h @@ -30,7 +30,7 @@ along with this program. If not, see . # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 # define RGB_MATRIX_DEFAULT_VAL 128 # define DRIVER_ADDR_1 0b0110000 -# define DRIVER_COUNT 1 +# define IS31FL3741_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 67 // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: diff --git a/keyboards/owlab/voice65/soldered/config.h b/keyboards/owlab/voice65/soldered/config.h index 66e412effb..0cb0678b43 100644 --- a/keyboards/owlab/voice65/soldered/config.h +++ b/keyboards/owlab/voice65/soldered/config.h @@ -30,7 +30,7 @@ along with this program. If not, see . # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 # define RGB_MATRIX_DEFAULT_VAL 128 # define DRIVER_ADDR_1 0b0110000 -# define DRIVER_COUNT 1 +# define IS31FL3741_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 71 // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/tkc/portico68v2/config.h b/keyboards/tkc/portico68v2/config.h index fd0191d101..1c9f946cb7 100644 --- a/keyboards/tkc/portico68v2/config.h +++ b/keyboards/tkc/portico68v2/config.h @@ -18,7 +18,7 @@ along with this program. If not, see . #pragma once #define DRIVER_ADDR_1 0b0110000 -#define DRIVER_COUNT 1 +#define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 82 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/tkc/portico75/config.h b/keyboards/tkc/portico75/config.h index e72c95981b..d00d38e36a 100644 --- a/keyboards/tkc/portico75/config.h +++ b/keyboards/tkc/portico75/config.h @@ -73,13 +73,13 @@ along with this program. If not, see . # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 # define DRIVER_ADDR_1 0b0110000 -# define DRIVER_COUNT 1 +# define IS31FL3741_DRIVER_COUNT 1 # define DRIVER_1_LED_TOTAL 98 # define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL # define DRIVER_INDICATOR_LED_TOTAL 0 #else // WT_RGB IS31FL3741 driver code -# define DRIVER_COUNT 1 +# define IS31FL3741_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 98 # define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/xelus/pachi/rgb/rev1/config.h b/keyboards/xelus/pachi/rgb/rev1/config.h index 1007f5b3de..dd4c378a66 100644 --- a/keyboards/xelus/pachi/rgb/rev1/config.h +++ b/keyboards/xelus/pachi/rgb/rev1/config.h @@ -42,7 +42,7 @@ // RGB Matrix defines #define DRIVER_ADDR_1 0b0110000 -#define DRIVER_COUNT 1 +#define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 117 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL #define ISSI_DRIVER_TOTAL RGB_MATRIX_LED_COUNT diff --git a/keyboards/xelus/pachi/rgb/rev2/config.h b/keyboards/xelus/pachi/rgb/rev2/config.h index a11aa27d3b..939721c224 100644 --- a/keyboards/xelus/pachi/rgb/rev2/config.h +++ b/keyboards/xelus/pachi/rgb/rev2/config.h @@ -39,7 +39,7 @@ // RGB Matrix defines #define DRIVER_ADDR_1 0b0110000 -#define DRIVER_COUNT 1 +#define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 117 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL #define ISSI_DRIVER_TOTAL RGB_MATRIX_LED_COUNT From d36f73a431e4e22dc3a95f5e5ecf6da2123a1339 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 13 Sep 2023 22:49:29 +1000 Subject: [PATCH 035/496] is31fl3737: driver naming cleanups (#21904) --- docs/feature_rgb_matrix.md | 36 ++++---- drivers/led/issi/is31fl3737.c | 109 +++++++++++++------------ drivers/led/issi/is31fl3737.h | 50 ++++++++++-- keyboards/dztech/tofu/ii/v1/config.h | 2 +- keyboards/dztech/tofu/jr/v1/config.h | 2 +- keyboards/frooastboard/walnut/config.h | 8 +- keyboards/mt/mt84/config.h | 2 +- keyboards/planck/ez/config.h | 2 +- 8 files changed, 120 insertions(+), 91 deletions(-) diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index 5cc498a9ed..76c5c4f90b 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -246,31 +246,31 @@ Configure the hardware via your `config.h`: | Variable | Description | Default | |----------|-------------|---------| -| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 | -| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | -| `ISSI_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3737B only | 0 | -| `ISSI_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF | -| `ISSI_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | -| `ISSI_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | -| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | +| `IS31FL3737_I2C_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 | +| `IS31FL3737_I2C_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | +| `IS31FL3737_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3737B only | 0 | +| `IS31FL3737_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF | +| `IS31FL3737_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | +| `IS31FL3737_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | +| `IS31FL3737_DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | | `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | | | `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | | | `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | | | `DRIVER_ADDR_3` | (Optional) Address for the third RGB driver | | | `DRIVER_ADDR_4` | (Optional) Address for the fourth RGB driver | | -The IS31FL3737 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`ISSI_SWPULLUP`/`ISSI_CSPULLUP` are given the value of`PUR_0R`), the values that can be set to enable de-ghosting are as follows: +The IS31FL3737 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`IS31FL3737_SWPULLUP`/`IS31FL3737_CSPULLUP` are given the value of `IS31FL3737_PUR_0R`), the values that can be set to enable de-ghosting are as follows: -| `ISSI_SWPULLUP/ISSI_CSPULLUP` | Description | +| `IS31FL3737_SWPULLUP/IS31FL3737_CSPULLUP` | Description | |----------------------|-------------| -| `PUR_0R` | (default) Do not use the on-chip resistors/enable de-ghosting | -| `PUR_05KR` | The 0.5k Ohm resistor used during blanking period (t_NOL) | -| `PUR_1KR` | The 1k Ohm resistor used during blanking period (t_NOL) | -| `PUR_2KR` | The 2k Ohm resistor used during blanking period (t_NOL) | -| `PUR_4KR` | The 4k Ohm resistor used during blanking period (t_NOL) | -| `PUR_8KR` | The 8k Ohm resistor during blanking period (t_NOL) | -| `PUR_16KR` | The 16k Ohm resistor during blanking period (t_NOL) | -| `PUR_32KR` | The 32k Ohm resistor used during blanking period (t_NOL) | +| `IS31FL3737_PUR_0R` | (default) Do not use the on-chip resistors/enable de-ghosting | +| `IS31FL3737_PUR_05KR` | The 0.5k Ohm resistor used during blanking period (t_NOL) | +| `IS31FL3737_PUR_1KR` | The 1k Ohm resistor used during blanking period (t_NOL) | +| `IS31FL3737_PUR_2KR` | The 2k Ohm resistor used during blanking period (t_NOL) | +| `IS31FL3737_PUR_4KR` | The 4k Ohm resistor used during blanking period (t_NOL) | +| `IS31FL3737_PUR_8KR` | The 8k Ohm resistor during blanking period (t_NOL) | +| `IS31FL3737_PUR_16KR` | The 16k Ohm resistor during blanking period (t_NOL) | +| `IS31FL3737_PUR_32KR` | The 32k Ohm resistor used during blanking period (t_NOL) | Here is an example using 2 drivers. @@ -287,7 +287,7 @@ Here is an example using 2 drivers. #define DRIVER_ADDR_1 0b1010000 #define DRIVER_ADDR_2 0b1010001 -#define DRIVER_COUNT 2 +#define IS31FL3737_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 30 #define DRIVER_2_LED_TOTAL 36 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/drivers/led/issi/is31fl3737.c b/drivers/led/issi/is31fl3737.c index 947c0a1d1a..94bd755dea 100644 --- a/drivers/led/issi/is31fl3737.c +++ b/drivers/led/issi/is31fl3737.c @@ -18,6 +18,7 @@ */ #include "is31fl3737.h" +#include #include "i2c_master.h" #include "wait.h" @@ -31,46 +32,46 @@ // ADDR1 represents A1:A0 of the 7-bit address. // ADDR2 represents A3:A2 of the 7-bit address. // The result is: 0b101(ADDR2)(ADDR1) -#define ISSI_ADDR_DEFAULT 0x50 +#define IS31FL3737_I2C_ADDRESS_DEFAULT 0x50 -#define ISSI_COMMANDREGISTER 0xFD -#define ISSI_COMMANDREGISTER_WRITELOCK 0xFE -#define ISSI_INTERRUPTMASKREGISTER 0xF0 -#define ISSI_INTERRUPTSTATUSREGISTER 0xF1 +#define IS31FL3737_COMMANDREGISTER 0xFD +#define IS31FL3737_COMMANDREGISTER_WRITELOCK 0xFE +#define IS31FL3737_INTERRUPTMASKREGISTER 0xF0 +#define IS31FL3737_INTERRUPTSTATUSREGISTER 0xF1 -#define ISSI_PAGE_LEDCONTROL 0x00 // PG0 -#define ISSI_PAGE_PWM 0x01 // PG1 -#define ISSI_PAGE_AUTOBREATH 0x02 // PG2 -#define ISSI_PAGE_FUNCTION 0x03 // PG3 +#define IS31FL3737_PAGE_LEDCONTROL 0x00 // PG0 +#define IS31FL3737_PAGE_PWM 0x01 // PG1 +#define IS31FL3737_PAGE_AUTOBREATH 0x02 // PG2 +#define IS31FL3737_PAGE_FUNCTION 0x03 // PG3 -#define ISSI_REG_CONFIGURATION 0x00 // PG3 -#define ISSI_REG_GLOBALCURRENT 0x01 // PG3 -#define ISSI_REG_RESET 0x11 // PG3 -#define ISSI_REG_SWPULLUP 0x0F // PG3 -#define ISSI_REG_CSPULLUP 0x10 // PG3 +#define IS31FL3737_REG_CONFIGURATION 0x00 // PG3 +#define IS31FL3737_REG_GLOBALCURRENT 0x01 // PG3 +#define IS31FL3737_REG_RESET 0x11 // PG3 +#define IS31FL3737_REG_SWPULLUP 0x0F // PG3 +#define IS31FL3737_REG_CSPULLUP 0x10 // PG3 -#ifndef ISSI_TIMEOUT -# define ISSI_TIMEOUT 100 +#ifndef IS31FL3737_I2C_TIMEOUT +# define IS31FL3737_I2C_TIMEOUT 100 #endif -#ifndef ISSI_PERSISTENCE -# define ISSI_PERSISTENCE 0 +#ifndef IS31FL3737_I2C_PERSISTENCE +# define IS31FL3737_I2C_PERSISTENCE 0 #endif -#ifndef ISSI_PWM_FREQUENCY -# define ISSI_PWM_FREQUENCY 0b000 // PFS - IS31FL3737B only +#ifndef IS31FL3737_PWM_FREQUENCY +# define IS31FL3737_PWM_FREQUENCY 0b000 // PFS - IS31FL3737B only #endif -#ifndef ISSI_SWPULLUP -# define ISSI_SWPULLUP PUR_0R +#ifndef IS31FL3737_SWPULLUP +# define IS31FL3737_SWPULLUP IS31FL3737_PUR_0R #endif -#ifndef ISSI_CSPULLUP -# define ISSI_CSPULLUP PUR_0R +#ifndef IS31FL3737_CSPULLUP +# define IS31FL3737_CSPULLUP IS31FL3737_PUR_0R #endif -#ifndef ISSI_GLOBALCURRENT -# define ISSI_GLOBALCURRENT 0xFF +#ifndef IS31FL3737_GLOBALCURRENT +# define IS31FL3737_GLOBALCURRENT 0xFF #endif // Transfer buffer for TWITransmitData() @@ -83,22 +84,22 @@ uint8_t g_twi_transfer_buffer[20]; // buffers and the transfers in is31fl3737_write_pwm_buffer() but it's // probably not worth the extra complexity. -uint8_t g_pwm_buffer[DRIVER_COUNT][192]; -bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false}; +uint8_t g_pwm_buffer[IS31FL3737_DRIVER_COUNT][192]; +bool g_pwm_buffer_update_required[IS31FL3737_DRIVER_COUNT] = {false}; -uint8_t g_led_control_registers[DRIVER_COUNT][24] = {0}; -bool g_led_control_registers_update_required[DRIVER_COUNT] = {false}; +uint8_t g_led_control_registers[IS31FL3737_DRIVER_COUNT][24] = {0}; +bool g_led_control_registers_update_required[IS31FL3737_DRIVER_COUNT] = {false}; void is31fl3737_write_register(uint8_t addr, uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; g_twi_transfer_buffer[1] = data; -#if ISSI_PERSISTENCE > 0 - for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) == 0) break; +#if IS31FL3737_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3737_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3737_I2C_TIMEOUT) == 0) break; } #else - i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT); + i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3737_I2C_TIMEOUT); #endif } @@ -116,12 +117,12 @@ void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 16); -#if ISSI_PERSISTENCE > 0 - for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT) == 0) break; +#if IS31FL3737_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3737_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3737_I2C_TIMEOUT) == 0) break; } #else - i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT); + i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3737_I2C_TIMEOUT); #endif } } @@ -133,20 +134,20 @@ void is31fl3737_init(uint8_t addr) { // then disable software shutdown. // Unlock the command register. - is31fl3737_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG0 - is31fl3737_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); + is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_LEDCONTROL); // Turn off all LEDs. for (int i = 0x00; i <= 0x17; i++) { is31fl3737_write_register(addr, i, 0x00); } // Unlock the command register. - is31fl3737_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG1 - is31fl3737_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); + is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_PWM); // Set PWM on all LEDs to 0 // No need to setup Breath registers to PWM as that is the default. for (int i = 0x00; i <= 0xBF; i++) { @@ -154,18 +155,18 @@ void is31fl3737_init(uint8_t addr) { } // Unlock the command register. - is31fl3737_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG3 - is31fl3737_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION); + is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_FUNCTION); // Set de-ghost pull-up resistors (SWx) - is31fl3737_write_register(addr, ISSI_REG_SWPULLUP, ISSI_SWPULLUP); + is31fl3737_write_register(addr, IS31FL3737_REG_SWPULLUP, IS31FL3737_SWPULLUP); // Set de-ghost pull-down resistors (CSx) - is31fl3737_write_register(addr, ISSI_REG_CSPULLUP, ISSI_CSPULLUP); + is31fl3737_write_register(addr, IS31FL3737_REG_CSPULLUP, IS31FL3737_CSPULLUP); // Set global current to maximum. - is31fl3737_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT); + is31fl3737_write_register(addr, IS31FL3737_REG_GLOBALCURRENT, IS31FL3737_GLOBALCURRENT); // Disable software shutdown. - is31fl3737_write_register(addr, ISSI_REG_CONFIGURATION, ((ISSI_PWM_FREQUENCY & 0b111) << 3) | 0x01); + is31fl3737_write_register(addr, IS31FL3737_REG_CONFIGURATION, ((IS31FL3737_PWM_FREQUENCY & 0b111) << 3) | 0x01); // Wait 10ms to ensure the device has woken up. wait_ms(10); @@ -225,22 +226,22 @@ void is31fl3737_set_led_control_register(uint8_t index, bool red, bool green, bo void is31fl3737_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { // Firstly we need to unlock the command register and select PG1 - is31fl3737_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3737_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); + is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_PWM); is31fl3737_write_pwm_buffer(addr, g_pwm_buffer[index]); + g_pwm_buffer_update_required[index] = false; } - g_pwm_buffer_update_required[index] = false; } void is31fl3737_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { // Firstly we need to unlock the command register and select PG0 - is31fl3737_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3737_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); + is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_LEDCONTROL); for (int i = 0; i < 24; i++) { is31fl3737_write_register(addr, i, g_led_control_registers[index][i]); } + g_led_control_registers_update_required[index] = false; } - g_led_control_registers_update_required[index] = false; } diff --git a/drivers/led/issi/is31fl3737.h b/drivers/led/issi/is31fl3737.h index e7fc97872c..a6a9a3a059 100644 --- a/drivers/led/issi/is31fl3737.h +++ b/drivers/led/issi/is31fl3737.h @@ -19,9 +19,41 @@ #pragma once +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_COUNT +# define IS31FL3737_DRIVER_COUNT DRIVER_COUNT +#endif +#ifdef ISSI_TIMEOUT +# define IS31FL3737_I2C_TIMEOUT ISSI_TIMEOUT +#endif +#ifdef ISSI_PERSISTENCE +# define IS31FL3737_I2C_PERSISTENCE ISSI_PERSISTENCE +#endif +#ifdef ISSI_PWM_FREQUENCY +# define IS31FL3737_PWM_FREQUENCY ISSI_PWM_FREQUENCY +#endif +#ifdef ISSI_SWPULLUP +# define IS31FL3737_SWPULLUP ISSI_SWPULLUP +#endif +#ifdef ISSI_CSPULLUP +# define IS31FL3737_CSPULLUP ISSI_CSPULLUP +#endif +#ifdef ISSI_GLOBALCURRENT +# define IS31FL3737_GLOBALCURRENT ISSI_GLOBALCURRENT +#endif + +#define PUR_0R IS31FL3737_PUR_0R +#define PUR_05KR IS31FL3737_PUR_05KR +#define PUR_1KR IS31FL3737_PUR_1KR +#define PUR_2KR IS31FL3737_PUR_2KR +#define PUR_4KR IS31FL3737_PUR_4KR +#define PUR_8KR IS31FL3737_PUR_8KR +#define PUR_16KR IS31FL3737_PUR_16KR +#define PUR_32KR IS31FL3737_PUR_32KR +// ======== + #include #include -#include #include "progmem.h" typedef struct is31_led { @@ -49,14 +81,14 @@ void is31fl3737_set_led_control_register(uint8_t index, bool red, bool green, bo void is31fl3737_update_pwm_buffers(uint8_t addr, uint8_t index); void is31fl3737_update_led_control_registers(uint8_t addr, uint8_t index); -#define PUR_0R 0x00 // No PUR resistor -#define PUR_05KR 0x01 // 0.5k Ohm resistor in t_NOL -#define PUR_1KR 0x02 // 1.0k Ohm resistor in t_NOL -#define PUR_2KR 0x03 // 2.0k Ohm resistor in t_NOL -#define PUR_4KR 0x04 // 4.0k Ohm resistor in t_NOL -#define PUR_8KR 0x05 // 8.0k Ohm resistor in t_NOL -#define PUR_16KR 0x06 // 16k Ohm resistor in t_NOL -#define PUR_32KR 0x07 // 32k Ohm resistor in t_NOL +#define IS31FL3737_PUR_0R 0x00 // No PUR resistor +#define IS31FL3737_PUR_05KR 0x01 // 0.5k Ohm resistor in t_NOL +#define IS31FL3737_PUR_1KR 0x02 // 1.0k Ohm resistor in t_NOL +#define IS31FL3737_PUR_2KR 0x03 // 2.0k Ohm resistor in t_NOL +#define IS31FL3737_PUR_4KR 0x04 // 4.0k Ohm resistor in t_NOL +#define IS31FL3737_PUR_8KR 0x05 // 8.0k Ohm resistor in t_NOL +#define IS31FL3737_PUR_16KR 0x06 // 16k Ohm resistor in t_NOL +#define IS31FL3737_PUR_32KR 0x07 // 32k Ohm resistor in t_NOL #define A_1 0x00 #define A_2 0x01 diff --git a/keyboards/dztech/tofu/ii/v1/config.h b/keyboards/dztech/tofu/ii/v1/config.h index 67a4c757af..b709c8d2ba 100644 --- a/keyboards/dztech/tofu/ii/v1/config.h +++ b/keyboards/dztech/tofu/ii/v1/config.h @@ -81,7 +81,7 @@ # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL # define DRIVER_ADDR_1 0b1010000 # define DRIVER_ADDR_2 0b1011111 -# define DRIVER_COUNT 2 +# define IS31FL3737_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 46 # define DRIVER_2_LED_TOTAL 20 # define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/dztech/tofu/jr/v1/config.h b/keyboards/dztech/tofu/jr/v1/config.h index a05cdacf79..a9ab620c58 100644 --- a/keyboards/dztech/tofu/jr/v1/config.h +++ b/keyboards/dztech/tofu/jr/v1/config.h @@ -81,7 +81,7 @@ # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL # define DRIVER_ADDR_1 0b1010000 # define DRIVER_ADDR_2 0b1011111 -# define DRIVER_COUNT 2 +# define IS31FL3737_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 48 # define DRIVER_2_LED_TOTAL 20 # define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/frooastboard/walnut/config.h b/keyboards/frooastboard/walnut/config.h index 2703ec1e37..2f11b88377 100644 --- a/keyboards/frooastboard/walnut/config.h +++ b/keyboards/frooastboard/walnut/config.h @@ -3,12 +3,8 @@ #pragma once -#define ISSI_TIMEOUT 100 -#define ISSI_PERSISTENCE 0 -#define ISSI_PWM_FREQUENCY 0b010 -#define ISSI_SWPULLUP PUR_0R -#define ISSI_CSPULLUP PUR_0R -#define DRIVER_COUNT 1 +#define IS31FL3737_PWM_FREQUENCY 0b010 +#define IS31FL3737_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 48 #define DRIVER_ADDR_1 0b1010000 diff --git a/keyboards/mt/mt84/config.h b/keyboards/mt/mt84/config.h index 67aae9a1fd..aba0632179 100644 --- a/keyboards/mt/mt84/config.h +++ b/keyboards/mt/mt84/config.h @@ -27,7 +27,7 @@ - #define DRIVER_COUNT 2 + #define IS31FL3737_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 44 #define DRIVER_2_LED_TOTAL 40 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/planck/ez/config.h b/keyboards/planck/ez/config.h index 7cfc65d509..ca57e4e772 100644 --- a/keyboards/planck/ez/config.h +++ b/keyboards/planck/ez/config.h @@ -52,7 +52,7 @@ #define DRIVER_ADDR_1 0b1010000 -#define DRIVER_COUNT 1 +#define IS31FL3737_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 47 #define RGB_MATRIX_KEYPRESSES From 2d41443e6a2c97ab018879aac5048cdf28958bdd Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 13 Sep 2023 22:50:20 +1000 Subject: [PATCH 036/496] is31fl3736: driver naming cleanups (#21903) --- docs/feature_rgb_matrix.md | 36 +++++----- drivers/led/issi/is31fl3736.c | 103 ++++++++++++++------------- drivers/led/issi/is31fl3736.h | 52 +++++++++----- keyboards/wilba_tech/wt60_a/config.h | 3 + keyboards/wilba_tech/wt65_a/config.h | 3 + keyboards/wilba_tech/wt65_b/config.h | 3 + keyboards/wilba_tech/wt75_a/config.h | 3 + keyboards/wilba_tech/wt75_b/config.h | 3 + keyboards/wilba_tech/wt75_c/config.h | 3 + keyboards/wilba_tech/wt80_a/config.h | 3 + 10 files changed, 126 insertions(+), 86 deletions(-) diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index 76c5c4f90b..be12c26756 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -170,31 +170,31 @@ Configure the hardware via your `config.h`: | Variable | Description | Default | |----------|-------------|---------| -| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 | -| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | -| `ISSI_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3736B only | 0 | -| `ISSI_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF | -| `ISSI_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | -| `ISSI_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | -| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | +| `IS31FL3736_I2C_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 | +| `IS31FL3736_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | +| `IS31FL3736_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3736B only | 0 | +| `IS31FL3736_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF | +| `IS31FL3736_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | +| `IS31FL3736_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | +| `IS31FL3736_DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | | `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | | | `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | | | `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | | | `DRIVER_ADDR_3` | (Optional) Address for the third RGB driver | | | `DRIVER_ADDR_4` | (Optional) Address for the fourth RGB driver | | -The IS31FL3736 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`ISSI_SWPULLUP`/`ISSI_CSPULLUP` are given the value of`PUR_0R`), the values that can be set to enable de-ghosting are as follows: +The IS31FL3736 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`IS31FL3736_SWPULLUP`/`IS31FL3736_CSPULLUP` are given the value of `IS31FL3736_PUR_0R`), the values that can be set to enable de-ghosting are as follows: -| `ISSI_SWPULLUP/ISSI_CSPULLUP` | Description | +| `IS31FL3736_SWPULLUP/IS31FL3736_CSPULLUP` | Description | |----------------------|-------------| -| `PUR_0R` | (default) Do not use the on-chip resistors/enable de-ghosting | -| `PUR_05KR` | The 0.5k Ohm resistor used during blanking period (t_NOL) | -| `PUR_1KR` | The 1k Ohm resistor used during blanking period (t_NOL) | -| `PUR_2KR` | The 2k Ohm resistor used during blanking period (t_NOL) | -| `PUR_4KR` | The 4k Ohm resistor used during blanking period (t_NOL) | -| `PUR_8KR` | The 8k Ohm resistor during blanking period (t_NOL) | -| `PUR_16KR` | The 16k Ohm resistor during blanking period (t_NOL) | -| `PUR_32KR` | The 32k Ohm resistor used during blanking period (t_NOL) | +| `IS31FL3736_PUR_0R` | (default) Do not use the on-chip resistors/enable de-ghosting | +| `IS31FL3736_PUR_05KR` | The 0.5k Ohm resistor used during blanking period (t_NOL) | +| `IS31FL3736_PUR_1KR` | The 1k Ohm resistor used during blanking period (t_NOL) | +| `IS31FL3736_PUR_2KR` | The 2k Ohm resistor used during blanking period (t_NOL) | +| `IS31FL3736_PUR_4KR` | The 4k Ohm resistor used during blanking period (t_NOL) | +| `IS31FL3736_PUR_8KR` | The 8k Ohm resistor during blanking period (t_NOL) | +| `IS31FL3736_PUR_16KR` | The 16k Ohm resistor during blanking period (t_NOL) | +| `IS31FL3736_PUR_32KR` | The 32k Ohm resistor used during blanking period (t_NOL) | Here is an example using 2 drivers. @@ -211,7 +211,7 @@ Here is an example using 2 drivers. #define DRIVER_ADDR_1 0b1010000 #define DRIVER_ADDR_2 0b1010001 -#define DRIVER_COUNT 2 +#define IS31FL3736_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 30 #define DRIVER_2_LED_TOTAL 32 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/drivers/led/issi/is31fl3736.c b/drivers/led/issi/is31fl3736.c index 0de8b3bbae..a070836b38 100644 --- a/drivers/led/issi/is31fl3736.c +++ b/drivers/led/issi/is31fl3736.c @@ -16,6 +16,7 @@ */ #include "is31fl3736.h" +#include #include "i2c_master.h" #include "wait.h" @@ -29,42 +30,42 @@ // ADDR1 represents A1:A0 of the 7-bit address. // ADDR2 represents A3:A2 of the 7-bit address. // The result is: 0b101(ADDR2)(ADDR1) -#define ISSI_ADDR_DEFAULT 0x50 +#define IS31FL3736_I2C_ADDRESS_DEFAULT 0x50 -#define ISSI_COMMANDREGISTER 0xFD -#define ISSI_COMMANDREGISTER_WRITELOCK 0xFE -#define ISSI_INTERRUPTMASKREGISTER 0xF0 -#define ISSI_INTERRUPTSTATUSREGISTER 0xF1 +#define IS31FL3736_COMMANDREGISTER 0xFD +#define IS31FL3736_COMMANDREGISTER_WRITELOCK 0xFE +#define IS31FL3736_INTERRUPTMASKREGISTER 0xF0 +#define IS31FL3736_INTERRUPTSTATUSREGISTER 0xF1 -#define ISSI_PAGE_LEDCONTROL 0x00 // PG0 -#define ISSI_PAGE_PWM 0x01 // PG1 -#define ISSI_PAGE_AUTOBREATH 0x02 // PG2 -#define ISSI_PAGE_FUNCTION 0x03 // PG3 +#define IS31FL3736_PAGE_LEDCONTROL 0x00 // PG0 +#define IS31FL3736_PAGE_PWM 0x01 // PG1 +#define IS31FL3736_PAGE_AUTOBREATH 0x02 // PG2 +#define IS31FL3736_PAGE_FUNCTION 0x03 // PG3 -#define ISSI_REG_CONFIGURATION 0x00 // PG3 -#define ISSI_REG_GLOBALCURRENT 0x01 // PG3 -#define ISSI_REG_RESET 0x11 // PG3 -#define ISSI_REG_SWPULLUP 0x0F // PG3 -#define ISSI_REG_CSPULLUP 0x10 // PG3 +#define IS31FL3736_REG_CONFIGURATION 0x00 // PG3 +#define IS31FL3736_REG_GLOBALCURRENT 0x01 // PG3 +#define IS31FL3736_REG_RESET 0x11 // PG3 +#define IS31FL3736_REG_SWPULLUP 0x0F // PG3 +#define IS31FL3736_REG_CSPULLUP 0x10 // PG3 -#ifndef ISSI_TIMEOUT -# define ISSI_TIMEOUT 100 +#ifndef IS31FL3736_TIMEOUT +# define IS31FL3736_I2C_TIMEOUT 100 #endif -#ifndef ISSI_PERSISTENCE -# define ISSI_PERSISTENCE 0 +#ifndef IS31FL3736_I2C_PERSISTENCE +# define IS31FL3736_I2C_PERSISTENCE 0 #endif -#ifndef ISSI_SWPULLUP -# define ISSI_SWPULLUP PUR_0R +#ifndef IS31FL3736_SWPULLUP +# define IS31FL3736_SWPULLUP IS31FL3736_PUR_0R #endif -#ifndef ISSI_CSPULLUP -# define ISSI_CSPULLUP PUR_0R +#ifndef IS31FL3736_CSPULLUP +# define IS31FL3736_CSPULLUP IS31FL3736_PUR_0R #endif -#ifndef ISSI_GLOBALCURRENT -# define ISSI_GLOBALCURRENT 0xFF +#ifndef IS31FL3736_GLOBALCURRENT +# define IS31FL3736_GLOBALCURRENT 0xFF #endif // Transfer buffer for TWITransmitData() @@ -76,22 +77,22 @@ uint8_t g_twi_transfer_buffer[20]; // We could optimize this and take out the unused registers from these // buffers and the transfers in is31fl3736_write_pwm_buffer() but it's // probably not worth the extra complexity. -uint8_t g_pwm_buffer[DRIVER_COUNT][192]; -bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false}; +uint8_t g_pwm_buffer[IS31FL3736_DRIVER_COUNT][192]; +bool g_pwm_buffer_update_required[IS31FL3736_DRIVER_COUNT] = {false}; -uint8_t g_led_control_registers[DRIVER_COUNT][24] = {{0}, {0}}; -bool g_led_control_registers_update_required = false; +uint8_t g_led_control_registers[IS31FL3736_DRIVER_COUNT][24] = {{0}, {0}}; +bool g_led_control_registers_update_required = false; void is31fl3736_write_register(uint8_t addr, uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; g_twi_transfer_buffer[1] = data; -#if ISSI_PERSISTENCE > 0 - for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) == 0) break; +#if IS31FL3736_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3736_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3736_I2C_TIMEOUT) == 0) break; } #else - i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT); + i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3736_I2C_TIMEOUT); #endif } @@ -109,12 +110,12 @@ void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 16); -#if ISSI_PERSISTENCE > 0 - for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT) == 0) break; +#if IS31FL3736_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3736_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3736_I2C_TIMEOUT) == 0) break; } #else - i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT); + i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3736_I2C_TIMEOUT); #endif } } @@ -126,20 +127,20 @@ void is31fl3736_init(uint8_t addr) { // then disable software shutdown. // Unlock the command register. - is31fl3736_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG0 - is31fl3736_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); + is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_LEDCONTROL); // Turn off all LEDs. for (int i = 0x00; i <= 0x17; i++) { is31fl3736_write_register(addr, i, 0x00); } // Unlock the command register. - is31fl3736_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG1 - is31fl3736_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); + is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_PWM); // Set PWM on all LEDs to 0 // No need to setup Breath registers to PWM as that is the default. for (int i = 0x00; i <= 0xBF; i++) { @@ -147,18 +148,18 @@ void is31fl3736_init(uint8_t addr) { } // Unlock the command register. - is31fl3736_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG3 - is31fl3736_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION); + is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_FUNCTION); // Set de-ghost pull-up resistors (SWx) - is31fl3736_write_register(addr, ISSI_REG_SWPULLUP, ISSI_SWPULLUP); + is31fl3736_write_register(addr, IS31FL3736_REG_SWPULLUP, IS31FL3736_SWPULLUP); // Set de-ghost pull-down resistors (CSx) - is31fl3736_write_register(addr, ISSI_REG_CSPULLUP, ISSI_CSPULLUP); + is31fl3736_write_register(addr, IS31FL3736_REG_CSPULLUP, IS31FL3736_CSPULLUP); // Set global current to maximum. - is31fl3736_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT); + is31fl3736_write_register(addr, IS31FL3736_REG_GLOBALCURRENT, IS31FL3736_GLOBALCURRENT); // Disable software shutdown. - is31fl3736_write_register(addr, ISSI_REG_CONFIGURATION, 0x01); + is31fl3736_write_register(addr, IS31FL3736_REG_CONFIGURATION, 0x01); // Wait 10ms to ensure the device has woken up. wait_ms(10); @@ -266,19 +267,19 @@ void is31fl3736_mono_set_led_control_register(uint8_t index, bool enabled) { void is31fl3736_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { // Firstly we need to unlock the command register and select PG1 - is31fl3736_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3736_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); + is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_PWM); is31fl3736_write_pwm_buffer(addr, g_pwm_buffer[index]); + g_pwm_buffer_update_required[index] = false; } - g_pwm_buffer_update_required[index] = false; } void is31fl3736_update_led_control_registers(uint8_t addr1, uint8_t addr2) { if (g_led_control_registers_update_required) { // Firstly we need to unlock the command register and select PG0 - is31fl3736_write_register(addr1, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3736_write_register(addr1, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); + is31fl3736_write_register(addr1, IS31FL3736_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3736_write_register(addr1, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_LEDCONTROL); for (int i = 0; i < 24; i++) { is31fl3736_write_register(addr1, i, g_led_control_registers[0][i]); // is31fl3736_write_register(addr2, i, g_led_control_registers[1][i]); diff --git a/drivers/led/issi/is31fl3736.h b/drivers/led/issi/is31fl3736.h index 32bdef4a80..90e59da8b0 100644 --- a/drivers/led/issi/is31fl3736.h +++ b/drivers/led/issi/is31fl3736.h @@ -19,19 +19,37 @@ #include #include -#include #include "progmem.h" -// Simple interface option. -// If these aren't defined, just define them to make it compile - -#ifndef DRIVER_COUNT -# define DRIVER_COUNT 2 +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_COUNT +# define IS31FL3736_DRIVER_COUNT DRIVER_COUNT +#endif +#ifdef ISSI_TIMEOUT +# define IS31FL3736_I2C_TIMEOUT ISSI_TIMEOUT +#endif +#ifdef ISSI_PERSISTENCE +# define IS31FL3736_I2C_PERSISTENCE ISSI_PERSISTENCE +#endif +#ifdef ISSI_SWPULLUP +# define IS31FL3736_SWPULLUP ISSI_SWPULLUP +#endif +#ifdef ISSI_CSPULLUP +# define IS31FL3736_CSPULLUP ISSI_CSPULLUP +#endif +#ifdef ISSI_GLOBALCURRENT +# define IS31FL3736_GLOBALCURRENT ISSI_GLOBALCURRENT #endif -#ifndef RGB_MATRIX_LED_COUNT -# define RGB_MATRIX_LED_COUNT 96 -#endif +#define PUR_0R IS31FL3736_PUR_0R +#define PUR_05KR IS31FL3736_PUR_05KR +#define PUR_1KR IS31FL3736_PUR_1KR +#define PUR_2KR IS31FL3736_PUR_2KR +#define PUR_4KR IS31FL3736_PUR_4KR +#define PUR_8KR IS31FL3736_PUR_8KR +#define PUR_16KR IS31FL3736_PUR_16KR +#define PUR_32KR IS31FL3736_PUR_32KR +// ======== typedef struct is31_led { uint8_t driver : 2; @@ -62,14 +80,14 @@ void is31fl3736_mono_set_led_control_register(uint8_t index, bool enabled); void is31fl3736_update_pwm_buffers(uint8_t addr, uint8_t index); void is31fl3736_update_led_control_registers(uint8_t addr, uint8_t index); -#define PUR_0R 0x00 // No PUR resistor -#define PUR_05KR 0x01 // 0.5k Ohm resistor -#define PUR_1KR 0x02 // 1.0k Ohm resistor -#define PUR_2KR 0x03 // 2.0k Ohm resistor -#define PUR_4KR 0x04 // 4.0k Ohm resistor -#define PUR_8KR 0x05 // 8.0k Ohm resistor -#define PUR_16KR 0x06 // 16k Ohm resistor -#define PUR_32KR 0x07 // 32k Ohm resistor +#define IS31FL3736_PUR_0R 0x00 // No PUR resistor +#define IS31FL3736_PUR_05KR 0x01 // 0.5k Ohm resistor +#define IS31FL3736_PUR_1KR 0x02 // 1.0k Ohm resistor +#define IS31FL3736_PUR_2KR 0x03 // 2.0k Ohm resistor +#define IS31FL3736_PUR_4KR 0x04 // 4.0k Ohm resistor +#define IS31FL3736_PUR_8KR 0x05 // 8.0k Ohm resistor +#define IS31FL3736_PUR_16KR 0x06 // 16k Ohm resistor +#define IS31FL3736_PUR_32KR 0x07 // 32k Ohm resistor #define A_1 0x00 #define A_2 0x02 diff --git a/keyboards/wilba_tech/wt60_a/config.h b/keyboards/wilba_tech/wt60_a/config.h index 488eeade83..54f68e9aaf 100644 --- a/keyboards/wilba_tech/wt60_a/config.h +++ b/keyboards/wilba_tech/wt60_a/config.h @@ -61,3 +61,6 @@ // Backlight config starts after VIA's EEPROM usage, // dynamic keymaps start after this. #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 + +#define IS31FL3736_DRIVER_COUNT 2 +#define RGB_MATRIX_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt65_a/config.h b/keyboards/wilba_tech/wt65_a/config.h index aa75002b4f..8b30dd6cde 100644 --- a/keyboards/wilba_tech/wt65_a/config.h +++ b/keyboards/wilba_tech/wt65_a/config.h @@ -61,3 +61,6 @@ // Backlight config starts after VIA's EEPROM usage, // dynamic keymaps start after this. #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 + +#define IS31FL3736_DRIVER_COUNT 2 +#define RGB_MATRIX_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt65_b/config.h b/keyboards/wilba_tech/wt65_b/config.h index 60cdbe4cc6..0a2a7526d9 100644 --- a/keyboards/wilba_tech/wt65_b/config.h +++ b/keyboards/wilba_tech/wt65_b/config.h @@ -61,3 +61,6 @@ // Backlight config starts after VIA's EEPROM usage, // dynamic keymaps start after this. #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 + +#define IS31FL3736_DRIVER_COUNT 2 +#define RGB_MATRIX_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt75_a/config.h b/keyboards/wilba_tech/wt75_a/config.h index 4638b0fba9..e987252e44 100644 --- a/keyboards/wilba_tech/wt75_a/config.h +++ b/keyboards/wilba_tech/wt75_a/config.h @@ -61,3 +61,6 @@ // Backlight config starts after VIA's EEPROM usage, // dynamic keymaps start after this. #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 + +#define IS31FL3736_DRIVER_COUNT 2 +#define RGB_MATRIX_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt75_b/config.h b/keyboards/wilba_tech/wt75_b/config.h index f519fe6603..9d6dfb9585 100644 --- a/keyboards/wilba_tech/wt75_b/config.h +++ b/keyboards/wilba_tech/wt75_b/config.h @@ -61,3 +61,6 @@ // Backlight config starts after VIA's EEPROM usage, // dynamic keymaps start after this. #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 + +#define IS31FL3736_DRIVER_COUNT 2 +#define RGB_MATRIX_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt75_c/config.h b/keyboards/wilba_tech/wt75_c/config.h index 7d07822eb6..c4f9170872 100644 --- a/keyboards/wilba_tech/wt75_c/config.h +++ b/keyboards/wilba_tech/wt75_c/config.h @@ -61,3 +61,6 @@ // Backlight config starts after VIA's EEPROM usage, // dynamic keymaps start after this. #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 + +#define IS31FL3736_DRIVER_COUNT 2 +#define RGB_MATRIX_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt80_a/config.h b/keyboards/wilba_tech/wt80_a/config.h index 59cb397a00..b33d797bdf 100644 --- a/keyboards/wilba_tech/wt80_a/config.h +++ b/keyboards/wilba_tech/wt80_a/config.h @@ -61,3 +61,6 @@ // Backlight config starts after VIA's EEPROM usage, // dynamic keymaps start after this. #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 + +#define IS31FL3736_DRIVER_COUNT 2 +#define RGB_MATRIX_LED_COUNT 96 From 1cbb5ae99e33e450e324919d47c5a3c6546c481e Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 13 Sep 2023 22:52:16 +1000 Subject: [PATCH 037/496] is31fl3733: driver naming cleanups (#21905) --- docs/feature_rgb_matrix.md | 34 ++--- drivers/led/issi/is31fl3733-simple.c | 119 ++++++++--------- drivers/led/issi/is31fl3733-simple.h | 47 +++++-- drivers/led/issi/is31fl3733.c | 113 ++++++++-------- drivers/led/issi/is31fl3733.h | 46 ++++++- keyboards/4pplet/perk60_iso/rev_a/config.h | 4 +- keyboards/abko/ak84bt/config.h | 2 +- keyboards/akko/5108/config.h | 2 +- keyboards/akko/acr87/config.h | 2 +- keyboards/akko/top40/config.h | 2 +- keyboards/axolstudio/yeti/hotswap/config.h | 2 +- keyboards/canary/canary60rgb/v1/config.h | 2 +- keyboards/chosfox/cf81/config.h | 2 +- keyboards/drop/alt/v2/config.h | 4 +- keyboards/drop/ctrl/v2/config.h | 4 +- keyboards/drop/sense75/config.h | 4 +- keyboards/drop/shift/v2/config.h | 4 +- keyboards/durgod/dgk6x/config.h | 2 +- keyboards/dztech/dz60rgb/v1/config.h | 2 +- keyboards/dztech/dz60rgb/v2/config.h | 2 +- keyboards/dztech/dz60rgb/v2_1/config.h | 2 +- keyboards/dztech/dz60rgb_ansi/v1/config.h | 2 +- keyboards/dztech/dz60rgb_ansi/v2/config.h | 2 +- keyboards/dztech/dz60rgb_ansi/v2_1/config.h | 2 +- keyboards/dztech/dz60rgb_wkl/v1/config.h | 2 +- keyboards/dztech/dz60rgb_wkl/v2/config.h | 2 +- keyboards/dztech/dz60rgb_wkl/v2_1/config.h | 2 +- keyboards/dztech/dz64rgb/config.h | 2 +- keyboards/evyd13/atom47/rev5/config.h | 2 +- keyboards/exclusive/e6_rgb/config.h | 2 +- keyboards/feker/ik75/config.h | 2 +- keyboards/flashquark/horizon_z/config.h | 2 +- keyboards/hs60/v2/ansi/config.h | 2 +- keyboards/hs60/v2/hhkb/config.h | 2 +- keyboards/hs60/v2/iso/config.h | 2 +- keyboards/inland/kb83/config.h | 2 +- keyboards/inland/mk47/config.h | 2 +- keyboards/input_club/k_type/config.h | 2 +- keyboards/input_club/k_type/is31fl3733-dual.c | 124 +++++++++++------- keyboards/input_club/k_type/is31fl3733-dual.h | 8 ++ .../input_club/k_type/k_type-rgbdriver.c | 10 +- keyboards/input_club/k_type/k_type.c | 12 +- keyboards/kbdfans/kbdmini/config.h | 2 +- keyboards/keebwerk/mega/ansi/config.h | 2 +- keyboards/keychron/q1/config.h | 2 +- keyboards/keychron/q1/iso_encoder/config.h | 8 -- keyboards/kprepublic/bm60hsrgb/rev2/config.h | 2 +- .../kprepublic/bm60hsrgb_ec/rev2/config.h | 2 +- .../kprepublic/bm60hsrgb_iso/rev2/config.h | 2 +- .../kprepublic/bm60hsrgb_poker/rev2/config.h | 2 +- keyboards/latincompass/latin60rgb/config.h | 2 +- keyboards/miller/gm862/config.h | 2 +- keyboards/monsgeek/m1/config.h | 2 +- keyboards/monsgeek/m5/config.h | 2 +- keyboards/monsgeek/m6/config.h | 2 +- keyboards/mt/mt64rgb/config.h | 2 +- keyboards/novelkeys/nk65/config.h | 2 +- keyboards/novelkeys/nk87/config.h | 2 +- keyboards/playkbtw/pk64rgb/config.h | 2 +- keyboards/redragon/k667/config.h | 2 +- keyboards/spaceholdings/nebula68/config.h | 2 +- keyboards/teleport/native/config.h | 2 +- 62 files changed, 358 insertions(+), 277 deletions(-) diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index be12c26756..af548f37fe 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -83,13 +83,13 @@ You can use between 1 and 4 IS31FL3733 IC's. Do not specify `DRIVER_ADDR_` de | Variable | Description | Default | |----------|-------------|---------| -| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 | -| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | -| `ISSI_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3733B only | 0 | -| `ISSI_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF | -| `ISSI_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | -| `ISSI_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | -| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | +| `IS31FL3733_I2C_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 | +| `IS31FL3733_I2C_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | +| `IS31FL3733_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3733B only | 0 | +| `IS31FL3733_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF | +| `IS31FL3733_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | +| `IS31FL3733_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | +| `IS31FL3733_DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | | `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | | | `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | | | `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | | @@ -100,17 +100,17 @@ You can use between 1 and 4 IS31FL3733 IC's. Do not specify `DRIVER_ADDR_` de | `DRIVER_SYNC_3` | (Optional) Sync configuration for the third RGB driver | 0 | | `DRIVER_SYNC_4` | (Optional) Sync configuration for the fourth RGB driver | 0 | -The IS31FL3733 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`ISSI_SWPULLUP`/`ISSI_CSPULLUP` are given the value of`PUR_0R`), the values that can be set to enable de-ghosting are as follows: +The IS31FL3733 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`IS31FL3733_SWPULLUP`/`IS31FL3733_CSPULLUP` are given the value of `IS31FL3733_PUR_0R`), the values that can be set to enable de-ghosting are as follows: -| `ISSI_SWPULLUP/ISSI_CSPULLUP` | Description | +| `IS31FL3733_SWPULLUP/IS31FL3733_CSPULLUP` | Description | |----------------------|-------------| -| `PUR_0R` | (default) Do not use the on-chip resistors/enable de-ghosting | -| `PUR_05KR` | The 0.5k Ohm resistor used during blanking period (t_NOL) | -| `PUR_3KR` | The 3k Ohm resistor used at all times | -| `PUR_4KR` | The 4k Ohm resistor used at all times | -| `PUR_8KR` | The 8k Ohm resistor used at all times | -| `PUR_16KR` | The 16k Ohm resistor used at all times | -| `PUR_32KR` | The 32k Ohm resistor used during blanking period (t_NOL) | +| `IS31FL3733_PUR_0R` | (default) Do not use the on-chip resistors/enable de-ghosting | +| `IS31FL3733_PUR_05KR` | The 0.5k Ohm resistor used during blanking period (t_NOL) | +| `IS31FL3733_PUR_3KR` | The 3k Ohm resistor used at all times | +| `IS31FL3733_PUR_4KR` | The 4k Ohm resistor used at all times | +| `IS31FL3733_PUR_8KR` | The 8k Ohm resistor used at all times | +| `IS31FL3733_PUR_16KR` | The 16k Ohm resistor used at all times | +| `IS31FL3733_PUR_32KR` | The 32k Ohm resistor used during blanking period (t_NOL) | Here is an example using 2 drivers. @@ -128,7 +128,7 @@ Here is an example using 2 drivers. #define DRIVER_ADDR_1 0b1010000 #define DRIVER_ADDR_2 0b1010011 -#define DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 58 #define DRIVER_2_LED_TOTAL 10 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/drivers/led/issi/is31fl3733-simple.c b/drivers/led/issi/is31fl3733-simple.c index f9a0a271a8..fde492509f 100644 --- a/drivers/led/issi/is31fl3733-simple.c +++ b/drivers/led/issi/is31fl3733-simple.c @@ -19,6 +19,7 @@ */ #include "is31fl3733-simple.h" +#include #include "i2c_master.h" #include "wait.h" @@ -32,46 +33,46 @@ // ADDR1 represents A1:A0 of the 7-bit address. // ADDR2 represents A3:A2 of the 7-bit address. // The result is: 0b101(ADDR2)(ADDR1) -#define ISSI_ADDR_DEFAULT 0x50 +#define IS31FL3733_I2C_ADDRESS_DEFAULT 0x50 -#define ISSI_COMMANDREGISTER 0xFD -#define ISSI_COMMANDREGISTER_WRITELOCK 0xFE -#define ISSI_INTERRUPTMASKREGISTER 0xF0 -#define ISSI_INTERRUPTSTATUSREGISTER 0xF1 +#define IS31FL3733_COMMANDREGISTER 0xFD +#define IS31FL3733_COMMANDREGISTER_WRITELOCK 0xFE +#define IS31FL3733_INTERRUPTMASKREGISTER 0xF0 +#define IS31FL3733_INTERRUPTSTATUSREGISTER 0xF1 -#define ISSI_PAGE_LEDCONTROL 0x00 // PG0 -#define ISSI_PAGE_PWM 0x01 // PG1 -#define ISSI_PAGE_AUTOBREATH 0x02 // PG2 -#define ISSI_PAGE_FUNCTION 0x03 // PG3 +#define IS31FL3733_PAGE_LEDCONTROL 0x00 // PG0 +#define IS31FL3733_PAGE_PWM 0x01 // PG1 +#define IS31FL3733_PAGE_AUTOBREATH 0x02 // PG2 +#define IS31FL3733_PAGE_FUNCTION 0x03 // PG3 -#define ISSI_REG_CONFIGURATION 0x00 // PG3 -#define ISSI_REG_GLOBALCURRENT 0x01 // PG3 -#define ISSI_REG_RESET 0x11 // PG3 -#define ISSI_REG_SWPULLUP 0x0F // PG3 -#define ISSI_REG_CSPULLUP 0x10 // PG3 +#define IS31FL3733_REG_CONFIGURATION 0x00 // PG3 +#define IS31FL3733_REG_GLOBALCURRENT 0x01 // PG3 +#define IS31FL3733_REG_RESET 0x11 // PG3 +#define IS31FL3733_REG_SWPULLUP 0x0F // PG3 +#define IS31FL3733_REG_CSPULLUP 0x10 // PG3 -#ifndef ISSI_TIMEOUT -# define ISSI_TIMEOUT 100 +#ifndef IS31FL3733_I2C_TIMEOUT +# define IS31FL3733_I2C_TIMEOUT 100 #endif -#ifndef ISSI_PERSISTENCE -# define ISSI_PERSISTENCE 0 +#ifndef IS31FL3733_I2C_PERSISTENCE +# define IS31FL3733_I2C_PERSISTENCE 0 #endif -#ifndef ISSI_PWM_FREQUENCY -# define ISSI_PWM_FREQUENCY 0b000 // PFS - IS31FL3733B only +#ifndef IS31FL3733_PWM_FREQUENCY +# define IS31FL3733_PWM_FREQUENCY 0b000 // PFS - IS31FL3733B only #endif -#ifndef ISSI_SWPULLUP -# define ISSI_SWPULLUP PUR_0R +#ifndef IS31FL3733_SWPULLUP +# define IS31FL3733_SWPULLUP IS31FL3733_PUR_0R #endif -#ifndef ISSI_CSPULLUP -# define ISSI_CSPULLUP PUR_0R +#ifndef IS31FL3733_CSPULLUP +# define IS31FL3733_CSPULLUP IS31FL3733_PUR_0R #endif -#ifndef ISSI_GLOBALCURRENT -# define ISSI_GLOBALCURRENT 0xFF +#ifndef IS31FL3733_GLOBALCURRENT +# define IS31FL3733_GLOBALCURRENT 0xFF #endif // Transfer buffer for TWITransmitData() @@ -83,34 +84,34 @@ uint8_t g_twi_transfer_buffer[20]; // We could optimize this and take out the unused registers from these // buffers and the transfers in is31fl3733_write_pwm_buffer() but it's // probably not worth the extra complexity. -uint8_t g_pwm_buffer[LED_DRIVER_COUNT][192]; -bool g_pwm_buffer_update_required[LED_DRIVER_COUNT] = {false}; +uint8_t g_pwm_buffer[IS31FL3733_DRIVER_COUNT][192]; +bool g_pwm_buffer_update_required[IS31FL3733_DRIVER_COUNT] = {false}; /* There's probably a better way to init this... */ -#if LED_DRIVER_COUNT == 1 -uint8_t g_led_control_registers[LED_DRIVER_COUNT][24] = {{0}}; -#elif LED_DRIVER_COUNT == 2 -uint8_t g_led_control_registers[LED_DRIVER_COUNT][24] = {{0}, {0}}; -#elif LED_DRIVER_COUNT == 3 -uint8_t g_led_control_registers[LED_DRIVER_COUNT][24] = {{0}, {0}, {0}}; -#elif LED_DRIVER_COUNT == 4 -uint8_t g_led_control_registers[LED_DRIVER_COUNT][24] = {{0}, {0}, {0}, {0}}; +#if IS31FL3733_DRIVER_COUNT == 1 +uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][24] = {{0}}; +#elif IS31FL3733_DRIVER_COUNT == 2 +uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][24] = {{0}, {0}}; +#elif IS31FL3733_DRIVER_COUNT == 3 +uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][24] = {{0}, {0}, {0}}; +#elif IS31FL3733_DRIVER_COUNT == 4 +uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][24] = {{0}, {0}, {0}, {0}}; #endif -bool g_led_control_registers_update_required[LED_DRIVER_COUNT] = {false}; +bool g_led_control_registers_update_required[IS31FL3733_DRIVER_COUNT] = {false}; bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data) { // If the transaction fails function returns false. g_twi_transfer_buffer[0] = reg; g_twi_transfer_buffer[1] = data; -#if ISSI_PERSISTENCE > 0 - for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) != 0) { +#if IS31FL3733_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) { return false; } } #else - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) != 0) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) { return false; } #endif @@ -131,14 +132,14 @@ bool is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer. memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 16); -#if ISSI_PERSISTENCE > 0 - for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT) != 0) { +#if IS31FL3733_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3733_I2C_TIMEOUT) != 0) { return false; } } #else - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT) != 0) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3733_I2C_TIMEOUT) != 0) { return false; } #endif @@ -154,20 +155,20 @@ void is31fl3733_init(uint8_t addr, uint8_t sync) { // Sync is passed so set it according to the datasheet. // Unlock the command register. - is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG0 - is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); + is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_LEDCONTROL); // Turn off all LEDs. for (int i = 0x00; i <= 0x17; i++) { is31fl3733_write_register(addr, i, 0x00); } // Unlock the command register. - is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG1 - is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); + is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_PWM); // Set PWM on all LEDs to 0 // No need to setup Breath registers to PWM as that is the default. for (int i = 0x00; i <= 0xBF; i++) { @@ -175,18 +176,18 @@ void is31fl3733_init(uint8_t addr, uint8_t sync) { } // Unlock the command register. - is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG3 - is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION); + is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_FUNCTION); // Set de-ghost pull-up resistors (SWx) - is31fl3733_write_register(addr, ISSI_REG_SWPULLUP, ISSI_SWPULLUP); + is31fl3733_write_register(addr, IS31FL3733_REG_SWPULLUP, IS31FL3733_SWPULLUP); // Set de-ghost pull-down resistors (CSx) - is31fl3733_write_register(addr, ISSI_REG_CSPULLUP, ISSI_CSPULLUP); + is31fl3733_write_register(addr, IS31FL3733_REG_CSPULLUP, IS31FL3733_CSPULLUP); // Set global current to maximum. - is31fl3733_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT); + is31fl3733_write_register(addr, IS31FL3733_REG_GLOBALCURRENT, IS31FL3733_GLOBALCURRENT); // Disable software shutdown. - is31fl3733_write_register(addr, ISSI_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((ISSI_PWM_FREQUENCY & 0b111) << 3) | 0x01); + is31fl3733_write_register(addr, IS31FL3733_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((IS31FL3733_PWM_FREQUENCY & 0b111) << 3) | 0x01); // Wait 10ms to ensure the device has woken up. wait_ms(10); @@ -230,8 +231,8 @@ void is31fl3733_set_led_control_register(uint8_t index, bool value) { void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { // Firstly we need to unlock the command register and select PG1. - is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); + is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_PWM); // If any of the transactions fail we risk writing dirty PG0, // refresh page 0 just in case. @@ -245,8 +246,8 @@ void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index) { void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { // Firstly we need to unlock the command register and select PG0 - is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); + is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_LEDCONTROL); for (int i = 0; i < 24; i++) { is31fl3733_write_register(addr, i, g_led_control_registers[index][i]); } diff --git a/drivers/led/issi/is31fl3733-simple.h b/drivers/led/issi/is31fl3733-simple.h index 1458f7ac8d..a557cabd7e 100644 --- a/drivers/led/issi/is31fl3733-simple.h +++ b/drivers/led/issi/is31fl3733-simple.h @@ -22,9 +22,40 @@ #include #include -#include #include "progmem.h" +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef LED_DRIVER_COUNT +# define IS31FL3733_DRIVER_COUNT LED_DRIVER_COUNT +#endif +#ifdef ISSI_TIMEOUT +# define IS31FL3733_I2C_TIMEOUT ISSI_TIMEOUT +#endif +#ifdef ISSI_PERSISTENCE +# define IS31FL3733_I2C_PERSISTENCE ISSI_PERSISTENCE +#endif +#ifdef ISSI_PWM_FREQUENCY +# define IS31FL3733_PWM_FREQUENCY ISSI_PWM_FREQUENCY +#endif +#ifdef ISSI_SWPULLUP +# define IS31FL3733_SWPULLUP ISSI_SWPULLUP +#endif +#ifdef ISSI_CSPULLUP +# define IS31FL3733_CSPULLUP ISSI_CSPULLUP +#endif +#ifdef ISSI_GLOBALCURRENT +# define IS31FL3733_GLOBALCURRENT ISSI_GLOBALCURRENT +#endif + +#define PUR_0R IS31FL3733_PUR_0R +#define PUR_05KR IS31FL3733_PUR_05KR +#define PUR_3KR IS31FL3733_PUR_3KR +#define PUR_4KR IS31FL3733_PUR_4KR +#define PUR_8KR IS31FL3733_PUR_8KR +#define PUR_16KR IS31FL3733_PUR_16KR +#define PUR_32KR IS31FL3733_PUR_32KR +// ======== + typedef struct is31_led { uint8_t driver : 2; uint8_t v; @@ -48,13 +79,13 @@ void is31fl3733_set_led_control_register(uint8_t index, bool value); void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index); void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index); -#define PUR_0R 0x00 // No PUR resistor -#define PUR_05KR 0x02 // 0.5k Ohm resistor in t_NOL -#define PUR_3KR 0x03 // 3.0k Ohm resistor on all the time -#define PUR_4KR 0x04 // 4.0k Ohm resistor on all the time -#define PUR_8KR 0x05 // 8.0k Ohm resistor on all the time -#define PUR_16KR 0x06 // 16k Ohm resistor on all the time -#define PUR_32KR 0x07 // 32k Ohm resistor in t_NOL +#define IS31FL3733_PUR_0R 0x00 // No PUR resistor +#define IS31FL3733_PUR_05KR 0x02 // 0.5k Ohm resistor in t_NOL +#define IS31FL3733_PUR_3KR 0x03 // 3.0k Ohm resistor on all the time +#define IS31FL3733_PUR_4KR 0x04 // 4.0k Ohm resistor on all the time +#define IS31FL3733_PUR_8KR 0x05 // 8.0k Ohm resistor on all the time +#define IS31FL3733_PUR_16KR 0x06 // 16k Ohm resistor on all the time +#define IS31FL3733_PUR_32KR 0x07 // 32k Ohm resistor in t_NOL #define A_1 0x00 #define A_2 0x01 diff --git a/drivers/led/issi/is31fl3733.c b/drivers/led/issi/is31fl3733.c index ca431838ef..ecb721196d 100644 --- a/drivers/led/issi/is31fl3733.c +++ b/drivers/led/issi/is31fl3733.c @@ -18,6 +18,7 @@ */ #include "is31fl3733.h" +#include #include "i2c_master.h" #include "wait.h" @@ -31,46 +32,46 @@ // ADDR1 represents A1:A0 of the 7-bit address. // ADDR2 represents A3:A2 of the 7-bit address. // The result is: 0b101(ADDR2)(ADDR1) -#define ISSI_ADDR_DEFAULT 0x50 +#define IS31FL3733_I2C_ADDRESS_DEFAULT 0x50 -#define ISSI_COMMANDREGISTER 0xFD -#define ISSI_COMMANDREGISTER_WRITELOCK 0xFE -#define ISSI_INTERRUPTMASKREGISTER 0xF0 -#define ISSI_INTERRUPTSTATUSREGISTER 0xF1 +#define IS31FL3733_COMMANDREGISTER 0xFD +#define IS31FL3733_COMMANDREGISTER_WRITELOCK 0xFE +#define IS31FL3733_INTERRUPTMASKREGISTER 0xF0 +#define IS31FL3733_INTERRUPTSTATUSREGISTER 0xF1 -#define ISSI_PAGE_LEDCONTROL 0x00 // PG0 -#define ISSI_PAGE_PWM 0x01 // PG1 -#define ISSI_PAGE_AUTOBREATH 0x02 // PG2 -#define ISSI_PAGE_FUNCTION 0x03 // PG3 +#define IS31FL3733_PAGE_LEDCONTROL 0x00 // PG0 +#define IS31FL3733_PAGE_PWM 0x01 // PG1 +#define IS31FL3733_PAGE_AUTOBREATH 0x02 // PG2 +#define IS31FL3733_PAGE_FUNCTION 0x03 // PG3 -#define ISSI_REG_CONFIGURATION 0x00 // PG3 -#define ISSI_REG_GLOBALCURRENT 0x01 // PG3 -#define ISSI_REG_RESET 0x11 // PG3 -#define ISSI_REG_SWPULLUP 0x0F // PG3 -#define ISSI_REG_CSPULLUP 0x10 // PG3 +#define IS31FL3733_REG_CONFIGURATION 0x00 // PG3 +#define IS31FL3733_REG_GLOBALCURRENT 0x01 // PG3 +#define IS31FL3733_REG_RESET 0x11 // PG3 +#define IS31FL3733_REG_SWPULLUP 0x0F // PG3 +#define IS31FL3733_REG_CSPULLUP 0x10 // PG3 -#ifndef ISSI_TIMEOUT -# define ISSI_TIMEOUT 100 +#ifndef IS31FL3733_I2C_TIMEOUT +# define IS31FL3733_I2C_TIMEOUT 100 #endif -#ifndef ISSI_PERSISTENCE -# define ISSI_PERSISTENCE 0 +#ifndef IS31FL3733_I2C_PERSISTENCE +# define IS31FL3733_I2C_PERSISTENCE 0 #endif -#ifndef ISSI_PWM_FREQUENCY -# define ISSI_PWM_FREQUENCY 0b000 // PFS - IS31FL3733B only +#ifndef IS31FL3733_PWM_FREQUENCY +# define IS31FL3733_PWM_FREQUENCY 0b000 // PFS - IS31FL3733B only #endif -#ifndef ISSI_SWPULLUP -# define ISSI_SWPULLUP PUR_0R +#ifndef IS31FL3733_SWPULLUP +# define IS31FL3733_SWPULLUP IS31FL3733_PUR_0R #endif -#ifndef ISSI_CSPULLUP -# define ISSI_CSPULLUP PUR_0R +#ifndef IS31FL3733_CSPULLUP +# define IS31FL3733_CSPULLUP IS31FL3733_PUR_0R #endif -#ifndef ISSI_GLOBALCURRENT -# define ISSI_GLOBALCURRENT 0xFF +#ifndef IS31FL3733_GLOBALCURRENT +# define IS31FL3733_GLOBALCURRENT 0xFF #endif // Transfer buffer for TWITransmitData() @@ -82,25 +83,25 @@ uint8_t g_twi_transfer_buffer[20]; // We could optimize this and take out the unused registers from these // buffers and the transfers in is31fl3733_write_pwm_buffer() but it's // probably not worth the extra complexity. -uint8_t g_pwm_buffer[DRIVER_COUNT][192]; -bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false}; +uint8_t g_pwm_buffer[IS31FL3733_DRIVER_COUNT][192]; +bool g_pwm_buffer_update_required[IS31FL3733_DRIVER_COUNT] = {false}; -uint8_t g_led_control_registers[DRIVER_COUNT][24] = {0}; -bool g_led_control_registers_update_required[DRIVER_COUNT] = {false}; +uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][24] = {0}; +bool g_led_control_registers_update_required[IS31FL3733_DRIVER_COUNT] = {false}; bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data) { // If the transaction fails function returns false. g_twi_transfer_buffer[0] = reg; g_twi_transfer_buffer[1] = data; -#if ISSI_PERSISTENCE > 0 - for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) != 0) { +#if IS31FL3733_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) { return false; } } #else - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) != 0) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) { return false; } #endif @@ -119,18 +120,16 @@ bool is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // Copy the data from i to i+15. // Device will auto-increment register for data after the first byte // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer. - for (int j = 0; j < 16; j++) { - g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j]; - } + memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 16); -#if ISSI_PERSISTENCE > 0 - for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT) != 0) { +#if IS31FL3733_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3733_I2C_TIMEOUT) != 0) { return false; } } #else - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT) != 0) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3733_I2C_TIMEOUT) != 0) { return false; } #endif @@ -146,20 +145,20 @@ void is31fl3733_init(uint8_t addr, uint8_t sync) { // Sync is passed so set it according to the datasheet. // Unlock the command register. - is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG0 - is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); + is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_LEDCONTROL); // Turn off all LEDs. for (int i = 0x00; i <= 0x17; i++) { is31fl3733_write_register(addr, i, 0x00); } // Unlock the command register. - is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG1 - is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); + is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_PWM); // Set PWM on all LEDs to 0 // No need to setup Breath registers to PWM as that is the default. for (int i = 0x00; i <= 0xBF; i++) { @@ -167,18 +166,18 @@ void is31fl3733_init(uint8_t addr, uint8_t sync) { } // Unlock the command register. - is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); // Select PG3 - is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION); + is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_FUNCTION); // Set de-ghost pull-up resistors (SWx) - is31fl3733_write_register(addr, ISSI_REG_SWPULLUP, ISSI_SWPULLUP); + is31fl3733_write_register(addr, IS31FL3733_REG_SWPULLUP, IS31FL3733_SWPULLUP); // Set de-ghost pull-down resistors (CSx) - is31fl3733_write_register(addr, ISSI_REG_CSPULLUP, ISSI_CSPULLUP); + is31fl3733_write_register(addr, IS31FL3733_REG_CSPULLUP, IS31FL3733_CSPULLUP); // Set global current to maximum. - is31fl3733_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT); + is31fl3733_write_register(addr, IS31FL3733_REG_GLOBALCURRENT, IS31FL3733_GLOBALCURRENT); // Disable software shutdown. - is31fl3733_write_register(addr, ISSI_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((ISSI_PWM_FREQUENCY & 0b111) << 3) | 0x01); + is31fl3733_write_register(addr, IS31FL3733_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((IS31FL3733_PWM_FREQUENCY & 0b111) << 3) | 0x01); // Wait 10ms to ensure the device has woken up. wait_ms(10); @@ -238,26 +237,26 @@ void is31fl3733_set_led_control_register(uint8_t index, bool red, bool green, bo void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { // Firstly we need to unlock the command register and select PG1. - is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); + is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_PWM); // If any of the transactions fail we risk writing dirty PG0, // refresh page 0 just in case. if (!is31fl3733_write_pwm_buffer(addr, g_pwm_buffer[index])) { g_led_control_registers_update_required[index] = true; } + g_pwm_buffer_update_required[index] = false; } - g_pwm_buffer_update_required[index] = false; } void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { // Firstly we need to unlock the command register and select PG0 - is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); + is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_LEDCONTROL); for (int i = 0; i < 24; i++) { is31fl3733_write_register(addr, i, g_led_control_registers[index][i]); } + g_led_control_registers_update_required[index] = false; } - g_led_control_registers_update_required[index] = false; } diff --git a/drivers/led/issi/is31fl3733.h b/drivers/led/issi/is31fl3733.h index f37a58de0f..633ed71ee6 100644 --- a/drivers/led/issi/is31fl3733.h +++ b/drivers/led/issi/is31fl3733.h @@ -23,6 +23,38 @@ #include #include "progmem.h" +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_COUNT +# define IS31FL3733_DRIVER_COUNT DRIVER_COUNT +#endif +#ifdef ISSI_TIMEOUT +# define IS31FL3733_I2C_TIMEOUT ISSI_TIMEOUT +#endif +#ifdef ISSI_PERSISTENCE +# define IS31FL3733_I2C_PERSISTENCE ISSI_PERSISTENCE +#endif +#ifdef ISSI_PWM_FREQUENCY +# define IS31FL3733_PWM_FREQUENCY ISSI_PWM_FREQUENCY +#endif +#ifdef ISSI_SWPULLUP +# define IS31FL3733_SWPULLUP ISSI_SWPULLUP +#endif +#ifdef ISSI_CSPULLUP +# define IS31FL3733_CSPULLUP ISSI_CSPULLUP +#endif +#ifdef ISSI_GLOBALCURRENT +# define IS31FL3733_GLOBALCURRENT ISSI_GLOBALCURRENT +#endif + +#define PUR_0R IS31FL3733_PUR_0R +#define PUR_05KR IS31FL3733_PUR_05KR +#define PUR_3KR IS31FL3733_PUR_3KR +#define PUR_4KR IS31FL3733_PUR_4KR +#define PUR_8KR IS31FL3733_PUR_8KR +#define PUR_16KR IS31FL3733_PUR_16KR +#define PUR_32KR IS31FL3733_PUR_32KR +// ======== + typedef struct is31_led { uint8_t driver : 2; uint8_t r; @@ -48,13 +80,13 @@ void is31fl3733_set_led_control_register(uint8_t index, bool red, bool green, bo void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index); void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index); -#define PUR_0R 0x00 // No PUR resistor -#define PUR_05KR 0x02 // 0.5k Ohm resistor in t_NOL -#define PUR_3KR 0x03 // 3.0k Ohm resistor on all the time -#define PUR_4KR 0x04 // 4.0k Ohm resistor on all the time -#define PUR_8KR 0x05 // 8.0k Ohm resistor on all the time -#define PUR_16KR 0x06 // 16k Ohm resistor on all the time -#define PUR_32KR 0x07 // 32k Ohm resistor in t_NOL +#define IS31FL3733_PUR_0R 0x00 // No PUR resistor +#define IS31FL3733_PUR_05KR 0x02 // 0.5k Ohm resistor in t_NOL +#define IS31FL3733_PUR_3KR 0x03 // 3.0k Ohm resistor on all the time +#define IS31FL3733_PUR_4KR 0x04 // 4.0k Ohm resistor on all the time +#define IS31FL3733_PUR_8KR 0x05 // 8.0k Ohm resistor on all the time +#define IS31FL3733_PUR_16KR 0x06 // 16k Ohm resistor on all the time +#define IS31FL3733_PUR_32KR 0x07 // 32k Ohm resistor in t_NOL #define A_1 0x00 #define A_2 0x01 diff --git a/keyboards/4pplet/perk60_iso/rev_a/config.h b/keyboards/4pplet/perk60_iso/rev_a/config.h index e033b16259..a37f0cd09a 100644 --- a/keyboards/4pplet/perk60_iso/rev_a/config.h +++ b/keyboards/4pplet/perk60_iso/rev_a/config.h @@ -22,9 +22,9 @@ along with this program. If not, see . #define LOCKING_RESYNC_ENABLE #define DRIVER_ADDR_1 0b1010000 -#define DRIVER_COUNT 1 +#define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 62 -#define ISSI_PWM_FREQUENCY 0b010 +#define IS31FL3733_PWM_FREQUENCY 0b010 #define RGB_MATRIX_DEFAULT_VAL 80 #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/abko/ak84bt/config.h b/keyboards/abko/ak84bt/config.h index f6a3b55851..8c08c88055 100644 --- a/keyboards/abko/ak84bt/config.h +++ b/keyboards/abko/ak84bt/config.h @@ -20,7 +20,7 @@ #define DRIVER_ADDR_1 0b1010000 #define DRIVER_ADDR_2 0b1010011 -#define DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 45 #define DRIVER_2_LED_TOTAL 45 diff --git a/keyboards/akko/5108/config.h b/keyboards/akko/5108/config.h index f56e825e05..4c04933bcf 100644 --- a/keyboards/akko/5108/config.h +++ b/keyboards/akko/5108/config.h @@ -38,7 +38,7 @@ #define WEAR_LEVELING_BACKING_SIZE (8 * 1024) /* I2C Config for LED Driver */ -#define DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110111 #define I2C1_SCL_PAL_MODE 4 diff --git a/keyboards/akko/acr87/config.h b/keyboards/akko/acr87/config.h index 221cad86ad..6e4d8dd574 100644 --- a/keyboards/akko/acr87/config.h +++ b/keyboards/akko/acr87/config.h @@ -35,7 +35,7 @@ #define WEAR_LEVELING_BACKING_SIZE (8 * 1024) /* I2C Config for LED Driver */ -#define DRIVER_COUNT 3 +#define IS31FL3733_DRIVER_COUNT 3 #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110111 #define DRIVER_ADDR_3 0b1110110 diff --git a/keyboards/akko/top40/config.h b/keyboards/akko/top40/config.h index bd849292e6..e8672856ef 100644 --- a/keyboards/akko/top40/config.h +++ b/keyboards/akko/top40/config.h @@ -35,7 +35,7 @@ #define WEAR_LEVELING_BACKING_SIZE (8 * 1024) /* I2C Config for LED Driver */ -#define DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110111 #define I2C1_SCL_PAL_MODE 4 diff --git a/keyboards/axolstudio/yeti/hotswap/config.h b/keyboards/axolstudio/yeti/hotswap/config.h index 694a6449f0..85d9cfbedd 100644 --- a/keyboards/axolstudio/yeti/hotswap/config.h +++ b/keyboards/axolstudio/yeti/hotswap/config.h @@ -62,6 +62,6 @@ along with this program. If not, see . # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // 16 is equivalent to limiting to 60fps # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define DRIVER_ADDR_1 0b1010000 -# define DRIVER_COUNT 1 +# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 64 #endif diff --git a/keyboards/canary/canary60rgb/v1/config.h b/keyboards/canary/canary60rgb/v1/config.h index e8d0808384..2b733b2649 100644 --- a/keyboards/canary/canary60rgb/v1/config.h +++ b/keyboards/canary/canary60rgb/v1/config.h @@ -34,6 +34,6 @@ # define DISABLE_RGB_MATRIX_SOLID_SPLASH # define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH # define DRIVER_ADDR_1 0b1010000 -# define DRIVER_COUNT 1 +# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 63 #endif diff --git a/keyboards/chosfox/cf81/config.h b/keyboards/chosfox/cf81/config.h index b1ea8bba20..95b2aca688 100644 --- a/keyboards/chosfox/cf81/config.h +++ b/keyboards/chosfox/cf81/config.h @@ -35,7 +35,7 @@ #define WEAR_LEVELING_BACKING_SIZE (8 * 1024) /* I2C Config for LED Driver */ -#define DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110111 #define I2C1_OPMODE OPMODE_I2C diff --git a/keyboards/drop/alt/v2/config.h b/keyboards/drop/alt/v2/config.h index f3f432390e..f256426219 100644 --- a/keyboards/drop/alt/v2/config.h +++ b/keyboards/drop/alt/v2/config.h @@ -16,9 +16,9 @@ #define DRIVER_ADDR_1 0b1010011 #define DRIVER_ADDR_2 0b1011111 -#define DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 111 -#define ISSI_PWM_FREQUENCY 0b010 // 26k +#define IS31FL3733_PWM_FREQUENCY 0b010 // 26k #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_DEFAULT_VAL 100 diff --git a/keyboards/drop/ctrl/v2/config.h b/keyboards/drop/ctrl/v2/config.h index 539c505cb3..dbb1220afc 100644 --- a/keyboards/drop/ctrl/v2/config.h +++ b/keyboards/drop/ctrl/v2/config.h @@ -16,9 +16,9 @@ #define DRIVER_ADDR_1 0b1010011 #define DRIVER_ADDR_2 0b1011111 -#define DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 119 -#define ISSI_PWM_FREQUENCY 0b010 // 26k +#define IS31FL3733_PWM_FREQUENCY 0b010 // 26k #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_DEFAULT_VAL 100 diff --git a/keyboards/drop/sense75/config.h b/keyboards/drop/sense75/config.h index b8d47c311c..0b85e29555 100644 --- a/keyboards/drop/sense75/config.h +++ b/keyboards/drop/sense75/config.h @@ -11,9 +11,9 @@ #define DRIVER_ADDR_1 0b1010000 #define DRIVER_ADDR_2 0b1011111 -#define DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 111 -#define ISSI_PWM_FREQUENCY 0b010 // 26k +#define IS31FL3733_PWM_FREQUENCY 0b010 // 26k #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/drop/shift/v2/config.h b/keyboards/drop/shift/v2/config.h index 6c651d1f83..f78dcb1b0c 100644 --- a/keyboards/drop/shift/v2/config.h +++ b/keyboards/drop/shift/v2/config.h @@ -17,9 +17,9 @@ #define DRIVER_ADDR_1 0b1010011 #define DRIVER_ADDR_2 0b1011111 #define DRIVER_ADDR_3 0b1010000 -#define DRIVER_COUNT 3 +#define IS31FL3733_DRIVER_COUNT 3 #define RGB_MATRIX_LED_COUNT 166 -#define ISSI_PWM_FREQUENCY 0b010 // 26k +#define IS31FL3733_PWM_FREQUENCY 0b010 // 26k #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_DEFAULT_VAL 100 diff --git a/keyboards/durgod/dgk6x/config.h b/keyboards/durgod/dgk6x/config.h index beb580a588..12addab8e8 100644 --- a/keyboards/durgod/dgk6x/config.h +++ b/keyboards/durgod/dgk6x/config.h @@ -48,7 +48,7 @@ #define DRIVER_ADDR_1 0b1010000 #define DRIVER_ADDR_2 0b1010011 -#define DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) /* I2C Alternate function settings */ diff --git a/keyboards/dztech/dz60rgb/v1/config.h b/keyboards/dztech/dz60rgb/v1/config.h index 82d7b6d1e1..bd5663d0f2 100644 --- a/keyboards/dztech/dz60rgb/v1/config.h +++ b/keyboards/dztech/dz60rgb/v1/config.h @@ -56,6 +56,6 @@ # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL # define DRIVER_ADDR_1 0b1010000 -# define DRIVER_COUNT 1 +# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 63 #endif diff --git a/keyboards/dztech/dz60rgb/v2/config.h b/keyboards/dztech/dz60rgb/v2/config.h index 094478f34d..73e37406cb 100644 --- a/keyboards/dztech/dz60rgb/v2/config.h +++ b/keyboards/dztech/dz60rgb/v2/config.h @@ -54,6 +54,6 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define DRIVER_ADDR_1 0b1010000 -# define DRIVER_COUNT 1 +# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 63 #endif diff --git a/keyboards/dztech/dz60rgb/v2_1/config.h b/keyboards/dztech/dz60rgb/v2_1/config.h index a753832ed1..669c343fa0 100644 --- a/keyboards/dztech/dz60rgb/v2_1/config.h +++ b/keyboards/dztech/dz60rgb/v2_1/config.h @@ -70,6 +70,6 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define DRIVER_ADDR_1 0b1010000 -# define DRIVER_COUNT 1 +# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 63 #endif diff --git a/keyboards/dztech/dz60rgb_ansi/v1/config.h b/keyboards/dztech/dz60rgb_ansi/v1/config.h index 5405d671a5..016588e7ba 100644 --- a/keyboards/dztech/dz60rgb_ansi/v1/config.h +++ b/keyboards/dztech/dz60rgb_ansi/v1/config.h @@ -56,6 +56,6 @@ # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL # define DRIVER_ADDR_1 0b1010000 -# define DRIVER_COUNT 1 +# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 61 #endif diff --git a/keyboards/dztech/dz60rgb_ansi/v2/config.h b/keyboards/dztech/dz60rgb_ansi/v2/config.h index 545aa64eea..87718ad5e3 100644 --- a/keyboards/dztech/dz60rgb_ansi/v2/config.h +++ b/keyboards/dztech/dz60rgb_ansi/v2/config.h @@ -54,6 +54,6 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define DRIVER_ADDR_1 0b1010000 -# define DRIVER_COUNT 1 +# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 61 #endif diff --git a/keyboards/dztech/dz60rgb_ansi/v2_1/config.h b/keyboards/dztech/dz60rgb_ansi/v2_1/config.h index 90b6c71e67..2981fb2f59 100644 --- a/keyboards/dztech/dz60rgb_ansi/v2_1/config.h +++ b/keyboards/dztech/dz60rgb_ansi/v2_1/config.h @@ -70,6 +70,6 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define DRIVER_ADDR_1 0b1010000 -# define DRIVER_COUNT 1 +# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 61 #endif diff --git a/keyboards/dztech/dz60rgb_wkl/v1/config.h b/keyboards/dztech/dz60rgb_wkl/v1/config.h index cfe82a7323..e4819dd415 100644 --- a/keyboards/dztech/dz60rgb_wkl/v1/config.h +++ b/keyboards/dztech/dz60rgb_wkl/v1/config.h @@ -56,6 +56,6 @@ # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL # define DRIVER_ADDR_1 0b1010000 -# define DRIVER_COUNT 1 +# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 62 #endif diff --git a/keyboards/dztech/dz60rgb_wkl/v2/config.h b/keyboards/dztech/dz60rgb_wkl/v2/config.h index 38a1aa2c76..286f0718c6 100644 --- a/keyboards/dztech/dz60rgb_wkl/v2/config.h +++ b/keyboards/dztech/dz60rgb_wkl/v2/config.h @@ -51,6 +51,6 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define DRIVER_ADDR_1 0b1010000 -# define DRIVER_COUNT 1 +# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 62 #endif diff --git a/keyboards/dztech/dz60rgb_wkl/v2_1/config.h b/keyboards/dztech/dz60rgb_wkl/v2_1/config.h index 5bcfb21cf7..41274a6bac 100644 --- a/keyboards/dztech/dz60rgb_wkl/v2_1/config.h +++ b/keyboards/dztech/dz60rgb_wkl/v2_1/config.h @@ -70,6 +70,6 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define DRIVER_ADDR_1 0b1010000 -# define DRIVER_COUNT 1 +# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 62 #endif diff --git a/keyboards/dztech/dz64rgb/config.h b/keyboards/dztech/dz64rgb/config.h index 43e1b1c609..a1e779f73c 100644 --- a/keyboards/dztech/dz64rgb/config.h +++ b/keyboards/dztech/dz64rgb/config.h @@ -49,7 +49,7 @@ #define ENABLE_RGB_MATRIX_TYPING_HEATMAP #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define DRIVER_ADDR_1 0b1010000 -#define DRIVER_COUNT 1 +#define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 #endif #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 diff --git a/keyboards/evyd13/atom47/rev5/config.h b/keyboards/evyd13/atom47/rev5/config.h index f50975beb3..d15141e5a5 100644 --- a/keyboards/evyd13/atom47/rev5/config.h +++ b/keyboards/evyd13/atom47/rev5/config.h @@ -49,7 +49,7 @@ along with this program. If not, see . // ADDR2 represents A3:A2 of the 7-bit address. // The result is: 0b101(ADDR2)(ADDR1) #define DRIVER_ADDR_1 0b1010000 -#define DRIVER_COUNT 1 +#define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/exclusive/e6_rgb/config.h b/keyboards/exclusive/e6_rgb/config.h index 7f820b2cad..0e5ecaaa9d 100644 --- a/keyboards/exclusive/e6_rgb/config.h +++ b/keyboards/exclusive/e6_rgb/config.h @@ -6,5 +6,5 @@ #define DRIVER_ADDR_1 0b1010000 -#define DRIVER_COUNT 1 +#define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 63 diff --git a/keyboards/feker/ik75/config.h b/keyboards/feker/ik75/config.h index a9914722fc..2e813d1477 100644 --- a/keyboards/feker/ik75/config.h +++ b/keyboards/feker/ik75/config.h @@ -27,7 +27,7 @@ /* RGB Matrix config */ #define DRIVER_ADDR_1 0b1011111 #define DRIVER_ADDR_2 0b1010000 - #define DRIVER_COUNT 2 + #define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 63 #define DRIVER_2_LED_TOTAL 64 diff --git a/keyboards/flashquark/horizon_z/config.h b/keyboards/flashquark/horizon_z/config.h index 8828834d74..dac6caa24d 100755 --- a/keyboards/flashquark/horizon_z/config.h +++ b/keyboards/flashquark/horizon_z/config.h @@ -73,6 +73,6 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define DRIVER_ADDR_1 0b1010000 -# define DRIVER_COUNT 1 +# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 62 #endif diff --git a/keyboards/hs60/v2/ansi/config.h b/keyboards/hs60/v2/ansi/config.h index 614b44d4d4..8b31f0e066 100644 --- a/keyboards/hs60/v2/ansi/config.h +++ b/keyboards/hs60/v2/ansi/config.h @@ -53,7 +53,7 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } -#define DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 64 // These define which keys in the matrix are alphas/mods diff --git a/keyboards/hs60/v2/hhkb/config.h b/keyboards/hs60/v2/hhkb/config.h index e834616068..7494b2e66c 100644 --- a/keyboards/hs60/v2/hhkb/config.h +++ b/keyboards/hs60/v2/hhkb/config.h @@ -53,7 +53,7 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } -#define DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 64 // These define which keys in the matrix are alphas/mods diff --git a/keyboards/hs60/v2/iso/config.h b/keyboards/hs60/v2/iso/config.h index 7421f1bf12..22608404b5 100644 --- a/keyboards/hs60/v2/iso/config.h +++ b/keyboards/hs60/v2/iso/config.h @@ -50,7 +50,7 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } -#define DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 64 // These define which keys in the matrix are alphas/mods diff --git a/keyboards/inland/kb83/config.h b/keyboards/inland/kb83/config.h index d1e7d11acc..e1b6702bd8 100644 --- a/keyboards/inland/kb83/config.h +++ b/keyboards/inland/kb83/config.h @@ -39,7 +39,7 @@ #define WEAR_LEVELING_BACKING_SIZE (8 * 1024) /* I2C Config for LED Driver */ -#define DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110111 #define I2C1_SDA_PIN B7 diff --git a/keyboards/inland/mk47/config.h b/keyboards/inland/mk47/config.h index 678686555a..7004b38e63 100644 --- a/keyboards/inland/mk47/config.h +++ b/keyboards/inland/mk47/config.h @@ -26,7 +26,7 @@ #define WEAR_LEVELING_BACKING_SIZE (4 * 1024) /* I2C Config for LED Driver */ -#define DRIVER_COUNT 1 +#define IS31FL3733_DRIVER_COUNT 1 #define DRIVER_ADDR_1 0b1110100 /* WB32 MCU has no default definition */ #define I2C1_OPMODE OPMODE_I2C diff --git a/keyboards/input_club/k_type/config.h b/keyboards/input_club/k_type/config.h index 2a4c7d057c..5d4d515d77 100644 --- a/keyboards/input_club/k_type/config.h +++ b/keyboards/input_club/k_type/config.h @@ -105,7 +105,7 @@ along with this program. If not, see . # define DRIVER_ADDR_1 0b1010000 # define DRIVER_ADDR_2 0b1010000 -# define DRIVER_COUNT 2 +# define IS31FL3733_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 64 # define DRIVER_2_LED_TOTAL 55 # define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/input_club/k_type/is31fl3733-dual.c b/keyboards/input_club/k_type/is31fl3733-dual.c index 2dec2b0a26..dd1e268cd6 100644 --- a/keyboards/input_club/k_type/is31fl3733-dual.c +++ b/keyboards/input_club/k_type/is31fl3733-dual.c @@ -16,8 +16,6 @@ * along with this program. If not, see . */ -#ifdef RGB_MATRIX_ENABLE - #include "is31fl3733-dual.h" #include "i2c_master.h" #include "wait.h" @@ -32,30 +30,46 @@ // ADDR1 represents A1:A0 of the 7-bit address. // ADDR2 represents A3:A2 of the 7-bit address. // The result is: 0b101(ADDR2)(ADDR1) -#define ISSI_ADDR_DEFAULT 0x50 +#define IS31FL3733_I2C_ADDRESS_DEFAULT 0x50 -#define ISSI_COMMANDREGISTER 0xFD -#define ISSI_COMMANDREGISTER_WRITELOCK 0xFE -#define ISSI_INTERRUPTMASKREGISTER 0xF0 -#define ISSI_INTERRUPTSTATUSREGISTER 0xF1 +#define IS31FL3733_COMMANDREGISTER 0xFD +#define IS31FL3733_COMMANDREGISTER_WRITELOCK 0xFE +#define IS31FL3733_INTERRUPTMASKREGISTER 0xF0 +#define IS31FL3733_INTERRUPTSTATUSREGISTER 0xF1 -#define ISSI_PAGE_LEDCONTROL 0x00 // PG0 -#define ISSI_PAGE_PWM 0x01 // PG1 -#define ISSI_PAGE_AUTOBREATH 0x02 // PG2 -#define ISSI_PAGE_FUNCTION 0x03 // PG3 +#define IS31FL3733_PAGE_LEDCONTROL 0x00 // PG0 +#define IS31FL3733_PAGE_PWM 0x01 // PG1 +#define IS31FL3733_PAGE_AUTOBREATH 0x02 // PG2 +#define IS31FL3733_PAGE_FUNCTION 0x03 // PG3 -#define ISSI_REG_CONFIGURATION 0x00 // PG3 -#define ISSI_REG_GLOBALCURRENT 0x01 // PG3 -#define ISSI_REG_RESET 0x11 // PG3 -#define ISSI_REG_SWPULLUP 0x0F // PG3 -#define ISSI_REG_CSPULLUP 0x10 // PG3 +#define IS31FL3733_REG_CONFIGURATION 0x00 // PG3 +#define IS31FL3733_REG_GLOBALCURRENT 0x01 // PG3 +#define IS31FL3733_REG_RESET 0x11 // PG3 +#define IS31FL3733_REG_SWPULLUP 0x0F // PG3 +#define IS31FL3733_REG_CSPULLUP 0x10 // PG3 -#ifndef ISSI_TIMEOUT -# define ISSI_TIMEOUT 5000 +#ifndef IS31FL3733_I2C_TIMEOUT +# define IS31FL3733_I2C_TIMEOUT 100 #endif -#ifndef ISSI_PERSISTENCE -# define ISSI_PERSISTENCE 0 +#ifndef IS31FL3733_I2C_PERSISTENCE +# define IS31FL3733_I2C_PERSISTENCE 0 +#endif + +#ifndef IS31FL3733_PWM_FREQUENCY +# define IS31FL3733_PWM_FREQUENCY 0b000 // PFS - IS31FL3733B only +#endif + +#ifndef IS31FL3733_SWPULLUP +# define IS31FL3733_SWPULLUP IS31FL3733_PUR_0R +#endif + +#ifndef IS31FL3733_CSPULLUP +# define IS31FL3733_CSPULLUP IS31FL3733_PUR_0R +#endif + +#ifndef IS31FL3733_GLOBALCURRENT +# define IS31FL3733_GLOBALCURRENT 0xFF #endif // Transfer buffer for TWITransmitData() @@ -67,25 +81,25 @@ uint8_t g_twi_transfer_buffer[20]; // We could optimize this and take out the unused registers from these // buffers and the transfers in is31fl3733_write_pwm_buffer() but it's // probably not worth the extra complexity. -uint8_t g_pwm_buffer[DRIVER_COUNT][192]; -bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false}; +uint8_t g_pwm_buffer[IS31FL3733_DRIVER_COUNT][192]; +bool g_pwm_buffer_update_required[IS31FL3733_DRIVER_COUNT] = {false}; -uint8_t g_led_control_registers[DRIVER_COUNT][24] = {{0}, {0}}; -bool g_led_control_registers_update_required[DRIVER_COUNT] = {false}; +uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][24] = {{0}, {0}}; +bool g_led_control_registers_update_required[IS31FL3733_DRIVER_COUNT] = {false}; bool is31fl3733_write_register(uint8_t index, uint8_t addr, uint8_t reg, uint8_t data) { // If the transaction fails function returns false. g_twi_transfer_buffer[0] = reg; g_twi_transfer_buffer[1] = data; -#if ISSI_PERSISTENCE > 0 - for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) { - if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 2, TIME_US2I(ISSI_TIMEOUT)) != 0) { +#if IS31FL3733_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) { + if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) { return false; } } #else - if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 2, TIME_US2I(ISSI_TIMEOUT)) != 0) { + if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) { return false; } #endif @@ -108,14 +122,14 @@ bool is31fl3733_write_pwm_buffer(uint8_t index, uint8_t addr, uint8_t *pwm_buffe g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j]; } -#if ISSI_PERSISTENCE > 0 - for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) { - if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 17, TIME_US2I(ISSI_TIMEOUT)) != 0) { +#if IS31FL3733_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) { + if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 17, IS31FL3733_I2C_TIMEOUT) != 0) { return false; } } #else - if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 17, TIME_US2I(ISSI_TIMEOUT)) != 0) { + if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 17, IS31FL3733_I2C_TIMEOUT) != 0) { return false; } #endif @@ -131,38 +145,52 @@ void is31fl3733_init(uint8_t bus, uint8_t addr, uint8_t sync) { // Sync is passed so set it according to the datasheet. // Unlock the command register. - is31fl3733_write_register(bus, addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(bus, addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); + // Select PG0 - is31fl3733_write_register(bus, addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); + is31fl3733_write_register(bus, addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_LEDCONTROL); // Turn off all LEDs. for (int i = 0x00; i <= 0x17; i++) { is31fl3733_write_register(bus, addr, i, 0x00); } + // Unlock the command register. - is31fl3733_write_register(bus, addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(bus, addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); + // Select PG1 - is31fl3733_write_register(bus, addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); + is31fl3733_write_register(bus, addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_PWM); // Set PWM on all LEDs to 0 // No need to setup Breath registers to PWM as that is the default. for (int i = 0x00; i <= 0xBF; i++) { is31fl3733_write_register(bus, addr, i, 0x00); } + // Unlock the command register. - is31fl3733_write_register(bus, addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(bus, addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); + // Select PG3 - is31fl3733_write_register(bus, addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION); + is31fl3733_write_register(bus, addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_FUNCTION); + // Set de-ghost pull-up resistors (SWx) + is31fl3733_write_register(bus, addr, IS31FL3733_REG_SWPULLUP, IS31FL3733_SWPULLUP); + // Set de-ghost pull-down resistors (CSx) + is31fl3733_write_register(bus, addr, IS31FL3733_REG_CSPULLUP, IS31FL3733_CSPULLUP); // Set global current to maximum. - is31fl3733_write_register(bus, addr, ISSI_REG_GLOBALCURRENT, 0xFF); + is31fl3733_write_register(bus, addr, IS31FL3733_REG_GLOBALCURRENT, IS31FL3733_GLOBALCURRENT); // Disable software shutdown. - is31fl3733_write_register(bus, addr, ISSI_REG_CONFIGURATION, (sync << 6) | 0x01); + is31fl3733_write_register(bus, addr, IS31FL3733_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((IS31FL3733_PWM_FREQUENCY & 0b111) << 3) | 0x01); + // Wait 10ms to ensure the device has woken up. wait_ms(10); } void is31fl3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { + is31_led led; if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { - is31_led led = g_is31_leds[index]; + memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { + return; + } g_pwm_buffer[led.driver][led.r] = red; g_pwm_buffer[led.driver][led.g] = green; g_pwm_buffer[led.driver][led.b] = blue; @@ -177,7 +205,8 @@ void is31fl3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { } void is31fl3733_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { - is31_led led = g_is31_leds[index]; + is31_led led; + memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); uint8_t control_register_r = led.r / 8; uint8_t control_register_g = led.g / 8; @@ -208,8 +237,8 @@ void is31fl3733_set_led_control_register(uint8_t index, bool red, bool green, bo void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { // Firstly we need to unlock the command register and select PG1. - is31fl3733_write_register(index, addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3733_write_register(index, addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); + is31fl3733_write_register(index, addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(index, addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_PWM); // If any of the transactions fail we risk writing dirty PG0, // refresh page 0 just in case. @@ -223,14 +252,11 @@ void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index) { void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { // Firstly we need to unlock the command register and select PG0 - is31fl3733_write_register(index, addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3733_write_register(index, addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); + is31fl3733_write_register(index, addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(index, addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_LEDCONTROL); for (int i = 0; i < 24; i++) { is31fl3733_write_register(index, addr, i, g_led_control_registers[index][i]); } } g_led_control_registers_update_required[index] = false; } - - -#endif diff --git a/keyboards/input_club/k_type/is31fl3733-dual.h b/keyboards/input_club/k_type/is31fl3733-dual.h index 1becefbf93..fa58d653c9 100644 --- a/keyboards/input_club/k_type/is31fl3733-dual.h +++ b/keyboards/input_club/k_type/is31fl3733-dual.h @@ -47,6 +47,14 @@ void is31fl3733_set_led_control_register(uint8_t index, bool red, bool green, bo void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index); // index is the driver index void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index); +#define IS31FL3733_PUR_0R 0x00 // No PUR resistor +#define IS31FL3733_PUR_05KR 0x02 // 0.5k Ohm resistor in t_NOL +#define IS31FL3733_PUR_3KR 0x03 // 3.0k Ohm resistor on all the time +#define IS31FL3733_PUR_4KR 0x04 // 4.0k Ohm resistor on all the time +#define IS31FL3733_PUR_8KR 0x05 // 8.0k Ohm resistor on all the time +#define IS31FL3733_PUR_16KR 0x06 // 16k Ohm resistor on all the time +#define IS31FL3733_PUR_32KR 0x07 // 32k Ohm resistor in t_NOL + #define A_1 0x00 #define A_2 0x01 #define A_3 0x02 diff --git a/keyboards/input_club/k_type/k_type-rgbdriver.c b/keyboards/input_club/k_type/k_type-rgbdriver.c index dc5d4abd67..18cdb3cda3 100644 --- a/keyboards/input_club/k_type/k_type-rgbdriver.c +++ b/keyboards/input_club/k_type/k_type-rgbdriver.c @@ -15,11 +15,10 @@ */ #ifdef RGB_MATRIX_ENABLE - -#include "rgb_matrix.h" -#include "i2c_master.h" -#include "is31fl3733-dual.h" -#include "gpio.h" +# include "rgb_matrix.h" +# include "i2c_master.h" +# include "is31fl3733-dual.h" +# include "gpio.h" static void init(void) { i2c_init(&I2CD1, I2C1_SCL_PIN, I2C1_SDA_PIN); @@ -52,5 +51,4 @@ const rgb_matrix_driver_t rgb_matrix_driver = { .set_color = is31fl3733_set_color, .set_color_all = is31fl3733_set_color_all, }; - #endif diff --git a/keyboards/input_club/k_type/k_type.c b/keyboards/input_club/k_type/k_type.c index 23a3895408..dc1ca9dc25 100644 --- a/keyboards/input_club/k_type/k_type.c +++ b/keyboards/input_club/k_type/k_type.c @@ -18,9 +18,7 @@ along with this program. If not, see . #include "quantum.h" #ifdef RGB_MATRIX_ENABLE - -#include "is31fl3733-dual.h" - +# include "is31fl3733-dual.h" const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { { 0, B_1, A_1, C_1 }, @@ -202,15 +200,12 @@ led_config_t g_led_config = { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, } }; -#endif - void keyboard_pre_init_kb(void) { -#ifdef RGB_MATRIX_ENABLE // Turn on LED controller setPinOutput(B16); writePinHigh(B16); -#endif + keyboard_pre_init_user(); } @@ -218,7 +213,6 @@ void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up -#ifdef RGB_MATRIX_ENABLE /* * Since K20x is stuck with a 32 byte EEPROM (see tmk_core/common/chibios/eeprom_teensy.c), * and neither led_matrix_eeconfig.speed or .flags fit in this boundary, just force their values to default on boot. @@ -228,7 +222,7 @@ void matrix_init_kb(void) { # endif rgb_matrix_set_speed(RGB_MATRIX_DEFAULT_SPD), rgb_matrix_set_flags(LED_FLAG_ALL); -#endif matrix_init_user(); } +#endif diff --git a/keyboards/kbdfans/kbdmini/config.h b/keyboards/kbdfans/kbdmini/config.h index a3e8408094..031dd23e5d 100644 --- a/keyboards/kbdfans/kbdmini/config.h +++ b/keyboards/kbdfans/kbdmini/config.h @@ -54,6 +54,6 @@ // #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH #define DRIVER_ADDR_1 0b1010000 -#define DRIVER_COUNT 1 +#define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 52 #endif diff --git a/keyboards/keebwerk/mega/ansi/config.h b/keyboards/keebwerk/mega/ansi/config.h index c02f298e84..a9734683f4 100755 --- a/keyboards/keebwerk/mega/ansi/config.h +++ b/keyboards/keebwerk/mega/ansi/config.h @@ -50,7 +50,7 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } -#define DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 128 // These define which keys in the matrix are alphas/mods diff --git a/keyboards/keychron/q1/config.h b/keyboards/keychron/q1/config.h index c78453dc5f..52b53e47d0 100644 --- a/keyboards/keychron/q1/config.h +++ b/keyboards/keychron/q1/config.h @@ -17,7 +17,7 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1010000 #define DRIVER_ADDR_2 0b1011111 diff --git a/keyboards/keychron/q1/iso_encoder/config.h b/keyboards/keychron/q1/iso_encoder/config.h index c1e84e44d3..33916cf8c4 100644 --- a/keyboards/keychron/q1/iso_encoder/config.h +++ b/keyboards/keychron/q1/iso_encoder/config.h @@ -16,14 +16,6 @@ #pragma once -/* DIP switch */ -#define DIP_SWITCH_MATRIX_GRID { {0,1} } - -/* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1010000 -#define DRIVER_ADDR_2 0b1011111 - /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 59 #define DRIVER_2_LED_TOTAL 24 diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/config.h b/keyboards/kprepublic/bm60hsrgb/rev2/config.h index 82a3a14e9e..68fba52789 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb/rev2/config.h @@ -64,7 +64,7 @@ #define ENABLE_RGB_MATRIX_SOLID_SPLASH #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -#define DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 63 //#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h index b7e95393e5..ce422ff43e 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h @@ -19,7 +19,7 @@ # define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended # define DRIVER_ADDR_1 0b1010000 -# define DRIVER_COUNT 2 +# define IS31FL3733_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 63 # define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h index 8ad699ed9a..f4b463f261 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h @@ -27,7 +27,7 @@ # define DISABLE_RGB_MATRIX_RAINDROPS # define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS # define DRIVER_ADDR_1 0b1010000 -# define DRIVER_COUNT 1 +# define IS31FL3733_DRIVER_COUNT 1 # define DRIVER_1_LED_TOTAL 64 diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h index 2c0710bfe4..f3ad3e0781 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h @@ -77,7 +77,7 @@ // are compiled unconditionally). // Configure the IS31FL3733 driver for per-key RGB LEDs -#define DRIVER_COUNT 1 +#define IS31FL3733_DRIVER_COUNT 1 #define DRIVER_ADDR_1 0b1010000 #define DRIVER_1_LED_TOTAL 61 diff --git a/keyboards/latincompass/latin60rgb/config.h b/keyboards/latincompass/latin60rgb/config.h index 96e8b75a8e..053bb2eab8 100644 --- a/keyboards/latincompass/latin60rgb/config.h +++ b/keyboards/latincompass/latin60rgb/config.h @@ -68,6 +68,6 @@ // # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define DRIVER_ADDR_1 0b1010000 -# define DRIVER_COUNT 1 +# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 60 #endif diff --git a/keyboards/miller/gm862/config.h b/keyboards/miller/gm862/config.h index 4bd9748ab5..6c47183dbf 100644 --- a/keyboards/miller/gm862/config.h +++ b/keyboards/miller/gm862/config.h @@ -54,6 +54,6 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define DRIVER_ADDR_1 0b1010000 -# define DRIVER_COUNT 1 +# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 62 #endif diff --git a/keyboards/monsgeek/m1/config.h b/keyboards/monsgeek/m1/config.h index 3e44e815fa..f5466ab09b 100644 --- a/keyboards/monsgeek/m1/config.h +++ b/keyboards/monsgeek/m1/config.h @@ -37,7 +37,7 @@ #define WEAR_LEVELING_BACKING_SIZE (8 * 1024) /* I2C Config for LED Driver */ -#define DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110111 #define I2C1_OPMODE OPMODE_I2C diff --git a/keyboards/monsgeek/m5/config.h b/keyboards/monsgeek/m5/config.h index 6d43bd4f26..db65cef760 100644 --- a/keyboards/monsgeek/m5/config.h +++ b/keyboards/monsgeek/m5/config.h @@ -38,7 +38,7 @@ #define WEAR_LEVELING_BACKING_SIZE (8 * 1024) /* I2C Config for LED Driver */ -#define DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110111 #define I2C1_OPMODE OPMODE_I2C diff --git a/keyboards/monsgeek/m6/config.h b/keyboards/monsgeek/m6/config.h index 5fcd897429..abed72f54e 100644 --- a/keyboards/monsgeek/m6/config.h +++ b/keyboards/monsgeek/m6/config.h @@ -35,7 +35,7 @@ #define WEAR_LEVELING_BACKING_SIZE (8 * 1024) /* I2C Config for LED Driver */ -#define DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110111 #define I2C1_SCL_PAL_MODE 4 diff --git a/keyboards/mt/mt64rgb/config.h b/keyboards/mt/mt64rgb/config.h index 0d877306e3..c15d1aedbc 100644 --- a/keyboards/mt/mt64rgb/config.h +++ b/keyboards/mt/mt64rgb/config.h @@ -24,7 +24,7 @@ #define RGB_MATRIX_LED_FLUSH_LIMIT 26 #define DRIVER_ADDR_1 0b1010000 -#define DRIVER_COUNT 1 +#define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 diff --git a/keyboards/novelkeys/nk65/config.h b/keyboards/novelkeys/nk65/config.h index 1afa3fe95b..80327af491 100755 --- a/keyboards/novelkeys/nk65/config.h +++ b/keyboards/novelkeys/nk65/config.h @@ -50,7 +50,7 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } -#define DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 128 // These define which keys in the matrix are alphas/mods diff --git a/keyboards/novelkeys/nk87/config.h b/keyboards/novelkeys/nk87/config.h index d0e973bb43..d2949ef6d3 100755 --- a/keyboards/novelkeys/nk87/config.h +++ b/keyboards/novelkeys/nk87/config.h @@ -50,7 +50,7 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } -#define DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 128 // These define which keys in the matrix are alphas/mods diff --git a/keyboards/playkbtw/pk64rgb/config.h b/keyboards/playkbtw/pk64rgb/config.h index bb28749d94..4ae2454bd1 100644 --- a/keyboards/playkbtw/pk64rgb/config.h +++ b/keyboards/playkbtw/pk64rgb/config.h @@ -24,7 +24,7 @@ #define RGB_MATRIX_LED_PROCESS_LIMIT 20 #define RGB_MATRIX_LED_FLUSH_LIMIT 26 #define DRIVER_ADDR_1 0b1010000 - #define DRIVER_COUNT 1 + #define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 diff --git a/keyboards/redragon/k667/config.h b/keyboards/redragon/k667/config.h index e17865a403..90ac3d465f 100644 --- a/keyboards/redragon/k667/config.h +++ b/keyboards/redragon/k667/config.h @@ -20,7 +20,7 @@ #define DRIVER_ADDR_1 0b1010000 #define DRIVER_ADDR_2 0b1010011 -#define DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 45 #define DRIVER_2_LED_TOTAL 45 diff --git a/keyboards/spaceholdings/nebula68/config.h b/keyboards/spaceholdings/nebula68/config.h index 43dc7b0d86..f6df627592 100755 --- a/keyboards/spaceholdings/nebula68/config.h +++ b/keyboards/spaceholdings/nebula68/config.h @@ -56,7 +56,7 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } -#define DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 128 // These define which keys in the matrix are alphas/mods diff --git a/keyboards/teleport/native/config.h b/keyboards/teleport/native/config.h index 1453bfdc94..705450ed51 100644 --- a/keyboards/teleport/native/config.h +++ b/keyboards/teleport/native/config.h @@ -29,7 +29,7 @@ along with this program. If not, see . /* RGB Matrix driver config */ -#define DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b1010000 #define DRIVER_ADDR_2 0b1010011 #define DRIVER_1_LED_TOTAL 46 From 8136eda6d48c8bc8dda5dfa439f7324d55448ca2 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 13 Sep 2023 22:53:15 +1000 Subject: [PATCH 038/496] is31fl3731: driver naming cleanups (#21918) --- docs/feature_led_matrix.md | 8 +- docs/feature_rgb_matrix.md | 10 +- drivers/led/issi/is31fl3731-simple.c | 97 ++++++++++--------- drivers/led/issi/is31fl3731-simple.h | 16 ++- drivers/led/issi/is31fl3731.c | 83 ++++++++-------- drivers/led/issi/is31fl3731.h | 16 ++- keyboards/aeboards/satellite/rev1/config.h | 2 +- keyboards/clueboard/66_hotswap/gen1/config.h | 2 +- keyboards/dp60/config.h | 2 +- keyboards/dztech/dz65rgb/v1/config.h | 2 +- keyboards/dztech/dz65rgb/v2/config.h | 2 +- keyboards/ergodox_ez/config.h | 2 +- keyboards/fallacy/config.h | 2 +- keyboards/ferris/0_2/bling/config.h | 2 +- keyboards/geekboards/tester/config.h | 2 +- keyboards/gizmo_engineering/gk6/config.h | 2 +- keyboards/handwired/orbweaver/config.h | 2 +- keyboards/hs60/v1/config.h | 2 +- keyboards/inett_studio/sqx/hotswap/config.h | 2 +- keyboards/inett_studio/sqx/universal/config.h | 2 +- .../input_club/ergodox_infinity/config.h | 2 +- keyboards/input_club/whitefox/config.h | 2 +- keyboards/kbdfans/kbd67/mkiirgb/v1/config.h | 2 +- keyboards/kbdfans/kbd67/mkiirgb/v2/config.h | 2 +- keyboards/kbdfans/maja/config.h | 2 +- keyboards/latincompass/latin17rgb/config.h | 2 +- keyboards/latincompass/latin6rgb/config.h | 2 +- keyboards/matrix/m20add/config.h | 2 +- keyboards/matrix/noah/config.h | 2 +- .../mechlovin/adelais/rgb_led/rev2/config.h | 2 +- keyboards/mechlovin/delphine/rgb_led/config.h | 2 +- keyboards/mechlovin/hannah60rgb/rev2/config.h | 2 +- keyboards/mechlovin/olly/octagon/config.h | 2 +- keyboards/mechlovin/zed65/mono_led/config.h | 2 +- keyboards/moonlander/config.h | 2 +- keyboards/neson_design/700e/config.h | 2 +- keyboards/neson_design/n6/config.h | 2 +- keyboards/opendeck/32/rev1/config.h | 2 +- keyboards/planck/light/config.h | 2 +- keyboards/smallkeyboard/config.h | 2 +- keyboards/spaceholdings/nebula12/config.h | 2 +- keyboards/terrazzo/config.h | 2 +- keyboards/tkc/portico/config.h | 4 +- keyboards/wilba_tech/rama_works_kara/config.h | 2 +- keyboards/wilba_tech/rama_works_koyu/config.h | 2 +- .../wilba_tech/rama_works_m10_c/config.h | 2 +- .../wilba_tech/rama_works_m50_a/config.h | 2 +- .../wilba_tech/rama_works_m60_a/config.h | 2 +- .../wilba_tech/rama_works_m65_b/config.h | 2 +- .../wilba_tech/rama_works_m65_bx/config.h | 2 +- .../wilba_tech/rama_works_u80_a/config.h | 2 +- keyboards/wilba_tech/wt60_b/config.h | 2 +- keyboards/wilba_tech/wt60_bx/config.h | 2 +- keyboards/wilba_tech/wt60_c/config.h | 2 +- keyboards/wilba_tech/zeal60/config.h | 2 +- keyboards/wilba_tech/zeal65/config.h | 2 +- keyboards/xbows/knight/config.h | 2 +- keyboards/xbows/knight_plus/config.h | 2 +- keyboards/xbows/nature/config.h | 2 +- keyboards/xbows/numpad/config.h | 2 +- keyboards/xbows/ranger/config.h | 2 +- keyboards/xbows/woody/config.h | 2 +- keyboards/xelus/dawn60/rev1/config.h | 2 +- keyboards/xelus/dawn60/rev1_qmk/config.h | 2 +- 64 files changed, 189 insertions(+), 159 deletions(-) diff --git a/docs/feature_led_matrix.md b/docs/feature_led_matrix.md index fd56a45725..b22d4ad3a3 100644 --- a/docs/feature_led_matrix.md +++ b/docs/feature_led_matrix.md @@ -19,9 +19,9 @@ You can use between 1 and 4 IS31FL3731 IC's. Do not specify `LED_DRIVER_ADDR_ | Variable | Description | Default | |----------|-------------|---------| -| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 | -| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | -| `LED_DRIVER_COUNT` | (Required) How many LED driver IC's are present | | +| `IS31FL3731_I2C_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 | +| `IS31FL3731_I2C_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | +| `IS31FL3731_DRIVER_COUNT` | (Required) How many LED driver IC's are present | | | `LED_MATRIX_LED_COUNT` | (Required) How many LED lights are present across all drivers | | | `LED_DRIVER_ADDR_1` | (Required) Address for the first LED driver | | | `LED_DRIVER_ADDR_2` | (Optional) Address for the second LED driver | | @@ -41,7 +41,7 @@ Here is an example using 2 drivers. #define LED_DRIVER_ADDR_1 0b1110100 #define LED_DRIVER_ADDR_2 0b1110110 -#define LED_DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define LED_DRIVER_1_LED_TOTAL 25 #define LED_DRIVER_2_LED_TOTAL 24 #define LED_MATRIX_LED_COUNT (LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL) diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index af548f37fe..a8f4f346d6 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -19,10 +19,10 @@ You can use between 1 and 4 IS31FL3731 IC's. Do not specify `DRIVER_ADDR_` de | Variable | Description | Default | |----------|-------------|---------| -| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 | -| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | -| `ISSI_3731_DEGHOST` | (Optional) Set this define to enable de-ghosting by halving Vcc during blanking time | | -| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | +| `IS31FL3731_I2C_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 | +| `IS31FL3731_I2C_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | +| `IS31FL3731_DEGHOST` | (Optional) Set this define to enable de-ghosting by halving Vcc during blanking time | | +| `IS31FL3731_DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | | `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | | | `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | | | `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | | @@ -42,7 +42,7 @@ Here is an example using 2 drivers. #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110110 -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 25 #define DRIVER_2_LED_TOTAL 24 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/drivers/led/issi/is31fl3731-simple.c b/drivers/led/issi/is31fl3731-simple.c index f7f6980a3b..6b463d3092 100644 --- a/drivers/led/issi/is31fl3731-simple.c +++ b/drivers/led/issi/is31fl3731-simple.c @@ -18,6 +18,7 @@ */ #include "is31fl3731-simple.h" +#include #include "i2c_master.h" #include "wait.h" @@ -28,34 +29,34 @@ // 0b1110111 AD <-> VCC // 0b1110101 AD <-> SCL // 0b1110110 AD <-> SDA -#define ISSI_ADDR_DEFAULT 0x74 +#define IS31FL3731_I2C_ADDRESS_DEFAULT 0x74 -#define ISSI_REG_CONFIG 0x00 -#define ISSI_REG_CONFIG_PICTUREMODE 0x00 -#define ISSI_REG_CONFIG_AUTOPLAYMODE 0x08 -#define ISSI_REG_CONFIG_AUDIOPLAYMODE 0x18 +#define IS31FL3731_REG_CONFIG 0x00 +#define IS31FL3731_REG_CONFIG_PICTUREMODE 0x00 +#define IS31FL3731_REG_CONFIG_AUTOPLAYMODE 0x08 +#define IS31FL3731_REG_CONFIG_AUDIOPLAYMODE 0x18 -#define ISSI_CONF_PICTUREMODE 0x00 -#define ISSI_CONF_AUTOFRAMEMODE 0x04 -#define ISSI_CONF_AUDIOMODE 0x08 +#define IS31FL3731_CONF_PICTUREMODE 0x00 +#define IS31FL3731_CONF_AUTOFRAMEMODE 0x04 +#define IS31FL3731_CONF_AUDIOMODE 0x08 -#define ISSI_REG_PICTUREFRAME 0x01 +#define IS31FL3731_REG_PICTUREFRAME 0x01 // Not defined in the datasheet -- See AN for IC -#define ISSI_REG_GHOST_IMAGE_PREVENTION 0xC2 // Set bit 4 to enable de-ghosting +#define IS31FL3731_REG_GHOST_IMAGE_PREVENTION 0xC2 // Set bit 4 to enable de-ghosting -#define ISSI_REG_SHUTDOWN 0x0A -#define ISSI_REG_AUDIOSYNC 0x06 +#define IS31FL3731_REG_SHUTDOWN 0x0A +#define IS31FL3731_REG_AUDIOSYNC 0x06 -#define ISSI_COMMANDREGISTER 0xFD -#define ISSI_BANK_FUNCTIONREG 0x0B // helpfully called 'page nine' +#define IS31FL3731_COMMANDREGISTER 0xFD +#define IS31FL3731_BANK_FUNCTIONREG 0x0B // helpfully called 'page nine' -#ifndef ISSI_TIMEOUT -# define ISSI_TIMEOUT 100 +#ifndef IS31FL3731_I2C_TIMEOUT +# define IS31FL3731_I2C_TIMEOUT 100 #endif -#ifndef ISSI_PERSISTENCE -# define ISSI_PERSISTENCE 0 +#ifndef IS31FL3731_I2C_PERSISTENCE +# define IS31FL3731_I2C_PERSISTENCE 0 #endif // Transfer buffer for TWITransmitData() @@ -66,20 +67,20 @@ uint8_t g_twi_transfer_buffer[20]; // We could optimize this and take out the unused registers from these // buffers and the transfers in is31fl3731_write_pwm_buffer() but it's // probably not worth the extra complexity. -uint8_t g_pwm_buffer[LED_DRIVER_COUNT][144]; -bool g_pwm_buffer_update_required[LED_DRIVER_COUNT] = {false}; +uint8_t g_pwm_buffer[IS31FL3731_DRIVER_COUNT][144]; +bool g_pwm_buffer_update_required[IS31FL3731_DRIVER_COUNT] = {false}; /* There's probably a better way to init this... */ -#if LED_DRIVER_COUNT == 1 -uint8_t g_led_control_registers[LED_DRIVER_COUNT][18] = {{0}}; -#elif LED_DRIVER_COUNT == 2 -uint8_t g_led_control_registers[LED_DRIVER_COUNT][18] = {{0}, {0}}; -#elif LED_DRIVER_COUNT == 3 -uint8_t g_led_control_registers[LED_DRIVER_COUNT][18] = {{0}, {0}, {0}}; -#elif LED_DRIVER_COUNT == 4 -uint8_t g_led_control_registers[LED_DRIVER_COUNT][18] = {{0}, {0}, {0}, {0}}; +#if IS31FL3731_DRIVER_COUNT == 1 +uint8_t g_led_control_registers[IS31FL3731_DRIVER_COUNT][18] = {{0}}; +#elif IS31FL3731_DRIVER_COUNT == 2 +uint8_t g_led_control_registers[IS31FL3731_DRIVER_COUNT][18] = {{0}, {0}}; +#elif IS31FL3731_DRIVER_COUNT == 3 +uint8_t g_led_control_registers[IS31FL3731_DRIVER_COUNT][18] = {{0}, {0}, {0}}; +#elif IS31FL3731_DRIVER_COUNT == 4 +uint8_t g_led_control_registers[IS31FL3731_DRIVER_COUNT][18] = {{0}, {0}, {0}, {0}}; #endif -bool g_led_control_registers_update_required[LED_DRIVER_COUNT] = {false}; +bool g_led_control_registers_update_required[IS31FL3731_DRIVER_COUNT] = {false}; // This is the bit pattern in the LED control registers // (for matrix A, add one to register for matrix B) @@ -99,14 +100,14 @@ void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; g_twi_transfer_buffer[1] = data; -#if ISSI_PERSISTENCE > 0 - for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) == 0) { +#if IS31FL3731_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3731_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3731_I2C_TIMEOUT) == 0) { break; } } #else - i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT); + i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3731_I2C_TIMEOUT); #endif } @@ -125,12 +126,12 @@ void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // thus this sets registers 0x24-0x33, 0x34-0x43, etc. in one transfer memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 16); -#if ISSI_PERSISTENCE > 0 - for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT) == 0) break; +#if IS31FL3731_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3731_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3731_I2C_TIMEOUT) == 0) break; } #else - i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT); + i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3731_I2C_TIMEOUT); #endif } } @@ -142,26 +143,26 @@ void is31fl3731_init(uint8_t addr) { // then disable software shutdown. // select "function register" bank - is31fl3731_write_register(addr, ISSI_COMMANDREGISTER, ISSI_BANK_FUNCTIONREG); + is31fl3731_write_register(addr, IS31FL3731_COMMANDREGISTER, IS31FL3731_BANK_FUNCTIONREG); // enable software shutdown - is31fl3731_write_register(addr, ISSI_REG_SHUTDOWN, 0x00); -#ifdef ISSI_3731_DEGHOST // set to enable de-ghosting of the array - is31fl3731_write_register(addr, ISSI_REG_GHOST_IMAGE_PREVENTION, 0x10); + is31fl3731_write_register(addr, IS31FL3731_REG_SHUTDOWN, 0x00); +#ifdef IS31FL3731_DEGHOST // set to enable de-ghosting of the array + is31fl3731_write_register(addr, IS31FL3731_REG_GHOST_IMAGE_PREVENTION, 0x10); #endif // this delay was copied from other drivers, might not be needed wait_ms(10); // picture mode - is31fl3731_write_register(addr, ISSI_REG_CONFIG, ISSI_REG_CONFIG_PICTUREMODE); + is31fl3731_write_register(addr, IS31FL3731_REG_CONFIG, IS31FL3731_REG_CONFIG_PICTUREMODE); // display frame 0 - is31fl3731_write_register(addr, ISSI_REG_PICTUREFRAME, 0x00); + is31fl3731_write_register(addr, IS31FL3731_REG_PICTUREFRAME, 0x00); // audio sync off - is31fl3731_write_register(addr, ISSI_REG_AUDIOSYNC, 0x00); + is31fl3731_write_register(addr, IS31FL3731_REG_AUDIOSYNC, 0x00); // select bank 0 - is31fl3731_write_register(addr, ISSI_COMMANDREGISTER, 0); + is31fl3731_write_register(addr, IS31FL3731_COMMANDREGISTER, 0); // turn off all LEDs in the LED control register for (int i = 0x00; i <= 0x11; i++) { @@ -179,15 +180,15 @@ void is31fl3731_init(uint8_t addr) { } // select "function register" bank - is31fl3731_write_register(addr, ISSI_COMMANDREGISTER, ISSI_BANK_FUNCTIONREG); + is31fl3731_write_register(addr, IS31FL3731_COMMANDREGISTER, IS31FL3731_BANK_FUNCTIONREG); // disable software shutdown - is31fl3731_write_register(addr, ISSI_REG_SHUTDOWN, 0x01); + is31fl3731_write_register(addr, IS31FL3731_REG_SHUTDOWN, 0x01); // select bank 0 and leave it selected. // most usage after initialization is just writing PWM buffers in bank 0 // as there's not much point in double-buffering - is31fl3731_write_register(addr, ISSI_COMMANDREGISTER, 0); + is31fl3731_write_register(addr, IS31FL3731_COMMANDREGISTER, 0); } void is31fl3731_set_value(int index, uint8_t value) { diff --git a/drivers/led/issi/is31fl3731-simple.h b/drivers/led/issi/is31fl3731-simple.h index 69fba14a0b..ee830faca8 100644 --- a/drivers/led/issi/is31fl3731-simple.h +++ b/drivers/led/issi/is31fl3731-simple.h @@ -20,9 +20,23 @@ #include #include -#include #include "progmem.h" +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef LED_DRIVER_COUNT +# define IS31FL3731_DRIVER_COUNT LED_DRIVER_COUNT +#endif +#ifdef ISSI_TIMEOUT +# define IS31FL3731_I2C_TIMEOUT ISSI_TIMEOUT +#endif +#ifdef ISSI_PERSISTENCE +# define IS31FL3731_I2C_PERSISTENCE ISSI_PERSISTENCE +#endif +#ifdef ISSI_3731_DEGHOST +# define IS31FL3731_DEGHOST ISSI_3731_DEGHOST +#endif +// ======== + typedef struct is31_led { uint8_t driver : 2; uint8_t v; diff --git a/drivers/led/issi/is31fl3731.c b/drivers/led/issi/is31fl3731.c index 15a01b6d75..9e2d39c692 100644 --- a/drivers/led/issi/is31fl3731.c +++ b/drivers/led/issi/is31fl3731.c @@ -17,6 +17,7 @@ */ #include "is31fl3731.h" +#include #include "i2c_master.h" #include "wait.h" @@ -27,34 +28,34 @@ // 0b1110111 AD <-> VCC // 0b1110101 AD <-> SCL // 0b1110110 AD <-> SDA -#define ISSI_ADDR_DEFAULT 0x74 +#define IS31FL3731_I2C_ADDRESS_DEFAULT 0x74 -#define ISSI_REG_CONFIG 0x00 -#define ISSI_REG_CONFIG_PICTUREMODE 0x00 -#define ISSI_REG_CONFIG_AUTOPLAYMODE 0x08 -#define ISSI_REG_CONFIG_AUDIOPLAYMODE 0x18 +#define IS31FL3731_REG_CONFIG 0x00 +#define IS31FL3731_REG_CONFIG_PICTUREMODE 0x00 +#define IS31FL3731_REG_CONFIG_AUTOPLAYMODE 0x08 +#define IS31FL3731_REG_CONFIG_AUDIOPLAYMODE 0x18 -#define ISSI_CONF_PICTUREMODE 0x00 -#define ISSI_CONF_AUTOFRAMEMODE 0x04 -#define ISSI_CONF_AUDIOMODE 0x08 +#define IS31FL3731_CONF_PICTUREMODE 0x00 +#define IS31FL3731_CONF_AUTOFRAMEMODE 0x04 +#define IS31FL3731_CONF_AUDIOMODE 0x08 -#define ISSI_REG_PICTUREFRAME 0x01 +#define IS31FL3731_REG_PICTUREFRAME 0x01 // Not defined in the datasheet -- See AN for IC -#define ISSI_REG_GHOST_IMAGE_PREVENTION 0xC2 // Set bit 4 to enable de-ghosting +#define IS31FL3731_REG_GHOST_IMAGE_PREVENTION 0xC2 // Set bit 4 to enable de-ghosting -#define ISSI_REG_SHUTDOWN 0x0A -#define ISSI_REG_AUDIOSYNC 0x06 +#define IS31FL3731_REG_SHUTDOWN 0x0A +#define IS31FL3731_REG_AUDIOSYNC 0x06 -#define ISSI_COMMANDREGISTER 0xFD -#define ISSI_BANK_FUNCTIONREG 0x0B // helpfully called 'page nine' +#define IS31FL3731_COMMANDREGISTER 0xFD +#define IS31FL3731_BANK_FUNCTIONREG 0x0B // helpfully called 'page nine' -#ifndef ISSI_TIMEOUT -# define ISSI_TIMEOUT 100 +#ifndef IS31FL3731_I2C_TIMEOUT +# define IS31FL3731_I2C_TIMEOUT 100 #endif -#ifndef ISSI_PERSISTENCE -# define ISSI_PERSISTENCE 0 +#ifndef IS31FL3731_I2C_PERSISTENCE +# define IS31FL3731_I2C_PERSISTENCE 0 #endif // Transfer buffer for TWITransmitData() @@ -65,11 +66,11 @@ uint8_t g_twi_transfer_buffer[20]; // We could optimize this and take out the unused registers from these // buffers and the transfers in is31fl3731_write_pwm_buffer() but it's // probably not worth the extra complexity. -uint8_t g_pwm_buffer[DRIVER_COUNT][144]; -bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false}; +uint8_t g_pwm_buffer[IS31FL3731_DRIVER_COUNT][144]; +bool g_pwm_buffer_update_required[IS31FL3731_DRIVER_COUNT] = {false}; -uint8_t g_led_control_registers[DRIVER_COUNT][18] = {{0}}; -bool g_led_control_registers_update_required[DRIVER_COUNT] = {false}; +uint8_t g_led_control_registers[IS31FL3731_DRIVER_COUNT][18] = {{0}}; +bool g_led_control_registers_update_required[IS31FL3731_DRIVER_COUNT] = {false}; // This is the bit pattern in the LED control registers // (for matrix A, add one to register for matrix B) @@ -89,12 +90,12 @@ void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; g_twi_transfer_buffer[1] = data; -#if ISSI_PERSISTENCE > 0 - for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) == 0) break; +#if IS31FL3731_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3731_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3731_I2C_TIMEOUT) == 0) break; } #else - i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT); + i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3731_I2C_TIMEOUT); #endif } @@ -113,12 +114,12 @@ void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // thus this sets registers 0x24-0x33, 0x34-0x43, etc. in one transfer memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 16); -#if ISSI_PERSISTENCE > 0 - for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT) == 0) break; +#if IS31FL3731_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3731_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3731_I2C_TIMEOUT) == 0) break; } #else - i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT); + i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3731_I2C_TIMEOUT); #endif } } @@ -130,26 +131,26 @@ void is31fl3731_init(uint8_t addr) { // then disable software shutdown. // select "function register" bank - is31fl3731_write_register(addr, ISSI_COMMANDREGISTER, ISSI_BANK_FUNCTIONREG); + is31fl3731_write_register(addr, IS31FL3731_COMMANDREGISTER, IS31FL3731_BANK_FUNCTIONREG); // enable software shutdown - is31fl3731_write_register(addr, ISSI_REG_SHUTDOWN, 0x00); -#ifdef ISSI_3731_DEGHOST // set to enable de-ghosting of the array - is31fl3731_write_register(addr, ISSI_REG_GHOST_IMAGE_PREVENTION, 0x10); + is31fl3731_write_register(addr, IS31FL3731_REG_SHUTDOWN, 0x00); +#ifdef IS31FL3731_DEGHOST // set to enable de-ghosting of the array + is31fl3731_write_register(addr, IS31FL3731_REG_GHOST_IMAGE_PREVENTION, 0x10); #endif // this delay was copied from other drivers, might not be needed wait_ms(10); // picture mode - is31fl3731_write_register(addr, ISSI_REG_CONFIG, ISSI_REG_CONFIG_PICTUREMODE); + is31fl3731_write_register(addr, IS31FL3731_REG_CONFIG, IS31FL3731_REG_CONFIG_PICTUREMODE); // display frame 0 - is31fl3731_write_register(addr, ISSI_REG_PICTUREFRAME, 0x00); + is31fl3731_write_register(addr, IS31FL3731_REG_PICTUREFRAME, 0x00); // audio sync off - is31fl3731_write_register(addr, ISSI_REG_AUDIOSYNC, 0x00); + is31fl3731_write_register(addr, IS31FL3731_REG_AUDIOSYNC, 0x00); // select bank 0 - is31fl3731_write_register(addr, ISSI_COMMANDREGISTER, 0); + is31fl3731_write_register(addr, IS31FL3731_COMMANDREGISTER, 0); // turn off all LEDs in the LED control register for (int i = 0x00; i <= 0x11; i++) { @@ -167,15 +168,15 @@ void is31fl3731_init(uint8_t addr) { } // select "function register" bank - is31fl3731_write_register(addr, ISSI_COMMANDREGISTER, ISSI_BANK_FUNCTIONREG); + is31fl3731_write_register(addr, IS31FL3731_COMMANDREGISTER, IS31FL3731_BANK_FUNCTIONREG); // disable software shutdown - is31fl3731_write_register(addr, ISSI_REG_SHUTDOWN, 0x01); + is31fl3731_write_register(addr, IS31FL3731_REG_SHUTDOWN, 0x01); // select bank 0 and leave it selected. // most usage after initialization is just writing PWM buffers in bank 0 // as there's not much point in double-buffering - is31fl3731_write_register(addr, ISSI_COMMANDREGISTER, 0); + is31fl3731_write_register(addr, IS31FL3731_COMMANDREGISTER, 0); } void is31fl3731_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { diff --git a/drivers/led/issi/is31fl3731.h b/drivers/led/issi/is31fl3731.h index bdf03de1ee..97e3f454df 100644 --- a/drivers/led/issi/is31fl3731.h +++ b/drivers/led/issi/is31fl3731.h @@ -19,9 +19,23 @@ #include #include -#include #include "progmem.h" +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_COUNT +# define IS31FL3731_DRIVER_COUNT DRIVER_COUNT +#endif +#ifdef ISSI_TIMEOUT +# define IS31FL3731_I2C_TIMEOUT ISSI_TIMEOUT +#endif +#ifdef ISSI_PERSISTENCE +# define IS31FL3731_I2C_PERSISTENCE ISSI_PERSISTENCE +#endif +#ifdef ISSI_3731_DEGHOST +# define IS31FL3731_DEGHOST ISSI_3731_DEGHOST +#endif +// ======== + typedef struct is31_led { uint8_t driver : 2; uint8_t r; diff --git a/keyboards/aeboards/satellite/rev1/config.h b/keyboards/aeboards/satellite/rev1/config.h index 508689faf5..915b9f4b49 100644 --- a/keyboards/aeboards/satellite/rev1/config.h +++ b/keyboards/aeboards/satellite/rev1/config.h @@ -20,7 +20,7 @@ #define DRIVER_ADDR_1 0x74 #define DRIVER_ADDR_2 0x76 -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 #define DRIVER_2_LED_TOTAL 36 #define ISSI_DRIVER_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/clueboard/66_hotswap/gen1/config.h b/keyboards/clueboard/66_hotswap/gen1/config.h index b50b676713..5d3af942ad 100644 --- a/keyboards/clueboard/66_hotswap/gen1/config.h +++ b/keyboards/clueboard/66_hotswap/gen1/config.h @@ -44,7 +44,7 @@ #define I2C1_SCL_PIN B8 #define I2C1_SDA_PIN B9 -#define LED_DRIVER_COUNT 1 +#define IS31FL3731_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 71 // LED Matrix Animation modes. Explicitly enabled diff --git a/keyboards/dp60/config.h b/keyboards/dp60/config.h index fd83fe2d68..857e03df80 100644 --- a/keyboards/dp60/config.h +++ b/keyboards/dp60/config.h @@ -35,7 +35,7 @@ //rgb matrix setting #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110111 -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 #define DRIVER_2_LED_TOTAL 36 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/dztech/dz65rgb/v1/config.h b/keyboards/dztech/dz65rgb/v1/config.h index 4a84498975..79c1473f23 100644 --- a/keyboards/dztech/dz65rgb/v1/config.h +++ b/keyboards/dztech/dz65rgb/v1/config.h @@ -72,7 +72,7 @@ # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL # define DRIVER_ADDR_1 0b1110100 # define DRIVER_ADDR_2 0b1110111 -# define DRIVER_COUNT 2 +# define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 35 # define DRIVER_2_LED_TOTAL 33 # define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/dztech/dz65rgb/v2/config.h b/keyboards/dztech/dz65rgb/v2/config.h index 04700c84ed..187e661bdb 100644 --- a/keyboards/dztech/dz65rgb/v2/config.h +++ b/keyboards/dztech/dz65rgb/v2/config.h @@ -72,7 +72,7 @@ # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL # define DRIVER_ADDR_1 0b1110100 # define DRIVER_ADDR_2 0b1110111 -# define DRIVER_COUNT 2 +# define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 35 # define DRIVER_2_LED_TOTAL 33 # define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/ergodox_ez/config.h b/keyboards/ergodox_ez/config.h index de850a0548..3741b72a67 100644 --- a/keyboards/ergodox_ez/config.h +++ b/keyboards/ergodox_ez/config.h @@ -93,7 +93,7 @@ along with this program. If not, see . // RGB backlight #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110111 -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 24 #define DRIVER_2_LED_TOTAL 24 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/fallacy/config.h b/keyboards/fallacy/config.h index 21231c7c57..dc66968bdc 100755 --- a/keyboards/fallacy/config.h +++ b/keyboards/fallacy/config.h @@ -19,7 +19,7 @@ * Using the default defines here, but using a custom implementation */ #define LED_DRIVER_ADDR_1 0b1110100 -#define LED_DRIVER_COUNT 1 +#define IS31FL3731_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 3 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap diff --git a/keyboards/ferris/0_2/bling/config.h b/keyboards/ferris/0_2/bling/config.h index cbb3b11c90..9d8e9786f1 100644 --- a/keyboards/ferris/0_2/bling/config.h +++ b/keyboards/ferris/0_2/bling/config.h @@ -20,7 +20,7 @@ along with this program. If not, see . /* LED Drivers */ #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110101 -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 7 #define DRIVER_2_LED_TOTAL 7 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/geekboards/tester/config.h b/keyboards/geekboards/tester/config.h index 0fea806b6f..0e7b8a1737 100644 --- a/keyboards/geekboards/tester/config.h +++ b/keyboards/geekboards/tester/config.h @@ -57,7 +57,7 @@ # define DRIVER_ADDR_1 0b1110100 # define DRIVER_ADDR_2 0b1110101 -# define DRIVER_COUNT 2 +# define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 8 # define DRIVER_2_LED_TOTAL 0 # define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/gizmo_engineering/gk6/config.h b/keyboards/gizmo_engineering/gk6/config.h index ba683e4fed..aabc293922 100755 --- a/keyboards/gizmo_engineering/gk6/config.h +++ b/keyboards/gizmo_engineering/gk6/config.h @@ -21,7 +21,7 @@ along with this program. If not, see . #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110111 -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 32 #define DRIVER_2_LED_TOTAL 32 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/handwired/orbweaver/config.h b/keyboards/handwired/orbweaver/config.h index ab7cb9d9d5..e0594697a1 100644 --- a/keyboards/handwired/orbweaver/config.h +++ b/keyboards/handwired/orbweaver/config.h @@ -17,7 +17,7 @@ #pragma once -#define DRIVER_COUNT 1 +#define IS31FL3731_DRIVER_COUNT 1 #define DRIVER_ADDR_1 0b1110100 #define RGB_MATRIX_LED_COUNT 20 #define I2C1_CLOCK_SPEED 100000 diff --git a/keyboards/hs60/v1/config.h b/keyboards/hs60/v1/config.h index 62c800b9bc..d9e94b2a14 100644 --- a/keyboards/hs60/v1/config.h +++ b/keyboards/hs60/v1/config.h @@ -44,7 +44,7 @@ along with this program. If not, see . #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110101 -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 30 #ifdef HS60_ANSI diff --git a/keyboards/inett_studio/sqx/hotswap/config.h b/keyboards/inett_studio/sqx/hotswap/config.h index f698867ffb..c11317afc8 100644 --- a/keyboards/inett_studio/sqx/hotswap/config.h +++ b/keyboards/inett_studio/sqx/hotswap/config.h @@ -34,7 +34,7 @@ #define DRIVER_2_LED_TOTAL 31 #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110111 -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE) diff --git a/keyboards/inett_studio/sqx/universal/config.h b/keyboards/inett_studio/sqx/universal/config.h index 30903b5803..772c8db16b 100644 --- a/keyboards/inett_studio/sqx/universal/config.h +++ b/keyboards/inett_studio/sqx/universal/config.h @@ -34,7 +34,7 @@ #define DRIVER_2_LED_TOTAL 36 #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110111 -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE) diff --git a/keyboards/input_club/ergodox_infinity/config.h b/keyboards/input_club/ergodox_infinity/config.h index 7db6119a1c..17baf0013e 100644 --- a/keyboards/input_club/ergodox_infinity/config.h +++ b/keyboards/input_club/ergodox_infinity/config.h @@ -44,7 +44,7 @@ along with this program. If not, see . /* LED matrix driver */ #define LED_DRIVER_ADDR_1 0x74 -#define LED_DRIVER_COUNT 1 +#define IS31FL3731_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 76 #define LED_MATRIX_SPLIT { 38, 38 } #define LED_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/input_club/whitefox/config.h b/keyboards/input_club/whitefox/config.h index 067b7f4e59..bf8d3d6c9c 100644 --- a/keyboards/input_club/whitefox/config.h +++ b/keyboards/input_club/whitefox/config.h @@ -22,7 +22,7 @@ along with this program. If not, see . /* LED matrix driver */ #define LED_DRIVER_ADDR_1 0x74 -#define LED_DRIVER_COUNT 1 +#define IS31FL3731_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 71 #define LED_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h index f2ee16dac2..cae6b8bf92 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h @@ -57,7 +57,7 @@ #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110111 -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 35 #define DRIVER_2_LED_TOTAL 32 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h index cf7f488280..c55b0c7f1f 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h @@ -57,7 +57,7 @@ # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 # define DRIVER_ADDR_1 0b1110100 # define DRIVER_ADDR_2 0b1110111 -# define DRIVER_COUNT 2 +# define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 35 # define DRIVER_2_LED_TOTAL 32 # define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/kbdfans/maja/config.h b/keyboards/kbdfans/maja/config.h index 8f15d2619f..e2a27f01b1 100755 --- a/keyboards/kbdfans/maja/config.h +++ b/keyboards/kbdfans/maja/config.h @@ -56,7 +56,7 @@ #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110110 -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 #define DRIVER_2_LED_TOTAL 31 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/latincompass/latin17rgb/config.h b/keyboards/latincompass/latin17rgb/config.h index 7908e4ceca..f858709eae 100644 --- a/keyboards/latincompass/latin17rgb/config.h +++ b/keyboards/latincompass/latin17rgb/config.h @@ -79,7 +79,7 @@ # define DRIVER_ADDR_1 0b1110100 # define DRIVER_ADDR_2 0b1110110 -# define DRIVER_COUNT 2 +# define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 25 # define DRIVER_2_LED_TOTAL 24 # define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/latincompass/latin6rgb/config.h b/keyboards/latincompass/latin6rgb/config.h index 1a6518c897..5cfafd6bec 100644 --- a/keyboards/latincompass/latin6rgb/config.h +++ b/keyboards/latincompass/latin6rgb/config.h @@ -79,7 +79,7 @@ // 0b1110110 AD <-> SDA #define DRIVER_ADDR_1 0b1110100 -#define DRIVER_COUNT 1 +#define IS31FL3731_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 6 #endif diff --git a/keyboards/matrix/m20add/config.h b/keyboards/matrix/m20add/config.h index 8d4c69bb9c..2ae5017487 100644 --- a/keyboards/matrix/m20add/config.h +++ b/keyboards/matrix/m20add/config.h @@ -79,5 +79,5 @@ #define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 #define DRIVER_ADDR_1 0b1110100 -#define DRIVER_COUNT 1 +#define IS31FL3731_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 20 diff --git a/keyboards/matrix/noah/config.h b/keyboards/matrix/noah/config.h index 452fef4cee..38859b1292 100644 --- a/keyboards/matrix/noah/config.h +++ b/keyboards/matrix/noah/config.h @@ -21,7 +21,7 @@ // rgb matrix setting #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110110 -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 #define DRIVER_2_LED_TOTAL 36 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/config.h b/keyboards/mechlovin/adelais/rgb_led/rev2/config.h index d4b34ff48e..4c7bc3a1da 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev2/config.h +++ b/keyboards/mechlovin/adelais/rgb_led/rev2/config.h @@ -10,7 +10,7 @@ // 0b1110110 AD <-> SDA #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110110 -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 32 #define DRIVER_2_LED_TOTAL 36 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/mechlovin/delphine/rgb_led/config.h b/keyboards/mechlovin/delphine/rgb_led/config.h index 9498e8914f..048bed9e03 100644 --- a/keyboards/mechlovin/delphine/rgb_led/config.h +++ b/keyboards/mechlovin/delphine/rgb_led/config.h @@ -8,7 +8,7 @@ // 0b1110101 AD <-> SCL // 0b1110110 AD <-> SDA #define DRIVER_ADDR_1 0b1110110 -#define DRIVER_COUNT 1 +#define IS31FL3731_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 25 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) diff --git a/keyboards/mechlovin/hannah60rgb/rev2/config.h b/keyboards/mechlovin/hannah60rgb/rev2/config.h index 7e9a918493..4e4eb7f7bd 100644 --- a/keyboards/mechlovin/hannah60rgb/rev2/config.h +++ b/keyboards/mechlovin/hannah60rgb/rev2/config.h @@ -9,7 +9,7 @@ // 0b1110110 AD <-> SDA #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110110 -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 44 #define DRIVER_2_LED_TOTAL 34 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/mechlovin/olly/octagon/config.h b/keyboards/mechlovin/olly/octagon/config.h index 4e502b6154..a59c651bd7 100644 --- a/keyboards/mechlovin/olly/octagon/config.h +++ b/keyboards/mechlovin/olly/octagon/config.h @@ -29,7 +29,7 @@ along with this program. If not, see . #define I2C_DRIVER I2CD2 #define I2C1_SCL_PIN B10 #define I2C1_SDA_PIN B11 -#define LED_DRIVER_COUNT 1 +#define IS31FL3731_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 94 #define LED_MATRIX_KEYPRESSES // reacts to keypresses #define LED_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) diff --git a/keyboards/mechlovin/zed65/mono_led/config.h b/keyboards/mechlovin/zed65/mono_led/config.h index 1ec1746456..d6a8e9cd02 100644 --- a/keyboards/mechlovin/zed65/mono_led/config.h +++ b/keyboards/mechlovin/zed65/mono_led/config.h @@ -29,7 +29,7 @@ along with this program. If not, see . #define I2C_DRIVER I2CD2 #define I2C1_SCL_PIN B10 #define I2C1_SDA_PIN B11 -#define LED_DRIVER_COUNT 1 +#define IS31FL3731_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 70 #define LED_MATRIX_KEYPRESSES // reacts to keypresses #define LED_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) diff --git a/keyboards/moonlander/config.h b/keyboards/moonlander/config.h index 389f97d696..6b2377db1a 100644 --- a/keyboards/moonlander/config.h +++ b/keyboards/moonlander/config.h @@ -68,7 +68,7 @@ #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110111 -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 #define DRIVER_2_LED_TOTAL 36 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/neson_design/700e/config.h b/keyboards/neson_design/700e/config.h index cf89616aa8..ea666617e0 100644 --- a/keyboards/neson_design/700e/config.h +++ b/keyboards/neson_design/700e/config.h @@ -34,7 +34,7 @@ #define DRIVER_2_LED_TOTAL 32 #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110111 -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL) #define USB_SUSPEND_WAKEUP_DELAY 1000 diff --git a/keyboards/neson_design/n6/config.h b/keyboards/neson_design/n6/config.h index 91d96c6a4d..dfdb5b93aa 100644 --- a/keyboards/neson_design/n6/config.h +++ b/keyboards/neson_design/n6/config.h @@ -34,5 +34,5 @@ #define DRIVER_2_LED_TOTAL 32 #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110111 -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL) diff --git a/keyboards/opendeck/32/rev1/config.h b/keyboards/opendeck/32/rev1/config.h index a85a3db8b9..41b6e2d0b6 100644 --- a/keyboards/opendeck/32/rev1/config.h +++ b/keyboards/opendeck/32/rev1/config.h @@ -17,7 +17,7 @@ // RGB matrix #define DRIVER_ADDR_1 0b1110100 -#define DRIVER_COUNT 1 +#define IS31FL3731_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT (4 * 8 * 3) #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_SPIRAL diff --git a/keyboards/planck/light/config.h b/keyboards/planck/light/config.h index d4001dd80b..827028cd3a 100644 --- a/keyboards/planck/light/config.h +++ b/keyboards/planck/light/config.h @@ -17,7 +17,7 @@ #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110110 -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 25 #define DRIVER_2_LED_TOTAL 24 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/smallkeyboard/config.h b/keyboards/smallkeyboard/config.h index 4bee1c3663..cc454fe82e 100644 --- a/keyboards/smallkeyboard/config.h +++ b/keyboards/smallkeyboard/config.h @@ -75,6 +75,6 @@ // 0b1110110 AD <-> SDA #define DRIVER_ADDR_1 0b1110100 -#define DRIVER_COUNT 1 +#define IS31FL3731_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 6 #endif diff --git a/keyboards/spaceholdings/nebula12/config.h b/keyboards/spaceholdings/nebula12/config.h index 3853ebcff6..ceeed9e1a7 100755 --- a/keyboards/spaceholdings/nebula12/config.h +++ b/keyboards/spaceholdings/nebula12/config.h @@ -73,7 +73,7 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } -#define DRIVER_COUNT 1 +#define IS31FL3731_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 16 // These define which keys in the matrix are alphas/mods diff --git a/keyboards/terrazzo/config.h b/keyboards/terrazzo/config.h index 0c7a09033d..dc0fa100e8 100644 --- a/keyboards/terrazzo/config.h +++ b/keyboards/terrazzo/config.h @@ -18,7 +18,7 @@ #ifdef LED_MATRIX_ENABLE #define LED_DRIVER_ADDR_1 0x74 -#define LED_DRIVER_COUNT 1 +#define IS31FL3731_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 105 #define LED_MATRIX_ROWS 15 #define LED_MATRIX_COLS 7 diff --git a/keyboards/tkc/portico/config.h b/keyboards/tkc/portico/config.h index c9a25e843c..5adf42127e 100644 --- a/keyboards/tkc/portico/config.h +++ b/keyboards/tkc/portico/config.h @@ -41,14 +41,14 @@ along with this program. If not, see . # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 # define DRIVER_ADDR_1 0x74 # define DRIVER_ADDR_2 0x77 -# define DRIVER_COUNT 2 +# define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 31 # define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #else // IS31FL3731 driver -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 67 #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/rama_works_kara/config.h b/keyboards/wilba_tech/rama_works_kara/config.h index d34fd6468c..b3fa3808ec 100644 --- a/keyboards/wilba_tech/rama_works_kara/config.h +++ b/keyboards/wilba_tech/rama_works_kara/config.h @@ -16,7 +16,7 @@ #pragma once // IS31FL3731 driver -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 72 // Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap diff --git a/keyboards/wilba_tech/rama_works_koyu/config.h b/keyboards/wilba_tech/rama_works_koyu/config.h index c3bb43ec6d..85bbf28051 100644 --- a/keyboards/wilba_tech/rama_works_koyu/config.h +++ b/keyboards/wilba_tech/rama_works_koyu/config.h @@ -16,7 +16,7 @@ #pragma once // IS31FL3731 driver -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 72 // Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap diff --git a/keyboards/wilba_tech/rama_works_m10_c/config.h b/keyboards/wilba_tech/rama_works_m10_c/config.h index 1cc9655b1b..d5e47ac879 100644 --- a/keyboards/wilba_tech/rama_works_m10_c/config.h +++ b/keyboards/wilba_tech/rama_works_m10_c/config.h @@ -21,7 +21,7 @@ #define LOCKING_RESYNC_ENABLE // IS31FL3731 driver -#define DRIVER_COUNT 1 +#define IS31FL3731_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 12 // Enable WT RGB backlight diff --git a/keyboards/wilba_tech/rama_works_m50_a/config.h b/keyboards/wilba_tech/rama_works_m50_a/config.h index ab04ab070b..16439309be 100644 --- a/keyboards/wilba_tech/rama_works_m50_a/config.h +++ b/keyboards/wilba_tech/rama_works_m50_a/config.h @@ -21,7 +21,7 @@ #define LOCKING_RESYNC_ENABLE // IS31FL3731 driver -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 72 // Enable WT RGB backlight diff --git a/keyboards/wilba_tech/rama_works_m60_a/config.h b/keyboards/wilba_tech/rama_works_m60_a/config.h index c80a018496..7cec5dcc21 100644 --- a/keyboards/wilba_tech/rama_works_m60_a/config.h +++ b/keyboards/wilba_tech/rama_works_m60_a/config.h @@ -16,7 +16,7 @@ #pragma once // IS31FL3731 driver -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 72 // Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap diff --git a/keyboards/wilba_tech/rama_works_m65_b/config.h b/keyboards/wilba_tech/rama_works_m65_b/config.h index 6d3f0fb97f..88f8341aa6 100644 --- a/keyboards/wilba_tech/rama_works_m65_b/config.h +++ b/keyboards/wilba_tech/rama_works_m65_b/config.h @@ -21,7 +21,7 @@ #define LOCKING_RESYNC_ENABLE // IS31FL3731 driver -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 72 // Enable WT RGB backlight diff --git a/keyboards/wilba_tech/rama_works_m65_bx/config.h b/keyboards/wilba_tech/rama_works_m65_bx/config.h index e367a7fc76..be3af2f668 100644 --- a/keyboards/wilba_tech/rama_works_m65_bx/config.h +++ b/keyboards/wilba_tech/rama_works_m65_bx/config.h @@ -21,7 +21,7 @@ #define LOCKING_RESYNC_ENABLE // IS31FL3731 driver -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 72 // Enable WT RGB backlight diff --git a/keyboards/wilba_tech/rama_works_u80_a/config.h b/keyboards/wilba_tech/rama_works_u80_a/config.h index cb2d88bd47..0d8e1e12b5 100644 --- a/keyboards/wilba_tech/rama_works_u80_a/config.h +++ b/keyboards/wilba_tech/rama_works_u80_a/config.h @@ -38,7 +38,7 @@ //#define NO_ACTION_ONESHOT // IS31FL3731 driver -#define DRIVER_COUNT 3 +#define IS31FL3731_DRIVER_COUNT 3 #define RGB_MATRIX_LED_COUNT 108 #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/wt60_b/config.h b/keyboards/wilba_tech/wt60_b/config.h index cf495a2e78..c5818173ca 100644 --- a/keyboards/wilba_tech/wt60_b/config.h +++ b/keyboards/wilba_tech/wt60_b/config.h @@ -23,7 +23,7 @@ // IS31FL3731 driver -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 72 #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/wt60_bx/config.h b/keyboards/wilba_tech/wt60_bx/config.h index 6f89b14954..37ffe646bc 100644 --- a/keyboards/wilba_tech/wt60_bx/config.h +++ b/keyboards/wilba_tech/wt60_bx/config.h @@ -23,7 +23,7 @@ // IS31FL3731 driver -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 72 #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/wt60_c/config.h b/keyboards/wilba_tech/wt60_c/config.h index 776aebcf20..80f894e451 100644 --- a/keyboards/wilba_tech/wt60_c/config.h +++ b/keyboards/wilba_tech/wt60_c/config.h @@ -23,7 +23,7 @@ // IS31FL3731 driver -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 72 #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/zeal60/config.h b/keyboards/wilba_tech/zeal60/config.h index e57bafe20d..31ee2942ce 100644 --- a/keyboards/wilba_tech/zeal60/config.h +++ b/keyboards/wilba_tech/zeal60/config.h @@ -16,7 +16,7 @@ #pragma once // IS31FL3731 driver -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 72 // Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap diff --git a/keyboards/wilba_tech/zeal65/config.h b/keyboards/wilba_tech/zeal65/config.h index 4a73ed3b27..7370931df1 100644 --- a/keyboards/wilba_tech/zeal65/config.h +++ b/keyboards/wilba_tech/zeal65/config.h @@ -16,7 +16,7 @@ #pragma once // IS31FL3731 driver -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 72 // Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap diff --git a/keyboards/xbows/knight/config.h b/keyboards/xbows/knight/config.h index 0875283a78..dcf3c5a52f 100644 --- a/keyboards/xbows/knight/config.h +++ b/keyboards/xbows/knight/config.h @@ -50,7 +50,7 @@ # define DRIVER_ADDR_1 0b1110100 # define DRIVER_ADDR_2 0b1110110 # define DRIVER_ADDR_3 0b1110101 -# define DRIVER_COUNT 3 +# define IS31FL3731_DRIVER_COUNT 3 # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 35 # define DRIVER_3_LED_TOTAL 15 diff --git a/keyboards/xbows/knight_plus/config.h b/keyboards/xbows/knight_plus/config.h index f8ec6d273b..417393d4f8 100644 --- a/keyboards/xbows/knight_plus/config.h +++ b/keyboards/xbows/knight_plus/config.h @@ -50,7 +50,7 @@ # define DRIVER_ADDR_1 0b1110100 # define DRIVER_ADDR_2 0b1110110 # define DRIVER_ADDR_3 0b1110101 -# define DRIVER_COUNT 3 +# define IS31FL3731_DRIVER_COUNT 3 # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 35 # define DRIVER_3_LED_TOTAL 15 diff --git a/keyboards/xbows/nature/config.h b/keyboards/xbows/nature/config.h index be7fbeaa64..e3db6b5b7a 100644 --- a/keyboards/xbows/nature/config.h +++ b/keyboards/xbows/nature/config.h @@ -52,7 +52,7 @@ # define DRIVER_ADDR_1 0b1110100 # define DRIVER_ADDR_2 0b1110110 # define DRIVER_ADDR_3 0b1110101 -# define DRIVER_COUNT 3 +# define IS31FL3731_DRIVER_COUNT 3 # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 36 # define DRIVER_3_LED_TOTAL 15 diff --git a/keyboards/xbows/numpad/config.h b/keyboards/xbows/numpad/config.h index 1276efe191..ec0b7d8e8b 100644 --- a/keyboards/xbows/numpad/config.h +++ b/keyboards/xbows/numpad/config.h @@ -48,6 +48,6 @@ # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out # define DRIVER_ADDR_1 0b1110111 -# define DRIVER_COUNT 1 +# define IS31FL3731_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 22 #endif diff --git a/keyboards/xbows/ranger/config.h b/keyboards/xbows/ranger/config.h index 68c8227da0..2ae5db6289 100644 --- a/keyboards/xbows/ranger/config.h +++ b/keyboards/xbows/ranger/config.h @@ -49,7 +49,7 @@ # define DRIVER_ADDR_1 0b1110100 # define DRIVER_ADDR_2 0b1110101 # define DRIVER_ADDR_3 0b1110110 -# define DRIVER_COUNT 3 +# define IS31FL3731_DRIVER_COUNT 3 # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 36 # define DRIVER_3_LED_TOTAL 15 diff --git a/keyboards/xbows/woody/config.h b/keyboards/xbows/woody/config.h index bfdbcce8c2..0228b954d7 100644 --- a/keyboards/xbows/woody/config.h +++ b/keyboards/xbows/woody/config.h @@ -58,7 +58,7 @@ # define DRIVER_ADDR_1 0b1110100 # define DRIVER_ADDR_2 0b1110110 -# define DRIVER_COUNT 2 +# define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 35 # define DRIVER_2_LED_TOTAL 32 # define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/xelus/dawn60/rev1/config.h b/keyboards/xelus/dawn60/rev1/config.h index d3b505447a..b895890388 100644 --- a/keyboards/xelus/dawn60/rev1/config.h +++ b/keyboards/xelus/dawn60/rev1/config.h @@ -16,7 +16,7 @@ #pragma once // IS31FL3731 driver -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 64 // Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap diff --git a/keyboards/xelus/dawn60/rev1_qmk/config.h b/keyboards/xelus/dawn60/rev1_qmk/config.h index ad399bd962..0c3f8208a4 100644 --- a/keyboards/xelus/dawn60/rev1_qmk/config.h +++ b/keyboards/xelus/dawn60/rev1_qmk/config.h @@ -27,7 +27,7 @@ #define DRIVER_ADDR_1 0x74 #define DRIVER_ADDR_2 0x76 -#define DRIVER_COUNT 2 +#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 32 #define DRIVER_2_LED_TOTAL 32 #define ISSI_DRIVER_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) From 33d7fa1180d232dcdb024c68a8f4629dced32afb Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 13 Sep 2023 13:44:05 -0700 Subject: [PATCH 039/496] Inland MK47 Community Layout Support (#21998) * Rename `LAYOUT` to `LAYOUT_planck_mit` [refactor] * Enable Community Layout support [enhancement] * Touch-up keymaps - grid-align keycodes [style] --- keyboards/inland/mk47/info.json | 8 ++++- .../inland/mk47/keymaps/default/keymap.c | 32 +++++++++++-------- keyboards/inland/mk47/keymaps/inland/keymap.c | 32 +++++++++++-------- keyboards/inland/mk47/keymaps/via/keymap.c | 32 +++++++++++-------- 4 files changed, 61 insertions(+), 43 deletions(-) diff --git a/keyboards/inland/mk47/info.json b/keyboards/inland/mk47/info.json index 184527e0de..45a11e913a 100644 --- a/keyboards/inland/mk47/info.json +++ b/keyboards/inland/mk47/info.json @@ -100,8 +100,14 @@ ] }, "diode_direction": "ROW2COL", + "layout_aliases": { + "LAYOUT": "LAYOUT_planck_mit" + }, + "community_layouts": [ + "planck_mit" + ], "layouts": { - "LAYOUT": { + "LAYOUT_planck_mit": { "layout": [ { "label": "Esc", "matrix": [0, 0],"x": 0, "y": 0 }, { "label": "Q", "matrix": [0, 1], "x": 1, "y": 0 }, diff --git a/keyboards/inland/mk47/keymaps/default/keymap.c b/keyboards/inland/mk47/keymaps/default/keymap.c index f288d4e1fe..dab9c63782 100644 --- a/keyboards/inland/mk47/keymaps/default/keymap.c +++ b/keyboards/inland/mk47/keymaps/default/keymap.c @@ -19,23 +19,27 @@ // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, - KC_LCTL, MO(2), KC_LALT, KC_DEL, KC_PGDN, KC_SPC, KC_PGUP, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + [0] = LAYOUT_planck_mit( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, + KC_LCTL, MO(2), KC_LALT, KC_DEL, KC_PGDN, KC_SPC, KC_PGUP, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), - [1] = LAYOUT( - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RGB_MOD, - KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + [1] = LAYOUT_planck_mit( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RGB_MOD, + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, RGB_VAI, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, KC_TRNS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, KC_TRNS + ), + + [2] = LAYOUT_planck_mit( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, + KC_LCTL, KC_NO, KC_LALT, KC_DEL, KC_PGDN, KC_SPC, KC_PGUP, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT + ) - [2] = LAYOUT( - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, - KC_LCTL, KC_NO, KC_LALT, KC_DEL, KC_PGDN, KC_SPC, KC_PGUP, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT) }; // clang-format on diff --git a/keyboards/inland/mk47/keymaps/inland/keymap.c b/keyboards/inland/mk47/keymaps/inland/keymap.c index ff5de15c47..e376211185 100644 --- a/keyboards/inland/mk47/keymaps/inland/keymap.c +++ b/keyboards/inland/mk47/keymaps/inland/keymap.c @@ -19,22 +19,26 @@ // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, - KC_LCTL, MO(2), KC_LALT, KC_DEL, KC_PGDN, KC_SPC, KC_PGUP, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + [0] = LAYOUT_planck_mit( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, + KC_LCTL, MO(2), KC_LALT, KC_DEL, KC_PGDN, KC_SPC, KC_PGUP, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), - [1] = LAYOUT( - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RGB_MOD, - RGB_HUI, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + [1] = LAYOUT_planck_mit( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RGB_MOD, + RGB_HUI, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSEL, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, RGB_VAI, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), + KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI + ), + + [2] = LAYOUT_planck_mit( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, + KC_LCTL, KC_NO, KC_LALT, KC_DEL, KC_PGDN, KC_SPC, KC_PGUP, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT + ) - [2] = LAYOUT( - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, - KC_LCTL, KC_NO, KC_LALT, KC_DEL, KC_PGDN, KC_SPC, KC_PGUP, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT) }; // clang-format on diff --git a/keyboards/inland/mk47/keymaps/via/keymap.c b/keyboards/inland/mk47/keymaps/via/keymap.c index 53cabcc477..0eb46e63a4 100644 --- a/keyboards/inland/mk47/keymaps/via/keymap.c +++ b/keyboards/inland/mk47/keymaps/via/keymap.c @@ -19,23 +19,27 @@ // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, - KC_LCTL, MO(2), KC_LALT, KC_DEL, KC_PGDN, KC_SPC, KC_PGUP, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + [0] = LAYOUT_planck_mit( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, + KC_LCTL, MO(2), KC_LALT, KC_DEL, KC_PGDN, KC_SPC, KC_PGUP, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), - [1] = LAYOUT( - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RGB_MOD, - RGB_HUI, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + [1] = LAYOUT_planck_mit( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RGB_MOD, + RGB_HUI, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSEL, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, RGB_VAI, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI + ), + + [2] = LAYOUT_planck_mit( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, + KC_LCTL, KC_NO, KC_LALT, KC_DEL, KC_PGDN, KC_SPC, KC_PGUP, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT + ) - [2] = LAYOUT( - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, - KC_LCTL, KC_NO, KC_LALT, KC_DEL, KC_PGDN, KC_SPC, KC_PGUP, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT) }; // clang-format on From 1b637287a1ca5dffb289a4b4a3ac90eae407a0c5 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 13 Sep 2023 22:13:21 +0100 Subject: [PATCH 040/496] Default wear leveling logical size to half backing (#22006) --- docs/eeprom_driver.md | 12 ++++++------ .../drivers/wear_leveling/wear_leveling_efl_config.h | 2 +- .../wear_leveling_rp2040_flash_config.h | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/eeprom_driver.md b/docs/eeprom_driver.md index 50d8bcb7b3..34b6f51cbe 100644 --- a/docs/eeprom_driver.md +++ b/docs/eeprom_driver.md @@ -105,11 +105,11 @@ Configurable options in your keyboard's `config.h`: `config.h` override | Default | Description -----------------------------------------|-------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -`#define WEAR_LEVELING_EFL_FIRST_SECTOR` | _unset_ | The first sector on the MCU to use. By default this is not defined and calculated at runtime based on the MCU. However, different flash sizes on MCUs may require custom configuration. -`#define WEAR_LEVELING_EFL_FLASH_SIZE` | _unset_ | Allows overriding the flash size available for use for wear-leveling. Under normal circumstances this is automatically calculated and should not need to be overridden. Specifying a size larger than the amount actually available in flash will usually prevent the MCU from booting. -`#define WEAR_LEVELING_LOGICAL_SIZE` | `1024` | Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM. -`#define WEAR_LEVELING_BACKING_SIZE` | `2048` | Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size. -`#define BACKING_STORE_WRITE_SIZE` | _automatic_ | The byte width of the underlying write used on the MCU, and is usually automatically determined from the selected MCU family. If an error occurs in the auto-detection, you'll need to consult the MCU's datasheet and determine this value, specifying it directly. +`#define WEAR_LEVELING_EFL_FIRST_SECTOR` | _unset_ | The first sector on the MCU to use. By default this is not defined and calculated at runtime based on the MCU. However, different flash sizes on MCUs may require custom configuration. +`#define WEAR_LEVELING_EFL_FLASH_SIZE` | _unset_ | Allows overriding the flash size available for use for wear-leveling. Under normal circumstances this is automatically calculated and should not need to be overridden. Specifying a size larger than the amount actually available in flash will usually prevent the MCU from booting. +`#define WEAR_LEVELING_LOGICAL_SIZE` | `(backing_size/2)` | Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM. +`#define WEAR_LEVELING_BACKING_SIZE` | `2048` | Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size. +`#define BACKING_STORE_WRITE_SIZE` | _automatic_ | The byte width of the underlying write used on the MCU, and is usually automatically determined from the selected MCU family. If an error occurs in the auto-detection, you'll need to consult the MCU's datasheet and determine this value, specifying it directly. !> If your MCU does not boot after swapping to the EFL wear-leveling driver, it's likely that the flash size is incorrectly detected, usually as an MCU with larger flash and may require overriding. @@ -139,7 +139,7 @@ Configurable options in your keyboard's `config.h`: ------------------------------------------|----------------------------|-------------------------------------------------------------------------------------------------------------------------------- `#define WEAR_LEVELING_RP2040_FLASH_SIZE` | `PICO_FLASH_SIZE_BYTES` | Number of bytes of flash on the board. `#define WEAR_LEVELING_RP2040_FLASH_BASE` | `(flash_size-sector_size)` | The byte-wise location that the backing storage should be located. -`#define WEAR_LEVELING_LOGICAL_SIZE` | `4096` | Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM. +`#define WEAR_LEVELING_LOGICAL_SIZE` | `(backing_size/2)` | Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM. `#define WEAR_LEVELING_BACKING_SIZE` | `8192` | Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size as well as the sector size. `#define BACKING_STORE_WRITE_SIZE` | `2` | The write width used whenever a write is performed on the external flash peripheral. diff --git a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h index e74cf85efd..0f0fa694e9 100644 --- a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h +++ b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h @@ -50,5 +50,5 @@ // 1kB logical EEPROM #ifndef WEAR_LEVELING_LOGICAL_SIZE -# define WEAR_LEVELING_LOGICAL_SIZE 1024 +# define WEAR_LEVELING_LOGICAL_SIZE ((WEAR_LEVELING_BACKING_SIZE) / 2) #endif // WEAR_LEVELING_LOGICAL_SIZE diff --git a/platforms/chibios/drivers/wear_leveling/wear_leveling_rp2040_flash_config.h b/platforms/chibios/drivers/wear_leveling/wear_leveling_rp2040_flash_config.h index 93a9aa0372..e1e2433601 100644 --- a/platforms/chibios/drivers/wear_leveling/wear_leveling_rp2040_flash_config.h +++ b/platforms/chibios/drivers/wear_leveling/wear_leveling_rp2040_flash_config.h @@ -18,7 +18,7 @@ // 32kB logical EEPROM #ifndef WEAR_LEVELING_LOGICAL_SIZE -# define WEAR_LEVELING_LOGICAL_SIZE 4096 +# define WEAR_LEVELING_LOGICAL_SIZE ((WEAR_LEVELING_BACKING_SIZE) / 2) #endif // WEAR_LEVELING_LOGICAL_SIZE // Define how much flash space we have (defaults to lib/pico-sdk/src/boards/include/boards/***) From c6841a51de509903a6bb8393981ffeefb6aebc63 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 13 Sep 2023 14:54:46 -0700 Subject: [PATCH 041/496] Jaykeeb Sebelas: Standardize Layout Names (#21999) * Rename `LAYOUT_65_ansi_blocker` to `LAYOUT_ansi_blocker` [refactor] * Rename `LAYOUT_65_ansi_blocker_split_bs` to `LAYOUT_ansi_blocker_split_bs` [refactor] * Rename `LAYOUT_65_ansi_blocker_tsangan` to `LAYOUT_ansi_blocker_tsangan` [refactor] * Rename `LAYOUT_65_ansi_blocker_tsangan_split_bs` to `LAYOUT_ansi_blocker_tsangan_split_bs` [refactor] --- keyboards/jaykeeb/sebelas/info.json | 16 +++++++++++----- .../jaykeeb/sebelas/keymaps/default/keymap.c | 4 ++-- keyboards/jaykeeb/sebelas/keymaps/via/keymap.c | 4 ++-- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/keyboards/jaykeeb/sebelas/info.json b/keyboards/jaykeeb/sebelas/info.json index ac4202d820..e88607703e 100644 --- a/keyboards/jaykeeb/sebelas/info.json +++ b/keyboards/jaykeeb/sebelas/info.json @@ -47,6 +47,12 @@ "pid": "0x0767", "vid": "0x414C" }, + "layout_aliases": { + "LAYOUT_65_ansi_blocker": "LAYOUT_ansi_blocker", + "LAYOUT_65_ansi_blocker_split_bs": "LAYOUT_ansi_blocker_split_bs", + "LAYOUT_65_ansi_blocker_tsangan": "LAYOUT_ansi_blocker_tsangan", + "LAYOUT_65_ansi_blocker_tsangan_split_bs": "LAYOUT_ansi_blocker_tsangan_split_bs" + }, "layouts": { "LAYOUT_all": { "layout": [ @@ -124,7 +130,7 @@ {"label": "\u2192", "matrix": [4, 14], "x": 15, "y": 4} ] }, - "LAYOUT_65_ansi_blocker": { + "LAYOUT_ansi_blocker": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, @@ -198,7 +204,7 @@ {"label": "\u2192", "matrix": [4, 14], "x": 15, "y": 4} ] }, - "LAYOUT_65_ansi_blocker_split_bs": { + "LAYOUT_ansi_blocker_split_bs": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, @@ -273,7 +279,7 @@ {"label": "\u2192", "matrix": [4, 14], "x": 15, "y": 4} ] }, - "LAYOUT_65_ansi_blocker_tsangan": { + "LAYOUT_ansi_blocker_tsangan": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, @@ -346,7 +352,7 @@ {"label": "\u2192", "matrix": [4, 14], "x": 15, "y": 4} ] }, - "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + "LAYOUT_ansi_blocker_tsangan_split_bs": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, @@ -421,4 +427,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/jaykeeb/sebelas/keymaps/default/keymap.c b/keyboards/jaykeeb/sebelas/keymaps/default/keymap.c index 4a525e7bd3..4a1a7db07d 100644 --- a/keyboards/jaykeeb/sebelas/keymaps/default/keymap.c +++ b/keyboards/jaykeeb/sebelas/keymaps/default/keymap.c @@ -4,7 +4,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_65_ansi_blocker( + [0] = LAYOUT_ansi_blocker( KC_ESC, 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_BSPC, 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_PGUP, 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_ENT, KC_PGDN, @@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_65_ansi_blocker( + [1] = LAYOUT_ansi_blocker( 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_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/jaykeeb/sebelas/keymaps/via/keymap.c b/keyboards/jaykeeb/sebelas/keymaps/via/keymap.c index 4a525e7bd3..4a1a7db07d 100644 --- a/keyboards/jaykeeb/sebelas/keymaps/via/keymap.c +++ b/keyboards/jaykeeb/sebelas/keymaps/via/keymap.c @@ -4,7 +4,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_65_ansi_blocker( + [0] = LAYOUT_ansi_blocker( KC_ESC, 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_BSPC, 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_PGUP, 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_ENT, KC_PGDN, @@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_65_ansi_blocker( + [1] = LAYOUT_ansi_blocker( 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_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, From 00feff656f80d9c9bf57cb1c6ad94ef2f69f1440 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 14 Sep 2023 00:13:19 +0100 Subject: [PATCH 042/496] Migrate WEAR_LEVELING_*_SIZE to info.json (#22010) --- keyboards/akko/5108/config.h | 1 - keyboards/akko/5108/info.json | 3 ++- keyboards/akko/acr87/config.h | 1 - keyboards/akko/acr87/info.json | 3 ++- keyboards/akko/top40/config.h | 1 - keyboards/akko/top40/info.json | 3 ++- keyboards/annepro2/c15/config.h | 4 ---- keyboards/annepro2/c15/info.json | 3 ++- keyboards/annepro2/c18/config.h | 4 ---- keyboards/annepro2/c18/info.json | 3 ++- keyboards/binepad/bn006/config.h | 8 ------- keyboards/binepad/bn006/info.json | 5 +++++ keyboards/binepad/bn006/rules.mk | 6 +----- keyboards/binepad/bn009/r2/config.h | 12 ----------- keyboards/binepad/bn009/r2/info.json | 5 +++++ keyboards/binepad/bnr1/v2/config.h | 7 ------- keyboards/chosfox/cf81/config.h | 1 - keyboards/chosfox/cf81/info.json | 3 ++- keyboards/gmmk/gmmk2/p96/ansi/info.json | 3 ++- keyboards/gmmk/gmmk2/p96/config.h | 1 - keyboards/gmmk/gmmk2/p96/iso/info.json | 3 ++- keyboards/gmmk/numpad/config.h | 1 - keyboards/gmmk/numpad/info.json | 3 ++- keyboards/gmmk/pro/rev2/ansi/info.json | 3 ++- keyboards/gmmk/pro/rev2/config.h | 1 - keyboards/gmmk/pro/rev2/iso/info.json | 3 ++- keyboards/hfdkb/ac001/config.h | 1 - keyboards/hfdkb/ac001/info.json | 3 ++- keyboards/horrortroll/handwired_k552/config.h | 4 ---- .../horrortroll/handwired_k552/info.json | 3 ++- keyboards/ibm/model_m/yugo_m/config.h | 4 ---- keyboards/ibm/model_m/yugo_m/info.json | 5 +++++ keyboards/inland/kb83/config.h | 1 - keyboards/inland/kb83/info.json | 3 ++- keyboards/inland/mk47/config.h | 1 - keyboards/inland/mk47/info.json | 3 ++- keyboards/mechlovin/hex6c/config.h | 3 --- keyboards/mechlovin/hex6c/info.json | 5 +++++ keyboards/mode/m75h/config.h | 21 ------------------- keyboards/mode/m75h/info.json | 5 +++++ keyboards/mode/m75s/config.h | 3 --- keyboards/mode/m75s/info.json | 5 +++++ keyboards/monsgeek/m1/config.h | 1 - keyboards/monsgeek/m1/info.json | 3 ++- keyboards/monsgeek/m5/config.h | 1 - keyboards/monsgeek/m5/info.json | 3 ++- keyboards/monsgeek/m6/config.h | 1 - keyboards/monsgeek/m6/info.json | 3 ++- .../projectd/65/projectd_65_ansi/config.h | 1 - .../projectd/65/projectd_65_ansi/info.json | 3 ++- keyboards/rgbkb/mun/config.h | 3 --- keyboards/rgbkb/mun/rev1/info.json | 5 +++++ keyboards/rgbkb/sol3/config.h | 3 --- keyboards/rgbkb/sol3/rev1/info.json | 5 +++++ keyboards/xelus/kangaroo/rev2/config.h | 3 --- keyboards/xelus/kangaroo/rev2/info.json | 5 +++++ keyboards/xelus/rs60/rev2_1/config.h | 3 --- keyboards/xelus/rs60/rev2_1/info.json | 5 +++++ 58 files changed, 89 insertions(+), 120 deletions(-) delete mode 100644 keyboards/binepad/bn009/r2/config.h delete mode 100644 keyboards/binepad/bnr1/v2/config.h delete mode 100644 keyboards/mode/m75h/config.h diff --git a/keyboards/akko/5108/config.h b/keyboards/akko/5108/config.h index 4c04933bcf..790830c88b 100644 --- a/keyboards/akko/5108/config.h +++ b/keyboards/akko/5108/config.h @@ -35,7 +35,6 @@ #define SPI_MOSI_PAL_MODE 5 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 -#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) /* I2C Config for LED Driver */ #define IS31FL3733_DRIVER_COUNT 2 diff --git a/keyboards/akko/5108/info.json b/keyboards/akko/5108/info.json index 74379db27b..ef3f85a1ec 100644 --- a/keyboards/akko/5108/info.json +++ b/keyboards/akko/5108/info.json @@ -29,7 +29,8 @@ "eeprom": { "driver": "wear_leveling", "wear_leveling": { - "driver": "spi_flash" + "driver": "spi_flash", + "backing_size": 8192 } }, "indicators": { diff --git a/keyboards/akko/acr87/config.h b/keyboards/akko/acr87/config.h index 6e4d8dd574..3f61359074 100644 --- a/keyboards/akko/acr87/config.h +++ b/keyboards/akko/acr87/config.h @@ -32,7 +32,6 @@ #define SPI_MOSI_PAL_MODE 5 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 -#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) /* I2C Config for LED Driver */ #define IS31FL3733_DRIVER_COUNT 3 diff --git a/keyboards/akko/acr87/info.json b/keyboards/akko/acr87/info.json index 5ce22462d9..f9d360282d 100644 --- a/keyboards/akko/acr87/info.json +++ b/keyboards/akko/acr87/info.json @@ -29,7 +29,8 @@ "eeprom": { "driver": "wear_leveling", "wear_leveling": { - "driver": "spi_flash" + "driver": "spi_flash", + "backing_size": 8192 } }, "rgb_matrix": { diff --git a/keyboards/akko/top40/config.h b/keyboards/akko/top40/config.h index e8672856ef..cc72977c4d 100644 --- a/keyboards/akko/top40/config.h +++ b/keyboards/akko/top40/config.h @@ -32,7 +32,6 @@ #define SPI_MOSI_PAL_MODE 5 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 -#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) /* I2C Config for LED Driver */ #define IS31FL3733_DRIVER_COUNT 2 diff --git a/keyboards/akko/top40/info.json b/keyboards/akko/top40/info.json index e66f79e6c0..3624ee0411 100644 --- a/keyboards/akko/top40/info.json +++ b/keyboards/akko/top40/info.json @@ -29,7 +29,8 @@ "eeprom": { "driver": "wear_leveling", "wear_leveling": { - "driver": "spi_flash" + "driver": "spi_flash", + "backing_size": 8192 } }, "rgb_matrix": { diff --git a/keyboards/annepro2/c15/config.h b/keyboards/annepro2/c15/config.h index ea38f4dce3..f488b9d8f3 100644 --- a/keyboards/annepro2/c15/config.h +++ b/keyboards/annepro2/c15/config.h @@ -57,7 +57,3 @@ #define EXTERNAL_FLASH_SECTOR_SIZE 4096 #define EXTERNAL_FLASH_BLOCK_SIZE 4096 #define EXTERNAL_FLASH_SIZE (256 * 1024) // 2M-bit flash size - -// Wear-leveling driver configuration -#define WEAR_LEVELING_LOGICAL_SIZE 1024 -#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) diff --git a/keyboards/annepro2/c15/info.json b/keyboards/annepro2/c15/info.json index 7138294987..b7624dd6c5 100644 --- a/keyboards/annepro2/c15/info.json +++ b/keyboards/annepro2/c15/info.json @@ -6,7 +6,8 @@ "eeprom": { "driver": "wear_leveling", "wear_leveling": { - "driver": "spi_flash" + "driver": "spi_flash", + "backing_size": 2048 } }, "rgb_matrix": { diff --git a/keyboards/annepro2/c18/config.h b/keyboards/annepro2/c18/config.h index 6b6307c3d0..36f4a25c8d 100644 --- a/keyboards/annepro2/c18/config.h +++ b/keyboards/annepro2/c18/config.h @@ -55,7 +55,3 @@ #define EXTERNAL_FLASH_SECTOR_SIZE 4096 #define EXTERNAL_FLASH_BLOCK_SIZE 4096 #define EXTERNAL_FLASH_SIZE (256 * 1024) // 2M-bit flash size - -// Wear-leveling driver configuration -#define WEAR_LEVELING_LOGICAL_SIZE 1024 -#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) diff --git a/keyboards/annepro2/c18/info.json b/keyboards/annepro2/c18/info.json index 439188b2f7..c8f524e3cf 100644 --- a/keyboards/annepro2/c18/info.json +++ b/keyboards/annepro2/c18/info.json @@ -6,7 +6,8 @@ "eeprom": { "driver": "wear_leveling", "wear_leveling": { - "driver": "spi_flash" + "driver": "spi_flash", + "backing_size": 2048 } }, "rgb_matrix": { diff --git a/keyboards/binepad/bn006/config.h b/keyboards/binepad/bn006/config.h index 41c3822655..0569ccff03 100755 --- a/keyboards/binepad/bn006/config.h +++ b/keyboards/binepad/bn006/config.h @@ -3,14 +3,6 @@ #pragma once -/* - * Wear Leveling EEPROM Emulation - */ - -#define WEAR_LEVELING_LOGICAL_SIZE 2048 // Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM. -#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) // Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size. - - /* * RGB Matrix */ diff --git a/keyboards/binepad/bn006/info.json b/keyboards/binepad/bn006/info.json index 756b82e330..81e68d2e0c 100755 --- a/keyboards/binepad/bn006/info.json +++ b/keyboards/binepad/bn006/info.json @@ -24,6 +24,11 @@ "pid": "0x426E", "device_version": "1.0.0" }, + "eeprom": { + "wear_leveling": { + "backing_size": 4096 + } + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/binepad/bn006/rules.mk b/keyboards/binepad/bn006/rules.mk index 58561c984b..7ff128fa69 100755 --- a/keyboards/binepad/bn006/rules.mk +++ b/keyboards/binepad/bn006/rules.mk @@ -1,5 +1 @@ -# Copyright 2022 Binepad (@binpad) -# SPDX-License-Identifier: GPL-2.0-or-later - -EPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/binepad/bn009/r2/config.h b/keyboards/binepad/bn009/r2/config.h deleted file mode 100644 index 45b63ec105..0000000000 --- a/keyboards/binepad/bn009/r2/config.h +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2023 Binepad (@binepad) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - - -/* - * Wear Leveling EEPROM Emulation - */ - -#define WEAR_LEVELING_LOGICAL_SIZE 2048 // Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM. -#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) // Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size. diff --git a/keyboards/binepad/bn009/r2/info.json b/keyboards/binepad/bn009/r2/info.json index c011fe0e32..870608b5c8 100644 --- a/keyboards/binepad/bn009/r2/info.json +++ b/keyboards/binepad/bn009/r2/info.json @@ -6,6 +6,11 @@ "cols": ["A1", "A2", "A6"], "rows": ["B6", "B7", "B2"] }, + "eeprom": { + "wear_leveling": { + "backing_size": 4096 + } + }, "processor": "STM32F103", "usb": { "device_version": "2.0.0" diff --git a/keyboards/binepad/bnr1/v2/config.h b/keyboards/binepad/bnr1/v2/config.h deleted file mode 100644 index c408f95d38..0000000000 --- a/keyboards/binepad/bnr1/v2/config.h +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2022 BINEPAD (@binepad) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define WEAR_LEVELING_LOGICAL_SIZE 1024 -#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) diff --git a/keyboards/chosfox/cf81/config.h b/keyboards/chosfox/cf81/config.h index 95b2aca688..e837c9745b 100644 --- a/keyboards/chosfox/cf81/config.h +++ b/keyboards/chosfox/cf81/config.h @@ -32,7 +32,6 @@ #define SPI_MOSI_PAL_MODE 5 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 -#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) /* I2C Config for LED Driver */ #define IS31FL3733_DRIVER_COUNT 2 diff --git a/keyboards/chosfox/cf81/info.json b/keyboards/chosfox/cf81/info.json index 65134dfedf..bbfc2deb31 100644 --- a/keyboards/chosfox/cf81/info.json +++ b/keyboards/chosfox/cf81/info.json @@ -12,7 +12,8 @@ "eeprom": { "driver": "wear_leveling", "wear_leveling": { - "driver": "spi_flash" + "driver": "spi_flash", + "backing_size": 8192 } }, "processor": "WB32FQ95", diff --git a/keyboards/gmmk/gmmk2/p96/ansi/info.json b/keyboards/gmmk/gmmk2/p96/ansi/info.json index b80e334e0a..e4eaddbfe8 100644 --- a/keyboards/gmmk/gmmk2/p96/ansi/info.json +++ b/keyboards/gmmk/gmmk2/p96/ansi/info.json @@ -22,7 +22,8 @@ "eeprom": { "driver": "wear_leveling", "wear_leveling": { - "driver": "spi_flash" + "driver": "spi_flash", + "backing_size": 2048 } }, "processor": "WB32F3G71", diff --git a/keyboards/gmmk/gmmk2/p96/config.h b/keyboards/gmmk/gmmk2/p96/config.h index 4200bae922..9a5a2bf8a4 100644 --- a/keyboards/gmmk/gmmk2/p96/config.h +++ b/keyboards/gmmk/gmmk2/p96/config.h @@ -25,7 +25,6 @@ /* External spi flash */ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B14 -#define WEAR_LEVELING_BACKING_SIZE 2048 /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ diff --git a/keyboards/gmmk/gmmk2/p96/iso/info.json b/keyboards/gmmk/gmmk2/p96/iso/info.json index ee59bfd4ff..42b40231b6 100644 --- a/keyboards/gmmk/gmmk2/p96/iso/info.json +++ b/keyboards/gmmk/gmmk2/p96/iso/info.json @@ -22,7 +22,8 @@ "eeprom": { "driver": "wear_leveling", "wear_leveling": { - "driver": "spi_flash" + "driver": "spi_flash", + "backing_size": 2048 } }, "processor": "WB32F3G71", diff --git a/keyboards/gmmk/numpad/config.h b/keyboards/gmmk/numpad/config.h index 9096ce1d56..24a7a24a3f 100644 --- a/keyboards/gmmk/numpad/config.h +++ b/keyboards/gmmk/numpad/config.h @@ -37,7 +37,6 @@ #define RGB_MATRIX_LED_COUNT 31 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B6 -#define WEAR_LEVELING_BACKING_SIZE 2048 #define ENABLE_RGB_MATRIX_ALPHAS_MODS #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN diff --git a/keyboards/gmmk/numpad/info.json b/keyboards/gmmk/numpad/info.json index 406f22603a..83f7d840dc 100644 --- a/keyboards/gmmk/numpad/info.json +++ b/keyboards/gmmk/numpad/info.json @@ -11,7 +11,8 @@ "eeprom": { "driver": "wear_leveling", "wear_leveling": { - "driver": "spi_flash" + "driver": "spi_flash", + "backing_size": 2048 } }, "encoder": { diff --git a/keyboards/gmmk/pro/rev2/ansi/info.json b/keyboards/gmmk/pro/rev2/ansi/info.json index 968a1952ee..cd1fd31bf0 100644 --- a/keyboards/gmmk/pro/rev2/ansi/info.json +++ b/keyboards/gmmk/pro/rev2/ansi/info.json @@ -19,7 +19,8 @@ "eeprom": { "driver": "wear_leveling", "wear_leveling": { - "driver": "spi_flash" + "driver": "spi_flash", + "backing_size": 2048 } }, "encoder": { diff --git a/keyboards/gmmk/pro/rev2/config.h b/keyboards/gmmk/pro/rev2/config.h index fa409ba026..c393e04e45 100644 --- a/keyboards/gmmk/pro/rev2/config.h +++ b/keyboards/gmmk/pro/rev2/config.h @@ -19,7 +19,6 @@ /* External spi flash */ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B12 -#define WEAR_LEVELING_BACKING_SIZE 2048 /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ diff --git a/keyboards/gmmk/pro/rev2/iso/info.json b/keyboards/gmmk/pro/rev2/iso/info.json index 54ebc2d2f7..6233356616 100644 --- a/keyboards/gmmk/pro/rev2/iso/info.json +++ b/keyboards/gmmk/pro/rev2/iso/info.json @@ -19,7 +19,8 @@ "eeprom": { "driver": "wear_leveling", "wear_leveling": { - "driver": "spi_flash" + "driver": "spi_flash", + "backing_size": 2048 } }, "encoder": { diff --git a/keyboards/hfdkb/ac001/config.h b/keyboards/hfdkb/ac001/config.h index 6c0c2a2cf6..7d38c7392c 100644 --- a/keyboards/hfdkb/ac001/config.h +++ b/keyboards/hfdkb/ac001/config.h @@ -32,7 +32,6 @@ #define SPI_MOSI_PAL_MODE 5 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 -#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended diff --git a/keyboards/hfdkb/ac001/info.json b/keyboards/hfdkb/ac001/info.json index 36583e2e58..3f896d5988 100644 --- a/keyboards/hfdkb/ac001/info.json +++ b/keyboards/hfdkb/ac001/info.json @@ -20,7 +20,8 @@ "eeprom": { "driver": "wear_leveling", "wear_leveling": { - "driver": "spi_flash" + "driver": "spi_flash", + "backing_size": 8192 } }, "ws2812": { diff --git a/keyboards/horrortroll/handwired_k552/config.h b/keyboards/horrortroll/handwired_k552/config.h index bec0ac055b..11461a9418 100644 --- a/keyboards/horrortroll/handwired_k552/config.h +++ b/keyboards/horrortroll/handwired_k552/config.h @@ -30,10 +30,6 @@ #define EXTERNAL_FLASH_BLOCK_SIZE 4096 #define EXTERNAL_FLASH_SIZE (256 * 1024) // 2M-bit flash size -// Wear-leveling driver configuration -#define WEAR_LEVELING_LOGICAL_SIZE 1024 -#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) - #ifdef OLED_ENABLE /* Mapping I2C2 for OLED */ #define I2C1_SCL_PIN B10 diff --git a/keyboards/horrortroll/handwired_k552/info.json b/keyboards/horrortroll/handwired_k552/info.json index 2c97ce1306..b064df38c2 100644 --- a/keyboards/horrortroll/handwired_k552/info.json +++ b/keyboards/horrortroll/handwired_k552/info.json @@ -23,7 +23,8 @@ "eeprom": { "driver": "wear_leveling", "wear_leveling": { - "driver": "spi_flash" + "driver": "spi_flash", + "backing_size": 2048 } }, "community_layouts": ["tkl_ansi"], diff --git a/keyboards/ibm/model_m/yugo_m/config.h b/keyboards/ibm/model_m/yugo_m/config.h index 2b7fc4d157..0e6881ded3 100644 --- a/keyboards/ibm/model_m/yugo_m/config.h +++ b/keyboards/ibm/model_m/yugo_m/config.h @@ -36,7 +36,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -/* redefine available (emulated) EEPROM as 4 kB rather than the default 2 kB to let VIA use more of the on-chip Flash of the STM32F303 to store 4 layers (since 4 layers * 8 rows * 16 columns * 2 = 1024 bytes but the default max available is 1023 bytes due to ATMEGA32U4 etc. only having 1 kB of EEPROM) */ -#define WEAR_LEVELING_BACKING_SIZE 4096 -#define WEAR_LEVELING_LOGICAL_SIZE 2048 diff --git a/keyboards/ibm/model_m/yugo_m/info.json b/keyboards/ibm/model_m/yugo_m/info.json index 6e3a0b39c6..f4d9cc1d94 100644 --- a/keyboards/ibm/model_m/yugo_m/info.json +++ b/keyboards/ibm/model_m/yugo_m/info.json @@ -13,6 +13,11 @@ "rows": ["B8", "B7", "B6", "B5", "B4", "B3", "A15", "A14"] }, "diode_direction": "ROW2COL", + "eeprom": { + "wear_leveling": { + "backing_size": 4096 + } + }, "processor": "STM32F303", "bootloader": "stm32-dfu", "board": "QMK_PROTON_C", diff --git a/keyboards/inland/kb83/config.h b/keyboards/inland/kb83/config.h index e1b6702bd8..ed1f3cf160 100644 --- a/keyboards/inland/kb83/config.h +++ b/keyboards/inland/kb83/config.h @@ -36,7 +36,6 @@ #define SPI_MOSI_PAL_MODE 5 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 -#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) /* I2C Config for LED Driver */ #define IS31FL3733_DRIVER_COUNT 2 diff --git a/keyboards/inland/kb83/info.json b/keyboards/inland/kb83/info.json index 33545515ad..cd538ef4ee 100644 --- a/keyboards/inland/kb83/info.json +++ b/keyboards/inland/kb83/info.json @@ -21,7 +21,8 @@ "eeprom": { "driver": "wear_leveling", "wear_leveling": { - "driver": "spi_flash" + "driver": "spi_flash", + "backing_size": 8192 } }, "encoder": { diff --git a/keyboards/inland/mk47/config.h b/keyboards/inland/mk47/config.h index 7004b38e63..db9aea328f 100644 --- a/keyboards/inland/mk47/config.h +++ b/keyboards/inland/mk47/config.h @@ -23,7 +23,6 @@ #define SPI_MISO_PIN B4 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 -#define WEAR_LEVELING_BACKING_SIZE (4 * 1024) /* I2C Config for LED Driver */ #define IS31FL3733_DRIVER_COUNT 1 diff --git a/keyboards/inland/mk47/info.json b/keyboards/inland/mk47/info.json index 2ed18eac3b..7d94365724 100644 --- a/keyboards/inland/mk47/info.json +++ b/keyboards/inland/mk47/info.json @@ -29,7 +29,8 @@ "eeprom": { "driver": "wear_leveling", "wear_leveling": { - "driver": "spi_flash" + "driver": "spi_flash", + "backing_size": 4096 } }, "rgb_matrix": { diff --git a/keyboards/mechlovin/hex6c/config.h b/keyboards/mechlovin/hex6c/config.h index 4cfcaebcde..e74e7939c4 100644 --- a/keyboards/mechlovin/hex6c/config.h +++ b/keyboards/mechlovin/hex6c/config.h @@ -18,6 +18,3 @@ along with this program. If not, see . #pragma once #define BACKLIGHT_PWM_DRIVER PWMD3 - -#define WEAR_LEVELING_BACKING_SIZE 4096 -#define WEAR_LEVELING_LOGICAL_SIZE 2048 diff --git a/keyboards/mechlovin/hex6c/info.json b/keyboards/mechlovin/hex6c/info.json index dfeb91e0ba..483566e7f4 100644 --- a/keyboards/mechlovin/hex6c/info.json +++ b/keyboards/mechlovin/hex6c/info.json @@ -13,6 +13,11 @@ "rows": ["A10", "B13", "B12", "B11", "C14", "C15"] }, "diode_direction": "COL2ROW", + "eeprom": { + "wear_leveling": { + "backing_size": 4096 + } + }, "encoder": { "rotary": [ {"pin_a": "A15", "pin_b": "A2"} diff --git a/keyboards/mode/m75h/config.h b/keyboards/mode/m75h/config.h deleted file mode 100644 index c6d7d037ec..0000000000 --- a/keyboards/mode/m75h/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - Copyright 2020 Álvaro "Gondolindrim" Volpato - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define WEAR_LEVELING_LOGICAL_SIZE 2048 -#define WEAR_LEVELING_BACKING_SIZE 4096 diff --git a/keyboards/mode/m75h/info.json b/keyboards/mode/m75h/info.json index f57aac383e..8314dbf99d 100644 --- a/keyboards/mode/m75h/info.json +++ b/keyboards/mode/m75h/info.json @@ -13,6 +13,11 @@ "rows": ["C5", "B0", "B14", "B15", "A8", "C9", "A15"] }, "diode_direction": "COL2ROW", + "eeprom": { + "wear_leveling": { + "backing_size": 4096 + } + }, "processor": "STM32F401", "bootloader": "stm32-dfu", "layout_aliases": { diff --git a/keyboards/mode/m75s/config.h b/keyboards/mode/m75s/config.h index 7fdb18d26a..4d3a7d5ca4 100644 --- a/keyboards/mode/m75s/config.h +++ b/keyboards/mode/m75s/config.h @@ -20,6 +20,3 @@ along with this program. If not, see . #define BACKLIGHT_DEFAULT_LEVEL 20 #define BACKLIGHT_PWM_DRIVER PWMD3 #define BACKLIGHT_PWM_CHANNEL 1 - -#define WEAR_LEVELING_LOGICAL_SIZE 2048 -#define WEAR_LEVELING_BACKING_SIZE 4096 diff --git a/keyboards/mode/m75s/info.json b/keyboards/mode/m75s/info.json index bf60aebd56..df4d1ab451 100644 --- a/keyboards/mode/m75s/info.json +++ b/keyboards/mode/m75s/info.json @@ -13,6 +13,11 @@ "rows": ["C5", "B0", "B14", "B15", "C7", "C9", "A15"] }, "diode_direction": "COL2ROW", + "eeprom": { + "wear_leveling": { + "backing_size": 4096 + } + }, "backlight": { "pin": "C6", "levels": 20, diff --git a/keyboards/monsgeek/m1/config.h b/keyboards/monsgeek/m1/config.h index f5466ab09b..162001fca6 100644 --- a/keyboards/monsgeek/m1/config.h +++ b/keyboards/monsgeek/m1/config.h @@ -34,7 +34,6 @@ #define SPI_MOSI_PAL_MODE 5 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 -#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) /* I2C Config for LED Driver */ #define IS31FL3733_DRIVER_COUNT 2 diff --git a/keyboards/monsgeek/m1/info.json b/keyboards/monsgeek/m1/info.json index fe979b7c31..a008b22195 100644 --- a/keyboards/monsgeek/m1/info.json +++ b/keyboards/monsgeek/m1/info.json @@ -29,7 +29,8 @@ "eeprom": { "driver": "wear_leveling", "wear_leveling": { - "driver": "spi_flash" + "driver": "spi_flash", + "backing_size": 8192 } }, "encoder": { diff --git a/keyboards/monsgeek/m5/config.h b/keyboards/monsgeek/m5/config.h index db65cef760..a92c4975eb 100644 --- a/keyboards/monsgeek/m5/config.h +++ b/keyboards/monsgeek/m5/config.h @@ -35,7 +35,6 @@ #define SPI_MOSI_PAL_MODE 5 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 -#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) /* I2C Config for LED Driver */ #define IS31FL3733_DRIVER_COUNT 2 diff --git a/keyboards/monsgeek/m5/info.json b/keyboards/monsgeek/m5/info.json index ecc6b309ae..1e9ec8618a 100644 --- a/keyboards/monsgeek/m5/info.json +++ b/keyboards/monsgeek/m5/info.json @@ -28,7 +28,8 @@ "eeprom": { "driver": "wear_leveling", "wear_leveling": { - "driver": "spi_flash" + "driver": "spi_flash", + "backing_size": 8192 } }, "indicators": { diff --git a/keyboards/monsgeek/m6/config.h b/keyboards/monsgeek/m6/config.h index abed72f54e..c6f7d55e9d 100644 --- a/keyboards/monsgeek/m6/config.h +++ b/keyboards/monsgeek/m6/config.h @@ -32,7 +32,6 @@ #define SPI_MOSI_PAL_MODE 5 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 -#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) /* I2C Config for LED Driver */ #define IS31FL3733_DRIVER_COUNT 2 diff --git a/keyboards/monsgeek/m6/info.json b/keyboards/monsgeek/m6/info.json index 2aa297570c..7751ef13d6 100644 --- a/keyboards/monsgeek/m6/info.json +++ b/keyboards/monsgeek/m6/info.json @@ -28,7 +28,8 @@ "eeprom": { "driver": "wear_leveling", "wear_leveling": { - "driver": "spi_flash" + "driver": "spi_flash", + "backing_size": 8192 } }, "rgb_matrix": { diff --git a/keyboards/projectd/65/projectd_65_ansi/config.h b/keyboards/projectd/65/projectd_65_ansi/config.h index 64e4595e1b..4d1dc100d8 100644 --- a/keyboards/projectd/65/projectd_65_ansi/config.h +++ b/keyboards/projectd/65/projectd_65_ansi/config.h @@ -25,7 +25,6 @@ /* External spi flash */ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B14 -#define WEAR_LEVELING_BACKING_SIZE (4 * 1024) /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ diff --git a/keyboards/projectd/65/projectd_65_ansi/info.json b/keyboards/projectd/65/projectd_65_ansi/info.json index c385f00ed1..861e3792db 100644 --- a/keyboards/projectd/65/projectd_65_ansi/info.json +++ b/keyboards/projectd/65/projectd_65_ansi/info.json @@ -13,7 +13,8 @@ "eeprom": { "driver": "wear_leveling", "wear_leveling": { - "driver": "spi_flash" + "driver": "spi_flash", + "backing_size": 4096 } }, "features": { diff --git a/keyboards/rgbkb/mun/config.h b/keyboards/rgbkb/mun/config.h index fd2e366614..baf495b534 100644 --- a/keyboards/rgbkb/mun/config.h +++ b/keyboards/rgbkb/mun/config.h @@ -119,6 +119,3 @@ #define TOUCH_UPDATE_INTERVAL 33 #define OLED_UPDATE_INTERVAL 33 - -#define WEAR_LEVELING_BACKING_SIZE 4096 -#define WEAR_LEVELING_LOGICAL_SIZE 2048 diff --git a/keyboards/rgbkb/mun/rev1/info.json b/keyboards/rgbkb/mun/rev1/info.json index 5d380de5c7..91b60e76c3 100644 --- a/keyboards/rgbkb/mun/rev1/info.json +++ b/keyboards/rgbkb/mun/rev1/info.json @@ -37,6 +37,11 @@ "io_delay": 5 }, "diode_direction": "COL2ROW", + "eeprom": { + "wear_leveling": { + "backing_size": 4096 + } + }, "encoder": { "rotary": [ {"pin_a": "B8", "pin_b": "A14"}, diff --git a/keyboards/rgbkb/sol3/config.h b/keyboards/rgbkb/sol3/config.h index 3a0b61bfd5..575e5bcd95 100644 --- a/keyboards/rgbkb/sol3/config.h +++ b/keyboards/rgbkb/sol3/config.h @@ -125,6 +125,3 @@ #define AUDIO_CLICKY #define AUDIO_DAC_SAMPLE_WAVEFORM_SQUARE #define AUDIO_DAC_OFF_VALUE 0 - -#define WEAR_LEVELING_BACKING_SIZE 4096 -#define WEAR_LEVELING_LOGICAL_SIZE 2048 diff --git a/keyboards/rgbkb/sol3/rev1/info.json b/keyboards/rgbkb/sol3/rev1/info.json index b80161995f..7d3db933a8 100644 --- a/keyboards/rgbkb/sol3/rev1/info.json +++ b/keyboards/rgbkb/sol3/rev1/info.json @@ -37,6 +37,11 @@ "io_delay": 5 }, "diode_direction": "COL2ROW", + "eeprom": { + "wear_leveling": { + "backing_size": 4096 + } + }, "encoder": { "rotary": [ {"pin_a": "A1", "pin_b": "A2"}, diff --git a/keyboards/xelus/kangaroo/rev2/config.h b/keyboards/xelus/kangaroo/rev2/config.h index 790db9b30a..dfe8035b10 100644 --- a/keyboards/xelus/kangaroo/rev2/config.h +++ b/keyboards/xelus/kangaroo/rev2/config.h @@ -20,6 +20,3 @@ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -#define WEAR_LEVELING_LOGICAL_SIZE 2048 -#define WEAR_LEVELING_BACKING_SIZE WEAR_LEVELING_LOGICAL_SIZE*2 diff --git a/keyboards/xelus/kangaroo/rev2/info.json b/keyboards/xelus/kangaroo/rev2/info.json index 196f11860b..9e639df034 100644 --- a/keyboards/xelus/kangaroo/rev2/info.json +++ b/keyboards/xelus/kangaroo/rev2/info.json @@ -8,6 +8,11 @@ "rows": ["A9", "A8", "B15", "B14", "B13", "B12", "A4", "A5", "A6", "A7", "B0", "B1"] }, "diode_direction": "COL2ROW", + "eeprom": { + "wear_leveling": { + "backing_size": 4096 + } + }, "processor": "STM32L412", "bootloader": "stm32-dfu" } diff --git a/keyboards/xelus/rs60/rev2_1/config.h b/keyboards/xelus/rs60/rev2_1/config.h index 1c5fe4a336..430a5a47f7 100644 --- a/keyboards/xelus/rs60/rev2_1/config.h +++ b/keyboards/xelus/rs60/rev2_1/config.h @@ -21,6 +21,3 @@ // Locking resynchronize hack #define LOCKING_RESYNC_ENABLE -// Emulated EEPROM -#define WEAR_LEVELING_LOGICAL_SIZE 2048 -#define WEAR_LEVELING_BACKING_SIZE WEAR_LEVELING_LOGICAL_SIZE*2 diff --git a/keyboards/xelus/rs60/rev2_1/info.json b/keyboards/xelus/rs60/rev2_1/info.json index 118a671547..fe87561e61 100644 --- a/keyboards/xelus/rs60/rev2_1/info.json +++ b/keyboards/xelus/rs60/rev2_1/info.json @@ -8,6 +8,11 @@ "rows": ["B15", "B14", "B12", "B1", "B0"] }, "diode_direction": "COL2ROW", + "eeprom": { + "wear_leveling": { + "backing_size": 4096 + } + }, "indicators": { "caps_lock": "A1", "on_state": 0 From 32f060366f4aee7f67692c2fd49f52cd560d2b53 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 13 Sep 2023 17:47:25 -0700 Subject: [PATCH 043/496] Keebio NyquistPad Layout Updates (#22000) * Rename `LAYOUT` to `LAYOUT_ortho_5x6` [refactor] * Add `LAYOUT_ortho_5x6_1x2u` [enhancement] --- keyboards/keebio/nyquistpad/info.json | 50 +++++++++++++++++-- .../nyquistpad/keymaps/default/keymap.c | 6 +-- .../keebio/nyquistpad/keymaps/via/keymap.c | 6 +-- 3 files changed, 51 insertions(+), 11 deletions(-) diff --git a/keyboards/keebio/nyquistpad/info.json b/keyboards/keebio/nyquistpad/info.json index f8c887bdb8..d999482ef0 100644 --- a/keyboards/keebio/nyquistpad/info.json +++ b/keyboards/keebio/nyquistpad/info.json @@ -32,8 +32,11 @@ "pin": "GP28" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_ortho_5x6" + }, "layouts": { - "LAYOUT": { + "LAYOUT_ortho_5x6": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -41,24 +44,28 @@ {"matrix": [0, 3], "x": 3, "y": 0}, {"matrix": [0, 4], "x": 4, "y": 0}, {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, {"matrix": [1, 1], "x": 1, "y": 1}, {"matrix": [1, 2], "x": 2, "y": 1}, {"matrix": [1, 3], "x": 3, "y": 1}, {"matrix": [1, 4], "x": 4, "y": 1}, {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, {"matrix": [2, 1], "x": 1, "y": 2}, {"matrix": [2, 2], "x": 2, "y": 2}, {"matrix": [2, 3], "x": 3, "y": 2}, {"matrix": [2, 4], "x": 4, "y": 2}, {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, {"matrix": [3, 1], "x": 1, "y": 3}, {"matrix": [3, 2], "x": 2, "y": 3}, {"matrix": [3, 3], "x": 3, "y": 3}, {"matrix": [3, 4], "x": 4, "y": 3}, {"matrix": [3, 5], "x": 5, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4}, {"matrix": [4, 1], "x": 1, "y": 4}, {"matrix": [4, 2], "x": 2, "y": 4}, @@ -66,6 +73,43 @@ {"matrix": [4, 4], "x": 4, "y": 4}, {"matrix": [4, 5], "x": 5, "y": 4} ] + }, + "LAYOUT_ortho_5x6_1x2u": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4}, + {"matrix": [4, 4], "x": 4, "y": 4, "w": 2} + ] } }, "rgb_matrix": { @@ -123,7 +167,6 @@ { "flags": 4, "matrix": [0, 3], "x": 130, "y": 6 }, { "flags": 4, "matrix": [0, 4], "x": 168, "y": 6 }, { "flags": 4, "matrix": [0, 5], "x": 204, "y": 6 }, - { "flags": 4, "matrix": [1, 5], "x": 204, "y": 19 }, { "flags": 2, "x": 186, "y": 12 }, { "flags": 4, "matrix": [1, 4], "x": 168, "y": 19 }, @@ -132,14 +175,12 @@ { "flags": 4, "matrix": [1, 1], "x": 56, "y": 19 }, { "flags": 2, "x": 36, "y": 12 }, { "flags": 4, "matrix": [1, 0], "x": 18, "y": 19 }, - { "flags": 4, "matrix": [2, 0], "x": 18, "y": 32 }, { "flags": 4, "matrix": [2, 1], "x": 56, "y": 32 }, { "flags": 4, "matrix": [2, 2], "x": 92, "y": 32 }, { "flags": 4, "matrix": [2, 3], "x": 130, "y": 32 }, { "flags": 4, "matrix": [2, 4], "x": 168, "y": 32 }, { "flags": 4, "matrix": [2, 5], "x": 204, "y": 32 }, - { "flags": 4, "matrix": [3, 5], "x": 204, "y": 44 }, { "flags": 2, "x": 186, "y": 44 }, { "flags": 4, "matrix": [3, 4], "x": 168, "y": 44 }, @@ -149,7 +190,6 @@ { "flags": 4, "matrix": [3, 1], "x": 56, "y": 44 }, { "flags": 2, "x": 36, "y": 44 }, { "flags": 4, "matrix": [3, 0], "x": 18, "y": 44 }, - { "flags": 4, "matrix": [4, 0], "x": 18, "y": 57 }, { "flags": 4, "matrix": [4, 1], "x": 56, "y": 57 }, { "flags": 4, "matrix": [4, 2], "x": 92, "y": 57 }, diff --git a/keyboards/keebio/nyquistpad/keymaps/default/keymap.c b/keyboards/keebio/nyquistpad/keymaps/default/keymap.c index 42b049facd..42c036556d 100644 --- a/keyboards/keebio/nyquistpad/keymaps/default/keymap.c +++ b/keyboards/keebio/nyquistpad/keymaps/default/keymap.c @@ -5,21 +5,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_ortho_5x6( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(2), KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC ), - [1] = LAYOUT( + [1] = LAYOUT_ortho_5x6( RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, KC_VOLU, KC_PGUP, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [2] = LAYOUT( + [2] = LAYOUT_ortho_5x6( KC_F6, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/keebio/nyquistpad/keymaps/via/keymap.c b/keyboards/keebio/nyquistpad/keymaps/via/keymap.c index 42b049facd..42c036556d 100644 --- a/keyboards/keebio/nyquistpad/keymaps/via/keymap.c +++ b/keyboards/keebio/nyquistpad/keymaps/via/keymap.c @@ -5,21 +5,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_ortho_5x6( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(2), KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC ), - [1] = LAYOUT( + [1] = LAYOUT_ortho_5x6( RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, KC_VOLU, KC_PGUP, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [2] = LAYOUT( + [2] = LAYOUT_ortho_5x6( KC_F6, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, From f4a702e49f376a49efdc0ff9896d999eb5d5683e Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 13 Sep 2023 18:06:19 -0700 Subject: [PATCH 044/496] Kibou Suisei Layout Addition (#22001) * Add layout/matrix diagram [docs] * Rename `LAYOUT` to `LAYOUT_65_ansi_blocker_tsangan_wkl_split_bs` [refactor] * Add `LAYOUT_65_ansi_blocker_tsangan_wkl` [enhancement] --- keyboards/kibou/suisei/info.json | 216 ++++++++++++------ .../kibou/suisei/keymaps/default/keymap.c | 4 +- keyboards/kibou/suisei/keymaps/via/keymap.c | 4 +- keyboards/kibou/suisei/matrix_diagram.md | 18 ++ 4 files changed, 170 insertions(+), 72 deletions(-) create mode 100644 keyboards/kibou/suisei/matrix_diagram.md diff --git a/keyboards/kibou/suisei/info.json b/keyboards/kibou/suisei/info.json index a33bb12abd..f212df1bc7 100644 --- a/keyboards/kibou/suisei/info.json +++ b/keyboards/kibou/suisei/info.json @@ -26,76 +26,156 @@ "indicators": { "caps_lock": "B1" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_65_ansi_blocker_tsangan_wkl_split_bs" + }, "layouts": { - "LAYOUT": { + "LAYOUT_65_ansi_blocker_tsangan_wkl": { "layout": [ - {"matrix": [0,0], "x":0, "y":0}, - {"matrix": [0,1], "x":1, "y":0}, - {"matrix": [0,2], "x":2, "y":0}, - {"matrix": [0,3], "x":3, "y":0}, - {"matrix": [0,4], "x":4, "y":0}, - {"matrix": [0,5], "x":5, "y":0}, - {"matrix": [0,6], "x":6, "y":0}, - {"matrix": [0,7], "x":7, "y":0}, - {"matrix": [0,8], "x":8, "y":0}, - {"matrix": [0,9], "x":9, "y":0}, - {"matrix": [0,10], "x":10, "y":0}, - {"matrix": [0,11], "x":11, "y":0}, - {"matrix": [0,12], "x":12, "y":0}, - {"matrix": [0,13], "x":13, "y":0}, - {"matrix": [0,14], "x":14, "y":0}, - {"matrix": [0,15], "x":15, "y":0}, - {"matrix": [1,0], "x":0, "y":1, "w":1.5}, - {"matrix": [1,1], "x":1.5, "y":1}, - {"matrix": [1,2], "x":2.5, "y":1}, - {"matrix": [1,3], "x":3.5, "y":1}, - {"matrix": [1,4], "x":4.5, "y":1}, - {"matrix": [1,5], "x":5.5, "y":1}, - {"matrix": [1,6], "x":6.5, "y":1}, - {"matrix": [1,7], "x":7.5, "y":1}, - {"matrix": [1,8], "x":8.5, "y":1}, - {"matrix": [1,9], "x":9.5, "y":1}, - {"matrix": [1,10], "x":10.5, "y":1}, - {"matrix": [1,11], "x":11.5, "y":1}, - {"matrix": [1,12], "x":12.5, "y":1}, - {"matrix": [1,13], "x":13.5, "y":1, "w":1.5}, - {"matrix": [1,15], "x":15, "y":1}, - {"matrix": [2,0], "x":0, "y":2, "w":1.75}, - {"matrix": [2,1], "x":1.75, "y":2}, - {"matrix": [2,2], "x":2.75, "y":2}, - {"matrix": [2,3], "x":3.75, "y":2}, - {"matrix": [2,4], "x":4.75, "y":2}, - {"matrix": [2,5], "x":5.75, "y":2}, - {"matrix": [2,6], "x":6.75, "y":2}, - {"matrix": [2,7], "x":7.75, "y":2}, - {"matrix": [2,8], "x":8.75, "y":2}, - {"matrix": [2,9], "x":9.75, "y":2}, - {"matrix": [2,10], "x":10.75, "y":2}, - {"matrix": [2,11], "x":11.75, "y":2}, - {"matrix": [2,12], "x":12.75, "y":2, "w":2.25}, - {"matrix": [2,15], "x":15, "y":2}, - {"matrix": [3,0], "x":0, "y":3, "w":2.25}, - {"matrix": [3,1], "x":2.25, "y":3}, - {"matrix": [3,2], "x":3.25, "y":3}, - {"matrix": [3,3], "x":4.25, "y":3}, - {"matrix": [3,4], "x":5.25, "y":3}, - {"matrix": [3,5], "x":6.25, "y":3}, - {"matrix": [3,6], "x":7.25, "y":3}, - {"matrix": [3,7], "x":8.25, "y":3}, - {"matrix": [3,8], "x":9.25, "y":3}, - {"matrix": [3,9], "x":10.25, "y":3}, - {"matrix": [3,10], "x":11.25, "y":3}, - {"matrix": [3,11], "x":12.25, "y":3, "w":1.75}, - {"matrix": [3,14], "x":14.0, "y":3}, - {"matrix": [3,15], "x":15.0, "y":3}, - {"matrix": [4,0], "x":0, "y":4, "w":1.5}, - {"matrix": [4,2], "x":2.25, "y":4, "w":1.5}, - {"matrix": [4,5], "x":3.75, "y":4, "w":7}, - {"matrix": [4,10], "x":10.75, "y":4, "w":1.5}, - {"matrix": [4,13], "x":13, "y":4}, - {"matrix": [4,14], "x":14, "y":4}, - {"matrix": [4,15], "x":15, "y":4} + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14.0, "y": 3}, + {"matrix": [3, 15], "x": 15.0, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 10.75, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_wkl_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14.0, "y": 3}, + {"matrix": [3, 15], "x": 15.0, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 10.75, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} ] } } -} \ No newline at end of file +} diff --git a/keyboards/kibou/suisei/keymaps/default/keymap.c b/keyboards/kibou/suisei/keymaps/default/keymap.c index 2c9d04c6c1..94070aeded 100644 --- a/keyboards/kibou/suisei/keymaps/default/keymap.c +++ b/keyboards/kibou/suisei/keymaps/default/keymap.c @@ -4,14 +4,14 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_65_ansi_blocker_tsangan_wkl_split_bs( KC_ESC, 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_BSPC, KC_SPC, KC_DEL, 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_PGUP, 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_ENT, KC_PGDN, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_65_ansi_blocker_tsangan_wkl_split_bs( KC_NO, 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_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, diff --git a/keyboards/kibou/suisei/keymaps/via/keymap.c b/keyboards/kibou/suisei/keymaps/via/keymap.c index 2c9d04c6c1..94070aeded 100644 --- a/keyboards/kibou/suisei/keymaps/via/keymap.c +++ b/keyboards/kibou/suisei/keymaps/via/keymap.c @@ -4,14 +4,14 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_65_ansi_blocker_tsangan_wkl_split_bs( KC_ESC, 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_BSPC, KC_SPC, KC_DEL, 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_PGUP, 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_ENT, KC_PGDN, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_65_ansi_blocker_tsangan_wkl_split_bs( KC_NO, 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_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, diff --git a/keyboards/kibou/suisei/matrix_diagram.md b/keyboards/kibou/suisei/matrix_diagram.md new file mode 100644 index 0000000000..a5ebdf3633 --- /dev/null +++ b/keyboards/kibou/suisei/matrix_diagram.md @@ -0,0 +1,18 @@ +# Matrix Diagram for kibou suisei + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │0F │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1F │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2F │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3E │3F │ +├─────┬──┼───┴─┬─┴───┴───┴───┴───┴───┴───┴─┬─┴───┼──┬───┼───┼───┤ +│40 │ │42 │45 │4A │ │4D │4E │4F │ +└─────┘ └─────┴───────────────────────────┴─────┘ └───┴───┴───┘ +``` From 9f0f39555ce321af3769beaed4af3364ec107590 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 13 Sep 2023 19:43:31 -0700 Subject: [PATCH 045/496] Kopibeng XT87 Layout Additions & Touch-Up (#22002) * Add `LAYOUT_tkl_ansi_wkl_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_ansi_wkl` [enhancement] * Add `LAYOUT_tkl_iso_wkl_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_iso_wkl` [enhancement] * Correct layout data Correct key positioning on the function row. [enhancement] * Friendly-format `info.json` [style] * Move ISO Enter to Home Row Corrects the implementation of the ISO Community Layouts. [bugfix] --- keyboards/kopibeng/xt87/info.json | 2115 ++++++++++++++++++----------- 1 file changed, 1321 insertions(+), 794 deletions(-) diff --git a/keyboards/kopibeng/xt87/info.json b/keyboards/kopibeng/xt87/info.json index 8447d40815..05198e0a58 100644 --- a/keyboards/kopibeng/xt87/info.json +++ b/keyboards/kopibeng/xt87/info.json @@ -54,832 +54,1359 @@ "layouts": { "LAYOUT_all": { "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 2], "x": 2.25, "y": 0 }, - { "matrix": [0, 3], "x": 3.25, "y": 0 }, - { "matrix": [0, 4], "x": 4.25, "y": 0 }, - { "matrix": [0, 5], "x": 5.5, "y": 0 }, - { "matrix": [0, 6], "x": 6.5, "y": 0 }, - { "matrix": [0, 7], "x": 7.5, "y": 0 }, - { "matrix": [0, 8], "x": 8.5, "y": 0 }, - { "matrix": [0, 9], "x": 9.75, "y": 0 }, - { "matrix": [0, 10], "x": 10.75, "y": 0 }, - { "matrix": [0, 11], "x": 11.75, "y": 0 }, - { "matrix": [0, 12], "x": 12.75, "y": 0 }, - { "matrix": [0, 13], "x": 14, "y": 0 }, - { "matrix": [0, 14], "x": 15.25, "y": 0 }, - { "matrix": [0, 15], "x": 16.25, "y": 0 }, - { "matrix": [0, 16], "x": 17.25, "y": 0 }, - { "matrix": [1, 0], "x": 0, "y": 1.25 }, - { "matrix": [1, 1], "x": 1, "y": 1.25 }, - { "matrix": [1, 2], "x": 2, "y": 1.25 }, - { "matrix": [1, 3], "x": 3, "y": 1.25 }, - { "matrix": [1, 4], "x": 4, "y": 1.25 }, - { "matrix": [1, 5], "x": 5, "y": 1.25 }, - { "matrix": [1, 6], "x": 6, "y": 1.25 }, - { "matrix": [1, 7], "x": 7, "y": 1.25 }, - { "matrix": [1, 8], "x": 8, "y": 1.25 }, - { "matrix": [1, 9], "x": 9, "y": 1.25 }, - { "matrix": [1, 10], "x": 10, "y": 1.25 }, - { "matrix": [1, 11], "x": 11, "y": 1.25 }, - { "matrix": [1, 12], "x": 12, "y": 1.25 }, - { "matrix": [2, 12], "x": 13, "y": 1.25 }, - { "matrix": [1, 13], "x": 14, "y": 1.25 }, - { "matrix": [1, 14], "x": 15.25, "y": 1.25 }, - { "matrix": [1, 15], "x": 16.25, "y": 1.25 }, - { "matrix": [1, 16], "x": 17.25, "y": 1.25 }, - { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, - { "matrix": [2, 1], "x": 1.5, "y": 2.25 }, - { "matrix": [2, 2], "x": 2.5, "y": 2.25 }, - { "matrix": [2, 3], "x": 3.5, "y": 2.25 }, - { "matrix": [2, 4], "x": 4.5, "y": 2.25 }, - { "matrix": [2, 5], "x": 5.5, "y": 2.25 }, - { "matrix": [2, 6], "x": 6.5, "y": 2.25 }, - { "matrix": [2, 7], "x": 7.5, "y": 2.25 }, - { "matrix": [2, 8], "x": 8.5, "y": 2.25 }, - { "matrix": [2, 9], "x": 9.5, "y": 2.25 }, - { "matrix": [2, 10], "x": 10.5, "y": 2.25 }, - { "matrix": [2, 11], "x": 11.5, "y": 2.25 }, - { "matrix": [3, 12], "x": 12.5, "y": 2.25 }, - { "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.25 }, - { "matrix": [2, 14], "x": 15.25, "y": 2.25 }, - { "matrix": [2, 15], "x": 16.25, "y": 2.25 }, - { "matrix": [2, 16], "x": 17.25, "y": 2.25 }, - { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, - { "matrix": [3, 1], "x": 1.75, "y": 3.25 }, - { "matrix": [3, 2], "x": 2.75, "y": 3.25 }, - { "matrix": [3, 3], "x": 3.75, "y": 3.25 }, - { "matrix": [3, 4], "x": 4.75, "y": 3.25 }, - { "matrix": [3, 5], "x": 5.75, "y": 3.25 }, - { "matrix": [3, 6], "x": 6.75, "y": 3.25 }, - { "matrix": [3, 7], "x": 7.75, "y": 3.25 }, - { "matrix": [3, 8], "x": 8.75, "y": 3.25 }, - { "matrix": [3, 9], "x": 9.75, "y": 3.25 }, - { "matrix": [3, 10], "x": 10.75, "y": 3.25 }, - { "matrix": [3, 11], "x": 11.75, "y": 3.25 }, - { "matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 3.25 }, - { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.25 }, - { "matrix": [4, 1], "x": 1.25, "y": 4.25 }, - { "matrix": [4, 2], "x": 2.25, "y": 4.25 }, - { "matrix": [4, 3], "x": 3.25, "y": 4.25 }, - { "matrix": [4, 4], "x": 4.25, "y": 4.25 }, - { "matrix": [4, 5], "x": 5.25, "y": 4.25 }, - { "matrix": [4, 6], "x": 6.25, "y": 4.25 }, - { "matrix": [4, 7], "x": 7.25, "y": 4.25 }, - { "matrix": [4, 8], "x": 8.25, "y": 4.25 }, - { "matrix": [4, 9], "x": 9.25, "y": 4.25 }, - { "matrix": [4, 10], "x": 10.25, "y": 4.25 }, - { "matrix": [4, 11], "x": 11.25, "y": 4.25 }, - { "matrix": [4, 12], "w": 1.75, "x": 12.25, "y": 4.25 }, - { "matrix": [4, 13], "x": 14, "y": 4.25 }, - { "matrix": [4, 15], "x": 16.25, "y": 4.25 }, - { "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 }, - { "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25 }, - { "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.25 }, - { "matrix": [5, 6], "w": 6.25, "x": 3.75, "y": 5.25 }, - { "matrix": [5, 10], "w": 1.25, "x": 10, "y": 5.25 }, - { "matrix": [5, 11], "w": 1.25, "x": 11.25, "y": 5.25 }, - { "matrix": [5, 12], "w": 1.25, "x": 12.5, "y": 5.25 }, - { "matrix": [5, 13], "w": 1.25, "x": 13.75, "y": 5.25 }, - { "matrix": [5, 14], "x": 15.25, "y": 5.25 }, - { "matrix": [5, 15], "x": 16.25, "y": 5.25 }, - { "matrix": [4, 16], "x": 17.25, "y": 5.25 } + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [2, 12], "x": 13, "y": 1.25}, + {"matrix": [1, 13], "x": 14, "y": 1.25}, + + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [3, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [4, 16], "x": 17.25, "y": 5.25} ] }, "LAYOUT_tkl_ansi": { "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 2], "x": 2.25, "y": 0 }, - { "matrix": [0, 3], "x": 3.25, "y": 0 }, - { "matrix": [0, 4], "x": 4.25, "y": 0 }, - { "matrix": [0, 5], "x": 5.5, "y": 0 }, - { "matrix": [0, 6], "x": 6.5, "y": 0 }, - { "matrix": [0, 7], "x": 7.5, "y": 0 }, - { "matrix": [0, 8], "x": 8.5, "y": 0 }, - { "matrix": [0, 9], "x": 9.75, "y": 0 }, - { "matrix": [0, 10], "x": 10.75, "y": 0 }, - { "matrix": [0, 11], "x": 11.75, "y": 0 }, - { "matrix": [0, 12], "x": 12.75, "y": 0 }, - { "matrix": [0, 13], "x": 14, "y": 0 }, - { "matrix": [0, 14], "x": 15.25, "y": 0 }, - { "matrix": [0, 15], "x": 16.25, "y": 0 }, - { "matrix": [0, 16], "x": 17.25, "y": 0 }, - { "matrix": [1, 0], "x": 0, "y": 1.25 }, - { "matrix": [1, 1], "x": 1, "y": 1.25 }, - { "matrix": [1, 2], "x": 2, "y": 1.25 }, - { "matrix": [1, 3], "x": 3, "y": 1.25 }, - { "matrix": [1, 4], "x": 4, "y": 1.25 }, - { "matrix": [1, 5], "x": 5, "y": 1.25 }, - { "matrix": [1, 6], "x": 6, "y": 1.25 }, - { "matrix": [1, 7], "x": 7, "y": 1.25 }, - { "matrix": [1, 8], "x": 8, "y": 1.25 }, - { "matrix": [1, 9], "x": 9, "y": 1.25 }, - { "matrix": [1, 10], "x": 10, "y": 1.25 }, - { "matrix": [1, 11], "x": 11, "y": 1.25 }, - { "matrix": [1, 12], "x": 12, "y": 1.25 }, - { "matrix": [1, 13], "w": 2, "x": 13, "y": 1.25 }, - { "matrix": [1, 14], "x": 15.25, "y": 1.25 }, - { "matrix": [1, 15], "x": 16.25, "y": 1.25 }, - { "matrix": [1, 16], "x": 17.25, "y": 1.25 }, - { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, - { "matrix": [2, 1], "x": 1.5, "y": 2.25 }, - { "matrix": [2, 2], "x": 2.5, "y": 2.25 }, - { "matrix": [2, 3], "x": 3.5, "y": 2.25 }, - { "matrix": [2, 4], "x": 4.5, "y": 2.25 }, - { "matrix": [2, 5], "x": 5.5, "y": 2.25 }, - { "matrix": [2, 6], "x": 6.5, "y": 2.25 }, - { "matrix": [2, 7], "x": 7.5, "y": 2.25 }, - { "matrix": [2, 8], "x": 8.5, "y": 2.25 }, - { "matrix": [2, 9], "x": 9.5, "y": 2.25 }, - { "matrix": [2, 10], "x": 10.5, "y": 2.25 }, - { "matrix": [2, 11], "x": 11.5, "y": 2.25 }, - { "matrix": [3, 12], "x": 12.5, "y": 2.25 }, - { "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.25 }, - { "matrix": [2, 14], "x": 15.25, "y": 2.25 }, - { "matrix": [2, 15], "x": 16.25, "y": 2.25 }, - { "matrix": [2, 16], "x": 17.25, "y": 2.25 }, - { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, - { "matrix": [3, 1], "x": 1.75, "y": 3.25 }, - { "matrix": [3, 2], "x": 2.75, "y": 3.25 }, - { "matrix": [3, 3], "x": 3.75, "y": 3.25 }, - { "matrix": [3, 4], "x": 4.75, "y": 3.25 }, - { "matrix": [3, 5], "x": 5.75, "y": 3.25 }, - { "matrix": [3, 6], "x": 6.75, "y": 3.25 }, - { "matrix": [3, 7], "x": 7.75, "y": 3.25 }, - { "matrix": [3, 8], "x": 8.75, "y": 3.25 }, - { "matrix": [3, 9], "x": 9.75, "y": 3.25 }, - { "matrix": [3, 10], "x": 10.75, "y": 3.25 }, - { "matrix": [3, 11], "x": 11.75, "y": 3.25 }, - { "matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 3.25 }, - { "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.25 }, - { "matrix": [4, 2], "x": 2.25, "y": 4.25 }, - { "matrix": [4, 3], "x": 3.25, "y": 4.25 }, - { "matrix": [4, 4], "x": 4.25, "y": 4.25 }, - { "matrix": [4, 5], "x": 5.25, "y": 4.25 }, - { "matrix": [4, 6], "x": 6.25, "y": 4.25 }, - { "matrix": [4, 7], "x": 7.25, "y": 4.25 }, - { "matrix": [4, 8], "x": 8.25, "y": 4.25 }, - { "matrix": [4, 9], "x": 9.25, "y": 4.25 }, - { "matrix": [4, 10], "x": 10.25, "y": 4.25 }, - { "matrix": [4, 11], "x": 11.25, "y": 4.25 }, - { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.25 }, - { "matrix": [4, 15], "x": 16.25, "y": 4.25 }, - { "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 }, - { "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25 }, - { "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.25 }, - { "matrix": [5, 6], "w": 6.25, "x": 3.75, "y": 5.25 }, - { "matrix": [5, 10], "w": 1.25, "x": 10, "y": 5.25 }, - { "matrix": [5, 11], "w": 1.25, "x": 11.25, "y": 5.25 }, - { "matrix": [5, 12], "w": 1.25, "x": 12.5, "y": 5.25 }, - { "matrix": [5, 13], "w": 1.25, "x": 13.75, "y": 5.25 }, - { "matrix": [5, 14], "x": 15.25, "y": 5.25 }, - { "matrix": [5, 15], "x": 16.25, "y": 5.25 }, - { "matrix": [4, 16], "x": 17.25, "y": 5.25 } + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [3, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [4, 16], "x": 17.25, "y": 5.25} ] }, "LAYOUT_tkl_ansi_split_bs_rshift": { "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 2], "x": 2.25, "y": 0 }, - { "matrix": [0, 3], "x": 3.25, "y": 0 }, - { "matrix": [0, 4], "x": 4.25, "y": 0 }, - { "matrix": [0, 5], "x": 5.5, "y": 0 }, - { "matrix": [0, 6], "x": 6.5, "y": 0 }, - { "matrix": [0, 7], "x": 7.5, "y": 0 }, - { "matrix": [0, 8], "x": 8.5, "y": 0 }, - { "matrix": [0, 9], "x": 9.75, "y": 0 }, - { "matrix": [0, 10], "x": 10.75, "y": 0 }, - { "matrix": [0, 11], "x": 11.75, "y": 0 }, - { "matrix": [0, 12], "x": 12.75, "y": 0 }, - { "matrix": [0, 13], "x": 14, "y": 0 }, - { "matrix": [0, 14], "x": 15.25, "y": 0 }, - { "matrix": [0, 15], "x": 16.25, "y": 0 }, - { "matrix": [0, 16], "x": 17.25, "y": 0 }, - { "matrix": [1, 0], "x": 0, "y": 1.25 }, - { "matrix": [1, 1], "x": 1, "y": 1.25 }, - { "matrix": [1, 2], "x": 2, "y": 1.25 }, - { "matrix": [1, 3], "x": 3, "y": 1.25 }, - { "matrix": [1, 4], "x": 4, "y": 1.25 }, - { "matrix": [1, 5], "x": 5, "y": 1.25 }, - { "matrix": [1, 6], "x": 6, "y": 1.25 }, - { "matrix": [1, 7], "x": 7, "y": 1.25 }, - { "matrix": [1, 8], "x": 8, "y": 1.25 }, - { "matrix": [1, 9], "x": 9, "y": 1.25 }, - { "matrix": [1, 10], "x": 10, "y": 1.25 }, - { "matrix": [1, 11], "x": 11, "y": 1.25 }, - { "matrix": [1, 12], "x": 12, "y": 1.25 }, - { "matrix": [2, 12], "x": 13, "y": 1.25 }, - { "matrix": [1, 13], "x": 14, "y": 1.25 }, - { "matrix": [1, 14], "x": 15.25, "y": 1.25 }, - { "matrix": [1, 15], "x": 16.25, "y": 1.25 }, - { "matrix": [1, 16], "x": 17.25, "y": 1.25 }, - { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, - { "matrix": [2, 1], "x": 1.5, "y": 2.25 }, - { "matrix": [2, 2], "x": 2.5, "y": 2.25 }, - { "matrix": [2, 3], "x": 3.5, "y": 2.25 }, - { "matrix": [2, 4], "x": 4.5, "y": 2.25 }, - { "matrix": [2, 5], "x": 5.5, "y": 2.25 }, - { "matrix": [2, 6], "x": 6.5, "y": 2.25 }, - { "matrix": [2, 7], "x": 7.5, "y": 2.25 }, - { "matrix": [2, 8], "x": 8.5, "y": 2.25 }, - { "matrix": [2, 9], "x": 9.5, "y": 2.25 }, - { "matrix": [2, 10], "x": 10.5, "y": 2.25 }, - { "matrix": [2, 11], "x": 11.5, "y": 2.25 }, - { "matrix": [3, 12], "x": 12.5, "y": 2.25 }, - { "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.25 }, - { "matrix": [2, 14], "x": 15.25, "y": 2.25 }, - { "matrix": [2, 15], "x": 16.25, "y": 2.25 }, - { "matrix": [2, 16], "x": 17.25, "y": 2.25 }, - { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, - { "matrix": [3, 1], "x": 1.75, "y": 3.25 }, - { "matrix": [3, 2], "x": 2.75, "y": 3.25 }, - { "matrix": [3, 3], "x": 3.75, "y": 3.25 }, - { "matrix": [3, 4], "x": 4.75, "y": 3.25 }, - { "matrix": [3, 5], "x": 5.75, "y": 3.25 }, - { "matrix": [3, 6], "x": 6.75, "y": 3.25 }, - { "matrix": [3, 7], "x": 7.75, "y": 3.25 }, - { "matrix": [3, 8], "x": 8.75, "y": 3.25 }, - { "matrix": [3, 9], "x": 9.75, "y": 3.25 }, - { "matrix": [3, 10], "x": 10.75, "y": 3.25 }, - { "matrix": [3, 11], "x": 11.75, "y": 3.25 }, - { "matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 3.25 }, - { "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.25 }, - { "matrix": [4, 2], "x": 2.25, "y": 4.25 }, - { "matrix": [4, 3], "x": 3.25, "y": 4.25 }, - { "matrix": [4, 4], "x": 4.25, "y": 4.25 }, - { "matrix": [4, 5], "x": 5.25, "y": 4.25 }, - { "matrix": [4, 6], "x": 6.25, "y": 4.25 }, - { "matrix": [4, 7], "x": 7.25, "y": 4.25 }, - { "matrix": [4, 8], "x": 8.25, "y": 4.25 }, - { "matrix": [4, 9], "x": 9.25, "y": 4.25 }, - { "matrix": [4, 10], "x": 10.25, "y": 4.25 }, - { "matrix": [4, 11], "x": 11.25, "y": 4.25 }, - { "matrix": [4, 12], "w": 1.75, "x": 12.25, "y": 4.25 }, - { "matrix": [4, 13], "x": 14, "y": 4.25 }, - { "matrix": [4, 15], "x": 16.25, "y": 4.25 }, - { "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 }, - { "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25 }, - { "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.25 }, - { "matrix": [5, 6], "w": 6.25, "x": 3.75, "y": 5.25 }, - { "matrix": [5, 10], "w": 1.25, "x": 10, "y": 5.25 }, - { "matrix": [5, 11], "w": 1.25, "x": 11.25, "y": 5.25 }, - { "matrix": [5, 12], "w": 1.25, "x": 12.5, "y": 5.25 }, - { "matrix": [5, 13], "w": 1.25, "x": 13.75, "y": 5.25 }, - { "matrix": [5, 14], "x": 15.25, "y": 5.25 }, - { "matrix": [5, 15], "x": 16.25, "y": 5.25 }, - { "matrix": [4, 16], "x": 17.25, "y": 5.25 } + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [2, 12], "x": 13, "y": 1.25}, + {"matrix": [1, 13], "x": 14, "y": 1.25}, + + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [3, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [4, 16], "x": 17.25, "y": 5.25} ] }, "LAYOUT_tkl_ansi_tsangan": { "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 2], "x": 2.25, "y": 0 }, - { "matrix": [0, 3], "x": 3.25, "y": 0 }, - { "matrix": [0, 4], "x": 4.25, "y": 0 }, - { "matrix": [0, 5], "x": 5.5, "y": 0 }, - { "matrix": [0, 6], "x": 6.5, "y": 0 }, - { "matrix": [0, 7], "x": 7.5, "y": 0 }, - { "matrix": [0, 8], "x": 8.5, "y": 0 }, - { "matrix": [0, 9], "x": 9.75, "y": 0 }, - { "matrix": [0, 10], "x": 10.75, "y": 0 }, - { "matrix": [0, 11], "x": 11.75, "y": 0 }, - { "matrix": [0, 12], "x": 12.75, "y": 0 }, - { "matrix": [0, 13], "x": 14, "y": 0 }, - { "matrix": [0, 14], "x": 15.25, "y": 0 }, - { "matrix": [0, 15], "x": 16.25, "y": 0 }, - { "matrix": [0, 16], "x": 17.25, "y": 0 }, - { "matrix": [1, 0], "x": 0, "y": 1.25 }, - { "matrix": [1, 1], "x": 1, "y": 1.25 }, - { "matrix": [1, 2], "x": 2, "y": 1.25 }, - { "matrix": [1, 3], "x": 3, "y": 1.25 }, - { "matrix": [1, 4], "x": 4, "y": 1.25 }, - { "matrix": [1, 5], "x": 5, "y": 1.25 }, - { "matrix": [1, 6], "x": 6, "y": 1.25 }, - { "matrix": [1, 7], "x": 7, "y": 1.25 }, - { "matrix": [1, 8], "x": 8, "y": 1.25 }, - { "matrix": [1, 9], "x": 9, "y": 1.25 }, - { "matrix": [1, 10], "x": 10, "y": 1.25 }, - { "matrix": [1, 11], "x": 11, "y": 1.25 }, - { "matrix": [1, 12], "x": 12, "y": 1.25 }, - { "matrix": [1, 13], "w": 2, "x": 13, "y": 1.25 }, - { "matrix": [1, 14], "x": 15.25, "y": 1.25 }, - { "matrix": [1, 15], "x": 16.25, "y": 1.25 }, - { "matrix": [1, 16], "x": 17.25, "y": 1.25 }, - { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, - { "matrix": [2, 1], "x": 1.5, "y": 2.25 }, - { "matrix": [2, 2], "x": 2.5, "y": 2.25 }, - { "matrix": [2, 3], "x": 3.5, "y": 2.25 }, - { "matrix": [2, 4], "x": 4.5, "y": 2.25 }, - { "matrix": [2, 5], "x": 5.5, "y": 2.25 }, - { "matrix": [2, 6], "x": 6.5, "y": 2.25 }, - { "matrix": [2, 7], "x": 7.5, "y": 2.25 }, - { "matrix": [2, 8], "x": 8.5, "y": 2.25 }, - { "matrix": [2, 9], "x": 9.5, "y": 2.25 }, - { "matrix": [2, 10], "x": 10.5, "y": 2.25 }, - { "matrix": [2, 11], "x": 11.5, "y": 2.25 }, - { "matrix": [3, 12], "x": 12.5, "y": 2.25 }, - { "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.25 }, - { "matrix": [2, 14], "x": 15.25, "y": 2.25 }, - { "matrix": [2, 15], "x": 16.25, "y": 2.25 }, - { "matrix": [2, 16], "x": 17.25, "y": 2.25 }, - { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, - { "matrix": [3, 1], "x": 1.75, "y": 3.25 }, - { "matrix": [3, 2], "x": 2.75, "y": 3.25 }, - { "matrix": [3, 3], "x": 3.75, "y": 3.25 }, - { "matrix": [3, 4], "x": 4.75, "y": 3.25 }, - { "matrix": [3, 5], "x": 5.75, "y": 3.25 }, - { "matrix": [3, 6], "x": 6.75, "y": 3.25 }, - { "matrix": [3, 7], "x": 7.75, "y": 3.25 }, - { "matrix": [3, 8], "x": 8.75, "y": 3.25 }, - { "matrix": [3, 9], "x": 9.75, "y": 3.25 }, - { "matrix": [3, 10], "x": 10.75, "y": 3.25 }, - { "matrix": [3, 11], "x": 11.75, "y": 3.25 }, - { "matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 3.25 }, - { "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.25 }, - { "matrix": [4, 2], "x": 2.25, "y": 4.25 }, - { "matrix": [4, 3], "x": 3.25, "y": 4.25 }, - { "matrix": [4, 4], "x": 4.25, "y": 4.25 }, - { "matrix": [4, 5], "x": 5.25, "y": 4.25 }, - { "matrix": [4, 6], "x": 6.25, "y": 4.25 }, - { "matrix": [4, 7], "x": 7.25, "y": 4.25 }, - { "matrix": [4, 8], "x": 8.25, "y": 4.25 }, - { "matrix": [4, 9], "x": 9.25, "y": 4.25 }, - { "matrix": [4, 10], "x": 10.25, "y": 4.25 }, - { "matrix": [4, 11], "x": 11.25, "y": 4.25 }, - { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.25 }, - { "matrix": [4, 15], "x": 16.25, "y": 4.25 }, - { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.25 }, - { "matrix": [5, 1], "w": 1, "x": 1.5, "y": 5.25 }, - { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.25 }, - { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.25 }, - { "matrix": [5, 11], "w": 1.5, "x": 11, "y": 5.25 }, - { "matrix": [5, 12], "w": 1, "x": 12.5, "y": 5.25 }, - { "matrix": [5, 13], "w": 1.5, "x": 13.5, "y": 5.25 }, - { "matrix": [5, 14], "x": 15.25, "y": 5.25 }, - { "matrix": [5, 15], "x": 16.25, "y": 5.25 }, - { "matrix": [4, 16], "x": 17.25, "y": 5.25 } + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [3, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [4, 16], "x": 17.25, "y": 5.25} ] }, "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 2], "x": 2.25, "y": 0 }, - { "matrix": [0, 3], "x": 3.25, "y": 0 }, - { "matrix": [0, 4], "x": 4.25, "y": 0 }, - { "matrix": [0, 5], "x": 5.5, "y": 0 }, - { "matrix": [0, 6], "x": 6.5, "y": 0 }, - { "matrix": [0, 7], "x": 7.5, "y": 0 }, - { "matrix": [0, 8], "x": 8.5, "y": 0 }, - { "matrix": [0, 9], "x": 9.75, "y": 0 }, - { "matrix": [0, 10], "x": 10.75, "y": 0 }, - { "matrix": [0, 11], "x": 11.75, "y": 0 }, - { "matrix": [0, 12], "x": 12.75, "y": 0 }, - { "matrix": [0, 13], "x": 14, "y": 0 }, - { "matrix": [0, 14], "x": 15.25, "y": 0 }, - { "matrix": [0, 15], "x": 16.25, "y": 0 }, - { "matrix": [0, 16], "x": 17.25, "y": 0 }, - { "matrix": [1, 0], "x": 0, "y": 1.25 }, - { "matrix": [1, 1], "x": 1, "y": 1.25 }, - { "matrix": [1, 2], "x": 2, "y": 1.25 }, - { "matrix": [1, 3], "x": 3, "y": 1.25 }, - { "matrix": [1, 4], "x": 4, "y": 1.25 }, - { "matrix": [1, 5], "x": 5, "y": 1.25 }, - { "matrix": [1, 6], "x": 6, "y": 1.25 }, - { "matrix": [1, 7], "x": 7, "y": 1.25 }, - { "matrix": [1, 8], "x": 8, "y": 1.25 }, - { "matrix": [1, 9], "x": 9, "y": 1.25 }, - { "matrix": [1, 10], "x": 10, "y": 1.25 }, - { "matrix": [1, 11], "x": 11, "y": 1.25 }, - { "matrix": [1, 12], "x": 12, "y": 1.25 }, - { "matrix": [2, 12], "x": 13, "y": 1.25 }, - { "matrix": [1, 13], "x": 14, "y": 1.25 }, - { "matrix": [1, 14], "x": 15.25, "y": 1.25 }, - { "matrix": [1, 15], "x": 16.25, "y": 1.25 }, - { "matrix": [1, 16], "x": 17.25, "y": 1.25 }, - { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, - { "matrix": [2, 1], "x": 1.5, "y": 2.25 }, - { "matrix": [2, 2], "x": 2.5, "y": 2.25 }, - { "matrix": [2, 3], "x": 3.5, "y": 2.25 }, - { "matrix": [2, 4], "x": 4.5, "y": 2.25 }, - { "matrix": [2, 5], "x": 5.5, "y": 2.25 }, - { "matrix": [2, 6], "x": 6.5, "y": 2.25 }, - { "matrix": [2, 7], "x": 7.5, "y": 2.25 }, - { "matrix": [2, 8], "x": 8.5, "y": 2.25 }, - { "matrix": [2, 9], "x": 9.5, "y": 2.25 }, - { "matrix": [2, 10], "x": 10.5, "y": 2.25 }, - { "matrix": [2, 11], "x": 11.5, "y": 2.25 }, - { "matrix": [3, 12], "x": 12.5, "y": 2.25 }, - { "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.25 }, - { "matrix": [2, 14], "x": 15.25, "y": 2.25 }, - { "matrix": [2, 15], "x": 16.25, "y": 2.25 }, - { "matrix": [2, 16], "x": 17.25, "y": 2.25 }, - { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, - { "matrix": [3, 1], "x": 1.75, "y": 3.25 }, - { "matrix": [3, 2], "x": 2.75, "y": 3.25 }, - { "matrix": [3, 3], "x": 3.75, "y": 3.25 }, - { "matrix": [3, 4], "x": 4.75, "y": 3.25 }, - { "matrix": [3, 5], "x": 5.75, "y": 3.25 }, - { "matrix": [3, 6], "x": 6.75, "y": 3.25 }, - { "matrix": [3, 7], "x": 7.75, "y": 3.25 }, - { "matrix": [3, 8], "x": 8.75, "y": 3.25 }, - { "matrix": [3, 9], "x": 9.75, "y": 3.25 }, - { "matrix": [3, 10], "x": 10.75, "y": 3.25 }, - { "matrix": [3, 11], "x": 11.75, "y": 3.25 }, - { "matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 3.25 }, - { "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.25 }, - { "matrix": [4, 2], "x": 2.25, "y": 4.25 }, - { "matrix": [4, 3], "x": 3.25, "y": 4.25 }, - { "matrix": [4, 4], "x": 4.25, "y": 4.25 }, - { "matrix": [4, 5], "x": 5.25, "y": 4.25 }, - { "matrix": [4, 6], "x": 6.25, "y": 4.25 }, - { "matrix": [4, 7], "x": 7.25, "y": 4.25 }, - { "matrix": [4, 8], "x": 8.25, "y": 4.25 }, - { "matrix": [4, 9], "x": 9.25, "y": 4.25 }, - { "matrix": [4, 10], "x": 10.25, "y": 4.25 }, - { "matrix": [4, 11], "x": 11.25, "y": 4.25 }, - { "matrix": [4, 12], "w": 1.75, "x": 12.25, "y": 4.25 }, - { "matrix": [4, 13], "x": 14, "y": 4.25 }, - { "matrix": [4, 15], "x": 16.25, "y": 4.25 }, - { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.25 }, - { "matrix": [5, 1], "w": 1, "x": 1.5, "y": 5.25 }, - { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.25 }, - { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.25 }, - { "matrix": [5, 11], "w": 1.5, "x": 11, "y": 5.25 }, - { "matrix": [5, 12], "w": 1, "x": 12.5, "y": 5.25 }, - { "matrix": [5, 13], "w": 1.5, "x": 13.5, "y": 5.25 }, - { "matrix": [5, 14], "x": 15.25, "y": 5.25 }, - { "matrix": [5, 15], "x": 16.25, "y": 5.25 }, - { "matrix": [4, 16], "x": 17.25, "y": 5.25 } + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [2, 12], "x": 13, "y": 1.25}, + {"matrix": [1, 13], "x": 14, "y": 1.25}, + + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [3, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [4, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [3, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [4, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [2, 12], "x": 13, "y": 1.25}, + {"matrix": [1, 13], "x": 14, "y": 1.25}, + + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [3, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [4, 16], "x": 17.25, "y": 5.25} ] }, "LAYOUT_tkl_iso": { "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 2], "x": 2.25, "y": 0 }, - { "matrix": [0, 3], "x": 3.25, "y": 0 }, - { "matrix": [0, 4], "x": 4.25, "y": 0 }, - { "matrix": [0, 5], "x": 5.5, "y": 0 }, - { "matrix": [0, 6], "x": 6.5, "y": 0 }, - { "matrix": [0, 7], "x": 7.5, "y": 0 }, - { "matrix": [0, 8], "x": 8.5, "y": 0 }, - { "matrix": [0, 9], "x": 9.75, "y": 0 }, - { "matrix": [0, 10], "x": 10.75, "y": 0 }, - { "matrix": [0, 11], "x": 11.75, "y": 0 }, - { "matrix": [0, 12], "x": 12.75, "y": 0 }, - { "matrix": [0, 13], "x": 14, "y": 0 }, - { "matrix": [0, 14], "x": 15.25, "y": 0 }, - { "matrix": [0, 15], "x": 16.25, "y": 0 }, - { "matrix": [0, 16], "x": 17.25, "y": 0 }, - { "matrix": [1, 0], "x": 0, "y": 1.25 }, - { "matrix": [1, 1], "x": 1, "y": 1.25 }, - { "matrix": [1, 2], "x": 2, "y": 1.25 }, - { "matrix": [1, 3], "x": 3, "y": 1.25 }, - { "matrix": [1, 4], "x": 4, "y": 1.25 }, - { "matrix": [1, 5], "x": 5, "y": 1.25 }, - { "matrix": [1, 6], "x": 6, "y": 1.25 }, - { "matrix": [1, 7], "x": 7, "y": 1.25 }, - { "matrix": [1, 8], "x": 8, "y": 1.25 }, - { "matrix": [1, 9], "x": 9, "y": 1.25 }, - { "matrix": [1, 10], "x": 10, "y": 1.25 }, - { "matrix": [1, 11], "x": 11, "y": 1.25 }, - { "matrix": [1, 12], "x": 12, "y": 1.25 }, - { "matrix": [1, 13], "w": 2, "x": 13, "y": 1.25 }, - { "matrix": [1, 14], "x": 15.25, "y": 1.25 }, - { "matrix": [1, 15], "x": 16.25, "y": 1.25 }, - { "matrix": [1, 16], "x": 17.25, "y": 1.25 }, - { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, - { "matrix": [2, 1], "x": 1.5, "y": 2.25 }, - { "matrix": [2, 2], "x": 2.5, "y": 2.25 }, - { "matrix": [2, 3], "x": 3.5, "y": 2.25 }, - { "matrix": [2, 4], "x": 4.5, "y": 2.25 }, - { "matrix": [2, 5], "x": 5.5, "y": 2.25 }, - { "matrix": [2, 6], "x": 6.5, "y": 2.25 }, - { "matrix": [2, 7], "x": 7.5, "y": 2.25 }, - { "matrix": [2, 8], "x": 8.5, "y": 2.25 }, - { "matrix": [2, 9], "x": 9.5, "y": 2.25 }, - { "matrix": [2, 10], "x": 10.5, "y": 2.25 }, - { "matrix": [2, 11], "x": 11.5, "y": 2.25 }, - { "matrix": [3, 12], "x": 12.5, "y": 2.25 }, - { "h": 2, "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 2.25 }, - { "matrix": [2, 14], "x": 15.25, "y": 2.25 }, - { "matrix": [2, 15], "x": 16.25, "y": 2.25 }, - { "matrix": [2, 16], "x": 17.25, "y": 2.25 }, - { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, - { "matrix": [3, 1], "x": 1.75, "y": 3.25 }, - { "matrix": [3, 2], "x": 2.75, "y": 3.25 }, - { "matrix": [3, 3], "x": 3.75, "y": 3.25 }, - { "matrix": [3, 4], "x": 4.75, "y": 3.25 }, - { "matrix": [3, 5], "x": 5.75, "y": 3.25 }, - { "matrix": [3, 6], "x": 6.75, "y": 3.25 }, - { "matrix": [3, 7], "x": 7.75, "y": 3.25 }, - { "matrix": [3, 8], "x": 8.75, "y": 3.25 }, - { "matrix": [3, 9], "x": 9.75, "y": 3.25 }, - { "matrix": [3, 10], "x": 10.75, "y": 3.25 }, - { "matrix": [3, 11], "x": 11.75, "y": 3.25 }, - { "matrix": [3, 13], "x": 12.75, "y": 3.25 }, - { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.25 }, - { "matrix": [4, 1], "x": 1.25, "y": 4.25 }, - { "matrix": [4, 2], "x": 2.25, "y": 4.25 }, - { "matrix": [4, 3], "x": 3.25, "y": 4.25 }, - { "matrix": [4, 4], "x": 4.25, "y": 4.25 }, - { "matrix": [4, 5], "x": 5.25, "y": 4.25 }, - { "matrix": [4, 6], "x": 6.25, "y": 4.25 }, - { "matrix": [4, 7], "x": 7.25, "y": 4.25 }, - { "matrix": [4, 8], "x": 8.25, "y": 4.25 }, - { "matrix": [4, 9], "x": 9.25, "y": 4.25 }, - { "matrix": [4, 10], "x": 10.25, "y": 4.25 }, - { "matrix": [4, 11], "x": 11.25, "y": 4.25 }, - { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.25 }, - { "matrix": [4, 15], "x": 16.25, "y": 4.25 }, - { "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 }, - { "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25 }, - { "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.25 }, - { "matrix": [5, 6], "w": 6.25, "x": 3.75, "y": 5.25 }, - { "matrix": [5, 10], "w": 1.25, "x": 10, "y": 5.25 }, - { "matrix": [5, 11], "w": 1.25, "x": 11.25, "y": 5.25 }, - { "matrix": [5, 12], "w": 1.25, "x": 12.5, "y": 5.25 }, - { "matrix": [5, 13], "w": 1.25, "x": 13.75, "y": 5.25 }, - { "matrix": [5, 14], "x": 15.25, "y": 5.25 }, - { "matrix": [5, 15], "x": 16.25, "y": 5.25 }, - { "matrix": [4, 16], "x": 17.25, "y": 5.25 } + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [3, 12], "x": 12.5, "y": 2.25}, + + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25}, + {"matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [4, 16], "x": 17.25, "y": 5.25} ] }, "LAYOUT_tkl_iso_split_bs_rshift": { "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 2], "x": 2.25, "y": 0 }, - { "matrix": [0, 3], "x": 3.25, "y": 0 }, - { "matrix": [0, 4], "x": 4.25, "y": 0 }, - { "matrix": [0, 5], "x": 5.5, "y": 0 }, - { "matrix": [0, 6], "x": 6.5, "y": 0 }, - { "matrix": [0, 7], "x": 7.5, "y": 0 }, - { "matrix": [0, 8], "x": 8.5, "y": 0 }, - { "matrix": [0, 9], "x": 9.75, "y": 0 }, - { "matrix": [0, 10], "x": 10.75, "y": 0 }, - { "matrix": [0, 11], "x": 11.75, "y": 0 }, - { "matrix": [0, 12], "x": 12.75, "y": 0 }, - { "matrix": [0, 13], "x": 14, "y": 0 }, - { "matrix": [0, 14], "x": 15.25, "y": 0 }, - { "matrix": [0, 15], "x": 16.25, "y": 0 }, - { "matrix": [0, 16], "x": 17.25, "y": 0 }, - { "matrix": [1, 0], "x": 0, "y": 1.25 }, - { "matrix": [1, 1], "x": 1, "y": 1.25 }, - { "matrix": [1, 2], "x": 2, "y": 1.25 }, - { "matrix": [1, 3], "x": 3, "y": 1.25 }, - { "matrix": [1, 4], "x": 4, "y": 1.25 }, - { "matrix": [1, 5], "x": 5, "y": 1.25 }, - { "matrix": [1, 6], "x": 6, "y": 1.25 }, - { "matrix": [1, 7], "x": 7, "y": 1.25 }, - { "matrix": [1, 8], "x": 8, "y": 1.25 }, - { "matrix": [1, 9], "x": 9, "y": 1.25 }, - { "matrix": [1, 10], "x": 10, "y": 1.25 }, - { "matrix": [1, 11], "x": 11, "y": 1.25 }, - { "matrix": [1, 12], "x": 12, "y": 1.25 }, - { "matrix": [2, 12], "x": 13, "y": 1.25 }, - { "matrix": [1, 13], "x": 14, "y": 1.25 }, - { "matrix": [1, 14], "x": 15.25, "y": 1.25 }, - { "matrix": [1, 15], "x": 16.25, "y": 1.25 }, - { "matrix": [1, 16], "x": 17.25, "y": 1.25 }, - { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, - { "matrix": [2, 1], "x": 1.5, "y": 2.25 }, - { "matrix": [2, 2], "x": 2.5, "y": 2.25 }, - { "matrix": [2, 3], "x": 3.5, "y": 2.25 }, - { "matrix": [2, 4], "x": 4.5, "y": 2.25 }, - { "matrix": [2, 5], "x": 5.5, "y": 2.25 }, - { "matrix": [2, 6], "x": 6.5, "y": 2.25 }, - { "matrix": [2, 7], "x": 7.5, "y": 2.25 }, - { "matrix": [2, 8], "x": 8.5, "y": 2.25 }, - { "matrix": [2, 9], "x": 9.5, "y": 2.25 }, - { "matrix": [2, 10], "x": 10.5, "y": 2.25 }, - { "matrix": [2, 11], "x": 11.5, "y": 2.25 }, - { "matrix": [3, 12], "x": 12.5, "y": 2.25 }, - { "h": 2, "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 2.25 }, - { "matrix": [2, 14], "x": 15.25, "y": 2.25 }, - { "matrix": [2, 15], "x": 16.25, "y": 2.25 }, - { "matrix": [2, 16], "x": 17.25, "y": 2.25 }, - { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, - { "matrix": [3, 1], "x": 1.75, "y": 3.25 }, - { "matrix": [3, 2], "x": 2.75, "y": 3.25 }, - { "matrix": [3, 3], "x": 3.75, "y": 3.25 }, - { "matrix": [3, 4], "x": 4.75, "y": 3.25 }, - { "matrix": [3, 5], "x": 5.75, "y": 3.25 }, - { "matrix": [3, 6], "x": 6.75, "y": 3.25 }, - { "matrix": [3, 7], "x": 7.75, "y": 3.25 }, - { "matrix": [3, 8], "x": 8.75, "y": 3.25 }, - { "matrix": [3, 9], "x": 9.75, "y": 3.25 }, - { "matrix": [3, 10], "x": 10.75, "y": 3.25 }, - { "matrix": [3, 11], "x": 11.75, "y": 3.25 }, - { "matrix": [3, 13], "x": 12.75, "y": 3.25 }, - { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.25 }, - { "matrix": [4, 1], "x": 1.25, "y": 4.25 }, - { "matrix": [4, 2], "x": 2.25, "y": 4.25 }, - { "matrix": [4, 3], "x": 3.25, "y": 4.25 }, - { "matrix": [4, 4], "x": 4.25, "y": 4.25 }, - { "matrix": [4, 5], "x": 5.25, "y": 4.25 }, - { "matrix": [4, 6], "x": 6.25, "y": 4.25 }, - { "matrix": [4, 7], "x": 7.25, "y": 4.25 }, - { "matrix": [4, 8], "x": 8.25, "y": 4.25 }, - { "matrix": [4, 9], "x": 9.25, "y": 4.25 }, - { "matrix": [4, 10], "x": 10.25, "y": 4.25 }, - { "matrix": [4, 11], "x": 11.25, "y": 4.25 }, - { "matrix": [4, 12], "w": 1.75, "x": 12.25, "y": 4.25 }, - { "matrix": [4, 13], "x": 14, "y": 4.25 }, - { "matrix": [4, 15], "x": 16.25, "y": 4.25 }, - { "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 }, - { "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25 }, - { "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.25 }, - { "matrix": [5, 6], "w": 6.25, "x": 3.75, "y": 5.25 }, - { "matrix": [5, 10], "w": 1.25, "x": 10, "y": 5.25 }, - { "matrix": [5, 11], "w": 1.25, "x": 11.25, "y": 5.25 }, - { "matrix": [5, 12], "w": 1.25, "x": 12.5, "y": 5.25 }, - { "matrix": [5, 13], "w": 1.25, "x": 13.75, "y": 5.25 }, - { "matrix": [5, 14], "x": 15.25, "y": 5.25 }, - { "matrix": [5, 15], "x": 16.25, "y": 5.25 }, - { "matrix": [4, 16], "x": 17.25, "y": 5.25 } + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [2, 12], "x": 13, "y": 1.25}, + {"matrix": [1, 13], "x": 14, "y": 1.25}, + + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [3, 12], "x": 12.5, "y": 2.25}, + + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25}, + {"matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [4, 16], "x": 17.25, "y": 5.25} ] }, "LAYOUT_tkl_iso_tsangan": { "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 2], "x": 2.25, "y": 0 }, - { "matrix": [0, 3], "x": 3.25, "y": 0 }, - { "matrix": [0, 4], "x": 4.25, "y": 0 }, - { "matrix": [0, 5], "x": 5.5, "y": 0 }, - { "matrix": [0, 6], "x": 6.5, "y": 0 }, - { "matrix": [0, 7], "x": 7.5, "y": 0 }, - { "matrix": [0, 8], "x": 8.5, "y": 0 }, - { "matrix": [0, 9], "x": 9.75, "y": 0 }, - { "matrix": [0, 10], "x": 10.75, "y": 0 }, - { "matrix": [0, 11], "x": 11.75, "y": 0 }, - { "matrix": [0, 12], "x": 12.75, "y": 0 }, - { "matrix": [0, 13], "x": 14, "y": 0 }, - { "matrix": [0, 14], "x": 15.25, "y": 0 }, - { "matrix": [0, 15], "x": 16.25, "y": 0 }, - { "matrix": [0, 16], "x": 17.25, "y": 0 }, - { "matrix": [1, 0], "x": 0, "y": 1.25 }, - { "matrix": [1, 1], "x": 1, "y": 1.25 }, - { "matrix": [1, 2], "x": 2, "y": 1.25 }, - { "matrix": [1, 3], "x": 3, "y": 1.25 }, - { "matrix": [1, 4], "x": 4, "y": 1.25 }, - { "matrix": [1, 5], "x": 5, "y": 1.25 }, - { "matrix": [1, 6], "x": 6, "y": 1.25 }, - { "matrix": [1, 7], "x": 7, "y": 1.25 }, - { "matrix": [1, 8], "x": 8, "y": 1.25 }, - { "matrix": [1, 9], "x": 9, "y": 1.25 }, - { "matrix": [1, 10], "x": 10, "y": 1.25 }, - { "matrix": [1, 11], "x": 11, "y": 1.25 }, - { "matrix": [1, 12], "x": 12, "y": 1.25 }, - { "matrix": [1, 13], "w": 2, "x": 13, "y": 1.25 }, - { "matrix": [1, 14], "x": 15.25, "y": 1.25 }, - { "matrix": [1, 15], "x": 16.25, "y": 1.25 }, - { "matrix": [1, 16], "x": 17.25, "y": 1.25 }, - { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, - { "matrix": [2, 1], "x": 1.5, "y": 2.25 }, - { "matrix": [2, 2], "x": 2.5, "y": 2.25 }, - { "matrix": [2, 3], "x": 3.5, "y": 2.25 }, - { "matrix": [2, 4], "x": 4.5, "y": 2.25 }, - { "matrix": [2, 5], "x": 5.5, "y": 2.25 }, - { "matrix": [2, 6], "x": 6.5, "y": 2.25 }, - { "matrix": [2, 7], "x": 7.5, "y": 2.25 }, - { "matrix": [2, 8], "x": 8.5, "y": 2.25 }, - { "matrix": [2, 9], "x": 9.5, "y": 2.25 }, - { "matrix": [2, 10], "x": 10.5, "y": 2.25 }, - { "matrix": [2, 11], "x": 11.5, "y": 2.25 }, - { "matrix": [3, 12], "x": 12.5, "y": 2.25 }, - { "h": 2, "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 2.25 }, - { "matrix": [2, 14], "x": 15.25, "y": 2.25 }, - { "matrix": [2, 15], "x": 16.25, "y": 2.25 }, - { "matrix": [2, 16], "x": 17.25, "y": 2.25 }, - { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, - { "matrix": [3, 1], "x": 1.75, "y": 3.25 }, - { "matrix": [3, 2], "x": 2.75, "y": 3.25 }, - { "matrix": [3, 3], "x": 3.75, "y": 3.25 }, - { "matrix": [3, 4], "x": 4.75, "y": 3.25 }, - { "matrix": [3, 5], "x": 5.75, "y": 3.25 }, - { "matrix": [3, 6], "x": 6.75, "y": 3.25 }, - { "matrix": [3, 7], "x": 7.75, "y": 3.25 }, - { "matrix": [3, 8], "x": 8.75, "y": 3.25 }, - { "matrix": [3, 9], "x": 9.75, "y": 3.25 }, - { "matrix": [3, 10], "x": 10.75, "y": 3.25 }, - { "matrix": [3, 11], "x": 11.75, "y": 3.25 }, - { "matrix": [3, 13], "x": 12.75, "y": 3.25 }, - { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.25 }, - { "matrix": [4, 1], "x": 1.25, "y": 4.25 }, - { "matrix": [4, 2], "x": 2.25, "y": 4.25 }, - { "matrix": [4, 3], "x": 3.25, "y": 4.25 }, - { "matrix": [4, 4], "x": 4.25, "y": 4.25 }, - { "matrix": [4, 5], "x": 5.25, "y": 4.25 }, - { "matrix": [4, 6], "x": 6.25, "y": 4.25 }, - { "matrix": [4, 7], "x": 7.25, "y": 4.25 }, - { "matrix": [4, 8], "x": 8.25, "y": 4.25 }, - { "matrix": [4, 9], "x": 9.25, "y": 4.25 }, - { "matrix": [4, 10], "x": 10.25, "y": 4.25 }, - { "matrix": [4, 11], "x": 11.25, "y": 4.25 }, - { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.25 }, - { "matrix": [4, 15], "x": 16.25, "y": 4.25 }, - { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.25 }, - { "matrix": [5, 1], "w": 1, "x": 1.5, "y": 5.25 }, - { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.25 }, - { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.25 }, - { "matrix": [5, 11], "w": 1.5, "x": 11, "y": 5.25 }, - { "matrix": [5, 12], "w": 1, "x": 12.5, "y": 5.25 }, - { "matrix": [5, 13], "w": 1.5, "x": 13.5, "y": 5.25 }, - { "matrix": [5, 14], "x": 15.25, "y": 5.25 }, - { "matrix": [5, 15], "x": 16.25, "y": 5.25 }, - { "matrix": [4, 16], "x": 17.25, "y": 5.25 } + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [3, 12], "x": 12.5, "y": 2.25}, + + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25}, + {"matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [4, 16], "x": 17.25, "y": 5.25} ] }, "LAYOUT_tkl_iso_tsangan_split_bs_rshift": { "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 2], "x": 2.25, "y": 0 }, - { "matrix": [0, 3], "x": 3.25, "y": 0 }, - { "matrix": [0, 4], "x": 4.25, "y": 0 }, - { "matrix": [0, 5], "x": 5.5, "y": 0 }, - { "matrix": [0, 6], "x": 6.5, "y": 0 }, - { "matrix": [0, 7], "x": 7.5, "y": 0 }, - { "matrix": [0, 8], "x": 8.5, "y": 0 }, - { "matrix": [0, 9], "x": 9.75, "y": 0 }, - { "matrix": [0, 10], "x": 10.75, "y": 0 }, - { "matrix": [0, 11], "x": 11.75, "y": 0 }, - { "matrix": [0, 12], "x": 12.75, "y": 0 }, - { "matrix": [0, 13], "x": 14, "y": 0 }, - { "matrix": [0, 14], "x": 15.25, "y": 0 }, - { "matrix": [0, 15], "x": 16.25, "y": 0 }, - { "matrix": [0, 16], "x": 17.25, "y": 0 }, - { "matrix": [1, 0], "x": 0, "y": 1.25 }, - { "matrix": [1, 1], "x": 1, "y": 1.25 }, - { "matrix": [1, 2], "x": 2, "y": 1.25 }, - { "matrix": [1, 3], "x": 3, "y": 1.25 }, - { "matrix": [1, 4], "x": 4, "y": 1.25 }, - { "matrix": [1, 5], "x": 5, "y": 1.25 }, - { "matrix": [1, 6], "x": 6, "y": 1.25 }, - { "matrix": [1, 7], "x": 7, "y": 1.25 }, - { "matrix": [1, 8], "x": 8, "y": 1.25 }, - { "matrix": [1, 9], "x": 9, "y": 1.25 }, - { "matrix": [1, 10], "x": 10, "y": 1.25 }, - { "matrix": [1, 11], "x": 11, "y": 1.25 }, - { "matrix": [1, 12], "x": 12, "y": 1.25 }, - { "matrix": [2, 12], "x": 13, "y": 1.25 }, - { "matrix": [1, 13], "x": 14, "y": 1.25 }, - { "matrix": [1, 14], "x": 15.25, "y": 1.25 }, - { "matrix": [1, 15], "x": 16.25, "y": 1.25 }, - { "matrix": [1, 16], "x": 17.25, "y": 1.25 }, - { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, - { "matrix": [2, 1], "x": 1.5, "y": 2.25 }, - { "matrix": [2, 2], "x": 2.5, "y": 2.25 }, - { "matrix": [2, 3], "x": 3.5, "y": 2.25 }, - { "matrix": [2, 4], "x": 4.5, "y": 2.25 }, - { "matrix": [2, 5], "x": 5.5, "y": 2.25 }, - { "matrix": [2, 6], "x": 6.5, "y": 2.25 }, - { "matrix": [2, 7], "x": 7.5, "y": 2.25 }, - { "matrix": [2, 8], "x": 8.5, "y": 2.25 }, - { "matrix": [2, 9], "x": 9.5, "y": 2.25 }, - { "matrix": [2, 10], "x": 10.5, "y": 2.25 }, - { "matrix": [2, 11], "x": 11.5, "y": 2.25 }, - { "matrix": [3, 12], "x": 12.5, "y": 2.25 }, - { "h": 2, "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 2.25 }, - { "matrix": [2, 14], "x": 15.25, "y": 2.25 }, - { "matrix": [2, 15], "x": 16.25, "y": 2.25 }, - { "matrix": [2, 16], "x": 17.25, "y": 2.25 }, - { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, - { "matrix": [3, 1], "x": 1.75, "y": 3.25 }, - { "matrix": [3, 2], "x": 2.75, "y": 3.25 }, - { "matrix": [3, 3], "x": 3.75, "y": 3.25 }, - { "matrix": [3, 4], "x": 4.75, "y": 3.25 }, - { "matrix": [3, 5], "x": 5.75, "y": 3.25 }, - { "matrix": [3, 6], "x": 6.75, "y": 3.25 }, - { "matrix": [3, 7], "x": 7.75, "y": 3.25 }, - { "matrix": [3, 8], "x": 8.75, "y": 3.25 }, - { "matrix": [3, 9], "x": 9.75, "y": 3.25 }, - { "matrix": [3, 10], "x": 10.75, "y": 3.25 }, - { "matrix": [3, 11], "x": 11.75, "y": 3.25 }, - { "matrix": [3, 13], "x": 12.75, "y": 3.25 }, - { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.25 }, - { "matrix": [4, 1], "x": 1.25, "y": 4.25 }, - { "matrix": [4, 2], "x": 2.25, "y": 4.25 }, - { "matrix": [4, 3], "x": 3.25, "y": 4.25 }, - { "matrix": [4, 4], "x": 4.25, "y": 4.25 }, - { "matrix": [4, 5], "x": 5.25, "y": 4.25 }, - { "matrix": [4, 6], "x": 6.25, "y": 4.25 }, - { "matrix": [4, 7], "x": 7.25, "y": 4.25 }, - { "matrix": [4, 8], "x": 8.25, "y": 4.25 }, - { "matrix": [4, 9], "x": 9.25, "y": 4.25 }, - { "matrix": [4, 10], "x": 10.25, "y": 4.25 }, - { "matrix": [4, 11], "x": 11.25, "y": 4.25 }, - { "matrix": [4, 12], "w": 1.75, "x": 12.25, "y": 4.25 }, - { "matrix": [4, 13], "x": 14, "y": 4.25 }, - { "matrix": [4, 15], "x": 16.25, "y": 4.25 }, - { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.25 }, - { "matrix": [5, 1], "w": 1, "x": 1.5, "y": 5.25 }, - { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.25 }, - { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.25 }, - { "matrix": [5, 11], "w": 1.5, "x": 11, "y": 5.25 }, - { "matrix": [5, 12], "w": 1, "x": 12.5, "y": 5.25 }, - { "matrix": [5, 13], "w": 1.5, "x": 13.5, "y": 5.25 }, - { "matrix": [5, 14], "x": 15.25, "y": 5.25 }, - { "matrix": [5, 15], "x": 16.25, "y": 5.25 }, - { "matrix": [4, 16], "x": 17.25, "y": 5.25 } + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [2, 12], "x": 13, "y": 1.25}, + {"matrix": [1, 13], "x": 14, "y": 1.25}, + + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [3, 12], "x": 12.5, "y": 2.25}, + + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25}, + {"matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [4, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [3, 12], "x": 12.5, "y": 2.25}, + + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25}, + {"matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [4, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [2, 12], "x": 13, "y": 1.25}, + {"matrix": [1, 13], "x": 14, "y": 1.25}, + + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [3, 12], "x": 12.5, "y": 2.25}, + + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25}, + {"matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [4, 16], "x": 17.25, "y": 5.25} ] } } From e67a4ba7ce476b5bba273a2d5b693b3641b27dcb Mon Sep 17 00:00:00 2001 From: Luis Garcia Date: Wed, 13 Sep 2023 21:08:00 -0600 Subject: [PATCH 046/496] Update to 'peterfalken' userspace configurations (#21836) --- users/peterfalken/config.h | 1 + users/peterfalken/peterfalken.c | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/users/peterfalken/config.h b/users/peterfalken/config.h index 5295923ec6..1342705550 100644 --- a/users/peterfalken/config.h +++ b/users/peterfalken/config.h @@ -14,6 +14,7 @@ #endif // Space optimizations +#define LAYER_STATE_8BIT #undef LOCKING_SUPPORT_ENABLE #undef LOCKING_RESYNC_ENABLE diff --git a/users/peterfalken/peterfalken.c b/users/peterfalken/peterfalken.c index 5041f29da6..dcec1d650b 100644 --- a/users/peterfalken/peterfalken.c +++ b/users/peterfalken/peterfalken.c @@ -3,6 +3,15 @@ #include "peterfalken.h" +// Magic keycodes - overwrite placeholder functions +uint16_t keycode_config(uint16_t keycode) { + return keycode; +} + +uint8_t mod_config(uint8_t mod) { + return mod; +} + // Switch layer #ifndef CUSTOM_LAYER_STATE layer_state_t layer_state_set_user(layer_state_t state) { From f9ed1e3ebc66b568a20848ae0f07052fbef5e4a8 Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 14 Sep 2023 13:57:10 +1000 Subject: [PATCH 047/496] fc660c/fc980c: clean up actuation point adjustment code (#21964) Co-authored-by: Joel Challis --- keyboards/fc660c/actuation_point.c | 87 ---------- keyboards/fc660c/ad5258.c | 52 ++++++ keyboards/fc660c/ad5258.h | 28 +++ keyboards/fc660c/config.h | 2 - keyboards/fc660c/fc660c.c | 45 ++++- .../actuation_point.h => fc660c/fc660c.h} | 8 +- keyboards/fc660c/i2c.c | 162 ------------------ keyboards/fc660c/i2c.h | 46 ----- keyboards/fc660c/rules.mk | 6 +- keyboards/fc980c/actuation_point.c | 87 ---------- keyboards/fc980c/ad5258.c | 52 ++++++ keyboards/fc980c/ad5258.h | 28 +++ keyboards/fc980c/config.h | 2 - keyboards/fc980c/fc980c.c | 44 ++++- .../actuation_point.h => fc980c/fc980c.h} | 8 +- keyboards/fc980c/i2c.c | 162 ------------------ keyboards/fc980c/i2c.h | 46 ----- .../keymaps/actuation-point-example/config.h | 8 +- .../keymaps/actuation-point-example/keymap.c | 5 +- keyboards/fc980c/rules.mk | 6 +- 20 files changed, 254 insertions(+), 630 deletions(-) delete mode 100644 keyboards/fc660c/actuation_point.c create mode 100644 keyboards/fc660c/ad5258.c create mode 100644 keyboards/fc660c/ad5258.h rename keyboards/{fc980c/actuation_point.h => fc660c/fc660c.h} (90%) delete mode 100644 keyboards/fc660c/i2c.c delete mode 100644 keyboards/fc660c/i2c.h delete mode 100644 keyboards/fc980c/actuation_point.c create mode 100644 keyboards/fc980c/ad5258.c create mode 100644 keyboards/fc980c/ad5258.h rename keyboards/{fc660c/actuation_point.h => fc980c/fc980c.h} (90%) delete mode 100644 keyboards/fc980c/i2c.c delete mode 100644 keyboards/fc980c/i2c.h diff --git a/keyboards/fc660c/actuation_point.c b/keyboards/fc660c/actuation_point.c deleted file mode 100644 index 5f4cb16f40..0000000000 --- a/keyboards/fc660c/actuation_point.c +++ /dev/null @@ -1,87 +0,0 @@ -/* -Copyright 2017 Balz Guenat -based on work by Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "actuation_point.h" -#include "i2c.h" - -/////////////////////////////////////////////////////////////////////////////// -// -// AD5258 I2C digital potentiometer -// http://www.analog.com/media/en/technical-documentation/data-sheets/AD5258.pdf -// -#define AD5258_ADDR 0b0011000 -#define AD5258_INST_RDAC 0x00 -#define AD5258_INST_EEPROM 0x20 - -uint8_t read_rdac(void) { - // read RDAC register - i2c_start_write(AD5258_ADDR); - i2c_master_write(AD5258_INST_RDAC); - i2c_start_read(AD5258_ADDR); - uint8_t ret = i2c_master_read(I2C_NACK); - i2c_master_stop(); - return ret; -}; - -uint8_t read_eeprom(void) { - i2c_start_write(AD5258_ADDR); - i2c_master_write(AD5258_INST_EEPROM); - i2c_start_read(AD5258_ADDR); - uint8_t ret = i2c_master_read(I2C_NACK); - i2c_master_stop(); - return ret; -}; - -void write_rdac(uint8_t rdac) { - // write RDAC register: - i2c_start_write(AD5258_ADDR); - i2c_master_write(AD5258_INST_RDAC); - i2c_master_write(rdac & 0x3F); - i2c_master_stop(); -}; - -void actuation_point_up(void) { - // write RDAC register: lower value makes actuation point shallow - uint8_t rdac = read_rdac(); - if (rdac == 0) - write_rdac(0); - else - write_rdac(rdac-1); -}; - -void actuation_point_down(void) { - // write RDAC register: higher value makes actuation point deep - uint8_t rdac = read_rdac(); - if (rdac == 63) - write_rdac(63); - else - write_rdac(rdac+1); -}; - -void adjust_actuation_point(int offset) { - i2c_master_init(); - uint8_t rdac = read_eeprom() + offset; - if (rdac > 63) { // protects from under and overflows - if (offset > 0) - write_rdac(63); - else - write_rdac(0); - } else { - write_rdac(rdac); - } -} diff --git a/keyboards/fc660c/ad5258.c b/keyboards/fc660c/ad5258.c new file mode 100644 index 0000000000..b1df75789b --- /dev/null +++ b/keyboards/fc660c/ad5258.c @@ -0,0 +1,52 @@ +/* +Copyright 2017 Balz Guenat +based on work by Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "ad5258.h" +#include "i2c_master.h" + +/////////////////////////////////////////////////////////////////////////////// +// +// AD5258 I2C digital potentiometer +// http://www.analog.com/media/en/technical-documentation/data-sheets/AD5258.pdf +// +#define AD5258_I2C_ADDRESS 0x18 +#define AD5258_INST_RDAC 0x00 +#define AD5258_INST_EEPROM 0x20 + +void ad5258_init(void) { + i2c_init(); +} + +uint8_t ad5258_read_rdac(void) { + // read RDAC register + uint8_t ret = 0; + i2c_readReg(AD5258_I2C_ADDRESS, AD5258_INST_RDAC, &ret, 1, 100); + return ret; +} + +uint8_t ad5258_read_eeprom(void) { + uint8_t ret = 0; + i2c_readReg(AD5258_I2C_ADDRESS, AD5258_INST_EEPROM, &ret, 1, 100); + return ret; +} + +void ad5258_write_rdac(uint8_t rdac) { + // write RDAC register: + uint8_t data = rdac & 0x3F; + i2c_writeReg(AD5258_I2C_ADDRESS, AD5258_INST_RDAC, &data, 1, 100); +} diff --git a/keyboards/fc660c/ad5258.h b/keyboards/fc660c/ad5258.h new file mode 100644 index 0000000000..c27f247675 --- /dev/null +++ b/keyboards/fc660c/ad5258.h @@ -0,0 +1,28 @@ +/* +Copyright 2017 Balz Guenat + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include + +void ad5258_init(void); + +uint8_t ad5258_read_rdac(void); + +uint8_t ad5258_read_eeprom(void); + +void ad5258_write_rdac(uint8_t rdac); diff --git a/keyboards/fc660c/config.h b/keyboards/fc660c/config.h index cd23bdb2b8..beff84d9be 100644 --- a/keyboards/fc660c/config.h +++ b/keyboards/fc660c/config.h @@ -27,8 +27,6 @@ along with this program. If not, see . * These options are also useful to firmware size reduction. */ -#define USE_I2C - /* disable debug print */ //#define NO_DEBUG diff --git a/keyboards/fc660c/fc660c.c b/keyboards/fc660c/fc660c.c index 2054cd2818..50540cbfb9 100644 --- a/keyboards/fc660c/fc660c.c +++ b/keyboards/fc660c/fc660c.c @@ -14,16 +14,47 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "quantum.h" + +#include "fc660c.h" #ifdef ACTUATION_DEPTH_ADJUSTMENT -#include "actuation_point.h" -#endif - void matrix_init_kb(void) { -#ifdef ACTUATION_DEPTH_ADJUSTMENT adjust_actuation_point(ACTUATION_DEPTH_ADJUSTMENT); -#endif - matrix_init_user(); + matrix_init_user(); } + +void actuation_point_up(void) { + // write RDAC register: lower value makes actuation point shallow + uint8_t rdac = ad5258_read_rdac(); + if (rdac == 0) { + ad5258_write_rdac(0); + } else { + ad5258_write_rdac(rdac - 1); + } +} + +void actuation_point_down(void) { + // write RDAC register: higher value makes actuation point deep + uint8_t rdac = ad5258_read_rdac(); + if (rdac == 63) { + ad5258_write_rdac(63); + } else { + ad5258_write_rdac(rdac + 1); + } +} + +void adjust_actuation_point(int offset) { + ad5258_init(); + uint8_t rdac = ad5258_read_eeprom() + offset; + if (rdac > 63) { // protects from under and overflows + if (offset > 0) { + ad5258_write_rdac(63); + } else { + ad5258_write_rdac(0); + } + } else { + ad5258_write_rdac(rdac); + } +} +#endif diff --git a/keyboards/fc980c/actuation_point.h b/keyboards/fc660c/fc660c.h similarity index 90% rename from keyboards/fc980c/actuation_point.h rename to keyboards/fc660c/fc660c.h index e02832186c..aa98e36be9 100644 --- a/keyboards/fc980c/actuation_point.h +++ b/keyboards/fc660c/fc660c.h @@ -17,13 +17,15 @@ along with this program. If not, see . #pragma once -#include +#include "quantum.h" + +#ifdef ACTUATION_DEPTH_ADJUSTMENT +# include "ad5258.h" // see keymaps/actuation-point-example to see how these functions can be used. -uint8_t read_rdac(void); -uint8_t read_eeprom(void); void actuation_point_up(void); void actuation_point_down(void); // be careful with this. void adjust_actuation_point(int offset); +#endif diff --git a/keyboards/fc660c/i2c.c b/keyboards/fc660c/i2c.c deleted file mode 100644 index 084c890c40..0000000000 --- a/keyboards/fc660c/i2c.c +++ /dev/null @@ -1,162 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include "i2c.h" - -#ifdef USE_I2C - -// Limits the amount of we wait for any one i2c transaction. -// Since were running SCL line 100kHz (=> 10μs/bit), and each transactions is -// 9 bits, a single transaction will take around 90μs to complete. -// -// (F_CPU/SCL_CLOCK) => # of μC cycles to transfer a bit -// poll loop takes at least 8 clock cycles to execute -#define I2C_LOOP_TIMEOUT (9+1)*(F_CPU/SCL_CLOCK)/8 - -#define BUFFER_POS_INC() (slave_buffer_pos = (slave_buffer_pos+1)%SLAVE_BUFFER_SIZE) - -volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE]; - -static volatile uint8_t slave_buffer_pos; -static volatile bool slave_has_register_set = false; - -// Wait for an i2c operation to finish -inline static -void i2c_delay(void) { - uint16_t lim = 0; - while(!(TWCR & (1<10. - // Check datasheets for more info. - TWBR = ((F_CPU/SCL_CLOCK)-16)/2; -} - -// Start a transaction with the given i2c slave address. The direction of the -// transfer is set with I2C_READ and I2C_WRITE. -// returns: 0 => success -// 1 => error -uint8_t i2c_master_start(uint8_t address) { - TWCR = (1< slave ACK -// 1 => slave NACK -uint8_t i2c_master_write(uint8_t data) { - TWDR = data; - TWCR = (1<= SLAVE_BUFFER_SIZE ) { - ack = 0; - slave_buffer_pos = 0; - } - slave_has_register_set = true; - } else { - i2c_slave_buffer[slave_buffer_pos] = TWDR; - BUFFER_POS_INC(); - } - break; - - case TW_ST_SLA_ACK: - case TW_ST_DATA_ACK: - // master has addressed this device as a slave transmitter and is - // requesting data. - TWDR = i2c_slave_buffer[slave_buffer_pos]; - BUFFER_POS_INC(); - break; - - case TW_BUS_ERROR: // something went wrong, reset twi state - TWCR = 0; - default: - break; - } - // Reset everything, so we are ready for the next TWI interrupt - TWCR |= (1< - -#ifndef F_CPU -#define F_CPU 16000000UL -#endif - -#define I2C_READ 1 -#define I2C_WRITE 0 - -#define I2C_ACK 1 -#define I2C_NACK 0 - -#define SLAVE_BUFFER_SIZE 0x10 - -// i2c SCL clock frequency -#define SCL_CLOCK 400000L - -extern volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE]; - -void i2c_master_init(void); -uint8_t i2c_master_start(uint8_t address); -void i2c_master_stop(void); -uint8_t i2c_master_write(uint8_t data); -uint8_t i2c_master_read(int); -void i2c_reset_state(void); -void i2c_slave_init(uint8_t address); - - -static inline unsigned char i2c_start_read(unsigned char addr) { - return i2c_master_start((addr << 1) | I2C_READ); -} - -static inline unsigned char i2c_start_write(unsigned char addr) { - return i2c_master_start((addr << 1) | I2C_WRITE); -} - -// from SSD1306 scrips -extern unsigned char i2c_rep_start(unsigned char addr); -extern void i2c_start_wait(unsigned char addr); -extern unsigned char i2c_readAck(void); -extern unsigned char i2c_readNak(void); -extern unsigned char i2c_read(unsigned char ack); - -#define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak(); diff --git a/keyboards/fc660c/rules.mk b/keyboards/fc660c/rules.mk index ed4a7ca66d..52f4ce803d 100644 --- a/keyboards/fc660c/rules.mk +++ b/keyboards/fc660c/rules.mk @@ -11,7 +11,7 @@ NKRO_ENABLE = yes # Enable N-Key Rollover # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax +QUANTUM_LIB_SRC += i2c_master.c + CUSTOM_MATRIX = yes -SRC += matrix.c \ - actuation_point.c \ - i2c.c +SRC += matrix.c ad5258.c diff --git a/keyboards/fc980c/actuation_point.c b/keyboards/fc980c/actuation_point.c deleted file mode 100644 index 5f4cb16f40..0000000000 --- a/keyboards/fc980c/actuation_point.c +++ /dev/null @@ -1,87 +0,0 @@ -/* -Copyright 2017 Balz Guenat -based on work by Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "actuation_point.h" -#include "i2c.h" - -/////////////////////////////////////////////////////////////////////////////// -// -// AD5258 I2C digital potentiometer -// http://www.analog.com/media/en/technical-documentation/data-sheets/AD5258.pdf -// -#define AD5258_ADDR 0b0011000 -#define AD5258_INST_RDAC 0x00 -#define AD5258_INST_EEPROM 0x20 - -uint8_t read_rdac(void) { - // read RDAC register - i2c_start_write(AD5258_ADDR); - i2c_master_write(AD5258_INST_RDAC); - i2c_start_read(AD5258_ADDR); - uint8_t ret = i2c_master_read(I2C_NACK); - i2c_master_stop(); - return ret; -}; - -uint8_t read_eeprom(void) { - i2c_start_write(AD5258_ADDR); - i2c_master_write(AD5258_INST_EEPROM); - i2c_start_read(AD5258_ADDR); - uint8_t ret = i2c_master_read(I2C_NACK); - i2c_master_stop(); - return ret; -}; - -void write_rdac(uint8_t rdac) { - // write RDAC register: - i2c_start_write(AD5258_ADDR); - i2c_master_write(AD5258_INST_RDAC); - i2c_master_write(rdac & 0x3F); - i2c_master_stop(); -}; - -void actuation_point_up(void) { - // write RDAC register: lower value makes actuation point shallow - uint8_t rdac = read_rdac(); - if (rdac == 0) - write_rdac(0); - else - write_rdac(rdac-1); -}; - -void actuation_point_down(void) { - // write RDAC register: higher value makes actuation point deep - uint8_t rdac = read_rdac(); - if (rdac == 63) - write_rdac(63); - else - write_rdac(rdac+1); -}; - -void adjust_actuation_point(int offset) { - i2c_master_init(); - uint8_t rdac = read_eeprom() + offset; - if (rdac > 63) { // protects from under and overflows - if (offset > 0) - write_rdac(63); - else - write_rdac(0); - } else { - write_rdac(rdac); - } -} diff --git a/keyboards/fc980c/ad5258.c b/keyboards/fc980c/ad5258.c new file mode 100644 index 0000000000..b1df75789b --- /dev/null +++ b/keyboards/fc980c/ad5258.c @@ -0,0 +1,52 @@ +/* +Copyright 2017 Balz Guenat +based on work by Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "ad5258.h" +#include "i2c_master.h" + +/////////////////////////////////////////////////////////////////////////////// +// +// AD5258 I2C digital potentiometer +// http://www.analog.com/media/en/technical-documentation/data-sheets/AD5258.pdf +// +#define AD5258_I2C_ADDRESS 0x18 +#define AD5258_INST_RDAC 0x00 +#define AD5258_INST_EEPROM 0x20 + +void ad5258_init(void) { + i2c_init(); +} + +uint8_t ad5258_read_rdac(void) { + // read RDAC register + uint8_t ret = 0; + i2c_readReg(AD5258_I2C_ADDRESS, AD5258_INST_RDAC, &ret, 1, 100); + return ret; +} + +uint8_t ad5258_read_eeprom(void) { + uint8_t ret = 0; + i2c_readReg(AD5258_I2C_ADDRESS, AD5258_INST_EEPROM, &ret, 1, 100); + return ret; +} + +void ad5258_write_rdac(uint8_t rdac) { + // write RDAC register: + uint8_t data = rdac & 0x3F; + i2c_writeReg(AD5258_I2C_ADDRESS, AD5258_INST_RDAC, &data, 1, 100); +} diff --git a/keyboards/fc980c/ad5258.h b/keyboards/fc980c/ad5258.h new file mode 100644 index 0000000000..c27f247675 --- /dev/null +++ b/keyboards/fc980c/ad5258.h @@ -0,0 +1,28 @@ +/* +Copyright 2017 Balz Guenat + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include + +void ad5258_init(void); + +uint8_t ad5258_read_rdac(void); + +uint8_t ad5258_read_eeprom(void); + +void ad5258_write_rdac(uint8_t rdac); diff --git a/keyboards/fc980c/config.h b/keyboards/fc980c/config.h index 7c0c3b31a6..776b8ef35f 100644 --- a/keyboards/fc980c/config.h +++ b/keyboards/fc980c/config.h @@ -30,8 +30,6 @@ along with this program. If not, see . * These options are also useful to firmware size reduction. */ -#define USE_I2C - /* disable debug print */ //#define NO_DEBUG diff --git a/keyboards/fc980c/fc980c.c b/keyboards/fc980c/fc980c.c index fc3696f244..c1c62da9ac 100644 --- a/keyboards/fc980c/fc980c.c +++ b/keyboards/fc980c/fc980c.c @@ -15,16 +15,46 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "quantum.h" +#include "fc980c.h" #ifdef ACTUATION_DEPTH_ADJUSTMENT -#include "actuation_point.h" -#endif - void matrix_init_kb(void) { -#ifdef ACTUATION_DEPTH_ADJUSTMENT adjust_actuation_point(ACTUATION_DEPTH_ADJUSTMENT); -#endif - matrix_init_user(); + matrix_init_user(); } + +void actuation_point_up(void) { + // write RDAC register: lower value makes actuation point shallow + uint8_t rdac = ad5258_read_rdac(); + if (rdac == 0) { + ad5258_write_rdac(0); + } else { + ad5258_write_rdac(rdac - 1); + } +} + +void actuation_point_down(void) { + // write RDAC register: higher value makes actuation point deep + uint8_t rdac = ad5258_read_rdac(); + if (rdac == 63) { + ad5258_write_rdac(63); + } else { + ad5258_write_rdac(rdac + 1); + } +} + +void adjust_actuation_point(int offset) { + ad5258_init(); + uint8_t rdac = ad5258_read_eeprom() + offset; + if (rdac > 63) { // protects from under and overflows + if (offset > 0) { + ad5258_write_rdac(63); + } else { + ad5258_write_rdac(0); + } + } else { + ad5258_write_rdac(rdac); + } +} +#endif diff --git a/keyboards/fc660c/actuation_point.h b/keyboards/fc980c/fc980c.h similarity index 90% rename from keyboards/fc660c/actuation_point.h rename to keyboards/fc980c/fc980c.h index e02832186c..aa98e36be9 100644 --- a/keyboards/fc660c/actuation_point.h +++ b/keyboards/fc980c/fc980c.h @@ -17,13 +17,15 @@ along with this program. If not, see . #pragma once -#include +#include "quantum.h" + +#ifdef ACTUATION_DEPTH_ADJUSTMENT +# include "ad5258.h" // see keymaps/actuation-point-example to see how these functions can be used. -uint8_t read_rdac(void); -uint8_t read_eeprom(void); void actuation_point_up(void); void actuation_point_down(void); // be careful with this. void adjust_actuation_point(int offset); +#endif diff --git a/keyboards/fc980c/i2c.c b/keyboards/fc980c/i2c.c deleted file mode 100644 index 084c890c40..0000000000 --- a/keyboards/fc980c/i2c.c +++ /dev/null @@ -1,162 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include "i2c.h" - -#ifdef USE_I2C - -// Limits the amount of we wait for any one i2c transaction. -// Since were running SCL line 100kHz (=> 10μs/bit), and each transactions is -// 9 bits, a single transaction will take around 90μs to complete. -// -// (F_CPU/SCL_CLOCK) => # of μC cycles to transfer a bit -// poll loop takes at least 8 clock cycles to execute -#define I2C_LOOP_TIMEOUT (9+1)*(F_CPU/SCL_CLOCK)/8 - -#define BUFFER_POS_INC() (slave_buffer_pos = (slave_buffer_pos+1)%SLAVE_BUFFER_SIZE) - -volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE]; - -static volatile uint8_t slave_buffer_pos; -static volatile bool slave_has_register_set = false; - -// Wait for an i2c operation to finish -inline static -void i2c_delay(void) { - uint16_t lim = 0; - while(!(TWCR & (1<10. - // Check datasheets for more info. - TWBR = ((F_CPU/SCL_CLOCK)-16)/2; -} - -// Start a transaction with the given i2c slave address. The direction of the -// transfer is set with I2C_READ and I2C_WRITE. -// returns: 0 => success -// 1 => error -uint8_t i2c_master_start(uint8_t address) { - TWCR = (1< slave ACK -// 1 => slave NACK -uint8_t i2c_master_write(uint8_t data) { - TWDR = data; - TWCR = (1<= SLAVE_BUFFER_SIZE ) { - ack = 0; - slave_buffer_pos = 0; - } - slave_has_register_set = true; - } else { - i2c_slave_buffer[slave_buffer_pos] = TWDR; - BUFFER_POS_INC(); - } - break; - - case TW_ST_SLA_ACK: - case TW_ST_DATA_ACK: - // master has addressed this device as a slave transmitter and is - // requesting data. - TWDR = i2c_slave_buffer[slave_buffer_pos]; - BUFFER_POS_INC(); - break; - - case TW_BUS_ERROR: // something went wrong, reset twi state - TWCR = 0; - default: - break; - } - // Reset everything, so we are ready for the next TWI interrupt - TWCR |= (1< - -#ifndef F_CPU -#define F_CPU 16000000UL -#endif - -#define I2C_READ 1 -#define I2C_WRITE 0 - -#define I2C_ACK 1 -#define I2C_NACK 0 - -#define SLAVE_BUFFER_SIZE 0x10 - -// i2c SCL clock frequency -#define SCL_CLOCK 400000L - -extern volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE]; - -void i2c_master_init(void); -uint8_t i2c_master_start(uint8_t address); -void i2c_master_stop(void); -uint8_t i2c_master_write(uint8_t data); -uint8_t i2c_master_read(int); -void i2c_reset_state(void); -void i2c_slave_init(uint8_t address); - - -static inline unsigned char i2c_start_read(unsigned char addr) { - return i2c_master_start((addr << 1) | I2C_READ); -} - -static inline unsigned char i2c_start_write(unsigned char addr) { - return i2c_master_start((addr << 1) | I2C_WRITE); -} - -// from SSD1306 scrips -extern unsigned char i2c_rep_start(unsigned char addr); -extern void i2c_start_wait(unsigned char addr); -extern unsigned char i2c_readAck(void); -extern unsigned char i2c_readNak(void); -extern unsigned char i2c_read(unsigned char ack); - -#define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak(); diff --git a/keyboards/fc980c/keymaps/actuation-point-example/config.h b/keyboards/fc980c/keymaps/actuation-point-example/config.h index c2a538b6ae..a4ecab70fd 100644 --- a/keyboards/fc980c/keymaps/actuation-point-example/config.h +++ b/keyboards/fc980c/keymaps/actuation-point-example/config.h @@ -14,11 +14,7 @@ * along with this program. If not, see . */ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - - -// place overrides here +#pragma once // higher value means deeper actuation point, less sensitive // be careful and only make small adjustments (steps of 1 or 2). @@ -27,5 +23,3 @@ // this should probably stay in the range +/-5. #undef ACTUATION_DEPTH_ADJUSTMENT #define ACTUATION_DEPTH_ADJUSTMENT +1 - -#endif diff --git a/keyboards/fc980c/keymaps/actuation-point-example/keymap.c b/keyboards/fc980c/keymaps/actuation-point-example/keymap.c index 85e782d625..50b6a9ff40 100644 --- a/keyboards/fc980c/keymaps/actuation-point-example/keymap.c +++ b/keyboards/fc980c/keymaps/actuation-point-example/keymap.c @@ -15,7 +15,6 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include QMK_KEYBOARD_H -#include "actuation_point.h" enum custom_keycodes { @@ -62,12 +61,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) } case AP_READ_RDAC: { - xprintf("RDAC: %d", read_rdac()); + xprintf("RDAC: %d", ad5258_read_rdac()); return false; } case AP_READ_EEPROM: { - xprintf("EEPROM: %d", read_eeprom()); + xprintf("EEPROM: %d", ad5258_read_eeprom()); return false; } diff --git a/keyboards/fc980c/rules.mk b/keyboards/fc980c/rules.mk index ed4a7ca66d..52f4ce803d 100644 --- a/keyboards/fc980c/rules.mk +++ b/keyboards/fc980c/rules.mk @@ -11,7 +11,7 @@ NKRO_ENABLE = yes # Enable N-Key Rollover # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax +QUANTUM_LIB_SRC += i2c_master.c + CUSTOM_MATRIX = yes -SRC += matrix.c \ - actuation_point.c \ - i2c.c +SRC += matrix.c ad5258.c From 76daf29ef0820438902eb64027c403cc3e37b892 Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 14 Sep 2023 17:02:40 +1000 Subject: [PATCH 048/496] Add and use PWM frequency defines for ISSI LED drivers (#22009) --- drivers/led/issi/is31fl3733-simple.c | 2 +- drivers/led/issi/is31fl3733-simple.h | 6 ++++++ drivers/led/issi/is31fl3733.c | 2 +- drivers/led/issi/is31fl3733.h | 6 ++++++ drivers/led/issi/is31fl3736.c | 8 ++++++-- drivers/led/issi/is31fl3736.h | 6 ++++++ drivers/led/issi/is31fl3737.c | 2 +- drivers/led/issi/is31fl3737.h | 6 ++++++ drivers/led/issi/is31fl3741.c | 7 +++++++ drivers/led/issi/is31fl3741.h | 5 +++++ keyboards/4pplet/perk60_iso/rev_a/config.h | 2 +- keyboards/drop/alt/v2/config.h | 2 +- keyboards/drop/ctrl/v2/config.h | 2 +- keyboards/drop/sense75/config.h | 2 +- keyboards/drop/shift/v2/config.h | 2 +- keyboards/frooastboard/walnut/config.h | 2 +- keyboards/input_club/k_type/is31fl3733-dual.c | 2 +- keyboards/input_club/k_type/is31fl3733-dual.h | 6 ++++++ 18 files changed, 58 insertions(+), 12 deletions(-) diff --git a/drivers/led/issi/is31fl3733-simple.c b/drivers/led/issi/is31fl3733-simple.c index fde492509f..c52e1ff9f1 100644 --- a/drivers/led/issi/is31fl3733-simple.c +++ b/drivers/led/issi/is31fl3733-simple.c @@ -60,7 +60,7 @@ #endif #ifndef IS31FL3733_PWM_FREQUENCY -# define IS31FL3733_PWM_FREQUENCY 0b000 // PFS - IS31FL3733B only +# define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3733B only #endif #ifndef IS31FL3733_SWPULLUP diff --git a/drivers/led/issi/is31fl3733-simple.h b/drivers/led/issi/is31fl3733-simple.h index a557cabd7e..7e06e2af02 100644 --- a/drivers/led/issi/is31fl3733-simple.h +++ b/drivers/led/issi/is31fl3733-simple.h @@ -87,6 +87,12 @@ void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index); #define IS31FL3733_PUR_16KR 0x06 // 16k Ohm resistor on all the time #define IS31FL3733_PUR_32KR 0x07 // 32k Ohm resistor in t_NOL +#define IS31FL3733_PWM_FREQUENCY_8K4_HZ 0b000 +#define IS31FL3733_PWM_FREQUENCY_4K2_HZ 0b001 +#define IS31FL3733_PWM_FREQUENCY_26K7_HZ 0b010 +#define IS31FL3733_PWM_FREQUENCY_2K1_HZ 0b011 +#define IS31FL3733_PWM_FREQUENCY_1K05_HZ 0b100 + #define A_1 0x00 #define A_2 0x01 #define A_3 0x02 diff --git a/drivers/led/issi/is31fl3733.c b/drivers/led/issi/is31fl3733.c index ecb721196d..3ee9b14c81 100644 --- a/drivers/led/issi/is31fl3733.c +++ b/drivers/led/issi/is31fl3733.c @@ -59,7 +59,7 @@ #endif #ifndef IS31FL3733_PWM_FREQUENCY -# define IS31FL3733_PWM_FREQUENCY 0b000 // PFS - IS31FL3733B only +# define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3733B only #endif #ifndef IS31FL3733_SWPULLUP diff --git a/drivers/led/issi/is31fl3733.h b/drivers/led/issi/is31fl3733.h index 633ed71ee6..3c17723f92 100644 --- a/drivers/led/issi/is31fl3733.h +++ b/drivers/led/issi/is31fl3733.h @@ -88,6 +88,12 @@ void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index); #define IS31FL3733_PUR_16KR 0x06 // 16k Ohm resistor on all the time #define IS31FL3733_PUR_32KR 0x07 // 32k Ohm resistor in t_NOL +#define IS31FL3733_PWM_FREQUENCY_8K4_HZ 0b000 +#define IS31FL3733_PWM_FREQUENCY_4K2_HZ 0b001 +#define IS31FL3733_PWM_FREQUENCY_26K7_HZ 0b010 +#define IS31FL3733_PWM_FREQUENCY_2K1_HZ 0b011 +#define IS31FL3733_PWM_FREQUENCY_1K05_HZ 0b100 + #define A_1 0x00 #define A_2 0x01 #define A_3 0x02 diff --git a/drivers/led/issi/is31fl3736.c b/drivers/led/issi/is31fl3736.c index a070836b38..c8c035854f 100644 --- a/drivers/led/issi/is31fl3736.c +++ b/drivers/led/issi/is31fl3736.c @@ -48,7 +48,7 @@ #define IS31FL3736_REG_SWPULLUP 0x0F // PG3 #define IS31FL3736_REG_CSPULLUP 0x10 // PG3 -#ifndef IS31FL3736_TIMEOUT +#ifndef IS31FL3736_I2C_TIMEOUT # define IS31FL3736_I2C_TIMEOUT 100 #endif @@ -56,6 +56,10 @@ # define IS31FL3736_I2C_PERSISTENCE 0 #endif +#ifndef IS31FL3736_PWM_FREQUENCY +# define IS31FL3736_PWM_FREQUENCY IS31FL3736_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3736B only +#endif + #ifndef IS31FL3736_SWPULLUP # define IS31FL3736_SWPULLUP IS31FL3736_PUR_0R #endif @@ -159,7 +163,7 @@ void is31fl3736_init(uint8_t addr) { // Set global current to maximum. is31fl3736_write_register(addr, IS31FL3736_REG_GLOBALCURRENT, IS31FL3736_GLOBALCURRENT); // Disable software shutdown. - is31fl3736_write_register(addr, IS31FL3736_REG_CONFIGURATION, 0x01); + is31fl3736_write_register(addr, IS31FL3736_REG_CONFIGURATION, ((IS31FL3736_PWM_FREQUENCY & 0b111) << 3) | 0x01); // Wait 10ms to ensure the device has woken up. wait_ms(10); diff --git a/drivers/led/issi/is31fl3736.h b/drivers/led/issi/is31fl3736.h index 90e59da8b0..5cc1262633 100644 --- a/drivers/led/issi/is31fl3736.h +++ b/drivers/led/issi/is31fl3736.h @@ -89,6 +89,12 @@ void is31fl3736_update_led_control_registers(uint8_t addr, uint8_t index); #define IS31FL3736_PUR_16KR 0x06 // 16k Ohm resistor #define IS31FL3736_PUR_32KR 0x07 // 32k Ohm resistor +#define IS31FL3736_PWM_FREQUENCY_8K4_HZ 0b000 +#define IS31FL3736_PWM_FREQUENCY_4K2_HZ 0b001 +#define IS31FL3736_PWM_FREQUENCY_26K7_HZ 0b010 +#define IS31FL3736_PWM_FREQUENCY_2K1_HZ 0b011 +#define IS31FL3736_PWM_FREQUENCY_1K05_HZ 0b100 + #define A_1 0x00 #define A_2 0x02 #define A_3 0x04 diff --git a/drivers/led/issi/is31fl3737.c b/drivers/led/issi/is31fl3737.c index 94bd755dea..550d26da8d 100644 --- a/drivers/led/issi/is31fl3737.c +++ b/drivers/led/issi/is31fl3737.c @@ -59,7 +59,7 @@ #endif #ifndef IS31FL3737_PWM_FREQUENCY -# define IS31FL3737_PWM_FREQUENCY 0b000 // PFS - IS31FL3737B only +# define IS31FL3737_PWM_FREQUENCY IS31FL3737_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3737B only #endif #ifndef IS31FL3737_SWPULLUP diff --git a/drivers/led/issi/is31fl3737.h b/drivers/led/issi/is31fl3737.h index a6a9a3a059..e382602e9a 100644 --- a/drivers/led/issi/is31fl3737.h +++ b/drivers/led/issi/is31fl3737.h @@ -90,6 +90,12 @@ void is31fl3737_update_led_control_registers(uint8_t addr, uint8_t index); #define IS31FL3737_PUR_16KR 0x06 // 16k Ohm resistor in t_NOL #define IS31FL3737_PUR_32KR 0x07 // 32k Ohm resistor in t_NOL +#define IS31FL3737_PWM_FREQUENCY_8K4_HZ 0b000 +#define IS31FL3737_PWM_FREQUENCY_4K2_HZ 0b001 +#define IS31FL3737_PWM_FREQUENCY_26K7_HZ 0b010 +#define IS31FL3737_PWM_FREQUENCY_2K1_HZ 0b011 +#define IS31FL3737_PWM_FREQUENCY_1K05_HZ 0b100 + #define A_1 0x00 #define A_2 0x01 #define A_3 0x02 diff --git a/drivers/led/issi/is31fl3741.c b/drivers/led/issi/is31fl3741.c index 2459677df0..2db1f021b1 100644 --- a/drivers/led/issi/is31fl3741.c +++ b/drivers/led/issi/is31fl3741.c @@ -49,6 +49,7 @@ #define IS31FL3741_REG_CONFIGURATION 0x00 // PG4 #define IS31FL3741_REG_GLOBALCURRENT 0x01 // PG4 #define IS31FL3741_REG_PULLDOWNUP 0x02 // PG4 +#define IS31FL3741_REG_PWM_FREQUENCY 0x36 // PG4 #define IS31FL3741_REG_RESET 0x3F // PG4 #ifndef IS31FL3741_I2C_TIMEOUT @@ -63,6 +64,10 @@ # define IS31FL3741_CONFIGURATION 0x01 #endif +#ifndef IS31FL3741_PWM_FREQUENCY +# define IS31FL3741_PWM_FREQUENCY IS31FL3741_PWM_FREQUENCY_29K_HZ +#endif + #ifndef IS31FL3741_SWPULLUP # define IS31FL3741_SWPULLUP IS31FL3741_PUR_32KR #endif @@ -170,6 +175,8 @@ void is31fl3741_init(uint8_t addr) { is31fl3741_write_register(addr, IS31FL3741_REG_GLOBALCURRENT, IS31FL3741_GLOBALCURRENT); // Set Pull up & Down for SWx CSy is31fl3741_write_register(addr, IS31FL3741_REG_PULLDOWNUP, ((IS31FL3741_CSPULLUP << 4) | IS31FL3741_SWPULLUP)); + // Set PWM frequency + is31fl3741_write_register(addr, IS31FL3741_REG_PWM_FREQUENCY, (IS31FL3741_PWM_FREQUENCY & 0b1111)); // is31fl3741_update_led_scaling_registers(addr, 0xFF, 0xFF, 0xFF); diff --git a/drivers/led/issi/is31fl3741.h b/drivers/led/issi/is31fl3741.h index ffa4be9250..b7317bdab6 100644 --- a/drivers/led/issi/is31fl3741.h +++ b/drivers/led/issi/is31fl3741.h @@ -93,6 +93,11 @@ void is31fl3741_set_pwm_buffer(const is31_led *pled, uint8_t red, uint8_t green, #define IS31FL3741_PUR_16KR 0x06 // 16k Ohm resistor #define IS31FL3741_PUR_32KR 0x07 // 32k Ohm resistor +#define IS31FL3741_PWM_FREQUENCY_29K_HZ 0b0000 +#define IS31FL3741_PWM_FREQUENCY_3K6_HZ 0b0011 +#define IS31FL3741_PWM_FREQUENCY_1K8_HZ 0b0111 +#define IS31FL3741_PWM_FREQUENCY_900_HZ 0b1011 + #define CS1_SW1 0x00 #define CS2_SW1 0x01 #define CS3_SW1 0x02 diff --git a/keyboards/4pplet/perk60_iso/rev_a/config.h b/keyboards/4pplet/perk60_iso/rev_a/config.h index a37f0cd09a..76f2600590 100644 --- a/keyboards/4pplet/perk60_iso/rev_a/config.h +++ b/keyboards/4pplet/perk60_iso/rev_a/config.h @@ -24,7 +24,7 @@ along with this program. If not, see . #define DRIVER_ADDR_1 0b1010000 #define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 62 -#define IS31FL3733_PWM_FREQUENCY 0b010 +#define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ #define RGB_MATRIX_DEFAULT_VAL 80 #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/drop/alt/v2/config.h b/keyboards/drop/alt/v2/config.h index f256426219..8ab8d0fb38 100644 --- a/keyboards/drop/alt/v2/config.h +++ b/keyboards/drop/alt/v2/config.h @@ -18,7 +18,7 @@ #define DRIVER_ADDR_2 0b1011111 #define IS31FL3733_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 111 -#define IS31FL3733_PWM_FREQUENCY 0b010 // 26k +#define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_DEFAULT_VAL 100 diff --git a/keyboards/drop/ctrl/v2/config.h b/keyboards/drop/ctrl/v2/config.h index dbb1220afc..51990d856b 100644 --- a/keyboards/drop/ctrl/v2/config.h +++ b/keyboards/drop/ctrl/v2/config.h @@ -18,7 +18,7 @@ #define DRIVER_ADDR_2 0b1011111 #define IS31FL3733_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 119 -#define IS31FL3733_PWM_FREQUENCY 0b010 // 26k +#define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_DEFAULT_VAL 100 diff --git a/keyboards/drop/sense75/config.h b/keyboards/drop/sense75/config.h index 0b85e29555..6d2d50e541 100644 --- a/keyboards/drop/sense75/config.h +++ b/keyboards/drop/sense75/config.h @@ -13,7 +13,7 @@ #define DRIVER_ADDR_2 0b1011111 #define IS31FL3733_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 111 -#define IS31FL3733_PWM_FREQUENCY 0b010 // 26k +#define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/drop/shift/v2/config.h b/keyboards/drop/shift/v2/config.h index f78dcb1b0c..7334585d16 100644 --- a/keyboards/drop/shift/v2/config.h +++ b/keyboards/drop/shift/v2/config.h @@ -19,7 +19,7 @@ #define DRIVER_ADDR_3 0b1010000 #define IS31FL3733_DRIVER_COUNT 3 #define RGB_MATRIX_LED_COUNT 166 -#define IS31FL3733_PWM_FREQUENCY 0b010 // 26k +#define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_DEFAULT_VAL 100 diff --git a/keyboards/frooastboard/walnut/config.h b/keyboards/frooastboard/walnut/config.h index 2f11b88377..3e7b870075 100644 --- a/keyboards/frooastboard/walnut/config.h +++ b/keyboards/frooastboard/walnut/config.h @@ -3,7 +3,7 @@ #pragma once -#define IS31FL3737_PWM_FREQUENCY 0b010 +#define IS31FL3737_PWM_FREQUENCY IS31FL3737_PWM_FREQUENCY_26K7_HZ #define IS31FL3737_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 48 #define DRIVER_ADDR_1 0b1010000 diff --git a/keyboards/input_club/k_type/is31fl3733-dual.c b/keyboards/input_club/k_type/is31fl3733-dual.c index dd1e268cd6..2976f5aed4 100644 --- a/keyboards/input_club/k_type/is31fl3733-dual.c +++ b/keyboards/input_club/k_type/is31fl3733-dual.c @@ -57,7 +57,7 @@ #endif #ifndef IS31FL3733_PWM_FREQUENCY -# define IS31FL3733_PWM_FREQUENCY 0b000 // PFS - IS31FL3733B only +# define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3733B only #endif #ifndef IS31FL3733_SWPULLUP diff --git a/keyboards/input_club/k_type/is31fl3733-dual.h b/keyboards/input_club/k_type/is31fl3733-dual.h index fa58d653c9..a5ef3ff008 100644 --- a/keyboards/input_club/k_type/is31fl3733-dual.h +++ b/keyboards/input_club/k_type/is31fl3733-dual.h @@ -55,6 +55,12 @@ void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index); #define IS31FL3733_PUR_16KR 0x06 // 16k Ohm resistor on all the time #define IS31FL3733_PUR_32KR 0x07 // 32k Ohm resistor in t_NOL +#define IS31FL3733_PWM_FREQUENCY_8K4_HZ 0x00 +#define IS31FL3733_PWM_FREQUENCY_4K2_HZ 0x01 +#define IS31FL3733_PWM_FREQUENCY_26K7_HZ 0x02 +#define IS31FL3733_PWM_FREQUENCY_2K1_HZ 0x03 +#define IS31FL3733_PWM_FREQUENCY_1K05_HZ 0x04 + #define A_1 0x00 #define A_2 0x01 #define A_3 0x02 From b9d6bfe927c327dbfb197bb8e9e52ac2f07d7d48 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 14 Sep 2023 08:23:06 +0100 Subject: [PATCH 049/496] Fix input_club/k_type when RGB Matrix disabled (#22021) --- keyboards/input_club/k_type/post_rules.mk | 5 +++++ keyboards/input_club/k_type/rules.mk | 5 ----- 2 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 keyboards/input_club/k_type/post_rules.mk diff --git a/keyboards/input_club/k_type/post_rules.mk b/keyboards/input_club/k_type/post_rules.mk new file mode 100644 index 0000000000..897e422b05 --- /dev/null +++ b/keyboards/input_club/k_type/post_rules.mk @@ -0,0 +1,5 @@ +ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) + # Additional files for RGB lighting + SRC += k_type-rgbdriver.c + QUANTUM_LIB_SRC += i2c_master.c is31fl3733-dual.c +endif diff --git a/keyboards/input_club/k_type/rules.mk b/keyboards/input_club/k_type/rules.mk index d7776bb755..684de50562 100644 --- a/keyboards/input_club/k_type/rules.mk +++ b/keyboards/input_club/k_type/rules.mk @@ -13,8 +13,3 @@ AUDIO_ENABLE = no # Audio output # RGB options RGB_MATRIX_ENABLE = no - -# Additional files for RGB lighting -SRC += k_type-rgbdriver.c -QUANTUM_LIB_SRC += i2c_master.c is31fl3733-dual.c - From d8e100ae3cc38a63889c5933cecc13b0a58f9277 Mon Sep 17 00:00:00 2001 From: Chris Salch Date: Thu, 14 Sep 2023 03:20:03 -0500 Subject: [PATCH 050/496] Allow force flush of oled display (#20953) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- docs/feature_oled_driver.md | 56 +++++++++++++++++++++++++++++++++---- drivers/oled/oled_driver.c | 4 +-- drivers/oled/oled_driver.h | 20 +++++++------ 3 files changed, 64 insertions(+), 16 deletions(-) diff --git a/docs/feature_oled_driver.md b/docs/feature_oled_driver.md index f3769742f8..3b6b4e7a1e 100644 --- a/docs/feature_oled_driver.md +++ b/docs/feature_oled_driver.md @@ -166,6 +166,42 @@ bool oled_task_user(void) { #endif ``` +Render a message before booting into bootloader mode. +```c +void oled_render_boot(bool bootloader) { + oled_clear(); + for (int i = 0; i < 16; i++) { + oled_set_cursor(0, i); + if (bootloader) { + oled_write_P(PSTR("Awaiting New Firmware "), false); + } else { + oled_write_P(PSTR("Rebooting "), false); + } + } + + oled_render_dirty(true); +} + +bool reboot = false; + +bool uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + + // Display a special message prior to rebooting... + if (keycode == QK_BOOT) { + reboot = true; + } + } + + return true; +} + +void shutdown_user(void) { + oled_render_boot(reboot); +} + +``` + ## Basic Configuration These configuration options should be placed in `config.h`. Example: @@ -275,7 +311,7 @@ Rotation on SH1106 and SH1107 is noticeably less efficient than on SSD1306, beca ## OLED API ```c -// OLED rotation enum values are flags +// OLED Rotation enum values are flags typedef enum { OLED_ROTATION_0 = 0, OLED_ROTATION_90 = 1, @@ -283,7 +319,7 @@ typedef enum { OLED_ROTATION_270 = 3, // OLED_ROTATION_90 | OLED_ROTATION_180 } oled_rotation_t; -// Initialize the OLED display, rotating the rendered output based on the define passed in. +// Initialize the oled display, rotating the rendered output based on the define passed in. // Returns true if the OLED was initialized successfully bool oled_init(oled_rotation_t rotation); @@ -301,8 +337,12 @@ bool oled_send_data(const uint8_t *data, uint16_t size); // Clears the display buffer, resets cursor position to 0, and sets the buffer to dirty for rendering void oled_clear(void); -// Renders the dirty chunks of the buffer to OLED display -void oled_render(void); +// Alias to oled_render_dirty to avoid a change in api. +#define oled_render() oled_render_dirty(false) + +// Renders all dirty blocks to the display at one time or a subset depending on the value of +// all. +void oled_render_dirty(bool all); // Moves cursor to character position indicated by column and line, wraps if out of bounds // Max column denoted by 'oled_max_chars()' and max lines by 'oled_max_lines()' functions @@ -333,8 +373,6 @@ void oled_write_ln(const char *data, bool invert); // Pans the buffer to the right (or left by passing true) by moving contents of the buffer // Useful for moving the screen in preparation for new drawing -// oled_scroll_left or oled_scroll_right should be preferred for all cases of moving a static -// image such as a logo or to avoid burn-in as it's much, much less cpu intensive void oled_pan(bool left); // Returns a pointer to the requested start index in the buffer plus remaining @@ -351,6 +389,7 @@ void oled_write_raw_byte(const char data, uint16_t index); // Coordinates start at top-left and go right and down for positive x and y void oled_write_pixel(uint8_t x, uint8_t y, bool on); +#if defined(__AVR__) // Writes a PROGMEM string to the buffer at current cursor position // Advances the cursor while writing, inverts the pixels if true // Remapped to call 'void oled_write(const char *data, bool invert);' on ARM @@ -364,6 +403,11 @@ void oled_write_ln_P(const char *data, bool invert); // Writes a PROGMEM string to the buffer at current cursor position void oled_write_raw_P(const char *data, uint16_t size); +#else +# define oled_write_P(data, invert) oled_write(data, invert) +# define oled_write_ln_P(data, invert) oled_write_ln(data, invert) +# define oled_write_raw_P(data, size) oled_write_raw(data, size) +#endif // defined(__AVR__) // Can be used to manually turn on the screen if it is off // Returns true if the screen was on or turns on diff --git a/drivers/oled/oled_driver.c b/drivers/oled/oled_driver.c index 8ff6e0426c..ab04ff3d40 100644 --- a/drivers/oled/oled_driver.c +++ b/drivers/oled/oled_driver.c @@ -448,7 +448,7 @@ static void rotate_90(const uint8_t *src, uint8_t *dest) { } } -void oled_render(void) { +void oled_render_dirty(bool all) { // Do we have work to do? oled_dirty &= OLED_ALL_BLOCKS_MASK; if (!oled_dirty || !oled_initialized || oled_scrolling) { @@ -460,7 +460,7 @@ void oled_render(void) { uint8_t update_start = 0; uint8_t num_processed = 0; - while (oled_dirty && num_processed++ < OLED_UPDATE_PROCESS_LIMIT) { // render all dirty blocks (up to the configured limit) + while (oled_dirty && (num_processed++ < OLED_UPDATE_PROCESS_LIMIT || all)) { // render all dirty blocks (up to the configured limit) // Find next dirty block while (!(oled_dirty & ((OLED_BLOCK_TYPE)1 << update_start))) { ++update_start; diff --git a/drivers/oled/oled_driver.h b/drivers/oled/oled_driver.h index 627a3da0ba..fba6633176 100644 --- a/drivers/oled/oled_driver.h +++ b/drivers/oled/oled_driver.h @@ -353,20 +353,24 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation); // Clears the display buffer, resets cursor position to 0, and sets the buffer to dirty for rendering void oled_clear(void); -// Renders the dirty chunks of the buffer to oled display -void oled_render(void); +// Alias to oled_render_dirty to avoid a change in api. +#define oled_render() oled_render_dirty(false) + +// Renders all dirty blocks to the display at one time or a subset depending on the value of +// all. +void oled_render_dirty(bool all); // Moves cursor to character position indicated by column and line, wraps if out of bounds // Max column denoted by 'oled_max_chars()' and max lines by 'oled_max_lines()' functions void oled_set_cursor(uint8_t col, uint8_t line); // Advances the cursor to the next page, writing ' ' if true -// Wraps to the begining when out of bounds +// Wraps to the beginning when out of bounds void oled_advance_page(bool clearPageRemainder); // Moves the cursor forward 1 character length // Advance page if there is not enough room for the next character -// Wraps to the begining when out of bounds +// Wraps to the beginning when out of bounds void oled_advance_char(void); // Writes a single character to the buffer at current cursor position @@ -433,10 +437,10 @@ bool oled_off(void); // not bool is_oled_on(void); -// Sets the brightness of the display +// Sets the brightness level of the display uint8_t oled_set_brightness(uint8_t level); -// Gets the current brightness of the display +// Gets the current brightness level of the display uint8_t oled_get_brightness(void); // Basically it's oled_render, but with timeout management and oled_task_user calling! @@ -458,12 +462,12 @@ void oled_scroll_set_area(uint8_t start_line, uint8_t end_line); // 0=2, 1=3, 2=4, 3=5, 4=25, 5=64, 6=128, 7=256 void oled_scroll_set_speed(uint8_t speed); -// Scrolls the entire display right +// Begin scrolling the entire display right // Returns true if the screen was scrolling or starts scrolling // NOTE: display contents cannot be changed while scrolling bool oled_scroll_right(void); -// Scrolls the entire display left +// Begin scrolling the entire display left // Returns true if the screen was scrolling or starts scrolling // NOTE: display contents cannot be changed while scrolling bool oled_scroll_left(void); From 02e6c04ac27cb9eea1130d8aed0665876a000cb8 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 14 Sep 2023 02:16:04 -0700 Subject: [PATCH 051/496] Krado Industries Promenade Layout Additions (#22014) * Add layout/matrix diagram [docs] * Rename `LAYOUT` to `LAYOUT_all` [refactor] * Correct key order [bugfix] * Add `LAYOUT_2x2u` [enhancement] * Add `LAYOUT_2x3u` [enhancement] * Add `LAYOUT_6u_space` [enhancement] * Add `LAYOUT_7u_space` [enhancement] * Touch-up `via` keymap Update keycode grid alignment to match the `default` keymap. [style] --- keyboards/kradoindustries/promenade/info.json | 298 +++++++++++++++++- .../promenade/keymaps/default/keymap.c | 4 +- .../promenade/keymaps/via/keymap.c | 6 +- .../promenade/matrix_diagram.md | 27 ++ 4 files changed, 327 insertions(+), 8 deletions(-) create mode 100644 keyboards/kradoindustries/promenade/matrix_diagram.md diff --git a/keyboards/kradoindustries/promenade/info.json b/keyboards/kradoindustries/promenade/info.json index a4d47b34f3..86330dbc2e 100644 --- a/keyboards/kradoindustries/promenade/info.json +++ b/keyboards/kradoindustries/promenade/info.json @@ -46,8 +46,11 @@ }, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [ {"matrix": [0, 0], "x":0, "y":0, "w":1.5}, {"matrix": [0, 1], "x":1.5, "y":0}, @@ -63,6 +66,7 @@ {"matrix": [0, 11], "x":11.5, "y":0}, {"matrix": [0, 12], "x":12.5, "y":0}, {"matrix": [0, 13], "x":13.5, "y":0, "w":1.5}, + {"matrix": [1, 0], "x":0, "y":1, "w":1.5}, {"matrix": [1, 1], "x":1.5, "y":1}, {"matrix": [1, 2], "x":2.5, "y":1}, @@ -77,6 +81,7 @@ {"matrix": [1, 11], "x":11.5, "y":1}, {"matrix": [1, 12], "x":12.5, "y":1}, {"matrix": [1, 13], "x":13.5, "y":1, "w":1.5}, + {"matrix": [2, 0], "x":0, "y":2, "w":1.5}, {"matrix": [2, 1], "x":1.5, "y":2}, {"matrix": [2, 2], "x":2.5, "y":2}, @@ -89,20 +94,22 @@ {"matrix": [2, 11], "x":11.5, "y":2}, {"matrix": [2, 12], "x":12.5, "y":2}, {"matrix": [2, 13], "x":13.5, "y":2, "w":1.5}, - {"matrix": [3, 6], "x":6.5, "y":2.5, "h":1.5}, - {"matrix": [3, 7], "x":7.5, "y":2.5, "h":1.5}, + {"matrix": [3, 0], "x":0, "y":3, "w":1.5}, {"matrix": [3, 1], "x":1.5, "y":3}, {"matrix": [3, 2], "x":2.5, "y":3}, {"matrix": [3, 3], "x":3.5, "y":3}, {"matrix": [3, 4], "x":4.5, "y":3}, {"matrix": [3, 5], "x":5.5, "y":3}, + {"matrix": [3, 6], "x":6.5, "y":2.5, "h":1.5}, + {"matrix": [3, 7], "x":7.5, "y":2.5, "h":1.5}, {"matrix": [3, 8], "x":8.5, "y":3}, {"matrix": [3, 9], "x":9.5, "y":3}, {"matrix": [3, 10], "x":10.5, "y":3}, {"matrix": [3, 11], "x":11.5, "y":3}, {"matrix": [3, 12], "x":12.5, "y":3}, {"matrix": [3, 13], "x":13.5, "y":3, "w":1.5}, + {"matrix": [4, 0], "x":0, "y":4, "w":1.5}, {"matrix": [4, 1], "x":1.5, "y":4}, {"matrix": [4, 2], "x":2.5, "y":4}, @@ -116,7 +123,292 @@ {"matrix": [4, 11], "x":11.5, "y":4}, {"matrix": [4, 12], "x":12.5, "y":4}, {"matrix": [4, 13], "x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_2x2u": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0, "w":1.5}, + {"matrix": [0, 1], "x":1.5, "y":0}, + {"matrix": [0, 2], "x":2.5, "y":0}, + {"matrix": [0, 3], "x":3.5, "y":0}, + {"matrix": [0, 4], "x":4.5, "y":0}, + {"matrix": [0, 5], "x":5.5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0, 10], "x":10.5, "y":0}, + {"matrix": [0, 11], "x":11.5, "y":0}, + {"matrix": [0, 12], "x":12.5, "y":0}, + {"matrix": [0, 13], "x":13.5, "y":0, "w":1.5}, + {"matrix": [1, 0], "x":0, "y":1, "w":1.5}, + {"matrix": [1, 1], "x":1.5, "y":1}, + {"matrix": [1, 2], "x":2.5, "y":1}, + {"matrix": [1, 3], "x":3.5, "y":1}, + {"matrix": [1, 4], "x":4.5, "y":1}, + {"matrix": [1, 5], "x":5.5, "y":1}, + {"matrix": [1, 6], "x":6.5, "y":1, "h":1.5}, + {"matrix": [1, 7], "x":7.5, "y":1, "h":1.5}, + {"matrix": [1, 8], "x":8.5, "y":1}, + {"matrix": [1, 9], "x":9.5, "y":1}, + {"matrix": [1, 10], "x":10.5, "y":1}, + {"matrix": [1, 11], "x":11.5, "y":1}, + {"matrix": [1, 12], "x":12.5, "y":1}, + {"matrix": [1, 13], "x":13.5, "y":1, "w":1.5}, + + {"matrix": [2, 0], "x":0, "y":2, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2}, + {"matrix": [2, 2], "x":2.5, "y":2}, + {"matrix": [2, 3], "x":3.5, "y":2}, + {"matrix": [2, 4], "x":4.5, "y":2}, + {"matrix": [2, 5], "x":5.5, "y":2}, + {"matrix": [2, 8], "x":8.5, "y":2}, + {"matrix": [2, 9], "x":9.5, "y":2}, + {"matrix": [2, 10], "x":10.5, "y":2}, + {"matrix": [2, 11], "x":11.5, "y":2}, + {"matrix": [2, 12], "x":12.5, "y":2}, + {"matrix": [2, 13], "x":13.5, "y":2, "w":1.5}, + + {"matrix": [3, 0], "x":0, "y":3, "w":1.5}, + {"matrix": [3, 1], "x":1.5, "y":3}, + {"matrix": [3, 2], "x":2.5, "y":3}, + {"matrix": [3, 3], "x":3.5, "y":3}, + {"matrix": [3, 4], "x":4.5, "y":3}, + {"matrix": [3, 5], "x":5.5, "y":3}, + {"matrix": [3, 6], "x":6.5, "y":2.5, "h":1.5}, + {"matrix": [3, 7], "x":7.5, "y":2.5, "h":1.5}, + {"matrix": [3, 8], "x":8.5, "y":3}, + {"matrix": [3, 9], "x":9.5, "y":3}, + {"matrix": [3, 10], "x":10.5, "y":3}, + {"matrix": [3, 11], "x":11.5, "y":3}, + {"matrix": [3, 12], "x":12.5, "y":3}, + {"matrix": [3, 13], "x":13.5, "y":3, "w":1.5}, + + {"matrix": [4, 0], "x":0, "y":4, "w":1.5}, + {"matrix": [4, 1], "x":1.5, "y":4}, + {"matrix": [4, 2], "x":2.5, "y":4}, + {"matrix": [4, 3], "x":3.5, "y":4}, + {"matrix": [4, 4], "x":4.5, "y":4}, + {"matrix": [4, 5], "x":5.5, "y":4, "w":2}, + {"matrix": [4, 8], "x":7.5, "y":4, "w":2}, + {"matrix": [4, 9], "x":9.5, "y":4}, + {"matrix": [4, 10], "x":10.5, "y":4}, + {"matrix": [4, 11], "x":11.5, "y":4}, + {"matrix": [4, 12], "x":12.5, "y":4}, + {"matrix": [4, 13], "x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_2x3u": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0, "w":1.5}, + {"matrix": [0, 1], "x":1.5, "y":0}, + {"matrix": [0, 2], "x":2.5, "y":0}, + {"matrix": [0, 3], "x":3.5, "y":0}, + {"matrix": [0, 4], "x":4.5, "y":0}, + {"matrix": [0, 5], "x":5.5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0, 10], "x":10.5, "y":0}, + {"matrix": [0, 11], "x":11.5, "y":0}, + {"matrix": [0, 12], "x":12.5, "y":0}, + {"matrix": [0, 13], "x":13.5, "y":0, "w":1.5}, + + {"matrix": [1, 0], "x":0, "y":1, "w":1.5}, + {"matrix": [1, 1], "x":1.5, "y":1}, + {"matrix": [1, 2], "x":2.5, "y":1}, + {"matrix": [1, 3], "x":3.5, "y":1}, + {"matrix": [1, 4], "x":4.5, "y":1}, + {"matrix": [1, 5], "x":5.5, "y":1}, + {"matrix": [1, 6], "x":6.5, "y":1, "h":1.5}, + {"matrix": [1, 7], "x":7.5, "y":1, "h":1.5}, + {"matrix": [1, 8], "x":8.5, "y":1}, + {"matrix": [1, 9], "x":9.5, "y":1}, + {"matrix": [1, 10], "x":10.5, "y":1}, + {"matrix": [1, 11], "x":11.5, "y":1}, + {"matrix": [1, 12], "x":12.5, "y":1}, + {"matrix": [1, 13], "x":13.5, "y":1, "w":1.5}, + + {"matrix": [2, 0], "x":0, "y":2, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2}, + {"matrix": [2, 2], "x":2.5, "y":2}, + {"matrix": [2, 3], "x":3.5, "y":2}, + {"matrix": [2, 4], "x":4.5, "y":2}, + {"matrix": [2, 5], "x":5.5, "y":2}, + {"matrix": [2, 8], "x":8.5, "y":2}, + {"matrix": [2, 9], "x":9.5, "y":2}, + {"matrix": [2, 10], "x":10.5, "y":2}, + {"matrix": [2, 11], "x":11.5, "y":2}, + {"matrix": [2, 12], "x":12.5, "y":2}, + {"matrix": [2, 13], "x":13.5, "y":2, "w":1.5}, + + {"matrix": [3, 0], "x":0, "y":3, "w":1.5}, + {"matrix": [3, 1], "x":1.5, "y":3}, + {"matrix": [3, 2], "x":2.5, "y":3}, + {"matrix": [3, 3], "x":3.5, "y":3}, + {"matrix": [3, 4], "x":4.5, "y":3}, + {"matrix": [3, 5], "x":5.5, "y":3}, + {"matrix": [3, 6], "x":6.5, "y":2.5, "h":1.5}, + {"matrix": [3, 7], "x":7.5, "y":2.5, "h":1.5}, + {"matrix": [3, 8], "x":8.5, "y":3}, + {"matrix": [3, 9], "x":9.5, "y":3}, + {"matrix": [3, 10], "x":10.5, "y":3}, + {"matrix": [3, 11], "x":11.5, "y":3}, + {"matrix": [3, 12], "x":12.5, "y":3}, + {"matrix": [3, 13], "x":13.5, "y":3, "w":1.5}, + + {"matrix": [4, 0], "x":0, "y":4, "w":1.5}, + {"matrix": [4, 1], "x":1.5, "y":4}, + {"matrix": [4, 2], "x":2.5, "y":4}, + {"matrix": [4, 3], "x":3.5, "y":4}, + {"matrix": [4, 5], "x":4.5, "y":4, "w":3}, + {"matrix": [4, 8], "x":7.5, "y":4, "w":3}, + {"matrix": [4, 10], "x":10.5, "y":4}, + {"matrix": [4, 11], "x":11.5, "y":4}, + {"matrix": [4, 12], "x":12.5, "y":4}, + {"matrix": [4, 13], "x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_6u_space": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0, "w":1.5}, + {"matrix": [0, 1], "x":1.5, "y":0}, + {"matrix": [0, 2], "x":2.5, "y":0}, + {"matrix": [0, 3], "x":3.5, "y":0}, + {"matrix": [0, 4], "x":4.5, "y":0}, + {"matrix": [0, 5], "x":5.5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0, 10], "x":10.5, "y":0}, + {"matrix": [0, 11], "x":11.5, "y":0}, + {"matrix": [0, 12], "x":12.5, "y":0}, + {"matrix": [0, 13], "x":13.5, "y":0, "w":1.5}, + + {"matrix": [1, 0], "x":0, "y":1, "w":1.5}, + {"matrix": [1, 1], "x":1.5, "y":1}, + {"matrix": [1, 2], "x":2.5, "y":1}, + {"matrix": [1, 3], "x":3.5, "y":1}, + {"matrix": [1, 4], "x":4.5, "y":1}, + {"matrix": [1, 5], "x":5.5, "y":1}, + {"matrix": [1, 6], "x":6.5, "y":1, "h":1.5}, + {"matrix": [1, 7], "x":7.5, "y":1, "h":1.5}, + {"matrix": [1, 8], "x":8.5, "y":1}, + {"matrix": [1, 9], "x":9.5, "y":1}, + {"matrix": [1, 10], "x":10.5, "y":1}, + {"matrix": [1, 11], "x":11.5, "y":1}, + {"matrix": [1, 12], "x":12.5, "y":1}, + {"matrix": [1, 13], "x":13.5, "y":1, "w":1.5}, + + {"matrix": [2, 0], "x":0, "y":2, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2}, + {"matrix": [2, 2], "x":2.5, "y":2}, + {"matrix": [2, 3], "x":3.5, "y":2}, + {"matrix": [2, 4], "x":4.5, "y":2}, + {"matrix": [2, 5], "x":5.5, "y":2}, + {"matrix": [2, 8], "x":8.5, "y":2}, + {"matrix": [2, 9], "x":9.5, "y":2}, + {"matrix": [2, 10], "x":10.5, "y":2}, + {"matrix": [2, 11], "x":11.5, "y":2}, + {"matrix": [2, 12], "x":12.5, "y":2}, + {"matrix": [2, 13], "x":13.5, "y":2, "w":1.5}, + + {"matrix": [3, 0], "x":0, "y":3, "w":1.5}, + {"matrix": [3, 1], "x":1.5, "y":3}, + {"matrix": [3, 2], "x":2.5, "y":3}, + {"matrix": [3, 3], "x":3.5, "y":3}, + {"matrix": [3, 4], "x":4.5, "y":3}, + {"matrix": [3, 5], "x":5.5, "y":3}, + {"matrix": [3, 6], "x":6.5, "y":2.5, "h":1.5}, + {"matrix": [3, 7], "x":7.5, "y":2.5, "h":1.5}, + {"matrix": [3, 8], "x":8.5, "y":3}, + {"matrix": [3, 9], "x":9.5, "y":3}, + {"matrix": [3, 10], "x":10.5, "y":3}, + {"matrix": [3, 11], "x":11.5, "y":3}, + {"matrix": [3, 12], "x":12.5, "y":3}, + {"matrix": [3, 13], "x":13.5, "y":3, "w":1.5}, + + {"matrix": [4, 0], "x":0, "y":4, "w":1.5}, + {"matrix": [4, 1], "x":1.5, "y":4}, + {"matrix": [4, 2], "x":2.5, "y":4}, + {"matrix": [4, 3], "x":3.5, "y":4}, + {"matrix": [4, 6], "x":4.5, "y":4, "w":6}, + {"matrix": [4, 10], "x":10.5, "y":4}, + {"matrix": [4, 11], "x":11.5, "y":4}, + {"matrix": [4, 12], "x":12.5, "y":4}, + {"matrix": [4, 13], "x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_7u_space": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0, "w":1.5}, + {"matrix": [0, 1], "x":1.5, "y":0}, + {"matrix": [0, 2], "x":2.5, "y":0}, + {"matrix": [0, 3], "x":3.5, "y":0}, + {"matrix": [0, 4], "x":4.5, "y":0}, + {"matrix": [0, 5], "x":5.5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0, 10], "x":10.5, "y":0}, + {"matrix": [0, 11], "x":11.5, "y":0}, + {"matrix": [0, 12], "x":12.5, "y":0}, + {"matrix": [0, 13], "x":13.5, "y":0, "w":1.5}, + + {"matrix": [1, 0], "x":0, "y":1, "w":1.5}, + {"matrix": [1, 1], "x":1.5, "y":1}, + {"matrix": [1, 2], "x":2.5, "y":1}, + {"matrix": [1, 3], "x":3.5, "y":1}, + {"matrix": [1, 4], "x":4.5, "y":1}, + {"matrix": [1, 5], "x":5.5, "y":1}, + {"matrix": [1, 6], "x":6.5, "y":1, "h":1.5}, + {"matrix": [1, 7], "x":7.5, "y":1, "h":1.5}, + {"matrix": [1, 8], "x":8.5, "y":1}, + {"matrix": [1, 9], "x":9.5, "y":1}, + {"matrix": [1, 10], "x":10.5, "y":1}, + {"matrix": [1, 11], "x":11.5, "y":1}, + {"matrix": [1, 12], "x":12.5, "y":1}, + {"matrix": [1, 13], "x":13.5, "y":1, "w":1.5}, + + {"matrix": [2, 0], "x":0, "y":2, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2}, + {"matrix": [2, 2], "x":2.5, "y":2}, + {"matrix": [2, 3], "x":3.5, "y":2}, + {"matrix": [2, 4], "x":4.5, "y":2}, + {"matrix": [2, 5], "x":5.5, "y":2}, + {"matrix": [2, 8], "x":8.5, "y":2}, + {"matrix": [2, 9], "x":9.5, "y":2}, + {"matrix": [2, 10], "x":10.5, "y":2}, + {"matrix": [2, 11], "x":11.5, "y":2}, + {"matrix": [2, 12], "x":12.5, "y":2}, + {"matrix": [2, 13], "x":13.5, "y":2, "w":1.5}, + + {"matrix": [3, 0], "x":0, "y":3, "w":1.5}, + {"matrix": [3, 1], "x":1.5, "y":3}, + {"matrix": [3, 2], "x":2.5, "y":3}, + {"matrix": [3, 3], "x":3.5, "y":3}, + {"matrix": [3, 4], "x":4.5, "y":3}, + {"matrix": [3, 5], "x":5.5, "y":3}, + {"matrix": [3, 6], "x":6.5, "y":2.5, "h":1.5}, + {"matrix": [3, 7], "x":7.5, "y":2.5, "h":1.5}, + {"matrix": [3, 8], "x":8.5, "y":3}, + {"matrix": [3, 9], "x":9.5, "y":3}, + {"matrix": [3, 10], "x":10.5, "y":3}, + {"matrix": [3, 11], "x":11.5, "y":3}, + {"matrix": [3, 12], "x":12.5, "y":3}, + {"matrix": [3, 13], "x":13.5, "y":3, "w":1.5}, + + {"matrix": [4, 0], "x":0, "y":4, "w":1.5}, + {"matrix": [4, 1], "x":1.5, "y":4}, + {"matrix": [4, 2], "x":2.5, "y":4, "w":1.5}, + {"matrix": [4, 6], "x":4, "y":4, "w":7}, + {"matrix": [4, 11], "x":11, "y":4, "w":1.5}, + {"matrix": [4, 12], "x":12.5, "y":4}, + {"matrix": [4, 13], "x":13.5, "y":4, "w":1.5} ] } } diff --git a/keyboards/kradoindustries/promenade/keymaps/default/keymap.c b/keyboards/kradoindustries/promenade/keymaps/default/keymap.c index 42e606c149..aef0f28161 100644 --- a/keyboards/kradoindustries/promenade/keymaps/default/keymap.c +++ b/keyboards/kradoindustries/promenade/keymaps/default/keymap.c @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | LCTRL | LGUI | FN | LALT | SPACE | SPACE | SPACE | SPACE | SPACE | LEFT | DOWN | UP | RIGHT | RCTRL | * '-----------------------------------------------------------------------------------------------------------------------------' */ - [_BASE] = LAYOUT( + [_BASE] = LAYOUT_all( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, @@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | | | Reset | * '-----------------------------------------------------------------------------------------------------------------------------' */ - [_FN] = LAYOUT( + [_FN] = LAYOUT_all( 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_DEL, _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, _______, _______, _______, QK_BOOT, diff --git a/keyboards/kradoindustries/promenade/keymaps/via/keymap.c b/keyboards/kradoindustries/promenade/keymaps/via/keymap.c index 8797471b4c..aef0f28161 100644 --- a/keyboards/kradoindustries/promenade/keymaps/via/keymap.c +++ b/keyboards/kradoindustries/promenade/keymaps/via/keymap.c @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | LCTRL | LGUI | FN | LALT | SPACE | SPACE | SPACE | SPACE | SPACE | LEFT | DOWN | UP | RIGHT | RCTRL | * '-----------------------------------------------------------------------------------------------------------------------------' */ - [_BASE] = LAYOUT( + [_BASE] = LAYOUT_all( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, @@ -56,10 +56,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | | | Reset | * '-----------------------------------------------------------------------------------------------------------------------------' */ - [_FN] = LAYOUT( + [_FN] = LAYOUT_all( 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_DEL, _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, _______, _______, _______, QK_BOOT, + _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSLS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT ) diff --git a/keyboards/kradoindustries/promenade/matrix_diagram.md b/keyboards/kradoindustries/promenade/matrix_diagram.md new file mode 100644 index 0000000000..086471b8b9 --- /dev/null +++ b/keyboards/kradoindustries/promenade/matrix_diagram.md @@ -0,0 +1,27 @@ +# Matrix Diagram for krado industries Promenade + +``` +┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │ +├─────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼─────┤ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ +├─────┼───┼───┼───┼───┼───┤ │ ├───┼───┼───┼───┼───┼─────┤ +│20 │21 │22 │23 │24 │25 ├───┼───┤28 │29 │2A │2B │2C │2D │ +├─────┼───┼───┼───┼───┼───┤36 │37 ├───┼───┼───┼───┼───┼─────┤ +│30 │31 │32 │33 │34 │35 │ │ │38 │39 │3A │3B │3C │3D │ +├─────┼───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┼───┼─────┤ +│40 │41 │42 │43 │44 │45 │46 │48 │49 │4A │4B │4C │4D │ +└─────┴───┴───┴───┴───┴───┴───────┴───┴───┴───┴───┴───┴─────┘ +┌─────┬───┬───┬───┬───┬───────┬───────┬───┬───┬───┬───┬─────┐ +│40 │41 │42 │43 │44 │45 │48 │49 │4A │4B │4C │4D │ 2x2u +└─────┴───┴───┴───┴───┴───────┴───────┴───┴───┴───┴───┴─────┘ +┌─────┬───┬───┬───┬───────────┬───────────┬───┬───┬───┬─────┐ +│40 │41 │42 │43 │45 │48 │4A │4B │4C │4D │ 2x3u +└─────┴───┴───┴───┴───────────┴───────────┴───┴───┴───┴─────┘ +┌─────┬───┬───┬───┬───────────────────────┬───┬───┬───┬─────┐ +│40 │41 │42 │43 │46 │4A │4B │4C │4D │ 6u Space +└─────┴───┴───┴───┴───────────────────────┴───┴───┴───┴─────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│40 │41 │42 │46 │4B │4C │4D │ 7u Space +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` From 78eb69ead5a654179692d980175ea0013837854c Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 14 Sep 2023 02:48:09 -0700 Subject: [PATCH 052/496] Linworks Fave60a Community Layout Support (#22015) * Friendly-format `info.json` [style] * Correct layout data [chore] * Add layout/matrix diagram [docs] * Rename `LAYOUT` to `LAYOUT_60_tsangan_hhkb` [refactor] * Add `LAYOUT_60_ansi_tsangan` [enhancement] * Enable Community Layout support [enhancement] --- keyboards/linworks/fave60a/info.json | 105 +++++++++++++++--- .../linworks/fave60a/keymaps/default/keymap.c | 4 +- .../linworks/fave60a/keymaps/via/keymap.c | 4 +- keyboards/linworks/fave60a/matrix_diagram.md | 21 ++++ 4 files changed, 117 insertions(+), 17 deletions(-) create mode 100644 keyboards/linworks/fave60a/matrix_diagram.md diff --git a/keyboards/linworks/fave60a/info.json b/keyboards/linworks/fave60a/info.json index b7753c2fce..97b50f7e82 100644 --- a/keyboards/linworks/fave60a/info.json +++ b/keyboards/linworks/fave60a/info.json @@ -121,8 +121,15 @@ "pid": "0x000C", "vid": "0x4C58" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_60_tsangan_hhkb" + }, + "community_layouts": [ + "60_tsangan_hhkb", + "60_ansi_tsangan" + ], "layouts": { - "LAYOUT": { + "LAYOUT_60_tsangan_hhkb": { "layout": [ { "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 }, { "label": "!", "matrix": [0, 1], "x": 1, "y": 0 }, @@ -139,7 +146,8 @@ { "label": "+", "matrix": [0, 12], "x": 12, "y": 0 }, { "label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0 }, { "label": "K14", "matrix": [0, 14], "x": 14, "y": 0 }, - { "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + + { "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5 }, { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1 }, { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1 }, { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1 }, @@ -152,8 +160,9 @@ { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1 }, { "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1 }, { "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1 }, - { "label": "|", "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, - { "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5 }, + + { "label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 }, { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2 }, { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2 }, { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2 }, @@ -165,11 +174,12 @@ { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2 }, { "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2 }, { "label": "\"", "matrix": [2, 11], "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": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25 }, + + { "label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25 }, { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3 }, { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3 }, - { "label": "C", "matrix": [3, 4], "x": 3, "y": 3 }, + { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3 }, { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3 }, { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3 }, { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3 }, @@ -177,15 +187,84 @@ { "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3 }, { "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3 }, { "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3 }, - { "label": "Shift", "matrix": [3, 13], "w": 1.75, "x": 12.25, "y": 3 }, + { "label": "Shift", "matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75 }, { "label": "K54", "matrix": [3, 14], "x": 14, "y": 3 }, - { "label": "Ctrl", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + + { "label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5 }, { "label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4 }, - { "label": "Alt", "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, - { "label": "K58", "matrix": [4, 6], "w": 7, "x": 4, "y": 4 }, - { "label": "Alt", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5 }, + { "label": "K58", "matrix": [4, 6], "x": 4, "y": 4, "w": 7 }, + { "label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5 }, { "label": "Fn", "matrix": [4, 12], "x": 12.5, "y": 4 }, - { "label": "Ctrl", "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 } + { "label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5 } + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + { "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "!", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "@", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "#", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "$", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "%", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "^", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "&", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "*", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "(", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": ")", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "_", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "+", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2 }, + + { "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5 }, + { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5 }, + + { "label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 }, + { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25 }, + + { "label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25 }, + { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "Shift", "matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75 }, + + { "label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5 }, + { "label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5 }, + { "label": "K58", "matrix": [4, 6], "x": 4, "y": 4, "w": 7 }, + { "label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5 }, + { "label": "Fn", "matrix": [4, 12], "x": 12.5, "y": 4 }, + { "label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5 } ] } } diff --git a/keyboards/linworks/fave60a/keymaps/default/keymap.c b/keyboards/linworks/fave60a/keymaps/default/keymap.c index 22e9c5f782..c77f1b4143 100644 --- a/keyboards/linworks/fave60a/keymaps/default/keymap.c +++ b/keyboards/linworks/fave60a/keymaps/default/keymap.c @@ -16,14 +16,14 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_60_tsangan_hhkb( KC_ESC, 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_BSPC, KC_TRNS, 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL ), - [1] = LAYOUT( + [1] = LAYOUT_60_tsangan_hhkb( KC_TRNS, 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_DEL, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_DEL, KC_TRNS, diff --git a/keyboards/linworks/fave60a/keymaps/via/keymap.c b/keyboards/linworks/fave60a/keymaps/via/keymap.c index 22e9c5f782..c77f1b4143 100644 --- a/keyboards/linworks/fave60a/keymaps/via/keymap.c +++ b/keyboards/linworks/fave60a/keymaps/via/keymap.c @@ -16,14 +16,14 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_60_tsangan_hhkb( KC_ESC, 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_BSPC, KC_TRNS, 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL ), - [1] = LAYOUT( + [1] = LAYOUT_60_tsangan_hhkb( KC_TRNS, 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_DEL, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_DEL, KC_TRNS, diff --git a/keyboards/linworks/fave60a/matrix_diagram.md b/keyboards/linworks/fave60a/matrix_diagram.md new file mode 100644 index 0000000000..ccf0002be3 --- /dev/null +++ b/keyboards/linworks/fave60a/matrix_diagram.md @@ -0,0 +1,21 @@ +# Matrix Diagram for Lx3 fave60a + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ +│30 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │3E │ +├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ +│40 │41 │42 │46 │4B │4C │4D │ +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ + ┌──────────┐ + 2.75u RShift │3D │ + └──────────┘ +``` From 9c2c96a20e503e18c0a775f3f5f0304899396537 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Thu, 14 Sep 2023 10:17:15 -0700 Subject: [PATCH 053/496] [Bug] Fix default layer value in eeconfig_init (#21909) Co-authored-by: Ryan --- quantum/eeconfig.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/quantum/eeconfig.c b/quantum/eeconfig.c index 84de025f0e..4579d67c28 100644 --- a/quantum/eeconfig.c +++ b/quantum/eeconfig.c @@ -49,8 +49,8 @@ void eeconfig_init_quantum(void) { eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); eeprom_update_byte(EECONFIG_DEBUG, 0); - eeprom_update_byte(EECONFIG_DEFAULT_LAYER, 0); - default_layer_state = 0; + default_layer_state = (layer_state_t)1 << 0; + eeprom_update_byte(EECONFIG_DEFAULT_LAYER, default_layer_state); // Enable oneshot and autocorrect by default: 0b0001 0100 0000 0000 eeprom_update_word(EECONFIG_KEYMAP, 0x1400); eeprom_update_byte(EECONFIG_BACKLIGHT, 0); From cfe52b6e6e9815cc31e3b53c049116037538ffa8 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 14 Sep 2023 10:20:14 -0700 Subject: [PATCH 054/496] Maze Studio Jocker 1800 Layout Additions (#22016) * Add layout/matrix diagram [docs] * Rename `LAYOUT` to `LAYOUT_ansi_split_bs` [refactor] * Add `LAYOUT_ansi` [enhancement] * Add `LAYOUT_ansi_wkl_split_bs` [enhancement] * Add `LAYOUT_ansi_wkl` [enhancement] --- keyboards/mazestudio/jocker/info.json | 340 +++++++++++++++++- .../jocker/keymaps/default/keymap.c | 2 +- .../mazestudio/jocker/keymaps/via/keymap.c | 2 +- keyboards/mazestudio/jocker/matrix_diagram.md | 22 ++ 4 files changed, 361 insertions(+), 5 deletions(-) create mode 100644 keyboards/mazestudio/jocker/matrix_diagram.md diff --git a/keyboards/mazestudio/jocker/info.json b/keyboards/mazestudio/jocker/info.json index 5c5d4d6c08..7257866f21 100644 --- a/keyboards/mazestudio/jocker/info.json +++ b/keyboards/mazestudio/jocker/info.json @@ -32,9 +32,122 @@ "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "C7", "C6", "B2", "B3"], "rows": ["B1", "B0", "D1", "D0", "D5", "D3", "B7", "D2", "D4", "D6", "B4", "D7"] }, - + "layout_aliases": { + "LAYOUT": "LAYOUT_ansi_split_bs" + }, "layouts": { - "LAYOUT": { + "LAYOUT_ansi": { + "layout": [ + {"label": "Esc", "matrix": [1,0], "x":0, "y":0}, + {"label": "F1", "matrix": [0,0], "x":1.25, "y":0}, + {"label": "F2", "matrix": [1,1], "x":2.25, "y":0}, + {"label": "F3", "matrix": [0,1], "x":3.25, "y":0}, + {"label": "F4", "matrix": [1,2], "x":4.25, "y":0}, + {"label": "F5", "matrix": [0,2], "x":5.5, "y":0}, + {"label": "F6", "matrix": [1,3], "x":6.5, "y":0}, + {"label": "F7", "matrix": [0,3], "x":7.5, "y":0}, + {"label": "F8", "matrix": [1,4], "x":8.5, "y":0}, + {"label": "F9", "matrix": [1,5], "x":9.75, "y":0}, + {"label": "F10", "matrix": [0,5], "x":10.75, "y":0}, + {"label": "F11", "matrix": [1,6], "x":11.75, "y":0}, + {"label": "F12", "matrix": [0,6], "x":12.75, "y":0}, + {"label": "F13", "matrix": [1,7], "x":14, "y":0}, + {"label": "Scroll Lock", "matrix": [0,7], "x":15.25, "y":0}, + {"label": "Pause Break", "matrix": [1,8], "x":16.5, "y":0}, + {"label": "Insert", "matrix": [0,8], "x":17.5, "y":0}, + {"label": "Home", "matrix": [1,9], "x":18.5, "y":0}, + {"label": "Print Screen", "matrix": [0,9], "x":19.5, "y":0}, + + {"label": "~", "matrix": [3,0], "x":0, "y":1.25}, + {"label": "1", "matrix": [2,0], "x":1, "y":1.25}, + {"label": "2", "matrix": [3,1], "x":2, "y":1.25}, + {"label": "3", "matrix": [2,1], "x":3, "y":1.25}, + {"label": "4", "matrix": [3,2], "x":4, "y":1.25}, + {"label": "5", "matrix": [2,2], "x":5, "y":1.25}, + {"label": "6", "matrix": [3,3], "x":6, "y":1.25}, + {"label": "7", "matrix": [2,3], "x":7, "y":1.25}, + {"label": "8", "matrix": [3,4], "x":8, "y":1.25}, + {"label": "9", "matrix": [2,4], "x":9, "y":1.25}, + {"label": "0", "matrix": [3,5], "x":10, "y":1.25}, + {"label": "-", "matrix": [2,5], "x":11, "y":1.25}, + {"label": "=", "matrix": [3,6], "x":12, "y":1.25}, + {"label": "Delete", "matrix": [3,7], "x":13, "y":1.25, "w":2}, + {"label": "Page Up", "matrix": [2,7], "x":15.25, "y":1.25}, + {"label": "Num Lock", "matrix": [3,8], "x":16.5, "y":1.25}, + {"label": "/", "matrix": [2,8], "x":17.5, "y":1.25}, + {"label": "*", "matrix": [3,9], "x":18.5, "y":1.25}, + {"label": "-", "matrix": [2,9], "x":19.5, "y":1.25}, + + {"label": "Tab", "matrix": [5,0], "x":0, "y":2.25, "w":1.5}, + {"label": "Q", "matrix": [4,0], "x":1.5, "y":2.25}, + {"label": "W", "matrix": [5,1], "x":2.5, "y":2.25}, + {"label": "E", "matrix": [4,1], "x":3.5, "y":2.25}, + {"label": "R", "matrix": [5,2], "x":4.5, "y":2.25}, + {"label": "T", "matrix": [4,2], "x":5.5, "y":2.25}, + {"label": "Y", "matrix": [5,3], "x":6.5, "y":2.25}, + {"label": "U", "matrix": [4,3], "x":7.5, "y":2.25}, + {"label": "I", "matrix": [5,4], "x":8.5, "y":2.25}, + {"label": "O", "matrix": [4,4], "x":9.5, "y":2.25}, + {"label": "P", "matrix": [5,5], "x":10.5, "y":2.25}, + {"label": "[", "matrix": [4,5], "x":11.5, "y":2.25}, + {"label": "]", "matrix": [5,6], "x":12.5, "y":2.25}, + {"label": "Backspace", "matrix": [5,7], "x":13.5, "y":2.25, "w":1.5}, + {"label": "Page Down", "matrix": [4,7], "x":15.25, "y":2.25}, + {"label": "Num 7", "matrix": [5,8], "x":16.5, "y":2.25}, + {"label": "Num 8", "matrix": [4,8], "x":17.5, "y":2.25}, + {"label": "Num 9", "matrix": [5,9], "x":18.5, "y":2.25}, + {"label": "Num Plus", "matrix": [4,9], "x":19.5, "y":2.25, "h":2}, + + {"label": "Caps Lock", "matrix": [7,0], "x":0, "y":3.25, "w":1.75}, + {"label": "A", "matrix": [6,0], "x":1.75, "y":3.25}, + {"label": "S", "matrix": [7,1], "x":2.75, "y":3.25}, + {"label": "D", "matrix": [6,1], "x":3.75, "y":3.25}, + {"label": "F", "matrix": [7,2], "x":4.75, "y":3.25}, + {"label": "G", "matrix": [6,2], "x":5.75, "y":3.25}, + {"label": "H", "matrix": [7,3], "x":6.75, "y":3.25}, + {"label": "J", "matrix": [6,3], "x":7.75, "y":3.25}, + {"label": "K", "matrix": [7,4], "x":8.75, "y":3.25}, + {"label": "L", "matrix": [6,4], "x":9.75, "y":3.25}, + {"label": ";", "matrix": [7,5], "x":10.75, "y":3.25}, + {"label": "'", "matrix": [6,5], "x":11.75, "y":3.25}, + {"label": "Enter", "matrix": [6,6], "x":12.75, "y":3.25, "w":2.25}, + {"label": "Delete", "matrix": [6,7], "x":15.25, "y":3.25}, + {"label": "Num 4", "matrix": [7,8], "x":16.5, "y":3.25}, + {"label": "Num 5", "matrix": [6,8], "x":17.5, "y":3.25}, + {"label": "Num 6", "matrix": [7,9], "x":18.5, "y":3.25}, + + {"label": "Left Shift", "matrix": [9,0], "x":0, "y":4.25, "w":2.25}, + {"label": "Z", "matrix": [8,0], "x":2.25, "y":4.25}, + {"label": "X", "matrix": [9,1], "x":3.25, "y":4.25}, + {"label": "C", "matrix": [8,1], "x":4.25, "y":4.25}, + {"label": "V", "matrix": [9,2], "x":5.25, "y":4.25}, + {"label": "B", "matrix": [8,2], "x":6.25, "y":4.25}, + {"label": "N", "matrix": [9,3], "x":7.25, "y":4.25}, + {"label": "M", "matrix": [8,3], "x":8.25, "y":4.25}, + {"label": ",", "matrix": [9,4], "x":9.25, "y":4.25}, + {"label": ".", "matrix": [8,4], "x":10.25, "y":4.25}, + {"label": "/", "matrix": [9,5], "x":11.25, "y":4.25}, + {"label": "Right Shift", "matrix": [9,6], "x":12.25, "y":4.25, "w":1.75}, + {"label": "Up", "matrix": [9,7], "x":14.25, "y":4.5}, + {"label": "Num 1", "matrix": [9,8], "x":16.5, "y":4.25}, + {"label": "Num 2", "matrix": [8,8], "x":17.5, "y":4.25}, + {"label": "Num 3", "matrix": [9,9], "x":18.5, "y":4.25}, + {"label": "Enter", "matrix": [8,9], "x":19.5, "y":4.25, "h":2}, + + {"label": "Left Ctrl", "matrix": [11,0], "x":0, "y":5.25, "w":1.25}, + {"label": "Left Win", "matrix": [10,0], "x":1.25, "y":5.25, "w":1.25}, + {"label": "Left Alt", "matrix": [11,1], "x":2.5, "y":5.25, "w":1.25}, + {"label": "Space", "matrix": [10,2], "x":3.75, "y":5.25, "w":6.25}, + {"label": "Right Alt", "matrix": [10,4], "x":10, "y":5.25, "w":1.5}, + {"label": "Right Ctrl", "matrix": [10,5], "x":11.5, "y":5.25, "w":1.5}, + {"label": "Left", "matrix": [10,6], "x":13.25, "y":5.5}, + {"label": "Down", "matrix": [11,7], "x":14.25, "y":5.5}, + {"label": "Right", "matrix": [10,7], "x":15.25, "y":5.5}, + {"label": "Num 0", "matrix": [10,8], "x":16.5, "y":5.25, "w":2}, + {"label": "Num Del", "matrix": [11,9], "x":18.5, "y":5.25} + ] + }, + "LAYOUT_ansi_split_bs": { "layout": [ {"label": "Esc", "matrix": [1,0], "x":0, "y":0}, {"label": "F1", "matrix": [0,0], "x":1.25, "y":0}, @@ -145,6 +258,227 @@ {"label": "Num 0", "matrix": [10,8], "x":16.5, "y":5.25, "w":2}, {"label": "Num Del", "matrix": [11,9], "x":18.5, "y":5.25} ] + }, + "LAYOUT_ansi_wkl": { + "layout": [ + {"label": "Esc", "matrix": [1,0], "x":0, "y":0}, + {"label": "F1", "matrix": [0,0], "x":1.25, "y":0}, + {"label": "F2", "matrix": [1,1], "x":2.25, "y":0}, + {"label": "F3", "matrix": [0,1], "x":3.25, "y":0}, + {"label": "F4", "matrix": [1,2], "x":4.25, "y":0}, + {"label": "F5", "matrix": [0,2], "x":5.5, "y":0}, + {"label": "F6", "matrix": [1,3], "x":6.5, "y":0}, + {"label": "F7", "matrix": [0,3], "x":7.5, "y":0}, + {"label": "F8", "matrix": [1,4], "x":8.5, "y":0}, + {"label": "F9", "matrix": [1,5], "x":9.75, "y":0}, + {"label": "F10", "matrix": [0,5], "x":10.75, "y":0}, + {"label": "F11", "matrix": [1,6], "x":11.75, "y":0}, + {"label": "F12", "matrix": [0,6], "x":12.75, "y":0}, + {"label": "F13", "matrix": [1,7], "x":14, "y":0}, + {"label": "Scroll Lock", "matrix": [0,7], "x":15.25, "y":0}, + {"label": "Pause Break", "matrix": [1,8], "x":16.5, "y":0}, + {"label": "Insert", "matrix": [0,8], "x":17.5, "y":0}, + {"label": "Home", "matrix": [1,9], "x":18.5, "y":0}, + {"label": "Print Screen", "matrix": [0,9], "x":19.5, "y":0}, + + {"label": "~", "matrix": [3,0], "x":0, "y":1.25}, + {"label": "1", "matrix": [2,0], "x":1, "y":1.25}, + {"label": "2", "matrix": [3,1], "x":2, "y":1.25}, + {"label": "3", "matrix": [2,1], "x":3, "y":1.25}, + {"label": "4", "matrix": [3,2], "x":4, "y":1.25}, + {"label": "5", "matrix": [2,2], "x":5, "y":1.25}, + {"label": "6", "matrix": [3,3], "x":6, "y":1.25}, + {"label": "7", "matrix": [2,3], "x":7, "y":1.25}, + {"label": "8", "matrix": [3,4], "x":8, "y":1.25}, + {"label": "9", "matrix": [2,4], "x":9, "y":1.25}, + {"label": "0", "matrix": [3,5], "x":10, "y":1.25}, + {"label": "-", "matrix": [2,5], "x":11, "y":1.25}, + {"label": "=", "matrix": [3,6], "x":12, "y":1.25}, + {"label": "Delete", "matrix": [3,7], "x":13, "y":1.25, "w":2}, + {"label": "Page Up", "matrix": [2,7], "x":15.25, "y":1.25}, + {"label": "Num Lock", "matrix": [3,8], "x":16.5, "y":1.25}, + {"label": "/", "matrix": [2,8], "x":17.5, "y":1.25}, + {"label": "*", "matrix": [3,9], "x":18.5, "y":1.25}, + {"label": "-", "matrix": [2,9], "x":19.5, "y":1.25}, + + {"label": "Tab", "matrix": [5,0], "x":0, "y":2.25, "w":1.5}, + {"label": "Q", "matrix": [4,0], "x":1.5, "y":2.25}, + {"label": "W", "matrix": [5,1], "x":2.5, "y":2.25}, + {"label": "E", "matrix": [4,1], "x":3.5, "y":2.25}, + {"label": "R", "matrix": [5,2], "x":4.5, "y":2.25}, + {"label": "T", "matrix": [4,2], "x":5.5, "y":2.25}, + {"label": "Y", "matrix": [5,3], "x":6.5, "y":2.25}, + {"label": "U", "matrix": [4,3], "x":7.5, "y":2.25}, + {"label": "I", "matrix": [5,4], "x":8.5, "y":2.25}, + {"label": "O", "matrix": [4,4], "x":9.5, "y":2.25}, + {"label": "P", "matrix": [5,5], "x":10.5, "y":2.25}, + {"label": "[", "matrix": [4,5], "x":11.5, "y":2.25}, + {"label": "]", "matrix": [5,6], "x":12.5, "y":2.25}, + {"label": "Backspace", "matrix": [5,7], "x":13.5, "y":2.25, "w":1.5}, + {"label": "Page Down", "matrix": [4,7], "x":15.25, "y":2.25}, + {"label": "Num 7", "matrix": [5,8], "x":16.5, "y":2.25}, + {"label": "Num 8", "matrix": [4,8], "x":17.5, "y":2.25}, + {"label": "Num 9", "matrix": [5,9], "x":18.5, "y":2.25}, + {"label": "Num Plus", "matrix": [4,9], "x":19.5, "y":2.25, "h":2}, + + {"label": "Caps Lock", "matrix": [7,0], "x":0, "y":3.25, "w":1.75}, + {"label": "A", "matrix": [6,0], "x":1.75, "y":3.25}, + {"label": "S", "matrix": [7,1], "x":2.75, "y":3.25}, + {"label": "D", "matrix": [6,1], "x":3.75, "y":3.25}, + {"label": "F", "matrix": [7,2], "x":4.75, "y":3.25}, + {"label": "G", "matrix": [6,2], "x":5.75, "y":3.25}, + {"label": "H", "matrix": [7,3], "x":6.75, "y":3.25}, + {"label": "J", "matrix": [6,3], "x":7.75, "y":3.25}, + {"label": "K", "matrix": [7,4], "x":8.75, "y":3.25}, + {"label": "L", "matrix": [6,4], "x":9.75, "y":3.25}, + {"label": ";", "matrix": [7,5], "x":10.75, "y":3.25}, + {"label": "'", "matrix": [6,5], "x":11.75, "y":3.25}, + {"label": "Enter", "matrix": [6,6], "x":12.75, "y":3.25, "w":2.25}, + {"label": "Delete", "matrix": [6,7], "x":15.25, "y":3.25}, + {"label": "Num 4", "matrix": [7,8], "x":16.5, "y":3.25}, + {"label": "Num 5", "matrix": [6,8], "x":17.5, "y":3.25}, + {"label": "Num 6", "matrix": [7,9], "x":18.5, "y":3.25}, + + {"label": "Left Shift", "matrix": [9,0], "x":0, "y":4.25, "w":2.25}, + {"label": "Z", "matrix": [8,0], "x":2.25, "y":4.25}, + {"label": "X", "matrix": [9,1], "x":3.25, "y":4.25}, + {"label": "C", "matrix": [8,1], "x":4.25, "y":4.25}, + {"label": "V", "matrix": [9,2], "x":5.25, "y":4.25}, + {"label": "B", "matrix": [8,2], "x":6.25, "y":4.25}, + {"label": "N", "matrix": [9,3], "x":7.25, "y":4.25}, + {"label": "M", "matrix": [8,3], "x":8.25, "y":4.25}, + {"label": ",", "matrix": [9,4], "x":9.25, "y":4.25}, + {"label": ".", "matrix": [8,4], "x":10.25, "y":4.25}, + {"label": "/", "matrix": [9,5], "x":11.25, "y":4.25}, + {"label": "Right Shift", "matrix": [9,6], "x":12.25, "y":4.25, "w":1.75}, + {"label": "Up", "matrix": [9,7], "x":14.25, "y":4.5}, + {"label": "Num 1", "matrix": [9,8], "x":16.5, "y":4.25}, + {"label": "Num 2", "matrix": [8,8], "x":17.5, "y":4.25}, + {"label": "Num 3", "matrix": [9,9], "x":18.5, "y":4.25}, + {"label": "Enter", "matrix": [8,9], "x":19.5, "y":4.25, "h":2}, + + {"label": "Left Ctrl", "matrix": [11,0], "x":0, "y":5.25, "w":1.5}, + {"label": "Left Win", "matrix": [10,0], "x":1.5, "y":5.25, "w":1.5}, + {"label": "Space", "matrix": [10,2], "x":3, "y":5.25, "w":7}, + {"label": "Right Alt", "matrix": [10,4], "x":10, "y":5.25, "w":1.5}, + {"label": "Right Ctrl", "matrix": [10,5], "x":11.5, "y":5.25, "w":1.5}, + {"label": "Left", "matrix": [10,6], "x":13.25, "y":5.5}, + {"label": "Down", "matrix": [11,7], "x":14.25, "y":5.5}, + {"label": "Right", "matrix": [10,7], "x":15.25, "y":5.5}, + {"label": "Num 0", "matrix": [10,8], "x":16.5, "y":5.25, "w":2}, + {"label": "Num Del", "matrix": [11,9], "x":18.5, "y":5.25} + ] + }, + "LAYOUT_ansi_wkl_split_bs": { + "layout": [ + {"label": "Esc", "matrix": [1,0], "x":0, "y":0}, + {"label": "F1", "matrix": [0,0], "x":1.25, "y":0}, + {"label": "F2", "matrix": [1,1], "x":2.25, "y":0}, + {"label": "F3", "matrix": [0,1], "x":3.25, "y":0}, + {"label": "F4", "matrix": [1,2], "x":4.25, "y":0}, + {"label": "F5", "matrix": [0,2], "x":5.5, "y":0}, + {"label": "F6", "matrix": [1,3], "x":6.5, "y":0}, + {"label": "F7", "matrix": [0,3], "x":7.5, "y":0}, + {"label": "F8", "matrix": [1,4], "x":8.5, "y":0}, + {"label": "F9", "matrix": [1,5], "x":9.75, "y":0}, + {"label": "F10", "matrix": [0,5], "x":10.75, "y":0}, + {"label": "F11", "matrix": [1,6], "x":11.75, "y":0}, + {"label": "F12", "matrix": [0,6], "x":12.75, "y":0}, + {"label": "F13", "matrix": [1,7], "x":14, "y":0}, + {"label": "Scroll Lock", "matrix": [0,7], "x":15.25, "y":0}, + {"label": "Pause Break", "matrix": [1,8], "x":16.5, "y":0}, + {"label": "Insert", "matrix": [0,8], "x":17.5, "y":0}, + {"label": "Home", "matrix": [1,9], "x":18.5, "y":0}, + {"label": "Print Screen", "matrix": [0,9], "x":19.5, "y":0}, + + {"label": "~", "matrix": [3,0], "x":0, "y":1.25}, + {"label": "1", "matrix": [2,0], "x":1, "y":1.25}, + {"label": "2", "matrix": [3,1], "x":2, "y":1.25}, + {"label": "3", "matrix": [2,1], "x":3, "y":1.25}, + {"label": "4", "matrix": [3,2], "x":4, "y":1.25}, + {"label": "5", "matrix": [2,2], "x":5, "y":1.25}, + {"label": "6", "matrix": [3,3], "x":6, "y":1.25}, + {"label": "7", "matrix": [2,3], "x":7, "y":1.25}, + {"label": "8", "matrix": [3,4], "x":8, "y":1.25}, + {"label": "9", "matrix": [2,4], "x":9, "y":1.25}, + {"label": "0", "matrix": [3,5], "x":10, "y":1.25}, + {"label": "-", "matrix": [2,5], "x":11, "y":1.25}, + {"label": "=", "matrix": [3,6], "x":12, "y":1.25}, + {"label": "|", "matrix": [2,6], "x":13, "y":1.25}, + {"label": "Delete", "matrix": [3,7], "x":14, "y":1.25}, + {"label": "Page Up", "matrix": [2,7], "x":15.25, "y":1.25}, + {"label": "Num Lock", "matrix": [3,8], "x":16.5, "y":1.25}, + {"label": "/", "matrix": [2,8], "x":17.5, "y":1.25}, + {"label": "*", "matrix": [3,9], "x":18.5, "y":1.25}, + {"label": "-", "matrix": [2,9], "x":19.5, "y":1.25}, + + {"label": "Tab", "matrix": [5,0], "x":0, "y":2.25, "w":1.5}, + {"label": "Q", "matrix": [4,0], "x":1.5, "y":2.25}, + {"label": "W", "matrix": [5,1], "x":2.5, "y":2.25}, + {"label": "E", "matrix": [4,1], "x":3.5, "y":2.25}, + {"label": "R", "matrix": [5,2], "x":4.5, "y":2.25}, + {"label": "T", "matrix": [4,2], "x":5.5, "y":2.25}, + {"label": "Y", "matrix": [5,3], "x":6.5, "y":2.25}, + {"label": "U", "matrix": [4,3], "x":7.5, "y":2.25}, + {"label": "I", "matrix": [5,4], "x":8.5, "y":2.25}, + {"label": "O", "matrix": [4,4], "x":9.5, "y":2.25}, + {"label": "P", "matrix": [5,5], "x":10.5, "y":2.25}, + {"label": "[", "matrix": [4,5], "x":11.5, "y":2.25}, + {"label": "]", "matrix": [5,6], "x":12.5, "y":2.25}, + {"label": "Backspace", "matrix": [5,7], "x":13.5, "y":2.25, "w":1.5}, + {"label": "Page Down", "matrix": [4,7], "x":15.25, "y":2.25}, + {"label": "Num 7", "matrix": [5,8], "x":16.5, "y":2.25}, + {"label": "Num 8", "matrix": [4,8], "x":17.5, "y":2.25}, + {"label": "Num 9", "matrix": [5,9], "x":18.5, "y":2.25}, + {"label": "Num Plus", "matrix": [4,9], "x":19.5, "y":2.25, "h":2}, + + {"label": "Caps Lock", "matrix": [7,0], "x":0, "y":3.25, "w":1.75}, + {"label": "A", "matrix": [6,0], "x":1.75, "y":3.25}, + {"label": "S", "matrix": [7,1], "x":2.75, "y":3.25}, + {"label": "D", "matrix": [6,1], "x":3.75, "y":3.25}, + {"label": "F", "matrix": [7,2], "x":4.75, "y":3.25}, + {"label": "G", "matrix": [6,2], "x":5.75, "y":3.25}, + {"label": "H", "matrix": [7,3], "x":6.75, "y":3.25}, + {"label": "J", "matrix": [6,3], "x":7.75, "y":3.25}, + {"label": "K", "matrix": [7,4], "x":8.75, "y":3.25}, + {"label": "L", "matrix": [6,4], "x":9.75, "y":3.25}, + {"label": ";", "matrix": [7,5], "x":10.75, "y":3.25}, + {"label": "'", "matrix": [6,5], "x":11.75, "y":3.25}, + {"label": "Enter", "matrix": [6,6], "x":12.75, "y":3.25, "w":2.25}, + {"label": "Delete", "matrix": [6,7], "x":15.25, "y":3.25}, + {"label": "Num 4", "matrix": [7,8], "x":16.5, "y":3.25}, + {"label": "Num 5", "matrix": [6,8], "x":17.5, "y":3.25}, + {"label": "Num 6", "matrix": [7,9], "x":18.5, "y":3.25}, + + {"label": "Left Shift", "matrix": [9,0], "x":0, "y":4.25, "w":2.25}, + {"label": "Z", "matrix": [8,0], "x":2.25, "y":4.25}, + {"label": "X", "matrix": [9,1], "x":3.25, "y":4.25}, + {"label": "C", "matrix": [8,1], "x":4.25, "y":4.25}, + {"label": "V", "matrix": [9,2], "x":5.25, "y":4.25}, + {"label": "B", "matrix": [8,2], "x":6.25, "y":4.25}, + {"label": "N", "matrix": [9,3], "x":7.25, "y":4.25}, + {"label": "M", "matrix": [8,3], "x":8.25, "y":4.25}, + {"label": ",", "matrix": [9,4], "x":9.25, "y":4.25}, + {"label": ".", "matrix": [8,4], "x":10.25, "y":4.25}, + {"label": "/", "matrix": [9,5], "x":11.25, "y":4.25}, + {"label": "Right Shift", "matrix": [9,6], "x":12.25, "y":4.25, "w":1.75}, + {"label": "Up", "matrix": [9,7], "x":14.25, "y":4.5}, + {"label": "Num 1", "matrix": [9,8], "x":16.5, "y":4.25}, + {"label": "Num 2", "matrix": [8,8], "x":17.5, "y":4.25}, + {"label": "Num 3", "matrix": [9,9], "x":18.5, "y":4.25}, + {"label": "Enter", "matrix": [8,9], "x":19.5, "y":4.25, "h":2}, + + {"label": "Left Ctrl", "matrix": [11,0], "x":0, "y":5.25, "w":1.5}, + {"label": "Left Win", "matrix": [10,0], "x":1.5, "y":5.25, "w":1.5}, + {"label": "Space", "matrix": [10,2], "x":3, "y":5.25, "w":7}, + {"label": "Right Alt", "matrix": [10,4], "x":10, "y":5.25, "w":1.5}, + {"label": "Right Ctrl", "matrix": [10,5], "x":11.5, "y":5.25, "w":1.5}, + {"label": "Left", "matrix": [10,6], "x":13.25, "y":5.5}, + {"label": "Down", "matrix": [11,7], "x":14.25, "y":5.5}, + {"label": "Right", "matrix": [10,7], "x":15.25, "y":5.5}, + {"label": "Num 0", "matrix": [10,8], "x":16.5, "y":5.25, "w":2}, + {"label": "Num Del", "matrix": [11,9], "x":18.5, "y":5.25} + ] } } -} \ No newline at end of file +} diff --git a/keyboards/mazestudio/jocker/keymaps/default/keymap.c b/keyboards/mazestudio/jocker/keymaps/default/keymap.c index b64c4a299f..4d4f46b2e6 100644 --- a/keyboards/mazestudio/jocker/keymaps/default/keymap.c +++ b/keyboards/mazestudio/jocker/keymaps/default/keymap.c @@ -4,7 +4,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_ansi_split_bs( KC_ESC, 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_F13, KC_SCRL, KC_PAUS, KC_INS, KC_HOME, KC_PSCR, KC_GRV, 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_BSLS, KC_DEL, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_BSPC, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, diff --git a/keyboards/mazestudio/jocker/keymaps/via/keymap.c b/keyboards/mazestudio/jocker/keymaps/via/keymap.c index b64c4a299f..4d4f46b2e6 100644 --- a/keyboards/mazestudio/jocker/keymaps/via/keymap.c +++ b/keyboards/mazestudio/jocker/keymaps/via/keymap.c @@ -4,7 +4,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_ansi_split_bs( KC_ESC, 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_F13, KC_SCRL, KC_PAUS, KC_INS, KC_HOME, KC_PSCR, KC_GRV, 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_BSLS, KC_DEL, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_BSPC, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, diff --git a/keyboards/mazestudio/jocker/matrix_diagram.md b/keyboards/mazestudio/jocker/matrix_diagram.md new file mode 100644 index 0000000000..d7f37a70f8 --- /dev/null +++ b/keyboards/mazestudio/jocker/matrix_diagram.md @@ -0,0 +1,22 @@ +# Matrix Diagram for Maze Studio Jocker 1800 + +``` +┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┐┌───┬───┬───┬───┐ +│10 ││00 │11 │01 │12 ││02 │13 │03 │14 ││15 │05 │16 │06 ││17 ││07 ││18 │08 │19 │09 │ +└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┘└───┴───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┐┌───┬───┬───┬───┐ ┌───────┐ +│30 │20 │31 │21 │32 │22 │33 │23 │34 │24 │35 │25 │36 │26 │37 ││27 ││38 │28 │39 │29 │ │37 │ 2u Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┤├───┼───┼───┼───┤ └───────┘ +│50 │40 │51 │41 │52 │42 │53 │43 │54 │44 │55 │45 │56 │57 ││47 ││58 │48 │59 │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤├───┤├───┼───┼───┤49 │ +│70 │60 │71 │61 │72 │62 │73 │63 │74 │64 │75 │65 │66 ││67 ││78 │68 │79 │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘└───┘├───┼───┼───┼───┤ +│90 │80 │91 │81 │92 │82 │93 │83 │94 │84 │95 │96 │┌───┐ │98 │88 │99 │ │ +├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┘│97 │ ├───┴───┼───┤89 │ +│B0 │A0 │B1 │A2 │A4 │A5 │┌───┼───┼───┐│A8 │B9 │ │ +└────┴────┴────┴────────────────────────┴─────┴─────┘│A6 │B7 │A7 │└───────┴───┴───┘ + └───┴───┴───┘ +┌─────┬─────┬───────────────────────────┬─────┬─────┐ +│B0 │A0 │A2 │A4 │A5 │ WKL +└─────┴─────┴───────────────────────────┴─────┴─────┘ +``` From 269c7b6e5b58aaa260dfa4e7e08884b1f26d598a Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 14 Sep 2023 10:57:44 -0700 Subject: [PATCH 055/496] Mechlovin Zed65 910 Layout Standardization (#22018) * Add layout/matrix diagram [docs] * Rename `LAYOUT_65_iso_tsangan_split_bs` to `LAYOUT_iso_split_bs` [refactor] * Rename `LAYOUT_65_ansi_tsangan` to `LAYOUT_ansi` [refactor] * Rename `LAYOUT_65_ansi_blocker_tsangan` to `LAYOUT_ansi_blocker_tsangan` [refactor] * Rename `LAYOUT_65_ansi_tsangan_split_bs` to `LAYOUT_all` [refactor] --- keyboards/mechlovin/zed65/910/info.json | 14 +++++++--- .../zed65/910/keymaps/default/keymap.c | 2 +- .../mechlovin/zed65/910/keymaps/via/keymap.c | 2 +- .../mechlovin/zed65/910/matrix_diagram.md | 27 +++++++++++++++++++ 4 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 keyboards/mechlovin/zed65/910/matrix_diagram.md diff --git a/keyboards/mechlovin/zed65/910/info.json b/keyboards/mechlovin/zed65/910/info.json index 7874c09e2d..d1de863c03 100644 --- a/keyboards/mechlovin/zed65/910/info.json +++ b/keyboards/mechlovin/zed65/910/info.json @@ -42,8 +42,14 @@ "pin": "A7", "driver": "spi" }, + "layout_aliases": { + "LAYOUT_65_iso_tsangan_split_bs": "LAYOUT_iso_split_bs", + "LAYOUT_65_ansi_tsangan": "LAYOUT_ansi", + "LAYOUT_65_ansi_blocker_tsangan": "LAYOUT_ansi_blocker_tsangan", + "LAYOUT_65_ansi_tsangan_split_bs": "LAYOUT_all" + }, "layouts": { - "LAYOUT_65_iso_tsangan_split_bs": { + "LAYOUT_iso_split_bs": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -120,7 +126,7 @@ {"matrix": [4, 14], "x": 15, "y": 4} ] }, - "LAYOUT_65_ansi_tsangan_split_bs": { + "LAYOUT_all": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -197,7 +203,7 @@ {"matrix": [4, 14], "x": 15, "y": 4} ] }, - "LAYOUT_65_ansi_tsangan": { + "LAYOUT_ansi": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -273,7 +279,7 @@ ] }, - "LAYOUT_65_ansi_blocker_tsangan": { + "LAYOUT_ansi_blocker_tsangan": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/mechlovin/zed65/910/keymaps/default/keymap.c b/keyboards/mechlovin/zed65/910/keymaps/default/keymap.c index 1c530e8420..f4c829bedd 100644 --- a/keyboards/mechlovin/zed65/910/keymaps/default/keymap.c +++ b/keyboards/mechlovin/zed65/910/keymaps/default/keymap.c @@ -18,7 +18,7 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_65_ansi_tsangan_split_bs( + [0] = LAYOUT_all( KC_ESC, 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_BSPC, KC_DEL, 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_PGUP, 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_ENT, KC_PGDN, diff --git a/keyboards/mechlovin/zed65/910/keymaps/via/keymap.c b/keyboards/mechlovin/zed65/910/keymaps/via/keymap.c index d41ff03472..80dee5ced0 100644 --- a/keyboards/mechlovin/zed65/910/keymaps/via/keymap.c +++ b/keyboards/mechlovin/zed65/910/keymaps/via/keymap.c @@ -18,7 +18,7 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_65_ansi_tsangan_split_bs( + [0] = LAYOUT_all( KC_ESC, 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_BSPC, KC_DEL, 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_PGUP, 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_ENT, KC_PGDN, diff --git a/keyboards/mechlovin/zed65/910/matrix_diagram.md b/keyboards/mechlovin/zed65/910/matrix_diagram.md new file mode 100644 index 0000000000..5cebdb1748 --- /dev/null +++ b/keyboards/mechlovin/zed65/910/matrix_diagram.md @@ -0,0 +1,27 @@ +# Matrix Diagram for Mechlovin Studio Zed65 910 Rev1 + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2C │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┐ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐2D │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │2E │ │1D │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ +│40 │41 │42 │46 │49 │4A │4B │4C │4D │4E │ +└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ +┌────────┐ ┌──────────┐ +│30 │ 2.25u LShift 2.75u RShift │3C │ +└────────┘ └──────────┘ +┌────┬────┬────┬────────────────────────┬────┬────┐ +│40 │41 │42 │46 │49 │4A │ Blocker +└────┴────┴────┴────────────────────────┴────┴────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┐ +│40 │41 │42 │46 │4A │ Blocker Tsangan +└─────┴───┴─────┴───────────────────────────┴─────┘ +``` From 294fc6caef704f5bf1eeb70c5176812c1a77adcb Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 14 Sep 2023 12:07:22 -0700 Subject: [PATCH 056/496] Mode M256-WS Community Layout Support (#22020) * Add layout/matrix diagram [docs] * Rename `LAYOUT` to `LAYOUT_all` [refactor] * Add `LAYOUT_65_ansi_blocker_split_bs` [enhancement] * Add `LAYOUT_65_ansi_blocker` [enhancement] * Add `LAYOUT_65_ansi_blocker_tsangan_split_bs` [enhancement] * Add `LAYOUT_65_ansi_blocker_tsangan` [enhancement] * Add `LAYOUT_65_iso_blocker_split_bs` [enhancement] * Add `LAYOUT_65_iso_blocker` [enhancement] * patch `LAYOUT_65_iso_blocker_split_bs` * patch `LAYOUT_65_iso_blocker` * Add `LAYOUT_65_iso_blocker_tsangan_split_bs` [enhancement] * Add `LAYOUT_65_iso_blocker_tsangan` [enhancement] * Enable Community Layout support [enhancement] --- keyboards/mode/m256ws/info.json | 619 +++++++++++++++++- .../mode/m256ws/keymaps/default/keymap.c | 4 +- keyboards/mode/m256ws/keymaps/via/keymap.c | 4 +- keyboards/mode/m256ws/matrix_diagram.md | 24 + 4 files changed, 646 insertions(+), 5 deletions(-) create mode 100644 keyboards/mode/m256ws/matrix_diagram.md diff --git a/keyboards/mode/m256ws/info.json b/keyboards/mode/m256ws/info.json index 8f837e316c..6a36d4af8e 100644 --- a/keyboards/mode/m256ws/info.json +++ b/keyboards/mode/m256ws/info.json @@ -43,8 +43,21 @@ "ws2812": { "pin": "B15" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, + "community_layouts": [ + "65_ansi_blocker", + "65_ansi_blocker_split_bs", + "65_ansi_blocker_tsangan", + "65_ansi_blocker_tsangan_split_bs", + "65_iso_blocker", + "65_iso_blocker_split_bs", + "65_iso_blocker_tsangan", + "65_iso_blocker_tsangan_split_bs" + ], "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1!", "matrix": [0, 1], "x": 1, "y": 0}, @@ -117,6 +130,610 @@ {"label": "Page Up", "matrix": [4, 14], "x": 15, "y": 1}, {"label": "Caps Lock", "matrix": [5, 0], "x": 0, "y": 2, "w": 1.75} ] + }, + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0)", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Delete", "matrix": [1, 14], "x": 15, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Page Up", "matrix": [4, 14], "x": 15, "y": 1}, + + {"label": "Caps Lock", "matrix": [5, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";:", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Page Down", "matrix": [2, 14], "x": 15, "y": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".>", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "End", "matrix": [3, 14], "x": 15, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 11], "x": 13, "y": 4}, + {"label": "\u2193", "matrix": [4, 12], "x": 14, "y": 4}, + {"label": "\u2192", "matrix": [4, 13], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_split_bs": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0)", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Backspace", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "Delete", "matrix": [1, 14], "x": 15, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Page Up", "matrix": [4, 14], "x": 15, "y": 1}, + + {"label": "Caps Lock", "matrix": [5, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";:", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Page Down", "matrix": [2, 14], "x": 15, "y": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".>", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "End", "matrix": [3, 14], "x": 15, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 11], "x": 13, "y": 4}, + {"label": "\u2193", "matrix": [4, 12], "x": 14, "y": 4}, + {"label": "\u2192", "matrix": [4, 13], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0)", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Delete", "matrix": [1, 14], "x": 15, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Page Up", "matrix": [4, 14], "x": 15, "y": 1}, + + {"label": "Caps Lock", "matrix": [5, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";:", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Page Down", "matrix": [2, 14], "x": 15, "y": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".>", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "End", "matrix": [3, 14], "x": 15, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "GUI", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Ctrl", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 11], "x": 13, "y": 4}, + {"label": "\u2193", "matrix": [4, 12], "x": 14, "y": 4}, + {"label": "\u2192", "matrix": [4, 13], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0)", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Backspace", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "Delete", "matrix": [1, 14], "x": 15, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Page Up", "matrix": [4, 14], "x": 15, "y": 1}, + + {"label": "Caps Lock", "matrix": [5, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";:", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Page Down", "matrix": [2, 14], "x": 15, "y": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".>", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "End", "matrix": [3, 14], "x": 15, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "GUI", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Ctrl", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 11], "x": 13, "y": 4}, + {"label": "\u2193", "matrix": [4, 12], "x": 14, "y": 4}, + {"label": "\u2192", "matrix": [4, 13], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2\"", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3\u00a3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0)", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Delete", "matrix": [1, 14], "x": 15, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Page Up", "matrix": [4, 14], "x": 15, "y": 1}, + + {"label": "Caps Lock", "matrix": [5, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";:", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'@", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "#~", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"label": "Page Down", "matrix": [2, 14], "x": 15, "y": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "\\|", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".>", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "End", "matrix": [3, 14], "x": 15, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 11], "x": 13, "y": 4}, + {"label": "\u2193", "matrix": [4, 12], "x": 14, "y": 4}, + {"label": "\u2192", "matrix": [4, 13], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_split_bs": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2\"", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3\u00a3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0)", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Backspace", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "Delete", "matrix": [1, 14], "x": 15, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Page Up", "matrix": [4, 14], "x": 15, "y": 1}, + + {"label": "Caps Lock", "matrix": [5, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";:", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'@", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "#~", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"label": "Page Down", "matrix": [2, 14], "x": 15, "y": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "\\|", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".>", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "End", "matrix": [3, 14], "x": 15, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 11], "x": 13, "y": 4}, + {"label": "\u2193", "matrix": [4, 12], "x": 14, "y": 4}, + {"label": "\u2192", "matrix": [4, 13], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2\"", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3\u00a3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0)", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Delete", "matrix": [1, 14], "x": 15, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Page Up", "matrix": [4, 14], "x": 15, "y": 1}, + + {"label": "Caps Lock", "matrix": [5, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";:", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'@", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "#~", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"label": "Page Down", "matrix": [2, 14], "x": 15, "y": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "\\|", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".>", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "End", "matrix": [3, 14], "x": 15, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "GUI", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Ctrl", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 11], "x": 13, "y": 4}, + {"label": "\u2193", "matrix": [4, 12], "x": 14, "y": 4}, + {"label": "\u2192", "matrix": [4, 13], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan_split_bs": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2\"", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3\u00a3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0)", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Backspace", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "Delete", "matrix": [1, 14], "x": 15, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Page Up", "matrix": [4, 14], "x": 15, "y": 1}, + + {"label": "Caps Lock", "matrix": [5, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";:", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'@", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "#~", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"label": "Page Down", "matrix": [2, 14], "x": 15, "y": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "\\|", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".>", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "End", "matrix": [3, 14], "x": 15, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "GUI", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Ctrl", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 11], "x": 13, "y": 4}, + {"label": "\u2193", "matrix": [4, 12], "x": 14, "y": 4}, + {"label": "\u2192", "matrix": [4, 13], "x": 15, "y": 4} + ] } } } diff --git a/keyboards/mode/m256ws/keymaps/default/keymap.c b/keyboards/mode/m256ws/keymaps/default/keymap.c index 03b49aac22..ab77f7af20 100644 --- a/keyboards/mode/m256ws/keymaps/default/keymap.c +++ b/keyboards/mode/m256ws/keymaps/default/keymap.c @@ -16,14 +16,14 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT( /* Base */ +[0] = LAYOUT_all( /* Base */ KC_ESC , 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_BSPC, KC_BSPC, 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_DEL , 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_PGDN, 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_RSFT, KC_UP , KC_END , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(1) , KC_LEFT, KC_DOWN, KC_RGHT, KC_PGUP, KC_CAPS ), -[1] = LAYOUT( +[1] = LAYOUT_all( QK_BOOT, 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_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_MUTE, 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_VOLD, diff --git a/keyboards/mode/m256ws/keymaps/via/keymap.c b/keyboards/mode/m256ws/keymaps/via/keymap.c index 03b49aac22..ab77f7af20 100644 --- a/keyboards/mode/m256ws/keymaps/via/keymap.c +++ b/keyboards/mode/m256ws/keymaps/via/keymap.c @@ -16,14 +16,14 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT( /* Base */ +[0] = LAYOUT_all( /* Base */ KC_ESC , 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_BSPC, KC_BSPC, 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_DEL , 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_PGDN, 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_RSFT, KC_UP , KC_END , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(1) , KC_LEFT, KC_DOWN, KC_RGHT, KC_PGUP, KC_CAPS ), -[1] = LAYOUT( +[1] = LAYOUT_all( QK_BOOT, 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_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_MUTE, 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_VOLD, diff --git a/keyboards/mode/m256ws/matrix_diagram.md b/keyboards/mode/m256ws/matrix_diagram.md new file mode 100644 index 0000000000..9d30315cdb --- /dev/null +++ b/keyboards/mode/m256ws/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for Mode Designs M256W-S + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │1E │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │4E │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐2D │ ISO Enter +│50 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │2E │ │2C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ +│40 │41 │42 │46 │49 │4A │ │4B │4C │4D │ +└────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ +┌────────┐ +│30 │ 2.25u LShift +└────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┐ +│40 │41 │42 │46 │4A │ Blocker Tsangan +└─────┴───┴─────┴───────────────────────────┴─────┘ +``` From 58c2dae32e58fbdc1a519aa2cf7b6eb563769193 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 14 Sep 2023 12:44:07 -0700 Subject: [PATCH 057/496] Mode M256-WH Community Layout Support (#22019) * Add layout/matrix diagram [docs] * Rename `LAYOUT` to `LAYOUT_65_ansi_blocker` [refactor] * Add `LAYOUT_65_ansi_blocker_tsangan` [enhancement] * Enable Community Layout support [enhancement] --- keyboards/mode/m256wh/info.json | 83 ++++++++++++++++++- .../mode/m256wh/keymaps/default/keymap.c | 4 +- keyboards/mode/m256wh/keymaps/via/keymap.c | 4 +- keyboards/mode/m256wh/matrix_diagram.md | 18 ++++ 4 files changed, 104 insertions(+), 5 deletions(-) create mode 100644 keyboards/mode/m256wh/matrix_diagram.md diff --git a/keyboards/mode/m256wh/info.json b/keyboards/mode/m256wh/info.json index 3e2d0eb276..6caaa754ed 100644 --- a/keyboards/mode/m256wh/info.json +++ b/keyboards/mode/m256wh/info.json @@ -40,8 +40,15 @@ "ws2812": { "pin": "B15" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_65_ansi_blocker" + }, + "community_layouts": [ + "65_ansi_blocker", + "65_ansi_blocker_tsangan" + ], "layouts": { - "LAYOUT": { + "LAYOUT_65_ansi_blocker": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "1!", "matrix": [0, 1], "x": 1, "y": 0}, @@ -111,6 +118,80 @@ {"label": "\u2193", "matrix": [4, 12], "x": 14, "y": 4}, {"label": "\u2192", "matrix": [4, 13], "x": 15, "y": 4} ] + }, + "LAYOUT_65_ansi_blocker_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0)", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Del", "matrix": [0, 14], "x": 15, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Page Up", "matrix": [1, 14], "x": 15, "y": 1}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";:", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Page Down", "matrix": [2, 14], "x": 15, "y": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".>", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "End", "matrix": [3, 14], "x": 15, "y": 3}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [5, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [5, 15], "x": 4, "y": 4, "w": 7}, + {"label": "Ctrl", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 11], "x": 13, "y": 4}, + {"label": "\u2193", "matrix": [4, 12], "x": 14, "y": 4}, + {"label": "\u2192", "matrix": [4, 13], "x": 15, "y": 4} + ] } } } diff --git a/keyboards/mode/m256wh/keymaps/default/keymap.c b/keyboards/mode/m256wh/keymaps/default/keymap.c index fcf3503230..a81d663450 100644 --- a/keyboards/mode/m256wh/keymaps/default/keymap.c +++ b/keyboards/mode/m256wh/keymaps/default/keymap.c @@ -16,14 +16,14 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT( /* Base */ +[0] = LAYOUT_65_ansi_blocker( /* Base */ KC_ESC , 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_BSPC, KC_DEL , 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_PGUP, 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_ENT , KC_PGDN, KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_END , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(1) , KC_LEFT, KC_DOWN, KC_RGHT ), -[1] = LAYOUT( +[1] = LAYOUT_65_ansi_blocker( QK_BOOT, 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_MUTE, 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_VOLU, 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_VOLD, diff --git a/keyboards/mode/m256wh/keymaps/via/keymap.c b/keyboards/mode/m256wh/keymaps/via/keymap.c index fcf3503230..a81d663450 100644 --- a/keyboards/mode/m256wh/keymaps/via/keymap.c +++ b/keyboards/mode/m256wh/keymaps/via/keymap.c @@ -16,14 +16,14 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT( /* Base */ +[0] = LAYOUT_65_ansi_blocker( /* Base */ KC_ESC , 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_BSPC, KC_DEL , 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_PGUP, 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_ENT , KC_PGDN, KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_END , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(1) , KC_LEFT, KC_DOWN, KC_RGHT ), -[1] = LAYOUT( +[1] = LAYOUT_65_ansi_blocker( QK_BOOT, 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_MUTE, 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_VOLU, 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_VOLD, diff --git a/keyboards/mode/m256wh/matrix_diagram.md b/keyboards/mode/m256wh/matrix_diagram.md new file mode 100644 index 0000000000..fb7f5f1189 --- /dev/null +++ b/keyboards/mode/m256wh/matrix_diagram.md @@ -0,0 +1,18 @@ +# Matrix Diagram for Mode Designs M256W-H + +``` +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │2E │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ +│30 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │ +├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ +│50 │51 │52 │5F │49 │4A │ │4B │4C │4D │ +└────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ +┌─────┬───┬─────┬───────────────────────────┬─────┐ +│50 │51 │52 │5F │4A │ Blocker Tsangan +└─────┴───┴─────┴───────────────────────────┴─────┘ +``` From 97464e470c363bc5d50b088886cc4330bc7dddae Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 14 Sep 2023 20:46:50 +0100 Subject: [PATCH 058/496] Remove duplication of EEPROM defaults (#22011) --- keyboards/binepad/bnr1/v2/rules.mk | 6 +----- keyboards/doio/kb16/rev2/rules.mk | 4 ---- keyboards/gmmk/gmmk2/p65/ansi/rules.mk | 2 -- keyboards/gmmk/gmmk2/p65/iso/rules.mk | 2 -- keyboards/phage_studio/pila87/rules.mk | 4 ---- keyboards/xelus/kangaroo/rev2/rules.mk | 5 ----- keyboards/xelus/rs60/rev2_1/rules.mk | 3 --- 7 files changed, 1 insertion(+), 25 deletions(-) diff --git a/keyboards/binepad/bnr1/v2/rules.mk b/keyboards/binepad/bnr1/v2/rules.mk index 77b90d035d..6e7633bfe0 100644 --- a/keyboards/binepad/bnr1/v2/rules.mk +++ b/keyboards/binepad/bnr1/v2/rules.mk @@ -1,5 +1 @@ -# This file only contains EFL/WL settings and enables F103 low-power mode - -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - +# This file intentionally left blank diff --git a/keyboards/doio/kb16/rev2/rules.mk b/keyboards/doio/kb16/rev2/rules.mk index 88879a4ffa..2145c9fbe1 100644 --- a/keyboards/doio/kb16/rev2/rules.mk +++ b/keyboards/doio/kb16/rev2/rules.mk @@ -25,7 +25,3 @@ RGB_MATRIX_ENABLE = yes # Encoder enabled ENCODER_ENABLE = yes - -# Wear-levelling driver -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash diff --git a/keyboards/gmmk/gmmk2/p65/ansi/rules.mk b/keyboards/gmmk/gmmk2/p65/ansi/rules.mk index 1b4692a621..2d2e9895fd 100644 --- a/keyboards/gmmk/gmmk2/p65/ansi/rules.mk +++ b/keyboards/gmmk/gmmk2/p65/ansi/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality. RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow. AUDIO_ENABLE = no # Audio output. RGB_MATRIX_ENABLE = yes # Enable RGB matrix effects. -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash diff --git a/keyboards/gmmk/gmmk2/p65/iso/rules.mk b/keyboards/gmmk/gmmk2/p65/iso/rules.mk index 1b4692a621..2d2e9895fd 100644 --- a/keyboards/gmmk/gmmk2/p65/iso/rules.mk +++ b/keyboards/gmmk/gmmk2/p65/iso/rules.mk @@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality. RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow. AUDIO_ENABLE = no # Audio output. RGB_MATRIX_ENABLE = yes # Enable RGB matrix effects. -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash diff --git a/keyboards/phage_studio/pila87/rules.mk b/keyboards/phage_studio/pila87/rules.mk index cd96ec2c2c..25fb7ed8c0 100644 --- a/keyboards/phage_studio/pila87/rules.mk +++ b/keyboards/phage_studio/pila87/rules.mk @@ -16,7 +16,3 @@ AUDIO_ENABLE = no # Audio output # RGB Matrix enabled RGB_MATRIX_ENABLE = yes - -# Wear-levelling driver -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash diff --git a/keyboards/xelus/kangaroo/rev2/rules.mk b/keyboards/xelus/kangaroo/rev2/rules.mk index 613adf3a22..80aff9822d 100644 --- a/keyboards/xelus/kangaroo/rev2/rules.mk +++ b/keyboards/xelus/kangaroo/rev2/rules.mk @@ -9,8 +9,3 @@ COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes # Enable N-Key Rollover RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -EEPROM_DRIVER = i2c - -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - diff --git a/keyboards/xelus/rs60/rev2_1/rules.mk b/keyboards/xelus/rs60/rev2_1/rules.mk index 9eeaa8553b..b763de52c7 100644 --- a/keyboards/xelus/rs60/rev2_1/rules.mk +++ b/keyboards/xelus/rs60/rev2_1/rules.mk @@ -11,9 +11,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash - # Save hid interface KEYBOARD_SHARED_EP = yes From fe00bb9746cb9f49afe2b60cf1af01c525d9ae37 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 14 Sep 2023 20:50:07 +0100 Subject: [PATCH 059/496] Migrate i2c EEPROM_DRIVER to info.json (#22013) --- keyboards/acheron/shark/beta/info.json | 3 +++ keyboards/acheron/shark/beta/rules.mk | 3 --- keyboards/aeboards/constellation/rev2/info.json | 3 +++ keyboards/aeboards/constellation/rev2/rules.mk | 2 -- keyboards/geonworks/frogmini/fmh/info.json | 3 +++ keyboards/geonworks/frogmini/fmh/rules.mk | 3 --- keyboards/geonworks/frogmini/fms/info.json | 3 +++ keyboards/geonworks/frogmini/fms/rules.mk | 3 --- keyboards/jones/v1/info.json | 3 +++ keyboards/jones/v1/rules.mk | 3 --- keyboards/mode/m65ha_alpha/info.json | 3 +++ keyboards/mode/m65ha_alpha/rules.mk | 2 -- keyboards/mode/m65hi_alpha/info.json | 3 +++ keyboards/mode/m65hi_alpha/rules.mk | 2 -- keyboards/mode/m65s/info.json | 3 +++ keyboards/mode/m65s/rules.mk | 2 -- keyboards/moonlander/info.json | 3 +++ keyboards/moonlander/rules.mk | 1 - keyboards/smithrune/iron165r2/f411/info.json | 3 +++ keyboards/smithrune/iron165r2/f411/rules.mk | 2 -- keyboards/tkw/grandiceps/rev2/info.json | 3 +++ keyboards/tkw/grandiceps/rev2/rules.mk | 2 -- keyboards/viendi8l/info.json | 3 +++ keyboards/viendi8l/rules.mk | 3 --- keyboards/xelus/kangaroo/rev1/info.json | 3 +++ keyboards/xelus/kangaroo/rev1/rules.mk | 2 -- keyboards/xelus/pachi/rgb/rev1/info.json | 3 +++ keyboards/xelus/pachi/rgb/rev1/rules.mk | 2 -- keyboards/xelus/pachi/rgb/rev2/info.json | 3 +++ keyboards/xelus/pachi/rgb/rev2/rules.mk | 2 -- keyboards/xelus/rs108/info.json | 3 +++ keyboards/xelus/rs108/rules.mk | 2 -- keyboards/xelus/rs60/rev2_0/info.json | 3 +++ keyboards/xelus/rs60/rev2_0/rules.mk | 1 - keyboards/xelus/valor/rev2/info.json | 3 +++ keyboards/xelus/valor/rev2/rules.mk | 1 - keyboards/xelus/valor_frl_tkl/rev1/info.json | 3 +++ keyboards/xelus/valor_frl_tkl/rev1/rules.mk | 3 --- keyboards/xelus/xs108/info.json | 3 +++ keyboards/xelus/xs108/rules.mk | 2 -- keyboards/xelus/xs60/hotswap/info.json | 3 +++ keyboards/xelus/xs60/hotswap/rules.mk | 2 -- keyboards/xelus/xs60/soldered/info.json | 3 +++ keyboards/xelus/xs60/soldered/rules.mk | 2 -- 44 files changed, 66 insertions(+), 47 deletions(-) diff --git a/keyboards/acheron/shark/beta/info.json b/keyboards/acheron/shark/beta/info.json index 5ec2403638..7daab0a2c0 100644 --- a/keyboards/acheron/shark/beta/info.json +++ b/keyboards/acheron/shark/beta/info.json @@ -9,6 +9,9 @@ "rows": ["A8", "B14", "A4", "A3"] }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "i2c" + }, "encoder": { "rotary": [ {"pin_a": "C15", "pin_b": "C14"} diff --git a/keyboards/acheron/shark/beta/rules.mk b/keyboards/acheron/shark/beta/rules.mk index a398475a3e..94335efa29 100644 --- a/keyboards/acheron/shark/beta/rules.mk +++ b/keyboards/acheron/shark/beta/rules.mk @@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output LTO_ENABLE = no ENCODER_ENABLE = yes - -EEPROM_DRIVER = i2c - diff --git a/keyboards/aeboards/constellation/rev2/info.json b/keyboards/aeboards/constellation/rev2/info.json index 87cb103d4a..b8dae5f20c 100644 --- a/keyboards/aeboards/constellation/rev2/info.json +++ b/keyboards/aeboards/constellation/rev2/info.json @@ -13,6 +13,9 @@ "rows": ["B15", "A14", "A2", "B13", "B14"] }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "i2c" + }, "processor": "STM32L422", "bootloader": "stm32-dfu", "layout_aliases": { diff --git a/keyboards/aeboards/constellation/rev2/rules.mk b/keyboards/aeboards/constellation/rev2/rules.mk index 0fa89d45d2..c12086843f 100755 --- a/keyboards/aeboards/constellation/rev2/rules.mk +++ b/keyboards/aeboards/constellation/rev2/rules.mk @@ -9,5 +9,3 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output - -EEPROM_DRIVER = i2c diff --git a/keyboards/geonworks/frogmini/fmh/info.json b/keyboards/geonworks/frogmini/fmh/info.json index a8c0645a70..7b381bc587 100644 --- a/keyboards/geonworks/frogmini/fmh/info.json +++ b/keyboards/geonworks/frogmini/fmh/info.json @@ -13,6 +13,9 @@ "rows": ["A3", "A2", "A1", "B8", "A7", "C0"] }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "i2c" + }, "processor": "STM32F401", "bootloader": "stm32-dfu", "layout_aliases": { diff --git a/keyboards/geonworks/frogmini/fmh/rules.mk b/keyboards/geonworks/frogmini/fmh/rules.mk index 1f63f8feef..1775ec5c41 100644 --- a/keyboards/geonworks/frogmini/fmh/rules.mk +++ b/keyboards/geonworks/frogmini/fmh/rules.mk @@ -13,6 +13,3 @@ LTO_ENABLE = no ENCODER_ENABLE = no BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality - -EEPROM_DRIVER = i2c - diff --git a/keyboards/geonworks/frogmini/fms/info.json b/keyboards/geonworks/frogmini/fms/info.json index b64392cc23..ada9188e37 100644 --- a/keyboards/geonworks/frogmini/fms/info.json +++ b/keyboards/geonworks/frogmini/fms/info.json @@ -13,6 +13,9 @@ "rows": ["A3", "A2", "A1", "B8", "A7", "C0"] }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "i2c" + }, "backlight": { "pin": "A10", "levels": 20 diff --git a/keyboards/geonworks/frogmini/fms/rules.mk b/keyboards/geonworks/frogmini/fms/rules.mk index dfd36d0f82..19b8048589 100644 --- a/keyboards/geonworks/frogmini/fms/rules.mk +++ b/keyboards/geonworks/frogmini/fms/rules.mk @@ -13,6 +13,3 @@ LTO_ENABLE = no ENCODER_ENABLE = no BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality - -EEPROM_DRIVER = i2c - diff --git a/keyboards/jones/v1/info.json b/keyboards/jones/v1/info.json index fdc5cbd310..0e7902a92a 100644 --- a/keyboards/jones/v1/info.json +++ b/keyboards/jones/v1/info.json @@ -21,6 +21,9 @@ "pin": "F1" }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "i2c" + }, "encoder": { "rotary": [ {"pin_a": "F5", "pin_b": "F4"}, diff --git a/keyboards/jones/v1/rules.mk b/keyboards/jones/v1/rules.mk index cfc8879b74..6f522a4365 100644 --- a/keyboards/jones/v1/rules.mk +++ b/keyboards/jones/v1/rules.mk @@ -12,7 +12,4 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = yes # Audio output ENCODER_ENABLE = yes # Rotary Encoder -# Use I2C connected External EEPROM -EEPROM_DRIVER = i2c - LTO_ENABLE = yes diff --git a/keyboards/mode/m65ha_alpha/info.json b/keyboards/mode/m65ha_alpha/info.json index a7afd10663..3332182127 100644 --- a/keyboards/mode/m65ha_alpha/info.json +++ b/keyboards/mode/m65ha_alpha/info.json @@ -13,6 +13,9 @@ "rows": ["A7", "A10", "D2", "C12", "B1", "C11"] }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "i2c" + }, "indicators": { "caps_lock": "A6" }, diff --git a/keyboards/mode/m65ha_alpha/rules.mk b/keyboards/mode/m65ha_alpha/rules.mk index da4b493847..942e6c1061 100644 --- a/keyboards/mode/m65ha_alpha/rules.mk +++ b/keyboards/mode/m65ha_alpha/rules.mk @@ -10,5 +10,3 @@ NKRO_ENABLE = no # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -EEPROM_DRIVER = i2c - diff --git a/keyboards/mode/m65hi_alpha/info.json b/keyboards/mode/m65hi_alpha/info.json index 1899284f8c..a2a4416efe 100644 --- a/keyboards/mode/m65hi_alpha/info.json +++ b/keyboards/mode/m65hi_alpha/info.json @@ -13,6 +13,9 @@ "rows": ["A7", "A10", "D2", "C12", "B1", "C11"] }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "i2c" + }, "indicators": { "caps_lock": "A6" }, diff --git a/keyboards/mode/m65hi_alpha/rules.mk b/keyboards/mode/m65hi_alpha/rules.mk index da4b493847..942e6c1061 100644 --- a/keyboards/mode/m65hi_alpha/rules.mk +++ b/keyboards/mode/m65hi_alpha/rules.mk @@ -10,5 +10,3 @@ NKRO_ENABLE = no # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -EEPROM_DRIVER = i2c - diff --git a/keyboards/mode/m65s/info.json b/keyboards/mode/m65s/info.json index 0a0c93f3f8..b187502736 100644 --- a/keyboards/mode/m65s/info.json +++ b/keyboards/mode/m65s/info.json @@ -16,6 +16,9 @@ "rows": ["A3", "B14", "B15", "C9", "C6", "C11"] }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "i2c" + }, "indicators": { "caps_lock": "C8" }, diff --git a/keyboards/mode/m65s/rules.mk b/keyboards/mode/m65s/rules.mk index 5dd8d547ab..4d827a4254 100644 --- a/keyboards/mode/m65s/rules.mk +++ b/keyboards/mode/m65s/rules.mk @@ -10,5 +10,3 @@ NKRO_ENABLE = no # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -EEPROM_DRIVER = i2c - diff --git a/keyboards/moonlander/info.json b/keyboards/moonlander/info.json index 92cb898933..21779adced 100644 --- a/keyboards/moonlander/info.json +++ b/keyboards/moonlander/info.json @@ -8,6 +8,9 @@ "pid": "0x1969", "device_version": "0.0.1" }, + "eeprom": { + "driver": "i2c" + }, "rgb_matrix": { "driver": "is31fl3731" }, diff --git a/keyboards/moonlander/rules.mk b/keyboards/moonlander/rules.mk index 12987afdac..a96d00f2f1 100644 --- a/keyboards/moonlander/rules.mk +++ b/keyboards/moonlander/rules.mk @@ -14,7 +14,6 @@ AUDIO_DRIVER = dac_additive CUSTOM_MATRIX = lite SWAP_HANDS_ENABLE = yes RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = i2c #project specific files SRC += matrix.c diff --git a/keyboards/smithrune/iron165r2/f411/info.json b/keyboards/smithrune/iron165r2/f411/info.json index c499958255..72547e955e 100644 --- a/keyboards/smithrune/iron165r2/f411/info.json +++ b/keyboards/smithrune/iron165r2/f411/info.json @@ -1,4 +1,7 @@ { + "eeprom": { + "driver": "i2c" + }, "backlight": { "pin": "A6", "levels": 20, diff --git a/keyboards/smithrune/iron165r2/f411/rules.mk b/keyboards/smithrune/iron165r2/f411/rules.mk index e38a7a71b3..f5a58ab0cb 100644 --- a/keyboards/smithrune/iron165r2/f411/rules.mk +++ b/keyboards/smithrune/iron165r2/f411/rules.mk @@ -11,6 +11,4 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output LTO_ENABLE = no ENCODER_ENABLE = no -EEPROM_DRIVER = i2c BACKLIGHT_ENABLE = yes - diff --git a/keyboards/tkw/grandiceps/rev2/info.json b/keyboards/tkw/grandiceps/rev2/info.json index 786f381c4f..cd80948196 100644 --- a/keyboards/tkw/grandiceps/rev2/info.json +++ b/keyboards/tkw/grandiceps/rev2/info.json @@ -2,5 +2,8 @@ "keyboard_name": "Grandiceps Split rev2", "usb": { "device_version": "0.0.2" + }, + "eeprom": { + "driver": "i2c" } } diff --git a/keyboards/tkw/grandiceps/rev2/rules.mk b/keyboards/tkw/grandiceps/rev2/rules.mk index 3e82c4507e..20f2871924 100644 --- a/keyboards/tkw/grandiceps/rev2/rules.mk +++ b/keyboards/tkw/grandiceps/rev2/rules.mk @@ -1,4 +1,2 @@ -EEPROM_DRIVER = i2c - POINTING_DEVICE_ENABLE = yes POINTING_DEVICE_DRIVER = pimoroni_trackball diff --git a/keyboards/viendi8l/info.json b/keyboards/viendi8l/info.json index 17449f406c..d50b96a887 100644 --- a/keyboards/viendi8l/info.json +++ b/keyboards/viendi8l/info.json @@ -20,6 +20,9 @@ "rows": ["C3", "C2", "C1", "C0", "B14", "A7"] }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "i2c" + }, "encoder": { "rotary": [ {"pin_a": "B10", "pin_b": "B12", "resolution": 2} diff --git a/keyboards/viendi8l/rules.mk b/keyboards/viendi8l/rules.mk index da10e34d1c..b269d5da35 100644 --- a/keyboards/viendi8l/rules.mk +++ b/keyboards/viendi8l/rules.mk @@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes LTO_ENABLE = no - -EEPROM_DRIVER = i2c - diff --git a/keyboards/xelus/kangaroo/rev1/info.json b/keyboards/xelus/kangaroo/rev1/info.json index ca5fa293e9..f40d455b9f 100644 --- a/keyboards/xelus/kangaroo/rev1/info.json +++ b/keyboards/xelus/kangaroo/rev1/info.json @@ -8,6 +8,9 @@ "rows": ["A9", "A8", "B15", "B14", "B13", "B12", "A4", "A5", "A6", "A7", "B0", "B1"] }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "i2c" + }, "processor": "STM32F072", "bootloader": "stm32-dfu" } diff --git a/keyboards/xelus/kangaroo/rev1/rules.mk b/keyboards/xelus/kangaroo/rev1/rules.mk index a6006b7150..80aff9822d 100644 --- a/keyboards/xelus/kangaroo/rev1/rules.mk +++ b/keyboards/xelus/kangaroo/rev1/rules.mk @@ -9,5 +9,3 @@ COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes # Enable N-Key Rollover RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -EEPROM_DRIVER = i2c - diff --git a/keyboards/xelus/pachi/rgb/rev1/info.json b/keyboards/xelus/pachi/rgb/rev1/info.json index 90ab8c19ef..092021b23a 100644 --- a/keyboards/xelus/pachi/rgb/rev1/info.json +++ b/keyboards/xelus/pachi/rgb/rev1/info.json @@ -17,6 +17,9 @@ "rows": ["B14", "B13", "B12", "B2", "A8", "B15"] }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "i2c" + }, "processor": "STM32L422", "bootloader": "stm32-dfu", "layout_aliases": { diff --git a/keyboards/xelus/pachi/rgb/rev1/rules.mk b/keyboards/xelus/pachi/rgb/rev1/rules.mk index cec6f3c13d..4c27f45008 100644 --- a/keyboards/xelus/pachi/rgb/rev1/rules.mk +++ b/keyboards/xelus/pachi/rgb/rev1/rules.mk @@ -11,8 +11,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches -EEPROM_DRIVER = i2c - RGB_MATRIX_ENABLE = yes COMMON_VPATH += $(DRIVER_PATH)/issi diff --git a/keyboards/xelus/pachi/rgb/rev2/info.json b/keyboards/xelus/pachi/rgb/rev2/info.json index 64aa3172c0..e0b5dc7d1a 100644 --- a/keyboards/xelus/pachi/rgb/rev2/info.json +++ b/keyboards/xelus/pachi/rgb/rev2/info.json @@ -16,6 +16,9 @@ "rows": ["A5", "A6", "B0", "A7", "A8", "B1", "B4", "B5", "A15", "B3", "A13", "A14"] }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "i2c" + }, "processor": "STM32L422", "bootloader": "stm32-dfu", "layout_aliases": { diff --git a/keyboards/xelus/pachi/rgb/rev2/rules.mk b/keyboards/xelus/pachi/rgb/rev2/rules.mk index d5c0eee734..62bb12bfb0 100644 --- a/keyboards/xelus/pachi/rgb/rev2/rules.mk +++ b/keyboards/xelus/pachi/rgb/rev2/rules.mk @@ -10,8 +10,6 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -EEPROM_DRIVER = i2c - RGB_MATRIX_ENABLE = yes COMMON_VPATH += $(DRIVER_PATH)/issi diff --git a/keyboards/xelus/rs108/info.json b/keyboards/xelus/rs108/info.json index fd2358d68d..0342177e64 100644 --- a/keyboards/xelus/rs108/info.json +++ b/keyboards/xelus/rs108/info.json @@ -14,6 +14,9 @@ "rows": ["B5", "B6", "B7", "A1", "A0", "C13", "B0", "A7", "A5", "A4", "A3", "A2"] }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "i2c" + }, "indicators": { "caps_lock": "A6", "num_lock": "A14", diff --git a/keyboards/xelus/rs108/rules.mk b/keyboards/xelus/rs108/rules.mk index 612c1d666a..b763de52c7 100644 --- a/keyboards/xelus/rs108/rules.mk +++ b/keyboards/xelus/rs108/rules.mk @@ -11,8 +11,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -EEPROM_DRIVER = i2c - # Save hid interface KEYBOARD_SHARED_EP = yes diff --git a/keyboards/xelus/rs60/rev2_0/info.json b/keyboards/xelus/rs60/rev2_0/info.json index ac976a4cb4..499a5a922f 100644 --- a/keyboards/xelus/rs60/rev2_0/info.json +++ b/keyboards/xelus/rs60/rev2_0/info.json @@ -8,6 +8,9 @@ "rows": ["B15", "B14", "B12", "B1", "B0"] }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "i2c" + }, "indicators": { "caps_lock": "A1" }, diff --git a/keyboards/xelus/rs60/rev2_0/rules.mk b/keyboards/xelus/rs60/rev2_0/rules.mk index 965f4edaef..b763de52c7 100644 --- a/keyboards/xelus/rs60/rev2_0/rules.mk +++ b/keyboards/xelus/rs60/rev2_0/rules.mk @@ -10,7 +10,6 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -EEPROM_DRIVER = i2c # Save hid interface KEYBOARD_SHARED_EP = yes diff --git a/keyboards/xelus/valor/rev2/info.json b/keyboards/xelus/valor/rev2/info.json index a8068eff89..0d0629408e 100644 --- a/keyboards/xelus/valor/rev2/info.json +++ b/keyboards/xelus/valor/rev2/info.json @@ -20,6 +20,9 @@ "rows": ["B11", "B10", "A3", "A1", "A2"] }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "i2c" + }, "processor": "STM32L422", "bootloader": "stm32-dfu", "community_layouts": ["alice_split_bs"], diff --git a/keyboards/xelus/valor/rev2/rules.mk b/keyboards/xelus/valor/rev2/rules.mk index e0caab1474..7fd72e35e7 100644 --- a/keyboards/xelus/valor/rev2/rules.mk +++ b/keyboards/xelus/valor/rev2/rules.mk @@ -12,7 +12,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output RGB_MATRIX_ENABLE = yes RGB_MATRIX_CUSTOM_KB = yes -EEPROM_DRIVER = i2c OPT = 2 LTO_ENABLE = yes diff --git a/keyboards/xelus/valor_frl_tkl/rev1/info.json b/keyboards/xelus/valor_frl_tkl/rev1/info.json index 838396caaf..4816a9a3a5 100644 --- a/keyboards/xelus/valor_frl_tkl/rev1/info.json +++ b/keyboards/xelus/valor_frl_tkl/rev1/info.json @@ -8,6 +8,9 @@ "rows": ["A15", "A14", "A1", "B3", "B4"] }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "i2c" + }, "processor": "STM32F072", "bootloader": "stm32-dfu" } diff --git a/keyboards/xelus/valor_frl_tkl/rev1/rules.mk b/keyboards/xelus/valor_frl_tkl/rev1/rules.mk index efbd7d0e9b..5356b24d77 100644 --- a/keyboards/xelus/valor_frl_tkl/rev1/rules.mk +++ b/keyboards/xelus/valor_frl_tkl/rev1/rules.mk @@ -10,6 +10,3 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output - -EEPROM_DRIVER = i2c - diff --git a/keyboards/xelus/xs108/info.json b/keyboards/xelus/xs108/info.json index ab9bf597dd..c9c65f7f8b 100644 --- a/keyboards/xelus/xs108/info.json +++ b/keyboards/xelus/xs108/info.json @@ -13,6 +13,9 @@ "rows": ["C14", "C13", "A10", "A3", "A1", "A0"] }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "i2c" + }, "indicators": { "caps_lock": "A2", "num_lock": "B7", diff --git a/keyboards/xelus/xs108/rules.mk b/keyboards/xelus/xs108/rules.mk index 5ed7b869ae..5356b24d77 100644 --- a/keyboards/xelus/xs108/rules.mk +++ b/keyboards/xelus/xs108/rules.mk @@ -10,5 +10,3 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -EEPROM_DRIVER = i2c - diff --git a/keyboards/xelus/xs60/hotswap/info.json b/keyboards/xelus/xs60/hotswap/info.json index 81cf86498b..45a5e57542 100644 --- a/keyboards/xelus/xs60/hotswap/info.json +++ b/keyboards/xelus/xs60/hotswap/info.json @@ -17,6 +17,9 @@ "processor": "STM32L422", "bootloader": "stm32-dfu", "diode_direction": "COL2ROW", + "eeprom": { + "driver": "i2c" + }, "matrix_pins": { "cols": ["B0", "B1", "A8", "A9", "B5", "A6", "C14", "C15", "A0", "A5", "A4", "A3", "A2", "A1"], "rows": ["B4", "B3", "A15", "A14", "A7"] diff --git a/keyboards/xelus/xs60/hotswap/rules.mk b/keyboards/xelus/xs60/hotswap/rules.mk index 4819456d51..f632b896ab 100644 --- a/keyboards/xelus/xs60/hotswap/rules.mk +++ b/keyboards/xelus/xs60/hotswap/rules.mk @@ -10,8 +10,6 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -EEPROM_DRIVER = i2c - RGBLIGHT_ENABLE = yes LTO_ENABLE = yes diff --git a/keyboards/xelus/xs60/soldered/info.json b/keyboards/xelus/xs60/soldered/info.json index 20de0ef837..41af87ba7c 100644 --- a/keyboards/xelus/xs60/soldered/info.json +++ b/keyboards/xelus/xs60/soldered/info.json @@ -17,6 +17,9 @@ "processor": "STM32L422", "bootloader": "stm32-dfu", "diode_direction": "COL2ROW", + "eeprom": { + "driver": "i2c" + }, "matrix_pins": { "cols": ["B0", "B1", "A8", "A9", "B5", "A6", "C14", "C15", "A0", "A5", "A4", "A3", "A2", "A1"], "rows": ["B4", "B3", "A15", "A14", "A7"] diff --git a/keyboards/xelus/xs60/soldered/rules.mk b/keyboards/xelus/xs60/soldered/rules.mk index 4819456d51..f632b896ab 100644 --- a/keyboards/xelus/xs60/soldered/rules.mk +++ b/keyboards/xelus/xs60/soldered/rules.mk @@ -10,8 +10,6 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -EEPROM_DRIVER = i2c - RGBLIGHT_ENABLE = yes LTO_ENABLE = yes From 4f26a8b3082a4874a6e416c18999dd6ba1a240d7 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 14 Sep 2023 13:37:24 -0700 Subject: [PATCH 060/496] MonsGeek M1: Correct layout data (#22026) Apply vertical offset to the arrow keys. [chore] --- keyboards/monsgeek/m1/info.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/keyboards/monsgeek/m1/info.json b/keyboards/monsgeek/m1/info.json index 5e772f81f6..4de1803818 100644 --- a/keyboards/monsgeek/m1/info.json +++ b/keyboards/monsgeek/m1/info.json @@ -246,7 +246,7 @@ { "label": ">", "matrix": [4, 9], "x": 10.25, "y": 4.25 }, { "label": "?", "matrix": [4, 10], "x": 11.25, "y": 4.25 }, { "label": "Shift", "matrix": [4, 13], "w": 1.75, "x": 12.25, "y": 4.25 }, - { "label": "Up", "matrix": [4, 14], "x": 14.25, "y": 4.25 }, + { "label": "Up", "matrix": [4, 14], "x": 14.25, "y": 4.5 }, { "label": "End", "matrix": [4, 15], "x": 15.5, "y": 4.25 }, { "label": "Ctrl", "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 }, { "label": "Win", "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25 }, @@ -255,9 +255,9 @@ { "label": "Alt", "matrix": [5, 9], "x": 10, "y": 5.25 }, { "label": "Fn", "matrix": [5, 10], "x": 11, "y": 5.25 }, { "label": "Ctrl", "matrix": [5, 11], "x": 12, "y": 5.25 }, - { "label": "Left", "matrix": [5, 13], "x": 13.25, "y": 5.25 }, - { "label": "Down", "matrix": [5, 14], "x": 14.25, "y": 5.25 }, - { "label": "Right", "matrix": [5, 15], "x": 15.25, "y": 5.25 } + { "label": "Left", "matrix": [5, 13], "x": 13.25, "y": 5.5 }, + { "label": "Down", "matrix": [5, 14], "x": 14.25, "y": 5.5 }, + { "label": "Right", "matrix": [5, 15], "x": 15.25, "y": 5.5 } ] }, "LAYOUT_ansi": { @@ -333,7 +333,7 @@ { "label": ">", "matrix": [4, 9], "x": 10.25, "y": 4.25 }, { "label": "?", "matrix": [4, 10], "x": 11.25, "y": 4.25 }, { "label": "Shift", "matrix": [4, 13], "w": 1.75, "x": 12.25, "y": 4.25 }, - { "label": "Up", "matrix": [4, 14], "x": 14.25, "y": 4.25 }, + { "label": "Up", "matrix": [4, 14], "x": 14.25, "y": 4.5 }, { "label": "End", "matrix": [4, 15], "x": 15.5, "y": 4.25 }, { "label": "Ctrl", "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 }, { "label": "Win", "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25 }, @@ -342,9 +342,9 @@ { "label": "Alt", "matrix": [5, 9], "x": 10, "y": 5.25 }, { "label": "Fn", "matrix": [5, 10], "x": 11, "y": 5.25 }, { "label": "Ctrl", "matrix": [5, 11], "x": 12, "y": 5.25 }, - { "label": "Left", "matrix": [5, 13], "x": 13.25, "y": 5.25 }, - { "label": "Down", "matrix": [5, 14], "x": 14.25, "y": 5.25 }, - { "label": "Right", "matrix": [5, 15], "x": 15.25, "y": 5.25 } + { "label": "Left", "matrix": [5, 13], "x": 13.25, "y": 5.5 }, + { "label": "Down", "matrix": [5, 14], "x": 14.25, "y": 5.5 }, + { "label": "Right", "matrix": [5, 15], "x": 15.25, "y": 5.5 } ] }, "LAYOUT_iso": { @@ -421,7 +421,7 @@ { "label": ">", "matrix": [4, 9], "x": 10.25, "y": 4.25 }, { "label": "?", "matrix": [4, 10], "x": 11.25, "y": 4.25 }, { "label": "Shift", "matrix": [4, 13], "w": 1.75, "x": 12.25, "y": 4.25 }, - { "label": "Up", "matrix": [4, 14], "x": 14.25, "y": 4.25 }, + { "label": "Up", "matrix": [4, 14], "x": 14.25, "y": 4.5 }, { "label": "End", "matrix": [4, 15], "x": 15.5, "y": 4.25 }, { "label": "Ctrl", "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 }, { "label": "Win", "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25 }, @@ -430,9 +430,9 @@ { "label": "Alt", "matrix": [5, 9], "x": 10, "y": 5.25 }, { "label": "Fn", "matrix": [5, 10], "x": 11, "y": 5.25 }, { "label": "Ctrl", "matrix": [5, 11], "x": 12, "y": 5.25 }, - { "label": "Left", "matrix": [5, 13], "x": 13.25, "y": 5.25 }, - { "label": "Down", "matrix": [5, 14], "x": 14.25, "y": 5.25 }, - { "label": "Right", "matrix": [5, 15], "x": 15.25, "y": 5.25 } + { "label": "Left", "matrix": [5, 13], "x": 13.25, "y": 5.5 }, + { "label": "Down", "matrix": [5, 14], "x": 14.25, "y": 5.5 }, + { "label": "Right", "matrix": [5, 15], "x": 15.25, "y": 5.5 } ] } } From 46d679ab119157d604eb679c2248bd402eebd666 Mon Sep 17 00:00:00 2001 From: Andrew Kannan Date: Thu, 14 Sep 2023 16:38:42 -0400 Subject: [PATCH 061/496] `qmk format-json`: Add an in-place mode to format json command (#21610) --- lib/python/qmk/cli/format/json.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/python/qmk/cli/format/json.py b/lib/python/qmk/cli/format/json.py index 058b613294..3299a0d807 100755 --- a/lib/python/qmk/cli/format/json.py +++ b/lib/python/qmk/cli/format/json.py @@ -15,6 +15,8 @@ from qmk.path import normpath @cli.argument('json_file', arg_only=True, type=normpath, help='JSON file to format') @cli.argument('-f', '--format', choices=['auto', 'keyboard', 'keymap'], default='auto', arg_only=True, help='JSON formatter to use (Default: autodetect)') +@cli.argument('-i', '--inplace', action='store_true', arg_only=True, help='If set, will operate in-place on the input file') +@cli.argument('-p', '--print', action='store_true', arg_only=True, help='If set, will print the formatted json to stdout ') @cli.subcommand('Generate an info.json file for a keyboard.', hidden=False if cli.config.user.developer else True) def format_json(cli): """Format a json file. @@ -61,5 +63,14 @@ def format_json(cli): json_file['layers'][layer_num] = current_layer - # Display the results - print(json.dumps(json_file, cls=json_encoder, sort_keys=True)) + output = json.dumps(json_file, cls=json_encoder, sort_keys=True) + + if cli.args.inplace: + with open(cli.args.json_file, 'w+', encoding='utf-8') as outfile: + outfile.write(output) + + # Display the results if print was set + # We don't operate in-place by default, so also display to stdout + # if in-place is not set. + if cli.args.print or not cli.args.inplace: + print(output) From 3d86b925113043759bc9dd1cc73d41e84b5d28bb Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 14 Sep 2023 15:47:03 -0700 Subject: [PATCH 062/496] QVEX Tech Lynepad2 Layout Update (#22030) * Add layout/matrix diagram [docs] * Update layout data Update layout data to disambiguate the key/joystick/thumbpad functions in Configurator. [chore] --- keyboards/qvex/lynepad2/info.json | 18 +++++++++++------- keyboards/qvex/lynepad2/matrix_diagram.md | 21 +++++++++++++++++++++ 2 files changed, 32 insertions(+), 7 deletions(-) create mode 100644 keyboards/qvex/lynepad2/matrix_diagram.md diff --git a/keyboards/qvex/lynepad2/info.json b/keyboards/qvex/lynepad2/info.json index 02b6198bcd..4230fd63e0 100644 --- a/keyboards/qvex/lynepad2/info.json +++ b/keyboards/qvex/lynepad2/info.json @@ -50,20 +50,24 @@ { "matrix": [0, 1], "x": 1, "y": 0 }, { "matrix": [0, 2], "x": 2, "y": 0 }, { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1 }, { "matrix": [1, 1], "x": 1, "y": 1 }, { "matrix": [1, 2], "x": 2, "y": 1 }, { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2 }, { "matrix": [2, 1], "x": 1, "y": 2 }, { "matrix": [2, 2], "x": 2, "y": 2 }, - { "matrix": [3, 0], "x": 0, "y": 3 }, - { "matrix": [3, 1], "x": 1, "y": 3 }, - { "matrix": [3, 2], "x": 2, "y": 3 }, - { "matrix": [3, 3], "x": 3, "y": 3 }, - { "matrix": [4, 0], "x": 0, "y": 4 }, - { "matrix": [4, 1], "x": 1, "y": 4 } + + { "matrix": [3, 0], "x": 4.75, "y": 1.3 }, + { "matrix": [3, 1], "x": 4.75, "y": 3.7 }, + { "matrix": [3, 2], "x": 3.55, "y": 2.5 }, + { "matrix": [3, 3], "x": 5.95, "y": 2.5 }, + { "matrix": [4, 0], "x": 4.55, "y": 2.3, "w": 1.4, "h": 1.4 }, + + { "matrix": [4, 1], "x": 3.4, "y": 5.2, "w": 1.6, "h": 1.6 } ] } } -} \ No newline at end of file +} diff --git a/keyboards/qvex/lynepad2/matrix_diagram.md b/keyboards/qvex/lynepad2/matrix_diagram.md new file mode 100644 index 0000000000..29ab7d6d25 --- /dev/null +++ b/keyboards/qvex/lynepad2/matrix_diagram.md @@ -0,0 +1,21 @@ +# Matrix Diagram for QVEX Tech Lynepad + +``` +┌───┬───┬───┬───┐ +│00 │01 │02 │03 │ +├───┼───┼───┼───┤ +│10 │11 │12 │13 │ ┌───┐ +├───┼───┼───┼───┘╱ │30 │ ╲ +│20 │21 │22 │ ┌───┼───┼───┐ +└───┴───┴───┘ │32 │40 │33 │ + └───┼───┼───┘ + ╲ │31 │ ╱ + └───┘ + ┌───┐ + ╱ │ │ ╲ + ┌───┼───┼───┐ + │ │41 │ │ + └───┼───┼───┘ + ╲ │ │ ╱ + └───┘ +``` From 598303fa954ed4c6a4d1076a11b17b7d28bdda38 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 14 Sep 2023 18:07:48 -0700 Subject: [PATCH 063/496] OwLab Jelly Evolv Solder Layout Additions (#22029) * Add layout/matrix diagram [docs] * Friendly-format `info.json` [style] * Rename `LAYOUT` to `LAYOUT_all` [refactor] * Add `LAYOUT_ansi_blocker` [enhancement] * Add `LAYOUT_ansi_blocker_split_bs` [enhancement] * Add `LAYOUT_ansi_blocker_tsangan_split_bs` [enhancement] * Add `LAYOUT_ansi_blocker_tsangan` [enhancement] * Add `LAYOUT_iso_blocker` [enhancement] * Add `LAYOUT_iso_blocker_split_bs` [enhancement] * Add `LAYOUT_iso_blocker_tsangan_split_bs` [enhancement] * Add `LAYOUT_iso_blocker_tsangan` [enhancement] --- keyboards/owlab/jelly_evolv/solder/info.json | 890 ++++++++++++++++-- .../solder/keymaps/default/keymap.c | 4 +- .../jelly_evolv/solder/keymaps/via/keymap.c | 4 +- .../jelly_evolv/solder/matrix_diagram.md | 27 + 4 files changed, 838 insertions(+), 87 deletions(-) create mode 100644 keyboards/owlab/jelly_evolv/solder/matrix_diagram.md diff --git a/keyboards/owlab/jelly_evolv/solder/info.json b/keyboards/owlab/jelly_evolv/solder/info.json index 1c31904ecf..b02be86f3e 100644 --- a/keyboards/owlab/jelly_evolv/solder/info.json +++ b/keyboards/owlab/jelly_evolv/solder/info.json @@ -4,91 +4,815 @@ "pid": "0x4A56", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [ - {"matrix": [0, 0], "x":0, "y":0}, - {"matrix": [0, 1], "x":1.5, "y":0}, - {"matrix": [0, 2], "x":2.5, "y":0}, - {"matrix": [0, 3], "x":3.5, "y":0}, - {"matrix": [0, 4], "x":4.5, "y":0}, - {"matrix": [0, 5], "x":6, "y":0}, - {"matrix": [0, 6], "x":7, "y":0}, - {"matrix": [0, 7], "x":8, "y":0}, - {"matrix": [0, 8], "x":9, "y":0}, - {"matrix": [0, 9], "x":10.5, "y":0}, - {"matrix": [0, 10], "x":11.5, "y":0}, - {"matrix": [0, 11], "x":12.5, "y":0}, - {"matrix": [0, 12], "x":13.5, "y":0}, - {"matrix": [0, 14], "x":15, "y":0}, - {"matrix": [1, 0], "x":0, "y":1.5}, - {"matrix": [1, 1], "x":1, "y":1.5}, - {"matrix": [1, 2], "x":2, "y":1.5}, - {"matrix": [1, 3], "x":3, "y":1.5}, - {"matrix": [1, 4], "x":4, "y":1.5}, - {"matrix": [1, 5], "x":5, "y":1.5}, - {"matrix": [1, 6], "x":6, "y":1.5}, - {"matrix": [1, 7], "x":7, "y":1.5}, - {"matrix": [1, 8], "x":8, "y":1.5}, - {"matrix": [1, 9], "x":9, "y":1.5}, - {"matrix": [1, 10], "x":10, "y":1.5}, - {"matrix": [1, 11], "x":11, "y":1.5}, - {"matrix": [1, 12], "x":12, "y":1.5}, - {"matrix": [2, 13], "x":13, "y":1.5}, - {"matrix": [1, 13], "x":14, "y":1.5}, - {"matrix": [1, 14], "x":15, "y":1.5}, - {"matrix": [2, 0], "x":0, "y":2.5, "w":1.5}, - {"matrix": [2, 1], "x":1.5, "y":2.5}, - {"matrix": [2, 2], "x":2.5, "y":2.5}, - {"matrix": [2, 3], "x":3.5, "y":2.5}, - {"matrix": [2, 4], "x":4.5, "y":2.5}, - {"matrix": [2, 5], "x":5.5, "y":2.5}, - {"matrix": [2, 6], "x":6.5, "y":2.5}, - {"matrix": [2, 7], "x":7.5, "y":2.5}, - {"matrix": [2, 8], "x":8.5, "y":2.5}, - {"matrix": [2, 9], "x":9.5, "y":2.5}, - {"matrix": [2, 10], "x":10.5, "y":2.5}, - {"matrix": [2, 11], "x":11.5, "y":2.5}, - {"matrix": [2, 12], "x":12.5, "y":2.5}, - {"matrix": [3, 12], "x":13.5, "y":2.5, "w":1.5}, - {"matrix": [2, 14], "x":15, "y":2.5}, - {"matrix": [3, 0], "x":0, "y":3.5, "w":1.75}, - {"matrix": [3, 1], "x":1.75, "y":3.5}, - {"matrix": [3, 2], "x":2.75, "y":3.5}, - {"matrix": [3, 3], "x":3.75, "y":3.5}, - {"matrix": [3, 4], "x":4.75, "y":3.5}, - {"matrix": [3, 5], "x":5.75, "y":3.5}, - {"matrix": [3, 6], "x":6.75, "y":3.5}, - {"matrix": [3, 7], "x":7.75, "y":3.5}, - {"matrix": [3, 8], "x":8.75, "y":3.5}, - {"matrix": [3, 9], "x":9.75, "y":3.5}, - {"matrix": [3, 10], "x":10.75, "y":3.5}, - {"matrix": [3, 11], "x":11.75, "y":3.5}, - {"matrix": [3, 13], "x":12.75, "y":3.5, "w":2.25}, - {"matrix": [3, 14], "x":15, "y":3.5}, - {"matrix": [4, 0], "x":0, "y":4.5, "w":1.25}, - {"matrix": [5, 3], "x":1.25, "y":4.5}, - {"matrix": [4, 1], "x":2.25, "y":4.5}, - {"matrix": [4, 2], "x":3.25, "y":4.5}, - {"matrix": [4, 3], "x":4.25, "y":4.5}, - {"matrix": [4, 4], "x":5.25, "y":4.5}, - {"matrix": [4, 5], "x":6.25, "y":4.5}, - {"matrix": [4, 6], "x":7.25, "y":4.5}, - {"matrix": [4, 7], "x":8.25, "y":4.5}, - {"matrix": [4, 8], "x":9.25, "y":4.5}, - {"matrix": [4, 9], "x":10.25, "y":4.5}, - {"matrix": [4, 10], "x":11.25, "y":4.5}, - {"matrix": [4, 11], "x":12.25, "y":4.5, "w":1.75}, - {"matrix": [4, 13], "x":14, "y":4.5}, - {"matrix": [5, 0], "x":0, "y":5.5, "w":1.25}, - {"matrix": [5, 1], "x":1.25, "y":5.5, "w":1.25}, - {"matrix": [5, 2], "x":2.5, "y":5.5, "w":1.25}, - {"matrix": [5, 5], "x":3.75, "y":5.5, "w":6.25}, - {"matrix": [5, 9], "x":10, "y":5.5, "w":1.25}, - {"matrix": [5, 10], "x":11.25, "y":5.5, "w":1.25}, - {"matrix": [5, 12], "x":13, "y":5.5}, - {"matrix": [5, 13], "x":14, "y":5.5}, - {"matrix": [5, 14], "x":15, "y":5.5} + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 6, "y": 0}, + {"matrix": [0, 6], "x": 7, "y": 0}, + {"matrix": [0, 7], "x": 8, "y": 0}, + {"matrix": [0, 8], "x": 9, "y": 0}, + {"matrix": [0, 9], "x": 10.5, "y": 0}, + {"matrix": [0, 10], "x": 11.5, "y": 0}, + {"matrix": [0, 11], "x": 12.5, "y": 0}, + {"matrix": [0, 12], "x": 13.5, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [2, 13], "x": 13, "y": 1.5}, + {"matrix": [1, 13], "x": 14, "y": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [3, 12], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 14], "x": 15, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [3, 14], "x": 15, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"matrix": [5, 3], "x": 1.25, "y": 4.5}, + {"matrix": [4, 1], "x": 2.25, "y": 4.5}, + {"matrix": [4, 2], "x": 3.25, "y": 4.5}, + {"matrix": [4, 3], "x": 4.25, "y": 4.5}, + {"matrix": [4, 4], "x": 5.25, "y": 4.5}, + {"matrix": [4, 5], "x": 6.25, "y": 4.5}, + {"matrix": [4, 6], "x": 7.25, "y": 4.5}, + {"matrix": [4, 7], "x": 8.25, "y": 4.5}, + {"matrix": [4, 8], "x": 9.25, "y": 4.5}, + {"matrix": [4, 9], "x": 10.25, "y": 4.5}, + {"matrix": [4, 10], "x": 11.25, "y": 4.5}, + {"matrix": [4, 11], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.5, "w": 1.25}, + {"matrix": [5, 10], "x": 11.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 12], "x": 13, "y": 5.5}, + {"matrix": [5, 13], "x": 14, "y": 5.5}, + {"matrix": [5, 14], "x": 15, "y": 5.5} + ] + }, + "LAYOUT_ansi_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 6, "y": 0}, + {"matrix": [0, 6], "x": 7, "y": 0}, + {"matrix": [0, 7], "x": 8, "y": 0}, + {"matrix": [0, 8], "x": 9, "y": 0}, + {"matrix": [0, 9], "x": 10.5, "y": 0}, + {"matrix": [0, 10], "x": 11.5, "y": 0}, + {"matrix": [0, 11], "x": 12.5, "y": 0}, + {"matrix": [0, 12], "x": 13.5, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, + {"matrix": [1, 14], "x": 15, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [3, 12], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 14], "x": 15, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [3, 14], "x": 15, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 1], "x": 2.25, "y": 4.5}, + {"matrix": [4, 2], "x": 3.25, "y": 4.5}, + {"matrix": [4, 3], "x": 4.25, "y": 4.5}, + {"matrix": [4, 4], "x": 5.25, "y": 4.5}, + {"matrix": [4, 5], "x": 6.25, "y": 4.5}, + {"matrix": [4, 6], "x": 7.25, "y": 4.5}, + {"matrix": [4, 7], "x": 8.25, "y": 4.5}, + {"matrix": [4, 8], "x": 9.25, "y": 4.5}, + {"matrix": [4, 9], "x": 10.25, "y": 4.5}, + {"matrix": [4, 10], "x": 11.25, "y": 4.5}, + {"matrix": [4, 11], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.5, "w": 1.25}, + {"matrix": [5, 10], "x": 11.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 12], "x": 13, "y": 5.5}, + {"matrix": [5, 13], "x": 14, "y": 5.5}, + {"matrix": [5, 14], "x": 15, "y": 5.5} + ] + }, + "LAYOUT_ansi_blocker_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 6, "y": 0}, + {"matrix": [0, 6], "x": 7, "y": 0}, + {"matrix": [0, 7], "x": 8, "y": 0}, + {"matrix": [0, 8], "x": 9, "y": 0}, + {"matrix": [0, 9], "x": 10.5, "y": 0}, + {"matrix": [0, 10], "x": 11.5, "y": 0}, + {"matrix": [0, 11], "x": 12.5, "y": 0}, + {"matrix": [0, 12], "x": 13.5, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [2, 13], "x": 13, "y": 1.5}, + {"matrix": [1, 13], "x": 14, "y": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [3, 12], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 14], "x": 15, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [3, 14], "x": 15, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 1], "x": 2.25, "y": 4.5}, + {"matrix": [4, 2], "x": 3.25, "y": 4.5}, + {"matrix": [4, 3], "x": 4.25, "y": 4.5}, + {"matrix": [4, 4], "x": 5.25, "y": 4.5}, + {"matrix": [4, 5], "x": 6.25, "y": 4.5}, + {"matrix": [4, 6], "x": 7.25, "y": 4.5}, + {"matrix": [4, 7], "x": 8.25, "y": 4.5}, + {"matrix": [4, 8], "x": 9.25, "y": 4.5}, + {"matrix": [4, 9], "x": 10.25, "y": 4.5}, + {"matrix": [4, 10], "x": 11.25, "y": 4.5}, + {"matrix": [4, 11], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.5, "w": 1.25}, + {"matrix": [5, 10], "x": 11.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 12], "x": 13, "y": 5.5}, + {"matrix": [5, 13], "x": 14, "y": 5.5}, + {"matrix": [5, 14], "x": 15, "y": 5.5} + ] + }, + "LAYOUT_ansi_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 6, "y": 0}, + {"matrix": [0, 6], "x": 7, "y": 0}, + {"matrix": [0, 7], "x": 8, "y": 0}, + {"matrix": [0, 8], "x": 9, "y": 0}, + {"matrix": [0, 9], "x": 10.5, "y": 0}, + {"matrix": [0, 10], "x": 11.5, "y": 0}, + {"matrix": [0, 11], "x": 12.5, "y": 0}, + {"matrix": [0, 12], "x": 13.5, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, + {"matrix": [1, 14], "x": 15, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [3, 12], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 14], "x": 15, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [3, 14], "x": 15, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 1], "x": 2.25, "y": 4.5}, + {"matrix": [4, 2], "x": 3.25, "y": 4.5}, + {"matrix": [4, 3], "x": 4.25, "y": 4.5}, + {"matrix": [4, 4], "x": 5.25, "y": 4.5}, + {"matrix": [4, 5], "x": 6.25, "y": 4.5}, + {"matrix": [4, 6], "x": 7.25, "y": 4.5}, + {"matrix": [4, 7], "x": 8.25, "y": 4.5}, + {"matrix": [4, 8], "x": 9.25, "y": 4.5}, + {"matrix": [4, 9], "x": 10.25, "y": 4.5}, + {"matrix": [4, 10], "x": 11.25, "y": 4.5}, + {"matrix": [4, 11], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 5], "x": 4, "y": 5.5, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5.5}, + {"matrix": [5, 13], "x": 14, "y": 5.5}, + {"matrix": [5, 14], "x": 15, "y": 5.5} + ] + }, + "LAYOUT_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 6, "y": 0}, + {"matrix": [0, 6], "x": 7, "y": 0}, + {"matrix": [0, 7], "x": 8, "y": 0}, + {"matrix": [0, 8], "x": 9, "y": 0}, + {"matrix": [0, 9], "x": 10.5, "y": 0}, + {"matrix": [0, 10], "x": 11.5, "y": 0}, + {"matrix": [0, 11], "x": 12.5, "y": 0}, + {"matrix": [0, 12], "x": 13.5, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [2, 13], "x": 13, "y": 1.5}, + {"matrix": [1, 13], "x": 14, "y": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [3, 12], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 14], "x": 15, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [3, 14], "x": 15, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 1], "x": 2.25, "y": 4.5}, + {"matrix": [4, 2], "x": 3.25, "y": 4.5}, + {"matrix": [4, 3], "x": 4.25, "y": 4.5}, + {"matrix": [4, 4], "x": 5.25, "y": 4.5}, + {"matrix": [4, 5], "x": 6.25, "y": 4.5}, + {"matrix": [4, 6], "x": 7.25, "y": 4.5}, + {"matrix": [4, 7], "x": 8.25, "y": 4.5}, + {"matrix": [4, 8], "x": 9.25, "y": 4.5}, + {"matrix": [4, 9], "x": 10.25, "y": 4.5}, + {"matrix": [4, 10], "x": 11.25, "y": 4.5}, + {"matrix": [4, 11], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 5], "x": 4, "y": 5.5, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5.5}, + {"matrix": [5, 13], "x": 14, "y": 5.5}, + {"matrix": [5, 14], "x": 15, "y": 5.5} + ] + }, + "LAYOUT_iso_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 6, "y": 0}, + {"matrix": [0, 6], "x": 7, "y": 0}, + {"matrix": [0, 7], "x": 8, "y": 0}, + {"matrix": [0, 8], "x": 9, "y": 0}, + {"matrix": [0, 9], "x": 10.5, "y": 0}, + {"matrix": [0, 10], "x": 11.5, "y": 0}, + {"matrix": [0, 11], "x": 12.5, "y": 0}, + {"matrix": [0, 12], "x": 13.5, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, + {"matrix": [1, 14], "x": 15, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 14], "x": 15, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 12], "x": 12.75, "y": 3.5}, + {"matrix": [3, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"matrix": [3, 14], "x": 15, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"matrix": [5, 3], "x": 1.25, "y": 4.5}, + {"matrix": [4, 1], "x": 2.25, "y": 4.5}, + {"matrix": [4, 2], "x": 3.25, "y": 4.5}, + {"matrix": [4, 3], "x": 4.25, "y": 4.5}, + {"matrix": [4, 4], "x": 5.25, "y": 4.5}, + {"matrix": [4, 5], "x": 6.25, "y": 4.5}, + {"matrix": [4, 6], "x": 7.25, "y": 4.5}, + {"matrix": [4, 7], "x": 8.25, "y": 4.5}, + {"matrix": [4, 8], "x": 9.25, "y": 4.5}, + {"matrix": [4, 9], "x": 10.25, "y": 4.5}, + {"matrix": [4, 10], "x": 11.25, "y": 4.5}, + {"matrix": [4, 11], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.5, "w": 1.25}, + {"matrix": [5, 10], "x": 11.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 12], "x": 13, "y": 5.5}, + {"matrix": [5, 13], "x": 14, "y": 5.5}, + {"matrix": [5, 14], "x": 15, "y": 5.5} + ] + }, + "LAYOUT_iso_blocker_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 6, "y": 0}, + {"matrix": [0, 6], "x": 7, "y": 0}, + {"matrix": [0, 7], "x": 8, "y": 0}, + {"matrix": [0, 8], "x": 9, "y": 0}, + {"matrix": [0, 9], "x": 10.5, "y": 0}, + {"matrix": [0, 10], "x": 11.5, "y": 0}, + {"matrix": [0, 11], "x": 12.5, "y": 0}, + {"matrix": [0, 12], "x": 13.5, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [2, 13], "x": 13, "y": 1.5}, + {"matrix": [1, 13], "x": 14, "y": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 14], "x": 15, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 12], "x": 12.75, "y": 3.5}, + {"matrix": [3, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"matrix": [3, 14], "x": 15, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"matrix": [5, 3], "x": 1.25, "y": 4.5}, + {"matrix": [4, 1], "x": 2.25, "y": 4.5}, + {"matrix": [4, 2], "x": 3.25, "y": 4.5}, + {"matrix": [4, 3], "x": 4.25, "y": 4.5}, + {"matrix": [4, 4], "x": 5.25, "y": 4.5}, + {"matrix": [4, 5], "x": 6.25, "y": 4.5}, + {"matrix": [4, 6], "x": 7.25, "y": 4.5}, + {"matrix": [4, 7], "x": 8.25, "y": 4.5}, + {"matrix": [4, 8], "x": 9.25, "y": 4.5}, + {"matrix": [4, 9], "x": 10.25, "y": 4.5}, + {"matrix": [4, 10], "x": 11.25, "y": 4.5}, + {"matrix": [4, 11], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.5, "w": 1.25}, + {"matrix": [5, 10], "x": 11.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 12], "x": 13, "y": 5.5}, + {"matrix": [5, 13], "x": 14, "y": 5.5}, + {"matrix": [5, 14], "x": 15, "y": 5.5} + ] + }, + "LAYOUT_iso_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 6, "y": 0}, + {"matrix": [0, 6], "x": 7, "y": 0}, + {"matrix": [0, 7], "x": 8, "y": 0}, + {"matrix": [0, 8], "x": 9, "y": 0}, + {"matrix": [0, 9], "x": 10.5, "y": 0}, + {"matrix": [0, 10], "x": 11.5, "y": 0}, + {"matrix": [0, 11], "x": 12.5, "y": 0}, + {"matrix": [0, 12], "x": 13.5, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, + {"matrix": [1, 14], "x": 15, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 14], "x": 15, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 12], "x": 12.75, "y": 3.5}, + {"matrix": [3, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"matrix": [3, 14], "x": 15, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"matrix": [5, 3], "x": 1.25, "y": 4.5}, + {"matrix": [4, 1], "x": 2.25, "y": 4.5}, + {"matrix": [4, 2], "x": 3.25, "y": 4.5}, + {"matrix": [4, 3], "x": 4.25, "y": 4.5}, + {"matrix": [4, 4], "x": 5.25, "y": 4.5}, + {"matrix": [4, 5], "x": 6.25, "y": 4.5}, + {"matrix": [4, 6], "x": 7.25, "y": 4.5}, + {"matrix": [4, 7], "x": 8.25, "y": 4.5}, + {"matrix": [4, 8], "x": 9.25, "y": 4.5}, + {"matrix": [4, 9], "x": 10.25, "y": 4.5}, + {"matrix": [4, 10], "x": 11.25, "y": 4.5}, + {"matrix": [4, 11], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 5], "x": 4, "y": 5.5, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5.5}, + {"matrix": [5, 13], "x": 14, "y": 5.5}, + {"matrix": [5, 14], "x": 15, "y": 5.5} + ] + }, + "LAYOUT_iso_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 6, "y": 0}, + {"matrix": [0, 6], "x": 7, "y": 0}, + {"matrix": [0, 7], "x": 8, "y": 0}, + {"matrix": [0, 8], "x": 9, "y": 0}, + {"matrix": [0, 9], "x": 10.5, "y": 0}, + {"matrix": [0, 10], "x": 11.5, "y": 0}, + {"matrix": [0, 11], "x": 12.5, "y": 0}, + {"matrix": [0, 12], "x": 13.5, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [2, 13], "x": 13, "y": 1.5}, + {"matrix": [1, 13], "x": 14, "y": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 14], "x": 15, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 12], "x": 12.75, "y": 3.5}, + {"matrix": [3, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"matrix": [3, 14], "x": 15, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"matrix": [5, 3], "x": 1.25, "y": 4.5}, + {"matrix": [4, 1], "x": 2.25, "y": 4.5}, + {"matrix": [4, 2], "x": 3.25, "y": 4.5}, + {"matrix": [4, 3], "x": 4.25, "y": 4.5}, + {"matrix": [4, 4], "x": 5.25, "y": 4.5}, + {"matrix": [4, 5], "x": 6.25, "y": 4.5}, + {"matrix": [4, 6], "x": 7.25, "y": 4.5}, + {"matrix": [4, 7], "x": 8.25, "y": 4.5}, + {"matrix": [4, 8], "x": 9.25, "y": 4.5}, + {"matrix": [4, 9], "x": 10.25, "y": 4.5}, + {"matrix": [4, 10], "x": 11.25, "y": 4.5}, + {"matrix": [4, 11], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 5], "x": 4, "y": 5.5, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5.5}, + {"matrix": [5, 13], "x": 14, "y": 5.5}, + {"matrix": [5, 14], "x": 15, "y": 5.5} ] } } diff --git a/keyboards/owlab/jelly_evolv/solder/keymaps/default/keymap.c b/keyboards/owlab/jelly_evolv/solder/keymaps/default/keymap.c index b45d40340a..a10c76f97f 100644 --- a/keyboards/owlab/jelly_evolv/solder/keymaps/default/keymap.c +++ b/keyboards/owlab/jelly_evolv/solder/keymaps/default/keymap.c @@ -18,7 +18,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_all( KC_ESC, 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_PSCR, KC_GRV, 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_BSLS, KC_BSPC, KC_DEL, 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_PGUP, @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_all( 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/owlab/jelly_evolv/solder/keymaps/via/keymap.c b/keyboards/owlab/jelly_evolv/solder/keymaps/via/keymap.c index b45d40340a..a10c76f97f 100644 --- a/keyboards/owlab/jelly_evolv/solder/keymaps/via/keymap.c +++ b/keyboards/owlab/jelly_evolv/solder/keymaps/via/keymap.c @@ -18,7 +18,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_all( KC_ESC, 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_PSCR, KC_GRV, 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_BSLS, KC_BSPC, KC_DEL, 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_PGUP, @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_all( 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/owlab/jelly_evolv/solder/matrix_diagram.md b/keyboards/owlab/jelly_evolv/solder/matrix_diagram.md new file mode 100644 index 0000000000..2b0be0a5b8 --- /dev/null +++ b/keyboards/owlab/jelly_evolv/solder/matrix_diagram.md @@ -0,0 +1,27 @@ +# Matrix Diagram for OwLab Jelly Evolv Solder + +``` +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┐ +│00 │ │01 │02 │03 │04 │ │05 │06 │07 │08 │ │09 │0A │0B │0C │ │0E │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │2D │1D │1E │ │1D │ 2u Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ └─┬─────┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │3C │2E │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐3D │ ISO Enter +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │3E │ │3C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┘ └───┴────┘ +│40 │53 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4D │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┐ +│50 │51 │52 │55 │59 │5A │ │5C │5D │5E │ +└────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ +┌────────┐ +│40 │ 2.25u LShift +└────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┐ +│50 │51 │52 │55 │5A │ Blocker Tsangan +└─────┴───┴─────┴───────────────────────────┴─────┘ +┌─────┬─────┬─┬───┬───────────────────────────┬───┐ +│50 │51 │ │52 │55 │5A │ +└─────┴─────┘ └───┴───────────────────────────┴───┘ +``` From 06dfa1cafcc73befb687b4eabae55862d0555991 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 14 Sep 2023 23:18:28 -0700 Subject: [PATCH 064/496] Nix Studio Lilith Layout Additions (#22028) * Add layout/matrix diagram [docs] * Sort keys in `info.json` [style] * Add `LAYOUT_65_ansi_blocker_split_bs` [enhancement] * Add `LAYOUT_65_ansi_blocker_tsangan` [enhancement] * Add `LAYOUT_65_iso_blocker_split_bs` [enhancement] * Add `LAYOUT_65_iso_blocker_tsangan_split_bs` [enhancement] * Extend Community Layout support [enhancement] --- keyboards/nix_studio/lilith/info.json | 1032 +++++++++++------ keyboards/nix_studio/lilith/matrix_diagram.md | 24 + 2 files changed, 706 insertions(+), 350 deletions(-) create mode 100644 keyboards/nix_studio/lilith/matrix_diagram.md diff --git a/keyboards/nix_studio/lilith/info.json b/keyboards/nix_studio/lilith/info.json index e648cf98fb..7fe03ef806 100644 --- a/keyboards/nix_studio/lilith/info.json +++ b/keyboards/nix_studio/lilith/info.json @@ -19,370 +19,702 @@ "processor": "STM32F411", "url": "https://www.antipode.no/", "usb": { - "device_version": "1.0.0", + "vid": "0x6E78", "pid": "0x4C49", - "vid": "0x6E78" + "device_version": "1.0.0" }, - "community_layouts": [ "65_ansi_blocker", "65_iso_blocker", "65_ansi_blocker_tsangan_split_bs", "65_iso_blocker_tsangan" ], + "community_layouts": [ + "65_ansi_blocker", + "65_ansi_blocker_split_bs", + "65_ansi_blocker_tsangan", + "65_ansi_blocker_tsangan_split_bs", + "65_iso_blocker", + "65_iso_blocker_split_bs", + "65_iso_blocker_tsangan", + "65_iso_blocker_tsangan_split_bs" + ], "layouts": { "LAYOUT_all": { "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 1], "x": 1, "y": 0 }, - { "matrix": [0, 2], "x": 2, "y": 0 }, - { "matrix": [0, 3], "x": 3, "y": 0 }, - { "matrix": [0, 4], "x": 4, "y": 0 }, - { "matrix": [0, 5], "x": 5, "y": 0 }, - { "matrix": [0, 6], "x": 6, "y": 0 }, - { "matrix": [0, 7], "x": 7, "y": 0 }, - { "matrix": [0, 8], "x": 8, "y": 0 }, - { "matrix": [0, 9], "x": 9, "y": 0 }, - { "matrix": [0, 10], "x": 10, "y": 0 }, - { "matrix": [0, 11], "x": 11, "y": 0 }, - { "matrix": [0, 12], "x": 12, "y": 0 }, - { "matrix": [0, 13], "x": 13, "y": 0 }, - { "matrix": [0, 14], "x": 14, "y": 0 }, - { "matrix": [0, 15], "x": 15, "y": 0 }, - { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, - { "matrix": [1, 1], "x": 1.5, "y": 1 }, - { "matrix": [1, 2], "x": 2.5, "y": 1 }, - { "matrix": [1, 3], "x": 3.5, "y": 1 }, - { "matrix": [1, 4], "x": 4.5, "y": 1 }, - { "matrix": [1, 5], "x": 5.5, "y": 1 }, - { "matrix": [1, 6], "x": 6.5, "y": 1 }, - { "matrix": [1, 7], "x": 7.5, "y": 1 }, - { "matrix": [1, 8], "x": 8.5, "y": 1 }, - { "matrix": [1, 9], "x": 9.5, "y": 1 }, - { "matrix": [1, 10], "x": 10.5, "y": 1 }, - { "matrix": [1, 11], "x": 11.5, "y": 1 }, - { "matrix": [1, 12], "x": 12.5, "y": 1 }, - { "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, - { "matrix": [1, 15], "x": 15, "y": 1 }, - { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, - { "matrix": [2, 1], "x": 1.75, "y": 2 }, - { "matrix": [2, 2], "x": 2.75, "y": 2 }, - { "matrix": [2, 3], "x": 3.75, "y": 2 }, - { "matrix": [2, 4], "x": 4.75, "y": 2 }, - { "matrix": [2, 5], "x": 5.75, "y": 2 }, - { "matrix": [2, 6], "x": 6.75, "y": 2 }, - { "matrix": [2, 7], "x": 7.75, "y": 2 }, - { "matrix": [2, 8], "x": 8.75, "y": 2 }, - { "matrix": [2, 9], "x": 9.75, "y": 2 }, - { "matrix": [2, 10], "x": 10.75, "y": 2 }, - { "matrix": [2, 11], "x": 11.75, "y": 2 }, - { "matrix": [2, 12], "x": 12.75, "y": 2 }, - { "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 2 }, - { "matrix": [2, 15], "x": 15, "y": 2 }, - { "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, - { "matrix": [3, 1], "x": 1.25, "y": 3 }, - { "matrix": [3, 2], "x": 2.25, "y": 3 }, - { "matrix": [3, 3], "x": 3.25, "y": 3 }, - { "matrix": [3, 4], "x": 4.25, "y": 3 }, - { "matrix": [3, 5], "x": 5.25, "y": 3 }, - { "matrix": [3, 6], "x": 6.25, "y": 3 }, - { "matrix": [3, 7], "x": 7.25, "y": 3 }, - { "matrix": [3, 8], "x": 8.25, "y": 3 }, - { "matrix": [3, 9], "x": 9.25, "y": 3 }, - { "matrix": [3, 10], "x": 10.25, "y": 3 }, - { "matrix": [3, 11], "x": 11.25, "y": 3 }, - { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, - { "matrix": [3, 13], "x": 14, "y": 3 }, - { "matrix": [3, 15], "x": 15, "y": 3 }, - { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, - { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, - { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, - { "matrix": [4, 7], "w": 6.25, "x": 3.75, "y": 4 }, - { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, - { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, - { "matrix": [4, 12], "x": 13, "y": 4 }, - { "matrix": [4, 13], "x": 14, "y": 4 }, - { "matrix": [4, 15], "x": 15, "y": 4 } + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} ] - }, + }, "LAYOUT_65_ansi_blocker": { "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 1], "x": 1, "y": 0 }, - { "matrix": [0, 2], "x": 2, "y": 0 }, - { "matrix": [0, 3], "x": 3, "y": 0 }, - { "matrix": [0, 4], "x": 4, "y": 0 }, - { "matrix": [0, 5], "x": 5, "y": 0 }, - { "matrix": [0, 6], "x": 6, "y": 0 }, - { "matrix": [0, 7], "x": 7, "y": 0 }, - { "matrix": [0, 8], "x": 8, "y": 0 }, - { "matrix": [0, 9], "x": 9, "y": 0 }, - { "matrix": [0, 10], "x": 10, "y": 0 }, - { "matrix": [0, 11], "x": 11, "y": 0 }, - { "matrix": [0, 12], "x": 12, "y": 0 }, - { "matrix": [0, 13], "w": 2, "x": 13, "y": 0 }, - { "matrix": [0, 15], "x": 15, "y": 0 }, - { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, - { "matrix": [1, 1], "x": 1.5, "y": 1 }, - { "matrix": [1, 2], "x": 2.5, "y": 1 }, - { "matrix": [1, 3], "x": 3.5, "y": 1 }, - { "matrix": [1, 4], "x": 4.5, "y": 1 }, - { "matrix": [1, 5], "x": 5.5, "y": 1 }, - { "matrix": [1, 6], "x": 6.5, "y": 1 }, - { "matrix": [1, 7], "x": 7.5, "y": 1 }, - { "matrix": [1, 8], "x": 8.5, "y": 1 }, - { "matrix": [1, 9], "x": 9.5, "y": 1 }, - { "matrix": [1, 10], "x": 10.5, "y": 1 }, - { "matrix": [1, 11], "x": 11.5, "y": 1 }, - { "matrix": [1, 12], "x": 12.5, "y": 1 }, - { "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, - { "matrix": [1, 15], "x": 15, "y": 1 }, - { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, - { "matrix": [2, 1], "x": 1.75, "y": 2 }, - { "matrix": [2, 2], "x": 2.75, "y": 2 }, - { "matrix": [2, 3], "x": 3.75, "y": 2 }, - { "matrix": [2, 4], "x": 4.75, "y": 2 }, - { "matrix": [2, 5], "x": 5.75, "y": 2 }, - { "matrix": [2, 6], "x": 6.75, "y": 2 }, - { "matrix": [2, 7], "x": 7.75, "y": 2 }, - { "matrix": [2, 8], "x": 8.75, "y": 2 }, - { "matrix": [2, 9], "x": 9.75, "y": 2 }, - { "matrix": [2, 10], "x": 10.75, "y": 2 }, - { "matrix": [2, 11], "x": 11.75, "y": 2 }, - { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, - { "matrix": [2, 15], "x": 15, "y": 2 }, - { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, - { "matrix": [3, 2], "x": 2.25, "y": 3 }, - { "matrix": [3, 3], "x": 3.25, "y": 3 }, - { "matrix": [3, 4], "x": 4.25, "y": 3 }, - { "matrix": [3, 5], "x": 5.25, "y": 3 }, - { "matrix": [3, 6], "x": 6.25, "y": 3 }, - { "matrix": [3, 7], "x": 7.25, "y": 3 }, - { "matrix": [3, 8], "x": 8.25, "y": 3 }, - { "matrix": [3, 9], "x": 9.25, "y": 3 }, - { "matrix": [3, 10], "x": 10.25, "y": 3 }, - { "matrix": [3, 11], "x": 11.25, "y": 3 }, - { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, - { "matrix": [3, 13], "x": 14, "y": 3 }, - { "matrix": [3, 15], "x": 15, "y": 3 }, - { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, - { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, - { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, - { "matrix": [4, 7], "w": 6.25, "x": 3.75, "y": 4 }, - { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, - { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, - { "matrix": [4, 12], "x": 13, "y": 4 }, - { "matrix": [4, 13], "x": 14, "y": 4 }, - { "matrix": [4, 15], "x": 15, "y": 4 } + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} ] - }, - "LAYOUT_65_iso_blocker": { + }, + "LAYOUT_65_ansi_blocker_split_bs": { "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 1], "x": 1, "y": 0 }, - { "matrix": [0, 2], "x": 2, "y": 0 }, - { "matrix": [0, 3], "x": 3, "y": 0 }, - { "matrix": [0, 4], "x": 4, "y": 0 }, - { "matrix": [0, 5], "x": 5, "y": 0 }, - { "matrix": [0, 6], "x": 6, "y": 0 }, - { "matrix": [0, 7], "x": 7, "y": 0 }, - { "matrix": [0, 8], "x": 8, "y": 0 }, - { "matrix": [0, 9], "x": 9, "y": 0 }, - { "matrix": [0, 10], "x": 10, "y": 0 }, - { "matrix": [0, 11], "x": 11, "y": 0 }, - { "matrix": [0, 12], "x": 12, "y": 0 }, - { "matrix": [0, 13], "w": 2, "x": 13, "y": 0 }, - { "matrix": [0, 15], "x": 15, "y": 0 }, - { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, - { "matrix": [1, 1], "x": 1.5, "y": 1 }, - { "matrix": [1, 2], "x": 2.5, "y": 1 }, - { "matrix": [1, 3], "x": 3.5, "y": 1 }, - { "matrix": [1, 4], "x": 4.5, "y": 1 }, - { "matrix": [1, 5], "x": 5.5, "y": 1 }, - { "matrix": [1, 6], "x": 6.5, "y": 1 }, - { "matrix": [1, 7], "x": 7.5, "y": 1 }, - { "matrix": [1, 8], "x": 8.5, "y": 1 }, - { "matrix": [1, 9], "x": 9.5, "y": 1 }, - { "matrix": [1, 10], "x": 10.5, "y": 1 }, - { "matrix": [1, 11], "x": 11.5, "y": 1 }, - { "matrix": [1, 12], "x": 12.5, "y": 1 }, - { "matrix": [1, 15], "x": 15, "y": 1 }, - { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, - { "matrix": [2, 1], "x": 1.75, "y": 2 }, - { "matrix": [2, 2], "x": 2.75, "y": 2 }, - { "matrix": [2, 3], "x": 3.75, "y": 2 }, - { "matrix": [2, 4], "x": 4.75, "y": 2 }, - { "matrix": [2, 5], "x": 5.75, "y": 2 }, - { "matrix": [2, 6], "x": 6.75, "y": 2 }, - { "matrix": [2, 7], "x": 7.75, "y": 2 }, - { "matrix": [2, 8], "x": 8.75, "y": 2 }, - { "matrix": [2, 9], "x": 9.75, "y": 2 }, - { "matrix": [2, 10], "x": 10.75, "y": 2 }, - { "matrix": [2, 11], "x": 11.75, "y": 2 }, - { "matrix": [2, 12], "x": 12.75, "y": 2 }, - { "matrix": [2, 13], "w": 1.25, "h": 2, "x": 13.75, "y": 1 }, - { "matrix": [2, 15], "x": 15, "y": 2 }, - { "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, - { "matrix": [3, 1], "x": 1.25, "y": 3 }, - { "matrix": [3, 2], "x": 2.25, "y": 3 }, - { "matrix": [3, 3], "x": 3.25, "y": 3 }, - { "matrix": [3, 4], "x": 4.25, "y": 3 }, - { "matrix": [3, 5], "x": 5.25, "y": 3 }, - { "matrix": [3, 6], "x": 6.25, "y": 3 }, - { "matrix": [3, 7], "x": 7.25, "y": 3 }, - { "matrix": [3, 8], "x": 8.25, "y": 3 }, - { "matrix": [3, 9], "x": 9.25, "y": 3 }, - { "matrix": [3, 10], "x": 10.25, "y": 3 }, - { "matrix": [3, 11], "x": 11.25, "y": 3 }, - { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, - { "matrix": [3, 13], "x": 14, "y": 3 }, - { "matrix": [3, 15], "x": 15, "y": 3 }, - { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, - { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, - { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, - { "matrix": [4, 7], "w": 6.25, "x": 3.75, "y": 4 }, - { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, - { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, - { "matrix": [4, 12], "x": 13, "y": 4 }, - { "matrix": [4, 13], "x": 14, "y": 4 }, - { "matrix": [4, 15], "x": 15, "y": 4 } + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} ] - }, - "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + }, + "LAYOUT_65_ansi_blocker_tsangan": { "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 1], "x": 1, "y": 0 }, - { "matrix": [0, 2], "x": 2, "y": 0 }, - { "matrix": [0, 3], "x": 3, "y": 0 }, - { "matrix": [0, 4], "x": 4, "y": 0 }, - { "matrix": [0, 5], "x": 5, "y": 0 }, - { "matrix": [0, 6], "x": 6, "y": 0 }, - { "matrix": [0, 7], "x": 7, "y": 0 }, - { "matrix": [0, 8], "x": 8, "y": 0 }, - { "matrix": [0, 9], "x": 9, "y": 0 }, - { "matrix": [0, 10], "x": 10, "y": 0 }, - { "matrix": [0, 11], "x": 11, "y": 0 }, - { "matrix": [0, 12], "x": 12, "y": 0 }, - { "matrix": [0, 13], "x": 13, "y": 0 }, - { "matrix": [0, 14], "x": 14, "y": 0 }, - { "matrix": [0, 15], "x": 15, "y": 0 }, - { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, - { "matrix": [1, 1], "x": 1.5, "y": 1 }, - { "matrix": [1, 2], "x": 2.5, "y": 1 }, - { "matrix": [1, 3], "x": 3.5, "y": 1 }, - { "matrix": [1, 4], "x": 4.5, "y": 1 }, - { "matrix": [1, 5], "x": 5.5, "y": 1 }, - { "matrix": [1, 6], "x": 6.5, "y": 1 }, - { "matrix": [1, 7], "x": 7.5, "y": 1 }, - { "matrix": [1, 8], "x": 8.5, "y": 1 }, - { "matrix": [1, 9], "x": 9.5, "y": 1 }, - { "matrix": [1, 10], "x": 10.5, "y": 1 }, - { "matrix": [1, 11], "x": 11.5, "y": 1 }, - { "matrix": [1, 12], "x": 12.5, "y": 1 }, - { "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, - { "matrix": [1, 15], "x": 15, "y": 1 }, - { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, - { "matrix": [2, 1], "x": 1.75, "y": 2 }, - { "matrix": [2, 2], "x": 2.75, "y": 2 }, - { "matrix": [2, 3], "x": 3.75, "y": 2 }, - { "matrix": [2, 4], "x": 4.75, "y": 2 }, - { "matrix": [2, 5], "x": 5.75, "y": 2 }, - { "matrix": [2, 6], "x": 6.75, "y": 2 }, - { "matrix": [2, 7], "x": 7.75, "y": 2 }, - { "matrix": [2, 8], "x": 8.75, "y": 2 }, - { "matrix": [2, 9], "x": 9.75, "y": 2 }, - { "matrix": [2, 10], "x": 10.75, "y": 2 }, - { "matrix": [2, 11], "x": 11.75, "y": 2 }, - { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, - { "matrix": [2, 15], "x": 15, "y": 2 }, - { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, - { "matrix": [3, 2], "x": 2.25, "y": 3 }, - { "matrix": [3, 3], "x": 3.25, "y": 3 }, - { "matrix": [3, 4], "x": 4.25, "y": 3 }, - { "matrix": [3, 5], "x": 5.25, "y": 3 }, - { "matrix": [3, 6], "x": 6.25, "y": 3 }, - { "matrix": [3, 7], "x": 7.25, "y": 3 }, - { "matrix": [3, 8], "x": 8.25, "y": 3 }, - { "matrix": [3, 9], "x": 9.25, "y": 3 }, - { "matrix": [3, 10], "x": 10.25, "y": 3 }, - { "matrix": [3, 11], "x": 11.25, "y": 3 }, - { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, - { "matrix": [3, 13], "x": 14, "y": 3 }, - { "matrix": [3, 15], "x": 15, "y": 3 }, - { "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, - { "matrix": [4, 1], "w": 1, "x": 1.5, "y": 4 }, - { "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, - { "matrix": [4, 7], "w": 7, "x": 4, "y": 4 }, - { "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, - { "matrix": [4, 12], "x": 13, "y": 4 }, - { "matrix": [4, 13], "x": 14, "y": 4 }, - { "matrix": [4, 15], "x": 15, "y": 4 } + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} ] - }, - "LAYOUT_65_iso_blocker_tsangan": { + }, + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 1], "x": 1, "y": 0 }, - { "matrix": [0, 2], "x": 2, "y": 0 }, - { "matrix": [0, 3], "x": 3, "y": 0 }, - { "matrix": [0, 4], "x": 4, "y": 0 }, - { "matrix": [0, 5], "x": 5, "y": 0 }, - { "matrix": [0, 6], "x": 6, "y": 0 }, - { "matrix": [0, 7], "x": 7, "y": 0 }, - { "matrix": [0, 8], "x": 8, "y": 0 }, - { "matrix": [0, 9], "x": 9, "y": 0 }, - { "matrix": [0, 10], "x": 10, "y": 0 }, - { "matrix": [0, 11], "x": 11, "y": 0 }, - { "matrix": [0, 12], "x": 12, "y": 0 }, - { "matrix": [0, 13], "w": 2, "x": 13, "y": 0 }, - { "matrix": [0, 15], "x": 15, "y": 0 }, - { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, - { "matrix": [1, 1], "x": 1.5, "y": 1 }, - { "matrix": [1, 2], "x": 2.5, "y": 1 }, - { "matrix": [1, 3], "x": 3.5, "y": 1 }, - { "matrix": [1, 4], "x": 4.5, "y": 1 }, - { "matrix": [1, 5], "x": 5.5, "y": 1 }, - { "matrix": [1, 6], "x": 6.5, "y": 1 }, - { "matrix": [1, 7], "x": 7.5, "y": 1 }, - { "matrix": [1, 8], "x": 8.5, "y": 1 }, - { "matrix": [1, 9], "x": 9.5, "y": 1 }, - { "matrix": [1, 10], "x": 10.5, "y": 1 }, - { "matrix": [1, 11], "x": 11.5, "y": 1 }, - { "matrix": [1, 12], "x": 12.5, "y": 1 }, - { "matrix": [1, 15], "x": 15, "y": 1 }, - { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, - { "matrix": [2, 1], "x": 1.75, "y": 2 }, - { "matrix": [2, 2], "x": 2.75, "y": 2 }, - { "matrix": [2, 3], "x": 3.75, "y": 2 }, - { "matrix": [2, 4], "x": 4.75, "y": 2 }, - { "matrix": [2, 5], "x": 5.75, "y": 2 }, - { "matrix": [2, 6], "x": 6.75, "y": 2 }, - { "matrix": [2, 7], "x": 7.75, "y": 2 }, - { "matrix": [2, 8], "x": 8.75, "y": 2 }, - { "matrix": [2, 9], "x": 9.75, "y": 2 }, - { "matrix": [2, 10], "x": 10.75, "y": 2 }, - { "matrix": [2, 11], "x": 11.75, "y": 2 }, - { "matrix": [2, 12], "x": 12.75, "y": 2 }, - { "matrix": [2, 13], "w": 1.25, "h": 2, "x": 13.75, "y": 1 }, - { "matrix": [2, 15], "x": 15, "y": 2 }, - { "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, - { "matrix": [3, 1], "x": 1.25, "y": 3 }, - { "matrix": [3, 2], "x": 2.25, "y": 3 }, - { "matrix": [3, 3], "x": 3.25, "y": 3 }, - { "matrix": [3, 4], "x": 4.25, "y": 3 }, - { "matrix": [3, 5], "x": 5.25, "y": 3 }, - { "matrix": [3, 6], "x": 6.25, "y": 3 }, - { "matrix": [3, 7], "x": 7.25, "y": 3 }, - { "matrix": [3, 8], "x": 8.25, "y": 3 }, - { "matrix": [3, 9], "x": 9.25, "y": 3 }, - { "matrix": [3, 10], "x": 10.25, "y": 3 }, - { "matrix": [3, 11], "x": 11.25, "y": 3 }, - { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, - { "matrix": [3, 13], "x": 14, "y": 3 }, - { "matrix": [3, 15], "x": 15, "y": 3 }, - { "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, - { "matrix": [4, 1], "w": 1, "x": 1.5, "y": 4 }, - { "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, - { "matrix": [4, 7], "w": 7, "x": 4, "y": 4 }, - { "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, - { "matrix": [4, 12], "x": 13, "y": 4 }, - { "matrix": [4, 13], "x": 14, "y": 4 }, - { "matrix": [4, 15], "x": 15, "y": 4 } + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} ] - } + }, + "LAYOUT_65_iso_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + } } } diff --git a/keyboards/nix_studio/lilith/matrix_diagram.md b/keyboards/nix_studio/lilith/matrix_diagram.md new file mode 100644 index 0000000000..a37ebbad56 --- /dev/null +++ b/keyboards/nix_studio/lilith/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for Nix Studio Lilith + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │0F │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1F │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐2D │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │2F │ │2C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3F │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ +│40 │41 │42 │47 │4A │4B │ │4C │4D │4F │ +└────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ +┌────────┐ +│30 │ 2.25u LShift +└────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┐ +│40 │41 │42 │47 │4B │ Blocker Tsangan +└─────┴───┴─────┴───────────────────────────┴─────┘ +``` From 49f1cbd40eae67cde4c5fb03fe8c0db1e9522956 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:47:10 -0700 Subject: [PATCH 065/496] Neson Design Nico Layout Additions (#22027) * Add layout/matrix diagram [docs] * Rename `LAYOUT` to `LAYOUT_65_xt_ansi_blocker_split_bs` [refactor] * Add `LAYOUT_65_xt_ansi_blocker` [enhancement] * Add `LAYOUT_65_xt_ansi_blocker_tsangan` [enhancement] * Add `LAYOUT_65_xt_ansi_blocker_tsangan_split_bs` [enhancement] * Touch-up keymaps - grid-align keycodes - use four-space indent - use QMK-native keycode aliases [refactor] * Update `via` keymap Update the `via` keymaps to have the same key assignments as the `default` keymap, which is more fleshed out. [chore] --- keyboards/neson_design/nico/info.json | 274 +++++++++++++++++- .../nico/keymaps/default/keymap.c | 26 +- .../neson_design/nico/keymaps/via/keymap.c | 26 +- keyboards/neson_design/nico/matrix_diagram.md | 21 ++ 4 files changed, 322 insertions(+), 25 deletions(-) create mode 100644 keyboards/neson_design/nico/matrix_diagram.md diff --git a/keyboards/neson_design/nico/info.json b/keyboards/neson_design/nico/info.json index f21b644f56..477ac3ba7c 100644 --- a/keyboards/neson_design/nico/info.json +++ b/keyboards/neson_design/nico/info.json @@ -34,8 +34,11 @@ "pid": "0x6E65", "vid": "0x4E65" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_65_xt_ansi_blocker_split_bs" + }, "layouts": { - "LAYOUT": { + "LAYOUT_65_xt_ansi_blocker_split_bs": { "layout": [ { "label": "K017", "matrix": [0, 15], "x": 0, "y": 0 }, { "label": "K018", "matrix": [0, 16], "x": 1, "y": 0 }, @@ -116,6 +119,275 @@ { "label": "K4C", "matrix": [4, 12], "x": 16.5, "y": 4 }, { "label": "K4D", "matrix": [4, 13], "x": 17.5, "y": 4 } ] + }, + "LAYOUT_65_xt_ansi_blocker": { + "layout": [ + {"label": "F1", "matrix": [0, 15], "x": 0, "y": 0}, + {"label": "F2", "matrix": [0, 16], "x": 1, "y": 0}, + + {"label": "Esc", "matrix": [0, 0], "x": 2.5, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 3.5, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 4.5, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 5.5, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 6.5, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 7.5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 8.5, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 9.5, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 10.5, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 11.5, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 12.5, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 13.5, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 14.5, "y": 0}, + {"label": "Backspace", "matrix": [0, 14], "x": 15.5, "y": 0, "w": 2}, + {"label": "Print Screen", "matrix": [4, 14], "x": 17.5, "y": 0}, + + {"label": "F3", "matrix": [1, 15], "x": 0, "y": 1}, + {"label": "F4", "matrix": [1, 16], "x": 1, "y": 1}, + + {"label": "Tab", "matrix": [1, 0], "x": 2.5, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 4, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 6, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 7, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 8, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 9, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 10, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 11, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 12, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 13, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 14, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 15, "y": 1}, + {"label": "\\", "matrix": [1, 13], "x": 16, "y": 1, "w": 1.5}, + {"label": "Home", "matrix": [1, 14], "x": 17.5, "y": 1}, + + {"label": "F5", "matrix": [2, 15], "x": 0, "y": 2}, + {"label": "F6", "matrix": [2, 16], "x": 1, "y": 2}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 2.5, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 4.25, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 5.25, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 6.25, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 7.25, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 8.25, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 9.25, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 10.25, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 11.25, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 12.25, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 13.25, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 14.25, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 15.25, "y": 2, "w": 2.25}, + {"label": "End", "matrix": [2, 14], "x": 17.5, "y": 2}, + + {"label": "F7", "matrix": [3, 15], "x": 0, "y": 3}, + {"label": "F8", "matrix": [3, 16], "x": 1, "y": 3}, + + {"label": "Shift", "matrix": [3, 0], "x": 2.5, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 4.75, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 5.75, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 6.75, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 7.75, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 8.75, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 9.75, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 10.75, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 11.75, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 12.75, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 13.75, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 14.75, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 13], "x": 16.5, "y": 3}, + {"label": "Fn", "matrix": [3, 14], "x": 17.5, "y": 3}, + + {"label": "F9", "matrix": [4, 15], "x": 0, "y": 4}, + {"label": "F10", "matrix": [4, 16], "x": 1, "y": 4}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 1], "x": 3.75, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 8], "x": 6.25, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 9], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 10], "x": 13.75, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 11], "x": 15.5, "y": 4}, + {"label": "\u2193", "matrix": [4, 12], "x": 16.5, "y": 4}, + {"label": "\u2192", "matrix": [4, 13], "x": 17.5, "y": 4} + ] + }, + "LAYOUT_65_xt_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"label": "F1", "matrix": [0, 15], "x": 0, "y": 0}, + {"label": "F2", "matrix": [0, 16], "x": 1, "y": 0}, + + {"label": "Esc", "matrix": [0, 0], "x": 2.5, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 3.5, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 4.5, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 5.5, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 6.5, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 7.5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 8.5, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 9.5, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 10.5, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 11.5, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 12.5, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 13.5, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 14.5, "y": 0}, + {"label": "Delete", "matrix": [0, 13], "x": 15.5, "y": 0}, + {"label": "Backspace", "matrix": [0, 14], "x": 16.5, "y": 0}, + {"label": "Print Screen", "matrix": [4, 14], "x": 17.5, "y": 0}, + + {"label": "F3", "matrix": [1, 15], "x": 0, "y": 1}, + {"label": "F4", "matrix": [1, 16], "x": 1, "y": 1}, + + {"label": "Tab", "matrix": [1, 0], "x": 2.5, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 4, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 6, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 7, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 8, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 9, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 10, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 11, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 12, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 13, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 14, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 15, "y": 1}, + {"label": "\\", "matrix": [1, 13], "x": 16, "y": 1, "w": 1.5}, + {"label": "Home", "matrix": [1, 14], "x": 17.5, "y": 1}, + + {"label": "F5", "matrix": [2, 15], "x": 0, "y": 2}, + {"label": "F6", "matrix": [2, 16], "x": 1, "y": 2}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 2.5, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 4.25, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 5.25, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 6.25, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 7.25, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 8.25, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 9.25, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 10.25, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 11.25, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 12.25, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 13.25, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 14.25, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 15.25, "y": 2, "w": 2.25}, + {"label": "End", "matrix": [2, 14], "x": 17.5, "y": 2}, + + {"label": "F7", "matrix": [3, 15], "x": 0, "y": 3}, + {"label": "F8", "matrix": [3, 16], "x": 1, "y": 3}, + + {"label": "Shift", "matrix": [3, 0], "x": 2.5, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 4.75, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 5.75, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 6.75, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 7.75, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 8.75, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 9.75, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 10.75, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 11.75, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 12.75, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 13.75, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 14.75, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 13], "x": 16.5, "y": 3}, + {"label": "Fn", "matrix": [3, 14], "x": 17.5, "y": 3}, + + {"label": "F9", "matrix": [4, 15], "x": 0, "y": 4}, + {"label": "F10", "matrix": [4, 16], "x": 1, "y": 4}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "GUI", "matrix": [4, 1], "x": 4, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 8], "x": 6.5, "y": 4, "w": 7}, + {"label": "GUI", "matrix": [4, 10], "x": 13.5, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 11], "x": 15.5, "y": 4}, + {"label": "\u2193", "matrix": [4, 12], "x": 16.5, "y": 4}, + {"label": "\u2192", "matrix": [4, 13], "x": 17.5, "y": 4} + ] + }, + "LAYOUT_65_xt_ansi_blocker_tsangan": { + "layout": [ + {"label": "F1", "matrix": [0, 15], "x": 0, "y": 0}, + {"label": "F2", "matrix": [0, 16], "x": 1, "y": 0}, + + {"label": "Esc", "matrix": [0, 0], "x": 2.5, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 3.5, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 4.5, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 5.5, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 6.5, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 7.5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 8.5, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 9.5, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 10.5, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 11.5, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 12.5, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 13.5, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 14.5, "y": 0}, + {"label": "Backspace", "matrix": [0, 14], "x": 15.5, "y": 0, "w": 2}, + {"label": "Print Screen", "matrix": [4, 14], "x": 17.5, "y": 0}, + + {"label": "F3", "matrix": [1, 15], "x": 0, "y": 1}, + {"label": "F4", "matrix": [1, 16], "x": 1, "y": 1}, + + {"label": "Tab", "matrix": [1, 0], "x": 2.5, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 4, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 6, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 7, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 8, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 9, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 10, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 11, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 12, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 13, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 14, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 15, "y": 1}, + {"label": "\\", "matrix": [1, 13], "x": 16, "y": 1, "w": 1.5}, + {"label": "Home", "matrix": [1, 14], "x": 17.5, "y": 1}, + + {"label": "F5", "matrix": [2, 15], "x": 0, "y": 2}, + {"label": "F6", "matrix": [2, 16], "x": 1, "y": 2}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 2.5, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 4.25, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 5.25, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 6.25, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 7.25, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 8.25, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 9.25, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 10.25, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 11.25, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 12.25, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 13.25, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 14.25, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 15.25, "y": 2, "w": 2.25}, + {"label": "End", "matrix": [2, 14], "x": 17.5, "y": 2}, + + {"label": "F7", "matrix": [3, 15], "x": 0, "y": 3}, + {"label": "F8", "matrix": [3, 16], "x": 1, "y": 3}, + + {"label": "Shift", "matrix": [3, 0], "x": 2.5, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 4.75, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 5.75, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 6.75, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 7.75, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 8.75, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 9.75, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 10.75, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 11.75, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 12.75, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 13.75, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 14.75, "y": 3, "w": 1.75}, + {"label": "\u2191", "matrix": [3, 13], "x": 16.5, "y": 3}, + {"label": "Fn", "matrix": [3, 14], "x": 17.5, "y": 3}, + + {"label": "F9", "matrix": [4, 15], "x": 0, "y": 4}, + {"label": "F10", "matrix": [4, 16], "x": 1, "y": 4}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "GUI", "matrix": [4, 1], "x": 4, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 8], "x": 6.5, "y": 4, "w": 7}, + {"label": "GUI", "matrix": [4, 10], "x": 13.5, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 11], "x": 15.5, "y": 4}, + {"label": "\u2193", "matrix": [4, 12], "x": 16.5, "y": 4}, + {"label": "\u2192", "matrix": [4, 13], "x": 17.5, "y": 4} + ] } } } diff --git a/keyboards/neson_design/nico/keymaps/default/keymap.c b/keyboards/neson_design/nico/keymaps/default/keymap.c index d481379e21..845d7fdc4f 100644 --- a/keyboards/neson_design/nico/keymaps/default/keymap.c +++ b/keyboards/neson_design/nico/keymaps/default/keymap.c @@ -18,17 +18,19 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_F1, KC_F2, KC_ESC, 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_DEL, KC_BSPC, KC_PSCR, - KC_F3, KC_F4, 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_HOME, - KC_F5, KC_F6, 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_ENT, KC_END, - KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, KC_UP, MO(1), - KC_F9,KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_LEFT,KC_DOWN, KC_RIGHT), + [0] = LAYOUT_65_xt_ansi_blocker_split_bs( + KC_F1, KC_F2, KC_ESC, 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_DEL, KC_BSPC, KC_PSCR, + KC_F3, KC_F4, 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_HOME, + KC_F5, KC_F6, 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_ENT, KC_END, + KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT + ), - [1] = LAYOUT( - _______, _______, _______, 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_PSCR,_______, - _______, _______, QK_BOOT, RGB_TOG,RGB_MOD,_______, KC_F16, KC_F17,_______,_______,_______,_______,_______,KC_PGUP,KC_PGDN,_______,_______, - _______, _______, _______, _______,_______,_______,_______,_______,KC_LEFT,KC_DOWN, KC_UP,KC_RIGHT,KC_HOME, KC_END, _______,_______, - _______, _______, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, - _______, _______, _______,_______,_______, _______, _______,_______, _______,_______,_______), + [1] = LAYOUT_65_xt_ansi_blocker_split_bs( + _______, _______, _______, 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_PSCR, _______, + _______, _______, QK_BOOT, RGB_TOG, RGB_MOD, _______, KC_F16, KC_F17, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_HOME, KC_END, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), }; diff --git a/keyboards/neson_design/nico/keymaps/via/keymap.c b/keyboards/neson_design/nico/keymaps/via/keymap.c index 9de688505e..845d7fdc4f 100644 --- a/keyboards/neson_design/nico/keymaps/via/keymap.c +++ b/keyboards/neson_design/nico/keymaps/via/keymap.c @@ -18,17 +18,19 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_F1, KC_F2, KC_ESC, 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_DEL, KC_BSPC, KC_PSCR, - KC_F3, KC_F4, 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_HOME, - KC_F5, KC_F6, 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_ENT, KC_END, - KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, KC_UP, MO(1), - KC_F9,KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_LEFT,KC_DOWN, KC_RIGHT), + [0] = LAYOUT_65_xt_ansi_blocker_split_bs( + KC_F1, KC_F2, KC_ESC, 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_DEL, KC_BSPC, KC_PSCR, + KC_F3, KC_F4, 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_HOME, + KC_F5, KC_F6, 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_ENT, KC_END, + KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT + ), - [1] = LAYOUT( - _______, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, - _______, _______, QK_BOOT, RGB_TOG,RGB_MOD,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, - _______, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______, - _______, _______, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, - _______, _______, _______,_______,_______, _______, _______,_______, _______,_______,_______) + [1] = LAYOUT_65_xt_ansi_blocker_split_bs( + _______, _______, _______, 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_PSCR, _______, + _______, _______, QK_BOOT, RGB_TOG, RGB_MOD, _______, KC_F16, KC_F17, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_HOME, KC_END, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), }; diff --git a/keyboards/neson_design/nico/matrix_diagram.md b/keyboards/neson_design/nico/matrix_diagram.md new file mode 100644 index 0000000000..b761512be7 --- /dev/null +++ b/keyboards/neson_design/nico/matrix_diagram.md @@ -0,0 +1,21 @@ +# Matrix Diagram for Neson Design Nico + +``` + ┌───────┐ + 2u Backspace │0E │ + └───────┘ +┌───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│0F │0G │ │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │4E │ +├───┼───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ +│1F │1G │ │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ +├───┼───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ +│2F │2G │ │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │2E │ +├───┼───┤ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ +│3F │3G │ │30 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │ +├───┼───┤ ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ +│4F │4G │ │40 │41 │42 │48 │49 │4A │ │4B │4C │4D │ +└───┴───┘ └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + ┌─────┬───┬─────┬───────────────────────────┬─────┐ + │40 │41 │42 │48 │4A │ Blocker Tsangan + └─────┴───┴─────┴───────────────────────────┴─────┘ +``` From e7ae5ec07c7655e0087c6a4cfcb2cbfec4713536 Mon Sep 17 00:00:00 2001 From: harveysch <126267034+harveysch@users.noreply.github.com> Date: Fri, 15 Sep 2023 20:34:21 +0200 Subject: [PATCH 066/496] [Keyboard] Add splitkb.com's Aurora Helix (#21871) Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Co-authored-by: Ryan --- keyboards/splitkb/aurora/helix/config.h | 21 ++ keyboards/splitkb/aurora/helix/glcdfont.c | 250 ++++++++++++++ keyboards/splitkb/aurora/helix/helix.c | 304 ++++++++++++++++++ keyboards/splitkb/aurora/helix/info.json | 16 + .../aurora/helix/keymaps/debug/config.h | 19 ++ .../aurora/helix/keymaps/debug/keymap.c | 68 ++++ .../aurora/helix/keymaps/debug/readme.md | 24 ++ .../aurora/helix/keymaps/debug/rules.mk | 8 + .../aurora/helix/keymaps/default/config.h | 24 ++ .../aurora/helix/keymaps/default/keymap.json | 52 +++ .../aurora/helix/keymaps/default/readme.md | 88 +++++ keyboards/splitkb/aurora/helix/readme.md | 48 +++ keyboards/splitkb/aurora/helix/rev1/config.h | 24 ++ keyboards/splitkb/aurora/helix/rev1/info.json | 206 ++++++++++++ keyboards/splitkb/aurora/helix/rev1/rev1.c | 56 ++++ keyboards/splitkb/aurora/helix/rev1/rules.mk | 0 keyboards/splitkb/aurora/helix/rules.mk | 1 + 17 files changed, 1209 insertions(+) create mode 100644 keyboards/splitkb/aurora/helix/config.h create mode 100644 keyboards/splitkb/aurora/helix/glcdfont.c create mode 100644 keyboards/splitkb/aurora/helix/helix.c create mode 100644 keyboards/splitkb/aurora/helix/info.json create mode 100644 keyboards/splitkb/aurora/helix/keymaps/debug/config.h create mode 100644 keyboards/splitkb/aurora/helix/keymaps/debug/keymap.c create mode 100644 keyboards/splitkb/aurora/helix/keymaps/debug/readme.md create mode 100644 keyboards/splitkb/aurora/helix/keymaps/debug/rules.mk create mode 100644 keyboards/splitkb/aurora/helix/keymaps/default/config.h create mode 100644 keyboards/splitkb/aurora/helix/keymaps/default/keymap.json create mode 100644 keyboards/splitkb/aurora/helix/keymaps/default/readme.md create mode 100644 keyboards/splitkb/aurora/helix/readme.md create mode 100644 keyboards/splitkb/aurora/helix/rev1/config.h create mode 100644 keyboards/splitkb/aurora/helix/rev1/info.json create mode 100644 keyboards/splitkb/aurora/helix/rev1/rev1.c create mode 100644 keyboards/splitkb/aurora/helix/rev1/rules.mk create mode 100644 keyboards/splitkb/aurora/helix/rules.mk diff --git a/keyboards/splitkb/aurora/helix/config.h b/keyboards/splitkb/aurora/helix/config.h new file mode 100644 index 0000000000..0212d8e9af --- /dev/null +++ b/keyboards/splitkb/aurora/helix/config.h @@ -0,0 +1,21 @@ +/* Copyright 2023 splitkb.com + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#ifdef OLED_ENABLE +# define OLED_FONT_H "keyboards/splitkb/aurora/helix/glcdfont.c" +#endif \ No newline at end of file diff --git a/keyboards/splitkb/aurora/helix/glcdfont.c b/keyboards/splitkb/aurora/helix/glcdfont.c new file mode 100644 index 0000000000..e75b1b4df6 --- /dev/null +++ b/keyboards/splitkb/aurora/helix/glcdfont.c @@ -0,0 +1,250 @@ +/* Copyright 2023 splitkb.com + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "progmem.h" + +// NOTE: This file is a copy of `crkbd/soundmonster/glcdfont.c` + +// Corne 8x6 font with QMK Firmware Logo +// Online editor: https://helixfonteditor.netlify.com/ +// See also: https://github.com/soundmonster/glcdfont_converter + +const unsigned char font[] PROGMEM = { +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, +0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, +0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, +0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, +0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, +0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, +0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, +0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, +0x00, 0x18, 0x24, 0x18, 0x00, 0x00, +0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, +0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, +0x26, 0x29, 0x79, 0x29, 0x26, 0x00, +0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, +0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, +0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, +0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, +0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, +0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, +0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, +0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, +0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, +0x60, 0x60, 0x60, 0x60, 0x60, 0x00, +0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, +0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, +0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, +0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, +0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, +0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, +0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, +0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, +0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, +0x00, 0x07, 0x00, 0x07, 0x00, 0x00, +0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, +0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, +0x23, 0x13, 0x08, 0x64, 0x62, 0x00, +0x36, 0x49, 0x56, 0x20, 0x50, 0x00, +0x00, 0x08, 0x07, 0x03, 0x00, 0x00, +0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, +0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, +0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, +0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, +0x00, 0x80, 0x70, 0x30, 0x00, 0x00, +0x08, 0x08, 0x08, 0x08, 0x08, 0x00, +0x00, 0x00, 0x60, 0x60, 0x00, 0x00, +0x20, 0x10, 0x08, 0x04, 0x02, 0x00, +0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, +0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, +0x72, 0x49, 0x49, 0x49, 0x46, 0x00, +0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, +0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, +0x27, 0x45, 0x45, 0x45, 0x39, 0x00, +0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, +0x41, 0x21, 0x11, 0x09, 0x07, 0x00, +0x36, 0x49, 0x49, 0x49, 0x36, 0x00, +0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, +0x00, 0x00, 0x14, 0x00, 0x00, 0x00, +0x00, 0x40, 0x34, 0x00, 0x00, 0x00, +0x00, 0x08, 0x14, 0x22, 0x41, 0x00, +0x14, 0x14, 0x14, 0x14, 0x14, 0x00, +0x00, 0x41, 0x22, 0x14, 0x08, 0x00, +0x02, 0x01, 0x59, 0x09, 0x06, 0x00, +0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, +0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, +0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, +0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, +0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, +0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, +0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, +0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, +0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, +0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, +0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, +0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, +0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, +0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, +0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, +0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, +0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, +0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, +0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, +0x26, 0x49, 0x49, 0x49, 0x32, 0x00, +0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, +0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, +0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, +0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, +0x63, 0x14, 0x08, 0x14, 0x63, 0x00, +0x03, 0x04, 0x78, 0x04, 0x03, 0x00, +0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, +0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, +0x02, 0x04, 0x08, 0x10, 0x20, 0x00, +0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, +0x04, 0x02, 0x01, 0x02, 0x04, 0x00, +0x40, 0x40, 0x40, 0x40, 0x40, 0x00, +0x00, 0x03, 0x07, 0x08, 0x00, 0x00, +0x20, 0x54, 0x54, 0x78, 0x40, 0x00, +0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, +0x38, 0x44, 0x44, 0x44, 0x28, 0x00, +0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, +0x38, 0x54, 0x54, 0x54, 0x18, 0x00, +0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, +0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, +0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, +0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, +0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, +0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, +0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, +0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, +0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, +0x38, 0x44, 0x44, 0x44, 0x38, 0x00, +0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, +0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, +0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, +0x48, 0x54, 0x54, 0x54, 0x24, 0x00, +0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, +0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, +0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, +0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, +0x44, 0x28, 0x10, 0x28, 0x44, 0x00, +0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, +0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, +0x00, 0x08, 0x36, 0x41, 0x00, 0x00, +0x00, 0x00, 0x77, 0x00, 0x00, 0x00, +0x00, 0x41, 0x36, 0x08, 0x00, 0x00, +0x02, 0x01, 0x02, 0x04, 0x02, 0x00, +0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, +0xF8, 0x18, 0x00, 0xC0, 0xF0, 0xFC, +0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x7E, 0x00, 0x00, 0x00, +0x00, 0xF8, 0x04, 0x22, 0x52, 0xE2, +0x42, 0x42, 0x42, 0xE2, 0x52, 0x22, +0x22, 0x22, 0x42, 0x82, 0x02, 0x02, +0x22, 0x22, 0x02, 0x04, 0xF8, 0x00, +0x00, 0xF8, 0x04, 0x02, 0x02, 0x82, +0x42, 0x22, 0x42, 0x82, 0x02, 0x02, +0x02, 0x82, 0x42, 0x22, 0x12, 0x22, +0x42, 0x82, 0x02, 0x04, 0xF8, 0x00, +0x00, 0xF8, 0xFC, 0xDE, 0xAE, 0x1E, +0xBE, 0xBE, 0xBE, 0x1E, 0xAE, 0xDE, +0xDE, 0xDE, 0xBE, 0x7E, 0xFE, 0xFE, +0xDE, 0xDE, 0xFE, 0xFC, 0xF8, 0x00, +0x00, 0xF8, 0xFC, 0xFE, 0xFE, 0x7E, +0xBE, 0xDE, 0xBE, 0x7E, 0xFE, 0xFE, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x80, 0x80, 0x40, 0x40, 0x20, 0x20, +0x10, 0x10, 0x08, 0x08, 0x10, 0x10, +0x20, 0x20, 0x40, 0x40, 0x80, 0x80, +0x80, 0x80, 0xC0, 0xC0, 0xE0, 0xE0, +0xF0, 0xF0, 0xF8, 0xF8, 0xF0, 0xF0, +0xE0, 0xE0, 0xC0, 0xC0, 0x80, 0x80, +0x80, 0x80, 0x40, 0x40, 0x20, 0x20, +0x10, 0x10, 0x08, 0x08, 0x10, 0x10, +0x20, 0x20, 0x40, 0x40, 0x80, 0x80, +0x80, 0x80, 0x40, 0xC0, 0x60, 0xA0, +0x50, 0xB0, 0x58, 0xA8, 0x50, 0xB0, +0x60, 0xA0, 0x40, 0xC0, 0x80, 0x80, +0x00, 0xF8, 0xFC, 0xFE, 0xFF, 0xE0, +0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, +0x07, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x1F, 0x20, 0x44, 0x4A, 0x47, +0x42, 0x42, 0x42, 0x47, 0x4A, 0x44, +0x40, 0x40, 0x40, 0x40, 0x41, 0x42, +0x44, 0x44, 0x40, 0x20, 0x1F, 0x00, +0x00, 0x1F, 0x20, 0x40, 0x41, 0x40, +0x40, 0x40, 0x40, 0x40, 0x41, 0x40, +0x41, 0x41, 0x4F, 0x48, 0x48, 0x48, +0x4F, 0x41, 0x41, 0x20, 0x1F, 0x00, +0x00, 0x1F, 0x3F, 0x7B, 0x75, 0x78, +0x7D, 0x7D, 0x7D, 0x78, 0x75, 0x7B, +0x7F, 0x7F, 0x7F, 0x7F, 0x7E, 0x7D, +0x7B, 0x7B, 0x7F, 0x3F, 0x1F, 0x00, +0x00, 0x1F, 0x3F, 0x7F, 0x7E, 0x7F, +0x7F, 0x7F, 0x7F, 0x7F, 0x7E, 0x7F, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x88, 0x88, 0x5D, 0x5D, 0x3E, 0x3E, +0x7C, 0x7C, 0xF8, 0xF8, 0x7C, 0x7C, +0x3E, 0x3E, 0x5D, 0x5D, 0x88, 0x88, +0x88, 0x88, 0x55, 0x55, 0x23, 0x23, +0x47, 0x47, 0x8F, 0x8F, 0x47, 0x47, +0x23, 0x23, 0x55, 0x55, 0x88, 0x88, +0x88, 0x88, 0xD5, 0xD5, 0xE2, 0xE2, +0xC4, 0xC4, 0x88, 0x88, 0xC4, 0xC4, +0xE2, 0xE2, 0xD5, 0xD5, 0x88, 0x88, +0x88, 0x88, 0x5D, 0xD5, 0x6B, 0xB6, +0x6D, 0xD6, 0xAD, 0xDA, 0x6D, 0xD6, +0x6B, 0xB6, 0x5D, 0xD5, 0x88, 0x88, +0x00, 0x03, 0x0F, 0x1F, 0x3F, 0x3F, +0x3F, 0x3F, 0x1F, 0x1F, 0x3F, 0x3F, +0x7F, 0x7F, 0x7F, 0x3F, 0x3F, 0x1F, +0x3F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7C, +0x78, 0x78, 0x38, 0x1C, 0x0F, 0x00, +0x04, 0xF8, 0x00, 0x00, 0xF8, 0x04, +0x20, 0x1F, 0x00, 0x00, 0x1F, 0x20, +0xFC, 0xF8, 0x00, 0x00, 0xF8, 0x04, +0x3F, 0x1F, 0x00, 0x00, 0x1F, 0x20, +0x04, 0xF8, 0x00, 0x00, 0xF8, 0xFC, +0x20, 0x1F, 0x00, 0x00, 0x1F, 0x3F, +0xFC, 0xF8, 0x00, 0x00, 0xF8, 0xFC, +0x3F, 0x1F, 0x00, 0x00, 0x1F, 0x3F, +0xFE, 0x7E, 0xBE, 0xDE, 0xEE, 0xDE, +0xBE, 0x7E, 0xFE, 0xFC, 0xF8, 0x00, +0x7E, 0x7E, 0x70, 0x77, 0x77, 0x77, +0x70, 0x7E, 0x7E, 0x3F, 0x1F, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x01, 0x01, 0x02, 0x02, +0x04, 0x04, 0x08, 0x08, 0x04, 0x04, +0x02, 0x02, 0x01, 0x01, 0x00, 0x00, +0x00, 0x00, 0x01, 0x01, 0x02, 0x02, +0x04, 0x04, 0x08, 0x08, 0x04, 0x04, +0x02, 0x02, 0x01, 0x01, 0x00, 0x00, +0x00, 0x00, 0x01, 0x01, 0x03, 0x03, +0x07, 0x07, 0x0F, 0x0F, 0x07, 0x07, +0x03, 0x03, 0x01, 0x01, 0x00, 0x00, +0x00, 0x00, 0x01, 0x01, 0x03, 0x02, +0x05, 0x06, 0x0D, 0x0A, 0x05, 0x06, +0x03, 0x02, 0x01, 0x01, 0x00, 0x00 +}; diff --git a/keyboards/splitkb/aurora/helix/helix.c b/keyboards/splitkb/aurora/helix/helix.c new file mode 100644 index 0000000000..a6ba65aeb5 --- /dev/null +++ b/keyboards/splitkb/aurora/helix/helix.c @@ -0,0 +1,304 @@ +/* Copyright 2023 splitkb.com + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +// The first four layers gets a name for readability, which is then used in the OLED below. +enum layers { + _DEFAULT, + _LOWER, + _RAISE, + _ADJUST +}; + +#ifdef OLED_ENABLE +// NOTE: Most of the OLED code was originally written by Soundmonster for the Corne, +// and has been copied directly from `crkbd/soundmonster/keymap.c` + +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_270; +} + +void render_mod_status_gui_alt(uint8_t modifiers) { + static const char PROGMEM gui_off_1[] = {0x85, 0x86, 0}; + static const char PROGMEM gui_off_2[] = {0xa5, 0xa6, 0}; + static const char PROGMEM gui_on_1[] = {0x8d, 0x8e, 0}; + static const char PROGMEM gui_on_2[] = {0xad, 0xae, 0}; + + static const char PROGMEM alt_off_1[] = {0x87, 0x88, 0}; + static const char PROGMEM alt_off_2[] = {0xa7, 0xa8, 0}; + static const char PROGMEM alt_on_1[] = {0x8f, 0x90, 0}; + static const char PROGMEM alt_on_2[] = {0xaf, 0xb0, 0}; + + // fillers between the modifier icons bleed into the icon frames + static const char PROGMEM off_off_1[] = {0xc5, 0}; + static const char PROGMEM off_off_2[] = {0xc6, 0}; + static const char PROGMEM on_off_1[] = {0xc7, 0}; + static const char PROGMEM on_off_2[] = {0xc8, 0}; + static const char PROGMEM off_on_1[] = {0xc9, 0}; + static const char PROGMEM off_on_2[] = {0xca, 0}; + static const char PROGMEM on_on_1[] = {0xcb, 0}; + static const char PROGMEM on_on_2[] = {0xcc, 0}; + + if(modifiers & MOD_MASK_GUI) { + oled_write_P(gui_on_1, false); + } else { + oled_write_P(gui_off_1, false); + } + + if ((modifiers & MOD_MASK_GUI) && (modifiers & MOD_MASK_ALT)) { + oled_write_P(on_on_1, false); + } else if(modifiers & MOD_MASK_GUI) { + oled_write_P(on_off_1, false); + } else if(modifiers & MOD_MASK_ALT) { + oled_write_P(off_on_1, false); + } else { + oled_write_P(off_off_1, false); + } + + if(modifiers & MOD_MASK_ALT) { + oled_write_P(alt_on_1, false); + } else { + oled_write_P(alt_off_1, false); + } + + if(modifiers & MOD_MASK_GUI) { + oled_write_P(gui_on_2, false); + } else { + oled_write_P(gui_off_2, false); + } + + if (modifiers & MOD_MASK_GUI & MOD_MASK_ALT) { + oled_write_P(on_on_2, false); + } else if(modifiers & MOD_MASK_GUI) { + oled_write_P(on_off_2, false); + } else if(modifiers & MOD_MASK_ALT) { + oled_write_P(off_on_2, false); + } else { + oled_write_P(off_off_2, false); + } + + if(modifiers & MOD_MASK_ALT) { + oled_write_P(alt_on_2, false); + } else { + oled_write_P(alt_off_2, false); + } +} + +void render_mod_status_ctrl_shift(uint8_t modifiers) { + static const char PROGMEM ctrl_off_1[] = {0x89, 0x8a, 0}; + static const char PROGMEM ctrl_off_2[] = {0xa9, 0xaa, 0}; + static const char PROGMEM ctrl_on_1[] = {0x91, 0x92, 0}; + static const char PROGMEM ctrl_on_2[] = {0xb1, 0xb2, 0}; + + static const char PROGMEM shift_off_1[] = {0x8b, 0x8c, 0}; + static const char PROGMEM shift_off_2[] = {0xab, 0xac, 0}; + static const char PROGMEM shift_on_1[] = {0xcd, 0xce, 0}; + static const char PROGMEM shift_on_2[] = {0xcf, 0xd0, 0}; + + // fillers between the modifier icons bleed into the icon frames + static const char PROGMEM off_off_1[] = {0xc5, 0}; + static const char PROGMEM off_off_2[] = {0xc6, 0}; + static const char PROGMEM on_off_1[] = {0xc7, 0}; + static const char PROGMEM on_off_2[] = {0xc8, 0}; + static const char PROGMEM off_on_1[] = {0xc9, 0}; + static const char PROGMEM off_on_2[] = {0xca, 0}; + static const char PROGMEM on_on_1[] = {0xcb, 0}; + static const char PROGMEM on_on_2[] = {0xcc, 0}; + + if(modifiers & MOD_MASK_CTRL) { + oled_write_P(ctrl_on_1, false); + } else { + oled_write_P(ctrl_off_1, false); + } + + if ((modifiers & MOD_MASK_CTRL) && (modifiers & MOD_MASK_SHIFT)) { + oled_write_P(on_on_1, false); + } else if(modifiers & MOD_MASK_CTRL) { + oled_write_P(on_off_1, false); + } else if(modifiers & MOD_MASK_SHIFT) { + oled_write_P(off_on_1, false); + } else { + oled_write_P(off_off_1, false); + } + + if(modifiers & MOD_MASK_SHIFT) { + oled_write_P(shift_on_1, false); + } else { + oled_write_P(shift_off_1, false); + } + + if(modifiers & MOD_MASK_CTRL) { + oled_write_P(ctrl_on_2, false); + } else { + oled_write_P(ctrl_off_2, false); + } + + if (modifiers & MOD_MASK_CTRL & MOD_MASK_SHIFT) { + oled_write_P(on_on_2, false); + } else if(modifiers & MOD_MASK_CTRL) { + oled_write_P(on_off_2, false); + } else if(modifiers & MOD_MASK_SHIFT) { + oled_write_P(off_on_2, false); + } else { + oled_write_P(off_off_2, false); + } + + if(modifiers & MOD_MASK_SHIFT) { + oled_write_P(shift_on_2, false); + } else { + oled_write_P(shift_off_2, false); + } +} + +void render_logo(void) { + static const char PROGMEM aurora_logo[] = { + 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0xc0, 0xf8, 0xe0, 0xc0, 0xfc, 0x00, 0x7e, 0x18, 0x00, 0x80, + 0x00, 0x02, 0x80, 0xf0, 0x00, 0xc0, 0x80, 0xf8, 0xc0, 0xe0, 0x70, 0x60, 0x3c, 0x38, 0x3c, 0x1c, + 0x00, 0x3f, 0x0c, 0x0f, 0x1f, 0x03, 0x07, 0x01, 0xc3, 0x00, 0xe0, 0x80, 0x00, 0xe0, 0x80, 0xf8, + 0x80, 0xc0, 0xf7, 0xc7, 0x6f, 0x7b, 0x39, 0x30, 0x00, 0x80, 0x00, 0xc0, 0x00, 0xc0, 0xc2, 0xe0, + 0x00, 0x40, 0x38, 0x30, 0x38, 0x1e, 0x18, 0x1e, 0x0f, 0x0c, 0x07, 0x07, 0x07, 0x03, 0x03, 0x21, + 0x21, 0x31, 0x30, 0x18, 0x18, 0x1c, 0x08, 0x0c, 0x0e, 0x07, 0x06, 0x07, 0x03, 0xc3, 0x03, 0x01, + 0x4c, 0xcc, 0xc2, 0xc2, 0x41, 0x49, 0x09, 0x2b, 0x2a, 0x6a, 0x6e, 0x24, 0x24, 0x04, 0x92, 0x92, + 0xb1, 0xf1, 0xf1, 0xf2, 0xe6, 0xa4, 0xa4, 0x04, 0x04, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28 + }; + oled_write_raw_P(aurora_logo, sizeof(aurora_logo)); + oled_set_cursor(0, 4); +} + +void render_logo_text(void) { + oled_write_P(PSTR("helix"), false); +} + +void render_kb_LED_state(void) { + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("N ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("C ") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("S ") : PSTR(" "), false); +} + +void render_layer_state(void) { + static const char PROGMEM default_layer[] = { + 0x20, 0x94, 0x95, 0x96, 0x20, + 0x20, 0xb4, 0xb5, 0xb6, 0x20, + 0x20, 0xd4, 0xd5, 0xd6, 0x20, 0}; + static const char PROGMEM raise_layer[] = { + 0x20, 0x97, 0x98, 0x99, 0x20, + 0x20, 0xb7, 0xb8, 0xb9, 0x20, + 0x20, 0xd7, 0xd8, 0xd9, 0x20, 0}; + static const char PROGMEM lower_layer[] = { + 0x20, 0x9a, 0x9b, 0x9c, 0x20, + 0x20, 0xba, 0xbb, 0xbc, 0x20, + 0x20, 0xda, 0xdb, 0xdc, 0x20, 0}; + static const char PROGMEM adjust_layer[] = { + 0x20, 0x9d, 0x9e, 0x9f, 0x20, + 0x20, 0xbd, 0xbe, 0xbf, 0x20, + 0x20, 0xdd, 0xde, 0xdf, 0x20, 0}; + if(layer_state_is(_LOWER)) { + oled_write_P(lower_layer, false); + } else if(layer_state_is(_RAISE)) { + oled_write_P(raise_layer, false); + } else if(layer_state_is(_DEFAULT)) { + oled_write_P(default_layer, false); + } else { + oled_write_P(adjust_layer, false); + } +} + + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + if (is_keyboard_master()) { + // Renders the current keyboard state (layers and mods) + render_logo(); + render_logo_text(); + oled_advance_page(false); + render_layer_state(); + oled_advance_page(false); + render_mod_status_gui_alt(get_mods()|get_oneshot_mods()); + render_mod_status_ctrl_shift(get_mods()|get_oneshot_mods()); + render_kb_LED_state(); + } else { + // clang-format off + static const char PROGMEM aurora_art[] = { + 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1c, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x40, + 0xe0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x80, + 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x80, 0x00, 0xf0, 0x00, 0x00, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x81, 0x00, 0xc0, 0x00, 0xfe, 0x00, 0xfc, 0x00, 0xff, 0x20, 0xff, 0xf0, 0x0f, 0xf0, 0x00, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0xf8, 0x00, 0x00, 0xf8, + 0xff, 0x10, 0xff, 0x84, 0xff, 0x60, 0xff, 0x36, 0xff, 0x0f, 0xff, 0x3f, 0x00, 0x5f, 0x00, 0x05, + 0x80, 0x00, 0x80, 0x00, 0xc0, 0x38, 0x00, 0xec, 0xf0, 0x00, 0xfb, 0x80, 0xff, 0xf0, 0xff, 0xef, + 0xff, 0xe8, 0xff, 0x03, 0xff, 0x0c, 0xff, 0x00, 0xff, 0x00, 0x03, 0x00, 0x00, 0xf8, 0x00, 0x80, + 0xff, 0x20, 0xff, 0xd0, 0xff, 0xe0, 0xfe, 0xf8, 0xff, 0xfc, 0xff, 0xff, 0x0f, 0xff, 0x01, 0x3f, + 0xff, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x03, 0x00, 0xfe, 0x80, 0xfe, 0x00, 0xc0, 0xff, 0xc4, 0xfb, + 0xff, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x07, 0xff, 0x03, 0x3f, 0x00, 0x0f, 0xc0, 0x00, + 0x00, 0x00, 0xb8, 0x00, 0xff, 0x40, 0xbe, 0xf0, 0xff, 0xf1, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0xff, 0x67, 0x00, 0xef, 0x00, 0x1f, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, 0xff, 0xf0, + 0xff, 0x88, 0xff, 0xc4, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x7f, 0x0f, 0xff, + 0x00, 0x07, 0xfe, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xc0, 0x3f, 0xf8, 0xe7, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0x1f, 0x3f, 0x01, 0xff, 0x0b, 0x00, 0xff, 0x00, 0x00, 0x05, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0x60, 0x80, 0xfe, 0xe3, 0xfc, 0xff, 0x1e, 0xff, 0xff, 0x23, + 0xff, 0x09, 0xff, 0x20, 0x00, 0x3f, 0x02, 0x00, 0x00, 0x0f, 0x00, 0x40, 0x00, 0xc0, 0x00, 0xfc, + 0xe0, 0xfc, 0xf0, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0x0f, 0xff, 0x07, 0x1f, 0x00, 0x01, 0x0f, 0x00, + 0x0f, 0x00, 0x81, 0x70, 0x0c, 0xf0, 0x80, 0x00, 0x00, 0xe4, 0xf8, 0xe6, 0x70, 0x3f, 0xcf, 0xff, + 0x1f, 0xff, 0x48, 0xff, 0x0f, 0x00, 0x07, 0x00, 0x00, 0x43, 0x60, 0xf8, 0xf0, 0xfe, 0x38, 0xfe, + 0x00, 0xfc, 0x03, 0x00, 0xc8, 0x72, 0xcf, 0xfc, 0x00, 0x03, 0x0f, 0x01, 0xe0, 0x1c, 0xe0, 0x03, + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x06, 0xf9, 0x00, 0x03, 0x00, 0x07, + 0xff, 0x00, 0x10, 0x12, 0xc9, 0xf0, 0xcf, 0xb4, 0x7f, 0x80, 0xe0, 0x1e, 0x01, 0x40, 0x65, 0x5e, + 0xe0, 0x00, 0x00, 0xf0, 0x0c, 0xf0, 0x00, 0x80, 0x7e, 0x01, 0x80, 0x93, 0xfc, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x89, 0x18, 0x2c, 0x46, 0x00, 0x07, 0x21, 0x10, 0x10, 0x80, 0x09, 0x13, + 0x31, 0xbf, 0xff, 0x00, 0x08, 0x1a, 0xf7, 0x0f, 0x00, 0x00, 0x44, 0x45, 0x34, 0xbf, 0xb8, 0x00, + 0x10, 0xf0, 0x08, 0xf4, 0x18, 0x11, 0xfc, 0x18, 0xfb, 0x0e, 0x10, 0xf8, 0x04, 0xf8, 0x10, 0x20, + 0x18, 0x09, 0xff, 0x0c, 0xea, 0x1f, 0x28, 0x60, 0x30, 0xf8, 0x20, 0xc0, 0x42, 0x33, 0x21, 0x00 + }; + // clang-format on + oled_write_raw_P(aurora_art, sizeof(aurora_art)); + } + return false; +} +#endif + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } + // 0 is left-half encoder, + // 1 is right-half encoder + if (index == 0) { + // Volume control + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { + // Page up/Page down + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + return true; +} +#endif \ No newline at end of file diff --git a/keyboards/splitkb/aurora/helix/info.json b/keyboards/splitkb/aurora/helix/info.json new file mode 100644 index 0000000000..5729b00207 --- /dev/null +++ b/keyboards/splitkb/aurora/helix/info.json @@ -0,0 +1,16 @@ +{ + "manufacturer": "splitkb.com", + "maintainer": "splitkb", + "build": { + "lto": true + }, + "development_board": "elite_c", + "split": { + "enabled": true + }, + "url": "https://splitkb.com", + "usb": { + "device_version": "1.0.0", + "vid": "0x8D1D" + } +} \ No newline at end of file diff --git a/keyboards/splitkb/aurora/helix/keymaps/debug/config.h b/keyboards/splitkb/aurora/helix/keymaps/debug/config.h new file mode 100644 index 0000000000..a15def3fb9 --- /dev/null +++ b/keyboards/splitkb/aurora/helix/keymaps/debug/config.h @@ -0,0 +1,19 @@ +/* Copyright 2023 splitkb.com + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define RGBLIGHT_EFFECT_BREATHING \ No newline at end of file diff --git a/keyboards/splitkb/aurora/helix/keymaps/debug/keymap.c b/keyboards/splitkb/aurora/helix/keymaps/debug/keymap.c new file mode 100644 index 0000000000..2c99ef9429 --- /dev/null +++ b/keyboards/splitkb/aurora/helix/keymaps/debug/keymap.c @@ -0,0 +1,68 @@ +/* Copyright 2023 splitkb.com + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers { + _DEFAULT = 0, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_DEFAULT] = LAYOUT( + KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, S(KC_F), S(KC_E), S(KC_D), S(KC_C), S(KC_B), S(KC_A), + KC_G, KC_H, KC_I, KC_J, KC_K, KC_L, S(KC_L), S(KC_K), S(KC_J), S(KC_I), S(KC_H), S(KC_G), + KC_M, KC_N, KC_O, KC_P, KC_Q, KC_R, S(KC_R), S(KC_Q), S(KC_P), S(KC_O), S(KC_N), S(KC_M), + KC_S, KC_T, KC_U, KC_V, KC_W, KC_X, KC_Y, S(KC_Y), S(KC_X), S(KC_W), S(KC_V), S(KC_U), S(KC_T), S(KC_S), + KC_Z, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, S(KC_6), S(KC_5), S(KC_4), S(KC_3), S(KC_2), S(KC_1), S(KC_Z) + ) +}; + +#ifdef RGBLIGHT_ENABLE +void keyboard_post_init_user(void) { + rgblight_enable_noeeprom(); // enables RGB, without saving settings + rgblight_sethsv_noeeprom(HSV_RED); // sets the color to red without saving + rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3); // sets mode to Fast breathing without saving +} +#endif + +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + // 0 is left-half encoder + // 1 is right-half encoder + if (index == 0) { + tap_code(KC_0); + } else if (index == 1) { + tap_code(KC_1); + } + + if (clockwise) { + tap_code16(KC_PLUS); + } else { + tap_code(KC_MINUS); + } + + return false; +} +#endif + +#ifdef OLED_ENABLE +bool oled_task_user(void) { + // A 128x32 OLED rotated 90 degrees is 5 characters wide and 16 characters tall + // This example string should fill that neatly + oled_write_P(PSTR("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789!@#$%^&*()[]{}-=_+?"), false); + return false; +} +#endif \ No newline at end of file diff --git a/keyboards/splitkb/aurora/helix/keymaps/debug/readme.md b/keyboards/splitkb/aurora/helix/keymaps/debug/readme.md new file mode 100644 index 0000000000..827235e447 --- /dev/null +++ b/keyboards/splitkb/aurora/helix/keymaps/debug/readme.md @@ -0,0 +1,24 @@ +# Aurora Helix's Debug Keymap + +To make debugging your build as easy as possible, we have provided a special debugging keymap. It is not intended to actually type on, it is just here to make sure that your hardware is working correctly. + +## Keys + +![Keys](https://raw.githubusercontent.com/splitkb/qmk_firmware/assets/aurora/keymaps/debug/keys.png) + +The left side uses lowercase letters, the right side uses uppercase ones. + +## Encoders + +Encoders output a number of 0 or 1, depending on the installed position. +These correspond to the index used for custom encoder code: the left half uses index 0, the right half uses index 1. + +The number is followed by either a `+` or a `-`, depending on the direction turned. + +## LEDs + +Both underglow and per-key RGB should be fading between red and off. + +## OLEDs + +Both the primary and secondary side should be filled with characters. \ No newline at end of file diff --git a/keyboards/splitkb/aurora/helix/keymaps/debug/rules.mk b/keyboards/splitkb/aurora/helix/keymaps/debug/rules.mk new file mode 100644 index 0000000000..9c9df9b126 --- /dev/null +++ b/keyboards/splitkb/aurora/helix/keymaps/debug/rules.mk @@ -0,0 +1,8 @@ +# NOTE: These are already enabled by default at the revision level +#ENCODER_ENABLE = yes +#OLED_ENABLE = yes + +# RGB Matrix is enabled at the revision level, +# while we use the regular RGB underglow for testing +RGB_MATRIX_ENABLE = no +RGBLIGHT_ENABLE = yes \ No newline at end of file diff --git a/keyboards/splitkb/aurora/helix/keymaps/default/config.h b/keyboards/splitkb/aurora/helix/keymaps/default/config.h new file mode 100644 index 0000000000..869e99b779 --- /dev/null +++ b/keyboards/splitkb/aurora/helix/keymaps/default/config.h @@ -0,0 +1,24 @@ +/* Copyright 2023 splitkb.com + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_KEYPRESSES +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define ENABLE_RGB_MATRIX_SOLID_SPLASH +#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT \ No newline at end of file diff --git a/keyboards/splitkb/aurora/helix/keymaps/default/keymap.json b/keyboards/splitkb/aurora/helix/keymaps/default/keymap.json new file mode 100644 index 0000000000..bc818a7322 --- /dev/null +++ b/keyboards/splitkb/aurora/helix/keymaps/default/keymap.json @@ -0,0 +1,52 @@ +{ + "config": { + "features": { + "oled": true, + "rgb_matrix": true, + "rgblight": false + }, + "encoder": { + "enabled": true + }, + "rgblight": { + "hue_steps": 8, + "saturation_steps": 8, + "brightness_steps": 8, + "sleep": true + } + }, + "keyboard": "splitkb/aurora/helix", + "keymap": "default", + "layers": [ + [ + "KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_DEL", + "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC", + "KC_LCTL", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", + "KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_LBRC", "KC_RBRC", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_ENT" , + "MO(3)", "KC_ESC", "KC_LALT", "KC_LGUI", "LALT(KC_GRV)", "MO(1)", "KC_SPC", "KC_SPC", "MO(2)", "LALT(KC_GRV)", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RGHT" + ], + [ + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "KC_TILD", "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "_______", + "_______", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_UNDS", "KC_PLUS", "KC_LCBR", "KC_RCBR", "KC_PIPE", + "KC_CAPS", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_LPRN", "KC_RPRN", "KC_F12", "_______", "_______", "KC_HOME", "KC_END", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "MO(3)", "_______", "KC_MNXT", "KC_VOLD", "KC_VOLU", "KC_MPLY" + ], + [ + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "KC_BSPC", + "KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_DEL", + "_______", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_MINS", "KC_EQL", "KC_LBRC", "KC_RBRC", "KC_BSLS", + "KC_CAPS", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "_______", "_______", "KC_F12", "_______", "_______", "KC_PGDN", "KC_PGUP", "_______", + "_______", "_______", "_______", "_______", "_______", "MO(3)", "_______", "_______", "_______", "_______", "KC_MNXT", "KC_VOLD", "KC_VOLU", "KC_MPLY" + ], + [ + "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", + "_______", "QK_BOOT", "_______", "EE_CLR", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "KC_DEL", + "_______", "_______", "_______", "_______", "_______", "AG_NORM", "AG_SWAP", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "RGB_TOG", "RGB_HUI", "RGB_SAI", "RGB_VAI", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "RGB_MOD", "RGB_HUD", "RGB_SAD", "RGB_VAD" + ] + ], + "layout": "LAYOUT", + "version": 1 +} \ No newline at end of file diff --git a/keyboards/splitkb/aurora/helix/keymaps/default/readme.md b/keyboards/splitkb/aurora/helix/keymaps/default/readme.md new file mode 100644 index 0000000000..2f0aa63ca7 --- /dev/null +++ b/keyboards/splitkb/aurora/helix/keymaps/default/readme.md @@ -0,0 +1,88 @@ +# Aurora Helix's Default Keymap +_This keymap is a copy of the [Helix default keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/helix/rev3_5rows/keymaps/default), with slight modifications._ + +A simple default keymap for the Aurora Helix +============================================= + +Keymaps in general are quite personal, so it is difficult to come up with a default that will suit every user. We hope this keymap serves as a good starting point for your own - although it should be fairly usable out-of-the-box. + +What do all these layers do? +---------------------------- + +### Layer 0: Base layer + +![Layer 0](https://i.imgur.com/2E4hHxw.png) + +This is where your basic letters live. + +The homing thumb fingers are used to access the different layers. + +* The homing second to left thumb finger gives access to the Symbols (or lower) layer +* The homing second to right thumb finger gives access to the Navigation (or raise) layer +* Pressing both homing thumb fingers gives access to the Adjust layer + +### Layer 1: Lower + +![Layer 1](https://i.imgur.com/p68qrBz.png) + +The Lower layer gives access to the F keys, symbols and media control. + +### Layer 2: Raise + +![Layer 2](https://i.imgur.com/7T4KSW6.png) + +The Raise layer gives access to additional numbers keys, F keys. + +### Layer 3: Adjust + +![Layer 3](https://i.imgur.com/YbbwHSD.png) + +The Adjust layer exposes RGB adjustment keys on the right hand and additional configuration keys. + +Where is the keymap.c? +---------------------- + +The keymap.c file is not published to the repository. It is generated from `keymap.json` by the build system. + +This avoids duplicating information and allow users to edit their keymap from the QMK Configurator web interface. + +How do I edit and update the keymap? +------------------------------------ + +The `keymap.json` file is generated from the QMK Configurator interface and formatted for better readability in the context of the Ferris keyboard. + +To edit it, you may: +* Edit it directly from a text editor. +* Edit it from the QMK Configurator. + +If you decide to use the latter workflow, here are the steps to follow: + +* From the [QMK Configurator](https://config.qmk.fm/#/splitkb/aurora/helix/rev1/LAYOUT), hit the "import QMK keymap json file" button (it has a drawing with an up arrow on it). +* Browse to the location of your keymap (for example, `/keyboards/splitkb/aurora/helix/keymaps/default/keymap.json`) +* Perform any modification to the keymap in the web UI +* Export the keymap to your downloads folder, by hitting the "Export QMK keymap json file" button (it has a drawing with a down arrow on it) +* Replace your original keymap with the one you just downloaded + +_**Note:** At the time of writing (the 24th of October 2022), not every feature used in the default keymap is supported by the QMK Configurator. You cannot yet upload the default `keymap.json` due to a file format mismatch - use the "Load Default" button to load the default keymap instead. Additionally, custom configuration options are still being worked on: if your keymap depends on them, please compile your firmware offline for now._ + +I want to do more than the JSON format supports! +------------------------------------------------- + +While the `json` format is easy to use, it does lack certain functionality - most notably custom OLED or encoder behaviour. + +To add this, you need to convert it to the `c` format. Do keep in mind that this is generally a one-way operation. + +First, from the root of your qmk repo, move to your keymap folder + +```bash +cd ./keyboards/splitkb/aurora/helix/keymaps/my_personal_keymap +``` + +Next, convert your `keymap.json` to a `keymap.c` + +```bash +qmk json2c -o keymap.c keymap.json +``` + +You can add custom C code to the newly generated `keymap.c` file. Do note that you have to use **either** a C file **or** a JSON file - you cannot do both! +**If a JSON file is present, the C file is ignored.** \ No newline at end of file diff --git a/keyboards/splitkb/aurora/helix/readme.md b/keyboards/splitkb/aurora/helix/readme.md new file mode 100644 index 0000000000..fc7727f145 --- /dev/null +++ b/keyboards/splitkb/aurora/helix/readme.md @@ -0,0 +1,48 @@ +![Aurora Helix](https://i.imgur.com/zzzW8Tu.jpg) + +# Aurora Helix +The Aurora Helix is a redesign by splitkb.com of the popular Helix by Yushakobo. + +Keyboard Maintainer: [splitkb.com](https://github.com/splitkb) +Hardware Supported: Pro Micro 5V/16MHz and compatible. +Hardware Availability: [splitkb.com](https://splitkb.com). + +Make example for this keyboard (after setting up your build environment): + + make splitkb/aurora/helix/rev1:default + +Example of flashing this keyboard: + + make splitkb/aurora/helix/rev1:default:flash + +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). + +## Bootloader +You can enter the bootloader in 3 ways: + +* **Physical reset button**: Briefly press the button on the side of the PCB, next to the TRRS socket. +* **Bootmagic reset**: Hold down the bootmagic key and plug in the keyboard. For the left half, this is the top-left button. For the right half, this is the top-right button. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. + +# Assembly +A build guide for the entire Aurora series is available at [https://splitkb.com/aurora-build](https://splitkb.com/aurora-build). + +# Features +The Aurora Helix supports the following features: + +- Support for MX or Kailh Choc switches; +- Top mounted controllers for a lower profile; +- Up to two 128×32 pixel OLED displays; +- Up to one EC11 rotary encoder per half in one of three possible positions; +- Per-key RGB backlight by individual RGB LEDs; +- Underglow by individual RGB LEDs; +- Support for a power switch for wireless controllers; +- Support for the splitkb.com tenting puck. + +# What is the Aurora Series? + +The Aurora series were designed as a homage to open source keyboard kits that have carved their space into the community. Kits that provided something new and unique, kits that resonated with the community and that have both received and have given a lot of love in return. + +With the Aurora series, we aim to make these kits available to the community in a way that both honors the original, while also offering the best possible feature set and a consistent, well-documented build experience. + +For each kit sold, we give back to the community by donating €1 across [the firmware projects we support](https://opencollective.com/splitkb). This way we support open source projects and benefit everyone using keyboards, whether they use our kits or their own. \ No newline at end of file diff --git a/keyboards/splitkb/aurora/helix/rev1/config.h b/keyboards/splitkb/aurora/helix/rev1/config.h new file mode 100644 index 0000000000..bbf6c50073 --- /dev/null +++ b/keyboards/splitkb/aurora/helix/rev1/config.h @@ -0,0 +1,24 @@ +/* Copyright 2023 splitkb.com + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define SPLIT_HAND_PIN D3 + +#define OLED_DISPLAY_128X32 +#define SPLIT_OLED_ENABLE + +#define RGB_MATRIX_LED_COUNT 76 \ No newline at end of file diff --git a/keyboards/splitkb/aurora/helix/rev1/info.json b/keyboards/splitkb/aurora/helix/rev1/info.json new file mode 100644 index 0000000000..7c6acf0070 --- /dev/null +++ b/keyboards/splitkb/aurora/helix/rev1/info.json @@ -0,0 +1,206 @@ +{ + "keyboard_name": "Aurora Helix rev1", + "diode_direction": "COL2ROW", + "encoder": { + "enabled": true, + "rotary": [ + {"pin_a": "E6", "pin_b": "B4"} + ] + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "oled": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["F6", "F7", "B1", "B3", "B2", "B6", "B5"], + "rows": ["F4", "F5", "D4", "C6", "D7"] + }, + "rgb_matrix": { + "driver": "ws2812", + "layout": [ + {"x": 72, "y": 16, "flags": 2}, + {"x": 40, "y": 16, "flags": 2}, + {"x": 8, "y": 16, "flags": 2}, + {"x": 8, "y": 48, "flags": 2}, + {"x": 40, "y": 48, "flags": 2}, + {"x": 72, "y": 48, "flags": 2}, + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 64, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"x": 152, "y": 16, "flags": 2}, + {"x": 184, "y": 16, "flags": 2}, + {"x": 216, "y": 16, "flags": 2}, + {"x": 216, "y": 48, "flags": 2}, + {"x": 184, "y": 48, "flags": 2}, + {"x": 152, "y": 48, "flags": 2}, + {"matrix": [5, 5], "x": 144, "y": 0, "flags": 4}, + {"matrix": [5, 4], "x": 160, "y": 0, "flags": 4}, + {"matrix": [5, 3], "x": 176, "y": 0, "flags": 4}, + {"matrix": [5, 2], "x": 192, "y": 0, "flags": 4}, + {"matrix": [5, 1], "x": 208, "y": 0, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 0, "flags": 4}, + {"matrix": [6, 5], "x": 144, "y": 16, "flags": 4}, + {"matrix": [6, 4], "x": 160, "y": 16, "flags": 4}, + {"matrix": [6, 3], "x": 176, "y": 16, "flags": 4}, + {"matrix": [6, 2], "x": 192, "y": 16, "flags": 4}, + {"matrix": [6, 1], "x": 208, "y": 16, "flags": 4}, + {"matrix": [6, 0], "x": 224, "y": 16, "flags": 4}, + {"matrix": [7, 5], "x": 144, "y": 32, "flags": 4}, + {"matrix": [7, 4], "x": 160, "y": 32, "flags": 4}, + {"matrix": [7, 3], "x": 176, "y": 32, "flags": 4}, + {"matrix": [7, 2], "x": 192, "y": 32, "flags": 4}, + {"matrix": [7, 1], "x": 208, "y": 32, "flags": 4}, + {"matrix": [7, 0], "x": 224, "y": 32, "flags": 4}, + {"matrix": [8, 6], "x": 128, "y": 48, "flags": 4}, + {"matrix": [8, 5], "x": 144, "y": 48, "flags": 4}, + {"matrix": [8, 4], "x": 160, "y": 48, "flags": 4}, + {"matrix": [8, 3], "x": 176, "y": 48, "flags": 4}, + {"matrix": [8, 2], "x": 192, "y": 48, "flags": 4}, + {"matrix": [8, 1], "x": 208, "y": 48, "flags": 4}, + {"matrix": [8, 0], "x": 224, "y": 48, "flags": 4}, + {"matrix": [9, 6], "x": 128, "y": 64, "flags": 4}, + {"matrix": [9, 5], "x": 144, "y": 64, "flags": 4}, + {"matrix": [9, 4], "x": 160, "y": 64, "flags": 4}, + {"matrix": [9, 3], "x": 176, "y": 64, "flags": 4}, + {"matrix": [9, 2], "x": 192, "y": 64, "flags": 4}, + {"matrix": [9, 1], "x": 208, "y": 64, "flags": 4}, + {"matrix": [9, 0], "x": 224, "y": 64, "flags": 4} + ], + "max_brightness": 128, + "split_count": [38, 38] + }, + "rgblight": { + "led_count": 76, + "max_brightness": 128, + "split": true, + "split_count": [38, 38] + }, + "split": { + "bootmagic": { + "matrix": [7, 0] + }, + "encoder": { + "right": { + "rotary": [ + {"pin_a": "B2", "pin_b": "B3"} + ] + } + }, + "main": "matrix_grid", + "matrix_pins": { + "right": { + "cols": ["D4", "C6", "D7", "E6", "B4", "B5", "B6"], + "rows": ["F4", "F5", "F6", "F7", "B1"] + } + }, + "soft_serial_pin": "D2" + }, + "usb": { + "pid": "0xB4C4" + }, + "ws2812": { + "pin": "D3" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "L01", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "L02", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "L03", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "L04", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "L05", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "L06", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "R06", "matrix": [5, 5], "x": 9, "y": 0}, + {"label": "R05", "matrix": [5, 4], "x": 10, "y": 0}, + {"label": "R04", "matrix": [5, 3], "x": 11, "y": 0}, + {"label": "R03", "matrix": [5, 2], "x": 12, "y": 0}, + {"label": "R02", "matrix": [5, 1], "x": 13, "y": 0}, + {"label": "R01", "matrix": [5, 0], "x": 14, "y": 0}, + {"label": "L07", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "L08", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "L09", "matrix": [1, 2], "x": 2, "y": 1}, + {"label": "L10", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "L11", "matrix": [1, 4], "x": 4, "y": 1}, + {"label": "L12", "matrix": [1, 5], "x": 5, "y": 1}, + {"label": "R12", "matrix": [6, 5], "x": 9, "y": 1}, + {"label": "R11", "matrix": [6, 4], "x": 10, "y": 1}, + {"label": "R10", "matrix": [6, 3], "x": 11, "y": 1}, + {"label": "R09", "matrix": [6, 2], "x": 12, "y": 1}, + {"label": "R08", "matrix": [6, 1], "x": 13, "y": 1}, + {"label": "R07", "matrix": [6, 0], "x": 14, "y": 1}, + {"label": "L13", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "L14", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "L15", "matrix": [2, 2], "x": 2, "y": 2}, + {"label": "L16", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "L17", "matrix": [2, 4], "x": 4, "y": 2}, + {"label": "L18", "matrix": [2, 5], "x": 5, "y": 2}, + {"label": "R18", "matrix": [7, 5], "x": 9, "y": 2}, + {"label": "R17", "matrix": [7, 4], "x": 10, "y": 2}, + {"label": "R16", "matrix": [7, 3], "x": 11, "y": 2}, + {"label": "R15", "matrix": [7, 2], "x": 12, "y": 2}, + {"label": "R14", "matrix": [7, 1], "x": 13, "y": 2}, + {"label": "R13", "matrix": [7, 0], "x": 14, "y": 2}, + {"label": "L19", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "L20", "matrix": [3, 1], "x": 1, "y": 3}, + {"label": "L21", "matrix": [3, 2], "x": 2, "y": 3}, + {"label": "L22", "matrix": [3, 3], "x": 3, "y": 3}, + {"label": "L23", "matrix": [3, 4], "x": 4, "y": 3}, + {"label": "L24", "matrix": [3, 5], "x": 5, "y": 3}, + {"label": "L25", "matrix": [3, 6], "x": 6, "y": 3}, + {"label": "R25", "matrix": [8, 6], "x": 8, "y": 3}, + {"label": "R24", "matrix": [8, 5], "x": 9, "y": 3}, + {"label": "R23", "matrix": [8, 4], "x": 10, "y": 3}, + {"label": "R22", "matrix": [8, 3], "x": 11, "y": 3}, + {"label": "R21", "matrix": [8, 2], "x": 12, "y": 3}, + {"label": "R20", "matrix": [8, 1], "x": 13, "y": 3}, + {"label": "R19", "matrix": [8, 0], "x": 14, "y": 3}, + {"label": "L26", "matrix": [4, 0], "x": 0, "y": 4}, + {"label": "L27", "matrix": [4, 1], "x": 1, "y": 4}, + {"label": "L28", "matrix": [4, 2], "x": 2, "y": 4}, + {"label": "L29", "matrix": [4, 3], "x": 3, "y": 4}, + {"label": "L30", "matrix": [4, 4], "x": 4, "y": 4}, + {"label": "L31", "matrix": [4, 5], "x": 5, "y": 4}, + {"label": "L32", "matrix": [4, 6], "x": 6, "y": 4}, + {"label": "R32", "matrix": [9, 6], "x": 8, "y": 4}, + {"label": "R31", "matrix": [9, 5], "x": 9, "y": 4}, + {"label": "R30", "matrix": [9, 4], "x": 10, "y": 4}, + {"label": "R29", "matrix": [9, 3], "x": 11, "y": 4}, + {"label": "R28", "matrix": [9, 2], "x": 12, "y": 4}, + {"label": "R27", "matrix": [9, 1], "x": 13, "y": 4}, + {"label": "R26", "matrix": [9, 0], "x": 14, "y": 4} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/splitkb/aurora/helix/rev1/rev1.c b/keyboards/splitkb/aurora/helix/rev1/rev1.c new file mode 100644 index 0000000000..da24934eef --- /dev/null +++ b/keyboards/splitkb/aurora/helix/rev1/rev1.c @@ -0,0 +1,56 @@ +/* Copyright 2023 splitkb.com + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// Overriding is_keyboard_left() in qmk_firmware/quantum/split_common/split_util.c to limit the handedness check only once. +// reason: SPLIT_HAND_PIN is shared with the RGB pin so we don't want to keep reusing the pin for handedness checks. +bool is_keyboard_left(void) { +static enum { UNKNOWN, LEFT, RIGHT } hand_side = UNKNOWN; + // only check once, as this is called often + if (hand_side == UNKNOWN) { + #if defined(SPLIT_HAND_PIN) + // Test pin SPLIT_HAND_PIN for High/Low, if low it's right hand + setPinInput(SPLIT_HAND_PIN); + hand_side = readPin(SPLIT_HAND_PIN) ? LEFT : RIGHT; + return (hand_side == LEFT); + #endif + hand_side = is_keyboard_master() ? LEFT : RIGHT; + return (hand_side == LEFT); + } else { + return (hand_side == LEFT); + } +} + +#ifdef SWAP_HANDS_ENABLE +// clang-format off + __attribute__ ((weak)) const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}, {5, 5}, {6, 5}}, + {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}, {5, 6}, {6, 6}}, + {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}, {5, 7}, {6, 7}}, + {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}}, + {{0, 9}, {1, 9}, {2, 9}, {3, 9}, {4, 9}, {5, 9}, {6, 9}}, + {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}, {6, 0}}, + {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}, {6, 1}}, + {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, {5, 2}, {6, 2}}, + {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}, {6, 3}}, + {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}, {6, 4}} + }; +// clang-format on +# ifdef ENCODER_MAP_ENABLE + const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {1,0}; +# endif +#endif diff --git a/keyboards/splitkb/aurora/helix/rev1/rules.mk b/keyboards/splitkb/aurora/helix/rev1/rules.mk new file mode 100644 index 0000000000..e69de29bb2 diff --git a/keyboards/splitkb/aurora/helix/rules.mk b/keyboards/splitkb/aurora/helix/rules.mk new file mode 100644 index 0000000000..8130273c1f --- /dev/null +++ b/keyboards/splitkb/aurora/helix/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = splitkb/aurora/helix/rev1 \ No newline at end of file From 29d1a2cc510f29f9a703038490856a881a9156e9 Mon Sep 17 00:00:00 2001 From: ziptyze Date: Fri, 15 Sep 2023 14:56:41 -0400 Subject: [PATCH 067/496] [Keyboard] add 1upkeyboards 1upslider8 (#21546) Co-authored-by: Duncan Sutherland Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Drashna Jaelre --- .../1upkeyboards/1upslider8/1upslider8.c | 400 ++++++++++++++++++ keyboards/1upkeyboards/1upslider8/config.h | 29 ++ keyboards/1upkeyboards/1upslider8/halconf.h | 9 + keyboards/1upkeyboards/1upslider8/info.json | 115 +++++ .../1upslider8/keymaps/default/keymap.c | 31 ++ .../1upslider8/keymaps/default/rules.mk | 1 + .../1upslider8/keymaps/via/keymap.c | 31 ++ .../1upslider8/keymaps/via/rules.mk | 3 + keyboards/1upkeyboards/1upslider8/mcuconf.h | 11 + keyboards/1upkeyboards/1upslider8/readme.md | 27 ++ keyboards/1upkeyboards/1upslider8/rules.mk | 1 + 11 files changed, 658 insertions(+) create mode 100644 keyboards/1upkeyboards/1upslider8/1upslider8.c create mode 100644 keyboards/1upkeyboards/1upslider8/config.h create mode 100644 keyboards/1upkeyboards/1upslider8/halconf.h create mode 100644 keyboards/1upkeyboards/1upslider8/info.json create mode 100644 keyboards/1upkeyboards/1upslider8/keymaps/default/keymap.c create mode 100644 keyboards/1upkeyboards/1upslider8/keymaps/default/rules.mk create mode 100644 keyboards/1upkeyboards/1upslider8/keymaps/via/keymap.c create mode 100644 keyboards/1upkeyboards/1upslider8/keymaps/via/rules.mk create mode 100644 keyboards/1upkeyboards/1upslider8/mcuconf.h create mode 100644 keyboards/1upkeyboards/1upslider8/readme.md create mode 100644 keyboards/1upkeyboards/1upslider8/rules.mk diff --git a/keyboards/1upkeyboards/1upslider8/1upslider8.c b/keyboards/1upkeyboards/1upslider8/1upslider8.c new file mode 100644 index 0000000000..e6d6698ee9 --- /dev/null +++ b/keyboards/1upkeyboards/1upslider8/1upslider8.c @@ -0,0 +1,400 @@ +/* Copyright 2022 ziptyze + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#include "analog.h" +#include "qmk_midi.h" + +#include "quantum.h" +#include "quantum/midi/midi.h" +#include "quantum/midi/midi_device.h" + +uint8_t divisor = 0; +void slider(void) { + if (divisor++) { // only run the slider function 1/256 times it's called + return; + } + midi_send_cc(&midi_device, 2, 0x3E, 0x7F - (analogReadPin(SLIDER_PIN) >> 3)); + uprintf("%d string", analogReadPin(SLIDER_PIN)); +} + +void housekeeping_task_kb(void) { + slider(); + housekeeping_task_user(); +} + +static uint32_t oled_logo_timer = 0; +static bool clear_logo = true; +static const char PROGMEM my_logo[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, + 0xE0, 0xF0, 0x70, 0x70, 0x70, 0x70, + 0xF0, 0xE0, 0xC0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x63, 0xE7, 0xE7, 0xCE, 0xCE, + 0xCE, 0xCE, 0xFC, 0xFC, 0x78, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC1, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFC, 0xFC, 0xFC, 0x1C, 0x1C, 0x1C, + 0x1C, 0x3C, 0xF8, 0xF8, 0xE0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7F, 0x7F, 0x7F, 0x70, + 0x70, 0x70, 0x70, 0x78, 0x3F, 0x3F, + 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, + 0xF0, 0xF0, 0x70, 0x70, 0x70, 0x70, + 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0xCE, 0xCE, + 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xC0, 0xC1, 0xC1, 0xC1, + 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0x81, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, + 0xFF, 0x39, 0x39, 0x79, 0xF9, 0xF9, + 0xDF, 0x9F, 0x0F, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x07, 0x07, 0x06, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1C, 0xBE, + 0xFF, 0x63, 0x63, 0xFF, 0xBE, 0x1C, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x0F, 0x1F, 0x18, 0x18, 0x1F, + 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00 + }; + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_270; +} + + +static const char PROGMEM ou_logo[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFC, 0xFC, 0xCF, 0xCF, + 0x03, 0x03, 0x03, 0x03, 0xFF, 0xFF, + 0x03, 0x03, 0xFF, 0xFF, 0x03, 0x03, + 0x03, 0x03, 0xFF, 0xFF, 0x03, 0x03, + 0x03, 0x03, 0xF3, 0xF3, 0x03, 0x03, + 0x0C, 0x0C, 0xFC, 0xFC, 0x00, 0x00, + 0xFF, 0xFF, 0xC0, 0xC0, 0xC0, 0xC0, + 0xFF, 0xFF, 0xF0, 0xF0, 0xC3, 0xC3, + 0xC0, 0xC0, 0xF0, 0xF0, 0xFF, 0xFF, + 0xC0, 0xC0, 0xC0, 0xC0, 0xFC, 0xFC, + 0x0C, 0x0C, 0x0F, 0x0F, 0x03, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00 + }; + + +static char PROGMEM caps_on[] = { + 0x00, 0x00, 0x00, 0xF8, 0x04, 0x04, + 0x04, 0x88, 0x00, 0x00, 0xE0, 0x58, + 0x44, 0x58, 0xE0, 0x00, 0x00, 0xFC, + 0x24, 0x24, 0x24, 0x18, 0x00, 0x00, + 0x98, 0x24, 0x24, 0x24, 0xC8, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x00, 0x00, 0x81, + 0xC0, 0xE0, 0xF0, 0xF0, 0xF0, 0xF1, + 0xF0, 0xF1, 0xF0, 0xF0, 0xE0, 0xC0, + 0x80, 0x00, 0x00, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x07, 0x0F, 0x1F, + 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, + 0x3F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00 + }; + +static char PROGMEM caps_off[] = { + 0x00, 0x00, 0x00, 0xF8, 0x04, 0x04, + 0x04, 0x88, 0x00, 0x00, 0xE0, 0x58, + 0x44, 0x58, 0xE0, 0x00, 0x00, 0xFC, + 0x24, 0x24, 0x24, 0x18, 0x00, 0x00, + 0x98, 0x24, 0x24, 0x24, 0xC8, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x00, 0x00, 0x81, + 0xC0, 0xE0, 0xF0, 0x70, 0x30, 0x31, + 0x30, 0x31, 0x70, 0xF0, 0xE0, 0xC0, + 0x80, 0x00, 0x00, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x03, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x07, 0x0F, 0x1E, + 0x3C, 0x38, 0x30, 0x30, 0x30, 0x30, + 0x38, 0x3C, 0x1E, 0x0F, 0x07, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00 + }; + +static const char PROGMEM num_on[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, + 0x18, 0x20, 0xC0, 0xFC, 0x00, 0x00, + 0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, + 0x00, 0x00, 0xFC, 0x18, 0x60, 0x80, + 0x60, 0x18, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x81, + 0xC0, 0xE0, 0xF0, 0xF0, 0xF1, 0xF1, + 0xF1, 0xF0, 0xF0, 0xF0, 0xE1, 0xC0, + 0x80, 0x01, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x07, 0x0F, 0x1F, + 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, + 0x3F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00 + }; + +static const char PROGMEM num_off[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, + 0x18, 0x20, 0xC0, 0xFC, 0x00, 0x00, + 0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, + 0x00, 0x00, 0xFC, 0x18, 0x60, 0x80, + 0x60, 0x18, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x81, + 0xC0, 0xE0, 0xF0, 0x70, 0x31, 0x31, + 0x31, 0x30, 0x70, 0xF0, 0xE1, 0xC0, + 0x80, 0x01, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x03, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x07, 0x0F, 0x1E, + 0x3C, 0x38, 0x30, 0x30, 0x30, 0x30, + 0x38, 0x3C, 0x1E, 0x0F, 0x07, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00 + }; + +static const char PROGMEM scrl_on[] = { + 0x00, 0x00, 0x00, 0x98, 0x24, 0x24, + 0x24, 0xC8, 0x00, 0x00, 0xF8, 0x04, + 0x04, 0x04, 0x88, 0x00, 0x00, 0xFC, + 0x24, 0x24, 0xE4, 0x18, 0x00, 0x00, + 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x00, 0x00, 0x80, + 0xC0, 0xE1, 0xF1, 0xF1, 0xF0, 0xF0, + 0xF0, 0xF1, 0xF0, 0xF0, 0xE0, 0xC1, + 0x80, 0x00, 0x00, 0x01, 0x01, 0x01, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x07, 0x0F, 0x1F, + 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, + 0x3F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00 + }; + +static const char PROGMEM scrl_off[] = { + 0x00, 0x00, 0x00, 0x98, 0x24, 0x24, + 0x24, 0xC8, 0x00, 0x00, 0xF8, 0x04, + 0x04, 0x04, 0x88, 0x00, 0x00, 0xFC, + 0x24, 0x24, 0xE4, 0x18, 0x00, 0x00, + 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x00, 0x00, 0x80, + 0xC0, 0xE1, 0xF1, 0x71, 0x30, 0x30, + 0x30, 0x31, 0x70, 0xF0, 0xE0, 0xC1, + 0x80, 0x00, 0x00, 0x01, 0x01, 0x01, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x03, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x07, 0x0F, 0x1E, + 0x3C, 0x38, 0x30, 0x30, 0x30, 0x30, + 0x38, 0x3C, 0x1E, 0x0F, 0x07, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00 + }; + +static void render_oled(void) { + const int combined_size = sizeof(ou_logo) + sizeof(caps_off) + sizeof(num_off) + sizeof(scrl_off); + char combined[combined_size]; + led_t led_state = host_keyboard_led_state(); + + memcpy_P(combined, ou_logo, sizeof(ou_logo)); + + if (led_state.caps_lock) { + memcpy_P(combined + sizeof(ou_logo), caps_on, sizeof(caps_off)); + } + else { + memcpy_P(combined + sizeof(ou_logo), caps_off, sizeof(caps_off)); + } + + if (led_state.num_lock) { + memcpy_P(combined + sizeof(ou_logo) + sizeof(caps_off), num_on, sizeof(num_off)); + } + else { + memcpy_P(combined + sizeof(ou_logo) + sizeof(caps_off), num_off, sizeof(num_off)); + } + + if (led_state.scroll_lock) { + memcpy_P(combined + sizeof(ou_logo) + sizeof(caps_off) + sizeof(num_off), scrl_on, sizeof(scrl_off)); + } + else { + memcpy_P(combined + sizeof(ou_logo) + sizeof(caps_off) + sizeof(num_off), scrl_off, sizeof(scrl_off)); + } + + oled_write_raw_P(combined, sizeof(combined)); +} + +void render_logo(void) { + oled_write_raw_P(my_logo, sizeof(my_logo)); +} + +void clear_screen(void) { + if (clear_logo){ + for (uint8_t i = 0; i < OLED_DISPLAY_HEIGHT; ++i) { + for (uint8_t j = 0; j < OLED_DISPLAY_WIDTH; ++j) { + oled_write_raw_byte(0x0, i*OLED_DISPLAY_WIDTH + j); + } + } + clear_logo = false; + } +} + +#define MIDI_CONTROL_CHANGE 0xB0 + +MidiDevice _midi_device; + +void midi_callback(uint8_t cable, uint8_t *midi_data, uint16_t length) { + // Check if this is a MIDI CC message on channel 2 + if ((midi_data[0] & 0xF0) == MIDI_CONTROL_CHANGE && midi_data[0] & (0x0F == 1)) { + uprintf("%s string", midi_data ); + // ... + } +} + +void slider8_cc_callback(struct _midi_device *dev, uint8_t cable, uint8_t code_index, uint8_t value) { + midi_callback(MIDI_CONTROL_CHANGE, &value, 1); +} + +void init_timer(void){ + oled_logo_timer = timer_read32(); +}; + +void keyboard_post_init_kb(void) { + init_timer(); + + keyboard_post_init_user(); +} + +void matrix_init_kb(void) { + midi_register_cc_callback(&_midi_device, slider8_cc_callback); + matrix_init_user(); +} + +#ifndef SHOW_LOGO +# define SHOW_LOGO 5000 +#endif +bool oled_task_kb(void) { + if (!oled_task_user()) { return false; } + if ((timer_elapsed32(oled_logo_timer) < SHOW_LOGO)){ + render_logo(); + }else{ + clear_screen(); + render_oled(); + } + return false; +} diff --git a/keyboards/1upkeyboards/1upslider8/config.h b/keyboards/1upkeyboards/1upslider8/config.h new file mode 100644 index 0000000000..059d16f3fa --- /dev/null +++ b/keyboards/1upkeyboards/1upslider8/config.h @@ -0,0 +1,29 @@ +/* Copyright 2023 Ziptyze + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define I2C1_SCL_PIN GP11 +#define I2C1_SDA_PIN GP10 +#define OLED_BRIGHTNESS 128 + +#define SLIDER_PIN GP28 +#define MIDI_ADVANCED + +#define RGB_MATRIX_LED_COUNT 8 +#define RGB_MATRIX_KEYPRESSES // reacts to keypresses +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/1upkeyboards/1upslider8/halconf.h b/keyboards/1upkeyboards/1upslider8/halconf.h new file mode 100644 index 0000000000..bc09e4db56 --- /dev/null +++ b/keyboards/1upkeyboards/1upslider8/halconf.h @@ -0,0 +1,9 @@ +// Copyright 2023 ziptyze +// SPDX-License-Identifier: GPL-2.0-or-later#pragma once + +#pragma once + +#define HAL_USE_I2C TRUE +#define HAL_USE_ADC TRUE + +#include_next diff --git a/keyboards/1upkeyboards/1upslider8/info.json b/keyboards/1upkeyboards/1upslider8/info.json new file mode 100644 index 0000000000..f2fe651060 --- /dev/null +++ b/keyboards/1upkeyboards/1upslider8/info.json @@ -0,0 +1,115 @@ +{ + "manufacturer": "1upkeyboards", + "keyboard_name": "1upslider8", + "maintainer": "ziptyze", + "processor": "RP2040", + "bootloader": "rp2040", + "usb": { + "device_version": "1.0.0", + "pid": "0x5611", + "vid": "0x6F75" + }, + "dynamic_keymap": { + "layer_count": 10 + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": false, + "oled": true, + "midi":true, + "rgb_matrix": true, + "encoder": true + }, + "encoder": { + "rotary": [ + { + "pin_a": "GP21", + "pin_b": "GP22" + } + ] + }, + "matrix_pins": { + "direct": [ + ["GP27", "GP17", "GP18", "GP19", "GP20", "GP15", "GP14", "GP13", "GP16"] + ] + }, + "bootmagic": { + "matrix": [0, 1] + }, + "ws2812": { + "pin": "GP26", + "driver": "vendor" + }, + "rgb_matrix": { + "animations": { + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron":true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "typing_heatmap": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "driver": "ws2812", + "layout": [ + { "flags": 4, "matrix": [0, 1], "x": 28, "y": 16 }, + { "flags": 4, "matrix": [0, 2], "x": 84, "y": 16 }, + { "flags": 4, "matrix": [0, 3], "x": 140, "y": 16 }, + { "flags": 4, "matrix": [0, 4], "x": 196, "y": 16 }, + { "flags": 4, "matrix": [0, 5], "x": 28, "y": 48 }, + { "flags": 4, "matrix": [0, 6], "x": 84, "y": 48 }, + { "flags": 4, "matrix": [0, 7], "x": 140, "y": 48 }, + { "flags": 4, "matrix": [0, 8], "x": 196, "y": 48 } + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "enc", "matrix": [0, 0], "x": 3, "y": 0 }, + { "label": "1", "matrix": [0, 1], "x": 0, "y": 1 }, + { "label": "2", "matrix": [0, 2], "x": 1, "y": 1 }, + { "label": "3", "matrix": [0, 3], "x": 2, "y": 1 }, + { "label": "4", "matrix": [0, 4], "x": 3, "y": 1 }, + { "label": "5", "matrix": [0, 5], "x": 0, "y": 2 }, + { "label": "6", "matrix": [0, 6], "x": 1, "y": 2 }, + { "label": "7", "matrix": [0, 7], "x": 2, "y": 2 }, + { "label": "8", "matrix": [0, 8], "x": 3, "y": 2 } + ] + } + } +} diff --git a/keyboards/1upkeyboards/1upslider8/keymaps/default/keymap.c b/keyboards/1upkeyboards/1upslider8/keymaps/default/keymap.c new file mode 100644 index 0000000000..9e39f9d3e3 --- /dev/null +++ b/keyboards/1upkeyboards/1upslider8/keymaps/default/keymap.c @@ -0,0 +1,31 @@ +/* Copyright 2022 ziptyze + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + RGB_TOG, + KC_1, KC_2, KC_3, KC_4, + KC_5, KC_6, KC_7, KC_8 + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD)} +}; +#endif diff --git a/keyboards/1upkeyboards/1upslider8/keymaps/default/rules.mk b/keyboards/1upkeyboards/1upslider8/keymaps/default/rules.mk new file mode 100644 index 0000000000..a40474b4d5 --- /dev/null +++ b/keyboards/1upkeyboards/1upslider8/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/1upkeyboards/1upslider8/keymaps/via/keymap.c b/keyboards/1upkeyboards/1upslider8/keymaps/via/keymap.c new file mode 100644 index 0000000000..4178e7de58 --- /dev/null +++ b/keyboards/1upkeyboards/1upslider8/keymaps/via/keymap.c @@ -0,0 +1,31 @@ +/* Copyright 2023 ziptyze + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + RGB_TOG, + KC_1, KC_2, KC_3, KC_4, + KC_5, KC_6, KC_7, KC_8 + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD)} +}; +#endif diff --git a/keyboards/1upkeyboards/1upslider8/keymaps/via/rules.mk b/keyboards/1upkeyboards/1upslider8/keymaps/via/rules.mk new file mode 100644 index 0000000000..15a5eaf11a --- /dev/null +++ b/keyboards/1upkeyboards/1upslider8/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes + +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/1upkeyboards/1upslider8/mcuconf.h b/keyboards/1upkeyboards/1upslider8/mcuconf.h new file mode 100644 index 0000000000..df9ddc79ad --- /dev/null +++ b/keyboards/1upkeyboards/1upslider8/mcuconf.h @@ -0,0 +1,11 @@ +// Copyright 2023 ziptyze +// SPDX-License-Identifier: GPL-2.0-or-later#pragma once + +#pragma once + +#include_next + +#undef RP_I2C_USE_I2C1 +#undef RP_ADC_USE_ADC1 +#define RP_I2C_USE_I2C1 TRUE +#define RP_ADC_USE_ADC1 TRUE diff --git a/keyboards/1upkeyboards/1upslider8/readme.md b/keyboards/1upkeyboards/1upslider8/readme.md new file mode 100644 index 0000000000..d1ad304b46 --- /dev/null +++ b/keyboards/1upkeyboards/1upslider8/readme.md @@ -0,0 +1,27 @@ +# slider8 + +![slider8](https://i.imgur.com/AiVQySnh.jpg) + + +This keyboard is the slider8 from 1upkeyboards.com, a small macropad with an oled, slide potentiometer, rotary encoder, and 8 switches in a 2x4 ortholinear arrangement with per-key in-switch rgb leds. + +The slide potentiometer presents to the computer as a midi device and will need a seperate program to map to device control. + +* Keyboard Maintainer: [ziptyze](https://github.com/ziptyze) + +Make example for this keyboard (after setting up your build environment): + + make 1upkeyboards/1upslider8:default + +Flashing example for this keyboard: + + make 1upkeyboards/1upslider8:default:flash + +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). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard +* **Physical reset button**: Hold down the button on the pi pico and plug in the keyboard diff --git a/keyboards/1upkeyboards/1upslider8/rules.mk b/keyboards/1upkeyboards/1upslider8/rules.mk new file mode 100644 index 0000000000..8515c3fae0 --- /dev/null +++ b/keyboards/1upkeyboards/1upslider8/rules.mk @@ -0,0 +1 @@ +SRC += analog.c From 134b60bb252056e50ebfd8f95522fdd6e4b432d5 Mon Sep 17 00:00:00 2001 From: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Date: Fri, 15 Sep 2023 15:06:11 -0400 Subject: [PATCH 068/496] [keyboard] tominabox1/le_chiffre oled rework (#21611) Co-authored-by: Drashna Jaelre --- .../le_chiffre/keymaps/default/keymap.c | 143 ++++++------------ .../le_chiffre/keymaps/via/keymap.c | 106 ++----------- keyboards/tominabox1/le_chiffre/le_chiffre.c | 123 +++++++++++++++ keyboards/tominabox1/le_chiffre/le_chiffre.h | 17 +++ keyboards/tominabox1/le_chiffre/post_config.h | 14 ++ 5 files changed, 211 insertions(+), 192 deletions(-) create mode 100644 keyboards/tominabox1/le_chiffre/le_chiffre.c create mode 100644 keyboards/tominabox1/le_chiffre/le_chiffre.h create mode 100644 keyboards/tominabox1/le_chiffre/post_config.h diff --git a/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c b/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c index 7008550f2b..8b981c6d75 100644 --- a/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c +++ b/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c @@ -88,115 +88,68 @@ combo_t key_combos[] = { }; #endif -#ifdef OLED_ENABLE // Special thanks to Sickbabies for this great OLED widget! -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return OLED_ROTATION_90; // rotates for proper orientation -} +#ifdef OLED_ENABLE -void render_lechiffre_logo(void) { - static const char PROGMEM lechiffre_logo[] = { - // 'lechiffre_logo', 32x20px - 0x00, 0x3e, 0x20, 0x20, 0x00, 0x18, 0x2c, 0xa8, 0x80, 0x00, 0x1c, 0x22, 0x22, 0x00, 0x3e, 0x08, - 0x30, 0x00, 0x34, 0x00, 0x3c, 0x0a, 0x00, 0xbc, 0x8a, 0x00, 0x38, 0x08, 0x00, 0x18, 0x2c, 0x28, - 0x00, 0xb6, 0xb6, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00, - 0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xb6, 0xb6, 0x00, - 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, - 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00}; +// Add additional layer names here if desired. Only first 5 characters will be copied to display. +const char PROGMEM layer_base[] = "BASE"; +const char PROGMEM layer_num_sym[] = " SYM"; +const char PROGMEM layer_nav[] = " NAV"; +// Add layer name variables to array here. Make sure these are in order. +const char* const PROGMEM layer_names[] = { + layer_base, + layer_num_sym, + layer_nav +}; - oled_write_raw_P(lechiffre_logo, sizeof(lechiffre_logo)); -} - -static void render_layer_status(void) { - oled_write_P(PSTR("-----"), false); - switch (get_highest_layer(layer_state)) { - case _BASE: - oled_write_ln_P(PSTR("BASE"), false); - break; - case _NUM_SYM: - oled_write_ln_P(PSTR(" SYM"), false); - break; - case _NAV: - oled_write_ln_P(PSTR(" NAV"), false); - break; - default: - oled_write_ln_P(PSTR("?????"), false); - } -} - -# define KEYLOG_LEN 11 -char keylog_str[KEYLOG_LEN] = {}; -uint8_t keylogs_str_idx = 0; -uint16_t log_timer = 0; - -const char code_to_name[60] = { - ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', - 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', - 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', - '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', - 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', - '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; - -void add_keylog(uint16_t keycode) { - if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { - keycode = keycode & 0xFF; - } - - for (uint8_t i = KEYLOG_LEN - 1; i > 0; i--) { - keylog_str[i] = keylog_str[i - 1]; - } - if (keycode < 60) { - keylog_str[0] = code_to_name[keycode]; - } - keylog_str[KEYLOG_LEN - 1] = 0; - - log_timer = timer_read(); -} - -void update_log(void) { - if (timer_elapsed(log_timer) > 750) { - add_keylog(0); - } -} - -// Text only renders -void render_keylogger_status(void) { - oled_write_P(PSTR("-----"), false); - oled_write(keylog_str, false); -} - -void render_keylock_status(led_t led_state) { - oled_write_P(PSTR("-----"), false); - oled_write_P(PSTR("C"), led_state.caps_lock); - oled_write_P(PSTR(" "), false); - oled_write_P(PSTR("N"), led_state.num_lock); - oled_write_P(PSTR(" "), false); - oled_write_P(PSTR("S"), led_state.scroll_lock); - // oled_write_ln_P(PSTR(" "), false); -} - -void render_mod_status(uint8_t modifiers) { - oled_write_P(PSTR("-----"), false); - oled_write_ln_P(PSTR("SHFT"), (modifiers & MOD_MASK_SHIFT)); - oled_write_ln_P(PSTR("ALT"), (modifiers & MOD_MASK_ALT)); - oled_write_ln_P(PSTR("CTRL"), (modifiers & MOD_MASK_CTRL)); - oled_write_ln_P(PSTR("GUI"), (modifiers & MOD_MASK_GUI)); -} +static char oled_layer_buf[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; +static layer_state_t top_layer_cache; +/* BEGIN STANDARD QMK FUNCTIONS */ bool oled_task_user(void) { - render_lechiffre_logo(); + oled_write_raw_P(lechiffre_logo, sizeof(lechiffre_logo)); + // Renders the current keyboard state (layer, lock, caps, scroll, etc); oled_set_cursor(0, 3); - render_layer_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + oled_write_P(oled_section_break, false); + render_layer_status(oled_layer_buf); + oled_write_P(oled_section_break, false); render_mod_status(get_mods() | get_oneshot_mods()); + oled_write_P(oled_section_break, false); render_keylock_status(host_keyboard_led_state()); + oled_write_P(oled_section_break, false); render_keylogger_status(); return false; } -bool process_record_user(uint16_t keycode, keyrecord_t *record) { +bool process_record_user(uint16_t keycode, keyrecord_t* record) { if (record->event.pressed) { - add_keylog(keycode); + add_keylog(keycode, record); } + return true; } + +// If we don't force an update during initialization, the layer name buffer will start out blank. +layer_state_t default_layer_state_set_user(layer_state_t state) { + update_layer_namebuf(get_highest_layer(state), true); + return state; +} +layer_state_t layer_state_set_user(layer_state_t state) { + update_layer_namebuf(get_highest_layer(state | default_layer_state), false); + return state; +} + +/* END STANDARD QMK FUNCTIONS */ +/* BEGIN CUSTOM HELPER FUNCTION FOR OLED */ +// Avoid excessive copying by only updating the layer name buffer when the layer changes +void update_layer_namebuf(layer_state_t layer, bool force_update) { + if (force_update || layer != top_layer_cache) { + top_layer_cache = layer; + if (layer < ARRAY_SIZE(layer_names)) { + memcpy_P(oled_layer_buf, pgm_read_ptr(&layer_names[layer]), ARRAY_SIZE(oled_layer_buf) - 1); + } else { + memcpy(oled_layer_buf, get_u8_str(layer, ' '), ARRAY_SIZE(oled_layer_buf) - 1); + } + } +} #endif diff --git a/keyboards/tominabox1/le_chiffre/keymaps/via/keymap.c b/keyboards/tominabox1/le_chiffre/keymaps/via/keymap.c index 2592ee5dc1..54d4f38c71 100644 --- a/keyboards/tominabox1/le_chiffre/keymaps/via/keymap.c +++ b/keyboards/tominabox1/le_chiffre/keymaps/via/keymap.c @@ -32,106 +32,17 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { }; #endif -#ifdef OLED_ENABLE // Special thanks to Sickbabies for this great OLED widget! -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return OLED_ROTATION_90; // rotates for proper orientation -} - -void render_lechiffre_logo(void) { - static const char PROGMEM lechiffre_logo[] = { - // 'lechiffre_logo', 32x20px - 0x00, 0x3e, 0x20, 0x20, 0x00, 0x18, 0x2c, 0xa8, 0x80, 0x00, 0x1c, 0x22, 0x22, 0x00, 0x3e, 0x08, - 0x30, 0x00, 0x34, 0x00, 0x3c, 0x0a, 0x00, 0xbc, 0x8a, 0x00, 0x38, 0x08, 0x00, 0x18, 0x2c, 0x28, - 0x00, 0xb6, 0xb6, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00, - 0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xb6, 0xb6, 0x00, - 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, - 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00}; - - oled_write_raw_P(lechiffre_logo, sizeof(lechiffre_logo)); -} - -// static void render_layer_status(void) { -// oled_write_P(PSTR("-----"), false); -// switch (get_highest_layer(layer_state)) { -// case _BASE: -// oled_write_ln_P(PSTR("BASE"), false); -// break; -// case _NUM_SYM: -// oled_write_ln_P(PSTR(" SYM"), false); -// break; -// case _NAV: -// oled_write_ln_P(PSTR(" NAV"), false); -// break; -// default: -// oled_write_ln_P(PSTR("?????"), false); -// } -// } - -# define KEYLOG_LEN 11 -char keylog_str[KEYLOG_LEN] = {}; -uint8_t keylogs_str_idx = 0; -uint16_t log_timer = 0; - -const char code_to_name[60] = { - ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', - 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', - 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', - '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', - 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', - '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; - -void add_keylog(uint16_t keycode) { - if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { - keycode = keycode & 0xFF; - } - - for (uint8_t i = KEYLOG_LEN - 1; i > 0; i--) { - keylog_str[i] = keylog_str[i - 1]; - } - if (keycode < 60) { - keylog_str[0] = code_to_name[keycode]; - } - keylog_str[KEYLOG_LEN - 1] = 0; - - log_timer = timer_read(); -} - -void update_log(void) { - if (timer_elapsed(log_timer) > 750) { - add_keylog(0); - } -} - -// Text only renders -void render_keylogger_status(void) { - oled_write_P(PSTR("-----"), false); - oled_write(keylog_str, false); -} - -void render_keylock_status(led_t led_state) { - oled_write_P(PSTR("-----"), false); - oled_write_P(PSTR("C"), led_state.caps_lock); - oled_write_P(PSTR(" "), false); - oled_write_P(PSTR("N"), led_state.num_lock); - oled_write_P(PSTR(" "), false); - oled_write_P(PSTR("S"), led_state.scroll_lock); - // oled_write_ln_P(PSTR(" "), false); -} - -void render_mod_status(uint8_t modifiers) { - oled_write_P(PSTR("-----"), false); - oled_write_ln_P(PSTR("SHFT"), (modifiers & MOD_MASK_SHIFT)); - oled_write_ln_P(PSTR("ALT"), (modifiers & MOD_MASK_ALT)); - oled_write_ln_P(PSTR("CTRL"), (modifiers & MOD_MASK_CTRL)); - oled_write_ln_P(PSTR("GUI"), (modifiers & MOD_MASK_GUI)); -} - +#ifdef OLED_ENABLE bool oled_task_user(void) { - render_lechiffre_logo(); + oled_write_raw_P(lechiffre_logo, sizeof(lechiffre_logo)); oled_set_cursor(0, 3); - // render_layer_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + oled_write_P(oled_section_break, false); + render_layer_status(get_u8_str(get_highest_layer(layer_state | default_layer_state), ' ')); + oled_write_P(oled_section_break, false); render_mod_status(get_mods() | get_oneshot_mods()); + oled_write_P(oled_section_break, false); render_keylock_status(host_keyboard_led_state()); + oled_write_P(oled_section_break, false); render_keylogger_status(); return false; @@ -139,8 +50,9 @@ bool oled_task_user(void) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { - add_keylog(keycode); + add_keylog(keycode, record); } + return true; } #endif diff --git a/keyboards/tominabox1/le_chiffre/le_chiffre.c b/keyboards/tominabox1/le_chiffre/le_chiffre.c new file mode 100644 index 0000000000..e33112edad --- /dev/null +++ b/keyboards/tominabox1/le_chiffre/le_chiffre.c @@ -0,0 +1,123 @@ +// Copyright 2020 tominabox1 (@tominabox1) +// Copyright 2019 @foostan +// Copyright 2020 Drashna Jaelre <@drashna> +// Copyright 2023 QMK Contributors <@qmk> +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" +#include "le_chiffre.h" + +#if defined(OLED_ENABLE) // Special thanks to Sickbabies for this great OLED widget! + +/* CONSTANTS */ +const char PROGMEM code_to_name[53] = { + 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', + 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', + 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', + '5', '6', '7', '8', '9', '0', 'R', 'E', 'B', 'T', + '_', '-', '=', '[', ']', '\\', '#', ';', '\'', '`', + ',', '.', '/' +}; + +const char PROGMEM lechiffre_logo[96] = { + // 'lechiffre_logo', 32x20px + 0x00, 0x3e, 0x20, 0x20, 0x00, 0x18, 0x2c, 0xa8, 0x80, 0x00, 0x1c, 0x22, 0x22, 0x00, 0x3e, 0x08, + 0x30, 0x00, 0x34, 0x00, 0x3c, 0x0a, 0x00, 0xbc, 0x8a, 0x00, 0x38, 0x08, 0x00, 0x18, 0x2c, 0x28, + 0x00, 0xb6, 0xb6, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00, + 0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xb6, 0xb6, 0x00, + 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, + 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00 +}; + +const char PROGMEM oled_section_break[6] = OLED_SECTION_BREAK; +/* END CONSTANTS */ + +/* TRACKERS */ +static char keylog_str[KEYLOG_LEN] = {}; +static uint16_t log_timer = 0; +/* END TRACKERS */ + +/* BEGIN STANDARD QMK FUNCTIONS */ + +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_90; +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + oled_write_raw_P(lechiffre_logo, sizeof(lechiffre_logo)); + oled_set_cursor(0, 3); + oled_write_P(oled_section_break, false); + render_layer_status(get_u8_str(get_highest_layer(layer_state | default_layer_state), ' ')); + oled_write_P(oled_section_break, false); + render_mod_status(get_mods() | get_oneshot_mods()); + oled_write_P(oled_section_break, false); + render_keylock_status(host_keyboard_led_state()); + return true; +} + +/* END STANDARD QMK FUNCTIONS */ +/* BEGIN CUSTOM HELPER FUNCTIONS FOR OLED */ + +/** + * Sickbabies deserves credit for the original OLED implementation, + * however most of the keylogging code appears to have been lifted from crkbd + * -- which is why @foostan and @drashna are now credited here as well. + * + * Improvements were lifted from crkbd again in 2023, with gratitude. + */ +void add_keylog(uint16_t keycode, keyrecord_t *record) { + if (IS_QK_MOD_TAP(keycode) && record->tap.count) { + keycode = QK_MOD_TAP_GET_TAP_KEYCODE(keycode); + } else if (IS_QK_LAYER_TAP(keycode) && record->tap.count) { + keycode = QK_LAYER_TAP_GET_TAP_KEYCODE(keycode); + } else if (IS_QK_MODS(keycode)) { + keycode = QK_MODS_GET_BASIC_KEYCODE(keycode); + } + + if (keycode >= KC_A && keycode < KC_CAPS) { + keycode -= KC_A; // shift to first letter of alphabet + for (uint8_t i = KEYLOG_LEN - 1; i > 0; i--) { + keylog_str[i] = keylog_str[i - 1]; + } + keylog_str[0] = pgm_read_byte(&(code_to_name[keycode])); + keylog_str[KEYLOG_LEN - 1] = 0x00; + } + + log_timer = timer_read(); +} + +void render_keylock_status(led_t led_state) { + oled_write_P(PSTR("C"), led_state.caps_lock); + oled_advance_char(); + oled_write_P(PSTR("N"), led_state.num_lock); + oled_advance_char(); + oled_write_P(PSTR("S"), led_state.scroll_lock); +} + +void render_keylogger_status(void) { + // zero out log after 30s idle time + if (strlen(keylog_str) > 0 && timer_elapsed(log_timer) > 30000) { + keylog_str[0] = 0x00; + oled_advance_page(true); + oled_advance_page(true); + } + oled_write(keylog_str, false); +} + +void render_layer_status(const char* layer_name) { + oled_write(layer_name, false); + if (strlen(layer_name) < oled_max_chars()) { + oled_advance_page(true); + } +} + +void render_mod_status(uint8_t modifiers) { + oled_write_ln_P(PSTR("SHFT"), (modifiers & MOD_MASK_SHIFT)); + oled_write_ln_P(PSTR("ALT"), (modifiers & MOD_MASK_ALT)); + oled_write_ln_P(PSTR("CTRL"), (modifiers & MOD_MASK_CTRL)); + oled_write_ln_P(PSTR("GUI"), (modifiers & MOD_MASK_GUI)); +} +#endif // OLED_ENABLE diff --git a/keyboards/tominabox1/le_chiffre/le_chiffre.h b/keyboards/tominabox1/le_chiffre/le_chiffre.h new file mode 100644 index 0000000000..5bbcbf51cf --- /dev/null +++ b/keyboards/tominabox1/le_chiffre/le_chiffre.h @@ -0,0 +1,17 @@ +// Copyright 2020 tominabox1 (@tominabox1) and sickbabies +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define KEYLOG_LEN 11 + +extern const char PROGMEM code_to_name[53]; +extern const char PROGMEM lechiffre_logo[96]; +extern const char PROGMEM oled_section_break[6]; + +void add_keylog(uint16_t keycode, keyrecord_t* record); +void render_keylock_status(led_t led_state); +void render_keylogger_status(void); +void render_layer_status(const char* layer_name); +void render_mod_status(uint8_t modifiers); +void update_layer_namebuf(layer_state_t layer, bool force_update); diff --git a/keyboards/tominabox1/le_chiffre/post_config.h b/keyboards/tominabox1/le_chiffre/post_config.h new file mode 100644 index 0000000000..181004038e --- /dev/null +++ b/keyboards/tominabox1/le_chiffre/post_config.h @@ -0,0 +1,14 @@ +// Copyright 2023 The QMK Community (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#if defined(OLED_ENABLE) +# if !defined(OLED_UPDATE_INTERVAL) +# define OLED_UPDATE_INTERVAL 5 +# endif + +# if !defined(OLED_SECTION_BREAK) +# define OLED_SECTION_BREAK "-----" +# endif +#endif From 85c2b035079bc247fd9497721219bfccf4b31071 Mon Sep 17 00:00:00 2001 From: dztech Date: Sat, 16 Sep 2023 03:36:31 +0800 Subject: [PATCH 069/496] [Keyboard] Rename og60 to tofu60 (#21684) Co-authored-by: Duncan Sutherland Co-authored-by: Ryan --- data/mappings/keyboard_aliases.hjson | 3 + keyboards/dztech/og60/info.json | 448 ------------------ keyboards/dztech/tofu60/info.json | 448 ++++++++++++++++++ .../{og60 => tofu60}/keymaps/default/keymap.c | 0 .../{og60 => tofu60}/keymaps/via/keymap.c | 0 .../{og60 => tofu60}/keymaps/via/rules.mk | 0 keyboards/dztech/{og60 => tofu60}/readme.md | 6 +- keyboards/dztech/{og60 => tofu60}/rules.mk | 0 8 files changed, 454 insertions(+), 451 deletions(-) delete mode 100644 keyboards/dztech/og60/info.json create mode 100644 keyboards/dztech/tofu60/info.json rename keyboards/dztech/{og60 => tofu60}/keymaps/default/keymap.c (100%) rename keyboards/dztech/{og60 => tofu60}/keymaps/via/keymap.c (100%) rename keyboards/dztech/{og60 => tofu60}/keymaps/via/rules.mk (100%) rename keyboards/dztech/{og60 => tofu60}/readme.md (91%) rename keyboards/dztech/{og60 => tofu60}/rules.mk (100%) diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 60c5deaad5..0d1f65d8b9 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -166,6 +166,9 @@ "dztech/volcano660": { "target": "ilumkb/volcano660" }, + "dztech/og60": { + "target": "dztech/tofu60" + }, "eek": { "target": "eek/silk_down" }, diff --git a/keyboards/dztech/og60/info.json b/keyboards/dztech/og60/info.json deleted file mode 100644 index 52c4e0b189..0000000000 --- a/keyboards/dztech/og60/info.json +++ /dev/null @@ -1,448 +0,0 @@ -{ - "manufacturer": "KBDFans", - "keyboard_name": "Og60", - "maintainer": "moyi4681", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "indicators": { - "caps_lock": "GP28" - }, - "matrix_pins": { - "cols": ["GP2", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP18", "GP19", "GP20", "GP21", "GP22", "GP23"], - "rows": ["GP4", "GP3", "GP17", "GP24", "GP25"] - }, - "processor": "RP2040", - "usb": { - "device_version": "0.0.1", - "pid": "0x6071", - "vid": "0x4B42" - }, - "community_layouts": ["60_ansi", "60_hhkb", "60_iso", "60_ansi_tsangan", "60_tsangan_hhkb"], - "layouts": { - "LAYOUT_60_ansi": { - "layout": [ - {"label": "~", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "K47", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, - {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_hhkb": { - "layout": [ - {"label": "~", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Del", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "Backspace", "matrix": [2, 12], "x": 14, "y": 0}, - - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, - {"label": "Ctrl", "matrix": [4, 1], "x": 1.5, "y": 4}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"label": "K47", "matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"label": "Ctrl", "matrix": [4, 12], "x": 12.5, "y": 4} - ] - }, - "LAYOUT_60_iso": { - "layout": [ - {"label": "~", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "~", "matrix": [1, 13], "x": 12.75, "y": 2}, - {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "K47", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, - {"label": "AltGr", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi_tsangan": { - "layout": [ - {"label": "~", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"label": "K47", "matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4}, - {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_60_tsangan_hhkb": { - "layout": [ - {"label": "~", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Del", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "Backspace", "matrix": [2, 12], "x": 14, "y": 0}, - - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, - - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, - {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, - {"label": "K47", "matrix": [4, 7], "x": 4, "y": 4, "w": 7}, - {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, - {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4}, - {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} - ] - }, - "LAYOUT_all": { - "layout": [ - {"label": "~", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Del", "matrix": [2, 12], "x": 13, "y": 0}, - {"label": "Backspace", "matrix": [0, 13], "x": 14, "y": 0}, - - {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, - {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, - {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, - {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, - {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, - {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, - {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, - {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, - {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, - {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, - {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, - {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, - {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, - {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, - {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, - {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, - {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, - {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, - {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, - {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, - {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, - {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3}, - {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, - {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, - {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, - {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, - {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, - {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, - {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, - {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, - {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, - {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, - {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, - - {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"label": "K47", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, - {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - } - } -} - diff --git a/keyboards/dztech/tofu60/info.json b/keyboards/dztech/tofu60/info.json new file mode 100644 index 0000000000..fb6bc52889 --- /dev/null +++ b/keyboards/dztech/tofu60/info.json @@ -0,0 +1,448 @@ +{ + "manufacturer": "KBDFans", + "keyboard_name": "TOFU60", + "maintainer": "moyi4681", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "GP28" + }, + "matrix_pins": { + "cols": ["GP2", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP18", "GP19", "GP20", "GP21", "GP22", "GP23"], + "rows": ["GP4", "GP3", "GP17", "GP24", "GP25"] + }, + "processor": "RP2040", + "usb": { + "device_version": "0.0.1", + "pid": "0x6071", + "vid": "0x4B42" + }, + "community_layouts": ["60_ansi", "60_hhkb", "60_iso", "60_ansi_tsangan", "60_tsangan_hhkb"], + "layouts": { + "LAYOUT_60_ansi": { + "layout": [ + { "label": "~", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "!", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "@", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "#", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "$", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "%", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "^", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "&", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "*", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "(", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": ")", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "_", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "+", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2 }, + + { "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5 }, + { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5 }, + + { "label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 }, + { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25 }, + + { "label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25 }, + { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75 }, + + { "label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25 }, + { "label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "K47", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25 }, + { "label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25 }, + { "label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25 }, + { "label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25 }, + { "label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25 } + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + { "label": "~", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "!", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "@", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "#", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "$", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "%", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "^", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "&", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "*", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "(", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": ")", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "_", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "+", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "Del", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "Backspace", "matrix": [2, 12], "x": 14, "y": 0 }, + + { "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5 }, + { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5 }, + + { "label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 }, + { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25 }, + + { "label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25 }, + { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "Fn", "matrix": [3, 13], "x": 14, "y": 3 }, + { "label": "Ctrl", "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5 }, + { "label": "K47", "matrix": [4, 7], "x": 4, "y": 4, "w": 7 }, + { "label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5 }, + { "label": "Ctrl", "matrix": [4, 12], "x": 12.5, "y": 4 } + ] + }, + "LAYOUT_60_iso": { + "layout": [ + { "label": "~", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "!", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "@", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "#", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "$", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "%", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "^", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "&", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "*", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "(", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": ")", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "_", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "+", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2 }, + + { "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5 }, + { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1 }, + + { "label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 }, + { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "label": "@", "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "label": "~", "matrix": [1, 13], "x": 12.75, "y": 2 }, + { "label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2 }, + + { "label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25 }, + { "label": "|", "matrix": [3, 1], "x": 1.25, "y": 3 }, + { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75 }, + + { "label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25 }, + { "label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "K47", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25 }, + { "label": "AltGr", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25 }, + { "label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25 }, + { "label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25 }, + { "label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25 } + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + { "label": "~", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "!", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "@", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "#", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "$", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "%", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "^", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "&", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "*", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "(", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": ")", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "_", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "+", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2 }, + + { "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5 }, + { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5 }, + + { "label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 }, + { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25 }, + + { "label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25 }, + { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75 }, + + { "label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5 }, + { "label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5 }, + { "label": "K47", "matrix": [4, 7], "x": 4, "y": 4, "w": 7 }, + { "label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5 }, + { "label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4 }, + { "label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5 } + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + { "label": "~", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "!", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "@", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "#", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "$", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "%", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "^", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "&", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "*", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "(", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": ")", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "_", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "+", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "Del", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "Backspace", "matrix": [2, 12], "x": 14, "y": 0 }, + + { "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5 }, + { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5 }, + + { "label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 }, + { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25 }, + + { "label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25 }, + { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "Fn", "matrix": [3, 13], "x": 14, "y": 3 }, + + { "label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5 }, + { "label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5 }, + { "label": "K47", "matrix": [4, 7], "x": 4, "y": 4, "w": 7 }, + { "label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5 }, + { "label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4 }, + { "label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5 } + ] + }, + "LAYOUT_all": { + "layout": [ + { "label": "~", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "!", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "@", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "#", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "$", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "%", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "^", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "&", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "*", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "(", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": ")", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "_", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "+", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "Del", "matrix": [2, 12], "x": 13, "y": 0 }, + { "label": "Backspace", "matrix": [0, 13], "x": 14, "y": 0 }, + + { "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5 }, + { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5 }, + + { "label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 }, + { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25 }, + + { "label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25 }, + { "label": "|", "matrix": [3, 1], "x": 1.25, "y": 3 }, + { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "Fn", "matrix": [3, 13], "x": 14, "y": 3 }, + + { "label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25 }, + { "label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "K47", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25 }, + { "label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25 }, + { "label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25 }, + { "label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25 }, + { "label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25 } + ] + } + } +} + diff --git a/keyboards/dztech/og60/keymaps/default/keymap.c b/keyboards/dztech/tofu60/keymaps/default/keymap.c similarity index 100% rename from keyboards/dztech/og60/keymaps/default/keymap.c rename to keyboards/dztech/tofu60/keymaps/default/keymap.c diff --git a/keyboards/dztech/og60/keymaps/via/keymap.c b/keyboards/dztech/tofu60/keymaps/via/keymap.c similarity index 100% rename from keyboards/dztech/og60/keymaps/via/keymap.c rename to keyboards/dztech/tofu60/keymaps/via/keymap.c diff --git a/keyboards/dztech/og60/keymaps/via/rules.mk b/keyboards/dztech/tofu60/keymaps/via/rules.mk similarity index 100% rename from keyboards/dztech/og60/keymaps/via/rules.mk rename to keyboards/dztech/tofu60/keymaps/via/rules.mk diff --git a/keyboards/dztech/og60/readme.md b/keyboards/dztech/tofu60/readme.md similarity index 91% rename from keyboards/dztech/og60/readme.md rename to keyboards/dztech/tofu60/readme.md index 07d6e6a658..2cd4de58bf 100644 --- a/keyboards/dztech/og60/readme.md +++ b/keyboards/dztech/tofu60/readme.md @@ -1,8 +1,8 @@ -# OG60 +# TOFU60 A customizable 60% HotSwap keyboard. * Keyboard Maintainer: [moyi4681](https://github.com/moyi4681) -* Hardware Supported: OG60 +* Hardware Supported: TOFU60 * Hardware Availability: [KBDfans](https://kbdfans.com/) ## Bootloader mode @@ -17,6 +17,6 @@ Enter the bootloader in 3 ways: Make example for this keyboard (after setting up your build environment): - make dztech/og60:default + make dztech/tofu60: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). diff --git a/keyboards/dztech/og60/rules.mk b/keyboards/dztech/tofu60/rules.mk similarity index 100% rename from keyboards/dztech/og60/rules.mk rename to keyboards/dztech/tofu60/rules.mk From d83ac7a1247ccde863234e71b4c55b2e0d87c41a Mon Sep 17 00:00:00 2001 From: TreasureTypes <73436366+TreasureTypes@users.noreply.github.com> Date: Fri, 15 Sep 2023 23:44:41 +0200 Subject: [PATCH 070/496] [Keyboard] Adding Treasure TYPE-9 series III (#21748) Co-authored-by: Duncan Sutherland Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Joel Challis Co-authored-by: Drashna Jaelre --- keyboards/treasure/type9s3/config.h | 30 +++++++++ keyboards/treasure/type9s3/info.json | 65 +++++++++++++++++++ .../treasure/type9s3/keymaps/default/keymap.c | 31 +++++++++ .../treasure/type9s3/keymaps/via/keymap.c | 31 +++++++++ .../treasure/type9s3/keymaps/via/rules.mk | 1 + keyboards/treasure/type9s3/readme.md | 22 +++++++ keyboards/treasure/type9s3/rules.mk | 1 + 7 files changed, 181 insertions(+) create mode 100644 keyboards/treasure/type9s3/config.h create mode 100644 keyboards/treasure/type9s3/info.json create mode 100644 keyboards/treasure/type9s3/keymaps/default/keymap.c create mode 100644 keyboards/treasure/type9s3/keymaps/via/keymap.c create mode 100644 keyboards/treasure/type9s3/keymaps/via/rules.mk create mode 100644 keyboards/treasure/type9s3/readme.md create mode 100644 keyboards/treasure/type9s3/rules.mk diff --git a/keyboards/treasure/type9s3/config.h b/keyboards/treasure/type9s3/config.h new file mode 100644 index 0000000000..b87cd59b2f --- /dev/null +++ b/keyboards/treasure/type9s3/config.h @@ -0,0 +1,30 @@ +// Copyright 2023 Treasure +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGB_MATRIX_LED_COUNT 9 + +#define RGB_MATRIX_DEFAULT_SPD 40 // Sets the default animation speed, if none has been set +#define RGB_MATRIX_DEFAULT_VAL 120 + +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_DISABLE_WHEN_USB_SUSPENDED + +#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +#define ENABLE_RGB_MATRIX_CYCLE_ALL +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +#define ENABLE_RGB_MATRIX_PIXEL_RAIN +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_RAIN +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define ENABLE_RGB_MATRIX_SPLASH +#define ENABLE_RGB_MATRIX_SOLID_SPLASH diff --git a/keyboards/treasure/type9s3/info.json b/keyboards/treasure/type9s3/info.json new file mode 100644 index 0000000000..8e9c9fa38f --- /dev/null +++ b/keyboards/treasure/type9s3/info.json @@ -0,0 +1,65 @@ +{ + "manufacturer": "Treasure", + "keyboard_name": "Type-9 Series III", + "maintainer": "arnstadm", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": false, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "direct": [ + ["C7", "C6", "D3"], + ["B7", "C5", "D2"], + ["B5", "B4", "D4"] + ] + }, + "processor": "atmega32u2", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x5493", + "vid": "0x5452" + }, + "ws2812": { + "pin": "B6" + }, + "rgb_matrix": { + "driver": "ws2812", + "layout": [ + { "matrix": [2, 0],"flags": 4, "x": 0, "y": 20 }, + { "matrix": [2, 1],"flags": 4, "x": 10, "y": 20 }, + { "matrix": [2, 2],"flags": 4, "x": 20, "y": 20 }, + { "matrix": [1, 2],"flags": 4, "x": 20, "y": 10 }, + { "matrix": [1, 1],"flags": 4, "x": 10, "y": 10 }, + { "matrix": [1, 0],"flags": 4, "x": 0, "y": 10 }, + { "matrix": [0, 0],"flags": 4, "x": 0, "y": 0 }, + { "matrix": [0, 1],"flags": 4, "x": 10, "y": 0 }, + { "matrix": [0, 2],"flags": 4, "x": 20, "y": 0 } + ] + }, + "community_layouts": ["ortho_3x3"], + "layouts": { + "LAYOUT_ortho_3x3": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 } + ] + } + } +} diff --git a/keyboards/treasure/type9s3/keymaps/default/keymap.c b/keyboards/treasure/type9s3/keymaps/default/keymap.c new file mode 100644 index 0000000000..166062f649 --- /dev/null +++ b/keyboards/treasure/type9s3/keymaps/default/keymap.c @@ -0,0 +1,31 @@ +// Copyright 2023 Treasure +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_ortho_3x3( + MO(1), KC_MPLY, RGB_TOG, + KC_VOLD, KC_MUTE, KC_VOLU, + KC_KP_1, KC_KP_2, KC_KP_3 + ), + + [1] = LAYOUT_ortho_3x3( + KC_TRNS, RGB_M_P, MO(2), + RGB_MOD, RGB_HUI, RGB_VAI, + RGB_RMOD, RGB_HUD, RGB_VAD + ), + + [2] = LAYOUT_ortho_3x3( + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, MO(3) + ), + + [3] = LAYOUT_ortho_3x3( + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + QK_BOOT, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/treasure/type9s3/keymaps/via/keymap.c b/keyboards/treasure/type9s3/keymaps/via/keymap.c new file mode 100644 index 0000000000..166062f649 --- /dev/null +++ b/keyboards/treasure/type9s3/keymaps/via/keymap.c @@ -0,0 +1,31 @@ +// Copyright 2023 Treasure +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_ortho_3x3( + MO(1), KC_MPLY, RGB_TOG, + KC_VOLD, KC_MUTE, KC_VOLU, + KC_KP_1, KC_KP_2, KC_KP_3 + ), + + [1] = LAYOUT_ortho_3x3( + KC_TRNS, RGB_M_P, MO(2), + RGB_MOD, RGB_HUI, RGB_VAI, + RGB_RMOD, RGB_HUD, RGB_VAD + ), + + [2] = LAYOUT_ortho_3x3( + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, MO(3) + ), + + [3] = LAYOUT_ortho_3x3( + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + QK_BOOT, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/treasure/type9s3/keymaps/via/rules.mk b/keyboards/treasure/type9s3/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/treasure/type9s3/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/treasure/type9s3/readme.md b/keyboards/treasure/type9s3/readme.md new file mode 100644 index 0000000000..354b63b04a --- /dev/null +++ b/keyboards/treasure/type9s3/readme.md @@ -0,0 +1,22 @@ +# Treasure TYPE-9 Series III + +![TYPE9SIII](https://i.imgur.com/lohJ0Dalh.png) + +Treasure TYPE-9 Series III is a 3x3 Macropad. + +* Keyboard Maintainer: [Treasure](https://github.com/TreasureTypes) +* Hardware Supported: Treasure TYPE-9 Series III PCB +* Hardware Availability: [Treasure Store](http://treasuretypes.com) + +Make example for this keyboard (after setting up your build environment): + + make treasure/type9s3: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). + +## Bootloader + +Enter the bootloader : + +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard diff --git a/keyboards/treasure/type9s3/rules.mk b/keyboards/treasure/type9s3/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/treasure/type9s3/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From 47675545629ebb14647960ed083b9b80e7a64c89 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 15 Sep 2023 15:25:52 -0700 Subject: [PATCH 071/496] Raindrop Layout Updates (#22032) * Add layout/matrix diagram [docs] * Rename `LAYOUT_all` to `LAYOUT_64_ansi_split_bs` [refactor] * Add `LAYOUT_60_ansi_split_bs_rshift` [enhancement] --- keyboards/raindrop/info.json | 76 +++++++++++++++++++++++++++- keyboards/raindrop/matrix_diagram.md | 30 +++++++++++ 2 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 keyboards/raindrop/matrix_diagram.md diff --git a/keyboards/raindrop/info.json b/keyboards/raindrop/info.json index 738e1719ea..bc67d437fa 100644 --- a/keyboards/raindrop/info.json +++ b/keyboards/raindrop/info.json @@ -27,6 +27,9 @@ "rgblight": false, "sleep_led": false }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_64_ansi_split_bs" + }, "community_layouts": ["60_hhkb", "60_ansi", "64_ansi"], "layouts": { "LAYOUT_60_ansi": { @@ -98,6 +101,77 @@ {"matrix": [4, 7], "x":13.75, "y":4, "w":1.25} ] }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0}, + {"matrix": [0, 1], "x":1, "y":0}, + {"matrix": [0, 2], "x":2, "y":0}, + {"matrix": [0, 3], "x":3, "y":0}, + {"matrix": [0, 4], "x":4, "y":0}, + {"matrix": [0, 5], "x":5, "y":0}, + {"matrix": [0, 6], "x":6, "y":0}, + {"matrix": [0, 7], "x":7, "y":0}, + {"matrix": [0, 8], "x":8, "y":0}, + {"matrix": [0, 9], "x":9, "y":0}, + {"matrix": [0, 10], "x":10, "y":0}, + {"matrix": [0, 11], "x":11, "y":0}, + {"matrix": [0, 12], "x":12, "y":0}, + {"matrix": [0, 13], "x":13, "y":0}, + {"matrix": [0, 14], "x":14, "y":0}, + + {"matrix": [1, 0], "x":0, "y":1, "w":1.5}, + {"matrix": [1, 1], "x":1.5, "y":1}, + {"matrix": [1, 2], "x":2.5, "y":1}, + {"matrix": [1, 3], "x":3.5, "y":1}, + {"matrix": [1, 4], "x":4.5, "y":1}, + {"matrix": [1, 5], "x":5.5, "y":1}, + {"matrix": [1, 6], "x":6.5, "y":1}, + {"matrix": [1, 7], "x":7.5, "y":1}, + {"matrix": [1, 8], "x":8.5, "y":1}, + {"matrix": [1, 9], "x":9.5, "y":1}, + {"matrix": [1, 10], "x":10.5, "y":1}, + {"matrix": [1, 11], "x":11.5, "y":1}, + {"matrix": [1, 12], "x":12.5, "y":1}, + {"matrix": [1, 13], "x":13.5, "y":1, "w":1.5}, + + {"matrix": [2, 0], "x":0, "y":2, "w":1.75}, + {"matrix": [2, 1], "x":1.75, "y":2}, + {"matrix": [2, 2], "x":2.75, "y":2}, + {"matrix": [2, 3], "x":3.75, "y":2}, + {"matrix": [2, 4], "x":4.75, "y":2}, + {"matrix": [2, 5], "x":5.75, "y":2}, + {"matrix": [2, 6], "x":6.75, "y":2}, + {"matrix": [2, 7], "x":7.75, "y":2}, + {"matrix": [2, 8], "x":8.75, "y":2}, + {"matrix": [2, 9], "x":9.75, "y":2}, + {"matrix": [2, 10], "x":10.75, "y":2}, + {"matrix": [2, 11], "x":11.75, "y":2}, + {"matrix": [2, 12], "x":12.75, "y":2, "w":2.25}, + + {"matrix": [3, 0], "x":0, "y":3, "w":2.25}, + {"matrix": [3, 1], "x":2.25, "y":3}, + {"matrix": [3, 2], "x":3.25, "y":3}, + {"matrix": [3, 3], "x":4.25, "y":3}, + {"matrix": [3, 4], "x":5.25, "y":3}, + {"matrix": [3, 5], "x":6.25, "y":3}, + {"matrix": [3, 6], "x":7.25, "y":3}, + {"matrix": [3, 7], "x":8.25, "y":3}, + {"matrix": [3, 8], "x":9.25, "y":3}, + {"matrix": [3, 9], "x":10.25, "y":3}, + {"matrix": [3, 10], "x":11.25, "y":3}, + {"matrix": [3, 11], "x":12.25, "y":3, "w":1.75}, + {"matrix": [3, 13], "x":14, "y":3}, + + {"matrix": [4, 0], "x":0, "y":4, "w":1.25}, + {"matrix": [4, 1], "x":1.25, "y":4, "w":1.25}, + {"matrix": [4, 2], "x":2.5, "y":4, "w":1.25}, + {"matrix": [4, 3], "x":3.75, "y":4, "w":6.25}, + {"matrix": [4, 4], "x":10, "y":4, "w":1.25}, + {"matrix": [4, 5], "x":11.25, "y":4, "w":1.25}, + {"matrix": [4, 6], "x":12.5, "y":4, "w":1.25}, + {"matrix": [4, 7], "x":13.75, "y":4, "w":1.25} + ] + }, "LAYOUT_60_hhkb": { "layout": [ {"matrix": [0, 0], "x":0, "y":0}, @@ -238,7 +312,7 @@ {"matrix": [4, 8], "x": 14, "y": 4} ] }, - "LAYOUT_all": { + "LAYOUT_64_ansi_split_bs": { "layout": [ {"matrix": [0, 0], "x":0, "y":0}, {"matrix": [0, 1], "x":1, "y":0}, diff --git a/keyboards/raindrop/matrix_diagram.md b/keyboards/raindrop/matrix_diagram.md new file mode 100644 index 0000000000..4ba15ecabc --- /dev/null +++ b/keyboards/raindrop/matrix_diagram.md @@ -0,0 +1,30 @@ +# Matrix Diagram for Laneware Peripherals Raindrop + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │ +├──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┬───┤ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ +├────┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┼───┼───┼───┼───┤ +│40 │41 │42 │43 │44 │45 │46 │47 │48 │ +└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ +┌────────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──────┬───┐ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │ 2.25u LShift + 1.75u/1u RShift +└────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴──────┴───┘ + ┌──────────┐ + │3B │ 2.25u LShift + 2.75u RShift + └──────────┘ +┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ +│40 │41 │42 │43 │44 │45 │46 │47 │ Standard +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +└──────┬───┬─────┬─────────────────────────┬─────┬───┬──────┘ + │41 │42 │43 │45 │46 │ HHKB (1u/1.5u/6.25u/1.5u/1u) + └───┴─────┴─────────────────────────┴─────┴───┘ +``` From 71d5d14c139cb9c5e0103aa701ca8bce4be1cd7a Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 15 Sep 2023 16:39:34 -0700 Subject: [PATCH 072/496] Rico Phoenix Project No. 1 Layout Additions (#22035) * Add layout/matrix diagram [docs] * Rename `LAYOUT` to `LAYOUT_all` [refactor] * Add `LAYOUT_65_ansi_rwkl_split_bs` [enhancement] * Add `LAYOUT_65_ansi_rwkl` [enhancement] * Add `LAYOUT_65_ansi_wkl_split_bs` [enhancement] * Add `LAYOUT_65_ansi_wkl` [enhancement] * Add `LAYOUT_65_iso_rwkl_split_bs` [enhancement] * Add `LAYOUT_65_iso_rwkl` [enhancement] * Add `LAYOUT_65_iso_wkl_split_bs` [enhancement] * Add `LAYOUT_65_iso_wkl` [enhancement] --- keyboards/rico/phoenix_project_no1/info.json | 609 +++++++++++++++++- .../keymaps/default/keymap.c | 6 +- .../phoenix_project_no1/keymaps/via/keymap.c | 6 +- .../phoenix_project_no1/matrix_diagram.md | 24 + 4 files changed, 638 insertions(+), 7 deletions(-) create mode 100644 keyboards/rico/phoenix_project_no1/matrix_diagram.md diff --git a/keyboards/rico/phoenix_project_no1/info.json b/keyboards/rico/phoenix_project_no1/info.json index 7b13e4a0df..4d354ce0af 100644 --- a/keyboards/rico/phoenix_project_no1/info.json +++ b/keyboards/rico/phoenix_project_no1/info.json @@ -44,8 +44,11 @@ "driver": "vendor", "pin": "GP28" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -118,6 +121,610 @@ {"matrix": [4, 14], "x": 14, "y": 4}, {"matrix": [4, 15], "x": 15, "y": 4} ] + }, + "LAYOUT_65_ansi_rwkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 11.5, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_rwkl_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 11.5, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 1.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 3, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 11.5, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_wkl_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 1.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 3, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 11.5, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_rwkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 11.5, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_rwkl_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 11.5, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 1.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 3, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 11.5, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_wkl_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 1.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 3, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 11.5, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] } } } diff --git a/keyboards/rico/phoenix_project_no1/keymaps/default/keymap.c b/keyboards/rico/phoenix_project_no1/keymaps/default/keymap.c index a4d58d9097..4142601125 100644 --- a/keyboards/rico/phoenix_project_no1/keymaps/default/keymap.c +++ b/keyboards/rico/phoenix_project_no1/keymaps/default/keymap.c @@ -25,21 +25,21 @@ enum layer_names { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT( + [_BASE] = LAYOUT_all( KC_ESC, 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_NO, KC_BSPC, KC_DEL, 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_PGUP, 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_NO, KC_ENT, KC_PGDN, KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(_FN), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT ), - [_FN] = LAYOUT( + [_FN] = LAYOUT_all( RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, 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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FN2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [_FN2] = LAYOUT( + [_FN2] = LAYOUT_all( QK_BOOT, 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_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, diff --git a/keyboards/rico/phoenix_project_no1/keymaps/via/keymap.c b/keyboards/rico/phoenix_project_no1/keymaps/via/keymap.c index a4d58d9097..4142601125 100644 --- a/keyboards/rico/phoenix_project_no1/keymaps/via/keymap.c +++ b/keyboards/rico/phoenix_project_no1/keymaps/via/keymap.c @@ -25,21 +25,21 @@ enum layer_names { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT( + [_BASE] = LAYOUT_all( KC_ESC, 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_NO, KC_BSPC, KC_DEL, 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_PGUP, 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_NO, KC_ENT, KC_PGDN, KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(_FN), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT ), - [_FN] = LAYOUT( + [_FN] = LAYOUT_all( RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, 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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FN2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [_FN2] = LAYOUT( + [_FN2] = LAYOUT_all( QK_BOOT, 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_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, diff --git a/keyboards/rico/phoenix_project_no1/matrix_diagram.md b/keyboards/rico/phoenix_project_no1/matrix_diagram.md new file mode 100644 index 0000000000..0a13aecc83 --- /dev/null +++ b/keyboards/rico/phoenix_project_no1/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for Rico Phoenix Project No 1 + +``` + ┌───────┐ + 2u Backspace │0E │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │0F │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1E │1F │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐2E │ ISO Enter +│20 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2E │2F │ │2D │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │3E │3F │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┤ +│40 │41 │42 │46 │4A │4C │4D │4E │4F │ +└────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘ +┌────────┐ +│30 │ 2.25u LShift +└────────┘ +┌─────┬─────┬───────────────────────────┬─────┬─────┐ +│40 │42 │46 │4A │4C │ WKL +└─────┴─────┴───────────────────────────┴─────┴─────┘ +``` From 6b1b746f666cef65e3cf9727f807ceac09cadc4f Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 16 Sep 2023 13:41:40 -0700 Subject: [PATCH 073/496] RuckerMachine RM Fullsize Layout Additions (#22036) * Add layout/matrix diagram [docs] * Rename `LAYOUT` to `LAYOUT_all` [refactor] * Add `LAYOUT_fullsize_108_ansi` [enhancement] * Add `LAYOUT_fullsize_108_ansi_tsangan` [enhancement] --- keyboards/rmkeebs/rm_fullsize/info.json | 238 +++++++++++++++++- .../rm_fullsize/keymaps/default/keymap.c | 2 +- .../rmkeebs/rm_fullsize/matrix_diagram.md | 24 ++ 3 files changed, 262 insertions(+), 2 deletions(-) create mode 100644 keyboards/rmkeebs/rm_fullsize/matrix_diagram.md diff --git a/keyboards/rmkeebs/rm_fullsize/info.json b/keyboards/rmkeebs/rm_fullsize/info.json index 4b02137ad3..f9ff4dd5b8 100644 --- a/keyboards/rmkeebs/rm_fullsize/info.json +++ b/keyboards/rmkeebs/rm_fullsize/info.json @@ -29,8 +29,11 @@ { "pin_a": "GP11", "pin_b": "GP10" } ] }, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [ { "matrix": [0, 0], "x": 0, "y": 0.25 }, { "matrix": [0, 2], "x": 2, "y": 0.25 }, @@ -150,6 +153,239 @@ { "matrix": [5, 18], "x": 20.5, "y": 5.5 }, { "matrix": [5, 19], "x": 21.5, "y": 5.5 } ] + }, + "LAYOUT_fullsize_108_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.25}, + {"matrix": [0, 2], "x": 2, "y": 0.25}, + {"matrix": [0, 3], "x": 3, "y": 0.25}, + {"matrix": [0, 4], "x": 4, "y": 0.25}, + {"matrix": [0, 5], "x": 5, "y": 0.25}, + {"matrix": [0, 6], "x": 6.5, "y": 0.25}, + {"matrix": [0, 7], "x": 7.5, "y": 0.25}, + {"matrix": [0, 8], "x": 8.5, "y": 0.25}, + {"matrix": [0, 9], "x": 9.5, "y": 0.25}, + {"matrix": [0, 10], "x": 11, "y": 0.25}, + {"matrix": [0, 11], "x": 12, "y": 0.25}, + {"matrix": [0, 12], "x": 13, "y": 0.25}, + {"matrix": [0, 13], "x": 14, "y": 0.25}, + {"matrix": [0, 14], "x": 15.25, "y": 0.25}, + {"matrix": [0, 15], "x": 16.25, "y": 0.25}, + {"matrix": [3, 15], "x": 17.25, "y": 0.25}, + {"matrix": [0, 16], "x": 18.5, "y": 0.25}, + {"matrix": [0, 17], "x": 19.5, "y": 0.25}, + {"matrix": [0, 18], "x": 20.5, "y": 0.25}, + {"matrix": [0, 19], "x": 21.75, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [2, 13], "x": 13, "y": 1.5, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.5}, + {"matrix": [1, 15], "x": 16.25, "y": 1.5}, + {"matrix": [4, 15], "x": 17.25, "y": 1.5}, + {"matrix": [1, 16], "x": 18.5, "y": 1.5}, + {"matrix": [1, 17], "x": 19.5, "y": 1.5}, + {"matrix": [1, 18], "x": 20.5, "y": 1.5}, + {"matrix": [1, 19], "x": 21.5, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [3, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.5}, + {"matrix": [2, 15], "x": 16.25, "y": 2.5}, + {"matrix": [5, 15], "x": 17.25, "y": 2.5}, + {"matrix": [2, 16], "x": 18.5, "y": 2.5}, + {"matrix": [2, 17], "x": 19.5, "y": 2.5}, + {"matrix": [2, 18], "x": 20.5, "y": 2.5}, + {"matrix": [3, 19], "x": 21.5, "y": 2.5, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 12], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [3, 16], "x": 18.5, "y": 3.5}, + {"matrix": [3, 17], "x": 19.5, "y": 3.5}, + {"matrix": [3, 18], "x": 20.5, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 1], "x": 2.25, "y": 4.5}, + {"matrix": [4, 2], "x": 3.25, "y": 4.5}, + {"matrix": [4, 3], "x": 4.25, "y": 4.5}, + {"matrix": [4, 4], "x": 5.25, "y": 4.5}, + {"matrix": [4, 5], "x": 6.25, "y": 4.5}, + {"matrix": [4, 6], "x": 7.25, "y": 4.5}, + {"matrix": [4, 7], "x": 8.25, "y": 4.5}, + {"matrix": [4, 8], "x": 9.25, "y": 4.5}, + {"matrix": [4, 9], "x": 10.25, "y": 4.5}, + {"matrix": [4, 10], "x": 11.25, "y": 4.5}, + {"matrix": [4, 11], "x": 12.25, "y": 4.5, "w": 2.75}, + {"matrix": [3, 14], "x": 16.25, "y": 4.5}, + {"matrix": [4, 16], "x": 18.5, "y": 4.5}, + {"matrix": [4, 17], "x": 19.5, "y": 4.5}, + {"matrix": [4, 18], "x": 20.5, "y": 4.5}, + {"matrix": [5, 19], "x": 21.5, "y": 4.5, "h": 2}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.5, "w": 1.25}, + {"matrix": [5, 10], "x": 11.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 11], "x": 12.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 12], "x": 13.75, "y": 5.5, "w": 1.25}, + {"matrix": [5, 13], "x": 15.25, "y": 5.5}, + {"matrix": [4, 14], "x": 16.25, "y": 5.5}, + {"matrix": [5, 14], "x": 17.25, "y": 5.5}, + {"matrix": [5, 16], "x": 18.5, "y": 5.5, "w": 2}, + {"matrix": [5, 18], "x": 20.5, "y": 5.5} + ] + }, + "LAYOUT_fullsize_108_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.25}, + {"matrix": [0, 2], "x": 2, "y": 0.25}, + {"matrix": [0, 3], "x": 3, "y": 0.25}, + {"matrix": [0, 4], "x": 4, "y": 0.25}, + {"matrix": [0, 5], "x": 5, "y": 0.25}, + {"matrix": [0, 6], "x": 6.5, "y": 0.25}, + {"matrix": [0, 7], "x": 7.5, "y": 0.25}, + {"matrix": [0, 8], "x": 8.5, "y": 0.25}, + {"matrix": [0, 9], "x": 9.5, "y": 0.25}, + {"matrix": [0, 10], "x": 11, "y": 0.25}, + {"matrix": [0, 11], "x": 12, "y": 0.25}, + {"matrix": [0, 12], "x": 13, "y": 0.25}, + {"matrix": [0, 13], "x": 14, "y": 0.25}, + {"matrix": [0, 14], "x": 15.25, "y": 0.25}, + {"matrix": [0, 15], "x": 16.25, "y": 0.25}, + {"matrix": [3, 15], "x": 17.25, "y": 0.25}, + {"matrix": [0, 16], "x": 18.5, "y": 0.25}, + {"matrix": [0, 17], "x": 19.5, "y": 0.25}, + {"matrix": [0, 18], "x": 20.5, "y": 0.25}, + {"matrix": [0, 19], "x": 21.75, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [2, 13], "x": 13, "y": 1.5, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.5}, + {"matrix": [1, 15], "x": 16.25, "y": 1.5}, + {"matrix": [4, 15], "x": 17.25, "y": 1.5}, + {"matrix": [1, 16], "x": 18.5, "y": 1.5}, + {"matrix": [1, 17], "x": 19.5, "y": 1.5}, + {"matrix": [1, 18], "x": 20.5, "y": 1.5}, + {"matrix": [1, 19], "x": 21.5, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [3, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.5}, + {"matrix": [2, 15], "x": 16.25, "y": 2.5}, + {"matrix": [5, 15], "x": 17.25, "y": 2.5}, + {"matrix": [2, 16], "x": 18.5, "y": 2.5}, + {"matrix": [2, 17], "x": 19.5, "y": 2.5}, + {"matrix": [2, 18], "x": 20.5, "y": 2.5}, + {"matrix": [3, 19], "x": 21.5, "y": 2.5, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 12], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [3, 16], "x": 18.5, "y": 3.5}, + {"matrix": [3, 17], "x": 19.5, "y": 3.5}, + {"matrix": [3, 18], "x": 20.5, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 1], "x": 2.25, "y": 4.5}, + {"matrix": [4, 2], "x": 3.25, "y": 4.5}, + {"matrix": [4, 3], "x": 4.25, "y": 4.5}, + {"matrix": [4, 4], "x": 5.25, "y": 4.5}, + {"matrix": [4, 5], "x": 6.25, "y": 4.5}, + {"matrix": [4, 6], "x": 7.25, "y": 4.5}, + {"matrix": [4, 7], "x": 8.25, "y": 4.5}, + {"matrix": [4, 8], "x": 9.25, "y": 4.5}, + {"matrix": [4, 9], "x": 10.25, "y": 4.5}, + {"matrix": [4, 10], "x": 11.25, "y": 4.5}, + {"matrix": [4, 11], "x": 12.25, "y": 4.5, "w": 2.75}, + {"matrix": [3, 14], "x": 16.25, "y": 4.5}, + {"matrix": [4, 16], "x": 18.5, "y": 4.5}, + {"matrix": [4, 17], "x": 19.5, "y": 4.5}, + {"matrix": [4, 18], "x": 20.5, "y": 4.5}, + {"matrix": [5, 19], "x": 21.5, "y": 4.5, "h": 2}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.5, "w": 1.5}, + {"matrix": [5, 11], "x": 12.5, "y": 5.5}, + {"matrix": [5, 12], "x": 13.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 13], "x": 15.25, "y": 5.5}, + {"matrix": [4, 14], "x": 16.25, "y": 5.5}, + {"matrix": [5, 14], "x": 17.25, "y": 5.5}, + {"matrix": [5, 16], "x": 18.5, "y": 5.5, "w": 2}, + {"matrix": [5, 18], "x": 20.5, "y": 5.5} + ] } } } diff --git a/keyboards/rmkeebs/rm_fullsize/keymaps/default/keymap.c b/keyboards/rmkeebs/rm_fullsize/keymaps/default/keymap.c index c94cc2e526..8f9f2356e9 100644 --- a/keyboards/rmkeebs/rm_fullsize/keymaps/default/keymap.c +++ b/keyboards/rmkeebs/rm_fullsize/keymaps/default/keymap.c @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ │ ← │ ↓ │ → │ │ 0 │ 00│ . │Del│ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───┴───┴───┴───┘ */ - [0] = LAYOUT( + [0] = LAYOUT_all( KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, C(KC_Z), KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, diff --git a/keyboards/rmkeebs/rm_fullsize/matrix_diagram.md b/keyboards/rmkeebs/rm_fullsize/matrix_diagram.md new file mode 100644 index 0000000000..32c62990bc --- /dev/null +++ b/keyboards/rmkeebs/rm_fullsize/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for RuckerMachine rm_fullsize + +``` + ┌───────┐ + 2u Backspace │2D │ + └───────┘ ┌───┐ +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐┌───┬───┬───┐ │0J │ +│00 │ │02 │03 │04 │05 │ │06 │07 │08 │09 │ │0A │0B │0C │0D ││0E │0F │3F ││0G │0H │0I │ └───┘ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘└───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐┌───┬───┬───┬───┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │2D ││1E │1F │4F ││1G │1H │1I │1J │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤├───┼───┼───┼───┤ ┌───┐ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │3D ││2E │2F │5F ││2G │2H │2I │2J │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘├───┼───┼───┼───┤ │3J │ 2u Numpad Plus +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │ │3G │3H │3I │3J │ │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ ├───┼───┼───┼───┤ ├───┤ +│40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │ │3E │ │4G │4H │4I │4J │ │ │ +├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐├───┼───┼───┼───┤ │5J │ 2u Numpad Enter +│50 │51 │52 │56 │59 │5A │5B │5C ││5D │4E │5E ││5G │5H │5I │5J │ │ │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘└───┴───┴───┴───┘ └───┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ ┌───────┐ +│50 │51 │52 │56 │5A │5B │5C │ Tsangan │5G │ 2u Numpad Zero +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───────┘ +``` From 4162d1f0568c012bf3068cd8cdd2ec718fb58dbe Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 16 Sep 2023 14:19:09 -0700 Subject: [PATCH 074/496] Sho Studios ARC Layout Addition (#22037) * Add layout/matrix diagram [docs] * Format `info.json` Apply four-space indent. [style] * Add `LAYOUT_ansi_split_bs` [enhancement] --- keyboards/shostudio/arc/info.json | 432 +++++++++++++--------- keyboards/shostudio/arc/matrix_diagram.md | 22 ++ 2 files changed, 282 insertions(+), 172 deletions(-) create mode 100644 keyboards/shostudio/arc/matrix_diagram.md diff --git a/keyboards/shostudio/arc/info.json b/keyboards/shostudio/arc/info.json index 0e7f214649..33f9deb866 100644 --- a/keyboards/shostudio/arc/info.json +++ b/keyboards/shostudio/arc/info.json @@ -29,181 +29,269 @@ "bootloader": "stm32duino", "layouts": { "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.25, "y": 0}, - {"matrix": [0, 6], "x": 6.25, "y": 0}, - {"matrix": [0, 7], "x": 7.25, "y": 0}, - {"matrix": [4, 7], "x": 8.25, "y": 0}, - {"matrix": [0, 8], "x": 10.75, "y": 0}, - {"matrix": [0, 9], "x": 11.75, "y": 0}, - {"matrix": [0, 10], "x": 12.75, "y": 0}, - {"matrix": [0, 11], "x": 13.75, "y": 0}, - {"matrix": [0, 12], "x": 14.75, "y": 0}, - {"matrix": [0, 13], "x": 15.75, "y": 0}, - {"matrix": [0, 14], "x": 16.75, "y": 0}, - {"matrix": [0, 15], "x": 17.75, "y": 0}, - {"matrix": [0, 16], "x": 18.75, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5}, - {"matrix": [1, 3], "x": 3.75, "y": 1}, - {"matrix": [1, 4], "x": 4.75, "y": 1}, - {"matrix": [1, 5], "x": 5.75, "y": 1}, - {"matrix": [1, 6], "x": 6.75, "y": 1}, - {"matrix": [1, 7], "x": 7.75, "y": 1}, - {"matrix": [1, 8], "x": 10.25, "y": 1}, - {"matrix": [1, 9], "x": 11.25, "y": 1}, - {"matrix": [1, 10], "x": 12.25, "y": 1}, - {"matrix": [1, 11], "x": 13.25, "y": 1}, - {"matrix": [1, 12], "x": 14.25, "y": 1}, - {"matrix": [1, 13], "x": 15.25, "y": 1}, - {"matrix": [1, 14], "x": 16.25, "y": 1}, - {"matrix": [1, 15], "x": 17.25, "y": 1, "w": 1.5}, - {"matrix": [1, 16], "x": 18.75, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.75}, - {"matrix": [2, 3], "x": 4, "y": 2}, - {"matrix": [2, 4], "x": 5, "y": 2}, - {"matrix": [2, 5], "x": 6, "y": 2}, - {"matrix": [2, 6], "x": 7, "y": 2}, - {"matrix": [2, 7], "x": 8, "y": 2}, - {"matrix": [2, 8], "x": 10.5, "y": 2}, - {"matrix": [2, 9], "x": 11.5, "y": 2}, - {"matrix": [2, 10], "x": 12.5, "y": 2}, - {"matrix": [2, 11], "x": 13.5, "y": 2}, - {"matrix": [2, 12], "x": 14.5, "y": 2}, - {"matrix": [2, 13], "x": 15.5, "y": 2}, - {"matrix": [2, 14], "x": 16.5, "y": 2}, - {"matrix": [2, 15], "x": 17.5, "y": 2, "w": 1.25}, - {"matrix": [2, 16], "x": 18.75, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3}, - {"matrix": [3, 1], "x": 1, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25}, - {"matrix": [4, 3], "x": 3.5, "y": 3}, - {"matrix": [3, 3], "x": 4.5, "y": 3}, - {"matrix": [3, 4], "x": 5.5, "y": 3}, - {"matrix": [3, 5], "x": 6.5, "y": 3}, - {"matrix": [3, 6], "x": 7.5, "y": 3}, - {"matrix": [3, 7], "x": 8.5, "y": 3}, - {"matrix": [3, 8], "x": 10, "y": 3}, - {"matrix": [3, 9], "x": 11, "y": 3}, - {"matrix": [3, 10], "x": 12, "y": 3}, - {"matrix": [3, 11], "x": 13, "y": 3}, - {"matrix": [3, 12], "x": 14, "y": 3}, - {"matrix": [3, 13], "x": 15, "y": 3}, - {"matrix": [3, 14], "x": 16, "y": 3, "w": 1.75}, - {"matrix": [3, 15], "x": 17.75, "y": 3}, - {"matrix": [3, 16], "x": 18.75, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, - {"matrix": [4, 4], "x": 5, "y": 4, "w": 1.5}, - {"matrix": [4, 5], "x": 6.5, "y": 4, "w": 2.25}, - {"matrix": [4, 6], "x": 8.75, "y": 4}, - {"matrix": [4, 9], "x": 10, "y": 4, "w": 2.75}, - {"matrix": [4, 11], "x": 12.75, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 14, "y": 4, "w": 1.25}, - {"matrix": [4, 14], "x": 16.75, "y": 4}, - {"matrix": [4, 15], "x": 17.75, "y": 4}, - {"matrix": [4, 16], "x": 18.75, "y": 4} - ] + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.25, "y": 0}, + {"matrix": [0, 6], "x": 6.25, "y": 0}, + {"matrix": [0, 7], "x": 7.25, "y": 0}, + {"matrix": [4, 7], "x": 8.25, "y": 0}, + {"matrix": [0, 8], "x": 10.75, "y": 0}, + {"matrix": [0, 9], "x": 11.75, "y": 0}, + {"matrix": [0, 10], "x": 12.75, "y": 0}, + {"matrix": [0, 11], "x": 13.75, "y": 0}, + {"matrix": [0, 12], "x": 14.75, "y": 0}, + {"matrix": [0, 13], "x": 15.75, "y": 0}, + {"matrix": [0, 14], "x": 16.75, "y": 0}, + {"matrix": [0, 15], "x": 17.75, "y": 0}, + {"matrix": [0, 16], "x": 18.75, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5}, + {"matrix": [1, 3], "x": 3.75, "y": 1}, + {"matrix": [1, 4], "x": 4.75, "y": 1}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + {"matrix": [1, 7], "x": 7.75, "y": 1}, + {"matrix": [1, 8], "x": 10.25, "y": 1}, + {"matrix": [1, 9], "x": 11.25, "y": 1}, + {"matrix": [1, 10], "x": 12.25, "y": 1}, + {"matrix": [1, 11], "x": 13.25, "y": 1}, + {"matrix": [1, 12], "x": 14.25, "y": 1}, + {"matrix": [1, 13], "x": 15.25, "y": 1}, + {"matrix": [1, 14], "x": 16.25, "y": 1}, + {"matrix": [1, 15], "x": 17.25, "y": 1, "w": 1.5}, + {"matrix": [1, 16], "x": 18.75, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.75}, + {"matrix": [2, 3], "x": 4, "y": 2}, + {"matrix": [2, 4], "x": 5, "y": 2}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + {"matrix": [2, 7], "x": 8, "y": 2}, + {"matrix": [2, 8], "x": 10.5, "y": 2}, + {"matrix": [2, 9], "x": 11.5, "y": 2}, + {"matrix": [2, 10], "x": 12.5, "y": 2}, + {"matrix": [2, 11], "x": 13.5, "y": 2}, + {"matrix": [2, 12], "x": 14.5, "y": 2}, + {"matrix": [2, 13], "x": 15.5, "y": 2}, + {"matrix": [2, 14], "x": 16.5, "y": 2}, + {"matrix": [2, 15], "x": 17.5, "y": 2, "w": 1.25}, + {"matrix": [2, 16], "x": 18.75, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25}, + {"matrix": [4, 3], "x": 3.5, "y": 3}, + {"matrix": [3, 3], "x": 4.5, "y": 3}, + {"matrix": [3, 4], "x": 5.5, "y": 3}, + {"matrix": [3, 5], "x": 6.5, "y": 3}, + {"matrix": [3, 6], "x": 7.5, "y": 3}, + {"matrix": [3, 7], "x": 8.5, "y": 3}, + {"matrix": [3, 8], "x": 10, "y": 3}, + {"matrix": [3, 9], "x": 11, "y": 3}, + {"matrix": [3, 10], "x": 12, "y": 3}, + {"matrix": [3, 11], "x": 13, "y": 3}, + {"matrix": [3, 12], "x": 14, "y": 3}, + {"matrix": [3, 13], "x": 15, "y": 3}, + {"matrix": [3, 14], "x": 16, "y": 3, "w": 1.75}, + {"matrix": [3, 15], "x": 17.75, "y": 3}, + {"matrix": [3, 16], "x": 18.75, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, + {"matrix": [4, 4], "x": 5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 6.5, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 8.75, "y": 4}, + {"matrix": [4, 9], "x": 10, "y": 4, "w": 2.75}, + {"matrix": [4, 11], "x": 12.75, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 14, "y": 4, "w": 1.25}, + {"matrix": [4, 14], "x": 16.75, "y": 4}, + {"matrix": [4, 15], "x": 17.75, "y": 4}, + {"matrix": [4, 16], "x": 18.75, "y": 4} + ] }, "LAYOUT_ansi": { "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - {"matrix": [0, 5], "x": 5.25, "y": 0}, - {"matrix": [0, 6], "x": 6.25, "y": 0}, - {"matrix": [0, 7], "x": 7.25, "y": 0}, - {"matrix": [4, 7], "x": 8.25, "y": 0}, - {"matrix": [0, 8], "x": 10.75, "y": 0}, - {"matrix": [0, 9], "x": 11.75, "y": 0}, - {"matrix": [0, 10], "x": 12.75, "y": 0}, - {"matrix": [0, 11], "x": 13.75, "y": 0}, - {"matrix": [0, 12], "x": 14.75, "y": 0}, - {"matrix": [0, 13], "x": 15.75, "y": 0}, - {"matrix": [0, 14], "x": 16.75, "y": 0, "w": 2}, - {"matrix": [0, 16], "x": 18.75, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5}, - {"matrix": [1, 3], "x": 3.75, "y": 1}, - {"matrix": [1, 4], "x": 4.75, "y": 1}, - {"matrix": [1, 5], "x": 5.75, "y": 1}, - {"matrix": [1, 6], "x": 6.75, "y": 1}, - {"matrix": [1, 7], "x": 7.75, "y": 1}, - {"matrix": [1, 8], "x": 10.25, "y": 1}, - {"matrix": [1, 9], "x": 11.25, "y": 1}, - {"matrix": [1, 10], "x": 12.25, "y": 1}, - {"matrix": [1, 11], "x": 13.25, "y": 1}, - {"matrix": [1, 12], "x": 14.25, "y": 1}, - {"matrix": [1, 13], "x": 15.25, "y": 1}, - {"matrix": [1, 14], "x": 16.25, "y": 1}, - {"matrix": [1, 15], "x": 17.25, "y": 1, "w": 1.5}, - {"matrix": [1, 16], "x": 18.75, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.75}, - {"matrix": [2, 3], "x": 4, "y": 2}, - {"matrix": [2, 4], "x": 5, "y": 2}, - {"matrix": [2, 5], "x": 6, "y": 2}, - {"matrix": [2, 6], "x": 7, "y": 2}, - {"matrix": [2, 7], "x": 8, "y": 2}, - {"matrix": [2, 8], "x": 10.5, "y": 2}, - {"matrix": [2, 9], "x": 11.5, "y": 2}, - {"matrix": [2, 10], "x": 12.5, "y": 2}, - {"matrix": [2, 11], "x": 13.5, "y": 2}, - {"matrix": [2, 12], "x": 14.5, "y": 2}, - {"matrix": [2, 13], "x": 15.5, "y": 2}, - {"matrix": [2, 15], "x": 16.5, "y": 2, "w": 2.25}, - {"matrix": [2, 16], "x": 18.75, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3}, - {"matrix": [3, 1], "x": 1, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 2.25}, - {"matrix": [3, 3], "x": 4.5, "y": 3}, - {"matrix": [3, 4], "x": 5.5, "y": 3}, - {"matrix": [3, 5], "x": 6.5, "y": 3}, - {"matrix": [3, 6], "x": 7.5, "y": 3}, - {"matrix": [3, 7], "x": 8.5, "y": 3}, - {"matrix": [3, 8], "x": 10, "y": 3}, - {"matrix": [3, 9], "x": 11, "y": 3}, - {"matrix": [3, 10], "x": 12, "y": 3}, - {"matrix": [3, 11], "x": 13, "y": 3}, - {"matrix": [3, 12], "x": 14, "y": 3}, - {"matrix": [3, 13], "x": 15, "y": 3}, - {"matrix": [3, 14], "x": 16, "y": 3, "w": 1.75}, - {"matrix": [3, 15], "x": 17.75, "y": 3}, - {"matrix": [3, 16], "x": 18.75, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, - {"matrix": [4, 4], "x": 5, "y": 4, "w": 1.5}, - {"matrix": [4, 5], "x": 6.5, "y": 4, "w": 2.25}, - {"matrix": [4, 6], "x": 8.75, "y": 4}, - {"matrix": [4, 9], "x": 10, "y": 4, "w": 2.75}, - {"matrix": [4, 11], "x": 12.75, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 14, "y": 4, "w": 1.25}, - {"matrix": [4, 14], "x": 16.75, "y": 4}, - {"matrix": [4, 15], "x": 17.75, "y": 4}, - {"matrix": [4, 16], "x": 18.75, "y": 4} - ] + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.25, "y": 0}, + {"matrix": [0, 6], "x": 6.25, "y": 0}, + {"matrix": [0, 7], "x": 7.25, "y": 0}, + {"matrix": [4, 7], "x": 8.25, "y": 0}, + {"matrix": [0, 8], "x": 10.75, "y": 0}, + {"matrix": [0, 9], "x": 11.75, "y": 0}, + {"matrix": [0, 10], "x": 12.75, "y": 0}, + {"matrix": [0, 11], "x": 13.75, "y": 0}, + {"matrix": [0, 12], "x": 14.75, "y": 0}, + {"matrix": [0, 13], "x": 15.75, "y": 0}, + {"matrix": [0, 14], "x": 16.75, "y": 0, "w": 2}, + {"matrix": [0, 16], "x": 18.75, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5}, + {"matrix": [1, 3], "x": 3.75, "y": 1}, + {"matrix": [1, 4], "x": 4.75, "y": 1}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + {"matrix": [1, 7], "x": 7.75, "y": 1}, + {"matrix": [1, 8], "x": 10.25, "y": 1}, + {"matrix": [1, 9], "x": 11.25, "y": 1}, + {"matrix": [1, 10], "x": 12.25, "y": 1}, + {"matrix": [1, 11], "x": 13.25, "y": 1}, + {"matrix": [1, 12], "x": 14.25, "y": 1}, + {"matrix": [1, 13], "x": 15.25, "y": 1}, + {"matrix": [1, 14], "x": 16.25, "y": 1}, + {"matrix": [1, 15], "x": 17.25, "y": 1, "w": 1.5}, + {"matrix": [1, 16], "x": 18.75, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.75}, + {"matrix": [2, 3], "x": 4, "y": 2}, + {"matrix": [2, 4], "x": 5, "y": 2}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + {"matrix": [2, 7], "x": 8, "y": 2}, + {"matrix": [2, 8], "x": 10.5, "y": 2}, + {"matrix": [2, 9], "x": 11.5, "y": 2}, + {"matrix": [2, 10], "x": 12.5, "y": 2}, + {"matrix": [2, 11], "x": 13.5, "y": 2}, + {"matrix": [2, 12], "x": 14.5, "y": 2}, + {"matrix": [2, 13], "x": 15.5, "y": 2}, + {"matrix": [2, 15], "x": 16.5, "y": 2, "w": 2.25}, + {"matrix": [2, 16], "x": 18.75, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 2.25}, + {"matrix": [3, 3], "x": 4.5, "y": 3}, + {"matrix": [3, 4], "x": 5.5, "y": 3}, + {"matrix": [3, 5], "x": 6.5, "y": 3}, + {"matrix": [3, 6], "x": 7.5, "y": 3}, + {"matrix": [3, 7], "x": 8.5, "y": 3}, + {"matrix": [3, 8], "x": 10, "y": 3}, + {"matrix": [3, 9], "x": 11, "y": 3}, + {"matrix": [3, 10], "x": 12, "y": 3}, + {"matrix": [3, 11], "x": 13, "y": 3}, + {"matrix": [3, 12], "x": 14, "y": 3}, + {"matrix": [3, 13], "x": 15, "y": 3}, + {"matrix": [3, 14], "x": 16, "y": 3, "w": 1.75}, + {"matrix": [3, 15], "x": 17.75, "y": 3}, + {"matrix": [3, 16], "x": 18.75, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, + {"matrix": [4, 4], "x": 5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 6.5, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 8.75, "y": 4}, + {"matrix": [4, 9], "x": 10, "y": 4, "w": 2.75}, + {"matrix": [4, 11], "x": 12.75, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 14, "y": 4, "w": 1.25}, + {"matrix": [4, 14], "x": 16.75, "y": 4}, + {"matrix": [4, 15], "x": 17.75, "y": 4}, + {"matrix": [4, 16], "x": 18.75, "y": 4} + ] + }, + "LAYOUT_ansi_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.25, "y": 0}, + {"matrix": [0, 6], "x": 6.25, "y": 0}, + {"matrix": [0, 7], "x": 7.25, "y": 0}, + {"matrix": [4, 7], "x": 8.25, "y": 0}, + {"matrix": [0, 8], "x": 10.75, "y": 0}, + {"matrix": [0, 9], "x": 11.75, "y": 0}, + {"matrix": [0, 10], "x": 12.75, "y": 0}, + {"matrix": [0, 11], "x": 13.75, "y": 0}, + {"matrix": [0, 12], "x": 14.75, "y": 0}, + {"matrix": [0, 13], "x": 15.75, "y": 0}, + {"matrix": [0, 14], "x": 16.75, "y": 0}, + {"matrix": [0, 15], "x": 17.75, "y": 0}, + {"matrix": [0, 16], "x": 18.75, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5}, + {"matrix": [1, 3], "x": 3.75, "y": 1}, + {"matrix": [1, 4], "x": 4.75, "y": 1}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + {"matrix": [1, 7], "x": 7.75, "y": 1}, + {"matrix": [1, 8], "x": 10.25, "y": 1}, + {"matrix": [1, 9], "x": 11.25, "y": 1}, + {"matrix": [1, 10], "x": 12.25, "y": 1}, + {"matrix": [1, 11], "x": 13.25, "y": 1}, + {"matrix": [1, 12], "x": 14.25, "y": 1}, + {"matrix": [1, 13], "x": 15.25, "y": 1}, + {"matrix": [1, 14], "x": 16.25, "y": 1}, + {"matrix": [1, 15], "x": 17.25, "y": 1, "w": 1.5}, + {"matrix": [1, 16], "x": 18.75, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.75}, + {"matrix": [2, 3], "x": 4, "y": 2}, + {"matrix": [2, 4], "x": 5, "y": 2}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + {"matrix": [2, 7], "x": 8, "y": 2}, + {"matrix": [2, 8], "x": 10.5, "y": 2}, + {"matrix": [2, 9], "x": 11.5, "y": 2}, + {"matrix": [2, 10], "x": 12.5, "y": 2}, + {"matrix": [2, 11], "x": 13.5, "y": 2}, + {"matrix": [2, 12], "x": 14.5, "y": 2}, + {"matrix": [2, 13], "x": 15.5, "y": 2}, + {"matrix": [2, 15], "x": 16.5, "y": 2, "w": 2.25}, + {"matrix": [2, 16], "x": 18.75, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 2.25}, + {"matrix": [3, 3], "x": 4.5, "y": 3}, + {"matrix": [3, 4], "x": 5.5, "y": 3}, + {"matrix": [3, 5], "x": 6.5, "y": 3}, + {"matrix": [3, 6], "x": 7.5, "y": 3}, + {"matrix": [3, 7], "x": 8.5, "y": 3}, + {"matrix": [3, 8], "x": 10, "y": 3}, + {"matrix": [3, 9], "x": 11, "y": 3}, + {"matrix": [3, 10], "x": 12, "y": 3}, + {"matrix": [3, 11], "x": 13, "y": 3}, + {"matrix": [3, 12], "x": 14, "y": 3}, + {"matrix": [3, 13], "x": 15, "y": 3}, + {"matrix": [3, 14], "x": 16, "y": 3, "w": 1.75}, + {"matrix": [3, 15], "x": 17.75, "y": 3}, + {"matrix": [3, 16], "x": 18.75, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, + {"matrix": [4, 4], "x": 5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 6.5, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 8.75, "y": 4}, + {"matrix": [4, 9], "x": 10, "y": 4, "w": 2.75}, + {"matrix": [4, 11], "x": 12.75, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 14, "y": 4, "w": 1.25}, + {"matrix": [4, 14], "x": 16.75, "y": 4}, + {"matrix": [4, 15], "x": 17.75, "y": 4}, + {"matrix": [4, 16], "x": 18.75, "y": 4} + ] }, "LAYOUT_iso": { "layout": [ diff --git a/keyboards/shostudio/arc/matrix_diagram.md b/keyboards/shostudio/arc/matrix_diagram.md new file mode 100644 index 0000000000..f0df7ca89f --- /dev/null +++ b/keyboards/shostudio/arc/matrix_diagram.md @@ -0,0 +1,22 @@ +# Matrix Diagram for shostudios ARC + + +``` +┌───┬───┐┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ +│00 │01 ││02 │03 │04 │05 │06 │07 │47 │ │08 │09 │0A │0B │0C │0D │0E │0F │0G │ │0E │ 2u Backspace +├───┼───┤├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ └─┬─────┤ +│10 │11 ││12 │13 │14 │15 │16 │17 │ │18 │19 │1A │1B │1C │1D │1E │1F │1G │ │ │ +├───┼───┤├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐2F │ ISO Enter +│20 │21 ││22 │23 │24 │25 │26 │27 │ │28 │29 │2A │2B │2C │2D │2F │2G │ │2E │ │ +├───┼───┤├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ +│30 │31 ││32 │43 │33 │34 │35 │36 │37 │ │38 │39 │3A │3B │3C │3D │3E │3F │3G │ +├───┼───┤├────┴┬──┴─┬─┴───┼───┴───┴┬──┴┐ ├───┴───┴──┬┴───┼───┴┬──┴──┬───┼───┼───┤ +│40 │41 ││42 │ │44 │45 │46 │ │49 │4B │4C │ │4E │4F │4G │ +└───┴───┘└─────┘ └─────┴────────┴───┘ └──────────┴────┴────┘ └───┴───┴───┘ + ┌────────┐ ┌───┬────────┐ ┌───┬─────┐ + │32 │ │45 │46 │ │4B │4C │ + └────────┘ └───┴────────┘ └───┴─────┘ + 2.25u ┌─────┬───┐ + LShift │4B │4C │ + └─────┴───┘ +``` From 169b0f33f6a0693bcf4f1c5b05a0f1ed6711d0a2 Mon Sep 17 00:00:00 2001 From: David Hoelscher Date: Sat, 16 Sep 2023 23:25:14 -0500 Subject: [PATCH 075/496] Lvgl rate control (#22049) --- docs/quantum_painter_lvgl.md | 8 ++++++++ quantum/painter/lvgl/qp_lvgl.c | 4 ++-- quantum/painter/lvgl/qp_lvgl.h | 4 ++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/docs/quantum_painter_lvgl.md b/docs/quantum_painter_lvgl.md index 4d10160baf..b4f31ad4af 100644 --- a/docs/quantum_painter_lvgl.md +++ b/docs/quantum_painter_lvgl.md @@ -53,3 +53,11 @@ The `qp_lvgl_detach` function stops the internal LVGL ticks and releases resourc ## Enabling/Disabling LVGL features :id=lvgl-configuring You can overwrite LVGL specific features in your `lv_conf.h` file. + +## Changing the LVGL task frequency + +When LVGL is running, your keyboard's responsiveness may decrease, causing missing keystrokes or encoder rotations, especially during the animation of dynamically-generated content. This occurs because LVGL operates as a scheduled task with a default task rate of five milliseconds. While a fast task rate is advantageous when LVGL is responsible for detecting and processing inputs, it can lead to excessive recalculations of displayed content, which may slow down QMK's matrix scanning. If you rely on QMK instead of LVGL for processing inputs, it can be beneficial to increase the time between calls to the LVGL task handler to better match your preferred display update rate. To do this, add this to your `config.h`: + +```c +#define QP_LVGL_TASK_PERIOD 40 +``` diff --git a/quantum/painter/lvgl/qp_lvgl.c b/quantum/painter/lvgl/qp_lvgl.c index 280aeaf91f..2e433d7761 100644 --- a/quantum/painter/lvgl/qp_lvgl.c +++ b/quantum/painter/lvgl/qp_lvgl.c @@ -81,8 +81,8 @@ bool qp_lvgl_attach(painter_device_t device) { lvgl_state_t *lv_task_handler_state = &lvgl_states[1]; lv_task_handler_state->fnc_id = 1; - lv_task_handler_state->delay_ms = 5; - lv_task_handler_state->defer_token = defer_exec_advanced(lvgl_executors, 2, 5, tick_task_callback, lv_task_handler_state); + lv_task_handler_state->delay_ms = QP_LVGL_TASK_PERIOD; + lv_task_handler_state->defer_token = defer_exec_advanced(lvgl_executors, 2, QP_LVGL_TASK_PERIOD, tick_task_callback, lv_task_handler_state); if (lv_task_handler_state->defer_token == INVALID_DEFERRED_TOKEN) { qp_dprintf("qp_lvgl_attach: fail (could not set up qp_lvgl executor)\n"); diff --git a/quantum/painter/lvgl/qp_lvgl.h b/quantum/painter/lvgl/qp_lvgl.h index d9ad5e8df1..87ba3ac0a5 100644 --- a/quantum/painter/lvgl/qp_lvgl.h +++ b/quantum/painter/lvgl/qp_lvgl.h @@ -7,6 +7,10 @@ #include "qp.h" #include "lvgl.h" +#ifndef QP_LVGL_TASK_PERIOD +# define QP_LVGL_TASK_PERIOD 5 +#endif + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Quantum Painter - LVGL External API From 615ca78567736c262a9e4defe479cd9b42506b8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= Date: Sun, 17 Sep 2023 06:25:46 +0200 Subject: [PATCH 076/496] directly use object files when linking ELF (#22025) --- builddefs/common_rules.mk | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/builddefs/common_rules.mk b/builddefs/common_rules.mk index 261ab7da02..52dccbe475 100644 --- a/builddefs/common_rules.mk +++ b/builddefs/common_rules.mk @@ -12,6 +12,9 @@ vpath %.hpp $(VPATH_SRC) vpath %.S $(VPATH_SRC) VPATH := +# Helper to return the distinct elements of a list +uniq = $(if $1,$(firstword $1) $(call uniq,$(filter-out $(firstword $1),$1))) + # Convert all SRC to OBJ define OBJ_FROM_SRC $(patsubst %.c,$1/%.o,$(patsubst %.cpp,$1/%.o,$(patsubst %.cc,$1/%.o,$(patsubst %.S,$1/%.o,$(patsubst %.clib,$1/%.a,$($1_SRC)))))) @@ -264,7 +267,7 @@ BEGIN = gccversion sizebefore # Note the obj.txt depeendency is there to force linking if a source file is deleted %.elf: $(OBJ) $(MASTER_OUTPUT)/cflags.txt $(MASTER_OUTPUT)/ldflags.txt $(MASTER_OUTPUT)/obj.txt | $(BEGIN) @$(SILENT) || printf "$(MSG_LINKING) $@" | $(AWK_CMD) - $(eval CMD=MAKE=$(MAKE) $(CC) $(ALL_CFLAGS) $(filter-out %.txt,$^) --output $@ $(LDFLAGS)) + $(eval CMD=MAKE=$(MAKE) $(CC) $(ALL_CFLAGS) $(call uniq,$(OBJ)) --output $@ $(LDFLAGS)) @$(BUILD_CMD) From f956ed73660acf399aff6441b486c3d52ac5a586 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 17 Sep 2023 07:19:40 +0100 Subject: [PATCH 077/496] Remove config.h which only set DYNAMIC_KEYMAP_LAYER_COUNT (#22034) --- keyboards/aozora/config.h | 20 ------------------ keyboards/dyz/dyz40/config.h | 20 ------------------ keyboards/dyz/dyz60/config.h | 20 ------------------ keyboards/dyz/dyz60_hs/config.h | 20 ------------------ keyboards/dyz/dyz_tkl/config.h | 20 ------------------ keyboards/dyz/selka40/config.h | 20 ------------------ keyboards/dyz/synthesis60/config.h | 20 ------------------ keyboards/handwired/swiftrax/beegboy/config.h | 21 ------------------- keyboards/handwired/swiftrax/cowfish/config.h | 21 ------------------- keyboards/handwired/swiftrax/glacier/config.h | 21 ------------------- keyboards/handwired/swiftrax/joypad/config.h | 21 ------------------- .../swiftrax/koalafications/config.h | 21 ------------------- keyboards/handwired/swiftrax/nodu/config.h | 21 ------------------- .../handwired/swiftrax/pandamic/config.h | 21 ------------------- .../handwired/swiftrax/the_galleon/config.h | 21 ------------------- .../handwired/swiftrax/the_galleon/info.json | 3 +++ keyboards/kabedon/kabedon980/config.h | 20 ------------------ keyboards/kabedon/kabedon980/info.json | 3 +++ keyboards/kikoslab/kl90/config.h | 21 ------------------- keyboards/novelkeys/nk1/config.h | 21 ------------------- keyboards/onekeyco/dango40/config.h | 21 ------------------- keyboards/onekeyco/dango40/info.json | 3 +++ keyboards/sporewoh/banime40/config.h | 20 ------------------ keyboards/sporewoh/banime40/info.json | 3 +++ keyboards/swiftrax/retropad/config.h | 21 ------------------- 25 files changed, 12 insertions(+), 432 deletions(-) delete mode 100644 keyboards/aozora/config.h delete mode 100644 keyboards/dyz/dyz40/config.h delete mode 100644 keyboards/dyz/dyz60/config.h delete mode 100644 keyboards/dyz/dyz60_hs/config.h delete mode 100644 keyboards/dyz/dyz_tkl/config.h delete mode 100644 keyboards/dyz/selka40/config.h delete mode 100644 keyboards/dyz/synthesis60/config.h delete mode 100644 keyboards/handwired/swiftrax/beegboy/config.h delete mode 100644 keyboards/handwired/swiftrax/cowfish/config.h delete mode 100644 keyboards/handwired/swiftrax/glacier/config.h delete mode 100644 keyboards/handwired/swiftrax/joypad/config.h delete mode 100644 keyboards/handwired/swiftrax/koalafications/config.h delete mode 100644 keyboards/handwired/swiftrax/nodu/config.h delete mode 100644 keyboards/handwired/swiftrax/pandamic/config.h delete mode 100644 keyboards/handwired/swiftrax/the_galleon/config.h delete mode 100644 keyboards/kabedon/kabedon980/config.h delete mode 100644 keyboards/kikoslab/kl90/config.h delete mode 100644 keyboards/novelkeys/nk1/config.h delete mode 100644 keyboards/onekeyco/dango40/config.h delete mode 100644 keyboards/sporewoh/banime40/config.h delete mode 100644 keyboards/swiftrax/retropad/config.h diff --git a/keyboards/aozora/config.h b/keyboards/aozora/config.h deleted file mode 100644 index 5171d0c312..0000000000 --- a/keyboards/aozora/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright 2021 Salmon Cat Studio - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -/* EEPROM for via */ -#define DYNAMIC_KEYMAP_LAYER_COUNT 2 diff --git a/keyboards/dyz/dyz40/config.h b/keyboards/dyz/dyz40/config.h deleted file mode 100644 index 7e7ca8b694..0000000000 --- a/keyboards/dyz/dyz40/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2021 dayatz - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/dyz/dyz60/config.h b/keyboards/dyz/dyz60/config.h deleted file mode 100644 index 7e7ca8b694..0000000000 --- a/keyboards/dyz/dyz60/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2021 dayatz - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/dyz/dyz60_hs/config.h b/keyboards/dyz/dyz60_hs/config.h deleted file mode 100644 index 7e7ca8b694..0000000000 --- a/keyboards/dyz/dyz60_hs/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2021 dayatz - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/dyz/dyz_tkl/config.h b/keyboards/dyz/dyz_tkl/config.h deleted file mode 100644 index 7e7ca8b694..0000000000 --- a/keyboards/dyz/dyz_tkl/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2021 dayatz - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/dyz/selka40/config.h b/keyboards/dyz/selka40/config.h deleted file mode 100644 index 7e7ca8b694..0000000000 --- a/keyboards/dyz/selka40/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2021 dayatz - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/dyz/synthesis60/config.h b/keyboards/dyz/synthesis60/config.h deleted file mode 100644 index d70ad316b6..0000000000 --- a/keyboards/dyz/synthesis60/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2022 dayatz - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/handwired/swiftrax/beegboy/config.h b/keyboards/handwired/swiftrax/beegboy/config.h deleted file mode 100644 index 092f2ba0e9..0000000000 --- a/keyboards/handwired/swiftrax/beegboy/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2020 Swiftrax - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/*EEPROM for via*/ -#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/handwired/swiftrax/cowfish/config.h b/keyboards/handwired/swiftrax/cowfish/config.h deleted file mode 100644 index 092f2ba0e9..0000000000 --- a/keyboards/handwired/swiftrax/cowfish/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2020 Swiftrax - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/*EEPROM for via*/ -#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/handwired/swiftrax/glacier/config.h b/keyboards/handwired/swiftrax/glacier/config.h deleted file mode 100644 index 7f9b0b12d4..0000000000 --- a/keyboards/handwired/swiftrax/glacier/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2021 Swiftrax - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/*EEPROM for via*/ -#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/handwired/swiftrax/joypad/config.h b/keyboards/handwired/swiftrax/joypad/config.h deleted file mode 100644 index 092f2ba0e9..0000000000 --- a/keyboards/handwired/swiftrax/joypad/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2020 Swiftrax - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/*EEPROM for via*/ -#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/handwired/swiftrax/koalafications/config.h b/keyboards/handwired/swiftrax/koalafications/config.h deleted file mode 100644 index 7435ce54af..0000000000 --- a/keyboards/handwired/swiftrax/koalafications/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2021 Swiftrax - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/*EEPROM for via*/ -#define DYNAMIC_KEYMAP_LAYER_COUNT 3 \ No newline at end of file diff --git a/keyboards/handwired/swiftrax/nodu/config.h b/keyboards/handwired/swiftrax/nodu/config.h deleted file mode 100644 index 6726795c45..0000000000 --- a/keyboards/handwired/swiftrax/nodu/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2020 Swiftrax - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/*EEPROM for via*/ -#define DYNAMIC_KEYMAP_LAYER_COUNT 3 \ No newline at end of file diff --git a/keyboards/handwired/swiftrax/pandamic/config.h b/keyboards/handwired/swiftrax/pandamic/config.h deleted file mode 100644 index 092f2ba0e9..0000000000 --- a/keyboards/handwired/swiftrax/pandamic/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2020 Swiftrax - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/*EEPROM for via*/ -#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/handwired/swiftrax/the_galleon/config.h b/keyboards/handwired/swiftrax/the_galleon/config.h deleted file mode 100644 index 7f9b0b12d4..0000000000 --- a/keyboards/handwired/swiftrax/the_galleon/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2021 Swiftrax - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/*EEPROM for via*/ -#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/handwired/swiftrax/the_galleon/info.json b/keyboards/handwired/swiftrax/the_galleon/info.json index b12fc5c31f..2e0771e22c 100644 --- a/keyboards/handwired/swiftrax/the_galleon/info.json +++ b/keyboards/handwired/swiftrax/the_galleon/info.json @@ -13,6 +13,9 @@ "rows": ["B1", "B0", "D2", "B7", "D5", "D3", "D6", "D4", "B4", "D7", "B6", "B5", "C7", "C6"] }, "diode_direction": "ROW2COL", + "dynamic_keymap": { + "layer_count": 3 + }, "processor": "atmega32u4", "bootloader": "atmel-dfu", "layouts": { diff --git a/keyboards/kabedon/kabedon980/config.h b/keyboards/kabedon/kabedon980/config.h deleted file mode 100644 index 3623c508cc..0000000000 --- a/keyboards/kabedon/kabedon980/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2012 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/kabedon/kabedon980/info.json b/keyboards/kabedon/kabedon980/info.json index ae15a51ea3..f443f58a3d 100644 --- a/keyboards/kabedon/kabedon980/info.json +++ b/keyboards/kabedon/kabedon980/info.json @@ -33,6 +33,9 @@ "rows": ["D0", "D2", "F7", "B1", "B0", "D6", "C7", "D7", "B5", "B2"] }, "diode_direction": "ROW2COL", + "dynamic_keymap": { + "layer_count": 3 + }, "processor": "atmega32u4", "bootloader": "atmel-dfu", "layouts": { diff --git a/keyboards/kikoslab/kl90/config.h b/keyboards/kikoslab/kl90/config.h deleted file mode 100644 index 7f9b0b12d4..0000000000 --- a/keyboards/kikoslab/kl90/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2021 Swiftrax - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/*EEPROM for via*/ -#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/novelkeys/nk1/config.h b/keyboards/novelkeys/nk1/config.h deleted file mode 100644 index 1bcd22e6e5..0000000000 --- a/keyboards/novelkeys/nk1/config.h +++ /dev/null @@ -1,21 +0,0 @@ - -/* Copyright 2021 Yiancar - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -/* There is only 1 Button so limiting VIA to 1 layer */ -#define DYNAMIC_KEYMAP_LAYER_COUNT 1 diff --git a/keyboards/onekeyco/dango40/config.h b/keyboards/onekeyco/dango40/config.h deleted file mode 100644 index b7488fcb75..0000000000 --- a/keyboards/onekeyco/dango40/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2021 Swiftrax - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/*EEPROM for via*/ -#define DYNAMIC_KEYMAP_LAYER_COUNT 5 \ No newline at end of file diff --git a/keyboards/onekeyco/dango40/info.json b/keyboards/onekeyco/dango40/info.json index eba683dafc..c9087c630a 100644 --- a/keyboards/onekeyco/dango40/info.json +++ b/keyboards/onekeyco/dango40/info.json @@ -13,6 +13,9 @@ "rows": ["F4", "F1", "F0", "C6"] }, "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 5 + }, "encoder": { "rotary": [ {"pin_a": "D2", "pin_b": "D1"} diff --git a/keyboards/sporewoh/banime40/config.h b/keyboards/sporewoh/banime40/config.h deleted file mode 100644 index 75882003aa..0000000000 --- a/keyboards/sporewoh/banime40/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2022 sporewoh - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define DYNAMIC_KEYMAP_LAYER_COUNT 10 diff --git a/keyboards/sporewoh/banime40/info.json b/keyboards/sporewoh/banime40/info.json index 3390b8a334..857daf8ec7 100644 --- a/keyboards/sporewoh/banime40/info.json +++ b/keyboards/sporewoh/banime40/info.json @@ -13,6 +13,9 @@ "rows": ["E6", "D7", "C6", "D4"] }, "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 10 + }, "processor": "atmega32u4", "bootloader": "caterina", "community_layouts": ["ortho_4x10"], diff --git a/keyboards/swiftrax/retropad/config.h b/keyboards/swiftrax/retropad/config.h deleted file mode 100644 index 092f2ba0e9..0000000000 --- a/keyboards/swiftrax/retropad/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2020 Swiftrax - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/*EEPROM for via*/ -#define DYNAMIC_KEYMAP_LAYER_COUNT 3 From 39fafdac0f7d53cd83077bb4a5e90828c5186c55 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 17 Sep 2023 08:11:32 +0100 Subject: [PATCH 078/496] Move Digitizer to "Software Features" (#22031) --- docs/_summary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_summary.md b/docs/_summary.md index d7dbd38c98..26a543aee4 100644 --- a/docs/_summary.md +++ b/docs/_summary.md @@ -80,6 +80,7 @@ * [Caps Word](feature_caps_word.md) * [Combos](feature_combo.md) * [Debounce API](feature_debounce_type.md) + * [Digitizer](feature_digitizer.md) * [EEPROM](feature_eeprom.md) * [Key Lock](feature_key_lock.md) * [Key Overrides](feature_key_overrides.md) @@ -115,7 +116,6 @@ * [Bootmagic Lite](feature_bootmagic.md) * [Converters](feature_converters.md) * [Custom Matrix](custom_matrix.md) - * [Digitizer](feature_digitizer.md) * [DIP Switch](feature_dip_switch.md) * [Encoders](feature_encoders.md) * [Haptic Feedback](feature_haptic_feedback.md) From 1ea54a2d8da9e64e5a2c1fd882a13058523b50bc Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 17 Sep 2023 22:11:16 +1000 Subject: [PATCH 079/496] Complete RGB Matrix support for IS31FL3218 (#22004) --- builddefs/common_features.mk | 9 +- docs/reference_info_json.md | 2 +- drivers/led/issi/is31fl3218.c | 96 +++++++++++++++---- drivers/led/issi/is31fl3218.h | 38 +++++++- .../rama_works_m60_a/keymaps/zyber/config.h | 4 +- keyboards/wilba_tech/rama_works_m6_b/config.h | 2 + keyboards/wilba_tech/wt_rgb_backlight.c | 20 +++- quantum/rgb_matrix/rgb_matrix.h | 4 +- quantum/rgb_matrix/rgb_matrix_drivers.c | 36 +++++-- 9 files changed, 178 insertions(+), 33 deletions(-) diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 18f8b0bbfc..1597022d63 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -416,7 +416,7 @@ endif RGB_MATRIX_ENABLE ?= no -VALID_RGB_MATRIX_TYPES := aw20216s is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a ckled2001 ws2812 custom +VALID_RGB_MATRIX_TYPES := aw20216s is31fl3218 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a ckled2001 ws2812 custom ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) ifeq ($(filter $(RGB_MATRIX_DRIVER),$(VALID_RGB_MATRIX_TYPES)),) $(call CATASTROPHIC_ERROR,Invalid RGB_MATRIX_DRIVER,RGB_MATRIX_DRIVER="$(RGB_MATRIX_DRIVER)" is not a valid matrix type) @@ -444,6 +444,13 @@ endif QUANTUM_LIB_SRC += spi_master.c endif + ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3218) + OPT_DEFS += -DIS31FL3218 -DSTM32_I2C -DHAL_USE_I2C=TRUE + COMMON_VPATH += $(DRIVER_PATH)/led/issi + SRC += is31fl3218.c + QUANTUM_LIB_SRC += i2c_master.c + endif + ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3731) OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 9030c99aa6..c8cb72101e 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -530,7 +530,7 @@ Configures the [RGB Matrix](feature_rgb_matrix.md) feature. * The centroid (geometric center) of the LEDs. Used for certain effects. * Default: `[112, 32]` * `driver` (Required) - * The driver to use. Must be one of `aw20216s`, `ckled2001`, `custom`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `ws2812`. + * The driver to use. Must be one of `aw20216s`, `ckled2001`, `custom`, `is31fl3218`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `ws2812`. * `hue_steps` * The number of hue adjustment steps. * Default: `8` diff --git a/drivers/led/issi/is31fl3218.c b/drivers/led/issi/is31fl3218.c index 6072f6cecd..87a0acfc08 100644 --- a/drivers/led/issi/is31fl3218.c +++ b/drivers/led/issi/is31fl3218.c @@ -14,11 +14,9 @@ * along with this program. If not, see . */ #include "is31fl3218.h" +#include #include "i2c_master.h" -// This is the full 8-bit address -#define IS31FL3218_I2C_ADDRESS 0xA8 - // These are the register addresses #define IS31FL3218_REG_SHUTDOWN 0x00 #define IS31FL3218_REG_PWM 0x01 @@ -26,28 +24,47 @@ #define IS31FL3218_REG_UPDATE 0x16 #define IS31FL3218_REG_RESET 0x17 -// Default timeout if no I2C response -#define IS31FL3218_I2C_TIMEOUT 100 +#ifndef IS31FL3218_I2C_TIMEOUT +# define IS31FL3218_I2C_TIMEOUT 100 +#endif + +#ifndef IS31FL3218_I2C_PERSISTENCE +# define IS31FL3218_I2C_PERSISTENCE 0 +#endif // Reusable buffer for transfers uint8_t g_twi_transfer_buffer[20]; // IS31FL3218 has 18 PWM outputs and a fixed I2C address, so no chaining. -// If used as RGB LED driver, LEDs are assigned RGB,RGB,RGB,RGB,RGB,RGB uint8_t g_pwm_buffer[18]; bool g_pwm_buffer_update_required = false; +uint8_t g_led_control_registers[3] = {0}; +bool g_led_control_registers_update_required = false; + void is31fl3218_write_register(uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; g_twi_transfer_buffer[1] = data; - i2c_transmit(IS31FL3218_I2C_ADDRESS, g_twi_transfer_buffer, 2, IS31FL3218_I2C_TIMEOUT); +#if IS31FL3218_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3218_I2C_PERSISTENCE; i++) { + if (i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, g_twi_transfer_buffer, 2, IS31FL3218_I2C_TIMEOUT) == 0) break; + } +#else + i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, g_twi_transfer_buffer, 2, IS31FL3218_I2C_TIMEOUT); +#endif } void is31fl3218_write_pwm_buffer(uint8_t *pwm_buffer) { g_twi_transfer_buffer[0] = IS31FL3218_REG_PWM; memcpy(g_twi_transfer_buffer + 1, pwm_buffer, 18); - i2c_transmit(IS31FL3218_I2C_ADDRESS, g_twi_transfer_buffer, 19, IS31FL3218_I2C_TIMEOUT); +#if IS31FL3218_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3218_I2C_PERSISTENCE; i++) { + i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, g_twi_transfer_buffer, 19, IS31FL3218_I2C_TIMEOUT); + } +#else + i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, g_twi_transfer_buffer, 19, IS31FL3218_I2C_TIMEOUT); +#endif } void is31fl3218_init(void) { @@ -62,9 +79,9 @@ void is31fl3218_init(void) { is31fl3218_write_register(IS31FL3218_REG_PWM + i, 0x00); } - // Enable all channels + // turn off all LEDs in the LED control register for (uint8_t i = 0; i < 3; i++) { - is31fl3218_write_register(IS31FL3218_REG_CONTROL + i, 0b00111111); + is31fl3218_write_register(IS31FL3218_REG_CONTROL + i, 0x00); } // Load PWM registers and LED Control register data @@ -72,26 +89,71 @@ void is31fl3218_init(void) { } void is31fl3218_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - if (g_pwm_buffer[index * 3 + 0] == red && g_pwm_buffer[index * 3 + 1] == green && g_pwm_buffer[index * 3 + 2] == blue) { + is31fl3218_led_t led; + if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { + memcpy_P(&led, (&g_is31fl3218_leds[index]), sizeof(led)); + } + if (g_pwm_buffer[led.r - IS31FL3218_REG_PWM] == red && g_pwm_buffer[led.g - IS31FL3218_REG_PWM] == green && g_pwm_buffer[led.b - IS31FL3218_REG_PWM] == blue) { return; } - g_pwm_buffer[index * 3 + 0] = red; - g_pwm_buffer[index * 3 + 1] = green; - g_pwm_buffer[index * 3 + 2] = blue; - g_pwm_buffer_update_required = true; + g_pwm_buffer[led.r - IS31FL3218_REG_PWM] = red; + g_pwm_buffer[led.g - IS31FL3218_REG_PWM] = green; + g_pwm_buffer[led.b - IS31FL3218_REG_PWM] = blue; + g_pwm_buffer_update_required = true; } void is31fl3218_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < 6; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { is31fl3218_set_color(i, red, green, blue); } } +void is31fl3218_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { + is31fl3218_led_t led; + memcpy_P(&led, (&g_is31fl3218_leds[index]), sizeof(led)); + + uint8_t control_register_r = (led.r - IS31FL3218_REG_PWM) / 6; + uint8_t control_register_g = (led.g - IS31FL3218_REG_PWM) / 6; + uint8_t control_register_b = (led.b - IS31FL3218_REG_PWM) / 6; + uint8_t bit_r = (led.r - IS31FL3218_REG_PWM) % 6; + uint8_t bit_g = (led.g - IS31FL3218_REG_PWM) % 6; + uint8_t bit_b = (led.b - IS31FL3218_REG_PWM) % 6; + + if (red) { + g_led_control_registers[control_register_r] |= (1 << bit_r); + } else { + g_led_control_registers[control_register_r] &= ~(1 << bit_r); + } + if (green) { + g_led_control_registers[control_register_g] |= (1 << bit_g); + } else { + g_led_control_registers[control_register_g] &= ~(1 << bit_g); + } + if (blue) { + g_led_control_registers[control_register_b] |= (1 << bit_b); + } else { + g_led_control_registers[control_register_b] &= ~(1 << bit_b); + } + + g_led_control_registers_update_required = true; +} + void is31fl3218_update_pwm_buffers(void) { if (g_pwm_buffer_update_required) { is31fl3218_write_pwm_buffer(g_pwm_buffer); // Load PWM registers and LED Control register data is31fl3218_write_register(IS31FL3218_REG_UPDATE, 0x01); + + g_pwm_buffer_update_required = false; + } +} + +void is31fl3218_update_led_control_registers(void) { + if (g_led_control_registers_update_required) { + for (int i = 0; i < 3; i++) { + is31fl3218_write_register(IS31FL3218_REG_CONTROL + i, g_led_control_registers[i]); + } + + g_led_control_registers_update_required = false; } - g_pwm_buffer_update_required = false; } diff --git a/drivers/led/issi/is31fl3218.h b/drivers/led/issi/is31fl3218.h index 2fe3768432..a5ac44fd1d 100644 --- a/drivers/led/issi/is31fl3218.h +++ b/drivers/led/issi/is31fl3218.h @@ -18,9 +18,45 @@ #include #include -#include +#include "progmem.h" + +#define IS31FL3218_I2C_ADDRESS 0x54 + +typedef struct is31fl3218_led_t { + uint8_t r; + uint8_t g; + uint8_t b; +} __attribute__((packed)) is31fl3218_led_t; + +extern const is31fl3218_led_t PROGMEM g_is31fl3218_leds[RGB_MATRIX_LED_COUNT]; void is31fl3218_init(void); + void is31fl3218_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); + void is31fl3218_set_color_all(uint8_t red, uint8_t green, uint8_t blue); + +void is31fl3218_set_led_control_register(uint8_t index, bool red, bool green, bool blue); + void is31fl3218_update_pwm_buffers(void); + +void is31fl3218_update_led_control_registers(void); + +#define OUT1 0x01 +#define OUT2 0x02 +#define OUT3 0x03 +#define OUT4 0x04 +#define OUT5 0x05 +#define OUT6 0x06 +#define OUT7 0x07 +#define OUT8 0x08 +#define OUT9 0x09 +#define OUT10 0x0A +#define OUT11 0x0B +#define OUT12 0x0C +#define OUT13 0x0D +#define OUT14 0x0E +#define OUT15 0x0F +#define OUT16 0x10 +#define OUT17 0x11 +#define OUT18 0x12 diff --git a/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/config.h b/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/config.h index 9ad052aab4..d34eafbaeb 100644 --- a/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/config.h +++ b/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/config.h @@ -3,6 +3,4 @@ #pragma once #undef PRODUCT -#define PRODUCT RAMA WORKS M60-A Seq2 -#undef DESCRIPTION -#define DESCRIPTION RAMA WORKS M60-A Seq2 +#define PRODUCT "RAMA WORKS M60-A Seq2" diff --git a/keyboards/wilba_tech/rama_works_m6_b/config.h b/keyboards/wilba_tech/rama_works_m6_b/config.h index a117bcc2a8..27a5e72c04 100644 --- a/keyboards/wilba_tech/rama_works_m6_b/config.h +++ b/keyboards/wilba_tech/rama_works_m6_b/config.h @@ -20,6 +20,8 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE +#define RGB_MATRIX_LED_COUNT 6 + #define RGB_BACKLIGHT_ENABLED 1 // This conditionally compiles the backlight code for M6-B specifics diff --git a/keyboards/wilba_tech/wt_rgb_backlight.c b/keyboards/wilba_tech/wt_rgb_backlight.c index d2ec610df8..8a0f3b7f91 100644 --- a/keyboards/wilba_tech/wt_rgb_backlight.c +++ b/keyboards/wilba_tech/wt_rgb_backlight.c @@ -834,7 +834,14 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { }; #elif defined(RGB_BACKLIGHT_M6_B) - // Driver has fixed mapping of index to the red, green and blue LEDs +const is31fl3218_led_t PROGMEM g_is31fl3218_leds[RGB_MATRIX_LED_COUNT] = { + {OUT1, OUT2, OUT3}, + {OUT4, OUT5, OUT6}, + {OUT7, OUT8, OUT9}, + {OUT10, OUT11, OUT12}, + {OUT13, OUT14, OUT15}, + {OUT16, OUT17, OUT18} +}; #elif defined(RGB_BACKLIGHT_M10_C) // This is a 7-bit address, that gets left-shifted and bit 0 // set to 0 for write, 1 for read (as per I2C protocol) @@ -2915,6 +2922,17 @@ void backlight_init_drivers(void) #if defined(RGB_BACKLIGHT_M6_B) is31fl3218_init(); + + for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ ) + { + bool enabled = true; + + // This only caches it for later + is31fl3218_set_led_control_register( index, enabled, enabled, enabled ); + } + + // This actually updates the LED drivers + is31fl3218_update_led_control_registers(); #elif defined(RGB_BACKLIGHT_HS60) is31fl3733_init( ISSI_ADDR_1, 0 ); diff --git a/quantum/rgb_matrix/rgb_matrix.h b/quantum/rgb_matrix/rgb_matrix.h index ab5184fe18..377f6658bb 100644 --- a/quantum/rgb_matrix/rgb_matrix.h +++ b/quantum/rgb_matrix/rgb_matrix.h @@ -24,7 +24,9 @@ #include "color.h" #include "keyboard.h" -#ifdef IS31FL3731 +#if defined(IS31FL3218) +# include "is31fl3218.h" +#elif defined(IS31FL3731) # include "is31fl3731.h" #elif defined(IS31FL3733) # include "is31fl3733.h" diff --git a/quantum/rgb_matrix/rgb_matrix_drivers.c b/quantum/rgb_matrix/rgb_matrix_drivers.c index 67330434ed..a81edce180 100644 --- a/quantum/rgb_matrix/rgb_matrix_drivers.c +++ b/quantum/rgb_matrix/rgb_matrix_drivers.c @@ -24,7 +24,7 @@ * be here if shared between boards. */ -#if defined(IS31FL3731) || defined(IS31FL3733) || defined(IS31FL3736) || defined(IS31FL3737) || defined(IS31FL3741) || defined(IS31FLCOMMON) || defined(CKLED2001) +#if defined(IS31FL3218) || defined(IS31FL3731) || defined(IS31FL3733) || defined(IS31FL3736) || defined(IS31FL3737) || defined(IS31FL3741) || defined(IS31FLCOMMON) || defined(CKLED2001) # include "i2c_master.h" // TODO: Remove this at some later date @@ -37,7 +37,10 @@ static void init(void) { i2c_init(); -# if defined(IS31FL3731) +# if defined(IS31FL3218) + is31fl3218_init(); + +# elif defined(IS31FL3731) is31fl3731_init(DRIVER_ADDR_1); # if defined(DRIVER_ADDR_2) is31fl3731_init(DRIVER_ADDR_2); @@ -138,7 +141,9 @@ static void init(void) { bool enabled = true; // This only caches it for later -# if defined(IS31FL3731) +# if defined(IS31FL3218) + is31fl3218_set_led_control_register(index, enabled, enabled, enabled); +# elif defined(IS31FL3731) is31fl3731_set_led_control_register(index, enabled, enabled, enabled); # elif defined(IS31FL3733) is31fl3733_set_led_control_register(index, enabled, enabled, enabled); @@ -156,7 +161,10 @@ static void init(void) { } // This actually updates the LED drivers -# if defined(IS31FL3731) +# if defined(IS31FL3218) + is31fl3218_update_led_control_registers(); + +# elif defined(IS31FL3731) is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) is31fl3731_update_led_control_registers(DRIVER_ADDR_2, 1); @@ -245,7 +253,19 @@ static void init(void) { # endif } -# if defined(IS31FL3731) +# if defined(IS31FL3218) +static void flush(void) { + is31fl3218_update_pwm_buffers(); +} + +const rgb_matrix_driver_t rgb_matrix_driver = { + .init = init, + .flush = flush, + .set_color = is31fl3218_set_color, + .set_color_all = is31fl3218_set_color_all, +}; + +# elif defined(IS31FL3731) static void flush(void) { is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) @@ -260,9 +280,9 @@ static void flush(void) { } const rgb_matrix_driver_t rgb_matrix_driver = { - .init = init, - .flush = flush, - .set_color = is31fl3731_set_color, + .init = init, + .flush = flush, + .set_color = is31fl3731_set_color, .set_color_all = is31fl3731_set_color_all, }; From 1fbd45a5949acc6bc51c4bbd80ad2d4c249e7805 Mon Sep 17 00:00:00 2001 From: Constantine Karos <36245370+karosc@users.noreply.github.com> Date: Sun, 17 Sep 2023 08:18:26 -0400 Subject: [PATCH 080/496] Add missing gpio and chibios defs to uart.h (#22033) --- platforms/chibios/drivers/uart.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/platforms/chibios/drivers/uart.h b/platforms/chibios/drivers/uart.h index d1917bfc80..16983072ce 100644 --- a/platforms/chibios/drivers/uart.h +++ b/platforms/chibios/drivers/uart.h @@ -21,6 +21,9 @@ #include +#include "gpio.h" +#include "chibios_config.h" + #ifndef SERIAL_DRIVER # define SERIAL_DRIVER SD1 #endif From 9f9ad95fb40a31a89f71ba85f846f6adb60d2e11 Mon Sep 17 00:00:00 2001 From: Yak <68242321+yakMM@users.noreply.github.com> Date: Sun, 17 Sep 2023 19:32:44 +0200 Subject: [PATCH 081/496] Fix paragon encoder pinout for soldered version (#22043) --- keyboards/artemis/paragon/hotswap/info.json | 5 +++++ keyboards/artemis/paragon/info.json | 5 ----- keyboards/artemis/paragon/soldered/info.json | 5 +++++ 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/keyboards/artemis/paragon/hotswap/info.json b/keyboards/artemis/paragon/hotswap/info.json index d70625c1d6..0882579dec 100644 --- a/keyboards/artemis/paragon/hotswap/info.json +++ b/keyboards/artemis/paragon/hotswap/info.json @@ -3,6 +3,11 @@ "cols": ["F7", "F6", "F5", "F4", "F1", "F0", "C7", "E6", "B0", "B3", "B6", "B5", "B4", "D7", "D4", "D6"], "rows": ["D2", "D1", "D0", "B2", "B1", "C6"] }, + "encoder": { + "rotary": [ + { "pin_a": "D3", "pin_b": "D5", "resolution": 2 } + ] + }, "layouts": { "LAYOUT_ansi_rwkl": { "layout": [ diff --git a/keyboards/artemis/paragon/info.json b/keyboards/artemis/paragon/info.json index b18b3b28db..63fefe8c55 100644 --- a/keyboards/artemis/paragon/info.json +++ b/keyboards/artemis/paragon/info.json @@ -18,11 +18,6 @@ }, "processor": "atmega32u4", "url": "", - "encoder": { - "rotary": [ - { "pin_a": "D3", "pin_b": "D5", "resolution": 2 } - ] - }, "usb": { "device_version": "1.0.0", "pid": "0x3449", diff --git a/keyboards/artemis/paragon/soldered/info.json b/keyboards/artemis/paragon/soldered/info.json index b531b22f80..169acb4fb4 100644 --- a/keyboards/artemis/paragon/soldered/info.json +++ b/keyboards/artemis/paragon/soldered/info.json @@ -3,6 +3,11 @@ "cols": ["E6", "F0", "F1", "F4", "F5", "F6", "F7", "B0", "B1", "B3", "D0", "D1", "D2", "D3", "D7", "D5"], "rows": ["B2", "C7", "C6", "B6", "B5", "B4"] }, + "encoder": { + "rotary": [ + { "pin_a": "D4", "pin_b": "D6", "resolution": 2 } + ] + }, "layouts": { "LAYOUT_ansi_rwkl": { "layout": [ From 652c5a941099a6778b3d6a6eef703582c124e383 Mon Sep 17 00:00:00 2001 From: Moritz Plattner Date: Sun, 17 Sep 2023 19:35:29 +0200 Subject: [PATCH 082/496] geistmaschine/macropod: fix issues waking up after suspend on apple devices (#22023) --- keyboards/geistmaschine/macropod/config.h | 3 +++ keyboards/geistmaschine/macropod/info.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/keyboards/geistmaschine/macropod/config.h b/keyboards/geistmaschine/macropod/config.h index f6dad6ebe0..e12d3b94fa 100644 --- a/keyboards/geistmaschine/macropod/config.h +++ b/keyboards/geistmaschine/macropod/config.h @@ -19,3 +19,6 @@ IO expander setup would allow up to 1x16 + 1 from the MCU */ #define MATRIX_ROWS 1 #define MATRIX_COLS 17 + +/* Fix for Apple Silicon Macs struggling to detect board after suspend/sleep */ +#define USB_SUSPEND_WAKEUP_DELAY 200 \ No newline at end of file diff --git a/keyboards/geistmaschine/macropod/info.json b/keyboards/geistmaschine/macropod/info.json index 886ed5acaf..333e7c0a50 100644 --- a/keyboards/geistmaschine/macropod/info.json +++ b/keyboards/geistmaschine/macropod/info.json @@ -15,7 +15,7 @@ "command": false, "console": false, "extrakey": true, - "mousekey": false, + "mousekey": true, "nkro": false, "encoder": true }, From 6129f5f68b404ed79c9f0902fb0c8dbb192ba284 Mon Sep 17 00:00:00 2001 From: Controller Works <103382872+controller-works@users.noreply.github.com> Date: Sun, 17 Sep 2023 13:41:26 -0400 Subject: [PATCH 083/496] Add all RGB Matrix Animations to city42 (#21992) --- keyboards/controllerworks/city42/info.json | 42 +++++++++++++++------- 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/keyboards/controllerworks/city42/info.json b/keyboards/controllerworks/city42/info.json index 914b716f11..2976021b11 100644 --- a/keyboards/controllerworks/city42/info.json +++ b/keyboards/controllerworks/city42/info.json @@ -23,32 +23,50 @@ "processor": "RP2040", "rgb_matrix": { "animations": { + "solid_color": true, "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, "band_pinwheel_sat": true, "band_pinwheel_val": true, - "band_sat": true, "band_spiral_sat": true, "band_spiral_val": true, - "band_val": true, - "breathing": true, "cycle_all": true, "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, "cycle_pinwheel": true, "cycle_spiral": true, - "cycle_up_down": true, - "gradient_left_right": true, - "gradient_up_down": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, "hue_breathing": true, "hue_pendulum": true, "hue_wave": true, - "rainbow_moving_chevron": true, - "raindrops": true, - "solid_reactive": true, - "solid_reactive_multinexus": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, "solid_reactive_simple": true, - "solid_splash": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, "splash": true, - "typing_heatmap": true + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true }, "driver": "ws2812", "layout": [ From b5181e3d0633bfa891c1dd7d4967a131847baa3b Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sun, 17 Sep 2023 20:17:51 -0700 Subject: [PATCH 084/496] Viktus Styrka Topre Layout Standardization and Touch-Up (#22044) * Add layout/matrix diagram [docs] * Alias `LAYOUT_all` to `LAYOUT_split_6u` `LAYOUT_all` and `LAYOUT_split_6u` represent the same matrix positions and sequence, so implement the former as an alias. [refactor] * Touch-up keymaps - grid-align keycodes - use QMK-native keycode aliases [chore] * Friendly-format `info.json` [style] * Correct layout data Correct key sizes/positioning on the bottom row. [chore] * Rename `LAYOUT_2u_6u` to `LAYOUT_65_xt_ansi_blocker` [refactor] * Rename `LAYOUT_2u_7u` to `LAYOUT_65_xt_ansi_blocker_tsangan` [refactor] * Rename `LAYOUT_split_6u` to `LAYOUT_65_xt_ansi_blocker_split_bs` [refactor] * Rename `LAYOUT_split_7u` to `LAYOUT_65_xt_ansi_blocker_tsangan_split_bs` [refactor] --- keyboards/viktus/styrka_topre/info.json | 158 +++++++----------- .../styrka_topre/keymaps/default/keymap.c | 12 +- .../viktus/styrka_topre/keymaps/via/keymap.c | 12 +- .../viktus/styrka_topre/matrix_diagram.md | 21 +++ 4 files changed, 92 insertions(+), 111 deletions(-) create mode 100644 keyboards/viktus/styrka_topre/matrix_diagram.md diff --git a/keyboards/viktus/styrka_topre/info.json b/keyboards/viktus/styrka_topre/info.json index f6d3560985..7095a8f484 100644 --- a/keyboards/viktus/styrka_topre/info.json +++ b/keyboards/viktus/styrka_topre/info.json @@ -26,93 +26,19 @@ "cols": ["B5", "B4", "D7", "D6", "F6", "F5", "F4", "C7", "C6", "B6", "F7", "B1", "B2", "B3", "B7", "F1", "F0", "E6"], "rows": ["A7", "A6", "A4", "A5", "A3"] }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_65_xt_ansi_blocker_split_bs", + "LAYOUT_2u_6u": "LAYOUT_65_xt_ansi_blocker", + "LAYOUT_2u_7u": "LAYOUT_65_xt_ansi_blocker_tsangan", + "LAYOUT_split_6u": "LAYOUT_65_xt_ansi_blocker_split_bs", + "LAYOUT_split_7u": "LAYOUT_65_xt_ansi_blocker_tsangan_split_bs" + }, "layouts": { - "LAYOUT_all": { - "layout": [ - {"label": "K000", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "K001", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "K002", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "K003", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "K004", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "K005", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "K006", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "K007", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "K008", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "K009", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": "K00A", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "K00B", "matrix": [0, 11], "x": 11, "y": 0}, - {"label": "K00C", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "K00D", "matrix": [0, 13], "x": 13, "y": 0}, - {"label": "K00E", "matrix": [0, 14], "x": 14, "y": 0}, - {"label": "K00F", "matrix": [0, 15], "x": 15, "y": 0}, - {"label": "K010", "matrix": [0, 16], "x": 16, "y": 0}, - {"label": "K011", "matrix": [0, 17], "x": 17, "y": 0}, - {"label": "K100", "matrix": [1, 0], "x": 18, "y": 0}, - {"label": "K101", "matrix": [1, 1], "x": 19, "y": 0}, - {"label": "K102", "matrix": [1, 2], "x": 20, "y": 0}, - {"label": "K103", "matrix": [1, 3], "x": 21, "y": 0}, - {"label": "K104", "matrix": [1, 4], "x": 22, "y": 0}, - {"label": "K105", "matrix": [1, 5], "x": 23, "y": 0}, - {"label": "K106", "matrix": [1, 6], "x": 24, "y": 0}, - {"label": "K107", "matrix": [1, 7], "x": 25, "y": 0}, - {"label": "K108", "matrix": [1, 8], "x": 26, "y": 0}, - {"label": "K109", "matrix": [1, 9], "x": 27, "y": 0}, - {"label": "K10A", "matrix": [1, 10], "x": 28, "y": 0}, - {"label": "K10B", "matrix": [1, 11], "x": 29, "y": 0}, - {"label": "K10C", "matrix": [1, 12], "x": 30, "y": 0}, - {"label": "K10D", "matrix": [1, 13], "x": 31, "y": 0}, - {"label": "K10E", "matrix": [1, 14], "x": 32, "y": 0}, - {"label": "K110", "matrix": [1, 16], "x": 33, "y": 0}, - {"label": "K111", "matrix": [1, 17], "x": 34, "y": 0}, - {"label": "K200", "matrix": [2, 0], "x": 35, "y": 0}, - {"label": "K201", "matrix": [2, 1], "x": 36, "y": 0}, - {"label": "K202", "matrix": [2, 2], "x": 37, "y": 0}, - {"label": "K203", "matrix": [2, 3], "x": 38, "y": 0}, - {"label": "K204", "matrix": [2, 4], "x": 39, "y": 0}, - {"label": "K205", "matrix": [2, 5], "x": 40, "y": 0}, - {"label": "K206", "matrix": [2, 6], "x": 41, "y": 0}, - {"label": "K207", "matrix": [2, 7], "x": 42, "y": 0}, - {"label": "K208", "matrix": [2, 8], "x": 43, "y": 0}, - {"label": "K209", "matrix": [2, 9], "x": 44, "y": 0}, - {"label": "K20A", "matrix": [2, 10], "x": 45, "y": 0}, - {"label": "K20B", "matrix": [2, 11], "x": 46, "y": 0}, - {"label": "K20C", "matrix": [2, 12], "x": 47, "y": 0}, - {"label": "K20D", "matrix": [2, 13], "x": 48, "y": 0}, - {"label": "K20F", "matrix": [2, 15], "x": 49, "y": 0}, - {"label": "K211", "matrix": [2, 17], "x": 50, "y": 0}, - {"label": "K300", "matrix": [3, 0], "x": 51, "y": 0}, - {"label": "K301", "matrix": [3, 1], "x": 52, "y": 0}, - {"label": "K302", "matrix": [3, 2], "x": 53, "y": 0}, - {"label": "K304", "matrix": [3, 4], "x": 54, "y": 0}, - {"label": "K305", "matrix": [3, 5], "x": 55, "y": 0}, - {"label": "K306", "matrix": [3, 6], "x": 56, "y": 0}, - {"label": "K307", "matrix": [3, 7], "x": 57, "y": 0}, - {"label": "K308", "matrix": [3, 8], "x": 58, "y": 0}, - {"label": "K309", "matrix": [3, 9], "x": 59, "y": 0}, - {"label": "K30A", "matrix": [3, 10], "x": 60, "y": 0}, - {"label": "K30B", "matrix": [3, 11], "x": 61, "y": 0}, - {"label": "K30C", "matrix": [3, 12], "x": 62, "y": 0}, - {"label": "K30D", "matrix": [3, 13], "x": 63, "y": 0}, - {"label": "K30E", "matrix": [3, 14], "x": 64, "y": 0}, - {"label": "K310", "matrix": [3, 16], "x": 65, "y": 0}, - {"label": "K311", "matrix": [3, 17], "x": 66, "y": 0}, - {"label": "K400", "matrix": [4, 0], "x": 67, "y": 0}, - {"label": "K401", "matrix": [4, 1], "x": 68, "y": 0}, - {"label": "K402", "matrix": [4, 2], "x": 69, "y": 0}, - {"label": "K403", "matrix": [4, 3], "x": 70, "y": 0}, - {"label": "K404", "matrix": [4, 4], "x": 71, "y": 0}, - {"label": "K408", "matrix": [4, 8], "x": 72, "y": 0}, - {"label": "K40C", "matrix": [4, 12], "x": 73, "y": 0}, - {"label": "K40D", "matrix": [4, 13], "x": 74, "y": 0}, - {"label": "K40E", "matrix": [4, 14], "x": 75, "y": 0}, - {"label": "K410", "matrix": [4, 16], "x": 76, "y": 0}, - {"label": "K411", "matrix": [4, 17], "x": 77, "y": 0} - ] - }, - "LAYOUT_2u_6u": { + "LAYOUT_65_xt_ansi_blocker": { "layout": [ {"label": "K000", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "K001", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K002", "matrix": [0, 2], "x": 2.25, "y": 0}, {"label": "K003", "matrix": [0, 3], "x": 3.25, "y": 0}, {"label": "K004", "matrix": [0, 4], "x": 4.25, "y": 0}, @@ -128,8 +54,10 @@ {"label": "K00E", "matrix": [0, 14], "x": 14.25, "y": 0}, {"label": "K010", "matrix": [0, 16], "x": 15.25, "y": 0, "w": 2}, {"label": "K011", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "K100", "matrix": [1, 0], "x": 0, "y": 1}, {"label": "K101", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "K102", "matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5}, {"label": "K103", "matrix": [1, 3], "x": 3.75, "y": 1}, {"label": "K104", "matrix": [1, 4], "x": 4.75, "y": 1}, @@ -145,8 +73,10 @@ {"label": "K10E", "matrix": [1, 14], "x": 14.75, "y": 1}, {"label": "K110", "matrix": [1, 16], "x": 15.75, "y": 1, "w": 1.5}, {"label": "K111", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "K200", "matrix": [2, 0], "x": 0, "y": 2}, {"label": "K201", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "K202", "matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.75}, {"label": "K203", "matrix": [2, 3], "x": 4, "y": 2}, {"label": "K204", "matrix": [2, 4], "x": 5, "y": 2}, @@ -161,8 +91,10 @@ {"label": "K20D", "matrix": [2, 13], "x": 14, "y": 2}, {"label": "K20F", "matrix": [2, 15], "x": 15, "y": 2, "w": 2.25}, {"label": "K211", "matrix": [2, 17], "x": 17.25, "y": 2}, + {"label": "K300", "matrix": [3, 0], "x": 0, "y": 3}, {"label": "K301", "matrix": [3, 1], "x": 1, "y": 3}, + {"label": "K302", "matrix": [3, 2], "x": 2.25, "y": 3, "w": 2.25}, {"label": "K304", "matrix": [3, 4], "x": 4.5, "y": 3}, {"label": "K305", "matrix": [3, 5], "x": 5.5, "y": 3}, @@ -177,23 +109,26 @@ {"label": "K30E", "matrix": [3, 14], "x": 14.5, "y": 3, "w": 1.75}, {"label": "K310", "matrix": [3, 16], "x": 16.25, "y": 3}, {"label": "K311", "matrix": [3, 17], "x": 17.25, "y": 3}, + {"label": "K400", "matrix": [4, 0], "x": 0, "y": 4}, {"label": "K401", "matrix": [4, 1], "x": 1, "y": 4}, - {"label": "K402", "matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.25}, - {"label": "K403", "matrix": [4, 3], "x": 3.5, "y": 4, "w": 1.25}, - {"label": "K404", "matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.25}, - {"label": "K408", "matrix": [4, 8], "x": 6, "y": 4, "w": 6.25}, - {"label": "K40C", "matrix": [4, 12], "x": 12.25, "y": 4}, - {"label": "K40D", "matrix": [4, 13], "x": 13.25, "y": 4, "w": 1.5}, + + {"label": "K402", "matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, + {"label": "K403", "matrix": [4, 3], "x": 3.75, "y": 4}, + {"label": "K404", "matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.5}, + {"label": "K408", "matrix": [4, 8], "x": 6.25, "y": 4, "w": 6}, + {"label": "K40C", "matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.5}, + {"label": "K40D", "matrix": [4, 13], "x": 13.75, "y": 4}, {"label": "K40E", "matrix": [4, 14], "x": 15.25, "y": 4}, {"label": "K410", "matrix": [4, 16], "x": 16.25, "y": 4}, {"label": "K411", "matrix": [4, 17], "x": 17.25, "y": 4} ] }, - "LAYOUT_2u_7u": { + "LAYOUT_65_xt_ansi_blocker_tsangan": { "layout": [ {"label": "K000", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "K001", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K002", "matrix": [0, 2], "x": 2.25, "y": 0}, {"label": "K003", "matrix": [0, 3], "x": 3.25, "y": 0}, {"label": "K004", "matrix": [0, 4], "x": 4.25, "y": 0}, @@ -209,8 +144,10 @@ {"label": "K00E", "matrix": [0, 14], "x": 14.25, "y": 0}, {"label": "K010", "matrix": [0, 16], "x": 15.25, "y": 0, "w": 2}, {"label": "K011", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "K100", "matrix": [1, 0], "x": 0, "y": 1}, {"label": "K101", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "K102", "matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5}, {"label": "K103", "matrix": [1, 3], "x": 3.75, "y": 1}, {"label": "K104", "matrix": [1, 4], "x": 4.75, "y": 1}, @@ -226,8 +163,10 @@ {"label": "K10E", "matrix": [1, 14], "x": 14.75, "y": 1}, {"label": "K110", "matrix": [1, 16], "x": 15.75, "y": 1, "w": 1.5}, {"label": "K111", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "K200", "matrix": [2, 0], "x": 0, "y": 2}, {"label": "K201", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "K202", "matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.75}, {"label": "K203", "matrix": [2, 3], "x": 4, "y": 2}, {"label": "K204", "matrix": [2, 4], "x": 5, "y": 2}, @@ -242,8 +181,10 @@ {"label": "K20D", "matrix": [2, 13], "x": 14, "y": 2}, {"label": "K20F", "matrix": [2, 15], "x": 15, "y": 2, "w": 2.25}, {"label": "K211", "matrix": [2, 17], "x": 17.25, "y": 2}, + {"label": "K300", "matrix": [3, 0], "x": 0, "y": 3}, {"label": "K301", "matrix": [3, 1], "x": 1, "y": 3}, + {"label": "K302", "matrix": [3, 2], "x": 2.25, "y": 3, "w": 2.25}, {"label": "K304", "matrix": [3, 4], "x": 4.5, "y": 3}, {"label": "K305", "matrix": [3, 5], "x": 5.5, "y": 3}, @@ -258,8 +199,10 @@ {"label": "K30E", "matrix": [3, 14], "x": 14.5, "y": 3, "w": 1.75}, {"label": "K310", "matrix": [3, 16], "x": 16.25, "y": 3}, {"label": "K311", "matrix": [3, 17], "x": 17.25, "y": 3}, + {"label": "K400", "matrix": [4, 0], "x": 0, "y": 4}, {"label": "K401", "matrix": [4, 1], "x": 1, "y": 4}, + {"label": "K402", "matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, {"label": "K403", "matrix": [4, 3], "x": 3.75, "y": 4}, {"label": "K404", "matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.5}, @@ -270,11 +213,11 @@ {"label": "K411", "matrix": [4, 17], "x": 17.25, "y": 4} ] }, - - "LAYOUT_split_6u": { + "LAYOUT_65_xt_ansi_blocker_split_bs": { "layout": [ {"label": "K000", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "K001", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K002", "matrix": [0, 2], "x": 2.25, "y": 0}, {"label": "K003", "matrix": [0, 3], "x": 3.25, "y": 0}, {"label": "K004", "matrix": [0, 4], "x": 4.25, "y": 0}, @@ -291,8 +234,10 @@ {"label": "K00F", "matrix": [0, 15], "x": 15.25, "y": 0}, {"label": "K010", "matrix": [0, 16], "x": 16.25, "y": 0}, {"label": "K011", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "K100", "matrix": [1, 0], "x": 0, "y": 1}, {"label": "K101", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "K102", "matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5}, {"label": "K103", "matrix": [1, 3], "x": 3.75, "y": 1}, {"label": "K104", "matrix": [1, 4], "x": 4.75, "y": 1}, @@ -308,8 +253,10 @@ {"label": "K10E", "matrix": [1, 14], "x": 14.75, "y": 1}, {"label": "K110", "matrix": [1, 16], "x": 15.75, "y": 1, "w": 1.5}, {"label": "K111", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "K200", "matrix": [2, 0], "x": 0, "y": 2}, {"label": "K201", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "K202", "matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.75}, {"label": "K203", "matrix": [2, 3], "x": 4, "y": 2}, {"label": "K204", "matrix": [2, 4], "x": 5, "y": 2}, @@ -324,8 +271,10 @@ {"label": "K20D", "matrix": [2, 13], "x": 14, "y": 2}, {"label": "K20F", "matrix": [2, 15], "x": 15, "y": 2, "w": 2.25}, {"label": "K211", "matrix": [2, 17], "x": 17.25, "y": 2}, + {"label": "K300", "matrix": [3, 0], "x": 0, "y": 3}, {"label": "K301", "matrix": [3, 1], "x": 1, "y": 3}, + {"label": "K302", "matrix": [3, 2], "x": 2.25, "y": 3, "w": 2.25}, {"label": "K304", "matrix": [3, 4], "x": 4.5, "y": 3}, {"label": "K305", "matrix": [3, 5], "x": 5.5, "y": 3}, @@ -340,23 +289,26 @@ {"label": "K30E", "matrix": [3, 14], "x": 14.5, "y": 3, "w": 1.75}, {"label": "K310", "matrix": [3, 16], "x": 16.25, "y": 3}, {"label": "K311", "matrix": [3, 17], "x": 17.25, "y": 3}, + {"label": "K400", "matrix": [4, 0], "x": 0, "y": 4}, {"label": "K401", "matrix": [4, 1], "x": 1, "y": 4}, - {"label": "K402", "matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.25}, - {"label": "K403", "matrix": [4, 3], "x": 3.5, "y": 4, "w": 1.25}, - {"label": "K404", "matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.25}, - {"label": "K408", "matrix": [4, 8], "x": 6, "y": 4, "w": 6.25}, - {"label": "K40C", "matrix": [4, 12], "x": 12.25, "y": 4}, - {"label": "K40D", "matrix": [4, 13], "x": 13.25, "y": 4, "w": 1.5}, + + {"label": "K402", "matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, + {"label": "K403", "matrix": [4, 3], "x": 3.75, "y": 4}, + {"label": "K404", "matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.5}, + {"label": "K408", "matrix": [4, 8], "x": 6.25, "y": 4, "w": 6}, + {"label": "K40C", "matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.5}, + {"label": "K40D", "matrix": [4, 13], "x": 13.75, "y": 4}, {"label": "K40E", "matrix": [4, 14], "x": 15.25, "y": 4}, {"label": "K410", "matrix": [4, 16], "x": 16.25, "y": 4}, {"label": "K411", "matrix": [4, 17], "x": 17.25, "y": 4} ] }, - "LAYOUT_split_7u": { + "LAYOUT_65_xt_ansi_blocker_tsangan_split_bs": { "layout": [ {"label": "K000", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "K001", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K002", "matrix": [0, 2], "x": 2.25, "y": 0}, {"label": "K003", "matrix": [0, 3], "x": 3.25, "y": 0}, {"label": "K004", "matrix": [0, 4], "x": 4.25, "y": 0}, @@ -373,8 +325,10 @@ {"label": "K00F", "matrix": [0, 15], "x": 15.25, "y": 0}, {"label": "K010", "matrix": [0, 16], "x": 16.25, "y": 0}, {"label": "K011", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "K100", "matrix": [1, 0], "x": 0, "y": 1}, {"label": "K101", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "K102", "matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5}, {"label": "K103", "matrix": [1, 3], "x": 3.75, "y": 1}, {"label": "K104", "matrix": [1, 4], "x": 4.75, "y": 1}, @@ -390,8 +344,10 @@ {"label": "K10E", "matrix": [1, 14], "x": 14.75, "y": 1}, {"label": "K110", "matrix": [1, 16], "x": 15.75, "y": 1, "w": 1.5}, {"label": "K111", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "K200", "matrix": [2, 0], "x": 0, "y": 2}, {"label": "K201", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "K202", "matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.75}, {"label": "K203", "matrix": [2, 3], "x": 4, "y": 2}, {"label": "K204", "matrix": [2, 4], "x": 5, "y": 2}, @@ -406,8 +362,10 @@ {"label": "K20D", "matrix": [2, 13], "x": 14, "y": 2}, {"label": "K20F", "matrix": [2, 15], "x": 15, "y": 2, "w": 2.25}, {"label": "K211", "matrix": [2, 17], "x": 17.25, "y": 2}, + {"label": "K300", "matrix": [3, 0], "x": 0, "y": 3}, {"label": "K301", "matrix": [3, 1], "x": 1, "y": 3}, + {"label": "K302", "matrix": [3, 2], "x": 2.25, "y": 3, "w": 2.25}, {"label": "K304", "matrix": [3, 4], "x": 4.5, "y": 3}, {"label": "K305", "matrix": [3, 5], "x": 5.5, "y": 3}, @@ -422,8 +380,10 @@ {"label": "K30E", "matrix": [3, 14], "x": 14.5, "y": 3, "w": 1.75}, {"label": "K310", "matrix": [3, 16], "x": 16.25, "y": 3}, {"label": "K311", "matrix": [3, 17], "x": 17.25, "y": 3}, + {"label": "K400", "matrix": [4, 0], "x": 0, "y": 4}, {"label": "K401", "matrix": [4, 1], "x": 1, "y": 4}, + {"label": "K402", "matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, {"label": "K403", "matrix": [4, 3], "x": 3.75, "y": 4}, {"label": "K404", "matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.5}, diff --git a/keyboards/viktus/styrka_topre/keymaps/default/keymap.c b/keyboards/viktus/styrka_topre/keymaps/default/keymap.c index 5c3f8fa031..38a4530905 100644 --- a/keyboards/viktus/styrka_topre/keymaps/default/keymap.c +++ b/keyboards/viktus/styrka_topre/keymaps/default/keymap.c @@ -17,11 +17,11 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_2u_7u( - KC_F1, KC_F2, KC_ESC, 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_BSPC, KC_DEL, - KC_F3, KC_F4, 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_PGUP, - KC_F5, KC_F6, 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_ENT, KC_PGDN, - KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + [0] = LAYOUT_65_xt_ansi_blocker_tsangan( + KC_F1, KC_F2, KC_ESC, 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_BSPC, KC_DEL, + KC_F3, KC_F4, 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_PGUP, + KC_F5, KC_F6, 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_ENT, KC_PGDN, + KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) }; diff --git a/keyboards/viktus/styrka_topre/keymaps/via/keymap.c b/keyboards/viktus/styrka_topre/keymaps/via/keymap.c index 5c3f8fa031..38a4530905 100644 --- a/keyboards/viktus/styrka_topre/keymaps/via/keymap.c +++ b/keyboards/viktus/styrka_topre/keymaps/via/keymap.c @@ -17,11 +17,11 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_2u_7u( - KC_F1, KC_F2, KC_ESC, 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_BSPC, KC_DEL, - KC_F3, KC_F4, 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_PGUP, - KC_F5, KC_F6, 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_ENT, KC_PGDN, - KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + [0] = LAYOUT_65_xt_ansi_blocker_tsangan( + KC_F1, KC_F2, KC_ESC, 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_BSPC, KC_DEL, + KC_F3, KC_F4, 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_PGUP, + KC_F5, KC_F6, 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_ENT, KC_PGDN, + KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) }; diff --git a/keyboards/viktus/styrka_topre/matrix_diagram.md b/keyboards/viktus/styrka_topre/matrix_diagram.md new file mode 100644 index 0000000000..6289d2387a --- /dev/null +++ b/keyboards/viktus/styrka_topre/matrix_diagram.md @@ -0,0 +1,21 @@ +# Matrix Diagram for Viktus Design LLC Styrka - Topre + +``` + ┌───────┐ + 2u Backspace │0G │ + └───────┘ +┌───┬───┐┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 ││02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │0F │0G │0H │ +├───┼───┤├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ +│10 │11 ││12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │1G │1H │ +├───┼───┤├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ +│20 │21 ││22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │2F │2H │ +├───┼───┤├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ +│30 │31 ││32 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │3G │3H │ +├───┼───┤├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴┬─┬───┼───┼───┤ +│40 │41 ││42 │43 │44 │48 │4C │4D │ │4E │4G │4H │ +└───┴───┘└─────┴───┴─────┴───────────────────────┴─────┴───┘ └───┴───┴───┘ + ┌─────┬───┬─────┬───────────────────────────┬─────┐ + │42 │43 │44 │48 │4D │ Blocker Tsangan + └─────┴───┴─────┴───────────────────────────┴─────┘ +``` From 25df4ba6bdcbfe76d74682d5e2a3ea3400fd7496 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sun, 17 Sep 2023 20:50:14 -0700 Subject: [PATCH 085/496] Wolf Neely65 Touch-Up (#22045) * Add layout/matrix diagram [docs] * Friendly-format `info.json` [style] * Touch-up keymaps - grid-align keycodes - use QMK-native keycode aliases [refactor] * Fix keymaps Fix keycodes being assigned out of order with respect to `info.json`. - move XT function keys to left side - move keycodes for position [2, 14] from Home Row to Number Row [bugfix] * Rename `LAYOUT` to `LAYOUT_65_xt_ansi_blocker_tsangan_wkl_split_bs` [refactor] * Add `LAYOUT_65_xt_ansi_blocker_tsangan_wkl` [enhancement] --- keyboards/wolf/neely65/info.json | 256 ++++++++++++------ .../wolf/neely65/keymaps/default/keymap.c | 26 +- keyboards/wolf/neely65/keymaps/via/keymap.c | 26 +- keyboards/wolf/neely65/matrix_diagram.md | 18 ++ 4 files changed, 222 insertions(+), 104 deletions(-) create mode 100644 keyboards/wolf/neely65/matrix_diagram.md diff --git a/keyboards/wolf/neely65/info.json b/keyboards/wolf/neely65/info.json index 5535036f37..9a90105b96 100644 --- a/keyboards/wolf/neely65/info.json +++ b/keyboards/wolf/neely65/info.json @@ -23,86 +23,186 @@ "pid": "0x0071", "vid": "0x5453" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_65_xt_ansi_blocker_tsangan_wkl_split_bs" + }, "layouts": { - "LAYOUT": { + "LAYOUT_65_xt_ansi_blocker_tsangan_wkl": { "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 1], "x": 1, "y": 0 }, - { "matrix": [0, 2], "x": 2.5, "y": 0 }, - { "matrix": [0, 3], "x": 3.5, "y": 0 }, - { "matrix": [0, 4], "x": 4.5, "y": 0 }, - { "matrix": [0, 5], "x": 5.5, "y": 0 }, - { "matrix": [0, 6], "x": 6.5, "y": 0 }, - { "matrix": [0, 7], "x": 7.5, "y": 0 }, - { "matrix": [0, 8], "x": 8.5, "y": 0 }, - { "matrix": [0, 9], "x": 9.5, "y": 0 }, - { "matrix": [0, 10], "x": 10.5, "y": 0 }, - { "matrix": [0, 11], "x": 11.5, "y": 0 }, - { "matrix": [0, 12], "x": 12.5, "y": 0 }, - { "matrix": [0, 13], "x": 13.5, "y": 0 }, - { "matrix": [0, 14], "x": 14.5, "y": 0 }, - { "matrix": [0, 15], "x": 15.5, "y": 0 }, - { "matrix": [2, 14], "x": 16.5, "y": 0 }, - { "matrix": [0, 16], "x": 17.5, "y": 0 }, - { "matrix": [1, 0], "x": 0, "y": 1 }, - { "matrix": [1, 1], "x": 1, "y": 1 }, - { "matrix": [1, 2], "w": 1.5, "x": 2.5, "y": 1 }, - { "matrix": [1, 3], "x": 4, "y": 1 }, - { "matrix": [1, 4], "x": 5, "y": 1 }, - { "matrix": [1, 5], "x": 6, "y": 1 }, - { "matrix": [1, 6], "x": 7, "y": 1 }, - { "matrix": [1, 7], "x": 8, "y": 1 }, - { "matrix": [1, 8], "x": 9, "y": 1 }, - { "matrix": [1, 9], "x": 10, "y": 1 }, - { "matrix": [1, 10], "x": 11, "y": 1 }, - { "matrix": [1, 11], "x": 12, "y": 1 }, - { "matrix": [1, 12], "x": 13, "y": 1 }, - { "matrix": [1, 13], "x": 14, "y": 1 }, - { "matrix": [1, 14], "x": 15, "y": 1 }, - { "matrix": [1, 15], "w": 1.5, "x": 16, "y": 1 }, - { "matrix": [1, 16], "x": 17.5, "y": 1 }, - { "matrix": [2, 0], "x": 0, "y": 2 }, - { "matrix": [2, 1], "x": 1, "y": 2 }, - { "matrix": [2, 2], "w": 1.75, "x": 2.5, "y": 2 }, - { "matrix": [2, 3], "x": 4.25, "y": 2 }, - { "matrix": [2, 4], "x": 5.25, "y": 2 }, - { "matrix": [2, 5], "x": 6.25, "y": 2 }, - { "matrix": [2, 6], "x": 7.25, "y": 2 }, - { "matrix": [2, 7], "x": 8.25, "y": 2 }, - { "matrix": [2, 8], "x": 9.25, "y": 2 }, - { "matrix": [2, 9], "x": 10.25, "y": 2 }, - { "matrix": [2, 10], "x": 11.25, "y": 2 }, - { "matrix": [2, 11], "x": 12.25, "y": 2 }, - { "matrix": [2, 12], "x": 13.25, "y": 2 }, - { "matrix": [2, 13], "x": 14.25, "y": 2 }, - { "matrix": [2, 15], "w": 2.25, "x": 15.25, "y": 2 }, - { "matrix": [2, 16], "x": 17.5, "y": 2 }, - { "matrix": [3, 0], "x": 0, "y": 3 }, - { "matrix": [3, 1], "x": 1, "y": 3 }, - { "matrix": [3, 2], "w": 2.25, "x": 2.5, "y": 3 }, - { "matrix": [3, 3], "x": 4.75, "y": 3 }, - { "matrix": [3, 4], "x": 5.75, "y": 3 }, - { "matrix": [3, 5], "x": 6.75, "y": 3 }, - { "matrix": [3, 6], "x": 7.75, "y": 3 }, - { "matrix": [3, 7], "x": 8.75, "y": 3 }, - { "matrix": [3, 8], "x": 9.75, "y": 3 }, - { "matrix": [3, 9], "x": 10.75, "y": 3 }, - { "matrix": [3, 10], "x": 11.75, "y": 3 }, - { "matrix": [3, 11], "x": 12.75, "y": 3 }, - { "matrix": [3, 12], "x": 13.75, "y": 3 }, - { "matrix": [3, 14], "w": 1.75, "x": 14.75, "y": 3 }, - { "matrix": [3, 15], "x": 16.5, "y": 3 }, - { "matrix": [3, 16], "x": 17.5, "y": 3 }, - { "matrix": [4, 0], "x": 0, "y": 4 }, - { "matrix": [4, 1], "x": 1, "y": 4 }, - { "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, - { "matrix": [4, 4], "w": 1.5, "x": 4.75, "y": 4 }, - { "matrix": [4, 7], "w": 7, "x": 6.25, "y": 4 }, - { "matrix": [4, 12], "w": 1.5, "x": 13.25, "y": 4 }, - { "matrix": [4, 14], "x": 15.5, "y": 4 }, - { "matrix": [4, 15], "x": 16.5, "y": 4 }, - { "matrix": [4, 16], "x": 17.5, "y": 4 } + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0}, + {"matrix": [0, 14], "x": 14.5, "y": 0}, + {"matrix": [0, 15], "x": 15.5, "y": 0, "w": 2}, + {"matrix": [0, 16], "x": 17.5, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + + {"matrix": [1, 2], "x": 2.5, "y": 1, "w": 1.5}, + {"matrix": [1, 3], "x": 4, "y": 1}, + {"matrix": [1, 4], "x": 5, "y": 1}, + {"matrix": [1, 5], "x": 6, "y": 1}, + {"matrix": [1, 6], "x": 7, "y": 1}, + {"matrix": [1, 7], "x": 8, "y": 1}, + {"matrix": [1, 8], "x": 9, "y": 1}, + {"matrix": [1, 9], "x": 10, "y": 1}, + {"matrix": [1, 10], "x": 11, "y": 1}, + {"matrix": [1, 11], "x": 12, "y": 1}, + {"matrix": [1, 12], "x": 13, "y": 1}, + {"matrix": [1, 13], "x": 14, "y": 1}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [1, 15], "x": 16, "y": 1, "w": 1.5}, + {"matrix": [1, 16], "x": 17.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + + {"matrix": [2, 2], "x": 2.5, "y": 2, "w": 1.75}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [2, 7], "x": 8.25, "y": 2}, + {"matrix": [2, 8], "x": 9.25, "y": 2}, + {"matrix": [2, 9], "x": 10.25, "y": 2}, + {"matrix": [2, 10], "x": 11.25, "y": 2}, + {"matrix": [2, 11], "x": 12.25, "y": 2}, + {"matrix": [2, 12], "x": 13.25, "y": 2}, + {"matrix": [2, 13], "x": 14.25, "y": 2}, + {"matrix": [2, 15], "x": 15.25, "y": 2, "w": 2.25}, + {"matrix": [2, 16], "x": 17.5, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + + {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 2.25}, + {"matrix": [3, 3], "x": 4.75, "y": 3}, + {"matrix": [3, 4], "x": 5.75, "y": 3}, + {"matrix": [3, 5], "x": 6.75, "y": 3}, + {"matrix": [3, 6], "x": 7.75, "y": 3}, + {"matrix": [3, 7], "x": 8.75, "y": 3}, + {"matrix": [3, 8], "x": 9.75, "y": 3}, + {"matrix": [3, 9], "x": 10.75, "y": 3}, + {"matrix": [3, 10], "x": 11.75, "y": 3}, + {"matrix": [3, 11], "x": 12.75, "y": 3}, + {"matrix": [3, 12], "x": 13.75, "y": 3}, + {"matrix": [3, 14], "x": 14.75, "y": 3, "w": 1.75}, + {"matrix": [3, 15], "x": 16.5, "y": 3}, + {"matrix": [3, 16], "x": 17.5, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 6.25, "y": 4, "w": 7}, + {"matrix": [4, 12], "x": 13.25, "y": 4, "w": 1.5}, + {"matrix": [4, 14], "x": 15.5, "y": 4}, + {"matrix": [4, 15], "x": 16.5, "y": 4}, + {"matrix": [4, 16], "x": 17.5, "y": 4} + ] + }, + "LAYOUT_65_xt_ansi_blocker_tsangan_wkl_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0}, + {"matrix": [0, 14], "x": 14.5, "y": 0}, + {"matrix": [0, 15], "x": 15.5, "y": 0}, + {"matrix": [2, 14], "x": 16.5, "y": 0}, + {"matrix": [0, 16], "x": 17.5, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + + {"matrix": [1, 2], "x": 2.5, "y": 1, "w": 1.5}, + {"matrix": [1, 3], "x": 4, "y": 1}, + {"matrix": [1, 4], "x": 5, "y": 1}, + {"matrix": [1, 5], "x": 6, "y": 1}, + {"matrix": [1, 6], "x": 7, "y": 1}, + {"matrix": [1, 7], "x": 8, "y": 1}, + {"matrix": [1, 8], "x": 9, "y": 1}, + {"matrix": [1, 9], "x": 10, "y": 1}, + {"matrix": [1, 10], "x": 11, "y": 1}, + {"matrix": [1, 11], "x": 12, "y": 1}, + {"matrix": [1, 12], "x": 13, "y": 1}, + {"matrix": [1, 13], "x": 14, "y": 1}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [1, 15], "x": 16, "y": 1, "w": 1.5}, + {"matrix": [1, 16], "x": 17.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + + {"matrix": [2, 2], "x": 2.5, "y": 2, "w": 1.75}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [2, 7], "x": 8.25, "y": 2}, + {"matrix": [2, 8], "x": 9.25, "y": 2}, + {"matrix": [2, 9], "x": 10.25, "y": 2}, + {"matrix": [2, 10], "x": 11.25, "y": 2}, + {"matrix": [2, 11], "x": 12.25, "y": 2}, + {"matrix": [2, 12], "x": 13.25, "y": 2}, + {"matrix": [2, 13], "x": 14.25, "y": 2}, + {"matrix": [2, 15], "x": 15.25, "y": 2, "w": 2.25}, + {"matrix": [2, 16], "x": 17.5, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + + {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 2.25}, + {"matrix": [3, 3], "x": 4.75, "y": 3}, + {"matrix": [3, 4], "x": 5.75, "y": 3}, + {"matrix": [3, 5], "x": 6.75, "y": 3}, + {"matrix": [3, 6], "x": 7.75, "y": 3}, + {"matrix": [3, 7], "x": 8.75, "y": 3}, + {"matrix": [3, 8], "x": 9.75, "y": 3}, + {"matrix": [3, 9], "x": 10.75, "y": 3}, + {"matrix": [3, 10], "x": 11.75, "y": 3}, + {"matrix": [3, 11], "x": 12.75, "y": 3}, + {"matrix": [3, 12], "x": 13.75, "y": 3}, + {"matrix": [3, 14], "x": 14.75, "y": 3, "w": 1.75}, + {"matrix": [3, 15], "x": 16.5, "y": 3}, + {"matrix": [3, 16], "x": 17.5, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 6.25, "y": 4, "w": 7}, + {"matrix": [4, 12], "x": 13.25, "y": 4, "w": 1.5}, + {"matrix": [4, 14], "x": 15.5, "y": 4}, + {"matrix": [4, 15], "x": 16.5, "y": 4}, + {"matrix": [4, 16], "x": 17.5, "y": 4} ] } } -} \ No newline at end of file +} diff --git a/keyboards/wolf/neely65/keymaps/default/keymap.c b/keyboards/wolf/neely65/keymaps/default/keymap.c index 3e1350a75e..ea14c0b4c0 100644 --- a/keyboards/wolf/neely65/keymaps/default/keymap.c +++ b/keyboards/wolf/neely65/keymaps/default/keymap.c @@ -5,19 +5,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - QK_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_BSPC, KC_HOME, KC_F1, KC_F2, - 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_PGUP, KC_F3, KC_F4, - 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_DEL, KC_ENT, KC_PGDN, KC_F5, KC_F6, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_END, KC_F7, KC_F8, - KC_LCTL, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_APP, KC_F9, KC_F10 + [0] = LAYOUT_65_xt_ansi_blocker_tsangan_wkl_split_bs( + KC_F1, KC_F2, QK_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_BSPC, KC_DEL, KC_HOME, + KC_F3, KC_F4, 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_PGUP, + KC_F5, KC_F6, 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_ENT, KC_PGDN, + KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_END, + KC_F9, KC_F10, KC_LCTL, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_APP ), - [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_DEL, KC_AUDIO_VOL_UP, 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_AUDIO_VOL_DOWN, 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_MEDIA_PREV_TRACK, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_NEXT_TRACK, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_MUTE, KC_TRNS, KC_TRNS + [1] = LAYOUT_65_xt_ansi_blocker_tsangan_wkl_split_bs( + KC_TRNS, KC_TRNS, 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_DEL, KC_TRNS, KC_VOLU, + 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_VOLD, + 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_MPRV, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE ) -}; \ No newline at end of file +}; diff --git a/keyboards/wolf/neely65/keymaps/via/keymap.c b/keyboards/wolf/neely65/keymaps/via/keymap.c index 3e1350a75e..ea14c0b4c0 100644 --- a/keyboards/wolf/neely65/keymaps/via/keymap.c +++ b/keyboards/wolf/neely65/keymaps/via/keymap.c @@ -5,19 +5,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - QK_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_BSPC, KC_HOME, KC_F1, KC_F2, - 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_PGUP, KC_F3, KC_F4, - 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_DEL, KC_ENT, KC_PGDN, KC_F5, KC_F6, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_END, KC_F7, KC_F8, - KC_LCTL, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_APP, KC_F9, KC_F10 + [0] = LAYOUT_65_xt_ansi_blocker_tsangan_wkl_split_bs( + KC_F1, KC_F2, QK_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_BSPC, KC_DEL, KC_HOME, + KC_F3, KC_F4, 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_PGUP, + KC_F5, KC_F6, 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_ENT, KC_PGDN, + KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_END, + KC_F9, KC_F10, KC_LCTL, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_APP ), - [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_DEL, KC_AUDIO_VOL_UP, 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_AUDIO_VOL_DOWN, 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_MEDIA_PREV_TRACK, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_NEXT_TRACK, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_MUTE, KC_TRNS, KC_TRNS + [1] = LAYOUT_65_xt_ansi_blocker_tsangan_wkl_split_bs( + KC_TRNS, KC_TRNS, 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_DEL, KC_TRNS, KC_VOLU, + 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_VOLD, + 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_MPRV, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE ) -}; \ No newline at end of file +}; diff --git a/keyboards/wolf/neely65/matrix_diagram.md b/keyboards/wolf/neely65/matrix_diagram.md new file mode 100644 index 0000000000..111cb05a08 --- /dev/null +++ b/keyboards/wolf/neely65/matrix_diagram.md @@ -0,0 +1,18 @@ +# Matrix Diagram for Neely Neely65 + +``` + ┌───────┐ + 2u Backspace │0F │ + └───────┘ +┌───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │ │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │0F │2E │0G │ +├───┼───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ +│10 │11 │ │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │1F │1G │ +├───┼───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ +│20 │21 │ │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │2F │2G │ +├───┼───┤ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ +│30 │31 │ │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3E │3F │3G │ +├───┼───┤ ├─────┬──┼───┴─┬─┴───┴───┴───┴───┴───┴───┴─┬─┴───┼──┬───┼───┼───┤ +│40 │41 │ │42 │ │44 │47 │4C │ │4E │4F │4G │ +└───┴───┘ └─────┘ └─────┴───────────────────────────┴─────┘ └───┴───┴───┘ +``` From 6ba53f661a343ae2513985c60706bcbc70c25b99 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sun, 17 Sep 2023 21:26:13 -0700 Subject: [PATCH 086/496] Wolf Silhouette Community Layout Support (#22052) * Add layout/matrix diagram [docs] * Friendly-format `info.json` [style] * Touch-up layout data Move the ISO Hash key to the main key area. [chore] * Rename `LAYOUT` to `LAYOUT_all` [refactor] * Add `LAYOUT_tkl_nofrow_ansi_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_nofrow_ansi` [enhancement] * Add `LAYOUT_tkl_nofrow_ansi_tsangan_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_nofrow_ansi_tsangan` [enhancement] * Add `LAYOUT_tkl_nofrow_ansi_wkl_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_nofrow_ansi_wkl` [enhancement] * Add `LAYOUT_tkl_nofrow_iso_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_nofrow_iso` [enhancement] * Add `LAYOUT_tkl_nofrow_iso_tsangan_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_nofrow_iso_tsangan` [enhancement] * Add `LAYOUT_tkl_nofrow_iso_wkl_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_nofrow_iso_wkl` [enhancement] * Enable Community Layout support [enhancement] --- keyboards/wolf/silhouette/info.json | 1167 +++++++++++++++-- .../wolf/silhouette/keymaps/default/keymap.c | 4 +- .../wolf/silhouette/keymaps/via/keymap.c | 4 +- keyboards/wolf/silhouette/matrix_diagram.md | 21 + 4 files changed, 1115 insertions(+), 81 deletions(-) create mode 100644 keyboards/wolf/silhouette/matrix_diagram.md diff --git a/keyboards/wolf/silhouette/info.json b/keyboards/wolf/silhouette/info.json index fa52666b2a..548a89aa19 100644 --- a/keyboards/wolf/silhouette/info.json +++ b/keyboards/wolf/silhouette/info.json @@ -26,85 +26,1098 @@ "pid": "0x0080", "vid": "0x5453" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, + "community_layouts": [ + "tkl_nofrow_ansi", + "tkl_nofrow_iso" + ], "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 1], "x": 1, "y": 0 }, - { "matrix": [0, 2], "x": 2, "y": 0 }, - { "matrix": [0, 3], "x": 3, "y": 0 }, - { "matrix": [0, 4], "x": 4, "y": 0 }, - { "matrix": [0, 5], "x": 5, "y": 0 }, - { "matrix": [0, 6], "x": 6, "y": 0 }, - { "matrix": [0, 7], "x": 7, "y": 0 }, - { "matrix": [0, 8], "x": 8, "y": 0 }, - { "matrix": [0, 9], "x": 9, "y": 0 }, - { "matrix": [0, 10], "x": 10, "y": 0 }, - { "matrix": [0, 11], "x": 11, "y": 0 }, - { "matrix": [0, 12], "x": 12, "y": 0 }, - { "matrix": [0, 13], "x": 13, "y": 0 }, - { "matrix": [2, 14], "x": 14, "y": 0 }, - { "matrix": [0, 14], "x": 15.25, "y": 0 }, - { "matrix": [0, 15], "x": 16.25, "y": 0 }, - { "matrix": [0, 16], "x": 17.25, "y": 0 }, - { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, - { "matrix": [1, 1], "x": 1.5, "y": 1 }, - { "matrix": [1, 2], "x": 2.5, "y": 1 }, - { "matrix": [1, 3], "x": 3.5, "y": 1 }, - { "matrix": [1, 4], "x": 4.5, "y": 1 }, - { "matrix": [1, 5], "x": 5.5, "y": 1 }, - { "matrix": [1, 6], "x": 6.5, "y": 1 }, - { "matrix": [1, 7], "x": 7.5, "y": 1 }, - { "matrix": [1, 8], "x": 8.5, "y": 1 }, - { "matrix": [1, 9], "x": 9.5, "y": 1 }, - { "matrix": [1, 10], "x": 10.5, "y": 1 }, - { "matrix": [1, 11], "x": 11.5, "y": 1 }, - { "matrix": [1, 12], "x": 12.5, "y": 1 }, - { "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, - { "matrix": [1, 14], "x": 15.25, "y": 1 }, - { "matrix": [1, 15], "x": 16.25, "y": 1 }, - { "matrix": [1, 16], "x": 17.25, "y": 1 }, - { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, - { "matrix": [2, 1], "x": 1.75, "y": 2 }, - { "matrix": [2, 2], "x": 2.75, "y": 2 }, - { "matrix": [2, 3], "x": 3.75, "y": 2 }, - { "matrix": [2, 4], "x": 4.75, "y": 2 }, - { "matrix": [2, 5], "x": 5.75, "y": 2 }, - { "matrix": [2, 6], "x": 6.75, "y": 2 }, - { "matrix": [2, 7], "x": 7.75, "y": 2 }, - { "matrix": [2, 8], "x": 8.75, "y": 2 }, - { "matrix": [2, 9], "x": 9.75, "y": 2 }, - { "matrix": [2, 10], "x": 10.75, "y": 2 }, - { "matrix": [2, 11], "x": 11.75, "y": 2 }, - { "matrix": [2, 12], "x": 19.5, "y": 2 }, - { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, - { "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, - { "matrix": [3, 1], "x": 1.25, "y": 3 }, - { "matrix": [3, 2], "x": 2.25, "y": 3 }, - { "matrix": [3, 3], "x": 3.25, "y": 3 }, - { "matrix": [3, 4], "x": 4.25, "y": 3 }, - { "matrix": [3, 5], "x": 5.25, "y": 3 }, - { "matrix": [3, 6], "x": 6.25, "y": 3 }, - { "matrix": [3, 7], "x": 7.25, "y": 3 }, - { "matrix": [3, 8], "x": 8.25, "y": 3 }, - { "matrix": [3, 9], "x": 9.25, "y": 3 }, - { "matrix": [3, 10], "x": 10.25, "y": 3 }, - { "matrix": [3, 11], "x": 11.25, "y": 3 }, - { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, - { "matrix": [3, 13], "x": 14, "y": 3 }, - { "matrix": [3, 15], "x": 16.25, "y": 3 }, - { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, - { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, - { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, - { "matrix": [4, 7], "w": 6.25, "x": 3.75, "y": 4 }, - { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, - { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, - { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, - { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 }, - { "matrix": [4, 14], "x": 15.25, "y": 4 }, - { "matrix": [4, 15], "x": 16.25, "y": 4 }, - { "matrix": [4, 16], "x": 17.25, "y": 4 } + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 14], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [1, 14], "x": 15.25, "y": 1}, + {"matrix": [1, 15], "x": 16.25, "y": 1}, + {"matrix": [1, 16], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [3, 15], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}, + + {"matrix": [4, 14], "x": 15.25, "y": 4}, + {"matrix": [4, 15], "x": 16.25, "y": 4}, + {"matrix": [4, 16], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [1, 14], "x": 15.25, "y": 1}, + {"matrix": [1, 15], "x": 16.25, "y": 1}, + {"matrix": [1, 16], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [3, 15], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}, + + {"matrix": [4, 14], "x": 15.25, "y": 4}, + {"matrix": [4, 15], "x": 16.25, "y": 4}, + {"matrix": [4, 16], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 14], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [1, 14], "x": 15.25, "y": 1}, + {"matrix": [1, 15], "x": 16.25, "y": 1}, + {"matrix": [1, 16], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [3, 15], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}, + + {"matrix": [4, 14], "x": 15.25, "y": 4}, + {"matrix": [4, 15], "x": 16.25, "y": 4}, + {"matrix": [4, 16], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [1, 14], "x": 15.25, "y": 1}, + {"matrix": [1, 15], "x": 16.25, "y": 1}, + {"matrix": [1, 16], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [3, 15], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}, + + {"matrix": [4, 14], "x": 15.25, "y": 4}, + {"matrix": [4, 15], "x": 16.25, "y": 4}, + {"matrix": [4, 16], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 14], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [1, 14], "x": 15.25, "y": 1}, + {"matrix": [1, 15], "x": 16.25, "y": 1}, + {"matrix": [1, 16], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [3, 15], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}, + + {"matrix": [4, 14], "x": 15.25, "y": 4}, + {"matrix": [4, 15], "x": 16.25, "y": 4}, + {"matrix": [4, 16], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [1, 14], "x": 15.25, "y": 1}, + {"matrix": [1, 15], "x": 16.25, "y": 1}, + {"matrix": [1, 16], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [3, 15], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}, + + {"matrix": [4, 14], "x": 15.25, "y": 4}, + {"matrix": [4, 15], "x": 16.25, "y": 4}, + {"matrix": [4, 16], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 14], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [1, 14], "x": 15.25, "y": 1}, + {"matrix": [1, 15], "x": 16.25, "y": 1}, + {"matrix": [1, 16], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [3, 15], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}, + + {"matrix": [4, 14], "x": 15.25, "y": 4}, + {"matrix": [4, 15], "x": 16.25, "y": 4}, + {"matrix": [4, 16], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [1, 14], "x": 15.25, "y": 1}, + {"matrix": [1, 15], "x": 16.25, "y": 1}, + {"matrix": [1, 16], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [3, 15], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}, + + {"matrix": [4, 14], "x": 15.25, "y": 4}, + {"matrix": [4, 15], "x": 16.25, "y": 4}, + {"matrix": [4, 16], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 14], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [1, 14], "x": 15.25, "y": 1}, + {"matrix": [1, 15], "x": 16.25, "y": 1}, + {"matrix": [1, 16], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [3, 15], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}, + + {"matrix": [4, 14], "x": 15.25, "y": 4}, + {"matrix": [4, 15], "x": 16.25, "y": 4}, + {"matrix": [4, 16], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [1, 14], "x": 15.25, "y": 1}, + {"matrix": [1, 15], "x": 16.25, "y": 1}, + {"matrix": [1, 16], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [3, 15], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}, + + {"matrix": [4, 14], "x": 15.25, "y": 4}, + {"matrix": [4, 15], "x": 16.25, "y": 4}, + {"matrix": [4, 16], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 14], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [1, 14], "x": 15.25, "y": 1}, + {"matrix": [1, 15], "x": 16.25, "y": 1}, + {"matrix": [1, 16], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [3, 15], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}, + + {"matrix": [4, 14], "x": 15.25, "y": 4}, + {"matrix": [4, 15], "x": 16.25, "y": 4}, + {"matrix": [4, 16], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [1, 14], "x": 15.25, "y": 1}, + {"matrix": [1, 15], "x": 16.25, "y": 1}, + {"matrix": [1, 16], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [3, 15], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}, + + {"matrix": [4, 14], "x": 15.25, "y": 4}, + {"matrix": [4, 15], "x": 16.25, "y": 4}, + {"matrix": [4, 16], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 14], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [1, 14], "x": 15.25, "y": 1}, + {"matrix": [1, 15], "x": 16.25, "y": 1}, + {"matrix": [1, 16], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [3, 15], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}, + + {"matrix": [4, 14], "x": 15.25, "y": 4}, + {"matrix": [4, 15], "x": 16.25, "y": 4}, + {"matrix": [4, 16], "x": 17.25, "y": 4} ] } } -} \ No newline at end of file +} diff --git a/keyboards/wolf/silhouette/keymaps/default/keymap.c b/keyboards/wolf/silhouette/keymaps/default/keymap.c index 9a5e5b24d7..b49f1ea8e4 100644 --- a/keyboards/wolf/silhouette/keymaps/default/keymap.c +++ b/keyboards/wolf/silhouette/keymaps/default/keymap.c @@ -5,7 +5,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_all( KC_ESC, 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_BSPC, KC_DEL, KC_INS, KC_HOME, 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_DEL, KC_END, 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, @@ -13,7 +13,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_all( 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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/wolf/silhouette/keymaps/via/keymap.c b/keyboards/wolf/silhouette/keymaps/via/keymap.c index 9a5e5b24d7..b49f1ea8e4 100644 --- a/keyboards/wolf/silhouette/keymaps/via/keymap.c +++ b/keyboards/wolf/silhouette/keymaps/via/keymap.c @@ -5,7 +5,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_all( KC_ESC, 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_BSPC, KC_DEL, KC_INS, KC_HOME, 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_DEL, KC_END, 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, @@ -13,7 +13,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_all( 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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/wolf/silhouette/matrix_diagram.md b/keyboards/wolf/silhouette/matrix_diagram.md new file mode 100644 index 0000000000..2128e99716 --- /dev/null +++ b/keyboards/wolf/silhouette/matrix_diagram.md @@ -0,0 +1,21 @@ +# Matrix Diagram for 4GT Silhouette + +``` +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ ┌───────┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2E ││0E │0F │0G │ │0D │ 2u Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ └─┬─────┤ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D ││1E │1F │1G │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ ┌──┴┐2D │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │2C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ │3F │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ +│40 │41 │42 │47 │4A │4B │4C │4D ││4E │4F │4G │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ +┌────────┐ ┌──────────┐ +│30 │ 2.25u LShift 2.75u RShift │3C │ +└────────┘ └──────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│40 │41 │42 │47 │4B │4C │4D │ Tsangan/WKL +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` From cd095c817e4b496ec8749f2536ced6ad8b085311 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sun, 17 Sep 2023 21:57:03 -0700 Subject: [PATCH 087/496] Wolf Ziggurat Layout Additions (#22053) * Add layout/matrix diagram [docs] * Friendly-format `info.json` [style] * Touch-up layout data Move the ISO Hash key to the main key area. [chore] * Rename `LAYOUT` to `LAYOUT_all` [refactor] * Add `LAYOUT_65_xt_ansi_blocker_tsangan_split_bs` [enhancement] * Add `LAYOUT_65_xt_ansi_blocker_tsangan` [enhancement] * Add `LAYOUT_65_xt_iso_blocker_tsangan_split_bs` [enhancement] * Add `LAYOUT_65_xt_iso_blocker_tsangan` [enhancement] --- keyboards/wolf/ziggurat/info.json | 539 +++++++++++++++--- .../wolf/ziggurat/keymaps/default/keymap.c | 4 +- keyboards/wolf/ziggurat/keymaps/via/keymap.c | 4 +- keyboards/wolf/ziggurat/matrix_diagram.md | 21 + 4 files changed, 483 insertions(+), 85 deletions(-) create mode 100644 keyboards/wolf/ziggurat/matrix_diagram.md diff --git a/keyboards/wolf/ziggurat/info.json b/keyboards/wolf/ziggurat/info.json index 2e8d39dacb..bb12d5ab2f 100644 --- a/keyboards/wolf/ziggurat/info.json +++ b/keyboards/wolf/ziggurat/info.json @@ -23,89 +23,466 @@ "pid": "0x0084", "vid": "0x5453" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [1, 0], "x": 1, "y": 0 }, - { "matrix": [0, 1], "x": 2.25, "y": 0 }, - { "matrix": [1, 1], "x": 3.25, "y": 0 }, - { "matrix": [0, 2], "x": 4.25, "y": 0 }, - { "matrix": [1, 2], "x": 5.25, "y": 0 }, - { "matrix": [0, 3], "x": 6.25, "y": 0 }, - { "matrix": [1, 3], "x": 7.25, "y": 0 }, - { "matrix": [0, 4], "x": 8.25, "y": 0 }, - { "matrix": [1, 4], "x": 9.25, "y": 0 }, - { "matrix": [0, 5], "x": 10.25, "y": 0 }, - { "matrix": [1, 5], "x": 11.25, "y": 0 }, - { "matrix": [0, 6], "x": 12.25, "y": 0 }, - { "matrix": [1, 6], "x": 13.25, "y": 0 }, - { "matrix": [7, 6], "x": 14.25, "y": 0 }, - { "matrix": [0, 7], "x": 15.25, "y": 0 }, - { "matrix": [1, 7], "x": 16.25, "y": 0 }, - { "matrix": [0, 8], "x": 17.25, "y": 0 }, - { "matrix": [2, 0], "x": 0, "y": 1 }, - { "matrix": [3, 0], "x": 1, "y": 1 }, - { "matrix": [2, 1], "w": 1.5, "x": 2.25, "y": 1 }, - { "matrix": [3, 1], "x": 3.75, "y": 1 }, - { "matrix": [2, 2], "x": 4.75, "y": 1 }, - { "matrix": [3, 2], "x": 5.75, "y": 1 }, - { "matrix": [2, 3], "x": 6.75, "y": 1 }, - { "matrix": [3, 3], "x": 7.75, "y": 1 }, - { "matrix": [2, 4], "x": 8.75, "y": 1 }, - { "matrix": [3, 4], "x": 9.75, "y": 1 }, - { "matrix": [2, 5], "x": 10.75, "y": 1 }, - { "matrix": [3, 5], "x": 11.75, "y": 1 }, - { "matrix": [2, 6], "x": 12.75, "y": 1 }, - { "matrix": [3, 6], "x": 13.75, "y": 1 }, - { "matrix": [2, 7], "x": 14.75, "y": 1 }, - { "matrix": [3, 7], "w": 1.5, "x": 15.75, "y": 1 }, - { "matrix": [2, 8], "x": 17.25, "y": 1 }, - { "matrix": [4, 0], "x": 0, "y": 2 }, - { "matrix": [5, 0], "x": 1, "y": 2 }, - { "matrix": [4, 1], "w": 1.75, "x": 2.25, "y": 2 }, - { "matrix": [5, 1], "x": 4, "y": 2 }, - { "matrix": [4, 2], "x": 5, "y": 2 }, - { "matrix": [5, 2], "x": 6, "y": 2 }, - { "matrix": [4, 3], "x": 7, "y": 2 }, - { "matrix": [5, 3], "x": 8, "y": 2 }, - { "matrix": [4, 4], "x": 9, "y": 2 }, - { "matrix": [5, 4], "x": 10, "y": 2 }, - { "matrix": [4, 5], "x": 11, "y": 2 }, - { "matrix": [5, 5], "x": 12, "y": 2 }, - { "matrix": [4, 6], "x": 13, "y": 2 }, - { "matrix": [5, 6], "x": 14, "y": 2 }, - { "matrix": [4, 7], "x": 19, "y": 2 }, - { "matrix": [5, 7], "w": 2.25, "x": 15, "y": 2 }, - { "matrix": [4, 8], "x": 17.25, "y": 2 }, - { "matrix": [6, 0], "x": 0, "y": 3 }, - { "matrix": [7, 0], "x": 1, "y": 3 }, - { "matrix": [6, 1], "w": 1.25, "x": 2.25, "y": 3 }, - { "matrix": [7, 1], "x": 3.5, "y": 3 }, - { "matrix": [9, 2], "x": 4.5, "y": 3 }, - { "matrix": [6, 2], "x": 5.5, "y": 3 }, - { "matrix": [7, 2], "x": 6.5, "y": 3 }, - { "matrix": [6, 3], "x": 7.5, "y": 3 }, - { "matrix": [7, 3], "x": 8.5, "y": 3 }, - { "matrix": [6, 4], "x": 9.5, "y": 3 }, - { "matrix": [7, 4], "x": 10.5, "y": 3 }, - { "matrix": [6, 5], "x": 11.5, "y": 3 }, - { "matrix": [7, 5], "x": 12.5, "y": 3 }, - { "matrix": [6, 6], "x": 13.5, "y": 3 }, - { "matrix": [6, 7], "w": 1.75, "x": 14.5, "y": 3 }, - { "matrix": [7, 7], "x": 16.25, "y": 3 }, - { "matrix": [6, 8], "x": 17.25, "y": 3 }, - { "matrix": [8, 0], "x": 0, "y": 4 }, - { "matrix": [9, 0], "x": 1, "y": 4 }, - { "matrix": [8, 1], "w": 1.5, "x": 2.25, "y": 4 }, - { "matrix": [9, 1], "x": 3.75, "y": 4 }, - { "matrix": [8, 2], "w": 1.5, "x": 4.75, "y": 4 }, - { "matrix": [8, 4], "w": 7, "x": 6.25, "y": 4 }, - { "matrix": [8, 6], "w": 1.5, "x": 13.25, "y": 4 }, - { "matrix": [8, 7], "x": 15.25, "y": 4 }, - { "matrix": [9, 7], "x": 16.25, "y": 4 }, - { "matrix": [8, 8], "x": 17.25, "y": 4 } + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + + {"matrix": [0, 1], "x": 2.25, "y": 0}, + {"matrix": [1, 1], "x": 3.25, "y": 0}, + {"matrix": [0, 2], "x": 4.25, "y": 0}, + {"matrix": [1, 2], "x": 5.25, "y": 0}, + {"matrix": [0, 3], "x": 6.25, "y": 0}, + {"matrix": [1, 3], "x": 7.25, "y": 0}, + {"matrix": [0, 4], "x": 8.25, "y": 0}, + {"matrix": [1, 4], "x": 9.25, "y": 0}, + {"matrix": [0, 5], "x": 10.25, "y": 0}, + {"matrix": [1, 5], "x": 11.25, "y": 0}, + {"matrix": [0, 6], "x": 12.25, "y": 0}, + {"matrix": [1, 6], "x": 13.25, "y": 0}, + {"matrix": [7, 6], "x": 14.25, "y": 0}, + {"matrix": [0, 7], "x": 15.25, "y": 0}, + {"matrix": [1, 7], "x": 16.25, "y": 0}, + {"matrix": [0, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1}, + {"matrix": [3, 0], "x": 1, "y": 1}, + + {"matrix": [2, 1], "x": 2.25, "y": 1, "w": 1.5}, + {"matrix": [3, 1], "x": 3.75, "y": 1}, + {"matrix": [2, 2], "x": 4.75, "y": 1}, + {"matrix": [3, 2], "x": 5.75, "y": 1}, + {"matrix": [2, 3], "x": 6.75, "y": 1}, + {"matrix": [3, 3], "x": 7.75, "y": 1}, + {"matrix": [2, 4], "x": 8.75, "y": 1}, + {"matrix": [3, 4], "x": 9.75, "y": 1}, + {"matrix": [2, 5], "x": 10.75, "y": 1}, + {"matrix": [3, 5], "x": 11.75, "y": 1}, + {"matrix": [2, 6], "x": 12.75, "y": 1}, + {"matrix": [3, 6], "x": 13.75, "y": 1}, + {"matrix": [2, 7], "x": 14.75, "y": 1}, + {"matrix": [3, 7], "x": 15.75, "y": 1, "w": 1.5}, + {"matrix": [2, 8], "x": 17.25, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2}, + {"matrix": [5, 0], "x": 1, "y": 2}, + + {"matrix": [4, 1], "x": 2.25, "y": 2, "w": 1.75}, + {"matrix": [5, 1], "x": 4, "y": 2}, + {"matrix": [4, 2], "x": 5, "y": 2}, + {"matrix": [5, 2], "x": 6, "y": 2}, + {"matrix": [4, 3], "x": 7, "y": 2}, + {"matrix": [5, 3], "x": 8, "y": 2}, + {"matrix": [4, 4], "x": 9, "y": 2}, + {"matrix": [5, 4], "x": 10, "y": 2}, + {"matrix": [4, 5], "x": 11, "y": 2}, + {"matrix": [5, 5], "x": 12, "y": 2}, + {"matrix": [4, 6], "x": 13, "y": 2}, + {"matrix": [5, 6], "x": 14, "y": 2}, + {"matrix": [4, 7], "x": 15, "y": 2}, + {"matrix": [5, 7], "x": 16, "y": 2, "w": 1.25}, + {"matrix": [4, 8], "x": 17.25, "y": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3}, + {"matrix": [7, 0], "x": 1, "y": 3}, + + {"matrix": [6, 1], "x": 2.25, "y": 3, "w": 1.25}, + {"matrix": [7, 1], "x": 3.5, "y": 3}, + {"matrix": [9, 2], "x": 4.5, "y": 3}, + {"matrix": [6, 2], "x": 5.5, "y": 3}, + {"matrix": [7, 2], "x": 6.5, "y": 3}, + {"matrix": [6, 3], "x": 7.5, "y": 3}, + {"matrix": [7, 3], "x": 8.5, "y": 3}, + {"matrix": [6, 4], "x": 9.5, "y": 3}, + {"matrix": [7, 4], "x": 10.5, "y": 3}, + {"matrix": [6, 5], "x": 11.5, "y": 3}, + {"matrix": [7, 5], "x": 12.5, "y": 3}, + {"matrix": [6, 6], "x": 13.5, "y": 3}, + {"matrix": [6, 7], "x": 14.5, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 16.25, "y": 3}, + {"matrix": [6, 8], "x": 17.25, "y": 3}, + + {"matrix": [8, 0], "x": 0, "y": 4}, + {"matrix": [9, 0], "x": 1, "y": 4}, + + {"matrix": [8, 1], "x": 2.25, "y": 4, "w": 1.5}, + {"matrix": [9, 1], "x": 3.75, "y": 4}, + {"matrix": [8, 2], "x": 4.75, "y": 4, "w": 1.5}, + {"matrix": [8, 4], "x": 6.25, "y": 4, "w": 7}, + {"matrix": [8, 6], "x": 13.25, "y": 4, "w": 1.5}, + + {"matrix": [8, 7], "x": 15.25, "y": 4}, + {"matrix": [9, 7], "x": 16.25, "y": 4}, + {"matrix": [8, 8], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_65_xt_ansi_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + + {"matrix": [0, 1], "x": 2.25, "y": 0}, + {"matrix": [1, 1], "x": 3.25, "y": 0}, + {"matrix": [0, 2], "x": 4.25, "y": 0}, + {"matrix": [1, 2], "x": 5.25, "y": 0}, + {"matrix": [0, 3], "x": 6.25, "y": 0}, + {"matrix": [1, 3], "x": 7.25, "y": 0}, + {"matrix": [0, 4], "x": 8.25, "y": 0}, + {"matrix": [1, 4], "x": 9.25, "y": 0}, + {"matrix": [0, 5], "x": 10.25, "y": 0}, + {"matrix": [1, 5], "x": 11.25, "y": 0}, + {"matrix": [0, 6], "x": 12.25, "y": 0}, + {"matrix": [1, 6], "x": 13.25, "y": 0}, + {"matrix": [7, 6], "x": 14.25, "y": 0}, + {"matrix": [1, 7], "x": 15.25, "y": 0, "w": 2}, + {"matrix": [0, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1}, + {"matrix": [3, 0], "x": 1, "y": 1}, + + {"matrix": [2, 1], "x": 2.25, "y": 1, "w": 1.5}, + {"matrix": [3, 1], "x": 3.75, "y": 1}, + {"matrix": [2, 2], "x": 4.75, "y": 1}, + {"matrix": [3, 2], "x": 5.75, "y": 1}, + {"matrix": [2, 3], "x": 6.75, "y": 1}, + {"matrix": [3, 3], "x": 7.75, "y": 1}, + {"matrix": [2, 4], "x": 8.75, "y": 1}, + {"matrix": [3, 4], "x": 9.75, "y": 1}, + {"matrix": [2, 5], "x": 10.75, "y": 1}, + {"matrix": [3, 5], "x": 11.75, "y": 1}, + {"matrix": [2, 6], "x": 12.75, "y": 1}, + {"matrix": [3, 6], "x": 13.75, "y": 1}, + {"matrix": [2, 7], "x": 14.75, "y": 1}, + {"matrix": [3, 7], "x": 15.75, "y": 1, "w": 1.5}, + {"matrix": [2, 8], "x": 17.25, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2}, + {"matrix": [5, 0], "x": 1, "y": 2}, + + {"matrix": [4, 1], "x": 2.25, "y": 2, "w": 1.75}, + {"matrix": [5, 1], "x": 4, "y": 2}, + {"matrix": [4, 2], "x": 5, "y": 2}, + {"matrix": [5, 2], "x": 6, "y": 2}, + {"matrix": [4, 3], "x": 7, "y": 2}, + {"matrix": [5, 3], "x": 8, "y": 2}, + {"matrix": [4, 4], "x": 9, "y": 2}, + {"matrix": [5, 4], "x": 10, "y": 2}, + {"matrix": [4, 5], "x": 11, "y": 2}, + {"matrix": [5, 5], "x": 12, "y": 2}, + {"matrix": [4, 6], "x": 13, "y": 2}, + {"matrix": [5, 6], "x": 14, "y": 2}, + {"matrix": [5, 7], "x": 15, "y": 2, "w": 2.25}, + {"matrix": [4, 8], "x": 17.25, "y": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3}, + {"matrix": [7, 0], "x": 1, "y": 3}, + + {"matrix": [6, 1], "x": 2.25, "y": 3, "w": 2.25}, + {"matrix": [9, 2], "x": 4.5, "y": 3}, + {"matrix": [6, 2], "x": 5.5, "y": 3}, + {"matrix": [7, 2], "x": 6.5, "y": 3}, + {"matrix": [6, 3], "x": 7.5, "y": 3}, + {"matrix": [7, 3], "x": 8.5, "y": 3}, + {"matrix": [6, 4], "x": 9.5, "y": 3}, + {"matrix": [7, 4], "x": 10.5, "y": 3}, + {"matrix": [6, 5], "x": 11.5, "y": 3}, + {"matrix": [7, 5], "x": 12.5, "y": 3}, + {"matrix": [6, 6], "x": 13.5, "y": 3}, + {"matrix": [6, 7], "x": 14.5, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 16.25, "y": 3}, + {"matrix": [6, 8], "x": 17.25, "y": 3}, + + {"matrix": [8, 0], "x": 0, "y": 4}, + {"matrix": [9, 0], "x": 1, "y": 4}, + + {"matrix": [8, 1], "x": 2.25, "y": 4, "w": 1.5}, + {"matrix": [9, 1], "x": 3.75, "y": 4}, + {"matrix": [8, 2], "x": 4.75, "y": 4, "w": 1.5}, + {"matrix": [8, 4], "x": 6.25, "y": 4, "w": 7}, + {"matrix": [8, 6], "x": 13.25, "y": 4, "w": 1.5}, + + {"matrix": [8, 7], "x": 15.25, "y": 4}, + {"matrix": [9, 7], "x": 16.25, "y": 4}, + {"matrix": [8, 8], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_65_xt_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + + {"matrix": [0, 1], "x": 2.25, "y": 0}, + {"matrix": [1, 1], "x": 3.25, "y": 0}, + {"matrix": [0, 2], "x": 4.25, "y": 0}, + {"matrix": [1, 2], "x": 5.25, "y": 0}, + {"matrix": [0, 3], "x": 6.25, "y": 0}, + {"matrix": [1, 3], "x": 7.25, "y": 0}, + {"matrix": [0, 4], "x": 8.25, "y": 0}, + {"matrix": [1, 4], "x": 9.25, "y": 0}, + {"matrix": [0, 5], "x": 10.25, "y": 0}, + {"matrix": [1, 5], "x": 11.25, "y": 0}, + {"matrix": [0, 6], "x": 12.25, "y": 0}, + {"matrix": [1, 6], "x": 13.25, "y": 0}, + {"matrix": [7, 6], "x": 14.25, "y": 0}, + {"matrix": [0, 7], "x": 15.25, "y": 0}, + {"matrix": [1, 7], "x": 16.25, "y": 0}, + {"matrix": [0, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1}, + {"matrix": [3, 0], "x": 1, "y": 1}, + + {"matrix": [2, 1], "x": 2.25, "y": 1, "w": 1.5}, + {"matrix": [3, 1], "x": 3.75, "y": 1}, + {"matrix": [2, 2], "x": 4.75, "y": 1}, + {"matrix": [3, 2], "x": 5.75, "y": 1}, + {"matrix": [2, 3], "x": 6.75, "y": 1}, + {"matrix": [3, 3], "x": 7.75, "y": 1}, + {"matrix": [2, 4], "x": 8.75, "y": 1}, + {"matrix": [3, 4], "x": 9.75, "y": 1}, + {"matrix": [2, 5], "x": 10.75, "y": 1}, + {"matrix": [3, 5], "x": 11.75, "y": 1}, + {"matrix": [2, 6], "x": 12.75, "y": 1}, + {"matrix": [3, 6], "x": 13.75, "y": 1}, + {"matrix": [2, 7], "x": 14.75, "y": 1}, + {"matrix": [3, 7], "x": 15.75, "y": 1, "w": 1.5}, + {"matrix": [2, 8], "x": 17.25, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2}, + {"matrix": [5, 0], "x": 1, "y": 2}, + + {"matrix": [4, 1], "x": 2.25, "y": 2, "w": 1.75}, + {"matrix": [5, 1], "x": 4, "y": 2}, + {"matrix": [4, 2], "x": 5, "y": 2}, + {"matrix": [5, 2], "x": 6, "y": 2}, + {"matrix": [4, 3], "x": 7, "y": 2}, + {"matrix": [5, 3], "x": 8, "y": 2}, + {"matrix": [4, 4], "x": 9, "y": 2}, + {"matrix": [5, 4], "x": 10, "y": 2}, + {"matrix": [4, 5], "x": 11, "y": 2}, + {"matrix": [5, 5], "x": 12, "y": 2}, + {"matrix": [4, 6], "x": 13, "y": 2}, + {"matrix": [5, 6], "x": 14, "y": 2}, + {"matrix": [5, 7], "x": 15, "y": 2, "w": 2.25}, + {"matrix": [4, 8], "x": 17.25, "y": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3}, + {"matrix": [7, 0], "x": 1, "y": 3}, + + {"matrix": [6, 1], "x": 2.25, "y": 3, "w": 2.25}, + {"matrix": [9, 2], "x": 4.5, "y": 3}, + {"matrix": [6, 2], "x": 5.5, "y": 3}, + {"matrix": [7, 2], "x": 6.5, "y": 3}, + {"matrix": [6, 3], "x": 7.5, "y": 3}, + {"matrix": [7, 3], "x": 8.5, "y": 3}, + {"matrix": [6, 4], "x": 9.5, "y": 3}, + {"matrix": [7, 4], "x": 10.5, "y": 3}, + {"matrix": [6, 5], "x": 11.5, "y": 3}, + {"matrix": [7, 5], "x": 12.5, "y": 3}, + {"matrix": [6, 6], "x": 13.5, "y": 3}, + {"matrix": [6, 7], "x": 14.5, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 16.25, "y": 3}, + {"matrix": [6, 8], "x": 17.25, "y": 3}, + + {"matrix": [8, 0], "x": 0, "y": 4}, + {"matrix": [9, 0], "x": 1, "y": 4}, + + {"matrix": [8, 1], "x": 2.25, "y": 4, "w": 1.5}, + {"matrix": [9, 1], "x": 3.75, "y": 4}, + {"matrix": [8, 2], "x": 4.75, "y": 4, "w": 1.5}, + {"matrix": [8, 4], "x": 6.25, "y": 4, "w": 7}, + {"matrix": [8, 6], "x": 13.25, "y": 4, "w": 1.5}, + + {"matrix": [8, 7], "x": 15.25, "y": 4}, + {"matrix": [9, 7], "x": 16.25, "y": 4}, + {"matrix": [8, 8], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_65_xt_iso_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + + {"matrix": [0, 1], "x": 2.25, "y": 0}, + {"matrix": [1, 1], "x": 3.25, "y": 0}, + {"matrix": [0, 2], "x": 4.25, "y": 0}, + {"matrix": [1, 2], "x": 5.25, "y": 0}, + {"matrix": [0, 3], "x": 6.25, "y": 0}, + {"matrix": [1, 3], "x": 7.25, "y": 0}, + {"matrix": [0, 4], "x": 8.25, "y": 0}, + {"matrix": [1, 4], "x": 9.25, "y": 0}, + {"matrix": [0, 5], "x": 10.25, "y": 0}, + {"matrix": [1, 5], "x": 11.25, "y": 0}, + {"matrix": [0, 6], "x": 12.25, "y": 0}, + {"matrix": [1, 6], "x": 13.25, "y": 0}, + {"matrix": [7, 6], "x": 14.25, "y": 0}, + {"matrix": [1, 7], "x": 15.25, "y": 0, "w": 2}, + {"matrix": [0, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1}, + {"matrix": [3, 0], "x": 1, "y": 1}, + + {"matrix": [2, 1], "x": 2.25, "y": 1, "w": 1.5}, + {"matrix": [3, 1], "x": 3.75, "y": 1}, + {"matrix": [2, 2], "x": 4.75, "y": 1}, + {"matrix": [3, 2], "x": 5.75, "y": 1}, + {"matrix": [2, 3], "x": 6.75, "y": 1}, + {"matrix": [3, 3], "x": 7.75, "y": 1}, + {"matrix": [2, 4], "x": 8.75, "y": 1}, + {"matrix": [3, 4], "x": 9.75, "y": 1}, + {"matrix": [2, 5], "x": 10.75, "y": 1}, + {"matrix": [3, 5], "x": 11.75, "y": 1}, + {"matrix": [2, 6], "x": 12.75, "y": 1}, + {"matrix": [3, 6], "x": 13.75, "y": 1}, + {"matrix": [2, 7], "x": 14.75, "y": 1}, + {"matrix": [2, 8], "x": 17.25, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2}, + {"matrix": [5, 0], "x": 1, "y": 2}, + + {"matrix": [4, 1], "x": 2.25, "y": 2, "w": 1.75}, + {"matrix": [5, 1], "x": 4, "y": 2}, + {"matrix": [4, 2], "x": 5, "y": 2}, + {"matrix": [5, 2], "x": 6, "y": 2}, + {"matrix": [4, 3], "x": 7, "y": 2}, + {"matrix": [5, 3], "x": 8, "y": 2}, + {"matrix": [4, 4], "x": 9, "y": 2}, + {"matrix": [5, 4], "x": 10, "y": 2}, + {"matrix": [4, 5], "x": 11, "y": 2}, + {"matrix": [5, 5], "x": 12, "y": 2}, + {"matrix": [4, 6], "x": 13, "y": 2}, + {"matrix": [5, 6], "x": 14, "y": 2}, + {"matrix": [4, 7], "x": 15, "y": 2}, + {"matrix": [5, 7], "x": 16, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [4, 8], "x": 17.25, "y": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3}, + {"matrix": [7, 0], "x": 1, "y": 3}, + + {"matrix": [6, 1], "x": 2.25, "y": 3, "w": 1.25}, + {"matrix": [7, 1], "x": 3.5, "y": 3}, + {"matrix": [9, 2], "x": 4.5, "y": 3}, + {"matrix": [6, 2], "x": 5.5, "y": 3}, + {"matrix": [7, 2], "x": 6.5, "y": 3}, + {"matrix": [6, 3], "x": 7.5, "y": 3}, + {"matrix": [7, 3], "x": 8.5, "y": 3}, + {"matrix": [6, 4], "x": 9.5, "y": 3}, + {"matrix": [7, 4], "x": 10.5, "y": 3}, + {"matrix": [6, 5], "x": 11.5, "y": 3}, + {"matrix": [7, 5], "x": 12.5, "y": 3}, + {"matrix": [6, 6], "x": 13.5, "y": 3}, + {"matrix": [6, 7], "x": 14.5, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 16.25, "y": 3}, + {"matrix": [6, 8], "x": 17.25, "y": 3}, + + {"matrix": [8, 0], "x": 0, "y": 4}, + {"matrix": [9, 0], "x": 1, "y": 4}, + + {"matrix": [8, 1], "x": 2.25, "y": 4, "w": 1.5}, + {"matrix": [9, 1], "x": 3.75, "y": 4}, + {"matrix": [8, 2], "x": 4.75, "y": 4, "w": 1.5}, + {"matrix": [8, 4], "x": 6.25, "y": 4, "w": 7}, + {"matrix": [8, 6], "x": 13.25, "y": 4, "w": 1.5}, + + {"matrix": [8, 7], "x": 15.25, "y": 4}, + {"matrix": [9, 7], "x": 16.25, "y": 4}, + {"matrix": [8, 8], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_65_xt_iso_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + + {"matrix": [0, 1], "x": 2.25, "y": 0}, + {"matrix": [1, 1], "x": 3.25, "y": 0}, + {"matrix": [0, 2], "x": 4.25, "y": 0}, + {"matrix": [1, 2], "x": 5.25, "y": 0}, + {"matrix": [0, 3], "x": 6.25, "y": 0}, + {"matrix": [1, 3], "x": 7.25, "y": 0}, + {"matrix": [0, 4], "x": 8.25, "y": 0}, + {"matrix": [1, 4], "x": 9.25, "y": 0}, + {"matrix": [0, 5], "x": 10.25, "y": 0}, + {"matrix": [1, 5], "x": 11.25, "y": 0}, + {"matrix": [0, 6], "x": 12.25, "y": 0}, + {"matrix": [1, 6], "x": 13.25, "y": 0}, + {"matrix": [7, 6], "x": 14.25, "y": 0}, + {"matrix": [0, 7], "x": 15.25, "y": 0}, + {"matrix": [1, 7], "x": 16.25, "y": 0}, + {"matrix": [0, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1}, + {"matrix": [3, 0], "x": 1, "y": 1}, + + {"matrix": [2, 1], "x": 2.25, "y": 1, "w": 1.5}, + {"matrix": [3, 1], "x": 3.75, "y": 1}, + {"matrix": [2, 2], "x": 4.75, "y": 1}, + {"matrix": [3, 2], "x": 5.75, "y": 1}, + {"matrix": [2, 3], "x": 6.75, "y": 1}, + {"matrix": [3, 3], "x": 7.75, "y": 1}, + {"matrix": [2, 4], "x": 8.75, "y": 1}, + {"matrix": [3, 4], "x": 9.75, "y": 1}, + {"matrix": [2, 5], "x": 10.75, "y": 1}, + {"matrix": [3, 5], "x": 11.75, "y": 1}, + {"matrix": [2, 6], "x": 12.75, "y": 1}, + {"matrix": [3, 6], "x": 13.75, "y": 1}, + {"matrix": [2, 7], "x": 14.75, "y": 1}, + {"matrix": [2, 8], "x": 17.25, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2}, + {"matrix": [5, 0], "x": 1, "y": 2}, + + {"matrix": [4, 1], "x": 2.25, "y": 2, "w": 1.75}, + {"matrix": [5, 1], "x": 4, "y": 2}, + {"matrix": [4, 2], "x": 5, "y": 2}, + {"matrix": [5, 2], "x": 6, "y": 2}, + {"matrix": [4, 3], "x": 7, "y": 2}, + {"matrix": [5, 3], "x": 8, "y": 2}, + {"matrix": [4, 4], "x": 9, "y": 2}, + {"matrix": [5, 4], "x": 10, "y": 2}, + {"matrix": [4, 5], "x": 11, "y": 2}, + {"matrix": [5, 5], "x": 12, "y": 2}, + {"matrix": [4, 6], "x": 13, "y": 2}, + {"matrix": [5, 6], "x": 14, "y": 2}, + {"matrix": [4, 7], "x": 15, "y": 2}, + {"matrix": [5, 7], "x": 16, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [4, 8], "x": 17.25, "y": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3}, + {"matrix": [7, 0], "x": 1, "y": 3}, + + {"matrix": [6, 1], "x": 2.25, "y": 3, "w": 1.25}, + {"matrix": [7, 1], "x": 3.5, "y": 3}, + {"matrix": [9, 2], "x": 4.5, "y": 3}, + {"matrix": [6, 2], "x": 5.5, "y": 3}, + {"matrix": [7, 2], "x": 6.5, "y": 3}, + {"matrix": [6, 3], "x": 7.5, "y": 3}, + {"matrix": [7, 3], "x": 8.5, "y": 3}, + {"matrix": [6, 4], "x": 9.5, "y": 3}, + {"matrix": [7, 4], "x": 10.5, "y": 3}, + {"matrix": [6, 5], "x": 11.5, "y": 3}, + {"matrix": [7, 5], "x": 12.5, "y": 3}, + {"matrix": [6, 6], "x": 13.5, "y": 3}, + {"matrix": [6, 7], "x": 14.5, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 16.25, "y": 3}, + {"matrix": [6, 8], "x": 17.25, "y": 3}, + + {"matrix": [8, 0], "x": 0, "y": 4}, + {"matrix": [9, 0], "x": 1, "y": 4}, + + {"matrix": [8, 1], "x": 2.25, "y": 4, "w": 1.5}, + {"matrix": [9, 1], "x": 3.75, "y": 4}, + {"matrix": [8, 2], "x": 4.75, "y": 4, "w": 1.5}, + {"matrix": [8, 4], "x": 6.25, "y": 4, "w": 7}, + {"matrix": [8, 6], "x": 13.25, "y": 4, "w": 1.5}, + + {"matrix": [8, 7], "x": 15.25, "y": 4}, + {"matrix": [9, 7], "x": 16.25, "y": 4}, + {"matrix": [8, 8], "x": 17.25, "y": 4} ] } } -} \ No newline at end of file +} diff --git a/keyboards/wolf/ziggurat/keymaps/default/keymap.c b/keyboards/wolf/ziggurat/keymaps/default/keymap.c index e26689efa7..3e005d8369 100644 --- a/keyboards/wolf/ziggurat/keymaps/default/keymap.c +++ b/keyboards/wolf/ziggurat/keymaps/default/keymap.c @@ -6,7 +6,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_all( KC_F1, KC_F6, KC_ESC, 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_BSPC, KC_BSPC, KC_HOME, KC_F2, KC_F7, 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_PGUP, KC_F3, KC_F8, 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_PGDN, @@ -14,7 +14,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F5, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_all( KC_F1, KC_F6, 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_DEL, KC_DEL, _______, KC_F2, KC_F7, _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, KC_F3, KC_F8, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/wolf/ziggurat/keymaps/via/keymap.c b/keyboards/wolf/ziggurat/keymaps/via/keymap.c index e26689efa7..3e005d8369 100644 --- a/keyboards/wolf/ziggurat/keymaps/via/keymap.c +++ b/keyboards/wolf/ziggurat/keymaps/via/keymap.c @@ -6,7 +6,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_all( KC_F1, KC_F6, KC_ESC, 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_BSPC, KC_BSPC, KC_HOME, KC_F2, KC_F7, 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_PGUP, KC_F3, KC_F8, 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_PGDN, @@ -14,7 +14,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F5, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_all( KC_F1, KC_F6, 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_DEL, KC_DEL, _______, KC_F2, KC_F7, _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, KC_F3, KC_F8, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/wolf/ziggurat/matrix_diagram.md b/keyboards/wolf/ziggurat/matrix_diagram.md new file mode 100644 index 0000000000..4f0c10b9b9 --- /dev/null +++ b/keyboards/wolf/ziggurat/matrix_diagram.md @@ -0,0 +1,21 @@ +# Matrix Diagram for Laminar Ziggurat + +``` + ┌───────┐ + 2u Backspace │17 │ + └───────┘ +┌───┬───┐┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │10 ││01 │11 │02 │12 │03 │13 │04 │14 │05 │15 │06 │16 │76 │07 │17 │08 │ +├───┼───┤├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ ┌─────┐ +│20 │30 ││21 │31 │22 │32 │23 │33 │24 │34 │25 │35 │26 │36 │27 │37 │28 │ │ │ +├───┼───┤├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐57 │ ISO Enter +│40 │50 ││41 │51 │42 │52 │43 │53 │44 │54 │45 │55 │46 │56 │57 │48 │ │47 │ │ +├───┼───┤├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ +│60 │70 ││61 │71 │92 │62 │72 │63 │73 │64 │74 │65 │75 │66 │67 │77 │68 │ +├───┼───┤├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ +│80 │90 ││81 │91 │82 │84 │86 │ │87 │97 │88 │ +└───┴───┘└─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ + ┌────────┐ + │61 │ 2.25u LShift + └────────┘ +``` From 7654549bffbcbfc787089be15e63dc506b55e29c Mon Sep 17 00:00:00 2001 From: dexter93 Date: Mon, 18 Sep 2023 09:47:54 +0300 Subject: [PATCH 088/496] Add missing fullsize extended default layouts (#21402) --- .../default_fullsize_extended_ansi/keymap.c | 32 +++++ .../default/fullsize_extended_ansi/info.json | 124 +++++++++++++++++ .../fullsize_extended_ansi/layout.json | 6 + .../default/fullsize_extended_ansi/readme.md | 3 + .../default_fullsize_extended_iso/keymap.c | 32 +++++ .../default/fullsize_extended_iso/info.json | 125 +++++++++++++++++ .../default/fullsize_extended_iso/layout.json | 6 + .../default/fullsize_extended_iso/readme.md | 3 + .../default_fullsize_extended_jis/keymap.c | 32 +++++ .../default/fullsize_extended_jis/info.json | 129 ++++++++++++++++++ .../default/fullsize_extended_jis/layout.json | 6 + .../default/fullsize_extended_jis/readme.md | 3 + layouts/default/readme.md | 54 ++++++++ 13 files changed, 555 insertions(+) create mode 100644 layouts/default/fullsize_extended_ansi/default_fullsize_extended_ansi/keymap.c create mode 100644 layouts/default/fullsize_extended_ansi/info.json create mode 100644 layouts/default/fullsize_extended_ansi/layout.json create mode 100644 layouts/default/fullsize_extended_ansi/readme.md create mode 100644 layouts/default/fullsize_extended_iso/default_fullsize_extended_iso/keymap.c create mode 100644 layouts/default/fullsize_extended_iso/info.json create mode 100644 layouts/default/fullsize_extended_iso/layout.json create mode 100644 layouts/default/fullsize_extended_iso/readme.md create mode 100644 layouts/default/fullsize_extended_jis/default_fullsize_extended_jis/keymap.c create mode 100644 layouts/default/fullsize_extended_jis/info.json create mode 100644 layouts/default/fullsize_extended_jis/layout.json create mode 100644 layouts/default/fullsize_extended_jis/readme.md diff --git a/layouts/default/fullsize_extended_ansi/default_fullsize_extended_ansi/keymap.c b/layouts/default/fullsize_extended_ansi/default_fullsize_extended_ansi/keymap.c new file mode 100644 index 0000000000..13ade5545d --- /dev/null +++ b/layouts/default/fullsize_extended_ansi/default_fullsize_extended_ansi/keymap.c @@ -0,0 +1,32 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ + * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ │Clc│VMT│VDN│VUP│ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ │ 7 │ 8 │ 9 │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ├───┼───┼───┤ + │ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ │ 4 │ 5 │ 6 │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ ├───┼───┼───┼───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ │ 1 │ 2 │ 3 │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ │ ← │ ↓ │ → │ │ 0 │ . │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ + */ + [0] = LAYOUT_fullsize_extended_ansi( + KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU, + + KC_GRV, 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_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + 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_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ) +}; diff --git a/layouts/default/fullsize_extended_ansi/info.json b/layouts/default/fullsize_extended_ansi/info.json new file mode 100644 index 0000000000..55ce7d11f7 --- /dev/null +++ b/layouts/default/fullsize_extended_ansi/info.json @@ -0,0 +1,124 @@ +{ + "keyboard_name": "Fullsize Extended ANSI layout", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_fullsize_extended_ansi": { + "layout": [ + {"x":0, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + {"x":18.5, "y":0}, + {"x":19.5, "y":0}, + {"x":20.5, "y":0}, + {"x":21.5, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25, "w":2}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + {"x":18.5, "y":1.25}, + {"x":19.5, "y":1.25}, + {"x":20.5, "y":1.25}, + {"x":21.5, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":13.5, "y":2.25, "w":1.5}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + {"x":18.5, "y":2.25}, + {"x":19.5, "y":2.25}, + {"x":20.5, "y":2.25}, + {"x":21.5, "y":2.25, "h": 2}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25, "w":2.25}, + {"x":18.5, "y":3.25}, + {"x":19.5, "y":3.25}, + {"x":20.5, "y":3.25}, + + {"x":0, "y":4.25, "w":2.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":2.75}, + {"x":16.25, "y":4.25}, + {"x":18.5, "y":4.25}, + {"x":19.5, "y":4.25}, + {"x":20.5, "y":4.25}, + {"x":21.5, "y":4.25, "h":2}, + + {"x":0, "y":5.25, "w":1.25}, + {"x":1.25, "y":5.25, "w":1.25}, + {"x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"x":10, "y":5.25, "w":1.25}, + {"x":11.25, "y":5.25, "w":1.25}, + {"x":12.5, "y":5.25, "w":1.25}, + {"x":13.75, "y":5.25, "w":1.25}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25}, + {"x":18.5, "y":5.25, "w":2}, + {"x":20.5, "y":5.25} + ] + } + } +} diff --git a/layouts/default/fullsize_extended_ansi/layout.json b/layouts/default/fullsize_extended_ansi/layout.json new file mode 100644 index 0000000000..b2503d1831 --- /dev/null +++ b/layouts/default/fullsize_extended_ansi/layout.json @@ -0,0 +1,6 @@ +[{a:7},"",{x:1},"","","","",{x:0.5},"","","","",{x:0.5},"","","","",{x:0.25},"","","",{x:0.25},"","","",""], +[{y:0.25},"","","","","","","","","","","","","",{w:2},"",{x:0.25},"","","",{x:0.25},"","","",""], +[{w:1.5},"","","","","","","","","","","","","",{w:1.5},"",{x:0.25},"","","",{x:0.25},"","","",{h:2},""], +[{w:1.75},"","","","","","","","","","","","",{w:2.25},"",{x:3.5},"","",""], +[{w:2.25},"","","","","","","","","","","",{w:2.75},"",{x:1.25},"",{x:1.25},"","","",{h:2},""], +[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{x:0.25},"","","",{x:0.25,w:2},"",""] diff --git a/layouts/default/fullsize_extended_ansi/readme.md b/layouts/default/fullsize_extended_ansi/readme.md new file mode 100644 index 0000000000..7cc035cde9 --- /dev/null +++ b/layouts/default/fullsize_extended_ansi/readme.md @@ -0,0 +1,3 @@ +# fullsize_extended_ansi + + LAYOUT_fullsize_extended_ansi diff --git a/layouts/default/fullsize_extended_iso/default_fullsize_extended_iso/keymap.c b/layouts/default/fullsize_extended_iso/default_fullsize_extended_iso/keymap.c new file mode 100644 index 0000000000..3efe70b4cf --- /dev/null +++ b/layouts/default/fullsize_extended_iso/default_fullsize_extended_iso/keymap.c @@ -0,0 +1,32 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ + * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ │Clc│VMT│VDN│VUP│ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │ │Del│End│PgD│ │ 7 │ 8 │ 9 │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ └───┴───┴───┘ ├───┼───┼───┤ + │ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │ │ 4 │ 5 │ 6 │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐ ├───┼───┼───┼───┤ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ │ 1 │ 2 │ 3 │ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ │ ← │ ↓ │ → │ │ 0 │ . │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ + */ + [0] = LAYOUT_fullsize_extended_iso( + KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU, + + KC_GRV, 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_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + 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_P4, KC_P5, KC_P6, + 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_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ) +}; diff --git a/layouts/default/fullsize_extended_iso/info.json b/layouts/default/fullsize_extended_iso/info.json new file mode 100644 index 0000000000..25a0e65b8e --- /dev/null +++ b/layouts/default/fullsize_extended_iso/info.json @@ -0,0 +1,125 @@ +{ + "keyboard_name": "Fullsize Extended ISO layout", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_fullsize_extended_iso": { + "layout": [ + {"x":0, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + {"x":18.5, "y":0}, + {"x":19.5, "y":0}, + {"x":20.5, "y":0}, + {"x":21.5, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25, "w":2}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + {"x":18.5, "y":1.25}, + {"x":19.5, "y":1.25}, + {"x":20.5, "y":1.25}, + {"x":21.5, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + {"x":18.5, "y":2.25}, + {"x":19.5, "y":2.25}, + {"x":20.5, "y":2.25}, + {"x":21.5, "y":2.25, "h": 2}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25}, + {"x":13.75, "y":2.25, "w":1.25, "h":2}, + {"x":18.5, "y":3.25}, + {"x":19.5, "y":3.25}, + {"x":20.5, "y":3.25}, + + {"x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":2.75}, + {"x":16.25, "y":4.25}, + {"x":18.5, "y":4.25}, + {"x":19.5, "y":4.25}, + {"x":20.5, "y":4.25}, + {"x":21.5, "y":4.25, "h":2}, + + {"x":0, "y":5.25, "w":1.25}, + {"x":1.25, "y":5.25, "w":1.25}, + {"x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"x":10, "y":5.25, "w":1.25}, + {"x":11.25, "y":5.25, "w":1.25}, + {"x":12.5, "y":5.25, "w":1.25}, + {"x":13.75, "y":5.25, "w":1.25}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25}, + {"x":18.5, "y":5.25, "w":2}, + {"x":20.5, "y":5.25} + ] + } + } +} diff --git a/layouts/default/fullsize_extended_iso/layout.json b/layouts/default/fullsize_extended_iso/layout.json new file mode 100644 index 0000000000..c841aec943 --- /dev/null +++ b/layouts/default/fullsize_extended_iso/layout.json @@ -0,0 +1,6 @@ +[{a:7},"",{x:1},"","","","",{x:0.5},"","","","",{x:0.5},"","","","",{x:0.25},"","","",{x:0.25},"","","",""], +[{y:0.25},"","","","","","","","","","","","","",{w:2},"",{x:0.25},"","","",{x:0.25},"","","",""], +[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"",{x:0.25},"","","",{x:0.25},"","","",{h:2},""], +[{w:1.75},"","","","","","","","","","","","","",{x:4.75},"","",""], +[{w:1.25},"","","","","","","","","","","","",{w:2.75},"",{x:1.25},"",{x:1.25},"","","",{h:2},""], +[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{x:0.25},"","","",{x:0.25,w:2},"",""] diff --git a/layouts/default/fullsize_extended_iso/readme.md b/layouts/default/fullsize_extended_iso/readme.md new file mode 100644 index 0000000000..8688591ef1 --- /dev/null +++ b/layouts/default/fullsize_extended_iso/readme.md @@ -0,0 +1,3 @@ +# fullsize_extended_iso + + LAYOUT_fullsize_extended_iso diff --git a/layouts/default/fullsize_extended_jis/default_fullsize_extended_jis/keymap.c b/layouts/default/fullsize_extended_jis/default_fullsize_extended_jis/keymap.c new file mode 100644 index 0000000000..16c78f4b2d --- /dev/null +++ b/layouts/default/fullsize_extended_jis/default_fullsize_extended_jis/keymap.c @@ -0,0 +1,32 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ + * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ │Clc│VMT│VDN│VUP│ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ + * │ZHK│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ ^ │ ¥ │Bsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ @ │ [ │ │ │Del│End│PgD│ │ 7 │ 8 │ 9 │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ └───┴───┴───┘ ├───┼───┼───┤ + │ + * │ Eisu │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ : │ ] │ │ │ 4 │ 5 │ 6 │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ ┌───┐ ├───┼───┼───┼───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ \ │ Shft │ │ ↑ │ │ 1 │ 2 │ 3 │ │ + * ├────┬───┴┬──┴─┬─┴──┬┴───┴───┴───┼───┴┬──┴─┬─┴─┬─┴─┬─┴─┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│ + * │Ctrl│GUI │Alt │Mhen│ Space │Henk│Kana│Alt│GUI│App│Ctrl│ │ ← │ ↓ │ → │ │ 0 │ . │ │ + * └────┴────┴────┴────┴────────────┴────┴────┴───┴───┴───┴────┘ └───┴───┴───┘ └───────┴───┴───┘ + */ + [0] = LAYOUT_fullsize_extended_jis( + KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU, + + KC_GRV, 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_INT3, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + 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_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_INT2, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ) +}; diff --git a/layouts/default/fullsize_extended_jis/info.json b/layouts/default/fullsize_extended_jis/info.json new file mode 100644 index 0000000000..8267b4c54f --- /dev/null +++ b/layouts/default/fullsize_extended_jis/info.json @@ -0,0 +1,129 @@ +{ + "keyboard_name": "Fullsize Extended JIS layout", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_fullsize_extended_jis": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6.5, "y": 0}, + {"x": 7.5, "y": 0}, + {"x": 8.5, "y": 0}, + {"x": 9.5, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + {"x": 14, "y": 0}, + {"x": 15.25, "y": 0}, + {"x": 16.25, "y": 0}, + {"x": 17.25, "y": 0}, + {"x":18.5, "y":0}, + {"x":19.5, "y":0}, + {"x":20.5, "y":0}, + {"x":21.5, "y":0}, + + {"x": 0, "y": 1.25}, + {"x": 1, "y": 1.25}, + {"x": 2, "y": 1.25}, + {"x": 3, "y": 1.25}, + {"x": 4, "y": 1.25}, + {"x": 5, "y": 1.25}, + {"x": 6, "y": 1.25}, + {"x": 7, "y": 1.25}, + {"x": 8, "y": 1.25}, + {"x": 9, "y": 1.25}, + {"x": 10, "y": 1.25}, + {"x": 11, "y": 1.25}, + {"x": 12, "y": 1.25}, + {"x": 13, "y": 1.25}, + {"x": 14, "y": 1.25}, + {"x": 15.25, "y": 1.25}, + {"x": 16.25, "y": 1.25}, + {"x": 17.25, "y": 1.25}, + {"x": 18.5, "y": 1.25}, + {"x": 19.5, "y": 1.25}, + {"x": 20.5, "y": 1.25}, + {"x": 21.5, "y": 1.25}, + {"x": 0, "y": 2.25, "w": 1.5}, + + {"x": 1.5, "y": 2.25}, + {"x": 2.5, "y": 2.25}, + {"x": 3.5, "y": 2.25}, + {"x": 4.5, "y": 2.25}, + {"x": 5.5, "y": 2.25}, + {"x": 6.5, "y": 2.25}, + {"x": 7.5, "y": 2.25}, + {"x": 8.5, "y": 2.25}, + {"x": 9.5, "y": 2.25}, + {"x": 10.5, "y": 2.25}, + {"x": 11.5, "y": 2.25}, + {"x": 12.5, "y": 2.25}, + {"x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"x": 15.25, "y": 2.25}, + {"x": 16.25, "y": 2.25}, + {"x": 17.25, "y": 2.25}, + {"x": 18.5, "y": 2.25}, + {"x": 19.5, "y": 2.25}, + {"x": 20.5, "y": 2.25}, + {"x": 21.5, "y": 2.25, "h": 2}, + + {"x": 0, "y": 3.25, "w": 1.75}, + {"x": 1.75, "y": 3.25}, + {"x": 2.75, "y": 3.25}, + {"x": 3.75, "y": 3.25}, + {"x": 4.75, "y": 3.25}, + {"x": 5.75, "y": 3.25}, + {"x": 6.75, "y": 3.25}, + {"x": 7.75, "y": 3.25}, + {"x": 8.75, "y": 3.25}, + {"x": 9.75, "y": 3.25}, + {"x": 10.75, "y": 3.25}, + {"x": 11.75, "y": 3.25}, + {"x": 12.75, "y": 3.25}, + {"x": 18.5, "y": 3.25}, + {"x": 19.5, "y": 3.25}, + {"x": 20.5, "y": 3.25}, + + {"x": 0, "y": 4.25, "w": 2.25}, + {"x": 2.25, "y": 4.25}, + {"x": 3.25, "y": 4.25}, + {"x": 4.25, "y": 4.25}, + {"x": 5.25, "y": 4.25}, + {"x": 6.25, "y": 4.25}, + {"x": 7.25, "y": 4.25}, + {"x": 8.25, "y": 4.25}, + {"x": 9.25, "y": 4.25}, + {"x": 10.25, "y": 4.25}, + {"x": 11.25, "y": 4.25}, + {"x": 12.25, "y": 4.25}, + {"x": 13.25, "y": 4.25, "w": 1.75}, + {"x": 16.25, "y": 4.25}, + {"x": 18.5, "y": 4.25}, + {"x": 19.5, "y": 4.25}, + {"x": 20.5, "y": 4.25}, + {"x": 21.5, "y": 4.25, "h": 2}, + + {"x": 0, "y": 5.25, "w": 1.25}, + {"x": 1.25, "y": 5.25, "w": 1.25}, + {"x": 2.5, "y": 5.25, "w": 1.25}, + {"x": 3.75, "y": 5.25, "w": 1.25}, + {"x": 5, "y": 5.25, "w": 3.25}, + {"x": 8.25, "y": 5.25, "w": 1.25}, + {"x": 9.5, "y": 5.25, "w": 1.25}, + {"x": 10.75, "y": 5.25}, + {"x": 11.75, "y": 5.25}, + {"x": 12.75, "y": 5.25}, + {"x": 13.75, "y": 5.25, "w": 1.25}, + {"x": 15.25, "y": 5.25}, + {"x": 16.25, "y": 5.25}, + {"x": 17.25, "y": 5.25}, + {"x": 18.5, "y": 5.25, "w": 2}, + {"x": 20.5, "y": 5.25} + ] + } + } +} diff --git a/layouts/default/fullsize_extended_jis/layout.json b/layouts/default/fullsize_extended_jis/layout.json new file mode 100644 index 0000000000..e5716fe996 --- /dev/null +++ b/layouts/default/fullsize_extended_jis/layout.json @@ -0,0 +1,6 @@ +[{a:7},"",{x:1},"","","","",{x:0.5},"","","","",{x:0.5},"","","","",{x:0.25},"","","",{x:0.25},"","","",""], +[{y:0.25},"","","","","","","","","","","","","","","",{x:0.25},"","","",{x:0.25},"","","",""], +[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"",{x:0.25},"","","",{x:0.25},"","","",{h:2},""], +[{w:1.75},"","","","","","","","","","","","","",{x:4.75},"","",""], +[{w:2.25},"","","","","","","","","","","","",{w:1.75},"",{x:1.25},"",{x:1.25},"","","",{h:2},""], +[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:3.25},"",{w:1.25},"",{w:1.25},"","","","",{w:1.25},"",{x:0.25},"","","",{x:0.25,w:2},"",""] diff --git a/layouts/default/fullsize_extended_jis/readme.md b/layouts/default/fullsize_extended_jis/readme.md new file mode 100644 index 0000000000..79a00b5084 --- /dev/null +++ b/layouts/default/fullsize_extended_jis/readme.md @@ -0,0 +1,3 @@ +# fullsize_extended_jis + + LAYOUT_fullsize_extended_jis diff --git a/layouts/default/readme.md b/layouts/default/readme.md index 439613911a..ea5b366081 100644 --- a/layouts/default/readme.md +++ b/layouts/default/readme.md @@ -942,6 +942,60 @@ LAYOUT_fullsize_jis └────┴────┴────┴────┴────────────┴────┴────┴───┴───┴───┴────┘ └───┴───┴───┘ └───────┴───┴───┘ ``` +``` +LAYOUT_fullsize_extended_ansi +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ├───┼───┼───┤ │ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ ├───┼───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤ │ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ +``` + +``` +LAYOUT_fullsize_extended_iso +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ └───┴───┴───┘ ├───┼───┼───┤ │ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐ ├───┼───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤ │ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ +``` + +``` +LAYOUT_fullsize_extended_jis +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ └───┴───┴───┘ ├───┼───┼───┤ │ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ ┌───┐ ├───┼───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬───┴┬──┴─┬─┴──┬┴───┴───┴───┼───┴┬──┴─┬─┴─┬─┴─┬─┴─┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤ │ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +└────┴────┴────┴────┴────────────┴────┴────┴───┴───┴───┴────┘ └───┴───┴───┘ └───────┴───┴───┘ +``` + ### Split Layouts ``` From 48b4ce6ddbd63722e185e4592af1d07b1c99dbd4 Mon Sep 17 00:00:00 2001 From: Filip Sund Date: Mon, 18 Sep 2023 14:52:48 +0200 Subject: [PATCH 089/496] Adding support for the Pteron56 (PCB) keyboard (#21731) --- keyboards/kraken_jones/pteron56/info.json | 96 +++++++++++++++++++ .../pteron56/keymaps/default/keymap.c | 36 +++++++ .../pteron56/keymaps/via/keymap.c | 36 +++++++ .../pteron56/keymaps/via/rules.mk | 2 + keyboards/kraken_jones/pteron56/readme.md | 31 ++++++ keyboards/kraken_jones/pteron56/rules.mk | 1 + 6 files changed, 202 insertions(+) create mode 100644 keyboards/kraken_jones/pteron56/info.json create mode 100644 keyboards/kraken_jones/pteron56/keymaps/default/keymap.c create mode 100644 keyboards/kraken_jones/pteron56/keymaps/via/keymap.c create mode 100644 keyboards/kraken_jones/pteron56/keymaps/via/rules.mk create mode 100644 keyboards/kraken_jones/pteron56/readme.md create mode 100644 keyboards/kraken_jones/pteron56/rules.mk diff --git a/keyboards/kraken_jones/pteron56/info.json b/keyboards/kraken_jones/pteron56/info.json new file mode 100644 index 0000000000..0af1f6b735 --- /dev/null +++ b/keyboards/kraken_jones/pteron56/info.json @@ -0,0 +1,96 @@ +{ + "keyboard_name": "pteron56", + "manufacturer": "Kraken-jokes", + "url": "https://github.com/kraken-jokes/pteron-pcb", + "maintainer": "Kraken-jokes", + "usb": { + "vid": "0x6D4B", + "pid": "0x7056", + "device_version": "0.2.0" + }, + "development_board": "promicro", + "matrix_pins": { + "rows": ["D3", "D2", "F4", "D4", "B5"], + "cols": ["E6", "B4", "D7", "C6", "D0", "D1", "F6", "F7", "B1", "B3", "B6", "B2"] + }, + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true + }, + "layouts": { + "LAYOUT":{ + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.75}, + {"matrix": [0, 1], "x": 1, "y": 0.75}, + {"matrix": [0, 2], "x": 2, "y": 0.25}, + {"matrix": [0, 3], "x": 3, "y": 0.0}, + {"matrix": [0, 4], "x": 4, "y": 0.25}, + {"matrix": [0, 5], "x": 5, "y": 0.5}, + + {"matrix": [0, 6], "x": 9.8, "y": 0.5}, + {"matrix": [0, 7], "x": 10.8, "y": 0.25}, + {"matrix": [0, 8], "x": 11.8, "y": 0}, + {"matrix": [0, 9], "x": 12.8, "y": 0.25}, + {"matrix": [0, 10], "x": 13.8, "y": 0.75}, + {"matrix": [0, 11], "x": 14.8, "y": 0.75}, + + {"matrix": [1, 0], "x": 0, "y": 1.75}, + {"matrix": [1, 1], "x": 1, "y": 1.75}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + + {"matrix": [1, 6], "x": 9.8, "y": 1.5}, + {"matrix": [1, 7], "x": 10.8, "y": 1.25}, + {"matrix": [1, 8], "x": 11.8, "y": 1}, + {"matrix": [1, 9], "x": 12.8, "y": 1.25}, + {"matrix": [1, 10], "x": 13.8, "y": 1.75}, + {"matrix": [1, 11], "x": 14.8, "y": 1.75}, + + {"matrix": [2, 0], "x": 0, "y": 2.75}, + {"matrix": [2, 1], "x": 1, "y": 2.75}, + {"matrix": [2, 2], "x": 2, "y": 2.25}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.25}, + {"matrix": [2, 5], "x": 5, "y": 2.5}, + + {"matrix": [2, 6], "x": 9.8, "y": 2.5}, + {"matrix": [2, 7], "x": 10.8, "y": 2.25}, + {"matrix": [2, 8], "x": 11.8, "y": 2}, + {"matrix": [2, 9], "x": 12.8, "y": 2.25}, + {"matrix": [2, 10], "x": 13.8, "y": 2.75}, + {"matrix": [2, 11], "x": 14.8, "y": 2.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.75}, + {"matrix": [3, 1], "x": 1, "y": 3.75}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3.25}, + {"matrix": [3, 5], "x": 5, "y": 3.5}, + + {"matrix": [3, 6], "x": 9.8, "y": 3.5}, + {"matrix": [3, 7], "x": 10.8, "y": 3.25}, + {"matrix": [3, 8], "x": 11.8, "y": 3}, + {"matrix": [3, 9], "x": 12.8, "y": 3.25}, + {"matrix": [3, 10], "x": 13.8, "y": 3.75}, + {"matrix": [3, 11], "x": 14.8, "y": 3.75}, + + {"matrix": [4, 0], "x": 3.9, "y": 4.5}, + {"matrix": [4, 1], "x": 4.9, "y": 4.6}, + {"matrix": [4, 2], "x": 5.9, "y": 4.85}, + {"matrix": [4, 3], "x": 6.9, "y": 5.35}, + + {"matrix": [4, 8], "x": 7.9, "y": 5.35}, + {"matrix": [4, 9], "x": 8.9, "y": 4.85}, + {"matrix": [4, 10], "x": 9.9, "y": 4.6}, + {"matrix": [4, 11], "x": 10.9, "y": 4.5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/kraken_jones/pteron56/keymaps/default/keymap.c b/keyboards/kraken_jones/pteron56/keymaps/default/keymap.c new file mode 100644 index 0000000000..e9e7e0dd90 --- /dev/null +++ b/keyboards/kraken_jones/pteron56/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +// Copyright (C) 2023 @kraken-jokes +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +#define L1_GUI LT(1,KC_LGUI) +#define L1_DEL LT(1,KC_DEL) +#define L2_APP LT(2,KC_APP) +#define L2_ALT LT(2,KC_LALT) +#define PRTSC LGUI(LSFT(KC_S)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_EQL, + KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_RBRC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + L1_GUI, KC_LCTL, KC_LSFT, L2_ALT, L1_DEL, KC_SPC, L2_APP, KC_TAB + ), + + [1] = LAYOUT( + KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + 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_VOLU, KC_HOME, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_PGUP, KC_UP, KC_PGDN, KC_MENU, KC_RBRC, KC_TRNS, + KC_VOLD, KC_END, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, KC_LEFT, KC_DOWN, KC_RGHT, KC_LBRC, KC_BSLS, KC_TRNS, + KC_TRNS, KC_LCTL, KC_LSFT, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT( + QK_BOOT, KC_SLEP, KC_WAKE, KC_TRNS, KC_PWR, KC_TRNS, KC_TRNS, KC_PSLS, KC_PAST, KC_PMNS, KC_TRNS, KC_BSPC, + KC_GRV, KC_WBAK, KC_WFWD, KC_WSCH, KC_FIND, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_PSLS, KC_PAST, + KC_DEL, KC_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LBRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PDOT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, PRTSC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P0 + ), +}; diff --git a/keyboards/kraken_jones/pteron56/keymaps/via/keymap.c b/keyboards/kraken_jones/pteron56/keymaps/via/keymap.c new file mode 100644 index 0000000000..3a1da6324e --- /dev/null +++ b/keyboards/kraken_jones/pteron56/keymaps/via/keymap.c @@ -0,0 +1,36 @@ +// Copyright (C) 2023 @kraken-jokes +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +#define L1_GUI LT(1,KC_LGUI) +#define L1_DEL LT(1,KC_DEL) +#define L2_APP LT(2,KC_APP) +#define L2_ALT LT(2,KC_LALT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_EQL, + KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_SPC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + L1_GUI, KC_LCTL, KC_LSFT, L2_ALT, L1_DEL, KC_SPC, L2_APP, KC_TAB + ), + + [1] = LAYOUT( + KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + 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_VOLU, KC_HOME, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_PGUP, KC_UP, KC_PGDN, KC_MENU, KC_RBRC, KC_TRNS, + KC_VOLD, KC_END, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, KC_LEFT, KC_DOWN, KC_RGHT, KC_LBRC, KC_BSLS, KC_TRNS, + KC_TRNS, KC_LCTL, KC_LSFT, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT( + QK_BOOT, KC_SLEP, KC_WAKE, KC_TRNS, KC_PWR, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSEL, KC_MYCM, KC_PSLS, KC_PAST, + RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD, RGB_M_P, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PDOT + ), + +}; diff --git a/keyboards/kraken_jones/pteron56/keymaps/via/rules.mk b/keyboards/kraken_jones/pteron56/keymaps/via/rules.mk new file mode 100644 index 0000000000..43061db1dd --- /dev/null +++ b/keyboards/kraken_jones/pteron56/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/kraken_jones/pteron56/readme.md b/keyboards/kraken_jones/pteron56/readme.md new file mode 100644 index 0000000000..aa5c97539b --- /dev/null +++ b/keyboards/kraken_jones/pteron56/readme.md @@ -0,0 +1,31 @@ +# Pteron56 + +![Pteron56](https://i.imgur.com/kt1RSi9h.jpg) + +The Pteron56 is a 56-key vertically staggered ortholinear keyboard with a 15 degree inward tilt per hand. + +Initially developed by [FSund](https://github.com/fsund), this keyboard was designed to potentially reduce wrist and typing strain by offsetting the keys in a manner that mimics the natural stagger of the human hand with 4 thumb keys per side arranged around an ~85mm arc to mimic the swimg of one's mighty thumbs. + +Users have reported reduced finger movement, reduced wrist movement, and better typing comfort and swiftness with the Pteron layouts compared to a standard keyboard. + +* Keyboard Maintainer: [Alex Moore](https://github.com/kraken-jokes) +* Hardware Supported: + * PCB: Pteron56v0.2, Pteron56v0.2hsu, Pteron56v0.3, Pteron56v0.4e + * MCU: Pro-Micro, Elite-C +* Hardware Availability: moorekeys.etsy.com. Open source though so it varies. + +Make example for this keyboard (after setting up your build environment): + + make pteron56:default + +Flashing example for this keyboard: + + make pteron56:default:flash + +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). + +## Bootloader + +Enter the bootloader thusly: +* **Keycode in layout**: Press and hold the right most thumb key on the left side (LT(2(KC_ALT)) and while that is held, hit the top left key on the left side of the keyboard (KC_ESC) which will reset the board and enter bootloader mode. +Thumb and pinky is my method, but do what you will. diff --git a/keyboards/kraken_jones/pteron56/rules.mk b/keyboards/kraken_jones/pteron56/rules.mk new file mode 100644 index 0000000000..876618b9d1 --- /dev/null +++ b/keyboards/kraken_jones/pteron56/rules.mk @@ -0,0 +1 @@ +# File is intentionally blank From 16f2a3e2f8235b8325fb3acf77801de088782150 Mon Sep 17 00:00:00 2001 From: Dasky <32983009+daskygit@users.noreply.github.com> Date: Mon, 18 Sep 2023 19:55:51 +0100 Subject: [PATCH 090/496] Add missing gpio include to ps2 vendor (#22063) --- platforms/chibios/drivers/vendor/RP/RP2040/ps2_vendor.c | 1 + 1 file changed, 1 insertion(+) diff --git a/platforms/chibios/drivers/vendor/RP/RP2040/ps2_vendor.c b/platforms/chibios/drivers/vendor/RP/RP2040/ps2_vendor.c index d775ec29d5..119c6354b0 100644 --- a/platforms/chibios/drivers/vendor/RP/RP2040/ps2_vendor.c +++ b/platforms/chibios/drivers/vendor/RP/RP2040/ps2_vendor.c @@ -1,6 +1,7 @@ // Copyright 2022 Marek Kraus (@gamelaster) // SPDX-License-Identifier: GPL-2.0-or-later +#include "gpio.h" #include "hardware/pio.h" #include "hardware/clocks.h" #include "ps2.h" From ef31109ad2e70d0f037d8902eb61496d490eba73 Mon Sep 17 00:00:00 2001 From: Shandon Anderson Date: Mon, 18 Sep 2023 21:00:11 -0400 Subject: [PATCH 091/496] [Keyboard] Add riot pad (#22060) Co-authored-by: ShandonCodes --- keyboards/riot_pad/config.h | 8 +++ keyboards/riot_pad/halconf.h | 7 +++ keyboards/riot_pad/info.json | 56 +++++++++++++++++++++ keyboards/riot_pad/keymaps/default/keymap.c | 22 ++++++++ keyboards/riot_pad/keymaps/via/keymap.c | 22 ++++++++ keyboards/riot_pad/keymaps/via/rules.mk | 1 + keyboards/riot_pad/mcuconf.h | 8 +++ keyboards/riot_pad/readme.md | 25 +++++++++ keyboards/riot_pad/rules.mk | 1 + 9 files changed, 150 insertions(+) create mode 100644 keyboards/riot_pad/config.h create mode 100644 keyboards/riot_pad/halconf.h create mode 100644 keyboards/riot_pad/info.json create mode 100644 keyboards/riot_pad/keymaps/default/keymap.c create mode 100644 keyboards/riot_pad/keymaps/via/keymap.c create mode 100644 keyboards/riot_pad/keymaps/via/rules.mk create mode 100644 keyboards/riot_pad/mcuconf.h create mode 100644 keyboards/riot_pad/readme.md create mode 100644 keyboards/riot_pad/rules.mk diff --git a/keyboards/riot_pad/config.h b/keyboards/riot_pad/config.h new file mode 100644 index 0000000000..97dcb1de3c --- /dev/null +++ b/keyboards/riot_pad/config.h @@ -0,0 +1,8 @@ +// Copyright 2023 ShandonCodes (@ShandonCodes) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define WS2812_SPI SPID1 +#define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN A5 diff --git a/keyboards/riot_pad/halconf.h b/keyboards/riot_pad/halconf.h new file mode 100644 index 0000000000..555a609029 --- /dev/null +++ b/keyboards/riot_pad/halconf.h @@ -0,0 +1,7 @@ +// Copyright 2023 ShandonCodes (@ShandonCodes) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define HAL_USE_SPI TRUE + +#include_next \ No newline at end of file diff --git a/keyboards/riot_pad/info.json b/keyboards/riot_pad/info.json new file mode 100644 index 0000000000..0798a4de60 --- /dev/null +++ b/keyboards/riot_pad/info.json @@ -0,0 +1,56 @@ +{ + "manufacturer": "ShandonCodes", + "keyboard_name": "RiotPad", + "maintainer": "ShandonCodes", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["B14", "A8", "A9"], + "rows": ["B13", "B15"] + }, + "processor": "STM32F072", + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "led_count": 12 + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x1000", + "vid": "0x7877" + }, + "ws2812": { + "driver": "spi", + "pin": "A7" + }, + "community_layouts": ["ortho_2x3"], + "layouts": { + "LAYOUT_ortho_2x3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1} + ] + } + } +} diff --git a/keyboards/riot_pad/keymaps/default/keymap.c b/keyboards/riot_pad/keymaps/default/keymap.c new file mode 100644 index 0000000000..0e6eda839e --- /dev/null +++ b/keyboards/riot_pad/keymaps/default/keymap.c @@ -0,0 +1,22 @@ +// Copyright 2023 ShandonCodes (@ShandonCodes) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬────┐ + * │ A │ B │ C │ + * ├───┼───┼────┤ + * │ D │ E │ Fn │ + * └───┴───┴────┘ + */ + [0] = LAYOUT_ortho_2x3( + KC_A, KC_B, KC_C, + KC_D, KC_E, MO(1) + ), + [1] = LAYOUT_ortho_2x3( + RGB_MOD, RGB_RMOD, RGB_TOG, + RGB_VAI, RGB_VAD, KC_TRNS + ) +}; diff --git a/keyboards/riot_pad/keymaps/via/keymap.c b/keyboards/riot_pad/keymaps/via/keymap.c new file mode 100644 index 0000000000..0e6eda839e --- /dev/null +++ b/keyboards/riot_pad/keymaps/via/keymap.c @@ -0,0 +1,22 @@ +// Copyright 2023 ShandonCodes (@ShandonCodes) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬────┐ + * │ A │ B │ C │ + * ├───┼───┼────┤ + * │ D │ E │ Fn │ + * └───┴───┴────┘ + */ + [0] = LAYOUT_ortho_2x3( + KC_A, KC_B, KC_C, + KC_D, KC_E, MO(1) + ), + [1] = LAYOUT_ortho_2x3( + RGB_MOD, RGB_RMOD, RGB_TOG, + RGB_VAI, RGB_VAD, KC_TRNS + ) +}; diff --git a/keyboards/riot_pad/keymaps/via/rules.mk b/keyboards/riot_pad/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/riot_pad/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/riot_pad/mcuconf.h b/keyboards/riot_pad/mcuconf.h new file mode 100644 index 0000000000..7c3eec4802 --- /dev/null +++ b/keyboards/riot_pad/mcuconf.h @@ -0,0 +1,8 @@ +// Copyright 2023 ShandonCodes (@ShandonCodes) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE \ No newline at end of file diff --git a/keyboards/riot_pad/readme.md b/keyboards/riot_pad/readme.md new file mode 100644 index 0000000000..c2c3ffd4be --- /dev/null +++ b/keyboards/riot_pad/readme.md @@ -0,0 +1,25 @@ +# riot_pad + +![riot_pad](https://i.imgur.com/zH6H3pSh.png) + +A RGB lovin', 6 key macropad. + +* Keyboard Maintainer: [ShandonCodes](https://github.com/ShandonCodes) +* Hardware Supported: RiotPad PCB +* Hardware Availability: [Limited Groupbuy](https://store.shandon.codes/) + +Make example for this keyboard (after setting up your build environment): + + make riot_pad:default + +Flashing example for this keyboard: + + make riot_pad:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (top left key) and plug in the keyboard diff --git a/keyboards/riot_pad/rules.mk b/keyboards/riot_pad/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/riot_pad/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file From 74360d0a01d58baf68109f6380144c7f3c69ef91 Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Tue, 19 Sep 2023 03:37:14 +0100 Subject: [PATCH 092/496] [Keymap] fix unxmaal for 60_iso (#21975) --- layouts/community/60_iso/unxmaal/config.h | 32 ++++++++++++----------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/layouts/community/60_iso/unxmaal/config.h b/layouts/community/60_iso/unxmaal/config.h index 4606bc8a6d..38384666ee 100644 --- a/layouts/community/60_iso/unxmaal/config.h +++ b/layouts/community/60_iso/unxmaal/config.h @@ -17,18 +17,20 @@ along with this program. If not, see . #pragma once -#define WS2812_DI_PIN F4 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - #define RGBLED_NUM 8 // Number of LEDs - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 +#ifdef KEYBOARD_gh60_revc +# define WS2812_DI_PIN F4 +# define RGBLIGHT_EFFECT_BREATHING +# define RGBLIGHT_EFFECT_RAINBOW_MOOD +# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +# define RGBLIGHT_EFFECT_SNAKE +# define RGBLIGHT_EFFECT_KNIGHT +# define RGBLIGHT_EFFECT_CHRISTMAS +# define RGBLIGHT_EFFECT_STATIC_GRADIENT +# define RGBLIGHT_EFFECT_RGB_TEST +# define RGBLIGHT_EFFECT_ALTERNATING +# define RGBLIGHT_EFFECT_TWINKLE +# define RGBLED_NUM 8 +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 +#endif From 8f221052897754870e5c08a2de92c24d20cd307e Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 19 Sep 2023 19:31:54 +1000 Subject: [PATCH 093/496] Add and use I2C address defines for ISSI LED drivers (#22008) --- docs/feature_led_matrix.md | 32 +++++---- docs/feature_rgb_matrix.md | 69 ++++++++++--------- drivers/led/ckled2001-simple.h | 5 ++ drivers/led/ckled2001.h | 5 ++ drivers/led/issi/is31fl3731-simple.c | 9 --- drivers/led/issi/is31fl3731-simple.h | 5 ++ drivers/led/issi/is31fl3731.c | 9 --- drivers/led/issi/is31fl3731.h | 5 ++ drivers/led/issi/is31fl3733-simple.c | 12 ---- drivers/led/issi/is31fl3733-simple.h | 17 +++++ drivers/led/issi/is31fl3733.c | 12 ---- drivers/led/issi/is31fl3733.h | 17 +++++ drivers/led/issi/is31fl3736.c | 12 ---- drivers/led/issi/is31fl3736.h | 17 +++++ drivers/led/issi/is31fl3737.c | 12 ---- drivers/led/issi/is31fl3737.h | 11 ++- drivers/led/issi/is31fl3741.c | 12 ---- drivers/led/issi/is31fl3741.h | 5 ++ keyboards/4pplet/perk60_iso/rev_a/config.h | 2 +- keyboards/abko/ak84bt/config.h | 4 +- keyboards/acheron/apollo/87h/gamma/config.h | 2 +- keyboards/aeboards/satellite/rev1/config.h | 4 +- keyboards/axolstudio/yeti/hotswap/config.h | 2 +- keyboards/canary/canary60rgb/v1/config.h | 2 +- keyboards/clueboard/66_hotswap/gen1/config.h | 9 +-- keyboards/dp60/config.h | 4 +- keyboards/drop/alt/v2/config.h | 4 +- keyboards/drop/ctrl/v2/config.h | 4 +- keyboards/drop/sense75/config.h | 4 +- keyboards/drop/shift/v2/config.h | 6 +- keyboards/durgod/dgk6x/config.h | 15 +--- keyboards/dztech/dz60rgb/v1/config.h | 2 +- keyboards/dztech/dz60rgb/v2/config.h | 2 +- keyboards/dztech/dz60rgb/v2_1/config.h | 2 +- keyboards/dztech/dz60rgb_ansi/v1/config.h | 2 +- keyboards/dztech/dz60rgb_ansi/v2/config.h | 2 +- keyboards/dztech/dz60rgb_ansi/v2_1/config.h | 2 +- keyboards/dztech/dz60rgb_wkl/v1/config.h | 2 +- keyboards/dztech/dz60rgb_wkl/v2/config.h | 2 +- keyboards/dztech/dz60rgb_wkl/v2_1/config.h | 2 +- keyboards/dztech/dz64rgb/config.h | 2 +- keyboards/dztech/dz65rgb/v1/config.h | 4 +- keyboards/dztech/dz65rgb/v2/config.h | 4 +- keyboards/dztech/dz65rgb/v3/config.h | 2 +- keyboards/dztech/tofu/ii/v1/config.h | 4 +- keyboards/dztech/tofu/jr/v1/config.h | 4 +- keyboards/ergodox_ez/config.h | 4 +- keyboards/evyd13/atom47/rev5/config.h | 12 +--- keyboards/exclusive/e6_rgb/config.h | 2 +- keyboards/fallacy/config.h | 2 +- keyboards/feker/ik75/config.h | 4 +- keyboards/ferris/0_2/bling/config.h | 4 +- keyboards/flashquark/horizon_z/config.h | 2 +- keyboards/frooastboard/walnut/config.h | 2 +- keyboards/geekboards/tester/config.h | 4 +- keyboards/gizmo_engineering/gk6/config.h | 4 +- keyboards/handwired/orbweaver/config.h | 2 +- keyboards/hs60/v1/config.h | 4 +- keyboards/ilumkb/simpler61/config.h | 2 +- keyboards/ilumkb/simpler64/config.h | 2 +- keyboards/inett_studio/sqx/hotswap/config.h | 4 +- keyboards/inett_studio/sqx/universal/config.h | 4 +- .../input_club/ergodox_infinity/config.h | 2 +- keyboards/input_club/k_type/config.h | 4 +- keyboards/input_club/k_type/is31fl3733-dual.c | 12 ---- keyboards/input_club/k_type/is31fl3733-dual.h | 17 +++++ keyboards/input_club/whitefox/config.h | 2 +- keyboards/kbdcraft/adam64/config.h | 2 +- keyboards/kbdfans/bella/rgb/config.h | 2 +- keyboards/kbdfans/bella/rgb_iso/config.h | 2 +- keyboards/kbdfans/boop65/rgb/config.h | 2 +- keyboards/kbdfans/kbd67/mkiirgb/v1/config.h | 4 +- keyboards/kbdfans/kbd67/mkiirgb/v2/config.h | 4 +- keyboards/kbdfans/kbd67/mkiirgb/v3/config.h | 2 +- keyboards/kbdfans/kbdmini/config.h | 2 +- keyboards/kbdfans/maja/config.h | 4 +- keyboards/keychron/c1_pro/ansi/rgb/config.h | 4 +- keyboards/keychron/c1_pro/ansi/white/config.h | 2 +- keyboards/keychron/c2_pro/ansi/rgb/config.h | 4 +- keyboards/keychron/c2_pro/ansi/white/config.h | 2 +- keyboards/keychron/q0/rev_0130/config.h | 2 +- keyboards/keychron/q0/rev_0131/config.h | 2 +- keyboards/keychron/q1/config.h | 4 +- keyboards/keychron/q10/config.h | 4 +- keyboards/keychron/q11/config.h | 2 +- keyboards/keychron/q12/config.h | 4 +- keyboards/keychron/q2/config.h | 4 +- keyboards/keychron/q3/config.h | 4 +- keyboards/keychron/q4/ansi_v1/config.h | 4 +- keyboards/keychron/q4/ansi_v2/config.h | 2 +- keyboards/keychron/q4/iso/config.h | 2 +- keyboards/keychron/q5/config.h | 4 +- keyboards/keychron/q6/config.h | 4 +- keyboards/keychron/q60/config.h | 2 +- keyboards/keychron/q65/config.h | 4 +- keyboards/keychron/q7/config.h | 4 +- keyboards/keychron/q8/config.h | 4 +- keyboards/keychron/q9/config.h | 2 +- keyboards/keychron/s1/ansi/rgb/config.h | 4 +- keyboards/keychron/s1/ansi/white/config.h | 2 +- keyboards/keychron/v1/config.h | 4 +- keyboards/keychron/v10/config.h | 4 +- keyboards/keychron/v2/config.h | 4 +- keyboards/keychron/v3/config.h | 4 +- keyboards/keychron/v4/config.h | 2 +- keyboards/keychron/v5/config.h | 4 +- keyboards/keychron/v6/config.h | 4 +- keyboards/keychron/v7/config.h | 4 +- keyboards/keychron/v8/config.h | 4 +- keyboards/kprepublic/bm60hsrgb/rev2/config.h | 2 +- .../kprepublic/bm60hsrgb_ec/rev2/config.h | 2 +- .../kprepublic/bm60hsrgb_iso/rev2/config.h | 2 +- .../kprepublic/bm60hsrgb_poker/rev2/config.h | 2 +- keyboards/kprepublic/bm68hsrgb/rev2/config.h | 2 +- keyboards/kprepublic/bm80v2/config.h | 2 +- keyboards/kprepublic/bm80v2_iso/config.h | 2 +- keyboards/latincompass/latin17rgb/config.h | 11 +-- keyboards/latincompass/latin60rgb/config.h | 2 +- keyboards/latincompass/latin6rgb/config.h | 9 +-- keyboards/matrix/m20add/config.h | 2 +- keyboards/matrix/noah/config.h | 4 +- .../mechlovin/adelais/rgb_led/rev2/config.h | 11 +-- .../mechlovin/adelais/rgb_led/rev3/config.h | 9 +-- keyboards/mechlovin/delphine/rgb_led/config.h | 10 +-- keyboards/mechlovin/hannah60rgb/rev2/config.h | 12 +--- .../mechlovin/infinity87/rgb_rev1/config.h | 9 +-- keyboards/mechlovin/olly/octagon/config.h | 9 +-- keyboards/mechlovin/zed65/mono_led/config.h | 9 +-- keyboards/melgeek/mach80/config.h | 2 +- keyboards/melgeek/mj61/config.h | 2 +- keyboards/melgeek/mj63/config.h | 2 +- keyboards/melgeek/mj64/config.h | 2 +- keyboards/melgeek/mj65/config.h | 2 +- keyboards/melgeek/mojo68/config.h | 2 +- keyboards/melgeek/mojo75/config.h | 2 +- keyboards/melgeek/tegic/config.h | 2 +- keyboards/melgeek/z70ultra/config.h | 2 +- keyboards/miller/gm862/config.h | 2 +- keyboards/moonlander/config.h | 4 +- keyboards/mt/mt64rgb/config.h | 2 +- keyboards/mt/mt84/config.h | 4 +- keyboards/neson_design/700e/config.h | 4 +- keyboards/neson_design/n6/config.h | 4 +- keyboards/opendeck/32/rev1/config.h | 2 +- keyboards/owlab/voice65/hotswap/config.h | 2 +- keyboards/owlab/voice65/soldered/config.h | 2 +- keyboards/planck/ez/config.h | 2 +- keyboards/planck/light/config.h | 11 +-- keyboards/playkbtw/pk64rgb/config.h | 2 +- keyboards/redragon/k667/config.h | 4 +- keyboards/smallkeyboard/config.h | 9 +-- keyboards/teleport/native/config.h | 4 +- keyboards/terrazzo/config.h | 2 +- keyboards/tkc/portico/config.h | 4 +- keyboards/tkc/portico68v2/config.h | 2 +- keyboards/tkc/portico75/config.h | 2 +- keyboards/wilba_tech/wt_rgb_backlight.c | 51 ++++---------- keyboards/xbows/knight/config.h | 6 +- keyboards/xbows/knight_plus/config.h | 6 +- keyboards/xbows/nature/config.h | 6 +- keyboards/xbows/numpad/config.h | 2 +- keyboards/xbows/ranger/config.h | 6 +- keyboards/xbows/woody/config.h | 4 +- keyboards/xelus/dawn60/rev1_qmk/config.h | 4 +- keyboards/xelus/pachi/rgb/rev1/config.h | 2 +- keyboards/xelus/pachi/rgb/rev2/config.h | 2 +- 166 files changed, 385 insertions(+), 496 deletions(-) diff --git a/docs/feature_led_matrix.md b/docs/feature_led_matrix.md index b22d4ad3a3..e44cc87e32 100644 --- a/docs/feature_led_matrix.md +++ b/docs/feature_led_matrix.md @@ -34,12 +34,14 @@ Here is an example using 2 drivers. // This is a 7-bit address, that gets left-shifted and bit 0 // set to 0 for write, 1 for read (as per I2C protocol) // The address will vary depending on your wiring: -// 0b1110100 AD <-> GND -// 0b1110111 AD <-> VCC -// 0b1110101 AD <-> SCL -// 0b1110110 AD <-> SDA -#define LED_DRIVER_ADDR_1 0b1110100 -#define LED_DRIVER_ADDR_2 0b1110110 +// 00 AD <-> GND +// 01 AD <-> SCL +// 10 AD <-> SDA +// 11 AD <-> VCC +// ADDR represents A1:A0 of the 7-bit address. +// The result is: 0b11101(ADDR) +#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define LED_DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define LED_DRIVER_1_LED_TOTAL 25 @@ -159,7 +161,7 @@ Then Define the array listing all the LEDs you want to override in your ` GND -// 0b1110111 AD <-> VCC -// 0b1110101 AD <-> SCL -// 0b1110110 AD <-> SDA -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110110 +// 00 AD <-> GND +// 01 AD <-> SCL +// 10 AD <-> SDA +// 11 AD <-> VCC +// ADDR represents A1:A0 of the 7-bit address. +// The result is: 0b11101(ADDR) +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 25 @@ -118,15 +120,15 @@ Here is an example using 2 drivers. // This is a 7-bit address, that gets left-shifted and bit 0 // set to 0 for write, 1 for read (as per I2C protocol) // The address will vary depending on your wiring: -// 00 <-> GND -// 01 <-> SCL -// 10 <-> SDA -// 11 <-> VCC +// 00 ADDRn <-> GND +// 01 ADDRn <-> SCL +// 10 ADDRn <-> SDA +// 11 ADDRn <-> VCC // ADDR1 represents A1:A0 of the 7-bit address. // ADDR2 represents A3:A2 of the 7-bit address. // The result is: 0b101(ADDR2)(ADDR1) -#define DRIVER_ADDR_1 0b1010000 -#define DRIVER_ADDR_2 0b1010011 +#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_VCC #define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 58 @@ -202,14 +204,15 @@ Here is an example using 2 drivers. // This is a 7-bit address, that gets left-shifted and bit 0 // set to 0 for write, 1 for read (as per I2C protocol) // The address will vary depending on your wiring: -// 0000 <-> GND -// 0101 <-> SCL -// 1010 <-> SDA -// 1111 <-> VCC -// ADDR represents A3:A0 of the 7-bit address. -// The result is: 0b101(ADDR) -#define DRIVER_ADDR_1 0b1010000 -#define DRIVER_ADDR_2 0b1010001 +// 00 ADDRn <-> GND +// 01 ADDRn <-> SCL +// 10 ADDRn <-> SDA +// 11 ADDRn <-> VCC +// ADDR1 represents A1:A0 of the 7-bit address. +// ADDR2 represents A3:A2 of the 7-bit address. +// The result is: 0b101(ADDR2)(ADDR1) +#define DRIVER_ADDR_1 IS31FL3736_I2C_ADDRESS_GND_GND +#define DRIVER_ADDR_2 IS31FL3736_I2C_ADDRESS_GND_SCL #define IS31FL3736_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 30 @@ -278,14 +281,14 @@ Here is an example using 2 drivers. // This is a 7-bit address, that gets left-shifted and bit 0 // set to 0 for write, 1 for read (as per I2C protocol) // The address will vary depending on your wiring: -// 0000 <-> GND -// 0101 <-> SCL -// 1010 <-> SDA -// 1111 <-> VCC +// 0000 ADDR <-> GND +// 0101 ADDR <-> SCL +// 1010 ADDR <-> SDA +// 1111 ADDR <-> VCC // ADDR represents A3:A0 of the 7-bit address. // The result is: 0b101(ADDR) -#define DRIVER_ADDR_1 0b1010000 -#define DRIVER_ADDR_2 0b1010001 +#define DRIVER_ADDR_1 IS31FL3737_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 IS31FL3737_I2C_ADDRESS_SCL #define IS31FL3737_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 30 @@ -407,7 +410,7 @@ Then Define the array listing all the LEDs you want to override in your ` GND -// 0b1110111 AD <-> VCC -// 0b1110101 AD <-> SCL -// 0b1110110 AD <-> SDA -#define IS31FL3731_I2C_ADDRESS_DEFAULT 0x74 - #define IS31FL3731_REG_CONFIG 0x00 #define IS31FL3731_REG_CONFIG_PICTUREMODE 0x00 #define IS31FL3731_REG_CONFIG_AUTOPLAYMODE 0x08 diff --git a/drivers/led/issi/is31fl3731-simple.h b/drivers/led/issi/is31fl3731-simple.h index ee830faca8..e6c9ce37c5 100644 --- a/drivers/led/issi/is31fl3731-simple.h +++ b/drivers/led/issi/is31fl3731-simple.h @@ -37,6 +37,11 @@ #endif // ======== +#define IS31FL3731_I2C_ADDRESS_GND 0x74 +#define IS31FL3731_I2C_ADDRESS_SCL 0x75 +#define IS31FL3731_I2C_ADDRESS_SDA 0x76 +#define IS31FL3731_I2C_ADDRESS_VCC 0x77 + typedef struct is31_led { uint8_t driver : 2; uint8_t v; diff --git a/drivers/led/issi/is31fl3731.c b/drivers/led/issi/is31fl3731.c index 9e2d39c692..2123438a5f 100644 --- a/drivers/led/issi/is31fl3731.c +++ b/drivers/led/issi/is31fl3731.c @@ -21,15 +21,6 @@ #include "i2c_master.h" #include "wait.h" -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -// The address will vary depending on your wiring: -// 0b1110100 AD <-> GND -// 0b1110111 AD <-> VCC -// 0b1110101 AD <-> SCL -// 0b1110110 AD <-> SDA -#define IS31FL3731_I2C_ADDRESS_DEFAULT 0x74 - #define IS31FL3731_REG_CONFIG 0x00 #define IS31FL3731_REG_CONFIG_PICTUREMODE 0x00 #define IS31FL3731_REG_CONFIG_AUTOPLAYMODE 0x08 diff --git a/drivers/led/issi/is31fl3731.h b/drivers/led/issi/is31fl3731.h index 97e3f454df..ccd972a03e 100644 --- a/drivers/led/issi/is31fl3731.h +++ b/drivers/led/issi/is31fl3731.h @@ -36,6 +36,11 @@ #endif // ======== +#define IS31FL3731_I2C_ADDRESS_GND 0x74 +#define IS31FL3731_I2C_ADDRESS_SCL 0x75 +#define IS31FL3731_I2C_ADDRESS_SDA 0x76 +#define IS31FL3731_I2C_ADDRESS_VCC 0x77 + typedef struct is31_led { uint8_t driver : 2; uint8_t r; diff --git a/drivers/led/issi/is31fl3733-simple.c b/drivers/led/issi/is31fl3733-simple.c index c52e1ff9f1..514d9e366d 100644 --- a/drivers/led/issi/is31fl3733-simple.c +++ b/drivers/led/issi/is31fl3733-simple.c @@ -23,18 +23,6 @@ #include "i2c_master.h" #include "wait.h" -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -// The address will vary depending on your wiring: -// 00 <-> GND -// 01 <-> SCL -// 10 <-> SDA -// 11 <-> VCC -// ADDR1 represents A1:A0 of the 7-bit address. -// ADDR2 represents A3:A2 of the 7-bit address. -// The result is: 0b101(ADDR2)(ADDR1) -#define IS31FL3733_I2C_ADDRESS_DEFAULT 0x50 - #define IS31FL3733_COMMANDREGISTER 0xFD #define IS31FL3733_COMMANDREGISTER_WRITELOCK 0xFE #define IS31FL3733_INTERRUPTMASKREGISTER 0xF0 diff --git a/drivers/led/issi/is31fl3733-simple.h b/drivers/led/issi/is31fl3733-simple.h index 7e06e2af02..b870c5c58c 100644 --- a/drivers/led/issi/is31fl3733-simple.h +++ b/drivers/led/issi/is31fl3733-simple.h @@ -56,6 +56,23 @@ #define PUR_32KR IS31FL3733_PUR_32KR // ======== +#define IS31FL3733_I2C_ADDRESS_GND_GND 0x50 +#define IS31FL3733_I2C_ADDRESS_GND_SCL 0x51 +#define IS31FL3733_I2C_ADDRESS_GND_SDA 0x52 +#define IS31FL3733_I2C_ADDRESS_GND_VCC 0x53 +#define IS31FL3733_I2C_ADDRESS_SCL_GND 0x54 +#define IS31FL3733_I2C_ADDRESS_SCL_SCL 0x55 +#define IS31FL3733_I2C_ADDRESS_SCL_SDA 0x56 +#define IS31FL3733_I2C_ADDRESS_SCL_VCC 0x57 +#define IS31FL3733_I2C_ADDRESS_SDA_GND 0x58 +#define IS31FL3733_I2C_ADDRESS_SDA_SCL 0x59 +#define IS31FL3733_I2C_ADDRESS_SDA_SDA 0x5A +#define IS31FL3733_I2C_ADDRESS_SDA_VCC 0x5B +#define IS31FL3733_I2C_ADDRESS_VCC_GND 0x5C +#define IS31FL3733_I2C_ADDRESS_VCC_SCL 0x5D +#define IS31FL3733_I2C_ADDRESS_VCC_SDA 0x5E +#define IS31FL3733_I2C_ADDRESS_VCC_VCC 0x5F + typedef struct is31_led { uint8_t driver : 2; uint8_t v; diff --git a/drivers/led/issi/is31fl3733.c b/drivers/led/issi/is31fl3733.c index 3ee9b14c81..e501175a11 100644 --- a/drivers/led/issi/is31fl3733.c +++ b/drivers/led/issi/is31fl3733.c @@ -22,18 +22,6 @@ #include "i2c_master.h" #include "wait.h" -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -// The address will vary depending on your wiring: -// 00 <-> GND -// 01 <-> SCL -// 10 <-> SDA -// 11 <-> VCC -// ADDR1 represents A1:A0 of the 7-bit address. -// ADDR2 represents A3:A2 of the 7-bit address. -// The result is: 0b101(ADDR2)(ADDR1) -#define IS31FL3733_I2C_ADDRESS_DEFAULT 0x50 - #define IS31FL3733_COMMANDREGISTER 0xFD #define IS31FL3733_COMMANDREGISTER_WRITELOCK 0xFE #define IS31FL3733_INTERRUPTMASKREGISTER 0xF0 diff --git a/drivers/led/issi/is31fl3733.h b/drivers/led/issi/is31fl3733.h index 3c17723f92..e16560807f 100644 --- a/drivers/led/issi/is31fl3733.h +++ b/drivers/led/issi/is31fl3733.h @@ -55,6 +55,23 @@ #define PUR_32KR IS31FL3733_PUR_32KR // ======== +#define IS31FL3733_I2C_ADDRESS_GND_GND 0x50 +#define IS31FL3733_I2C_ADDRESS_GND_SCL 0x51 +#define IS31FL3733_I2C_ADDRESS_GND_SDA 0x52 +#define IS31FL3733_I2C_ADDRESS_GND_VCC 0x53 +#define IS31FL3733_I2C_ADDRESS_SCL_GND 0x54 +#define IS31FL3733_I2C_ADDRESS_SCL_SCL 0x55 +#define IS31FL3733_I2C_ADDRESS_SCL_SDA 0x56 +#define IS31FL3733_I2C_ADDRESS_SCL_VCC 0x57 +#define IS31FL3733_I2C_ADDRESS_SDA_GND 0x58 +#define IS31FL3733_I2C_ADDRESS_SDA_SCL 0x59 +#define IS31FL3733_I2C_ADDRESS_SDA_SDA 0x5A +#define IS31FL3733_I2C_ADDRESS_SDA_VCC 0x5B +#define IS31FL3733_I2C_ADDRESS_VCC_GND 0x5C +#define IS31FL3733_I2C_ADDRESS_VCC_SCL 0x5D +#define IS31FL3733_I2C_ADDRESS_VCC_SDA 0x5E +#define IS31FL3733_I2C_ADDRESS_VCC_VCC 0x5F + typedef struct is31_led { uint8_t driver : 2; uint8_t r; diff --git a/drivers/led/issi/is31fl3736.c b/drivers/led/issi/is31fl3736.c index c8c035854f..7f50411f1f 100644 --- a/drivers/led/issi/is31fl3736.c +++ b/drivers/led/issi/is31fl3736.c @@ -20,18 +20,6 @@ #include "i2c_master.h" #include "wait.h" -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -// The address will vary depending on your wiring: -// 00 <-> GND -// 01 <-> SCL -// 10 <-> SDA -// 11 <-> VCC -// ADDR1 represents A1:A0 of the 7-bit address. -// ADDR2 represents A3:A2 of the 7-bit address. -// The result is: 0b101(ADDR2)(ADDR1) -#define IS31FL3736_I2C_ADDRESS_DEFAULT 0x50 - #define IS31FL3736_COMMANDREGISTER 0xFD #define IS31FL3736_COMMANDREGISTER_WRITELOCK 0xFE #define IS31FL3736_INTERRUPTMASKREGISTER 0xF0 diff --git a/drivers/led/issi/is31fl3736.h b/drivers/led/issi/is31fl3736.h index 5cc1262633..baf200f8ad 100644 --- a/drivers/led/issi/is31fl3736.h +++ b/drivers/led/issi/is31fl3736.h @@ -51,6 +51,23 @@ #define PUR_32KR IS31FL3736_PUR_32KR // ======== +#define IS31FL3736_I2C_ADDRESS_GND_GND 0x50 +#define IS31FL3736_I2C_ADDRESS_GND_SCL 0x51 +#define IS31FL3736_I2C_ADDRESS_GND_SDA 0x52 +#define IS31FL3736_I2C_ADDRESS_GND_VCC 0x53 +#define IS31FL3736_I2C_ADDRESS_SCL_GND 0x54 +#define IS31FL3736_I2C_ADDRESS_SCL_SCL 0x55 +#define IS31FL3736_I2C_ADDRESS_SCL_SDA 0x56 +#define IS31FL3736_I2C_ADDRESS_SCL_VCC 0x57 +#define IS31FL3736_I2C_ADDRESS_SDA_GND 0x58 +#define IS31FL3736_I2C_ADDRESS_SDA_SCL 0x59 +#define IS31FL3736_I2C_ADDRESS_SDA_SDA 0x5A +#define IS31FL3736_I2C_ADDRESS_SDA_VCC 0x5B +#define IS31FL3736_I2C_ADDRESS_VCC_GND 0x5C +#define IS31FL3736_I2C_ADDRESS_VCC_SCL 0x5D +#define IS31FL3736_I2C_ADDRESS_VCC_SDA 0x5E +#define IS31FL3736_I2C_ADDRESS_VCC_VCC 0x5F + typedef struct is31_led { uint8_t driver : 2; uint8_t r; diff --git a/drivers/led/issi/is31fl3737.c b/drivers/led/issi/is31fl3737.c index 550d26da8d..3d93548a46 100644 --- a/drivers/led/issi/is31fl3737.c +++ b/drivers/led/issi/is31fl3737.c @@ -22,18 +22,6 @@ #include "i2c_master.h" #include "wait.h" -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -// The address will vary depending on your wiring: -// 00 <-> GND -// 01 <-> SCL -// 10 <-> SDA -// 11 <-> VCC -// ADDR1 represents A1:A0 of the 7-bit address. -// ADDR2 represents A3:A2 of the 7-bit address. -// The result is: 0b101(ADDR2)(ADDR1) -#define IS31FL3737_I2C_ADDRESS_DEFAULT 0x50 - #define IS31FL3737_COMMANDREGISTER 0xFD #define IS31FL3737_COMMANDREGISTER_WRITELOCK 0xFE #define IS31FL3737_INTERRUPTMASKREGISTER 0xF0 diff --git a/drivers/led/issi/is31fl3737.h b/drivers/led/issi/is31fl3737.h index e382602e9a..2d6612b704 100644 --- a/drivers/led/issi/is31fl3737.h +++ b/drivers/led/issi/is31fl3737.h @@ -19,6 +19,10 @@ #pragma once +#include +#include +#include "progmem.h" + // ======== DEPRECATED DEFINES - DO NOT USE ======== #ifdef DRIVER_COUNT # define IS31FL3737_DRIVER_COUNT DRIVER_COUNT @@ -52,9 +56,10 @@ #define PUR_32KR IS31FL3737_PUR_32KR // ======== -#include -#include -#include "progmem.h" +#define IS31FL3737_I2C_ADDRESS_GND 0x50 +#define IS31FL3737_I2C_ADDRESS_SCL 0x55 +#define IS31FL3737_I2C_ADDRESS_SDA 0x5A +#define IS31FL3737_I2C_ADDRESS_VCC 0x5F typedef struct is31_led { uint8_t driver : 2; diff --git a/drivers/led/issi/is31fl3741.c b/drivers/led/issi/is31fl3741.c index 2db1f021b1..f34e0b87a1 100644 --- a/drivers/led/issi/is31fl3741.c +++ b/drivers/led/issi/is31fl3741.c @@ -22,18 +22,6 @@ #include "i2c_master.h" #include "wait.h" -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -// The address will vary depending on your wiring: -// 00 <-> GND -// 01 <-> SCL -// 10 <-> SDA -// 11 <-> VCC -// ADDR1 represents A1:A0 of the 7-bit address. -// ADDR2 represents A3:A2 of the 7-bit address. -// The result is: 0b101(ADDR2)(ADDR1) -#define IS31FL3741_I2C_ADDRESS_DEFAULT 0x60 - #define IS31FL3741_COMMANDREGISTER 0xFD #define IS31FL3741_COMMANDREGISTER_WRITELOCK 0xFE #define IS31FL3741_INTERRUPTMASKREGISTER 0xF0 diff --git a/drivers/led/issi/is31fl3741.h b/drivers/led/issi/is31fl3741.h index b7317bdab6..65f8af98c8 100644 --- a/drivers/led/issi/is31fl3741.h +++ b/drivers/led/issi/is31fl3741.h @@ -56,6 +56,11 @@ #define PUR_32KR IS31FL3741_PUR_32KR // ======== +#define IS31FL3741_I2C_ADDRESS_GND 0x30 +#define IS31FL3741_I2C_ADDRESS_SCL 0x31 +#define IS31FL3741_I2C_ADDRESS_SDA 0x32 +#define IS31FL3741_I2C_ADDRESS_VCC 0x33 + typedef struct is31_led { uint32_t driver : 2; uint32_t r : 10; diff --git a/keyboards/4pplet/perk60_iso/rev_a/config.h b/keyboards/4pplet/perk60_iso/rev_a/config.h index 76f2600590..53919dd7ab 100644 --- a/keyboards/4pplet/perk60_iso/rev_a/config.h +++ b/keyboards/4pplet/perk60_iso/rev_a/config.h @@ -21,7 +21,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define DRIVER_ADDR_1 0b1010000 +#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 62 #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ diff --git a/keyboards/abko/ak84bt/config.h b/keyboards/abko/ak84bt/config.h index 8c08c88055..24c16eccf0 100644 --- a/keyboards/abko/ak84bt/config.h +++ b/keyboards/abko/ak84bt/config.h @@ -17,8 +17,8 @@ #pragma once -#define DRIVER_ADDR_1 0b1010000 -#define DRIVER_ADDR_2 0b1010011 +#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_VCC #define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 45 diff --git a/keyboards/acheron/apollo/87h/gamma/config.h b/keyboards/acheron/apollo/87h/gamma/config.h index 9d681aedb5..f7cad264d2 100644 --- a/keyboards/acheron/apollo/87h/gamma/config.h +++ b/keyboards/acheron/apollo/87h/gamma/config.h @@ -25,7 +25,7 @@ along with this program. If not, see . #define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE // RGB Matrix defines -#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 87 diff --git a/keyboards/aeboards/satellite/rev1/config.h b/keyboards/aeboards/satellite/rev1/config.h index 915b9f4b49..5eb44a5f53 100644 --- a/keyboards/aeboards/satellite/rev1/config.h +++ b/keyboards/aeboards/satellite/rev1/config.h @@ -17,8 +17,8 @@ #pragma once //RGB Matrix defines -#define DRIVER_ADDR_1 0x74 -#define DRIVER_ADDR_2 0x76 +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 diff --git a/keyboards/axolstudio/yeti/hotswap/config.h b/keyboards/axolstudio/yeti/hotswap/config.h index 85d9cfbedd..66599c89f0 100644 --- a/keyboards/axolstudio/yeti/hotswap/config.h +++ b/keyboards/axolstudio/yeti/hotswap/config.h @@ -61,7 +61,7 @@ along with this program. If not, see . # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // 16 is equivalent to limiting to 60fps # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended -# define DRIVER_ADDR_1 0b1010000 +# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 64 #endif diff --git a/keyboards/canary/canary60rgb/v1/config.h b/keyboards/canary/canary60rgb/v1/config.h index 2b733b2649..ca20d9c0f2 100644 --- a/keyboards/canary/canary60rgb/v1/config.h +++ b/keyboards/canary/canary60rgb/v1/config.h @@ -33,7 +33,7 @@ # define DISABLE_RGB_MATRIX_MULTISPLASH # define DISABLE_RGB_MATRIX_SOLID_SPLASH # define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 0b1010000 +# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 63 #endif diff --git a/keyboards/clueboard/66_hotswap/gen1/config.h b/keyboards/clueboard/66_hotswap/gen1/config.h index 5d3af942ad..ff4863266a 100644 --- a/keyboards/clueboard/66_hotswap/gen1/config.h +++ b/keyboards/clueboard/66_hotswap/gen1/config.h @@ -33,14 +33,7 @@ //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -// The address will vary depending on your wiring: -// 0b1110100 AD <-> GND -// 0b1110111 AD <-> VCC -// 0b1110101 AD <-> SCL -// 0b1110110 AD <-> SDA -#define LED_DRIVER_ADDR_1 0b1110100 +#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND #define I2C1_SCL_PIN B8 #define I2C1_SDA_PIN B9 diff --git a/keyboards/dp60/config.h b/keyboards/dp60/config.h index 857e03df80..48c232b8e7 100644 --- a/keyboards/dp60/config.h +++ b/keyboards/dp60/config.h @@ -33,8 +33,8 @@ //#define NO_PRINT //rgb matrix setting -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 #define DRIVER_2_LED_TOTAL 36 diff --git a/keyboards/drop/alt/v2/config.h b/keyboards/drop/alt/v2/config.h index 8ab8d0fb38..31b8750155 100644 --- a/keyboards/drop/alt/v2/config.h +++ b/keyboards/drop/alt/v2/config.h @@ -14,8 +14,8 @@ #define EXTERNAL_EEPROM_WP_PIN B5 #define EEPROM_I2C_24LC256 -#define DRIVER_ADDR_1 0b1010011 -#define DRIVER_ADDR_2 0b1011111 +#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_VCC +#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_VCC_VCC #define IS31FL3733_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 111 #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ diff --git a/keyboards/drop/ctrl/v2/config.h b/keyboards/drop/ctrl/v2/config.h index 51990d856b..f3292bcb9c 100644 --- a/keyboards/drop/ctrl/v2/config.h +++ b/keyboards/drop/ctrl/v2/config.h @@ -14,8 +14,8 @@ #define EXTERNAL_EEPROM_WP_PIN B5 #define EEPROM_I2C_24LC256 -#define DRIVER_ADDR_1 0b1010011 -#define DRIVER_ADDR_2 0b1011111 +#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_VCC +#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_VCC_VCC #define IS31FL3733_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 119 #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ diff --git a/keyboards/drop/sense75/config.h b/keyboards/drop/sense75/config.h index 6d2d50e541..70e425eb74 100644 --- a/keyboards/drop/sense75/config.h +++ b/keyboards/drop/sense75/config.h @@ -9,8 +9,8 @@ #define EXTERNAL_EEPROM_WP_PIN B7 #define EEPROM_I2C_24LC256 -#define DRIVER_ADDR_1 0b1010000 -#define DRIVER_ADDR_2 0b1011111 +#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_VCC_VCC #define IS31FL3733_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 111 #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ diff --git a/keyboards/drop/shift/v2/config.h b/keyboards/drop/shift/v2/config.h index 7334585d16..29b77cba9b 100644 --- a/keyboards/drop/shift/v2/config.h +++ b/keyboards/drop/shift/v2/config.h @@ -14,9 +14,9 @@ #define EXTERNAL_EEPROM_WP_PIN B5 #define EEPROM_I2C_24LC256 -#define DRIVER_ADDR_1 0b1010011 -#define DRIVER_ADDR_2 0b1011111 -#define DRIVER_ADDR_3 0b1010000 +#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_VCC +#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_VCC_VCC +#define DRIVER_ADDR_3 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_DRIVER_COUNT 3 #define RGB_MATRIX_LED_COUNT 166 #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ diff --git a/keyboards/durgod/dgk6x/config.h b/keyboards/durgod/dgk6x/config.h index 12addab8e8..542c6a231c 100644 --- a/keyboards/durgod/dgk6x/config.h +++ b/keyboards/durgod/dgk6x/config.h @@ -34,19 +34,8 @@ #define LED_MR_LOCK_PIN LED_SCROLL_LOCK_PIN #ifdef RGB_MATRIX_ENABLE -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -// The address will vary depending on your wiring: -// 00 <-> GND -// 01 <-> SCL -// 10 <-> SDA -// 11 <-> VCC -// ADDR1 represents A1:A0 of the 7-bit address. -// ADDR2 represents A3:A2 of the 7-bit address. -// The result is: 0b101(ADDR2)(ADDR1) - -#define DRIVER_ADDR_1 0b1010000 -#define DRIVER_ADDR_2 0b1010011 +#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_VCC #define IS31FL3733_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/dztech/dz60rgb/v1/config.h b/keyboards/dztech/dz60rgb/v1/config.h index bd5663d0f2..52ae406b98 100644 --- a/keyboards/dztech/dz60rgb/v1/config.h +++ b/keyboards/dztech/dz60rgb/v1/config.h @@ -55,7 +55,7 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -# define DRIVER_ADDR_1 0b1010000 +# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 63 #endif diff --git a/keyboards/dztech/dz60rgb/v2/config.h b/keyboards/dztech/dz60rgb/v2/config.h index 73e37406cb..733e8f4966 100644 --- a/keyboards/dztech/dz60rgb/v2/config.h +++ b/keyboards/dztech/dz60rgb/v2/config.h @@ -53,7 +53,7 @@ // # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 0b1010000 +# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 63 #endif diff --git a/keyboards/dztech/dz60rgb/v2_1/config.h b/keyboards/dztech/dz60rgb/v2_1/config.h index 669c343fa0..406b1141af 100644 --- a/keyboards/dztech/dz60rgb/v2_1/config.h +++ b/keyboards/dztech/dz60rgb/v2_1/config.h @@ -69,7 +69,7 @@ // # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 0b1010000 +# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 63 #endif diff --git a/keyboards/dztech/dz60rgb_ansi/v1/config.h b/keyboards/dztech/dz60rgb_ansi/v1/config.h index 016588e7ba..59a680615f 100644 --- a/keyboards/dztech/dz60rgb_ansi/v1/config.h +++ b/keyboards/dztech/dz60rgb_ansi/v1/config.h @@ -55,7 +55,7 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -# define DRIVER_ADDR_1 0b1010000 +# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 61 #endif diff --git a/keyboards/dztech/dz60rgb_ansi/v2/config.h b/keyboards/dztech/dz60rgb_ansi/v2/config.h index 87718ad5e3..819b98e36a 100644 --- a/keyboards/dztech/dz60rgb_ansi/v2/config.h +++ b/keyboards/dztech/dz60rgb_ansi/v2/config.h @@ -53,7 +53,7 @@ # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 0b1010000 +# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 61 #endif diff --git a/keyboards/dztech/dz60rgb_ansi/v2_1/config.h b/keyboards/dztech/dz60rgb_ansi/v2_1/config.h index 2981fb2f59..a186cd82c3 100644 --- a/keyboards/dztech/dz60rgb_ansi/v2_1/config.h +++ b/keyboards/dztech/dz60rgb_ansi/v2_1/config.h @@ -69,7 +69,7 @@ // # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 0b1010000 +# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 61 #endif diff --git a/keyboards/dztech/dz60rgb_wkl/v1/config.h b/keyboards/dztech/dz60rgb_wkl/v1/config.h index e4819dd415..850ecae481 100644 --- a/keyboards/dztech/dz60rgb_wkl/v1/config.h +++ b/keyboards/dztech/dz60rgb_wkl/v1/config.h @@ -55,7 +55,7 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -# define DRIVER_ADDR_1 0b1010000 +# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 62 #endif diff --git a/keyboards/dztech/dz60rgb_wkl/v2/config.h b/keyboards/dztech/dz60rgb_wkl/v2/config.h index 286f0718c6..1496a0cbe8 100644 --- a/keyboards/dztech/dz60rgb_wkl/v2/config.h +++ b/keyboards/dztech/dz60rgb_wkl/v2/config.h @@ -50,7 +50,7 @@ # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 0b1010000 +# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 62 #endif diff --git a/keyboards/dztech/dz60rgb_wkl/v2_1/config.h b/keyboards/dztech/dz60rgb_wkl/v2_1/config.h index 41274a6bac..1c036310dc 100644 --- a/keyboards/dztech/dz60rgb_wkl/v2_1/config.h +++ b/keyboards/dztech/dz60rgb_wkl/v2_1/config.h @@ -69,7 +69,7 @@ # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 0b1010000 +# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 62 #endif diff --git a/keyboards/dztech/dz64rgb/config.h b/keyboards/dztech/dz64rgb/config.h index a1e779f73c..f7dd035eb8 100644 --- a/keyboards/dztech/dz64rgb/config.h +++ b/keyboards/dztech/dz64rgb/config.h @@ -48,7 +48,7 @@ #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL #define ENABLE_RGB_MATRIX_TYPING_HEATMAP #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 0b1010000 +#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 #endif diff --git a/keyboards/dztech/dz65rgb/v1/config.h b/keyboards/dztech/dz65rgb/v1/config.h index 79c1473f23..ac462043ac 100644 --- a/keyboards/dztech/dz65rgb/v1/config.h +++ b/keyboards/dztech/dz65rgb/v1/config.h @@ -70,8 +70,8 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -# define DRIVER_ADDR_1 0b1110100 -# define DRIVER_ADDR_2 0b1110111 +# define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +# define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC # define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 35 # define DRIVER_2_LED_TOTAL 33 diff --git a/keyboards/dztech/dz65rgb/v2/config.h b/keyboards/dztech/dz65rgb/v2/config.h index 187e661bdb..2c849c9691 100644 --- a/keyboards/dztech/dz65rgb/v2/config.h +++ b/keyboards/dztech/dz65rgb/v2/config.h @@ -70,8 +70,8 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -# define DRIVER_ADDR_1 0b1110100 -# define DRIVER_ADDR_2 0b1110111 +# define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +# define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC # define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 35 # define DRIVER_2_LED_TOTAL 33 diff --git a/keyboards/dztech/dz65rgb/v3/config.h b/keyboards/dztech/dz65rgb/v3/config.h index 2077bd93d4..f99315e0ed 100755 --- a/keyboards/dztech/dz65rgb/v3/config.h +++ b/keyboards/dztech/dz65rgb/v3/config.h @@ -72,7 +72,7 @@ # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -# define DRIVER_ADDR_1 0b0110000 +# define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND # define IS31FL3741_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 68 # define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/dztech/tofu/ii/v1/config.h b/keyboards/dztech/tofu/ii/v1/config.h index b709c8d2ba..e416297239 100644 --- a/keyboards/dztech/tofu/ii/v1/config.h +++ b/keyboards/dztech/tofu/ii/v1/config.h @@ -79,8 +79,8 @@ # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -# define DRIVER_ADDR_1 0b1010000 -# define DRIVER_ADDR_2 0b1011111 +# define DRIVER_ADDR_1 IS31FL3737_I2C_ADDRESS_GND +# define DRIVER_ADDR_2 IS31FL3737_I2C_ADDRESS_VCC # define IS31FL3737_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 46 # define DRIVER_2_LED_TOTAL 20 diff --git a/keyboards/dztech/tofu/jr/v1/config.h b/keyboards/dztech/tofu/jr/v1/config.h index a9ab620c58..21de51ccfc 100644 --- a/keyboards/dztech/tofu/jr/v1/config.h +++ b/keyboards/dztech/tofu/jr/v1/config.h @@ -79,8 +79,8 @@ # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -# define DRIVER_ADDR_1 0b1010000 -# define DRIVER_ADDR_2 0b1011111 +# define DRIVER_ADDR_1 IS31FL3737_I2C_ADDRESS_GND +# define DRIVER_ADDR_2 IS31FL3737_I2C_ADDRESS_VCC # define IS31FL3737_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 48 # define DRIVER_2_LED_TOTAL 20 diff --git a/keyboards/ergodox_ez/config.h b/keyboards/ergodox_ez/config.h index 3741b72a67..b4385af15d 100644 --- a/keyboards/ergodox_ez/config.h +++ b/keyboards/ergodox_ez/config.h @@ -91,8 +91,8 @@ along with this program. If not, see . // RGB backlight -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 24 #define DRIVER_2_LED_TOTAL 24 diff --git a/keyboards/evyd13/atom47/rev5/config.h b/keyboards/evyd13/atom47/rev5/config.h index d15141e5a5..5f9fda9bbf 100644 --- a/keyboards/evyd13/atom47/rev5/config.h +++ b/keyboards/evyd13/atom47/rev5/config.h @@ -38,17 +38,7 @@ along with this program. If not, see . //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -// The address will vary depending on your wiring: -// 00 <-> GND -// 01 <-> SCL -// 10 <-> SDA -// 11 <-> VCC -// ADDR1 represents A1:A0 of the 7-bit address. -// ADDR2 represents A3:A2 of the 7-bit address. -// The result is: 0b101(ADDR2)(ADDR1) -#define DRIVER_ADDR_1 0b1010000 +#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 diff --git a/keyboards/exclusive/e6_rgb/config.h b/keyboards/exclusive/e6_rgb/config.h index 0e5ecaaa9d..37a251b3f0 100644 --- a/keyboards/exclusive/e6_rgb/config.h +++ b/keyboards/exclusive/e6_rgb/config.h @@ -4,7 +4,7 @@ */ #pragma once -#define DRIVER_ADDR_1 0b1010000 +#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 63 diff --git a/keyboards/fallacy/config.h b/keyboards/fallacy/config.h index dc66968bdc..eff0cc4f50 100755 --- a/keyboards/fallacy/config.h +++ b/keyboards/fallacy/config.h @@ -18,7 +18,7 @@ /* IS31FL3731 driver address (for status LEDs) * Using the default defines here, but using a custom implementation */ -#define LED_DRIVER_ADDR_1 0b1110100 +#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 3 diff --git a/keyboards/feker/ik75/config.h b/keyboards/feker/ik75/config.h index 2e813d1477..c266bf757e 100644 --- a/keyboards/feker/ik75/config.h +++ b/keyboards/feker/ik75/config.h @@ -25,8 +25,8 @@ #define RGB_MATRIX_FRAMEBUFFER_EFFECTS /* RGB Matrix config */ - #define DRIVER_ADDR_1 0b1011111 - #define DRIVER_ADDR_2 0b1010000 + #define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_VCC_VCC + #define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 63 #define DRIVER_2_LED_TOTAL 64 diff --git a/keyboards/ferris/0_2/bling/config.h b/keyboards/ferris/0_2/bling/config.h index 9d8e9786f1..382c4c1e00 100644 --- a/keyboards/ferris/0_2/bling/config.h +++ b/keyboards/ferris/0_2/bling/config.h @@ -18,8 +18,8 @@ along with this program. If not, see . #pragma once /* LED Drivers */ -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110101 +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SCL #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 7 #define DRIVER_2_LED_TOTAL 7 diff --git a/keyboards/flashquark/horizon_z/config.h b/keyboards/flashquark/horizon_z/config.h index dac6caa24d..f087af93c2 100755 --- a/keyboards/flashquark/horizon_z/config.h +++ b/keyboards/flashquark/horizon_z/config.h @@ -72,7 +72,7 @@ // # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 0b1010000 +# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 62 #endif diff --git a/keyboards/frooastboard/walnut/config.h b/keyboards/frooastboard/walnut/config.h index 3e7b870075..f60c57dec5 100644 --- a/keyboards/frooastboard/walnut/config.h +++ b/keyboards/frooastboard/walnut/config.h @@ -6,7 +6,7 @@ #define IS31FL3737_PWM_FREQUENCY IS31FL3737_PWM_FREQUENCY_26K7_HZ #define IS31FL3737_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 48 -#define DRIVER_ADDR_1 0b1010000 +#define DRIVER_ADDR_1 IS31FL3737_I2C_ADDRESS_GND #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 191 diff --git a/keyboards/geekboards/tester/config.h b/keyboards/geekboards/tester/config.h index 0e7b8a1737..5933471b8c 100644 --- a/keyboards/geekboards/tester/config.h +++ b/keyboards/geekboards/tester/config.h @@ -55,8 +55,8 @@ // # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 0b1110100 -# define DRIVER_ADDR_2 0b1110101 +# define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +# define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SCL # define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 8 # define DRIVER_2_LED_TOTAL 0 diff --git a/keyboards/gizmo_engineering/gk6/config.h b/keyboards/gizmo_engineering/gk6/config.h index aabc293922..dfd9f0c703 100755 --- a/keyboards/gizmo_engineering/gk6/config.h +++ b/keyboards/gizmo_engineering/gk6/config.h @@ -18,8 +18,8 @@ along with this program. If not, see . #pragma once // RGB Matrix -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 32 diff --git a/keyboards/handwired/orbweaver/config.h b/keyboards/handwired/orbweaver/config.h index e0594697a1..a264089c71 100644 --- a/keyboards/handwired/orbweaver/config.h +++ b/keyboards/handwired/orbweaver/config.h @@ -18,7 +18,7 @@ #pragma once #define IS31FL3731_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND #define RGB_MATRIX_LED_COUNT 20 #define I2C1_CLOCK_SPEED 100000 #define RGB_MATRIX_CENTER { 40, 30 } diff --git a/keyboards/hs60/v1/config.h b/keyboards/hs60/v1/config.h index d9e94b2a14..c7eac09b17 100644 --- a/keyboards/hs60/v1/config.h +++ b/keyboards/hs60/v1/config.h @@ -41,8 +41,8 @@ along with this program. If not, see . // #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 215 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110101 +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SCL #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 30 diff --git a/keyboards/ilumkb/simpler61/config.h b/keyboards/ilumkb/simpler61/config.h index 12c6390683..5a9b4df785 100644 --- a/keyboards/ilumkb/simpler61/config.h +++ b/keyboards/ilumkb/simpler61/config.h @@ -21,7 +21,7 @@ #define RGB_MATRIX_LED_PROCESS_LIMIT 4 #define RGB_MATRIX_LED_FLUSH_LIMIT 26 #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 61 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/ilumkb/simpler64/config.h b/keyboards/ilumkb/simpler64/config.h index 58268e23cf..ab1265fe1c 100644 --- a/keyboards/ilumkb/simpler64/config.h +++ b/keyboards/ilumkb/simpler64/config.h @@ -21,7 +21,7 @@ #define RGB_MATRIX_LED_PROCESS_LIMIT 4 #define RGB_MATRIX_LED_FLUSH_LIMIT 26 #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 64 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/inett_studio/sqx/hotswap/config.h b/keyboards/inett_studio/sqx/hotswap/config.h index c11317afc8..66a6a8a611 100644 --- a/keyboards/inett_studio/sqx/hotswap/config.h +++ b/keyboards/inett_studio/sqx/hotswap/config.h @@ -32,8 +32,8 @@ //rgb matrix setting #define DRIVER_1_LED_TOTAL 33 #define DRIVER_2_LED_TOTAL 31 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC #define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/inett_studio/sqx/universal/config.h b/keyboards/inett_studio/sqx/universal/config.h index 772c8db16b..73bda58206 100644 --- a/keyboards/inett_studio/sqx/universal/config.h +++ b/keyboards/inett_studio/sqx/universal/config.h @@ -32,8 +32,8 @@ //rgb matrix setting #define DRIVER_1_LED_TOTAL 36 #define DRIVER_2_LED_TOTAL 36 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC #define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/input_club/ergodox_infinity/config.h b/keyboards/input_club/ergodox_infinity/config.h index 17baf0013e..7c35ccc784 100644 --- a/keyboards/input_club/ergodox_infinity/config.h +++ b/keyboards/input_club/ergodox_infinity/config.h @@ -43,7 +43,7 @@ along with this program. If not, see . #define LED_BRIGHTNESS_HI 255 /* LED matrix driver */ -#define LED_DRIVER_ADDR_1 0x74 +#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 76 #define LED_MATRIX_SPLIT { 38, 38 } diff --git a/keyboards/input_club/k_type/config.h b/keyboards/input_club/k_type/config.h index 5d4d515d77..b3365bd0af 100644 --- a/keyboards/input_club/k_type/config.h +++ b/keyboards/input_club/k_type/config.h @@ -103,8 +103,8 @@ along with this program. If not, see . # define I2C2_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2 # define I2C2_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2 -# define DRIVER_ADDR_1 0b1010000 -# define DRIVER_ADDR_2 0b1010000 +# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +# define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 64 # define DRIVER_2_LED_TOTAL 55 diff --git a/keyboards/input_club/k_type/is31fl3733-dual.c b/keyboards/input_club/k_type/is31fl3733-dual.c index 2976f5aed4..851b56a37d 100644 --- a/keyboards/input_club/k_type/is31fl3733-dual.c +++ b/keyboards/input_club/k_type/is31fl3733-dual.c @@ -20,18 +20,6 @@ #include "i2c_master.h" #include "wait.h" -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -// The address will vary depending on your wiring: -// 00 <-> GND -// 01 <-> SCL -// 10 <-> SDA -// 11 <-> VCC -// ADDR1 represents A1:A0 of the 7-bit address. -// ADDR2 represents A3:A2 of the 7-bit address. -// The result is: 0b101(ADDR2)(ADDR1) -#define IS31FL3733_I2C_ADDRESS_DEFAULT 0x50 - #define IS31FL3733_COMMANDREGISTER 0xFD #define IS31FL3733_COMMANDREGISTER_WRITELOCK 0xFE #define IS31FL3733_INTERRUPTMASKREGISTER 0xF0 diff --git a/keyboards/input_club/k_type/is31fl3733-dual.h b/keyboards/input_club/k_type/is31fl3733-dual.h index a5ef3ff008..796708f507 100644 --- a/keyboards/input_club/k_type/is31fl3733-dual.h +++ b/keyboards/input_club/k_type/is31fl3733-dual.h @@ -22,6 +22,23 @@ #include #include "progmem.h" +#define IS31FL3733_I2C_ADDRESS_GND_GND 0x50 +#define IS31FL3733_I2C_ADDRESS_GND_SCL 0x51 +#define IS31FL3733_I2C_ADDRESS_GND_SDA 0x52 +#define IS31FL3733_I2C_ADDRESS_GND_VCC 0x53 +#define IS31FL3733_I2C_ADDRESS_SCL_GND 0x54 +#define IS31FL3733_I2C_ADDRESS_SCL_SCL 0x55 +#define IS31FL3733_I2C_ADDRESS_SCL_SDA 0x56 +#define IS31FL3733_I2C_ADDRESS_SCL_VCC 0x57 +#define IS31FL3733_I2C_ADDRESS_SDA_GND 0x58 +#define IS31FL3733_I2C_ADDRESS_SDA_SCL 0x59 +#define IS31FL3733_I2C_ADDRESS_SDA_SDA 0x5A +#define IS31FL3733_I2C_ADDRESS_SDA_VCC 0x5B +#define IS31FL3733_I2C_ADDRESS_VCC_GND 0x5C +#define IS31FL3733_I2C_ADDRESS_VCC_SCL 0x5D +#define IS31FL3733_I2C_ADDRESS_VCC_SDA 0x5E +#define IS31FL3733_I2C_ADDRESS_VCC_VCC 0x5F + typedef struct is31_led { uint8_t driver : 2; uint8_t r; diff --git a/keyboards/input_club/whitefox/config.h b/keyboards/input_club/whitefox/config.h index bf8d3d6c9c..aa8277d4ca 100644 --- a/keyboards/input_club/whitefox/config.h +++ b/keyboards/input_club/whitefox/config.h @@ -21,7 +21,7 @@ along with this program. If not, see . #define LED_BRIGHTNESS_HI 255 /* LED matrix driver */ -#define LED_DRIVER_ADDR_1 0x74 +#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 71 #define LED_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/kbdcraft/adam64/config.h b/keyboards/kbdcraft/adam64/config.h index c7fa1aecc9..b2c0cca3d1 100644 --- a/keyboards/kbdcraft/adam64/config.h +++ b/keyboards/kbdcraft/adam64/config.h @@ -24,7 +24,7 @@ #define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_16_9 #define IS31FL3741_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define RGB_MATRIX_LED_COUNT 64 /* turn off effects when suspended */ diff --git a/keyboards/kbdfans/bella/rgb/config.h b/keyboards/kbdfans/bella/rgb/config.h index 8e416d77d9..c3c7e423f3 100644 --- a/keyboards/kbdfans/bella/rgb/config.h +++ b/keyboards/kbdfans/bella/rgb/config.h @@ -71,7 +71,7 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 108 #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/kbdfans/bella/rgb_iso/config.h b/keyboards/kbdfans/bella/rgb_iso/config.h index 50d5120beb..dc3f987bbe 100644 --- a/keyboards/kbdfans/bella/rgb_iso/config.h +++ b/keyboards/kbdfans/bella/rgb_iso/config.h @@ -71,7 +71,7 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 109 #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/kbdfans/boop65/rgb/config.h b/keyboards/kbdfans/boop65/rgb/config.h index 0e80e2c67e..89375078d7 100644 --- a/keyboards/kbdfans/boop65/rgb/config.h +++ b/keyboards/kbdfans/boop65/rgb/config.h @@ -26,7 +26,7 @@ # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 # define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -# define DRIVER_ADDR_1 0b0110000 +# define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND # define IS31FL3741_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 83 # define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h index cae6b8bf92..b836410d60 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h @@ -55,8 +55,8 @@ #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 35 #define DRIVER_2_LED_TOTAL 32 diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h index c55b0c7f1f..0dad3d6767 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h @@ -55,8 +55,8 @@ // #define ENABLE_RGB_MATRIX_SOLID_SPLASH // #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 -# define DRIVER_ADDR_1 0b1110100 -# define DRIVER_ADDR_2 0b1110111 +# define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +# define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC # define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 35 # define DRIVER_2_LED_TOTAL 32 diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h index d36bce7d83..971ed5c866 100755 --- a/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h @@ -72,7 +72,7 @@ #define RGB_MATRIX_LED_PROCESS_LIMIT 4 #define RGB_MATRIX_LED_FLUSH_LIMIT 26 #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 67 #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/kbdfans/kbdmini/config.h b/keyboards/kbdfans/kbdmini/config.h index 031dd23e5d..243693d57e 100644 --- a/keyboards/kbdfans/kbdmini/config.h +++ b/keyboards/kbdfans/kbdmini/config.h @@ -53,7 +53,7 @@ // #define ENABLE_RGB_MATRIX_SOLID_SPLASH // #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -#define DRIVER_ADDR_1 0b1010000 +#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 52 #endif diff --git a/keyboards/kbdfans/maja/config.h b/keyboards/kbdfans/maja/config.h index e2a27f01b1..b7f75f982a 100755 --- a/keyboards/kbdfans/maja/config.h +++ b/keyboards/kbdfans/maja/config.h @@ -54,8 +54,8 @@ // #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110110 +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 #define DRIVER_2_LED_TOTAL 31 diff --git a/keyboards/keychron/c1_pro/ansi/rgb/config.h b/keyboards/keychron/c1_pro/ansi/rgb/config.h index cc95a6b45c..c6b63b4d7c 100644 --- a/keyboards/keychron/c1_pro/ansi/rgb/config.h +++ b/keyboards/keychron/c1_pro/ansi/rgb/config.h @@ -21,8 +21,8 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110111 -#define DRIVER_ADDR_2 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 49 diff --git a/keyboards/keychron/c1_pro/ansi/white/config.h b/keyboards/keychron/c1_pro/ansi/white/config.h index 898f59cdca..5492eca28f 100644 --- a/keyboards/keychron/c1_pro/ansi/white/config.h +++ b/keyboards/keychron/c1_pro/ansi/white/config.h @@ -21,7 +21,7 @@ /* LED Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND /* LED Matrix Configuration */ #define LED_MATRIX_LED_COUNT 90 diff --git a/keyboards/keychron/c2_pro/ansi/rgb/config.h b/keyboards/keychron/c2_pro/ansi/rgb/config.h index f783f37a14..d2d3d61f29 100644 --- a/keyboards/keychron/c2_pro/ansi/rgb/config.h +++ b/keyboards/keychron/c2_pro/ansi/rgb/config.h @@ -18,8 +18,8 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110111 -#define DRIVER_ADDR_2 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND /* Set LED driver current */ #define CKLED2001_CURRENT_TUNE \ diff --git a/keyboards/keychron/c2_pro/ansi/white/config.h b/keyboards/keychron/c2_pro/ansi/white/config.h index e8c282a551..fb2ca3aa41 100644 --- a/keyboards/keychron/c2_pro/ansi/white/config.h +++ b/keyboards/keychron/c2_pro/ansi/white/config.h @@ -18,7 +18,7 @@ /* LED Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND /* Set LED driver current */ #define CKLED2001_CURRENT_TUNE \ diff --git a/keyboards/keychron/q0/rev_0130/config.h b/keyboards/keychron/q0/rev_0130/config.h index ce4d510e10..c6a241a1ce 100644 --- a/keyboards/keychron/q0/rev_0130/config.h +++ b/keyboards/keychron/q0/rev_0130/config.h @@ -18,7 +18,7 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 21 diff --git a/keyboards/keychron/q0/rev_0131/config.h b/keyboards/keychron/q0/rev_0131/config.h index 214bfc3455..f1d06a2842 100644 --- a/keyboards/keychron/q0/rev_0131/config.h +++ b/keyboards/keychron/q0/rev_0131/config.h @@ -18,7 +18,7 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 0b1110111 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 26 diff --git a/keyboards/keychron/q1/config.h b/keyboards/keychron/q1/config.h index 52b53e47d0..543f62f9d8 100644 --- a/keyboards/keychron/q1/config.h +++ b/keyboards/keychron/q1/config.h @@ -18,8 +18,8 @@ /* RGB Matrix Driver Configuration */ #define IS31FL3733_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1010000 -#define DRIVER_ADDR_2 0b1011111 +#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_VCC_VCC /* DIP switch */ #define DIP_SWITCH_MATRIX_GRID { {0,1} } diff --git a/keyboards/keychron/q10/config.h b/keyboards/keychron/q10/config.h index 6361990798..3a0d613510 100644 --- a/keyboards/keychron/q10/config.h +++ b/keyboards/keychron/q10/config.h @@ -31,8 +31,8 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110111 -#define DRIVER_ADDR_2 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/q11/config.h b/keyboards/keychron/q11/config.h index 3285823d54..90bd7e0a56 100755 --- a/keyboards/keychron/q11/config.h +++ b/keyboards/keychron/q11/config.h @@ -28,7 +28,7 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/q12/config.h b/keyboards/keychron/q12/config.h index 309b426612..52c4ade5a6 100644 --- a/keyboards/keychron/q12/config.h +++ b/keyboards/keychron/q12/config.h @@ -27,8 +27,8 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110111 -#define DRIVER_ADDR_2 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/q2/config.h b/keyboards/keychron/q2/config.h index f58633d2e4..1ecff68e4d 100644 --- a/keyboards/keychron/q2/config.h +++ b/keyboards/keychron/q2/config.h @@ -23,8 +23,8 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110111 -#define DRIVER_ADDR_2 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND #define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL diff --git a/keyboards/keychron/q3/config.h b/keyboards/keychron/q3/config.h index 9fbe1ed745..5914df0200 100644 --- a/keyboards/keychron/q3/config.h +++ b/keyboards/keychron/q3/config.h @@ -25,8 +25,8 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110111 -#define DRIVER_ADDR_2 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/q4/ansi_v1/config.h b/keyboards/keychron/q4/ansi_v1/config.h index d20feacd29..cf12c75966 100644 --- a/keyboards/keychron/q4/ansi_v1/config.h +++ b/keyboards/keychron/q4/ansi_v1/config.h @@ -18,8 +18,8 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110111 -#define DRIVER_ADDR_2 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 31 diff --git a/keyboards/keychron/q4/ansi_v2/config.h b/keyboards/keychron/q4/ansi_v2/config.h index 0772fa576e..1bcaf204ef 100644 --- a/keyboards/keychron/q4/ansi_v2/config.h +++ b/keyboards/keychron/q4/ansi_v2/config.h @@ -18,7 +18,7 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 61 diff --git a/keyboards/keychron/q4/iso/config.h b/keyboards/keychron/q4/iso/config.h index 2b934eb801..b61f8be4a4 100644 --- a/keyboards/keychron/q4/iso/config.h +++ b/keyboards/keychron/q4/iso/config.h @@ -18,7 +18,7 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 62 diff --git a/keyboards/keychron/q5/config.h b/keyboards/keychron/q5/config.h index 7fefee341e..d459d8c54e 100644 --- a/keyboards/keychron/q5/config.h +++ b/keyboards/keychron/q5/config.h @@ -31,8 +31,8 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110111 -#define DRIVER_ADDR_2 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND #define CKLED2001_CURRENT_TUNE \ { 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56 } diff --git a/keyboards/keychron/q6/config.h b/keyboards/keychron/q6/config.h index cca00a631d..98e3642c4d 100644 --- a/keyboards/keychron/q6/config.h +++ b/keyboards/keychron/q6/config.h @@ -25,8 +25,8 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110111 -#define DRIVER_ADDR_2 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND #define CKLED2001_CURRENT_TUNE \ { 0xA4, 0xA4, 0x52, 0xA4, 0xA4, 0x52, 0xA4, 0xA4, 0x52, 0xA4, 0xA4, 0x52 } diff --git a/keyboards/keychron/q60/config.h b/keyboards/keychron/q60/config.h index 9a560a0927..e5d0954ba0 100644 --- a/keyboards/keychron/q60/config.h +++ b/keyboards/keychron/q60/config.h @@ -18,7 +18,7 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/q65/config.h b/keyboards/keychron/q65/config.h index 533d5ae0dd..35d05ffab7 100644 --- a/keyboards/keychron/q65/config.h +++ b/keyboards/keychron/q65/config.h @@ -27,8 +27,8 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110111 -#define DRIVER_ADDR_2 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/q7/config.h b/keyboards/keychron/q7/config.h index 450a9a3bcb..125e17a3da 100644 --- a/keyboards/keychron/q7/config.h +++ b/keyboards/keychron/q7/config.h @@ -18,8 +18,8 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110111 -#define DRIVER_ADDR_2 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/q8/config.h b/keyboards/keychron/q8/config.h index 33de9af247..4b6d5f1614 100644 --- a/keyboards/keychron/q8/config.h +++ b/keyboards/keychron/q8/config.h @@ -21,8 +21,8 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110111 -#define DRIVER_ADDR_2 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/q9/config.h b/keyboards/keychron/q9/config.h index 7973a1ff85..de5795a5f6 100644 --- a/keyboards/keychron/q9/config.h +++ b/keyboards/keychron/q9/config.h @@ -24,7 +24,7 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/s1/ansi/rgb/config.h b/keyboards/keychron/s1/ansi/rgb/config.h index 3d54864bdf..1f77559339 100644 --- a/keyboards/keychron/s1/ansi/rgb/config.h +++ b/keyboards/keychron/s1/ansi/rgb/config.h @@ -18,8 +18,8 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110111 -#define DRIVER_ADDR_2 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND #define DRIVER_1_LED_TOTAL 46 #define DRIVER_2_LED_TOTAL 38 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/keychron/s1/ansi/white/config.h b/keyboards/keychron/s1/ansi/white/config.h index 18b676c941..02eeb7fc81 100644 --- a/keyboards/keychron/s1/ansi/white/config.h +++ b/keyboards/keychron/s1/ansi/white/config.h @@ -18,7 +18,7 @@ /* LED Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND #define DRIVER_1_LED_TOTAL 84 #define LED_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/keychron/v1/config.h b/keyboards/keychron/v1/config.h index bf6de31e13..8edbf05ca8 100644 --- a/keyboards/keychron/v1/config.h +++ b/keyboards/keychron/v1/config.h @@ -33,8 +33,8 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110111 -#define DRIVER_ADDR_2 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/v10/config.h b/keyboards/keychron/v10/config.h index 7cdf465f5a..b8aa40a186 100644 --- a/keyboards/keychron/v10/config.h +++ b/keyboards/keychron/v10/config.h @@ -32,8 +32,8 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110111 -#define DRIVER_ADDR_2 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/v2/config.h b/keyboards/keychron/v2/config.h index 6b44dba17f..8e881da987 100644 --- a/keyboards/keychron/v2/config.h +++ b/keyboards/keychron/v2/config.h @@ -21,8 +21,8 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110111 -#define DRIVER_ADDR_2 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/v3/config.h b/keyboards/keychron/v3/config.h index 8af491f1c7..8757f6bace 100644 --- a/keyboards/keychron/v3/config.h +++ b/keyboards/keychron/v3/config.h @@ -21,8 +21,8 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110111 -#define DRIVER_ADDR_2 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/v4/config.h b/keyboards/keychron/v4/config.h index 2cea12c06a..2fc94aaaee 100644 --- a/keyboards/keychron/v4/config.h +++ b/keyboards/keychron/v4/config.h @@ -18,7 +18,7 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 0b1110111 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/v5/config.h b/keyboards/keychron/v5/config.h index 7282b28181..0ee5e4e46b 100644 --- a/keyboards/keychron/v5/config.h +++ b/keyboards/keychron/v5/config.h @@ -27,8 +27,8 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110111 -#define DRIVER_ADDR_2 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/v6/config.h b/keyboards/keychron/v6/config.h index 4416591fb9..e836cced84 100644 --- a/keyboards/keychron/v6/config.h +++ b/keyboards/keychron/v6/config.h @@ -21,8 +21,8 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110111 -#define DRIVER_ADDR_2 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/v7/config.h b/keyboards/keychron/v7/config.h index 5d7e6cf22e..606f682719 100644 --- a/keyboards/keychron/v7/config.h +++ b/keyboards/keychron/v7/config.h @@ -18,8 +18,8 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110111 -#define DRIVER_ADDR_2 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/v8/config.h b/keyboards/keychron/v8/config.h index 902f0202e7..3dc6d58518 100644 --- a/keyboards/keychron/v8/config.h +++ b/keyboards/keychron/v8/config.h @@ -21,8 +21,8 @@ /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110111 -#define DRIVER_ADDR_2 0b1110100 +#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/config.h b/keyboards/kprepublic/bm60hsrgb/rev2/config.h index 68fba52789..e3f763567c 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb/rev2/config.h @@ -18,7 +18,7 @@ #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD #define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended -#define DRIVER_ADDR_1 0b1010000 +#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND #define RGB_MATRIX_KEYPRESSES // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h index ce422ff43e..0b83af45f5 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h @@ -18,7 +18,7 @@ #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD # define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended -# define DRIVER_ADDR_1 0b1010000 +# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 63 # define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h index f4b463f261..3e049824a7 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h @@ -26,7 +26,7 @@ # define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT # define DISABLE_RGB_MATRIX_RAINDROPS # define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS -# define DRIVER_ADDR_1 0b1010000 +# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define DRIVER_1_LED_TOTAL 64 diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h index f3ad3e0781..d3222d703e 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h @@ -78,7 +78,7 @@ // Configure the IS31FL3733 driver for per-key RGB LEDs #define IS31FL3733_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 0b1010000 +#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND #define DRIVER_1_LED_TOTAL 61 #define ISSI_LED_TOTAL DRIVER_1_LED_TOTAL diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/config.h b/keyboards/kprepublic/bm68hsrgb/rev2/config.h index 15f47e8ba5..b3b1abf137 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm68hsrgb/rev2/config.h @@ -18,7 +18,7 @@ #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD -#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 68 diff --git a/keyboards/kprepublic/bm80v2/config.h b/keyboards/kprepublic/bm80v2/config.h index 3eea8c3aa4..3678c64202 100644 --- a/keyboards/kprepublic/bm80v2/config.h +++ b/keyboards/kprepublic/bm80v2/config.h @@ -53,7 +53,7 @@ #define ENABLE_RGB_MATRIX_MULTISPLASH #define ENABLE_RGB_MATRIX_SOLID_SPLASH #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 87 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/kprepublic/bm80v2_iso/config.h b/keyboards/kprepublic/bm80v2_iso/config.h index 98c712703d..a8fac74218 100644 --- a/keyboards/kprepublic/bm80v2_iso/config.h +++ b/keyboards/kprepublic/bm80v2_iso/config.h @@ -54,7 +54,7 @@ #define ENABLE_RGB_MATRIX_MULTISPLASH #define ENABLE_RGB_MATRIX_SOLID_SPLASH #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 88 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/latincompass/latin17rgb/config.h b/keyboards/latincompass/latin17rgb/config.h index f858709eae..0ce80e584e 100644 --- a/keyboards/latincompass/latin17rgb/config.h +++ b/keyboards/latincompass/latin17rgb/config.h @@ -69,15 +69,8 @@ // # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH - // This is a 7-bit address, that gets left-shifted and bit 0 - // set to 0 for write, 1 for read (as per I2C protocol) - // The address will vary depending on your wiring: - // 0b1110100 AD <-> GND - // 0b1110111 AD <-> VCC - // 0b1110101 AD <-> SCL - // 0b1110110 AD <-> SDA -# define DRIVER_ADDR_1 0b1110100 -# define DRIVER_ADDR_2 0b1110110 +# define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +# define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA # define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 25 diff --git a/keyboards/latincompass/latin60rgb/config.h b/keyboards/latincompass/latin60rgb/config.h index 053bb2eab8..23cfdf24ee 100644 --- a/keyboards/latincompass/latin60rgb/config.h +++ b/keyboards/latincompass/latin60rgb/config.h @@ -67,7 +67,7 @@ // # define ENABLE_RGB_MATRIX_MULTISPLASH // # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 0b1010000 +# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 60 #endif diff --git a/keyboards/latincompass/latin6rgb/config.h b/keyboards/latincompass/latin6rgb/config.h index 5cfafd6bec..424dcd5bef 100644 --- a/keyboards/latincompass/latin6rgb/config.h +++ b/keyboards/latincompass/latin6rgb/config.h @@ -70,14 +70,7 @@ // # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -// The address will vary depending on your wiring: -// 0b1110100 AD <-> GND -// 0b1110111 AD <-> VCC -// 0b1110101 AD <-> SCL -// 0b1110110 AD <-> SDA -#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 6 diff --git a/keyboards/matrix/m20add/config.h b/keyboards/matrix/m20add/config.h index 2ae5017487..048796c793 100644 --- a/keyboards/matrix/m20add/config.h +++ b/keyboards/matrix/m20add/config.h @@ -78,6 +78,6 @@ #define I2C1_CLOCK_SPEED 400000 #define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 -#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 20 diff --git a/keyboards/matrix/noah/config.h b/keyboards/matrix/noah/config.h index 38859b1292..428fe98d2e 100644 --- a/keyboards/matrix/noah/config.h +++ b/keyboards/matrix/noah/config.h @@ -19,8 +19,8 @@ #define PAL_MODE_STM32_ALTERNATE_OPENDRAIN (PAL_MODE_ALTERNATE(4) | PAL_STM32_OTYPE_OPENDRAIN) // rgb matrix setting -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110110 +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 #define DRIVER_2_LED_TOTAL 36 diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/config.h b/keyboards/mechlovin/adelais/rgb_led/rev2/config.h index 4c7bc3a1da..7e1bd43012 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev2/config.h +++ b/keyboards/mechlovin/adelais/rgb_led/rev2/config.h @@ -1,15 +1,8 @@ #pragma once //rgb matrix setting -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -// The address will vary depending on your wiring: -// 0b1110100 AD <-> GND -// 0b1110111 AD <-> VCC -// 0b1110101 AD <-> SCL -// 0b1110110 AD <-> SDA -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110110 +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 32 #define DRIVER_2_LED_TOTAL 36 diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/config.h b/keyboards/mechlovin/adelais/rgb_led/rev3/config.h index 8620ab3949..72011af8df 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev3/config.h +++ b/keyboards/mechlovin/adelais/rgb_led/rev3/config.h @@ -22,14 +22,7 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE //rgb matrix setting -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -// The address will vary depending on your wiring: -// 0b1110100 AD <-> GND -// 0b1110111 AD <-> VCC -// 0b1110101 AD <-> SCL -// 0b1110110 AD <-> SDA -#define DRIVER_ADDR_1 0b0110010 +#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_SDA #define IS31FL3741_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 66 diff --git a/keyboards/mechlovin/delphine/rgb_led/config.h b/keyboards/mechlovin/delphine/rgb_led/config.h index 048bed9e03..66455e1158 100644 --- a/keyboards/mechlovin/delphine/rgb_led/config.h +++ b/keyboards/mechlovin/delphine/rgb_led/config.h @@ -1,13 +1,7 @@ #pragma once -//rgb matrix setting// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -// The address will vary depending on your wiring: -// 0b1110100 AD <-> GND -// 0b1110111 AD <-> VCC -// 0b1110101 AD <-> SCL -// 0b1110110 AD <-> SDA -#define DRIVER_ADDR_1 0b1110110 +//rgb matrix setting +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 25 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses diff --git a/keyboards/mechlovin/hannah60rgb/rev2/config.h b/keyboards/mechlovin/hannah60rgb/rev2/config.h index 4e4eb7f7bd..5c7bb7abfe 100644 --- a/keyboards/mechlovin/hannah60rgb/rev2/config.h +++ b/keyboards/mechlovin/hannah60rgb/rev2/config.h @@ -1,14 +1,8 @@ #pragma once -//rgb matrix setting// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -// The address will vary depending on your wiring: -// 0b1110100 AD <-> GND -// 0b1110111 AD <-> VCC -// 0b1110101 AD <-> SCL -// 0b1110110 AD <-> SDA -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110110 +//rgb matrix setting +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 44 #define DRIVER_2_LED_TOTAL 34 diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/config.h b/keyboards/mechlovin/infinity87/rgb_rev1/config.h index 84acb09308..9777e290bb 100644 --- a/keyboards/mechlovin/infinity87/rgb_rev1/config.h +++ b/keyboards/mechlovin/infinity87/rgb_rev1/config.h @@ -17,13 +17,6 @@ #pragma once //rgb matrix setting -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -// The address will vary depending on your wiring: -// 0b0110000 AD <-> GND -// 0b0110011 AD <-> VCC -// 0b0110001 AD <-> SCL -// 0b0110010 AD <-> SDA #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended #define RGB_MATRIX_KEYPRESSES #undef ENABLE_RGB_MATRIX_SPLASH @@ -80,7 +73,7 @@ //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_REACTIVE_SIMPLE -#define DRIVER_ADDR_1 0b0110010 +#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_SDA #define IS31FL3741_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 91 #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/mechlovin/olly/octagon/config.h b/keyboards/mechlovin/olly/octagon/config.h index a59c651bd7..573a11f88f 100644 --- a/keyboards/mechlovin/olly/octagon/config.h +++ b/keyboards/mechlovin/olly/octagon/config.h @@ -18,14 +18,7 @@ along with this program. If not, see . #pragma once #ifdef LED_MATRIX_ENABLE -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -// The address will vary depending on your wiring: -// 0b1110100 AD <-> GND -// 0b1110111 AD <-> VCC -// 0b1110101 AD <-> SCL -// 0b1110110 AD <-> SDA -#define LED_DRIVER_ADDR_1 0b1110110 +#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_SDA #define I2C_DRIVER I2CD2 #define I2C1_SCL_PIN B10 #define I2C1_SDA_PIN B11 diff --git a/keyboards/mechlovin/zed65/mono_led/config.h b/keyboards/mechlovin/zed65/mono_led/config.h index d6a8e9cd02..65f9ba2a94 100644 --- a/keyboards/mechlovin/zed65/mono_led/config.h +++ b/keyboards/mechlovin/zed65/mono_led/config.h @@ -18,14 +18,7 @@ along with this program. If not, see . #pragma once #ifdef LED_MATRIX_ENABLE -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -// The address will vary depending on your wiring: -// 0b1110100 AD <-> GND -// 0b1110111 AD <-> VCC -// 0b1110101 AD <-> SCL -// 0b1110110 AD <-> SDA -#define LED_DRIVER_ADDR_1 0b1110110 +#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_SDA #define I2C_DRIVER I2CD2 #define I2C1_SCL_PIN B10 #define I2C1_SDA_PIN B11 diff --git a/keyboards/melgeek/mach80/config.h b/keyboards/melgeek/mach80/config.h index 4850f9a177..000b81eef9 100755 --- a/keyboards/melgeek/mach80/config.h +++ b/keyboards/melgeek/mach80/config.h @@ -25,7 +25,7 @@ #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define ENABLE_RGB_MATRIX_ALPHAS_MODS diff --git a/keyboards/melgeek/mj61/config.h b/keyboards/melgeek/mj61/config.h index 64f144d43a..e07d2078cd 100644 --- a/keyboards/melgeek/mj61/config.h +++ b/keyboards/melgeek/mj61/config.h @@ -70,5 +70,5 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 diff --git a/keyboards/melgeek/mj63/config.h b/keyboards/melgeek/mj63/config.h index 64f144d43a..e07d2078cd 100644 --- a/keyboards/melgeek/mj63/config.h +++ b/keyboards/melgeek/mj63/config.h @@ -70,5 +70,5 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 diff --git a/keyboards/melgeek/mj64/config.h b/keyboards/melgeek/mj64/config.h index 64f144d43a..e07d2078cd 100644 --- a/keyboards/melgeek/mj64/config.h +++ b/keyboards/melgeek/mj64/config.h @@ -70,5 +70,5 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 diff --git a/keyboards/melgeek/mj65/config.h b/keyboards/melgeek/mj65/config.h index 64f144d43a..e07d2078cd 100644 --- a/keyboards/melgeek/mj65/config.h +++ b/keyboards/melgeek/mj65/config.h @@ -70,5 +70,5 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 diff --git a/keyboards/melgeek/mojo68/config.h b/keyboards/melgeek/mojo68/config.h index 0353fb8fc7..b7bcb36c2d 100755 --- a/keyboards/melgeek/mojo68/config.h +++ b/keyboards/melgeek/mojo68/config.h @@ -69,5 +69,5 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 diff --git a/keyboards/melgeek/mojo75/config.h b/keyboards/melgeek/mojo75/config.h index 3f95a82ea9..77d27fe2c3 100644 --- a/keyboards/melgeek/mojo75/config.h +++ b/keyboards/melgeek/mojo75/config.h @@ -71,5 +71,5 @@ //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_REACTIVE_SIMPLE -#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 diff --git a/keyboards/melgeek/tegic/config.h b/keyboards/melgeek/tegic/config.h index ea457a3fcb..5e4087dcc5 100755 --- a/keyboards/melgeek/tegic/config.h +++ b/keyboards/melgeek/tegic/config.h @@ -22,7 +22,7 @@ #define RGB_MATRIX_LED_FLUSH_LIMIT 26 //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define ENABLE_RGB_MATRIX_ALPHAS_MODS diff --git a/keyboards/melgeek/z70ultra/config.h b/keyboards/melgeek/z70ultra/config.h index 978982a5b1..3ae466044c 100644 --- a/keyboards/melgeek/z70ultra/config.h +++ b/keyboards/melgeek/z70ultra/config.h @@ -70,7 +70,7 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 69 #define DRIVER_INDICATOR_LED_TOTAL 6 diff --git a/keyboards/miller/gm862/config.h b/keyboards/miller/gm862/config.h index 6c47183dbf..7378c18290 100644 --- a/keyboards/miller/gm862/config.h +++ b/keyboards/miller/gm862/config.h @@ -53,7 +53,7 @@ // # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 0b1010000 +# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 62 #endif diff --git a/keyboards/moonlander/config.h b/keyboards/moonlander/config.h index 6b2377db1a..cabfaf9900 100644 --- a/keyboards/moonlander/config.h +++ b/keyboards/moonlander/config.h @@ -65,8 +65,8 @@ //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 diff --git a/keyboards/mt/mt64rgb/config.h b/keyboards/mt/mt64rgb/config.h index c15d1aedbc..d13942461f 100644 --- a/keyboards/mt/mt64rgb/config.h +++ b/keyboards/mt/mt64rgb/config.h @@ -22,7 +22,7 @@ #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 160 #define RGB_MATRIX_LED_PROCESS_LIMIT 20 #define RGB_MATRIX_LED_FLUSH_LIMIT 26 -#define DRIVER_ADDR_1 0b1010000 +#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 diff --git a/keyboards/mt/mt84/config.h b/keyboards/mt/mt84/config.h index aba0632179..d76fdd262e 100644 --- a/keyboards/mt/mt84/config.h +++ b/keyboards/mt/mt84/config.h @@ -22,8 +22,8 @@ #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define RGB_MATRIX_LED_PROCESS_LIMIT 20 #define RGB_MATRIX_LED_FLUSH_LIMIT 26 - #define DRIVER_ADDR_1 0b1010000 - #define DRIVER_ADDR_2 0b1011111 + #define DRIVER_ADDR_1 IS31FL3737_I2C_ADDRESS_GND + #define DRIVER_ADDR_2 IS31FL3737_I2C_ADDRESS_VCC diff --git a/keyboards/neson_design/700e/config.h b/keyboards/neson_design/700e/config.h index ea666617e0..64af470bac 100644 --- a/keyboards/neson_design/700e/config.h +++ b/keyboards/neson_design/700e/config.h @@ -32,8 +32,8 @@ #define DRIVER_1_LED_TOTAL 32 #define DRIVER_2_LED_TOTAL 32 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC #define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL) diff --git a/keyboards/neson_design/n6/config.h b/keyboards/neson_design/n6/config.h index dfdb5b93aa..50eda4e586 100644 --- a/keyboards/neson_design/n6/config.h +++ b/keyboards/neson_design/n6/config.h @@ -32,7 +32,7 @@ #define DRIVER_1_LED_TOTAL 32 #define DRIVER_2_LED_TOTAL 32 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC #define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL) diff --git a/keyboards/opendeck/32/rev1/config.h b/keyboards/opendeck/32/rev1/config.h index 41b6e2d0b6..2857ef04b1 100644 --- a/keyboards/opendeck/32/rev1/config.h +++ b/keyboards/opendeck/32/rev1/config.h @@ -16,7 +16,7 @@ #pragma once // RGB matrix -#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT (4 * 8 * 3) #define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/owlab/voice65/hotswap/config.h b/keyboards/owlab/voice65/hotswap/config.h index ccf103cfa3..50876e8302 100644 --- a/keyboards/owlab/voice65/hotswap/config.h +++ b/keyboards/owlab/voice65/hotswap/config.h @@ -29,7 +29,7 @@ along with this program. If not, see . # define RGB_MATRIX_LED_FLUSH_LIMIT 26 # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 # define RGB_MATRIX_DEFAULT_VAL 128 -# define DRIVER_ADDR_1 0b0110000 +# define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND # define IS31FL3741_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 67 // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/owlab/voice65/soldered/config.h b/keyboards/owlab/voice65/soldered/config.h index 0cb0678b43..ab66f4368d 100644 --- a/keyboards/owlab/voice65/soldered/config.h +++ b/keyboards/owlab/voice65/soldered/config.h @@ -29,7 +29,7 @@ along with this program. If not, see . # define RGB_MATRIX_LED_FLUSH_LIMIT 26 # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 # define RGB_MATRIX_DEFAULT_VAL 128 -# define DRIVER_ADDR_1 0b0110000 +# define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND # define IS31FL3741_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 71 diff --git a/keyboards/planck/ez/config.h b/keyboards/planck/ez/config.h index ca57e4e772..f4998282e6 100644 --- a/keyboards/planck/ez/config.h +++ b/keyboards/planck/ez/config.h @@ -50,7 +50,7 @@ //#define WS2812_DMA_CHANNEL 7 // DMA channel for TIMx_UP //#define WS2812_EXTERNAL_PULLUP -#define DRIVER_ADDR_1 0b1010000 +#define DRIVER_ADDR_1 IS31FL3737_I2C_ADDRESS_GND #define IS31FL3737_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 47 diff --git a/keyboards/planck/light/config.h b/keyboards/planck/light/config.h index 827028cd3a..20c729ec51 100644 --- a/keyboards/planck/light/config.h +++ b/keyboards/planck/light/config.h @@ -7,15 +7,8 @@ #define PLANCK_MIT_LAYOUT -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -// The address will vary depending on your wiring: -// 0b1110100 AD <-> GND -// 0b1110111 AD <-> VCC -// 0b1110101 AD <-> SCL -// 0b1110110 AD <-> SDA -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110110 +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 25 diff --git a/keyboards/playkbtw/pk64rgb/config.h b/keyboards/playkbtw/pk64rgb/config.h index 4ae2454bd1..bd4d53d0b5 100644 --- a/keyboards/playkbtw/pk64rgb/config.h +++ b/keyboards/playkbtw/pk64rgb/config.h @@ -23,7 +23,7 @@ #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 160 #define RGB_MATRIX_LED_PROCESS_LIMIT 20 #define RGB_MATRIX_LED_FLUSH_LIMIT 26 - #define DRIVER_ADDR_1 0b1010000 + #define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 diff --git a/keyboards/redragon/k667/config.h b/keyboards/redragon/k667/config.h index 90ac3d465f..938befa8fc 100644 --- a/keyboards/redragon/k667/config.h +++ b/keyboards/redragon/k667/config.h @@ -17,8 +17,8 @@ #pragma once -#define DRIVER_ADDR_1 0b1010000 -#define DRIVER_ADDR_2 0b1010011 +#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_VCC #define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 45 diff --git a/keyboards/smallkeyboard/config.h b/keyboards/smallkeyboard/config.h index cc454fe82e..784aece469 100644 --- a/keyboards/smallkeyboard/config.h +++ b/keyboards/smallkeyboard/config.h @@ -66,14 +66,7 @@ // #define ENABLE_RGB_MATRIX_SOLID_SPLASH // #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -// The address will vary depending on your wiring: -// 0b1110100 AD <-> GND -// 0b1110111 AD <-> VCC -// 0b1110101 AD <-> SCL -// 0b1110110 AD <-> SDA -#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 6 diff --git a/keyboards/teleport/native/config.h b/keyboards/teleport/native/config.h index 705450ed51..ed858db0c7 100644 --- a/keyboards/teleport/native/config.h +++ b/keyboards/teleport/native/config.h @@ -30,8 +30,8 @@ along with this program. If not, see . /* RGB Matrix driver config */ #define IS31FL3733_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1010000 -#define DRIVER_ADDR_2 0b1010011 +#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_VCC #define DRIVER_1_LED_TOTAL 46 #define DRIVER_2_LED_TOTAL 39 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/terrazzo/config.h b/keyboards/terrazzo/config.h index dc0fa100e8..6ad8c363a3 100644 --- a/keyboards/terrazzo/config.h +++ b/keyboards/terrazzo/config.h @@ -17,7 +17,7 @@ #ifdef LED_MATRIX_ENABLE -#define LED_DRIVER_ADDR_1 0x74 +#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 105 #define LED_MATRIX_ROWS 15 diff --git a/keyboards/tkc/portico/config.h b/keyboards/tkc/portico/config.h index 5adf42127e..442a0900b2 100644 --- a/keyboards/tkc/portico/config.h +++ b/keyboards/tkc/portico/config.h @@ -39,8 +39,8 @@ along with this program. If not, see . # undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # undef ENABLE_RGB_MATRIX_DIGITAL_RAIN # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 -# define DRIVER_ADDR_1 0x74 -# define DRIVER_ADDR_2 0x77 +# define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +# define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC # define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 31 diff --git a/keyboards/tkc/portico68v2/config.h b/keyboards/tkc/portico68v2/config.h index 1c9f946cb7..f350af712b 100644 --- a/keyboards/tkc/portico68v2/config.h +++ b/keyboards/tkc/portico68v2/config.h @@ -17,7 +17,7 @@ along with this program. If not, see . #pragma once -#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 82 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/tkc/portico75/config.h b/keyboards/tkc/portico75/config.h index d00d38e36a..d512608f9c 100644 --- a/keyboards/tkc/portico75/config.h +++ b/keyboards/tkc/portico75/config.h @@ -72,7 +72,7 @@ along with this program. If not, see . // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 -# define DRIVER_ADDR_1 0b0110000 +# define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND # define IS31FL3741_DRIVER_COUNT 1 # define DRIVER_1_LED_TOTAL 98 # define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/wilba_tech/wt_rgb_backlight.c b/keyboards/wilba_tech/wt_rgb_backlight.c index 8a0f3b7f91..20932138ed 100644 --- a/keyboards/wilba_tech/wt_rgb_backlight.c +++ b/keyboards/wilba_tech/wt_rgb_backlight.c @@ -155,11 +155,7 @@ uint8_t g_key_hit[BACKLIGHT_LED_COUNT]; uint32_t g_any_key_hit = 0; #if defined(RGB_BACKLIGHT_HS60) - -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -// ADDR_2 is not needed. it is here as a dummy -#define ISSI_ADDR_1 0x50 +#define ISSI_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations @@ -235,12 +231,8 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { }; #elif defined(RGB_BACKLIGHT_NK65) || defined(RGB_BACKLIGHT_NEBULA68) || defined(RGB_BACKLIGHT_NK87) || defined(RGB_BACKLIGHT_KW_MEGA) - -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -// ADDR_2 is not needed. it is here as a dummy -#define ISSI_ADDR_1 0x50 -#define ISSI_ADDR_2 0x52 +#define ISSI_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define ISSI_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_SDA const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations @@ -381,9 +373,7 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { }; #elif defined(RGB_BACKLIGHT_NEBULA12) -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -#define ISSI_ADDR_1 0x74 +#define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations @@ -411,11 +401,10 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { }; #elif defined(RGB_BACKLIGHT_U80_A) - // U80-A prototype uses 3 ISSI drivers -#define ISSI_ADDR_1 0x74 // 11101[00] <- GND -#define ISSI_ADDR_2 0x76 // 11101[10] <- SDA -#define ISSI_ADDR_3 0x75 // 11101[01] <- SCL +#define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define ISSI_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA +#define ISSI_ADDR_3 IS31FL3731_I2C_ADDRESS_SCL const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations @@ -539,10 +528,8 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {2, C8_16, C7_16, C6_16}, // LF17 }; #elif defined(RGB_BACKLIGHT_DAWN60) -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -#define ISSI_ADDR_1 0x74 -#define ISSI_ADDR_2 0x76 +#define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define ISSI_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations @@ -620,10 +607,8 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {1, C9_16, C7_15, C6_15} //D16 }; #elif defined(RGB_BACKLIGHT_PORTICO) -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -#define ISSI_ADDR_1 0x74 -#define ISSI_ADDR_2 0x77 +#define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define ISSI_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations @@ -706,9 +691,7 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { }; #elif defined(RGB_BACKLIGHT_PORTICO75) -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -#define ISSI_ADDR_1 0x30 +#define ISSI_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define ISSI_ADDR_2 const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { @@ -843,9 +826,7 @@ const is31fl3218_led_t PROGMEM g_is31fl3218_leds[RGB_MATRIX_LED_COUNT] = { {OUT16, OUT17, OUT18} }; #elif defined(RGB_BACKLIGHT_M10_C) -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -#define ISSI_ADDR_1 0x74 +#define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND #define ISSI_ADDR_2 const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { @@ -863,10 +844,8 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, C9_16, C7_15, C6_15} // LB16 }; #else -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -#define ISSI_ADDR_1 0x74 -#define ISSI_ADDR_2 0x76 +#define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define ISSI_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations diff --git a/keyboards/xbows/knight/config.h b/keyboards/xbows/knight/config.h index dcf3c5a52f..c38628fef1 100644 --- a/keyboards/xbows/knight/config.h +++ b/keyboards/xbows/knight/config.h @@ -47,9 +47,9 @@ # define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out -# define DRIVER_ADDR_1 0b1110100 -# define DRIVER_ADDR_2 0b1110110 -# define DRIVER_ADDR_3 0b1110101 +# define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +# define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA +# define DRIVER_ADDR_3 IS31FL3731_I2C_ADDRESS_SCL # define IS31FL3731_DRIVER_COUNT 3 # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 35 diff --git a/keyboards/xbows/knight_plus/config.h b/keyboards/xbows/knight_plus/config.h index 417393d4f8..7a26ca9944 100644 --- a/keyboards/xbows/knight_plus/config.h +++ b/keyboards/xbows/knight_plus/config.h @@ -47,9 +47,9 @@ # define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out -# define DRIVER_ADDR_1 0b1110100 -# define DRIVER_ADDR_2 0b1110110 -# define DRIVER_ADDR_3 0b1110101 +# define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +# define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA +# define DRIVER_ADDR_3 IS31FL3731_I2C_ADDRESS_SCL # define IS31FL3731_DRIVER_COUNT 3 # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 35 diff --git a/keyboards/xbows/nature/config.h b/keyboards/xbows/nature/config.h index e3db6b5b7a..f408d62699 100644 --- a/keyboards/xbows/nature/config.h +++ b/keyboards/xbows/nature/config.h @@ -49,9 +49,9 @@ # define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out -# define DRIVER_ADDR_1 0b1110100 -# define DRIVER_ADDR_2 0b1110110 -# define DRIVER_ADDR_3 0b1110101 +# define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +# define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA +# define DRIVER_ADDR_3 IS31FL3731_I2C_ADDRESS_SCL # define IS31FL3731_DRIVER_COUNT 3 # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 36 diff --git a/keyboards/xbows/numpad/config.h b/keyboards/xbows/numpad/config.h index ec0b7d8e8b..d0c5d88491 100644 --- a/keyboards/xbows/numpad/config.h +++ b/keyboards/xbows/numpad/config.h @@ -47,7 +47,7 @@ # define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out -# define DRIVER_ADDR_1 0b1110111 +# define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_VCC # define IS31FL3731_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 22 #endif diff --git a/keyboards/xbows/ranger/config.h b/keyboards/xbows/ranger/config.h index 2ae5db6289..81d9737449 100644 --- a/keyboards/xbows/ranger/config.h +++ b/keyboards/xbows/ranger/config.h @@ -46,9 +46,9 @@ # define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out -# define DRIVER_ADDR_1 0b1110100 -# define DRIVER_ADDR_2 0b1110101 -# define DRIVER_ADDR_3 0b1110110 +# define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +# define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SCL +# define DRIVER_ADDR_3 IS31FL3731_I2C_ADDRESS_SDA # define IS31FL3731_DRIVER_COUNT 3 # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 36 diff --git a/keyboards/xbows/woody/config.h b/keyboards/xbows/woody/config.h index 0228b954d7..4b6ea9f70a 100644 --- a/keyboards/xbows/woody/config.h +++ b/keyboards/xbows/woody/config.h @@ -56,8 +56,8 @@ // # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 0b1110100 -# define DRIVER_ADDR_2 0b1110110 +# define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +# define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA # define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 35 # define DRIVER_2_LED_TOTAL 32 diff --git a/keyboards/xelus/dawn60/rev1_qmk/config.h b/keyboards/xelus/dawn60/rev1_qmk/config.h index 0c3f8208a4..9958f8c2bb 100644 --- a/keyboards/xelus/dawn60/rev1_qmk/config.h +++ b/keyboards/xelus/dawn60/rev1_qmk/config.h @@ -24,8 +24,8 @@ #define WS2812_LED_TOTAL 20 //RGB Matrix defines -#define DRIVER_ADDR_1 0x74 -#define DRIVER_ADDR_2 0x76 +#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 32 diff --git a/keyboards/xelus/pachi/rgb/rev1/config.h b/keyboards/xelus/pachi/rgb/rev1/config.h index dd4c378a66..882f2a7e36 100644 --- a/keyboards/xelus/pachi/rgb/rev1/config.h +++ b/keyboards/xelus/pachi/rgb/rev1/config.h @@ -40,7 +40,7 @@ #define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191 // RGB Matrix defines -#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 117 diff --git a/keyboards/xelus/pachi/rgb/rev2/config.h b/keyboards/xelus/pachi/rgb/rev2/config.h index 939721c224..826e8f869e 100644 --- a/keyboards/xelus/pachi/rgb/rev2/config.h +++ b/keyboards/xelus/pachi/rgb/rev2/config.h @@ -37,7 +37,7 @@ #define EEPROM_I2C_24LC64 // RGB Matrix defines -#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 117 From 56a87efbac9a41e8b26d3fa816d5d6265f519a5e Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue, 19 Sep 2023 14:32:16 -0700 Subject: [PATCH 094/496] DZTech Pluto Community Layout support (#22069) * Add layout/matrix diagram [docs] * Friendly-format `info.json` - apply four-space indent - sort JSON keys in layout objects [style] * Correct `LAYOUT_all` data Correct key sizes/positions of: - ANSI Backslash [1, 13] - ANSI Enter [1, 14] - Fn [3, 13] [chore] * Correct `LAYOUT_iso` data Correct position of Fn key [3, 13]. [chore] * Add `LAYOUT_tkl_nofrow_ansi_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_nofrow_ansi` [enhancement] * Add `LAYOUT_tkl_nofrow_ansi_tsangan_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_nofrow_ansi_tsangan` [enhancement] * Add `LAYOUT_tkl_nofrow_ansi_wkl_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_nofrow_ansi_wkl` [enhancement] * Add `LAYOUT_tkl_nofrow_iso_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_nofrow_iso` [enhancement] * Add `LAYOUT_tkl_nofrow_iso_tsangan_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_nofrow_iso_tsangan` [enhancement] * Add `LAYOUT_tkl_nofrow_iso_wkl_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_nofrow_iso_wkl` [enhancement] * Enable Community Layout support [enhancement] * Touch-up keymaps Update keycode grid alignment. [style] --- keyboards/dztech/pluto/info.json | 1311 ++++++++++++++--- .../dztech/pluto/keymaps/default/keymap.c | 10 +- keyboards/dztech/pluto/keymaps/via/keymap.c | 10 +- keyboards/dztech/pluto/matrix_diagram.md | 24 + 4 files changed, 1165 insertions(+), 190 deletions(-) create mode 100644 keyboards/dztech/pluto/matrix_diagram.md diff --git a/keyboards/dztech/pluto/info.json b/keyboards/dztech/pluto/info.json index ab201befa3..d64e941346 100644 --- a/keyboards/dztech/pluto/info.json +++ b/keyboards/dztech/pluto/info.json @@ -1,191 +1,1142 @@ { - "manufacturer": "DZTECH", - "keyboard_name": "PLUTO", - "maintainer": "moyi4681", - "bootloader": "rp2040", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["GP29", "GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP22", "GP21", "GP20", "GP19", "GP16", "GP15", "GP14", "GP13", "GP0"], - "rows": ["GP1", "GP18", "GP17", "GP12", "GP11"] - }, - "processor": "RP2040", - "usb": { - "device_version": "1.0.0", - "pid": "0x0006", - "vid": "0x445A" - }, - "layouts": { - "LAYOUT_all": { - "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 1], "x": 1, "y": 0 }, - { "matrix": [0, 2], "x": 2, "y": 0 }, - { "matrix": [0, 3], "x": 3, "y": 0 }, - { "matrix": [0, 4], "x": 4, "y": 0 }, - { "matrix": [0, 5], "x": 5, "y": 0 }, - { "matrix": [0, 6], "x": 6, "y": 0 }, - { "matrix": [0, 7], "x": 7, "y": 0 }, - { "matrix": [0, 8], "x": 8, "y": 0 }, - { "matrix": [0, 9], "x": 9, "y": 0 }, - { "matrix": [0, 10], "x": 10, "y": 0 }, - { "matrix": [0, 11], "x": 11, "y": 0 }, - { "matrix": [0, 12], "x": 12, "y": 0 }, - { "matrix": [0, 13], "x": 13, "y": 0 }, - { "matrix": [0, 14], "x": 14, "y": 0 }, - { "matrix": [0, 15], "x": 15.25, "y": 0 }, - { "matrix": [2, 12], "x": 16.25, "y": 0 }, - { "matrix": [2, 13], "x": 17.25, "y": 0 }, + "manufacturer": "DZTECH", + "keyboard_name": "PLUTO", + "maintainer": "moyi4681", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP29", "GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP22", "GP21", "GP20", "GP19", "GP16", "GP15", "GP14", "GP13", "GP0"], + "rows": ["GP1", "GP18", "GP17", "GP12", "GP11"] + }, + "processor": "RP2040", + "usb": { + "device_version": "1.0.0", + "pid": "0x0006", + "vid": "0x445A" + }, + "community_layouts": ["tkl_nofrow_ansi", "tkl_nofrow_iso"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [2, 12], "x": 16.25, "y": 0}, + {"matrix": [2, 13], "x": 17.25, "y": 0}, - { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, - { "matrix": [1, 1], "x": 1.5, "y": 1 }, - { "matrix": [1, 2], "x": 2.5, "y": 1 }, - { "matrix": [1, 3], "x": 3.5, "y": 1 }, - { "matrix": [1, 4], "x": 4.5, "y": 1 }, - { "matrix": [1, 5], "x": 5.5, "y": 1 }, - { "matrix": [1, 6], "x": 6.5, "y": 1 }, - { "matrix": [1, 7], "x": 7.5, "y": 1 }, - { "matrix": [1, 8], "x": 8.5, "y": 1 }, - { "matrix": [1, 9], "x": 9.5, "y": 1 }, - { "matrix": [1, 10], "x": 10.5, "y": 1 }, - { "matrix": [1, 11], "x": 11.5, "y": 1 }, - { "matrix": [1, 12], "x": 12.5, "y": 1 }, - { "matrix": [1, 13], "x": 12.75, "y": 2 }, - { "matrix": [1, 15], "x": 15.25, "y": 1 }, - { "matrix": [2, 14], "x": 16.25, "y": 1 }, - { "matrix": [2, 15], "x": 17.25, "y": 1 }, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15.25, "y": 1}, + {"matrix": [2, 14], "x": 16.25, "y": 1}, + {"matrix": [2, 15], "x": 17.25, "y": 1}, - { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, - { "matrix": [2, 1], "x": 1.75, "y": 2 }, - { "matrix": [2, 2], "x": 2.75, "y": 2 }, - { "matrix": [2, 3], "x": 3.75, "y": 2 }, - { "matrix": [2, 4], "x": 4.75, "y": 2 }, - { "matrix": [2, 5], "x": 5.75, "y": 2 }, - { "matrix": [2, 6], "x": 6.75, "y": 2 }, - { "matrix": [2, 7], "x": 7.75, "y": 2 }, - { "matrix": [2, 8], "x": 8.75, "y": 2 }, - { "matrix": [2, 9], "x": 9.75, "y": 2 }, - { "matrix": [2, 10], "x": 10.75, "y": 2 }, - { "matrix": [2, 11], "x": 11.75, "y": 2 }, - { "matrix": [1, 14], "w": 1.25, "x": 12.75, "y": 1 }, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 14], "x": 12.75, "y": 2, "w": 2.25}, - { "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, - { "matrix": [3, 1], "x": 1.25, "y": 3 }, - { "matrix": [3, 2], "x": 2.25, "y": 3 }, - { "matrix": [3, 3], "x": 3.25, "y": 3 }, - { "matrix": [3, 4], "x": 4.25, "y": 3 }, - { "matrix": [3, 5], "x": 5.25, "y": 3 }, - { "matrix": [3, 6], "x": 6.25, "y": 3 }, - { "matrix": [3, 7], "x": 7.25, "y": 3 }, - { "matrix": [3, 8], "x": 8.25, "y": 3 }, - { "matrix": [3, 9], "x": 9.25, "y": 3 }, - { "matrix": [3, 10], "x": 10.25, "y": 3 }, - { "matrix": [3, 11], "x": 11.25, "y": 3 }, - { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, - { "matrix": [3, 13], "x": 15.25, "y": 3 }, - { "matrix": [3, 14], "x": 16.25, "y": 3 }, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 16.25, "y": 3}, - { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, - { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, - { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, - { "matrix": [4, 7], "w": 6.25, "x": 3.75, "y": 4 }, - { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, - { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, - { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, - { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 }, - { "matrix": [3, 15], "x": 15.25, "y": 4 }, - { "matrix": [4, 14], "x": 16.25, "y": 4 }, - { "matrix": [4, 15], "x": 17.25, "y": 4 } - ] - }, - "LAYOUT_iso": { - "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 1], "x": 1, "y": 0 }, - { "matrix": [0, 2], "x": 2, "y": 0 }, - { "matrix": [0, 3], "x": 3, "y": 0 }, - { "matrix": [0, 4], "x": 4, "y": 0 }, - { "matrix": [0, 5], "x": 5, "y": 0 }, - { "matrix": [0, 6], "x": 6, "y": 0 }, - { "matrix": [0, 7], "x": 7, "y": 0 }, - { "matrix": [0, 8], "x": 8, "y": 0 }, - { "matrix": [0, 9], "x": 9, "y": 0 }, - { "matrix": [0, 10], "x": 10, "y": 0 }, - { "matrix": [0, 11], "x": 11, "y": 0 }, - { "matrix": [0, 12], "x": 12, "y": 0 }, - { "matrix": [0, 13], "x": 13, "y": 0 }, - { "matrix": [0, 14], "x": 14, "y": 0 }, - { "matrix": [0, 15], "x": 15.25, "y": 0 }, - { "matrix": [2, 12], "x": 16.25, "y": 0 }, - { "matrix": [2, 13], "x": 17.25, "y": 0 }, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}, + {"matrix": [3, 15], "x": 15.25, "y": 4}, + {"matrix": [4, 14], "x": 16.25, "y": 4}, + {"matrix": [4, 15], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [2, 12], "x": 16.25, "y": 0}, + {"matrix": [2, 13], "x": 17.25, "y": 0}, - { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, - { "matrix": [1, 1], "x": 1.5, "y": 1 }, - { "matrix": [1, 2], "x": 2.5, "y": 1 }, - { "matrix": [1, 3], "x": 3.5, "y": 1 }, - { "matrix": [1, 4], "x": 4.5, "y": 1 }, - { "matrix": [1, 5], "x": 5.5, "y": 1 }, - { "matrix": [1, 6], "x": 6.5, "y": 1 }, - { "matrix": [1, 7], "x": 7.5, "y": 1 }, - { "matrix": [1, 8], "x": 8.5, "y": 1 }, - { "matrix": [1, 9], "x": 9.5, "y": 1 }, - { "matrix": [1, 10], "x": 10.5, "y": 1 }, - { "matrix": [1, 11], "x": 11.5, "y": 1 }, - { "matrix": [1, 12], "x": 12.5, "y": 1 }, - { "h": 2, "matrix": [1, 14], "w": 1.25, "x": 13.75, "y": 1 }, - { "matrix": [1, 15], "x": 15.25, "y": 1 }, - { "matrix": [2, 14], "x": 16.25, "y": 1 }, - { "matrix": [2, 15], "x": 17.25, "y": 1 }, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15.25, "y": 1}, + {"matrix": [2, 14], "x": 16.25, "y": 1}, + {"matrix": [2, 15], "x": 17.25, "y": 1}, - { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, - { "matrix": [2, 1], "x": 1.75, "y": 2 }, - { "matrix": [2, 2], "x": 2.75, "y": 2 }, - { "matrix": [2, 3], "x": 3.75, "y": 2 }, - { "matrix": [2, 4], "x": 4.75, "y": 2 }, - { "matrix": [2, 5], "x": 5.75, "y": 2 }, - { "matrix": [2, 6], "x": 6.75, "y": 2 }, - { "matrix": [2, 7], "x": 7.75, "y": 2 }, - { "matrix": [2, 8], "x": 8.75, "y": 2 }, - { "matrix": [2, 9], "x": 9.75, "y": 2 }, - { "matrix": [2, 10], "x": 10.75, "y": 2 }, - { "matrix": [2, 11], "x": 11.75, "y": 2 }, - { "matrix": [1, 13], "x": 12.75, "y": 2 }, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 14], "x": 12.75, "y": 2, "w": 2.25}, - { "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, - { "matrix": [3, 1], "x": 1.25, "y": 3 }, - { "matrix": [3, 2], "x": 2.25, "y": 3 }, - { "matrix": [3, 3], "x": 3.25, "y": 3 }, - { "matrix": [3, 4], "x": 4.25, "y": 3 }, - { "matrix": [3, 5], "x": 5.25, "y": 3 }, - { "matrix": [3, 6], "x": 6.25, "y": 3 }, - { "matrix": [3, 7], "x": 7.25, "y": 3 }, - { "matrix": [3, 8], "x": 8.25, "y": 3 }, - { "matrix": [3, 9], "x": 9.25, "y": 3 }, - { "matrix": [3, 10], "x": 10.25, "y": 3 }, - { "matrix": [3, 11], "x": 11.25, "y": 3 }, - { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, - { "matrix": [3, 13], "x": 15.25, "y": 3 }, - { "matrix": [3, 14], "x": 16.25, "y": 3 }, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [3, 14], "x": 16.25, "y": 3}, - { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, - { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, - { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, - { "matrix": [4, 7], "w": 6.25, "x": 3.75, "y": 4 }, - { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, - { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, - { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, - { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 }, - { "matrix": [3, 15], "x": 15.25, "y": 4 }, - { "matrix": [4, 14], "x": 16.25, "y": 4 }, - { "matrix": [4, 15], "x": 17.25, "y": 4 } - ] + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}, + {"matrix": [3, 15], "x": 15.25, "y": 4}, + {"matrix": [4, 14], "x": 16.25, "y": 4}, + {"matrix": [4, 15], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [2, 12], "x": 16.25, "y": 0}, + {"matrix": [2, 13], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15.25, "y": 1}, + {"matrix": [2, 14], "x": 16.25, "y": 1}, + {"matrix": [2, 15], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 14], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}, + {"matrix": [3, 15], "x": 15.25, "y": 4}, + {"matrix": [4, 14], "x": 16.25, "y": 4}, + {"matrix": [4, 15], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [2, 12], "x": 16.25, "y": 0}, + {"matrix": [2, 13], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15.25, "y": 1}, + {"matrix": [2, 14], "x": 16.25, "y": 1}, + {"matrix": [2, 15], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 14], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [3, 14], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}, + {"matrix": [3, 15], "x": 15.25, "y": 4}, + {"matrix": [4, 14], "x": 16.25, "y": 4}, + {"matrix": [4, 15], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [2, 12], "x": 16.25, "y": 0}, + {"matrix": [2, 13], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15.25, "y": 1}, + {"matrix": [2, 14], "x": 16.25, "y": 1}, + {"matrix": [2, 15], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 14], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}, + {"matrix": [3, 15], "x": 15.25, "y": 4}, + {"matrix": [4, 14], "x": 16.25, "y": 4}, + {"matrix": [4, 15], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [2, 12], "x": 16.25, "y": 0}, + {"matrix": [2, 13], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15.25, "y": 1}, + {"matrix": [2, 14], "x": 16.25, "y": 1}, + {"matrix": [2, 15], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 14], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [3, 14], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}, + {"matrix": [3, 15], "x": 15.25, "y": 4}, + {"matrix": [4, 14], "x": 16.25, "y": 4}, + {"matrix": [4, 15], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [2, 12], "x": 16.25, "y": 0}, + {"matrix": [2, 13], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15.25, "y": 1}, + {"matrix": [2, 14], "x": 16.25, "y": 1}, + {"matrix": [2, 15], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 14], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}, + {"matrix": [3, 15], "x": 15.25, "y": 4}, + {"matrix": [4, 14], "x": 16.25, "y": 4}, + {"matrix": [4, 15], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [2, 12], "x": 16.25, "y": 0}, + {"matrix": [2, 13], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 15], "x": 15.25, "y": 1}, + {"matrix": [2, 14], "x": 16.25, "y": 1}, + {"matrix": [2, 15], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [1, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [3, 14], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}, + {"matrix": [3, 15], "x": 15.25, "y": 4}, + {"matrix": [4, 14], "x": 16.25, "y": 4}, + {"matrix": [4, 15], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [2, 12], "x": 16.25, "y": 0}, + {"matrix": [2, 13], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 15], "x": 15.25, "y": 1}, + {"matrix": [2, 14], "x": 16.25, "y": 1}, + {"matrix": [2, 15], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [1, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}, + {"matrix": [3, 15], "x": 15.25, "y": 4}, + {"matrix": [4, 14], "x": 16.25, "y": 4}, + {"matrix": [4, 15], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [2, 12], "x": 16.25, "y": 0}, + {"matrix": [2, 13], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 15], "x": 15.25, "y": 1}, + {"matrix": [2, 14], "x": 16.25, "y": 1}, + {"matrix": [2, 15], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [1, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [3, 14], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}, + {"matrix": [3, 15], "x": 15.25, "y": 4}, + {"matrix": [4, 14], "x": 16.25, "y": 4}, + {"matrix": [4, 15], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [2, 12], "x": 16.25, "y": 0}, + {"matrix": [2, 13], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 15], "x": 15.25, "y": 1}, + {"matrix": [2, 14], "x": 16.25, "y": 1}, + {"matrix": [2, 15], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [1, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}, + {"matrix": [3, 15], "x": 15.25, "y": 4}, + {"matrix": [4, 14], "x": 16.25, "y": 4}, + {"matrix": [4, 15], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [2, 12], "x": 16.25, "y": 0}, + {"matrix": [2, 13], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 15], "x": 15.25, "y": 1}, + {"matrix": [2, 14], "x": 16.25, "y": 1}, + {"matrix": [2, 15], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [1, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [3, 14], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}, + {"matrix": [3, 15], "x": 15.25, "y": 4}, + {"matrix": [4, 14], "x": 16.25, "y": 4}, + {"matrix": [4, 15], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [2, 12], "x": 16.25, "y": 0}, + {"matrix": [2, 13], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 15], "x": 15.25, "y": 1}, + {"matrix": [2, 14], "x": 16.25, "y": 1}, + {"matrix": [2, 15], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [1, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}, + {"matrix": [3, 15], "x": 15.25, "y": 4}, + {"matrix": [4, 14], "x": 16.25, "y": 4}, + {"matrix": [4, 15], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [2, 12], "x": 16.25, "y": 0}, + {"matrix": [2, 13], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1}, + {"matrix": [2, 14], "x": 16.25, "y": 1}, + {"matrix": [2, 15], "x": 17.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 16.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}, + {"matrix": [3, 15], "x": 15.25, "y": 4}, + {"matrix": [4, 14], "x": 16.25, "y": 4}, + {"matrix": [4, 15], "x": 17.25, "y": 4} + ] + } } - } } diff --git a/keyboards/dztech/pluto/keymaps/default/keymap.c b/keyboards/dztech/pluto/keymaps/default/keymap.c index 9edd2f178f..4824a87a48 100644 --- a/keyboards/dztech/pluto/keymaps/default/keymap.c +++ b/keyboards/dztech/pluto/keymaps/default/keymap.c @@ -18,10 +18,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( - KC_GRV, 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_BSPC, KC_DEL, KC_INS, KC_HOME, 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_NUHS, KC_DEL, KC_END, 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_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_RSFT, MO(1), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + KC_GRV, 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_BSPC, KC_DEL, KC_INS, KC_HOME, 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_NUHS, KC_DEL, KC_END, 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_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_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) }; diff --git a/keyboards/dztech/pluto/keymaps/via/keymap.c b/keyboards/dztech/pluto/keymaps/via/keymap.c index 9edd2f178f..4824a87a48 100644 --- a/keyboards/dztech/pluto/keymaps/via/keymap.c +++ b/keyboards/dztech/pluto/keymaps/via/keymap.c @@ -18,10 +18,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( - KC_GRV, 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_BSPC, KC_DEL, KC_INS, KC_HOME, 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_NUHS, KC_DEL, KC_END, 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_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_RSFT, MO(1), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + KC_GRV, 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_BSPC, KC_DEL, KC_INS, KC_HOME, 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_NUHS, KC_DEL, KC_END, 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_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_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) }; diff --git a/keyboards/dztech/pluto/matrix_diagram.md b/keyboards/dztech/pluto/matrix_diagram.md new file mode 100644 index 0000000000..576dea9578 --- /dev/null +++ b/keyboards/dztech/pluto/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for DZTECH PLUTO + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E ││0F │2C │2D │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D ││1F │2E │2F │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ ┌──┴┐1E │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │1E │ │1D │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ │3E │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ +│40 │41 │42 │47 │4A │4B │4C │4D ││3F │4E │4F │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ +┌────────┐ ┌──────────┐ +│30 │ 2.25u LShift 2.75u RShift │3C │ +└────────┘ └──────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│40 │41 │42 │47 │4B │4C │4D │ Tsangan/WKL +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` From 4ce3a1c1e9f21ef2e4ec7f2384b0b55716e004af Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue, 19 Sep 2023 15:08:09 -0700 Subject: [PATCH 095/496] Ubest VN Community Layout Support (#22070) * Add layout/matrix diagram [docs] * Rename `LAYOUT` to `LAYOUT_all` [refactor] * Add `LAYOUT_65_ansi_split_bs` [enhancement] * Add `LAYOUT_65_ansi` [enhancement] * Add `LAYOUT_65_iso_split_bs` [enhancement] * Add `LAYOUT_65_iso` [enhancement] * Enable Community Layout support [enhancement] * Touch-up keymaps - apply four-space indent - grid-align keycodes [style] --- keyboards/ubest/vn/info.json | 319 +++++++++++++++++++- keyboards/ubest/vn/keymaps/default/keymap.c | 32 +- keyboards/ubest/vn/keymaps/via/keymap.c | 42 +-- keyboards/ubest/vn/matrix_diagram.md | 27 ++ 4 files changed, 382 insertions(+), 38 deletions(-) create mode 100644 keyboards/ubest/vn/matrix_diagram.md diff --git a/keyboards/ubest/vn/info.json b/keyboards/ubest/vn/info.json index 87afc573d5..078605e4a5 100644 --- a/keyboards/ubest/vn/info.json +++ b/keyboards/ubest/vn/info.json @@ -34,8 +34,17 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, + "community_layouts": [ + "65_ansi", + "65_ansi_split_bs", + "65_iso", + "65_iso_split_bs" + ], "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -113,6 +122,314 @@ {"matrix": [4, 13], "x": 14, "y": 4}, {"matrix": [4, 14], "x": 15, "y": 4} ] + }, + "LAYOUT_65_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 9], "x": 10, "y": 4}, + {"matrix": [4, 10], "x": 11, "y": 4}, + {"matrix": [4, 11], "x": 12, "y": 4}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 9], "x": 10, "y": 4}, + {"matrix": [4, 10], "x": 11, "y": 4}, + {"matrix": [4, 11], "x": 12, "y": 4}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 9], "x": 10, "y": 4}, + {"matrix": [4, 10], "x": 11, "y": 4}, + {"matrix": [4, 11], "x": 12, "y": 4}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 9], "x": 10, "y": 4}, + {"matrix": [4, 10], "x": 11, "y": 4}, + {"matrix": [4, 11], "x": 12, "y": 4}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] } } } diff --git a/keyboards/ubest/vn/keymaps/default/keymap.c b/keyboards/ubest/vn/keymaps/default/keymap.c index 1e09227336..c49cfceaa1 100644 --- a/keyboards/ubest/vn/keymaps/default/keymap.c +++ b/keyboards/ubest/vn/keymaps/default/keymap.c @@ -17,25 +17,25 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_ESC, 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_BSPC, KC_BSPC, KC_HOME, - 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_PGUP, - 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_ENT, KC_PGDN, - KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [0] = LAYOUT_all( + KC_ESC, 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_BSPC, KC_BSPC, KC_HOME, + 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_PGUP, + 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_ENT, KC_PGDN, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_all( 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_DEL, KC_DEL, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [2] = LAYOUT( + [2] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; diff --git a/keyboards/ubest/vn/keymaps/via/keymap.c b/keyboards/ubest/vn/keymaps/via/keymap.c index 31d8027121..1486261cb3 100644 --- a/keyboards/ubest/vn/keymaps/via/keymap.c +++ b/keyboards/ubest/vn/keymaps/via/keymap.c @@ -17,32 +17,32 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_ESC, 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_BSPC, KC_BSPC, KC_HOME, - 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_PGUP, - 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_ENT, KC_PGDN, - KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [0] = LAYOUT_all( + KC_ESC, 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_BSPC, KC_BSPC, KC_HOME, + 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_PGUP, + 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_ENT, KC_PGDN, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_all( 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_DEL, KC_DEL, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [2] = LAYOUT( + [2] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT( + [3] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; diff --git a/keyboards/ubest/vn/matrix_diagram.md b/keyboards/ubest/vn/matrix_diagram.md new file mode 100644 index 0000000000..c3831c332d --- /dev/null +++ b/keyboards/ubest/vn/matrix_diagram.md @@ -0,0 +1,27 @@ +# Matrix Diagram for ubest vn + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2D │0E │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐2C │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2E │ │1D │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ +│40 │41 │43 │47 │48 │49 │4A │4B │4C │4D │4E │ +└────┴────┴────┴────────────────────┴───┴───┴───┴───┴───┴───┴───┘ +┌────────┐ +│30 │ 2.25u LShift +└────────┘ +┌────┬────┬────┬────────────────────────┬───┬───┬───┬───┬───┬───┐ +│40 │41 │43 │47 │49 │4A │4B │4C │4D │4E │ Standard +└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ +┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┬───┐ +│40 │41 │43 │47 │48 │49 │4A │4B │4E │ 4x 1.25u RMods +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┴───┘ +``` From 8c92c0a59d1a494188152ea6ed7e1535ddf8a78b Mon Sep 17 00:00:00 2001 From: Deddia Permana Date: Wed, 20 Sep 2023 06:08:58 +0700 Subject: [PATCH 096/496] Add OLED logo DP3000 macropad (#21936) --- keyboards/dp3000/dp3000.c | 71 ++++++++++++++++++++++++++++++---- keyboards/dp3000/post_config.h | 22 +++++++++++ 2 files changed, 85 insertions(+), 8 deletions(-) create mode 100644 keyboards/dp3000/post_config.h diff --git a/keyboards/dp3000/dp3000.c b/keyboards/dp3000/dp3000.c index 3d99670fe3..6daeaa5663 100644 --- a/keyboards/dp3000/dp3000.c +++ b/keyboards/dp3000/dp3000.c @@ -15,20 +15,75 @@ */ #include "quantum.h" -bool oled_task_kb(void) { - if (!oled_task_user()) { - return false; - } +#define LOGO_TIMEOUT 3000 + +static uint32_t logo_timer = 0; +static bool display_logo = true; + +void dp3000_logo(void) { + static const char PROGMEM dp3000_logo[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x60, 0x7c, 0x7c, 0x60, 0x60, 0x60, 0x60, + 0x7c, 0x7c, 0x60, 0x60, 0x60, 0x60, 0x7c, 0x7c, 0x60, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x86, 0x86, 0x86, 0xff, 0xff, 0x00, 0x00, 0xf8, 0xf8, 0x18, 0x18, 0xf0, 0xe0, + 0x00, 0x00, 0xf8, 0xf8, 0x18, 0x18, 0xf8, 0xf0, 0x00, 0x00, 0xff, 0xff, 0x86, 0x86, 0x86, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x18, 0x98, 0x98, 0xf8, 0xf0, 0x00, 0xf0, 0xf8, 0x18, 0x18, 0xf8, 0xf0, + 0x00, 0xf0, 0xf8, 0x18, 0x18, 0xf8, 0xf0, 0x00, 0xf0, 0xf8, 0x18, 0x18, 0xf8, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x61, 0x61, 0x61, 0xff, 0xff, 0x00, 0x00, 0x1f, 0x1f, 0x18, 0x18, 0x0f, 0x07, + 0x00, 0x00, 0x1f, 0x1f, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0xff, 0xff, 0x61, 0x61, 0x61, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x18, 0x19, 0x19, 0x1f, 0x0f, 0x00, 0x0f, 0x1f, 0x18, 0x18, 0x1f, 0x0f, + 0x00, 0x0f, 0x1f, 0x18, 0x18, 0x1f, 0x0f, 0x00, 0x0f, 0x1f, 0x18, 0x18, 0x1f, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x06, 0x3e, 0x3e, 0x06, 0x06, 0x06, 0x06, + 0x3e, 0x3e, 0x06, 0x06, 0x06, 0x06, 0x3e, 0x3e, 0x06, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + oled_write_raw_P(dp3000_logo, sizeof(dp3000_logo)); +} + +void default_status(void) { + oled_set_cursor(0, 0); oled_write_P(PSTR("LAYER: "), false); oled_write_char('0' + get_highest_layer(layer_state), false); - + oled_advance_page(true); + oled_write_P(PSTR("LOCK: "), false); led_t led_state = host_keyboard_led_state(); - oled_set_cursor(0, 1); oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); - oled_set_cursor(0, 2); oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); - oled_set_cursor(0, 3); oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + if (display_logo && timer_elapsed32(logo_timer) > LOGO_TIMEOUT) { + display_logo = false; + oled_clear(); + logo_timer = 0; + } + if (display_logo) { + dp3000_logo(); + } else { + default_status(); + } return false; } diff --git a/keyboards/dp3000/post_config.h b/keyboards/dp3000/post_config.h new file mode 100644 index 0000000000..ef2ce27e21 --- /dev/null +++ b/keyboards/dp3000/post_config.h @@ -0,0 +1,22 @@ +/* + * Copyright 2023 deddia permana (@depermana12) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#if !defined(OLED_TIMEOUT) +# define OLED_TIMEOUT 30000 +#endif From 2742935c548bbd3506079eaf5d464e46d66218e2 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue, 19 Sep 2023 16:42:12 -0700 Subject: [PATCH 097/496] SapuSeven MacroPad12: rename LAYOUT to LAYOUT_ortho_3x4 (#22081) --- keyboards/sapuseven/macropad12/info.json | 5 ++++- keyboards/sapuseven/macropad12/keymaps/default/keymap.c | 2 +- keyboards/sapuseven/macropad12/keymaps/via/keymap.c | 8 ++++---- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/keyboards/sapuseven/macropad12/info.json b/keyboards/sapuseven/macropad12/info.json index aafd8fcd0f..28e8c19bf8 100644 --- a/keyboards/sapuseven/macropad12/info.json +++ b/keyboards/sapuseven/macropad12/info.json @@ -22,8 +22,11 @@ "vid": "0x1209", "pid": "0x7337" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_ortho_3x4" + }, "layouts": { - "LAYOUT": { + "LAYOUT_ortho_3x4": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/sapuseven/macropad12/keymaps/default/keymap.c b/keyboards/sapuseven/macropad12/keymaps/default/keymap.c index 1cfa260103..3a498e6aaf 100644 --- a/keyboards/sapuseven/macropad12/keymaps/default/keymap.c +++ b/keyboards/sapuseven/macropad12/keymaps/default/keymap.c @@ -17,7 +17,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_ortho_3x4( KC_1, KC_2, KC_3, KC_PLUS, KC_4, KC_5, KC_6, KC_MINUS, KC_7, KC_8, KC_9, KC_0 diff --git a/keyboards/sapuseven/macropad12/keymaps/via/keymap.c b/keyboards/sapuseven/macropad12/keymaps/via/keymap.c index 771c3efc9a..06879d1b43 100644 --- a/keyboards/sapuseven/macropad12/keymaps/via/keymap.c +++ b/keyboards/sapuseven/macropad12/keymaps/via/keymap.c @@ -17,22 +17,22 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_ortho_3x4( KC_1, KC_2, KC_3, KC_PLUS, KC_4, KC_5, KC_6, KC_MINUS, KC_7, KC_8, KC_9, KC_0 ), - [1] = LAYOUT( + [1] = LAYOUT_ortho_3x4( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 ), - [2] = LAYOUT( + [2] = LAYOUT_ortho_3x4( KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24 ), - [3] = LAYOUT( + [3] = LAYOUT_ortho_3x4( KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO From 2aacda32358bfda5fccbfb1e6f4f906c5efa702d Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 20 Sep 2023 16:33:54 +1000 Subject: [PATCH 098/496] Move `PACKED` define to util.h (#22074) --- quantum/color.h | 15 +-------------- quantum/led_matrix/led_matrix_types.h | 15 +-------------- quantum/rgb_matrix/rgb_matrix_types.h | 15 +-------------- quantum/util.h | 4 ++++ 4 files changed, 7 insertions(+), 42 deletions(-) diff --git a/quantum/color.h b/quantum/color.h index a0414a291f..00a3bfb3f8 100644 --- a/quantum/color.h +++ b/quantum/color.h @@ -18,6 +18,7 @@ #include #include +#include "util.h" // clang-format off @@ -73,16 +74,6 @@ // clang-format on -#if defined(__GNUC__) -# define PACKED __attribute__((__packed__)) -#else -# define PACKED -#endif - -#if defined(_MSC_VER) -# pragma pack(push, 1) -#endif - #define WS2812_BYTE_ORDER_RGB 0 #define WS2812_BYTE_ORDER_GRB 1 #define WS2812_BYTE_ORDER_BGR 2 @@ -118,10 +109,6 @@ typedef struct PACKED HSV { uint8_t v; } HSV; -#if defined(_MSC_VER) -# pragma pack(pop) -#endif - RGB hsv_to_rgb(HSV hsv); RGB hsv_to_rgb_nocie(HSV hsv); #ifdef RGBW diff --git a/quantum/led_matrix/led_matrix_types.h b/quantum/led_matrix/led_matrix_types.h index 6709a558bb..5a516ceb10 100644 --- a/quantum/led_matrix/led_matrix_types.h +++ b/quantum/led_matrix/led_matrix_types.h @@ -18,16 +18,7 @@ #include #include - -#if defined(__GNUC__) -# define PACKED __attribute__((__packed__)) -#else -# define PACKED -#endif - -#if defined(_MSC_VER) -# pragma pack(push, 1) -#endif +#include "util.h" #if defined(LED_MATRIX_KEYPRESSES) || defined(LED_MATRIX_KEYRELEASES) # define LED_MATRIX_KEYREACTIVE_ENABLED @@ -92,7 +83,3 @@ typedef union { } led_eeconfig_t; _Static_assert(sizeof(led_eeconfig_t) == sizeof(uint32_t), "LED Matrix EECONFIG out of spec."); - -#if defined(_MSC_VER) -# pragma pack(pop) -#endif diff --git a/quantum/rgb_matrix/rgb_matrix_types.h b/quantum/rgb_matrix/rgb_matrix_types.h index 53ff7321b8..0a3fd7cc0d 100644 --- a/quantum/rgb_matrix/rgb_matrix_types.h +++ b/quantum/rgb_matrix/rgb_matrix_types.h @@ -19,16 +19,7 @@ #include #include #include "color.h" - -#if defined(__GNUC__) -# define PACKED __attribute__((__packed__)) -#else -# define PACKED -#endif - -#if defined(_MSC_VER) -# pragma pack(push, 1) -#endif +#include "util.h" #if defined(RGB_MATRIX_KEYPRESSES) || defined(RGB_MATRIX_KEYRELEASES) # define RGB_MATRIX_KEYREACTIVE_ENABLED @@ -94,7 +85,3 @@ typedef union { } rgb_config_t; _Static_assert(sizeof(rgb_config_t) == sizeof(uint64_t), "RGB Matrix EECONFIG out of spec."); - -#if defined(_MSC_VER) -# pragma pack(pop) -#endif diff --git a/quantum/util.h b/quantum/util.h index 9c034cc404..21e3487b28 100644 --- a/quantum/util.h +++ b/quantum/util.h @@ -46,3 +46,7 @@ */ # define ARRAY_SIZE(array) (__builtin_choose_expr(IS_ARRAY((array)), sizeof((array)) / sizeof((array)[0]), (void)0)) #endif + +#if !defined(PACKED) +# define PACKED __attribute__((__packed__)) +#endif From 05dfe9f9c5ee370d85ce25f1adc0d7e2dd94fa96 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue, 19 Sep 2023 23:35:37 -0700 Subject: [PATCH 099/496] Alchemist Keyboards OGRN Layout Addition (#22080) * Add layout/matrix diagram [docs] * Friendly-format `info.json` [style] * Add `LAYOUT_ortho_5x4` [enhancement] * Touch-up keymaps - update grid-alignment (layer-to-layer consistency) - fix box drawings [style] * Extend Community Layout support Add `ortho_5x4` to supported Community Layouts. [enhancement] --- keyboards/akb/ogrn/info.json | 45 ++++++++++++++++++--- keyboards/akb/ogrn/keymaps/default/keymap.c | 12 +++--- keyboards/akb/ogrn/keymaps/via/keymap.c | 10 ++--- keyboards/akb/ogrn/matrix_diagram.md | 18 +++++++++ 4 files changed, 68 insertions(+), 17 deletions(-) create mode 100644 keyboards/akb/ogrn/matrix_diagram.md diff --git a/keyboards/akb/ogrn/info.json b/keyboards/akb/ogrn/info.json index 42efe55c2a..780c353747 100644 --- a/keyboards/akb/ogrn/info.json +++ b/keyboards/akb/ogrn/info.json @@ -30,29 +30,62 @@ "pid": "0x4F4E", "vid": "0x414B" }, - "community_layouts": [ - "numpad_5x4" - ], + "community_layouts": [ + "ortho_5x4", + "numpad_5x4" + ], "layouts": { + "LAYOUT_ortho_5x4": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4} + ] + }, "LAYOUT_numpad_5x4": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, {"matrix": [0, 2], "x": 2, "y": 0}, {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, {"matrix": [1, 1], "x": 1, "y": 1}, {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, {"matrix": [2, 1], "x": 1, "y": 2}, {"matrix": [2, 2], "x": 2, "y": 2}, - {"h": 2, "matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1, "h": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, {"matrix": [3, 1], "x": 1, "y": 3}, {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [4, 0], "w": 2, "x": 0, "y": 4}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2}, {"matrix": [4, 2], "x": 2, "y": 4}, - {"h": 2, "matrix": [3, 3], "x": 3, "y": 3} + {"matrix": [3, 3], "x": 3, "y": 3, "h": 2} ] } } diff --git a/keyboards/akb/ogrn/keymaps/default/keymap.c b/keyboards/akb/ogrn/keymaps/default/keymap.c index 35a275d055..f3901ec7fb 100644 --- a/keyboards/akb/ogrn/keymaps/default/keymap.c +++ b/keyboards/akb/ogrn/keymaps/default/keymap.c @@ -6,7 +6,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * ┌───┬───┬───┬───┐ - * │TG1│ / │ * │ - │ + * │NUM│ / │ * │ - │ * ├───┼───┼───┼───┤ * │ 7 │ 8 │ 9 │ │ * ├───┼───┼───┤ + │ @@ -22,21 +22,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P7, KC_P8, KC_P9, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_P1, KC_P2, KC_P3, - KC_P0, KC_PDOT, KC_PENT + KC_P0, KC_PDOT, KC_PENT ), /* * ┌───┬───┬───┬───┐ - * │TG1│ / │ * │ - │ - * ┌───┬───┬───┐───┤ + * │NUM│ / │ * │ - │ + * ├───┼───┼───┼───┤ * │Hom│ ↑ │PgU│ │ * ├───┼───┼───┤ + │ * │ ← │ │ → │ │ - * ├───┼───┼───┤───┤ + * ├───┼───┼───┼───┤ * │End│ ↓ │PgD│ │ * ├───┴───┼───┤Ent│ * │Insert │Del│ │ - * └───────┴───┘───┘ + * └───────┴───┴───┘ */ [1] = LAYOUT_numpad_5x4( _______, _______, _______, _______, diff --git a/keyboards/akb/ogrn/keymaps/via/keymap.c b/keyboards/akb/ogrn/keymaps/via/keymap.c index 7aec87a623..f3901ec7fb 100644 --- a/keyboards/akb/ogrn/keymaps/via/keymap.c +++ b/keyboards/akb/ogrn/keymaps/via/keymap.c @@ -22,21 +22,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P7, KC_P8, KC_P9, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_P1, KC_P2, KC_P3, - KC_P0, KC_PDOT, KC_PENT + KC_P0, KC_PDOT, KC_PENT ), /* * ┌───┬───┬───┬───┐ - * │ │ / │ * │ - │ - * ┌───┬───┬───┐───┤ + * │NUM│ / │ * │ - │ + * ├───┼───┼───┼───┤ * │Hom│ ↑ │PgU│ │ * ├───┼───┼───┤ + │ * │ ← │ │ → │ │ - * ├───┼───┼───┤───┤ + * ├───┼───┼───┼───┤ * │End│ ↓ │PgD│ │ * ├───┴───┼───┤Ent│ * │Insert │Del│ │ - * └───────┴───┘───┘ + * └───────┴───┴───┘ */ [1] = LAYOUT_numpad_5x4( _______, _______, _______, _______, diff --git a/keyboards/akb/ogrn/matrix_diagram.md b/keyboards/akb/ogrn/matrix_diagram.md new file mode 100644 index 0000000000..03e4f99def --- /dev/null +++ b/keyboards/akb/ogrn/matrix_diagram.md @@ -0,0 +1,18 @@ +# Matrix Diagram for Alchemist Keyboards OGRN + +``` + ┌───┬───┬───┬───┐ + │00 │01 │02 │03 │ +┌───┐ ├───┼───┼───┼───┤ ┌───┐ +│ │ │10 │11 │12 │13 │ │ │ +│10 │ ├───┼───┼───┼───┤ │13 │ 2u Numpad Plus +│ │ │20 │21 │22 │23 │ │ │ +├───┤ ├───┼───┼───┼───┤ ├───┤ +│ │ │30 │31 │32 │33 │ │ │ +│30 │ ├───┼───┼───┼───┤ │33 │ 2u Numpad Enter +│ │ │40 │41 │42 │43 │ │ │ +└───┘ └───┴───┴───┴───┘ └───┘ + ┌───────┬───────┐ + │41 │42 │ + └───────┴───────┘ +``` From f03c470adf4a1754c7b280232493c3a6045d3088 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 20 Sep 2023 10:27:54 +0100 Subject: [PATCH 100/496] Remove ALLOW_WARNINGS and PICO_INTRINSICS_ENABLED (#22085) --- keyboards/bastardkb/charybdis/3x5/v2/splinky_2/rules.mk | 4 ---- keyboards/bastardkb/charybdis/3x5/v2/splinky_3/rules.mk | 4 ---- keyboards/bastardkb/charybdis/3x6/v2/splinky_2/rules.mk | 4 ---- keyboards/bastardkb/charybdis/3x6/v2/splinky_3/rules.mk | 4 ---- keyboards/bastardkb/charybdis/4x6/v2/splinky_2/rules.mk | 4 ---- keyboards/bastardkb/charybdis/4x6/v2/splinky_3/rules.mk | 4 ---- keyboards/bastardkb/dilemma/3x5_2/assembled/rules.mk | 3 --- keyboards/bastardkb/dilemma/3x5_2/splinky/rules.mk | 3 --- keyboards/bastardkb/dilemma/3x5_3/rules.mk | 3 --- keyboards/bastardkb/scylla/v2/splinky_2/rules.mk | 4 ---- keyboards/bastardkb/scylla/v2/splinky_3/rules.mk | 4 ---- keyboards/bastardkb/skeletyl/v2/splinky_2/rules.mk | 4 ---- keyboards/bastardkb/skeletyl/v2/splinky_3/rules.mk | 4 ---- keyboards/bastardkb/tbkmini/v2/splinky_2/rules.mk | 4 ---- keyboards/bastardkb/tbkmini/v2/splinky_3/rules.mk | 4 ---- keyboards/crowboard/rules.mk | 2 +- 16 files changed, 1 insertion(+), 58 deletions(-) diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/rules.mk b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/rules.mk index 80098fbbf6..87a2d912b8 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/rules.mk +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/rules.mk @@ -1,7 +1,3 @@ -# RP2040-specific options -ALLOW_WARNINGS = yes -PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS. - # Build Options # change yes to no to disable # diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/rules.mk b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/rules.mk index 80098fbbf6..87a2d912b8 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/rules.mk +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/rules.mk @@ -1,7 +1,3 @@ -# RP2040-specific options -ALLOW_WARNINGS = yes -PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS. - # Build Options # change yes to no to disable # diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/rules.mk b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/rules.mk index 80098fbbf6..87a2d912b8 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/rules.mk +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/rules.mk @@ -1,7 +1,3 @@ -# RP2040-specific options -ALLOW_WARNINGS = yes -PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS. - # Build Options # change yes to no to disable # diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/rules.mk b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/rules.mk index 80098fbbf6..87a2d912b8 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/rules.mk +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/rules.mk @@ -1,7 +1,3 @@ -# RP2040-specific options -ALLOW_WARNINGS = yes -PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS. - # Build Options # change yes to no to disable # diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/rules.mk b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/rules.mk index 80098fbbf6..87a2d912b8 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/rules.mk +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/rules.mk @@ -1,7 +1,3 @@ -# RP2040-specific options -ALLOW_WARNINGS = yes -PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS. - # Build Options # change yes to no to disable # diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/rules.mk b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/rules.mk index 80098fbbf6..87a2d912b8 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/rules.mk +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/rules.mk @@ -1,7 +1,3 @@ -# RP2040-specific options -ALLOW_WARNINGS = yes -PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS. - # Build Options # change yes to no to disable # diff --git a/keyboards/bastardkb/dilemma/3x5_2/assembled/rules.mk b/keyboards/bastardkb/dilemma/3x5_2/assembled/rules.mk index 5db74a9d84..b4722fc8e6 100644 --- a/keyboards/bastardkb/dilemma/3x5_2/assembled/rules.mk +++ b/keyboards/bastardkb/dilemma/3x5_2/assembled/rules.mk @@ -22,6 +22,3 @@ POINTING_DEVICE_ENABLE = yes POINTING_DEVICE_DRIVER = cirque_pinnacle_spi # Assembled version uses SPI. SPLIT_KEYBOARD = yes - -# RP2040-specific options -PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS. diff --git a/keyboards/bastardkb/dilemma/3x5_2/splinky/rules.mk b/keyboards/bastardkb/dilemma/3x5_2/splinky/rules.mk index 1e33cc1086..227d42fa24 100644 --- a/keyboards/bastardkb/dilemma/3x5_2/splinky/rules.mk +++ b/keyboards/bastardkb/dilemma/3x5_2/splinky/rules.mk @@ -22,6 +22,3 @@ POINTING_DEVICE_ENABLE = yes POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c # DIY version uses I2C. SPLIT_KEYBOARD = yes - -# RP2040-specific options -PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS. diff --git a/keyboards/bastardkb/dilemma/3x5_3/rules.mk b/keyboards/bastardkb/dilemma/3x5_3/rules.mk index 2b52cffbf7..3cdb41160c 100644 --- a/keyboards/bastardkb/dilemma/3x5_3/rules.mk +++ b/keyboards/bastardkb/dilemma/3x5_3/rules.mk @@ -22,6 +22,3 @@ POINTING_DEVICE_ENABLE = yes POINTING_DEVICE_DRIVER = cirque_pinnacle_spi SPLIT_KEYBOARD = yes - -# RP2040-specific options -PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS. diff --git a/keyboards/bastardkb/scylla/v2/splinky_2/rules.mk b/keyboards/bastardkb/scylla/v2/splinky_2/rules.mk index 274e95c039..53f4c0baa8 100644 --- a/keyboards/bastardkb/scylla/v2/splinky_2/rules.mk +++ b/keyboards/bastardkb/scylla/v2/splinky_2/rules.mk @@ -1,7 +1,3 @@ -# RP2040-specific options -ALLOW_WARNINGS = yes -PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS. - # Build Options # change yes to no to disable # diff --git a/keyboards/bastardkb/scylla/v2/splinky_3/rules.mk b/keyboards/bastardkb/scylla/v2/splinky_3/rules.mk index 274e95c039..53f4c0baa8 100644 --- a/keyboards/bastardkb/scylla/v2/splinky_3/rules.mk +++ b/keyboards/bastardkb/scylla/v2/splinky_3/rules.mk @@ -1,7 +1,3 @@ -# RP2040-specific options -ALLOW_WARNINGS = yes -PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS. - # Build Options # change yes to no to disable # diff --git a/keyboards/bastardkb/skeletyl/v2/splinky_2/rules.mk b/keyboards/bastardkb/skeletyl/v2/splinky_2/rules.mk index 274e95c039..53f4c0baa8 100644 --- a/keyboards/bastardkb/skeletyl/v2/splinky_2/rules.mk +++ b/keyboards/bastardkb/skeletyl/v2/splinky_2/rules.mk @@ -1,7 +1,3 @@ -# RP2040-specific options -ALLOW_WARNINGS = yes -PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS. - # Build Options # change yes to no to disable # diff --git a/keyboards/bastardkb/skeletyl/v2/splinky_3/rules.mk b/keyboards/bastardkb/skeletyl/v2/splinky_3/rules.mk index 274e95c039..53f4c0baa8 100644 --- a/keyboards/bastardkb/skeletyl/v2/splinky_3/rules.mk +++ b/keyboards/bastardkb/skeletyl/v2/splinky_3/rules.mk @@ -1,7 +1,3 @@ -# RP2040-specific options -ALLOW_WARNINGS = yes -PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS. - # Build Options # change yes to no to disable # diff --git a/keyboards/bastardkb/tbkmini/v2/splinky_2/rules.mk b/keyboards/bastardkb/tbkmini/v2/splinky_2/rules.mk index 274e95c039..53f4c0baa8 100644 --- a/keyboards/bastardkb/tbkmini/v2/splinky_2/rules.mk +++ b/keyboards/bastardkb/tbkmini/v2/splinky_2/rules.mk @@ -1,7 +1,3 @@ -# RP2040-specific options -ALLOW_WARNINGS = yes -PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS. - # Build Options # change yes to no to disable # diff --git a/keyboards/bastardkb/tbkmini/v2/splinky_3/rules.mk b/keyboards/bastardkb/tbkmini/v2/splinky_3/rules.mk index 274e95c039..53f4c0baa8 100644 --- a/keyboards/bastardkb/tbkmini/v2/splinky_3/rules.mk +++ b/keyboards/bastardkb/tbkmini/v2/splinky_3/rules.mk @@ -1,7 +1,3 @@ -# RP2040-specific options -ALLOW_WARNINGS = yes -PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS. - # Build Options # change yes to no to disable # diff --git a/keyboards/crowboard/rules.mk b/keyboards/crowboard/rules.mk index 37ad1d4c60..6e7633bfe0 100644 --- a/keyboards/crowboard/rules.mk +++ b/keyboards/crowboard/rules.mk @@ -1 +1 @@ -PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS! +# This file intentionally left blank From 16ad362e6728bafcb1f79bec193a484148932551 Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Wed, 20 Sep 2023 11:38:36 +0100 Subject: [PATCH 101/496] amend 96_(ansi|iso) community_layouts in keyboards/ (#22066) --- keyboards/donutcables/budget96/info.json | 224 +++++++++++++++++- .../budget96/keymaps/default/keymap.c | 24 +- .../budget96/keymaps/donut/keymap.c | 34 +-- .../donutcables/budget96/keymaps/via/keymap.c | 24 +- .../donutcables/budget96/matrix_diagram.md | 23 ++ keyboards/dztech/dz96/info.json | 9 +- keyboards/dztech/dz96/matrix_diagram.md | 23 ++ keyboards/idobao/id96/info.json | 115 ++++++++- .../idobao/id96/keymaps/default/keymap.c | 4 +- keyboards/idobao/id96/keymaps/via/keymap.c | 8 +- keyboards/idobao/id96/matrix_diagram.md | 41 ++++ keyboards/ymdk/melody96/info.json | 1 + keyboards/ymdk/melody96/matrix_diagram.md | 35 +++ 13 files changed, 505 insertions(+), 60 deletions(-) create mode 100644 keyboards/donutcables/budget96/matrix_diagram.md create mode 100644 keyboards/dztech/dz96/matrix_diagram.md create mode 100644 keyboards/idobao/id96/matrix_diagram.md create mode 100644 keyboards/ymdk/melody96/matrix_diagram.md diff --git a/keyboards/donutcables/budget96/info.json b/keyboards/donutcables/budget96/info.json index 42a817bfd6..a602811535 100644 --- a/keyboards/donutcables/budget96/info.json +++ b/keyboards/donutcables/budget96/info.json @@ -40,6 +40,7 @@ }, "processor": "atmega32a", "bootloader": "bootloadhid", + "community_layouts": ["96_ansi", "96_iso"], "layouts": { "LAYOUT_all": { "layout": [ @@ -156,6 +157,225 @@ ] }, "LAYOUT_96_ansi": { + "layout": [ + {"matrix": [5, 0], "x": 0, "y": 0}, + {"matrix": [5, 2], "x": 1, "y": 0}, + {"matrix": [5, 3], "x": 2, "y": 0}, + {"matrix": [5, 4], "x": 3, "y": 0}, + {"matrix": [5, 5], "x": 4, "y": 0}, + {"matrix": [6, 0], "x": 5, "y": 0}, + {"matrix": [6, 10], "x": 6, "y": 0}, + {"matrix": [7, 10], "x": 7, "y": 0}, + {"matrix": [7, 0], "x": 8, "y": 0}, + {"matrix": [5, 11], "x": 9, "y": 0}, + {"matrix": [5, 12], "x": 10, "y": 0}, + {"matrix": [5, 13], "x": 11, "y": 0}, + {"matrix": [5, 14], "x": 12, "y": 0}, + {"matrix": [1, 13], "x": 13, "y": 0}, + {"matrix": [2, 14], "x": 14, "y": 0}, + {"matrix": [0, 13], "x": 15, "y": 0}, + {"matrix": [7, 6], "x": 16, "y": 0}, + {"matrix": [7, 8], "x": 17, "y": 0}, + {"matrix": [7, 9], "x": 18, "y": 0}, + + {"matrix": [4, 0], "x": 0, "y": 1}, + {"matrix": [4, 1], "x": 1, "y": 1}, + {"matrix": [4, 2], "x": 2, "y": 1}, + {"matrix": [4, 3], "x": 3, "y": 1}, + {"matrix": [4, 4], "x": 4, "y": 1}, + {"matrix": [4, 5], "x": 5, "y": 1}, + {"matrix": [6, 1], "x": 6, "y": 1}, + {"matrix": [6, 11], "x": 7, "y": 1}, + {"matrix": [7, 11], "x": 8, "y": 1}, + {"matrix": [7, 1], "x": 9, "y": 1}, + {"matrix": [4, 10], "x": 10, "y": 1}, + {"matrix": [4, 11], "x": 11, "y": 1}, + {"matrix": [4, 12], "x": 12, "y": 1}, + {"matrix": [4, 14], "x": 13, "y": 1, "w": 2}, + {"matrix": [4, 6], "x": 15, "y": 1}, + {"matrix": [4, 7], "x": 16, "y": 1}, + {"matrix": [4, 8], "x": 17, "y": 1}, + {"matrix": [4, 9], "x": 18, "y": 1}, + + {"matrix": [3, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 2}, + {"matrix": [3, 2], "x": 2.5, "y": 2}, + {"matrix": [3, 3], "x": 3.5, "y": 2}, + {"matrix": [3, 4], "x": 4.5, "y": 2}, + {"matrix": [3, 5], "x": 5.5, "y": 2}, + {"matrix": [6, 2], "x": 6.5, "y": 2}, + {"matrix": [6, 12], "x": 7.5, "y": 2}, + {"matrix": [7, 12], "x": 8.5, "y": 2}, + {"matrix": [7, 2], "x": 9.5, "y": 2}, + {"matrix": [3, 10], "x": 10.5, "y": 2}, + {"matrix": [3, 11], "x": 11.5, "y": 2}, + {"matrix": [3, 12], "x": 12.5, "y": 2}, + {"matrix": [3, 13], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [3, 6], "x": 15, "y": 2}, + {"matrix": [3, 7], "x": 16, "y": 2}, + {"matrix": [3, 8], "x": 17, "y": 2}, + {"matrix": [3, 9], "x": 18, "y": 2, "h": 2}, + + {"matrix": [2, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 3}, + {"matrix": [2, 2], "x": 2.75, "y": 3}, + {"matrix": [2, 3], "x": 3.75, "y": 3}, + {"matrix": [2, 4], "x": 4.75, "y": 3}, + {"matrix": [2, 5], "x": 5.75, "y": 3}, + {"matrix": [6, 3], "x": 6.75, "y": 3}, + {"matrix": [6, 13], "x": 7.75, "y": 3}, + {"matrix": [7, 13], "x": 8.75, "y": 3}, + {"matrix": [7, 3], "x": 9.75, "y": 3}, + {"matrix": [2, 10], "x": 10.75, "y": 3}, + {"matrix": [2, 11], "x": 11.75, "y": 3}, + {"matrix": [2, 13], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [2, 6], "x": 15, "y": 3}, + {"matrix": [2, 7], "x": 16, "y": 3}, + {"matrix": [2, 8], "x": 17, "y": 3}, + + {"matrix": [1, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [1, 1], "x": 2.25, "y": 4}, + {"matrix": [1, 2], "x": 3.25, "y": 4}, + {"matrix": [1, 3], "x": 4.25, "y": 4}, + {"matrix": [1, 4], "x": 5.25, "y": 4}, + {"matrix": [1, 5], "x": 6.25, "y": 4}, + {"matrix": [6, 4], "x": 7.25, "y": 4}, + {"matrix": [6, 14], "x": 8.25, "y": 4}, + {"matrix": [7, 14], "x": 9.25, "y": 4}, + {"matrix": [7, 4], "x": 10.25, "y": 4}, + {"matrix": [1, 10], "x": 11.25, "y": 4}, + {"matrix": [1, 11], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [6, 8], "x": 14, "y": 4}, + {"matrix": [1, 6], "x": 15, "y": 4}, + {"matrix": [1, 7], "x": 16, "y": 4}, + {"matrix": [1, 8], "x": 17, "y": 4}, + {"matrix": [1, 9], "x": 18, "y": 4, "h": 2}, + + {"matrix": [0, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [0, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [0, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [6, 5], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [7, 5], "x": 10, "y": 5}, + {"matrix": [0, 10], "x": 11, "y": 5}, + {"matrix": [0, 11], "x": 12, "y": 5}, + {"matrix": [6, 6], "x": 13, "y": 5}, + {"matrix": [6, 7], "x": 14, "y": 5}, + {"matrix": [6, 9], "x": 15, "y": 5}, + {"matrix": [0, 6], "x": 16, "y": 5}, + {"matrix": [0, 8], "x": 17, "y": 5} + ] + }, + "LAYOUT_96_iso": { + "layout": [ + {"matrix": [5, 0], "x": 0, "y": 0}, + {"matrix": [5, 2], "x": 1, "y": 0}, + {"matrix": [5, 3], "x": 2, "y": 0}, + {"matrix": [5, 4], "x": 3, "y": 0}, + {"matrix": [5, 5], "x": 4, "y": 0}, + {"matrix": [6, 0], "x": 5, "y": 0}, + {"matrix": [6, 10], "x": 6, "y": 0}, + {"matrix": [7, 10], "x": 7, "y": 0}, + {"matrix": [7, 0], "x": 8, "y": 0}, + {"matrix": [5, 11], "x": 9, "y": 0}, + {"matrix": [5, 12], "x": 10, "y": 0}, + {"matrix": [5, 13], "x": 11, "y": 0}, + {"matrix": [5, 14], "x": 12, "y": 0}, + {"matrix": [1, 13], "x": 13, "y": 0}, + {"matrix": [2, 14], "x": 14, "y": 0}, + {"matrix": [0, 13], "x": 15, "y": 0}, + {"matrix": [7, 6], "x": 16, "y": 0}, + {"matrix": [7, 8], "x": 17, "y": 0}, + {"matrix": [7, 9], "x": 18, "y": 0}, + + {"matrix": [4, 0], "x": 0, "y": 1}, + {"matrix": [4, 1], "x": 1, "y": 1}, + {"matrix": [4, 2], "x": 2, "y": 1}, + {"matrix": [4, 3], "x": 3, "y": 1}, + {"matrix": [4, 4], "x": 4, "y": 1}, + {"matrix": [4, 5], "x": 5, "y": 1}, + {"matrix": [6, 1], "x": 6, "y": 1}, + {"matrix": [6, 11], "x": 7, "y": 1}, + {"matrix": [7, 11], "x": 8, "y": 1}, + {"matrix": [7, 1], "x": 9, "y": 1}, + {"matrix": [4, 10], "x": 10, "y": 1}, + {"matrix": [4, 11], "x": 11, "y": 1}, + {"matrix": [4, 12], "x": 12, "y": 1}, + {"matrix": [4, 14], "x": 13, "y": 1, "w": 2}, + {"matrix": [4, 6], "x": 15, "y": 1}, + {"matrix": [4, 7], "x": 16, "y": 1}, + {"matrix": [4, 8], "x": 17, "y": 1}, + {"matrix": [4, 9], "x": 18, "y": 1}, + + {"matrix": [3, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 2}, + {"matrix": [3, 2], "x": 2.5, "y": 2}, + {"matrix": [3, 3], "x": 3.5, "y": 2}, + {"matrix": [3, 4], "x": 4.5, "y": 2}, + {"matrix": [3, 5], "x": 5.5, "y": 2}, + {"matrix": [6, 2], "x": 6.5, "y": 2}, + {"matrix": [6, 12], "x": 7.5, "y": 2}, + {"matrix": [7, 12], "x": 8.5, "y": 2}, + {"matrix": [7, 2], "x": 9.5, "y": 2}, + {"matrix": [3, 10], "x": 10.5, "y": 2}, + {"matrix": [3, 11], "x": 11.5, "y": 2}, + {"matrix": [3, 12], "x": 12.5, "y": 2}, + {"matrix": [3, 6], "x": 15, "y": 2}, + {"matrix": [3, 7], "x": 16, "y": 2}, + {"matrix": [3, 8], "x": 17, "y": 2}, + {"matrix": [3, 9], "x": 18, "y": 2, "h": 2}, + + {"matrix": [2, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 3}, + {"matrix": [2, 2], "x": 2.75, "y": 3}, + {"matrix": [2, 3], "x": 3.75, "y": 3}, + {"matrix": [2, 4], "x": 4.75, "y": 3}, + {"matrix": [2, 5], "x": 5.75, "y": 3}, + {"matrix": [6, 3], "x": 6.75, "y": 3}, + {"matrix": [6, 13], "x": 7.75, "y": 3}, + {"matrix": [7, 13], "x": 8.75, "y": 3}, + {"matrix": [7, 3], "x": 9.75, "y": 3}, + {"matrix": [2, 10], "x": 10.75, "y": 3}, + {"matrix": [2, 11], "x": 11.75, "y": 3}, + {"matrix": [2, 12], "x": 12.75, "y": 3}, + {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [2, 6], "x": 15, "y": 3}, + {"matrix": [2, 7], "x": 16, "y": 3}, + {"matrix": [2, 8], "x": 17, "y": 3}, + + {"matrix": [1, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [0, 3], "x": 1.25, "y": 4}, + {"matrix": [1, 1], "x": 2.25, "y": 4}, + {"matrix": [1, 2], "x": 3.25, "y": 4}, + {"matrix": [1, 3], "x": 4.25, "y": 4}, + {"matrix": [1, 4], "x": 5.25, "y": 4}, + {"matrix": [1, 5], "x": 6.25, "y": 4}, + {"matrix": [6, 4], "x": 7.25, "y": 4}, + {"matrix": [6, 14], "x": 8.25, "y": 4}, + {"matrix": [7, 14], "x": 9.25, "y": 4}, + {"matrix": [7, 4], "x": 10.25, "y": 4}, + {"matrix": [1, 10], "x": 11.25, "y": 4}, + {"matrix": [1, 11], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [6, 8], "x": 14, "y": 4}, + {"matrix": [1, 6], "x": 15, "y": 4}, + {"matrix": [1, 7], "x": 16, "y": 4}, + {"matrix": [1, 8], "x": 17, "y": 4}, + {"matrix": [1, 9], "x": 18, "y": 4, "h": 2}, + + {"matrix": [0, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [0, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [0, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [6, 5], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [7, 5], "x": 10, "y": 5}, + {"matrix": [0, 10], "x": 11, "y": 5}, + {"matrix": [0, 11], "x": 12, "y": 5}, + {"matrix": [6, 6], "x": 13, "y": 5}, + {"matrix": [6, 7], "x": 14, "y": 5}, + {"matrix": [6, 9], "x": 15, "y": 5}, + {"matrix": [0, 6], "x": 16, "y": 5}, + {"matrix": [0, 8], "x": 17, "y": 5} + ] + }, + "LAYOUT_96_ansi_2_right_mod": { "layout": [ {"matrix": [5, 0], "x": 0, "y": 0}, {"matrix": [5, 2], "x": 1, "y": 0}, @@ -249,6 +469,7 @@ {"matrix": [1, 6], "x": 15, "y": 4}, {"matrix": [1, 7], "x": 16, "y": 4}, {"matrix": [1, 8], "x": 17, "y": 4}, + {"matrix": [1, 9], "x": 18, "y": 4, "h": 2}, {"matrix": [0, 0], "x": 0, "y": 5, "w": 1.25}, {"matrix": [0, 1], "x": 1.25, "y": 5, "w": 1.25}, @@ -260,8 +481,7 @@ {"matrix": [6, 7], "x": 14, "y": 5}, {"matrix": [6, 9], "x": 15, "y": 5}, {"matrix": [0, 6], "x": 16, "y": 5}, - {"matrix": [0, 8], "x": 17, "y": 5}, - {"matrix": [0, 9], "x": 18, "y": 4, "h": 2} + {"matrix": [0, 8], "x": 17, "y": 5} ] } } diff --git a/keyboards/donutcables/budget96/keymaps/default/keymap.c b/keyboards/donutcables/budget96/keymaps/default/keymap.c index da335622d0..023c570e7f 100644 --- a/keyboards/donutcables/budget96/keymaps/default/keymap.c +++ b/keyboards/donutcables/budget96/keymaps/default/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_96_ansi( +[0] = LAYOUT_96_ansi_2_right_mod( KC_ESC, 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_PSCR, KC_NUM, KC_INS, KC_HOME, KC_PGUP, KC_PSLS, KC_GRV, 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_BSPC, KC_END, KC_PGDN, KC_PSLS, KC_PAST, 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_P7, KC_P8, KC_P9, KC_PMNS, @@ -24,21 +24,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT, KC_PENT), -[1] = LAYOUT_96_ansi( - QK_BOOT, EE_CLR, 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, - BL_TOGG, BL_STEP, BL_ON, BL_OFF, BL_UP, BL_DOWN, BL_BRTG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, 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_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, 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_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), - -[2] = LAYOUT_96_ansi( - 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_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_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_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), +[1] = LAYOUT_96_ansi_2_right_mod( + QK_BOOT, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, BL_STEP, BL_ON, BL_OFF, BL_UP, BL_DOWN, BL_BRTG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/donutcables/budget96/keymaps/donut/keymap.c b/keyboards/donutcables/budget96/keymaps/donut/keymap.c index d7e2bfd0d0..f726fe2228 100644 --- a/keyboards/donutcables/budget96/keymaps/donut/keymap.c +++ b/keyboards/donutcables/budget96/keymaps/donut/keymap.c @@ -45,7 +45,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [_BASE] = LAYOUT_96_ansi( + [_BASE] = LAYOUT_96_ansi_2_right_mod( KC_ESC, 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_HOME, KC_INS, KC_END, KC_MPRV, KC_MPLY, KC_MNXT, KC_GRV, 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_BSPC, KC_DEL, KC_PSCR, KC_PSLS, KC_PAST, 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_P7, KC_P8, KC_P9, KC_PMNS, @@ -54,29 +54,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, MO(2), KC_RALT, KC_SPC, KC_CALC, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), /* (1) Bmode layer */ - [_B] = LAYOUT_96_ansi( - 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_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_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_TRNS, KC_TRNS, B, 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), + [_B] = LAYOUT_96_ansi_2_right_mod( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, B, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), /* (2) Fn 1 */ - [_FN1] = LAYOUT_96_ansi( - 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_PGDN, TG(1), KC_PGUP, KC_VOLD, KC_MUTE, KC_VOLU, - ALT0, KC_TRNS, KC_TRNS, ALT1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ALT2, KC_TRNS, KC_TRNS, KC_NUM, KC_TRNS, KC_TRNS, - KC_TRNS, CD, KC_TRNS, KC_TRNS, KC_TRNS, ALT3, KC_TRNS, KC_TRNS, KC_TRNS, ALT4, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, AES, xkcd, 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_CAPS, KC_TRNS, X, KC_TRNS, img, B, KC_TRNS, ALT7, ALT5, ALT6, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_FN1] = LAYOUT_96_ansi_2_right_mod( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, TG(1), KC_PGUP, KC_VOLD, KC_MUTE, KC_VOLU, + ALT0, _______, _______, ALT1, _______, _______, _______, _______, _______, _______, _______, _______, ALT2, _______, _______, KC_NUM, _______, _______, + _______, CD, _______, _______, _______, ALT3, _______, _______, _______, ALT4, _______, _______, _______, _______, _______, _______, _______, _______, + _______, AES, xkcd, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_CAPS, _______, X, _______, img, B, _______, ALT7, ALT5, ALT6, _______, _______, _______, _______, _______, _______, + _______, _______, KC_LALT, _______, _______, _______, _______, _______, _______, _______, _______, _______), /* (3) Fn 2 */ - [_FN2] = LAYOUT_96_ansi( + [_FN2] = LAYOUT_96_ansi_2_right_mod( KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, UC_WINC, EE_CLR, QK_BOOT, VK_TOGG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_TRNS, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + _______, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), diff --git a/keyboards/donutcables/budget96/keymaps/via/keymap.c b/keyboards/donutcables/budget96/keymaps/via/keymap.c index 26a3c7cf0c..257dff57a4 100644 --- a/keyboards/donutcables/budget96/keymaps/via/keymap.c +++ b/keyboards/donutcables/budget96/keymaps/via/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_96_ansi( +[0] = LAYOUT_96_ansi_2_right_mod( KC_ESC, 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_PSCR, KC_NUM, KC_INS, KC_HOME, KC_PGUP, KC_PSLS, KC_GRV, 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_BSPC, KC_END, KC_PGDN, KC_PSLS, KC_PAST, 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_P7, KC_P8, KC_P9, KC_PMNS, @@ -24,19 +24,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT, KC_PENT), -[1] = LAYOUT_96_ansi( - QK_BOOT, EE_CLR, 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, - BL_TOGG, BL_STEP, BL_ON, BL_OFF, BL_UP, BL_DOWN, BL_BRTG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, 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_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, 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_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), - -[2] = LAYOUT_96_ansi( - 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_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_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_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), +[1] = LAYOUT_96_ansi_2_right_mod( + QK_BOOT, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, BL_STEP, BL_ON, BL_OFF, BL_UP, BL_DOWN, BL_BRTG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/donutcables/budget96/matrix_diagram.md b/keyboards/donutcables/budget96/matrix_diagram.md new file mode 100644 index 0000000000..1b6255c8c8 --- /dev/null +++ b/keyboards/donutcables/budget96/matrix_diagram.md @@ -0,0 +1,23 @@ +# Matrix Diagram for Donutcables Budget96 + +``` +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│50 │52 │53 │54 │55 │6A │7A │70 │5B │5C │5C │5D │5E │1D │2E │0D │76 │78 │79 │ +├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ ┌───────┐ +│40 │41 │42 │43 │44 │45 │61 │6B │7B │71 │4A │4B │4C │4D │4E │46 │47 │48 │49 │ │4D │ 2u Backpsace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┼───┼───┼───┤ └─┬─────┤ ┌───┐ +│30 │31 │32 │33 │34 │35 │62 │6C │7C │72 │3A │3B │3C │3D │36 │37 │38 │39 │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┼───┼───┼───┤ ┌──┴┐2D │ ISO Enter │39 │ Numpad "+" 2u +│20 │21 │22 │23 │24 │25 │63 │6D │7D │73 │2A │2B │2C │26 │27 │28 │29 │ │2C │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┼───┼───┼───┤ └───┴────┘ ├───┤ +│10 │03 │11 │12 │13 │14 │15 │64 │6E │7E │74 │1A │1B │68 │16 │17 │18 │19 │ │ │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┼───┼───┼───┤ ┌───────┐ │19 │ Numpad Enter 2U +│00 │01 │02 │65 │75 │0A │0B │66 │67 │69 │06 │08 │09 │ Numpad 0 2u │06 │ │ │ +└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ └───────┘ └───┘ +┌────────┐ ┌──────────┐ +│10 │ 2.25u LShift 2.75u RShift │1B │ +└────────┘ └──────────┘ +┌────┬────┬────┬────────────────────────┬─────┬─────┐ +│00 │01 │02 │65 │75 │0B │ 2x1.5u Right Mod +└────┴────┴────┴────────────────────────┴─────┴─────┘ +``` diff --git a/keyboards/dztech/dz96/info.json b/keyboards/dztech/dz96/info.json index 47ceaebcd2..c1d3b84623 100644 --- a/keyboards/dztech/dz96/info.json +++ b/keyboards/dztech/dz96/info.json @@ -25,8 +25,13 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", + "layout_aliases": { + "LAYOUT_default": "LAYOUT_96_ansi", + "LAYOUT_iso": "LAYOUT_96_iso" + }, + "community_layouts": ["96_ansi", "96_iso"], "layouts": { - "LAYOUT_default": { + "LAYOUT_96_ansi": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -357,7 +362,7 @@ {"matrix": [5, 12], "x": 18, "y": 5} ] }, - "LAYOUT_iso": { + "LAYOUT_96_iso": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/dztech/dz96/matrix_diagram.md b/keyboards/dztech/dz96/matrix_diagram.md new file mode 100644 index 0000000000..e54cceee76 --- /dev/null +++ b/keyboards/dztech/dz96/matrix_diagram.md @@ -0,0 +1,23 @@ +# Matrix Diagram for Dztech Dz96 + +``` +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │60 │61 │62 │63 │05 │06 │07 │08 │72 │09 │0A │0B │0C │7C │ +├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ ┌───────┐ +│10 │11 │12 │13 │14 │64 │65 │66 │67 │15 │16 │17 │18 │70 │71 │19 │1A │1B │1C │ │71 │ 2u BackSpace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┼───┼───┼───┤ └─┬─────┤ ┌───┐ +│20 │21 │22 │23 │24 │68 │69 │6A │6B │25 │26 │27 │28 │73 │29 │2A │2B │2C │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┼───┼───┼───┤ ┌──┴┐38 │ ISO Enter │2C │ Numpad "+" 2u +│30 │31 │32 │33 │34 │6C │75 │76 │77 │35 │36 │37 │38 │39 │3A │3B │3C │ │73 │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┼───┼───┼───┤ └───┴────┘ ├───┤ +│40 │41 │42 │43 │44 │78 │79 │7A │7B │45 │46 │47 │48 │74 │49 │4A │4B │4C │ │ │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┼───┼───┼───┤ │4C │ Numpad Enter 2U +│50 │51 │52 │59 │55 │56 │57 │58 │53 │54 │5A │5B │5C │ │ │ +└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ └───┘ +┌────────┐ +│40 │ 2.25u LShift +└────────┘ +┌─────┬─────┬───────────────────────────┬─────┬─────┐ +│50 │51 │59 │55 │57 │ 2 Mod +└─────┴─────┴───────────────────────────┴─────┴─────┘ +``` diff --git a/keyboards/idobao/id96/info.json b/keyboards/idobao/id96/info.json index d594af5fc3..1febd541e5 100644 --- a/keyboards/idobao/id96/info.json +++ b/keyboards/idobao/id96/info.json @@ -48,8 +48,12 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, + "community_layouts": ["96_ansi"], "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [ {"matrix": [5, 0], "x": 0, "y": 0}, {"matrix": [5, 1], "x": 1, "y": 0}, @@ -161,6 +165,115 @@ {"matrix": [6, 1], "x": 17, "y": 5}, {"matrix": [6, 0], "x": 18, "y": 5} ] + }, + "LAYOUT_96_ansi": { + "layout": [ + {"matrix": [5, 0], "x": 0, "y": 0}, + {"matrix": [5, 1], "x": 1, "y": 0}, + {"matrix": [5, 2], "x": 2, "y": 0}, + {"matrix": [5, 3], "x": 3, "y": 0}, + {"matrix": [5, 4], "x": 4, "y": 0}, + {"matrix": [5, 5], "x": 5, "y": 0}, + {"matrix": [5, 6], "x": 6, "y": 0}, + {"matrix": [5, 7], "x": 7, "y": 0}, + {"matrix": [5, 8], "x": 8, "y": 0}, + {"matrix": [11, 8], "x": 9, "y": 0}, + {"matrix": [11, 7], "x": 10, "y": 0}, + {"matrix": [11, 5], "x": 11, "y": 0}, + {"matrix": [11, 4], "x": 12, "y": 0}, + {"matrix": [11, 3], "x": 13, "y": 0}, + {"matrix": [11, 6], "x": 14, "y": 0}, + {"matrix": [11, 2], "x": 15, "y": 0}, + {"matrix": [11, 1], "x": 16, "y": 0}, + {"matrix": [11, 0], "x": 17, "y": 0}, + {"matrix": [6, 3], "x": 18, "y": 0}, + + {"matrix": [4, 0], "x": 0, "y": 1}, + {"matrix": [4, 1], "x": 1, "y": 1}, + {"matrix": [4, 2], "x": 2, "y": 1}, + {"matrix": [4, 3], "x": 3, "y": 1}, + {"matrix": [4, 4], "x": 4, "y": 1}, + {"matrix": [4, 5], "x": 5, "y": 1}, + {"matrix": [4, 6], "x": 6, "y": 1}, + {"matrix": [4, 7], "x": 7, "y": 1}, + {"matrix": [4, 8], "x": 8, "y": 1}, + {"matrix": [10, 8], "x": 9, "y": 1}, + {"matrix": [10, 7], "x": 10, "y": 1}, + {"matrix": [10, 5], "x": 11, "y": 1}, + {"matrix": [10, 4], "x": 12, "y": 1}, + {"matrix": [10, 6], "x": 13, "y": 1, "w": 2}, + {"matrix": [10, 2], "x": 15, "y": 1}, + {"matrix": [10, 1], "x": 16, "y": 1}, + {"matrix": [10, 0], "x": 17, "y": 1}, + {"matrix": [6, 4], "x": 18, "y": 1}, + + {"matrix": [3, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 2}, + {"matrix": [3, 2], "x": 2.5, "y": 2}, + {"matrix": [3, 3], "x": 3.5, "y": 2}, + {"matrix": [3, 4], "x": 4.5, "y": 2}, + {"matrix": [3, 5], "x": 5.5, "y": 2}, + {"matrix": [3, 6], "x": 6.5, "y": 2}, + {"matrix": [3, 7], "x": 7.5, "y": 2}, + {"matrix": [3, 8], "x": 8.5, "y": 2}, + {"matrix": [9, 8], "x": 9.5, "y": 2}, + {"matrix": [9, 7], "x": 10.5, "y": 2}, + {"matrix": [9, 5], "x": 11.5, "y": 2}, + {"matrix": [9, 4], "x": 12.5, "y": 2}, + {"matrix": [8, 4], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [9, 6], "x": 15, "y": 2}, + {"matrix": [9, 2], "x": 16, "y": 2}, + {"matrix": [9, 1], "x": 17, "y": 2}, + {"matrix": [9, 0], "x": 18, "y": 2, "h": 2}, + + {"matrix": [2, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 3}, + {"matrix": [2, 2], "x": 2.75, "y": 3}, + {"matrix": [2, 3], "x": 3.75, "y": 3}, + {"matrix": [2, 4], "x": 4.75, "y": 3}, + {"matrix": [2, 5], "x": 5.75, "y": 3}, + {"matrix": [2, 6], "x": 6.75, "y": 3}, + {"matrix": [2, 7], "x": 7.75, "y": 3}, + {"matrix": [2, 8], "x": 8.75, "y": 3}, + {"matrix": [8, 8], "x": 9.75, "y": 3}, + {"matrix": [8, 7], "x": 10.75, "y": 3}, + {"matrix": [8, 5], "x": 11.75, "y": 3}, + {"matrix": [9, 3], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [8, 6], "x": 15, "y": 3}, + {"matrix": [8, 2], "x": 16, "y": 3}, + {"matrix": [8, 1], "x": 17, "y": 3}, + + {"matrix": [1, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [1, 2], "x": 2.25, "y": 4}, + {"matrix": [1, 3], "x": 3.25, "y": 4}, + {"matrix": [1, 4], "x": 4.25, "y": 4}, + {"matrix": [1, 5], "x": 5.25, "y": 4}, + {"matrix": [1, 6], "x": 6.25, "y": 4}, + {"matrix": [1, 7], "x": 7.25, "y": 4}, + {"matrix": [1, 8], "x": 8.25, "y": 4}, + {"matrix": [7, 8], "x": 9.25, "y": 4}, + {"matrix": [7, 7], "x": 10.25, "y": 4}, + {"matrix": [7, 5], "x": 11.25, "y": 4}, + {"matrix": [7, 4], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [7, 3], "x": 14, "y": 4}, + {"matrix": [7, 6], "x": 15, "y": 4}, + {"matrix": [7, 2], "x": 16, "y": 4}, + {"matrix": [7, 1], "x": 17, "y": 4}, + {"matrix": [7, 0], "x": 18, "y": 4, "h": 2}, + + {"matrix": [0, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [0, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [0, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [0, 6], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [0, 8], "x": 10, "y": 5}, + {"matrix": [0, 7], "x": 11, "y": 5}, + {"matrix": [0, 5], "x": 12, "y": 5}, + {"matrix": [0, 4], "x": 13, "y": 5}, + {"matrix": [0, 3], "x": 14, "y": 5}, + {"matrix": [6, 6], "x": 15, "y": 5}, + {"matrix": [6, 2], "x": 16, "y": 5}, + {"matrix": [6, 1], "x": 17, "y": 5} + ] } } } diff --git a/keyboards/idobao/id96/keymaps/default/keymap.c b/keyboards/idobao/id96/keymaps/default/keymap.c index 4bf52fff4d..90fdc03d16 100644 --- a/keyboards/idobao/id96/keymaps/default/keymap.c +++ b/keyboards/idobao/id96/keymaps/default/keymap.c @@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |__________|__________|__________|________________________________________________________|________|________|________|________|________|________|________|________|________| */ - [LAYER_0] = LAYOUT( + [LAYER_0] = LAYOUT_all( KC_ESC, 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_PSCR, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_DEL, KC_GRV, 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_BSLS, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_P7, KC_P8, KC_P9, KC_PMNS, @@ -80,7 +80,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ - [LAYER_1] = LAYOUT( + [LAYER_1] = LAYOUT_all( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/idobao/id96/keymaps/via/keymap.c b/keyboards/idobao/id96/keymaps/via/keymap.c index 19e38c111c..b42ae53c6d 100644 --- a/keyboards/idobao/id96/keymaps/via/keymap.c +++ b/keyboards/idobao/id96/keymaps/via/keymap.c @@ -27,7 +27,7 @@ enum { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [LAYER_0] = LAYOUT( + [LAYER_0] = LAYOUT_all( KC_ESC, 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_PSCR, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_DEL, KC_GRV, 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_BSLS, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_P7, KC_P8, KC_P9, KC_PMNS, @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), - [LAYER_1] = LAYOUT( + [LAYER_1] = LAYOUT_all( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, BL_DOWN, BL_TOGG, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [LAYER_2] = LAYOUT( + [LAYER_2] = LAYOUT_all( 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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - [LAYER_3] = LAYOUT( + [LAYER_3] = LAYOUT_all( 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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/idobao/id96/matrix_diagram.md b/keyboards/idobao/id96/matrix_diagram.md new file mode 100644 index 0000000000..c89aaa7aa1 --- /dev/null +++ b/keyboards/idobao/id96/matrix_diagram.md @@ -0,0 +1,41 @@ +# Matrix Diagram for Idobao Id96 + +``` + ┌───────┐ + │A6 │ 2u Backpsace + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│50 │51 │52 │53 │54 │55 │56 │57 │58 │B8 │B7 │B5 │B4 │B3 │B6 │B2 │B1 │B0 │63 │ +├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ +│40 │41 │42 │43 │44 │45 │56 │47 │48 │A8 │A7 │A5 │A4 │A3 │A6 │A2 │A1 │A0 │64 │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┼───┼───┼───┤ ┌───┐ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │98 │97 │95 │94 │84 │96 │92 │91 │90 │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┼───┼───┼───┤ │80 │ Numpad "+" 2u +│20 │21 │22 │23 │24 │25 │26 │27 │28 │88 │87 │85 │93 │86 │82 │81 │80 │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┼───┼───┼───┤ ├───┤ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │78 │77 │75 │74 │73 │76 │72 │71 │70 │ │ │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┼───┼───┼───┤ │60 │ Numpad Enter 2U +│00 │01 │02 │06 │08 │07 │05 │04 │03 │66 │62 │61 │60 │ │ │ +└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ └───┘ +┌────────┐ ┌──────────┐ +│10 │ 2.25u LShift 2.75u RShift │74 │ +└────────┘ └──────────┘ + ┌───────┐ + │62 │ Numpad 0 2u + └───────┘ +┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ +│00 │01 │02 │06 │08 │07 │04 │03 │ 4x1.25u Right Mod +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +┌─────┬─────┬───────────────────────────┬───┬───┬───┬───┬───┐ +│00 │01 │06 │08 │07 │05 │04 │03 │ 2x1.5u Left Mod +└─────┴─────┴───────────────────────────┴───┴───┴───┴───┴───┘ +┌─────┬───┬─────┬───────────────────────┬─────┬─────┬───┬───┐ +│00 │01 │02 │06 │08 │05 │04 │03 │ Tsangan Left Mod, 2x1.5u-2x1u Right Mod +└─────┴───┴─────┴───────────────────────┴─────┴─────┴───┴───┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│00 │01 │02 │06 │07 │04 │03 │ Tsangan/WKL/HHKB +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +┌─────┬───┬─────┬───────────────────────────┬───┬───┬───┬───┐ +│00 │01 │02 │06 │07 │05 │04 │03 │ 4x1u Right Mod +└─────┴───┴─────┴───────────────────────────┴───┴───┴───┴───┘ +``` diff --git a/keyboards/ymdk/melody96/info.json b/keyboards/ymdk/melody96/info.json index 37b3ba9cff..7e43a099fa 100644 --- a/keyboards/ymdk/melody96/info.json +++ b/keyboards/ymdk/melody96/info.json @@ -52,6 +52,7 @@ "LAYOUT": "LAYOUT_all", "LAYOUT_hotswap": "LAYOUT_96_ansi" }, + "community_layouts": ["96_ansi", "96_iso"], "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/ymdk/melody96/matrix_diagram.md b/keyboards/ymdk/melody96/matrix_diagram.md new file mode 100644 index 0000000000..29136bac07 --- /dev/null +++ b/keyboards/ymdk/melody96/matrix_diagram.md @@ -0,0 +1,35 @@ +# Matrix Diagram for Ymdk Melody96 + +``` +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│50 │51 │52 │53 │54 │55 │56 │57 │58 │B8 │B7 │B5 │B4 │B3 │B6 │B2 │B1 │B0 │63 │ +├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ ┌───────┐ +│40 │41 │42 │43 │44 │45 │56 │47 │48 │A8 │A7 │A5 │A4 │A3 │A6 │A2 │A1 │A0 │64 │ │A6 │ 2u Backpsace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┼───┼───┼───┤ └─┬─────┤ ┌───┐ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │98 │97 │95 │94 │93 │96 │92 │91 │90 │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┼───┼───┼───┤ ┌──┴┐93 │ ISO Enter │80 │ Numpad "+" 2u +│20 │21 │22 │23 │24 │25 │26 │27 │28 │88 │87 │85 │84 │86 │82 │81 │80 │ │84 │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┼───┼───┼───┤ └───┴────┘ ├───┤ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │78 │77 │75 │74 │73 │76 │72 │71 │70 │ │ │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┼───┼───┼───┤ ┌───────┐ │60 │ Numpad Enter 2U +│00 │01 │02 │06 │08 │07 │05 │04 │03 │66 │62 │61 │60 │ Numpad 0 2u │62 │ │ │ +└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ └───────┘ └───┘ +┌────────┐ ┌──────────┐ +│10 │ 2.25u LShift 2.75u RShift │74 │ +└────────┘ └──────────┘ +┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ +│00 │01 │02 │06 │08 │07 │04 │03 │ 4x1.25u Right Mod +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +┌─────┬─────┬───────────────────────────┬───┬───┬───┬───┬───┐ +│00 │01 │06 │08 │07 │05 │04 │03 │ 2x1.5u Left Mod +└─────┴─────┴───────────────────────────┴───┴───┴───┴───┴───┘ +┌─────┬───┬─────┬───────────────────────┬─────┬─────┬───┬───┐ +│00 │01 │02 │06 │08 │05 │04 │03 │ Tsangan Left Mod, 2x1.5u-2x1u Right Mod +└─────┴───┴─────┴───────────────────────┴─────┴─────┴───┴───┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│00 │01 │02 │06 │07 │04 │03 │ Tsangan/WKL/HHKB +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +┌─────┬───┬─────┬───────────────────────────┬───┬───┬───┬───┐ +│00 │01 │02 │06 │07 │05 │04 │03 │ 4x1u Right Mod +└─────┴───┴─────┴───────────────────────────┴───┴───┴───┴───┘ +``` From 4b26d9b62b299f15ce517e3fb7c9bfbe8eaf88b8 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 20 Sep 2023 20:50:52 +1000 Subject: [PATCH 102/496] Update AW20216S LED type (#22072) * Update AW20216S LED type * Remove mattgauf keymap --- builddefs/common_features.mk | 10 + docs/feature_rgb_matrix.md | 2 +- drivers/led/aw20216s.c | 2 +- drivers/led/aw20216s.h | 9 +- keyboards/gmmk/gmmk2/p65/ansi/ansi.c | 4 +- keyboards/gmmk/gmmk2/p65/iso/iso.c | 4 +- keyboards/gmmk/gmmk2/p96/ansi/ansi.c | 4 +- keyboards/gmmk/gmmk2/p96/iso/iso.c | 4 +- keyboards/gmmk/numpad/numpad.c | 13 +- keyboards/gmmk/pro/rev1/ansi/ansi.c | 2 +- .../pro/rev1/ansi/keymaps/mattgauf/ansi.c | 241 ------------------ .../pro/rev1/ansi/keymaps/mattgauf/config.h | 63 ----- .../pro/rev1/ansi/keymaps/mattgauf/helpers.c | 25 -- .../pro/rev1/ansi/keymaps/mattgauf/keymap.c | 222 ---------------- .../ansi/keymaps/mattgauf/keymap_helpers.h | 165 ------------ .../pro/rev1/ansi/keymaps/mattgauf/readme.md | 52 ---- .../pro/rev1/ansi/keymaps/mattgauf/rules.mk | 6 - keyboards/gmmk/pro/rev1/iso/iso.c | 2 +- keyboards/gmmk/pro/rev2/ansi/ansi.c | 2 +- keyboards/gmmk/pro/rev2/iso/iso.c | 2 +- .../65/projectd_65_ansi/projectd_65_ansi.c | 4 +- 21 files changed, 37 insertions(+), 801 deletions(-) delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/ansi.c delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/config.h delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/helpers.c delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/keymap.c delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/keymap_helpers.h delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/readme.md delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/rules.mk diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 1597022d63..58017ad1dd 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -347,6 +347,11 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) endif endif +# Deprecated driver names - do not use +ifeq ($(strip $(LED_MATRIX_DRIVER)), aw20216) +LED_MATRIX_DRIVER := aw20216s +endif + LED_MATRIX_ENABLE ?= no VALID_LED_MATRIX_TYPES := is31fl3731 is31fl3742a is31fl3743a is31fl3745 is31fl3746a ckled2001 custom # TODO: is31fl3733 is31fl3737 is31fl3741 @@ -414,6 +419,11 @@ endif endif +# Deprecated driver names - do not use +ifeq ($(strip $(RGB_MATRIX_DRIVER)), aw20216) +RGB_MATRIX_DRIVER := aw20216s +endif + RGB_MATRIX_ENABLE ?= no VALID_RGB_MATRIX_TYPES := aw20216s is31fl3218 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a ckled2001 ws2812 custom diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index bed9fd92d5..fe4e1d1ab0 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -513,7 +513,7 @@ Here is an example using 2 drivers. Define these arrays listing all the LEDs in your `.c`: ```c -const aw20216s_led PROGMEM g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { +const aw20216s_led_t PROGMEM g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { /* Each AW20216S channel is controlled by a register at some offset between 0x00 * and 0xD7 inclusive. * See drivers/led/aw20216s.h for the mapping between register offsets and diff --git a/drivers/led/aw20216s.c b/drivers/led/aw20216s.c index 1b7861a1ec..078a694d30 100644 --- a/drivers/led/aw20216s.c +++ b/drivers/led/aw20216s.c @@ -142,7 +142,7 @@ void aw20216s_init(pin_t cs_pin, pin_t en_pin) { } void aw20216s_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - aw20216s_led led; + aw20216s_led_t led; memcpy_P(&led, (&g_aw20216s_leds[index]), sizeof(led)); if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { diff --git a/drivers/led/aw20216s.h b/drivers/led/aw20216s.h index 49b0a8e0ad..e8f1e0344f 100644 --- a/drivers/led/aw20216s.h +++ b/drivers/led/aw20216s.h @@ -49,16 +49,19 @@ #ifdef DRIVER_2_EN # define AW20216S_DRIVER_2_EN DRIVER_2_EN #endif + +#define aw_led aw20216s_led_t +#define g_aw_leds g_aw20216s_leds // ======== -typedef struct aw20216s_led { +typedef struct aw20216s_led_t { uint8_t driver : 2; uint8_t r; uint8_t g; uint8_t b; -} aw20216s_led; +} aw20216s_led_t; -extern const aw20216s_led PROGMEM g_aw20216s_leds[RGB_MATRIX_LED_COUNT]; +extern const aw20216s_led_t PROGMEM g_aw20216s_leds[RGB_MATRIX_LED_COUNT]; void aw20216s_init(pin_t cs_pin, pin_t en_pin); void aw20216s_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); diff --git a/keyboards/gmmk/gmmk2/p65/ansi/ansi.c b/keyboards/gmmk/gmmk2/p65/ansi/ansi.c index 6230e76472..774006d529 100644 --- a/keyboards/gmmk/gmmk2/p65/ansi/ansi.c +++ b/keyboards/gmmk/gmmk2/p65/ansi/ansi.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const aw20216s_led g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const aw20216s_led_t g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to AW20216S manual for these locations * driver * | R location * | | G location diff --git a/keyboards/gmmk/gmmk2/p65/iso/iso.c b/keyboards/gmmk/gmmk2/p65/iso/iso.c index 234fe71975..80c0dc2e0d 100644 --- a/keyboards/gmmk/gmmk2/p65/iso/iso.c +++ b/keyboards/gmmk/gmmk2/p65/iso/iso.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const aw20216s_led g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const aw20216s_led_t g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to AW20216S manual for these locations * driver * | R location * | | G location diff --git a/keyboards/gmmk/gmmk2/p96/ansi/ansi.c b/keyboards/gmmk/gmmk2/p96/ansi/ansi.c index 11cad9fd55..bc05ab6301 100644 --- a/keyboards/gmmk/gmmk2/p96/ansi/ansi.c +++ b/keyboards/gmmk/gmmk2/p96/ansi/ansi.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const aw20216s_led g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const aw20216s_led_t g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to AW20216S manual for these locations * driver * | R location * | | G location diff --git a/keyboards/gmmk/gmmk2/p96/iso/iso.c b/keyboards/gmmk/gmmk2/p96/iso/iso.c index 4bab8e60ec..f6b3528cb4 100644 --- a/keyboards/gmmk/gmmk2/p96/iso/iso.c +++ b/keyboards/gmmk/gmmk2/p96/iso/iso.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const aw20216s_led g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const aw20216s_led_t g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to AW20216S manual for these locations * driver * | R location * | | G location diff --git a/keyboards/gmmk/numpad/numpad.c b/keyboards/gmmk/numpad/numpad.c index 377dde810b..e3fe8e063d 100644 --- a/keyboards/gmmk/numpad/numpad.c +++ b/keyboards/gmmk/numpad/numpad.c @@ -19,16 +19,13 @@ #ifdef RGB_MATRIX_ENABLE -const aw20216s_led g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { -/* Each AW20216S channel is controlled by a register at some offset between 0x00 - * and 0xD7 inclusive. - * See drivers/led/aw20216s.h for the mapping between register offsets and - * driver pin locations. +const aw20216s_led_t g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to AW20216S manual for these locations * driver * | R location - * | | G location - * | | | B location - * | | | | */ + * | | G location + * | | | B location + * | | | | */ {0, CS4_SW1, CS5_SW1, CS6_SW1 }, // 0 NUM {0, CS4_SW2, CS5_SW2, CS6_SW2 }, // 1 / {0, CS7_SW1, CS8_SW1, CS9_SW1 }, // 2 * diff --git a/keyboards/gmmk/pro/rev1/ansi/ansi.c b/keyboards/gmmk/pro/rev1/ansi/ansi.c index faaa6335a0..a06594cb88 100644 --- a/keyboards/gmmk/pro/rev1/ansi/ansi.c +++ b/keyboards/gmmk/pro/rev1/ansi/ansi.c @@ -136,7 +136,7 @@ led_config_t g_led_config = {{ 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4 }}; -const aw20216s_led g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { +const aw20216s_led_t g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { {0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, ESC, k13 {0, CS4_SW1, CS5_SW1, CS6_SW1}, // 1, ~, k16 {0, CS7_SW1, CS8_SW1, CS9_SW1}, // 2, Tab, k11 diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/ansi.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/ansi.c deleted file mode 100644 index b56d237552..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/ansi.c +++ /dev/null @@ -1,241 +0,0 @@ -/* Copyright 2021 Gigahawk - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -// clang-format off -#include "ansi.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t PROGMEM g_led_config = {{ - { 4, NO_LED, NO_LED, 95, 65, 79, 5, 28 }, - { 8, 2, 9, 0, 10, 75, 1, 7 }, - { 14, 3, 15, NO_LED, 16, 86, 6, 13 }, - { 20, 18, 21, 23, 22, 94, 12, 19 }, - { 25, 30, 26, 31, 27, 32, 29, 24 }, - { 41, 36, 42, 37, 43, 38, 35, 40 }, - { 46, 89, 47, 34, 48, 72, 78, 45 }, - { 52, 39, 53, 97, 54, 82, 44, 51 }, - { 58, 63, 59, 64, NO_LED, 60, 62, 57 }, - { 11, 90, 55, 17, 33, 49, NO_LED, 69 }, - { NO_LED, 85, 93, 61, 96, 66, 50, 56 } -}, { - {0, 0}, // 0, ESC, k13 - {0, 15}, // 1, ~, k16 - {4, 26}, // 2, Tab, k11 - {5, 38}, // 3, Caps, k21 - {9, 49}, // 4, Sh_L, k00 - {2, 61}, // 5, Ct_L, k06 - {18, 0}, // 6, F1, k26 - {14, 15}, // 7, 1, k17 - {22, 26}, // 8, Q, k10 - {25, 38}, // 9, A, k12 - {33, 49}, // 10, Z, k14 - {20, 61}, // 11, Win_L, k90 - {33, 0}, // 12, F2, k36 - {29, 15}, // 13, 2, k27 - {36, 26}, // 14, W, k20 - {40, 38}, // 15, S, k22 - {47, 49}, // 16, X, k24 - {38, 61}, // 17, Alt_L, k93 - {47, 0}, // 18, F3, k31 - {43, 15}, // 19, 3, k37 - {51, 26}, // 20, E, k30 - {54, 38}, // 21, D, k32 - {61, 49}, // 22, C, k34 - {61, 0}, // 23, F4, k33 - {58, 15}, // 24, 4, k47 - {65, 26}, // 25, R, k40 - {69, 38}, // 26, F, k42 - {76, 49}, // 27, V, k44 - {79, 0}, // 28, F5, k07 - {72, 15}, // 29, 5, k46 - {79, 26}, // 30, T, k41 - {83, 38}, // 31, G, k43 - {90, 49}, // 32, B, k45 - {92, 61}, // 33, SPACE, k94 - {94, 0}, // 34, F6, k63 - {87, 15}, // 35, 6, k56 - {94, 26}, // 36, Y, k51 - {98, 38}, // 37, H, k53 - {105, 49}, // 38, N, k55 - {108, 0}, // 39, F7, k71 - {101, 15}, // 40, 7, k57 - {108, 26}, // 41, U, k50 - {112, 38}, // 42, J, k52 - {119, 49}, // 43, M, k54 - {123, 0}, // 44, F8, k76 - {116, 15}, // 45, 8, k67 - {123, 26}, // 46, I, k60 - {126, 38}, // 47, K, k62 - {134, 49}, // 48, ,, k64 - {145, 61}, // 49, Alt_R, k95 - {141, 0}, // 50, F9, ka6 - {130, 15}, // 51, 9, k77 - {137, 26}, // 52, O, k70 - {141, 38}, // 53, L, k72 - {148, 49}, // 54, ., k74 - {159, 61}, // 55, FN, k92 - {155, 0}, // 56, F10, ka7 - {145, 15}, // 57, 0, k87 - {152, 26}, // 58, P, k80 - {155, 38}, // 59, ;, k82 - {163, 49}, // 60, ?, k85 - {170, 0}, // 61, F11, ka3 - {159, 15}, // 62, -, k86 - {166, 26}, // 63, [, k81 - {170, 38}, // 64, ", k83 - {173, 61}, // 65, Ct_R, k04 - {184, 0}, // 66, F12, ka5 - {0, 8}, // 67, LED, l01 - {224, 8}, // 68, LED, l11 - {202, 0}, // 69, Prt, k97 - {0, 15}, // 70, LED, l02 - {224, 15}, // 71, LED, l12 - {224, 15}, // 72, Del, k65 - {0, 21}, // 73, LED, l03 - {224, 21}, // 74, LED, l13 - {224, 26}, // 75, PgUp, k15 - {0, 28}, // 76, LED, l04 - {224, 28}, // 77, LED, l14 - {173, 15}, // 78, =, k66 - {220, 64}, // 79, Right, k05 - {0, 35}, // 80, LED, l05 - {224, 35}, // 81, LED, l15 - {224, 49}, // 82, End, k75 - {0, 42}, // 83, LED, l06 - {224, 42}, // 84, LED, l16 - {195, 15}, // 85, BSpc, ka1 - {224, 38}, // 86, PgDn, k25 - {0, 48}, // 87, LED, l07 - {224, 48}, // 88, LED, l17 - {181, 26}, // 89, ], k61 - {182, 49}, // 90, Sh_R, k91 - {0, 55}, // 91, LED, l08 - {224, 55}, // 92, LED, l18 - {199, 26}, // 93, \, ka2 - {206, 52}, // 94, Up, k35 - {191, 64}, // 95, Left, k03 - {193, 38}, // 96, Enter, ka4 - {206, 64} // 97, Down, k73 -}, { - 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 4, 2, 2, - 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4 -}}; - -const aw20216s_led g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { - {0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, ESC, k13 - {0, CS4_SW1, CS5_SW1, CS6_SW1}, // 1, ~, k16 - {0, CS7_SW1, CS8_SW1, CS9_SW1}, // 2, Tab, k11 - {0, CS10_SW1, CS11_SW1, CS12_SW1}, // 3, Caps, k21 - {0, CS13_SW1, CS14_SW1, CS15_SW1}, // 4, Sh_L, k00 - {0, CS16_SW1, CS17_SW1, CS18_SW1}, // 5, Ct_L, k06 - {0, CS1_SW2, CS2_SW2, CS3_SW2}, // 6, F1, k26 - {0, CS4_SW2, CS5_SW2, CS6_SW2}, // 7, 1, k17 - {0, CS7_SW2, CS8_SW2, CS9_SW2}, // 8, Q, k10 - {0, CS10_SW2, CS11_SW2, CS12_SW2}, // 9, A, k12 - {0, CS13_SW2, CS14_SW2, CS15_SW2}, // 10, Z, k14 - {0, CS16_SW2, CS17_SW2, CS18_SW2}, // 11, Win_L, k90 - {0, CS1_SW3, CS2_SW3, CS3_SW3}, // 12, F2, k36 - {0, CS4_SW3, CS5_SW3, CS6_SW3}, // 13, 2, k27 - {0, CS7_SW3, CS8_SW3, CS9_SW3}, // 14, W, k20 - {0, CS10_SW3, CS11_SW3, CS12_SW3}, // 15, S, k22 - {0, CS13_SW3, CS14_SW3, CS15_SW3}, // 16, X, k24 - {0, CS16_SW3, CS17_SW3, CS18_SW3}, // 17, Alt_L, k93 - {0, CS1_SW4, CS2_SW4, CS3_SW4}, // 18, F3, k31 - {0, CS4_SW4, CS5_SW4, CS6_SW4}, // 19, 3, k37 - {0, CS7_SW4, CS8_SW4, CS9_SW4}, // 20, E, k30 - {0, CS10_SW4, CS11_SW4, CS12_SW4}, // 21, D, k32 - {0, CS13_SW4, CS14_SW4, CS15_SW4}, // 22, C, k34 - {0, CS1_SW5, CS2_SW5, CS3_SW5}, // 23, F4, k33 - {0, CS4_SW5, CS5_SW5, CS6_SW5}, // 24, 4, k47 - {0, CS7_SW5, CS8_SW5, CS9_SW5}, // 25, R, k40 - {0, CS10_SW5, CS11_SW5, CS12_SW5}, // 26, F, k42 - {0, CS13_SW5, CS14_SW5, CS15_SW5}, // 27, V, k44 - {0, CS1_SW6, CS2_SW6, CS3_SW6}, // 28, F5, k07 - {0, CS4_SW6, CS5_SW6, CS6_SW6}, // 29, 5, k46 - {0, CS7_SW6, CS8_SW6, CS9_SW6}, // 30, T, k41 - {0, CS10_SW6, CS11_SW6, CS12_SW6}, // 31, G, k43 - {0, CS13_SW6, CS14_SW6, CS15_SW6}, // 32, B, k45 - {0, CS16_SW6, CS17_SW6, CS18_SW6}, // 33, SPACE, k94 - {0, CS1_SW7, CS2_SW7, CS3_SW7}, // 34, F6, k63 - {0, CS4_SW7, CS5_SW7, CS6_SW7}, // 35, 6, k56 - {0, CS7_SW7, CS8_SW7, CS9_SW7}, // 36, Y, k51 - {0, CS10_SW7, CS11_SW7, CS12_SW7}, // 37, H, k53 - {0, CS13_SW7, CS14_SW7, CS15_SW7}, // 38, N, k55 - {0, CS1_SW8, CS2_SW8, CS3_SW8}, // 39, F7, k71 - {0, CS4_SW8, CS5_SW8, CS6_SW8}, // 40, 7, k57 - {0, CS7_SW8, CS8_SW8, CS9_SW8}, // 41, U, k50 - {0, CS10_SW8, CS11_SW8, CS12_SW8}, // 42, J, k52 - {0, CS13_SW8, CS14_SW8, CS15_SW8}, // 43, M, k54 - {0, CS1_SW9, CS2_SW9, CS3_SW9}, // 44, F8, k76 - {0, CS4_SW9, CS5_SW9, CS6_SW9}, // 45, 8, k67 - {0, CS7_SW9, CS8_SW9, CS9_SW9}, // 46, I, k60 - {0, CS10_SW9, CS11_SW9, CS12_SW9}, // 47, K, k62 - {0, CS13_SW9, CS14_SW9, CS15_SW9}, // 48, ,, k64 - {0, CS16_SW9, CS17_SW9, CS18_SW9}, // 49, Alt_R, k95 - {0, CS1_SW10, CS2_SW10, CS3_SW10}, // 50, F9, ka6 - {0, CS4_SW10, CS5_SW10, CS6_SW10}, // 51, 9, k77 - {0, CS7_SW10, CS8_SW10, CS9_SW10}, // 52, O, k70 - {0, CS10_SW10, CS11_SW10, CS12_SW10}, // 53, L, k72 - {0, CS13_SW10, CS14_SW10, CS15_SW10}, // 54, ., k74 - {0, CS16_SW10, CS17_SW10, CS18_SW10}, // 55, FN, k92 - {0, CS1_SW11, CS2_SW11, CS3_SW11}, // 56, F10, ka7 - {0, CS4_SW11, CS5_SW11, CS6_SW11}, // 57, 0, k87 - {0, CS7_SW11, CS8_SW11, CS9_SW11}, // 58, P, k80 - {0, CS10_SW11, CS11_SW11, CS12_SW11}, // 59, ;, k82 - {0, CS13_SW11, CS14_SW11, CS15_SW11}, // 60, ?, k85 - {0, CS1_SW12, CS2_SW12, CS3_SW12}, // 61, F11, ka3 - {0, CS4_SW12, CS5_SW12, CS6_SW12}, // 62, -, k86 - {0, CS7_SW12, CS8_SW12, CS9_SW12}, // 63, [, k81 - {0, CS10_SW12, CS11_SW12, CS12_SW12}, // 64, ", k83 - {0, CS16_SW12, CS17_SW12, CS18_SW12}, // 65, Ct_R, k04 - - {1, CS1_SW1, CS2_SW1, CS3_SW1}, // 66, F12, ka5 - {1, CS13_SW1, CS14_SW1, CS15_SW1}, // 67, LED, l01 - {1, CS16_SW1, CS17_SW1, CS18_SW1}, // 68, LED, l11 - {1, CS4_SW2, CS5_SW2, CS6_SW2}, // 69, Prt, k97 - {1, CS13_SW2, CS14_SW2, CS15_SW2}, // 70, LED, l02 - {1, CS16_SW2, CS17_SW2, CS18_SW2}, // 71, LED, l12 - {1, CS4_SW3, CS5_SW3, CS6_SW3}, // 72, Del, k65 - {1, CS13_SW3, CS14_SW3, CS15_SW3}, // 73, LED, l03 - {1, CS16_SW3, CS17_SW3, CS18_SW3}, // 74, LED, l13 - {1, CS4_SW4, CS5_SW4, CS6_SW4}, // 75, PgUp, k15 - {1, CS13_SW4, CS14_SW4, CS15_SW4}, // 76, LED, l04 - {1, CS16_SW4, CS17_SW4, CS18_SW4}, // 77, LED, l14 - {1, CS1_SW5, CS2_SW5, CS3_SW5}, // 78, =, k66 - {1, CS10_SW5, CS11_SW5, CS12_SW5}, // 79, Right, k05 - {1, CS13_SW5, CS14_SW5, CS15_SW5}, // 80, LED, l05 - {1, CS16_SW5, CS17_SW5, CS18_SW5}, // 81, LED, l15 - {1, CS4_SW6, CS5_SW6, CS6_SW6}, // 82, End, k75 - {1, CS13_SW6, CS14_SW6, CS15_SW6}, // 83, LED, l06 - {1, CS16_SW6, CS17_SW6, CS18_SW6}, // 84, LED, l16 - {1, CS1_SW7, CS2_SW7, CS3_SW7}, // 85, BSpc, ka1 - {1, CS4_SW7, CS5_SW7, CS6_SW7}, // 86, PgDn, k25 - {1, CS13_SW7, CS14_SW7, CS15_SW7}, // 87, LED, l07 - {1, CS16_SW7, CS17_SW7, CS18_SW7}, // 88, LED, l17 - {1, CS1_SW8, CS2_SW8, CS3_SW8}, // 89, ], k61 - {1, CS4_SW8, CS5_SW8, CS6_SW8}, // 90, Sh_R, k91 - {1, CS13_SW8, CS14_SW8, CS15_SW8}, // 91, LED, l08 - {1, CS16_SW8, CS17_SW8, CS18_SW8}, // 92, LED, l18 - {1, CS1_SW9, CS2_SW9, CS3_SW9}, // 93, \, ka2 - {1, CS4_SW9, CS5_SW9, CS6_SW9}, // 94, Up, k35 - {1, CS4_SW10, CS5_SW10, CS6_SW10}, // 95, Left, k03 - {1, CS1_SW11, CS2_SW11, CS3_SW11}, // 96, Enter, ka4 - {1, CS4_SW11, CS5_SW11, CS6_SW11}, // 97, Down, k73 -}; -// clang-format on -#endif diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/config.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/config.h deleted file mode 100644 index 0a10e8c8cf..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/config.h +++ /dev/null @@ -1,63 +0,0 @@ -/* Copyright 2021 Matt Gauf - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -// clang-format off -#pragma once - -/* Defaults */ -#define RAW_USAGE_PAGE 0x200 -#define RAW_USAGE_ID 0x40 - -/* Board Features */ -#define DYNAMIC_MACRO_SIZE 512 - -/* RGB Matrix Features */ -#define RGB_MATRIX_KEYPRESSES -#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR -#define RGB_DISABLE_WHEN_USB_SUSPENDED true - -/* RGB Matrix Framebuffer Config */ -// #define RGB_MATRIX_FRAMEBUFFER_EFFECTS -// #define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 25 - -/* RGB Matrix Disabled Effects */ -#define DISABLE_RGB_MATRIX_ALPHAS_MODS // Static dual hue, speed is hue for secondary hue -#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades saturation -#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness -#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in -#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL // Full gradient spinning pinwheel around center of keyboard -#define DISABLE_RGB_MATRIX_DUAL_BEACON // Full gradient spinning around center of keyboard -#define DISABLE_RGB_MATRIX_RAINBOW_BEACON // Full tighter gradient spinning around center of keyboard -#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Full dual gradients spinning two halfs of keyboard -#define DISABLE_RGB_MATRIX_RAINDROPS // Randomly changes a single key's hue -#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation -#define DISABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight ammount in a wave to the right, then back to the left -#define DISABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight ammount and then back down in a wave to the right - -#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) - #define DISABLE_RGB_MATRIX_DIGITAL_RAIN // That famous computer simulation -#endif - -#if defined(RGB_MATRIX_KEYPRESSES) || defined(RGB_MATRIX_KEYRELEASES) - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out - #define DISABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out - #define DISABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out -#endif - -#define DISABLE_RGB_MATRIX_EFFECT_MAX -// clang-format on diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/helpers.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/helpers.c deleted file mode 100644 index d30224636b..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/helpers.c +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2021 Matt Gauf - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "rgb_matrix.h" - -void rgb_matrix_set_color_flags(uint8_t red, uint8_t green, uint8_t blue, uint8_t flags) { - for (uint8_t ii = 0; ii < RGB_MATRIX_LED_COUNT; ii++) { - if (g_led_config.flags[ii] & flags) { - rgb_matrix_set_color(ii, red, green, blue); - } - } -} diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/keymap.c deleted file mode 100644 index ceddf81a77..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/keymap.c +++ /dev/null @@ -1,222 +0,0 @@ -/* Copyright 2021 Matt Gauf - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -// clang-format off -#include QMK_KEYBOARD_H -#include "keymap_helpers.h" - - -enum custom_codes { - SET_MP = RGB_M_P, - SET_MB = RGB_M_B, - SET_MR = RGB_M_R, - - MG_F17 = SAFE_RANGE, - MG_F18, - MG_F19 -}; - - -enum layer_names { - _DEFAULT = 0, - _EFFECTS, - _UTILITY, - _DFUMODE -}; - - -// static uint8_t rgb_pin_fn_column[] = {PIN_DEL,PIN_PGUP,PIN_PGDN,PIN_END}; -// static uint8_t rgb_pin_left_underglow[] = {PIN_LED_L01,PIN_LED_L02,PIN_LED_L03,PIN_LED_L04,PIN_LED_L05,PIN_LED_L06,PIN_LED_L07,PIN_LED_L08}; -// static uint8_t rgb_pin_right_underglow[] = {PIN_LED_L11,PIN_LED_L12,PIN_LED_L13,PIN_LED_L14,PIN_LED_L15,PIN_LED_L16,PIN_LED_L17,PIN_LED_L18}; - - -#define MODS_SHIFT ((get_mods() | get_oneshot_mods()) & MOD_MASK_SHIFT) -#define MODS_CTRL ((get_mods() | get_oneshot_mods()) & MOD_MASK_CTRL) -#define MODS_ALT ((get_mods() | get_oneshot_mods()) & MOD_MASK_ALT) -#define MODS_GUI ((get_mods() | get_oneshot_mods()) & MOD_MASK_GUI) - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_DEFAULT] = LAYOUT(KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MG_F17, KC_MUTE, - KC_GRV, 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_BSPC, KC_HOME, - 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_PGUP, - 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_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(_EFFECTS), KC_LEFT, KC_DOWN, KC_RGHT), - - [_EFFECTS] = LAYOUT(_______, KC_F13, KC_F14, KC_F15, KC_F16, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, MG_F18, _______, - _______, SET_MP, SET_MB, SET_MR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_SAI, RGB_SPD, - _______, _______, _______, _______, TG(_UTILITY), MO(_DFUMODE), _______, RGB_HUD, RGB_SAD, RGB_HUI), - - [_UTILITY] = LAYOUT(_______, _______, _______, _______, _______, _______, _______, _______, _______, DM_PLY1, DM_PLY2, DM_REC1, DM_REC2, DM_RSTP, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - - [_DFUMODE] = LAYOUT(QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MG_F19, DB_TOGG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -}; -// Runs constantly in the background, in a loop. -bool rgb_matrix_indicators_user(void) { - if (rgb_matrix_get_flags() & (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER)) { - - if (IS_LAYER_ON(_UTILITY)) { - rgb_matrix_set_color(PIN_F9, LEDGREE); - rgb_matrix_set_color(PIN_F10, LEDGREE); - rgb_matrix_set_color(PIN_F11, LED_RED); - rgb_matrix_set_color(PIN_F12, LED_RED); - rgb_matrix_set_color(PIN_PRINT, LEDTEAL); - } - - switch (get_highest_layer(layer_state)) { - case _DFUMODE: - rgb_matrix_set_color_all(LED_OFF); - rgb_matrix_set_color(PIN_ESC, LED_RED); - rgb_matrix_set_color(PIN_PRINT, LEDORAN); - return; - case _EFFECTS: - rgb_matrix_set_color(PIN_PRINT, LEDGREE); - break; - default: - break; - } - - if (host_keyboard_led_state().caps_lock) { - rgb_matrix_set_color(PIN_CAPS, RGB_WHITE); - } - - } - return false; -} - - -// Called on start -void dynamic_macro_record_start_user(int8_t direction) { - dprint("-- Recording Started\n"); - layer_on(_UTILITY); -} - - -// Called on end -void dynamic_macro_record_end_user(int8_t direction) { - dprint("-- Recording Ended\n"); -} - - -// Called on playback -void dynamic_macro_play_user(int8_t direction) { - dprint("-- Recording Playing\n"); -} - - -// Runs on encoder event -bool encoder_update_user(uint8_t index, bool clockwise) { - uint8_t curr_mod = get_mods(); - - if (IS_LAYER_ON(_EFFECTS)) { - if (clockwise) { - rgb_matrix_increase_val(); - } else { - rgb_matrix_decrease_val(); - } - } else { - if (MODS_GUI) { - if (MODS_GUI && MODS_SHIFT) { - clear_mods(); - if (clockwise) { - tap_code16(LSG(KC_Z)); - } else { - tap_code16(LGUI(KC_Z)); - } - set_mods(curr_mod); - } else if (MODS_GUI && MODS_ALT) { - clear_mods(); - if (clockwise) { - tap_code(KC_RIGHT); - } else { - tap_code(KC_LEFT); - } - set_mods(curr_mod); - } else { - if (clockwise) { - tap_code16(LGUI(KC_TAB)); - } else { - tap_code16(LSG(KC_TAB)); - } - } - } else { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - } - //return true; //set to return false to counteract enabled encoder in pro.c - return false; -} - - -// Runs on key event -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case MG_F17: - if (record->event.pressed) { - tap_code16(HYPR(KC_F17)); - } - return false; - case MG_F18: - if (record->event.pressed) { - tap_code16(HYPR(KC_F18)); - } - return false; - case MG_F19: - if (record->event.pressed) { - tap_code16(HYPR(KC_F19)); - } - return false; - case RGB_TOG: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: - rgb_matrix_set_flags(LED_FLAG_NONE); - break; - case LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER: - rgb_matrix_set_flags(LED_FLAG_ALL); - break; - case LED_FLAG_UNDERGLOW: - rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER); - break; - default: - rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); - break; - } - } - return false; - default: - return true; // Process all other keycodes normally - } -} -// clang-format on diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/keymap_helpers.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/keymap_helpers.h deleted file mode 100644 index 2a6e8dae7b..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/keymap_helpers.h +++ /dev/null @@ -1,165 +0,0 @@ -/* Copyright 2021 Matt Gauf - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -// clang-format off -#include -#include "rgb_matrix_types.h" - -/* Color Codes */ -#define LEDWHIT 0xff, 0xff, 0xff -#define LED_RED 0xff, 0x00, 0x00 -#define LEDORAN 0xff, 0x29, 0x00 -#define LEDGOLD 0xff, 0x80, 0x00 -#define LEDYELL 0xff, 0xff, 0x00 -#define LEDCHAR 0x80, 0xff, 0x00 -#define LEDGREE 0x00, 0xff, 0x00 -#define LEDFOAM 0x00, 0xff, 0x40 -#define LEDTEAL 0x00, 0x80, 0xff -#define LEDBLUE 0x00, 0x00, 0xff -#define LEDPURP 0x80, 0x00, 0xff -#define LEDMAGE 0xff, 0x00, 0xff -#define LEDPINK 0xff, 0x00, 0x80 -#define LEDBLAC 0x00, 0x00, 0x00 -#define LED_OFF 0x00, 0x00, 0x00 - -/* Color Functions */ -void rgb_matrix_set_color_flags(uint8_t red, uint8_t green, uint8_t blue, uint8_t flags); - -/* Function Row */ -#define PIN_ESC 0 -#define PIN_F1 6 -#define PIN_F2 12 -#define PIN_F3 18 -#define PIN_F4 23 -#define PIN_F5 28 -#define PIN_F6 34 -#define PIN_F7 39 -#define PIN_F8 44 -#define PIN_F9 50 -#define PIN_F10 56 -#define PIN_F11 61 -#define PIN_F12 66 -#define PIN_PRINT 69 - -/* Number Row */ -#define PIN_0 57 -#define PIN_1 7 -#define PIN_2 13 -#define PIN_3 19 -#define PIN_4 24 -#define PIN_5 29 -#define PIN_6 35 -#define PIN_7 40 -#define PIN_8 45 -#define PIN_9 51 - -/* QWERTY */ -#define PIN_A 9 -#define PIN_B 32 -#define PIN_C 22 -#define PIN_D 21 -#define PIN_E 20 -#define PIN_F 26 -#define PIN_G 31 -#define PIN_H 37 -#define PIN_I 46 -#define PIN_J 42 -#define PIN_K 47 -#define PIN_L 53 -#define PIN_M 43 -#define PIN_N 38 -#define PIN_O 52 -#define PIN_P 58 -#define PIN_Q 8 -#define PIN_R 25 -#define PIN_S 15 -#define PIN_T 30 -#define PIN_U 41 -#define PIN_V 27 -#define PIN_W 14 -#define PIN_X 16 -#define PIN_Y 36 -#define PIN_Z 10 - -/* Symbols */ -#define PIN_MINUS 62 -#define PIN_EQUAL 78 -#define PIN_RBRACKET 89 -#define PIN_LBRACKET 63 -#define PIN_BSLASH 93 -#define PIN_SLASH 60 -#define PIN_SCOLON 59 -#define PIN_QUOTE 64 -#define PIN_COMMA 48 -#define PIN_DOT 54 -#define PIN_GRAVE 1 - -/* Indentation */ -#define PIN_TAB 2 -#define PIN_SPACE 33 - -/* Line Control */ -#define PIN_BSPACE 85 -#define PIN_ENTER 96 - -/* Indicator */ -#define PIN_CAPS 3 - -/* Left Modifiers */ -#define PIN_LSHIFT 4 -#define PIN_LCTRL 5 -#define PIN_LALT 17 -#define PIN_LGUI 11 - -/* Right Modifiers */ -#define PIN_RSHIFT 90 -#define PIN_RCTRL 65 -#define PIN_RALT 49 -#define PIN_FN 55 - -/* Arrow Keys */ -#define PIN_UP 94 -#define PIN_DOWN 97 -#define PIN_LEFT 95 -#define PIN_RIGHT 79 - -/* Fn Column */ -#define PIN_DEL 72 // ┳ TOP -#define PIN_PGUP 75 // ┃ -#define PIN_PGDN 86 // ┃ -#define PIN_END 82 // ┻ BOTTOM - -/* Left Side Underglow */ -#define PIN_LED_L01 67 // ┳ TOP -#define PIN_LED_L02 70 // ┃ -#define PIN_LED_L03 73 // ┃ -#define PIN_LED_L04 76 // ┃ -#define PIN_LED_L05 80 // ┃ -#define PIN_LED_L06 83 // ┃ -#define PIN_LED_L07 87 // ┃ -#define PIN_LED_L08 91 // ┻ BOTTOM - -/* Right Side Underglow */ -#define PIN_LED_L11 68 // ┳ TOP -#define PIN_LED_L12 71 // ┃ -#define PIN_LED_L13 74 // ┃ -#define PIN_LED_L14 77 // ┃ -#define PIN_LED_L15 81 // ┃ -#define PIN_LED_L16 84 // ┃ -#define PIN_LED_L17 88 // ┃ -#define PIN_LED_L18 92 // ┻ BOTTOM - -// clang-format on diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/readme.md b/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/readme.md deleted file mode 100644 index 94e268a0e3..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/readme.md +++ /dev/null @@ -1,52 +0,0 @@ -# @mattgauf's GMMK Pro layout - -### `_DEFAULT` -> *Based on the default ansi layout, this keymap contains the following changes to the default layer.* - - Screensaver: `HYPER(F17)` - - `KC_PSCR` → `MG_F17` - - `KC_DEL` → `KC_HOME` - -> *Additionally the encoder will follow new rules when holding a key.* - - `KC_GUI` will cycle through applications (macOS variant) - - `KC_GUI + KC_ALT` will tap the left and right arrows. - - `KC_GUI + KC_SHIFT` will tap Undo and Redo (macOS variant) - -### `_EFFECTS` -> *The function layer is now used for additional layer access, effect keys, and media keys (following the Macbook Pro fn key layout).* - -> *Additionally while effects is active, the encoder will only adjust the brightness of the RGB matrix.* - - The RGB matrix effect and speed keys are located on the right hand vertical nav column. - - `KC_HOME` → `RGB_MOD` - - `KC_PGUP` → `RGB_RMOD` - - `KC_PGDN` → `RGB_SPI` - - `KC_END` → `RGB_SPD` - - The RGB matrix Hue, Saturation keys are mapped to the arrow keys. - - `KC_UP` → `RGB_SAI` - - `KC_DN` → `RGB_SAD` - - `KC_LEFT` → `RGB_HUD` - - `KC_RIGHT` → `RGB_HUI` - - The RGB matrix toggle is intercepted in process_record_user() cycling through the `LED_FLAG` modifiers. (`NONE`, `UNDERGLOW`, `KEYLIGHT`, `ALL`) - - `KC_SLSH` → `RGB_TOG` - - Hibernate: `HYPER(F18)` - - `MG_F17` → `MG_F18` - - -### `_UTILITY` -*The utility layer is currently used for remapping* `KF_F9` *to* `KC_F12` *&* `MG_F17` *to the dynamic macro keys.* - - Playback - - `KC_F9` → `DM_PLY1` - - `KC_F10` → `DM_PLY2` - - Record - - `KC_F11` → `DM_REC1` - - `KC_F12` → `DM_REC2` - - Stop Recording - - `MG_F17` → `DM_RSTP` - -### `_DFUMODE` -> *The final layer is used for resetting the board or triggering an immediate shutdown.* - - DFU Mode - - `KC_ESC` → `RESET` - - Shutdown: `HYPER(F19)` - - `MG_F17` → `MG_F19` - - Encoder press, triggers debug output. - - `KC_MUTE` → `DB_TOGG` diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/rules.mk b/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/rules.mk deleted file mode 100644 index 76e1674d58..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/rules.mk +++ /dev/null @@ -1,6 +0,0 @@ -# Build rules -LIB_SRC += ansi.c -LIB_SRC += helpers.c - -# Overrides -MOUSEKEY_ENABLE = no # Mouse keys diff --git a/keyboards/gmmk/pro/rev1/iso/iso.c b/keyboards/gmmk/pro/rev1/iso/iso.c index f7d97585c2..9744447587 100644 --- a/keyboards/gmmk/pro/rev1/iso/iso.c +++ b/keyboards/gmmk/pro/rev1/iso/iso.c @@ -137,7 +137,7 @@ led_config_t g_led_config = {{ 2, 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4 }}; -const aw20216s_led g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { +const aw20216s_led_t g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { {0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, ESC, k13 {0, CS4_SW1, CS5_SW1, CS6_SW1}, // 1, ~, k16 {0, CS7_SW1, CS8_SW1, CS9_SW1}, // 2, Tab, k11 diff --git a/keyboards/gmmk/pro/rev2/ansi/ansi.c b/keyboards/gmmk/pro/rev2/ansi/ansi.c index 5d8955d808..322e94c938 100644 --- a/keyboards/gmmk/pro/rev2/ansi/ansi.c +++ b/keyboards/gmmk/pro/rev2/ansi/ansi.c @@ -136,7 +136,7 @@ led_config_t g_led_config = {{ 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4 }}; -const aw20216s_led g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { +const aw20216s_led_t g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { {0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, ESC, k13 {0, CS4_SW1, CS5_SW1, CS6_SW1}, // 1, ~, k16 {0, CS7_SW1, CS8_SW1, CS9_SW1}, // 2, Tab, k11 diff --git a/keyboards/gmmk/pro/rev2/iso/iso.c b/keyboards/gmmk/pro/rev2/iso/iso.c index 3a723c7f0c..3a5b21c014 100644 --- a/keyboards/gmmk/pro/rev2/iso/iso.c +++ b/keyboards/gmmk/pro/rev2/iso/iso.c @@ -137,7 +137,7 @@ led_config_t g_led_config = {{ 2, 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4 }}; -const aw20216s_led g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { +const aw20216s_led_t g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { {0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, ESC, k13 {0, CS4_SW1, CS5_SW1, CS6_SW1}, // 1, ~, k16 {0, CS7_SW1, CS8_SW1, CS9_SW1}, // 2, Tab, k11 diff --git a/keyboards/projectd/65/projectd_65_ansi/projectd_65_ansi.c b/keyboards/projectd/65/projectd_65_ansi/projectd_65_ansi.c index a945e8020e..0d6123ac01 100644 --- a/keyboards/projectd/65/projectd_65_ansi/projectd_65_ansi.c +++ b/keyboards/projectd/65/projectd_65_ansi/projectd_65_ansi.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const aw20216s_led g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const aw20216s_led_t g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to AW20216S manual for these locations * driver * | R location * | | G location From 9a4c30774089b1e0d65e32f86777c69f4f1a313e Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 20 Sep 2023 14:11:33 +0100 Subject: [PATCH 103/496] Migrate dynamic_keymap.layer_count >= 4 (#22087) --- keyboards/1upkeyboards/pi60/config.h | 2 -- keyboards/1upkeyboards/pi60/info.json | 3 +++ keyboards/1upkeyboards/pi60_hse/config.h | 2 -- keyboards/1upkeyboards/pi60_hse/info.json | 3 +++ keyboards/1upkeyboards/sweet16v2/kb2040/config.h | 2 -- keyboards/1upkeyboards/sweet16v2/kb2040/info.json | 3 +++ keyboards/1upkeyboards/sweet16v2/pro_micro/config.h | 3 --- keyboards/1upkeyboards/sweet16v2/pro_micro/info.json | 3 +++ keyboards/4pplet/eagle_viper_rep/rev_a/config.h | 3 --- keyboards/4pplet/eagle_viper_rep/rev_a/info.json | 3 +++ keyboards/4pplet/eagle_viper_rep/rev_b/config.h | 3 --- keyboards/4pplet/eagle_viper_rep/rev_b/info.json | 3 +++ keyboards/akko/5108/config.h | 3 --- keyboards/akko/5108/info.json | 3 +++ keyboards/akko/acr87/config.h | 3 --- keyboards/akko/acr87/info.json | 3 +++ keyboards/akko/top40/config.h | 3 --- keyboards/akko/top40/info.json | 3 +++ keyboards/bemeier/bmek/config.h | 2 -- keyboards/bemeier/bmek/info.json | 3 +++ keyboards/chosfox/cf81/config.h | 3 --- keyboards/deng/thirty/config.h | 5 ----- keyboards/deng/thirty/info.json | 3 +++ keyboards/dm9records/lain/config.h | 2 -- keyboards/dm9records/lain/info.json | 3 +++ keyboards/doio/kb30/config.h | 3 --- keyboards/gkeyboard/gpad8_2r/config.h | 2 -- keyboards/gkeyboard/gpad8_2r/info.json | 3 +++ keyboards/idyllic/tinny50_rgb/config.h | 3 --- keyboards/idyllic/tinny50_rgb/info.json | 3 +++ keyboards/jones/v1/config.h | 5 ----- keyboards/jones/v1/info.json | 3 +++ keyboards/mechwild/sugarglider/config.h | 2 -- keyboards/mechwild/sugarglider/info.json | 3 +++ keyboards/monsgeek/m1/config.h | 3 --- keyboards/monsgeek/m1/info.json | 3 +++ keyboards/monsgeek/m5/config.h | 3 --- keyboards/monsgeek/m5/info.json | 3 +++ keyboards/monsgeek/m6/config.h | 3 --- keyboards/monsgeek/m6/info.json | 3 +++ keyboards/moonlander/config.h | 4 ---- keyboards/moonlander/info.json | 3 +++ keyboards/primekb/prime_e/config.h | 2 -- keyboards/primekb/prime_e/info.json | 3 +++ keyboards/pteron36/config.h | 3 --- keyboards/pteron36/info.json | 3 +++ keyboards/qvex/lynepad2/config.h | 2 -- keyboards/qvex/lynepad2/info.json | 3 +++ keyboards/sirius/uni660/rev1/config.h | 2 -- keyboards/sirius/uni660/rev2/ansi/config.h | 2 -- keyboards/sirius/uni660/rev2/iso/config.h | 2 -- keyboards/wilba_tech/rama_works_m10_b/config.h | 2 -- keyboards/wilba_tech/rama_works_m10_b/info.json | 3 +++ keyboards/wilba_tech/rama_works_m10_c/config.h | 2 -- keyboards/wilba_tech/rama_works_m10_c/info.json | 3 +++ keyboards/zykrah/fuyu/config.h | 2 -- keyboards/zykrah/fuyu/info.json | 3 +++ keyboards/zykrah/slime88/config.h | 2 -- keyboards/zykrah/slime88/info.json | 3 +++ 59 files changed, 81 insertions(+), 85 deletions(-) diff --git a/keyboards/1upkeyboards/pi60/config.h b/keyboards/1upkeyboards/pi60/config.h index 8940acb004..6bbbb2293c 100644 --- a/keyboards/1upkeyboards/pi60/config.h +++ b/keyboards/1upkeyboards/pi60/config.h @@ -3,8 +3,6 @@ #pragma once -#define DYNAMIC_KEYMAP_LAYER_COUNT 10 - #define RGB_MATRIX_LED_COUNT 21 //#define RGB_MATRIX_FRAMEBUFFER_EFFECTS //#define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/1upkeyboards/pi60/info.json b/keyboards/1upkeyboards/pi60/info.json index 2d3797c1a8..4d0d21ea25 100644 --- a/keyboards/1upkeyboards/pi60/info.json +++ b/keyboards/1upkeyboards/pi60/info.json @@ -11,6 +11,9 @@ "vid": "0x6F75" }, "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 10 + }, "features": { "audio": false, "backlight": false, diff --git a/keyboards/1upkeyboards/pi60_hse/config.h b/keyboards/1upkeyboards/pi60_hse/config.h index a47120f7d3..b7c4d5e8bc 100644 --- a/keyboards/1upkeyboards/pi60_hse/config.h +++ b/keyboards/1upkeyboards/pi60_hse/config.h @@ -3,8 +3,6 @@ #pragma once - -#define DYNAMIC_KEYMAP_LAYER_COUNT 10 #define RGB_MATRIX_LED_COUNT 16 #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/1upkeyboards/pi60_hse/info.json b/keyboards/1upkeyboards/pi60_hse/info.json index 310ad3d94b..5b3e6b35e5 100644 --- a/keyboards/1upkeyboards/pi60_hse/info.json +++ b/keyboards/1upkeyboards/pi60_hse/info.json @@ -11,6 +11,9 @@ "vid": "0x6F75" }, "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 10 + }, "features": { "audio": false, "backlight": false, diff --git a/keyboards/1upkeyboards/sweet16v2/kb2040/config.h b/keyboards/1upkeyboards/sweet16v2/kb2040/config.h index 37a85b4711..e4609962f1 100644 --- a/keyboards/1upkeyboards/sweet16v2/kb2040/config.h +++ b/keyboards/1upkeyboards/sweet16v2/kb2040/config.h @@ -16,8 +16,6 @@ #pragma once - -#define DYNAMIC_KEYMAP_LAYER_COUNT 10 #define RGB_MATRIX_LED_COUNT 20 #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/1upkeyboards/sweet16v2/kb2040/info.json b/keyboards/1upkeyboards/sweet16v2/kb2040/info.json index f1ac861c8c..928c8106bf 100644 --- a/keyboards/1upkeyboards/sweet16v2/kb2040/info.json +++ b/keyboards/1upkeyboards/sweet16v2/kb2040/info.json @@ -33,6 +33,9 @@ "rows": ["GP26", "GP1", "GP18", "GP5"] }, "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 10 + }, "encoder": { "enabled": true, "rotary": [ diff --git a/keyboards/1upkeyboards/sweet16v2/pro_micro/config.h b/keyboards/1upkeyboards/sweet16v2/pro_micro/config.h index f773468d8f..e4609962f1 100644 --- a/keyboards/1upkeyboards/sweet16v2/pro_micro/config.h +++ b/keyboards/1upkeyboards/sweet16v2/pro_micro/config.h @@ -16,9 +16,6 @@ #pragma once - -#define DYNAMIC_KEYMAP_LAYER_COUNT 10 - #define RGB_MATRIX_LED_COUNT 20 #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/1upkeyboards/sweet16v2/pro_micro/info.json b/keyboards/1upkeyboards/sweet16v2/pro_micro/info.json index a8696ab64c..87f2f3574c 100644 --- a/keyboards/1upkeyboards/sweet16v2/pro_micro/info.json +++ b/keyboards/1upkeyboards/sweet16v2/pro_micro/info.json @@ -31,6 +31,9 @@ "rows": ["D1", "B5", "B4", "E6"] }, "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 10 + }, "encoder": { "enabled": true, "rotary": [ diff --git a/keyboards/4pplet/eagle_viper_rep/rev_a/config.h b/keyboards/4pplet/eagle_viper_rep/rev_a/config.h index 9bec945f24..7b89744ff2 100644 --- a/keyboards/4pplet/eagle_viper_rep/rev_a/config.h +++ b/keyboards/4pplet/eagle_viper_rep/rev_a/config.h @@ -41,6 +41,3 @@ along with this program. If not, see . #define LAYER_3 A8 #define LAYER_4 A9 #define LAYER_5 B9 - -/* Added extra layer for use of layer leds */ -#define DYNAMIC_KEYMAP_LAYER_COUNT 5 diff --git a/keyboards/4pplet/eagle_viper_rep/rev_a/info.json b/keyboards/4pplet/eagle_viper_rep/rev_a/info.json index 4be993daea..167051ca94 100644 --- a/keyboards/4pplet/eagle_viper_rep/rev_a/info.json +++ b/keyboards/4pplet/eagle_viper_rep/rev_a/info.json @@ -13,6 +13,9 @@ "rows": ["A2", "A1", "B8", "A10", "C15", "A15", "B7", "B6", "C14", "C13"] }, "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 5 + }, "backlight": { "pin": "A3", "levels": 10, diff --git a/keyboards/4pplet/eagle_viper_rep/rev_b/config.h b/keyboards/4pplet/eagle_viper_rep/rev_b/config.h index 5d5eefda21..b5957e6f30 100644 --- a/keyboards/4pplet/eagle_viper_rep/rev_b/config.h +++ b/keyboards/4pplet/eagle_viper_rep/rev_b/config.h @@ -34,6 +34,3 @@ along with this program. If not, see . #define LAYER_3 B0 #define LAYER_4 B9 #define LAYER_5 A9 - -/* Added extra layer for use of layer leds */ -#define DYNAMIC_KEYMAP_LAYER_COUNT 5 diff --git a/keyboards/4pplet/eagle_viper_rep/rev_b/info.json b/keyboards/4pplet/eagle_viper_rep/rev_b/info.json index ad7513c13d..2ebb260686 100644 --- a/keyboards/4pplet/eagle_viper_rep/rev_b/info.json +++ b/keyboards/4pplet/eagle_viper_rep/rev_b/info.json @@ -13,6 +13,9 @@ "rows": ["A2", "A1", "B8", "A10", "C15", "A15", "B7", "B6", "C14", "C13"] }, "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 5 + }, "backlight": { "pin": "A6", "levels": 6, diff --git a/keyboards/akko/5108/config.h b/keyboards/akko/5108/config.h index 790830c88b..a50041ccc9 100644 --- a/keyboards/akko/5108/config.h +++ b/keyboards/akko/5108/config.h @@ -16,9 +16,6 @@ #pragma once -/* Use 5 dynamic keymap layers */ -#define DYNAMIC_KEYMAP_LAYER_COUNT 6 - /* LED Indicators */ #define LED_WIN_LOCK_PIN C11 diff --git a/keyboards/akko/5108/info.json b/keyboards/akko/5108/info.json index ef3f85a1ec..93e73f3cd3 100644 --- a/keyboards/akko/5108/info.json +++ b/keyboards/akko/5108/info.json @@ -26,6 +26,9 @@ "rows": ["B15", "C6", "C7", "C8", "C9", "A8"] }, "diode_direction": "ROW2COL", + "dynamic_keymap": { + "layer_count": 6 + }, "eeprom": { "driver": "wear_leveling", "wear_leveling": { diff --git a/keyboards/akko/acr87/config.h b/keyboards/akko/acr87/config.h index 3f61359074..6afa413552 100644 --- a/keyboards/akko/acr87/config.h +++ b/keyboards/akko/acr87/config.h @@ -16,9 +16,6 @@ #pragma once -/* Use 5 dynamic keymap layers */ -#define DYNAMIC_KEYMAP_LAYER_COUNT 6 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/akko/acr87/info.json b/keyboards/akko/acr87/info.json index f9d360282d..0533d328a9 100644 --- a/keyboards/akko/acr87/info.json +++ b/keyboards/akko/acr87/info.json @@ -26,6 +26,9 @@ "rows": [ "B15", "C6", "C7", "C8", "C9", "A8"] }, "diode_direction": "ROW2COL", + "dynamic_keymap": { + "layer_count": 6 + }, "eeprom": { "driver": "wear_leveling", "wear_leveling": { diff --git a/keyboards/akko/top40/config.h b/keyboards/akko/top40/config.h index cc72977c4d..09474e1217 100644 --- a/keyboards/akko/top40/config.h +++ b/keyboards/akko/top40/config.h @@ -16,9 +16,6 @@ #pragma once -/* Use 5 dynamic keymap layers */ -#define DYNAMIC_KEYMAP_LAYER_COUNT 6 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/akko/top40/info.json b/keyboards/akko/top40/info.json index 3624ee0411..b5ff321740 100644 --- a/keyboards/akko/top40/info.json +++ b/keyboards/akko/top40/info.json @@ -26,6 +26,9 @@ "rows": ["C7", "C8", "C9", "A8"] }, "diode_direction": "ROW2COL", + "dynamic_keymap": { + "layer_count": 6 + }, "eeprom": { "driver": "wear_leveling", "wear_leveling": { diff --git a/keyboards/bemeier/bmek/config.h b/keyboards/bemeier/bmek/config.h index 4553454096..1deca961a0 100755 --- a/keyboards/bemeier/bmek/config.h +++ b/keyboards/bemeier/bmek/config.h @@ -15,6 +15,4 @@ */ #pragma once - -#define DYNAMIC_KEYMAP_LAYER_COUNT 5 #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 20 diff --git a/keyboards/bemeier/bmek/info.json b/keyboards/bemeier/bmek/info.json index 0959f9f3a6..31d2b5f9bd 100755 --- a/keyboards/bemeier/bmek/info.json +++ b/keyboards/bemeier/bmek/info.json @@ -7,6 +7,9 @@ "vid": "0x626D", "pid": "0x656B" }, + "dynamic_keymap": { + "layer_count": 5 + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/chosfox/cf81/config.h b/keyboards/chosfox/cf81/config.h index e837c9745b..2c85f5dd04 100644 --- a/keyboards/chosfox/cf81/config.h +++ b/keyboards/chosfox/cf81/config.h @@ -16,9 +16,6 @@ #pragma once -/* Use 4 dynamic keymap layers */ -#define DYNAMIC_KEYMAP_LAYER_COUNT 4 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/deng/thirty/config.h b/keyboards/deng/thirty/config.h index 20e6673dd2..8ec8f6b0d3 100644 --- a/keyboards/deng/thirty/config.h +++ b/keyboards/deng/thirty/config.h @@ -78,8 +78,3 @@ #define ENABLE_RGB_MATRIX_SOLID_SPLASH #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH #endif - -/* VIA */ -#ifdef VIA_ENABLE -#define DYNAMIC_KEYMAP_LAYER_COUNT 8 -#endif diff --git a/keyboards/deng/thirty/info.json b/keyboards/deng/thirty/info.json index 8836273865..b93881c086 100644 --- a/keyboards/deng/thirty/info.json +++ b/keyboards/deng/thirty/info.json @@ -16,6 +16,9 @@ "rows": ["B15", "A5", "A3", "A15", "B7", "B8"] }, "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 8 + }, "backlight": { "pin": "B11", "levels": 5, diff --git a/keyboards/dm9records/lain/config.h b/keyboards/dm9records/lain/config.h index e34b4d34ab..ddb4b6702f 100644 --- a/keyboards/dm9records/lain/config.h +++ b/keyboards/dm9records/lain/config.h @@ -12,5 +12,3 @@ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -#define DYNAMIC_KEYMAP_LAYER_COUNT 6 diff --git a/keyboards/dm9records/lain/info.json b/keyboards/dm9records/lain/info.json index 8ae8a33b44..250eb2ddaf 100644 --- a/keyboards/dm9records/lain/info.json +++ b/keyboards/dm9records/lain/info.json @@ -13,6 +13,9 @@ "rows": ["C6", "D7", "D6", "D4"] }, "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 6 + }, "processor": "atmega32u4", "bootloader": "atmel-dfu", "layouts": { diff --git a/keyboards/doio/kb30/config.h b/keyboards/doio/kb30/config.h index a87532c459..2a1a827375 100644 --- a/keyboards/doio/kb30/config.h +++ b/keyboards/doio/kb30/config.h @@ -89,9 +89,6 @@ #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH #endif - - -// #define DYNAMIC_KEYMAP_LAYER_COUNT 4 /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/gkeyboard/gpad8_2r/config.h b/keyboards/gkeyboard/gpad8_2r/config.h index 0691d106b7..88debbe193 100644 --- a/keyboards/gkeyboard/gpad8_2r/config.h +++ b/keyboards/gkeyboard/gpad8_2r/config.h @@ -3,8 +3,6 @@ #pragma once -#define DYNAMIC_KEYMAP_LAYER_COUNT 8 - #define RGB_MATRIX_LED_COUNT 16 #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/gkeyboard/gpad8_2r/info.json b/keyboards/gkeyboard/gpad8_2r/info.json index 2111d58cc4..9aa63091c9 100644 --- a/keyboards/gkeyboard/gpad8_2r/info.json +++ b/keyboards/gkeyboard/gpad8_2r/info.json @@ -25,6 +25,9 @@ "rows": ["GP4", "GP5", "GP6"] }, "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 8 + }, "encoder": { "enabled": true, "rotary": [ diff --git a/keyboards/idyllic/tinny50_rgb/config.h b/keyboards/idyllic/tinny50_rgb/config.h index 15e1a6ff5c..0cb5eac432 100644 --- a/keyboards/idyllic/tinny50_rgb/config.h +++ b/keyboards/idyllic/tinny50_rgb/config.h @@ -17,9 +17,6 @@ along with this program. If not, see . #pragma once - -#define DYNAMIC_KEYMAP_LAYER_COUNT 6 - #ifdef RGB_MATRIX_ENABLE #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS * 7/8 diff --git a/keyboards/idyllic/tinny50_rgb/info.json b/keyboards/idyllic/tinny50_rgb/info.json index f02e88f459..7e68b960f5 100644 --- a/keyboards/idyllic/tinny50_rgb/info.json +++ b/keyboards/idyllic/tinny50_rgb/info.json @@ -22,6 +22,9 @@ "rgb_matrix": true }, "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 6 + }, "matrix_pins": { "rows": ["GP0", "GP2", "GP3", "GP4", "GP7"], "cols": ["GP29", "GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP20", "GP19", "GP1", "GP6", "GP5"] diff --git a/keyboards/jones/v1/config.h b/keyboards/jones/v1/config.h index e36574e56a..541a6ae2f0 100644 --- a/keyboards/jones/v1/config.h +++ b/keyboards/jones/v1/config.h @@ -32,8 +32,3 @@ along with this program. If not, see . /* External EEPROM */ // Use 24LC64 EEPROM #define EEPROM_I2C_24LC64 -// Set MAX_ADDR to specify actual EEPROM size. -// If it's not set, EEPROM size will be set ATmega32u4's 1023. -#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191 -// How many layers to use with VIA / Remap. -#define DYNAMIC_KEYMAP_LAYER_COUNT 6 // default:4 diff --git a/keyboards/jones/v1/info.json b/keyboards/jones/v1/info.json index 0e7902a92a..54496d3164 100644 --- a/keyboards/jones/v1/info.json +++ b/keyboards/jones/v1/info.json @@ -21,6 +21,9 @@ "pin": "F1" }, "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 6 + }, "eeprom": { "driver": "i2c" }, diff --git a/keyboards/mechwild/sugarglider/config.h b/keyboards/mechwild/sugarglider/config.h index 75aa26956c..f078cf34cc 100644 --- a/keyboards/mechwild/sugarglider/config.h +++ b/keyboards/mechwild/sugarglider/config.h @@ -3,8 +3,6 @@ #pragma once -#define DYNAMIC_KEYMAP_LAYER_COUNT 5 - /* Matrix COL and ROW definitions */ #define MATRIX_ROWS 9 #define MATRIX_COLS 6 diff --git a/keyboards/mechwild/sugarglider/info.json b/keyboards/mechwild/sugarglider/info.json index f8439dde11..7448ae2854 100644 --- a/keyboards/mechwild/sugarglider/info.json +++ b/keyboards/mechwild/sugarglider/info.json @@ -23,6 +23,9 @@ "force_nkro": true }, "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 5 + }, "rgblight": { "led_count": 10, "max_brightness": 255, diff --git a/keyboards/monsgeek/m1/config.h b/keyboards/monsgeek/m1/config.h index 162001fca6..efec0207c3 100644 --- a/keyboards/monsgeek/m1/config.h +++ b/keyboards/monsgeek/m1/config.h @@ -16,9 +16,6 @@ #pragma once -/* Use 6 dynamic keymap layers */ -#define DYNAMIC_KEYMAP_LAYER_COUNT 6 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/monsgeek/m1/info.json b/keyboards/monsgeek/m1/info.json index 6fbc22b101..3eade9d76d 100644 --- a/keyboards/monsgeek/m1/info.json +++ b/keyboards/monsgeek/m1/info.json @@ -26,6 +26,9 @@ "rows": ["B15", "C6", "C7", "C8", "C9", "A8"] }, "diode_direction": "ROW2COL", + "dynamic_keymap": { + "layer_count": 6 + }, "eeprom": { "driver": "wear_leveling", "wear_leveling": { diff --git a/keyboards/monsgeek/m5/config.h b/keyboards/monsgeek/m5/config.h index a92c4975eb..ef2a43cdb3 100644 --- a/keyboards/monsgeek/m5/config.h +++ b/keyboards/monsgeek/m5/config.h @@ -16,9 +16,6 @@ #pragma once -/* Use 5 dynamic keymap layers */ -#define DYNAMIC_KEYMAP_LAYER_COUNT 6 - /* LED Indicators */ #define LED_WIN_LOCK_PIN C11 diff --git a/keyboards/monsgeek/m5/info.json b/keyboards/monsgeek/m5/info.json index 1e9ec8618a..7b01d2526d 100644 --- a/keyboards/monsgeek/m5/info.json +++ b/keyboards/monsgeek/m5/info.json @@ -25,6 +25,9 @@ "rows": ["B15", "C6", "C7", "C8", "C9", "A8"] }, "diode_direction": "ROW2COL", + "dynamic_keymap": { + "layer_count": 6 + }, "eeprom": { "driver": "wear_leveling", "wear_leveling": { diff --git a/keyboards/monsgeek/m6/config.h b/keyboards/monsgeek/m6/config.h index c6f7d55e9d..fac90ac0ad 100644 --- a/keyboards/monsgeek/m6/config.h +++ b/keyboards/monsgeek/m6/config.h @@ -16,9 +16,6 @@ #pragma once -/* Use 6 dynamic keymap layers */ -#define DYNAMIC_KEYMAP_LAYER_COUNT 6 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/monsgeek/m6/info.json b/keyboards/monsgeek/m6/info.json index 7751ef13d6..d3951c8046 100644 --- a/keyboards/monsgeek/m6/info.json +++ b/keyboards/monsgeek/m6/info.json @@ -25,6 +25,9 @@ "rows": ["C6", "C7", "C8", "C9", "A8"] }, "diode_direction": "ROW2COL", + "dynamic_keymap": { + "layer_count": 6 + }, "eeprom": { "driver": "wear_leveling", "wear_leveling": { diff --git a/keyboards/moonlander/config.h b/keyboards/moonlander/config.h index cabfaf9900..7c20260162 100644 --- a/keyboards/moonlander/config.h +++ b/keyboards/moonlander/config.h @@ -142,10 +142,6 @@ #define FIRMWARE_VERSION_SIZE 17 #define DYNAMIC_KEYMAP_EEPROM_ADDR (EECONFIG_SIZE + FIRMWARE_VERSION_SIZE) -#ifdef EEPROM_I2C -# define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 16383 -# define DYNAMIC_KEYMAP_LAYER_COUNT 8 -#endif #define AUDIO_PIN A5 #define AUDIO_PIN_ALT A4 diff --git a/keyboards/moonlander/info.json b/keyboards/moonlander/info.json index 21779adced..1a7982ed57 100644 --- a/keyboards/moonlander/info.json +++ b/keyboards/moonlander/info.json @@ -8,6 +8,9 @@ "pid": "0x1969", "device_version": "0.0.1" }, + "dynamic_keymap": { + "layer_count": 8 + }, "eeprom": { "driver": "i2c" }, diff --git a/keyboards/primekb/prime_e/config.h b/keyboards/primekb/prime_e/config.h index e3e1572d99..6c8ce4c0ea 100644 --- a/keyboards/primekb/prime_e/config.h +++ b/keyboards/primekb/prime_e/config.h @@ -21,5 +21,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -#define DYNAMIC_KEYMAP_LAYER_COUNT 8 diff --git a/keyboards/primekb/prime_e/info.json b/keyboards/primekb/prime_e/info.json index f94271be6c..dee7a23e02 100644 --- a/keyboards/primekb/prime_e/info.json +++ b/keyboards/primekb/prime_e/info.json @@ -10,6 +10,9 @@ "rows": ["E6", "C7", "B5", "B4"] }, "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 8 + }, "processor": "atmega32u4", "bootloader": "atmel-dfu", "layouts": { diff --git a/keyboards/pteron36/config.h b/keyboards/pteron36/config.h index 1148463200..72b4ea84e7 100644 --- a/keyboards/pteron36/config.h +++ b/keyboards/pteron36/config.h @@ -37,6 +37,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -// for via -#define DYNAMIC_KEYMAP_LAYER_COUNT 7 diff --git a/keyboards/pteron36/info.json b/keyboards/pteron36/info.json index 418ca0f6b8..76b6e59647 100644 --- a/keyboards/pteron36/info.json +++ b/keyboards/pteron36/info.json @@ -13,6 +13,9 @@ "rows": ["E6", "D7", "B4", "B5"] }, "diode_direction": "ROW2COL", + "dynamic_keymap": { + "layer_count": 7 + }, "encoder": { "rotary": [ {"pin_a": "F5", "pin_b": "F4"} diff --git a/keyboards/qvex/lynepad2/config.h b/keyboards/qvex/lynepad2/config.h index 7b9d3ce306..9e1f70b38b 100644 --- a/keyboards/qvex/lynepad2/config.h +++ b/keyboards/qvex/lynepad2/config.h @@ -16,8 +16,6 @@ along with this program. If not, see . #pragma once -#define DYNAMIC_KEYMAP_LAYER_COUNT 5 - //Digital joystick (4-way switch + encoder) #define PIN_JU D4 #define PIN_JD B6 diff --git a/keyboards/qvex/lynepad2/info.json b/keyboards/qvex/lynepad2/info.json index 4230fd63e0..7919c2adc2 100644 --- a/keyboards/qvex/lynepad2/info.json +++ b/keyboards/qvex/lynepad2/info.json @@ -15,6 +15,9 @@ "vid": "0x04D8", "pid": "0xE678" }, + "dynamic_keymap": { + "layer_count": 5 + }, "encoder": { "rotary": [ {"pin_a": "D6", "pin_b": "B5", "resolution": 2}, diff --git a/keyboards/sirius/uni660/rev1/config.h b/keyboards/sirius/uni660/rev1/config.h index 0cd138a95c..b9e511d9a3 100644 --- a/keyboards/sirius/uni660/rev1/config.h +++ b/keyboards/sirius/uni660/rev1/config.h @@ -39,5 +39,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -#define DYNAMIC_KEYMAP_LAYER_COUNT 4 diff --git a/keyboards/sirius/uni660/rev2/ansi/config.h b/keyboards/sirius/uni660/rev2/ansi/config.h index 0cd138a95c..b9e511d9a3 100644 --- a/keyboards/sirius/uni660/rev2/ansi/config.h +++ b/keyboards/sirius/uni660/rev2/ansi/config.h @@ -39,5 +39,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -#define DYNAMIC_KEYMAP_LAYER_COUNT 4 diff --git a/keyboards/sirius/uni660/rev2/iso/config.h b/keyboards/sirius/uni660/rev2/iso/config.h index 0cd138a95c..b9e511d9a3 100644 --- a/keyboards/sirius/uni660/rev2/iso/config.h +++ b/keyboards/sirius/uni660/rev2/iso/config.h @@ -39,5 +39,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -#define DYNAMIC_KEYMAP_LAYER_COUNT 4 diff --git a/keyboards/wilba_tech/rama_works_m10_b/config.h b/keyboards/wilba_tech/rama_works_m10_b/config.h index 00ecf5f186..c8c922be6f 100644 --- a/keyboards/wilba_tech/rama_works_m10_b/config.h +++ b/keyboards/wilba_tech/rama_works_m10_b/config.h @@ -37,5 +37,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -#define DYNAMIC_KEYMAP_LAYER_COUNT 10 diff --git a/keyboards/wilba_tech/rama_works_m10_b/info.json b/keyboards/wilba_tech/rama_works_m10_b/info.json index 0d80bce8a8..eb861e8d3f 100644 --- a/keyboards/wilba_tech/rama_works_m10_b/info.json +++ b/keyboards/wilba_tech/rama_works_m10_b/info.json @@ -13,6 +13,9 @@ "rows": ["E6"] }, "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 10 + }, "backlight": { "pin": "C6" }, diff --git a/keyboards/wilba_tech/rama_works_m10_c/config.h b/keyboards/wilba_tech/rama_works_m10_c/config.h index d5e47ac879..b3cb0ef7a8 100644 --- a/keyboards/wilba_tech/rama_works_m10_c/config.h +++ b/keyboards/wilba_tech/rama_works_m10_c/config.h @@ -73,8 +73,6 @@ #define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } #define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } -#define DYNAMIC_KEYMAP_LAYER_COUNT 10 - // Backlight config starts after VIA's EEPROM usage, // dynamic keymaps start after this. #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 51 diff --git a/keyboards/wilba_tech/rama_works_m10_c/info.json b/keyboards/wilba_tech/rama_works_m10_c/info.json index 64af4a5dcf..3b75a67557 100644 --- a/keyboards/wilba_tech/rama_works_m10_c/info.json +++ b/keyboards/wilba_tech/rama_works_m10_c/info.json @@ -13,6 +13,9 @@ "rows": ["E6"] }, "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 10 + }, "processor": "atmega32u4", "bootloader": "atmel-dfu", "layouts": { diff --git a/keyboards/zykrah/fuyu/config.h b/keyboards/zykrah/fuyu/config.h index 0f24dfe7e3..20b0feb523 100644 --- a/keyboards/zykrah/fuyu/config.h +++ b/keyboards/zykrah/fuyu/config.h @@ -14,8 +14,6 @@ along with this program. If not, see . #pragma once -#define DYNAMIC_KEYMAP_LAYER_COUNT 6 - #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/zykrah/fuyu/info.json b/keyboards/zykrah/fuyu/info.json index 874114bfca..5431d14329 100644 --- a/keyboards/zykrah/fuyu/info.json +++ b/keyboards/zykrah/fuyu/info.json @@ -19,6 +19,9 @@ "rgb_matrix": true }, "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 6 + }, "matrix_pins": { "rows": ["GP13", "GP12", "GP11", "GP10", "GP15", "GP14"], "cols": ["GP29", "GP28", "GP26", "GP25", "GP24", "GP23", "GP22", "GP21", "GP20", "GP19", "GP18", "GP17", "GP16", "GP27", "GP9", "GP1", "GP0"] diff --git a/keyboards/zykrah/slime88/config.h b/keyboards/zykrah/slime88/config.h index eb91a14f6e..e1a00bae4a 100644 --- a/keyboards/zykrah/slime88/config.h +++ b/keyboards/zykrah/slime88/config.h @@ -14,7 +14,5 @@ along with this program. If not, see . #pragma once -#define DYNAMIC_KEYMAP_LAYER_COUNT 6 - #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/zykrah/slime88/info.json b/keyboards/zykrah/slime88/info.json index bf1719352d..8b15524cca 100644 --- a/keyboards/zykrah/slime88/info.json +++ b/keyboards/zykrah/slime88/info.json @@ -18,6 +18,9 @@ "nkro": true }, "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 6 + }, "matrix_pins": { "rows": ["GP2", "GP29", "GP28", "GP27", "GP11", "GP12"], "cols": ["GP26", "GP25", "GP24", "GP23", "GP22", "GP21", "GP20", "GP19", "GP18", "GP17", "GP16", "GP15", "GP14", "GP13", "GP0", "GP1", "GP3"] From cdff9b8da710df29da2d977da0c6cf2b5ba1bf7b Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 20 Sep 2023 14:13:51 +0100 Subject: [PATCH 104/496] Restrict "feature" and "animation" keys (#21895) --- data/schemas/definitions.jsonschema | 4 ++++ data/schemas/keyboard.jsonschema | 9 ++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/data/schemas/definitions.jsonschema b/data/schemas/definitions.jsonschema index b9c64a55ec..441e6395cf 100644 --- a/data/schemas/definitions.jsonschema +++ b/data/schemas/definitions.jsonschema @@ -29,6 +29,10 @@ "minLength": 1, "maxLength": 250 }, + "snake_case": { + "type": "string", + "pattern": "^[a-z][a-z0-9_]*$" + }, "layout_macro": { "oneOf": [ { diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 901caa75fe..4053387f3b 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -256,7 +256,11 @@ "enabled": {"type": "boolean"} } }, - "features": {"$ref": "qmk.definitions.v1#/boolean_array"}, + "features": { + "$ref": "qmk.definitions.v1#/boolean_array", + "propertyNames": { "$ref": "qmk.definitions.v1#/snake_case" } + + }, "indicators": { "type": "object", "properties": { @@ -370,6 +374,7 @@ "properties": { "animations": { "type": "object", + "propertyNames": { "$ref": "qmk.definitions.v1#/snake_case" } "additionalProperties": { "type": "boolean" } @@ -419,6 +424,7 @@ "properties": { "animations": { "type": "object", + "propertyNames": { "$ref": "qmk.definitions.v1#/snake_case" } "additionalProperties": { "type": "boolean" } @@ -471,6 +477,7 @@ "properties": { "animations": { "type": "object", + "propertyNames": { "$ref": "qmk.definitions.v1#/snake_case" } "additionalProperties": { "type": "boolean" } From fffea620050dc44e1003658cc8f2f6ec5126e22f Mon Sep 17 00:00:00 2001 From: peepeetee <43021794+peepeetee@users.noreply.github.com> Date: Wed, 20 Sep 2023 21:03:32 -0500 Subject: [PATCH 105/496] [Keyboard] Momokai Aurora (#20419) Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com> Co-authored-by: Ryan Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis --- keyboards/momokai/aurora/config.h | 78 +++++++++++++++++++ keyboards/momokai/aurora/info.json | 73 +++++++++++++++++ .../momokai/aurora/keymaps/default/keymap.c | 19 +++++ .../momokai/aurora/keymaps/default/rules.mk | 1 + keyboards/momokai/aurora/keymaps/via/keymap.c | 18 +++++ keyboards/momokai/aurora/keymaps/via/rules.mk | 4 + keyboards/momokai/aurora/readme.md | 24 ++++++ keyboards/momokai/aurora/rules.mk | 1 + 8 files changed, 218 insertions(+) create mode 100644 keyboards/momokai/aurora/config.h create mode 100644 keyboards/momokai/aurora/info.json create mode 100644 keyboards/momokai/aurora/keymaps/default/keymap.c create mode 100644 keyboards/momokai/aurora/keymaps/default/rules.mk create mode 100644 keyboards/momokai/aurora/keymaps/via/keymap.c create mode 100644 keyboards/momokai/aurora/keymaps/via/rules.mk create mode 100644 keyboards/momokai/aurora/readme.md create mode 100644 keyboards/momokai/aurora/rules.mk diff --git a/keyboards/momokai/aurora/config.h b/keyboards/momokai/aurora/config.h new file mode 100644 index 0000000000..b12313ff2c --- /dev/null +++ b/keyboards/momokai/aurora/config.h @@ -0,0 +1,78 @@ +// Copyright 2023 peepeetee (@peepeetee) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + + +#define RGB_MATRIX_LED_COUNT 10 +#define RGB_MATRIX_KEYPRESSES // reacts to keypresses +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 + // RGB Matrix Animation modes. Explicitly enabled + // For full list of effects, see: + // https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects + #define ENABLE_RGB_MATRIX_SOLID_COLOR + #define ENABLE_RGB_MATRIX_ALPHAS_MODS + #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN + #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT + #define ENABLE_RGB_MATRIX_BREATHING + #define ENABLE_RGB_MATRIX_BAND_SAT + #define ENABLE_RGB_MATRIX_BAND_VAL + #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT + #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL + #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT + #define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL + #define ENABLE_RGB_MATRIX_CYCLE_ALL + #define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT + #define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN + #define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON + #define ENABLE_RGB_MATRIX_CYCLE_OUT_IN + #define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL + #define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL + #define ENABLE_RGB_MATRIX_CYCLE_SPIRAL + #define ENABLE_RGB_MATRIX_DUAL_BEACON + #define ENABLE_RGB_MATRIX_RAINBOW_BEACON + #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS + #define ENABLE_RGB_MATRIX_RAINDROPS + #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + #define ENABLE_RGB_MATRIX_HUE_BREATHING + #define ENABLE_RGB_MATRIX_HUE_PENDULUM + #define ENABLE_RGB_MATRIX_HUE_WAVE + #define ENABLE_RGB_MATRIX_PIXEL_RAIN + #define ENABLE_RGB_MATRIX_PIXEL_FLOW + #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL + + // enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined + #define ENABLE_RGB_MATRIX_TYPING_HEATMAP + #define ENABLE_RGB_MATRIX_DIGITAL_RAIN + + // enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS + #define ENABLE_RGB_MATRIX_SPLASH + #define ENABLE_RGB_MATRIX_MULTISPLASH + #define ENABLE_RGB_MATRIX_SOLID_SPLASH + #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH diff --git a/keyboards/momokai/aurora/info.json b/keyboards/momokai/aurora/info.json new file mode 100644 index 0000000000..58aa75ad01 --- /dev/null +++ b/keyboards/momokai/aurora/info.json @@ -0,0 +1,73 @@ +{ + "manufacturer": "momokai", + "keyboard_name": "momokai/aurora", + "maintainer": "peepeetee", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "bootmagic": { + "matrix": [1, 0] + }, + "matrix_pins": { + "direct": [ + ["NO_PIN", "B0", "NO_PIN" ], + ["B4", "D2", "D1" ], + ["D7", "D4", "D6" ] + ] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "0.0.1", + "pid": "0x0009", + "vid": "0x69F9" + }, + "encoder": { + "enabled": true, + "rotary": [ + { + "pin_a": "B2", + "pin_b": "B1" + } + ] + }, + "ws2812": { + "pin": "C7" + }, + "rgb_matrix": { + "driver": "ws2812", + "layout": [ + { "flags": 4, "matrix": [2, 0], "x": 51, "y": 51 }, + { "flags": 4, "matrix": [1, 0], "x": 51, "y": 38 }, + { "flags": 4, "matrix": [1, 1], "x": 102, "y": 38 }, + { "flags": 4, "matrix": [2, 1], "x": 102, "y": 51 }, + { "flags": 4, "matrix": [2, 2], "x": 154, "y": 51 }, + { "flags": 4, "matrix": [1, 2], "x": 154, "y": 38 }, + { "flags": 2, "x": 77, "y": 12 }, + { "flags": 2, "x": 128, "y": 26 }, + { "flags": 2, "x": 77, "y": 26 }, + { "flags": 2, "x": 128, "y": 12 } + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 2}, + {"matrix": [1, 1], "x": 1, "y": 2}, + {"matrix": [1, 2], "x": 2, "y": 2}, + {"matrix": [2, 0], "x": 0, "y": 3}, + {"matrix": [2, 1], "x": 1, "y": 3}, + {"matrix": [2, 2], "x": 2, "y": 3} + ] + } + } +} diff --git a/keyboards/momokai/aurora/keymaps/default/keymap.c b/keyboards/momokai/aurora/keymaps/default/keymap.c new file mode 100644 index 0000000000..cb84cc87d9 --- /dev/null +++ b/keyboards/momokai/aurora/keymaps/default/keymap.c @@ -0,0 +1,19 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_MUTE, + KC_Z, KC_X, KC_C, + KC_GRV, KC_ESC, KC_F2 + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } + +}; +#endif \ No newline at end of file diff --git a/keyboards/momokai/aurora/keymaps/default/rules.mk b/keyboards/momokai/aurora/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/momokai/aurora/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/momokai/aurora/keymaps/via/keymap.c b/keyboards/momokai/aurora/keymaps/via/keymap.c new file mode 100644 index 0000000000..710f1d57bb --- /dev/null +++ b/keyboards/momokai/aurora/keymaps/via/keymap.c @@ -0,0 +1,18 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_MUTE, + KC_Z, KC_X, KC_C, + KC_GRV, KC_ESC, KC_F2 + ), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, +}; +#endif \ No newline at end of file diff --git a/keyboards/momokai/aurora/keymaps/via/rules.mk b/keyboards/momokai/aurora/keymaps/via/rules.mk new file mode 100644 index 0000000000..293c5ffdeb --- /dev/null +++ b/keyboards/momokai/aurora/keymaps/via/rules.mk @@ -0,0 +1,4 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes + +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/momokai/aurora/readme.md b/keyboards/momokai/aurora/readme.md new file mode 100644 index 0000000000..7bbf885bba --- /dev/null +++ b/keyboards/momokai/aurora/readme.md @@ -0,0 +1,24 @@ +# Momokai Aurora + +A 6 key keypad with a rotary encoder + +* Keyboard Maintainer: [peepeetee](https://github.com/peepeetee) +* Hardware Supported: Aurora +* Hardware Availability: [Momokai](https://www.momokai.com/) + +Make example for this keyboard (after setting up your build environment): + + make momokai/aurora:default + +Flashing example for this keyboard: + + make momokai/aurora:default:flash + +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). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Bootmagic reset**: Hold down the key at (1,0) in the matrix (the top left physical key) and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/momokai/aurora/rules.mk b/keyboards/momokai/aurora/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/momokai/aurora/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file From 29ffe804b8edc1d1f896a57856752c56e3f0795d Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Thu, 21 Sep 2023 03:10:59 +0100 Subject: [PATCH 106/496] Modernize `dactyl_manuform/dmote` keyboard (#20427) Co-authored-by: Ryan --- data/mappings/keyboard_aliases.hjson | 3 + .../dactyl_manuform/dmote/62key/config.h | 5 - .../dmote/62key/keymaps/default/config.h | 3 - .../dactyl_manuform/dmote/62key/rules.mk | 5 - .../handwired/dactyl_manuform/dmote/readme.md | 16 ---- keyboards/handwired/dmote/config.h | 23 +++++ .../dmote/62key => dmote}/info.json | 90 ++++++++++-------- .../62key => dmote}/keymaps/default/keymap.c | 93 +++++++++---------- keyboards/handwired/dmote/readme.md | 29 ++++++ keyboards/handwired/dmote/rules.mk | 1 + 10 files changed, 148 insertions(+), 120 deletions(-) delete mode 100644 keyboards/handwired/dactyl_manuform/dmote/62key/config.h delete mode 100644 keyboards/handwired/dactyl_manuform/dmote/62key/keymaps/default/config.h delete mode 100644 keyboards/handwired/dactyl_manuform/dmote/62key/rules.mk delete mode 100644 keyboards/handwired/dactyl_manuform/dmote/readme.md create mode 100644 keyboards/handwired/dmote/config.h rename keyboards/handwired/{dactyl_manuform/dmote/62key => dmote}/info.json (89%) rename keyboards/handwired/{dactyl_manuform/dmote/62key => dmote}/keymaps/default/keymap.c (55%) create mode 100644 keyboards/handwired/dmote/readme.md create mode 100644 keyboards/handwired/dmote/rules.mk diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 0d1f65d8b9..294e7ba094 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -202,6 +202,9 @@ "handwired/dactyl_manuform/6x6_kinesis": { "target": "handwired/dactyl_kinesis" }, + "handwired/dactyl_manuform/dmote/62key": { + "target": "handwired/dmote" + }, "handwired/ferris": { "target": "ferris/0_1" }, diff --git a/keyboards/handwired/dactyl_manuform/dmote/62key/config.h b/keyboards/handwired/dactyl_manuform/dmote/62key/config.h deleted file mode 100644 index e8bbf91d08..0000000000 --- a/keyboards/handwired/dactyl_manuform/dmote/62key/config.h +++ /dev/null @@ -1,5 +0,0 @@ -#pragma once - -// WS2812 RGB LED, normally used to indicate keyboard state: -#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 -#define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1 diff --git a/keyboards/handwired/dactyl_manuform/dmote/62key/keymaps/default/config.h b/keyboards/handwired/dactyl_manuform/dmote/62key/keymaps/default/config.h deleted file mode 100644 index 1809262044..0000000000 --- a/keyboards/handwired/dactyl_manuform/dmote/62key/keymaps/default/config.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -#define EE_HANDS diff --git a/keyboards/handwired/dactyl_manuform/dmote/62key/rules.mk b/keyboards/handwired/dactyl_manuform/dmote/62key/rules.mk deleted file mode 100644 index a6a97a5c8e..0000000000 --- a/keyboards/handwired/dactyl_manuform/dmote/62key/rules.mk +++ /dev/null @@ -1,5 +0,0 @@ -# Build-process overrides for the DMOTE. -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -RGBLIGHT_ENABLE = yes # Needed for the C linker with lighting control. -COMMAND_ENABLE = no # Not a good combo with Space Cadet shift. diff --git a/keyboards/handwired/dactyl_manuform/dmote/readme.md b/keyboards/handwired/dactyl_manuform/dmote/readme.md deleted file mode 100644 index 7aff2df524..0000000000 --- a/keyboards/handwired/dactyl_manuform/dmote/readme.md +++ /dev/null @@ -1,16 +0,0 @@ -DMOTE -====== - -The “Dactyl-ManuForm: Opposable Thumb Edition” is made from a Clojure -application maintained [here](https://github.com/veikman/dactyl-keyboard). -The application supports varied physical layouts and therefore matrices. -This physical variability is its main feature; its QMK firmware is ordinary. - -Consult the general [Dactyl-ManuForm readme](../readme.md). - -## The `62key` layout - -This folder represents the default build target of the Clojure application -as of its version 0.4.0. The default keymap for this layout has a QWERTY base -layer but is intended for running Colemak on the OS side with the i3 tiling -window manager. It’s also got a layer that forces Colemak from the QMK side. diff --git a/keyboards/handwired/dmote/config.h b/keyboards/handwired/dmote/config.h new file mode 100644 index 0000000000..4a2d46abe5 --- /dev/null +++ b/keyboards/handwired/dmote/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +// WS2812 RGB LED, normally used to indicate keyboard state: +#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 +#define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1 diff --git a/keyboards/handwired/dactyl_manuform/dmote/62key/info.json b/keyboards/handwired/dmote/info.json similarity index 89% rename from keyboards/handwired/dactyl_manuform/dmote/62key/info.json rename to keyboards/handwired/dmote/info.json index 8e27a68f16..fc52fee11e 100644 --- a/keyboards/handwired/dactyl_manuform/dmote/62key/info.json +++ b/keyboards/handwired/dmote/info.json @@ -1,21 +1,29 @@ { - "keyboard_name": "DMOTE (62-key)", - "manufacturer": "tshort", - "url": "", + "keyboard_name": "DMOTE", + "manufacturer": "veikman", + "url": "https://github.com/veikman/dactyl-keyboard", "maintainer": "veikman", - "processor": "atmega32u4", - "bootloader": "atmel-dfu", + "development_board": "promicro", "usb": { "vid": "0x444D", "pid": "0x3632", - "device_version": "0.0.1" + "device_version": "1.0.0" + }, + "features": { + "bootmagic": true, + "console": false, + "command": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true }, "rgblight": { "led_count": 6, "split_count": [3, 3], "animations": { - "knight": true, - "christmas": true + "christmas": true, + "knight": true } }, "ws2812": { @@ -31,7 +39,7 @@ "soft_serial_pin": "D0" }, "layouts": { - "LAYOUT_62key": { + "LAYOUT": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -40,38 +48,6 @@ {"matrix": [0, 4], "x": 4, "y": 0}, {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2}, - {"matrix": [2, 5], "x": 5, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3}, - {"matrix": [3, 1], "x": 1, "y": 3}, - {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3}, - - {"matrix": [4, 3], "x": 3, "y": 4}, - - {"matrix": [4, 2], "x": 4.5, "y": 4.5}, - {"matrix": [3, 5], "x": 5.5, "y": 4.5}, - - {"matrix": [5, 2], "x": 4, "y": 5.5}, - {"matrix": [4, 4], "x": 5, "y": 5.5}, - {"matrix": [4, 5], "x": 6, "y": 5.5}, - - {"matrix": [5, 4], "x": 4.5, "y": 6.5}, - {"matrix": [5, 5], "x": 5.5, "y": 6.5}, - {"matrix": [6, 5], "x": 9, "y": 0}, {"matrix": [6, 4], "x": 10, "y": 0}, {"matrix": [6, 3], "x": 11, "y": 0}, @@ -79,6 +55,13 @@ {"matrix": [6, 1], "x": 13, "y": 0}, {"matrix": [6, 0], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [7, 5], "x": 9, "y": 1}, {"matrix": [7, 4], "x": 10, "y": 1}, {"matrix": [7, 3], "x": 11, "y": 1}, @@ -86,6 +69,13 @@ {"matrix": [7, 1], "x": 13, "y": 1}, {"matrix": [7, 0], "x": 14, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [8, 5], "x": 9, "y": 2}, {"matrix": [8, 4], "x": 10, "y": 2}, {"matrix": [8, 3], "x": 11, "y": 2}, @@ -93,21 +83,39 @@ {"matrix": [8, 1], "x": 13, "y": 2}, {"matrix": [8, 0], "x": 14, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [9, 4], "x": 10, "y": 3}, {"matrix": [9, 3], "x": 11, "y": 3}, {"matrix": [9, 2], "x": 12, "y": 3}, {"matrix": [9, 1], "x": 13, "y": 3}, {"matrix": [9, 0], "x": 14, "y": 3}, + {"matrix": [4, 3], "x": 3, "y": 4}, + + {"matrix": [4, 2], "x": 4.5, "y": 4.5}, + {"matrix": [3, 5], "x": 5.5, "y": 4.5}, + {"matrix": [9, 5], "x": 8.5, "y": 4.5}, {"matrix": [10, 2], "x": 9.5, "y": 4.5}, {"matrix": [10, 3], "x": 11, "y": 4}, + {"matrix": [5, 2], "x": 4, "y": 5.5}, + {"matrix": [4, 4], "x": 5, "y": 5.5}, + {"matrix": [4, 5], "x": 6, "y": 5.5}, + {"matrix": [10, 5], "x": 8, "y": 5.5}, {"matrix": [10, 4], "x": 9, "y": 5.5}, {"matrix": [11, 2], "x": 10, "y": 5.5}, + {"matrix": [5, 4], "x": 4.5, "y": 6.5}, + {"matrix": [5, 5], "x": 5.5, "y": 6.5}, + {"matrix": [11, 5], "x": 8.5, "y": 6.5}, {"matrix": [11, 4], "x": 9.5, "y": 6.5} ] diff --git a/keyboards/handwired/dactyl_manuform/dmote/62key/keymaps/default/keymap.c b/keyboards/handwired/dmote/keymaps/default/keymap.c similarity index 55% rename from keyboards/handwired/dactyl_manuform/dmote/62key/keymaps/default/keymap.c rename to keyboards/handwired/dmote/keymaps/default/keymap.c index ce2c8a3702..59a5b51f1b 100644 --- a/keyboards/handwired/dactyl_manuform/dmote/62key/keymaps/default/keymap.c +++ b/keyboards/handwired/dmote/keymaps/default/keymap.c @@ -1,3 +1,21 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + #include QMK_KEYBOARD_H #include "keymap_colemak.h" @@ -7,7 +25,7 @@ enum layer_names { _QWERTY, // OS-side Colemak. Default. _COLEMAK, // Keyboard-side Colemak. Portability, emergency. - _NUMERIC + _NUMERIC, }; // Shorthand: @@ -23,58 +41,34 @@ enum layer_names { // https://github.com/qmk/qmk_firmware/pull/2055 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_62key( - KC_VOLD, KC_VOLU, CM_W, CM_F, CM_P, CM_G, - KC_TAB, CM_Q, CM_R, CM_S, CM_T, CM_D, - KC_BSPC, CM_A, CM_X, CM_C, CM_V, CM_B, - SLQ, CM_Z, KC_HOME, KC_PGUP, KC_END, - KC_PGDN, KC_ENT, KC_SPC, - SC_LSPO, KC_LGUI, KC_MINS, - BK_LCTL, KC_LALT, - - CM_J, CM_L, CM_U, CM_Y, KC_MPLY, KC_MUTE, - CM_H, CM_N, CM_E, CM_I, CM_SCLN, KC_BSLS, - CM_K, CM_M, KC_COMM, KC_DOT, CM_O, KC_QUOT, - KC_LEFT, KC_UP, KC_RGHT, KC_SLSH, SRQ, - KC_DEL, KC_ESC, KC_DOWN, - KC_EQL, LAYER_N, SC_RSPC, - KC_RALT, BK_RCTL + [_QWERTY] = LAYOUT( + KC_VOLD, KC_VOLU, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, KC_MPLY, KC_MUTE, + KC_TAB, CM_Q, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_SCLN, KC_BSLS, + KC_BSPC, CM_A, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, KC_COMM, KC_DOT, CM_O, KC_QUOT, + SLQ, CM_Z, KC_HOME, KC_PGUP, KC_END, KC_LEFT, KC_UP, KC_RGHT, KC_SLSH, SRQ, + KC_PGDN, KC_ENT, KC_SPC, KC_DEL, KC_ESC, KC_DOWN, + SC_LSPO, KC_LGUI, KC_MINS, KC_EQL, LAYER_N, SC_RSPC, + BK_LCTL, KC_LALT, KC_RALT, BK_RCTL ), - [_COLEMAK] = LAYOUT_62key( - _______, _______, KC_W, KC_F, KC_P, KC_G, - _______, KC_Q, KC_R, KC_S, KC_T, KC_D, - _______, KC_A, KC_X, KC_C, KC_V, KC_B, - _______, KC_Z, _______, _______, _______, - _______, _______, _______, - _______, _______, _______, - _______, _______, - - KC_J, KC_L, KC_U, KC_Y, _______, _______, - KC_H, KC_N, KC_E, KC_I, KC_SCLN, _______, - KC_K, KC_M, _______, _______, KC_O, _______, - _______, _______, _______, _______, _______, - _______, _______, _______, - _______, _______, _______, - _______, _______ + [_COLEMAK] = LAYOUT( + _______, _______, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, _______, _______, + _______, KC_Q, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_SCLN, _______, + _______, KC_A, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, _______, _______, KC_O, _______, + _______, KC_Z, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ ), - [_NUMERIC] = LAYOUT_62key( - LAYER_C, KC_INS, KC_F2, KC_F3, KC_F4, KC_F5, - KC_F12, KC_F1, KC_2, KC_3, KC_4, KC_5, - _______, KC_1, KC_AT, KC_HASH, KC_DLR, KC_PERC, - KC_GRV, KC_EXLM, KC_BTN1, KC_WH_U, KC_BTN2, - KC_WH_D, RGB_MOD, _______, - _______, _______, EMDASH, - _______, _______, - - KC_F6, KC_F7, KC_F8, KC_F9, QK_BOOT, KC_WAKE, // * - KC_6, KC_7, KC_8, KC_9, KC_F10, KC_F11, - KC_CIRC, KC_AMPR, KC_ASTR, KC_APP, KC_0, PASTE, - KC_MS_L, KC_MS_U, KC_MS_R, KC_PSCR, RGB_TOG, - KC_ACL1, KC_ACL2, KC_MS_D, - KC_ACL0, _______, _______, - _______, _______ + [_NUMERIC] = LAYOUT( + LAYER_C, KC_INS, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, QK_BOOT, KC_WAKE, // * + KC_F12, KC_F1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_F10, KC_F11, + _______, KC_1, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_APP, KC_0, PASTE, + KC_GRV, KC_EXLM, KC_BTN1, KC_WH_U, KC_BTN2, KC_MS_L, KC_MS_U, KC_MS_R, KC_PSCR, RGB_TOG, + KC_WH_D, RGB_MOD, _______, KC_ACL1, KC_ACL2, KC_MS_D, + _______, _______, EMDASH, KC_ACL0, _______, _______, + _______, _______, _______, _______ ) }; @@ -82,7 +76,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Debian 10 was seeing duplicate keypress and release events for sleep // (regardless of i3 binding), which ruined the function. - /* The rest is all about lighting control. The logic here represents a pretty poor compromise solution between the diff --git a/keyboards/handwired/dmote/readme.md b/keyboards/handwired/dmote/readme.md new file mode 100644 index 0000000000..9b6ff3a9f4 --- /dev/null +++ b/keyboards/handwired/dmote/readme.md @@ -0,0 +1,29 @@ +# DMOTE + +![DMOTE](https://i.imgur.com/JYkB6LBh.jpg) + +The “**D**actyl-**M**anuForm: **O**pposable **T**humb **E**dition” is made from a Clojure +application maintained [here](https://github.com/veikman/dactyl-keyboard). +The application supports varied physical layouts and therefore matrices. +This physical variability is its main feature; its QMK firmware is ordinary. + +* Keyboard Maintainer: [Viktor Eikman](https://github.com/veikman/) +* Hardware Supported: Pro Micro and clones + +Make example for this keyboard (after setting up your build environment): + + make handwired/dmote:default + +Flashing example for this keyboard: + + make handwired/dmote:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/dmote/rules.mk b/keyboards/handwired/dmote/rules.mk new file mode 100644 index 0000000000..876618b9d1 --- /dev/null +++ b/keyboards/handwired/dmote/rules.mk @@ -0,0 +1 @@ +# File is intentionally blank From 22c576b40b528fbea432321f9ec279b3fd5871af Mon Sep 17 00:00:00 2001 From: Dan Ford Date: Wed, 20 Sep 2023 19:11:24 -0700 Subject: [PATCH 107/496] [Keyboard] add Quokka keyboard (#20979) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/quokka/config.h | 34 ++++++ keyboards/quokka/halconf.h | 23 ++++ keyboards/quokka/info.json | 121 ++++++++++++++++++++++ keyboards/quokka/keymaps/default/keymap.c | 37 +++++++ keyboards/quokka/mcuconf.h | 26 +++++ keyboards/quokka/quokka.c | 61 +++++++++++ keyboards/quokka/readme.md | 26 +++++ keyboards/quokka/rules.mk | 2 + 8 files changed, 330 insertions(+) create mode 100644 keyboards/quokka/config.h create mode 100644 keyboards/quokka/halconf.h create mode 100644 keyboards/quokka/info.json create mode 100644 keyboards/quokka/keymaps/default/keymap.c create mode 100644 keyboards/quokka/mcuconf.h create mode 100644 keyboards/quokka/quokka.c create mode 100644 keyboards/quokka/readme.md create mode 100644 keyboards/quokka/rules.mk diff --git a/keyboards/quokka/config.h b/keyboards/quokka/config.h new file mode 100644 index 0000000000..6cacf0d545 --- /dev/null +++ b/keyboards/quokka/config.h @@ -0,0 +1,34 @@ +/* +Copyright 2023 @dlford +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 150U + +#define WS2812_PIO_USE_PIO1 +#define RGB_MATRIX_LED_COUNT 36 + +#define I2C_DRIVER I2CD1 +#define I2C1_SDA_PIN GP2 +#define I2C1_SCL_PIN GP3 +#define OLED_DISPLAY_128X64 + +#define AUDIO_PIN GP9 +#define AUDIO_PWM_DRIVER PWMD4 +#define AUDIO_PWM_CHANNEL RP2040_PWM_CHANNEL_B + +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_PIO_USE_PIO0 +#define SERIAL_USART_RX_PIN GP1 diff --git a/keyboards/quokka/halconf.h b/keyboards/quokka/halconf.h new file mode 100644 index 0000000000..1ec46d2b15 --- /dev/null +++ b/keyboards/quokka/halconf.h @@ -0,0 +1,23 @@ +/* +Copyright 2023 @dlford + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define HAL_USE_PWM TRUE +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/quokka/info.json b/keyboards/quokka/info.json new file mode 100644 index 0000000000..86037222bb --- /dev/null +++ b/keyboards/quokka/info.json @@ -0,0 +1,121 @@ +{ + "manufacturer": "dlford", + "keyboard_name": "Quokka", + "maintainer": "dlford", + "bootloader": "rp2040", + "build": { + "lto": true + }, + "diode_direction": "ROW2COL", + "features": { + "audio": true, + "extrakey": true, + "lto": true, + "oled": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP8", "GP7", "GP6", "GP5", "GP4"], + "rows": ["GP10", "GP19", "GP20", "GP18"] + }, + "processor": "RP2040", + "rgb_matrix": { + "center_point": [133, 54], + "driver": "ws2812", + "layout": [ + { "flags": 4, "matrix": [3, 4], "x": 122, "y": 85 }, + { "flags": 4, "matrix": [3, 3], "x": 102, "y": 85 }, + { "flags": 4, "matrix": [3, 2], "x": 81, "y": 85 }, + { "flags": 4, "matrix": [2, 4], "x": 102, "y": 64 }, + { "flags": 4, "matrix": [1, 4], "x": 102, "y": 43 }, + { "flags": 4, "matrix": [0, 4], "x": 102, "y": 21 }, + { "flags": 4, "matrix": [0, 3], "x": 81, "y": 21 }, + { "flags": 4, "matrix": [1, 3], "x": 81, "y": 43 }, + { "flags": 4, "matrix": [2, 3], "x": 81, "y": 64 }, + { "flags": 4, "matrix": [2, 2], "x": 61, "y": 64 }, + { "flags": 4, "matrix": [1, 2], "x": 61, "y": 43 }, + { "flags": 4, "matrix": [0, 2], "x": 61, "y": 21 }, + { "flags": 4, "matrix": [0, 1], "x": 41, "y": 21 }, + { "flags": 4, "matrix": [1, 1], "x": 41, "y": 43 }, + { "flags": 4, "matrix": [2, 1], "x": 41, "y": 64 }, + { "flags": 4, "matrix": [2, 0], "x": 20, "y": 64 }, + { "flags": 4, "matrix": [1, 0], "x": 20, "y": 43 }, + { "flags": 4, "matrix": [0, 0], "x": 20, "y": 21 }, + { "flags": 4, "matrix": [7, 0], "x": 143, "y": 85 }, + { "flags": 4, "matrix": [7, 1], "x": 163, "y": 85 }, + { "flags": 4, "matrix": [7, 2], "x": 183, "y": 85 }, + { "flags": 4, "matrix": [6, 0], "x": 163, "y": 64 }, + { "flags": 4, "matrix": [5, 0], "x": 163, "y": 43 }, + { "flags": 4, "matrix": [4, 0], "x": 163, "y": 21 }, + { "flags": 4, "matrix": [4, 1], "x": 183, "y": 21 }, + { "flags": 4, "matrix": [5, 1], "x": 183, "y": 43 }, + { "flags": 4, "matrix": [6, 1], "x": 183, "y": 64 }, + { "flags": 4, "matrix": [6, 2], "x": 204, "y": 64 }, + { "flags": 4, "matrix": [5, 2], "x": 204, "y": 43 }, + { "flags": 4, "matrix": [4, 2], "x": 204, "y": 21 }, + { "flags": 4, "matrix": [4, 3], "x": 224, "y": 21 }, + { "flags": 4, "matrix": [5, 3], "x": 224, "y": 43 }, + { "flags": 4, "matrix": [6, 3], "x": 224, "y": 64 }, + { "flags": 4, "matrix": [6, 4], "x": 244, "y": 64 }, + { "flags": 4, "matrix": [5, 4], "x": 244, "y": 43 }, + { "flags": 4, "matrix": [4, 4], "x": 244, "y": 21 } + ], + "split_count": [18, 18] + }, + "split": { + "enabled": true, + "soft_serial_pin": "GP0" + }, + "url": "https://github.com/dlford/quokka", + "usb": { + "device_version": "1.0.0", + "pid": "0x3537", + "vid": "0x444D" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP29" + }, + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + { "label": "L00", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "L01", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "L02", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "L03", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "L04", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "R00", "matrix": [4, 4], "w": 1, "x": 5, "y": 0 }, + { "label": "R01", "matrix": [4, 3], "w": 1, "x": 6, "y": 0 }, + { "label": "R02", "matrix": [4, 2], "w": 1, "x": 7, "y": 0 }, + { "label": "R03", "matrix": [4, 1], "w": 1, "x": 8, "y": 0 }, + { "label": "R04", "matrix": [4, 0], "w": 1, "x": 9, "y": 0 }, + { "label": "L10", "matrix": [1, 0], "w": 1, "x": 10, "y": 0 }, + { "label": "L11", "matrix": [1, 1], "w": 1, "x": 11, "y": 0 }, + { "label": "L12", "matrix": [1, 2], "w": 1, "x": 12, "y": 0 }, + { "label": "L13", "matrix": [1, 3], "w": 1, "x": 13, "y": 0 }, + { "label": "L14", "matrix": [1, 4], "w": 1, "x": 14, "y": 0 }, + { "label": "R10", "matrix": [5, 4], "w": 1, "x": 15, "y": 0 }, + { "label": "R11", "matrix": [5, 3], "w": 1, "x": 16, "y": 0 }, + { "label": "R12", "matrix": [5, 2], "w": 1, "x": 17, "y": 0 }, + { "label": "R13", "matrix": [5, 1], "w": 1, "x": 18, "y": 0 }, + { "label": "R14", "matrix": [5, 0], "w": 1, "x": 19, "y": 0 }, + { "label": "L20", "matrix": [2, 0], "w": 1, "x": 20, "y": 0 }, + { "label": "L21", "matrix": [2, 1], "w": 1, "x": 21, "y": 0 }, + { "label": "L22", "matrix": [2, 2], "w": 1, "x": 22, "y": 0 }, + { "label": "L23", "matrix": [2, 3], "w": 1, "x": 23, "y": 0 }, + { "label": "L24", "matrix": [2, 4], "w": 1, "x": 24, "y": 0 }, + { "label": "R20", "matrix": [6, 4], "w": 1, "x": 25, "y": 0 }, + { "label": "R21", "matrix": [6, 3], "w": 1, "x": 26, "y": 0 }, + { "label": "R22", "matrix": [6, 2], "w": 1, "x": 27, "y": 0 }, + { "label": "R23", "matrix": [6, 1], "w": 1, "x": 28, "y": 0 }, + { "label": "R24", "matrix": [6, 0], "w": 1, "x": 29, "y": 0 }, + { "label": "L32", "matrix": [3, 2], "w": 1, "x": 30, "y": 0 }, + { "label": "L33", "matrix": [3, 3], "w": 1, "x": 31, "y": 0 }, + { "label": "L34", "matrix": [3, 4], "w": 1, "x": 32, "y": 0 }, + { "label": "R30", "matrix": [7, 4], "w": 1, "x": 33, "y": 0 }, + { "label": "R31", "matrix": [7, 3], "w": 1, "x": 34, "y": 0 }, + { "label": "R32", "matrix": [7, 2], "w": 1, "x": 35, "y": 0 } + ] + } + } +} diff --git a/keyboards/quokka/keymaps/default/keymap.c b/keyboards/quokka/keymaps/default/keymap.c new file mode 100644 index 0000000000..77375cd8a1 --- /dev/null +++ b/keyboards/quokka/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* +Copyright 2023 @dlford + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + + +// clang-format off + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x5_3( +// |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, +// |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, +// |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, +// |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + KC_ESC, KC_SPC, KC_BSPC, KC_DEL, KC_TAB, KC_ENT +// |--------+--------+--------| |--------+--------+--------| + ), +}; + +// clang-format on diff --git a/keyboards/quokka/mcuconf.h b/keyboards/quokka/mcuconf.h new file mode 100644 index 0000000000..32dbaa6c48 --- /dev/null +++ b/keyboards/quokka/mcuconf.h @@ -0,0 +1,26 @@ +/* +Copyright 2023 @dlford + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include_next + +#undef RP_PWM_USE_PWM4 +#define RP_PWM_USE_PWM4 TRUE + +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/quokka/quokka.c b/keyboards/quokka/quokka.c new file mode 100644 index 0000000000..2225866b8c --- /dev/null +++ b/keyboards/quokka/quokka.c @@ -0,0 +1,61 @@ +/* +Copyright 2023 @dlford + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "quantum.h" + +#ifdef OLED_ENABLE +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + +// Prints out logo +static void oled_render_logo(void) { + static const char PROGMEM raw_logo[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 224, 224, 96, 96, 96, 96, 96, 96, 128, 192, 224, 224, 240, 240, 240, 224, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 240, 60, 30, 7, 1, 192, 224, 224, 240, 240, 240, 0, 255, 255, 255, 255, 249, 241, 241, 7, 7, 55, 247, 192, 0, 0, 0, 0, 224, 224, 224, 224, 224, 192, 192, 192, 0, 192, 224, 224, 224, 0, 0, 0, 0, 224, 224, 96, 96, 96, 96, 0, 192, 224, 96, 96, 96, 224, 192, 192, 192, 224, 96, 96, 96, 224, 192, 0, 224, 224, 96, 96, 96, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 15, 60, 240, 224, 134, 31, 63, 127, 255, 249, 248, 248, 127, 127, 63, 31, 0, 0, 128, 224, 248, 60, 15, 3, 1, 0, 0, 0, 127, 127, 127, 127, 113, 127, 127, 63, 31, 31, 63, 127, 127, 112, 112, 112, 112, 127, 127, 6, 6, 6, 6, 0, 127, 127, 96, 96, 96, 127, 127, 63, 127, 127, 12, 12, 60, 127, 103, 0, 127, 127, 96, 96, 96, 127, 63, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 14, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 14, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + oled_write_raw_P(raw_logo, sizeof(raw_logo)); +} + +// Render logo on both displays +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + oled_render_logo(); + return true; +} +#endif +// clang-format off + +#ifdef SWAP_HANDS_ENABLE +__attribute__ ((weak)) +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + // Left + {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}}, + {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}}, + {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}}, + {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}}, + // Right + {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}}, + {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}}, + {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}}, + {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}} +}; +#endif + +// clang-format on diff --git a/keyboards/quokka/readme.md b/keyboards/quokka/readme.md new file mode 100644 index 0000000000..6acf5bc462 --- /dev/null +++ b/keyboards/quokka/readme.md @@ -0,0 +1,26 @@ +# Quokka + +![Quokka](https://i.imgur.com/zqbb56ch.jpeg) + +A split ortholinear keyboard designed for the small handed. + +* Keyboard Maintainer: [dlford](https://github.com/dlford/), [dlford.io](https://www.dlford.io) +* Hardware Supported: Quokka PCB, Adafruit KB2040 +* Hardware Availability: [PCB, Case Data, and Build Guide](https://github.com/dlford/quokka) + +Make example for this keyboard (after setting up your build environment): + + make quokka:default + +Flashing example for this keyboard: + + make quokka:default:flash + +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). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Physical reset button**: Quickly double press and release the reset button on the the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/quokka/rules.mk b/keyboards/quokka/rules.mk new file mode 100644 index 0000000000..c53818be73 --- /dev/null +++ b/keyboards/quokka/rules.mk @@ -0,0 +1,2 @@ +AUDIO_DRIVER = pwm_hardware +SERIAL_DRIVER = vendor From 6dc482b19729e86eb342ccd7d9685b828ed4365f Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Thu, 21 Sep 2023 03:14:00 +0100 Subject: [PATCH 108/496] apply 66_(ansi|iso) to keyboards (#21834) --- keyboards/clueboard/66_hotswap/gen1/info.json | 2 +- keyboards/handwired/3dp660/info.json | 1 + keyboards/hineybush/h660s/info.json | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/keyboards/clueboard/66_hotswap/gen1/info.json b/keyboards/clueboard/66_hotswap/gen1/info.json index e497594685..81a23f7d87 100644 --- a/keyboards/clueboard/66_hotswap/gen1/info.json +++ b/keyboards/clueboard/66_hotswap/gen1/info.json @@ -28,7 +28,7 @@ "pid": "0x2391", "vid": "0xC1ED" }, - "community_layouts": [], + "community_layouts": ["66_ansi"], "layout_aliases": { "LAYOUT": "LAYOUT_all" }, diff --git a/keyboards/handwired/3dp660/info.json b/keyboards/handwired/3dp660/info.json index 6d380fc3c6..82132e4473 100644 --- a/keyboards/handwired/3dp660/info.json +++ b/keyboards/handwired/3dp660/info.json @@ -18,6 +18,7 @@ "diode_direction": "COL2ROW", "processor": "atmega32u4", "bootloader": "halfkay", + "community_layouts": ["66_ansi"], "layouts": { "LAYOUT_66_ansi": { "layout": [ diff --git a/keyboards/hineybush/h660s/info.json b/keyboards/hineybush/h660s/info.json index b99ab32975..6c5d07cc83 100644 --- a/keyboards/hineybush/h660s/info.json +++ b/keyboards/hineybush/h660s/info.json @@ -36,6 +36,7 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", + "community_layouts": ["66_ansi", "66_iso"], "layouts": { "LAYOUT_66_ansi": { "layout": [ From db68a95caea7ee65c6b91603ad6b11928a579953 Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 21 Sep 2023 12:16:17 +1000 Subject: [PATCH 109/496] LED/RGB Matrix: prefix driver defines (#22088) --- builddefs/common_features.mk | 40 ++++++++-------- drivers/led/issi/is31flcommon.h | 8 ++-- quantum/led_matrix/led_matrix.h | 6 +-- quantum/led_matrix/led_matrix_drivers.c | 26 +++++------ quantum/rgb_matrix/rgb_matrix.h | 18 +++---- quantum/rgb_matrix/rgb_matrix_drivers.c | 62 ++++++++++++------------- 6 files changed, 80 insertions(+), 80 deletions(-) diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 58017ad1dd..2dd759973d 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -361,6 +361,7 @@ ifeq ($(strip $(LED_MATRIX_ENABLE)), yes) $(call CATASTROPHIC_ERROR,Invalid LED_MATRIX_DRIVER,LED_MATRIX_DRIVER="$(LED_MATRIX_DRIVER)" is not a valid matrix type) endif OPT_DEFS += -DLED_MATRIX_ENABLE + OPT_DEFS += -DLED_MATRIX_$(strip $(shell echo $(LED_MATRIX_DRIVER) | tr '[:lower:]' '[:upper:]')) ifneq (,$(filter $(MCU), atmega16u2 atmega32u2 at90usb162)) # ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines OPT_DEFS += -DLIB8_ATTINY @@ -376,42 +377,42 @@ endif CIE1931_CURVE := yes ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3731) - OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE + OPT_DEFS += -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3731-simple.c QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3742a) - OPT_DEFS += -DIS31FLCOMMON -DIS31FL3742A -DSTM32_I2C -DHAL_USE_I2C=TRUE + OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3743a) - OPT_DEFS += -DIS31FLCOMMON -DIS31FL3743A -DSTM32_I2C -DHAL_USE_I2C=TRUE + OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3745) - OPT_DEFS += -DIS31FLCOMMON -DIS31FL3745 -DSTM32_I2C -DHAL_USE_I2C=TRUE + OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3746a) - OPT_DEFS += -DIS31FLCOMMON -DIS31FL3746A -DSTM32_I2C -DHAL_USE_I2C=TRUE + OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(LED_MATRIX_DRIVER)), ckled2001) - OPT_DEFS += -DCKLED2001 -DSTM32_I2C -DHAL_USE_I2C=TRUE + OPT_DEFS += -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led SRC += ckled2001-simple.c QUANTUM_LIB_SRC += i2c_master.c @@ -432,6 +433,7 @@ ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) $(call CATASTROPHIC_ERROR,Invalid RGB_MATRIX_DRIVER,RGB_MATRIX_DRIVER="$(RGB_MATRIX_DRIVER)" is not a valid matrix type) endif OPT_DEFS += -DRGB_MATRIX_ENABLE + OPT_DEFS += -DRGB_MATRIX_$(strip $(shell echo $(RGB_MATRIX_DRIVER) | tr '[:lower:]' '[:upper:]')) ifneq (,$(filter $(MCU), atmega16u2 atmega32u2 at90usb162)) # ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines OPT_DEFS += -DLIB8_ATTINY @@ -448,96 +450,94 @@ endif RGB_KEYCODES_ENABLE := yes ifeq ($(strip $(RGB_MATRIX_DRIVER)), aw20216s) - OPT_DEFS += -DAW20216S -DSTM32_SPI -DHAL_USE_SPI=TRUE + OPT_DEFS += -DHAL_USE_SPI=TRUE COMMON_VPATH += $(DRIVER_PATH)/led SRC += aw20216s.c QUANTUM_LIB_SRC += spi_master.c endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3218) - OPT_DEFS += -DIS31FL3218 -DSTM32_I2C -DHAL_USE_I2C=TRUE + OPT_DEFS += -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3218.c QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3731) - OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE + OPT_DEFS += -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3731.c QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3733) - OPT_DEFS += -DIS31FL3733 -DSTM32_I2C -DHAL_USE_I2C=TRUE + OPT_DEFS += -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3733.c QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3736) - OPT_DEFS += -DIS31FL3736 -DSTM32_I2C -DHAL_USE_I2C=TRUE + OPT_DEFS += -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3736.c QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3737) - OPT_DEFS += -DIS31FL3737 -DSTM32_I2C -DHAL_USE_I2C=TRUE + OPT_DEFS += -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3737.c QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3741) - OPT_DEFS += -DIS31FL3741 -DSTM32_I2C -DHAL_USE_I2C=TRUE + OPT_DEFS += -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3741.c QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3742a) - OPT_DEFS += -DIS31FLCOMMON -DIS31FL3742A -DSTM32_I2C -DHAL_USE_I2C=TRUE + OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3743a) - OPT_DEFS += -DIS31FLCOMMON -DIS31FL3743A -DSTM32_I2C -DHAL_USE_I2C=TRUE + OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3745) - OPT_DEFS += -DIS31FLCOMMON -DIS31FL3745 -DSTM32_I2C -DHAL_USE_I2C=TRUE + OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3746a) - OPT_DEFS += -DIS31FLCOMMON -DIS31FL3746A -DSTM32_I2C -DHAL_USE_I2C=TRUE + OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), ckled2001) - OPT_DEFS += -DCKLED2001 -DSTM32_I2C -DHAL_USE_I2C=TRUE + OPT_DEFS += -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led SRC += ckled2001.c QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), ws2812) - OPT_DEFS += -DWS2812 WS2812_DRIVER_REQUIRED := yes endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), apa102) - OPT_DEFS += -DAPA102 APA102_DRIVER_REQUIRED := yes endif diff --git a/drivers/led/issi/is31flcommon.h b/drivers/led/issi/is31flcommon.h index 4b3add558b..93533e14de 100644 --- a/drivers/led/issi/is31flcommon.h +++ b/drivers/led/issi/is31flcommon.h @@ -25,13 +25,13 @@ #include "progmem.h" // Which variant header file to use -#ifdef IS31FL3742A +#if defined(LED_MATRIX_IS31FL3742A) || defined(RGB_MATRIX_IS31FL3742A) # include "is31fl3742.h" -#elif defined(IS31FL3743A) +#elif defined(LED_MATRIX_IS31FL3743A) || defined(RGB_MATRIX_IS31FL3743A) # include "is31fl3743.h" -#elif defined(IS31FL3745) +#elif defined(LED_MATRIX_IS31FL3745) || defined(RGB_MATRIX_IS31FL3745) # include "is31fl3745.h" -#elif defined(IS31FL3746A) +#elif defined(LED_MATRIX_IS31FL3746A) || defined(RGB_MATRIX_IS31FL3746A) # include "is31fl3746.h" #endif diff --git a/quantum/led_matrix/led_matrix.h b/quantum/led_matrix/led_matrix.h index c2533ca49c..d654fd5757 100644 --- a/quantum/led_matrix/led_matrix.h +++ b/quantum/led_matrix/led_matrix.h @@ -25,15 +25,15 @@ #include "led_matrix_types.h" #include "keyboard.h" -#ifdef IS31FL3731 +#ifdef LED_MATRIX_IS31FL3731 # include "is31fl3731-simple.h" #elif defined(IS31FLCOMMON) # include "is31flcommon.h" #endif -#ifdef IS31FL3733 +#ifdef LED_MATRIX_IS31FL3733 # include "is31fl3733-simple.h" #endif -#ifdef CKLED2001 +#ifdef LED_MATRIX_CKLED2001 # include "ckled2001-simple.h" #endif diff --git a/quantum/led_matrix/led_matrix_drivers.c b/quantum/led_matrix/led_matrix_drivers.c index 13c8935d11..77c5aa3d0a 100644 --- a/quantum/led_matrix/led_matrix_drivers.c +++ b/quantum/led_matrix/led_matrix_drivers.c @@ -25,13 +25,13 @@ * in their own files. */ -#if defined(IS31FL3731) || defined(IS31FL3733) || defined(IS31FLCOMMON) || defined(CKLED2001) +#if defined(LED_MATRIX_IS31FL3731) || defined(LED_MATRIX_IS31FL3733) || defined(IS31FLCOMMON) || defined(LED_MATRIX_CKLED2001) # include "i2c_master.h" static void init(void) { i2c_init(); -# if defined(IS31FL3731) +# if defined(LED_MATRIX_IS31FL3731) is31fl3731_init(LED_DRIVER_ADDR_1); # if defined(LED_DRIVER_ADDR_2) is31fl3731_init(LED_DRIVER_ADDR_2); @@ -43,7 +43,7 @@ static void init(void) { # endif # endif -# elif defined(IS31FL3733) +# elif defined(LED_MATRIX_IS31FL3733) # if !defined(LED_DRIVER_SYNC_1) # define LED_DRIVER_SYNC_1 0 # endif @@ -78,7 +78,7 @@ static void init(void) { # endif # endif # endif -# elif defined(CKLED2001) +# elif defined(LED_MATRIX_CKLED2001) # if defined(LED_DRIVER_SHUTDOWN_PIN) setPinOutput(LED_DRIVER_SHUTDOWN_PIN); writePinHigh(LED_DRIVER_SHUTDOWN_PIN); @@ -97,19 +97,19 @@ static void init(void) { # endif for (int index = 0; index < LED_MATRIX_LED_COUNT; index++) { -# if defined(IS31FL3731) +# if defined(LED_MATRIX_IS31FL3731) is31fl3731_set_led_control_register(index, true); -# elif defined(IS31FL3733) +# elif defined(LED_MATRIX_IS31FL3733) is31fl3733_set_led_control_register(index, true); # elif defined(IS31FLCOMMON) IS31FL_simple_set_scaling_buffer(index, true); -# elif defined(CKLED2001) +# elif defined(LED_MATRIX_CKLED2001) ckled2001_set_led_control_register(index, true); # endif } // This actually updates the LED drivers -# if defined(IS31FL3731) +# if defined(LED_MATRIX_IS31FL3731) is31fl3731_update_led_control_registers(LED_DRIVER_ADDR_1, 0); # if defined(LED_DRIVER_ADDR_2) is31fl3731_update_led_control_registers(LED_DRIVER_ADDR_2, 1); @@ -121,7 +121,7 @@ static void init(void) { # endif # endif -# elif defined(IS31FL3733) +# elif defined(LED_MATRIX_IS31FL3733) is31fl3733_update_led_control_registers(LED_DRIVER_ADDR_1, 0); # if defined(LED_DRIVER_ADDR_2) is31fl3733_update_led_control_registers(LED_DRIVER_ADDR_2, 1); @@ -147,7 +147,7 @@ static void init(void) { # endif # endif # endif -# elif defined(CKLED2001) +# elif defined(LED_MATRIX_CKLED2001) ckled2001_update_led_control_registers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) ckled2001_update_led_control_registers(DRIVER_ADDR_2, 1); @@ -161,7 +161,7 @@ static void init(void) { # endif } -# if defined(IS31FL3731) +# if defined(LED_MATRIX_IS31FL3731) static void flush(void) { is31fl3731_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); # if defined(LED_DRIVER_ADDR_2) @@ -182,7 +182,7 @@ const led_matrix_driver_t led_matrix_driver = { .set_value_all = is31fl3731_set_value_all, }; -# elif defined(IS31FL3733) +# elif defined(LED_MATRIX_IS31FL3733) static void flush(void) { is31fl3733_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); # if defined(LED_DRIVER_ADDR_2) @@ -223,7 +223,7 @@ const led_matrix_driver_t led_matrix_driver = { .set_value = IS31FL_simple_set_brightness, .set_value_all = IS31FL_simple_set_brigntness_all, }; -# elif defined(CKLED2001) +# elif defined(LED_MATRIX_CKLED2001) static void flush(void) { ckled2001_update_pwm_buffers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) diff --git a/quantum/rgb_matrix/rgb_matrix.h b/quantum/rgb_matrix/rgb_matrix.h index 377f6658bb..e4807ee54a 100644 --- a/quantum/rgb_matrix/rgb_matrix.h +++ b/quantum/rgb_matrix/rgb_matrix.h @@ -24,25 +24,25 @@ #include "color.h" #include "keyboard.h" -#if defined(IS31FL3218) +#if defined(RGB_MATRIX_IS31FL3218) # include "is31fl3218.h" -#elif defined(IS31FL3731) +#elif defined(RGB_MATRIX_IS31FL3731) # include "is31fl3731.h" -#elif defined(IS31FL3733) +#elif defined(RGB_MATRIX_IS31FL3733) # include "is31fl3733.h" -#elif defined(IS31FL3736) +#elif defined(RGB_MATRIX_IS31FL3736) # include "is31fl3736.h" -#elif defined(IS31FL3737) +#elif defined(RGB_MATRIX_IS31FL3737) # include "is31fl3737.h" -#elif defined(IS31FL3741) +#elif defined(RGB_MATRIX_IS31FL3741) # include "is31fl3741.h" #elif defined(IS31FLCOMMON) # include "is31flcommon.h" -#elif defined(CKLED2001) +#elif defined(RGB_MATRIX_CKLED2001) # include "ckled2001.h" -#elif defined(AW20216S) +#elif defined(RGB_MATRIX_AW20216S) # include "aw20216s.h" -#elif defined(WS2812) +#elif defined(RGB_MATRIX_WS2812) # include "ws2812.h" #endif diff --git a/quantum/rgb_matrix/rgb_matrix_drivers.c b/quantum/rgb_matrix/rgb_matrix_drivers.c index a81edce180..368459db40 100644 --- a/quantum/rgb_matrix/rgb_matrix_drivers.c +++ b/quantum/rgb_matrix/rgb_matrix_drivers.c @@ -24,7 +24,7 @@ * be here if shared between boards. */ -#if defined(IS31FL3218) || defined(IS31FL3731) || defined(IS31FL3733) || defined(IS31FL3736) || defined(IS31FL3737) || defined(IS31FL3741) || defined(IS31FLCOMMON) || defined(CKLED2001) +#if defined(RGB_MATRIX_IS31FL3218) || defined(RGB_MATRIX_IS31FL3731) || defined(RGB_MATRIX_IS31FL3733) || defined(RGB_MATRIX_IS31FL3736) || defined(RGB_MATRIX_IS31FL3737) || defined(RGB_MATRIX_IS31FL3741) || defined(IS31FLCOMMON) || defined(RGB_MATRIX_CKLED2001) # include "i2c_master.h" // TODO: Remove this at some later date @@ -37,10 +37,10 @@ static void init(void) { i2c_init(); -# if defined(IS31FL3218) +# if defined(RGB_MATRIX_IS31FL3218) is31fl3218_init(); -# elif defined(IS31FL3731) +# elif defined(RGB_MATRIX_IS31FL3731) is31fl3731_init(DRIVER_ADDR_1); # if defined(DRIVER_ADDR_2) is31fl3731_init(DRIVER_ADDR_2); @@ -52,7 +52,7 @@ static void init(void) { # endif # endif -# elif defined(IS31FL3733) +# elif defined(RGB_MATRIX_IS31FL3733) # if !defined(DRIVER_SYNC_1) # define DRIVER_SYNC_1 0 # endif @@ -76,7 +76,7 @@ static void init(void) { # endif # endif -# elif defined(IS31FL3736) +# elif defined(RGB_MATRIX_IS31FL3736) is31fl3736_init(DRIVER_ADDR_1); # if defined(DRIVER_ADDR_2) is31fl3736_init(DRIVER_ADDR_2); @@ -88,7 +88,7 @@ static void init(void) { # endif # endif -# elif defined(IS31FL3737) +# elif defined(RGB_MATRIX_IS31FL3737) is31fl3737_init(DRIVER_ADDR_1); # if defined(DRIVER_ADDR_2) is31fl3737_init(DRIVER_ADDR_2); @@ -100,7 +100,7 @@ static void init(void) { # endif # endif -# elif defined(IS31FL3741) +# elif defined(RGB_MATRIX_IS31FL3741) is31fl3741_init(DRIVER_ADDR_1); # if defined(DRIVER_ADDR_2) is31fl3741_init(DRIVER_ADDR_2); @@ -124,7 +124,7 @@ static void init(void) { # endif # endif -# elif defined(CKLED2001) +# elif defined(RGB_MATRIX_CKLED2001) ckled2001_init(DRIVER_ADDR_1); # if defined(DRIVER_ADDR_2) ckled2001_init(DRIVER_ADDR_2); @@ -141,30 +141,30 @@ static void init(void) { bool enabled = true; // This only caches it for later -# if defined(IS31FL3218) +# if defined(RGB_MATRIX_IS31FL3218) is31fl3218_set_led_control_register(index, enabled, enabled, enabled); -# elif defined(IS31FL3731) +# elif defined(RGB_MATRIX_IS31FL3731) is31fl3731_set_led_control_register(index, enabled, enabled, enabled); -# elif defined(IS31FL3733) +# elif defined(RGB_MATRIX_IS31FL3733) is31fl3733_set_led_control_register(index, enabled, enabled, enabled); -# elif defined(IS31FL3736) +# elif defined(RGB_MATRIX_IS31FL3736) is31fl3736_set_led_control_register(index, enabled, enabled, enabled); -# elif defined(IS31FL3737) +# elif defined(RGB_MATRIX_IS31FL3737) is31fl3737_set_led_control_register(index, enabled, enabled, enabled); -# elif defined(IS31FL3741) +# elif defined(RGB_MATRIX_IS31FL3741) is31fl3741_set_led_control_register(index, enabled, enabled, enabled); # elif defined(IS31FLCOMMON) IS31FL_RGB_set_scaling_buffer(index, enabled, enabled, enabled); -# elif defined(CKLED2001) +# elif defined(RGB_MATRIX_CKLED2001) ckled2001_set_led_control_register(index, enabled, enabled, enabled); # endif } // This actually updates the LED drivers -# if defined(IS31FL3218) +# if defined(RGB_MATRIX_IS31FL3218) is31fl3218_update_led_control_registers(); -# elif defined(IS31FL3731) +# elif defined(RGB_MATRIX_IS31FL3731) is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) is31fl3731_update_led_control_registers(DRIVER_ADDR_2, 1); @@ -176,7 +176,7 @@ static void init(void) { # endif # endif -# elif defined(IS31FL3733) +# elif defined(RGB_MATRIX_IS31FL3733) is31fl3733_update_led_control_registers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) is31fl3733_update_led_control_registers(DRIVER_ADDR_2, 1); @@ -188,7 +188,7 @@ static void init(void) { # endif # endif -# elif defined(IS31FL3736) +# elif defined(RGB_MATRIX_IS31FL3736) is31fl3736_update_led_control_registers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) is31fl3736_update_led_control_registers(DRIVER_ADDR_2, 1); @@ -200,7 +200,7 @@ static void init(void) { # endif # endif -# elif defined(IS31FL3737) +# elif defined(RGB_MATRIX_IS31FL3737) is31fl3737_update_led_control_registers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) is31fl3737_update_led_control_registers(DRIVER_ADDR_2, 1); @@ -212,7 +212,7 @@ static void init(void) { # endif # endif -# elif defined(IS31FL3741) +# elif defined(RGB_MATRIX_IS31FL3741) is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) is31fl3741_update_led_control_registers(DRIVER_ADDR_2, 1); @@ -239,7 +239,7 @@ static void init(void) { # endif # endif -# elif defined(CKLED2001) +# elif defined(RGB_MATRIX_CKLED2001) ckled2001_update_led_control_registers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) ckled2001_update_led_control_registers(DRIVER_ADDR_2, 1); @@ -253,7 +253,7 @@ static void init(void) { # endif } -# if defined(IS31FL3218) +# if defined(RGB_MATRIX_IS31FL3218) static void flush(void) { is31fl3218_update_pwm_buffers(); } @@ -265,7 +265,7 @@ const rgb_matrix_driver_t rgb_matrix_driver = { .set_color_all = is31fl3218_set_color_all, }; -# elif defined(IS31FL3731) +# elif defined(RGB_MATRIX_IS31FL3731) static void flush(void) { is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) @@ -286,7 +286,7 @@ const rgb_matrix_driver_t rgb_matrix_driver = { .set_color_all = is31fl3731_set_color_all, }; -# elif defined(IS31FL3733) +# elif defined(RGB_MATRIX_IS31FL3733) static void flush(void) { is31fl3733_update_pwm_buffers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) @@ -307,7 +307,7 @@ const rgb_matrix_driver_t rgb_matrix_driver = { .set_color_all = is31fl3733_set_color_all, }; -# elif defined(IS31FL3736) +# elif defined(RGB_MATRIX_IS31FL3736) static void flush(void) { is31fl3736_update_pwm_buffers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) @@ -328,7 +328,7 @@ const rgb_matrix_driver_t rgb_matrix_driver = { .set_color_all = is31fl3736_set_color_all, }; -# elif defined(IS31FL3737) +# elif defined(RGB_MATRIX_IS31FL3737) static void flush(void) { is31fl3737_update_pwm_buffers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) @@ -349,7 +349,7 @@ const rgb_matrix_driver_t rgb_matrix_driver = { .set_color_all = is31fl3737_set_color_all, }; -# elif defined(IS31FL3741) +# elif defined(RGB_MATRIX_IS31FL3741) static void flush(void) { is31fl3741_update_pwm_buffers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) @@ -391,7 +391,7 @@ const rgb_matrix_driver_t rgb_matrix_driver = { .set_color_all = IS31FL_RGB_set_color_all, }; -# elif defined(CKLED2001) +# elif defined(RGB_MATRIX_CKLED2001) static void flush(void) { ckled2001_update_pwm_buffers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) @@ -413,7 +413,7 @@ const rgb_matrix_driver_t rgb_matrix_driver = { }; # endif -#elif defined(AW20216S) +#elif defined(RGB_MATRIX_AW20216S) # include "spi_master.h" static void init(void) { @@ -439,7 +439,7 @@ const rgb_matrix_driver_t rgb_matrix_driver = { .set_color_all = aw20216s_set_color_all, }; -#elif defined(WS2812) +#elif defined(RGB_MATRIX_WS2812) # if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_CUSTOM_DRIVER) # pragma message "Cannot use RGBLIGHT and RGB Matrix using WS2812 at the same time." # pragma message "You need to use a custom driver, or re-implement the WS2812 driver to use a different configuration." From 4629d6a6713d8daab997471bd7b7bf2c218c5b50 Mon Sep 17 00:00:00 2001 From: Joe Scotto <8194147+joe-scotto@users.noreply.github.com> Date: Wed, 20 Sep 2023 22:31:16 -0400 Subject: [PATCH 110/496] Add ScottoSlant Keyboard (#20942) Co-authored-by: Ryan --- .../scottokeebs/scottoslant/info.json | 75 +++++++++++++++++++ .../scottoslant/keymaps/default/config.h | 23 ++++++ .../scottoslant/keymaps/default/keymap.c | 45 +++++++++++ .../scottoslant/keymaps/scotto/config.h | 23 ++++++ .../scottoslant/keymaps/scotto/keymap.c | 69 +++++++++++++++++ .../scottoslant/keymaps/scotto/rules.mk | 1 + .../scottokeebs/scottoslant/readme.md | 28 +++++++ .../scottokeebs/scottoslant/rules.mk | 1 + 8 files changed, 265 insertions(+) create mode 100644 keyboards/handwired/scottokeebs/scottoslant/info.json create mode 100644 keyboards/handwired/scottokeebs/scottoslant/keymaps/default/config.h create mode 100644 keyboards/handwired/scottokeebs/scottoslant/keymaps/default/keymap.c create mode 100644 keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/config.h create mode 100644 keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/keymap.c create mode 100644 keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/rules.mk create mode 100644 keyboards/handwired/scottokeebs/scottoslant/readme.md create mode 100644 keyboards/handwired/scottokeebs/scottoslant/rules.mk diff --git a/keyboards/handwired/scottokeebs/scottoslant/info.json b/keyboards/handwired/scottokeebs/scottoslant/info.json new file mode 100644 index 0000000000..ebaa1b530c --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoslant/info.json @@ -0,0 +1,75 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "ScottoSlant", + "maintainer": "joe-scotto", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5"], + "rows": ["B1", "B3", "B2", "B6"] + }, + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0004", + "vid": "0x534B" + }, + "layouts": { + "LAYOUT": { + "layout": [ + // Row 1 + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + + // Row 2 + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [1, 6], "x": 6, "y": 1 }, + { "matrix": [1, 7], "x": 7, "y": 1 }, + { "matrix": [1, 8], "x": 8, "y": 1 }, + { "matrix": [1, 9], "x": 9, "y": 1 }, + + // Row 3 + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 7], "x": 7, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2 }, + { "matrix": [2, 9], "x": 9, "y": 2 }, + + // Row 4 + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3 }, + { "matrix": [3, 4], "x": 4, "y": 3 }, + { "matrix": [3, 6], "x": 6, "y": 3 }, + { "matrix": [3, 7], "x": 7, "y": 3 }, + { "matrix": [3, 8], "x": 8, "y": 3 } + ] + } + } +} diff --git a/keyboards/handwired/scottokeebs/scottoslant/keymaps/default/config.h b/keyboards/handwired/scottokeebs/scottoslant/keymaps/default/config.h new file mode 100644 index 0000000000..1a6512052c --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoslant/keymaps/default/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2022 Joe Scotto + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +// Define options +#define TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scottoslant/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottoslant/keymaps/default/keymap.c new file mode 100644 index 0000000000..cd70c3ddc2 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoslant/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* +Copyright 2022 Joe Scotto + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_BSPC, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), KC_ESC + ), + [1] = LAYOUT( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/config.h new file mode 100644 index 0000000000..1a6512052c --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2022 Joe Scotto + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +// Define options +#define TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/keymap.c new file mode 100644 index 0000000000..dc2d08d910 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/keymap.c @@ -0,0 +1,69 @@ +/* +Copyright 2022 Joe Scotto + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), KC_ESC + ), + [1] = LAYOUT( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, KC_ESC + ), + [2] = LAYOUT( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, KC_ESC + ), + [3] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, KC_ESC + ), + [4] = LAYOUT( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), KC_ESC + ), + [5] = LAYOUT( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), KC_ESC + ), + [6] = LAYOUT( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), KC_ESC + ), + [7] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), KC_ESC + ) +}; diff --git a/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/rules.mk new file mode 100644 index 0000000000..e5ddcae8d9 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/scottokeebs/scottoslant/readme.md b/keyboards/handwired/scottokeebs/scottoslant/readme.md new file mode 100644 index 0000000000..6bb237b6bf --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoslant/readme.md @@ -0,0 +1,28 @@ +# ScottoSlant + +![ScottoSlant](https://i.imgur.com/p10NGimh.jpg) + +A 37-key handwired 0.25u row-staggered keyboard with a 2u spacebar. Case files available [here](https://github.com/joe-scotto/scottokeebs). + +* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +* Hardware Supported: ATmega32U4 +* Hardware Availability: [Amazon](https://amazon.com) + + +Make example for this keyboard (after setting up your build environment): + + make handwired/scottokeebs/scottoslant:default + +Flashing example for this keyboard: + + make handwired/scottokeebs/scottoslant:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottoslant/rules.mk b/keyboards/handwired/scottokeebs/scottoslant/rules.mk new file mode 100644 index 0000000000..4da205a168 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottoslant/rules.mk @@ -0,0 +1 @@ +LTO_ENABLE = yes From 1c62cb7b42022e4c9e1fcfe36840d9f1ea9c1320 Mon Sep 17 00:00:00 2001 From: Joe Scotto <8194147+joe-scotto@users.noreply.github.com> Date: Wed, 20 Sep 2023 22:32:45 -0400 Subject: [PATCH 111/496] Add ScottoMouse Handwired Macropad (#21074) Co-authored-by: Joel Challis Co-authored-by: Ryan Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com> --- .../scottokeebs/scottomouse/info.json | 39 +++++++++++++++++++ .../scottomouse/keymaps/default/keymap.c | 24 ++++++++++++ .../scottomouse/keymaps/scotto/config.h | 26 +++++++++++++ .../scottomouse/keymaps/scotto/keymap.c | 33 ++++++++++++++++ .../scottomouse/keymaps/scotto/rules.mk | 1 + .../scottokeebs/scottomouse/readme.md | 29 ++++++++++++++ .../scottokeebs/scottomouse/rules.mk | 1 + 7 files changed, 153 insertions(+) create mode 100644 keyboards/handwired/scottokeebs/scottomouse/info.json create mode 100644 keyboards/handwired/scottokeebs/scottomouse/keymaps/default/keymap.c create mode 100644 keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/config.h create mode 100644 keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/keymap.c create mode 100644 keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/rules.mk create mode 100644 keyboards/handwired/scottokeebs/scottomouse/readme.md create mode 100644 keyboards/handwired/scottokeebs/scottomouse/rules.mk diff --git a/keyboards/handwired/scottokeebs/scottomouse/info.json b/keyboards/handwired/scottokeebs/scottomouse/info.json new file mode 100644 index 0000000000..36f92f48e2 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottomouse/info.json @@ -0,0 +1,39 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "ScottoMouse", + "maintainer": "joe-scotto", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "direct": [ + ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5"] + ] + }, + "processor": "RP2040", + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0018", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0} + ] + } + } +} diff --git a/keyboards/handwired/scottokeebs/scottomouse/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottomouse/keymaps/default/keymap.c new file mode 100644 index 0000000000..6cc4d90144 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottomouse/keymaps/default/keymap.c @@ -0,0 +1,24 @@ +/* +Copyright 2023 Joe Scotto + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_MS_BTN1, KC_MS_BTN2, KC_MS_LEFT, KC_MS_UP, KC_MS_DOWN, KC_MS_RIGHT + ) +}; \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/config.h new file mode 100644 index 0000000000..4b0d2cd2fb --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/config.h @@ -0,0 +1,26 @@ +/* +Copyright 2023 Joe Scotto + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +// Mouse key speed and acceleration. +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_INTERVAL 16 +#define MOUSEKEY_WHEEL_DELAY 0 +#define MOUSEKEY_MAX_SPEED 6 +#define MOUSEKEY_TIME_TO_MAX 64 + diff --git a/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/keymap.c new file mode 100644 index 0000000000..d17ed1f28a --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/keymap.c @@ -0,0 +1,33 @@ +/* +Copyright 2023 Joe Scotto + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM scroll_down[] = {KC_MS_BTN1, KC_MS_BTN2, KC_MS_DOWN, COMBO_END}; +const uint16_t PROGMEM scroll_up[] = {KC_MS_BTN1, KC_MS_BTN2, KC_MS_UP, COMBO_END}; +const uint16_t PROGMEM middle_click[] = {KC_MS_BTN1, KC_MS_BTN2, COMBO_END}; +combo_t key_combos[] = { + COMBO(scroll_down, KC_MS_WH_DOWN), + COMBO(scroll_up, KC_MS_WH_UP), + COMBO(middle_click, KC_MS_BTN3) +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_MS_BTN1, KC_MS_BTN2, KC_MS_LEFT, KC_MS_UP, KC_MS_DOWN, KC_MS_RIGHT + ) +}; \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/rules.mk new file mode 100644 index 0000000000..ab1e438182 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/handwired/scottokeebs/scottomouse/readme.md b/keyboards/handwired/scottokeebs/scottomouse/readme.md new file mode 100644 index 0000000000..4102f63310 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottomouse/readme.md @@ -0,0 +1,29 @@ +# ScottoMouse + +![ScottoMouse](https://i.imgur.com/yjnhyXWh.jpeg) + +A 6-key macropad that utilizes [QMK mouse keys](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_mouse_keys.md) to emulate a mouse, case files available [here](https://github.com/joe-scotto/scottokeebs.git). + +* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +* Hardware Supported: Raspberry Pi Pico +* Hardware Availability: [ScottoKeebs](https://scottokeebs.com), [Amazon](https://amazon.com), [Ali](https://amazon.com) + +# Compiling + +Make example for this keyboard (after setting up your build environment): + + make handwired/scottokeebs/scottomouse:default + +Flashing example for this keyboard: + + make handwired/scottokeebs/scottomouse:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottomouse/rules.mk b/keyboards/handwired/scottokeebs/scottomouse/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottomouse/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From 9b699214917236ead6d982922e61eb7fd19b8b16 Mon Sep 17 00:00:00 2001 From: Joe Scotto <8194147+joe-scotto@users.noreply.github.com> Date: Wed, 20 Sep 2023 22:33:27 -0400 Subject: [PATCH 112/496] Add ScottoFly Keyboard (#20939) Co-authored-by: Ryan --- .../handwired/scottokeebs/scottofly/info.json | 78 +++++++++++++++++++ .../scottofly/keymaps/default/config.h | 23 ++++++ .../scottofly/keymaps/default/keymap.c | 45 +++++++++++ .../handwired/scottokeebs/scottofly/readme.md | 27 +++++++ .../handwired/scottokeebs/scottofly/rules.mk | 1 + 5 files changed, 174 insertions(+) create mode 100644 keyboards/handwired/scottokeebs/scottofly/info.json create mode 100644 keyboards/handwired/scottokeebs/scottofly/keymaps/default/config.h create mode 100644 keyboards/handwired/scottokeebs/scottofly/keymaps/default/keymap.c create mode 100644 keyboards/handwired/scottokeebs/scottofly/readme.md create mode 100644 keyboards/handwired/scottokeebs/scottofly/rules.mk diff --git a/keyboards/handwired/scottokeebs/scottofly/info.json b/keyboards/handwired/scottokeebs/scottofly/info.json new file mode 100644 index 0000000000..5255a5baf4 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottofly/info.json @@ -0,0 +1,78 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "ScottoFly", + "maintainer": "joe-scotto", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + // 3, 4, 5, 6, 7, 8, 9, A3, A2, A1 + "cols": ["D0", "D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5", "F6"], + + // 15, 14, 16, 10 + "rows": ["B1", "B3", "B2", "B6"] + }, + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0009", + "vid": "0xFEED" + }, + "community_layouts": ["split_3x5_3"], + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + // Row 1 + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + + // Row 2 + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [1, 6], "x": 6, "y": 1 }, + { "matrix": [1, 7], "x": 7, "y": 1 }, + { "matrix": [1, 8], "x": 8, "y": 1 }, + { "matrix": [1, 9], "x": 9, "y": 1 }, + + // Row 3 + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 7], "x": 7, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2 }, + { "matrix": [2, 9], "x": 9, "y": 2 }, + + // Row 4 + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3 }, + { "matrix": [3, 4], "x": 4, "y": 3 }, + { "matrix": [3, 5], "x": 5, "y": 3 }, + { "matrix": [3, 6], "x": 6, "y": 3 }, + { "matrix": [3, 7], "x": 7, "y": 3 } + ] + } + } +} diff --git a/keyboards/handwired/scottokeebs/scottofly/keymaps/default/config.h b/keyboards/handwired/scottokeebs/scottofly/keymaps/default/config.h new file mode 100644 index 0000000000..1a6512052c --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottofly/keymaps/default/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2022 Joe Scotto + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +// Define options +#define TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scottofly/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottofly/keymaps/default/keymap.c new file mode 100644 index 0000000000..2633845d50 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottofly/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* +Copyright 2022 Joe Scotto + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_BSPC, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_LGUI, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), KC_ESC + ), + [1] = LAYOUT_split_3x5_3( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_split_3x5_3( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_split_3x5_3( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottofly/readme.md b/keyboards/handwired/scottokeebs/scottofly/readme.md new file mode 100644 index 0000000000..ae51e0ef75 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottofly/readme.md @@ -0,0 +1,27 @@ +# ScottoFly + +![ScottoFly](https://i.imgur.com/TXuNxt7h.jpg) + +A 36-key split monoblock ergonomic column-staggered ortholinear keyboard with 20° of angle on each half. Case files available [here](https://github.com/joe-scotto/scottokeebs). + +* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +* Hardware Supported: ATmega32U4 +* Hardware Availability: [Amazon](https://amazon.com) + +Make example for this keyboard (after setting up your build environment): + + make handwired/scottokeebs/scottofly:default + +Flashing example for this keyboard: + + make handwired/scottokeebs/scottofly:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottofly/rules.mk b/keyboards/handwired/scottokeebs/scottofly/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottofly/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From e55220dbe0a8ff760e6d295a7d48ccad1ffd50eb Mon Sep 17 00:00:00 2001 From: Joe Scotto <8194147+joe-scotto@users.noreply.github.com> Date: Wed, 20 Sep 2023 22:33:57 -0400 Subject: [PATCH 113/496] Add ScottoMacrodeck Macropad (#20946) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- .../scottokeebs/scottomacrodeck/info.json | 52 +++++++++++++++++++ .../scottomacrodeck/keymaps/default/keymap.c | 26 ++++++++++ .../scottokeebs/scottomacrodeck/readme.md | 29 +++++++++++ .../scottokeebs/scottomacrodeck/rules.mk | 0 4 files changed, 107 insertions(+) create mode 100644 keyboards/handwired/scottokeebs/scottomacrodeck/info.json create mode 100644 keyboards/handwired/scottokeebs/scottomacrodeck/keymaps/default/keymap.c create mode 100644 keyboards/handwired/scottokeebs/scottomacrodeck/readme.md create mode 100644 keyboards/handwired/scottokeebs/scottomacrodeck/rules.mk diff --git a/keyboards/handwired/scottokeebs/scottomacrodeck/info.json b/keyboards/handwired/scottokeebs/scottomacrodeck/info.json new file mode 100644 index 0000000000..f238564c7f --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottomacrodeck/info.json @@ -0,0 +1,52 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "ScottoMacrodeck", + "maintainer": "joe-scotto", + "development_board": "promicro", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "build" : { + "lto": true, + }, + "matrix_pins": { + "direct": [ + ["D3", "D2", "D1", null], + ["D0", "D4", "C6", "D7"], + ["E6", "B4", "B5", "F4"] + ] + }, + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0015", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT": { + "layout": [ + // Row 1 + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + + // Row 2 + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + + // Row 3 + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 } + ] + } + } +} diff --git a/keyboards/handwired/scottokeebs/scottomacrodeck/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottomacrodeck/keymaps/default/keymap.c new file mode 100644 index 0000000000..c8becfca58 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottomacrodeck/keymaps/default/keymap.c @@ -0,0 +1,26 @@ +/* +Copyright 2023 Joe Scotto + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_1, KC_2, KC_3, + KC_Q, KC_W, KC_E, KC_R, + KC_A, KC_S, KC_D, KC_F + ) +}; diff --git a/keyboards/handwired/scottokeebs/scottomacrodeck/readme.md b/keyboards/handwired/scottokeebs/scottomacrodeck/readme.md new file mode 100644 index 0000000000..4fc82f42c8 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottomacrodeck/readme.md @@ -0,0 +1,29 @@ +# ScottoMacrodeck + +![ScottoMacrodeck](https://imgur.com/KVJuIVNh.jpeg) + +An 11-key macropad designed specifically for someone who games with a single thumb, however, it can be used as a traditional macropad. Case files available [here](https://github.com/joe-scotto/scottokeebs). + +* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +* Hardware Supported: ATmega32U4 +* Hardware Availability: [Amazon](https://amazon.com) + +# Compiling + +Make example for this keyboard (after setting up your build environment): + + make handwired/scottokeebs/scottomacrodeck:default + +Flashing example for this keyboard: + + make handwired/scottokeebs/scottomacrodeck:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottomacrodeck/rules.mk b/keyboards/handwired/scottokeebs/scottomacrodeck/rules.mk new file mode 100644 index 0000000000..e69de29bb2 From 3d1b9e98a4346116a6c15a51f15cb8692dda3161 Mon Sep 17 00:00:00 2001 From: Joe Scotto <8194147+joe-scotto@users.noreply.github.com> Date: Wed, 20 Sep 2023 22:34:16 -0400 Subject: [PATCH 114/496] Add ScottoLong Keyboard (#20938) Co-authored-by: Ryan --- .../scottokeebs/scottolong/info.json | 72 +++++++++++++++++++ .../scottolong/keymaps/default/config.h | 23 ++++++ .../scottolong/keymaps/default/keymap.c | 45 ++++++++++++ .../scottokeebs/scottolong/readme.md | 27 +++++++ .../handwired/scottokeebs/scottolong/rules.mk | 1 + 5 files changed, 168 insertions(+) create mode 100644 keyboards/handwired/scottokeebs/scottolong/info.json create mode 100644 keyboards/handwired/scottokeebs/scottolong/keymaps/default/config.h create mode 100644 keyboards/handwired/scottokeebs/scottolong/keymaps/default/keymap.c create mode 100644 keyboards/handwired/scottokeebs/scottolong/readme.md create mode 100644 keyboards/handwired/scottokeebs/scottolong/rules.mk diff --git a/keyboards/handwired/scottokeebs/scottolong/info.json b/keyboards/handwired/scottokeebs/scottolong/info.json new file mode 100644 index 0000000000..156772d213 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottolong/info.json @@ -0,0 +1,72 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "ScottoLong", + "maintainer": "joe-scotto", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15"], + "rows": ["GP2", "GP3", "GP4", "GP5"] + }, + "processor": "RP2040", + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0011", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_ortho_3x10_3": { + "layout": [ + // Row 1 + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + + // Row 2 + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [1, 6], "x": 6, "y": 1 }, + { "matrix": [1, 7], "x": 7, "y": 1 }, + { "matrix": [1, 8], "x": 8, "y": 1 }, + { "matrix": [1, 9], "x": 9, "y": 1 }, + + // Row 3 + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 7], "x": 7, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2 }, + { "matrix": [2, 9], "x": 9, "y": 2 }, + + // Row 4 + { "matrix": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 4], "x": 4, "y": 3 }, + { "matrix": [3, 9], "x": 9, "y": 3 } + ] + } + } +} diff --git a/keyboards/handwired/scottokeebs/scottolong/keymaps/default/config.h b/keyboards/handwired/scottokeebs/scottolong/keymaps/default/config.h new file mode 100644 index 0000000000..1a6512052c --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottolong/keymaps/default/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2022 Joe Scotto + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +// Define options +#define TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scottolong/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottolong/keymaps/default/keymap.c new file mode 100644 index 0000000000..e63da854f0 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottolong/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* +Copyright 2022 Joe Scotto + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_3x10_3( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_BSPC, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_LGUI, LT(1, KC_SPC), LT(2, KC_TAB) + ), + [1] = LAYOUT_ortho_3x10_3( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_ortho_3x10_3( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_ortho_3x10_3( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottolong/readme.md b/keyboards/handwired/scottokeebs/scottolong/readme.md new file mode 100644 index 0000000000..bdea4ee350 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottolong/readme.md @@ -0,0 +1,27 @@ +# ScottoLong + +![ScottoLong](https://i.imgur.com/AEQWXLlh.jpeg) + +A 33-key ortholinear keyboard with a 7u spacebar and two 1.5u function keys. Case files available [here](https://github.com/joe-scotto/scottokeebs). + +* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +* Hardware Supported: RP2040 +* Hardware Availability: [Amazon](https://amazon.com) + +Make example for this keyboard (after setting up your build environment): + + make handwired/scottokeebs/scottolong:default + +Flashing example for this keyboard: + + make handwired/scottokeebs/scottolong:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottolong/rules.mk b/keyboards/handwired/scottokeebs/scottolong/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottolong/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From b5b900200fd91ba597d67a54659b6ec537d2bc07 Mon Sep 17 00:00:00 2001 From: temp4gh Date: Thu, 21 Sep 2023 10:36:40 +0800 Subject: [PATCH 115/496] Add funtions of Encoder and VIA for redragon/k667 (#21917) Co-authored-by: Duncan Sutherland Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Ryan Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Co-authored-by: Joel Challis Co-authored-by: syc --- keyboards/redragon/k667/info.json | 5 +- .../redragon/k667/keymaps/default/keymap.c | 7 +++ .../redragon/k667/keymaps/default/rules.mk | 1 + keyboards/redragon/k667/keymaps/via/keymap.c | 49 +++++++++++++++++++ keyboards/redragon/k667/keymaps/via/rules.mk | 2 + 5 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 keyboards/redragon/k667/keymaps/default/rules.mk create mode 100644 keyboards/redragon/k667/keymaps/via/keymap.c create mode 100644 keyboards/redragon/k667/keymaps/via/rules.mk diff --git a/keyboards/redragon/k667/info.json b/keyboards/redragon/k667/info.json index 80d6195312..889ecd56c0 100644 --- a/keyboards/redragon/k667/info.json +++ b/keyboards/redragon/k667/info.json @@ -31,9 +31,10 @@ "processor": "STM32F103", "rgb_matrix": { "animations": { - "alphas_mods": true, + "solid_color": true, "band_sat": true, "band_spiral_val": true, + "band_spiral_sat": true, "band_val": true, "breathing": true, "cycle_all": true, @@ -42,7 +43,7 @@ "gradient_left_right": true, "gradient_up_down": true, "hue_wave": true, - "pixel_flow": true + "pixel_fractal": true }, "driver": "is31fl3733", "layout": [ diff --git a/keyboards/redragon/k667/keymaps/default/keymap.c b/keyboards/redragon/k667/keymaps/default/keymap.c index 48fab8614b..d4c2eb964a 100644 --- a/keyboards/redragon/k667/keymaps/default/keymap.c +++ b/keyboards/redragon/k667/keymaps/default/keymap.c @@ -22,6 +22,13 @@ enum layer_names _FnLay, }; +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_FnLay] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, +}; +#endif + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT( KC_ESC, 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_END, diff --git a/keyboards/redragon/k667/keymaps/default/rules.mk b/keyboards/redragon/k667/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/redragon/k667/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/redragon/k667/keymaps/via/keymap.c b/keyboards/redragon/k667/keymaps/via/keymap.c new file mode 100644 index 0000000000..d4c2eb964a --- /dev/null +++ b/keyboards/redragon/k667/keymaps/via/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2023 temp4gh + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layer_names +{ + _BASE, + _FnLay, +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_FnLay] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, +}; +#endif + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_ESC, 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_END, + KC_GRV, 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_BSPC, KC_HOME, + 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_DEL, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FnLay), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [_FnLay] = LAYOUT( + QK_BOOT, KC_MY_COMPUTER, KC_WWW_HOME, KC_CALCULATOR, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_MAIL, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAI, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, XXXXXXX, _______, XXXXXXX, RGB_SPD, RGB_VAD, RGB_SPI + ) +}; diff --git a/keyboards/redragon/k667/keymaps/via/rules.mk b/keyboards/redragon/k667/keymaps/via/rules.mk new file mode 100644 index 0000000000..f1adcab005 --- /dev/null +++ b/keyboards/redragon/k667/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes From 4520a584e40b17b940a660acb0e66cf50bff563a Mon Sep 17 00:00:00 2001 From: Joy Lee Date: Thu, 21 Sep 2023 10:38:20 +0800 Subject: [PATCH 116/496] [Keyboard] Add rpk-001 keyboard (#21042) Co-authored-by: Joel Challis Co-authored-by: Drashna Jaelre Co-authored-by: Duncan Sutherland Co-authored-by: Joy --- keyboards/phentech/rpk_001/config.h | 26 +++ keyboards/phentech/rpk_001/halconf.h | 10 + keyboards/phentech/rpk_001/info.json | 187 ++++++++++++++++++ .../phentech/rpk_001/keymaps/default/keymap.c | 36 ++++ .../phentech/rpk_001/keymaps/via/keymap.c | 44 +++++ .../phentech/rpk_001/keymaps/via/rules.mk | 2 + keyboards/phentech/rpk_001/mcuconf.h | 9 + keyboards/phentech/rpk_001/readme.md | 25 +++ keyboards/phentech/rpk_001/rpk_001.c | 92 +++++++++ keyboards/phentech/rpk_001/rules.mk | 1 + 10 files changed, 432 insertions(+) create mode 100644 keyboards/phentech/rpk_001/config.h create mode 100644 keyboards/phentech/rpk_001/halconf.h create mode 100644 keyboards/phentech/rpk_001/info.json create mode 100644 keyboards/phentech/rpk_001/keymaps/default/keymap.c create mode 100644 keyboards/phentech/rpk_001/keymaps/via/keymap.c create mode 100644 keyboards/phentech/rpk_001/keymaps/via/rules.mk create mode 100644 keyboards/phentech/rpk_001/mcuconf.h create mode 100644 keyboards/phentech/rpk_001/readme.md create mode 100644 keyboards/phentech/rpk_001/rpk_001.c create mode 100644 keyboards/phentech/rpk_001/rules.mk diff --git a/keyboards/phentech/rpk_001/config.h b/keyboards/phentech/rpk_001/config.h new file mode 100644 index 0000000000..05391a21ed --- /dev/null +++ b/keyboards/phentech/rpk_001/config.h @@ -0,0 +1,26 @@ +// Copyright 2023 JoyLee (@itarze) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* RGB Config */ +#define DRIVER_1_CS B6 +#define DRIVER_1_EN B7 +#define DRIVER_COUNT 1 +#define RGB_MATRIX_LED_COUNT 67 + +/* SPI Config */ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN B3 +#define SPI_MOSI_PIN B5 +#define SPI_MISO_PIN B4 + +/* SPI Flash */ +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 +#define WEAR_LEVELING_BACKING_SIZE (4 * 1024) + +/* RGB Matrix */ +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_KEYRELEASES diff --git a/keyboards/phentech/rpk_001/halconf.h b/keyboards/phentech/rpk_001/halconf.h new file mode 100644 index 0000000000..8760386e81 --- /dev/null +++ b/keyboards/phentech/rpk_001/halconf.h @@ -0,0 +1,10 @@ +// Copyright 2023 JoyLee (@itarze) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/phentech/rpk_001/info.json b/keyboards/phentech/rpk_001/info.json new file mode 100644 index 0000000000..105a126160 --- /dev/null +++ b/keyboards/phentech/rpk_001/info.json @@ -0,0 +1,187 @@ +{ + "manufacturer": "HENGCANG ELECTRONIC", + "keyboard_name": "RPK-001", + "maintainer": "JoyLee", + "url": "", + "processor": "WB32FQ95", + "bootloader": "wb32-dfu", + "usb": { + "device_version": "1.0.0", + "vid": "0xAC12", + "pid": "0x2236", + "force_nkro": true, + "suspend_wakeup_delay": 1000 + }, + "diode_direction": "ROW2COL", + "features": { + "nkro": true, + "encoder": true, + "extrakey": true, + "bootmagic": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["A6", "A7", "C4", "C5", "B0", "B1", "B10", "B11", "B13", "B14", "B15", "C6", "C7", "C8", "C9"], + "rows": ["C3", "A0", "A3", "A4", "A5"] + }, + "encoder": { + "rotary": [ + {"pin_a": "A2", "pin_b": "A1"} + ] + }, + "indicators": { + "caps_lock": "C15", + "scroll_lock": "C0", + "on_state": 0 + }, + "rgb_matrix": { + "driver": "aw20216", + "layout": [ + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 16, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 32, "y": 0 }, + { "flags": 4, "matrix": [0, 3], "x": 48, "y": 0 }, + { "flags": 4, "matrix": [0, 4], "x": 64, "y": 0 }, + { "flags": 4, "matrix": [0, 5], "x": 80, "y": 0 }, + { "flags": 4, "matrix": [0, 6], "x": 96, "y": 0 }, + { "flags": 4, "matrix": [0, 7], "x": 112, "y": 0 }, + { "flags": 4, "matrix": [0, 8], "x": 128, "y": 0 }, + { "flags": 4, "matrix": [0, 9], "x": 144, "y": 0 }, + { "flags": 4, "matrix": [0, 10], "x": 160, "y": 0 }, + { "flags": 4, "matrix": [0, 11], "x": 176, "y": 0 }, + { "flags": 4, "matrix": [0, 12], "x": 192, "y": 0 }, + { "flags": 4, "matrix": [0, 13], "x": 208, "y": 0 }, + + { "flags": 4, "matrix": [1, 0], "x": 0, "y": 16}, + { "flags": 4, "matrix": [1, 1], "x": 16, "y": 16}, + { "flags": 4, "matrix": [1, 2], "x": 32, "y": 16}, + { "flags": 4, "matrix": [1, 3], "x": 48, "y": 16}, + { "flags": 4, "matrix": [1, 4], "x": 64, "y": 16}, + { "flags": 4, "matrix": [1, 5], "x": 80, "y": 16}, + { "flags": 4, "matrix": [1, 6], "x": 96, "y": 16}, + { "flags": 4, "matrix": [1, 7], "x": 112, "y": 16}, + { "flags": 4, "matrix": [1, 8], "x": 128, "y": 16}, + { "flags": 4, "matrix": [1, 9], "x": 144, "y": 16}, + { "flags": 4, "matrix": [1, 10], "x": 160, "y": 16}, + { "flags": 4, "matrix": [1, 11], "x": 176, "y": 16}, + { "flags": 4, "matrix": [1, 12], "x": 192, "y": 16}, + { "flags": 4, "matrix": [1, 13], "x": 208, "y": 16}, + { "flags": 4, "matrix": [1, 14], "x": 224, "y": 16}, + + { "flags": 1, "matrix": [2, 0], "x": 0, "y": 32}, + { "flags": 4, "matrix": [2, 1], "x": 16, "y": 32}, + { "flags": 4, "matrix": [2, 2], "x": 32, "y": 32}, + { "flags": 4, "matrix": [2, 3], "x": 48, "y": 32}, + { "flags": 4, "matrix": [2, 4], "x": 64, "y": 32}, + { "flags": 4, "matrix": [2, 5], "x": 80, "y": 32}, + { "flags": 4, "matrix": [2, 6], "x": 96, "y": 32}, + { "flags": 4, "matrix": [2, 7], "x": 112, "y": 32}, + { "flags": 4, "matrix": [2, 8], "x": 128, "y": 32}, + { "flags": 4, "matrix": [2, 9], "x": 144, "y": 32}, + { "flags": 4, "matrix": [2, 10], "x": 160, "y": 32}, + { "flags": 4, "matrix": [2, 11], "x": 176, "y": 32}, + { "flags": 1, "matrix": [2, 12], "x": 192, "y": 32}, + { "flags": 4, "matrix": [2, 14], "x": 224, "y": 32}, + + { "flags": 1, "matrix": [3, 0], "x": 0, "y": 48}, + { "flags": 4, "matrix": [3, 2], "x": 32, "y": 48}, + { "flags": 4, "matrix": [3, 3], "x": 48, "y": 48}, + { "flags": 4, "matrix": [3, 4], "x": 64, "y": 48}, + { "flags": 4, "matrix": [3, 5], "x": 80, "y": 48}, + { "flags": 4, "matrix": [3, 6], "x": 96, "y": 48}, + { "flags": 4, "matrix": [3, 7], "x": 112, "y": 48}, + { "flags": 4, "matrix": [3, 8], "x": 128, "y": 48}, + { "flags": 4, "matrix": [3, 9], "x": 144, "y": 48}, + { "flags": 4, "matrix": [3, 10], "x": 160, "y": 48}, + { "flags": 4, "matrix": [3, 11], "x": 176, "y": 48}, + { "flags": 1, "matrix": [4, 12], "x": 192, "y": 48}, + { "flags": 1, "matrix": [3, 13], "x": 208, "y": 48}, + { "flags": 4, "matrix": [3, 14], "x": 224, "y": 48}, + + { "flags": 1, "matrix": [4, 0], "x": 0, "y": 64}, + { "flags": 1, "matrix": [4, 1], "x": 16, "y": 64}, + { "flags": 1, "matrix": [4, 2], "x": 32, "y": 64}, + { "flags": 4, "matrix": [4, 5], "x": 80, "y": 64}, + { "flags": 1, "matrix": [4, 8], "x": 144, "y": 64}, + { "flags": 1, "matrix": [4, 9], "x": 160, "y": 64}, + { "flags": 4, "matrix": [4, 10], "x": 176, "y": 64}, + { "flags": 1, "matrix": [4, 11], "x": 192, "y": 64}, + { "flags": 1, "matrix": [4, 13], "x": 208, "y": 64}, + { "flags": 1, "matrix": [4, 14], "x": 224, "y": 64} + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "w": 2, "x": 13, "y": 0 }, + { "matrix": [0, 14], "x": 15.5, "y": 0 }, + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [1, 14], "x": 15.5, "y": 1 }, + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [2, 14], "x": 15.5, "y": 1 }, + { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [4, 12], "w": 1.75, "x": 12.25, "y": 3 }, + { "matrix": [3, 13], "x": 14.25, "y": 3 }, + { "matrix": [3, 14], "x": 15.5, "y": 3 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 5], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 8], "w": 1, "x": 10, "y": 4 }, + { "matrix": [4, 9], "w": 1, "x": 11, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 12, "y": 4 }, + { "matrix": [4, 11], "x": 13.5, "y": 4 }, + { "matrix": [4, 13], "x": 14.5, "y": 4 }, + { "matrix": [4, 14], "x": 15.5, "y": 4 } + ] + } + } +} diff --git a/keyboards/phentech/rpk_001/keymaps/default/keymap.c b/keyboards/phentech/rpk_001/keymaps/default/keymap.c new file mode 100644 index 0000000000..b07a7f64c0 --- /dev/null +++ b/keyboards/phentech/rpk_001/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +// Copyright 2023 JoyLee (@itarze) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌────┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Mute│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├────┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├────┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ │Home│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─────┬──┘ ├────┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ ┌───┐ │End │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴───┬───┘ │ ↑ │ └────┘ + * │Ctrl│GUI │Alt │ │Alt│Ctl│ FN │ ┌───┼───┼───┐ + * └────┴────┴────┴────────────────────────┴───┴───┴────┘ │ ← │ ↓ │ → │ + * └───┴───┴───┘ + */ + [0] = LAYOUT( + KC_ESC, 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_BSPC, KC_MUTE, + 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_DEL, + 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_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/phentech/rpk_001/keymaps/via/keymap.c b/keyboards/phentech/rpk_001/keymaps/via/keymap.c new file mode 100644 index 0000000000..99bfd5ad15 --- /dev/null +++ b/keyboards/phentech/rpk_001/keymaps/via/keymap.c @@ -0,0 +1,44 @@ +// Copyright 2023 JoyLee (@itarze) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌────┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Mute│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├────┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├────┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ │Home│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─────┬──┘ ├────┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ ┌───┐ │End │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴───┬───┘ │ ↑ │ └────┘ + * │Ctrl│GUI │Alt │ │Alt│Ctl│ FN │ ┌───┼───┼───┐ + * └────┴────┴────┴────────────────────────┴───┴───┴────┘ │ ← │ ↓ │ → │ + * └───┴───┴───┘ + */ + [0] = LAYOUT( + KC_ESC, 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_BSPC, KC_MUTE, + 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_DEL, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +/* encoder; start */ +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif diff --git a/keyboards/phentech/rpk_001/keymaps/via/rules.mk b/keyboards/phentech/rpk_001/keymaps/via/rules.mk new file mode 100644 index 0000000000..715838ecc5 --- /dev/null +++ b/keyboards/phentech/rpk_001/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +ENCODER_MAP_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/phentech/rpk_001/mcuconf.h b/keyboards/phentech/rpk_001/mcuconf.h new file mode 100644 index 0000000000..ca0e017ebd --- /dev/null +++ b/keyboards/phentech/rpk_001/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2023 JoyLee (@itarze) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE diff --git a/keyboards/phentech/rpk_001/readme.md b/keyboards/phentech/rpk_001/readme.md new file mode 100644 index 0000000000..f543f7f1a6 --- /dev/null +++ b/keyboards/phentech/rpk_001/readme.md @@ -0,0 +1,25 @@ + +# RPK-001 + +[![p9HNfPg.png](https://s1.ax1x.com/2023/05/25/p9HNfPg.png)](https://imgse.com/i/p9HNfPg) + +* Keyboard Maintainer: [JoyLee](https://github.com/itarze) +* Hardware Supported: RPK-001 PCB + +Make example for this keyboard (after setting up your build environment): + + make phentech/rpk_001:default + +Flashing example for this keyboard: + + make phentech/rpk_001:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/phentech/rpk_001/rpk_001.c b/keyboards/phentech/rpk_001/rpk_001.c new file mode 100644 index 0000000000..9f1a118759 --- /dev/null +++ b/keyboards/phentech/rpk_001/rpk_001.c @@ -0,0 +1,92 @@ +// Copyright 2023 JoyLee (@itarze) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE + +// clang-format off + +const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, CS1_SW1, CS2_SW1, CS3_SW1 }, // 0 Esc + {0, CS1_SW2, CS2_SW2, CS3_SW2 }, // 1 1 + {0, CS1_SW3, CS2_SW3, CS3_SW3 }, // 2 2 + {0, CS1_SW4, CS2_SW4, CS3_SW4 }, // 3 3 + {0, CS1_SW5, CS2_SW5, CS3_SW5 }, // 4 4 + {0, CS1_SW6, CS2_SW6, CS3_SW6 }, // 5 5 + {0, CS1_SW7, CS2_SW7, CS3_SW7 }, // 6 6 + {0, CS1_SW8, CS2_SW8, CS3_SW8 }, // 7 7 + {0, CS1_SW9, CS2_SW9, CS3_SW9 }, // 8 8 + {0, CS1_SW10, CS2_SW10, CS3_SW10 }, // 9 9 + {0, CS1_SW11, CS2_SW11, CS3_SW11 }, // 10 0 + {0, CS1_SW12, CS2_SW12, CS3_SW12 }, // 11 - + {0, CS16_SW1, CS17_SW1, CS18_SW1 }, // 12 = + {0, CS16_SW2, CS17_SW2, CS18_SW2 }, // 13 Backspace + + {0, CS4_SW1, CS5_SW1, CS6_SW1 }, // 14 Tab + {0, CS4_SW2, CS5_SW2, CS6_SW2 }, // 15 Q + {0, CS4_SW3, CS5_SW3, CS6_SW3 }, // 16 W + {0, CS4_SW4, CS5_SW4, CS6_SW4 }, // 17 E + {0, CS4_SW5, CS5_SW5, CS6_SW5 }, // 18 R + {0, CS4_SW6, CS5_SW6, CS6_SW6 }, // 19 T + {0, CS4_SW7, CS5_SW7, CS6_SW7 }, // 20 Y + {0, CS4_SW8, CS5_SW8, CS6_SW8 }, // 21 U + {0, CS4_SW9, CS5_SW9, CS6_SW9 }, // 22 I + {0, CS4_SW10, CS5_SW10, CS6_SW10 }, // 23 O + {0, CS4_SW11, CS5_SW11, CS6_SW11 }, // 24 P + {0, CS4_SW12, CS5_SW12, CS6_SW12 }, // 25 [ + {0, CS16_SW4, CS17_SW4, CS18_SW4 }, // 26 ] + {0, CS16_SW5, CS17_SW5, CS18_SW5 }, // 27 \| + {0, CS16_SW3, CS17_SW3, CS18_SW3 }, // 28 Del + + {0, CS7_SW1, CS8_SW1, CS9_SW1 }, // 29 Caps Lock + {0, CS7_SW2, CS8_SW2, CS9_SW2 }, // 30 A + {0, CS7_SW3, CS8_SW3, CS9_SW3 }, // 31 S + {0, CS7_SW4, CS8_SW4, CS9_SW4 }, // 32 D + {0, CS7_SW5, CS8_SW5, CS9_SW5 }, // 33 F + {0, CS7_SW6, CS8_SW6, CS9_SW6 }, // 34 G + {0, CS7_SW7, CS8_SW7, CS9_SW7 }, // 35 H + {0, CS7_SW8, CS8_SW8, CS9_SW8 }, // 36 J + {0, CS7_SW9, CS8_SW9, CS9_SW9 }, // 37 K + {0, CS7_SW10, CS8_SW10, CS9_SW10 }, // 38 L + {0, CS7_SW11, CS8_SW11, CS9_SW11 }, // 39 ; + {0, CS7_SW12, CS8_SW12, CS9_SW12 }, // 40 ' + {0, CS16_SW7, CS17_SW7, CS18_SW7 }, // 41 Enter + {0, CS16_SW6, CS17_SW6, CS18_SW6 }, // 42 Home + + {0, CS10_SW1, CS11_SW1, CS12_SW1 }, // 43 Shift_L + {0, CS10_SW3, CS11_SW3, CS12_SW3 }, // 44 Z + {0, CS10_SW4, CS11_SW4, CS12_SW4 }, // 45 X + {0, CS10_SW5, CS11_SW5, CS12_SW5 }, // 46 C + {0, CS10_SW6, CS11_SW6, CS12_SW6 }, // 47 V + {0, CS10_SW7, CS11_SW7, CS12_SW7 }, // 48 B + {0, CS10_SW8, CS11_SW8, CS12_SW8 }, // 49 N + {0, CS10_SW9, CS11_SW9, CS12_SW9 }, // 50 M + {0, CS10_SW10, CS11_SW10, CS12_SW10 }, // 51 , + {0, CS10_SW11, CS11_SW11, CS12_SW11 }, // 52 . + {0, CS10_SW12, CS11_SW12, CS12_SW12 }, // 53 / + {0, CS16_SW9, CS17_SW9, CS18_SW9 }, // 54 Shift_R + {0, CS16_SW10, CS17_SW10, CS18_SW10 }, // 55 Up + {0, CS16_SW8, CS17_SW8, CS18_SW8 }, // 56 END + + {0, CS13_SW1, CS14_SW1, CS15_SW1 }, // 57 Ctrl_L + {0, CS13_SW2, CS14_SW2, CS15_SW2 }, // 58 Win_L + {0, CS13_SW3, CS14_SW3, CS15_SW3 }, // 59 Alt_L + {0, CS13_SW6, CS14_SW6, CS15_SW6 }, // 60 Space + {0, CS13_SW9, CS14_SW9, CS15_SW9 }, // 61 Alt_R + {0, CS13_SW10, CS14_SW10, CS15_SW10 }, // 62 Ctrl_R + {0, CS13_SW11, CS14_SW11, CS15_SW11 }, // 63 FN + {0, CS13_SW12, CS14_SW12, CS15_SW12 }, // 64 Left + {0, CS16_SW12, CS17_SW12, CS18_SW12 }, // 65 Down + {0, CS16_SW11, CS17_SW11, CS18_SW11 }, // 66 Right +}; + +// clang-format on + +#endif // #ifdef RGB_MATRIX_ENABLE diff --git a/keyboards/phentech/rpk_001/rules.mk b/keyboards/phentech/rpk_001/rules.mk new file mode 100644 index 0000000000..002458405e --- /dev/null +++ b/keyboards/phentech/rpk_001/rules.mk @@ -0,0 +1 @@ +WEAR_LEVELING_DRIVER = spi_flash From e56ea60058aded2b5a6cad504051606d5bb1d31b Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Thu, 21 Sep 2023 04:02:32 +0100 Subject: [PATCH 117/496] amend 68_(ansi|iso) community_layouts in keyboards/ (#21835) --- keyboards/evyd13/solheim68/info.json | 166 ++++++++++++++++++ keyboards/evyd13/solheim68/matrix_diagram.md | 18 ++ keyboards/wuque/ikki68_aurora/info.json | 4 +- .../ikki68_aurora/keymaps/68_iso/keymap.c | 22 +-- .../wuque/ikki68_aurora/matrix_diagram.md | 21 +++ 5 files changed, 212 insertions(+), 19 deletions(-) create mode 100644 keyboards/evyd13/solheim68/matrix_diagram.md create mode 100644 keyboards/wuque/ikki68_aurora/matrix_diagram.md diff --git a/keyboards/evyd13/solheim68/info.json b/keyboards/evyd13/solheim68/info.json index a08f786027..f348b98556 100644 --- a/keyboards/evyd13/solheim68/info.json +++ b/keyboards/evyd13/solheim68/info.json @@ -15,6 +15,7 @@ "diode_direction": "COL2ROW", "processor": "atmega32u4", "bootloader": "atmel-dfu", + "community_layouts": ["68_ansi", "68_iso"], "layouts": { "LAYOUT_all": { "layout": [ @@ -261,6 +262,88 @@ {"matrix": [4, 15], "x": 16.25, "y": 4} ] }, + "LAYOUT_68_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [2, 14], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [1, 14], "x": 15.25, "y": 1}, + {"matrix": [1, 15], "x": 16.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [3, 14], "x": 15.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + + {"matrix": [4, 13], "x": 14.25, "y": 4}, + {"matrix": [4, 14], "x": 15.25, "y": 4}, + {"matrix": [4, 15], "x": 16.25, "y": 4} + ] + }, "LAYOUT_68_ansi_split_rshift": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -342,6 +425,89 @@ {"matrix": [4, 15], "x": 16.25, "y": 4} ] }, + "LAYOUT_68_iso_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [2, 14], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [1, 14], "x": 15.25, "y": 1}, + {"matrix": [1, 15], "x": 16.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [3, 14], "x": 15.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + + {"matrix": [4, 13], "x": 14.25, "y": 4}, + {"matrix": [4, 14], "x": 15.25, "y": 4}, + {"matrix": [4, 15], "x": 16.25, "y": 4} + ] + }, "LAYOUT_68_iso_split_rshift": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, diff --git a/keyboards/evyd13/solheim68/matrix_diagram.md b/keyboards/evyd13/solheim68/matrix_diagram.md new file mode 100644 index 0000000000..aa20264345 --- /dev/null +++ b/keyboards/evyd13/solheim68/matrix_diagram.md @@ -0,0 +1,18 @@ +# Matrix diagram for Evyd13 solheim68 + +``` +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┐ ┌───────┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │2E │0D ││0E │0F │ │0D │ 2u Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┤ └─┬─────┤ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D ││1E │1F │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┘ ┌──┴┐2D │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │2C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤┌───┐ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D ││3E │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴┬──┴┼───┼───┐ +│40 │41 │42 │46 │4A │4B │4C │ │4D │4E │4F │ +└────┴────┴────┴────────────────────────┴────┴────┴────┘ └───┴───┴───┘ +┌────────┐ ┌──────────┐ +│30 │ 2.25u LShift 2.75u RShift │3C │ +└────────┘ └──────────┘ +``` diff --git a/keyboards/wuque/ikki68_aurora/info.json b/keyboards/wuque/ikki68_aurora/info.json index 872509ed42..a65b265b66 100644 --- a/keyboards/wuque/ikki68_aurora/info.json +++ b/keyboards/wuque/ikki68_aurora/info.json @@ -41,6 +41,7 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", + "community_layouts": ["68_ansi", "68_iso"], "layouts": { "LAYOUT_68_ansi": { "layout": [ @@ -502,7 +503,8 @@ {"matrix": [2, 12], "x": 12.75, "y": 2}, {"matrix": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, {"matrix": [3, 2], "x": 2.25, "y": 3}, {"matrix": [3, 3], "x": 3.25, "y": 3}, {"matrix": [3, 4], "x": 4.25, "y": 3}, diff --git a/keyboards/wuque/ikki68_aurora/keymaps/68_iso/keymap.c b/keyboards/wuque/ikki68_aurora/keymaps/68_iso/keymap.c index 50bb044490..d75e3b8811 100644 --- a/keyboards/wuque/ikki68_aurora/keymaps/68_iso/keymap.c +++ b/keyboards/wuque/ikki68_aurora/keymaps/68_iso/keymap.c @@ -20,29 +20,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_68_iso( KC_ESC, 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_BSPC, KC_INS, 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_DEL, 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_BSLS, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + 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_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_68_iso( 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, _______, _______, QK_BOOT, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [2] = LAYOUT_68_iso( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [3] = LAYOUT_68_iso( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), + ) }; diff --git a/keyboards/wuque/ikki68_aurora/matrix_diagram.md b/keyboards/wuque/ikki68_aurora/matrix_diagram.md new file mode 100644 index 0000000000..af2829e670 --- /dev/null +++ b/keyboards/wuque/ikki68_aurora/matrix_diagram.md @@ -0,0 +1,21 @@ +# Matrix diagram for Wuque Ikki68 Aurora + +``` +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┐ ┌───────┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2D ││0E │0F │ │0D │ 2u Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┤ └─┬─────┤ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D ││1E │1F │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┘ ┌──┴┐1D │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │ │2C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤┌───┐ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D ││3E │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴┬──┴┼───┼───┐ +│40 │41 │42 │46 │4A │4B │4C │ │4D │4E │4F │ +└────┴────┴────┴────────────────────────┴────┴────┴────┘ └───┴───┴───┘ +┌────────┐ ┌──────────┐ +│30 │ 2.25u LShift 2.75u RShift │3C │ +└────────┘ └──────────┘ +┌────┬────┬────┬────────┬────┬──────────┬────┬────┬────┐ +│40 │41 │42 │44 │46 │48 │4A │4B │4C │ Split Space +└────┴────┴────┴────────┴────┴──────────┴────┴────┴────┘ +``` From 4ec3e239baf618e7f90e4e2136ab957a483f8d59 Mon Sep 17 00:00:00 2001 From: Poring <97579443+PoringH@users.noreply.github.com> Date: Thu, 21 Sep 2023 10:45:29 +0700 Subject: [PATCH 118/496] [Keyboard] Add QCK-75 (#21180) Co-authored-by: Ryan Co-authored-by: Joel Challis Co-authored-by: Drashna Jaelre Co-authored-by: Duncan Sutherland --- keyboards/qck75/v1/config.h | 20 + keyboards/qck75/v1/halconf.h | 9 + keyboards/qck75/v1/info.json | 132 +++++++ keyboards/qck75/v1/keymaps/default/keymap.c | 26 ++ keyboards/qck75/v1/keymaps/via/keymap.c | 32 ++ keyboards/qck75/v1/keymaps/via/rules.mk | 2 + keyboards/qck75/v1/mcuconf.h | 15 + keyboards/qck75/v1/readme.md | 28 ++ keyboards/qck75/v1/rules.mk | 0 keyboards/qck75/v1/v1.c | 395 ++++++++++++++++++++ 10 files changed, 659 insertions(+) create mode 100644 keyboards/qck75/v1/config.h create mode 100644 keyboards/qck75/v1/halconf.h create mode 100644 keyboards/qck75/v1/info.json create mode 100644 keyboards/qck75/v1/keymaps/default/keymap.c create mode 100644 keyboards/qck75/v1/keymaps/via/keymap.c create mode 100644 keyboards/qck75/v1/keymaps/via/rules.mk create mode 100644 keyboards/qck75/v1/mcuconf.h create mode 100644 keyboards/qck75/v1/readme.md create mode 100644 keyboards/qck75/v1/rules.mk create mode 100644 keyboards/qck75/v1/v1.c diff --git a/keyboards/qck75/v1/config.h b/keyboards/qck75/v1/config.h new file mode 100644 index 0000000000..01d875e3d4 --- /dev/null +++ b/keyboards/qck75/v1/config.h @@ -0,0 +1,20 @@ +// Copyright 2023 Andrian (@PoringH) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define I2C1_SCL_PIN B8 +#define I2C1_SDA_PIN B9 + +#define I2C1_SCL_PAL_MODE 1 +#define I2C1_SDA_PAL_MODE 1 + +#define OLED_DISPLAY_128X64 + +#define OLED_IC OLED_IC_SH1106 +#define OLED_COLUMN_OFFSET 2 + +#define OLED_TIMEOUT 120000 +#define OLED_BRIGHTNESS 120 + +#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 21 diff --git a/keyboards/qck75/v1/halconf.h b/keyboards/qck75/v1/halconf.h new file mode 100644 index 0000000000..bbf9322333 --- /dev/null +++ b/keyboards/qck75/v1/halconf.h @@ -0,0 +1,9 @@ +// Copyright 2023 Andrian (@PoringH) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next + diff --git a/keyboards/qck75/v1/info.json b/keyboards/qck75/v1/info.json new file mode 100644 index 0000000000..a8ae853ab3 --- /dev/null +++ b/keyboards/qck75/v1/info.json @@ -0,0 +1,132 @@ +{ + "manufacturer": "Andrian", + "keyboard_name": "QCK75-XT", + "maintainer": "PoringH", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "C0", "pin_b": "C1", "resolution": 2} + ] + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "oled": true, + "wpm": true + }, + "matrix_pins": { + "cols": ["A6", "A7", "C4", "C5", "B0", "B1", "B2", "B11", "A9", "A8", "C9", "C8", "C7", "C6", "B15", "B14", "B13", "B12"], + "rows": ["C3", "A0", "A1", "A2", "B10", "A15"] + }, + "processor": "STM32F072", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0001", + "vid": "0x5047" + }, + "layouts": { + "LAYOUT_75_ansi": { + "layout": [ + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.75, "y": 0}, + {"matrix": [0, 4], "x": 4.75, "y": 0}, + {"matrix": [0, 5], "x": 5.75, "y": 0}, + {"matrix": [0, 6], "x": 6.75, "y": 0}, + {"matrix": [0, 7], "x": 8, "y": 0}, + {"matrix": [0, 8], "x": 9, "y": 0}, + {"matrix": [0, 9], "x": 10, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12.25, "y": 0}, + {"matrix": [0, 12], "x": 13.25, "y": 0}, + {"matrix": [0, 13], "x": 14.25, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.5, "y": 0}, + {"matrix": [0, 17], "x": 18, "y": 0}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2.5, "y": 1.25}, + {"matrix": [1, 3], "x": 3.5, "y": 1.25}, + {"matrix": [1, 4], "x": 4.5, "y": 1.25}, + {"matrix": [1, 5], "x": 5.5, "y": 1.25}, + {"matrix": [1, 6], "x": 6.5, "y": 1.25}, + {"matrix": [1, 7], "x": 7.5, "y": 1.25}, + {"matrix": [1, 8], "x": 8.5, "y": 1.25}, + {"matrix": [1, 9], "x": 9.5, "y": 1.25}, + {"matrix": [1, 10], "x": 10.5, "y": 1.25}, + {"matrix": [1, 11], "x": 11.5, "y": 1.25}, + {"matrix": [1, 12], "x": 12.5, "y": 1.25}, + {"matrix": [1, 13], "x": 13.5, "y": 1.25}, + {"matrix": [1, 14], "x": 14.5, "y": 1.25}, + {"matrix": [1, 15], "x": 15.5, "y": 1.25, "w": 2}, + {"matrix": [1, 17], "x": 18, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25}, + {"matrix": [2, 1], "x": 1, "y": 2.25}, + {"matrix": [2, 2], "x": 0, "y": 2.25, "w": 2.5}, + {"matrix": [2, 3], "x": 4, "y": 2.25}, + {"matrix": [2, 4], "x": 5, "y": 2.25}, + {"matrix": [2, 5], "x": 6, "y": 2.25}, + {"matrix": [2, 6], "x": 7, "y": 2.25}, + {"matrix": [2, 7], "x": 8, "y": 2.25}, + {"matrix": [2, 8], "x": 9, "y": 2.25}, + {"matrix": [2, 9], "x": 10, "y": 2.25}, + {"matrix": [2, 10], "x": 11, "y": 2.25}, + {"matrix": [2, 11], "x": 12, "y": 2.25}, + {"matrix": [2, 12], "x": 13, "y": 2.25}, + {"matrix": [2, 13], "x": 14, "y": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2.25}, + {"matrix": [2, 15], "x": 16, "y": 2.25, "w": 1.5}, + {"matrix": [2, 17], "x": 18, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2.5, "y": 3.25, "w": 1.75}, + {"matrix": [3, 3], "x": 4.25, "y": 3.25}, + {"matrix": [3, 4], "x": 5.25, "y": 3.25}, + {"matrix": [3, 5], "x": 6.25, "y": 3.25}, + {"matrix": [3, 6], "x": 7.25, "y": 3.25}, + {"matrix": [3, 7], "x": 8.25, "y": 3.25}, + {"matrix": [3, 8], "x": 9.25, "y": 3.25}, + {"matrix": [3, 9], "x": 10.25, "y": 3.25}, + {"matrix": [3, 10], "x": 11.25, "y": 3.25}, + {"matrix": [3, 11], "x": 12.25, "y": 3.25}, + {"matrix": [3, 12], "x": 13.25, "y": 3.25}, + {"matrix": [3, 13], "x": 14.25, "y": 3.25}, + {"matrix": [3, 15], "x": 15.25, "y": 3.25, "w": 2.25}, + {"matrix": [3, 17], "x": 18, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25}, + {"matrix": [4, 1], "x": 1, "y": 4.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4.25, "w": 2.25}, + {"matrix": [4, 4], "x": 4.75, "y": 4.25}, + {"matrix": [4, 5], "x": 5.75, "y": 4.25}, + {"matrix": [4, 6], "x": 6.75, "y": 4.25}, + {"matrix": [4, 7], "x": 7.75, "y": 4.25}, + {"matrix": [4, 8], "x": 8.75, "y": 4.25}, + {"matrix": [4, 9], "x": 9.75, "y": 4.25}, + {"matrix": [4, 10], "x": 10.75, "y": 4.25}, + {"matrix": [4, 11], "x": 11.75, "y": 4.25}, + {"matrix": [4, 12], "x": 12.75, "y": 4.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4.25}, + {"matrix": [4, 14], "x": 14.75, "y": 4.25, "w": 1.75}, + {"matrix": [4, 16], "x": 16.75, "y": 4.25}, + {"matrix": [4, 17], "x": 18, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25}, + {"matrix": [5, 1], "x": 1, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 3], "x": 3.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 4], "x": 5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 8], "x": 6.25, "y": 5.25, "w": 6.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25}, + {"matrix": [5, 14], "x": 14.5, "y": 5.25}, + {"matrix": [5, 15], "x": 15.75, "y": 5.5}, + {"matrix": [5, 16], "x": 16.75, "y": 5.5}, + {"matrix": [5, 17], "x": 17.75, "y": 5.5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/qck75/v1/keymaps/default/keymap.c b/keyboards/qck75/v1/keymaps/default/keymap.c new file mode 100644 index 0000000000..a9cc10f8a4 --- /dev/null +++ b/keyboards/qck75/v1/keymaps/default/keymap.c @@ -0,0 +1,26 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_75_ansi( + KC_ESC, 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_SCRL, KC_DEL, + KC_MPLY, KC_GRV, 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_BSPC, KC_HOME, + KC_MPRV, KC_MNXT, 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_END, + KC_F17, KC_F18, 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_ENT, KC_PGUP, + KC_F19, KC_F20, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_F21, KC_F22, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NUM, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_75_ansi( + 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_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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + QK_BOOT, NK_TOGG, KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + + + diff --git a/keyboards/qck75/v1/keymaps/via/keymap.c b/keyboards/qck75/v1/keymaps/via/keymap.c new file mode 100644 index 0000000000..8281855ded --- /dev/null +++ b/keyboards/qck75/v1/keymaps/via/keymap.c @@ -0,0 +1,32 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_75_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F13, KC_SCRL, KC_DEL, + KC_MPLY, KC_GRV, 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_BSPC, KC_HOME, + KC_MPRV, KC_MNXT, 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_END, + KC_F17, KC_F18, 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_ENT, KC_PGUP, + KC_F19, KC_F20, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_F21, KC_F22, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_75_ansi( + 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_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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + QK_BOOT, NK_TOGG, KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + +#if defined(ENCODER_MAP_ENABLE) + +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [1] = {ENCODER_CCW_CW(KC_MPRV, KC_MNXT)} +}; + +#endif diff --git a/keyboards/qck75/v1/keymaps/via/rules.mk b/keyboards/qck75/v1/keymaps/via/rules.mk new file mode 100644 index 0000000000..4253f570f0 --- /dev/null +++ b/keyboards/qck75/v1/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/qck75/v1/mcuconf.h b/keyboards/qck75/v1/mcuconf.h new file mode 100644 index 0000000000..c465397d36 --- /dev/null +++ b/keyboards/qck75/v1/mcuconf.h @@ -0,0 +1,15 @@ +// Copyright 2023 Andrian (@PoringH) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +#undef STM32_I2C_I2C1_RX_DMA_STREAM +#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3) + +#undef STM32_I2C_I2C1_TX_DMA_STREAM +#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2) diff --git a/keyboards/qck75/v1/readme.md b/keyboards/qck75/v1/readme.md new file mode 100644 index 0000000000..b51dca8e40 --- /dev/null +++ b/keyboards/qck75/v1/readme.md @@ -0,0 +1,28 @@ +# qck75 + +[qck75](https://i.imgur.com/exdD8Hgh.jpeg) + +This keyboard is a keyboard made for self use +75% layout with extra keys for macro with led and knob + +* Keyboard Maintainer: [Andrian](https://github.com/PoringH) +* Hardware Supported: This project uses STM32F072R8Tx for the mcu on the pcb +* Hardware Availability: https://github.com/PoringH/QCK75-XT + +Make example for this keyboard (after setting up your build environment): + + make qck75/v1:default + +Flashing example for this keyboard: + + make qck75/v1:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/qck75/v1/rules.mk b/keyboards/qck75/v1/rules.mk new file mode 100644 index 0000000000..e69de29bb2 diff --git a/keyboards/qck75/v1/v1.c b/keyboards/qck75/v1/v1.c new file mode 100644 index 0000000000..5e512b292c --- /dev/null +++ b/keyboards/qck75/v1/v1.c @@ -0,0 +1,395 @@ +// Copyright 2023 Andrian (@PoringH) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum { MAIN = 0, SECOND = 1, THIRD = 2, FOURTH = 3 }; + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } + switch (get_highest_layer(layer_state)) { + default: + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + case SECOND: + if (clockwise) { + tap_code(KC_MNXT); + } else { + tap_code(KC_MPRV); + } + break; + case THIRD: + if (clockwise) { + tap_code(KC_MS_R); + } else { + tap_code(KC_MS_L); + } + break; + case FOURTH: + if (clockwise) { + tap_code(KC_MS_U); + } else { + tap_code(KC_MS_D); + } + break; + } + return true; +} +#endif + +#ifdef OLED_ENABLE +# define KB_STAT_SIZE 18 +# define WIN_STAT_SIZE 12 +# define MIN_WALK_SPEED 10 +# define MIN_RUN_SPEED 40 +# define ANIM_FRAME_DURATION 200 +# define ANIM_SIZE 96 + +uint32_t anim_timer = 0; +uint8_t current_frame = 0; +int current_wpm = 0; +led_t led_usb_state; + +bool isguiDisabled = false; +bool isSneaking = false; +bool isJumping = false; +bool showedJump = true; + +# ifdef OLED_ENABLE + +static void render_animation(int ANIM_X, int ANIM_Y) { + // sit animation 32 X 22 + static const char PROGMEM sit[2][3][ANIM_SIZE] = {{ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x68, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28, 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + }, + + {{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + {0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x90, 0x08, 0x18, 0x60, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0e, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28, 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} + + }}; + + // walk animation 32 X 22 + static const char PROGMEM walk[2][3][ANIM_SIZE] = {{{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x90, 0x90, 0x90, 0xa0, 0xc0, 0x80, 0x80, 0x80, 0x70, 0x08, 0x14, 0x08, 0x90, 0x10, 0x10, 0x08, 0xa4, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x18, 0xea, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x03, 0x06, 0x18, 0x20, 0x20, 0x3c, 0x0c, 0x12, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }}, + + {{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x20, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x28, 0x10, 0x20, 0x20, 0x20, 0x10, 0x48, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x20, 0xf8, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0x30, 0xd5, 0x20, 0x1f, 0x00, 0x00, 0x00, 0x00, + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, 0x02, 0x1c, 0x14, 0x08, 0x10, 0x20, 0x2c, 0x32, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + + }}; + + // run animation 32 X 22 + static const char PROGMEM run[2][3][ANIM_SIZE] = {{{ + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x08, 0xc8, 0xb0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, + }, + { + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0xc4, 0xa4, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x58, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00, + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x09, 0x04, 0x04, 0x04, 0x04, 0x02, 0x03, 0x02, 0x01, 0x01, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + }}, + + {{ + 0x00, 0x00, 0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x78, 0x28, 0x08, 0x10, 0x20, 0x30, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, + }, + { + 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0xb0, 0x50, 0x55, 0x20, 0x1f, 0x00, 0x00, + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x1e, 0x20, 0x20, 0x18, 0x0c, 0x14, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + + }}; + + // bark animation 32 X 22 + static const char PROGMEM bark[2][3][ANIM_SIZE] = {{ + { + 0x00, 0xc0, 0x20, 0x10, 0xd0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + { + 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x48, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + }, + + {{ + 0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x2c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, + }, + { + 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x48, 0x28, 0x2a, 0x10, 0x0f, 0x20, 0x4a, 0x09, 0x10, + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + + }}; + + // sneak animation 32 X 22 + static const char PROGMEM sneak[2][3][ANIM_SIZE] = {{ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x80, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + { + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x21, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x04, 0x04, 0x04, 0x03, 0x01, 0x00, 0x00, 0x09, 0x01, 0x80, 0x80, 0xab, 0x04, 0xf8, 0x00, 0x00, 0x00, + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x02, 0x06, 0x18, 0x20, 0x20, 0x38, 0x08, 0x10, 0x18, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, + }, + }, + + {{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xa0, 0x20, 0x40, 0x80, 0xc0, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + { + 0x00, 0x00, 0x00, 0x00, 0x3e, 0x41, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x40, 0x40, 0x55, 0x82, 0x7c, 0x00, 0x00, 0x00, + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, 0x04, 0x18, 0x10, 0x08, 0x10, 0x20, 0x28, 0x34, 0x06, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + } + + }}; + + void animate_luna(void) { + int anim_x; + int anim_y; + + if (isJumping || !showedJump) { + oled_set_cursor(ANIM_X, ANIM_Y + 2); + oled_write(" ", false); + anim_x = ANIM_X; + anim_y = ANIM_Y - 1; + showedJump = true; + } else { + oled_set_cursor(ANIM_X, ANIM_Y - 1); + oled_write(" ", false); + + anim_x = ANIM_X; + anim_y = ANIM_Y; + } + + if (led_usb_state.caps_lock) { + oled_set_cursor(anim_x, anim_y); + oled_write_raw_P(bark[current_frame][0], ANIM_SIZE); + oled_set_cursor(anim_x, anim_y + 1); + oled_write_raw_P(bark[current_frame][1], ANIM_SIZE); + oled_set_cursor(anim_x, anim_y + 2); + oled_write_raw_P(bark[current_frame][2], ANIM_SIZE); + } else if (get_mods() & MOD_MASK_CS) { + oled_set_cursor(anim_x, anim_y); + oled_write_raw_P(sneak[current_frame][0], ANIM_SIZE); + oled_set_cursor(anim_x, anim_y + 1); + oled_write_raw_P(sneak[current_frame][1], ANIM_SIZE); + oled_set_cursor(anim_x, anim_y + 2); + oled_write_raw_P(sneak[current_frame][2], ANIM_SIZE); + } else if (current_wpm <= MIN_WALK_SPEED) { + oled_set_cursor(anim_x, anim_y); + oled_write_raw_P(sit[current_frame][0], ANIM_SIZE); + oled_set_cursor(anim_x, anim_y + 1); + oled_write_raw_P(sit[current_frame][1], ANIM_SIZE); + oled_set_cursor(anim_x, anim_y + 2); + oled_write_raw_P(sit[current_frame][2], ANIM_SIZE); + } else if (current_wpm <= MIN_RUN_SPEED) { + oled_set_cursor(anim_x, anim_y); + oled_write_raw_P(walk[current_frame][0], ANIM_SIZE); + oled_set_cursor(anim_x, anim_y + 1); + oled_write_raw_P(walk[current_frame][1], ANIM_SIZE); + oled_set_cursor(anim_x, anim_y + 2); + oled_write_raw_P(walk[current_frame][2], ANIM_SIZE); + } else { + oled_set_cursor(anim_x, anim_y); + oled_write_raw_P(run[current_frame][0], ANIM_SIZE); + oled_set_cursor(anim_x, anim_y + 1); + oled_write_raw_P(run[current_frame][1], ANIM_SIZE); + oled_set_cursor(anim_x, anim_y + 2); + oled_write_raw_P(run[current_frame][2], ANIM_SIZE); + } + } + +# if OLED_TIMEOUT > 0 + + if (last_input_activity_elapsed() > OLED_TIMEOUT && last_led_activity_elapsed() > OLED_TIMEOUT) { + oled_off(); + return; + } else { + oled_on(); + } +# endif + + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + current_frame = (current_frame + 1) % 2; + animate_luna(); + } +}; + +static void render_caps(int CAP_X, int CAP_Y) { + if (led_usb_state.caps_lock == true) { + static const char PROGMEM caps[KB_STAT_SIZE] = { + 0x00, 0xfe, 0xff, 0x07, 0xfb, 0xfb, 0x3b, 0xdb, 0xeb, 0xdb, 0x3b, 0xfb, 0xfb, 0x07, 0xff, 0xfe, 0x00, 0x00, + }; + static const char PROGMEM caps2[KB_STAT_SIZE] = {0x00, 0x3f, 0x7f, 0x70, 0x6f, 0x6f, 0x68, 0x6e, 0x6e, 0x6e, 0x68, 0x6f, 0x6f, 0x70, 0x7f, 0x3f, 0x00, 0x00}; + oled_set_cursor(CAP_X, CAP_Y); + oled_write_raw_P(caps, KB_STAT_SIZE); + oled_set_cursor(CAP_X, CAP_Y + 1); + oled_write_raw_P(caps2, KB_STAT_SIZE); + } else { + static const char PROGMEM caps[KB_STAT_SIZE] = { + 0x00, 0x00, 0x00, 0xf8, 0x04, 0x04, 0xc4, 0x24, 0x14, 0x24, 0xc4, 0x04, 0x04, 0xf8, 0x00, 0x00, 0x00, 0x00, + }; + static const char PROGMEM caps2[KB_STAT_SIZE] = {0x00, 0x00, 0x00, 0x0f, 0x10, 0x10, 0x17, 0x11, 0x11, 0x11, 0x17, 0x10, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00}; + oled_set_cursor(CAP_X, CAP_Y); + oled_write_raw_P(caps, KB_STAT_SIZE); + oled_set_cursor(CAP_X, CAP_Y + 1); + oled_write_raw_P(caps2, KB_STAT_SIZE); + } +} + +static void render_num(int NUM_X, int NUM_Y) { + if (led_usb_state.num_lock == true) { + static const char PROGMEM num[KB_STAT_SIZE] = { + 0x00, 0xfe, 0xff, 0x07, 0xfb, 0xfb, 0xfb, 0xdb, 0x0b, 0xfb, 0xfb, 0xfb, 0xfb, 0x07, 0xff, 0xfe, 0x00, 0x00, + }; + static const char PROGMEM num2[KB_STAT_SIZE] = {0x00, 0x3f, 0x7f, 0x70, 0x6f, 0x6f, 0x6f, 0x6b, 0x68, 0x6b, 0x6f, 0x6f, 0x6f, 0x70, 0x7f, 0x3f, 0x00, 0x00}; + oled_set_cursor(NUM_X, NUM_Y); + oled_write_raw_P(num, KB_STAT_SIZE); + oled_set_cursor(NUM_X, NUM_Y + 1); + oled_write_raw_P(num2, KB_STAT_SIZE); + } else { + static const char PROGMEM num[KB_STAT_SIZE] = { + 0x00, 0x00, 0x00, 0xf8, 0x04, 0x04, 0x04, 0x24, 0xf4, 0x04, 0x04, 0x04, 0x04, 0xf8, 0x00, 0x00, 0x00, 0x00, + }; + static const char PROGMEM num2[KB_STAT_SIZE] = {0x00, 0x00, 0x00, 0x0f, 0x10, 0x10, 0x10, 0x14, 0x17, 0x14, 0x10, 0x10, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00}; + oled_set_cursor(NUM_X, NUM_Y); + oled_write_raw_P(num, KB_STAT_SIZE); + oled_set_cursor(NUM_X, NUM_Y + 1); + oled_write_raw_P(num2, KB_STAT_SIZE); + } +} + +static void render_scroll(int SCROLL_X, int SCROLL_Y) { + if (led_usb_state.scroll_lock == true) { + static const char PROGMEM scroll[KB_STAT_SIZE] = { + 0x00, 0xfe, 0xff, 0x07, 0xfb, 0xfb, 0x7b, 0xfb, 0x0b, 0xfb, 0x7b, 0xfb, 0xfb, 0x07, 0xff, 0xfe, 0x00, 0x00, + }; + static const char PROGMEM scroll2[KB_STAT_SIZE] = {0x00, 0x3f, 0x7f, 0x70, 0x6f, 0x6b, 0x6b, 0x6a, 0x68, 0x6a, 0x6b, 0x6b, 0x6f, 0x70, 0x7f, 0x3f, 0x00, 0x00}; + oled_set_cursor(SCROLL_X, SCROLL_Y); + oled_write_raw_P(scroll, KB_STAT_SIZE); + oled_set_cursor(SCROLL_X, SCROLL_Y + 1); + oled_write_raw_P(scroll2, KB_STAT_SIZE); + } else { + static const char PROGMEM scroll[KB_STAT_SIZE] = { + 0x00, 0x00, 0x00, 0xf8, 0x04, 0x04, 0x84, 0x04, 0xf4, 0x04, 0x84, 0x04, 0x04, 0xf8, 0x00, 0x00, 0x00, 0x00, + }; + static const char PROGMEM scroll2[KB_STAT_SIZE] = {0x00, 0x00, 0x00, 0x0f, 0x10, 0x14, 0x14, 0x15, 0x17, 0x15, 0x14, 0x14, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00}; + oled_set_cursor(SCROLL_X, SCROLL_Y); + oled_write_raw_P(scroll, KB_STAT_SIZE); + oled_set_cursor(SCROLL_X, SCROLL_Y + 1); + oled_write_raw_P(scroll2, KB_STAT_SIZE); + } +} + +static void render_winstat(int WIN_X, int WIN_Y) { + static const char PROGMEM winlogo[WIN_STAT_SIZE] = { + 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, + }; + static const char PROGMEM winlogo2[WIN_STAT_SIZE] = { + 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, + }; + + oled_set_cursor(WIN_X, WIN_Y); + oled_write_raw_P(winlogo, WIN_STAT_SIZE); + oled_set_cursor(WIN_X, WIN_Y + 1); + oled_write_raw_P(winlogo2, WIN_STAT_SIZE); + + oled_set_cursor(WIN_X + 2, WIN_Y); + oled_write("WINKEY", false); + + oled_set_cursor(WIN_X + 2, WIN_Y + 1); + if (keymap_config.no_gui) { + oled_write("DISABLED", false); + } else { + oled_write("ENABLED ", false); + } +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + current_wpm = get_current_wpm(); + led_usb_state = host_keyboard_led_state(); + render_animation(13, 3); + oled_set_cursor(0, 0); + // Host Keyboard Layer Status + switch (get_highest_layer(layer_state)) { + case MAIN: + oled_write("MAIN ", false); + break; + case SECOND: + oled_write("SECOND", false); + break; + case THIRD: + oled_write("THIRD ", false); + break; + default: + oled_write("FOURTH", false); + } + render_caps(0, 2); + render_num(3, 2); + render_scroll(6, 2); + render_winstat(1, 5); + + oled_set_cursor(12, 0); + oled_write("WPM: ", false); + oled_write(get_u8_str(current_wpm, '0'), false); + return false; +} + +# endif + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_SPC: + if (record->event.pressed) { + isJumping = true; + showedJump = false; + } else { + isJumping = false; + } + break; + } + return process_record_user(keycode, record); +} +#endif From f543a448368ef2a657fd7f85ce0d451092e13e17 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 20 Sep 2023 22:15:45 -0700 Subject: [PATCH 119/496] Quarkeys Studio Z67 Solder Community Layout Support (#22095) --- keyboards/quarkeys/z67/solder/info.json | 1309 ++++++++++++++++- .../z67/solder/keymaps/default/keymap.c | 42 +- .../quarkeys/z67/solder/keymaps/via/keymap.c | 26 +- .../quarkeys/z67/solder/matrix_diagram.md | 30 + 4 files changed, 1369 insertions(+), 38 deletions(-) create mode 100644 keyboards/quarkeys/z67/solder/matrix_diagram.md diff --git a/keyboards/quarkeys/z67/solder/info.json b/keyboards/quarkeys/z67/solder/info.json index e37ef9a4cb..93ea9fa0fc 100644 --- a/keyboards/quarkeys/z67/solder/info.json +++ b/keyboards/quarkeys/z67/solder/info.json @@ -1,8 +1,8 @@ { "keyboard_name": "Z67 Solder", - "manufacturer": "Quarkeys Stuidio", - "url": "www.quarkeys.com", - "maintainer": "TommyZ", + "manufacturer": "Quarkeys Studio", + "url": "http://www.quarkeys.com/", + "maintainer": "tommyamoszhao", "usb": { "vid": "0x8490", "pid": "0x4101", @@ -36,8 +36,21 @@ "diode_direction": "COL2ROW", "processor": "atmega32u4", "bootloader": "atmel-dfu", + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, + "community_layouts": [ + "65_ansi", + "65_ansi_split_bs", + "65_ansi_blocker", + "65_ansi_blocker_split_bs", + "65_iso", + "65_iso_split_bs", + "65_iso_blocker", + "65_iso_blocker_split_bs" + ], "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -116,6 +129,1294 @@ {"matrix": [4, 9], "x": 11, "y": 4}, {"matrix": [4, 11], "x": 12, "y": 4}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 8], "x": 10, "y": 4}, + {"matrix": [4, 9], "x": 11, "y": 4}, + {"matrix": [4, 11], "x": 12, "y": 4}, + + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 8], "x": 10, "y": 4}, + {"matrix": [4, 9], "x": 11, "y": 4}, + {"matrix": [4, 11], "x": 12, "y": 4}, + + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 8], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 9], "x": 11.25, "y": 4, "w": 1.25}, + + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 8], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 9], "x": 11.25, "y": 4, "w": 1.25}, + + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 9], "x": 11, "y": 4, "w": 1.5}, + + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 9], "x": 11, "y": 4, "w": 1.5}, + + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 7}, + {"matrix": [4, 9], "x": 10.75, "y": 4, "w": 1.5}, + + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_wkl_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 7}, + {"matrix": [4, 9], "x": 10.75, "y": 4, "w": 1.5}, + + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 8], "x": 10, "y": 4}, + {"matrix": [4, 9], "x": 11, "y": 4}, + {"matrix": [4, 11], "x": 12, "y": 4}, + + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 8], "x": 10, "y": 4}, + {"matrix": [4, 9], "x": 11, "y": 4}, + {"matrix": [4, 11], "x": 12, "y": 4}, + + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 8], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 9], "x": 11.25, "y": 4, "w": 1.25}, + + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 8], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 9], "x": 11.25, "y": 4, "w": 1.25}, + + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 9], "x": 11, "y": 4, "w": 1.5}, + + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 9], "x": 11, "y": 4, "w": 1.5}, + + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 7}, + {"matrix": [4, 9], "x": 10.75, "y": 4, "w": 1.5}, + + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan_wkl_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 7}, + {"matrix": [4, 9], "x": 10.75, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, {"matrix": [4, 13], "x": 14, "y": 4}, {"matrix": [4, 15], "x": 15, "y": 4} diff --git a/keyboards/quarkeys/z67/solder/keymaps/default/keymap.c b/keyboards/quarkeys/z67/solder/keymaps/default/keymap.c index e2c1fbb9fc..448db3275c 100644 --- a/keyboards/quarkeys/z67/solder/keymaps/default/keymap.c +++ b/keyboards/quarkeys/z67/solder/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* +/* / Copyright 2022 quarkeys / This program is free software: you can redistribute it and/or modify / it under the terms of the GNU General Public License as published by @@ -15,10 +15,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* [0] + /* [0] * ,---------------------------------------------------------------------------------------------------------------. - * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | Back | ~ | Del | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | Back | ~ | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| * | Tab | Q | W | E | R | T | Y | U | I | O | P | { | } | \ | PgUp | * |---------+------+------+------+------+------+------+------+------+------+------+------+------+----------+------| * | Capslock | A | S | D | F | G | H | J | K | L | ; | " | ~ | Enter | PgDn | @@ -26,19 +26,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | SHIFT | \ | Z | X | C | V | B | N | M | , | . | / | Shift | Fn | Up | * |--------+------+------+------+------+------+------+------+------+------+------+------+-----------+------+------| * | Ctrl | Win | ALT | SPACE | ALT | Win | Ctrl | Left | Down | Rght | - * `--------+--------+--------+------------------------------------------+------+------+------+------+------+------' + * `--------+--------+--------+------------------------------------------+------+------+------+------+------+------' */ - [0] = LAYOUT( - KC_ESC, 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_BSPC, KC_TILD, KC_DEL, - 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_PGUP, - 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_GRV, KC_ENT, KC_PGDN, - KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), MO(3), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + [0] = LAYOUT_all( + KC_ESC, 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_BSPC, KC_TILD, KC_DEL, + 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_PGUP, + 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_GRV, KC_ENT, KC_PGDN, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), MO(3), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - /* [1] + /* [1] * ,---------------------------------------------------------------------------------------------------------------. - * |Reset | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Back | | | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * |Reset | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Back | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| * | | PgUp | Home | Up | End | Del | \ | 7 | 8 | 9 | RTOG | RMOD | RVAI | | | * |---------+------+------+------+------+------+------+------+------+------+------+------+------+----------+------| * | | PgDn | Left | Down | Rght | + | - | 4 | 5 | 6 | RSAD | RVAD | | | | @@ -46,12 +46,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | Play | Mute | VolD | VolU | * | / | 1 | 2 | 3 | . | | | | * |--------+------+------+------+------+------+------+------+------+------+------+------+-----------+------+------| * | | | | 0 | | | | | | | - * `--------+--------+--------+------------------------------------------+------+------+------+------+------+------' + * `--------+--------+--------+------------------------------------------+------+------+------+------+------+------' */ - [1] = LAYOUT( - QK_BOOT, 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_BSPC, KC_TRNS, KC_TRNS, - KC_TRNS, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, KC_BSLS, KC_7, KC_8, KC_9, RGB_TOG, RGB_MOD, RGB_VAI, KC_TRNS, KC_TRNS, - KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PLUS, KC_MINS, KC_4, KC_5, KC_6, RGB_SAD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_ASTR, KC_SLSH, KC_1, KC_2, KC_3, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) + [1] = LAYOUT_all( + QK_BOOT, 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_BSPC, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, KC_BSLS, KC_7, KC_8, KC_9, RGB_TOG, RGB_MOD, RGB_VAI, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PLUS, KC_MINS, KC_4, KC_5, KC_6, RGB_SAD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_ASTR, KC_SLSH, KC_1, KC_2, KC_3, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/quarkeys/z67/solder/keymaps/via/keymap.c b/keyboards/quarkeys/z67/solder/keymaps/via/keymap.c index b10070ecd9..758f07001c 100644 --- a/keyboards/quarkeys/z67/solder/keymaps/via/keymap.c +++ b/keyboards/quarkeys/z67/solder/keymaps/via/keymap.c @@ -1,4 +1,4 @@ -/* +/* / Copyright 2022 quarkeys / This program is free software: you can redistribute it and/or modify / it under the terms of the GNU General Public License as published by @@ -15,17 +15,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_ESC, 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_BSPC, KC_TILD, KC_DEL, - 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_PGUP, - 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_GRV, KC_ENT, KC_PGDN, - KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), MO(3), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + [0] = LAYOUT_all( + KC_ESC, 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_BSPC, KC_TILD, KC_DEL, + 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_PGUP, + 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_GRV, KC_ENT, KC_PGDN, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), MO(3), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [1] = LAYOUT( - QK_BOOT, 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_BSPC, KC_TRNS, KC_TRNS, - KC_TRNS, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, KC_BSLS, KC_7, KC_8, KC_9, RGB_TOG, RGB_MOD, RGB_VAI, KC_TRNS, KC_TRNS, - KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PLUS, KC_MINS, KC_4, KC_5, KC_6, RGB_SAD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_ASTR, KC_SLSH, KC_1, KC_2, KC_3, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) + [1] = LAYOUT_all( + QK_BOOT, 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_BSPC, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, KC_BSLS, KC_7, KC_8, KC_9, RGB_TOG, RGB_MOD, RGB_VAI, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PLUS, KC_MINS, KC_4, KC_5, KC_6, RGB_SAD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_ASTR, KC_SLSH, KC_1, KC_2, KC_3, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/quarkeys/z67/solder/matrix_diagram.md b/keyboards/quarkeys/z67/solder/matrix_diagram.md new file mode 100644 index 0000000000..90d01906a3 --- /dev/null +++ b/keyboards/quarkeys/z67/solder/matrix_diagram.md @@ -0,0 +1,30 @@ +# Matrix Diagram for Quarkeys Stuidio Z67 Solder + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │0F │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1E │1F │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐2D │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │2F │ │2C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3E │3F │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ +│40 │41 │42 │47 │48 │49 │4B │4C │4D │4F │ +└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ +┌────────┐ +│30 │ 2.25u LShift +└────────┘ +┌────┬────┬────┬────────────────────────┬────┬────┐ +│40 │41 │42 │47 │48 │49 │ Blocker +└────┴────┴────┴────────────────────────┴────┴────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┐ +│40 │41 │42 │47 │48 │ Blocker Tsangan +└─────┴───┴─────┴───────────────────────────┴─────┘ +┌─────┬──┬─────┬───────────────────────────┬─────┐ +│40 │ │42 │47 │48 │ "Bauer" +└─────┘ └─────┴───────────────────────────┴─────┘ WKL with 0.75u blockers +``` From e91bf4583fb9279daf826f7c662e84db3465120b Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 20 Sep 2023 22:16:22 -0700 Subject: [PATCH 120/496] Quarkeys Studio Z67 Hotswap Community Layout Support (#22096) --- keyboards/quarkeys/z67/hotswap/info.json | 12 +++-- .../z67/hotswap/keymaps/default/keymap.c | 52 +++++++++---------- .../quarkeys/z67/hotswap/keymaps/via/keymap.c | 36 ++++++------- keyboards/quarkeys/z67/hotswap/readme.md | 21 ++++++++ 4 files changed, 73 insertions(+), 48 deletions(-) create mode 100644 keyboards/quarkeys/z67/hotswap/readme.md diff --git a/keyboards/quarkeys/z67/hotswap/info.json b/keyboards/quarkeys/z67/hotswap/info.json index 8c452ea391..13a5cd09e2 100644 --- a/keyboards/quarkeys/z67/hotswap/info.json +++ b/keyboards/quarkeys/z67/hotswap/info.json @@ -1,8 +1,8 @@ { "keyboard_name": "Z67 Hotswap", - "manufacturer": "Quarkeys Stuidio", - "url": "www.quarkeys.com", - "maintainer": "TommyZ", + "manufacturer": "Quarkeys Studio", + "url": "https://www.quarkeys.com/", + "maintainer": "tommyamoszhao", "usb": { "vid": "0x8490", "pid": "0x4102", @@ -36,8 +36,12 @@ "diode_direction": "COL2ROW", "processor": "atmega32u4", "bootloader": "atmel-dfu", + "layout_aliases": { + "LAYOUT": "LAYOUT_65_ansi_blocker" + }, + "community_layouts": ["65_ansi_blocker"], "layouts": { - "LAYOUT": { + "LAYOUT_65_ansi_blocker": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/quarkeys/z67/hotswap/keymaps/default/keymap.c b/keyboards/quarkeys/z67/hotswap/keymaps/default/keymap.c index 7427419403..1d136ebaca 100644 --- a/keyboards/quarkeys/z67/hotswap/keymaps/default/keymap.c +++ b/keyboards/quarkeys/z67/hotswap/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* +/* / Copyright 2022 quarkeys / This program is free software: you can redistribute it and/or modify / it under the terms of the GNU General Public License as published by @@ -15,10 +15,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* [0] + /* [0] * ,---------------------------------------------------------------------------------------------------------------. - * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | Backspace | Del | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | Backspace | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| * | Tab | Q | W | E | R | T | Y | U | I | O | P | { | } | \ | PgUp | * |---------+------+------+------+------+------+------+------+------+------+------+------+------+----------+------| * | Capslock | A | S | D | F | G | H | J | K | L | ; | " | Enter | PgDn | @@ -26,19 +26,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | SHIFT | Z | X | C | V | B | N | M | , | . | / | Shift | Up | L1 | * |--------+------+------+------+------+------+------+------+------+------+------+------+-----------+------+------| * | Ctrl | Win | ALT | SPACE | L2 | L3 | Left | Down | Rght | - * `--------+--------+--------+------------------------------------------+------+------+------+------+------+------' + * `--------+--------+--------+------------------------------------------+------+------+------+------+------+------' */ - [0] = LAYOUT( - KC_ESC, 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_BSPC, KC_DEL, - 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_PGUP, - 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_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), MO(3), KC_LEFT, KC_DOWN, KC_RGHT), + [0] = LAYOUT_65_ansi_blocker( + KC_ESC, 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_BSPC, KC_DEL, + 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_PGUP, + 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_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), MO(3), KC_LEFT, KC_DOWN, KC_RGHT), - /* [1] + /* [1] * ,---------------------------------------------------------------------------------------------------------------. - * |Reset | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+-------------+------| + * |Reset | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+-------------+------| * | | PgUp | Home | Up | End | Del | \ | 7 | 8 | 9 | RTOG | RMOD | RVAI | | | * |---------+------+------+------+------+------+------+------+------+------+------+------+------+----------+------| * | | PgDn | Left | Down | Rght | + | - | 4 | 5 | 6 | RSAD | RVAD | | | @@ -46,15 +46,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | Play | Mute | VolD | VolU | * | / | 1 | 2 | 3 | . | | | | * |---------------+------+------+------+------+------+------+------+------+------+------+-----------+------+------| * | Ctrl | Win | ALT | 0 | | | | | | - * `--------+--------+--------+-------------------------------------------+---------+---------+------+------+------' + * `--------+--------+--------+-------------------------------------------+---------+---------+------+------+------' */ - [1] = LAYOUT( - QK_BOOT, 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_TRNS, - KC_TRNS, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, KC_BSLS, KC_7, KC_8, KC_9, RGB_TOG, RGB_MOD, RGB_VAI, KC_TRNS, KC_TRNS, - KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PLUS, KC_MINS, KC_4, KC_5, KC_6, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, - KC_TRNS, KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_ASTR, KC_SLSH, KC_1, KC_2, KC_3, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) -}; + [1] = LAYOUT_65_ansi_blocker( + QK_BOOT, 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_TRNS, + KC_TRNS, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, KC_BSLS, KC_7, KC_8, KC_9, RGB_TOG, RGB_MOD, RGB_VAI, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PLUS, KC_MINS, KC_4, KC_5, KC_6, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, + KC_TRNS, KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_ASTR, KC_SLSH, KC_1, KC_2, KC_3, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({36, 1, HSV_RED}); const rgblight_segment_t PROGMEM my_ar_numpad_layer[] = RGBLIGHT_LAYER_SEGMENTS({45, 2, HSV_WHITE}); @@ -62,10 +62,10 @@ const rgblight_segment_t PROGMEM my_symbol_layer[] = RGBLIGHT_LAYER_SEGMENTS({30 const rgblight_segment_t PROGMEM my_other_layer[] = RGBLIGHT_LAYER_SEGMENTS({16, 2, HSV_WHITE}); const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( - my_capslock_layer, // Caplock indicator - my_ar_numpad_layer, // Arrow keys & Numpad, Operator keys, reset key, RGB control and media control - my_symbol_layer, // F1-F12 keys & Symbols - my_other_layer // Self-Defined + my_capslock_layer, // Caplock indicator + my_ar_numpad_layer, // Arrow keys & Numpad, Operator keys, reset key, RGB control and media control + my_symbol_layer, // F1-F12 keys & Symbols + my_other_layer // Self-Defined ); void keyboard_post_init_user(void) { rgblight_layers = my_rgb_layers; diff --git a/keyboards/quarkeys/z67/hotswap/keymaps/via/keymap.c b/keyboards/quarkeys/z67/hotswap/keymaps/via/keymap.c index 9adb5341ef..d0e749707c 100644 --- a/keyboards/quarkeys/z67/hotswap/keymaps/via/keymap.c +++ b/keyboards/quarkeys/z67/hotswap/keymaps/via/keymap.c @@ -1,4 +1,4 @@ -/* +/* / Copyright 2022 quarkeys / This program is free software: you can redistribute it and/or modify / it under the terms of the GNU General Public License as published by @@ -15,20 +15,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_ESC, 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_BSPC, KC_DEL, - 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_PGUP, - 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_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), MO(3), KC_LEFT, KC_DOWN, KC_RGHT), + [0] = LAYOUT_65_ansi_blocker( + KC_ESC, 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_BSPC, KC_DEL, + 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_PGUP, + 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_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), MO(3), KC_LEFT, KC_DOWN, KC_RGHT), - [1] = LAYOUT( - QK_BOOT, 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_TRNS, - KC_TRNS, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, KC_BSLS, KC_7, KC_8, KC_9, RGB_TOG, RGB_MOD, RGB_VAI, KC_TRNS, KC_TRNS, - KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PLUS, KC_MINS, KC_4, KC_5, KC_6, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, - KC_TRNS, KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_ASTR, KC_SLSH, KC_1, KC_2, KC_3, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) -}; + [1] = LAYOUT_65_ansi_blocker( + QK_BOOT, 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_TRNS, + KC_TRNS, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, KC_BSLS, KC_7, KC_8, KC_9, RGB_TOG, RGB_MOD, RGB_VAI, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PLUS, KC_MINS, KC_4, KC_5, KC_6, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, + KC_TRNS, KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_ASTR, KC_SLSH, KC_1, KC_2, KC_3, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({36, 1, HSV_RED}); const rgblight_segment_t PROGMEM my_ar_numpad_layer[] = RGBLIGHT_LAYER_SEGMENTS({45, 2, HSV_WHITE}); @@ -36,10 +36,10 @@ const rgblight_segment_t PROGMEM my_symbol_layer[] = RGBLIGHT_LAYER_SEGMENTS({30 const rgblight_segment_t PROGMEM my_other_layer[] = RGBLIGHT_LAYER_SEGMENTS({16, 2, HSV_WHITE}); const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( - my_capslock_layer, // Caplock indicator - my_ar_numpad_layer, // Arrow keys & Numpad, Operator keys, reset key, RGB control and media control - my_symbol_layer, // F1-F12 keys & Symbols - my_other_layer // Self-Defined + my_capslock_layer, // Caplock indicator + my_ar_numpad_layer, // Arrow keys & Numpad, Operator keys, reset key, RGB control and media control + my_symbol_layer, // F1-F12 keys & Symbols + my_other_layer // Self-Defined ); void keyboard_post_init_user(void) { rgblight_layers = my_rgb_layers; diff --git a/keyboards/quarkeys/z67/hotswap/readme.md b/keyboards/quarkeys/z67/hotswap/readme.md new file mode 100644 index 0000000000..aa14490da3 --- /dev/null +++ b/keyboards/quarkeys/z67/hotswap/readme.md @@ -0,0 +1,21 @@ +# Quarkeys Z67 Hotswap + +![Quarkeys Z67 Hotswap](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/quarkeys/z67/hotswap/72b918_11e28d17b7e648eaaacd19f6c50fc372~mv2.jpg) + +A hotswap 65% keyboard in ANSI layout with a 0.5u blocker, featuring per-key RGB. + +* Keyboard Maintainer: [TommyZ](https://github.com/tommyamoszhao) +* Hardware Supported: Quarkeys Z67 Hotswap +* Hardware Availability: [Quarkeys Studio](https://www.quarkeys.com/product-page/z67) + +Make example for this keyboard (after setting up your build environment): + + make quarkeys/z67/hotswap:default + +Flashing example for this keyboard: + + make quarkeys/z67/hotswap:default:flash + +**Bootloader:** Press the `QK_BOOT` keycode at ESC position of layer 1. + +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). From 5858efd6c9b8f1601fcc93c20d70d1e01cd0995d Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Thu, 21 Sep 2023 00:23:18 -0500 Subject: [PATCH 121/496] kimiko: mirror encoder pins between halves (#21728) --- keyboards/keycapsss/kimiko/keymaps/default/glcdfont.c | 4 ++++ keyboards/keycapsss/kimiko/keymaps/default/keymap.c | 10 +++++----- keyboards/keycapsss/kimiko/rev1/info.json | 11 +++++++++-- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/keyboards/keycapsss/kimiko/keymaps/default/glcdfont.c b/keyboards/keycapsss/kimiko/keymaps/default/glcdfont.c index 19d45a75c7..c3c79d76ee 100644 --- a/keyboards/keycapsss/kimiko/keymaps/default/glcdfont.c +++ b/keyboards/keycapsss/kimiko/keymaps/default/glcdfont.c @@ -1,3 +1,7 @@ +// Copyright 2019 MechMerlin +// Copyright 2020 @ben_roe (keycapsss.com) +// SPDX-License-Identifier: GPL-2.0-or-later + #include "progmem.h" // Corne 8x6 font diff --git a/keyboards/keycapsss/kimiko/keymaps/default/keymap.c b/keyboards/keycapsss/kimiko/keymaps/default/keymap.c index 0515b96dfe..74da1ce973 100644 --- a/keyboards/keycapsss/kimiko/keymaps/default/keymap.c +++ b/keyboards/keycapsss/kimiko/keymaps/default/keymap.c @@ -334,11 +334,11 @@ bool oled_task_user(void) { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_QWERTY] = { ENCODER_CCW_CW(KC_UP, KC_DOWN), ENCODER_CCW_CW(KC_RGHT, KC_LEFT) }, - [_LOWER] = { ENCODER_CCW_CW(KC_TAB, RGB_HUI), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, - [_RAISE] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_SPD, RGB_SPI) }, - [_ADJUST] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(RGB_HUI, RGB_HUD) }, + [_QWERTY] = { ENCODER_CCW_CW(KC_DOWN, KC_UP), ENCODER_CCW_CW(KC_LEFT, KC_RGHT) }, + [_LOWER] = { ENCODER_CCW_CW(RGB_HUI, KC_TAB), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_RAISE] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_SPD, RGB_SPI) }, + [_ADJUST] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) }, }; -#endif // ENCODER_MAP_ENABLE +#endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keycapsss/kimiko/rev1/info.json b/keyboards/keycapsss/kimiko/rev1/info.json index e0106f4423..1a7f62b2c8 100644 --- a/keyboards/keycapsss/kimiko/rev1/info.json +++ b/keyboards/keycapsss/kimiko/rev1/info.json @@ -15,11 +15,18 @@ "diode_direction": "COL2ROW", "encoder": { "rotary": [ - {"pin_a": "F4", "pin_b": "F5"} + {"pin_a": "F5", "pin_b": "F4"} ] }, "split": { - "soft_serial_pin": "D2" + "soft_serial_pin": "D2", + "encoder": { + "right": { + "rotary": [ + {"pin_a": "F4", "pin_b": "F5"} + ] + } + } }, "rgblight": { "led_count": 60, From 629ac9ae68dc1b4d60bd7e4d4905a9f877d99495 Mon Sep 17 00:00:00 2001 From: Richard Goulter Date: Thu, 21 Sep 2023 12:45:25 +0700 Subject: [PATCH 122/496] Add KPRepublic/BM40hsrgb rev2 (#16689) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Joel Challis Co-authored-by: jack <0x6a73@protonmail.com> --- data/mappings/keyboard_aliases.hjson | 3 + .../bm40hsrgb/keymaps/wolff_abnt2/config.h | 74 ------- .../bm40hsrgb/keymaps/wolff_abnt2/rules.mk | 19 -- keyboards/kprepublic/bm40hsrgb/readme.md | 8 +- .../kprepublic/bm40hsrgb/{ => rev1}/config.h | 0 .../kprepublic/bm40hsrgb/{ => rev1}/info.json | 0 .../{ => rev1}/keymaps/default/keymap.c | 0 .../{ => rev1}/keymaps/default/readme.md | 0 .../{ => rev1}/keymaps/gabustoledo/config.h | 0 .../{ => rev1}/keymaps/gabustoledo/keymap.c | 0 .../{ => rev1}/keymaps/gabustoledo/readme.md | 0 .../{ => rev1}/keymaps/gabustoledo/rules.mk | 0 .../{ => rev1}/keymaps/signynt/config.h | 0 .../{ => rev1}/keymaps/signynt/keymap.c | 0 .../{ => rev1}/keymaps/signynt/readme.md | 0 .../{ => rev1}/keymaps/signynt/rules.mk | 0 .../keymaps/signynt_2_loud/config.h | 0 .../keymaps/signynt_2_loud/keymap.c | 0 .../keymaps/signynt_2_loud/readme.md | 0 .../keymaps/signynt_2_loud/rules.mk | 0 .../keymaps/signynt_2_quiet/config.h | 0 .../keymaps/signynt_2_quiet/keymap.c | 0 .../keymaps/signynt_2_quiet/readme.md | 0 .../keymaps/signynt_2_quiet/rules.mk | 0 .../bm40hsrgb/{ => rev1}/keymaps/via/keymap.c | 0 .../{ => rev1}/keymaps/via/readme.md | 0 .../bm40hsrgb/{ => rev1}/keymaps/via/rules.mk | 0 .../{ => rev1}/keymaps/wolff_abnt2/keymap.c | 0 .../{ => rev1}/keymaps/wolff_abnt2/readme.md | 0 keyboards/kprepublic/bm40hsrgb/rev1/readme.md | 21 ++ .../bm40hsrgb/{bm40hsrgb.c => rev1/rev1.c} | 0 .../kprepublic/bm40hsrgb/{ => rev1}/rules.mk | 0 keyboards/kprepublic/bm40hsrgb/rev2/config.h | 22 ++ keyboards/kprepublic/bm40hsrgb/rev2/info.json | 197 ++++++++++++++++++ .../bm40hsrgb/rev2/keymaps/default/keymap.c | 101 +++++++++ .../bm40hsrgb/rev2/keymaps/default/rules.mk | 1 + .../bm40hsrgb/rev2/keymaps/via/keymap.c | 100 +++++++++ .../bm40hsrgb/rev2/keymaps/via/rules.mk | 3 + keyboards/kprepublic/bm40hsrgb/rev2/readme.md | 29 +++ keyboards/kprepublic/bm40hsrgb/rev2/rev2.c | 73 +++++++ keyboards/kprepublic/bm40hsrgb/rev2/rules.mk | 0 41 files changed, 555 insertions(+), 96 deletions(-) delete mode 100755 keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/config.h delete mode 100755 keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/rules.mk rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/config.h (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/info.json (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/keymaps/default/keymap.c (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/keymaps/default/readme.md (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/keymaps/gabustoledo/config.h (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/keymaps/gabustoledo/keymap.c (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/keymaps/gabustoledo/readme.md (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/keymaps/gabustoledo/rules.mk (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/keymaps/signynt/config.h (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/keymaps/signynt/keymap.c (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/keymaps/signynt/readme.md (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/keymaps/signynt/rules.mk (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/keymaps/signynt_2_loud/config.h (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/keymaps/signynt_2_loud/keymap.c (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/keymaps/signynt_2_loud/readme.md (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/keymaps/signynt_2_loud/rules.mk (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/keymaps/signynt_2_quiet/config.h (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/keymaps/signynt_2_quiet/keymap.c (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/keymaps/signynt_2_quiet/readme.md (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/keymaps/signynt_2_quiet/rules.mk (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/keymaps/via/keymap.c (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/keymaps/via/readme.md (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/keymaps/via/rules.mk (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/keymaps/wolff_abnt2/keymap.c (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/keymaps/wolff_abnt2/readme.md (100%) create mode 100644 keyboards/kprepublic/bm40hsrgb/rev1/readme.md rename keyboards/kprepublic/bm40hsrgb/{bm40hsrgb.c => rev1/rev1.c} (100%) rename keyboards/kprepublic/bm40hsrgb/{ => rev1}/rules.mk (100%) create mode 100755 keyboards/kprepublic/bm40hsrgb/rev2/config.h create mode 100644 keyboards/kprepublic/bm40hsrgb/rev2/info.json create mode 100755 keyboards/kprepublic/bm40hsrgb/rev2/keymaps/default/keymap.c create mode 100644 keyboards/kprepublic/bm40hsrgb/rev2/keymaps/default/rules.mk create mode 100644 keyboards/kprepublic/bm40hsrgb/rev2/keymaps/via/keymap.c create mode 100644 keyboards/kprepublic/bm40hsrgb/rev2/keymaps/via/rules.mk create mode 100644 keyboards/kprepublic/bm40hsrgb/rev2/readme.md create mode 100755 keyboards/kprepublic/bm40hsrgb/rev2/rev2.c create mode 100644 keyboards/kprepublic/bm40hsrgb/rev2/rules.mk diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 294e7ba094..fbb25b0298 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -890,6 +890,9 @@ "kelowna/rgb64": { "target": "weirdo/kelowna/rgb64" }, + "kprepublic/bm40hsrgb": { + "target": "kprepublic/bm40hsrgb/rev1" + }, "kprepublic/bm65hsrgb_iso": { "target": "kprepublic/bm65hsrgb_iso/rev1" }, diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/config.h b/keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/config.h deleted file mode 100755 index 418b182c3b..0000000000 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/config.h +++ /dev/null @@ -1,74 +0,0 @@ -/* Copyright 2020 lmlask - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define MOUSEKEY_DELAY 50 -#define MIDI_ADVANCED -#define TAPPING_TERM 175 //For fast typing -#define QUICK_TAP_TERM 0 //No autorepeat in tap-hold keys -#define HOLD_ON_OTHER_KEY_PRESS //For fast typing - -// Min 0, max 32 -#define JOYSTICK_BUTTON_COUNT 32 -// Min 0, max 6: X, Y, Z, Rx, Ry, Rz -#define JOYSTICK_AXIS_COUNT 0 -// Min 8, max 16 -#define JOYSTICK_AXIS_RESOLUTION 8 - -#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended - -//#undef ENABLE_RGB_MATRIX_ALPHAS_MODS // Enables RGB_MATRIX_ALPHAS_MODS -#undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Enables RGB_MATRIX_GRADIENT_UP_DOWN -#undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Enables RGB_MATRIX_GRADIENT_LEFT_RIGHT -//#undef ENABLE_RGB_MATRIX_BREATHING // Enables RGB_MATRIX_BREATHING -//#undef ENABLE_RGB_MATRIX_BAND_SAT // Enables RGB_MATRIX_BAND_SAT -//#undef ENABLE_RGB_MATRIX_BAND_VAL //Enables RGB_MATRIX_BAND_VAL -#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Enables RGB_MATRIX_BAND_PINWHEEL_SAT -#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Enables RGB_MATRIX_BAND_PINWHEEL_VAL -#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Enables RGB_MATRIX_BAND_SPIRAL_SAT -#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Enables RGB_MATRIX_BAND_SPIRAL_VAL -#undef ENABLE_RGB_MATRIX_CYCLE_ALL // Enables RGB_MATRIX_CYCLE_ALL -#undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Enables RGB_MATRIX_CYCLE_LEFT_RIGHT -#undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN // Enables RGB_MATRIX_CYCLE_UP_DOWN -#undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Enables RGB_MATRIX_RAINBOW_MOVING_CHEVRON -#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN //Enables RGB_MATRIX_CYCLE_OUT_IN -#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Enables RGB_MATRIX_CYCLE_OUT_IN_DUAL -#undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL // Enables RGB_MATRIX_CYCLE_PINWHEEL -#undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL // Enables RGB_MATRIX_CYCLE_SPIRAL -#undef ENABLE_RGB_MATRIX_DUAL_BEACON //Enables RGB_MATRIX_DUAL_BEACON -#undef ENABLE_RGB_MATRIX_RAINBOW_BEACON// Enables RGB_MATRIX_RAINBOW_BEACON -#undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Enables RGB_MATRIX_RAINBOW_PINWHEELS -#undef ENABLE_RGB_MATRIX_RAINDROPS //Enables RGB_MATRIX_RAINDROPS -#undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS// Enables RGB_MATRIX_JELLYBEAN_RAINDROPS -//#undef ENABLE_RGB_MATRIX_HUE_BREATHING // Enables RGB_MATRIX_HUE_BREATHING -#undef ENABLE_RGB_MATRIX_HUE_PENDULUM //Enables RGB_MATRIX_HUE_PENDULUM -#undef ENABLE_RGB_MATRIX_HUE_WAVE //Enables RGB_MATRIX_HUE_WAVE -#undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL //Enables RGB_MATRIX_PIXEL_FRACTAL -#undef ENABLE_RGB_MATRIX_PIXEL_FLOW //Enables RGB_MATRIX_PIXEL_FLOW -#undef ENABLE_RGB_MATRIX_PIXEL_RAIN //Enables RGB_MATRIX_PIXEL_RAIN -//#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Enables RGB_MATRIX_SOLID_REACTIVE_SIMPLE -//#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE // Enables RGB_MATRIX_SOLID_REACTIVE -//#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE //Enables RGB_MATRIX_SOLID_REACTIVE_WIDE -//#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Enables RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -//#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Enables RGB_MATRIX_SOLID_REACTIVE_CROSS -#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Enables RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -//#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS //Enables RGB_MATRIX_SOLID_REACTIVE_NEXUS -#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS //Enables RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -//#undef ENABLE_RGB_MATRIX_SPLASH //Enables RGB_MATRIX_SPLASH -#undef ENABLE_RGB_MATRIX_MULTISPLASH // Enables RGB_MATRIX_MULTISPLASH -//#undef ENABLE_RGB_MATRIX_SOLID_SPLASH //Enables RGB_MATRIX_SOLID_SPLASH -#undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Enables RGB_MATRIX_SOLID_MULTISPLASH diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/rules.mk b/keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/rules.mk deleted file mode 100755 index c69721fa47..0000000000 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/rules.mk +++ /dev/null @@ -1,19 +0,0 @@ -LTO_ENABLE = yes -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -TERMINAL_ENABLE = no - -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -SPLIT_KEYBOARD = no -KEY_LOCK_ENABLE = no -RGB_MATRIX_ENABLE = yes -LAYOUTS = planck_mit - -MIDI_ENABLE = yes -JOYSTICK_ENABLE = yes -JOYSTICK_DRIVER = digital -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -SWAP_HANDS_ENABLE = yes - -STENO_ENABLE = no # Enabling steno requires disabling all options in the previous block. diff --git a/keyboards/kprepublic/bm40hsrgb/readme.md b/keyboards/kprepublic/bm40hsrgb/readme.md index 609b3c4184..fd84dfb81b 100644 --- a/keyboards/kprepublic/bm40hsrgb/readme.md +++ b/keyboards/kprepublic/bm40hsrgb/readme.md @@ -1,6 +1,6 @@ # bm40hsrgb -![BM40 RGB](https://rgoulter.com/images/keyboards/bm40rgb/bm40rgb_large.jpg) +![BM40 RGB](https://i.imgur.com/eOqXMlNh.jpg) An ortholinear 40% hotswap keyboard with per-key RGB in-switch LEDs and RGB Backlighting, from KP Republic. @@ -12,10 +12,12 @@ This firmware was originally taken from a kbfirmware.json and manually converted Make example for this keyboard (after setting up your build environment): - make kprepublic/bm40hsrgb:default + for rev1: make kprepublic/bm40hsrgb/rev1:default + for rev2: make kprepublic/bm40hsrgb/rev2:default Flashing example for this keyboard: - make kprepublic/bm40hsrgb:default:flash + for rev1: make kprepublic/bm40hsrgb/rev1:default:flash + for rev2: make kprepublic/bm40hsrgb/rev2:default:flash 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). diff --git a/keyboards/kprepublic/bm40hsrgb/config.h b/keyboards/kprepublic/bm40hsrgb/rev1/config.h similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/config.h rename to keyboards/kprepublic/bm40hsrgb/rev1/config.h diff --git a/keyboards/kprepublic/bm40hsrgb/info.json b/keyboards/kprepublic/bm40hsrgb/rev1/info.json similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/info.json rename to keyboards/kprepublic/bm40hsrgb/rev1/info.json diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/default/keymap.c b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/default/keymap.c similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/keymaps/default/keymap.c rename to keyboards/kprepublic/bm40hsrgb/rev1/keymaps/default/keymap.c diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/default/readme.md b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/default/readme.md similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/keymaps/default/readme.md rename to keyboards/kprepublic/bm40hsrgb/rev1/keymaps/default/readme.md diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/config.h b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/gabustoledo/config.h similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/config.h rename to keyboards/kprepublic/bm40hsrgb/rev1/keymaps/gabustoledo/config.h diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/keymap.c b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/gabustoledo/keymap.c similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/keymap.c rename to keyboards/kprepublic/bm40hsrgb/rev1/keymaps/gabustoledo/keymap.c diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/readme.md b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/gabustoledo/readme.md similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/readme.md rename to keyboards/kprepublic/bm40hsrgb/rev1/keymaps/gabustoledo/readme.md diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/rules.mk b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/gabustoledo/rules.mk similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/rules.mk rename to keyboards/kprepublic/bm40hsrgb/rev1/keymaps/gabustoledo/rules.mk diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/config.h b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt/config.h similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/keymaps/signynt/config.h rename to keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt/config.h diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/keymap.c b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt/keymap.c similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/keymaps/signynt/keymap.c rename to keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt/keymap.c diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/readme.md b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt/readme.md similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/keymaps/signynt/readme.md rename to keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt/readme.md diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/rules.mk b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt/rules.mk similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/keymaps/signynt/rules.mk rename to keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt/rules.mk diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/config.h b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_loud/config.h similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/config.h rename to keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_loud/config.h diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/keymap.c b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_loud/keymap.c similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/keymap.c rename to keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_loud/keymap.c diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/readme.md b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_loud/readme.md similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/readme.md rename to keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_loud/readme.md diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/rules.mk b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_loud/rules.mk similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/rules.mk rename to keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_loud/rules.mk diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/config.h b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_quiet/config.h similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/config.h rename to keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_quiet/config.h diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_quiet/keymap.c similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c rename to keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_quiet/keymap.c diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/readme.md b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_quiet/readme.md similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/readme.md rename to keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_quiet/readme.md diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/rules.mk b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_quiet/rules.mk similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/rules.mk rename to keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_quiet/rules.mk diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/via/keymap.c b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/via/keymap.c similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/keymaps/via/keymap.c rename to keyboards/kprepublic/bm40hsrgb/rev1/keymaps/via/keymap.c diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/via/readme.md b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/via/readme.md similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/keymaps/via/readme.md rename to keyboards/kprepublic/bm40hsrgb/rev1/keymaps/via/readme.md diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/via/rules.mk b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/via/rules.mk similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/keymaps/via/rules.mk rename to keyboards/kprepublic/bm40hsrgb/rev1/keymaps/via/rules.mk diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/keymap.c b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/wolff_abnt2/keymap.c similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/keymap.c rename to keyboards/kprepublic/bm40hsrgb/rev1/keymaps/wolff_abnt2/keymap.c diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/readme.md b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/wolff_abnt2/readme.md similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/readme.md rename to keyboards/kprepublic/bm40hsrgb/rev1/keymaps/wolff_abnt2/readme.md diff --git a/keyboards/kprepublic/bm40hsrgb/rev1/readme.md b/keyboards/kprepublic/bm40hsrgb/rev1/readme.md new file mode 100644 index 0000000000..00df7b02ad --- /dev/null +++ b/keyboards/kprepublic/bm40hsrgb/rev1/readme.md @@ -0,0 +1,21 @@ +# bm40hsrgb + +![BM40 RGB](https://imgur.com/eOqXMlNh.jpeg) + +An ortholinear 40% hotswap keyboard with per-key RGB in-switch LEDs and RGB Backlighting, from KP Republic. + +This firmware was originally taken from a kbfirmware.json and manually converted. You may find the original `.json` files [here](https://drive.google.com/drive/folders/1tlTHQIFcluK2mjZ4UbbKCsdRLgSRSPw6). + +* Keyboard Maintainer: [rgoulter](https://github.com/rgoulter) +* Hardware Supported: bm40hsrgb PCB +* Hardware Availability: [KPRepublic](https://www.aliexpress.com/item/4001147779116.html) + +Make example for this keyboard (after setting up your build environment): + + make kprepublic/bm40hsrgb/rev1:default + +Flashing example for this keyboard: + + make kprepublic/bm40hsrgb/rev1:default:flash + +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). diff --git a/keyboards/kprepublic/bm40hsrgb/bm40hsrgb.c b/keyboards/kprepublic/bm40hsrgb/rev1/rev1.c similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/bm40hsrgb.c rename to keyboards/kprepublic/bm40hsrgb/rev1/rev1.c diff --git a/keyboards/kprepublic/bm40hsrgb/rules.mk b/keyboards/kprepublic/bm40hsrgb/rev1/rules.mk similarity index 100% rename from keyboards/kprepublic/bm40hsrgb/rules.mk rename to keyboards/kprepublic/bm40hsrgb/rev1/rules.mk diff --git a/keyboards/kprepublic/bm40hsrgb/rev2/config.h b/keyboards/kprepublic/bm40hsrgb/rev2/config.h new file mode 100755 index 0000000000..84df5017b6 --- /dev/null +++ b/keyboards/kprepublic/bm40hsrgb/rev2/config.h @@ -0,0 +1,22 @@ +/* Copyright 2020 tominabox1 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define DRIVER_COUNT 1 +#define DRIVER_ADDR_1 0b1010000 +#define RGB_MATRIX_LED_COUNT 47 +#define RGB_MATRIX_KEYPRESSES +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended diff --git a/keyboards/kprepublic/bm40hsrgb/rev2/info.json b/keyboards/kprepublic/bm40hsrgb/rev2/info.json new file mode 100644 index 0000000000..dac848ed52 --- /dev/null +++ b/keyboards/kprepublic/bm40hsrgb/rev2/info.json @@ -0,0 +1,197 @@ +{ + "keyboard_name": "BM40 Hotswap RGB", + "manufacturer": "KPRepublic", + "url": "", + "maintainer": "qmk", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgblight": true, + "rgb_matrix": true, + "tri_layer": true, + "console": false, + "command": false, + "nkro": false, + "backlight": false, + "audio": false + }, + "usb": { + "vid": "0x4B50", + "pid": "0x3430", + "device_version": "0.0.2" + }, + "ws2812": { + "pin": "B0" + }, + "rgblight": { + "led_count": 6, + "max_brightness": 150, + "animations": { + "knight": true, + "rainbow_swirl": true + } + }, + "rgb_matrix": { + "driver": "is31fl3733", + "max_brightness": 150, + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_rain": true, + "pixel_flow": true, + "pixel_fractal": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 101, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 122, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 142, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1}, + {"matrix": [1, 1], "x": 20, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 81, "y": 21, "flags": 4}, + {"matrix": [1, 5], "x": 101, "y": 21, "flags": 4}, + {"matrix": [1, 6], "x": 122, "y": 21, "flags": 4}, + {"matrix": [1, 7], "x": 142, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 162, "y": 21, "flags": 4}, + {"matrix": [1, 9], "x": 183, "y": 21, "flags": 4}, + {"matrix": [1, 10], "x": 203, "y": 21, "flags": 4}, + {"matrix": [1, 11], "x": 224, "y": 21, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 42, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 42, "flags": 4}, + {"matrix": [2, 3], "x": 61, "y": 42, "flags": 4}, + {"matrix": [2, 4], "x": 81, "y": 42, "flags": 4}, + {"matrix": [2, 5], "x": 101, "y": 42, "flags": 4}, + {"matrix": [2, 6], "x": 122, "y": 42, "flags": 4}, + {"matrix": [2, 7], "x": 142, "y": 42, "flags": 4}, + {"matrix": [2, 8], "x": 162, "y": 42, "flags": 4}, + {"matrix": [2, 9], "x": 183, "y": 42, "flags": 4}, + {"matrix": [2, 10], "x": 203, "y": 42, "flags": 4}, + {"matrix": [2, 11], "x": 224, "y": 42, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [3, 1], "x": 20, "y": 64, "flags": 1}, + {"matrix": [3, 2], "x": 40, "y": 64, "flags": 1}, + {"matrix": [3, 3], "x": 61, "y": 64, "flags": 1}, + {"matrix": [3, 4], "x": 81, "y": 64, "flags": 1}, + {"matrix": [3, 5], "x": 111, "y": 64, "flags": 1}, + {"matrix": [3, 7], "x": 142, "y": 64, "flags": 1}, + {"matrix": [3, 8], "x": 162, "y": 64, "flags": 1}, + {"matrix": [3, 9], "x": 183, "y": 64, "flags": 1}, + {"matrix": [3, 10], "x": 203, "y": 64, "flags": 1}, + {"matrix": [3, 11], "x": 224, "y": 64, "flags": 1} + ] + }, + "matrix_pins": { + "cols": ["B2", "B3", "D5", "D3", "D2", "B7", "F0", "B4", "B5", "B6", "C6", "C7"], + "rows": ["D7", "F7", "F6", "F5"] + }, + "diode_direction": "ROW2COL", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "community_layouts": ["planck_mit"], + "layout_aliases": { + "LAYOUT_planck_mit": "LAYOUT_ortho_4x12_1x2uC" + }, + "layouts": { + "LAYOUT_ortho_4x12_1x2uC": { + "layout": [ + {"label":"K00", "matrix": [0, 0], "x":0, "y":0}, + {"label":"K01", "matrix": [0, 1], "x":1, "y":0}, + {"label":"K02", "matrix": [0, 2], "x":2, "y":0}, + {"label":"K03", "matrix": [0, 3], "x":3, "y":0}, + {"label":"K04", "matrix": [0, 4], "x":4, "y":0}, + {"label":"K05", "matrix": [0, 5], "x":5, "y":0}, + {"label":"K06", "matrix": [0, 6], "x":6, "y":0}, + {"label":"K07", "matrix": [0, 7], "x":7, "y":0}, + {"label":"K08", "matrix": [0, 8], "x":8, "y":0}, + {"label":"K09", "matrix": [0, 9], "x":9, "y":0}, + {"label":"K0A", "matrix": [0, 10], "x":10, "y":0}, + {"label":"K0B", "matrix": [0, 11], "x":11, "y":0}, + {"label":"K10", "matrix": [1, 0], "x":0, "y":1}, + {"label":"K11", "matrix": [1, 1], "x":1, "y":1}, + {"label":"K12", "matrix": [1, 2], "x":2, "y":1}, + {"label":"K13", "matrix": [1, 3], "x":3, "y":1}, + {"label":"K14", "matrix": [1, 4], "x":4, "y":1}, + {"label":"K15", "matrix": [1, 5], "x":5, "y":1}, + {"label":"K16", "matrix": [1, 6], "x":6, "y":1}, + {"label":"K17", "matrix": [1, 7], "x":7, "y":1}, + {"label":"K18", "matrix": [1, 8], "x":8, "y":1}, + {"label":"K19", "matrix": [1, 9], "x":9, "y":1}, + {"label":"K1A", "matrix": [1, 10], "x":10, "y":1}, + {"label":"K1B", "matrix": [1, 11], "x":11, "y":1}, + {"label":"K20", "matrix": [2, 0], "x":0, "y":2}, + {"label":"K21", "matrix": [2, 1], "x":1, "y":2}, + {"label":"K22", "matrix": [2, 2], "x":2, "y":2}, + {"label":"K23", "matrix": [2, 3], "x":3, "y":2}, + {"label":"K24", "matrix": [2, 4], "x":4, "y":2}, + {"label":"K25", "matrix": [2, 5], "x":5, "y":2}, + {"label":"K26", "matrix": [2, 6], "x":6, "y":2}, + {"label":"K27", "matrix": [2, 7], "x":7, "y":2}, + {"label":"K28", "matrix": [2, 8], "x":8, "y":2}, + {"label":"K29", "matrix": [2, 9], "x":9, "y":2}, + {"label":"K2A", "matrix": [2, 10], "x":10, "y":2}, + {"label":"K2B", "matrix": [2, 11], "x":11, "y":2}, + {"label":"K30", "matrix": [3, 0], "x":0, "y":3}, + {"label":"K31", "matrix": [3, 1], "x":1, "y":3}, + {"label":"K32", "matrix": [3, 2], "x":2, "y":3}, + {"label":"K33", "matrix": [3, 3], "x":3, "y":3}, + {"label":"K34", "matrix": [3, 4], "x":4, "y":3}, + {"label":"K35", "matrix": [3, 5], "x":5, "y":3, "w":2}, + {"label":"K37", "matrix": [3, 7], "x":7, "y":3}, + {"label":"K38", "matrix": [3, 8], "x":8, "y":3}, + {"label":"K39", "matrix": [3, 9], "x":9, "y":3}, + {"label":"K3A", "matrix": [3, 10], "x":10, "y":3}, + {"label":"K3B", "matrix": [3, 11], "x":11, "y":3} + ] + } + } +} diff --git a/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/default/keymap.c b/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/default/keymap.c new file mode 100755 index 0000000000..5f389e4caf --- /dev/null +++ b/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/default/keymap.c @@ -0,0 +1,101 @@ +/* Copyright 2020 tominabox1 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | BLTog| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = LAYOUT_ortho_4x12_1x2uC( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, TL_LOWR, KC_SPC, TL_UPPR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT_ortho_4x12_1x2uC( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT_ortho_4x12_1x2uC( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Adjust (Lower + Raise) + * v------------------------RGB CONTROL--------------------v + * ,-----------------------------------------------------------------------------------. + * | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = LAYOUT_ortho_4x12_1x2uC( + _______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + +}; + diff --git a/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/default/rules.mk b/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/default/rules.mk new file mode 100644 index 0000000000..4da205a168 --- /dev/null +++ b/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/default/rules.mk @@ -0,0 +1 @@ +LTO_ENABLE = yes diff --git a/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/via/keymap.c b/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/via/keymap.c new file mode 100644 index 0000000000..216d7cb888 --- /dev/null +++ b/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/via/keymap.c @@ -0,0 +1,100 @@ +/* Copyright 2020 tominabox1 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | BLTog| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = LAYOUT_ortho_4x12_1x2uC( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, TL_LOWR, KC_SPC, TL_UPPR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT_ortho_4x12_1x2uC( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT_ortho_4x12_1x2uC( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Adjust (Lower + Raise) + * v------------------------RGB CONTROL--------------------v + * ,-----------------------------------------------------------------------------------. + * | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = LAYOUT_ortho_4x12_1x2uC( + _______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + +}; diff --git a/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/via/rules.mk b/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/via/rules.mk new file mode 100644 index 0000000000..0cea9288cc --- /dev/null +++ b/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes +RGBLIGHT_ENABLE = no diff --git a/keyboards/kprepublic/bm40hsrgb/rev2/readme.md b/keyboards/kprepublic/bm40hsrgb/rev2/readme.md new file mode 100644 index 0000000000..2c2264e4e8 --- /dev/null +++ b/keyboards/kprepublic/bm40hsrgb/rev2/readme.md @@ -0,0 +1,29 @@ +# bm40hsrgb + +![BM40 RGB](https://i.imgur.com/eOqXMlNh.jpg) + +An ortholinear 40% hotswap keyboard with per-key RGB in-switch LEDs and RGB Backlighting, from KP Republic. + +This firmware was originally taken from a kbfirmware.json and manually converted. You may find the original `.json` files [here](https://drive.google.com/drive/folders/1tlTHQIFcluK2mjZ4UbbKCsdRLgSRSPw6). + +* Keyboard Maintainer: [rgoulter](https://github.com/rgoulter) +* Hardware Supported: bm40hsrgb PCB +* Hardware Availability: [KPRepublic](https://www.aliexpress.com/item/4001147779116.html) + +Make example for this keyboard (after setting up your build environment): + + make kprepublic/bm40hsrgb/rev2:default + +Flashing example for this keyboard: + + make kprepublic/bm40hsrgb/rev2:default:flash + +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). + +## Bootloader + +There are multiple ways to enter the bootloader so that firmware can be flashed onto the keyboard: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top left key) and plug in the keyboard. +* **Physical reset button**: Briefly press the button labeled 'RST' on the back of the PCB. +* **Keycode in layout**: Press the key mapped to `RESET` if it is available. diff --git a/keyboards/kprepublic/bm40hsrgb/rev2/rev2.c b/keyboards/kprepublic/bm40hsrgb/rev2/rev2.c new file mode 100755 index 0000000000..b4a7e4399f --- /dev/null +++ b/keyboards/kprepublic/bm40hsrgb/rev2/rev2.c @@ -0,0 +1,73 @@ +/* Copyright 2020 tominabox1, Richard Goulter + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "quantum.h" + +#if defined(RGB_MATRIX_ENABLE) + +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { + { 0, B_1, A_1, C_1 }, + { 0, B_2, A_2, C_2 }, + { 0, B_3, A_3, C_3 }, + { 0, B_4, A_4, C_4 }, + { 0, B_5, A_5, C_5 }, + { 0, B_6, A_6, C_6 }, + { 0, B_7, A_7, C_7 }, + { 0, B_8, A_8, C_8 }, + { 0, B_9, A_9, C_9 }, + { 0, B_10, A_10, C_10 }, + { 0, B_11, A_11, C_11 }, + { 0, B_12, A_12, C_12 }, + + { 0, E_1, D_1, F_1 }, + { 0, E_2, D_2, F_2 }, + { 0, E_3, D_3, F_3 }, + { 0, E_4, D_4, F_4 }, + { 0, E_5, D_5, F_5 }, + { 0, E_6, D_6, F_6 }, + { 0, E_7, D_7, F_7 }, + { 0, E_8, D_8, F_8 }, + { 0, E_9, D_9, F_9 }, + { 0, E_10, D_10, F_10 }, + { 0, E_11, D_11, F_11 }, + { 0, E_12, D_12, F_12 }, + + { 0, H_1, G_1, I_1 }, + { 0, H_2, G_2, I_2 }, + { 0, H_3, G_3, I_3 }, + { 0, H_4, G_4, I_4 }, + { 0, H_5, G_5, I_5 }, + { 0, H_6, G_6, I_6 }, + { 0, H_7, G_7, I_7 }, + { 0, H_8, G_8, I_8 }, + { 0, H_9, G_9, I_9 }, + { 0, H_10, G_10, I_10 }, + { 0, H_11, G_11, I_11 }, + { 0, H_12, G_12, I_12 }, + + { 0, K_1, J_1, L_1 }, + { 0, K_2, J_2, L_2 }, + { 0, K_3, J_3, L_3 }, + { 0, K_4, J_4, L_4 }, + { 0, K_5, J_5, L_5 }, + { 0, K_6, J_6, L_6 }, + { 0, K_8, J_8, L_8 }, + { 0, K_9, J_9, L_9 }, + { 0, K_10, J_10, L_10 }, + { 0, K_11, J_11, L_11 }, + { 0, K_12, J_12, L_12 } +}; + +#endif /* RGB_MATRIX_ENABLE */ diff --git a/keyboards/kprepublic/bm40hsrgb/rev2/rules.mk b/keyboards/kprepublic/bm40hsrgb/rev2/rules.mk new file mode 100644 index 0000000000..e69de29bb2 From 363dee82d82f5697e915352da373f8d12e760d4d Mon Sep 17 00:00:00 2001 From: lalalademaxiya1 <66767061+lalalademaxiya1@users.noreply.github.com> Date: Thu, 21 Sep 2023 13:45:36 +0800 Subject: [PATCH 123/496] Keychron q9 plus (#21399) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre --- .../q9_plus/ansi_encoder/ansi_encoder.c | 85 ++++++++++++ .../keychron/q9_plus/ansi_encoder/config.h | 26 ++++ .../keychron/q9_plus/ansi_encoder/info.json | 66 ++++++++++ .../ansi_encoder/keymaps/default/keymap.c | 71 ++++++++++ .../ansi_encoder/keymaps/default/rules.mk | 2 + .../ansi_encoder/keymaps/keychron/keymap.c | 80 +++++++++++ .../ansi_encoder/keymaps/keychron/rules.mk | 5 + .../q9_plus/ansi_encoder/keymaps/via/keymap.c | 71 ++++++++++ .../q9_plus/ansi_encoder/keymaps/via/rules.mk | 2 + .../keychron/q9_plus/ansi_encoder/rules.mk | 0 keyboards/keychron/q9_plus/config.h | 58 ++++++++ keyboards/keychron/q9_plus/halconf.h | 21 +++ keyboards/keychron/q9_plus/info.json | 124 ++++++++++++++++++ keyboards/keychron/q9_plus/mcuconf.h | 22 ++++ keyboards/keychron/q9_plus/q9_plus.c | 82 ++++++++++++ keyboards/keychron/q9_plus/readme.md | 21 +++ 16 files changed, 736 insertions(+) create mode 100755 keyboards/keychron/q9_plus/ansi_encoder/ansi_encoder.c create mode 100755 keyboards/keychron/q9_plus/ansi_encoder/config.h create mode 100755 keyboards/keychron/q9_plus/ansi_encoder/info.json create mode 100755 keyboards/keychron/q9_plus/ansi_encoder/keymaps/default/keymap.c create mode 100755 keyboards/keychron/q9_plus/ansi_encoder/keymaps/default/rules.mk create mode 100755 keyboards/keychron/q9_plus/ansi_encoder/keymaps/keychron/keymap.c create mode 100755 keyboards/keychron/q9_plus/ansi_encoder/keymaps/keychron/rules.mk create mode 100755 keyboards/keychron/q9_plus/ansi_encoder/keymaps/via/keymap.c create mode 100755 keyboards/keychron/q9_plus/ansi_encoder/keymaps/via/rules.mk create mode 100755 keyboards/keychron/q9_plus/ansi_encoder/rules.mk create mode 100755 keyboards/keychron/q9_plus/config.h create mode 100755 keyboards/keychron/q9_plus/halconf.h create mode 100755 keyboards/keychron/q9_plus/info.json create mode 100755 keyboards/keychron/q9_plus/mcuconf.h create mode 100755 keyboards/keychron/q9_plus/q9_plus.c create mode 100755 keyboards/keychron/q9_plus/readme.md diff --git a/keyboards/keychron/q9_plus/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q9_plus/ansi_encoder/ansi_encoder.c new file mode 100755 index 0000000000..c0b4b3a32d --- /dev/null +++ b/keyboards/keychron/q9_plus/ansi_encoder/ansi_encoder.c @@ -0,0 +1,85 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to CKLED2001 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, L_16, J_16, K_16}, + {0, L_15, J_15, K_15}, + {0, L_14, J_14, K_14}, + {0, L_13, J_13, K_13}, + {0, L_12, J_12, K_12}, + {0, L_11, J_11, K_11}, + {0, L_10, J_10, K_10}, + {0, L_9, J_9, K_9}, + {0, L_8, J_8, K_8}, + {0, L_7, J_7, K_7}, + {0, L_6, J_6, K_6}, + {0, L_5, J_5, K_5}, + {0, L_4, J_4, K_4}, + {0, L_3, J_3, K_3}, + // {0, L_2, J_2, K_2}, + + {0, C_16, A_16, B_16}, + {0, C_15, A_15, B_15}, + {0, C_14, A_14, B_14}, + {0, C_13, A_13, B_13}, + {0, C_12, A_12, B_12}, + {0, C_11, A_11, B_11}, + {0, C_10, A_10, B_10}, + {0, C_9, A_9, B_9}, + {0, C_8, A_8, B_8}, + {0, C_7, A_7, B_7}, + {0, C_6, A_6, B_6}, + {0, C_5, A_5, B_5}, + {0, C_3, A_3, B_3}, + {0, C_2, A_2, B_2}, + + {0, I_16, G_16, H_16}, + {0, I_14, G_14, H_14}, + {0, I_13, G_13, H_13}, + {0, I_12, G_12, H_12}, + {0, I_11, G_11, H_11}, + {0, I_10, G_10, H_10}, + {0, I_9, G_9, H_9}, + {0, I_8, G_8, H_8}, + {0, I_7, G_7, H_7}, + {0, I_6, G_6, H_6}, + {0, I_5, G_5, H_5}, + {0, I_3, G_3, H_3}, + {0, I_2, G_2, H_2}, + + {0, F_16, D_16, E_16}, + {0, F_15, D_15, E_15}, + {0, F_14, D_14, E_14}, + {0, F_13, D_13, E_13}, + {0, F_10, D_10, E_10}, + {0, F_7, D_7, E_7}, + {0, F_6, D_6, E_6}, + {0, F_5, D_5, E_5}, + {0, F_4, D_4, E_4}, + {0, F_3, D_3, E_3}, + {0, F_2, D_2, E_2}, + {0, C_4, A_4, B_4}, +}; +#endif diff --git a/keyboards/keychron/q9_plus/ansi_encoder/config.h b/keyboards/keychron/q9_plus/ansi_encoder/config.h new file mode 100755 index 0000000000..1943a0fb27 --- /dev/null +++ b/keyboards/keychron/q9_plus/ansi_encoder/config.h @@ -0,0 +1,26 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* RGB Matrix Configuration */ +#define RGB_MATRIX_LED_COUNT 53 + +/* Encoder Configuration */ +#define ENCODER_DEFAULT_POS 0x3 + +/* Enable caps-lock LED */ +#define CAPS_LOCK_LED_INDEX 14 diff --git a/keyboards/keychron/q9_plus/ansi_encoder/info.json b/keyboards/keychron/q9_plus/ansi_encoder/info.json new file mode 100755 index 0000000000..c465071ca1 --- /dev/null +++ b/keyboards/keychron/q9_plus/ansi_encoder/info.json @@ -0,0 +1,66 @@ +{ + "usb": { + "pid": "0x0194", + "device_version": "1.0.0" + }, + "rgb_matrix": { + "layout": [ + {"matrix":[0, 0], "flags":1, "x":2, "y":0}, + {"matrix":[0, 1], "flags":4, "x":20, "y":0}, + {"matrix":[0, 2], "flags":4, "x":35, "y":0}, + {"matrix":[0, 3], "flags":4, "x":50, "y":0}, + {"matrix":[0, 4], "flags":4, "x":65, "y":0}, + {"matrix":[0, 5], "flags":4, "x":80, "y":0}, + {"matrix":[0, 6], "flags":4, "x":94, "y":0}, + {"matrix":[0, 7], "flags":4, "x":109, "y":0}, + {"matrix":[0, 8], "flags":4, "x":124, "y":0}, + {"matrix":[0, 9], "flags":4, "x":139, "y":0}, + {"matrix":[0, 10], "flags":4, "x":154, "y":0}, + {"matrix":[0, 11], "flags":4, "x":168, "y":0}, + {"matrix":[0, 12], "flags":1, "x":183, "y":0}, + {"matrix":[0, 13], "flags":1, "x":202, "y":0}, + + {"matrix":[1, 0], "flags":8, "x":4, "y":21}, + {"matrix":[1, 1], "flags":4, "x":24, "y":21}, + {"matrix":[1, 2], "flags":4, "x":39, "y":21}, + {"matrix":[1, 3], "flags":4, "x":54, "y":21}, + {"matrix":[1, 4], "flags":4, "x":68, "y":21}, + {"matrix":[1, 5], "flags":4, "x":83, "y":21}, + {"matrix":[1, 6], "flags":4, "x":98, "y":21}, + {"matrix":[1, 7], "flags":4, "x":113, "y":21}, + {"matrix":[1, 8], "flags":4, "x":128, "y":21}, + {"matrix":[1, 9], "flags":4, "x":142, "y":21}, + {"matrix":[1, 10], "flags":4, "x":157, "y":21}, + {"matrix":[1, 11], "flags":4, "x":172, "y":21}, + {"matrix":[1, 13], "flags":1, "x":196, "y":21}, + {"matrix":[1, 14], "flags":1, "x":224, "y":21}, + + {"matrix":[2, 0], "flags":1, "x":7, "y":43}, + {"matrix":[2, 2], "flags":4, "x":31, "y":43}, + {"matrix":[2, 3], "flags":4, "x":46, "y":43}, + {"matrix":[2, 4], "flags":4, "x":61, "y":43}, + {"matrix":[2, 5], "flags":4, "x":76, "y":43}, + {"matrix":[2, 6], "flags":4, "x":91, "y":43}, + {"matrix":[2, 7], "flags":4, "x":105, "y":43}, + {"matrix":[2, 8], "flags":4, "x":120, "y":43}, + {"matrix":[2, 9], "flags":4, "x":135, "y":43}, + {"matrix":[2, 10], "flags":4, "x":150, "y":43}, + {"matrix":[2, 11], "flags":4, "x":165, "y":43}, + {"matrix":[2, 13], "flags":1, "x":185, "y":43}, + {"matrix":[2, 14], "flags":1, "x":205, "y":43}, + + {"matrix":[3, 0], "flags":1, "x":0, "y":64}, + {"matrix":[3, 1], "flags":1, "x":18, "y":64}, + {"matrix":[3, 2], "flags":1, "x":37, "y":64}, + {"matrix":[3, 3], "flags":1, "x":55, "y":64}, + {"matrix":[3, 6], "flags":4, "x":81, "y":64}, + {"matrix":[3, 9], "flags":4, "x":118, "y":64}, + {"matrix":[3, 10], "flags":1, "x":146, "y":64}, + {"matrix":[3, 11], "flags":1, "x":161, "y":64}, + {"matrix":[3, 12], "flags":1, "x":176, "y":64}, + {"matrix":[3, 13], "flags":1, "x":190, "y":64}, + {"matrix":[3, 14], "flags":1, "x":205, "y":64}, + {"matrix":[1, 12], "flags":1, "x":224, "y":64} + ] + } +} diff --git a/keyboards/keychron/q9_plus/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/q9_plus/ansi_encoder/keymaps/default/keymap.c new file mode 100755 index 0000000000..06c43f6929 --- /dev/null +++ b/keyboards/keychron/q9_plus/ansi_encoder/keymaps/default/keymap.c @@ -0,0 +1,71 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers{ + MAC_BASE, + WIN_BASE, + MAC_FN1, + WIN_FN1, + FN2, +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_54_ansi( + 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_MUTE, + 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_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LOPT, KC_LCMD, MO(MAC_FN1), KC_SPC, KC_SPC, KC_RCMD, MO(MAC_FN1), MO(FN2), KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_BASE] = LAYOUT_54_ansi( + 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_MUTE, + 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_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, MO(WIN_FN1), KC_SPC, KC_SPC, KC_RALT, MO(WIN_FN1), MO(FN2), KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN1] = LAYOUT_54_ansi( + KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_FN1] = LAYOUT_54_ansi( + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [FN2] = LAYOUT_54_ansi( + KC_TILD, 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_BSPC, _______, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [MAC_FN1] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [WIN_FN1] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [FN2] = {ENCODER_CCW_CW(_______, _______)} +}; +#endif diff --git a/keyboards/keychron/q9_plus/ansi_encoder/keymaps/default/rules.mk b/keyboards/keychron/q9_plus/ansi_encoder/keymaps/default/rules.mk new file mode 100755 index 0000000000..f1adcab005 --- /dev/null +++ b/keyboards/keychron/q9_plus/ansi_encoder/keymaps/default/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/q9_plus/ansi_encoder/keymaps/keychron/keymap.c b/keyboards/keychron/q9_plus/ansi_encoder/keymaps/keychron/keymap.c new file mode 100755 index 0000000000..bf995fca2b --- /dev/null +++ b/keyboards/keychron/q9_plus/ansi_encoder/keymaps/keychron/keymap.c @@ -0,0 +1,80 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "keychron_common.h" + +enum layers{ + MAC_BASE, + WIN_BASE, + MAC_FN1, + WIN_FN1, + FN2, +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_54_ansi( + 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_MUTE, + 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_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LOPTN, KC_LCMMD, MO(MAC_FN1), KC_SPC, KC_SPC, KC_RCMMD, MO(MAC_FN1), MO(FN2), KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_BASE] = LAYOUT_54_ansi( + 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_MUTE, + 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_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, MO(WIN_FN1), KC_SPC, KC_SPC, KC_RALT, MO(WIN_FN1), MO(FN2), KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN1] = LAYOUT_54_ansi( + KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_FN1] = LAYOUT_54_ansi( + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [FN2] = LAYOUT_54_ansi( + KC_TILD, 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_BSPC, _______, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [MAC_FN1] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [WIN_FN1] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [FN2] = {ENCODER_CCW_CW(_______, _______)} +}; +#endif + +void housekeeping_task_user(void) { + housekeeping_task_keychron(); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_record_keychron(keycode, record)) { + return false; + } + return true; +} diff --git a/keyboards/keychron/q9_plus/ansi_encoder/keymaps/keychron/rules.mk b/keyboards/keychron/q9_plus/ansi_encoder/keymaps/keychron/rules.mk new file mode 100755 index 0000000000..9cf1a9b56c --- /dev/null +++ b/keyboards/keychron/q9_plus/ansi_encoder/keymaps/keychron/rules.mk @@ -0,0 +1,5 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes + +VPATH += keyboards/keychron/common +SRC += keychron_common.c diff --git a/keyboards/keychron/q9_plus/ansi_encoder/keymaps/via/keymap.c b/keyboards/keychron/q9_plus/ansi_encoder/keymaps/via/keymap.c new file mode 100755 index 0000000000..06c43f6929 --- /dev/null +++ b/keyboards/keychron/q9_plus/ansi_encoder/keymaps/via/keymap.c @@ -0,0 +1,71 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers{ + MAC_BASE, + WIN_BASE, + MAC_FN1, + WIN_FN1, + FN2, +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_54_ansi( + 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_MUTE, + 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_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LOPT, KC_LCMD, MO(MAC_FN1), KC_SPC, KC_SPC, KC_RCMD, MO(MAC_FN1), MO(FN2), KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_BASE] = LAYOUT_54_ansi( + 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_MUTE, + 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_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, MO(WIN_FN1), KC_SPC, KC_SPC, KC_RALT, MO(WIN_FN1), MO(FN2), KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN1] = LAYOUT_54_ansi( + KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_FN1] = LAYOUT_54_ansi( + KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [FN2] = LAYOUT_54_ansi( + KC_TILD, 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_BSPC, _______, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [MAC_FN1] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [WIN_FN1] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [FN2] = {ENCODER_CCW_CW(_______, _______)} +}; +#endif diff --git a/keyboards/keychron/q9_plus/ansi_encoder/keymaps/via/rules.mk b/keyboards/keychron/q9_plus/ansi_encoder/keymaps/via/rules.mk new file mode 100755 index 0000000000..f1adcab005 --- /dev/null +++ b/keyboards/keychron/q9_plus/ansi_encoder/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/q9_plus/ansi_encoder/rules.mk b/keyboards/keychron/q9_plus/ansi_encoder/rules.mk new file mode 100755 index 0000000000..e69de29bb2 diff --git a/keyboards/keychron/q9_plus/config.h b/keyboards/keychron/q9_plus/config.h new file mode 100755 index 0000000000..c6cd09b388 --- /dev/null +++ b/keyboards/keychron/q9_plus/config.h @@ -0,0 +1,58 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Disable DIP switch in matrix data */ +#define MATRIX_MASKED + +/* DIP switch */ +#define DIP_SWITCH_MATRIX_GRID {{ 3, 4 }} + +/* RGB Matrix Driver Configuration */ +#define DRIVER_COUNT 1 +#define DRIVER_ADDR_1 0b1110100 + +/* Increase I2C speed to 1000 KHz */ +#define I2C1_TIMINGR_PRESC 0U +#define I2C1_TIMINGR_SCLDEL 3U +#define I2C1_TIMINGR_SDADEL 0U +#define I2C1_TIMINGR_SCLH 15U +#define I2C1_TIMINGR_SCLL 51U + +/* Set LED driver current */ +#define CKLED2001_CURRENT_TUNE \ + { 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70 } + +/* turn off effects when suspended */ +#define RGB_DISABLE_WHEN_USB_SUSPENDED + +/* EEPROM Driver Configuration */ +#define WEAR_LEVELING_LOGICAL_SIZE 2048 +#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) + +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES + +/* Old default behavior of mod-taps */ +#define HOLD_ON_OTHER_KEY_PRESS + +/* Factory test keys */ +#define F_RESET_KEY1 KC_7 +#define FN_KEY1 MO(4) diff --git a/keyboards/keychron/q9_plus/halconf.h b/keyboards/keychron/q9_plus/halconf.h new file mode 100755 index 0000000000..41bddcb279 --- /dev/null +++ b/keyboards/keychron/q9_plus/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/keychron/q9_plus/info.json b/keyboards/keychron/q9_plus/info.json new file mode 100755 index 0000000000..c56650cb1d --- /dev/null +++ b/keyboards/keychron/q9_plus/info.json @@ -0,0 +1,124 @@ +{ + "keyboard_name": "Keychron Q9 Plus", + "manufacturer": "Keychron", + "url": "https://github.com/Keychron", + "maintainer": "lalalademaxiya1", + "processor": "STM32L432", + "bootloader": "stm32-dfu", + "usb": { + "vid": "0x3434" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "dip_switch": true, + "encoder": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"], + "rows": ["B3", "A15", "A14", "A13"] + }, + "diode_direction": "ROW2COL", + "encoder": { + "rotary": [ + {"pin_a": "B4", "pin_b": "B5"} + ] + }, + "dynamic_keymap": { + "layer_count": 5 + }, + "layouts": { + "LAYOUT_54_ansi": { + "layout": [ + {"matrix":[0,0], "x":0, "y":0, "w":1.5}, + {"matrix":[0,1], "x":1.5, "y":0}, + {"matrix":[0,2], "x":2.5, "y":0}, + {"matrix":[0,3], "x":3.5, "y":0}, + {"matrix":[0,4], "x":4.5, "y":0}, + {"matrix":[0,5], "x":5.5, "y":0}, + {"matrix":[0,6], "x":6.5, "y":0}, + {"matrix":[0,7], "x":7.5, "y":0}, + {"matrix":[0,8], "x":8.5, "y":0}, + {"matrix":[0,9], "x":9.5, "y":0}, + {"matrix":[0,10], "x":10.5, "y":0}, + {"matrix":[0,11], "x":11.5, "y":0}, + {"matrix":[0,12], "x":12.5, "y":0}, + {"matrix":[0,13], "x":13.5, "y":0, "w":1.5}, + {"matrix":[0,14], "x":15.25, "y":0}, + + {"matrix":[1,0], "x":0, "y":1, "w":1.75}, + {"matrix":[1,1], "x":1.75, "y":1}, + {"matrix":[1,2], "x":2.75, "y":1}, + {"matrix":[1,3], "x":3.75, "y":1}, + {"matrix":[1,4], "x":4.75, "y":1}, + {"matrix":[1,5], "x":5.75, "y":1}, + {"matrix":[1,6], "x":6.75, "y":1}, + {"matrix":[1,7], "x":7.75, "y":1}, + {"matrix":[1,8], "x":8.75, "y":1}, + {"matrix":[1,9], "x":9.75, "y":1}, + {"matrix":[1,10], "x":10.75, "y":1}, + {"matrix":[1,11], "x":11.75, "y":1}, + {"matrix":[1,13], "x":12.75, "y":1, "w":2.25}, + {"matrix":[1,14], "x":15.25, "y":1.25}, + + {"matrix":[2,0], "x":0, "y":2, "w":2.25}, + {"matrix":[2,2], "x":2.25, "y":2}, + {"matrix":[2,3], "x":3.25, "y":2}, + {"matrix":[2,4], "x":4.25, "y":2}, + {"matrix":[2,5], "x":5.25, "y":2}, + {"matrix":[2,6], "x":6.25, "y":2}, + {"matrix":[2,7], "x":7.25, "y":2}, + {"matrix":[2,8], "x":8.25, "y":2}, + {"matrix":[2,9], "x":9.25, "y":2}, + {"matrix":[2,10], "x":10.25, "y":2}, + {"matrix":[2,11], "x":11.25, "y":2}, + {"matrix":[2,13], "x":12.25, "y":2, "w":1.75}, + {"matrix":[2,14], "x":14, "y":2}, + + {"matrix":[3,0], "x":0, "y":3, "w":1.25}, + {"matrix":[3,1], "x":1.25, "y":3, "w":1.25}, + {"matrix":[3,2], "x":2.5, "y":3, "w":1.25}, + {"matrix":[3,3], "x":3.75, "y":3, "w":1.25}, + {"matrix":[3,6], "x":5, "y":3, "w":2.25}, + {"matrix":[3,9], "x":7.25, "y":3, "w":2.75}, + {"matrix":[3,10], "x":10, "y":3}, + {"matrix":[3,11], "x":11, "y":3}, + {"matrix":[3,12], "x":12, "y":3}, + {"matrix":[3,13], "x":13, "y":3}, + {"matrix":[3,14], "x":14, "y":3}, + {"matrix":[1,12], "x":15, "y":3} + ] + } + }, + "rgb_matrix": { + "driver": "ckled2001", + "animations": { + "breathing": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "jellybean_raindrops": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive_multiwide": true, + "solid_reactive_multinexus": true, + "splash": true, + "solid_splash": true + } + } +} diff --git a/keyboards/keychron/q9_plus/mcuconf.h b/keyboards/keychron/q9_plus/mcuconf.h new file mode 100755 index 0000000000..0ca8c64850 --- /dev/null +++ b/keyboards/keychron/q9_plus/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/keychron/q9_plus/q9_plus.c b/keyboards/keychron/q9_plus/q9_plus.c new file mode 100755 index 0000000000..f0f304def6 --- /dev/null +++ b/keyboards/keychron/q9_plus/q9_plus.c @@ -0,0 +1,82 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +const matrix_row_t matrix_mask[] = { + 0b111111111111111, + 0b111111111111111, + 0b111111111111111, + 0b111111111101111, +}; + +#ifdef DIP_SWITCH_ENABLE +bool dip_switch_update_kb(uint8_t index, bool active) { + if (!dip_switch_update_user(index, active)) { + return false; + } + if (index == 0) { + default_layer_set(1UL << (active ? 1 : 0)); + } + return true; +} +#endif + +#if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + switch (keycode) { + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + } break; + } + } + if (!rgb_matrix_is_enabled()) { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable(); + } + return false; + } + return true; +} + +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } + // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); + + if (host_keyboard_led_state().caps_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 255, 255, 255); + } else { + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 0, 0, 0); + } + } + return true; +} + +#endif diff --git a/keyboards/keychron/q9_plus/readme.md b/keyboards/keychron/q9_plus/readme.md new file mode 100755 index 0000000000..d0ab58e13c --- /dev/null +++ b/keyboards/keychron/q9_plus/readme.md @@ -0,0 +1,21 @@ +# Keychron Q9 Plus + +![Keychron Q9 Plus](https://i.imgur.com/Yp9K7Gsh.jpg) + +A customizable 40% keyboard. + +* Keyboard Maintainer: [Keychron](https://github.com/keychron) +* Hardware Supported: Keychron Q9 Plus +* Hardware Availability:[Keychron Q9 QMK Custom Mechanical Keyboard](https://www.keychron.com/products/keychron-q9-qmk-custom-mechanical-keyboard) + +Make example for this keyboard (after setting up your build environment): + + make keychron/q9_plus/ansi_encoder:default + +Flashing example for this keyboard: + + make keychron/q9_plus/ansi:default:flash + +**Reset Key**: Hold down the key located at *K00*, programmed as *TAB* while plugging in the keyboard. + +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). From f8cea06be3f364e35b5f33c13cf025f010ab158f Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 21 Sep 2023 15:50:01 +1000 Subject: [PATCH 124/496] RGBLight/Backlight: add prefixed driver defines (#22089) --- builddefs/common_features.mk | 6 ++---- keyboards/mxss/rgblight.c | 2 +- quantum/rgb_matrix/rgb_matrix_drivers.c | 2 +- quantum/rgblight/rgblight.c | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 2dd759973d..a594e2b1d5 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -328,6 +328,7 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) COMMON_VPATH += $(QUANTUM_DIR)/rgblight POST_CONFIG_H += $(QUANTUM_DIR)/rgblight/rgblight_post_config.h OPT_DEFS += -DRGBLIGHT_ENABLE + OPT_DEFS += -DRGBLIGHT_$(strip $(shell echo $(RGBLIGHT_DRIVER) | tr '[:lower:]' '[:upper:]')) SRC += $(QUANTUM_DIR)/color.c SRC += $(QUANTUM_DIR)/rgblight/rgblight.c CIE1931_CURVE := yes @@ -341,10 +342,6 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) ifeq ($(strip $(RGBLIGHT_DRIVER)), apa102) APA102_DRIVER_REQUIRED := yes endif - - ifeq ($(strip $(RGBLIGHT_DRIVER)), custom) - OPT_DEFS += -DRGBLIGHT_CUSTOM_DRIVER - endif endif # Deprecated driver names - do not use @@ -584,6 +581,7 @@ ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) SRC += $(QUANTUM_DIR)/backlight/backlight.c SRC += $(QUANTUM_DIR)/process_keycode/process_backlight.c OPT_DEFS += -DBACKLIGHT_ENABLE + OPT_DEFS += -DBACKLIGHT_$(strip $(shell echo $(BACKLIGHT_DRIVER) | tr '[:lower:]' '[:upper:]')) ifneq ($(strip $(BACKLIGHT_DRIVER)), custom) SRC += $(QUANTUM_DIR)/backlight/backlight_driver_common.c diff --git a/keyboards/mxss/rgblight.c b/keyboards/mxss/rgblight.c index 873139b5c6..9809020a81 100644 --- a/keyboards/mxss/rgblight.c +++ b/keyboards/mxss/rgblight.c @@ -739,7 +739,7 @@ void rgblight_unblink_layers(void) { __attribute__((weak)) void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds) { ws2812_setleds(start_led, num_leds); } -#ifndef RGBLIGHT_CUSTOM_DRIVER +#ifndef RGBLIGHT_CUSTOM void rgblight_set(void) { rgb_led_t *start_led; uint8_t num_leds = rgblight_ranges.clipping_num_leds; diff --git a/quantum/rgb_matrix/rgb_matrix_drivers.c b/quantum/rgb_matrix/rgb_matrix_drivers.c index 368459db40..58b707bf7f 100644 --- a/quantum/rgb_matrix/rgb_matrix_drivers.c +++ b/quantum/rgb_matrix/rgb_matrix_drivers.c @@ -440,7 +440,7 @@ const rgb_matrix_driver_t rgb_matrix_driver = { }; #elif defined(RGB_MATRIX_WS2812) -# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_CUSTOM_DRIVER) +# if defined(RGBLIGHT_WS2812) # pragma message "Cannot use RGBLIGHT and RGB Matrix using WS2812 at the same time." # pragma message "You need to use a custom driver, or re-implement the WS2812 driver to use a different configuration." # endif diff --git a/quantum/rgblight/rgblight.c b/quantum/rgblight/rgblight.c index 70672ceb8f..d6dd432c83 100644 --- a/quantum/rgblight/rgblight.c +++ b/quantum/rgblight/rgblight.c @@ -901,7 +901,7 @@ __attribute__((weak)) void rgblight_call_driver(rgb_led_t *start_led, uint8_t nu ws2812_setleds(start_led, num_leds); } -#ifndef RGBLIGHT_CUSTOM_DRIVER +#ifndef RGBLIGHT_CUSTOM void rgblight_set(void) { rgb_led_t *start_led; From dc2315ad85a9d0eedc7ebfc3329bec4583764681 Mon Sep 17 00:00:00 2001 From: dztech Date: Thu, 21 Sep 2023 14:01:38 +0800 Subject: [PATCH 125/496] add dz60v2 keyboard (#21862) Co-authored-by: Duncan Sutherland Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/dztech/dz60v2/info.json | 2441 +++++++++++++++++ .../dztech/dz60v2/keymaps/default/keymap.c | 34 + keyboards/dztech/dz60v2/keymaps/via/keymap.c | 34 + keyboards/dztech/dz60v2/keymaps/via/rules.mk | 2 + keyboards/dztech/dz60v2/readme.md | 26 + keyboards/dztech/dz60v2/rules.mk | 1 + 6 files changed, 2538 insertions(+) create mode 100644 keyboards/dztech/dz60v2/info.json create mode 100644 keyboards/dztech/dz60v2/keymaps/default/keymap.c create mode 100644 keyboards/dztech/dz60v2/keymaps/via/keymap.c create mode 100644 keyboards/dztech/dz60v2/keymaps/via/rules.mk create mode 100644 keyboards/dztech/dz60v2/readme.md create mode 100644 keyboards/dztech/dz60v2/rules.mk diff --git a/keyboards/dztech/dz60v2/info.json b/keyboards/dztech/dz60v2/info.json new file mode 100644 index 0000000000..bd1479b77c --- /dev/null +++ b/keyboards/dztech/dz60v2/info.json @@ -0,0 +1,2441 @@ +{ + "manufacturer": "DZTECH", + "keyboard_name": "DZ60v2", + "maintainer": "DZTECH", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "indicators": { + "caps_lock": "E6" + }, + "matrix_pins": { + "cols": ["F1", "D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "F7", "C7", "C6", "B6", "B5"], + "rows": ["F0", "B3", "F6", "F4", "F5"] + }, + "processor": "atmega32u4", + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "brightness_steps": 10, + "hue_steps": 10, + "led_count": 16, + "saturation_steps": 10 + }, + "ws2812": { + "pin": "B2" + }, + "usb": { + "device_version": "0.0.2", + "pid": "0x2261", + "vid": "0x445A" + }, + "community_layouts": [ + "60_abnt2", + "60_ansi", + "60_ansi_arrow", + "60_ansi_arrow_split_bs_7u_spc", + "60_ansi_split_bs_rshift", + "60_ansi_tsangan", + "60_hhkb", + "60_iso", + "60_iso_split_bs_rshift", + "60_iso_tsangan", + "60_tsangan_hhkb", + "64_ansi", + "64_iso" + ], + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k2d", "matrix": [2, 13], "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], "x": 1.25, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "w": 1.75, "x": 12.25, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k44", "matrix": [4, 4], "w": 2.25, "x": 3.75, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 1.25, "x": 6, "y": 4 }, + { "label": "k48", "matrix": [4, 8], "w": 2.75, "x": 7.25, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "x": 11, "y": 4 }, + { "label": "k4c", "matrix": [4, 12], "x": 12, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 } + ] + }, + "LAYOUT_60_2_function": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k2d", "matrix": [2, 13], "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], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "w": 1.75, "x": 12.25, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "w": 1.5, "x": 10, "y": 4 }, + { "label": "k4c", "matrix": [4, 12], "w": 1.5, "x": 11.5, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 } + ] + }, + "LAYOUT_60_abnt2": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k1e", "matrix": [1, 14], "x": 12.75, "y": 2 }, + { "h": 2, "label": "k2d", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, + { "label": "k30", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "label": "k31", "matrix": [3, 1], "x": 1.25, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "k3c", "matrix": [3, 12], "x": 12.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "w": 1.75, "x": 13.25, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "w": 1.25, "x": 12.5, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_ansi": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k2d", "matrix": [2, 13], "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], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "w": 2.75, "x": 12.25, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "w": 1.25, "x": 12.5, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_ansi_arrow": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k2d", "matrix": [2, 13], "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], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3c", "matrix": [3, 12], "w": 1.75, "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "x": 13, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "x": 11, "y": 4 }, + { "label": "k4c", "matrix": [4, 12], "x": 12, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 } + ] + }, + "LAYOUT_60_ansi_arrow_split_bs_7u_spc": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k2d", "matrix": [2, 13], "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], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3c", "matrix": [3, 12], "w": 1.75, "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "x": 13, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "y": 3 }, + { "label": "k40", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "label": "k41", "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "label": "k43", "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 7, "x": 4, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "x": 11, "y": 4 }, + { "label": "k4c", "matrix": [4, 12], "x": 12, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 } + ] + }, + "LAYOUT_60_ansi_split": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k2d", "matrix": [2, 13], "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], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "w": 2.75, "x": 12.25, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k44", "matrix": [4, 4], "w": 2.25, "x": 3.75, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 1.25, "x": 6, "y": 4 }, + { "label": "k48", "matrix": [4, 8], "w": 2.75, "x": 7.25, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "w": 1.25, "x": 12.5, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k2d", "matrix": [2, 13], "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], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "w": 1.75, "x": 12.25, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "w": 1.25, "x": 12.5, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_ansi_split_space_rshift": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k2d", "matrix": [2, 13], "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], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "w": 1.75, "x": 12.25, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k44", "matrix": [4, 4], "w": 2.25, "x": 3.75, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 1.25, "x": 6, "y": 4 }, + { "label": "k48", "matrix": [4, 8], "w": 2.75, "x": 7.25, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "w": 1.25, "x": 12.5, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k2d", "matrix": [2, 13], "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], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3 }, + { "label": "k40", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "label": "k41", "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "label": "k43", "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 7, "x": 4, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "x": 12.5, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4 } + ] + }, + "LAYOUT_60_b_ansi": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k2d", "matrix": [2, 13], "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], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3c", "matrix": [3, 12], "w": 1.75, "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "x": 13, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k44", "matrix": [4, 4], "w": 2.25, "x": 3.75, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 1.25, "x": 6, "y": 4 }, + { "label": "k48", "matrix": [4, 8], "w": 2.75, "x": 7.25, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "x": 11, "y": 4 }, + { "label": "k4c", "matrix": [4, 12], "x": 12, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 } + ] + }, + "LAYOUT_60_b_iso": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k1e", "matrix": [1, 14], "x": 12.75, "y": 2 }, + { "h": 2, "label": "k2d", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, + { "label": "k30", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "label": "k31", "matrix": [3, 1], "x": 1.25, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3c", "matrix": [3, 12], "w": 1.75, "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "x": 13, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k44", "matrix": [4, 4], "w": 2.25, "x": 3.75, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 1.25, "x": 6, "y": 4 }, + { "label": "k48", "matrix": [4, 8], "w": 2.75, "x": 7.25, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "x": 11, "y": 4 }, + { "label": "k4c", "matrix": [4, 12], "x": 12, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 } + ] + }, + "LAYOUT_60_calbatr0ss": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k2d", "matrix": [2, 13], "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], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "w": 1.75, "x": 12.25, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k44", "matrix": [4, 4], "w": 2.25, "x": 3.75, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 1.25, "x": 6, "y": 4 }, + { "label": "k48", "matrix": [4, 8], "w": 2.75, "x": 7.25, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "w": 1.25, "x": 12.5, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k2d", "matrix": [2, 13], "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], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "w": 1.75, "x": 12.25, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "y": 3 }, + { "label": "k41", "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "label": "k43", "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 7, "x": 4, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "x": 12.5, "y": 4 } + ] + }, + "LAYOUT_60_iso": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k1e", "matrix": [1, 14], "x": 12.75, "y": 2 }, + { "h": 2, "label": "k2d", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, + { "label": "k30", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "label": "k31", "matrix": [3, 1], "x": 1.25, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "w": 2.75, "x": 12.25, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "w": 1.25, "x": 12.5, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_iso_4th_row_all_1u": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k1e", "matrix": [1, 14], "x": 12.75, "y": 2 }, + { "h": 2, "label": "k2d", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, + { "label": "k30", "matrix": [3, 0], "x": 0, "y": 3 }, + { "label": "k31", "matrix": [3, 1], "x": 1, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "x": 2, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11, "y": 3 }, + { "label": "k3c", "matrix": [3, 12], "x": 12, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "x": 13, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "x": 11, "y": 4 }, + { "label": "k4c", "matrix": [4, 12], "x": 12, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 } + ] + }, + "LAYOUT_60_iso_5x1u": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k1e", "matrix": [1, 14], "x": 12.75, "y": 2 }, + { "h": 2, "label": "k2d", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, + { "label": "k30", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "label": "k31", "matrix": [3, 1], "x": 1.25, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "w": 2.75, "x": 12.25, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "x": 11, "y": 4 }, + { "label": "k4c", "matrix": [4, 12], "x": 12, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 } + ] + }, + "LAYOUT_60_iso_5x1u_split_bs_rshift_spc": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k1e", "matrix": [1, 14], "x": 12.75, "y": 2 }, + { "h": 2, "label": "k2d", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, + { "label": "k30", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "label": "k31", "matrix": [3, 1], "x": 1.25, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "w": 1.75, "x": 12.25, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k44", "matrix": [4, 4], "w": 2.25, "x": 3.75, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 1.25, "x": 6, "y": 4 }, + { "label": "k48", "matrix": [4, 8], "w": 2.75, "x": 7.25, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "x": 11, "y": 4 }, + { "label": "k4c", "matrix": [4, 12], "x": 12, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 } + ] + }, + "LAYOUT_60_iso_5x1u_split_rshift": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "h": 2, "label": "k20", "matrix": [2, 0], "w": 1.25, "x": 13.75, "y": 1 }, + { "label": "k22", "matrix": [2, 2], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 1.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 2.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 3.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 4.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 5.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 6.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 7.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 8.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 9.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 10.75, "y": 2 }, + { "label": "k1e", "matrix": [1, 14], "x": 11.75, "y": 2 }, + { "label": "k2d", "matrix": [2, 13], "x": 12.75, "y": 2 }, + { "label": "k30", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "label": "k31", "matrix": [3, 1], "x": 1.25, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "w": 1.75, "x": 12.25, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "x": 11, "y": 4 }, + { "label": "k4c", "matrix": [4, 12], "x": 12, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 } + ] + }, + "LAYOUT_60_iso_arrow_one_bksp": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k1e", "matrix": [1, 14], "x": 12.75, "y": 2 }, + { "h": 2, "label": "k2d", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, + { "label": "k30", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "label": "k31", "matrix": [3, 1], "x": 1.25, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3c", "matrix": [3, 12], "w": 1.75, "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "x": 13, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "x": 11, "y": 4 }, + { "label": "k4c", "matrix": [4, 12], "x": 12, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 } + ] + }, + "LAYOUT_60_iso_split": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k1e", "matrix": [1, 14], "x": 12.75, "y": 2 }, + { "h": 2, "label": "k2d", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, + { "label": "k30", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "label": "k31", "matrix": [3, 1], "x": 1.25, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "w": 2.75, "x": 12.25, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k44", "matrix": [4, 4], "w": 2.25, "x": 3.75, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 1.25, "x": 6, "y": 4 }, + { "label": "k48", "matrix": [4, 8], "w": 2.75, "x": 7.25, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "w": 1.25, "x": 12.5, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k1e", "matrix": [1, 14], "x": 12.75, "y": 2 }, + { "h": 2, "label": "k2d", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, + { "label": "k30", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "label": "k31", "matrix": [3, 1], "x": 1.25, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "w": 1.75, "x": 12.25, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "w": 1.25, "x": 12.5, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_iso_split_space_bs_rshift": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k1e", "matrix": [1, 14], "x": 12.75, "y": 2 }, + { "h": 2, "label": "k2d", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, + { "label": "k30", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "label": "k31", "matrix": [3, 1], "x": 1.25, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "w": 1.75, "x": 12.25, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k44", "matrix": [4, 4], "w": 2.25, "x": 3.75, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 1.25, "x": 6, "y": 4 }, + { "label": "k48", "matrix": [4, 8], "w": 2.75, "x": 7.25, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "w": 1.25, "x": 12.5, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_iso_tsangan": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k1e", "matrix": [1, 14], "x": 12.75, "y": 2 }, + { "h": 2, "label": "k2d", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, + { "label": "k30", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "label": "k31", "matrix": [3, 1], "x": 1.25, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3 }, + { "label": "k40", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "label": "k41", "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "label": "k43", "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 7, "x": 4, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "x": 12.5, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4 } + ] + }, + "LAYOUT_60_iso_tsangan_split_bs_rshift": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k1e", "matrix": [1, 14], "x": 12.75, "y": 2 }, + { "h": 2, "label": "k2d", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, + { "label": "k30", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "label": "k31", "matrix": [3, 1], "x": 1.25, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "w": 1.75, "x": 12.25, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "y": 3 }, + { "label": "k40", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "label": "k41", "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "label": "k43", "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 7, "x": 4, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "x": 12.5, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4 } + ] + }, + "LAYOUT_60_tsangan": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k2d", "matrix": [2, 13], "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], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "w": 1.75, "x": 12.25, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "y": 3 }, + { "label": "k40", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "label": "k41", "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "label": "k43", "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 7, "x": 4, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "x": 12.5, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4 } + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k2d", "matrix": [2, 13], "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], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "w": 1.75, "x": 12.25, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "y": 3 }, + { "label": "k40", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "label": "k41", "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "label": "k43", "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 7, "x": 4, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "x": 12.5, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4 } + ] + }, + "LAYOUT_64_ansi": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k2d", "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "k30", "matrix": [3, 0], "w": 2, "x": 0, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "x": 2, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11, "y": 3 }, + { "label": "k3c", "matrix": [3, 12], "x": 12, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "x": 13, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "x": 11, "y": 4 }, + { "label": "k4c", "matrix": [4, 12], "x": 12, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 } + ] + }, + "LAYOUT_64_ansi_split_bs": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k2d", "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "k30", "matrix": [3, 0], "w": 2, "x": 0, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "x": 2, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11, "y": 3 }, + { "label": "k3c", "matrix": [3, 12], "x": 12, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "x": 13, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "x": 11, "y": 4 }, + { "label": "k4c", "matrix": [4, 12], "x": 12, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 } + ] + }, + "LAYOUT_64_iso": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k1e", "matrix": [1, 14], "x": 12.75, "y": 2 }, + { "h": 2, "label": "k2d", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, + { "label": "k30", "matrix": [3, 0], "x": 0, "y": 3 }, + { "label": "k30", "matrix": [3, 1], "x": 1, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "x": 2, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11, "y": 3 }, + { "label": "k3c", "matrix": [3, 12], "x": 12, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "x": 13, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "x": 11, "y": 4 }, + { "label": "k4c", "matrix": [4, 12], "x": 12, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 } + ] + }, + "LAYOUT_64_iso_split_bs": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k1e", "matrix": [1, 14], "x": 12.75, "y": 2 }, + { "h": 2, "label": "k2d", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, + { "label": "k30", "matrix": [3, 0], "x": 0, "y": 3 }, + { "label": "k30", "matrix": [3, 1], "x": 1, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "x": 2, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11, "y": 3 }, + { "label": "k3c", "matrix": [3, 12], "x": 12, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "x": 13, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "x": 11, "y": 4 }, + { "label": "k4c", "matrix": [4, 12], "x": 12, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 } + ] + }, + "LAYOUT_all": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k2d", "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "k30", "matrix": [3, 0], "x": 0, "y": 3 }, + { "label": "k31", "matrix": [3, 1], "x": 1, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "x": 2, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11, "y": 3 }, + { "label": "k3c", "matrix": [3, 12], "x": 12, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "x": 13, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k44", "matrix": [4, 4], "w": 2.25, "x": 3.75, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 1.25, "x": 6, "y": 4 }, + { "label": "k48", "matrix": [4, 8], "w": 2.75, "x": 7.25, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "x": 11, "y": 4 }, + { "label": "k4c", "matrix": [4, 12], "x": 12, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 } + ] + }, + "LAYOUT_directional": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k2d", "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "k30", "matrix": [3, 0], "w": 2, "x": 0, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "x": 2, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11, "y": 3 }, + { "label": "k3c", "matrix": [3, 12], "x": 12, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "x": 13, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "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": "k43", "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k44", "matrix": [4, 4], "w": 2.25, "x": 3.75, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 1.25, "x": 6, "y": 4 }, + { "label": "k48", "matrix": [4, 8], "w": 2.75, "x": 7.25, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "x": 11, "y": 4 }, + { "label": "k4c", "matrix": [4, 12], "x": 12, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 } + ] + }, + "LAYOUT_olivierko": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k2d", "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "k30", "matrix": [3, 0], "w": 2, "x": 0, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "x": 2, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11, "y": 3 }, + { "label": "k3c", "matrix": [3, 12], "x": 12, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "w": 2, "x": 13, "y": 3 }, + { "label": "k40", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "label": "k41", "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "label": "k43", "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 7, "x": 4, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "x": 11, "y": 4 }, + { "label": "k4c", "matrix": [4, 12], "x": 12, "y": 4 }, + { "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 }, + { "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 } + ] + }, + "LAYOUT_true_hhkb": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "label": "k2d", "matrix": [2, 13], "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], "x": 1.25, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "label": "k3d", "matrix": [3, 13], "w": 1.75, "x": 12.25, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "x": 14, "y": 3 }, + { "label": "k41", "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "label": "k43", "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 6, "x": 4, "y": 4 }, + { "label": "k4a", "matrix": [4, 10], "w": 1.5, "x": 10, "y": 4 }, + { "label": "k4b", "matrix": [4, 11], "x": 11.5, "y": 4 } + ] + } + } +} + diff --git a/keyboards/dztech/dz60v2/keymaps/default/keymap.c b/keyboards/dztech/dz60v2/keymaps/default/keymap.c new file mode 100644 index 0000000000..f3372b151c --- /dev/null +++ b/keyboards/dztech/dz60v2/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2023 dztech + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + LAYOUT_all( + QK_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_BSPC, KC_DEL, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, 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_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + LAYOUT_all( + 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, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DOWN, BL_TOGG, BL_UP, BL_STEP, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/dztech/dz60v2/keymaps/via/keymap.c b/keyboards/dztech/dz60v2/keymaps/via/keymap.c new file mode 100644 index 0000000000..f3372b151c --- /dev/null +++ b/keyboards/dztech/dz60v2/keymaps/via/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2023 dztech + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + LAYOUT_all( + QK_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_BSPC, KC_DEL, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, 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_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + LAYOUT_all( + 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, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DOWN, BL_TOGG, BL_UP, BL_STEP, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/dztech/dz60v2/keymaps/via/rules.mk b/keyboards/dztech/dz60v2/keymaps/via/rules.mk new file mode 100644 index 0000000000..ca9fed0e6b --- /dev/null +++ b/keyboards/dztech/dz60v2/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +LTO_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/dztech/dz60v2/readme.md b/keyboards/dztech/dz60v2/readme.md new file mode 100644 index 0000000000..51ccd9a12b --- /dev/null +++ b/keyboards/dztech/dz60v2/readme.md @@ -0,0 +1,26 @@ +# DZ60 60% Mechanical Keyboard PCB + +## A Customizable 60% Mechanical Keyboard PCB + +* Keyboard Maintainer: QMK Community +* Hardware Supported: DZ60 60% Mechanical Keyboard PCB +* Hardware Availability: [KBDfans](https://kbdfans.com/collections/60/products/dz60-60-pcb) + +There are two versions of the DZ60 PCB. Please use the appropriate firmware for your board. + +* V1: 1.6mm thickness PCB; +* V2: 1.2mm thickness PCB + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + +Make example for this keyboard (after setting up your build environment): + + make dztech/dz60v2: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). diff --git a/keyboards/dztech/dz60v2/rules.mk b/keyboards/dztech/dz60v2/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/dztech/dz60v2/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From 8c52bab9300f488b687af136deee2fac4b9e3ae9 Mon Sep 17 00:00:00 2001 From: dztech Date: Thu, 21 Sep 2023 14:01:55 +0800 Subject: [PATCH 126/496] add odinmini layout (#21983) Co-authored-by: Ryan --- keyboards/kbdfans/odinmini/info.json | 89 ++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/keyboards/kbdfans/odinmini/info.json b/keyboards/kbdfans/odinmini/info.json index ea82309e85..19a854c4ce 100644 --- a/keyboards/kbdfans/odinmini/info.json +++ b/keyboards/kbdfans/odinmini/info.json @@ -54,6 +54,95 @@ "vid": "0x4B42" }, "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "~", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [2, 13], "x": 13, "y": 0}, + {"label": "Del", "matrix": [2, 17], "x": 14, "y": 0}, + {"label": "Insert", "matrix": [0, 13], "x": 15.25, "y": 0}, + {"label": "Num Lock", "matrix": [0, 14], "x": 16.5, "y": 0}, + {"label": "/", "matrix": [0, 15], "x": 17.5, "y": 0}, + {"label": "*", "matrix": [0, 16], "x": 18.5, "y": 0}, + {"label": "-", "matrix": [0, 17], "x": 19.5, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [3, 13], "w": 1.5, "x": 13.5, "y": 1}, + {"label": "Delete", "matrix": [1, 13], "x": 15.25, "y": 1}, + {"label": "7", "matrix": [1, 14], "x": 16.5, "y": 1}, + {"label": "8", "matrix": [1, 15], "x": 17.5, "y": 1}, + {"label": "9", "matrix": [1, 16], "x": 18.5, "y": 1}, + {"h": 2, "label": "+", "matrix": [1, 17], "x": 19.5, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2}, + {"label": "4", "matrix": [2, 14], "x": 16.5, "y": 2}, + {"label": "5", "matrix": [2, 15], "x": 17.5, "y": 2}, + {"label": "6", "matrix": [2, 16], "x": 18.5, "y": 2}, + {"label": "Shift", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3}, + {"matrix": [4, 3], "w": 2.25, "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 1], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 2], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 3], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 4], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 5], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 6], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 7], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 8], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 9], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 10], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 11], "w": 1.75, "x": 12.25, "y": 3}, + {"label": "Fn", "matrix": [4, 4], "x": 14, "y": 3}, + {"label": "1", "matrix": [3, 12], "x": 16.5, "y": 3}, + {"label": "2", "matrix": [3, 14], "x": 17.5, "y": 3}, + {"label": "3", "matrix": [3, 15], "x": 18.5, "y": 3}, + {"h": 2, "label": "Enter", "matrix": [3, 16], "x": 19.5, "y": 3}, + {"label": "\u2191", "matrix": [3, 17], "x": 15.25, "y": 3.25}, + {"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": "k45", "matrix": [4, 5], "w": 7, "x": 3.75, "y": 4}, + {"label": "Alt", "matrix": [4, 8], "w": 1.5, "x": 10.75, "y": 4}, + {"label": "Menu", "matrix": [4, 9], "w": 1.5, "x": 12.25, "y": 4}, + {"label": "0", "matrix": [4, 10], "x": 17.5, "y": 4}, + {"label": ".", "matrix": [4, 11], "x": 18.5, "y": 4}, + {"label": "\u2190", "matrix": [4, 12], "x": 14.25, "y": 4.25}, + {"label": "\u2193", "matrix": [4, 14], "x": 15.25, "y": 4.25}, + {"label": "\u2192", "matrix": [4, 15], "x": 16.25, "y": 4.25} + ] + }, "LAYOUT": { "layout": [ {"label": "~", "matrix": [0, 0], "x": 0, "y": 0}, From a26e1c8b63e4024533bc30e51817d5f5937d4d8a Mon Sep 17 00:00:00 2001 From: Apteryks Date: Thu, 21 Sep 2023 12:17:38 -0500 Subject: [PATCH 127/496] keymaps: Fix hacker_dvorak build. (#22102) --- .../keymaps/hacker_dvorak/user/layer_set_state_user.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/layer_set_state_user.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/layer_set_state_user.c index bd4fd10ad1..5ce5f5298f 100644 --- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/layer_set_state_user.c +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/layer_set_state_user.c @@ -4,7 +4,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { switch (layer) { case DVORAK: - rgblight_sethsv_noeeprom(GREEN); + rgblight_sethsv_noeeprom(HSV_GREEN); rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); if (PLOVER_MODE) { From abd432fd7afa556e2d1df1c191050800068e6ec7 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Fri, 22 Sep 2023 12:12:20 +1000 Subject: [PATCH 128/496] Allow for `qmk compile -kb all`. (#22022) --- lib/python/qmk/cli/compile.py | 11 ++++- lib/python/qmk/cli/mass_compile.py | 78 ++++++++++++++++-------------- lib/python/qmk/keyboard.py | 32 ++++++++++++ 3 files changed, 83 insertions(+), 38 deletions(-) diff --git a/lib/python/qmk/cli/compile.py b/lib/python/qmk/cli/compile.py index f43e5f32de..3d632e74a9 100755 --- a/lib/python/qmk/cli/compile.py +++ b/lib/python/qmk/cli/compile.py @@ -9,7 +9,7 @@ from milc import cli import qmk.path from qmk.decorators import automagic_keyboard, automagic_keymap from qmk.commands import compile_configurator_json, create_make_command, parse_configurator_json, build_environment -from qmk.keyboard import keyboard_completer, keyboard_folder +from qmk.keyboard import keyboard_completer, keyboard_folder_or_all, is_all_keyboards from qmk.keymap import keymap_completer, locate_keymap @@ -24,7 +24,7 @@ def _is_keymap_target(keyboard, keymap): @cli.argument('filename', nargs='?', arg_only=True, type=qmk.path.FileType('r'), completer=FilesCompleter('.json'), help='The configurator export to compile') -@cli.argument('-kb', '--keyboard', type=keyboard_folder, completer=keyboard_completer, help='The keyboard to build a firmware for. Ignored when a configurator export is supplied.') +@cli.argument('-kb', '--keyboard', type=keyboard_folder_or_all, completer=keyboard_completer, help='The keyboard to build a firmware for. Ignored when a configurator export is supplied.') @cli.argument('-km', '--keymap', completer=keymap_completer, help='The keymap to build a firmware for. Ignored when a configurator export is supplied.') @cli.argument('-n', '--dry-run', arg_only=True, action='store_true', help="Don't actually build, just show the make command to be run.") @cli.argument('-j', '--parallel', type=int, default=1, help="Set the number of parallel make jobs; 0 means unlimited.") @@ -40,6 +40,13 @@ def compile(cli): If a keyboard and keymap are provided this command will build a firmware based on that. """ + if is_all_keyboards(cli.args.keyboard): + from .mass_compile import mass_compile + cli.args.builds = [] + cli.args.filter = [] + cli.args.no_temp = False + return mass_compile(cli) + # Build the environment vars envs = build_environment(cli.args.env) diff --git a/lib/python/qmk/cli/mass_compile.py b/lib/python/qmk/cli/mass_compile.py index ddd946a32b..bac80e9747 100755 --- a/lib/python/qmk/cli/mass_compile.py +++ b/lib/python/qmk/cli/mass_compile.py @@ -17,6 +17,7 @@ from qmk.search import search_keymap_targets @cli.argument('-t', '--no-temp', arg_only=True, action='store_true', help="Remove temporary files during build.") @cli.argument('-j', '--parallel', type=int, default=1, help="Set the number of parallel make jobs; 0 means unlimited.") @cli.argument('-c', '--clean', arg_only=True, action='store_true', help="Remove object files before compiling.") +@cli.argument('-n', '--dry-run', arg_only=True, action='store_true', help="Don't actually build, just show the commands to be run.") @cli.argument( '-f', '--filter', @@ -47,47 +48,52 @@ def mass_compile(cli): if len(targets) == 0: return - builddir.mkdir(parents=True, exist_ok=True) - with open(makefile, "w") as f: + if cli.args.dry_run: + cli.log.info('Compilation targets:') for target in sorted(targets): - keyboard_name = target[0] - keymap_name = target[1] - keyboard_safe = keyboard_name.replace('/', '_') - build_log = f"{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" - failed_log = f"{QMK_FIRMWARE}/.build/failed.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" - # yapf: disable - f.write( - f"""\ -all: {keyboard_safe}_{keymap_name}_binary -{keyboard_safe}_{keymap_name}_binary: - @rm -f "{build_log}" || true - @echo "Compiling QMK Firmware for target: '{keyboard_name}:{keymap_name}'..." >>"{build_log}" - +@$(MAKE) -C "{QMK_FIRMWARE}" -f "{QMK_FIRMWARE}/builddefs/build_keyboard.mk" KEYBOARD="{keyboard_name}" KEYMAP="{keymap_name}" COLOR=true SILENT=false {' '.join(cli.args.env)} \\ - >>"{build_log}" 2>&1 \\ - || cp "{build_log}" "{failed_log}" - @{{ grep '\[ERRORS\]' "{build_log}" >/dev/null 2>&1 && printf "Build %-64s \e[1;31m[ERRORS]\e[0m\\n" "{keyboard_name}:{keymap_name}" ; }} \\ - || {{ grep '\[WARNINGS\]' "{build_log}" >/dev/null 2>&1 && printf "Build %-64s \e[1;33m[WARNINGS]\e[0m\\n" "{keyboard_name}:{keymap_name}" ; }} \\ - || printf "Build %-64s \e[1;32m[OK]\e[0m\\n" "{keyboard_name}:{keymap_name}" - @rm -f "{build_log}" || true -"""# noqa - ) - # yapf: enable - - if cli.args.no_temp: + cli.log.info(f"{{fg_cyan}}qmk compile -kb {target[0]} -km {target[1]}{{fg_reset}}") + else: + builddir.mkdir(parents=True, exist_ok=True) + with open(makefile, "w") as f: + for target in sorted(targets): + keyboard_name = target[0] + keymap_name = target[1] + keyboard_safe = keyboard_name.replace('/', '_') + build_log = f"{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" + failed_log = f"{QMK_FIRMWARE}/.build/failed.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" # yapf: disable f.write( f"""\ - @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{keymap_name}.elf" 2>/dev/null || true - @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{keymap_name}.map" 2>/dev/null || true - @rm -rf "{QMK_FIRMWARE}/.build/obj_{keyboard_safe}_{keymap_name}" || true -"""# noqa + all: {keyboard_safe}_{keymap_name}_binary + {keyboard_safe}_{keymap_name}_binary: + @rm -f "{build_log}" || true + @echo "Compiling QMK Firmware for target: '{keyboard_name}:{keymap_name}'..." >>"{build_log}" + +@$(MAKE) -C "{QMK_FIRMWARE}" -f "{QMK_FIRMWARE}/builddefs/build_keyboard.mk" KEYBOARD="{keyboard_name}" KEYMAP="{keymap_name}" COLOR=true SILENT=false {' '.join(cli.args.env)} \\ + >>"{build_log}" 2>&1 \\ + || cp "{build_log}" "{failed_log}" + @{{ grep '\[ERRORS\]' "{build_log}" >/dev/null 2>&1 && printf "Build %-64s \e[1;31m[ERRORS]\e[0m\\n" "{keyboard_name}:{keymap_name}" ; }} \\ + || {{ grep '\[WARNINGS\]' "{build_log}" >/dev/null 2>&1 && printf "Build %-64s \e[1;33m[WARNINGS]\e[0m\\n" "{keyboard_name}:{keymap_name}" ; }} \\ + || printf "Build %-64s \e[1;32m[OK]\e[0m\\n" "{keyboard_name}:{keymap_name}" + @rm -f "{build_log}" || true + """# noqa ) # yapf: enable - f.write('\n') - cli.run([make_cmd, *get_make_parallel_args(cli.args.parallel), '-f', makefile.as_posix(), 'all'], capture_output=False, stdin=DEVNULL) + if cli.args.no_temp: + # yapf: disable + f.write( + f"""\ + @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{keymap_name}.elf" 2>/dev/null || true + @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{keymap_name}.map" 2>/dev/null || true + @rm -rf "{QMK_FIRMWARE}/.build/obj_{keyboard_safe}_{keymap_name}" || true + """# noqa + ) + # yapf: enable + f.write('\n') - # Check for failures - failures = [f for f in builddir.glob(f'failed.log.{os.getpid()}.*')] - if len(failures) > 0: - return False + cli.run([make_cmd, *get_make_parallel_args(cli.args.parallel), '-f', makefile.as_posix(), 'all'], capture_output=False, stdin=DEVNULL) + + # Check for failures + failures = [f for f in builddir.glob(f'failed.log.{os.getpid()}.*')] + if len(failures) > 0: + return False diff --git a/lib/python/qmk/keyboard.py b/lib/python/qmk/keyboard.py index 235b62640c..3e5cae4b22 100644 --- a/lib/python/qmk/keyboard.py +++ b/lib/python/qmk/keyboard.py @@ -30,9 +30,29 @@ BOX_DRAWING_CHARACTERS = { }, } + +class AllKeyboards: + """Represents all keyboards. + """ + def __str__(self): + return 'all' + + def __repr__(self): + return 'all' + + def __eq__(self, other): + return isinstance(other, AllKeyboards) + + base_path = os.path.join(os.getcwd(), "keyboards") + os.path.sep +def is_all_keyboards(keyboard): + """Returns True if the keyboard is an AllKeyboards object. + """ + return isinstance(keyboard, AllKeyboards) + + def find_keyboard_from_dir(): """Returns a keyboard name based on the user's current directory. """ @@ -86,6 +106,18 @@ def keyboard_folder(keyboard): return keyboard +def keyboard_folder_or_all(keyboard): + """Returns the actual keyboard folder. + + This checks aliases and DEFAULT_FOLDER to resolve the actual path for a keyboard. + If the supplied argument is "all", it returns an AllKeyboards object. + """ + if keyboard == 'all': + return AllKeyboards() + + return keyboard_folder(keyboard) + + def _find_name(path): """Determine the keyboard name by stripping off the base_path and rules.mk. """ From 5cc5270aaf07a57bc086ef563b46e8bd84ab9cd4 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 22 Sep 2023 15:59:41 -0700 Subject: [PATCH 129/496] Royal Kludge RK G68 Community Layout Support (#22103) * Rename `LAYOUT` to `LAYOUT_65_ansi` [refactor] * Enable Community Layout support [enhancement] * Touch-up keymaps - fix keycode grid alignment [style] * Touch-up readme - link to maintainer's GitHub profile - specify codebase is for RGB version of RK G68 - update Hardware Availability links [docs] --- keyboards/rkg68/info.json | 6 +++++- keyboards/rkg68/keymaps/default/keymap.c | 8 ++++---- keyboards/rkg68/keymaps/via/keymap.c | 8 ++++---- keyboards/rkg68/readme.md | 14 +++++++------- 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/keyboards/rkg68/info.json b/keyboards/rkg68/info.json index c0043377a9..72244d50d6 100644 --- a/keyboards/rkg68/info.json +++ b/keyboards/rkg68/info.json @@ -30,8 +30,12 @@ "pid": "0x0049", "vid": "0x0049" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_65_ansi" + }, + "community_layouts": ["65_ansi"], "layouts": { - "LAYOUT": { + "LAYOUT_65_ansi": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/rkg68/keymaps/default/keymap.c b/keyboards/rkg68/keymaps/default/keymap.c index 2631452b5b..09f81e6451 100644 --- a/keyboards/rkg68/keymaps/default/keymap.c +++ b/keyboards/rkg68/keymaps/default/keymap.c @@ -17,18 +17,18 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_65_ansi( KC_ESC, 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_BSPC, KC_GRV, 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_DEL, 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_ENT, KC_PGUP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_65_ansi( KC_TRNS, 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_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, RGB_MOD, KC_INS, 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_BRK, 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_VAI, KC_SCRL, - QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_VAD, RGB_SPD + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_VAD, RGB_SPD ) -}; \ No newline at end of file +}; diff --git a/keyboards/rkg68/keymaps/via/keymap.c b/keyboards/rkg68/keymaps/via/keymap.c index 2631452b5b..09f81e6451 100644 --- a/keyboards/rkg68/keymaps/via/keymap.c +++ b/keyboards/rkg68/keymaps/via/keymap.c @@ -17,18 +17,18 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_65_ansi( KC_ESC, 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_BSPC, KC_GRV, 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_DEL, 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_ENT, KC_PGUP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_65_ansi( KC_TRNS, 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_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, RGB_MOD, KC_INS, 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_BRK, 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_VAI, KC_SCRL, - QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_VAD, RGB_SPD + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_VAD, RGB_SPD ) -}; \ No newline at end of file +}; diff --git a/keyboards/rkg68/readme.md b/keyboards/rkg68/readme.md index 8069a53169..c0c4a583ba 100644 --- a/keyboards/rkg68/readme.md +++ b/keyboards/rkg68/readme.md @@ -1,10 +1,10 @@ -# RK G68 +# Royal Kludge RK G68 -![Keyboard picture](https://imgur.com/UnOJPZrh.jpg) +![Royal Kludge RK G68](https://imgur.com/UnOJPZrh.jpg) -* Keyboard Maintainer: [Royal Kludge](https://rkgamingstore.com/) -* Hardware Supported: Royal Kludge RK G68 -* Hardware Availability: [RKG 68](http://en.rkgaming.com/download/1/) +* Keyboard Maintainer: [Thomaz Peres](https://github.com/Thomaz-Peres) +* Hardware Supported: Royal Kludge RK G68, RGB version +* Hardware Availability: [RKGaming.com](http://en.rkgaming.com/product/13/), [Amazon.com](https://www.amazon.com/RK-ROYAL-KLUDGE-Bluetooth-Mechanical/dp/B08JCRMZX9/) After setting up your build environment, you can compile the default keymap by using: @@ -24,8 +24,8 @@ Enter the bootloader in 3 ways: - **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead - **Keycode in layout**: Press the key `FN` and `Left CTRL`. -## Layouts +## Layout -- ANSI layout; +- 65% Standard ANSI layout ![Imgur](https://i.imgur.com/l7ka1gkh.png) From d49edbcf14ac0a8252fe274ba228b2792452f811 Mon Sep 17 00:00:00 2001 From: Ryan Neff Date: Fri, 22 Sep 2023 19:18:37 -0700 Subject: [PATCH 130/496] Added OLED SSD1306 128x64 to the verified working table (#22112) --- docs/feature_oled_driver.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/feature_oled_driver.md b/docs/feature_oled_driver.md index f3769742f8..ba10a5a2b9 100644 --- a/docs/feature_oled_driver.md +++ b/docs/feature_oled_driver.md @@ -10,6 +10,7 @@ Tested combinations: |SSD1306 |128x32 |AVR |Primary support | |SSD1306 |128x64 |AVR |Verified working | |SSD1306 |128x32 |Arm | | +|SSD1306 |128x64 |Arm |Verified working | |SH1106 |128x64 |AVR |No scrolling | |SH1107 |64x128 |AVR |No scrolling | |SH1107 |64x128 |Arm |No scrolling | From e001c3349bd5a0276dead04fcbab6c889bb8e232 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 22 Sep 2023 19:55:25 -0700 Subject: [PATCH 131/496] Shoc: physically arrange keymaps/layout macro (#22100) --- keyboards/shoc/info.json | 50 +++++++++++++------------ keyboards/shoc/keymaps/bongo/keymap.c | 30 ++++++--------- keyboards/shoc/keymaps/default/keymap.c | 28 ++++++-------- 3 files changed, 50 insertions(+), 58 deletions(-) diff --git a/keyboards/shoc/info.json b/keyboards/shoc/info.json index fca5fdca0b..276e64adee 100644 --- a/keyboards/shoc/info.json +++ b/keyboards/shoc/info.json @@ -26,6 +26,12 @@ {"matrix": [0, 5], "x": 5, "y": 0}, {"matrix": [0, 6], "x": 6, "y": 0}, {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [5, 4], "x": 8, "y": 0}, + {"matrix": [5, 3], "x": 9, "y": 0}, + {"matrix": [5, 2], "x": 10, "y": 0}, + {"matrix": [5, 1], "x": 11, "y": 0}, + {"matrix": [5, 0], "x": 12, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1}, {"matrix": [1, 1], "x": 1, "y": 1}, {"matrix": [1, 2], "x": 2, "y": 1}, @@ -34,6 +40,13 @@ {"matrix": [1, 5], "x": 5, "y": 1}, {"matrix": [1, 6], "x": 6, "y": 1}, {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [5, 5], "x": 8, "y": 1}, + {"matrix": [5, 6], "x": 9, "y": 1}, + {"matrix": [5, 7], "x": 10, "y": 1}, + {"matrix": [7, 0], "x": 11, "y": 1}, + {"matrix": [7, 1], "x": 12, "y": 1}, + {"matrix": [7, 2], "x": 13, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, {"matrix": [2, 1], "x": 1.5, "y": 2}, {"matrix": [2, 2], "x": 2.5, "y": 2}, @@ -42,6 +55,12 @@ {"matrix": [2, 5], "x": 5.5, "y": 2}, {"matrix": [2, 6], "x": 6.5, "y": 2}, {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [7, 7], "x": 8.5, "y": 2}, + {"matrix": [7, 6], "x": 9.5, "y": 2}, + {"matrix": [7, 5], "x": 10.5, "y": 2}, + {"matrix": [7, 4], "x": 11.5, "y": 2}, + {"matrix": [7, 3], "x": 12.5, "y": 2, "w": 1.5}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2}, {"matrix": [3, 1], "x": 2, "y": 3}, {"matrix": [3, 2], "x": 3, "y": 3}, @@ -50,6 +69,12 @@ {"matrix": [3, 5], "x": 6, "y": 3}, {"matrix": [3, 6], "x": 7, "y": 3}, {"matrix": [3, 7], "x": 8, "y": 3}, + {"matrix": [6, 7], "x": 9, "y": 3}, + {"matrix": [6, 6], "x": 10, "y": 3}, + {"matrix": [6, 5], "x": 11, "y": 3}, + {"matrix": [6, 4], "x": 12, "y": 3}, + {"matrix": [6, 3], "x": 13, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, {"matrix": [4, 1], "x": 1.5, "y": 4}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, @@ -58,30 +83,9 @@ {"matrix": [4, 5], "x": 7, "y": 4, "w": 2}, {"matrix": [4, 6], "x": 9, "y": 4}, {"matrix": [4, 7], "x": 10, "y": 4}, - {"matrix": [5, 0], "x": 12, "y": 0, "w": 2}, - {"matrix": [5, 1], "x": 11, "y": 0}, - {"matrix": [5, 2], "x": 10, "y": 0}, - {"matrix": [5, 3], "x": 9, "y": 0}, - {"matrix": [5, 4], "x": 8, "y": 0}, - {"matrix": [5, 5], "x": 8, "y": 1}, - {"matrix": [5, 6], "x": 9, "y": 1}, - {"matrix": [5, 7], "x": 10, "y": 1}, - {"matrix": [6, 0], "x": 13, "y": 4}, - {"matrix": [6, 1], "x": 12, "y": 4}, {"matrix": [6, 2], "x": 11, "y": 4}, - {"matrix": [6, 3], "x": 13, "y": 3}, - {"matrix": [6, 4], "x": 12, "y": 3}, - {"matrix": [6, 5], "x": 11, "y": 3}, - {"matrix": [6, 6], "x": 10, "y": 3}, - {"matrix": [6, 7], "x": 9, "y": 3}, - {"matrix": [7, 0], "x": 11, "y": 1}, - {"matrix": [7, 1], "x": 12, "y": 1}, - {"matrix": [7, 2], "x": 13, "y": 1}, - {"matrix": [7, 3], "x": 12.5, "y": 2, "w": 1.5}, - {"matrix": [7, 4], "x": 11.5, "y": 2}, - {"matrix": [7, 5], "x": 10.5, "y": 2}, - {"matrix": [7, 6], "x": 9.5, "y": 2}, - {"matrix": [7, 7], "x": 8.5, "y": 2} + {"matrix": [6, 1], "x": 12, "y": 4}, + {"matrix": [6, 0], "x": 13, "y": 4} ] } } diff --git a/keyboards/shoc/keymaps/bongo/keymap.c b/keyboards/shoc/keymaps/bongo/keymap.c index 8f57181330..0242e5adad 100644 --- a/keyboards/shoc/keymaps/bongo/keymap.c +++ b/keyboards/shoc/keymaps/bongo/keymap.c @@ -17,32 +17,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, - KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL, - KC_BSPC, KC_MINS, KC_0, KC_9, KC_8, KC_I, KC_O, KC_P, - KC_RGHT, KC_DOWN, KC_LEFT, KC_EQL, KC_UP, KC_SLSH, KC_COMM, KC_DOT, - KC_RBRC, KC_LBRC, KC_BSLS, KC_ENT, KC_QUOT, KC_SCLN, KC_L, KC_K), + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, KC_RBRC, KC_LBRC, KC_BSLS, + 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_ENT, + KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_DOT, KC_COMM, KC_SLSH, KC_UP, KC_EQL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [1] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, - KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL, - KC_BSPC, KC_F11, KC_F10, KC_F9, KC_F8, KC_I, KC_O, KC_P, - KC_RGHT, KC_DOWN, KC_LEFT, KC_DEL, KC_UP, KC_SLSH, KC_COMM, KC_DOT, - KC_RBRC, KC_LBRC, KC_BSLS, KC_ENT, KC_QUOT, KC_SCLN, KC_L, KC_K) + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, KC_RBRC, KC_LBRC, KC_BSLS, + 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_ENT, + KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_DOT, KC_COMM, KC_SLSH, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT) }; #ifdef OLED_ENABLE oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return OLED_ROTATION_0; + return OLED_ROTATION_0; } //full credit goes to https://www.reddit.com/user/Pop-X-/ only small feature comforts were added diff --git a/keyboards/shoc/keymaps/default/keymap.c b/keyboards/shoc/keymaps/default/keymap.c index a5916db65a..beb5fb7d3d 100644 --- a/keyboards/shoc/keymaps/default/keymap.c +++ b/keyboards/shoc/keymaps/default/keymap.c @@ -17,25 +17,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, - KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL, - KC_BSPC, KC_MINS, KC_0, KC_9, KC_8, KC_I, KC_O, KC_P, - KC_RGHT, KC_DOWN, KC_LEFT, KC_EQL, KC_UP, KC_SLSH, KC_COMM, KC_DOT, - KC_RBRC, KC_LBRC, KC_BSLS, KC_ENT, KC_QUOT, KC_SCLN, KC_L, KC_K), + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, KC_RBRC, KC_LBRC, KC_BSLS, + 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_ENT, + KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_DOT, KC_COMM, KC_SLSH, KC_UP, KC_EQL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [1] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, - KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL, - KC_BSPC, KC_F11, KC_F10, KC_F9, KC_F8, KC_I, KC_O, KC_P, - KC_RGHT, KC_DOWN, KC_LEFT, KC_DEL, KC_UP, KC_SLSH, KC_COMM, KC_DOT, - KC_RBRC, KC_LBRC, KC_BSLS, KC_ENT, KC_QUOT, KC_SCLN, KC_L, KC_K) + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, KC_RBRC, KC_LBRC, KC_BSLS, + 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_ENT, + KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_DOT, KC_COMM, KC_SLSH, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT) }; From 73ffa4594d8ed0e000b1b4333b011079fda8edd1 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sat, 23 Sep 2023 13:07:38 +1000 Subject: [PATCH 132/496] Fix up `qmk mass-compile` makefile indenting. (#22115) --- lib/python/qmk/cli/mass_compile.py | 32 +++++++++++++++--------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/lib/python/qmk/cli/mass_compile.py b/lib/python/qmk/cli/mass_compile.py index bac80e9747..1032dc82d1 100755 --- a/lib/python/qmk/cli/mass_compile.py +++ b/lib/python/qmk/cli/mass_compile.py @@ -64,18 +64,18 @@ def mass_compile(cli): # yapf: disable f.write( f"""\ - all: {keyboard_safe}_{keymap_name}_binary - {keyboard_safe}_{keymap_name}_binary: - @rm -f "{build_log}" || true - @echo "Compiling QMK Firmware for target: '{keyboard_name}:{keymap_name}'..." >>"{build_log}" - +@$(MAKE) -C "{QMK_FIRMWARE}" -f "{QMK_FIRMWARE}/builddefs/build_keyboard.mk" KEYBOARD="{keyboard_name}" KEYMAP="{keymap_name}" COLOR=true SILENT=false {' '.join(cli.args.env)} \\ - >>"{build_log}" 2>&1 \\ - || cp "{build_log}" "{failed_log}" - @{{ grep '\[ERRORS\]' "{build_log}" >/dev/null 2>&1 && printf "Build %-64s \e[1;31m[ERRORS]\e[0m\\n" "{keyboard_name}:{keymap_name}" ; }} \\ - || {{ grep '\[WARNINGS\]' "{build_log}" >/dev/null 2>&1 && printf "Build %-64s \e[1;33m[WARNINGS]\e[0m\\n" "{keyboard_name}:{keymap_name}" ; }} \\ - || printf "Build %-64s \e[1;32m[OK]\e[0m\\n" "{keyboard_name}:{keymap_name}" - @rm -f "{build_log}" || true - """# noqa +all: {keyboard_safe}_{keymap_name}_binary +{keyboard_safe}_{keymap_name}_binary: + @rm -f "{build_log}" || true + @echo "Compiling QMK Firmware for target: '{keyboard_name}:{keymap_name}'..." >>"{build_log}" + +@$(MAKE) -C "{QMK_FIRMWARE}" -f "{QMK_FIRMWARE}/builddefs/build_keyboard.mk" KEYBOARD="{keyboard_name}" KEYMAP="{keymap_name}" COLOR=true SILENT=false {' '.join(cli.args.env)} \\ + >>"{build_log}" 2>&1 \\ + || cp "{build_log}" "{failed_log}" + @{{ grep '\[ERRORS\]' "{build_log}" >/dev/null 2>&1 && printf "Build %-64s \e[1;31m[ERRORS]\e[0m\\n" "{keyboard_name}:{keymap_name}" ; }} \\ + || {{ grep '\[WARNINGS\]' "{build_log}" >/dev/null 2>&1 && printf "Build %-64s \e[1;33m[WARNINGS]\e[0m\\n" "{keyboard_name}:{keymap_name}" ; }} \\ + || printf "Build %-64s \e[1;32m[OK]\e[0m\\n" "{keyboard_name}:{keymap_name}" + @rm -f "{build_log}" || true +"""# noqa ) # yapf: enable @@ -83,10 +83,10 @@ def mass_compile(cli): # yapf: disable f.write( f"""\ - @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{keymap_name}.elf" 2>/dev/null || true - @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{keymap_name}.map" 2>/dev/null || true - @rm -rf "{QMK_FIRMWARE}/.build/obj_{keyboard_safe}_{keymap_name}" || true - """# noqa + @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{keymap_name}.elf" 2>/dev/null || true + @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{keymap_name}.map" 2>/dev/null || true + @rm -rf "{QMK_FIRMWARE}/.build/obj_{keyboard_safe}_{keymap_name}" || true +"""# noqa ) # yapf: enable f.write('\n') From ef214e6a3c2fed528059b619e87676fbe25f3239 Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Sat, 23 Sep 2023 05:45:34 +0100 Subject: [PATCH 133/496] Add 'dactyl_tracer' keyboard (#20993) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/handwired/dactyl_tracer/info.json | 92 +++++++++++++++++++ .../dactyl_tracer/keymaps/default/config.h | 23 +++++ .../dactyl_tracer/keymaps/default/keymap.c | 60 ++++++++++++ .../dactyl_tracer/keymaps/via/config.h | 15 +++ .../dactyl_tracer/keymaps/via/keymap.c | 60 ++++++++++++ .../dactyl_tracer/keymaps/via/rules.mk | 2 + keyboards/handwired/dactyl_tracer/readme.md | 27 ++++++ keyboards/handwired/dactyl_tracer/rules.mk | 1 + 8 files changed, 280 insertions(+) create mode 100644 keyboards/handwired/dactyl_tracer/info.json create mode 100644 keyboards/handwired/dactyl_tracer/keymaps/default/config.h create mode 100644 keyboards/handwired/dactyl_tracer/keymaps/default/keymap.c create mode 100644 keyboards/handwired/dactyl_tracer/keymaps/via/config.h create mode 100644 keyboards/handwired/dactyl_tracer/keymaps/via/keymap.c create mode 100644 keyboards/handwired/dactyl_tracer/keymaps/via/rules.mk create mode 100644 keyboards/handwired/dactyl_tracer/readme.md create mode 100644 keyboards/handwired/dactyl_tracer/rules.mk diff --git a/keyboards/handwired/dactyl_tracer/info.json b/keyboards/handwired/dactyl_tracer/info.json new file mode 100644 index 0000000000..29e5990666 --- /dev/null +++ b/keyboards/handwired/dactyl_tracer/info.json @@ -0,0 +1,92 @@ +{ + "keyboard_name": "Dactyl Tracer", + "manufacturer": "mjohns", + "url": "https://github.com/mjohns/tracer", + "maintainer": "mjohns", + "usb": { + "vid": "0x444E", + "pid": "0x1307", + "device_version": "1.0.0" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "mousekey": true, + "extrakey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["C6", "D7", "E6", "B4", "B5"], + "rows": ["F7", "B1", "B3", "B2", "B6"] + }, + "diode_direction": "COL2ROW", + "development_board": "promicro", + "split": { + "enabled": true, + "soft_serial_pin": "D0" + }, + "layouts": { + "LAYOUT" : { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.25}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + + {"matrix": [5, 0], "x": 9, "y": 0}, + {"matrix": [5, 1], "x": 10, "y": 0}, + {"matrix": [5, 2], "x": 11, "y": 0}, + {"matrix": [5, 3], "x": 12, "y": 0}, + {"matrix": [5, 4], "x": 13, "y": 0.25}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + + {"matrix": [6, 0], "x": 9, "y": 1}, + {"matrix": [6, 1], "x": 10, "y": 1}, + {"matrix": [6, 2], "x": 11, "y": 1}, + {"matrix": [6, 3], "x": 12, "y": 1}, + {"matrix": [6, 4], "x": 13, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + + {"matrix": [7, 0], "x": 9, "y": 2}, + {"matrix": [7, 1], "x": 10, "y": 2}, + {"matrix": [7, 2], "x": 11, "y": 2}, + {"matrix": [7, 3], "x": 12, "y": 2}, + {"matrix": [7, 4], "x": 13, "y": 2.5}, + + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + + {"matrix": [3, 4], "x": 5, "y": 3.25}, + + {"matrix": [8, 0], "x": 8, "y": 3.25}, + + {"matrix": [8, 2], "x": 11, "y": 3}, + {"matrix": [8, 3], "x": 12, "y": 3}, + + {"matrix": [4, 2], "x": 3, "y": 4 }, + {"matrix": [3, 3], "x": 4, "y": 4 }, + {"matrix": [4, 4], "x": 5, "y": 4.25}, + + {"matrix": [9, 0], "x": 8, "y": 4.25}, + {"matrix": [8, 1], "x": 9, "y": 4}, + {"matrix": [9, 2], "x": 10, "y": 4}, + + {"matrix": [4, 3], "x": 4.5, "y": 5.25}, + + {"matrix": [9, 1], "x": 8.5, "y": 5.25} + ] + } + } +} diff --git a/keyboards/handwired/dactyl_tracer/keymaps/default/config.h b/keyboards/handwired/dactyl_tracer/keymaps/default/config.h new file mode 100644 index 0000000000..0cb73d6a45 --- /dev/null +++ b/keyboards/handwired/dactyl_tracer/keymaps/default/config.h @@ -0,0 +1,23 @@ +// Copyright 2022 mjohns +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* Enables This makes it easier for fast typists to use dual-function keys */ +#define PERMISSIVE_HOLD + +/* mouse config */ +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_TIME_TO_MAX 60 +#define MOUSEKEY_MAX_SPEED 7 +#define MOUSEKEY_WHEEL_DELAY 0 + +#define TAPPING_TERM 200 + +#define MASTER_RIGHT diff --git a/keyboards/handwired/dactyl_tracer/keymaps/default/keymap.c b/keyboards/handwired/dactyl_tracer/keymaps/default/keymap.c new file mode 100644 index 0000000000..0fa218b930 --- /dev/null +++ b/keyboards/handwired/dactyl_tracer/keymaps/default/keymap.c @@ -0,0 +1,60 @@ +// Copyright 2022 mjohns +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum custom_layers { + _BASE, + _RAISE, + _LOWER, + _SYS, +}; + +#define MG_A LGUI_T(KC_A) +#define MA_S LALT_T(KC_S) +#define MC_D LCTL_T(KC_D) +#define MS_F LSFT_T(KC_F) +#define MS_J RSFT_T(KC_J) +#define MC_K RCTL_T(KC_K) +#define MA_L LALT_T(KC_L) +#define MG_SCLN RGUI_T(KC_SCLN) +#define APP_N A(KC_TAB) +#define APP_P LSA(KC_TAB) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + MG_A, MA_S, MC_D, MS_F, KC_G, KC_H, MS_J, MC_K, MA_L, MG_SCLN, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOT, + KC_LEFT, KC_RGHT, KC_HOME, KC_END, KC_UP, KC_DOWN, + KC_TAB, KC_SPC, KC_DEL, KC_BSPC, KC_ENT, KC_ESC, + MO(1), MO(2) + ), + + [_RAISE] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_LBRC, KC_RBRC, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, + KC_PIPE, KC_GRV, KC_BSLS, KC_LPRN, KC_LCBR, KC_RCBR, KC_RPRN, KC_SLSH, KC_QUES, KC_TILD, + KC_MINS, KC_PLUS, KC_NO, KC_LALT, KC_EQL, KC_UNDS, + KC_NO, KC_NO, KC_NO, KC_RCTL, KC_RSFT, KC_RGUI, + _______, MO(3) + ), + + [_LOWER] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_INS, KC_PAUS, KC_PGUP, KC_PSCR, KC_MUTE, KC_VOLU, KC_MNXT, KC_MPRV, KC_F12, + KC_SCRL, KC_NO, KC_NO, KC_PGDN, KC_NO, KC_NO, KC_VOLD, KC_MPLY, KC_MSTP, KC_NO, + KC_BRID, KC_BRIU, KC_LALT, KC_NO, APP_N, APP_P, + KC_LGUI, KC_LSFT, KC_LCTL, KC_NO, KC_NO, KC_NO, + MO(3), _______ + ), + + [_SYS] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLEP, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + _______, _______ + ), +}; diff --git a/keyboards/handwired/dactyl_tracer/keymaps/via/config.h b/keyboards/handwired/dactyl_tracer/keymaps/via/config.h new file mode 100644 index 0000000000..ab8832c96e --- /dev/null +++ b/keyboards/handwired/dactyl_tracer/keymaps/via/config.h @@ -0,0 +1,15 @@ +// Copyright 2022 mjohns +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* mouse config */ +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_TIME_TO_MAX 60 +#define MOUSEKEY_MAX_SPEED 7 +#define MOUSEKEY_WHEEL_DELAY 0 + +#define TAPPING_TERM 200 + +#define MASTER_RIGHT diff --git a/keyboards/handwired/dactyl_tracer/keymaps/via/keymap.c b/keyboards/handwired/dactyl_tracer/keymaps/via/keymap.c new file mode 100644 index 0000000000..0fa218b930 --- /dev/null +++ b/keyboards/handwired/dactyl_tracer/keymaps/via/keymap.c @@ -0,0 +1,60 @@ +// Copyright 2022 mjohns +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum custom_layers { + _BASE, + _RAISE, + _LOWER, + _SYS, +}; + +#define MG_A LGUI_T(KC_A) +#define MA_S LALT_T(KC_S) +#define MC_D LCTL_T(KC_D) +#define MS_F LSFT_T(KC_F) +#define MS_J RSFT_T(KC_J) +#define MC_K RCTL_T(KC_K) +#define MA_L LALT_T(KC_L) +#define MG_SCLN RGUI_T(KC_SCLN) +#define APP_N A(KC_TAB) +#define APP_P LSA(KC_TAB) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + MG_A, MA_S, MC_D, MS_F, KC_G, KC_H, MS_J, MC_K, MA_L, MG_SCLN, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOT, + KC_LEFT, KC_RGHT, KC_HOME, KC_END, KC_UP, KC_DOWN, + KC_TAB, KC_SPC, KC_DEL, KC_BSPC, KC_ENT, KC_ESC, + MO(1), MO(2) + ), + + [_RAISE] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_LBRC, KC_RBRC, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, + KC_PIPE, KC_GRV, KC_BSLS, KC_LPRN, KC_LCBR, KC_RCBR, KC_RPRN, KC_SLSH, KC_QUES, KC_TILD, + KC_MINS, KC_PLUS, KC_NO, KC_LALT, KC_EQL, KC_UNDS, + KC_NO, KC_NO, KC_NO, KC_RCTL, KC_RSFT, KC_RGUI, + _______, MO(3) + ), + + [_LOWER] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_INS, KC_PAUS, KC_PGUP, KC_PSCR, KC_MUTE, KC_VOLU, KC_MNXT, KC_MPRV, KC_F12, + KC_SCRL, KC_NO, KC_NO, KC_PGDN, KC_NO, KC_NO, KC_VOLD, KC_MPLY, KC_MSTP, KC_NO, + KC_BRID, KC_BRIU, KC_LALT, KC_NO, APP_N, APP_P, + KC_LGUI, KC_LSFT, KC_LCTL, KC_NO, KC_NO, KC_NO, + MO(3), _______ + ), + + [_SYS] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLEP, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + _______, _______ + ), +}; diff --git a/keyboards/handwired/dactyl_tracer/keymaps/via/rules.mk b/keyboards/handwired/dactyl_tracer/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/handwired/dactyl_tracer/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/handwired/dactyl_tracer/readme.md b/keyboards/handwired/dactyl_tracer/readme.md new file mode 100644 index 0000000000..c6e1d80892 --- /dev/null +++ b/keyboards/handwired/dactyl_tracer/readme.md @@ -0,0 +1,27 @@ +# Dactyl Tracer + +![DactylTracer](https://i.imgur.com/ReCBppEh.jpeg) + +The Dactyl Tracer is a handwired, split bodied, concave key-well, columnar keyboard. Case design is similar to the [Dactyl CC](/keyboards/handwired/dactyl_cc) though overall design is closer to the [Dactyl ManuForm](/keyboards/handwired/dactyl_manuform/). The `Q` and `P` keys are vertically offset, from `A` and `;` keys respectively, to allow for easier actuation by third/ring finger. + +* Keyboard Maintainer: [Michael Johns](https://github.com/mjohns) +* Hardware Supported: Pro Micro controller, or clone of +* Hardware Availability: [Case Files](https://github.com/mjohns/tracer) + +Make example for this keyboard (after setting up your build environment): + + make handwired/dactyl_tracer:default + +Flashing example for this keyboard: + + make handwired/dactyl_tracer:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/dactyl_tracer/rules.mk b/keyboards/handwired/dactyl_tracer/rules.mk new file mode 100644 index 0000000000..3bbd261429 --- /dev/null +++ b/keyboards/handwired/dactyl_tracer/rules.mk @@ -0,0 +1 @@ +# File intentionally blank From 4590b808daea1dd0f78bb47679fc5021bb8c7817 Mon Sep 17 00:00:00 2001 From: Daniel Osipishin <88534270+subrezon@users.noreply.github.com> Date: Sat, 23 Sep 2023 07:10:35 +0200 Subject: [PATCH 134/496] add subrezon/lancer keyboard (#20792) Co-authored-by: Joel Challis Co-authored-by: Drashna Jaelre Co-authored-by: Daniel Osipishin --- keyboards/subrezon/lancer/info.json | 65 +++++++++++++++++++ .../lancer/keymaps/default/keymap.json | 33 ++++++++++ keyboards/subrezon/lancer/readme.md | 27 ++++++++ keyboards/subrezon/lancer/rules.mk | 1 + 4 files changed, 126 insertions(+) create mode 100644 keyboards/subrezon/lancer/info.json create mode 100644 keyboards/subrezon/lancer/keymaps/default/keymap.json create mode 100644 keyboards/subrezon/lancer/readme.md create mode 100644 keyboards/subrezon/lancer/rules.mk diff --git a/keyboards/subrezon/lancer/info.json b/keyboards/subrezon/lancer/info.json new file mode 100644 index 0000000000..cf678c84bc --- /dev/null +++ b/keyboards/subrezon/lancer/info.json @@ -0,0 +1,65 @@ +{ + "keyboard_name": "lancer", + "url": "https://github.com/subrezon/lancer", + "usb": { + "vid": "0xFEED", + "pid": "0x1A7D", + "device_version": "1.0.0" + }, + "development_board": "promicro", + "matrix_pins": { + "rows": ["F5", "D4", "B3", "B6", "B5"], + "cols": ["F4", "F6", "F7", "B1", "B2", "B4", "E6", "D7", "C6", "D2"] + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Q", "matrix": [0, 0], "x": 0, "y": 0}, + { "label": "W", "matrix": [0, 1], "x": 1, "y": 0}, + { "label": "E", "matrix": [0, 2], "x": 2, "y": 0}, + { "label": "R", "matrix": [0, 3], "x": 3, "y": 0}, + { "label": "T", "matrix": [0, 4], "x": 4, "y": 0}, + { "label": "Y", "matrix": [1, 5], "x": 6, "y": 0}, + { "label": "U", "matrix": [1, 6], "x": 7, "y": 0}, + { "label": "I", "matrix": [1, 7], "x": 8, "y": 0}, + { "label": "O", "matrix": [1, 8], "x": 9, "y": 0}, + { "label": "P", "matrix": [1, 9], "x": 10, "y": 0}, + { "label": "A", "matrix": [2, 0], "x": 0, "y": 1}, + { "label": "S", "matrix": [2, 1], "x": 1, "y": 1}, + { "label": "D", "matrix": [2, 2], "x": 2, "y": 1}, + { "label": "F", "matrix": [2, 3], "x": 3, "y": 1}, + { "label": "G", "matrix": [2, 4], "x": 4, "y": 1}, + { "label": "H", "matrix": [2, 5], "x": 6, "y": 1}, + { "label": "J", "matrix": [2, 6], "x": 7, "y": 1}, + { "label": "K", "matrix": [2, 7], "x": 8, "y": 1}, + { "label": "L", "matrix": [2, 8], "x": 9, "y": 1}, + { "label": ";", "matrix": [2, 9], "x": 10, "y": 1}, + { "label": "Z", "matrix": [3, 0], "x": 0, "y": 2}, + { "label": "X", "matrix": [3, 1], "x": 1, "y": 2}, + { "label": "C", "matrix": [3, 2], "x": 2, "y": 2}, + { "label": "V", "matrix": [3, 3], "x": 3, "y": 2}, + { "label": "B", "matrix": [3, 4], "x": 4, "y": 2}, + { "label": "N", "matrix": [3, 5], "x": 6, "y": 2}, + { "label": "M", "matrix": [3, 6], "x": 7, "y": 2}, + { "label": ",", "matrix": [3, 7], "x": 8, "y": 2}, + { "label": ".", "matrix": [3, 8], "x": 9, "y": 2}, + { "label": "Enter", "matrix": [3, 9], "x": 10, "y": 2}, + { "label": "Ctrl", "matrix": [4, 2], "x": 2.5, "y": 3}, + { "label": "Lower", "matrix": [4, 3], "x": 3.5, "y": 3}, + { "label": "", "matrix": [4, 4], "x": 4.5, "y": 3}, + { "label": "Bksp", "matrix": [4, 5], "x": 5.5, "y": 3}, + { "label": "Shift", "matrix": [4, 6], "x": 6.5, "y": 3}, + { "label": "Raise", "matrix": [4, 7], "x": 7.5, "y": 3} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/subrezon/lancer/keymaps/default/keymap.json b/keyboards/subrezon/lancer/keymaps/default/keymap.json new file mode 100644 index 0000000000..b25e81d538 --- /dev/null +++ b/keyboards/subrezon/lancer/keymaps/default/keymap.json @@ -0,0 +1,33 @@ +{ + "version": 1, + "notes": "default keymap", + "keyboard": "subrezon/lancer", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + [ + "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", + "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", + "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_ENT", + "KC_LCTL", "MO(1)", "KC_SPC", "KC_BSPC", "KC_LSFT", "MO(2)" + ], + [ + "KC_TAB", "KC_7", "KC_8", "KC_9", "KC_GRV", "KC_MPRV", "KC_PGUP", "KC_UP", "KC_PGDN", "KC_DEL", + "KC_ESC", "KC_4", "KC_5", "KC_6", "KC_0", "KC_MPLY", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_RSFT", + "KC_LALT", "KC_1", "KC_2", "KC_3", "KC_TILD", "KC_MNXT", "KC_HOME", "KC_INS", "KC_END", "KC_RALT", + "KC_LCTL", "_______", "KC_SPC", "KC_BSPC", "KC_LGUI", "MO(3)" + ], + [ + "KC_TAB", "KC_AMPR", "KC_ASTR", "KC_BSLS", "KC_LBRC", "KC_RBRC", "KC_UNDS", "KC_PLUS", "KC_DQUO", "KC_DEL", + "KC_ESC", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_LPRN", "KC_RPRN", "KC_MINS", "KC_EQL", "KC_QUOT", "KC_SLSH", + "KC_LALT", "KC_EXLM", "KC_AT", "KC_HASH", "KC_LCBR", "KC_RCBR", "KC_PIPE", "KC_SCLN", "KC_COLN", "KC_QUES", + "KC_LCTL", "MO(3)", "KC_SPC", "KC_BSPC", "KC_LSFT", "_______" + ], + [ + "QK_BOOT", "KC_F7", "KC_F8", "KC_F9", "KC_F12", "KC_PSCR", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", + "KC_CAPS", "KC_F4", "KC_F5", "KC_F6", "KC_F11", "KC_SCRL", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", + "XXXXXXX", "KC_F1", "KC_F2", "KC_F3", "KC_F10", "KC_PAUS", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", + "XXXXXXX", "_______", "XXXXXXX", "XXXXXXX", "XXXXXXX", "_______" + ] + ] +} \ No newline at end of file diff --git a/keyboards/subrezon/lancer/readme.md b/keyboards/subrezon/lancer/readme.md new file mode 100644 index 0000000000..99bf79b38b --- /dev/null +++ b/keyboards/subrezon/lancer/readme.md @@ -0,0 +1,27 @@ +# subrezon/lancer + +The [Lancer](https://github.com/subrezon/lancer) is a 36-key ortholinear keyboard with a light split and a focus on compact footprint and portability. It is a direct successor to [la_nc](https://github.com/subrezon/la_nc), and is very much inspired by other keyboards like Planck, Lumberjack and Lesovoz. Powered by a Pro Micro compatible MCU board and featuring battery and nice!view support, it offers a simple and productive typing experience, both with and without the wire. + +![subrezon/lancer](https://i.imgur.com/W41Vx4rh.jpg) + +* Keyboard Maintainer: [Daniel Osipishin](https://github.com/subrezon) +* Hardware Supported: Lancer PCB, with a ProMicro or other compatible MCU board +* Hardware Availability: https://github.com/subrezon/lancer + +Make example for this keyboard (after setting up your build environment): + + make subrezon/lancer:default + +Flashing example for this keyboard: + + make subrezon/lancer:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/subrezon/lancer/rules.mk b/keyboards/subrezon/lancer/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/subrezon/lancer/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From 7f2f15bc1a861f462a102de9b199beca93e2e8c9 Mon Sep 17 00:00:00 2001 From: era <73109780+eerraa@users.noreply.github.com> Date: Sat, 23 Sep 2023 14:46:13 +0900 Subject: [PATCH 135/496] [Keyboard] Add SIRIND Klein (#21951) Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Co-authored-by: Drashna Jaelre Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/era/klein/config.h | 29 + keyboards/era/klein/halconf.h | 21 + keyboards/era/klein/info.json | 590 +++++++++++++++++++ keyboards/era/klein/keymaps/default/keymap.c | 23 + keyboards/era/klein/keymaps/via/keymap.c | 23 + keyboards/era/klein/keymaps/via/rules.mk | 1 + keyboards/era/klein/mcuconf.h | 22 + keyboards/era/klein/readme.md | 23 + keyboards/era/klein/rules.mk | 0 9 files changed, 732 insertions(+) create mode 100644 keyboards/era/klein/config.h create mode 100644 keyboards/era/klein/halconf.h create mode 100644 keyboards/era/klein/info.json create mode 100644 keyboards/era/klein/keymaps/default/keymap.c create mode 100644 keyboards/era/klein/keymaps/via/keymap.c create mode 100644 keyboards/era/klein/keymaps/via/rules.mk create mode 100644 keyboards/era/klein/mcuconf.h create mode 100644 keyboards/era/klein/readme.md create mode 100644 keyboards/era/klein/rules.mk diff --git a/keyboards/era/klein/config.h b/keyboards/era/klein/config.h new file mode 100644 index 0000000000..e74b7d73d3 --- /dev/null +++ b/keyboards/era/klein/config.h @@ -0,0 +1,29 @@ +/* Copyright 2023 eerraa + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* BACKLIGHT PWM */ +#define BACKLIGHT_PWM_DRIVER PWMD7 +#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_B + +/* RGB Matrix */ +#define WS2812_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the WS2812 implementation uses the PIO0 peripheral +#define RGB_MATRIX_DEFAULT_VAL 60 +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT \ No newline at end of file diff --git a/keyboards/era/klein/halconf.h b/keyboards/era/klein/halconf.h new file mode 100644 index 0000000000..f57e86df01 --- /dev/null +++ b/keyboards/era/klein/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2023 eerraa + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next \ No newline at end of file diff --git a/keyboards/era/klein/info.json b/keyboards/era/klein/info.json new file mode 100644 index 0000000000..ac08cbb8a2 --- /dev/null +++ b/keyboards/era/klein/info.json @@ -0,0 +1,590 @@ +{ + "manufacturer": "SIRIND", + "keyboard_name": "Klein", + "maintainer": "eerraa", + "backlight": { + "levels": 5, + "pin": "GP15" + }, + "bootloader": "rp2040", + "build": { + "debounce_type": "sym_defer_pk" + }, + "diode_direction": "COL2ROW", + "features": { + "backlight": true, + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "indicators": { + "caps_lock": "GP16", + "on_state": 0, + "scroll_lock": "GP17" + }, + "matrix_pins": { + "cols": ["GP22", "GP23", "GP24", "GP25", "GP26", "GP27", "GP28", "GP29", "GP11", "GP10", "GP8", "GP7", "GP1", "GP2", "GP3", "GP4"], + "rows": ["GP18", "GP19", "GP20", "GP21", "GP14", "GP5", "GP6", "GP9", "GP13", "GP12"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_rain": true, + "pixel_flow": true, + "pixel_fractal": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 7], "x": 4, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 20, "y": 2, "flags": 4}, + {"matrix": [0, 5], "x": 32, "y": 2, "flags": 4}, + {"matrix": [0, 4], "x": 45, "y": 1, "flags": 4}, + {"matrix": [0, 3], "x": 58, "y": 3, "flags": 4}, + {"matrix": [0, 2], "x": 71, "y": 5, "flags": 4}, + {"matrix": [0, 1], "x": 83, "y": 8, "flags": 4}, + {"matrix": [0, 0], "x": 96, "y": 10, "flags": 4}, + {"matrix": [1, 0], "x": 129, "y": 9, "flags": 4}, + {"matrix": [1, 1], "x": 141, "y": 7, "flags": 4}, + {"matrix": [1, 2], "x": 154, "y": 4, "flags": 4}, + {"matrix": [1, 3], "x": 166, "y": 2, "flags": 4}, + {"matrix": [1, 4], "x": 179, "y": 1, "flags": 4}, + {"matrix": [1, 5], "x": 192, "y": 2, "flags": 4}, + {"matrix": [1, 6], "x": 211, "y": 2, "flags": 1}, + {"matrix": [1, 7], "x": 1, "y": 13, "flags": 1}, + {"matrix": [2, 6], "x": 21, "y": 15, "flags": 1}, + {"matrix": [2, 5], "x": 36, "y": 15, "flags": 4}, + {"matrix": [2, 4], "x": 50, "y": 15, "flags": 4}, + {"matrix": [2, 3], "x": 62, "y": 17, "flags": 4}, + {"matrix": [2, 2], "x": 75, "y": 20, "flags": 4}, + {"matrix": [2, 1], "x": 87, "y": 22, "flags": 4}, + {"matrix": [2, 0], "x": 100, "y": 24, "flags": 4}, + {"matrix": [3, 1], "x": 125, "y": 23, "flags": 4}, + {"matrix": [3, 2], "x": 137, "y": 21, "flags": 4}, + {"matrix": [3, 3], "x": 150, "y": 18, "flags": 4}, + {"matrix": [3, 4], "x": 162, "y": 16, "flags": 4}, + {"matrix": [3, 5], "x": 175, "y": 15, "flags": 4}, + {"matrix": [3, 6], "x": 188, "y": 15, "flags": 4}, + {"matrix": [4, 6], "x": 201, "y": 15, "flags": 4}, + {"matrix": [4, 5], "x": 217, "y": 15, "flags": 4}, + {"matrix": [4, 3], "x": 0, "y": 27, "flags": 1}, + {"matrix": [4, 1], "x": 18, "y": 29, "flags": 1}, + {"matrix": [0, 8], "x": 38, "y": 29, "flags": 4}, + {"matrix": [0, 9], "x": 51, "y": 29, "flags": 4}, + {"matrix": [0, 10], "x": 64, "y": 31, "flags": 4}, + {"matrix": [0, 11], "x": 76, "y": 33, "flags": 4}, + {"matrix": [0, 12], "x": 89, "y": 36, "flags": 4}, + {"matrix": [0, 13], "x": 129, "y": 36, "flags": 4}, + {"matrix": [0, 15], "x": 142, "y": 33, "flags": 4}, + {"matrix": [1, 15], "x": 154, "y": 31, "flags": 4}, + {"matrix": [1, 14], "x": 167, "y": 29, "flags": 4}, + {"matrix": [1, 13], "x": 180, "y": 29, "flags": 4}, + {"matrix": [1, 12], "x": 193, "y": 29, "flags": 4}, + {"matrix": [1, 11], "x": 213, "y": 29, "flags": 1}, + {"matrix": [1, 10], "x": 21, "y": 42, "flags": 1}, + {"matrix": [1, 9], "x": 42, "y": 42, "flags": 4}, + {"matrix": [1, 8], "x": 60, "y": 57, "flags": 4}, + {"matrix": [2, 8], "x": 67, "y": 45, "flags": 4}, + {"matrix": [2, 9], "x": 80, "y": 47, "flags": 4}, + {"matrix": [2, 10], "x": 92, "y": 50, "flags": 4}, + {"matrix": [2, 11], "x": 126, "y": 50, "flags": 4}, + {"matrix": [2, 12], "x": 138, "y": 48, "flags": 4}, + {"matrix": [2, 13], "x": 151, "y": 45, "flags": 4}, + {"matrix": [2, 15], "x": 163, "y": 43, "flags": 4}, + {"matrix": [3, 14], "x": 177, "y": 42, "flags": 4}, + {"matrix": [3, 13], "x": 189, "y": 42, "flags": 4}, + {"matrix": [3, 12], "x": 213, "y": 42, "flags": 1}, + {"matrix": [3, 11], "x": 16, "y": 55, "flags": 1}, + {"matrix": [3, 10], "x": 55, "y": 43, "flags": 1}, + {"matrix": [3, 9], "x": 76, "y": 60, "flags": 4}, + {"matrix": [3, 8], "x": 96, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 139, "y": 61, "flags": 4}, + {"matrix": [4, 11], "x": 166, "y": 57, "flags": 1}, + {"matrix": [4, 13], "x": 189, "y": 55, "flags": 1}, + {"matrix": [4, 14], "x": 202, "y": 55, "flags": 1}, + {"matrix": [4, 15], "x": 221, "y": 55, "flags": 1} + ], + "led_count": 67 + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0003", + "vid": "0x4552" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP0" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [5, 0], "x": 10.75, "y": 0}, + {"matrix": [5, 1], "x": 11.75, "y": 0}, + {"matrix": [5, 2], "x": 12.75, "y": 0}, + {"matrix": [5, 3], "x": 13.75, "y": 0}, + {"matrix": [5, 4], "x": 14.75, "y": 0}, + {"matrix": [5, 5], "x": 15.75, "y": 0}, + {"matrix": [5, 6], "x": 16.75, "y": 0}, + {"matrix": [5, 7], "x": 17.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 3, "y": 1}, + {"matrix": [1, 3], "x": 4, "y": 1}, + {"matrix": [1, 4], "x": 5, "y": 1}, + {"matrix": [1, 5], "x": 6, "y": 1}, + {"matrix": [1, 6], "x": 7, "y": 1}, + {"matrix": [1, 7], "x": 8, "y": 1}, + {"matrix": [6, 0], "x": 10.25, "y": 1}, + {"matrix": [6, 1], "x": 11.25, "y": 1}, + {"matrix": [6, 2], "x": 12.25, "y": 1}, + {"matrix": [6, 3], "x": 13.25, "y": 1}, + {"matrix": [6, 4], "x": 14.25, "y": 1}, + {"matrix": [6, 5], "x": 15.25, "y": 1}, + {"matrix": [6, 6], "x": 16.25, "y": 1}, + {"matrix": [6, 7], "x": 17.25, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [7, 0], "x": 10.5, "y": 2}, + {"matrix": [7, 1], "x": 11.5, "y": 2}, + {"matrix": [7, 2], "x": 12.5, "y": 2}, + {"matrix": [7, 3], "x": 13.5, "y": 2}, + {"matrix": [7, 4], "x": 14.5, "y": 2}, + {"matrix": [7, 5], "x": 15.5, "y": 2}, + {"matrix": [7, 7], "x": 16.5, "y": 2, "w": 2.25}, + {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.75, "y": 3}, + {"matrix": [3, 3], "x": 4.75, "y": 3}, + {"matrix": [3, 4], "x": 5.75, "y": 3}, + {"matrix": [3, 5], "x": 6.75, "y": 3}, + {"matrix": [3, 6], "x": 7.75, "y": 3}, + {"matrix": [8, 0], "x": 10, "y": 3}, + {"matrix": [8, 1], "x": 11, "y": 3}, + {"matrix": [8, 2], "x": 12, "y": 3}, + {"matrix": [8, 3], "x": 13, "y": 3}, + {"matrix": [8, 4], "x": 14, "y": 3}, + {"matrix": [8, 5], "x": 15, "y": 3}, + {"matrix": [8, 6], "x": 16, "y": 3, "w": 1.75}, + {"matrix": [8, 7], "x": 17.75, "y": 3}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "x": 4.5, "y": 4, "w": 1.5}, + {"matrix": [4, 4], "x": 6, "y": 4, "w": 2.25}, + {"matrix": [4, 5], "x": 8.25, "y": 4}, + {"matrix": [9, 1], "x": 10, "y": 4, "w": 2.75}, + {"matrix": [9, 3], "x": 12.75, "y": 4, "w": 1.5}, + {"matrix": [9, 5], "x": 15, "y": 4}, + {"matrix": [9, 6], "x": 16, "y": 4}, + {"matrix": [9, 7], "x": 17, "y": 4} + ] + }, + "LAYOUT_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [5, 0], "x": 10.75, "y": 0}, + {"matrix": [5, 1], "x": 11.75, "y": 0}, + {"matrix": [5, 2], "x": 12.75, "y": 0}, + {"matrix": [5, 3], "x": 13.75, "y": 0}, + {"matrix": [5, 4], "x": 14.75, "y": 0}, + {"matrix": [5, 5], "x": 15.75, "y": 0}, + {"matrix": [5, 7], "x": 16.75, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 3, "y": 1}, + {"matrix": [1, 3], "x": 4, "y": 1}, + {"matrix": [1, 4], "x": 5, "y": 1}, + {"matrix": [1, 5], "x": 6, "y": 1}, + {"matrix": [1, 6], "x": 7, "y": 1}, + {"matrix": [1, 7], "x": 8, "y": 1}, + {"matrix": [6, 0], "x": 10.25, "y": 1}, + {"matrix": [6, 1], "x": 11.25, "y": 1}, + {"matrix": [6, 2], "x": 12.25, "y": 1}, + {"matrix": [6, 3], "x": 13.25, "y": 1}, + {"matrix": [6, 4], "x": 14.25, "y": 1}, + {"matrix": [6, 5], "x": 15.25, "y": 1}, + {"matrix": [6, 6], "x": 16.25, "y": 1}, + {"matrix": [6, 7], "x": 17.25, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [7, 0], "x": 10.5, "y": 2}, + {"matrix": [7, 1], "x": 11.5, "y": 2}, + {"matrix": [7, 2], "x": 12.5, "y": 2}, + {"matrix": [7, 3], "x": 13.5, "y": 2}, + {"matrix": [7, 4], "x": 14.5, "y": 2}, + {"matrix": [7, 5], "x": 15.5, "y": 2}, + {"matrix": [7, 7], "x": 16.5, "y": 2, "w": 2.25}, + {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.75, "y": 3}, + {"matrix": [3, 3], "x": 4.75, "y": 3}, + {"matrix": [3, 4], "x": 5.75, "y": 3}, + {"matrix": [3, 5], "x": 6.75, "y": 3}, + {"matrix": [3, 6], "x": 7.75, "y": 3}, + {"matrix": [8, 0], "x": 10, "y": 3}, + {"matrix": [8, 1], "x": 11, "y": 3}, + {"matrix": [8, 2], "x": 12, "y": 3}, + {"matrix": [8, 3], "x": 13, "y": 3}, + {"matrix": [8, 4], "x": 14, "y": 3}, + {"matrix": [8, 5], "x": 15, "y": 3}, + {"matrix": [8, 6], "x": 16, "y": 3, "w": 2.75}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "x": 4.5, "y": 4, "w": 1.5}, + {"matrix": [4, 4], "x": 6, "y": 4, "w": 2.25}, + {"matrix": [4, 5], "x": 8.25, "y": 4}, + {"matrix": [9, 1], "x": 10, "y": 4, "w": 2.75}, + {"matrix": [9, 3], "x": 12.75, "y": 4, "w": 1.5}, + {"matrix": [9, 7], "x": 17.25, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_ansi_arrow": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [5, 0], "x": 10.75, "y": 0}, + {"matrix": [5, 1], "x": 11.75, "y": 0}, + {"matrix": [5, 2], "x": 12.75, "y": 0}, + {"matrix": [5, 3], "x": 13.75, "y": 0}, + {"matrix": [5, 4], "x": 14.75, "y": 0}, + {"matrix": [5, 5], "x": 15.75, "y": 0}, + {"matrix": [5, 7], "x": 16.75, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 3, "y": 1}, + {"matrix": [1, 3], "x": 4, "y": 1}, + {"matrix": [1, 4], "x": 5, "y": 1}, + {"matrix": [1, 5], "x": 6, "y": 1}, + {"matrix": [1, 6], "x": 7, "y": 1}, + {"matrix": [1, 7], "x": 8, "y": 1}, + {"matrix": [6, 0], "x": 10.25, "y": 1}, + {"matrix": [6, 1], "x": 11.25, "y": 1}, + {"matrix": [6, 2], "x": 12.25, "y": 1}, + {"matrix": [6, 3], "x": 13.25, "y": 1}, + {"matrix": [6, 4], "x": 14.25, "y": 1}, + {"matrix": [6, 5], "x": 15.25, "y": 1}, + {"matrix": [6, 6], "x": 16.25, "y": 1}, + {"matrix": [6, 7], "x": 17.25, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [7, 0], "x": 10.5, "y": 2}, + {"matrix": [7, 1], "x": 11.5, "y": 2}, + {"matrix": [7, 2], "x": 12.5, "y": 2}, + {"matrix": [7, 3], "x": 13.5, "y": 2}, + {"matrix": [7, 4], "x": 14.5, "y": 2}, + {"matrix": [7, 5], "x": 15.5, "y": 2}, + {"matrix": [7, 7], "x": 16.5, "y": 2, "w": 2.25}, + {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.75, "y": 3}, + {"matrix": [3, 3], "x": 4.75, "y": 3}, + {"matrix": [3, 4], "x": 5.75, "y": 3}, + {"matrix": [3, 5], "x": 6.75, "y": 3}, + {"matrix": [3, 6], "x": 7.75, "y": 3}, + {"matrix": [8, 0], "x": 10, "y": 3}, + {"matrix": [8, 1], "x": 11, "y": 3}, + {"matrix": [8, 2], "x": 12, "y": 3}, + {"matrix": [8, 3], "x": 13, "y": 3}, + {"matrix": [8, 4], "x": 14, "y": 3}, + {"matrix": [8, 5], "x": 15, "y": 3}, + {"matrix": [8, 6], "x": 16, "y": 3}, + {"matrix": [8, 7], "x": 17, "y": 3, "w": 1.75}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "x": 4.5, "y": 4, "w": 1.5}, + {"matrix": [4, 4], "x": 6, "y": 4, "w": 2.25}, + {"matrix": [4, 5], "x": 8.25, "y": 4}, + {"matrix": [9, 1], "x": 10, "y": 4, "w": 2.75}, + {"matrix": [9, 3], "x": 12.75, "y": 4, "w": 1.5}, + {"matrix": [9, 5], "x": 15, "y": 4}, + {"matrix": [9, 6], "x": 16, "y": 4}, + {"matrix": [9, 7], "x": 17, "y": 4} + ] + }, + "LAYOUT_ansi_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [5, 0], "x": 10.75, "y": 0}, + {"matrix": [5, 1], "x": 11.75, "y": 0}, + {"matrix": [5, 2], "x": 12.75, "y": 0}, + {"matrix": [5, 3], "x": 13.75, "y": 0}, + {"matrix": [5, 4], "x": 14.75, "y": 0}, + {"matrix": [5, 5], "x": 15.75, "y": 0}, + {"matrix": [5, 6], "x": 16.75, "y": 0}, + {"matrix": [5, 7], "x": 17.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 3, "y": 1}, + {"matrix": [1, 3], "x": 4, "y": 1}, + {"matrix": [1, 4], "x": 5, "y": 1}, + {"matrix": [1, 5], "x": 6, "y": 1}, + {"matrix": [1, 6], "x": 7, "y": 1}, + {"matrix": [1, 7], "x": 8, "y": 1}, + {"matrix": [6, 0], "x": 10.25, "y": 1}, + {"matrix": [6, 1], "x": 11.25, "y": 1}, + {"matrix": [6, 2], "x": 12.25, "y": 1}, + {"matrix": [6, 3], "x": 13.25, "y": 1}, + {"matrix": [6, 4], "x": 14.25, "y": 1}, + {"matrix": [6, 5], "x": 15.25, "y": 1}, + {"matrix": [6, 6], "x": 16.25, "y": 1}, + {"matrix": [6, 7], "x": 17.25, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [7, 0], "x": 10.5, "y": 2}, + {"matrix": [7, 1], "x": 11.5, "y": 2}, + {"matrix": [7, 2], "x": 12.5, "y": 2}, + {"matrix": [7, 3], "x": 13.5, "y": 2}, + {"matrix": [7, 4], "x": 14.5, "y": 2}, + {"matrix": [7, 5], "x": 15.5, "y": 2}, + {"matrix": [7, 7], "x": 16.5, "y": 2, "w": 2.25}, + {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.75, "y": 3}, + {"matrix": [3, 3], "x": 4.75, "y": 3}, + {"matrix": [3, 4], "x": 5.75, "y": 3}, + {"matrix": [3, 5], "x": 6.75, "y": 3}, + {"matrix": [3, 6], "x": 7.75, "y": 3}, + {"matrix": [8, 0], "x": 10, "y": 3}, + {"matrix": [8, 1], "x": 11, "y": 3}, + {"matrix": [8, 2], "x": 12, "y": 3}, + {"matrix": [8, 3], "x": 13, "y": 3}, + {"matrix": [8, 4], "x": 14, "y": 3}, + {"matrix": [8, 5], "x": 15, "y": 3}, + {"matrix": [8, 6], "x": 16, "y": 3, "w": 2.75}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "x": 4.5, "y": 4, "w": 1.5}, + {"matrix": [4, 4], "x": 6, "y": 4, "w": 2.25}, + {"matrix": [4, 5], "x": 8.25, "y": 4}, + {"matrix": [9, 1], "x": 10, "y": 4, "w": 2.75}, + {"matrix": [9, 3], "x": 12.75, "y": 4, "w": 1.5}, + {"matrix": [9, 7], "x": 17.25, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_ansi_split_bs_rsft": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [5, 0], "x": 10.75, "y": 0}, + {"matrix": [5, 1], "x": 11.75, "y": 0}, + {"matrix": [5, 2], "x": 12.75, "y": 0}, + {"matrix": [5, 3], "x": 13.75, "y": 0}, + {"matrix": [5, 4], "x": 14.75, "y": 0}, + {"matrix": [5, 5], "x": 15.75, "y": 0}, + {"matrix": [5, 6], "x": 16.75, "y": 0}, + {"matrix": [5, 7], "x": 17.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 3, "y": 1}, + {"matrix": [1, 3], "x": 4, "y": 1}, + {"matrix": [1, 4], "x": 5, "y": 1}, + {"matrix": [1, 5], "x": 6, "y": 1}, + {"matrix": [1, 6], "x": 7, "y": 1}, + {"matrix": [1, 7], "x": 8, "y": 1}, + {"matrix": [6, 0], "x": 10.25, "y": 1}, + {"matrix": [6, 1], "x": 11.25, "y": 1}, + {"matrix": [6, 2], "x": 12.25, "y": 1}, + {"matrix": [6, 3], "x": 13.25, "y": 1}, + {"matrix": [6, 4], "x": 14.25, "y": 1}, + {"matrix": [6, 5], "x": 15.25, "y": 1}, + {"matrix": [6, 6], "x": 16.25, "y": 1}, + {"matrix": [6, 7], "x": 17.25, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [7, 0], "x": 10.5, "y": 2}, + {"matrix": [7, 1], "x": 11.5, "y": 2}, + {"matrix": [7, 2], "x": 12.5, "y": 2}, + {"matrix": [7, 3], "x": 13.5, "y": 2}, + {"matrix": [7, 4], "x": 14.5, "y": 2}, + {"matrix": [7, 5], "x": 15.5, "y": 2}, + {"matrix": [7, 7], "x": 16.5, "y": 2, "w": 2.25}, + {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.75, "y": 3}, + {"matrix": [3, 3], "x": 4.75, "y": 3}, + {"matrix": [3, 4], "x": 5.75, "y": 3}, + {"matrix": [3, 5], "x": 6.75, "y": 3}, + {"matrix": [3, 6], "x": 7.75, "y": 3}, + {"matrix": [8, 0], "x": 10, "y": 3}, + {"matrix": [8, 1], "x": 11, "y": 3}, + {"matrix": [8, 2], "x": 12, "y": 3}, + {"matrix": [8, 3], "x": 13, "y": 3}, + {"matrix": [8, 4], "x": 14, "y": 3}, + {"matrix": [8, 5], "x": 15, "y": 3}, + {"matrix": [8, 6], "x": 16, "y": 3, "w": 1.75}, + {"matrix": [8, 7], "x": 17.75, "y": 3}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "x": 4.5, "y": 4, "w": 1.5}, + {"matrix": [4, 4], "x": 6, "y": 4, "w": 2.25}, + {"matrix": [4, 5], "x": 8.25, "y": 4}, + {"matrix": [9, 1], "x": 10, "y": 4, "w": 2.75}, + {"matrix": [9, 3], "x": 12.75, "y": 4, "w": 1.5}, + {"matrix": [9, 7], "x": 17.25, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_arrow_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [5, 0], "x": 10.75, "y": 0}, + {"matrix": [5, 1], "x": 11.75, "y": 0}, + {"matrix": [5, 2], "x": 12.75, "y": 0}, + {"matrix": [5, 3], "x": 13.75, "y": 0}, + {"matrix": [5, 4], "x": 14.75, "y": 0}, + {"matrix": [5, 5], "x": 15.75, "y": 0}, + {"matrix": [5, 6], "x": 16.75, "y": 0}, + {"matrix": [5, 7], "x": 17.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 3, "y": 1}, + {"matrix": [1, 3], "x": 4, "y": 1}, + {"matrix": [1, 4], "x": 5, "y": 1}, + {"matrix": [1, 5], "x": 6, "y": 1}, + {"matrix": [1, 6], "x": 7, "y": 1}, + {"matrix": [1, 7], "x": 8, "y": 1}, + {"matrix": [6, 0], "x": 10.25, "y": 1}, + {"matrix": [6, 1], "x": 11.25, "y": 1}, + {"matrix": [6, 2], "x": 12.25, "y": 1}, + {"matrix": [6, 3], "x": 13.25, "y": 1}, + {"matrix": [6, 4], "x": 14.25, "y": 1}, + {"matrix": [6, 5], "x": 15.25, "y": 1}, + {"matrix": [6, 6], "x": 16.25, "y": 1}, + {"matrix": [6, 7], "x": 17.25, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [7, 0], "x": 10.5, "y": 2}, + {"matrix": [7, 1], "x": 11.5, "y": 2}, + {"matrix": [7, 2], "x": 12.5, "y": 2}, + {"matrix": [7, 3], "x": 13.5, "y": 2}, + {"matrix": [7, 4], "x": 14.5, "y": 2}, + {"matrix": [7, 5], "x": 15.5, "y": 2}, + {"matrix": [7, 7], "x": 16.5, "y": 2, "w": 2.25}, + {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.75, "y": 3}, + {"matrix": [3, 3], "x": 4.75, "y": 3}, + {"matrix": [3, 4], "x": 5.75, "y": 3}, + {"matrix": [3, 5], "x": 6.75, "y": 3}, + {"matrix": [3, 6], "x": 7.75, "y": 3}, + {"matrix": [8, 0], "x": 10, "y": 3}, + {"matrix": [8, 1], "x": 11, "y": 3}, + {"matrix": [8, 2], "x": 12, "y": 3}, + {"matrix": [8, 3], "x": 13, "y": 3}, + {"matrix": [8, 4], "x": 14, "y": 3}, + {"matrix": [8, 5], "x": 15, "y": 3}, + {"matrix": [8, 6], "x": 16, "y": 3}, + {"matrix": [8, 7], "x": 17, "y": 3, "w": 1.75}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "x": 4.5, "y": 4, "w": 1.5}, + {"matrix": [4, 4], "x": 6, "y": 4, "w": 2.25}, + {"matrix": [4, 5], "x": 8.25, "y": 4}, + {"matrix": [9, 1], "x": 10, "y": 4, "w": 2.75}, + {"matrix": [9, 3], "x": 12.75, "y": 4, "w": 1.5}, + {"matrix": [9, 5], "x": 15, "y": 4}, + {"matrix": [9, 6], "x": 16, "y": 4}, + {"matrix": [9, 7], "x": 17, "y": 4} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/era/klein/keymaps/default/keymap.c b/keyboards/era/klein/keymaps/default/keymap.c new file mode 100644 index 0000000000..88878bbcd9 --- /dev/null +++ b/keyboards/era/klein/keymaps/default/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2018-2022 QMK (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_GRV, 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_BSPC, KC_BSPC, + KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RCTL + ), + + [1] = LAYOUT( + KC_TRNS, KC_TRNS, 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_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_PSCR, KC_SCRL, KC_PAUS, 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_LSFT, 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 + ) +}; \ No newline at end of file diff --git a/keyboards/era/klein/keymaps/via/keymap.c b/keyboards/era/klein/keymaps/via/keymap.c new file mode 100644 index 0000000000..88878bbcd9 --- /dev/null +++ b/keyboards/era/klein/keymaps/via/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2018-2022 QMK (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_GRV, 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_BSPC, KC_BSPC, + KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RCTL + ), + + [1] = LAYOUT( + KC_TRNS, KC_TRNS, 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_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_PSCR, KC_SCRL, KC_PAUS, 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_LSFT, 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 + ) +}; \ No newline at end of file diff --git a/keyboards/era/klein/keymaps/via/rules.mk b/keyboards/era/klein/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/era/klein/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/era/klein/mcuconf.h b/keyboards/era/klein/mcuconf.h new file mode 100644 index 0000000000..b82cc49d7d --- /dev/null +++ b/keyboards/era/klein/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2023 eerraa + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef RP_PWM_USE_PWM7 +#define RP_PWM_USE_PWM7 TRUE \ No newline at end of file diff --git a/keyboards/era/klein/readme.md b/keyboards/era/klein/readme.md new file mode 100644 index 0000000000..1efeafe451 --- /dev/null +++ b/keyboards/era/klein/readme.md @@ -0,0 +1,23 @@ +# MontK Cervin Klein + +* Keyboard Maintainer: [ERA](https://github.com/eerraa) +* Hardware supported: SIRIND Klein +* Hardware availability: [Syryan](https://srind.mysoho.com/) + +Make example for this keyboard (after setting up your build environment): + + make era/klein:default + +Flashing example for this keyboard: + + make era/klein:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at ESC(0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly short the `RESET` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/era/klein/rules.mk b/keyboards/era/klein/rules.mk new file mode 100644 index 0000000000..e69de29bb2 From 9a5b631ed617160bead436aa0382390a28f9d6e1 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 22 Sep 2023 23:17:15 -0700 Subject: [PATCH 136/496] GMMK2 96% ISO: Correct layout data (#22101) --- keyboards/gmmk/gmmk2/p96/iso/info.json | 172 ++++++++++++------------- 1 file changed, 86 insertions(+), 86 deletions(-) diff --git a/keyboards/gmmk/gmmk2/p96/iso/info.json b/keyboards/gmmk/gmmk2/p96/iso/info.json index 6534d28027..788aa7393b 100644 --- a/keyboards/gmmk/gmmk2/p96/iso/info.json +++ b/keyboards/gmmk/gmmk2/p96/iso/info.json @@ -43,104 +43,104 @@ {"matrix": [13, 0], "x": 14, "y": 0}, - {"matrix": [0, 6], "x": 15.5, "y": 0}, - {"matrix": [1, 6], "x": 16.5, "y": 0}, - {"matrix": [2, 6], "x": 17.5, "y": 0}, - {"matrix": [3, 6], "x": 18.5, "y": 0}, + {"matrix": [0, 6], "x": 15.25, "y": 0}, + {"matrix": [1, 6], "x": 16.25, "y": 0}, + {"matrix": [2, 6], "x": 17.25, "y": 0}, + {"matrix": [3, 6], "x": 18.25, "y": 0}, - {"matrix": [0, 1], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [2, 1], "x": 2, "y": 1}, - {"matrix": [3, 1], "x": 3, "y": 1}, - {"matrix": [4, 1], "x": 4, "y": 1}, - {"matrix": [5, 1], "x": 5, "y": 1}, - {"matrix": [6, 1], "x": 6, "y": 1}, - {"matrix": [7, 1], "x": 7, "y": 1}, - {"matrix": [8, 1], "x": 8, "y": 1}, - {"matrix": [9, 1], "x": 9, "y": 1}, - {"matrix": [10, 1], "x": 10, "y": 1}, - {"matrix": [11, 1], "x": 11, "y": 1}, - {"matrix": [12, 1], "x": 12, "y": 1}, - {"matrix": [13, 1], "x": 13, "y": 1, "w": 2}, + {"matrix": [0, 1], "x": 0, "y": 1.125}, + {"matrix": [1, 1], "x": 1, "y": 1.125}, + {"matrix": [2, 1], "x": 2, "y": 1.125}, + {"matrix": [3, 1], "x": 3, "y": 1.125}, + {"matrix": [4, 1], "x": 4, "y": 1.125}, + {"matrix": [5, 1], "x": 5, "y": 1.125}, + {"matrix": [6, 1], "x": 6, "y": 1.125}, + {"matrix": [7, 1], "x": 7, "y": 1.125}, + {"matrix": [8, 1], "x": 8, "y": 1.125}, + {"matrix": [9, 1], "x": 9, "y": 1.125}, + {"matrix": [10, 1], "x": 10, "y": 1.125}, + {"matrix": [11, 1], "x": 11, "y": 1.125}, + {"matrix": [12, 1], "x": 12, "y": 1.125}, + {"matrix": [13, 1], "x": 13, "y": 1.125, "w": 2}, - {"matrix": [4, 6], "x": 15.5, "y": 1}, - {"matrix": [5, 6], "x": 16.5, "y": 1}, - {"matrix": [6, 6], "x": 17.5, "y": 1}, - {"matrix": [7, 6], "x": 18.5, "y": 1}, + {"matrix": [4, 6], "x": 15.25, "y": 1.125}, + {"matrix": [5, 6], "x": 16.25, "y": 1.125}, + {"matrix": [6, 6], "x": 17.25, "y": 1.125}, + {"matrix": [7, 6], "x": 18.25, "y": 1.125}, - {"matrix": [0, 2], "x": 0, "y": 2, "w": 1.5}, - {"matrix": [1, 2], "x": 1.5, "y": 2}, - {"matrix": [2, 2], "x": 2.5, "y": 2}, - {"matrix": [3, 2], "x": 3.5, "y": 2}, - {"matrix": [4, 2], "x": 4.5, "y": 2}, - {"matrix": [5, 2], "x": 5.5, "y": 2}, - {"matrix": [6, 2], "x": 6.5, "y": 2}, - {"matrix": [7, 2], "x": 7.5, "y": 2}, - {"matrix": [8, 2], "x": 8.5, "y": 2}, - {"matrix": [9, 2], "x": 9.5, "y": 2}, - {"matrix": [10, 2], "x": 10.5, "y": 2}, - {"matrix": [11, 2], "x": 11.5, "y": 2}, - {"matrix": [12, 2], "x": 12.5, "y": 2}, - {"matrix": [13, 3], "x": 13.5, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [0, 2], "x": 0, "y": 2.125, "w": 1.5}, + {"matrix": [1, 2], "x": 1.5, "y": 2.125}, + {"matrix": [2, 2], "x": 2.5, "y": 2.125}, + {"matrix": [3, 2], "x": 3.5, "y": 2.125}, + {"matrix": [4, 2], "x": 4.5, "y": 2.125}, + {"matrix": [5, 2], "x": 5.5, "y": 2.125}, + {"matrix": [6, 2], "x": 6.5, "y": 2.125}, + {"matrix": [7, 2], "x": 7.5, "y": 2.125}, + {"matrix": [8, 2], "x": 8.5, "y": 2.125}, + {"matrix": [9, 2], "x": 9.5, "y": 2.125}, + {"matrix": [10, 2], "x": 10.5, "y": 2.125}, + {"matrix": [11, 2], "x": 11.5, "y": 2.125}, + {"matrix": [12, 2], "x": 12.5, "y": 2.125}, + {"matrix": [13, 3], "x": 13.75, "y": 2.125, "w": 1.25, "h": 2}, - {"matrix": [8, 6], "x": 15.5, "y": 2}, - {"matrix": [9, 6], "x": 16.5, "y": 2}, - {"matrix": [10, 6], "x": 17.5, "y": 2, "w": 1.5}, - {"matrix": [11, 6], "x": 18.5, "y": 2, "h": 2}, + {"matrix": [8, 6], "x": 15.25, "y": 2.125}, + {"matrix": [9, 6], "x": 16.25, "y": 2.125}, + {"matrix": [10, 6], "x": 17.25, "y": 2.125}, + {"matrix": [11, 6], "x": 18.25, "y": 2.125, "h": 2}, - {"matrix": [0, 3], "x": 0, "y": 3, "w": 1.75}, - {"matrix": [1, 3], "x": 1.75, "y": 3}, - {"matrix": [2, 3], "x": 2.75, "y": 3}, - {"matrix": [3, 3], "x": 3.75, "y": 3}, - {"matrix": [4, 3], "x": 4.75, "y": 3}, - {"matrix": [5, 3], "x": 5.75, "y": 3}, - {"matrix": [6, 3], "x": 6.75, "y": 3}, - {"matrix": [7, 3], "x": 7.75, "y": 3}, - {"matrix": [8, 3], "x": 8.75, "y": 3}, - {"matrix": [9, 3], "x": 9.75, "y": 3}, - {"matrix": [10, 3], "x": 10.75, "y": 3}, - {"matrix": [11, 3], "x": 11.75, "y": 3}, - {"matrix": [12, 3], "x": 12.75, "y": 3}, + {"matrix": [0, 3], "x": 0, "y": 3.125, "w": 1.75}, + {"matrix": [1, 3], "x": 1.75, "y": 3.125}, + {"matrix": [2, 3], "x": 2.75, "y": 3.125}, + {"matrix": [3, 3], "x": 3.75, "y": 3.125}, + {"matrix": [4, 3], "x": 4.75, "y": 3.125}, + {"matrix": [5, 3], "x": 5.75, "y": 3.125}, + {"matrix": [6, 3], "x": 6.75, "y": 3.125}, + {"matrix": [7, 3], "x": 7.75, "y": 3.125}, + {"matrix": [8, 3], "x": 8.75, "y": 3.125}, + {"matrix": [9, 3], "x": 9.75, "y": 3.125}, + {"matrix": [10, 3], "x": 10.75, "y": 3.125}, + {"matrix": [11, 3], "x": 11.75, "y": 3.125}, + {"matrix": [12, 3], "x": 12.75, "y": 3.125}, - {"matrix": [10, 7], "x": 15.5, "y": 3}, - {"matrix": [11, 7], "x": 16.5, "y": 3}, - {"matrix": [12, 7], "x": 17.5, "y": 3}, + {"matrix": [10, 7], "x": 15.25, "y": 3.125}, + {"matrix": [11, 7], "x": 16.25, "y": 3.125}, + {"matrix": [12, 7], "x": 17.25, "y": 3.125}, - {"matrix": [0, 4], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [1, 4], "x": 1.25, "y": 4}, - {"matrix": [2, 4], "x": 2.25, "y": 4}, - {"matrix": [3, 4], "x": 3.25, "y": 4}, - {"matrix": [4, 4], "x": 4.25, "y": 4}, - {"matrix": [5, 4], "x": 5.25, "y": 4}, - {"matrix": [6, 4], "x": 6.25, "y": 4}, - {"matrix": [7, 4], "x": 7.25, "y": 4}, - {"matrix": [8, 4], "x": 8.25, "y": 4}, - {"matrix": [9, 4], "x": 9.25, "y": 4}, - {"matrix": [10, 4], "x": 10.25, "y": 4}, - {"matrix": [11, 4], "x": 11.25, "y": 4}, - {"matrix": [13, 4], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [0, 4], "x": 0, "y": 4.125, "w": 1.25}, + {"matrix": [1, 4], "x": 1.25, "y": 4.125}, + {"matrix": [2, 4], "x": 2.25, "y": 4.125}, + {"matrix": [3, 4], "x": 3.25, "y": 4.125}, + {"matrix": [4, 4], "x": 4.25, "y": 4.125}, + {"matrix": [5, 4], "x": 5.25, "y": 4.125}, + {"matrix": [6, 4], "x": 6.25, "y": 4.125}, + {"matrix": [7, 4], "x": 7.25, "y": 4.125}, + {"matrix": [8, 4], "x": 8.25, "y": 4.125}, + {"matrix": [9, 4], "x": 9.25, "y": 4.125}, + {"matrix": [10, 4], "x": 10.25, "y": 4.125}, + {"matrix": [11, 4], "x": 11.25, "y": 4.125}, + {"matrix": [13, 4], "x": 12.25, "y": 4.125, "w": 1.75}, - {"matrix": [1, 7], "x": 14.25, "y": 4}, + {"matrix": [1, 7], "x": 14.125, "y": 4.25}, - {"matrix": [6, 7], "x": 15.5, "y": 4}, - {"matrix": [7, 7], "x": 16.5, "y": 4}, - {"matrix": [8, 7], "x": 17.5, "y": 4}, - {"matrix": [9, 7], "x": 18.5, "y": 4, "h": 2}, + {"matrix": [6, 7], "x": 15.25, "y": 4.125}, + {"matrix": [7, 7], "x": 16.25, "y": 4.125}, + {"matrix": [8, 7], "x": 17.25, "y": 4.125}, + {"matrix": [9, 7], "x": 18.25, "y": 4.125, "h": 2}, - {"matrix": [0, 5], "x": 0, "y": 5, "w": 1.25}, - {"matrix": [1, 5], "x": 1.25, "y": 5, "w": 1.25}, - {"matrix": [2, 5], "x": 2.5, "y": 5, "w": 1.25}, - {"matrix": [6, 5], "x": 3.75, "y": 5, "w": 6.25}, - {"matrix": [9, 5], "x": 10, "y": 5}, - {"matrix": [10, 5], "x": 11, "y": 5}, - {"matrix": [12, 5], "x": 12, "y": 5}, + {"matrix": [0, 5], "x": 0, "y": 5.125, "w": 1.25}, + {"matrix": [1, 5], "x": 1.25, "y": 5.125, "w": 1.25}, + {"matrix": [2, 5], "x": 2.5, "y": 5.125, "w": 1.25}, + {"matrix": [6, 5], "x": 3.75, "y": 5.125, "w": 6.25}, + {"matrix": [9, 5], "x": 10, "y": 5.125}, + {"matrix": [10, 5], "x": 11, "y": 5.125}, + {"matrix": [12, 5], "x": 12, "y": 5.125}, - {"matrix": [0, 7], "x": 13.25, "y": 5}, - {"matrix": [2, 7], "x": 14.25, "y": 5}, - {"matrix": [3, 7], "x": 15.25, "y": 5}, + {"matrix": [0, 7], "x": 13.125, "y": 5.25}, + {"matrix": [2, 7], "x": 14.125, "y": 5.25}, + {"matrix": [3, 7], "x": 15.125, "y": 5.25}, - {"matrix": [4, 7], "x": 16.5, "y": 5}, - {"matrix": [5, 7], "x": 17.5, "y": 5} + {"matrix": [4, 7], "x": 16.25, "y": 5.125}, + {"matrix": [5, 7], "x": 17.25, "y": 5.125} ] } } From bd2a33fe77e5c67e49e6f637fac030377ccd8652 Mon Sep 17 00:00:00 2001 From: lendunistus <53618962+lendunistus@users.noreply.github.com> Date: Sat, 23 Sep 2023 11:18:11 +0300 Subject: [PATCH 137/496] Add reminder about format-json to PR Checklist (#22055) --- docs/pr_checklist.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/pr_checklist.md b/docs/pr_checklist.md index c98504c8c0..9bf1b8d005 100644 --- a/docs/pr_checklist.md +++ b/docs/pr_checklist.md @@ -80,6 +80,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard - Encoder Configuration - Bootmagic Configuration - LED Indicator Configuration + - Run `qmk format-json` on this file before submitting your PR. Be sure to append the `-i` flag to directly modify the file, or paste the outputted code into the file. - `readme.md` - must follow the [template](https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme.md) - flash command is present, and has `:flash` at end From c0d7a43637de503bb1037c28b15fda3038c07107 Mon Sep 17 00:00:00 2001 From: Ethan Perry <86326912+wheres-perry@users.noreply.github.com> Date: Sat, 23 Sep 2023 02:34:22 -0600 Subject: [PATCH 138/496] Add Jank RP2040 Dactyl (#21973) Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Drashna Jaelre --- keyboards/handwired/jankrp2040dactyl/config.h | 5 + .../handwired/jankrp2040dactyl/info.json | 103 ++++++++++++++++++ .../jankrp2040dactyl/keymaps/default/keymap.c | 70 ++++++++++++ .../handwired/jankrp2040dactyl/readme.md | 26 +++++ keyboards/handwired/jankrp2040dactyl/rules.mk | 1 + 5 files changed, 205 insertions(+) create mode 100644 keyboards/handwired/jankrp2040dactyl/config.h create mode 100644 keyboards/handwired/jankrp2040dactyl/info.json create mode 100644 keyboards/handwired/jankrp2040dactyl/keymaps/default/keymap.c create mode 100644 keyboards/handwired/jankrp2040dactyl/readme.md create mode 100644 keyboards/handwired/jankrp2040dactyl/rules.mk diff --git a/keyboards/handwired/jankrp2040dactyl/config.h b/keyboards/handwired/jankrp2040dactyl/config.h new file mode 100644 index 0000000000..0cabd35336 --- /dev/null +++ b/keyboards/handwired/jankrp2040dactyl/config.h @@ -0,0 +1,5 @@ +// Copyright 2023 Ethan Perry (@wheres-perry) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define GRAVE_ESC_SHIFT_OVERRIDE \ No newline at end of file diff --git a/keyboards/handwired/jankrp2040dactyl/info.json b/keyboards/handwired/jankrp2040dactyl/info.json new file mode 100644 index 0000000000..c4543b5d12 --- /dev/null +++ b/keyboards/handwired/jankrp2040dactyl/info.json @@ -0,0 +1,103 @@ +{ + "manufacturer": "Ethan Perry", + "keyboard_name": "rp2040dactyl", + "maintainer": "wheres-perry", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "split": { + "enabled": true, + "soft_serial_pin": "GP0" + }, + + "features": { + "extrakey": true, + "mousekey": true, + "nkro": true, + "bootmagic": true + }, + + "matrix_pins": { + "cols": ["GP14", "GP15", "GP16", "GP17", "GP21", "GP22"], + "rows": ["GP8", "GP9", "GP10", "GP11", "GP12"] + }, + + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + + "layouts": { + "LAYOUT": { + "layout": + [{"matrix": [0, 0],"label":"Esc", "x":0, "y":0}, + {"matrix": [0, 1], "label":"1!", "x":1, "y":0}, + {"matrix": [0, 2], "label":"2@", "x":2, "y":0}, + {"matrix": [0, 3], "label":"3#", "x":3, "y":0}, + {"matrix": [0, 4], "label":"4$", "x":4, "y":0}, + {"matrix": [0, 5], "label":"5%", "x":5, "y":0}, + {"matrix": [5, 0], "label":"6^", "x":7, "y":0}, + {"matrix": [5, 1], "label":"7&", "x":8, "y":0}, + {"matrix": [5, 2], "label":"8*", "x":9, "y":0}, + {"matrix": [5, 3], "label":"9(", "x":10, "y":0}, + {"matrix": [5, 4], "label":"0)", "x":11, "y":0}, + {"matrix": [5, 5], "label":"+", "x":12, "y":0}, + + {"matrix": [1, 0], "label":"|", "x":0, "y":1}, + {"matrix": [1, 1], "label":"B", "x":1, "y":1}, + {"matrix": [1, 2], "label":"Y", "x":2, "y":1}, + {"matrix": [1, 3], "label":"O", "x":3, "y":1}, + {"matrix": [1, 4], "label":"U", "x":4, "y":1}, + {"matrix": [1, 5], "label":"\"", "x":5, "y":1}, + {"matrix": [6, 0], "label":":", "x":7, "y":1}, + {"matrix": [6, 1], "label":"L", "x":8, "y":1}, + {"matrix": [6, 2], "label":"D", "x":9, "y":1}, + {"matrix": [6, 3], "label":"W", "x":10, "y":1}, + {"matrix": [6, 4], "label":"V", "x":11, "y":1}, + {"matrix": [6, 5], "label":"Z", "x":12, "y":1}, + + {"matrix": [2, 0], "label":"Arrows", "x":0, "y":2}, + {"matrix": [2, 1], "label":"C", "x":1, "y":2}, + {"matrix": [2, 2], "label":"I", "x":2, "y":2}, + {"matrix": [2, 3], "label":"E", "x":3, "y":2}, + {"matrix": [2, 4], "label":"A", "x":4, "y":2}, + {"matrix": [2, 5], "label":"<", "x":5, "y":2}, + {"matrix": [7, 0], "label":">", "x":7, "y":2}, + {"matrix": [7, 1], "label":"H", "x":8, "y":2}, + {"matrix": [7, 2], "label":"T", "x":9, "y":2}, + {"matrix": [7, 3], "label":"S", "x":10, "y":2}, + {"matrix": [7, 4], "label":"N", "x":11, "y":2}, + {"matrix": [7, 5], "label":"Q", "x":12, "y":2}, + + {"matrix": [3, 0], "label":"Shift", "x":0, "y":3}, + {"matrix": [3, 1], "label":"G", "x":1, "y":3}, + {"matrix": [3, 2], "label":"X", "x":2, "y":3}, + {"matrix": [3, 3], "label":"J", "x":3, "y":3}, + {"matrix": [3, 4], "label":"K", "x":4, "y":3}, + {"matrix": [3, 5], "label":"_", "x":5, "y":3}, + {"matrix": [8, 0], "label":"?", "x":7, "y":3}, + {"matrix": [8, 1], "label":"R", "x":8, "y":3}, + {"matrix": [8, 2], "label":"M", "x":9, "y":3}, + {"matrix": [8, 3], "label":"F", "x":10, "y":3}, + {"matrix": [8, 4], "label":"P", "x":11, "y":3}, + {"matrix": [8, 5], "label":"FN", "x":12, "y":3}, + + {"matrix": [4, 3], "label":"Del", "x":3, "y":5}, + {"matrix": [4, 4], "label":"Space", "x":4, "y":5}, + {"matrix": [4, 5], "label":"Backspace", "x":5, "y":5}, + + {"matrix": [9, 0], "label":"Enter", "x":7, "y":5}, + {"matrix": [9, 3], "label":"Symbol", "x":8, "y":5}, + {"matrix": [9, 2], "label":"Tab", "x":9, "y":5}, + + {"matrix": [4, 1], "label":"Windows", "x":4, "y":6}, + {"matrix": [4, 2], "label":"Alt", "x":5, "y":6}, + + {"matrix": [9, 1], "label":"Ctrl", "x":7, "y":6}, + {"matrix": [9, 4], "label":"Blank", "x":8, "y":6} + ] + } + } +} diff --git a/keyboards/handwired/jankrp2040dactyl/keymaps/default/keymap.c b/keyboards/handwired/jankrp2040dactyl/keymaps/default/keymap.c new file mode 100644 index 0000000000..a9bc7b04f9 --- /dev/null +++ b/keyboards/handwired/jankrp2040dactyl/keymaps/default/keymap.c @@ -0,0 +1,70 @@ +/* Copyright 2023 Ethan Perry (@wheres-perry) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers { + _BASELAYER, + _FUNCTIONLAYER, + _ARROWLAYER, + _SYMBOLLAYER +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASELAYER] = LAYOUT( + QK_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQUAL, + KC_BSLS,KC_B, KC_Y, KC_O, KC_U, KC_QUOT, KC_SCLN,KC_L, KC_D, KC_W, KC_V, KC_Z, + MO(_FUNCTIONLAYER), KC_C, KC_I, KC_E, KC_A, KC_COMM, KC_DOT, KC_H, KC_T, KC_S, KC_N, KC_Q, + KC_LSFT,KC_G, KC_X, KC_J, KC_K, KC_MINS, KC_SLSH,KC_R, KC_M, KC_F, KC_P, MO(_ARROWLAYER), + + KC_DEL, KC_SPC,KC_BSPC, KC_ENT, MO(_SYMBOLLAYER), KC_TAB, + KC_LGUI,KC_LALT, KC_RCTL,KC_NO + + + ), + [_ARROWLAYER] = LAYOUT( + 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_UP, KC_TRNS,KC_TRNS,KC_TRNS, + MO(_FUNCTIONLAYER), KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,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_DEL, KC_SPC,KC_BSPC, KC_ENT, MO(_SYMBOLLAYER), KC_TAB, + KC_LGUI,KC_LALT, KC_RCTL,KC_NO + + + ), + [_FUNCTIONLAYER] = LAYOUT( + 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_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_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + + KC_DEL, KC_SPC,KC_BSPC, KC_ENT, MO(_SYMBOLLAYER), KC_TAB, + KC_LGUI,KC_LALT, KC_RCTL, KC_NO + + + ), + [_SYMBOLLAYER] = LAYOUT( + KC_TILD,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, + KC_NO, KC_PIPE,KC_BSLS,KC_EQL, KC_LT, KC_GT, KC_LCBR,KC_RCBR,KC_UNDS,KC_ASTR,KC_PLUS, KC_NO, + KC_TRNS, KC_QUES,KC_QUOT,KC_DQUO,KC_COLN,KC_SCLN, KC_LPRN,KC_RPRN,KC_COMM,KC_DOT, KC_MINS,KC_NO, + KC_LSFT,KC_CIRC,KC_PERC,KC_AMPR,KC_HASH,KC_SLSH, KC_LBRC,KC_RBRC,KC_DLR, KC_AT, KC_EXLM,KC_TRNS, + KC_DEL, KC_SPC,KC_BSPC, KC_ENT, KC_TRNS, KC_TAB, + KC_LGUI,KC_LALT, KC_RCTL,KC_NO + + + ) +}; diff --git a/keyboards/handwired/jankrp2040dactyl/readme.md b/keyboards/handwired/jankrp2040dactyl/readme.md new file mode 100644 index 0000000000..0453816b18 --- /dev/null +++ b/keyboards/handwired/jankrp2040dactyl/readme.md @@ -0,0 +1,26 @@ +# handwired/jankrp2040dactyl + + +A budget Dactyl-Manuform build using Raspberry Pi Pico. + +* Keyboard Maintainer: [Ethan Perry](https://github.com/wheres-perry) +* Hardware Supported: RP2040 Community Edition +* Hardware Availability: https://www.digikey.com/en/product-highlight/r/raspberry-pi/raspberry-pi-picoboard + +Make example for this keyboard (after setting up your build environment): + + make handwired/jankrp2040dactyl:default + +Flashing example for this keyboard: + + make handwired/jankrp2040dactyl:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/jankrp2040dactyl/rules.mk b/keyboards/handwired/jankrp2040dactyl/rules.mk new file mode 100644 index 0000000000..743228e94b --- /dev/null +++ b/keyboards/handwired/jankrp2040dactyl/rules.mk @@ -0,0 +1 @@ +SERIAL_DRIVER = vendor \ No newline at end of file From 26b2288bde48659566809b2221a8e76bcd8dd20b Mon Sep 17 00:00:00 2001 From: Shandon Anderson Date: Sat, 23 Sep 2023 16:22:44 -0400 Subject: [PATCH 139/496] [Keyboard] Enable RGB_TEST animation on riot_pad (#22118) Co-authored-by: ShandonCodes --- keyboards/riot_pad/info.json | 1 + 1 file changed, 1 insertion(+) diff --git a/keyboards/riot_pad/info.json b/keyboards/riot_pad/info.json index 0798a4de60..ab732ef0b0 100644 --- a/keyboards/riot_pad/info.json +++ b/keyboards/riot_pad/info.json @@ -24,6 +24,7 @@ "knight": true, "rainbow_mood": true, "rainbow_swirl": true, + "rgb_test": true, "snake": true, "static_gradient": true, "twinkle": true From 9c340077f630ef464758687e67e415e85376dad1 Mon Sep 17 00:00:00 2001 From: Glen D'souza Date: Sun, 24 Sep 2023 03:53:15 +0530 Subject: [PATCH 140/496] Fix lower cpi bound on PMW33XX (#22108) --- drivers/sensors/pmw3320.c | 2 +- drivers/sensors/pmw3360.c | 2 +- drivers/sensors/pmw3389.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/sensors/pmw3320.c b/drivers/sensors/pmw3320.c index a4648ef425..69a584f4e1 100644 --- a/drivers/sensors/pmw3320.c +++ b/drivers/sensors/pmw3320.c @@ -178,7 +178,7 @@ uint16_t pmw3320_get_cpi(void) { } void pmw3320_set_cpi(uint16_t cpi) { - uint8_t cpival = constrain((cpi / PMW3320_CPI_STEP) - 1U, 0, (PMW3320_CPI_MAX / PMW3320_CPI_STEP) - 1U); + uint8_t cpival = constrain((cpi / PMW3320_CPI_STEP), (PMW3320_CPI_MIN / PMW3320_CPI_STEP), (PMW3320_CPI_MAX / PMW3320_CPI_STEP)) - 1U; // Fifth bit is probably a control bit. // PMW3320 datasheet don't have any info on this, so this is a pure guess. pmw3320_write_reg(REG_Resolution, 0x20 | cpival); diff --git a/drivers/sensors/pmw3360.c b/drivers/sensors/pmw3360.c index 81dca002e2..a7dc687f50 100644 --- a/drivers/sensors/pmw3360.c +++ b/drivers/sensors/pmw3360.c @@ -23,7 +23,7 @@ void pmw33xx_set_cpi(uint8_t sensor, uint16_t cpi) { return; } - uint8_t cpival = CONSTRAIN((cpi / PMW33XX_CPI_STEP) - 1, 0, (PMW33XX_CPI_MAX / PMW33XX_CPI_STEP) - 1U); + uint8_t cpival = CONSTRAIN((cpi / PMW33XX_CPI_STEP), (PMW33XX_CPI_MIN / PMW33XX_CPI_STEP), (PMW33XX_CPI_MAX / PMW33XX_CPI_STEP)) - 1U; pmw33xx_write(sensor, REG_Config1, cpival); } diff --git a/drivers/sensors/pmw3389.c b/drivers/sensors/pmw3389.c index c5781a5ffe..10e578edac 100644 --- a/drivers/sensors/pmw3389.c +++ b/drivers/sensors/pmw3389.c @@ -22,7 +22,7 @@ void pmw33xx_set_cpi(uint8_t sensor, uint16_t cpi) { return; } - uint16_t cpival = CONSTRAIN((cpi / PMW33XX_CPI_STEP) - 1, 0, (PMW33XX_CPI_MAX / PMW33XX_CPI_STEP) - 1U); + uint16_t cpival = CONSTRAIN((cpi / PMW33XX_CPI_STEP), (PMW33XX_CPI_MIN / PMW33XX_CPI_STEP), (PMW33XX_CPI_MAX / PMW33XX_CPI_STEP)) - 1U; // Sets upper byte first for more consistent setting of cpi pmw33xx_write(sensor, REG_Resolution_H, (cpival >> 8) & 0xFF); pmw33xx_write(sensor, REG_Resolution_L, cpival & 0xFF); From 6424dadd3785d83ebbe17861ed9f9b495b8ba6ae Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 24 Sep 2023 12:32:20 +1000 Subject: [PATCH 141/496] Remove custom ISSI lighting code (#22073) * Remove CU75 custom lighting * Remove LFK78 custom lighting * Remove LFK87 custom lighting * Remove LFKPad custom lighting * Remove Mini1800 custom lighting * Remove SMK65 custom lighting * Remove LFK65-HS custom lighting * Remove LFKeyboards custom lighting * Remove Meira custom lighting --- keyboards/capsunlocked/cu75/config.h | 2 - keyboards/capsunlocked/cu75/cu75.c | 45 +-- keyboards/capsunlocked/cu75/cu75.h | 17 - keyboards/capsunlocked/cu75/info.json | 24 -- .../cu75/keymaps/default/rules.mk | 5 - .../capsunlocked/cu75/keymaps/iso/rules.mk | 5 - keyboards/capsunlocked/cu75/post_rules.mk | 4 - keyboards/capsunlocked/cu75/rules.mk | 3 - keyboards/lfkeyboards/TWIlib.c | 296 ----------------- keyboards/lfkeyboards/TWIlib.h | 71 ----- keyboards/lfkeyboards/issi.c | 244 -------------- keyboards/lfkeyboards/issi.h | 39 --- keyboards/lfkeyboards/lfk65_hs/config.h | 2 - keyboards/lfkeyboards/lfk65_hs/info.json | 22 -- keyboards/lfkeyboards/lfk65_hs/lfk65_hs.c | 5 +- keyboards/lfkeyboards/lfk65_hs/lfk65_hs.h | 3 - keyboards/lfkeyboards/lfk65_hs/rules.mk | 2 - keyboards/lfkeyboards/lfk78/config.h | 2 - .../lfk78/keymaps/ca178858/keymap.c | 19 +- .../lfk78/keymaps/ca178858/rules.mk | 33 +- .../lfk78/keymaps/default/keymap.c | 10 - .../lfkeyboards/lfk78/keymaps/iso/keymap.c | 10 - .../lfk78/keymaps/split_bs_osx/keymap.c | 10 - keyboards/lfkeyboards/lfk78/lfk78.c | 113 ------- keyboards/lfkeyboards/lfk78/lfk78.h | 15 - keyboards/lfkeyboards/lfk78/post_rules.mk | 11 - keyboards/lfkeyboards/lfk78/revb/info.json | 24 -- keyboards/lfkeyboards/lfk78/revb/revb.c | 19 -- keyboards/lfkeyboards/lfk78/revc/info.json | 24 -- keyboards/lfkeyboards/lfk78/revc/revc.c | 14 - keyboards/lfkeyboards/lfk78/revj/info.json | 24 -- keyboards/lfkeyboards/lfk78/revj/revj.c | 14 - keyboards/lfkeyboards/lfk78/rules.mk | 6 - keyboards/lfkeyboards/lfk87/config.h | 2 - keyboards/lfkeyboards/lfk87/info.json | 10 - .../lfk87/keymaps/ca178858/keymap.c | 11 - .../lfk87/keymaps/ca178858/rules.mk | 15 - .../lfk87/keymaps/default/keymap.c | 10 - .../lfk87/keymaps/default/rules.mk | 12 - .../lfkeyboards/lfk87/keymaps/gbchk/keymap.c | 10 - .../lfkeyboards/lfk87/keymaps/gbchk/rules.mk | 15 - .../lfkeyboards/lfk87/keymaps/iso/keymap.c | 10 - .../lfkeyboards/lfk87/keymaps/iso/rules.mk | 13 +- keyboards/lfkeyboards/lfk87/lfk87.c | 98 +----- keyboards/lfkeyboards/lfk87/lfk87.h | 19 +- keyboards/lfkeyboards/lfk87/post_rules.mk | 4 - keyboards/lfkeyboards/lfk87/reva/info.json | 16 - keyboards/lfkeyboards/lfk87/reva/reva.c | 16 - keyboards/lfkeyboards/lfk87/revc/info.json | 16 - keyboards/lfkeyboards/lfk87/revc/revc.c | 17 - keyboards/lfkeyboards/lfk87/rules.mk | 8 - keyboards/lfkeyboards/lfkpad/info.json | 20 -- .../lfkpad/keymaps/pascalpfeil/keymap.c | 15 - keyboards/lfkeyboards/lfkpad/lfkpad.c | 52 --- keyboards/lfkeyboards/lfkpad/post_rules.mk | 4 - keyboards/lfkeyboards/lfkpad/rules.mk | 7 - keyboards/lfkeyboards/lighting.c | 158 --------- keyboards/lfkeyboards/lighting.h | 49 --- keyboards/lfkeyboards/mini1800/config.h | 2 - keyboards/lfkeyboards/mini1800/info.json | 24 -- .../mini1800/keymaps/ca178858/keymap.c | 10 - .../mini1800/keymaps/default/keymap.c | 10 - keyboards/lfkeyboards/mini1800/mini1800.c | 111 +------ keyboards/lfkeyboards/mini1800/mini1800.h | 18 +- .../lfkeyboards/mini1800/reva/post_rules.mk | 4 - keyboards/lfkeyboards/mini1800/reva/rules.mk | 8 - .../lfkeyboards/mini1800/revc/post_rules.mk | 4 - keyboards/lfkeyboards/mini1800/revc/rules.mk | 8 - .../smk65/keymaps/default/rules.mk | 8 - .../lfkeyboards/smk65/keymaps/iso/rules.mk | 8 - keyboards/lfkeyboards/smk65/post_rules.mk | 4 - keyboards/lfkeyboards/smk65/revb/config.h | 2 - keyboards/lfkeyboards/smk65/revb/info.json | 23 -- keyboards/lfkeyboards/smk65/revb/revb.c | 37 +-- keyboards/lfkeyboards/smk65/revb/revb.h | 17 - keyboards/lfkeyboards/smk65/revb/rules.mk | 9 - keyboards/lfkeyboards/smk65/revf/info.json | 4 - keyboards/lfkeyboards/smk65/revf/rules.mk | 4 - keyboards/woodkeys/meira/TWIlib.c | 300 ------------------ keyboards/woodkeys/meira/TWIlib.h | 71 ----- keyboards/woodkeys/meira/config.h | 2 - keyboards/woodkeys/meira/featherble/config.h | 1 - keyboards/woodkeys/meira/info.json | 10 - keyboards/woodkeys/meira/issi.c | 286 ----------------- keyboards/woodkeys/meira/issi.h | 39 --- .../woodkeys/meira/keymaps/cole/keymap.c | 1 - .../woodkeys/meira/keymaps/default/keymap.c | 1 - .../meira/keymaps/grahampheath/keymap.c | 9 - .../meira/keymaps/grahampheath/rules.mk | 2 - .../woodkeys/meira/keymaps/takmiya/keymap.c | 10 - keyboards/woodkeys/meira/lighting.c | 84 ----- keyboards/woodkeys/meira/lighting.h | 6 - keyboards/woodkeys/meira/matrix.c | 9 +- keyboards/woodkeys/meira/meira.c | 39 +-- keyboards/woodkeys/meira/meira.h | 1 - keyboards/woodkeys/meira/post_rules.mk | 9 - keyboards/woodkeys/meira/promicro/config.h | 2 - keyboards/woodkeys/meira/rules.mk | 4 +- 98 files changed, 16 insertions(+), 2929 deletions(-) delete mode 100644 keyboards/lfkeyboards/TWIlib.c delete mode 100644 keyboards/lfkeyboards/TWIlib.h delete mode 100644 keyboards/lfkeyboards/issi.c delete mode 100644 keyboards/lfkeyboards/issi.h delete mode 100644 keyboards/lfkeyboards/lfk78/revb/revb.c delete mode 100644 keyboards/lfkeyboards/lfk78/revc/revc.c delete mode 100644 keyboards/lfkeyboards/lfk78/revj/revj.c delete mode 100644 keyboards/lfkeyboards/lfk87/reva/reva.c delete mode 100644 keyboards/lfkeyboards/lfk87/revc/revc.c delete mode 100644 keyboards/lfkeyboards/lighting.c delete mode 100644 keyboards/lfkeyboards/lighting.h delete mode 100644 keyboards/lfkeyboards/smk65/keymaps/default/rules.mk delete mode 100644 keyboards/lfkeyboards/smk65/keymaps/iso/rules.mk delete mode 100755 keyboards/woodkeys/meira/TWIlib.c delete mode 100755 keyboards/woodkeys/meira/TWIlib.h delete mode 100755 keyboards/woodkeys/meira/issi.c delete mode 100755 keyboards/woodkeys/meira/issi.h delete mode 100755 keyboards/woodkeys/meira/lighting.c delete mode 100755 keyboards/woodkeys/meira/lighting.h delete mode 100644 keyboards/woodkeys/meira/post_rules.mk diff --git a/keyboards/capsunlocked/cu75/config.h b/keyboards/capsunlocked/cu75/config.h index b8cd9eeebb..b9449c4714 100644 --- a/keyboards/capsunlocked/cu75/config.h +++ b/keyboards/capsunlocked/cu75/config.h @@ -17,8 +17,6 @@ along with this program. If not, see . #pragma once -#define BACKLIGHT_PWM_MAP {8, 16, 40, 55, 70, 128, 200, 255} - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/capsunlocked/cu75/cu75.c b/keyboards/capsunlocked/cu75/cu75.c index c894d18602..f980b0d9e1 100644 --- a/keyboards/capsunlocked/cu75/cu75.c +++ b/keyboards/capsunlocked/cu75/cu75.c @@ -1,15 +1,8 @@ -#include -#include -#include #include "cu75.h" -#include "debug.h" -#include "../lfkeyboards/issi.h" -#include "../lfkeyboards/TWIlib.h" -#include "../lfkeyboards/lighting.h" +#include #ifdef AUDIO_ENABLE float test_sound[][2] = SONG(STARTUP_SOUND); -#include "audio.h" #endif uint16_t click_hz = CLICK_HZ; @@ -34,39 +27,12 @@ void matrix_init_kb(void) setPinOutput(C6); writePinLow(C6); #endif -#ifdef ISSI_ENABLE - issi_init(); -#endif } void matrix_scan_kb(void) { #ifdef WATCHDOG_ENABLE wdt_reset(); -#endif -#ifdef ISSI_ENABLE - // switch/underglow lighting update - static uint32_t issi_device = 0; - static uint32_t twi_last_ready = 0; - if(twi_last_ready > 1000){ - // Its been way too long since the last ISSI update, reset the I2C bus and start again - dprintf("TWI failed to recover, TWI re-init\n"); - twi_last_ready = 0; - TWIInit(); - force_issi_refresh(); - } - if(isTWIReady()){ - twi_last_ready = 0; - // If the i2c bus is available, kick off the issi update, alternate between devices - update_issi(issi_device, issi_device); - if(issi_device){ - issi_device = 0; - }else{ - issi_device = 3; - } - }else{ - twi_last_ready++; - } #endif matrix_scan_user(); } @@ -92,7 +58,6 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) } if (keycode == QK_BOOT) { reset_keyboard_kb(); - } else { } return process_record_user(keycode, record); } @@ -105,11 +70,3 @@ void reset_keyboard_kb(void){ #endif reset_keyboard(); } - -// LFK lighting info -const uint8_t switch_matrices[] = {0, 1}; -const uint8_t rgb_matrices[] = {6, 7}; -const uint8_t rgb_sequence[] = { - 24, 23, 22, 21, 20, 19, 18, 17, 1, 2, 3, 4, 5, - 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 9 -}; diff --git a/keyboards/capsunlocked/cu75/cu75.h b/keyboards/capsunlocked/cu75/cu75.h index d17c1da26f..36797efd8f 100644 --- a/keyboards/capsunlocked/cu75/cu75.h +++ b/keyboards/capsunlocked/cu75/cu75.h @@ -1,23 +1,6 @@ #pragma once #include "quantum.h" -#include "matrix.h" -#include - -typedef struct RGB_Color { - uint16_t red; - uint16_t green; - uint16_t blue; -} RGB_Color; - -typedef struct Layer_Info { - uint32_t layer; - uint32_t mask; - RGB_Color color; -} Layer_Info; - -extern const uint32_t layer_count; -extern const Layer_Info layer_info[]; #define CLICK_HZ 500 #define CLICK_MS 2 diff --git a/keyboards/capsunlocked/cu75/info.json b/keyboards/capsunlocked/cu75/info.json index 24aed787ef..25e3ca049f 100644 --- a/keyboards/capsunlocked/cu75/info.json +++ b/keyboards/capsunlocked/cu75/info.json @@ -13,30 +13,6 @@ "rows": ["F1", "B7", "B3", "D2", "D3", "B2"] }, "diode_direction": "COL2ROW", - "backlight": { - "driver": "custom", - "levels": 8 - }, - "rgblight": { - "driver": "custom", - "hue_steps": 10, - "led_count": 24, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, - "rgb_test": true, - "alternating": true, - "twinkle": true - } - }, - "ws2812": { - "pin": "C7" - }, "processor": "atmega32u4", "bootloader": "atmel-dfu", "layouts": { diff --git a/keyboards/capsunlocked/cu75/keymaps/default/rules.mk b/keyboards/capsunlocked/cu75/keymaps/default/rules.mk index 483baa7993..b4a28dd964 100644 --- a/keyboards/capsunlocked/cu75/keymaps/default/rules.mk +++ b/keyboards/capsunlocked/cu75/keymaps/default/rules.mk @@ -4,10 +4,5 @@ EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes -BACKLIGHT_ENABLE = yes # Disable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -RGBLIGHT_ENABLE = yes # Disable RGB underlight -SLEEP_LED_ENABLE = yes - -ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms diff --git a/keyboards/capsunlocked/cu75/keymaps/iso/rules.mk b/keyboards/capsunlocked/cu75/keymaps/iso/rules.mk index 0058113605..c692135bf3 100644 --- a/keyboards/capsunlocked/cu75/keymaps/iso/rules.mk +++ b/keyboards/capsunlocked/cu75/keymaps/iso/rules.mk @@ -4,10 +4,5 @@ EXTRAKEY_ENABLE = yes # Audio control and System control(+450) CONSOLE_ENABLE = yes # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes -# BACKLIGHT_ENABLE = no # Disable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -RGBLIGHT_ENABLE = no # Disable RGB underlight -SLEEP_LED_ENABLE = yes - -ISSI_ENABLE = no # If the I2C pullup resistors aren't install this must be disabled WATCHDOG_ENABLE = yes # Resets keyboard if matrix_scan isn't run every 250ms diff --git a/keyboards/capsunlocked/cu75/post_rules.mk b/keyboards/capsunlocked/cu75/post_rules.mk index a5d9746664..1a3c10d3a1 100644 --- a/keyboards/capsunlocked/cu75/post_rules.mk +++ b/keyboards/capsunlocked/cu75/post_rules.mk @@ -1,7 +1,3 @@ -ifeq ($(strip $(ISSI_ENABLE)), yes) - OPT_DEFS += -DISSI_ENABLE -endif - ifeq ($(strip $(WATCHDOG_ENABLE)), yes) OPT_DEFS += -DWATCHDOG_ENABLE endif diff --git a/keyboards/capsunlocked/cu75/rules.mk b/keyboards/capsunlocked/cu75/rules.mk index cf757fc166..e69de29bb2 100644 --- a/keyboards/capsunlocked/cu75/rules.mk +++ b/keyboards/capsunlocked/cu75/rules.mk @@ -1,3 +0,0 @@ -# TODO: These boards need to be converted to RGB Matrix -VPATH += keyboards/lfkeyboards -SRC = TWIlib.c issi.c lighting.c diff --git a/keyboards/lfkeyboards/TWIlib.c b/keyboards/lfkeyboards/TWIlib.c deleted file mode 100644 index 0d52322c64..0000000000 --- a/keyboards/lfkeyboards/TWIlib.c +++ /dev/null @@ -1,296 +0,0 @@ -/* - * TWIlib.c - * - * Created: 6/01/2014 10:41:33 PM - * Author: Chris Herring - */ - -#include -#include -#include "TWIlib.h" -#include -#include "print.h" - -// Global transmit buffer -volatile uint8_t *TWITransmitBuffer; -// Global receive buffer -volatile uint8_t TWIReceiveBuffer[RXMAXBUFLEN]; -// Buffer indexes -volatile int TXBuffIndex; // Index of the transmit buffer. Is volatile, can change at any time. -int RXBuffIndex; // Current index in the receive buffer -// Buffer lengths -int TXBuffLen; // The total length of the transmit buffer -int RXBuffLen; // The total number of bytes to read (should be less than RXMAXBUFFLEN) - -TWIInfoStruct TWIInfo; - -void TWIInit(void) -{ - TWIInfo.mode = Ready; - TWIInfo.errorCode = 0xFF; - TWIInfo.repStart = 0; - // Set pre-scalers (no pre-scaling) - TWSR = 0; - // Set bit rate - TWBR = ((F_CPU / TWI_FREQ) - 16) / 2; - // Enable TWI and interrupt - TWCR = (1 << TWIE) | (1 << TWEN); -} - -uint8_t isTWIReady(void) -{ - if ( (TWIInfo.mode == Ready) | (TWIInfo.mode == RepeatedStartSent) ) - { - return 1; - } - else - { - if(TWIInfo.mode == Initializing){ - switch(TWIInfo.errorCode){ - case TWI_SUCCESS: - case TWI_NO_RELEVANT_INFO: - break; - case TWI_LOST_ARBIT: - case TWI_MT_DATA_NACK: - // Some kind of I2C error, reset and re-init - xprintf("I2C init error: %d\n", TWIInfo.errorCode); - TWCR = (1 << TWINT)|(1 << TWSTO); - TWIInit(); - break; - default: - xprintf("Other i2c init error: %d\n", TWIInfo.errorCode); - } - } - return 0; - } -} - - -void TWITransmitData(void *const TXdata, uint8_t dataLen, uint8_t repStart, uint8_t blocking) -{ - // Wait until ready - while (!isTWIReady()) {_delay_us(1);} - // Reset the I2C stuff - TWCR = (1 << TWINT)|(1 << TWSTO); - TWIInit(); - // Set repeated start mode - TWIInfo.repStart = repStart; - // Copy transmit info to global variables - TWITransmitBuffer = (uint8_t *)TXdata; - TXBuffLen = dataLen; - TXBuffIndex = 0; - - // If a repeated start has been sent, then devices are already listening for an address - // and another start does not need to be sent. - if (TWIInfo.mode == RepeatedStartSent) - { - TWIInfo.mode = Initializing; - TWDR = TWITransmitBuffer[TXBuffIndex++]; // Load data to transmit buffer - TWISendTransmit(); // Send the data - } - else // Otherwise, just send the normal start signal to begin transmission. - { - TWIInfo.mode = Initializing; - TWISendStart(); - } - if(blocking){ - // Wait until ready - while (!isTWIReady()){_delay_us(1);} - } -} - - -// uint8_t TWITransmitData(void *const TXdata, uint8_t dataLen, uint8_t repStart) -// { -// if (dataLen <= TXMAXBUFLEN) -// { -// // Wait until ready -// while (!isTWIReady()) {_delay_us(1);} -// // Set repeated start mode -// TWIInfo.repStart = repStart; -// // Copy data into the transmit buffer -// uint8_t *data = (uint8_t *)TXdata; -// for (int i = 0; i < dataLen; i++) -// { -// TWITransmitBuffer[i] = data[i]; -// } -// // Copy transmit info to global variables -// TXBuffLen = dataLen; -// TXBuffIndex = 0; - -// // If a repeated start has been sent, then devices are already listening for an address -// // and another start does not need to be sent. -// if (TWIInfo.mode == RepeatedStartSent) -// { -// TWIInfo.mode = Initializing; -// TWDR = TWITransmitBuffer[TXBuffIndex++]; // Load data to transmit buffer -// TWISendTransmit(); // Send the data -// } -// else // Otherwise, just send the normal start signal to begin transmission. -// { -// TWIInfo.mode = Initializing; -// TWISendStart(); -// } - -// } -// else -// { -// return 1; // return an error if data length is longer than buffer -// } -// return 0; -// } - -uint8_t TWIReadData(uint8_t TWIaddr, uint8_t bytesToRead, uint8_t repStart) -{ - // Check if number of bytes to read can fit in the RXbuffer - if (bytesToRead < RXMAXBUFLEN) - { - // Reset buffer index and set RXBuffLen to the number of bytes to read - RXBuffIndex = 0; - RXBuffLen = bytesToRead; - // Create the one value array for the address to be transmitted - uint8_t TXdata[1]; - // Shift the address and AND a 1 into the read write bit (set to write mode) - TXdata[0] = (TWIaddr << 1) | 0x01; - // Use the TWITransmitData function to initialize the transfer and address the slave - TWITransmitData(TXdata, 1, repStart, 0); - } - else - { - return 0; - } - return 1; -} - -ISR (TWI_vect) -{ - switch (TWI_STATUS) - { - // ----\/ ---- MASTER TRANSMITTER OR WRITING ADDRESS ----\/ ---- // - case TWI_MT_SLAW_ACK: // SLA+W transmitted and ACK received - // Set mode to Master Transmitter - TWIInfo.mode = MasterTransmitter; - case TWI_START_SENT: // Start condition has been transmitted - case TWI_MT_DATA_ACK: // Data byte has been transmitted, ACK received - if (TXBuffIndex < TXBuffLen) // If there is more data to send - { - TWDR = TWITransmitBuffer[TXBuffIndex++]; // Load data to transmit buffer - TWIInfo.errorCode = TWI_NO_RELEVANT_INFO; - TWISendTransmit(); // Send the data - } - // This transmission is complete however do not release bus yet - else if (TWIInfo.repStart) - { - TWIInfo.errorCode = 0xFF; - TWISendStart(); - } - // All transmissions are complete, exit - else - { - TWIInfo.mode = Ready; - TWIInfo.errorCode = 0xFF; - TWISendStop(); - } - break; - - // ----\/ ---- MASTER RECEIVER ----\/ ---- // - - case TWI_MR_SLAR_ACK: // SLA+R has been transmitted, ACK has been received - // Switch to Master Receiver mode - TWIInfo.mode = MasterReceiver; - // If there is more than one byte to be read, receive data byte and return an ACK - if (RXBuffIndex < RXBuffLen-1) - { - TWIInfo.errorCode = TWI_NO_RELEVANT_INFO; - TWISendACK(); - } - // Otherwise when a data byte (the only data byte) is received, return NACK - else - { - TWIInfo.errorCode = TWI_NO_RELEVANT_INFO; - TWISendNACK(); - } - break; - - case TWI_MR_DATA_ACK: // Data has been received, ACK has been transmitted. - - /// -- HANDLE DATA BYTE --- /// - TWIReceiveBuffer[RXBuffIndex++] = TWDR; - // If there is more than one byte to be read, receive data byte and return an ACK - if (RXBuffIndex < RXBuffLen-1) - { - TWIInfo.errorCode = TWI_NO_RELEVANT_INFO; - TWISendACK(); - } - // Otherwise when a data byte (the only data byte) is received, return NACK - else - { - TWIInfo.errorCode = TWI_NO_RELEVANT_INFO; - TWISendNACK(); - } - break; - - case TWI_MR_DATA_NACK: // Data byte has been received, NACK has been transmitted. End of transmission. - - /// -- HANDLE DATA BYTE --- /// - TWIReceiveBuffer[RXBuffIndex++] = TWDR; - // This transmission is complete however do not release bus yet - if (TWIInfo.repStart) - { - TWIInfo.errorCode = 0xFF; - TWISendStart(); - } - // All transmissions are complete, exit - else - { - TWIInfo.mode = Ready; - TWIInfo.errorCode = 0xFF; - TWISendStop(); - } - break; - - // ----\/ ---- MT and MR common ----\/ ---- // - - case TWI_MR_SLAR_NACK: // SLA+R transmitted, NACK received - case TWI_MT_SLAW_NACK: // SLA+W transmitted, NACK received - case TWI_MT_DATA_NACK: // Data byte has been transmitted, NACK received - case TWI_LOST_ARBIT: // Arbitration has been lost - // Return error and send stop and set mode to ready - if (TWIInfo.repStart) - { - TWIInfo.errorCode = TWI_STATUS; - TWISendStart(); - } - // All transmissions are complete, exit - else - { - TWIInfo.mode = Ready; - TWIInfo.errorCode = TWI_STATUS; - TWISendStop(); - } - break; - case TWI_REP_START_SENT: // Repeated start has been transmitted - // Set the mode but DO NOT clear TWINT as the next data is not yet ready - TWIInfo.mode = RepeatedStartSent; - break; - - // ----\/ ---- SLAVE RECEIVER ----\/ ---- // - - // TODO IMPLEMENT SLAVE RECEIVER FUNCTIONALITY - - // ----\/ ---- SLAVE TRANSMITTER ----\/ ---- // - - // TODO IMPLEMENT SLAVE TRANSMITTER FUNCTIONALITY - - // ----\/ ---- MISCELLANEOUS STATES ----\/ ---- // - case TWI_NO_RELEVANT_INFO: // It is not really possible to get into this ISR on this condition - // Rather, it is there to be manually set between operations - break; - case TWI_ILLEGAL_START_STOP: // Illegal START/STOP, abort and return error - TWIInfo.errorCode = TWI_ILLEGAL_START_STOP; - TWIInfo.mode = Ready; - TWISendStop(); - break; - } - -} diff --git a/keyboards/lfkeyboards/TWIlib.h b/keyboards/lfkeyboards/TWIlib.h deleted file mode 100644 index 8ba261c6e5..0000000000 --- a/keyboards/lfkeyboards/TWIlib.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * TWIlib.h - * - * Created: 6/01/2014 10:38:42 PM - * Author: Chris Herring - */ - - -#ifndef TWILIB_H_ -#define TWILIB_H_ -// TWI bit rate -#define TWI_FREQ 400000 -// Get TWI status -#define TWI_STATUS (TWSR & 0xF8) -// Transmit buffer length -#define TXMAXBUFLEN 20 -// Receive buffer length -#define RXMAXBUFLEN 20 - -typedef enum { - Ready, - Initializing, - RepeatedStartSent, - MasterTransmitter, - MasterReceiver, - SlaceTransmitter, - SlaveReciever - } TWIMode; - - typedef struct TWIInfoStruct{ - TWIMode mode; - uint8_t errorCode; - uint8_t repStart; - }TWIInfoStruct; - -extern TWIInfoStruct TWIInfo; - -// TWI Status Codes -#define TWI_START_SENT 0x08 // Start sent -#define TWI_REP_START_SENT 0x10 // Repeated Start sent -// Master Transmitter Mode -#define TWI_MT_SLAW_ACK 0x18 // SLA+W sent and ACK received -#define TWI_MT_SLAW_NACK 0x20 // SLA+W sent and NACK received -#define TWI_MT_DATA_ACK 0x28 // DATA sent and ACK received -#define TWI_MT_DATA_NACK 0x30 // DATA sent and NACK received -// Master Receiver Mode -#define TWI_MR_SLAR_ACK 0x40 // SLA+R sent, ACK received -#define TWI_MR_SLAR_NACK 0x48 // SLA+R sent, NACK received -#define TWI_MR_DATA_ACK 0x50 // Data received, ACK returned -#define TWI_MR_DATA_NACK 0x58 // Data received, NACK returned - -// Miscellaneous States -#define TWI_LOST_ARBIT 0x38 // Arbitration has been lost -#define TWI_NO_RELEVANT_INFO 0xF8 // No relevant information available -#define TWI_ILLEGAL_START_STOP 0x00 // Illegal START or STOP condition has been detected -#define TWI_SUCCESS 0xFF // Successful transfer, this state is impossible from TWSR as bit2 is 0 and read only - - -#define TWISendStart() (TWCR = (1< -#include -#include -#include -#include -#include -#include "issi.h" -#include "print.h" -#include "TWIlib.h" - -#define ISSI_ADDR_DEFAULT 0xE8 - -#define ISSI_REG_CONFIG 0x00 -#define ISSI_REG_CONFIG_PICTUREMODE 0x00 -#define ISSI_REG_CONFIG_AUTOPLAYMODE 0x08 - -#define ISSI_CONF_PICTUREMODE 0x00 -#define ISSI_CONF_AUTOFRAMEMODE 0x04 -#define ISSI_CONF_AUDIOMODE 0x08 - -#define ISSI_REG_PICTUREFRAME 0x01 - -#define ISSI_REG_SHUTDOWN 0x0A -#define ISSI_REG_AUDIOSYNC 0x06 - -#define ISSI_COMMANDREGISTER 0xFD -#define ISSI_BANK_FUNCTIONREG 0x0B // helpfully called 'page nine' -uint8_t control[8][9] = { - {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, -}; -ISSIDeviceStruct *issi_devices[4] = {0, 0, 0, 0}; - -#ifndef cbi -#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) -#endif - -#ifndef sbi -#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) -#endif - -#define I2C_WRITE 0 -#define F_SCL 400000UL // SCL frequency -#define Prescaler 1 -#define TWBR_val ((((F_CPU / F_SCL) / Prescaler) - 16 ) / 2) - -uint8_t i2c_start(uint8_t address) -{ - // reset TWI control register - TWCR = 0; - // transmit START condition - TWCR = (1<> 1; - ISSIDeviceStruct *device = issi_devices[device_addr]; - if(device == 0){ - return; - } - // xprintf("activeLED: %02X %02X %02X %02X\n", matrix, cy, cx, pwm); - uint8_t x = cx - 1; // funciton takes 1 based counts, but we need 0... - uint8_t y = cy - 1; // creating them once for less confusion - uint8_t control_reg = (y << 1) | (matrix & 0x01); - if(pwm == 0){ - cbi(device->led_ctrl[control_reg], x); - cbi(device->led_blink_ctrl[control_reg], x); - }else{ - sbi(device->led_ctrl[control_reg], x); - sbi(device->led_blink_ctrl[control_reg], x); - } - uint8_t pwm_reg = 0; - switch(matrix & 0x01){ - case 0: - pwm_reg = 0x00; - break; - case 1: - pwm_reg = 0x08; - break; - } - pwm_reg += (y << 4) + x; - device->led_pwm[pwm_reg] = pwm; - device->led_dirty = 1; -} - -void update_issi(uint8_t device_addr, uint8_t blocking) -{ - // This seems to take about 6ms - ISSIDeviceStruct *device = issi_devices[device_addr]; - if(device != 0){ - if(device->fn_dirty){ - device->fn_dirty = 0; - setFrame(device_addr, ISSI_BANK_FUNCTIONREG); - TWITransmitData(&device->fn_device_addr, sizeof(device->fn_registers) + 2, 0, 1); - } - if(device->led_dirty){ - device->led_dirty = 0; - setFrame(device_addr, 0); - TWITransmitData(&device->led_device_addr, 0xB6, 0, blocking); - } - } -} - -void issi_init(void) -{ - TWIInit(); - for(uint8_t device_addr = 0; device_addr < 4; device_addr++){ - // If this device has been previously allocated, free it - if(issi_devices[device_addr] != 0){ - free(issi_devices[device_addr]); - } - // Try to shutdown the device, if this fails skip this device - writeRegister8(device_addr, ISSI_BANK_FUNCTIONREG, ISSI_REG_SHUTDOWN, 0x00); - while (!isTWIReady()){_delay_us(1);} - if(TWIInfo.errorCode != 0xFF){ - xprintf("ISSI init failed %d %02X %02X\n", device_addr, TWIInfo.mode, TWIInfo.errorCode); - continue; - } - // Allocate the device structure - calloc zeros it for us - ISSIDeviceStruct *device = (ISSIDeviceStruct *)calloc(sizeof(ISSIDeviceStruct) * 2, 1); - issi_devices[device_addr] = device; - device->fn_device_addr = ISSI_ADDR_DEFAULT | device_addr << 1; - device->fn_register_addr = 0; - device->led_device_addr = ISSI_ADDR_DEFAULT | device_addr << 1; - device->led_register_addr = 0; - // set dirty bits so that all of the buffered data is written out - device->fn_dirty = 1; - device->led_dirty = 1; - update_issi(device_addr, 1); - // Set the function register to picture mode - // device->fn_reg[ISSI_REG_CONFIG] = ISSI_REG_CONFIG_PICTUREMODE; - writeRegister8(device_addr, ISSI_BANK_FUNCTIONREG, ISSI_REG_SHUTDOWN, 0x01); - } - - // Shutdown and set all registers to 0 - // writeRegister8(device_addr, ISSI_BANK_FUNCTIONREG, ISSI_REG_SHUTDOWN, 0x00); - // for(uint8_t bank = 0; bank <= 7; bank++){ - // for (uint8_t reg = 0x00; reg <= 0xB3; reg++) { - // writeRegister8(device_addr, bank, reg, 0x00); - // } - // } - // for (uint8_t reg = 0; reg <= 0x0C; reg++) { - // writeRegister8(device_addr, ISSI_BANK_FUNCTIONREG, reg, 0x00); - // } - // writeRegister8(device_addr, ISSI_BANK_FUNCTIONREG, ISSI_REG_CONFIG, ISSI_REG_CONFIG_PICTUREMODE); - // writeRegister8(device_addr, ISSI_BANK_FUNCTIONREG, ISSI_REG_SHUTDOWN, 0x01); - // picture mode - // writeRegister8(ISSI_BANK_FUNCTIONREG, 0x01, 0x01); - - //Enable blink - // writeRegister8(ISSI_BANK_FUNCTIONREG, 0x05, 0x48B); - - //Enable Breath - -} - -#endif \ No newline at end of file diff --git a/keyboards/lfkeyboards/issi.h b/keyboards/lfkeyboards/issi.h deleted file mode 100644 index 74379ddbc8..0000000000 --- a/keyboards/lfkeyboards/issi.h +++ /dev/null @@ -1,39 +0,0 @@ -#pragma once - -#ifdef ISSI_ENABLE - -typedef struct ISSIDeviceStruct{ - uint8_t fn_dirty; // function registers need to be resent - uint8_t fn_device_addr; - uint8_t fn_register_addr; - uint8_t fn_registers[13]; - uint8_t led_dirty; // LED data has changed and needs to be resent - uint8_t led_device_addr; - uint8_t led_register_addr; - uint8_t led_ctrl[18]; - uint8_t led_blink_ctrl[18]; - uint8_t led_pwm[144]; -}ISSIDeviceStruct; - -extern ISSIDeviceStruct *issi_devices[]; - -// Low level commands- 'device' is the 2-bit i2c id. -void issi_init(void); -void set_shutdown(uint8_t device, uint8_t shutdown); -void writeRegister8(uint8_t device, uint8_t frame, uint8_t reg, uint8_t data); - -// Higher level, no device is given, but it is calculated from 'matrix' -// Each device has 2 blocks, max of 4 devices: -// Device | Block = Matrix -// 0 A 0 -// 0 B 1 -// 1 A 2 -// 1 B 3 -// 2 A 4 -// 2 B 5 -// 3 A 6 -// 3 B 7 -void activateLED(uint8_t matrix, uint8_t cx, uint8_t cy, uint8_t pwm); -void update_issi(uint8_t device_addr, uint8_t blocking); - -#endif diff --git a/keyboards/lfkeyboards/lfk65_hs/config.h b/keyboards/lfkeyboards/lfk65_hs/config.h index 221eee1bd4..7bc78f68d6 100644 --- a/keyboards/lfkeyboards/lfk65_hs/config.h +++ b/keyboards/lfkeyboards/lfk65_hs/config.h @@ -1,7 +1,5 @@ #pragma once -#define BACKLIGHT_PWM_MAP {8, 16, 40, 55, 70, 128, 200, 255} - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/lfkeyboards/lfk65_hs/info.json b/keyboards/lfkeyboards/lfk65_hs/info.json index ca2e2c695b..0034fced4a 100644 --- a/keyboards/lfkeyboards/lfk65_hs/info.json +++ b/keyboards/lfkeyboards/lfk65_hs/info.json @@ -13,28 +13,6 @@ "rows": ["B0", "B3", "B2", "B1", "F5"] }, "diode_direction": "COL2ROW", - "backlight": { - "levels": 8 - }, - "rgblight": { - "hue_steps": 10, - "led_count": 20, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, - "rgb_test": true, - "alternating": true, - "twinkle": true - } - }, - "ws2812": { - "pin": "C7" - }, "processor": "atmega32u4", "bootloader": "atmel-dfu", "layouts": { diff --git a/keyboards/lfkeyboards/lfk65_hs/lfk65_hs.c b/keyboards/lfkeyboards/lfk65_hs/lfk65_hs.c index 47ad655ddc..ee8d8b2e73 100644 --- a/keyboards/lfkeyboards/lfk65_hs/lfk65_hs.c +++ b/keyboards/lfkeyboards/lfk65_hs/lfk65_hs.c @@ -1,13 +1,10 @@ -#include -#include -#include #include "lfk65_hs.h" +#include bool process_record_kb(uint16_t keycode, keyrecord_t* record) { if (keycode == QK_BOOT) { reset_keyboard_kb(); - } else { } return process_record_user(keycode, record); } diff --git a/keyboards/lfkeyboards/lfk65_hs/lfk65_hs.h b/keyboards/lfkeyboards/lfk65_hs/lfk65_hs.h index 2be617b404..90031022d3 100644 --- a/keyboards/lfkeyboards/lfk65_hs/lfk65_hs.h +++ b/keyboards/lfkeyboards/lfk65_hs/lfk65_hs.h @@ -1,8 +1,5 @@ #pragma once #include "quantum.h" -#include "matrix.h" -#include -#include void reset_keyboard_kb(void); diff --git a/keyboards/lfkeyboards/lfk65_hs/rules.mk b/keyboards/lfkeyboards/lfk65_hs/rules.mk index 5589209fdd..e69de29bb2 100644 --- a/keyboards/lfkeyboards/lfk65_hs/rules.mk +++ b/keyboards/lfkeyboards/lfk65_hs/rules.mk @@ -1,2 +0,0 @@ -# Extra source files for IS3731 lighting -SRC = TWIlib.c issi.c lighting.c diff --git a/keyboards/lfkeyboards/lfk78/config.h b/keyboards/lfkeyboards/lfk78/config.h index 89d9c4b243..99c3904213 100644 --- a/keyboards/lfkeyboards/lfk78/config.h +++ b/keyboards/lfkeyboards/lfk78/config.h @@ -17,8 +17,6 @@ along with this program. If not, see . #pragma once -#define BACKLIGHT_PWM_MAP { 8, 16, 40, 55, 70, 128, 200, 255 } - #define AUDIO_PIN C6 #define AUDIO_VOICES diff --git a/keyboards/lfkeyboards/lfk78/keymaps/ca178858/keymap.c b/keyboards/lfkeyboards/lfk78/keymaps/ca178858/keymap.c index f4d1e010ee..80e267e458 100644 --- a/keyboards/lfkeyboards/lfk78/keymaps/ca178858/keymap.c +++ b/keyboards/lfkeyboards/lfk78/keymaps/ca178858/keymap.c @@ -15,23 +15,6 @@ enum { bool spam_space = false; -// {0x00000000, 0xFFFFFFFF, {0x0000, 0x0FFF, 0x0000}}, // base layer - green -// {0x00000008, 0xFFFFFFF8, {0x07FF, 0x07FF, 0x0000}}, // CSGO layer - orange -// {0x00000010, 0xFFFFFFF0, {0x0000, 0x0000, 0x0FFF}}, // function layer - blue -// {0x00000020, 0xFFFFFFE0, {0x0FFF, 0x0000, 0x0FFF}}, // settings layer - magenta -// {0xFFFFFFFF, 0xFFFFFFFF, {0x0FFF, 0x0FFF, 0x0FFF}}, // unknown layer - REQUIRED - white - -// Colors of the layer indicator LED -// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer -const Layer_Info layer_info[] = { - // Layer Mask Red Green Blue - {0x00000000, 0xFFFFFFFF, {0x0000, 0x0FFF, 0x0000}}, // base layer - green - {0x00000002, 0xFFFFFFFE, {0x07FF, 0x07FF, 0x0000}}, // CSGO layer - orange - {0x00000004, 0xFFFFFFFC, {0x0000, 0x0000, 0x0FFF}}, // function layer - blue - {0x00000008, 0xFFFFFFE8, {0x0FFF, 0x0000, 0x0FFF}}, // settings layer - magenta - {0xFFFFFFFF, 0xFFFFFFFF, {0x0FFF, 0x0FFF, 0x0FFF}}, // unknown layer - REQUIRED - white -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap BASE: (Base Layer) Default Layer * ,---------. ,------------------------------------------------------------. ,---------. @@ -55,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [CS_GO] = LAYOUT_split_rshift( - _______, _______, QK_GESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, F(0), _______, + _______, _______, QK_GESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LCTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/lfkeyboards/lfk78/keymaps/ca178858/rules.mk b/keyboards/lfkeyboards/lfk78/keymaps/ca178858/rules.mk index 481ff1407b..732bfcfa8f 100644 --- a/keyboards/lfkeyboards/lfk78/keymaps/ca178858/rules.mk +++ b/keyboards/lfkeyboards/lfk78/keymaps/ca178858/rules.mk @@ -1,34 +1,3 @@ -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Disable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable RGB underlight -SLEEP_LED_ENABLE = yes +AUDIO_ENABLE = no TAP_DANCE_ENABLE = yes - -ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled WATCHDOG_ENABLE = yes # Resets keyboard if matrix_scan isn't run every 250ms - - -# # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired -# # -# # RevB - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight -# # RevC/D - at90usb1286, no audio, ISSI device 0 is backlight, 4 is RGB -# # -# # Set to B, C or D -# LFK_REV = D - -# ifeq ($(LFK_REV), B) -# MCU = atmega32u4 -# else -# MCU = at90usb1286 -# endif -# OPT_DEFS += -DLFK_REV_$(LFK_REV) -# OPT_DEFS += -DUSB_PRODUCT=\"LFK_Rev$(LFK_REV)\" diff --git a/keyboards/lfkeyboards/lfk78/keymaps/default/keymap.c b/keyboards/lfkeyboards/lfk78/keymaps/default/keymap.c index 4b0a7e2196..d81ed91814 100644 --- a/keyboards/lfkeyboards/lfk78/keymaps/default/keymap.c +++ b/keyboards/lfkeyboards/lfk78/keymaps/default/keymap.c @@ -6,16 +6,6 @@ enum keymap_layout { SETTINGS }; -// Colors of the layer indicator LED -// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer -const Layer_Info layer_info[] = { - // Layer Mask Red Green Blue - { 0x00000000, 0xFFFFFFFF, { 0x0000, 0x0FFF, 0x0000 } }, // base layer - green - { 0x00000002, 0xFFFFFFFE, { 0x0000, 0x0000, 0x0FFF } }, // function layer - blue - { 0x00000004, 0xFFFFFFFC, { 0x0FFF, 0x0000, 0x0FFF } }, // settings layer - magenta - { 0xFFFFFFFF, 0xFFFFFFFF, { 0x0FFF, 0x0FFF, 0x0FFF } } // unknown layer - REQUIRED - white -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap VANILLA: (Base Layer) Default Layer * ,---------. ,------------------------------------------------------------. ,---------. diff --git a/keyboards/lfkeyboards/lfk78/keymaps/iso/keymap.c b/keyboards/lfkeyboards/lfk78/keymaps/iso/keymap.c index 7db914604d..1f3ef6fc8e 100644 --- a/keyboards/lfkeyboards/lfk78/keymaps/iso/keymap.c +++ b/keyboards/lfkeyboards/lfk78/keymaps/iso/keymap.c @@ -6,16 +6,6 @@ enum keymap_layout { SETTINGS }; -// Colors of the layer indicator LED -// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer -const Layer_Info layer_info[] = { - // Layer Mask Red Green Blue - { 0x00000000, 0xFFFFFFFF, { 0x0000, 0x0FFF, 0x0000 } }, // base layer - green - { 0x00000002, 0xFFFFFFFE, { 0x0000, 0x0000, 0x0FFF } }, // function layer - blue - { 0x00000004, 0xFFFFFFFC, { 0x0FFF, 0x0000, 0x0FFF } }, // settings layer - magenta - { 0xFFFFFFFF, 0xFFFFFFFF, { 0x0FFF, 0x0FFF, 0x0FFF } } // unknown layer - REQUIRED - white -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap VANILLA: (Base Layer) Default Layer * ,---------. ,------------------------------------------------------------. ,---------. diff --git a/keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/keymap.c b/keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/keymap.c index 00e292d61f..041c3cdfd0 100644 --- a/keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/keymap.c +++ b/keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/keymap.c @@ -6,16 +6,6 @@ enum keymap_layout { SETTINGS }; -// Colors of the layer indicator LED -// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer -const Layer_Info layer_info[] = { - // Layer Mask Red Green Blue - { 0x00000000, 0xFFFFFFFF, { 0x0000, 0x0FFF, 0x0000 } }, // base layer - green - { 0x00000002, 0xFFFFFFFE, { 0x0000, 0x0000, 0x0FFF } }, // function layer - blue - { 0x00000004, 0xFFFFFFFC, { 0x0FFF, 0x0000, 0x0FFF } }, // settings layer - magenta - { 0xFFFFFFFF, 0xFFFFFFFF, { 0x0FFF, 0x0FFF, 0x0FFF } } // unknown layer - REQUIRED - white -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap VANILLA: (Base Layer) Default Layer * ,---------. ,------------------------------------------------------------. ,---------. diff --git a/keyboards/lfkeyboards/lfk78/lfk78.c b/keyboards/lfkeyboards/lfk78/lfk78.c index 3a10f51cb6..50f1505050 100644 --- a/keyboards/lfkeyboards/lfk78/lfk78.c +++ b/keyboards/lfkeyboards/lfk78/lfk78.c @@ -1,55 +1,19 @@ #include "lfk78.h" - -#include #include -#include "issi.h" -#include "TWIlib.h" -#include "lighting.h" - -#ifdef AUDIO_ENABLE -# include "audio.h" -#endif uint16_t click_hz = CLICK_HZ; uint16_t click_time = CLICK_MS; uint8_t click_toggle = CLICK_ENABLED; -__attribute__((weak)) -const Layer_Info layer_info[] = { - // Layer Mask Red Green Blue - { 0x00000000, 0xFFFFFFFF, { 0x0000, 0x0FFF, 0x0000 } }, // base layer - green - { 0x00000002, 0xFFFFFFFE, { 0x0000, 0x0000, 0x0FFF } }, // function layer - blue - { 0x00000004, 0xFFFFFFFC, { 0x0FFF, 0x0000, 0x0FFF } }, // settings layer - magenta - { 0xFFFFFFFF, 0xFFFFFFFF, { 0x0FFF, 0x0FFF, 0x0FFF } } // unknown layer - REQUIRED - white -}; - void matrix_init_kb(void) { matrix_init_user(); - // Configure the Layer LED - // Set up 16 bit PWM: Fast PWM, mode 14, inverted - TCCR1A = _BV(COM1A1) | _BV(COM1A0) | _BV(COM1B1) | _BV(COM1B0) | _BV(COM1C1) | _BV(COM1C0) | _BV(WGM11); - TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); - ICR1 = 0xFFFF; - // PWM values - 0xFFFF = off, 0x0000 = max - OCR1A = 0x0FFF; // B5 - Red - OCR1B = 0x0000; // B6 - Green - OCR1C = 0x0000; // B7 - Blue - // Set as output - setPinOutput(B5); - setPinOutput(B6); - setPinOutput(B7); - #ifndef AUDIO_ENABLE // If we're not using the audio pin, drive it low setPinOutput(C6); writePinLow(C6); #endif -#ifdef ISSI_ENABLE - issi_init(); -#endif - #ifdef WATCHDOG_ENABLE // This is done after turning the layer LED red, if we're caught in a loop // we should get a flashing red light @@ -62,54 +26,6 @@ void matrix_scan_kb(void) { wdt_reset(); #endif -#ifdef ISSI_ENABLE - // switch/underglow lighting update - static uint32_t issi_device = 0; - static uint32_t twi_last_ready = 0; - - if (twi_last_ready > 1000) { - // It's been way too long since the last ISSI update, reset the I2C bus and start again - dprintf("TWI failed to recover, TWI re-init\n"); - twi_last_ready = 0; - TWIInit(); - force_issi_refresh(); - } - - if (isTWIReady()) { - twi_last_ready = 0; - // If the i2c bus is available, kick off the issi update, alternate between devices - update_issi(issi_device, issi_device); - - if (issi_device) { - issi_device = 0; - } else { - issi_device = 3; - } - } else { - twi_last_ready++; - } -#endif - - // Update layer indicator LED - // - // Not sure how else to reliably do this... TMK has the 'hook_layer_change' - // but can't find QMK equiv - static uint32_t layer_indicator = -1; - - if (layer_indicator != layer_state) { - for (uint32_t i = 0; ; i++) { - // the layer_info list should end with layer 0xFFFFFFFF - // it will break this out of the loop and define the unknown layer color - if ((layer_info[i].layer == (layer_state & layer_info[i].mask)) || (layer_info[i].layer == 0xFFFFFFFF)) { - OCR1A = layer_info[i].color.red; - OCR1B = layer_info[i].color.green; - OCR1C = layer_info[i].color.blue; - layer_indicator = layer_state; - break; - } - } - } - matrix_scan_user(); } @@ -144,34 +60,5 @@ void reset_keyboard_kb(void) { wdt_reset(); #endif - OCR1A = 0x0000; // B5 - Red - OCR1B = 0x0FFF; // B6 - Green - OCR1C = 0x0FFF; // B7 - Blue - reset_keyboard(); } - -bool led_update_kb(led_t led_state) { - bool res = led_update_user(led_state); - if(res) { -#ifdef ISSI_ENABLE -# ifdef CAPSLOCK_LED - if (led_state.caps_lock) { - activateLED(0, 3, 7, 255); - } else { - activateLED(0, 3, 7, 0); - } -# endif // CAPSLOCK_LED -#endif // ISS_ENABLE - - } - return res; -} - -// LFK lighting info -const uint8_t switch_matrices[] = { 0, 1 }; -const uint8_t rgb_matrices[] = { 6, 7 }; -const uint8_t rgb_sequence[] = { - 12, 11, 10, 9, 16, 32, 31, 30, 28, 25, 24, 22, 21, - 20, 19, 18, 17, 1, 2, 3, 4, 5, 6, 7, 8, 14, 13 -}; diff --git a/keyboards/lfkeyboards/lfk78/lfk78.h b/keyboards/lfkeyboards/lfk78/lfk78.h index 1be53181cd..ee6f8d47e0 100644 --- a/keyboards/lfkeyboards/lfk78/lfk78.h +++ b/keyboards/lfkeyboards/lfk78/lfk78.h @@ -2,21 +2,6 @@ #include "quantum.h" -typedef struct RGB_Color { - uint16_t red; - uint16_t green; - uint16_t blue; -} RGB_Color; - -typedef struct Layer_Info { - uint32_t layer; - uint32_t mask; - RGB_Color color; -} Layer_Info; - -extern const uint32_t layer_count; -extern const Layer_Info layer_info[]; - #define CLICK_HZ 500 #define CLICK_MS 2 #define CLICK_ENABLED 0 diff --git a/keyboards/lfkeyboards/lfk78/post_rules.mk b/keyboards/lfkeyboards/lfk78/post_rules.mk index 817a085f5e..1b087d7e1e 100644 --- a/keyboards/lfkeyboards/lfk78/post_rules.mk +++ b/keyboards/lfkeyboards/lfk78/post_rules.mk @@ -1,14 +1,3 @@ -# Extra source files for IS3731 lighting -SRC += TWIlib.c issi.c lighting.c - -ifeq ($(strip $(ISSI_ENABLE)), yes) - OPT_DEFS += -DISSI_ENABLE -endif - ifeq ($(strip $(WATCHDOG_ENABLE)), yes) OPT_DEFS += -DWATCHDOG_ENABLE endif - -ifeq ($(strip $(CAPSLOCK_LED)), yes) - OPT_DEFS += -DCAPSLOCK_LED -endif diff --git a/keyboards/lfkeyboards/lfk78/revb/info.json b/keyboards/lfkeyboards/lfk78/revb/info.json index 1431ce1cc6..ac98455afa 100644 --- a/keyboards/lfkeyboards/lfk78/revb/info.json +++ b/keyboards/lfkeyboards/lfk78/revb/info.json @@ -13,30 +13,6 @@ "rows": ["B0", "B1", "B2", "B3", "B4", "F0", "F1", "F4", "F5", "F6"] }, "diode_direction": "COL2ROW", - "backlight": { - "driver": "custom", - "levels": 8 - }, - "rgblight": { - "driver": "custom", - "hue_steps": 10, - "led_count": 31, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, - "rgb_test": true, - "alternating": true, - "twinkle": true - } - }, - "ws2812": { - "pin": "C7" - }, "processor": "atmega32u4", "bootloader": "atmel-dfu", "layouts": { diff --git a/keyboards/lfkeyboards/lfk78/revb/revb.c b/keyboards/lfkeyboards/lfk78/revb/revb.c deleted file mode 100644 index d5b6b47b03..0000000000 --- a/keyboards/lfkeyboards/lfk78/revb/revb.c +++ /dev/null @@ -1,19 +0,0 @@ -#include "quantum.h" - -// Maps switch LEDs from Row/Col to ISSI matrix. -// Value breakdown: -// Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | -// / \ ISSI Col | ISSI Row | -// matrix idx -const uint8_t switch_leds[MATRIX_ROWS][MATRIX_COLS] = { - {0x19, 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12}, - {0x29, 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22}, - {0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32}, - {0x49, 0x48, 0x47, 0x45, 0x44, 0x43, 0x42, 0x41}, - {0x59, 0x58, 0x57, 0x56, 0x55, 0x51, 0xD6, 0xE5}, - {0x11, 0x99, 0x98, 0x97, 0x96, 0x95, 0x94, 0x93}, - {0x21, 0xA9, 0xA8, 0xA7, 0xA6, 0xA5, 0xA4, 0xA3}, - {0x31, 0xB9, 0xB8, 0xB7, 0xB6, 0xB5, 0xB3, 0x00}, - {0xC9, 0xC8, 0xC7, 0xC6, 0xC5, 0xC4, 0xC2, 0x00}, - {0xE4, 0xE3, 0xE2, 0xE1, 0x92, 0x91, 0xA2, 0xA1} -}; diff --git a/keyboards/lfkeyboards/lfk78/revc/info.json b/keyboards/lfkeyboards/lfk78/revc/info.json index 980ffafc63..7bfaf8cac6 100644 --- a/keyboards/lfkeyboards/lfk78/revc/info.json +++ b/keyboards/lfkeyboards/lfk78/revc/info.json @@ -13,30 +13,6 @@ "rows": ["D2", "D3", "D4", "D5", "D6"] }, "diode_direction": "COL2ROW", - "backlight": { - "driver": "custom", - "levels": 8 - }, - "rgblight": { - "driver": "custom", - "hue_steps": 10, - "led_count": 27, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, - "rgb_test": true, - "alternating": true, - "twinkle": true - } - }, - "ws2812": { - "pin": "C7" - }, "processor": "at90usb1286", "bootloader": "atmel-dfu", "layouts": { diff --git a/keyboards/lfkeyboards/lfk78/revc/revc.c b/keyboards/lfkeyboards/lfk78/revc/revc.c deleted file mode 100644 index a31aea365b..0000000000 --- a/keyboards/lfkeyboards/lfk78/revc/revc.c +++ /dev/null @@ -1,14 +0,0 @@ -#include "quantum.h" - -// Maps switch LEDs from Row/Col to ISSI matrix. -// Value breakdown: -// Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | -// / \ ISSI Col | ISSI Row | -// matrix idx -const uint8_t switch_leds[MATRIX_ROWS][MATRIX_COLS] = { - {0x19, 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x99, 0x98, 0x97, 0x96, 0x95, 0x94, 0x93, 0x92, 0x91}, - {0x29, 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21, 0xA9, 0xA8, 0xA7, 0xA6, 0xA5, 0xA4, 0xA3, 0xA2, 0xA1}, - {0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0xB9, 0xB8, 0xB7, 0xB6, 0xB5, 0xB3, 0x00, 0x00, 0x00}, - {0x49, 0x48, 0x47, 0x00, 0x45, 0x44, 0x43, 0x42, 0x41, 0xC9, 0xC8, 0xC7, 0xC6, 0xC5, 0xC4, 0x00, 0xC2, 0x00}, - {0x59, 0x58, 0x57, 0x56, 0x55, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0xD6, 0xE5, 0xE4, 0xE3, 0xE2, 0xE1} -}; diff --git a/keyboards/lfkeyboards/lfk78/revj/info.json b/keyboards/lfkeyboards/lfk78/revj/info.json index 5ff7bcbbfd..f99df02ed9 100644 --- a/keyboards/lfkeyboards/lfk78/revj/info.json +++ b/keyboards/lfkeyboards/lfk78/revj/info.json @@ -13,30 +13,6 @@ "rows": ["D2", "D3", "D4", "D5", "D6"] }, "diode_direction": "COL2ROW", - "backlight": { - "driver": "custom", - "levels": 8 - }, - "rgblight": { - "driver": "custom", - "hue_steps": 10, - "led_count": 27, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, - "rgb_test": true, - "alternating": true, - "twinkle": true - } - }, - "ws2812": { - "pin": "C7" - }, "processor": "at90usb646", "bootloader": "atmel-dfu", "layouts": { diff --git a/keyboards/lfkeyboards/lfk78/revj/revj.c b/keyboards/lfkeyboards/lfk78/revj/revj.c deleted file mode 100644 index a31aea365b..0000000000 --- a/keyboards/lfkeyboards/lfk78/revj/revj.c +++ /dev/null @@ -1,14 +0,0 @@ -#include "quantum.h" - -// Maps switch LEDs from Row/Col to ISSI matrix. -// Value breakdown: -// Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | -// / \ ISSI Col | ISSI Row | -// matrix idx -const uint8_t switch_leds[MATRIX_ROWS][MATRIX_COLS] = { - {0x19, 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x99, 0x98, 0x97, 0x96, 0x95, 0x94, 0x93, 0x92, 0x91}, - {0x29, 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21, 0xA9, 0xA8, 0xA7, 0xA6, 0xA5, 0xA4, 0xA3, 0xA2, 0xA1}, - {0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0xB9, 0xB8, 0xB7, 0xB6, 0xB5, 0xB3, 0x00, 0x00, 0x00}, - {0x49, 0x48, 0x47, 0x00, 0x45, 0x44, 0x43, 0x42, 0x41, 0xC9, 0xC8, 0xC7, 0xC6, 0xC5, 0xC4, 0x00, 0xC2, 0x00}, - {0x59, 0x58, 0x57, 0x56, 0x55, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0xD6, 0xE5, 0xE4, 0xE3, 0xE2, 0xE1} -}; diff --git a/keyboards/lfkeyboards/lfk78/rules.mk b/keyboards/lfkeyboards/lfk78/rules.mk index 4e3f7b9256..82ffed96f5 100644 --- a/keyboards/lfkeyboards/lfk78/rules.mk +++ b/keyboards/lfkeyboards/lfk78/rules.mk @@ -7,13 +7,7 @@ EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. -SLEEP_LED_ENABLE = yes - -ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms -CAPSLOCK_LED = no # Toggle back light LED of Caps Lock DEFAULT_FOLDER = lfkeyboards/lfk78/revj diff --git a/keyboards/lfkeyboards/lfk87/config.h b/keyboards/lfkeyboards/lfk87/config.h index 20aba2ad6b..84c2fd11dc 100644 --- a/keyboards/lfkeyboards/lfk87/config.h +++ b/keyboards/lfkeyboards/lfk87/config.h @@ -20,8 +20,6 @@ along with this program. If not, see . #define AUDIO_VOICES #define AUDIO_PIN C6 -#define BACKLIGHT_PWM_MAP {2, 4, 8, 16, 40, 55, 70, 128, 200, 255} - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/lfkeyboards/lfk87/info.json b/keyboards/lfkeyboards/lfk87/info.json index 6a2d5eb796..0b53928421 100644 --- a/keyboards/lfkeyboards/lfk87/info.json +++ b/keyboards/lfkeyboards/lfk87/info.json @@ -8,15 +8,5 @@ "pid": "0x6060", "device_version": "0.0.1" }, - "backlight": { - "driver": "custom", - "levels": 10 - }, - "rgblight": { - "driver": "custom" - }, - "ws2812": { - "pin": "F4" - }, "community_layouts": ["tkl_ansi", "tkl_iso"] } diff --git a/keyboards/lfkeyboards/lfk87/keymaps/ca178858/keymap.c b/keyboards/lfkeyboards/lfk87/keymaps/ca178858/keymap.c index 0dfba1afac..3be46837c1 100644 --- a/keyboards/lfkeyboards/lfk87/keymaps/ca178858/keymap.c +++ b/keyboards/lfkeyboards/lfk87/keymaps/ca178858/keymap.c @@ -13,17 +13,6 @@ enum { TD_ESC_FUNC = 0, }; -// Colors of the layer indicator LED -// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer -const Layer_Info layer_info[] = { - // Layer Mask Red Green Blue - {0x00000000, 0xFFFFFFF8, {0x00, 0xFF, 0x00}}, // base layers (VANILLA, DEFAULT_WKL, DEFAULT_OSX) - green - {0x00000008, 0xFFFFFFF8, {0x07FF, 0x07FF, 0x0000}}, // CSGO layer - orange - {0x00000010, 0xFFFFFFF0, {0x0000, 0x0000, 0x0FFF}}, // function layer - blue - {0x00000020, 0xFFFFFFE0, {0x0FFF, 0x0000, 0x0FFF}}, // settings layer - magenta - {0xFFFFFFFF, 0xFFFFFFFF, {0x0FFF, 0x0FFF, 0x0FFF}}, // unknown layer - REQUIRED - white -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap VANILLA: (Base Layer) Default Layer * ,-----------------------------------------------------------------------------. diff --git a/keyboards/lfkeyboards/lfk87/keymaps/ca178858/rules.mk b/keyboards/lfkeyboards/lfk87/keymaps/ca178858/rules.mk index 8d2c18f6dd..eb12c33f4a 100644 --- a/keyboards/lfkeyboards/lfk87/keymaps/ca178858/rules.mk +++ b/keyboards/lfkeyboards/lfk87/keymaps/ca178858/rules.mk @@ -1,17 +1,2 @@ -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = yes -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = yes # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Disable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = yes # Enable RGB underlight -SLEEP_LED_ENABLE = yes TAP_DANCE_ENABLE = yes - -ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled WATCHDOG_ENABLE = yes # Resets keyboard if matrix_scan isn't run every 250ms diff --git a/keyboards/lfkeyboards/lfk87/keymaps/default/keymap.c b/keyboards/lfkeyboards/lfk87/keymaps/default/keymap.c index 2b1860fab3..b9057e9047 100644 --- a/keyboards/lfkeyboards/lfk87/keymaps/default/keymap.c +++ b/keyboards/lfkeyboards/lfk87/keymaps/default/keymap.c @@ -6,16 +6,6 @@ enum keymap_layout { SETTINGS, // 0x10 }; -// Colors of the layer indicator LED -// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer -const Layer_Info layer_info[] = { - // Layer Mask Red Green Blue - {0x00000000, 0xFFFFFFFF, {0x00, 0xFF, 0x00}}, // base layers - green - {0x00000002, 0xFFFFFFFE, {0x00, 0x00, 0xFF}}, // function layer - blue - {0x00000004, 0xFFFFFFFC, {0xFF, 0x00, 0xFF}}, // settings layer - magenta - {0xFFFFFFFF, 0xFFFFFFFF, {0xFF, 0xFF, 0xFF}}, // unknown layer - REQUIRED - white -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap VANILLA: (Base Layer) Default Layer * ,-----------------------------------------------------------------------------. diff --git a/keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk b/keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk index ec4ce1afba..bcd6b23d23 100644 --- a/keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk +++ b/keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk @@ -1,13 +1 @@ -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -AUDIO_ENABLE = yes # Audio output -RGBLIGHT_ENABLE = yes # Enable RGB underlight -SLEEP_LED_ENABLE = yes - -ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms diff --git a/keyboards/lfkeyboards/lfk87/keymaps/gbchk/keymap.c b/keyboards/lfkeyboards/lfk87/keymaps/gbchk/keymap.c index 48726503ab..0191b3570f 100644 --- a/keyboards/lfkeyboards/lfk87/keymaps/gbchk/keymap.c +++ b/keyboards/lfkeyboards/lfk87/keymaps/gbchk/keymap.c @@ -6,16 +6,6 @@ enum keymap_layout { SETTINGS, // 0x10 }; -// Colors of the layer indicator LED -// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer -const Layer_Info layer_info[] = { - // Layer Mask Red Green Blue - {0x00000000, 0xFFFFFFFF, {0x00, 0x00, 0x00}}, // base layers - off - {0x00000002, 0xFFFFFFFE, {0x00, 0x00, 0xFF}}, // function layer - blue - {0x00000004, 0xFFFFFFFC, {0xFF, 0x00, 0xFF}}, // settings layer - magenta - {0xFFFFFFFF, 0xFFFFFFFF, {0xFF, 0xFF, 0xFF}}, // unknown layer - REQUIRED - white -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap VANILLA: (Base Layer) Default Layer * ,-----------------------------------------------------------------------------. diff --git a/keyboards/lfkeyboards/lfk87/keymaps/gbchk/rules.mk b/keyboards/lfkeyboards/lfk87/keymaps/gbchk/rules.mk index 01b8506d3a..bcd6b23d23 100644 --- a/keyboards/lfkeyboards/lfk87/keymaps/gbchk/rules.mk +++ b/keyboards/lfkeyboards/lfk87/keymaps/gbchk/rules.mk @@ -1,16 +1 @@ -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = yes # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = yes # Enable RGB underlight -SLEEP_LED_ENABLE = yes - -ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms diff --git a/keyboards/lfkeyboards/lfk87/keymaps/iso/keymap.c b/keyboards/lfkeyboards/lfk87/keymaps/iso/keymap.c index 56ca013b0d..510aa6730f 100644 --- a/keyboards/lfkeyboards/lfk87/keymaps/iso/keymap.c +++ b/keyboards/lfkeyboards/lfk87/keymaps/iso/keymap.c @@ -6,16 +6,6 @@ enum keymap_layout { SETTINGS, // 0x04 }; -// Colors of the layer indicator LED -// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer -const Layer_Info layer_info[] = { - // Layer Mask Red Green Blue - {0x00000000, 0xFFFFFFFF, {0x00, 0x00, 0x00}}, // base layer - off - {0x00000002, 0xFFFFFFFE, {0x00, 0x00, 0x7F}}, // function layer - blue - {0x00000004, 0xFFFFFFFC, {0x7F, 0x00, 0x00}}, // settings layer - red - {0xFFFFFFFF, 0xFFFFFFFF, {0x0F, 0x0F, 0x0F}}, // unknown layer - REQUIRED - white -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap VANILLA: (Base Layer) Default Layer * ,-----------------------------------------------------------------------------. diff --git a/keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk b/keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk index 7baa40317a..a5f96a8317 100644 --- a/keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk +++ b/keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk @@ -1,13 +1,2 @@ -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -AUDIO_ENABLE = yes # Audio output -RGBLIGHT_ENABLE = yes # Enable RGB underlight -SLEEP_LED_ENABLE = yes - -ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled +AUDIO_ENABLE = yes WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms diff --git a/keyboards/lfkeyboards/lfk87/lfk87.c b/keyboards/lfkeyboards/lfk87/lfk87.c index 3e95361a33..849f0ebcc5 100644 --- a/keyboards/lfkeyboards/lfk87/lfk87.c +++ b/keyboards/lfkeyboards/lfk87/lfk87.c @@ -1,42 +1,20 @@ - -#include -#include -#include #include "lfk87.h" -#include "issi.h" -#include "TWIlib.h" -#include "lighting.h" -#include "debug.h" -#include "quantum.h" +#include uint16_t click_hz = CLICK_HZ; uint16_t click_time = CLICK_MS; uint8_t click_toggle = CLICK_ENABLED; -__attribute__((weak)) -const Layer_Info layer_info[] = { - // Layer Mask Red Green Blue - {0x00000000, 0xFFFFFFFF, {0x00, 0xFF, 0x00}}, // base layers - green - {0x00000002, 0xFFFFFFFE, {0x00, 0x00, 0xFF}}, // function layer - blue - {0x00000004, 0xFFFFFFFC, {0xFF, 0x00, 0xFF}}, // settings layer - magenta - {0xFFFFFFFF, 0xFFFFFFFF, {0xFF, 0xFF, 0xFF}}, // unknown layer - REQUIRED - white -}; - void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up matrix_init_user(); - set_rgb(31, 0x00, 0x00, 0x00); // Caps lock - set_rgb(32, 0xFF, 0x00, 0x00); // Layer indicator, start red #ifndef AUDIO_ENABLE // If we're not using the audio pin, drive it low setPinOutput(C6); writePinLow(C6); #endif -#ifdef ISSI_ENABLE - issi_init(); -#endif #ifdef WATCHDOG_ENABLE // This is done after turning the layer LED red, if we're caught in a loop // we should get a flashing red light @@ -49,49 +27,10 @@ void matrix_scan_kb(void) #ifdef WATCHDOG_ENABLE wdt_reset(); #endif -#ifdef ISSI_ENABLE - // switch/underglow lighting update - static uint32_t issi_device = 0; - static uint32_t twi_last_ready = 0; - if(twi_last_ready > 1000){ - // Its been way too long since the last ISSI update, reset the I2C bus and start again - twi_last_ready = 0; - TWIInit(); - force_issi_refresh(); - } - if(isTWIReady()){ - twi_last_ready = 0; - // If the i2c bus is available, kick off the issi update, alternate between devices - update_issi(issi_device, issi_device); - if(issi_device){ - issi_device = 0; - }else{ - issi_device = 3; - } - }else{ - twi_last_ready++; - } -#endif - // Update layer indicator LED - // - // Not sure how else to reliably do this... TMK has the 'hook_layer_change' - // but can't find QMK equiv - static uint32_t layer_indicator = -1; - if(layer_indicator != layer_state){ - for(uint32_t i=0;; i++){ - // the layer_info list should end with layer 0xFFFF - // it will break this out of the loop and define the unknown layer color - if((layer_info[i].layer == (layer_state & layer_info[i].mask)) || (layer_info[i].layer == 0xFFFFFFFF)){ - set_rgb(32, layer_info[i].color.red, layer_info[i].color.green, layer_info[i].color.blue); - layer_indicator = layer_state; - break; - } - } - } matrix_scan_user(); } -void click(uint16_t freq, uint16_t duration){ +void clicking_notes(uint16_t freq, uint16_t duration){ #ifdef AUDIO_ENABLE if(freq >= 100 && freq <= 20000 && duration < 100){ play_note(freq, 10); @@ -106,11 +45,10 @@ void click(uint16_t freq, uint16_t duration){ bool process_record_kb(uint16_t keycode, keyrecord_t* record) { if (click_toggle && record->event.pressed){ - click(click_hz, click_time); + clicking_notes(click_hz, click_time); } if (keycode == QK_BOOT) { reset_keyboard_kb(); - } else { } return process_record_user(keycode, record); } @@ -121,35 +59,5 @@ void reset_keyboard_kb(void){ wdt_disable(); wdt_reset(); #endif - set_rgb(31, 0x00, 0xFF, 0xFF); - set_rgb(32, 0x00, 0xFF, 0xFF); - force_issi_refresh(); reset_keyboard(); } - -bool led_update_kb(led_t led_state) { - bool res = led_update_user(led_state); - if(res) { - // Set capslock LED to Blue - if (led_state.caps_lock) { - set_rgb(31, 0x00, 0x00, 0x7F); - } else{ - set_rgb(31, 0x00, 0x00, 0x00); - } - } - return res; -} - -// Lighting info, see lighting.h for details -const uint8_t switch_matrices[] = {0, 1}; -const uint8_t rgb_matrices[] = {6, 7}; - -// RGB Map: -// 27 29 10 9 8 7 6 -// 26 5 -// 25 4 -// 24 3 -// 23 22 21 20 14 15 11 1 2 -const uint8_t rgb_sequence[] = { - 27, 29, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 11, 15, 14, 20, 21, 22, 23, 24, 25, 26 -}; diff --git a/keyboards/lfkeyboards/lfk87/lfk87.h b/keyboards/lfkeyboards/lfk87/lfk87.h index d17c1da26f..ee6f8d47e0 100644 --- a/keyboards/lfkeyboards/lfk87/lfk87.h +++ b/keyboards/lfkeyboards/lfk87/lfk87.h @@ -1,27 +1,10 @@ #pragma once #include "quantum.h" -#include "matrix.h" -#include - -typedef struct RGB_Color { - uint16_t red; - uint16_t green; - uint16_t blue; -} RGB_Color; - -typedef struct Layer_Info { - uint32_t layer; - uint32_t mask; - RGB_Color color; -} Layer_Info; - -extern const uint32_t layer_count; -extern const Layer_Info layer_info[]; #define CLICK_HZ 500 #define CLICK_MS 2 #define CLICK_ENABLED 0 void reset_keyboard_kb(void); -void click(uint16_t freq, uint16_t duration); +void clicking_notes(uint16_t freq, uint16_t duration); diff --git a/keyboards/lfkeyboards/lfk87/post_rules.mk b/keyboards/lfkeyboards/lfk87/post_rules.mk index 044d9754f1..1b087d7e1e 100644 --- a/keyboards/lfkeyboards/lfk87/post_rules.mk +++ b/keyboards/lfkeyboards/lfk87/post_rules.mk @@ -1,7 +1,3 @@ -ifeq ($(strip $(ISSI_ENABLE)), yes) - OPT_DEFS += -DISSI_ENABLE -endif - ifeq ($(strip $(WATCHDOG_ENABLE)), yes) OPT_DEFS += -DWATCHDOG_ENABLE endif diff --git a/keyboards/lfkeyboards/lfk87/reva/info.json b/keyboards/lfkeyboards/lfk87/reva/info.json index ad3ad7f877..95b5ff81b7 100644 --- a/keyboards/lfkeyboards/lfk87/reva/info.json +++ b/keyboards/lfkeyboards/lfk87/reva/info.json @@ -6,22 +6,6 @@ "rows": ["D2", "D3", "D4", "D5", "D6", "D7"] }, "diode_direction": "COL2ROW", - "rgblight": { - "hue_steps": 10, - "led_count": 25, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, - "rgb_test": true, - "alternating": true, - "twinkle": true - } - }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/lfkeyboards/lfk87/reva/reva.c b/keyboards/lfkeyboards/lfk87/reva/reva.c deleted file mode 100644 index 86289c7a01..0000000000 --- a/keyboards/lfkeyboards/lfk87/reva/reva.c +++ /dev/null @@ -1,16 +0,0 @@ -#include "quantum.h" - -// Maps switch LEDs from Row/Col to ISSI matrix. -// Value breakdown: -// Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | -// | | ISSI Col | ISSI Row | -// / | -// Device -const uint8_t switch_leds[MATRIX_ROWS][MATRIX_COLS] = { - {0x19, 0x00, 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x99, 0x98, 0x97, 0x96, 0x95, 0x94, 0x93}, - {0x92, 0x91, 0x29, 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21, 0xA9, 0xA8, 0xA7, 0xA6, 0xA5, 0xA4}, - {0xA3, 0xA2, 0xA1, 0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0xB9, 0xB8, 0xB7, 0xB6, 0xB5}, - {0xB3, 0x49, 0x48, 0x47, 0x45, 0x44, 0x43, 0x42, 0x41, 0xC9, 0xC8, 0xC7, 0xC6, 0x00, 0x00, 0x00, 0x00}, - {0xC5, 0x00, 0xC4, 0xC2, 0x59, 0x58, 0x57, 0x56, 0x55, 0x51, 0xD6, 0xE5, 0xE4, 0x00, 0x00, 0xE3, 0x00}, - {0xE2, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} -}; diff --git a/keyboards/lfkeyboards/lfk87/revc/info.json b/keyboards/lfkeyboards/lfk87/revc/info.json index cf627facdf..cf8c74397f 100644 --- a/keyboards/lfkeyboards/lfk87/revc/info.json +++ b/keyboards/lfkeyboards/lfk87/revc/info.json @@ -6,22 +6,6 @@ "rows": ["F2", "D7", "D6", "D5", "D4", "D3", "F3"] }, "diode_direction": "COL2ROW", - "rgblight": { - "hue_steps": 10, - "led_count": 24, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, - "rgb_test": true, - "alternating": true, - "twinkle": true - } - }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/lfkeyboards/lfk87/revc/revc.c b/keyboards/lfkeyboards/lfk87/revc/revc.c deleted file mode 100644 index f14a1f38e5..0000000000 --- a/keyboards/lfkeyboards/lfk87/revc/revc.c +++ /dev/null @@ -1,17 +0,0 @@ -#include "quantum.h" - -// Maps switch LEDs from Row/Col to ISSI matrix. -// Value breakdown: -// Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | -// | | ISSI Col | ISSI Row | -// / | -// Device -const uint8_t switch_leds[MATRIX_ROWS][MATRIX_COLS] = { - {0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x99, 0x98, 0x97, 0x96, 0x00, 0x95, 0x94, 0x93}, - {0x29, 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21, 0xA9, 0xA8, 0xA7, 0x00, 0xA6, 0xA5, 0xA4}, - {0xA2, 0xA1, 0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0xB9, 0xB8, 0xB7, 0xB6, 0xB5}, - {0x49, 0x48, 0x47, 0x45, 0x44, 0x43, 0x42, 0x41, 0xC9, 0xC8, 0xC7, 0xC6, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0xC4, 0xC2, 0x59, 0x58, 0x57, 0x56, 0x55, 0x51, 0xD6, 0xE5, 0xE4, 0x00, 0x00, 0xE3, 0x00}, - {0xB3, 0xC5, 0xE2, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - {0x19, 0x92, 0x91, 0xA3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} -}; diff --git a/keyboards/lfkeyboards/lfk87/rules.mk b/keyboards/lfkeyboards/lfk87/rules.mk index 154e03fe77..3a1399d693 100644 --- a/keyboards/lfkeyboards/lfk87/rules.mk +++ b/keyboards/lfkeyboards/lfk87/rules.mk @@ -8,15 +8,7 @@ EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality AUDIO_ENABLE = yes # Audio output -RGBLIGHT_ENABLE = yes # Enable RGB underlight -SLEEP_LED_ENABLE = yes - -ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms -# Extra source files for IS3731 lighting -SRC += TWIlib.c issi.c lighting.c - DEFAULT_FOLDER = lfkeyboards/lfk78/revc diff --git a/keyboards/lfkeyboards/lfkpad/info.json b/keyboards/lfkeyboards/lfkpad/info.json index a3910b0df5..0a41696cdc 100644 --- a/keyboards/lfkeyboards/lfkpad/info.json +++ b/keyboards/lfkeyboards/lfkpad/info.json @@ -8,26 +8,6 @@ "pid": "0x3231", "device_version": "0.0.1" }, - "rgblight": { - "driver": "custom", - "hue_steps": 10, - "led_count": 28, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, - "rgb_test": true, - "alternating": true, - "twinkle": true - } - }, - "ws2812": { - "pin": "C7" - }, "matrix_pins": { "cols": ["F1", "F0", "D4", "D6"], "rows": ["D5", "F4", "F6", "F7", "C7", "C6"] diff --git a/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/keymap.c b/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/keymap.c index 94f66e78b2..466adfea47 100644 --- a/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/keymap.c +++ b/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/keymap.c @@ -56,18 +56,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______ ), }; - -const uint8_t number_leds[] = {8, 9, 10, 11, 12, 13, 15, 16, 17}; -const uint8_t number_leds_size = ARRAY_SIZE(number_leds); - -bool led_update_user(led_t led_state) { - for (uint8_t i = 0; i < number_leds_size; i++) - if (led_state.num_lock) - // set to whatever the other leds are doing - // this is needed so that upon disabling num lock, the leds don't stay red - rgblight_sethsv_at(rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val(), numer_leds[i]); - else - rgblight_setrgb_at(RGB_RED, numer_leds[i]); // set to red - - return true; -} diff --git a/keyboards/lfkeyboards/lfkpad/lfkpad.c b/keyboards/lfkeyboards/lfkpad/lfkpad.c index 7d8dd865fb..8769c2c531 100644 --- a/keyboards/lfkeyboards/lfkpad/lfkpad.c +++ b/keyboards/lfkeyboards/lfkpad/lfkpad.c @@ -1,18 +1,9 @@ #include "quantum.h" - -#include #include -#include "issi.h" -#include "TWIlib.h" -#include "lighting.h" void matrix_init_kb(void) { matrix_init_user(); -#ifdef ISSI_ENABLE - issi_init(); -#endif - #ifdef WATCHDOG_ENABLE // This is done after turning the layer LED red, if we're caught in a loop // we should get a flashing red light @@ -25,48 +16,5 @@ void matrix_scan_kb(void) { wdt_reset(); #endif -#ifdef ISSI_ENABLE - // switch/underglow lighting update - static uint32_t issi_device = 0; - static uint32_t twi_last_ready = 0; - - if (twi_last_ready > 1000) { - // It's been way too long since the last ISSI update, reset the I2C bus and start again - dprintf("TWI failed to recover, TWI re-init\n"); - twi_last_ready = 0; - TWIInit(); - force_issi_refresh(); - } - - if (isTWIReady()) { - twi_last_ready = 0; - // If the i2c bus is available, kick off the issi update, alternate between devices - update_issi(issi_device, issi_device); - - if (issi_device) { - issi_device = 0; - } else { - issi_device = 3; - } - } else { - twi_last_ready++; - } -#endif - matrix_scan_user(); } - -// LFK lighting info -const uint8_t rgb_matrices[] = { 0, 1 }; -const uint8_t rgb_sequence[] = { - 32, 1, 2, 3, - 31, 30, 5, 6, - 28, 27, 7, - 17, 18, 9, 8, - 19, 21, 11, - 22, 14, 12, - 16, 26, - 4, 25, - 13, 24, - 20 -}; diff --git a/keyboards/lfkeyboards/lfkpad/post_rules.mk b/keyboards/lfkeyboards/lfkpad/post_rules.mk index 044d9754f1..1b087d7e1e 100644 --- a/keyboards/lfkeyboards/lfkpad/post_rules.mk +++ b/keyboards/lfkeyboards/lfkpad/post_rules.mk @@ -1,7 +1,3 @@ -ifeq ($(strip $(ISSI_ENABLE)), yes) - OPT_DEFS += -DISSI_ENABLE -endif - ifeq ($(strip $(WATCHDOG_ENABLE)), yes) OPT_DEFS += -DWATCHDOG_ENABLE endif diff --git a/keyboards/lfkeyboards/lfkpad/rules.mk b/keyboards/lfkeyboards/lfkpad/rules.mk index ec8efa88bf..996d454d74 100644 --- a/keyboards/lfkeyboards/lfkpad/rules.mk +++ b/keyboards/lfkeyboards/lfkpad/rules.mk @@ -7,12 +7,5 @@ EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -SLEEP_LED_ENABLE = yes - -ISSI_ENABLE = yes # If the I2C pullup resistors aren't installed this must be disabled WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan() isn't run every 250ms - -SRC = TWIlib.c issi.c lighting.c diff --git a/keyboards/lfkeyboards/lighting.c b/keyboards/lfkeyboards/lighting.c deleted file mode 100644 index 5f3ab46e46..0000000000 --- a/keyboards/lfkeyboards/lighting.c +++ /dev/null @@ -1,158 +0,0 @@ -#ifdef ISSI_ENABLE - - -#include -#include -#include -#include "quantum.h" -// #include "lfk87.h" -#include "issi.h" -#include "TWIlib.h" -#include "lighting.h" -#include "debug.h" -#include "rgblight.h" - - -extern rgblight_config_t rgblight_config; // Declared in rgblight.c - -#ifdef BACKLIGHT_ENABLE - const uint8_t backlight_pwm_map[BACKLIGHT_LEVELS] = BACKLIGHT_PWM_MAP; -#endif - -// RGB# to ISSI matrix, this is the same across all revisions -const uint8_t rgb_leds[][3][2] = { - {{0, 0}, {0, 0}, {0, 0}}, - {{1, 1}, {2, 3}, {2, 4}}, // RGB1/RGB17 - {{2, 1}, {2, 2}, {3, 4}}, // RGB2/RGB18 - {{3, 1}, {3, 2}, {3, 3}}, // RGB3/RGB19 - {{4, 1}, {4, 2}, {4, 3}}, // RGB4/RGB20 - {{5, 1}, {5, 2}, {5, 3}}, // RGB5/RGB21 - {{6, 1}, {6, 2}, {6, 3}}, // RGB6/RGB22 - {{7, 1}, {7, 2}, {7, 3}}, // RGB6/RGB23 - {{8, 1}, {8, 2}, {8, 3}}, // RGB8/RGB24 - {{1, 9}, {1, 8}, {1, 7}}, // RGB9/RGB25 - {{2, 9}, {2, 8}, {2, 7}}, // RGB10/RGB26 - {{3, 9}, {3, 8}, {3, 7}}, // RGB11/RGB27 - {{4, 9}, {4, 8}, {4, 7}}, // RGB12/RGB28 - {{5, 9}, {5, 8}, {5, 7}}, // RGB13/RGB29 - {{6, 9}, {6, 8}, {6, 7}}, // RGB14/RGB30 - {{7, 9}, {7, 8}, {6, 6}}, // RGB15/RGB31 - {{8, 9}, {7, 7}, {7, 6}} // RGB16/RGB32 - }; - -void set_rgb(uint8_t rgb_led, uint8_t red, uint8_t green, uint8_t blue){ -#ifdef RGBLIGHT_ENABLE - uint8_t matrix = rgb_matrices[0]; - if(rgb_led >= 17){ - matrix = rgb_matrices[1]; - rgb_led -= 16; - } - if(rgb_leds[rgb_led][0][1] != 0){ - activateLED(matrix, rgb_leds[rgb_led][0][0], rgb_leds[rgb_led][0][1], red); - } - if(rgb_leds[rgb_led][1][1] != 0){ - activateLED(matrix, rgb_leds[rgb_led][1][0], rgb_leds[rgb_led][1][1], green); - } - if(rgb_leds[rgb_led][2][1] != 0){ - activateLED(matrix, rgb_leds[rgb_led][2][0], rgb_leds[rgb_led][2][1], blue); - } -#endif -} - -void backlight_set(uint8_t level){ -#ifdef BACKLIGHT_ENABLE - uint8_t pwm_value = 0; - if(level >= BACKLIGHT_LEVELS){ - level = BACKLIGHT_LEVELS; - } - if(level > 0){ - pwm_value = backlight_pwm_map[level-1]; - } - for(int x = 1; x <= 9; x++){ - for(int y = 1; y <= 9; y++){ - activateLED(switch_matrices[0], x, y, pwm_value); - activateLED(switch_matrices[1], x, y, pwm_value); - } - } -#endif -} - -void set_underglow(uint8_t red, uint8_t green, uint8_t blue){ -#ifdef RGBLIGHT_ENABLE - for(uint8_t x = 1; x <= 32; x++){ - set_rgb(x, red, green, blue); - } -#endif -} - - -void rgblight_set(void) { -#ifdef RGBLIGHT_ENABLE - for(uint8_t i = 0; (i < sizeof(rgb_sequence)) && (i < RGBLED_NUM); i++){ - if(rgblight_config.enable){ - set_rgb(rgb_sequence[i], led[i].r, led[i].g, led[i].b); - }else{ - set_rgb(rgb_sequence[i], 0, 0, 0); - } - } -#endif -} - -void set_backlight_by_keymap(uint8_t col, uint8_t row){ -#ifdef RGBLIGHT_ENABLE - uint8_t lookup_value = switch_leds[row][col]; - uint8_t matrix = switch_matrices[0]; - if(lookup_value & 0x80){ - matrix = switch_matrices[1]; - } - issi_devices[0]->led_dirty = 1; - uint8_t led_col = (lookup_value & 0x70) >> 4; - uint8_t led_row = lookup_value & 0x0F; - activateLED(matrix, led_col, led_row, 255); -#endif -} - -void force_issi_refresh(void){ -#ifdef ISSI_ENABLE - issi_devices[0]->led_dirty = true; - update_issi(0, true); - issi_devices[3]->led_dirty = true; - update_issi(3, true); -#endif -} - -void led_test(void){ -#ifdef ISSI_ENABLE -#ifdef WATCHDOG_ENABLE - // This test take a long time to run, disable the WTD until its complete - wdt_disable(); -#endif - backlight_set(0); - set_underglow(0, 0, 0); - force_issi_refresh(); - set_underglow(0, 0, 0); - for(uint8_t x = 0; x < sizeof(rgb_sequence); x++){ - set_rgb(rgb_sequence[x], 255, 0, 0); - force_issi_refresh(); - _delay_ms(250); - set_rgb(rgb_sequence[x], 0, 255, 0); - force_issi_refresh(); - _delay_ms(250); - set_rgb(rgb_sequence[x], 0, 0, 255); - force_issi_refresh(); - _delay_ms(250); - set_rgb(rgb_sequence[x], 0, 0, 0); - force_issi_refresh(); - } -#ifdef WATCHDOG_ENABLE - wdt_enable(WDTO_250MS); -#endif -#endif -} - -void backlight_init_ports(void){ - issi_init(); -} - -#endif - diff --git a/keyboards/lfkeyboards/lighting.h b/keyboards/lfkeyboards/lighting.h deleted file mode 100644 index cb07755c53..0000000000 --- a/keyboards/lfkeyboards/lighting.h +++ /dev/null @@ -1,49 +0,0 @@ -#pragma once - -// rgb_sequence[RGBLED_NUM] -// -// Array used for sequential lighting effects. -// -// Example LFK78 RevC+ RGB Map: -// 27 29 10 9 8 7 6 -// 26 5 -// 25 4 -// 24 3 -// 23 22 21 20 14 15 11 1 2 -// -// const uint8_t rgb_sequence[] = { -// 27, 29, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, -// 11, 15, 14, 20, 21, 22, 23, 24, 25, 26 -// }; -extern const uint8_t rgb_sequence[RGBLED_NUM]; - -// switch_matrices[] -// -// The ISSI matrices for switch backlighting -// -// Example LFK78 RevC+ - ISSI Device 0, banks 0 and 1: -// switch_matrices[] = {0, 1}; -extern const uint8_t switch_matrices[]; - -// rgb_matrices[] -// The ISSI matrices for RGB Underglow -// -// Example LFK78 RevC+ - ISSI Device 3, banks 0 and 1: -// rgb_matrices[] = {6, 7}; -extern const uint8_t rgb_matrices[]; - -// switch_leds[MATRIX_ROWS][MATRIX_COLS] -// Maps switch LEDs from Row/Col to ISSI matrix. -// Value breakdown: -// Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | -// | | ISSI Col | ISSI Row | -// | | -// Device -extern const uint8_t switch_leds[MATRIX_ROWS][MATRIX_COLS]; - -void led_test(void); -void force_issi_refresh(void); -void set_backlight(uint8_t level); -void set_underglow(uint8_t red, uint8_t green, uint8_t blue); -void set_rgb(uint8_t rgb_led, uint8_t red, uint8_t green, uint8_t blue); -void set_backlight_by_keymap(uint8_t col, uint8_t row); diff --git a/keyboards/lfkeyboards/mini1800/config.h b/keyboards/lfkeyboards/mini1800/config.h index 20aba2ad6b..84c2fd11dc 100644 --- a/keyboards/lfkeyboards/mini1800/config.h +++ b/keyboards/lfkeyboards/mini1800/config.h @@ -20,8 +20,6 @@ along with this program. If not, see . #define AUDIO_VOICES #define AUDIO_PIN C6 -#define BACKLIGHT_PWM_MAP {2, 4, 8, 16, 40, 55, 70, 128, 200, 255} - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/lfkeyboards/mini1800/info.json b/keyboards/lfkeyboards/mini1800/info.json index 6737c1baca..35bb1c15a8 100644 --- a/keyboards/lfkeyboards/mini1800/info.json +++ b/keyboards/lfkeyboards/mini1800/info.json @@ -13,30 +13,6 @@ "rows": ["D7", "E1", "F2", "F0", "F1"] }, "diode_direction": "COL2ROW", - "backlight": { - "driver": "custom", - "levels": 10 - }, - "rgblight": { - "driver": "custom", - "hue_steps": 10, - "led_count": 26, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, - "rgb_test": true, - "alternating": true, - "twinkle": true - } - }, - "ws2812": { - "pin": "F4" - }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/lfkeyboards/mini1800/keymaps/ca178858/keymap.c b/keyboards/lfkeyboards/mini1800/keymaps/ca178858/keymap.c index 75abdc258c..9e3927f545 100644 --- a/keyboards/lfkeyboards/mini1800/keymaps/ca178858/keymap.c +++ b/keyboards/lfkeyboards/mini1800/keymaps/ca178858/keymap.c @@ -12,16 +12,6 @@ enum { TD_SPC_SPAM }; -// Colors of the layer indicator LED -// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer -const Layer_Info layer_info[] = { - // Layer Mask Red Green Blue - {0x00000000, 0xFFFFFFFF, {0x00, 0xFF, 0x00}}, // base layers - green - {0x00000002, 0xFFFFFFFE, {0x00, 0x00, 0xFF}}, // function layer - blue - {0x00000004, 0xFFFFFFFC, {0xFF, 0x00, 0xFF}}, // settings layer - magenta - {0xFFFFFFFF, 0xFFFFFFFF, {0xFF, 0xFF, 0xFF}}, // unknown layer - REQUIRED - white -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap VANILLA: (Base Layer) Default Layer * ,-----------------------------------------------------------------------------. diff --git a/keyboards/lfkeyboards/mini1800/keymaps/default/keymap.c b/keyboards/lfkeyboards/mini1800/keymaps/default/keymap.c index 7341bdc053..c2abd12843 100644 --- a/keyboards/lfkeyboards/mini1800/keymaps/default/keymap.c +++ b/keyboards/lfkeyboards/mini1800/keymaps/default/keymap.c @@ -6,16 +6,6 @@ enum keymap_layout { SETTINGS, // 0x10 }; -// Colors of the layer indicator LED -// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer -const Layer_Info layer_info[] = { - // Layer Mask Red Green Blue - {0x00000000, 0xFFFFFFFF, {0x00, 0xFF, 0x00}}, // base layers - green - {0x00000002, 0xFFFFFFFE, {0x00, 0x00, 0xFF}}, // function layer - blue - {0x00000004, 0xFFFFFFFC, {0xFF, 0x00, 0xFF}}, // settings layer - magenta - {0xFFFFFFFF, 0xFFFFFFFF, {0xFF, 0xFF, 0xFF}}, // unknown layer - REQUIRED - white -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap VANILLA: (Base Layer) Default Layer * ,-----------------------------------------------------------------------------. diff --git a/keyboards/lfkeyboards/mini1800/mini1800.c b/keyboards/lfkeyboards/mini1800/mini1800.c index e1fa3a988d..2ca87cfdb6 100644 --- a/keyboards/lfkeyboards/mini1800/mini1800.c +++ b/keyboards/lfkeyboards/mini1800/mini1800.c @@ -1,47 +1,22 @@ - -#include -#include -#include #include "mini1800.h" -#include "issi.h" -#include "TWIlib.h" -#include "lighting.h" -#include "debug.h" - -#include "quantum.h" +#include uint16_t click_hz = CLICK_HZ; uint16_t click_time = CLICK_MS; uint8_t click_toggle = CLICK_ENABLED; float my_song[][2] = SONG(ZELDA_PUZZLE); -// Colors of the layer indicator LED -// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer -__attribute__((weak)) -const Layer_Info layer_info[] = { - // Layer Mask Red Green Blue - {0x00000000, 0xFFFFFFFF, {0x00, 0xFF, 0x00}}, // base layers - green - {0x00000002, 0xFFFFFFFE, {0x00, 0x00, 0xFF}}, // function layer - blue - {0x00000004, 0xFFFFFFFC, {0xFF, 0x00, 0xFF}}, // settings layer - magenta - {0xFFFFFFFF, 0xFFFFFFFF, {0xFF, 0xFF, 0xFF}}, // unknown layer - REQUIRED - white -}; - void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up matrix_init_user(); - set_rgb(31, 0x00, 0x00, 0x00); // Caps lock - set_rgb(32, 0xFF, 0x00, 0x00); // Layer indicator, start red #ifndef AUDIO_ENABLE // If we're not using the audio pin, drive it low setPinOutput(C6); writePinLow(C6); #endif _delay_ms(500); -#ifdef ISSI_ENABLE - issi_init(); -#endif #ifdef WATCHDOG_ENABLE // This is done after turning the layer LED red, if we're caught in a loop // we should get a flashing red light @@ -54,45 +29,6 @@ void matrix_scan_kb(void) #ifdef WATCHDOG_ENABLE wdt_reset(); #endif -#ifdef ISSI_ENABLE - // switch/underglow lighting update - static uint32_t issi_device = 0; - static uint32_t twi_last_ready = 0; - if(twi_last_ready > 1000){ - // Its been way too long since the last ISSI update, reset the I2C bus and start again - twi_last_ready = 0; - TWIInit(); - force_issi_refresh(); - } - if(isTWIReady()){ - twi_last_ready = 0; - // If the i2c bus is available, kick off the issi update, alternate between devices - update_issi(issi_device, issi_device); - if(issi_device){ - issi_device = 0; - }else{ - issi_device = 3; - } - }else{ - twi_last_ready++; - } -#endif - // Update layer indicator LED - // - // Not sure how else to reliably do this... TMK has the 'hook_layer_change' - // but can't find QMK equiv - static uint32_t layer_indicator = -1; - if(layer_indicator != layer_state){ - for(uint32_t i=0;; i++){ - // the layer_info list should end with layer 0xFFFF - // it will break this out of the loop and define the unknown layer color - if((layer_info[i].layer == (layer_state & layer_info[i].mask)) || (layer_info[i].layer == 0xFFFFFFFF)){ - set_rgb(32, layer_info[i].color.red, layer_info[i].color.green, layer_info[i].color.blue); - layer_indicator = layer_state; - break; - } - } - } matrix_scan_user(); } @@ -115,7 +51,6 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) } if (keycode == QK_BOOT) { reset_keyboard_kb(); - } else { } return process_record_user(keycode, record); } @@ -126,49 +61,5 @@ void reset_keyboard_kb(void){ wdt_disable(); wdt_reset(); #endif - set_rgb(31, 0x00, 0xFF, 0xFF); - set_rgb(32, 0x00, 0xFF, 0xFF); - force_issi_refresh(); reset_keyboard(); } - -bool led_update_kb(led_t led_state) { - bool res = led_update_user(led_state); - if(res) { - // Set capslock LED to Blue - if (led_state.caps_lock) { - set_rgb(31, 0x00, 0x00, 0x7F); - } else{ - set_rgb(31, 0x00, 0x00, 0x00); - } - } - return res; -} - -// Lighting info, see lighting.h for details -const uint8_t switch_matrices[] = {0, 1}; -const uint8_t rgb_matrices[] = {6, 7}; - -// RGB Map: -// 27 29 10 9 8 7 6 -// 26 5 -// 25 4 -// 24 3 -// 23 22 21 20 14 15 11 1 2 -const uint8_t rgb_sequence[] = { - 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 1, 2, 3, 4, 5, 6, 7, 8, 13, 14, 15, 16 -}; - -// Maps switch LEDs from Row/Col to ISSI matrix. -// Value breakdown: -// Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | -// | | ISSI Col | ISSI Row | -// / | -// Device -const uint8_t switch_leds[MATRIX_ROWS][MATRIX_COLS] = { - {0x19, 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x99, 0x98, 0x97, 0x96, 0x00, 0x95, 0x94, 0x93, 0x92, 0x91}, - {0x29, 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21, 0xA9, 0xA8, 0xA7, 0xA6, 0xA5, 0xB6, 0xA4, 0xA3, 0xA2, 0xA1}, - {0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0xB9, 0xB8, 0xB7, 0x00, 0x00, 0x00, 0xB5, 0xB3, 0x49, 0x48}, - {0x47, 0x00, 0x45, 0x44, 0x43, 0x42, 0x41, 0xC9, 0xC8, 0xC7, 0xC6, 0xC5, 0xC4, 0x00, 0xC2, 0x59, 0x58, 0x57, 0x56}, - {0x55, 0x51, 0xD6, 0x00, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0xE4, 0xE3, 0xE2, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00} -}; diff --git a/keyboards/lfkeyboards/mini1800/mini1800.h b/keyboards/lfkeyboards/mini1800/mini1800.h index c412058096..36797efd8f 100644 --- a/keyboards/lfkeyboards/mini1800/mini1800.h +++ b/keyboards/lfkeyboards/mini1800/mini1800.h @@ -1,22 +1,6 @@ #pragma once -#include "matrix.h" -#include - -typedef struct RGB_Color { - uint16_t red; - uint16_t green; - uint16_t blue; -} RGB_Color; - -typedef struct Layer_Info { - uint32_t layer; - uint32_t mask; - RGB_Color color; -} Layer_Info; - -extern const uint32_t layer_count; -extern const Layer_Info layer_info[]; +#include "quantum.h" #define CLICK_HZ 500 #define CLICK_MS 2 diff --git a/keyboards/lfkeyboards/mini1800/reva/post_rules.mk b/keyboards/lfkeyboards/mini1800/reva/post_rules.mk index 044d9754f1..1b087d7e1e 100644 --- a/keyboards/lfkeyboards/mini1800/reva/post_rules.mk +++ b/keyboards/lfkeyboards/mini1800/reva/post_rules.mk @@ -1,7 +1,3 @@ -ifeq ($(strip $(ISSI_ENABLE)), yes) - OPT_DEFS += -DISSI_ENABLE -endif - ifeq ($(strip $(WATCHDOG_ENABLE)), yes) OPT_DEFS += -DWATCHDOG_ENABLE endif diff --git a/keyboards/lfkeyboards/mini1800/reva/rules.mk b/keyboards/lfkeyboards/mini1800/reva/rules.mk index 473bcb10ae..fa0a6ab5b7 100644 --- a/keyboards/lfkeyboards/mini1800/reva/rules.mk +++ b/keyboards/lfkeyboards/mini1800/reva/rules.mk @@ -7,13 +7,5 @@ EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = yes # Audio output -SLEEP_LED_ENABLE = yes - -ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled WATCHDOG_ENABLE = yes # Resets keyboard if matrix_scan isn't run every 250ms - -# Extra source files for IS3731 lighting -SRC = TWIlib.c issi.c lighting.c diff --git a/keyboards/lfkeyboards/mini1800/revc/post_rules.mk b/keyboards/lfkeyboards/mini1800/revc/post_rules.mk index 044d9754f1..1b087d7e1e 100644 --- a/keyboards/lfkeyboards/mini1800/revc/post_rules.mk +++ b/keyboards/lfkeyboards/mini1800/revc/post_rules.mk @@ -1,7 +1,3 @@ -ifeq ($(strip $(ISSI_ENABLE)), yes) - OPT_DEFS += -DISSI_ENABLE -endif - ifeq ($(strip $(WATCHDOG_ENABLE)), yes) OPT_DEFS += -DWATCHDOG_ENABLE endif diff --git a/keyboards/lfkeyboards/mini1800/revc/rules.mk b/keyboards/lfkeyboards/mini1800/revc/rules.mk index 473bcb10ae..fa0a6ab5b7 100644 --- a/keyboards/lfkeyboards/mini1800/revc/rules.mk +++ b/keyboards/lfkeyboards/mini1800/revc/rules.mk @@ -7,13 +7,5 @@ EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = yes # Audio output -SLEEP_LED_ENABLE = yes - -ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled WATCHDOG_ENABLE = yes # Resets keyboard if matrix_scan isn't run every 250ms - -# Extra source files for IS3731 lighting -SRC = TWIlib.c issi.c lighting.c diff --git a/keyboards/lfkeyboards/smk65/keymaps/default/rules.mk b/keyboards/lfkeyboards/smk65/keymaps/default/rules.mk deleted file mode 100644 index 1f0147bd38..0000000000 --- a/keyboards/lfkeyboards/smk65/keymaps/default/rules.mk +++ /dev/null @@ -1,8 +0,0 @@ -# Build Options -# change yes to no to disable -# -AUDIO_ENABLE = no # Audio output -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow - -ISSI_ENABLE = no # If the I2C pullup resistors aren't install this must be disabled -WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms diff --git a/keyboards/lfkeyboards/smk65/keymaps/iso/rules.mk b/keyboards/lfkeyboards/smk65/keymaps/iso/rules.mk deleted file mode 100644 index 1f0147bd38..0000000000 --- a/keyboards/lfkeyboards/smk65/keymaps/iso/rules.mk +++ /dev/null @@ -1,8 +0,0 @@ -# Build Options -# change yes to no to disable -# -AUDIO_ENABLE = no # Audio output -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow - -ISSI_ENABLE = no # If the I2C pullup resistors aren't install this must be disabled -WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms diff --git a/keyboards/lfkeyboards/smk65/post_rules.mk b/keyboards/lfkeyboards/smk65/post_rules.mk index 044d9754f1..1b087d7e1e 100644 --- a/keyboards/lfkeyboards/smk65/post_rules.mk +++ b/keyboards/lfkeyboards/smk65/post_rules.mk @@ -1,7 +1,3 @@ -ifeq ($(strip $(ISSI_ENABLE)), yes) - OPT_DEFS += -DISSI_ENABLE -endif - ifeq ($(strip $(WATCHDOG_ENABLE)), yes) OPT_DEFS += -DWATCHDOG_ENABLE endif diff --git a/keyboards/lfkeyboards/smk65/revb/config.h b/keyboards/lfkeyboards/smk65/revb/config.h index c758caa92c..38b0529178 100644 --- a/keyboards/lfkeyboards/smk65/revb/config.h +++ b/keyboards/lfkeyboards/smk65/revb/config.h @@ -30,8 +30,6 @@ along with this program. If not, see . #define AUDIO_VOICES #define AUDIO_PIN C6 -#define BACKLIGHT_PWM_MAP {8, 16, 40, 55, 70, 128, 200, 255} - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/lfkeyboards/smk65/revb/info.json b/keyboards/lfkeyboards/smk65/revb/info.json index 39df87cc23..148465d27d 100644 --- a/keyboards/lfkeyboards/smk65/revb/info.json +++ b/keyboards/lfkeyboards/smk65/revb/info.json @@ -2,29 +2,6 @@ "usb": { "pid": "0x565B" }, - "backlight": { - "levels": 8 - }, - "rgblight": { - "driver": "custom", - "hue_steps": 10, - "led_count": 20, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, - "rgb_test": true, - "alternating": true, - "twinkle": true - } - }, - "ws2812": { - "pin": "C7" - }, "processor": "at90usb646", "bootloader": "atmel-dfu", "layout_aliases": { diff --git a/keyboards/lfkeyboards/smk65/revb/revb.c b/keyboards/lfkeyboards/smk65/revb/revb.c index 32dbce8fd5..8eb9b9afe2 100644 --- a/keyboards/lfkeyboards/smk65/revb/revb.c +++ b/keyboards/lfkeyboards/smk65/revb/revb.c @@ -12,14 +12,8 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include -#include -#include #include "revb.h" -#include "debug.h" -#include "issi.h" -#include "TWIlib.h" -#include "lighting.h" +#include uint16_t click_hz = CLICK_HZ; uint16_t click_time = CLICK_MS; @@ -40,10 +34,6 @@ void matrix_init_kb(void) setPinOutput(C6); writePinLow(C6); #endif - -#ifdef ISSI_ENABLE - issi_init(); -#endif } void matrix_scan_kb(void) @@ -75,7 +65,6 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) } if (keycode == QK_BOOT) { reset_keyboard_kb(); - } else { } return process_record_user(keycode, record); } @@ -88,27 +77,3 @@ void reset_keyboard_kb(void){ #endif reset_keyboard(); } - -// LFK lighting info -const uint8_t switch_matrices[] = {0, 1}; -const uint8_t rgb_matrices[] = {6, 7}; -// const uint8_t rgb_sequence[] = { -// 14, 24, 23, 22, 21, 20, 19, 18, 26, 25, 28, 29, -// 30, 31, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 -// }; -const uint8_t rgb_sequence[] = { - 25, 28, 29, - 30, 31, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 -}; -// Maps switch LEDs from Row/Col to ISSI matrix. -// Value breakdown: -// Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | -// / \ ISSI Col | ISSI Row | -// matrix idx -// const uint8_t switch_leds[MATRIX_ROWS][MATRIX_COLS] = -// KEYMAP( -// 0x19, 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x99, 0x98, 0x97, 0x96, 0x95, 0x94, 0x93, 0x92, 0x91, -// 0x29, 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21, 0xA9, 0xA8, 0xA7, 0xA6, 0xA5, 0xA4, 0xA3, 0xA2, 0xA1, -// 0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0xB9, 0xB8, 0xB7, 0xB6, 0xB5, 0xB3, -// 0x49, 0x48, 0x47, 0x45, 0x44, 0x43, 0x42, 0x41, 0xC9, 0xC8, 0xC7, 0xC6, 0xC5, 0xC4, 0xC2, -// 0x59, 0x58, 0x57, 0x56, 0x55, 0x51, 0xD6, 0xE5, 0xE4, 0xE3, 0xE2, 0xE1); diff --git a/keyboards/lfkeyboards/smk65/revb/revb.h b/keyboards/lfkeyboards/smk65/revb/revb.h index 6b63eb7944..61973b0b9d 100644 --- a/keyboards/lfkeyboards/smk65/revb/revb.h +++ b/keyboards/lfkeyboards/smk65/revb/revb.h @@ -15,23 +15,6 @@ along with this program. If not, see . #pragma once #include "quantum.h" -#include "matrix.h" -#include - -typedef struct RGB_Color { - uint16_t red; - uint16_t green; - uint16_t blue; -} RGB_Color; - -typedef struct Layer_Info { - uint32_t layer; - uint32_t mask; - RGB_Color color; -} Layer_Info; - -extern const uint32_t layer_count; -extern const Layer_Info layer_info[]; #define CLICK_HZ 500 #define CLICK_MS 2 diff --git a/keyboards/lfkeyboards/smk65/revb/rules.mk b/keyboards/lfkeyboards/smk65/revb/rules.mk index 1bd6ebc6a6..e69de29bb2 100644 --- a/keyboards/lfkeyboards/smk65/revb/rules.mk +++ b/keyboards/lfkeyboards/smk65/revb/rules.mk @@ -1,9 +0,0 @@ -# Build Options -# change yes to no to disable -# -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - -# Extra source files for IS3731 lighting -SRC += TWIlib.c issi.c lighting.c diff --git a/keyboards/lfkeyboards/smk65/revf/info.json b/keyboards/lfkeyboards/smk65/revf/info.json index 50c039b76c..63e9d0abc7 100644 --- a/keyboards/lfkeyboards/smk65/revf/info.json +++ b/keyboards/lfkeyboards/smk65/revf/info.json @@ -4,10 +4,6 @@ }, "processor": "atmega32u4", "bootloader": "halfkay", - "rgblight": { - "driver": "custom", - "led_count": 28 - }, "layouts": { "LAYOUT_65_ansi": { "layout": [ diff --git a/keyboards/lfkeyboards/smk65/revf/rules.mk b/keyboards/lfkeyboards/smk65/revf/rules.mk index e372473a50..e69de29bb2 100644 --- a/keyboards/lfkeyboards/smk65/revf/rules.mk +++ b/keyboards/lfkeyboards/smk65/revf/rules.mk @@ -1,4 +0,0 @@ -# Build Options -# change yes to no to disable -# -RGBLIGHT_ENABLE = no # TODO: Enable keyboard RGB underglow diff --git a/keyboards/woodkeys/meira/TWIlib.c b/keyboards/woodkeys/meira/TWIlib.c deleted file mode 100755 index 89e03a73d4..0000000000 --- a/keyboards/woodkeys/meira/TWIlib.c +++ /dev/null @@ -1,300 +0,0 @@ -/* - * TWIlib.c - * - * Created: 6/01/2014 10:41:33 PM - * Author: Chris Herring - */ - -#include -#include -#include "TWIlib.h" -#include -#include "print.h" - -// Global transmit buffer -volatile uint8_t *TWITransmitBuffer; -// Global receive buffer -volatile uint8_t TWIReceiveBuffer[RXMAXBUFLEN]; -// Buffer indexes -volatile int TXBuffIndex; // Index of the transmit buffer. Is volatile, can change at any time. -int RXBuffIndex; // Current index in the receive buffer -// Buffer lengths -int TXBuffLen; // The total length of the transmit buffer -int RXBuffLen; // The total number of bytes to read (should be less than RXMAXBUFFLEN) - -TWIInfoStruct TWIInfo; - -void TWIInit(void) -{ - TWIInfo.mode = Ready; - TWIInfo.errorCode = 0xFF; - TWIInfo.repStart = 0; - // Set pre-scalers (no pre-scaling) - TWSR = 0; - // Set bit rate - TWBR = ((F_CPU / TWI_FREQ) - 16) / 2; - // Enable TWI and interrupt - TWCR = (1 << TWIE) | (1 << TWEN); -} - -uint8_t isTWIReady(void) -{ - if ( (TWIInfo.mode == Ready) | (TWIInfo.mode == RepeatedStartSent) ) - { - -// xprintf("i2c ready\n"); - return 1; - } - else - { - if(TWIInfo.mode == Initializing){ - switch(TWIInfo.errorCode){ - case TWI_SUCCESS: - break; - case TWI_NO_RELEVANT_INFO: - - break; - case TWI_LOST_ARBIT: - case TWI_MT_DATA_NACK: - // Some kind of I2C error, reset and re-init - xprintf("I2C init error: %d\n", TWIInfo.errorCode); - TWCR = (1 << TWINT)|(1 << TWSTO); - TWIInit(); - break; - default: - xprintf("Other i2c init error: %d\n", TWIInfo.errorCode); - } - } - return 0; - } -} - - -void TWITransmitData(void *const TXdata, uint8_t dataLen, uint8_t repStart, uint8_t blocking) -{ - // Wait until ready - while (!isTWIReady()) {_delay_us(1);} - // Reset the I2C stuff - TWCR = (1 << TWINT)|(1 << TWSTO); - TWIInit(); - // Set repeated start mode - TWIInfo.repStart = repStart; - // Copy transmit info to global variables - TWITransmitBuffer = (uint8_t *)TXdata; - TXBuffLen = dataLen; - TXBuffIndex = 0; - - // If a repeated start has been sent, then devices are already listening for an address - // and another start does not need to be sent. - if (TWIInfo.mode == RepeatedStartSent) - { - TWIInfo.mode = Initializing; - TWDR = TWITransmitBuffer[TXBuffIndex++]; // Load data to transmit buffer - TWISendTransmit(); // Send the data - } - else // Otherwise, just send the normal start signal to begin transmission. - { - TWIInfo.mode = Initializing; - TWISendStart(); - } - if(blocking){ - // Wait until ready - while (!isTWIReady()){_delay_us(1);} - } -} - - -// uint8_t TWITransmitData(void *const TXdata, uint8_t dataLen, uint8_t repStart) -// { -// if (dataLen <= TXMAXBUFLEN) -// { -// // Wait until ready -// while (!isTWIReady()) {_delay_us(1);} -// // Set repeated start mode -// TWIInfo.repStart = repStart; -// // Copy data into the transmit buffer -// uint8_t *data = (uint8_t *)TXdata; -// for (int i = 0; i < dataLen; i++) -// { -// TWITransmitBuffer[i] = data[i]; -// } -// // Copy transmit info to global variables -// TXBuffLen = dataLen; -// TXBuffIndex = 0; - -// // If a repeated start has been sent, then devices are already listening for an address -// // and another start does not need to be sent. -// if (TWIInfo.mode == RepeatedStartSent) -// { -// TWIInfo.mode = Initializing; -// TWDR = TWITransmitBuffer[TXBuffIndex++]; // Load data to transmit buffer -// TWISendTransmit(); // Send the data -// } -// else // Otherwise, just send the normal start signal to begin transmission. -// { -// TWIInfo.mode = Initializing; -// TWISendStart(); -// } - -// } -// else -// { -// return 1; // return an error if data length is longer than buffer -// } -// return 0; -// } - -uint8_t TWIReadData(uint8_t TWIaddr, uint8_t bytesToRead, uint8_t repStart) -{ - // Check if number of bytes to read can fit in the RXbuffer - if (bytesToRead < RXMAXBUFLEN) - { - // Reset buffer index and set RXBuffLen to the number of bytes to read - RXBuffIndex = 0; - RXBuffLen = bytesToRead; - // Create the one value array for the address to be transmitted - uint8_t TXdata[1]; - // Shift the address and AND a 1 into the read write bit (set to write mode) - TXdata[0] = (TWIaddr << 1) | 0x01; - // Use the TWITransmitData function to initialize the transfer and address the slave - TWITransmitData(TXdata, 1, repStart, 0); - } - else - { - return 0; - } - return 1; -} - -ISR (TWI_vect) -{ - switch (TWI_STATUS) - { - // ----\/ ---- MASTER TRANSMITTER OR WRITING ADDRESS ----\/ ---- // - case TWI_MT_SLAW_ACK: // SLA+W transmitted and ACK received - // Set mode to Master Transmitter - TWIInfo.mode = MasterTransmitter; - case TWI_START_SENT: // Start condition has been transmitted - case TWI_MT_DATA_ACK: // Data byte has been transmitted, ACK received - if (TXBuffIndex < TXBuffLen) // If there is more data to send - { - TWDR = TWITransmitBuffer[TXBuffIndex++]; // Load data to transmit buffer - TWIInfo.errorCode = TWI_NO_RELEVANT_INFO; - TWISendTransmit(); // Send the data - } - // This transmission is complete however do not release bus yet - else if (TWIInfo.repStart) - { - TWIInfo.errorCode = 0xFF; - TWISendStart(); - } - // All transmissions are complete, exit - else - { - TWIInfo.mode = Ready; - TWIInfo.errorCode = 0xFF; - TWISendStop(); - } - break; - - // ----\/ ---- MASTER RECEIVER ----\/ ---- // - - case TWI_MR_SLAR_ACK: // SLA+R has been transmitted, ACK has been received - // Switch to Master Receiver mode - TWIInfo.mode = MasterReceiver; - // If there is more than one byte to be read, receive data byte and return an ACK - if (RXBuffIndex < RXBuffLen-1) - { - TWIInfo.errorCode = TWI_NO_RELEVANT_INFO; - TWISendACK(); - } - // Otherwise when a data byte (the only data byte) is received, return NACK - else - { - TWIInfo.errorCode = TWI_NO_RELEVANT_INFO; - TWISendNACK(); - } - break; - - case TWI_MR_DATA_ACK: // Data has been received, ACK has been transmitted. - - /// -- HANDLE DATA BYTE --- /// - TWIReceiveBuffer[RXBuffIndex++] = TWDR; - // If there is more than one byte to be read, receive data byte and return an ACK - if (RXBuffIndex < RXBuffLen-1) - { - TWIInfo.errorCode = TWI_NO_RELEVANT_INFO; - TWISendACK(); - } - // Otherwise when a data byte (the only data byte) is received, return NACK - else - { - TWIInfo.errorCode = TWI_NO_RELEVANT_INFO; - TWISendNACK(); - } - break; - - case TWI_MR_DATA_NACK: // Data byte has been received, NACK has been transmitted. End of transmission. - - /// -- HANDLE DATA BYTE --- /// - TWIReceiveBuffer[RXBuffIndex++] = TWDR; - // This transmission is complete however do not release bus yet - if (TWIInfo.repStart) - { - TWIInfo.errorCode = 0xFF; - TWISendStart(); - } - // All transmissions are complete, exit - else - { - TWIInfo.mode = Ready; - TWIInfo.errorCode = 0xFF; - TWISendStop(); - } - break; - - // ----\/ ---- MT and MR common ----\/ ---- // - - case TWI_MR_SLAR_NACK: // SLA+R transmitted, NACK received - case TWI_MT_SLAW_NACK: // SLA+W transmitted, NACK received - case TWI_MT_DATA_NACK: // Data byte has been transmitted, NACK received - case TWI_LOST_ARBIT: // Arbitration has been lost - // Return error and send stop and set mode to ready - if (TWIInfo.repStart) - { - TWIInfo.errorCode = TWI_STATUS; - TWISendStart(); - } - // All transmissions are complete, exit - else - { - TWIInfo.mode = Ready; - TWIInfo.errorCode = TWI_STATUS; - TWISendStop(); - } - break; - case TWI_REP_START_SENT: // Repeated start has been transmitted - // Set the mode but DO NOT clear TWINT as the next data is not yet ready - TWIInfo.mode = RepeatedStartSent; - break; - - // ----\/ ---- SLAVE RECEIVER ----\/ ---- // - - // TODO IMPLEMENT SLAVE RECEIVER FUNCTIONALITY - - // ----\/ ---- SLAVE TRANSMITTER ----\/ ---- // - - // TODO IMPLEMENT SLAVE TRANSMITTER FUNCTIONALITY - - // ----\/ ---- MISCELLANEOUS STATES ----\/ ---- // - case TWI_NO_RELEVANT_INFO: // It is not really possible to get into this ISR on this condition - // Rather, it is there to be manually set between operations - break; - case TWI_ILLEGAL_START_STOP: // Illegal START/STOP, abort and return error - TWIInfo.errorCode = TWI_ILLEGAL_START_STOP; - TWIInfo.mode = Ready; - TWISendStop(); - break; - } - -} diff --git a/keyboards/woodkeys/meira/TWIlib.h b/keyboards/woodkeys/meira/TWIlib.h deleted file mode 100755 index 8ba261c6e5..0000000000 --- a/keyboards/woodkeys/meira/TWIlib.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * TWIlib.h - * - * Created: 6/01/2014 10:38:42 PM - * Author: Chris Herring - */ - - -#ifndef TWILIB_H_ -#define TWILIB_H_ -// TWI bit rate -#define TWI_FREQ 400000 -// Get TWI status -#define TWI_STATUS (TWSR & 0xF8) -// Transmit buffer length -#define TXMAXBUFLEN 20 -// Receive buffer length -#define RXMAXBUFLEN 20 - -typedef enum { - Ready, - Initializing, - RepeatedStartSent, - MasterTransmitter, - MasterReceiver, - SlaceTransmitter, - SlaveReciever - } TWIMode; - - typedef struct TWIInfoStruct{ - TWIMode mode; - uint8_t errorCode; - uint8_t repStart; - }TWIInfoStruct; - -extern TWIInfoStruct TWIInfo; - -// TWI Status Codes -#define TWI_START_SENT 0x08 // Start sent -#define TWI_REP_START_SENT 0x10 // Repeated Start sent -// Master Transmitter Mode -#define TWI_MT_SLAW_ACK 0x18 // SLA+W sent and ACK received -#define TWI_MT_SLAW_NACK 0x20 // SLA+W sent and NACK received -#define TWI_MT_DATA_ACK 0x28 // DATA sent and ACK received -#define TWI_MT_DATA_NACK 0x30 // DATA sent and NACK received -// Master Receiver Mode -#define TWI_MR_SLAR_ACK 0x40 // SLA+R sent, ACK received -#define TWI_MR_SLAR_NACK 0x48 // SLA+R sent, NACK received -#define TWI_MR_DATA_ACK 0x50 // Data received, ACK returned -#define TWI_MR_DATA_NACK 0x58 // Data received, NACK returned - -// Miscellaneous States -#define TWI_LOST_ARBIT 0x38 // Arbitration has been lost -#define TWI_NO_RELEVANT_INFO 0xF8 // No relevant information available -#define TWI_ILLEGAL_START_STOP 0x00 // Illegal START or STOP condition has been detected -#define TWI_SUCCESS 0xFF // Successful transfer, this state is impossible from TWSR as bit2 is 0 and read only - - -#define TWISendStart() (TWCR = (1<. /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 - -#define BACKLIGHT_PWM_MAP {2, 4, 8, 16, 40, 55, 70, 128, 200, 255} diff --git a/keyboards/woodkeys/meira/featherble/config.h b/keyboards/woodkeys/meira/featherble/config.h index eab64b36b9..fd224b2d50 100644 --- a/keyboards/woodkeys/meira/featherble/config.h +++ b/keyboards/woodkeys/meira/featherble/config.h @@ -32,7 +32,6 @@ along with this program. If not, see . // Column pins to demux in LSB order #define MATRIX_COL_PINS { C7, B7, B6, C6, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN } #define MATRIX_COL_PINS_SCANNED { C7, B7, B6, C6 } -#define LED_EN_PIN D2 #define AUDIO_PIN B5 #define AUDIO_VOICES diff --git a/keyboards/woodkeys/meira/info.json b/keyboards/woodkeys/meira/info.json index 5905c00d2d..5fbcc9deaf 100644 --- a/keyboards/woodkeys/meira/info.json +++ b/keyboards/woodkeys/meira/info.json @@ -8,16 +8,6 @@ "pid": "0x6061", "device_version": "0.0.1" }, - "backlight": { - "driver": "custom", - "levels": 10 - }, - "rgblight": { - "led_count": 15 - }, - "ws2812": { - "pin": "D3" - }, "processor": "atmega32u4", "bootloader": "caterina", "layout_aliases": { diff --git a/keyboards/woodkeys/meira/issi.c b/keyboards/woodkeys/meira/issi.c deleted file mode 100755 index 600a465ba3..0000000000 --- a/keyboards/woodkeys/meira/issi.c +++ /dev/null @@ -1,286 +0,0 @@ -#ifdef ISSI_ENABLE - -#include -#include -#include -#include -#include -#include -#include "issi.h" -#include "print.h" -#include "TWIlib.h" - -#define ISSI_ADDR_DEFAULT 0xE8 - -#define ISSI_REG_CONFIG 0x00 -#define ISSI_REG_CONFIG_PICTUREMODE 0x00 -#define ISSI_REG_CONFIG_AUTOPLAYMODE 0x08 - -#define ISSI_CONF_PICTUREMODE 0x00 -#define ISSI_CONF_AUTOFRAMEMODE 0x04 -#define ISSI_CONF_AUDIOMODE 0x08 - -#define ISSI_REG_PICTUREFRAME 0x01 - -#define ISSI_REG_SHUTDOWN 0x0A -#define ISSI_REG_AUDIOSYNC 0x06 - -#define ISSI_COMMANDREGISTER 0xFD -#define ISSI_BANK_FUNCTIONREG 0x0B // helpfully called 'page nine' -uint8_t control[8][9] = { - {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, -}; -ISSIDeviceStruct *issi_devices[4] = {0, 0, 0, 0}; - -#ifndef cbi -#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) -#endif - -#ifndef sbi -#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) -#endif - -#define I2C_WRITE 0 -#define F_SCL 400000UL // SCL frequency -#define Prescaler 1 -#define TWBR_val ((((F_CPU / F_SCL) / Prescaler) - 16 ) / 2) - -uint8_t i2c_start(uint8_t address) -{ - // reset TWI control register - TWCR = 0; - // transmit START condition - TWCR = (1<> 1; -// uint8_t control_reg = (y << 1) | (matrix & 0x01); -// uint8_t pwm_reg = 0; -// switch(matrix & 0x01){ -// case 0: -// pwm_reg = 0x24; -// break; -// case 1: -// pwm_reg = 0x2C; -// break; -// } -// pwm_reg += (y << 4) + x; -// xprintf(" device: %02X\n", device); -// xprintf(" control: %02X %02X\n", control_reg, control[matrix][y]); -// xprintf(" pwm: %02X %02X\n", pwm_reg, pwm); -// writeRegister8(device, 0, control_reg, control[matrix][y]); -// writeRegister8(device, 0, control_reg + 0x12, control[matrix][y]); -// writeRegister8(device, 0, pwm_reg, pwm); -// } - -void activateLED(uint8_t matrix, uint8_t cx, uint8_t cy, uint8_t pwm) -{ - uint8_t device_addr = (matrix & 0x06) >> 1; - ISSIDeviceStruct *device = issi_devices[device_addr]; - if(device == 0){ - return; - } - // xprintf("activeLED: %02X %02X %02X %02X\n", matrix, cy, cx, pwm); - uint8_t x = cx - 1; // funciton takes 1 based counts, but we need 0... - uint8_t y = cy - 1; // creating them once for less confusion - uint8_t control_reg = (y << 1) | (matrix & 0x01); - if(pwm == 0){ - cbi(device->led_ctrl[control_reg], x); - cbi(device->led_blink_ctrl[control_reg], x); - }else{ - sbi(device->led_ctrl[control_reg], x); - sbi(device->led_blink_ctrl[control_reg], x); - } - uint8_t pwm_reg = 0; - switch(matrix & 0x01){ - case 0: - pwm_reg = 0x00; - break; - case 1: - pwm_reg = 0x08; - break; - } - pwm_reg += (y << 4) + x; - // xprintf(" device_addr: %02X\n", device_addr); - // xprintf(" control: %02X %02X\n", control_reg, control[matrix][y]); - // xprintf(" pwm: %02X %02X\n", pwm_reg, pwm); - // writeRegister8(device_addr, 0, control_reg, control[matrix][y]); - device->led_pwm[pwm_reg] = pwm; - device->led_dirty = 1; - - // writeRegister8(device_addr, 0, control_reg + 0x12, control[matrix][y]); - // writeRegister8(device_addr, 0, pwm_reg, pwm); -} - -void update_issi(uint8_t device_addr, uint8_t blocking) -{ - // This seems to take about 6ms - ISSIDeviceStruct *device = issi_devices[device_addr]; - if(device != 0){ - if(device->fn_dirty){ - device->fn_dirty = 0; - setFrame(device_addr, ISSI_BANK_FUNCTIONREG); - TWITransmitData(&device->fn_device_addr, sizeof(device->fn_registers) + 2, 0, 1); - } - if(device->led_dirty){ - device->led_dirty = 0; - setFrame(device_addr, 0); - TWITransmitData(&device->led_device_addr, 0xB6, 0, blocking); - } - } -} - -void issi_init(void) -{ - // Set LED_EN/SDB high to enable the chip - xprintf("Enabing SDB on pin: %d\n", LED_EN_PIN); - _SFR_IO8((LED_EN_PIN >> 4) + 1) &= ~_BV(LED_EN_PIN & 0xF); // IN - _SFR_IO8((LED_EN_PIN >> 4) + 2) |= _BV(LED_EN_PIN & 0xF); // HI - TWIInit(); - for(uint8_t device_addr = 0; device_addr < 4; device_addr++){ - xprintf("ISSI Init device: %d\n", device_addr); - // If this device has been previously allocated, free it - if(issi_devices[device_addr] != 0){ - free(issi_devices[device_addr]); - } - // Try to shutdown the device, if this fails skip this device - writeRegister8(device_addr, ISSI_BANK_FUNCTIONREG, ISSI_REG_SHUTDOWN, 0x00); - while (!isTWIReady()){_delay_us(1);} - if(TWIInfo.errorCode != 0xFF){ - xprintf("ISSI init failed %d %02X %02X\n", device_addr, TWIInfo.mode, TWIInfo.errorCode); - continue; - } - // Allocate the device structure - calloc zeros it for us - ISSIDeviceStruct *device = (ISSIDeviceStruct *)calloc(sizeof(ISSIDeviceStruct) * 2, 1); - issi_devices[device_addr] = device; - device->fn_device_addr = ISSI_ADDR_DEFAULT | device_addr << 1; - device->fn_register_addr = 0; - device->led_device_addr = ISSI_ADDR_DEFAULT | device_addr << 1; - device->led_register_addr = 0; - // set dirty bits so that all of the buffered data is written out - device->fn_dirty = 1; - device->led_dirty = 1; - update_issi(device_addr, 1); - // Set the function register to picture mode - // device->fn_reg[ISSI_REG_CONFIG] = ISSI_REG_CONFIG_PICTUREMODE; - writeRegister8(device_addr, ISSI_BANK_FUNCTIONREG, ISSI_REG_SHUTDOWN, 0x01); - } - - // Shutdown and set all registers to 0 - // writeRegister8(device_addr, ISSI_BANK_FUNCTIONREG, ISSI_REG_SHUTDOWN, 0x00); - // for(uint8_t bank = 0; bank <= 7; bank++){ - // for (uint8_t reg = 0x00; reg <= 0xB3; reg++) { - // writeRegister8(device_addr, bank, reg, 0x00); - // } - // } - // for (uint8_t reg = 0; reg <= 0x0C; reg++) { - // writeRegister8(device_addr, ISSI_BANK_FUNCTIONREG, reg, 0x00); - // } - // writeRegister8(device_addr, ISSI_BANK_FUNCTIONREG, ISSI_REG_CONFIG, ISSI_REG_CONFIG_PICTUREMODE); - // writeRegister8(device_addr, ISSI_BANK_FUNCTIONREG, ISSI_REG_SHUTDOWN, 0x01); - // picture mode - // writeRegister8(ISSI_BANK_FUNCTIONREG, 0x01, 0x01); - - //Enable blink - // writeRegister8(ISSI_BANK_FUNCTIONREG, 0x05, 0x48B); - - //Enable Breath - -} - -#endif diff --git a/keyboards/woodkeys/meira/issi.h b/keyboards/woodkeys/meira/issi.h deleted file mode 100755 index 74379ddbc8..0000000000 --- a/keyboards/woodkeys/meira/issi.h +++ /dev/null @@ -1,39 +0,0 @@ -#pragma once - -#ifdef ISSI_ENABLE - -typedef struct ISSIDeviceStruct{ - uint8_t fn_dirty; // function registers need to be resent - uint8_t fn_device_addr; - uint8_t fn_register_addr; - uint8_t fn_registers[13]; - uint8_t led_dirty; // LED data has changed and needs to be resent - uint8_t led_device_addr; - uint8_t led_register_addr; - uint8_t led_ctrl[18]; - uint8_t led_blink_ctrl[18]; - uint8_t led_pwm[144]; -}ISSIDeviceStruct; - -extern ISSIDeviceStruct *issi_devices[]; - -// Low level commands- 'device' is the 2-bit i2c id. -void issi_init(void); -void set_shutdown(uint8_t device, uint8_t shutdown); -void writeRegister8(uint8_t device, uint8_t frame, uint8_t reg, uint8_t data); - -// Higher level, no device is given, but it is calculated from 'matrix' -// Each device has 2 blocks, max of 4 devices: -// Device | Block = Matrix -// 0 A 0 -// 0 B 1 -// 1 A 2 -// 1 B 3 -// 2 A 4 -// 2 B 5 -// 3 A 6 -// 3 B 7 -void activateLED(uint8_t matrix, uint8_t cx, uint8_t cy, uint8_t pwm); -void update_issi(uint8_t device_addr, uint8_t blocking); - -#endif diff --git a/keyboards/woodkeys/meira/keymaps/cole/keymap.c b/keyboards/woodkeys/meira/keymaps/cole/keymap.c index b85da25a28..91a03d8861 100644 --- a/keyboards/woodkeys/meira/keymaps/cole/keymap.c +++ b/keyboards/woodkeys/meira/keymaps/cole/keymap.c @@ -14,7 +14,6 @@ * along with this program. If not, see . */ #include QMK_KEYBOARD_H -#include "lighting.h" #ifdef RGBLIGHT_ENABLE //Following line allows macro to read current RGB settings diff --git a/keyboards/woodkeys/meira/keymaps/default/keymap.c b/keyboards/woodkeys/meira/keymaps/default/keymap.c index af3dca37a8..8aedffc675 100644 --- a/keyboards/woodkeys/meira/keymaps/default/keymap.c +++ b/keyboards/woodkeys/meira/keymaps/default/keymap.c @@ -14,7 +14,6 @@ * along with this program. If not, see . */ #include QMK_KEYBOARD_H -#include "lighting.h" #ifdef RGBLIGHT_ENABLE // Following line allows macro to read current RGB settings diff --git a/keyboards/woodkeys/meira/keymaps/grahampheath/keymap.c b/keyboards/woodkeys/meira/keymaps/grahampheath/keymap.c index 8057bcf2b4..c95a3183b1 100644 --- a/keyboards/woodkeys/meira/keymaps/grahampheath/keymap.c +++ b/keyboards/woodkeys/meira/keymaps/grahampheath/keymap.c @@ -268,15 +268,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; - case BL_TOGG: -#ifdef ISSI_ENABLE - if (record->event.pressed) { - print("Enabling backlight\n"); - issi_init(); - } -#endif - return false; - break; case BL_STEP: if (record->event.pressed) { print("Stepping backlight\n"); diff --git a/keyboards/woodkeys/meira/keymaps/grahampheath/rules.mk b/keyboards/woodkeys/meira/keymaps/grahampheath/rules.mk index 1c61fe1c12..c4e55a1a65 100644 --- a/keyboards/woodkeys/meira/keymaps/grahampheath/rules.mk +++ b/keyboards/woodkeys/meira/keymaps/grahampheath/rules.mk @@ -1,5 +1,3 @@ AUDIO_ENABLE = yes # Audio output on port C6 LTO_ENABLE = yes # -4-7k MOUSEKEY_ENABLE = no # Mouse keys(-47kb) -ISSI_ENABLE = no -BACKLIGHT_ENABLE = no \ No newline at end of file diff --git a/keyboards/woodkeys/meira/keymaps/takmiya/keymap.c b/keyboards/woodkeys/meira/keymaps/takmiya/keymap.c index 8e3c41c332..cf1b2b8ce6 100644 --- a/keyboards/woodkeys/meira/keymaps/takmiya/keymap.c +++ b/keyboards/woodkeys/meira/keymaps/takmiya/keymap.c @@ -14,7 +14,6 @@ * along with this program. If not, see . */ #include QMK_KEYBOARD_H -#include "lighting.h" #ifdef RGBLIGHT_ENABLE //Following line allows macro to read current RGB settings @@ -189,15 +188,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; - case BL_TOGG: -#ifdef ISSI_ENABLE - if (record->event.pressed) { - print("Enabling backlight\n"); - issi_init(); - } -#endif - return false; - break; case BL_STEP: if (record->event.pressed) { print("Stepping backlight\n"); diff --git a/keyboards/woodkeys/meira/lighting.c b/keyboards/woodkeys/meira/lighting.c deleted file mode 100755 index 6a17250a29..0000000000 --- a/keyboards/woodkeys/meira/lighting.c +++ /dev/null @@ -1,84 +0,0 @@ -#ifdef ISSI_ENABLE - - -#include -#include -#include -#include "meira.h" -#include "issi.h" -#include "TWIlib.h" -#include "lighting.h" -#include "debug.h" -#include "audio.h" - - -const uint8_t backlight_pwm_map[BACKLIGHT_LEVELS] = BACKLIGHT_PWM_MAP; - - const uint8_t switch_matrices[] = {0, 1}; - -void backlight_set(uint8_t level){ -#ifdef BACKLIGHT_ENABLE - uint8_t pwm_value = 0; - if(level >= BACKLIGHT_LEVELS){ - level = BACKLIGHT_LEVELS; - } - if(level > 0){ - pwm_value = backlight_pwm_map[level-1]; - } - xprintf("BACKLIGHT_LEVELS: %d\n", BACKLIGHT_LEVELS); - xprintf("backlight_set level: %d pwm: %d\n", level, pwm_value); - for(int x = 1; x <= 9; x++){ - for(int y = 1; y <= 9; y++){ - activateLED(switch_matrices[0], x, y, pwm_value); - activateLED(switch_matrices[1], x, y, pwm_value); - } - } -#endif -} - - - -void set_backlight_by_keymap(uint8_t col, uint8_t row){ -// dprintf("LED: %02X, %d %d %d\n", lookup_value, matrix, led_col, led_row); -// activateLED(matrix, led_col, led_row, 255); -} - -void force_issi_refresh(void){ - issi_devices[0]->led_dirty = true; - update_issi(0, true); - issi_devices[3]->led_dirty = true; - update_issi(3, true); -} - -void led_test(void){ -#ifdef WATCHDOG_ENABLE - // This test take a long time to run, disable the WTD until its complete - wdt_disable(); -#endif - backlight_set(0); - force_issi_refresh(); -// for(uint8_t x = 0; x < sizeof(rgb_sequence); x++){ -// set_rgb(rgb_sequence[x], 255, 0, 0); -// force_issi_refresh(); -// _delay_ms(250); -// set_rgb(rgb_sequence[x], 0, 255, 0); -// force_issi_refresh(); -// _delay_ms(250); -// set_rgb(rgb_sequence[x], 0, 0, 255); -// force_issi_refresh(); -// _delay_ms(250); -// set_rgb(rgb_sequence[x], 0, 0, 0); -// force_issi_refresh(); -// } -#ifdef WATCHDOG_ENABLE - wdt_enable(WDTO_250MS); -#endif -} - -void backlight_init_ports(void){ - xprintf("backlight_init_ports\n"); - issi_init(); -} - -#endif - diff --git a/keyboards/woodkeys/meira/lighting.h b/keyboards/woodkeys/meira/lighting.h deleted file mode 100755 index 42fee8ac92..0000000000 --- a/keyboards/woodkeys/meira/lighting.h +++ /dev/null @@ -1,6 +0,0 @@ -#pragma once - -void led_test(void); -void force_issi_refresh(void); -void set_backlight(uint8_t level); -void set_backlight_by_keymap(uint8_t col, uint8_t row); diff --git a/keyboards/woodkeys/meira/matrix.c b/keyboards/woodkeys/meira/matrix.c index 145750a418..e08782dd40 100644 --- a/keyboards/woodkeys/meira/matrix.c +++ b/keyboards/woodkeys/meira/matrix.c @@ -19,18 +19,11 @@ along with this program. If not, see . /* * scan matrix */ -#include -#include -#if defined(__AVR__) -#include -#endif +#include "matrix.h" #include "meira.h" #include "wait.h" #include "print.h" #include "debug.h" -#include "util.h" -#include "matrix.h" -#include "config.h" #include "timer.h" #ifndef DEBOUNCE diff --git a/keyboards/woodkeys/meira/meira.c b/keyboards/woodkeys/meira/meira.c index 1f4c2557b0..cca87a1b51 100644 --- a/keyboards/woodkeys/meira/meira.c +++ b/keyboards/woodkeys/meira/meira.c @@ -14,24 +14,12 @@ * along with this program. If not, see . */ #include "meira.h" -#include "issi.h" -#include "TWIlib.h" -#include "lighting.h" -#include "quantum.h" - -extern void backlight_set(uint8_t level); void matrix_init_kb(void) { debug_enable=true; print("meira matrix_init_kb\n"); -#ifdef ISSI_ENABLE - issi_init(); -#endif -#ifdef BACKLIGHT_ENABLE - backlight_set(5); -#endif #ifdef WATCHDOG_ENABLE // This is done after turning the layer LED red, if we're caught in a loop // we should get a flashing red light @@ -47,30 +35,6 @@ void matrix_scan_kb(void) { #ifdef WATCHDOG_ENABLE wdt_reset(); -#endif -#ifdef ISSI_ENABLE - // switch/underglow lighting update - static uint32_t issi_device = 0; - static uint32_t twi_last_ready = 0; - if(twi_last_ready > 1000){ - // Its been way too long since the last ISSI update, reset the I2C bus and start again - xprintf("TWI failed to recover, TWI re-init\n"); - twi_last_ready = 0; - TWIInit(); - force_issi_refresh(); - } - if(isTWIReady()){ - twi_last_ready = 0; - // If the i2c bus is available, kick off the issi update, alternate between devices - update_issi(issi_device, issi_device); - if(issi_device){ - issi_device = 0; - }else{ - issi_device = 3; - } - }else{ - twi_last_ready++; - } #endif matrix_scan_user(); } @@ -80,9 +44,8 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { // set_backlight_by_keymap(record->event.key.col, record->event.key.row); if (keycode == QK_BOOT) { reset_keyboard_kb(); - } else { } - return process_record_user(keycode, record); + return process_record_user(keycode, record); } void reset_keyboard_kb(void){ diff --git a/keyboards/woodkeys/meira/meira.h b/keyboards/woodkeys/meira/meira.h index 46d9791e48..cdf5b5adbe 100644 --- a/keyboards/woodkeys/meira/meira.h +++ b/keyboards/woodkeys/meira/meira.h @@ -16,6 +16,5 @@ #pragma once #include "quantum.h" -#include "issi.h" void reset_keyboard_kb(void); diff --git a/keyboards/woodkeys/meira/post_rules.mk b/keyboards/woodkeys/meira/post_rules.mk deleted file mode 100644 index 5d85581c6e..0000000000 --- a/keyboards/woodkeys/meira/post_rules.mk +++ /dev/null @@ -1,9 +0,0 @@ -SRC += matrix.c TWIlib.c issi.c lighting.c - -#ifeq ($(strip $(ISSI_ENABLE)), yes) -# OPT_DEFS += -DISSI_ENABLE -#endif - -#ifeq ($(strip $(WATCHDOG_ENABLE)), yes) -# OPT_DEFS += -DWATCHDOG_ENABLE -#endif diff --git a/keyboards/woodkeys/meira/promicro/config.h b/keyboards/woodkeys/meira/promicro/config.h index 6c52f0fd11..6fda5d7ab3 100644 --- a/keyboards/woodkeys/meira/promicro/config.h +++ b/keyboards/woodkeys/meira/promicro/config.h @@ -33,8 +33,6 @@ along with this program. If not, see . #define MATRIX_COL_PINS { B1, B3, B2, B6, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN } #define MATRIX_COL_PINS_SCANNED { B1, B3, B2, B6 } -#define LED_EN_PIN D2 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/woodkeys/meira/rules.mk b/keyboards/woodkeys/meira/rules.mk index 63586244c0..bad7949ec0 100644 --- a/keyboards/woodkeys/meira/rules.mk +++ b/keyboards/woodkeys/meira/rules.mk @@ -7,11 +7,11 @@ EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality, also set ISSI_ENABLE below for Meira -ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output CUSTOM_MATRIX = yes +SRC += matrix.c DEFAULT_FOLDER = woodkeys/meira/promicro From 59787a2e515b50eb84b5fb29ae20bfc61b49851f Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 24 Sep 2023 12:36:06 +1000 Subject: [PATCH 142/496] input_club/infinity60: remove custom 3731 code, convert to LED Matrix (#22117) * input_club/infinity60: remove custom 3731 code, convert to LED Matrix * Add licences --- keyboards/input_club/infinity60/halconf.h | 27 - .../infinity60/keymaps/default/keymap.c | 3 + .../infinity60/keymaps/jpetermans/config.h | 6 - .../infinity60/keymaps/jpetermans/keymap.c | 264 ---------- .../infinity60/keymaps/jpetermans/readme.md | 87 ---- keyboards/input_club/infinity60/led.c | 58 --- keyboards/input_club/infinity60/led/config.h | 15 + keyboards/input_club/infinity60/led/halconf.h | 8 + keyboards/input_club/infinity60/led/info.json | 94 +++- keyboards/input_club/infinity60/led/led.c | 83 +++ keyboards/input_club/infinity60/led/rules.mk | 3 - .../input_club/infinity60/led_controller.c | 488 ------------------ .../input_club/infinity60/led_controller.h | 121 ----- 13 files changed, 202 insertions(+), 1055 deletions(-) delete mode 100644 keyboards/input_club/infinity60/halconf.h delete mode 100644 keyboards/input_club/infinity60/keymaps/jpetermans/config.h delete mode 100644 keyboards/input_club/infinity60/keymaps/jpetermans/keymap.c delete mode 100644 keyboards/input_club/infinity60/keymaps/jpetermans/readme.md delete mode 100644 keyboards/input_club/infinity60/led.c create mode 100644 keyboards/input_club/infinity60/led/config.h create mode 100644 keyboards/input_club/infinity60/led/halconf.h create mode 100644 keyboards/input_club/infinity60/led/led.c delete mode 100644 keyboards/input_club/infinity60/led_controller.c delete mode 100644 keyboards/input_club/infinity60/led_controller.h diff --git a/keyboards/input_club/infinity60/halconf.h b/keyboards/input_club/infinity60/halconf.h deleted file mode 100644 index f2a330b416..0000000000 --- a/keyboards/input_club/infinity60/halconf.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright 2020 QMK - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -/* - * This file was auto-generated by: - * `qmk chibios-confmigrate -i keyboards/infinity60/halconf.h -r platforms/chibios/common/configs/halconf.h` - */ - -#pragma once - -#define HAL_USE_I2C TRUE - -#include_next - diff --git a/keyboards/input_club/infinity60/keymaps/default/keymap.c b/keyboards/input_club/infinity60/keymaps/default/keymap.c index 8f571a2b9e..29ee5a378e 100644 --- a/keyboards/input_club/infinity60/keymaps/default/keymap.c +++ b/keyboards/input_club/infinity60/keymaps/default/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/input_club/infinity60/keymaps/jpetermans/config.h b/keyboards/input_club/infinity60/keymaps/jpetermans/config.h deleted file mode 100644 index 1949a9ad9d..0000000000 --- a/keyboards/input_club/infinity60/keymaps/jpetermans/config.h +++ /dev/null @@ -1,6 +0,0 @@ -#pragma once - -//overrides -#undef TAPPING_TOGGLE -#define TAPPING_TOGGLE 2 - diff --git a/keyboards/input_club/infinity60/keymaps/jpetermans/keymap.c b/keyboards/input_club/infinity60/keymaps/jpetermans/keymap.c deleted file mode 100644 index d82517b662..0000000000 --- a/keyboards/input_club/infinity60/keymaps/jpetermans/keymap.c +++ /dev/null @@ -1,264 +0,0 @@ -#include QMK_KEYBOARD_H -#include "led_controller.h" - -//Define Layer Names -#define _BASE 0 -#define _NUMPAD 1 -#define _FNAV 2 -#define _MEDIA 3 -#define _TILDE 4 - -//IS31 chip has 8 available led pages, using 0 for all leds and 7 for single toggles -#define max_pages 6 - -enum led_modes { - MODE_ALL, - MODE_GAME, - MODE_SINGLE, - MODE_PAGE, - MODE_FLASH -}; - -enum macro_id { - LED_ALL = SAFE_RANGE, - LED_GAME, - LED_BACKLIGHT, - LED_BRIGHT, - LED_DIM, - LED_SINGLE, - LED_PAGE, - LED_FLASH -}; - -uint8_t current_layer_global = 0; -uint8_t led_mode_global = MODE_SINGLE; -uint8_t backlight_status_global = 1; //init on/off state of backlight -uint32_t led_layer_state = 0; - -/* ================================== - * KEYMAPS - * ==================================*/ - -const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Layer 0: Default Layer - * ,-----------------------------------------------------------. - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backs| - * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| - * |-----------------------------------------------------------| - * |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Enter | - * |-----------------------------------------------------------| - * |Shif| | Z| X| C| V| B| N| M| ,| .| /|Shift | - * |-----------------------------------------------------------| - * |Ctrl|Gui |Alt | Space |Alt |Gui | FN | Ctrl | - * `-----------------------------------------------------------' - */ - /* default */ - [_BASE] = LAYOUT_60_ansi_split_bs_rshift( - KC_ESC, 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_BSLS,KC_NO, - 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_BSPC, - TT(_FNAV), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,LM(_TILDE, MOD_LSFT),KC_NO, - KC_LCTL, KC_LGUI,KC_LALT, LT(_FNAV, KC_SPC), KC_RALT,TG(_NUMPAD),MO(_MEDIA), KC_RCTL - ), - - /* numpad */ - [_NUMPAD] = LAYOUT_60_ansi_split_bs_rshift( - _______,_______,_______,_______,_______,_______,_______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______,_______,_______,KC_NO, - _______,_______,_______,_______,_______,_______,_______, KC_P4, KC_P5, KC_P6, KC_PAST, _______,_______,_______, - MO(_FNAV),_______,_______,_______,_______,_______,_______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______,_______, - _______,_______,_______,_______,_______,_______,_______, KC_P0,KC_COMM,KC_PDOT,KC_PPLS, _______,KC_NO, - _______,_______,_______, TO(_BASE), _______,_______,_______,_______ - ), - - /* F-, arrow, and media keys */ - [_FNAV] = LAYOUT_60_ansi_split_bs_rshift( - 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_NO, - KC_CAPS,_______,_______,_______,_______,_______,_______,KC_PGUP,KC_UP,KC_PGDN,KC_PSCR,_______,_______,KC_DEL, - _______,_______,KC_BTN2,_______,_______,_______,KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_INS,_______,_______, - _______,KC_APP,KC_BTN1,KC_CALC,_______,_______,KC_END,_______,_______,_______,_______,_______,KC_NO, - _______,_______,_______, _______, C(A(KC_DEL)),KC_NUM,_______,_______ - ), - - /* media */ - [_MEDIA] = LAYOUT_60_ansi_split_bs_rshift( - _______,LED_SINGLE,LED_PAGE,LED_FLASH,_______,_______,_______, _______, _______, _______,KC_MUTE, KC_VOLD, KC_VOLU,_______,KC_NO, - _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______, - _______,_______,_______,_______,_______,LED_GAME,_______, _______, _______, _______,_______, _______,_______, - _______,_______,LED_ALL ,LED_BRIGHT,LED_DIM,LED_BACKLIGHT,_______, _______, KC_MPRV, KC_MNXT,KC_MSTP, _______,KC_NO, - _______,_______,_______, KC_MPLY, _______,_______, _______,_______ - ), - /* ~ */ - [_TILDE] = LAYOUT_60_ansi_split_bs_rshift( - KC_GRV,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,KC_NO, - _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______, - _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______, - _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,KC_NO, - _______,_______,_______, _______, _______,_______, _______,_______ - ), - /* template */ - [5] = LAYOUT_60_ansi_split_bs_rshift( - _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,KC_NO, - _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______, - _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______, - _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,KC_NO, - _______,_______,_______, _______, _______,_______, _______,_______ - ), -}; - -/* ================================== - * LED MAPPING - * ==================================*/ - -/* - Infinity60 LED MAP - 11 12 13 14 15 16 17 18 21 22 23 24 25 26 27* - 28 31 32 33 34 35 36 37 38 41 42 43 44 45 - 46 47 48 51 52 53 54 55 56 57 58 61 62 - 63 64 65 66 67 68 71 72 73 74 75 76 77* - 78 81 82 83 84 85 86 87 - *Unused in Alphabet Layout -*/ - -//======== full page arrays ========= -//any change in array size needs to be mirrored in matrix_init_user -uint8_t led_numpad[16] = { - 18,21,22,23, - 37,38,41,42, - 55,56,57,58, - 72,73,74,75 -}; -//LED Page 2 - _Nav -uint8_t led_nav[12] = { - 38, - 47,48, 55,56,57, - 64,65,66 -}; -//LED Page 3 - _Media -uint8_t led_media[15] = { - 12,13,14, 23,24,25, - 65,66,67,68, 73,74,75, - 83, 86 -}; -//LED Page 4 - _Game "WASD" -uint8_t led_game[5] = { - 11, - 32, - 47,48,51 -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - msg_t msg; - - switch(keycode) { - case LED_ALL: - if(record->event.pressed) { - led_mode_global = led_mode_global == MODE_ALL ? MODE_SINGLE : MODE_ALL; - msg=TOGGLE_ALL; - chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); - } - return false; - - case LED_BACKLIGHT: - if(record->event.pressed) { - backlight_status_global ^= 1; - msg=(backlight_status_global << 8) | TOGGLE_BACKLIGHT; - chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); - } - return false; - - case LED_GAME: - if(record->event.pressed) { - led_mode_global = led_mode_global == MODE_GAME ? MODE_SINGLE : MODE_GAME; - - msg=(4 << 8) | DISPLAY_PAGE; - chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); - } - return false; - - case LED_BRIGHT: - if(record->event.pressed) { - msg=(1 << 8) | STEP_BRIGHTNESS; - chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); - } - return false; - - case LED_DIM: - if(record->event.pressed) { - msg=(0 << 8) | STEP_BRIGHTNESS; - chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); - } - return false; - - //set led_mode for matrix_scan to toggle leds - case LED_SINGLE: - led_mode_global = MODE_SINGLE; - return false; - case LED_PAGE: - led_mode_global = MODE_PAGE; - return false; - case LED_FLASH: - led_mode_global = MODE_FLASH; - return false; - - } - return true; -} - -// Runs just one time when the keyboard initializes. -void matrix_init_user(void) { - - led_controller_init(); - - // Write predefined led pages. - write_led_page(_NUMPAD, led_numpad, 16); - chThdSleepMilliseconds(10); - - write_led_page(_FNAV, led_nav, 12); - chThdSleepMilliseconds(10); - - write_led_page(_MEDIA, led_media, 15); - chThdSleepMilliseconds(10); - - write_led_page(4, led_game, 5); - chThdSleepMilliseconds(1000); -}; - -// Loops constantly in the background. -void matrix_scan_user(void) { - uint8_t page; - uint8_t led_pin_byte; - msg_t msg; - - if (backlight_status_global == 0) {//backlight is off, skip the rest - return; - } - - if (led_layer_state != layer_state && led_mode_global != MODE_GAME && led_mode_global != MODE_ALL) { - //check mode - //Turn on layer indicator or page depending on mode - switch(led_mode_global) { - case MODE_FLASH: //flash preset page leds then single indicator - page = get_highest_layer(layer_state) > max_pages ? 7 : get_highest_layer(layer_state); - msg=(page << 8) | DISPLAY_PAGE; - chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); - chThdSleepMilliseconds(500); - //flow to display single layer leds - - case MODE_SINGLE: //light layer indicators for all active layers - led_pin_byte = layer_state & 0xFF; - msg=(7 << 8) | DISPLAY_PAGE; - chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); - msg=(1 << 16) | (led_pin_byte << 8) | SET_FULL_ROW; - chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); - break; - - case MODE_PAGE: //display pre-defined led page - page = get_highest_layer(layer_state) > max_pages ? 7 : get_highest_layer(layer_state); - msg=(page << 8) | DISPLAY_PAGE; - chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); - break; - } - led_layer_state = layer_state; - } -} diff --git a/keyboards/input_club/infinity60/keymaps/jpetermans/readme.md b/keyboards/input_club/infinity60/keymaps/jpetermans/readme.md deleted file mode 100644 index 00421015bd..0000000000 --- a/keyboards/input_club/infinity60/keymaps/jpetermans/readme.md +++ /dev/null @@ -1,87 +0,0 @@ -Backlight for Infinity60 -======================== - -## Led Controller Specs - -The Infinity60 (revision 1.1a) pcb uses the IS31FL3731C matrix LED driver from ISSI [(datasheet)](http://www.issi.com/WW/pdf/31FL3731C.pdf). The IS31 has the ability to control two led matrices (A & B), each matrix controlling 9 pins, each pin controlling 8 leds. The Infinity only utilizes matrix A. - -Infinity60 LED Map: -digits mean "row" and "col", i.e. 45 means pin 4, column 5 in the IS31 datasheet -```c - 11 12 13 14 15 16 17 18 21 22 23 24 25 26 27* - 28 31 32 33 34 35 36 37 38 41 42 43 44 45 - 46 47 48 51 52 53 54 55 56 57 58 61 62 - 63 64 65 66 67 68 71 72 73 74 75 76 77* - 78 81 82 83 84 85 86 87 -``` -*Unused in Alphabet Layout - -The IS31 includes 8 led pages (or frames) 0-7 than can be displayed, and each page consists of 144 bytes. -- **bytes 0 - 17** - LED control (on/off). - * 18 bytes which alternate between A and B matrices (A1, B1, A2, B2, ..). - * Each byte controls the 8 leds on that pin with bits (8 to 1). -- **bytes 8 - 35** - Blink control. - * Same as LED control above, but sets blink on/off. -- **bytes 36 - 143** - PWM control. - * One byte per LED, sets PWM from 0 to 255. - * Same as above, the register alternates, every 8 *bytes* (not bits) between the A & B matrices. - -## Led Controller Code -In the Infinity60 project folder, led_controller.c sets up ability to write led layers at startup or control leds on demand as part of fn_actions. By default led_controller.c assumes page 0 will be used for full on/off. The remaining 7 pages (1-7) are free for preset led maps or single led actions at init or on demand. Communication with the IS31 is primarily done through the led_mailbox using chMBPost described further below under "Sending messages in Keymap.c". This code is based on work matt3o and flabbergast did for tmk firmware on the [whitefox](https://github.com/tmk/whitefox). - -One function is available to directly set leds without the mailbox: -``` -write_led_page(page#, array of leds by address, # of addresses in array) -``` -This function saves a full page to the controller using a supplied array of led locations such as: -```c -uint8_t led_numpad[16] = { - 18,21,22,23, - 37,38,41,42, - 55,56,57,58, - 72,73,74,75 -} -write_led_page(5, led_numpad, 16); -``` - -Remaining led control is done through the led mailbox using these message types: -- **SET_FULL_ROW** (3 bytes) - message type, 8-bit mask, and row#. Sets all leds on one pin per the bit mask. -- **OFF_LED, ON_LED, TOGGLE_LED** (3 bytes) - message type, led address, and page#. Off/on/toggle specific led. -- **BLINK_OFF_LED, BLINK_ON_LED, BLINK_TOGGLE_LED** (3 bytes) - message type, led address, and page#. Set blink Off/on/toggle for specific led. -- **TOGGLE_ALL** (1 byte) - Turn on/off full backlight. -- **TOGGLE_BACKLIGHT** (2 bytes) - message type, on/off. Sets backlight completely off, no leds will display. -- **DISPLAY_PAGE** (2 bytes) - message type, page to display. Switch to specific pre-set page. -- **RESET_PAGE** (2 bytes) - message type, page to reset. Reset/erase specific page. -- **TOGGLE_NUM_LOCK** (2 bytes) - message type, on/off (NUM_LOCK_LED_ADDRESS). Toggle numlock on/off. Usually run with the `set_leds` function to check state of numlock or capslock. If all leds are on (e.i. TOGGLE_ALL) then this sets numlock to blink instead (this is still a little buggy if toggling on/off quickly). -- **TOGGLE_CAPS_LOCK** (2 bytes) - message type, on/off (CAPS_LOCK_LED_ADDRESS). Same as numlock. -- **STEP_BRIGHTNESS** (2 bytes) - message type, and step up (1) or step down (0). Increase or decrease led brightness. - -## Sending messages in Keymap.c -Sending an action to the led mailbox is done using chMBPost: -``` -chMBPost(&led_mailbox, message, timeout); -``` -- &led_mailbox - pointer to led mailbox -- message - up to 4 bytes but most messages use only 2. First byte (LSB) is the message type, the remaining three bytes are the message to process. -- timeout is TIME_IMMEDIATE - -An example: -```c -//set the message to be sent. First byte (LSB) is the message type, and second is the led address -msg=(42 << 8) | ON_LED; - -//send msg to the led mailbox -chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); -``` - -Another: -```c -msg=(46 << 8) | BLINK_TOGGLE_LED; -chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); -``` - -Finally, SET_FULL_ROW requires an extra byte with row information in the message so sending this message looks like: -```c -msg=(row<<16) | (led_pin_byte << 8) | SET_FULL_ROW; -chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); -``` diff --git a/keyboards/input_club/infinity60/led.c b/keyboards/input_club/infinity60/led.c deleted file mode 100644 index 33871bcc49..0000000000 --- a/keyboards/input_club/infinity60/led.c +++ /dev/null @@ -1,58 +0,0 @@ -/* -Copyright 2015 Jun Wako -Copyright 2017 jpetermans - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include - -#include "led.h" - -#include "led_controller.h" - -/* WARNING! This function needs to be callable from - * both regular threads and ISRs, unlocked (during resume-from-sleep). - * In particular, I2C functions (interrupt-driven) should NOT be called from here. - */ -bool led_update_kb(led_t led_state) { - bool res = led_update_user(led_state); - if (res) { - msg_t msg; - - if (led_state.num_lock) { - chSysUnconditionalLock(); - msg=(1 << 8) | TOGGLE_NUM_LOCK; - chMBPostI(&led_mailbox, msg); - chSysUnconditionalUnlock(); - } else { - chSysUnconditionalLock(); - msg=(0 << 8) | TOGGLE_NUM_LOCK; - chMBPostI(&led_mailbox, msg); - chSysUnconditionalUnlock(); - } - if (led_state.caps_lock) { - chSysUnconditionalLock(); - msg=(1 << 8) | TOGGLE_CAPS_LOCK; - chMBPostI(&led_mailbox, msg); - chSysUnconditionalUnlock(); - } else { - chSysUnconditionalLock(); - msg=(0 << 8) | TOGGLE_CAPS_LOCK; - chMBPostI(&led_mailbox, msg); - chSysUnconditionalUnlock(); - } - } - return false; -} diff --git a/keyboards/input_club/infinity60/led/config.h b/keyboards/input_club/infinity60/led/config.h new file mode 100644 index 0000000000..035cce88e9 --- /dev/null +++ b/keyboards/input_club/infinity60/led/config.h @@ -0,0 +1,15 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define LED_MATRIX_LED_COUNT 63 + +#define IS31FL3731_DRIVER_COUNT 1 +#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND + +#define I2C1_CLOCK_SPEED 400000 +#define I2C1_SCL_PIN B0 +#define I2C1_SDA_PIN B1 +#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2 +#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2 diff --git a/keyboards/input_club/infinity60/led/halconf.h b/keyboards/input_club/infinity60/led/halconf.h new file mode 100644 index 0000000000..50c7d00001 --- /dev/null +++ b/keyboards/input_club/infinity60/led/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/input_club/infinity60/led/info.json b/keyboards/input_club/infinity60/led/info.json index 7a9b924a71..f16554d245 100644 --- a/keyboards/input_club/infinity60/led/info.json +++ b/keyboards/input_club/infinity60/led/info.json @@ -3,5 +3,97 @@ "cols": ["C0", "C1", "C2", "C3", "C4", "C5", "C6", "C7", "D0"], "rows": ["D1", "D2", "D3", "D4", "D5", "D6", "D7"] }, - "diode_direction": "COL2ROW" + "diode_direction": "COL2ROW", + "features": { + "led_matrix": true + }, + "led_matrix": { + "driver": "is31fl3731", + "animations": { + "breathing": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "solid_splash": true, + "solid_multisplash": true, + "wave_left_right": true, + "wave_up_down": true + }, + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 144, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 160, "y": 0, "flags": 4}, + {"matrix": [1, 2], "x": 176, "y": 0, "flags": 4}, + {"matrix": [1, 3], "x": 192, "y": 0, "flags": 4}, + {"matrix": [1, 4], "x": 208, "y": 0, "flags": 1}, + {"matrix": [1, 5], "x": 224, "y": 0, "flags": 1}, + + {"matrix": [1, 6], "x": 0, "y": 16, "flags": 1}, + {"matrix": [1, 7], "x": 17, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 35, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 52, "y": 16, "flags": 4}, + {"matrix": [2, 1], "x": 69, "y": 16, "flags": 4}, + {"matrix": [2, 2], "x": 86, "y": 16, "flags": 4}, + {"matrix": [2, 3], "x": 103, "y": 16, "flags": 4}, + {"matrix": [2, 4], "x": 121, "y": 16, "flags": 4}, + {"matrix": [2, 5], "x": 138, "y": 16, "flags": 4}, + {"matrix": [2, 6], "x": 155, "y": 16, "flags": 4}, + {"matrix": [2, 7], "x": 172, "y": 16, "flags": 4}, + {"matrix": [2, 8], "x": 190, "y": 16, "flags": 4}, + {"matrix": [3, 0], "x": 207, "y": 16, "flags": 4}, + {"matrix": [3, 1], "x": 224, "y": 16, "flags": 4}, + + {"matrix": [3, 2], "x": 0, "y": 32, "flags": 9}, + {"matrix": [3, 3], "x": 19, "y": 32, "flags": 4}, + {"matrix": [3, 4], "x": 37, "y": 32, "flags": 4}, + {"matrix": [3, 5], "x": 56, "y": 32, "flags": 4}, + {"matrix": [3, 6], "x": 75, "y": 32, "flags": 4}, + {"matrix": [3, 7], "x": 93, "y": 32, "flags": 4}, + {"matrix": [3, 8], "x": 112, "y": 32, "flags": 4}, + {"matrix": [4, 0], "x": 131, "y": 32, "flags": 4}, + {"matrix": [4, 1], "x": 149, "y": 32, "flags": 4}, + {"matrix": [4, 2], "x": 168, "y": 32, "flags": 4}, + {"matrix": [4, 3], "x": 187, "y": 32, "flags": 4}, + {"matrix": [4, 4], "x": 205, "y": 32, "flags": 4}, + {"matrix": [4, 5], "x": 224, "y": 32, "flags": 1}, + + {"matrix": [4, 6], "x": 0, "y": 48, "flags": 1}, + {"matrix": [4, 7], "x": 19, "y": 48, "flags": 4}, + {"matrix": [4, 8], "x": 37, "y": 48, "flags": 4}, + {"matrix": [5, 0], "x": 56, "y": 48, "flags": 4}, + {"matrix": [5, 1], "x": 75, "y": 48, "flags": 4}, + {"matrix": [5, 2], "x": 93, "y": 48, "flags": 4}, + {"matrix": [5, 3], "x": 112, "y": 48, "flags": 4}, + {"matrix": [5, 4], "x": 131, "y": 48, "flags": 4}, + {"matrix": [5, 5], "x": 149, "y": 48, "flags": 4}, + {"matrix": [5, 6], "x": 168, "y": 48, "flags": 4}, + {"matrix": [5, 7], "x": 187, "y": 48, "flags": 4}, + {"matrix": [5, 8], "x": 205, "y": 48, "flags": 1}, + {"matrix": [6, 0], "x": 224, "y": 48, "flags": 1}, + + {"matrix": [6, 1], "x": 0, "y": 64, "flags": 1}, + {"matrix": [6, 2], "x": 32, "y": 64, "flags": 1}, + {"matrix": [6, 3], "x": 64, "y": 64, "flags": 1}, + {"matrix": [6, 4], "x": 96, "y": 64, "flags": 4}, + {"matrix": [6, 5], "x": 128, "y": 64, "flags": 1}, + {"matrix": [6, 6], "x": 160, "y": 64, "flags": 1}, + {"matrix": [6, 7], "x": 192, "y": 64, "flags": 1}, + {"matrix": [6, 8], "x": 224, "y": 64, "flags": 1} + ] + } } diff --git a/keyboards/input_club/infinity60/led/led.c b/keyboards/input_club/infinity60/led/led.c new file mode 100644 index 0000000000..ef29d12a29 --- /dev/null +++ b/keyboards/input_club/infinity60/led/led.c @@ -0,0 +1,83 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#ifdef LED_MATRIX_ENABLE +const is31_led g_is31_leds[LED_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | LED address + * | | */ + {0, C1_1}, // LED1 + {0, C1_2}, // LED2 + {0, C1_3}, // LED3 + {0, C1_4}, // LED4 + {0, C1_5}, // LED5 + {0, C1_6}, // LED6 + {0, C1_7}, // LED7 + {0, C1_8}, // LED8 + + {0, C2_1}, // LED9 + {0, C2_2}, // LED10 + {0, C2_3}, // LED11 + {0, C2_4}, // LED12 + {0, C2_5}, // LED13 + {0, C2_6}, // LED14/114 + {0, C2_7}, // LED15 + {0, C2_8}, // LED16 + + {0, C3_1}, // LED17 + {0, C3_2}, // LED18 + {0, C3_3}, // LED19 + {0, C3_4}, // LED20 + {0, C3_5}, // LED21 + {0, C3_6}, // LED22 + {0, C3_7}, // LED23 + {0, C3_8}, // LED24 + + {0, C4_1}, // LED25 + {0, C4_2}, // LED26 + {0, C4_3}, // LED27 + {0, C4_4}, // LED28 + {0, C4_5}, // LED29 + {0, C4_6}, // LED30 + {0, C4_7}, // LED31 + {0, C4_8}, // LED32 + + {0, C5_1}, // LED33 + {0, C5_2}, // LED34 + {0, C5_3}, // LED35 + {0, C5_4}, // LED36 + {0, C5_5}, // LED37 + {0, C5_6}, // LED38 + {0, C5_7}, // LED39 + {0, C5_8}, // LED40 + + {0, C6_1}, // LED41 + {0, C6_2}, // LED42 + {0, C6_3}, // LED43 + {0, C6_4}, // LED44 + {0, C6_5}, // LED45 + {0, C6_6}, // LED46 + {0, C6_7}, // LED47 + {0, C6_8}, // LED48 + + {0, C7_1}, // LED49 + {0, C7_2}, // LED50 + {0, C7_3}, // LED51 + {0, C7_4}, // LED52 + {0, C7_5}, // LED53 + {0, C7_6}, // LED54/154 + {0, C7_7}, // LED55 + {0, C7_8}, // LED56/156 + + {0, C8_1}, // LED57/157 + {0, C8_2}, // LED58/158 + {0, C8_3}, // LED59/159 + {0, C8_4}, // LED60/160 + {0, C8_5}, // LED61/161 + {0, C8_6}, // LED62/162 + {0, C8_7} // LED63/163 +}; +#endif diff --git a/keyboards/input_club/infinity60/led/rules.mk b/keyboards/input_club/infinity60/led/rules.mk index d48f3b73a5..e69de29bb2 100644 --- a/keyboards/input_club/infinity60/led/rules.mk +++ b/keyboards/input_club/infinity60/led/rules.mk @@ -1,3 +0,0 @@ -# project specific files -SRC += led.c \ - led_controller.c \ No newline at end of file diff --git a/keyboards/input_club/infinity60/led_controller.c b/keyboards/input_club/infinity60/led_controller.c deleted file mode 100644 index 5ea0ae804c..0000000000 --- a/keyboards/input_club/infinity60/led_controller.c +++ /dev/null @@ -1,488 +0,0 @@ -/* -Copyright 2016 flabbergast -Copyright 2017 jpetermans - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -/* - * LED controller code - * IS31FL3731C matrix LED driver from ISSI - * datasheet: http://www.issi.com/WW/pdf/31FL3731C.pdf - */ - -#include -#include -#include "print.h" -#include "led.h" -#include "host.h" - -#include "led_controller.h" - -#include "suspend.h" - -#include "usb_main.h" - -/* Infinity60 LED MAP - - digits mean "row" and "col", i.e. 45 means C4-5 in the IS31 datasheet, matrix A - - 11 12 13 14 15 16 17 18 21 22 23 24 25 26 27* - 28 31 32 33 34 35 36 37 38 41 42 43 44 45 - 46 47 48 51 52 53 54 55 56 57 58 61 62 - 63 64 65 66 67 68 71 72 73 74 75 76 77* - 78 81 82 83 84 85 86 87 - -*Unused in Alphabet Layout -*/ - -/* - each page has 0xB4 bytes - 0 - 0x11: LED control (on/off): - order: CA1, CB1, CA2, CB2, .... (CA - matrix A, CB - matrix B) - CAn controls Cn-8 .. Cn-1 (LSbit) - 0x12 - 0x23: blink control (like "LED control") - 0x24 - 0xB3: PWM control: byte per LED, 0xFF max on - order same as above (CA 1st row (8bytes), CB 1st row (8bytes), ...) -*/ - -// Which LED should be used for CAPS LOCK indicator -#if !defined(CAPS_LOCK_LED_ADDRESS) -#define CAPS_LOCK_LED_ADDRESS 46 -#endif - -#if !defined(NUM_LOCK_LED_ADDRESS) -#define NUM_LOCK_LED_ADDRESS 85 -#endif - -/* Which LED should breathe during sleep */ -#if !defined(BREATHE_LED_ADDRESS) -#define BREATHE_LED_ADDRESS CAPS_LOCK_LED_ADDRESS -#endif - -/* ================= - * ChibiOS I2C setup - * ================= */ -static const I2CConfig i2ccfg = { - 400000 // clock speed (Hz); 400kHz max for IS31 -}; - -/* ============== - * variables - * ============== */ -// internal communication buffers -uint8_t tx[2] __attribute__((aligned(2))); -uint8_t rx[1] __attribute__((aligned(2))); - -// buffer for sending the whole page at once (used also as a temp buffer) -uint8_t full_page[0xB4+1] = {0}; - -// LED mask (which LEDs are present, selected by bits) -// IC60 pcb uses only CA matrix. -// Each byte is a control pin for 8 leds ordered 8-1 -const uint8_t all_on_leds_mask[0x12] = { - 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, - 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x7F, 0x00, 0x00, 0x00 -}; - -// array to hold brightness pwm steps -const uint8_t pwm_levels[5] = { - 0x00, 0x16, 0x4E, 0xA1, 0xFF -}; - -// array to write to pwm register -uint8_t pwm_register_array[9] = {0}; - - -/* ============================ - * communication functions - * ============================ */ -msg_t is31_select_page(uint8_t page) { - tx[0] = IS31_COMMANDREGISTER; - tx[1] = page; - return i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, tx, 2, NULL, 0, TIME_US2I(IS31_TIMEOUT)); -} - -msg_t is31_write_data(uint8_t page, uint8_t *buffer, uint8_t size) { - is31_select_page(page); - return i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, buffer, size, NULL, 0, TIME_US2I(IS31_TIMEOUT)); -} - -msg_t is31_write_register(uint8_t page, uint8_t reg, uint8_t data) { - is31_select_page(page); - tx[0] = reg; - tx[1] = data; - return i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, tx, 2, NULL, 0, TIME_US2I(IS31_TIMEOUT)); -} - -msg_t is31_read_register(uint8_t page, uint8_t reg, uint8_t *result) { - is31_select_page(page); - - tx[0] = reg; - return i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, tx, 1, result, 1, TIME_US2I(IS31_TIMEOUT)); -} - -/* ======================== - * initialise the IS31 chip - * ======================== */ -void is31_init(void) { - // just to be sure that it's all zeroes - __builtin_memset(full_page,0,0xB4+1); - // zero function page, all registers (assuming full_page is all zeroes) - is31_write_data(IS31_FUNCTIONREG, full_page, 0xD + 1); - // disable hardware shutdown - palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL); - palSetPad(GPIOB, 16); - chThdSleepMilliseconds(10); - // software shutdown - is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); - chThdSleepMilliseconds(10); - // zero function page, all registers - is31_write_data(IS31_FUNCTIONREG, full_page, 0xD + 1); - chThdSleepMilliseconds(10); - // software shutdown disable (i.e. turn stuff on) - is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); - chThdSleepMilliseconds(10); - // zero all LED registers on all 8 pages - uint8_t i; - for(i=0; i<8; i++) { - is31_write_data(i, full_page, 0xB4 + 1); - chThdSleepMilliseconds(5); - } -} - -/* ================== - * LED control thread - * ================== */ -#define LED_MAILBOX_NUM_MSGS 5 -static msg_t led_mailbox_queue[LED_MAILBOX_NUM_MSGS]; -mailbox_t led_mailbox; -static THD_WORKING_AREA(waLEDthread, 256); -static THD_FUNCTION(LEDthread, arg) { - (void)arg; - chRegSetThreadName("LEDthread"); - - uint8_t i; - uint8_t control_register_word[2] = {0};//2 bytes: register address, byte to write - uint8_t led_control_reg[0x13] = {0};//led control register start address + 0x12 bytes - - //persistent status variables - uint8_t pwm_step_status, page_status, capslock_status, numlock_status; - - //mailbox variables - uint8_t temp, msg_type; - uint8_t msg_args[3]; - msg_t msg; - - // initialize persistent variables - pwm_step_status = 4; //full brightness - page_status = 0; //start frame 0 (all off/on) - led_t led_state = host_keyboard_led_state(); - numlock_status = led_state.num_lock ? 1 : 0; - capslock_status = led_state.caps_lock ? 1 : 0; - - while(true) { - // wait for a message (asynchronous) - // (messages are queued (up to LED_MAILBOX_NUM_MSGS) if they can't - // be processed right away - chMBFetchTimeout(&led_mailbox, &msg, TIME_INFINITE); - msg_type = msg & 0xFF; //first byte is action information - msg_args[0] = (msg >> 8) & 0xFF; - msg_args[1] = (msg >> 16) & 0XFF; - msg_args[2] = (msg >> 24) & 0xFF; - - - switch (msg_type){ - case SET_FULL_ROW: - //write full byte to pin address, msg_args[1] = pin #, msg_args[0] = 8 bits to write - //writes only to currently displayed page - write_led_byte(page_status, msg_args[1], msg_args[0]); - break; - - case OFF_LED: - //on/off/toggle single led, msg_args[0] = row/col of led, msg_args[1] = page - set_led_bit(msg_args[1], control_register_word, msg_args[0], 0); - break; - case ON_LED: - set_led_bit(msg_args[1], control_register_word, msg_args[0], 1); - break; - case TOGGLE_LED: - set_led_bit(msg_args[1], control_register_word, msg_args[0], 2); - break; - - case BLINK_OFF_LED: - //on/off/toggle single led, msg_args[0] = row/col of led - set_led_bit(msg_args[1], control_register_word, msg_args[0], 4); - break; - case BLINK_ON_LED: - set_led_bit(msg_args[1], control_register_word, msg_args[0], 5); - break; - case BLINK_TOGGLE_LED: - set_led_bit(msg_args[1], control_register_word, msg_args[0], 6); - break; - - case TOGGLE_ALL: - //turn on/off all leds, msg_args = unused - is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); - chThdSleepMilliseconds(5); - is31_read_register(0, 0x00, &temp); - is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); - - led_control_reg[0] = 0; - - //toggle led mask based on current state (temp) - if (temp==0 || page_status > 0) { - __builtin_memcpy(led_control_reg+1, all_on_leds_mask, 0x12); - } else { - __builtin_memset(led_control_reg+1, 0, 0x12); - } - is31_write_data(0, led_control_reg, 0x13); - - if (page_status > 0) { - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 0); - - page_status=0; - - //maintain lock leds, reset to off and force recheck to blink of all leds toggled on - numlock_status = 0; - capslock_status = 0; - led_set(host_keyboard_leds()); - } - break; - - case TOGGLE_BACKLIGHT: - //msg_args[0] = on/off - - //populate 9 byte rows to be written to each pin, first byte is register (pin) address - if (msg_args[0] == 1) { - __builtin_memset(pwm_register_array+1, pwm_levels[pwm_step_status], 8); - } else { - __builtin_memset(pwm_register_array+1, 0, 8); - } - - for(i=0; i<8; i++) { - //first byte is register address, every 0x10 9 bytes is A-matrix pwm pins - pwm_register_array[0] = 0x24 + (i * 0x10); - is31_write_data(0,pwm_register_array,9); - } - break; - - case DISPLAY_PAGE: - //msg_args[0] = page to toggle on - if (page_status != msg_args[0]) { - is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, msg_args[0]); - page_status = msg_args[0]; - - //maintain lock leds, reset to off and force recheck for new page - numlock_status = 0; - capslock_status = 0; - led_set(host_keyboard_leds()); - } - break; - - case RESET_PAGE: - //led_args[0] = page to reset - led_control_reg[0] = 0; - __builtin_memset(led_control_reg+1, 0, 0x12); - is31_write_data(msg_args[0], led_control_reg, 0x13); - - //repeat for blink register - led_control_reg[0] = 0x12; - is31_write_data(msg_args[0], led_control_reg, 0x13); - break; - - case TOGGLE_NUM_LOCK: - //msg_args[0] = 0 or 1, off/on - if (numlock_status != msg_args[0]) { - set_lock_leds(NUM_LOCK_LED_ADDRESS, msg_args[0], page_status); - numlock_status = msg_args[0]; - } - break; - case TOGGLE_CAPS_LOCK: - //msg_args[0] = 0 or 1, off/on - if (capslock_status != msg_args[0]) { - set_lock_leds(CAPS_LOCK_LED_ADDRESS, msg_args[0], page_status); - capslock_status = msg_args[0]; - } - break; - - case STEP_BRIGHTNESS: - //led_args[0] = step up (1) or down (0) - switch (msg_args[0]) { - case 0: - if (pwm_step_status == 0) { - pwm_step_status = 4; - } else { - pwm_step_status--; - } - break; - - case 1: - if (pwm_step_status == 4) { - pwm_step_status = 0; - } else { - pwm_step_status++; - } - break; - } - - //populate 8 byte arrays to write on each pin - //first byte is register address, every 0x10 9 bytes are A-matrix pwm pins - __builtin_memset(pwm_register_array+1, pwm_levels[pwm_step_status], 8); - - for(i=0; i<8; i++) { - pwm_register_array[0] = 0x24 + (i * 0x10); - is31_write_data(0,pwm_register_array,9); - } - break; - } - } -} - -/* ============================== - * led processing functions - * ============================== */ - -void set_led_bit (uint8_t page, uint8_t *led_control_word, uint8_t led_addr, uint8_t action) { - //returns 2 bytes: led control register address and byte to write - //action: 0 - off, 1 - on, 2 - toggle, 4 - blink on, 5 - blink off, 6 - toggle blink - - uint8_t control_reg_addr, column_bit, column_byte, temp, blink_bit; - - //check for valid led address - if (led_addr < 0 || led_addr > 87 || led_addr % 10 > 8) { - return; - } - - blink_bit = action>>2;//check for blink bit - action &= ~(1<<2); //strip blink bit - - //led_addr tens column is pin#, ones column is bit position in 8-bit mask - control_reg_addr = ((led_addr / 10) % 10 - 1 ) * 0x02;// A-matrix is every other byte - control_reg_addr += blink_bit == 1 ? 0x12 : 0x00;//if blink_bit, shift 12 bytes to blink register - - is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); - chThdSleepMilliseconds(5); - is31_read_register(page, control_reg_addr, &temp);//maintain status of leds on this byte - is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); - - column_bit = 1<<(led_addr % 10 - 1); - column_byte = temp; - - switch(action) { - case 0: - column_byte &= ~column_bit; - break; - case 1: - column_byte |= column_bit; - break; - case 2: - column_byte ^= column_bit; - break; - } - - //return word to be written in register - led_control_word[0] = control_reg_addr; - led_control_word[1] = column_byte; - is31_write_data (page, led_control_word, 0x02); -} - -void write_led_byte (uint8_t page, uint8_t row, uint8_t led_byte) { - uint8_t led_control_word[2] = {0};//register address and on/off byte - - led_control_word[0] = (row - 1 ) * 0x02;// A-matrix is every other byte - led_control_word[1] = led_byte; - is31_write_data(page, led_control_word, 0x02); -} - -void write_led_page (uint8_t page, uint8_t *user_led_array, uint8_t led_count) { - uint8_t i; - uint8_t pin, col; - uint8_t led_control_register[0x13] = {0}; - - __builtin_memset(led_control_register,0,13); - - for(i=0;iC2 |= I2Cx_C2_HDRS; - // try glitch fixing (from kiibohd) - I2CD1.i2c->FLT = 4; - - chThdSleepMilliseconds(10); - - /* initialise IS31 chip */ - is31_init(); - - //set Display Option Register so all pwm intensity is controlled from page 0 - //enable blink and set blink period to 0.27s x rate - is31_write_register(IS31_FUNCTIONREG, IS31_REG_DISPLAYOPT, IS31_REG_DISPLAYOPT_INTENSITY_SAME + IS31_REG_DISPLAYOPT_BLINK_ENABLE + 4); - - /* set full pwm on page 1 */ - pwm_register_array[0] = 0; - __builtin_memset(pwm_register_array+1, 0xFF, 8); - for(i=0; i<8; i++) { - pwm_register_array[0] = 0x24 + (i * 0x10);//first byte of 9 bytes must be register address - is31_write_data(0, pwm_register_array, 9); - chThdSleepMilliseconds(5); - } - - /* enable breathing when the displayed page changes */ - // Fade-in Fade-out, time = 26ms * 2^N, N=3 - is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL1, (3<<4)|3); - is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL2, IS31_REG_BREATHCTRL2_ENABLE|3); - - /* more time consuming LED processing should be offloaded into - * a thread, with asynchronous messaging. */ - chMBObjectInit(&led_mailbox, led_mailbox_queue, LED_MAILBOX_NUM_MSGS); - chThdCreateStatic(waLEDthread, sizeof(waLEDthread), LOWPRIO, LEDthread, NULL); -} diff --git a/keyboards/input_club/infinity60/led_controller.h b/keyboards/input_club/infinity60/led_controller.h deleted file mode 100644 index e4b4717646..0000000000 --- a/keyboards/input_club/infinity60/led_controller.h +++ /dev/null @@ -1,121 +0,0 @@ -/* -Copyright 2016 flabbergast -Copyright 2017 jpetermans - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef _LED_CONTROLLER_H_ -#define _LED_CONTROLLER_H_ - -/* ========================= - * communication functions - * ========================= */ - -msg_t is31_write_data(uint8_t page, uint8_t *buffer, uint8_t size); -msg_t is31_write_register(uint8_t page, uint8_t reg, uint8_t data); -msg_t is31_read_register(uint8_t page, uint8_t reg, uint8_t *result); - -/* ============================ - * init functions/definitions - * ============================*/ - -void led_controller_init(void); - -#define CAPS_LOCK_LED_ADDRESS 46 //pin matrix location -#define NUM_LOCK_LED_ADDRESS 85 - -/* ============================= - * IS31 chip related definitions - * ============================= */ - -#define IS31_ADDR_DEFAULT 0x74 - -#define IS31_REG_CONFIG 0x00 -// bits in reg -#define IS31_REG_CONFIG_PICTUREMODE 0x00 -#define IS31_REG_CONFIG_AUTOPLAYMODE 0x08 -#define IS31_REG_CONFIG_AUDIOPLAYMODE 0x18 -// D2:D0 bits are starting frame for autoplay mode - -#define IS31_REG_PICTDISP 0x01 // D2:D0 frame select for picture mode - -#define IS31_REG_AUTOPLAYCTRL1 0x02 -// D6:D4 number of loops (000=infty) -// D2:D0 number of frames to be used - -#define IS31_REG_AUTOPLAYCTRL2 0x03 // D5:D0 delay time (*11ms) - -#define IS31_REG_DISPLAYOPT 0x05 -#define IS31_REG_DISPLAYOPT_INTENSITY_SAME 0x20 // same intensity for all frames -#define IS31_REG_DISPLAYOPT_BLINK_ENABLE 0x08 -// D2:D0 bits blink period time (*0.27s) - -#define IS31_REG_AUDIOSYNC 0x06 -#define IS31_REG_AUDIOSYNC_ENABLE 0x1 - -#define IS31_REG_FRAMESTATE 0x07 - -#define IS31_REG_BREATHCTRL1 0x08 -// D6:D4 fade out time (26ms*2^i) -// D2:D0 fade in time (26ms*2^i) - -#define IS31_REG_BREATHCTRL2 0x09 -#define IS31_REG_BREATHCTRL2_ENABLE 0x10 -// D2:D0 extinguish time (3.5ms*2^i) - -#define IS31_REG_SHUTDOWN 0x0A -#define IS31_REG_SHUTDOWN_OFF 0x1 -#define IS31_REG_SHUTDOWN_ON 0x0 - -#define IS31_REG_AGCCTRL 0x0B -#define IS31_REG_ADCRATE 0x0C - -#define IS31_COMMANDREGISTER 0xFD -#define IS31_FUNCTIONREG 0x0B // helpfully called 'page nine' - -#define IS31_TIMEOUT 10000 // needs to be long enough to write a whole page - -/* ======================================== - * LED Thread related items - * ========================================*/ - -extern mailbox_t led_mailbox; - -void set_led_bit (uint8_t page, uint8_t *led_control_reg, uint8_t led_addr, uint8_t action); -void set_lock_leds (uint8_t led_addr, uint8_t led_action, uint8_t page); -void write_led_byte (uint8_t page, uint8_t row, uint8_t led_byte); -void write_led_page (uint8_t page, uint8_t *led_array, uint8_t led_count); - -// constants for signaling the LED controller thread -enum led_msg_t { - KEY_LIGHT, - SET_FULL_ROW, - OFF_LED, - ON_LED, - TOGGLE_LED, - BLINK_OFF_LED, - BLINK_ON_LED, - BLINK_TOGGLE_LED, - TOGGLE_ALL, - TOGGLE_BACKLIGHT, - DISPLAY_PAGE, - RESET_PAGE, - TOGGLE_NUM_LOCK, - TOGGLE_CAPS_LOCK, - TOGGLE_BREATH, - STEP_BRIGHTNESS -}; - -#endif /* _LED_CONTROLLER_H_ */ From f8884640b04850596a824d31a19e29d29fccb489 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sun, 24 Sep 2023 00:57:08 -0700 Subject: [PATCH 143/496] YMDK Melody96 Matrix Touch-Up (#22113) * Correct layout/matrix diagram Correct swapped designations for ANSI Backslash and ANSI Enter keys. [docs] * Correct matrix data Correct the matrix data for: - `LAYOUT_all` - `LAYOUT_96_ansi` - `LAYOUT_96_ansi_splitbs` which all had the matrix positions for ANSI Backslash and ANSI Enter swapped. [bugfix] * Implement `LAYOUT_hotswap` directly Implement `LAYOUT_hotswap` as its own layout, instead of aliasing it to `LAYOUT_96_ansi`. [bugfix] * Specify primary support for Soldered PCBs Current version of codebase primarily supports Soldered PCBs. [enhancement] [docs] --- keyboards/ymdk/melody96/info.json | 126 ++++++++++++++++++++-- keyboards/ymdk/melody96/matrix_diagram.md | 6 +- keyboards/ymdk/melody96/readme.md | 6 +- 3 files changed, 123 insertions(+), 15 deletions(-) diff --git a/keyboards/ymdk/melody96/info.json b/keyboards/ymdk/melody96/info.json index 7e43a099fa..f941c65970 100644 --- a/keyboards/ymdk/melody96/info.json +++ b/keyboards/ymdk/melody96/info.json @@ -1,5 +1,5 @@ { - "keyboard_name": "Melody96", + "keyboard_name": "Melody96 Soldered", "manufacturer": "YMDK", "url": "", "maintainer": "qmk", @@ -49,8 +49,7 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "layout_aliases": { - "LAYOUT": "LAYOUT_all", - "LAYOUT_hotswap": "LAYOUT_96_ansi" + "LAYOUT": "LAYOUT_all" }, "community_layouts": ["96_ansi", "96_iso"], "layouts": { @@ -109,7 +108,7 @@ {"matrix": [9, 7], "x": 10.5, "y": 2}, {"matrix": [9, 5], "x": 11.5, "y": 2}, {"matrix": [9, 4], "x": 12.5, "y": 2}, - {"matrix": [9, 3], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [8, 4], "x": 13.5, "y": 2, "w": 1.5}, {"matrix": [9, 6], "x": 15, "y": 2}, {"matrix": [9, 2], "x": 16, "y": 2}, {"matrix": [9, 1], "x": 17, "y": 2}, @@ -127,7 +126,7 @@ {"matrix": [8, 8], "x": 9.75, "y": 3}, {"matrix": [8, 7], "x": 10.75, "y": 3}, {"matrix": [8, 5], "x": 11.75, "y": 3}, - {"matrix": [8, 4], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [9, 3], "x": 12.75, "y": 3, "w": 2.25}, {"matrix": [8, 6], "x": 15, "y": 3}, {"matrix": [8, 2], "x": 16, "y": 3}, {"matrix": [8, 1], "x": 17, "y": 3}, @@ -221,7 +220,7 @@ {"matrix": [9, 7], "x": 10.5, "y": 2}, {"matrix": [9, 5], "x": 11.5, "y": 2}, {"matrix": [9, 4], "x": 12.5, "y": 2}, - {"matrix": [9, 3], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [8, 4], "x": 13.5, "y": 2, "w": 1.5}, {"matrix": [9, 6], "x": 15, "y": 2}, {"matrix": [9, 2], "x": 16, "y": 2}, {"matrix": [9, 1], "x": 17, "y": 2}, @@ -239,7 +238,7 @@ {"matrix": [8, 8], "x": 9.75, "y": 3}, {"matrix": [8, 7], "x": 10.75, "y": 3}, {"matrix": [8, 5], "x": 11.75, "y": 3}, - {"matrix": [8, 4], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [9, 3], "x": 12.75, "y": 3, "w": 2.25}, {"matrix": [8, 6], "x": 15, "y": 3}, {"matrix": [8, 2], "x": 16, "y": 3}, {"matrix": [8, 1], "x": 17, "y": 3}, @@ -331,7 +330,7 @@ {"matrix": [9, 7], "x": 10.5, "y": 2}, {"matrix": [9, 5], "x": 11.5, "y": 2}, {"matrix": [9, 4], "x": 12.5, "y": 2}, - {"matrix": [9, 3], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [8, 4], "x": 13.5, "y": 2, "w": 1.5}, {"matrix": [9, 6], "x": 15, "y": 2}, {"matrix": [9, 2], "x": 16, "y": 2}, {"matrix": [9, 1], "x": 17, "y": 2}, @@ -349,7 +348,7 @@ {"matrix": [8, 8], "x": 9.75, "y": 3}, {"matrix": [8, 7], "x": 10.75, "y": 3}, {"matrix": [8, 5], "x": 11.75, "y": 3}, - {"matrix": [8, 4], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [9, 3], "x": 12.75, "y": 3, "w": 2.25}, {"matrix": [8, 6], "x": 15, "y": 3}, {"matrix": [8, 2], "x": 16, "y": 3}, {"matrix": [8, 1], "x": 17, "y": 3}, @@ -926,6 +925,115 @@ {"matrix": [6, 2], "x": 16, "y": 5}, {"matrix": [6, 1], "x": 17, "y": 5} ] + }, + "LAYOUT_hotswap": { + "layout": [ + {"matrix": [5, 0], "x": 0, "y": 0}, + {"matrix": [5, 1], "x": 1, "y": 0}, + {"matrix": [5, 2], "x": 2, "y": 0}, + {"matrix": [5, 3], "x": 3, "y": 0}, + {"matrix": [5, 4], "x": 4, "y": 0}, + {"matrix": [5, 5], "x": 5, "y": 0}, + {"matrix": [5, 6], "x": 6, "y": 0}, + {"matrix": [5, 7], "x": 7, "y": 0}, + {"matrix": [5, 8], "x": 8, "y": 0}, + {"matrix": [11, 8], "x": 9, "y": 0}, + {"matrix": [11, 7], "x": 10, "y": 0}, + {"matrix": [11, 5], "x": 11, "y": 0}, + {"matrix": [11, 4], "x": 12, "y": 0}, + {"matrix": [11, 3], "x": 13, "y": 0}, + {"matrix": [11, 6], "x": 14, "y": 0}, + {"matrix": [11, 2], "x": 15, "y": 0}, + {"matrix": [11, 1], "x": 16, "y": 0}, + {"matrix": [11, 0], "x": 17, "y": 0}, + {"matrix": [6, 3], "x": 18, "y": 0}, + + {"matrix": [4, 0], "x": 0, "y": 1}, + {"matrix": [4, 1], "x": 1, "y": 1}, + {"matrix": [4, 2], "x": 2, "y": 1}, + {"matrix": [4, 3], "x": 3, "y": 1}, + {"matrix": [4, 4], "x": 4, "y": 1}, + {"matrix": [4, 5], "x": 5, "y": 1}, + {"matrix": [4, 6], "x": 6, "y": 1}, + {"matrix": [4, 7], "x": 7, "y": 1}, + {"matrix": [4, 8], "x": 8, "y": 1}, + {"matrix": [10, 8], "x": 9, "y": 1}, + {"matrix": [10, 7], "x": 10, "y": 1}, + {"matrix": [10, 5], "x": 11, "y": 1}, + {"matrix": [10, 4], "x": 12, "y": 1}, + {"matrix": [10, 6], "x": 13, "y": 1, "w": 2}, + {"matrix": [10, 2], "x": 15, "y": 1}, + {"matrix": [10, 1], "x": 16, "y": 1}, + {"matrix": [10, 0], "x": 17, "y": 1}, + {"matrix": [6, 4], "x": 18, "y": 1}, + + {"matrix": [3, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 2}, + {"matrix": [3, 2], "x": 2.5, "y": 2}, + {"matrix": [3, 3], "x": 3.5, "y": 2}, + {"matrix": [3, 4], "x": 4.5, "y": 2}, + {"matrix": [3, 5], "x": 5.5, "y": 2}, + {"matrix": [3, 6], "x": 6.5, "y": 2}, + {"matrix": [3, 7], "x": 7.5, "y": 2}, + {"matrix": [3, 8], "x": 8.5, "y": 2}, + {"matrix": [9, 8], "x": 9.5, "y": 2}, + {"matrix": [9, 7], "x": 10.5, "y": 2}, + {"matrix": [9, 5], "x": 11.5, "y": 2}, + {"matrix": [9, 4], "x": 12.5, "y": 2}, + {"matrix": [9, 3], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [9, 6], "x": 15, "y": 2}, + {"matrix": [9, 2], "x": 16, "y": 2}, + {"matrix": [9, 1], "x": 17, "y": 2}, + {"matrix": [8, 0], "x": 18, "y": 2, "h": 2}, + + {"matrix": [2, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 3}, + {"matrix": [2, 2], "x": 2.75, "y": 3}, + {"matrix": [2, 3], "x": 3.75, "y": 3}, + {"matrix": [2, 4], "x": 4.75, "y": 3}, + {"matrix": [2, 5], "x": 5.75, "y": 3}, + {"matrix": [2, 6], "x": 6.75, "y": 3}, + {"matrix": [2, 7], "x": 7.75, "y": 3}, + {"matrix": [2, 8], "x": 8.75, "y": 3}, + {"matrix": [8, 8], "x": 9.75, "y": 3}, + {"matrix": [8, 7], "x": 10.75, "y": 3}, + {"matrix": [8, 5], "x": 11.75, "y": 3}, + {"matrix": [8, 4], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [8, 6], "x": 15, "y": 3}, + {"matrix": [8, 2], "x": 16, "y": 3}, + {"matrix": [8, 1], "x": 17, "y": 3}, + + {"matrix": [1, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [1, 2], "x": 2.25, "y": 4}, + {"matrix": [1, 3], "x": 3.25, "y": 4}, + {"matrix": [1, 4], "x": 4.25, "y": 4}, + {"matrix": [1, 5], "x": 5.25, "y": 4}, + {"matrix": [1, 6], "x": 6.25, "y": 4}, + {"matrix": [1, 7], "x": 7.25, "y": 4}, + {"matrix": [1, 8], "x": 8.25, "y": 4}, + {"matrix": [7, 8], "x": 9.25, "y": 4}, + {"matrix": [7, 7], "x": 10.25, "y": 4}, + {"matrix": [7, 5], "x": 11.25, "y": 4}, + {"matrix": [7, 4], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [7, 3], "x": 14, "y": 4}, + {"matrix": [7, 6], "x": 15, "y": 4}, + {"matrix": [7, 2], "x": 16, "y": 4}, + {"matrix": [7, 1], "x": 17, "y": 4}, + {"matrix": [6, 0], "x": 18, "y": 4, "h": 2}, + + {"matrix": [0, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [0, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [0, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [0, 6], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [0, 8], "x": 10, "y": 5}, + {"matrix": [0, 7], "x": 11, "y": 5}, + {"matrix": [0, 5], "x": 12, "y": 5}, + {"matrix": [0, 4], "x": 13, "y": 5}, + {"matrix": [0, 3], "x": 14, "y": 5}, + {"matrix": [6, 6], "x": 15, "y": 5}, + {"matrix": [6, 2], "x": 16, "y": 5}, + {"matrix": [6, 1], "x": 17, "y": 5} + ] } } } diff --git a/keyboards/ymdk/melody96/matrix_diagram.md b/keyboards/ymdk/melody96/matrix_diagram.md index 29136bac07..e589bcc469 100644 --- a/keyboards/ymdk/melody96/matrix_diagram.md +++ b/keyboards/ymdk/melody96/matrix_diagram.md @@ -1,4 +1,4 @@ -# Matrix Diagram for Ymdk Melody96 +# Matrix Diagram for YMDK Melody96 ``` ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ @@ -6,9 +6,9 @@ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ ┌───────┐ │40 │41 │42 │43 │44 │45 │56 │47 │48 │A8 │A7 │A5 │A4 │A3 │A6 │A2 │A1 │A0 │64 │ │A6 │ 2u Backpsace ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┼───┼───┼───┤ └─┬─────┤ ┌───┐ -│30 │31 │32 │33 │34 │35 │36 │37 │38 │98 │97 │95 │94 │93 │96 │92 │91 │90 │ │ │ │ │ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │98 │97 │95 │94 │84 │96 │92 │91 │90 │ │ │ │ │ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┼───┼───┼───┤ ┌──┴┐93 │ ISO Enter │80 │ Numpad "+" 2u -│20 │21 │22 │23 │24 │25 │26 │27 │28 │88 │87 │85 │84 │86 │82 │81 │80 │ │84 │ │ │ │ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │88 │87 │85 │93 │86 │82 │81 │80 │ │84 │ │ │ │ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┼───┼───┼───┤ └───┴────┘ ├───┤ │10 │11 │12 │13 │14 │15 │16 │17 │18 │78 │77 │75 │74 │73 │76 │72 │71 │70 │ │ │ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┼───┼───┼───┤ ┌───────┐ │60 │ Numpad Enter 2U diff --git a/keyboards/ymdk/melody96/readme.md b/keyboards/ymdk/melody96/readme.md index a6bf470b32..e0e57a081e 100644 --- a/keyboards/ymdk/melody96/readme.md +++ b/keyboards/ymdk/melody96/readme.md @@ -1,11 +1,11 @@ -# YMDK Melody96 +# YMDK Melody96 Soldered ![melody96](https://i.imgur.com/9o0a6XFh.png) 96-key Keyboard from YMDK. The PCB for this board is also commonly used in the NYM96. * Keyboard Maintainer: [superuser41](https://github.com/kaylanm) -* Hardware Supported: melody96 +* Hardware Supported: Melody96 Soldered PCBs * Hardware Availability: [YMDK on Geekhack, group buy closed](https://geekhack.org/index.php?topic=93614.0), [NYM96 on Massdrop](https://www.massdrop.com/buy/nym96-aluminum-mechanical-keyboard?mode=guest_open) Make example for this keyboard (after setting up your build environment): @@ -14,6 +14,6 @@ Make example for this keyboard (after setting up your build environment): Flashing example for this keyboard: - make melody96:default:flash + make ymdk/melody96:default:flash 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). From b667408be3bf6a5d946ce4362d9074c60b3cd1fa Mon Sep 17 00:00:00 2001 From: Deddia Permana Date: Mon, 25 Sep 2023 01:04:39 +0700 Subject: [PATCH 144/496] add dp3000 rev2 featuring rgblight (#22084) --- keyboards/dp3000/info.json | 59 +++------------------------------ keyboards/dp3000/readme.md | 13 +++++--- keyboards/dp3000/rev1/info.json | 59 +++++++++++++++++++++++++++++++++ keyboards/dp3000/rev1/rules.mk | 1 + keyboards/dp3000/rev2/info.json | 31 +++++++++++++++++ keyboards/dp3000/rev2/rules.mk | 1 + keyboards/dp3000/rules.mk | 2 +- 7 files changed, 106 insertions(+), 60 deletions(-) create mode 100644 keyboards/dp3000/rev1/info.json create mode 100644 keyboards/dp3000/rev1/rules.mk create mode 100644 keyboards/dp3000/rev2/info.json create mode 100644 keyboards/dp3000/rev2/rules.mk diff --git a/keyboards/dp3000/info.json b/keyboards/dp3000/info.json index cdb9fe4547..442d6d6a66 100644 --- a/keyboards/dp3000/info.json +++ b/keyboards/dp3000/info.json @@ -1,6 +1,5 @@ { "manufacturer": "depermana12", - "keyboard_name": "dp3000", "maintainer": "depermana12", "diode_direction": "COL2ROW", "development_board": "promicro", @@ -10,7 +9,6 @@ "console": false, "extrakey": true, "encoder": true, - "rgb_matrix": true, "oled": true, "mousekey": false, "nkro": false @@ -20,64 +18,17 @@ }, "url": "https://github.com/depermana12", "usb": { - "device_version": "1.0.1", - "vid": "0x4450", - "pid": "0x6470" + "vid": "0x4450" }, "encoder": { "rotary": [ - { "pin_a": "B2", "pin_b": "B1"}, - { "pin_a": "F4", "pin_b": "F5"} + { "pin_a": "B2", "pin_b": "B1" }, + { "pin_a": "F4", "pin_b": "F5" } ] }, - "ws2812": { - "pin": "B5" - }, - "rgb_matrix":{ - "driver":"ws2812", - "max_brightness": 180, - "animations": { - "alphas_mods": true, - "gradient_up_down": true, - "gradient_left_right": true, - "breathing": true, - "band_sat": true, - "band_val": true, - "band_pinwheel_sat": true, - "band_pinwheel_val": true, - "band_spiral_sat": true, - "band_spiral_val": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "rainbow_moving_chevron":true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "raindrops": true, - "hue_breathing": true, - "hue_pendulum": true, - "hue_wave": true, - "typing_heatmap": true, - "solid_reactive_simple": true, - "solid_reactive": true, - "solid_reactive_multinexus": true, - "splash": true, - "solid_splash": true - }, - "layout":[ - { "matrix": [1, 0], "x": 0, "y": 32, "flags":4 }, - { "matrix": [1, 1], "x": 25, "y": 32, "flags":4 }, - { "matrix": [1, 2], "x": 37, "y": 32, "flags":4 }, - { "matrix": [1, 3], "x": 75, "y": 32, "flags":4 }, - { "matrix": [2, 0], "x": 75, "y": 16, "flags":4 }, - { "matrix": [2, 1], "x": 37, "y": 16, "flags":4 }, - { "matrix": [2, 2], "x": 25, "y": 16, "flags":4 }, - { "matrix": [2, 3], "x": 0, "y": 16, "flags":4 } - ] - }, "matrix_pins": { - "cols": ["D4", "D7", "B4", "C6"], - "rows": ["F6", "F7", "B3"] + "cols": [ "D4", "D7", "B4", "C6" ], + "rows": [ "F6", "F7", "B3" ] }, "layouts": { "LAYOUT": { diff --git a/keyboards/dp3000/readme.md b/keyboards/dp3000/readme.md index 3844a66757..8e2c8871d9 100644 --- a/keyboards/dp3000/readme.md +++ b/keyboards/dp3000/readme.md @@ -3,18 +3,21 @@ ![dp3000 macropad](https://i.imgur.com/uBHS8EYh.jpg) dp3000 is a simple yet elegant macropad, 2x4 (8 keys), dual encoder, embedded with an Atmel 32u4 chip, powered by QMK. - +* Rev. 1 Support RGB matrix +* Rev. 2 Support RGB light (underglow) * Keyboard Maintainer: [Deddia Permana](https://github.com/depermana12) -* Hardware Supported: DP3000 PCB, ATmega32u4 +* Hardware Supported: DP3000 PCB rev1 and rev2, ATmega32u4 * Hardware Availability: [tokopedia.com/gundamtricks](https://www.tokopedia.com/gundamtricks) Make example for this keyboard (after setting up your build environment): - make dp3000:default + make dp3000/rev1:default + make dp3000/rev2:default Flashing example for this keyboard: - make dp3000:default:flash + make dp3000/rev1:default:flash + make dp3000/rev2:default:flash 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). @@ -22,6 +25,6 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to Enter the bootloader in 3 ways: -* Bootmagic reset: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* Bootmagic reset: Hold down the key at (0,0) in the matrix (left rotary encoder push switch) and plug in the keyboard * Physical reset button: Briefly press reset button twice, located in front of the first rotary encoder (left rotary encoder) * Keycode in layout: Press the key mapped to QK_BOOT if it is available diff --git a/keyboards/dp3000/rev1/info.json b/keyboards/dp3000/rev1/info.json new file mode 100644 index 0000000000..7ea2d101c4 --- /dev/null +++ b/keyboards/dp3000/rev1/info.json @@ -0,0 +1,59 @@ +{ + "keyboard_name": "dp3000", + "features": { + "rgb_matrix": true + }, + "usb": { + "device_version": "1.0.1", + "pid": "0x6470" + }, + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "rainbow_moving_chevron": true, + "raindrops": true, + "solid_color": true, + "solid_reactive": true, + "solid_reactive_multinexus": true, + "solid_reactive_simple": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [1, 1], "x": 25, "y": 32, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 32, "flags": 4}, + {"matrix": [1, 3], "x": 75, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 75, "y": 16, "flags": 4}, + {"matrix": [2, 1], "x": 37, "y": 16, "flags": 4}, + {"matrix": [2, 2], "x": 25, "y": 16, "flags": 4}, + {"matrix": [2, 3], "x": 0, "y": 16, "flags": 4} + ], + "max_brightness": 180, + "sat_steps": 8, + "speed_steps": 10, + "val_steps": 8 + }, + "ws2812": { + "pin": "B5" + } +} diff --git a/keyboards/dp3000/rev1/rules.mk b/keyboards/dp3000/rev1/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/dp3000/rev1/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/dp3000/rev2/info.json b/keyboards/dp3000/rev2/info.json new file mode 100644 index 0000000000..f6f03eeb63 --- /dev/null +++ b/keyboards/dp3000/rev2/info.json @@ -0,0 +1,31 @@ +{ + "keyboard_name": "dp3000 rev2", + "features": { + "rgblight": true + }, + "usb": { + "device_version": "2.0.0", + "pid": "0x3132" + }, + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "led_count": 4, + "max_brightness": 180, + "saturation_steps": 8, + "sleep": true + }, + "ws2812": { + "pin": "B6" + } +} diff --git a/keyboards/dp3000/rev2/rules.mk b/keyboards/dp3000/rev2/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/dp3000/rev2/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/dp3000/rules.mk b/keyboards/dp3000/rules.mk index 6e7633bfe0..0f44aefd44 100644 --- a/keyboards/dp3000/rules.mk +++ b/keyboards/dp3000/rules.mk @@ -1 +1 @@ -# This file intentionally left blank +DEFAULT_FOLDER = dp3000/rev1 From a69262398ff9847685a977c68ba276fba91516b7 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sun, 24 Sep 2023 15:29:44 -0700 Subject: [PATCH 145/496] KC60 Layout Standardization and Cleanup (#22125) * Refactor `dbroqua` keymap - use `layer_names` enum - use QMK-native alias for `KC_TRNS` - apply four-space indent - grid-align keycodes - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Refactor `dbroqua_hhkb` keymap - use `layer_names` enum - use QMK-native alias for `KC_TRNS` - apply four-space indent - grid-align keycodes - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Touch-up `default` keymap - fix keycode grid alignment [style] * Refactor `sgoodwin` keymap - grid-align keycodes - apply four-space indent - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Refactor `stanleylai` keymap - delete `config.h` (use RGB config from keyboard `info.json`) - fixes non-compilation - use `layer_names` enum - use four-space indent - update keycode grid alignment - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [bugfix] [refactor] * Touch-up `via` keymap - fix keycode grid alignment [style] * Refactor `wigguno` keymap - use four-space indent - use QMK-native keycode alias for `KC_DELETE` - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Remove `LAYOUT` macro Superseded by `LAYOUT_all`. [chore] * Add `LAYOUT_60_ansi_split_bs_rshift` [enhancement] * Add `LAYOUT_60_tsangan_hhkb` [enhancement] * Add `LAYOUT_60_ansi_tsangan` [enhancement] * Add `LAYOUT_60_iso_split_bs_rshift` [enhancement] * Add `LAYOUT_60_iso` [enhancement] * Add `LAYOUT_60_iso_tsangan_split_bs_rshift` [enhancement] * Add `LAYOUT_60_iso_tsangan` [enhancement] * Add `LAYOUT_60_hhkb` [enhancement] * Add `LAYOUT_60_true_hhkb` [enhancement] * Add layout/matrix diagram [docs] * Add `LAYOUT_60_abnt2` [enhancement] * Extend Community Layout support Add support for community layouts: - `60_ansi_split_bs_rshift` - `60_ansi_tsangan` - `60_tsangan_hhkb` - `60_hhkb` - `60_abnt2` - `60_iso` - `60_iso_split_bs_rshift` - `60_iso_tsangan` [enhancement] * Fix `LAYOUT_60_abnt2` support [bugfix] --- keyboards/kc60/info.json | 773 +++++++++++++++++-- keyboards/kc60/keymaps/dbroqua/keymap.c | 139 ++-- keyboards/kc60/keymaps/dbroqua_hhkb/keymap.c | 89 ++- keyboards/kc60/keymaps/default/keymap.c | 2 +- keyboards/kc60/keymaps/sgoodwin/keymap.c | 50 +- keyboards/kc60/keymaps/stanleylai/config.h | 3 - keyboards/kc60/keymaps/stanleylai/keymap.c | 72 +- keyboards/kc60/keymaps/via/keymap.c | 2 +- keyboards/kc60/keymaps/wigguno/keymap.c | 84 +- keyboards/kc60/matrix_diagram.md | 33 + 10 files changed, 947 insertions(+), 300 deletions(-) delete mode 100644 keyboards/kc60/keymaps/stanleylai/config.h create mode 100644 keyboards/kc60/matrix_diagram.md diff --git a/keyboards/kc60/info.json b/keyboards/kc60/info.json index ea0e7998b8..5dbead0c5f 100644 --- a/keyboards/kc60/info.json +++ b/keyboards/kc60/info.json @@ -41,7 +41,7 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", - "community_layouts": ["60_ansi"], + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_hhkb", "60_abnt2", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan"], "layouts": { "LAYOUT_all": { "layout": [ @@ -116,79 +116,6 @@ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} ] }, - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 9], "x": 14, "y": 0}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, "LAYOUT_60_ansi": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -257,6 +184,704 @@ {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [4, 9], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 12], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [4, 9], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 12], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [4, 9], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 12], "x": 14, "y": 3}, + + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4} + ] + }, + "LAYOUT_60_true_hhkb": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [4, 9], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 12], "x": 14, "y": 3}, + + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 4, "y": 4, "w": 6}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 11.5, "y": 4} + ] + }, + "LAYOUT_60_abnt2": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3}, + {"matrix": [3, 13], "x": 13.25, "y": 3, "w": 1.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [4, 9], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 12], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [4, 9], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 12], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] } } } diff --git a/keyboards/kc60/keymaps/dbroqua/keymap.c b/keyboards/kc60/keymaps/dbroqua/keymap.c index ee489bbe91..22ef319103 100644 --- a/keyboards/kc60/keymaps/dbroqua/keymap.c +++ b/keyboards/kc60/keymaps/dbroqua/keymap.c @@ -1,82 +1,73 @@ #include QMK_KEYBOARD_H -#define _QWERTY 0 -#define _FNCAPS 1 -#define _FNRIGHTSHIFT 2 - -// Fillers to make layering more clear -#define ______ KC_TRNS - -/* - * | | | - * | | | - * | | | - * | | | - * | | - */ +enum layer_names { + _QWERTY, + _FNCAPS, + _FNRIGHTSHIFT +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Qwerty - * ,-----------------------------------------------------------------------------------------. - * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | - * |-----------------------------------------------------------------------------------------+ - * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp | - * |-----------------------------------------------------------------------------------------+ - * | Caps/FN1| A | S | D | F | G | H | J | K | L | ; | ' | Enter | - * |-----------------------------------------------------------------------------------------+ - * | Shift | Z | X | C | V | B | N | M | , | . | / | Up | FN2 | - * |-----------------------------------------------------------------------------------------+ - * | Ctrl | Gui | Alt | Space | AltGr | Left | Down | Right | - * `-----------------------------------------------------------------------------------------' - */ - [0] = LAYOUT( /* Basic QWERTY */ - KC_ESC, 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_BSLS, - 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_BSPC, - LT(_FNCAPS, 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_NO, KC_ENT, - KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_FNRIGHTSHIFT), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_GRV, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT - ), + /* Qwerty + * ,-----------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + * |-----------------------------------------------------------------------------------------+ + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp | + * |-----------------------------------------------------------------------------------------+ + * | Caps/FN1| A | S | D | F | G | H | J | K | L | ; | ' | Enter | + * |-----------------------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / | Up | FN2 | + * |-----------------------------------------------------------------------------------------+ + * | Ctrl | Gui | Alt | Space | AltGr | Left | Down | Right | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_all( /* Basic QWERTY */ + KC_ESC, 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_BSLS, KC_GRV, + 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_BSPC, + LT(_FNCAPS, 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_NO, KC_ENT, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, MO(_FNRIGHTSHIFT), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT + ), -/* Layer 1 - * ,-----------------------------------------------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | - * |-----------------------------------------------------------------------------------------+ - * | | | | | | | | | | | | | | | - * |-----------------------------------------------------------------------------------------+ - * | | | | | | | | Psc | | | | | | - * |-----------------------------------------------------------------------------------------+ - * | | Led | Led+| Led-| | Mute| Vol+| Vol-| | | | Play | | - * |-----------------------------------------------------------------------------------------+ - * | | | | | | Prev | Stop | Next | - * `-----------------------------------------------------------------------------------------' - */ - [_FNCAPS] = LAYOUT( /* Layer 1 */ - ______, 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_INS, - ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, - ______, ______, ______, ______, ______, ______, ______, KC_PSCR,______, ______, ______, ______, ______, ______, - ______, ______, BL_TOGG, BL_UP, BL_DOWN,______,KC_MUTE,KC_VOLU,KC_VOLD,______, ______, ______, ______,KC_MPLY, - ______, ______, ______, ______, KC_DEL, ______, KC_MPRV, KC_MSTP, KC_MNXT - ), + /* Layer 1 + * ,-----------------------------------------------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | + * |-----------------------------------------------------------------------------------------+ + * | | | | | | | | | | | | | | | + * |-----------------------------------------------------------------------------------------+ + * | | | | | | | | Psc | | | | | | + * |-----------------------------------------------------------------------------------------+ + * | | Led | Led+| Led-| | Mute| Vol+| Vol-| | | | Play | | + * |-----------------------------------------------------------------------------------------+ + * | | | | | | Prev | Stop | Next | + * `-----------------------------------------------------------------------------------------' + */ + [_FNCAPS] = LAYOUT_all( /* Layer 1 */ + _______, 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_INS, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, _______, _______, _______, + _______, _______, BL_TOGG, BL_UP, BL_DOWN, _______, KC_MUTE, KC_VOLU, KC_VOLD, _______, _______, _______, KC_MPLY, _______, + _______, _______, _______, _______, _______, KC_MPRV, KC_MSTP, KC_MNXT + ), -/* Layer 2 - * ,-----------------------------------------------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------------------------------------+ - * | | | | | | | | | | | | | | | - * |-----------------------------------------------------------------------------------------+ - * | | | | | | | | | | | | | | - * |-----------------------------------------------------------------------------------------+ - * | | | | | | | | | | | | PgUp | | - * |-----------------------------------------------------------------------------------------+ - * | | | | | | Home | PgDown| End | - * `-----------------------------------------------------------------------------------------' - */ - [_FNRIGHTSHIFT] = LAYOUT( /* Layer 2 */ - ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, - ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, - ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, - ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_PGUP, - ______, ______, ______, ______, ______, ______, KC_HOME,KC_PGDN,KC_END - ), + /* Layer 2 + * ,-----------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------------------------------------+ + * | | | | | | | | | | | | | | | + * |-----------------------------------------------------------------------------------------+ + * | | | | | | | | | | | | | | + * |-----------------------------------------------------------------------------------------+ + * | | | | | | | | | | | | PgUp | | + * |-----------------------------------------------------------------------------------------+ + * | | | | | | Home | PgDown| End | + * `-----------------------------------------------------------------------------------------' + */ + [_FNRIGHTSHIFT] = LAYOUT_all( /* Layer 2 */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), }; diff --git a/keyboards/kc60/keymaps/dbroqua_hhkb/keymap.c b/keyboards/kc60/keymaps/dbroqua_hhkb/keymap.c index be15be6174..2189e5bc5c 100644 --- a/keyboards/kc60/keymaps/dbroqua_hhkb/keymap.c +++ b/keyboards/kc60/keymaps/dbroqua_hhkb/keymap.c @@ -1,52 +1,51 @@ #include QMK_KEYBOARD_H -#define _QWERTY 0 -#define _FN 1 - -// Fillers to make layering more clear -#define ______ KC_TRNS +enum layer_names { + _QWERTY, + _FN +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Qwerty - * ,-----------------------------------------------------------------------------------------. - * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | - * |-----------------------------------------------------------------------------------------+ - * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp | - * |-----------------------------------------------------------------------------------------+ - * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | Enter | - * |-----------------------------------------------------------------------------------------+ - * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN | - * |-----------------------------------------------------------------------------------------+ - * | LGUI | LAlt | Space | RAlt | RGUI | - * `-----------------------------------------------------------------' - */ - [0] = LAYOUT( /* Basic QWERTY */ - KC_ESC, 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_BSLS, - 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_BSPC, - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, - KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_FN), KC_RSFT, - ______, KC_LGUI, KC_LALT, KC_SPC, KC_GRV, KC_RALT, KC_RGUI, ______, ______ - ), + /* Qwerty + * ,-----------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + * |-----------------------------------------------------------------------------------------+ + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp | + * |-----------------------------------------------------------------------------------------+ + * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | Enter | + * |-----------------------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN | + * |-----------------------------------------------------------------------------------------+ + * | LGUI | LAlt | Space | RAlt | RGUI | + * `-----------------------------------------------------------------' + */ + [0] = LAYOUT_all( /* Basic QWERTY */ + KC_ESC, 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_BSLS, KC_GRV, + 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_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), + _______, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, _______, _______ + ), -/* Layer 1 - * ,-----------------------------------------------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | - * |-----------------------------------------------------------------------------------------+ - * | CAPS | Led | Led-| Led+| | | | | Psc | Slck| Paus| Up | | | - * |-----------------------------------------------------------------------------------------+ - * | | Vol-| Vol+| Mute| | | * | / | Home| PgUp| Left|Right| | - * |-----------------------------------------------------------------------------------------+ - * | | Prev| Play| Next| | | + | - | End |PgDn| Down| | | - * |-----------------------------------------------------------------------------------------+ - * | | | | Stop | | - * `-----------------------------------------------------------------' - */ - [_FN] = LAYOUT( /* Layer 1 */ - ______, 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_INS, - KC_CAPS, BL_TOGG, BL_UP, BL_DOWN,______, ______, ______, ______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, ______, ______, - ______, KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS,KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, ______, ______, - ______, ______, KC_MPRV, KC_MPLY, KC_MNXT,______,______,KC_PPLS,KC_PMNS,KC_END, KC_PGDN, KC_DOWN, ______,______, - ______, ______, ______, ______, KC_DEL, KC_MSTP, ______, ______, ______ - ) + /* Layer 1 + * ,-----------------------------------------------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | + * |-----------------------------------------------------------------------------------------+ + * | CAPS | Led | Led-| Led+| | | | | Psc | Slck| Paus| Up | | | + * |-----------------------------------------------------------------------------------------+ + * | | Vol-| Vol+| Mute| | | * | / | Home| PgUp| Left|Right| | + * |-----------------------------------------------------------------------------------------+ + * | | Prev| Play| Next| | | + | - | End |PgDn| Down| | | + * |-----------------------------------------------------------------------------------------+ + * | | | | Stop | | + * `-----------------------------------------------------------------' + */ + [_FN] = LAYOUT_all( /* Layer 1 */ + _______, 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_INS, KC_DEL, + KC_CAPS, BL_TOGG, BL_UP, BL_DOWN, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, _______, + _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, KC_MSTP, _______, _______, _______ + ) }; diff --git a/keyboards/kc60/keymaps/default/keymap.c b/keyboards/kc60/keymaps/default/keymap.c index dfadce34d8..b135569e91 100644 --- a/keyboards/kc60/keymaps/default/keymap.c +++ b/keyboards/kc60/keymaps/default/keymap.c @@ -9,7 +9,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, LT(1, KC_APP), KC_RCTL ), [1] = LAYOUT_all( - QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SCRL, KC_PAUS, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, BL_DOWN, BL_TOGG, BL_UP, BL_BRTG, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, _______, _______, diff --git a/keyboards/kc60/keymaps/sgoodwin/keymap.c b/keyboards/kc60/keymaps/sgoodwin/keymap.c index 75091a1557..e62e89d016 100644 --- a/keyboards/kc60/keymaps/sgoodwin/keymap.c +++ b/keyboards/kc60/keymaps/sgoodwin/keymap.c @@ -2,29 +2,29 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * Toggles between colemak and qwerty by tapping the bottom right key. - * Holding capslock key gives a layer like the KBParadise v60. - */ - [0] = LAYOUT( /* Basic Colemak */ - KC_ESC, 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_BSPC, - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, - MO(2), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_NO, KC_ENT, - KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_NO, KC_RGUI, KC_RALT, KC_RCTL, DF(1) - ), - [1] = LAYOUT( /* Basic QWERTY */ - KC_ESC, 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_BSPC, - 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, - MO(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, - KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_NO, KC_RGUI, KC_RALT, KC_RCTL, DF(0) - ), - [2] = LAYOUT( /* KBP v60-like arrows, media keys, etc */ - 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_DEL, - KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, BL_UP, BL_DOWN, BL_STEP, - KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_TRNS, - KC_TRNS, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_NO, DB_TOGG, QK_BOOT, KC_TRNS, KC_NO - ), + /* + * Toggles between colemak and qwerty by tapping the bottom right key. + * Holding capslock key gives a layer like the KBParadise v60. + */ + [0] = LAYOUT_all( /* Basic Colemak */ + KC_ESC, 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_BSPC, KC_NO, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, + MO(2), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_NO, KC_ENT, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, DF(1) + ), + [1] = LAYOUT_all( /* Basic QWERTY */ + KC_ESC, 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_BSPC, KC_NO, + 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, + MO(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, DF(0) + ), + [2] = LAYOUT_all( /* KBP v60-like arrows, media keys, etc */ + 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_DEL, KC_NO, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, BL_UP, BL_DOWN, BL_STEP, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_TRNS, + KC_TRNS, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, DB_TOGG, QK_BOOT, KC_TRNS, KC_NO + ), }; diff --git a/keyboards/kc60/keymaps/stanleylai/config.h b/keyboards/kc60/keymaps/stanleylai/config.h deleted file mode 100644 index b5024a6d02..0000000000 --- a/keyboards/kc60/keymaps/stanleylai/config.h +++ /dev/null @@ -1,3 +0,0 @@ -// Use configs from WS2812 enabled Keymap - -#include "../ws2812/config.h" diff --git a/keyboards/kc60/keymaps/stanleylai/keymap.c b/keyboards/kc60/keymaps/stanleylai/keymap.c index 9440ab1c78..6a1503ce64 100644 --- a/keyboards/kc60/keymaps/stanleylai/keymap.c +++ b/keyboards/kc60/keymaps/stanleylai/keymap.c @@ -5,45 +5,47 @@ // The underscores don't mean anything - you can have a layer called STUFF or any other name. // Layer names don't all need to be of the same length, obviously, and you can also skip them // entirely and just use numbers. -#define _BL 0 -#define _FL 1 -#define _RGBL 2 +enum layer_names { + _BL, + _FL, + _RGBL +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -// See base_layer.png and rgb_layer.png for layout reference + // See base_layer.png and rgb_layer.png for layout reference -// Base Default Layer -// Mac Modifier Layout. Use BootMagic to toggle GUI and ALT positions. -[_BL] = LAYOUT( - QK_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_BSPC, - 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, - LT(_FL, 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_NO, KC_ENT, - KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, MO(_FL), KC_UP, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_NO, KC_RGUI,KC_LEFT, KC_DOWN, KC_RGHT), + // Base Default Layer + // Mac Modifier Layout. Use BootMagic to toggle GUI and ALT positions. + [_BL] = LAYOUT_all( + QK_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_BSPC, KC_NO, + 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, + LT(_FL, 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_NO, KC_ENT, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, MO(_FL), + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT), -// Function layer -[_FL] = 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_DEL, - KC_NO, KC_MPRV,KC_UP, KC_MNXT,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR,KC_SCRL, KC_PAUS, KC_INS, - KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_TRNS,KC_NO, KC_MUTE,KC_VOLD,KC_VOLU,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, LT(_RGBL, KC_PGUP), - KC_TRNS,KC_TRNS,KC_TRNS, KC_MPLY, KC_NO, KC_TRNS,KC_HOME, KC_PGDN, KC_END), + // Function layer + [_FL] = LAYOUT_all( + 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_DEL, KC_NO, + KC_NO, KC_MPRV, KC_UP, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR, KC_SCRL, KC_PAUS, KC_INS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, LT(_RGBL, KC_PGUP), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_HOME, KC_PGDN, KC_END), -// RGB Layer -[_RGBL] = LAYOUT( - #ifdef RGBLIGHT_ENABLE - QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_TRNS,KC_NO, RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,BL_STEP,BL_TOGG, KC_TRNS, KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_NO, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS - #else - QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_STEP,BL_TOGG, KC_TRNS, KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_NO, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS - #endif - ), + // RGB Layer + [_RGBL] = LAYOUT_all( + #ifdef RGBLIGHT_ENABLE + QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_NO, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_STEP, BL_TOGG, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + #else + QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_STEP, BL_TOGG, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + #endif + ), }; diff --git a/keyboards/kc60/keymaps/via/keymap.c b/keyboards/kc60/keymaps/via/keymap.c index d8925172fd..877d62e04f 100644 --- a/keyboards/kc60/keymaps/via/keymap.c +++ b/keyboards/kc60/keymaps/via/keymap.c @@ -9,7 +9,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, LT(1, KC_APP), KC_RCTL ), [1] = LAYOUT_all( - QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SCRL, KC_PAUS, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, BL_DOWN, BL_TOGG, BL_UP, BL_BRTG, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, _______, _______, diff --git a/keyboards/kc60/keymaps/wigguno/keymap.c b/keyboards/kc60/keymaps/wigguno/keymap.c index 8d1ae5f1c5..ba4571c4e4 100644 --- a/keyboards/kc60/keymaps/wigguno/keymap.c +++ b/keyboards/kc60/keymaps/wigguno/keymap.c @@ -6,47 +6,47 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Basic QWERTY - * ,-----------------------------------------------------------. - * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | - * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | - * |-----------------------------------------------------------| - * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return | - * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | - * |-----------------------------------------------------------| - * |Ctrl|Gui |Alt | Space |Alt |FN |Gui |Ctrl | - * `-----------------------------------------------------------' - */ - [0] = LAYOUT( - KC_ESC, 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_BSPC, - 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, - KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_RALT, MO(1), KC_RGUI, KC_RCTL - ), + /* Basic QWERTY + * ,-----------------------------------------------------------. + * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | + * |-----------------------------------------------------------| + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Alt |FN |Gui |Ctrl | + * `-----------------------------------------------------------' + */ + [0] = LAYOUT_all( + KC_ESC, 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_BSPC, KC_NO, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL + ), - /* - * ,-----------------------------------------------------------. - * | ` |F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| Del | - * |-----------------------------------------------------------| - * | | | Up| | | | | | | | PS| | | | - * |-----------------------------------------------------------| - * | |Lft|Dwn|Rgt| |BL-|BL+| | | | | | | - * |-----------------------------------------------------------| - * | |Prv| PP|Nxt| | | | |Hom|End| | | - * |-----------------------------------------------------------| - * | Rst| | | BL | | | | | - * `-----------------------------------------------------------' - * PS = Print Screen - * PP = Play/Pause - */ - [1] = LAYOUT( /* Function Layer */ - 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_DELETE, - KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, BL_DOWN, BL_UP, 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_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, - QK_BOOT, KC_TRNS, KC_TRNS, BL_TOGG, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), + /* + * ,-----------------------------------------------------------. + * | ` |F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| Del | + * |-----------------------------------------------------------| + * | | | Up| | | | | | | | PS| | | | + * |-----------------------------------------------------------| + * | |Lft|Dwn|Rgt| |BL-|BL+| | | | | | | + * |-----------------------------------------------------------| + * | |Prv| PP|Nxt| | | | |Hom|End| | | + * |-----------------------------------------------------------| + * | Rst| | | BL | | | | | + * `-----------------------------------------------------------' + * PS = Print Screen + * PP = Play/Pause + */ + [1] = LAYOUT_all( /* Function Layer */ + 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_DEL, KC_NO, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, BL_DOWN, BL_UP, 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_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, + QK_BOOT, KC_TRNS, KC_TRNS, BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), }; diff --git a/keyboards/kc60/matrix_diagram.md b/keyboards/kc60/matrix_diagram.md new file mode 100644 index 0000000000..d8d63ca5ec --- /dev/null +++ b/keyboards/kc60/matrix_diagram.md @@ -0,0 +1,33 @@ +# Matrix Diagram for NPKC KC60 + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │49 │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │2C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │3C │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ +│40 │41 │42 │45 │4A │4B │4C │4D │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +┌────────┐ ┌──────────┐ +│30 │ 2.25u LShift 2.75u RShift │3D │ +└────────┘ └──────────┘ + ┌───┬──────┐ + 1u/1.75u RShift (JIS) │3C │3D │ + └───┴──────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│40 │41 │42 │45 │4B │4C │4D │ Tsangan/WKL/HHKB +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +┌─────┬───┬─────┬───────────────────────┬─────┬───┬───┬─────┐ +│40 │41 │42 │45 │4A │4B │4C │4D │ 6u Spacebar +└─────┴───┴─────┴───────────────────────┴─────┴───┴───┴─────┘ + ┌───┬─────┬───────────────────────┬─────┬───┐ + │41 │42 │45 │4A │4B │ True HHKB + └───┴─────┴───────────────────────┴─────┴───┘ +``` From ee4e22d5ea49fdf641671eb34c913cf5ec445e5a Mon Sep 17 00:00:00 2001 From: Tom singleton Date: Mon, 25 Sep 2023 02:43:55 +0100 Subject: [PATCH 146/496] Update feature_rgblight.md (#21483) --- docs/feature_rgblight.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/feature_rgblight.md b/docs/feature_rgblight.md index 39b7e6a6f1..5aeffa81b8 100644 --- a/docs/feature_rgblight.md +++ b/docs/feature_rgblight.md @@ -22,7 +22,7 @@ On keyboards with onboard RGB LEDs, it is usually enabled by default. If it is n RGBLIGHT_ENABLE = yes ``` -?> There are additional configuration options for ARM controllers that offer increased performance over the default WS2812 bitbang driver. Please see [WS2812 Driver](ws2812_driver.md) for more information. +?> There are additional configuration options for ARM controllers that offer increased performance over the default WS2812 bitbang driver. Please see [WS2812 Driver](ws2812_driver.md) for more information. Also if you are using an RP2040 based board you will need to use the `vendor` driver detailed in the [PIO section here](ws2812_driver.md#pio). For APA102 LEDs, add the following to your `rules.mk`: From 9b429bd12d6375e6141629af9c330072b6c3c024 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Mon, 25 Sep 2023 11:50:35 +1000 Subject: [PATCH 147/496] Revert "Update feature_rgblight.md" (#22132) --- docs/feature_rgblight.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/feature_rgblight.md b/docs/feature_rgblight.md index 5aeffa81b8..39b7e6a6f1 100644 --- a/docs/feature_rgblight.md +++ b/docs/feature_rgblight.md @@ -22,7 +22,7 @@ On keyboards with onboard RGB LEDs, it is usually enabled by default. If it is n RGBLIGHT_ENABLE = yes ``` -?> There are additional configuration options for ARM controllers that offer increased performance over the default WS2812 bitbang driver. Please see [WS2812 Driver](ws2812_driver.md) for more information. Also if you are using an RP2040 based board you will need to use the `vendor` driver detailed in the [PIO section here](ws2812_driver.md#pio). +?> There are additional configuration options for ARM controllers that offer increased performance over the default WS2812 bitbang driver. Please see [WS2812 Driver](ws2812_driver.md) for more information. For APA102 LEDs, add the following to your `rules.mk`: From 99290b4c7e891e69ca161d79c74a0e32014645bb Mon Sep 17 00:00:00 2001 From: jacob-w-gable <82864625+jacob-w-gable@users.noreply.github.com> Date: Sun, 24 Sep 2023 21:23:31 -0500 Subject: [PATCH 148/496] Add full solenoid support on split keyboards (#21583) Co-authored-by: Jacob Gable --- docs/feature_split_keyboard.md | 2 +- drivers/haptic/solenoid.c | 5 ++--- quantum/haptic.c | 12 +++++++++++- quantum/keyboard.c | 14 +++++++------- 4 files changed, 21 insertions(+), 12 deletions(-) diff --git a/docs/feature_split_keyboard.md b/docs/feature_split_keyboard.md index 1705ea9222..c67f04995b 100644 --- a/docs/feature_split_keyboard.md +++ b/docs/feature_split_keyboard.md @@ -298,7 +298,7 @@ This enables transmitting the pointing device status to the master side of the s #define SPLIT_HAPTIC_ENABLE ``` -This enables triggering of haptic feedback on the slave side of the split keyboard. For DRV2605L this will send the mode, but for solenoids it is expected that the desired mode is already set up on the slave. +This enables the triggering of haptic feedback on the slave side of the split keyboard. This will send information to the slave side such as the mode, dwell, and whether buzz is enabled. ```c #define SPLIT_ACTIVITY_ENABLE diff --git a/drivers/haptic/solenoid.c b/drivers/haptic/solenoid.c index 4e43903255..da4095cda4 100644 --- a/drivers/haptic/solenoid.c +++ b/drivers/haptic/solenoid.c @@ -23,7 +23,6 @@ #include "util.h" #include -uint8_t solenoid_dwell = SOLENOID_DEFAULT_DWELL; static pin_t solenoid_pads[] = SOLENOID_PINS; #define NUMBER_OF_SOLENOIDS ARRAY_SIZE(solenoid_pads) bool solenoid_on[NUMBER_OF_SOLENOIDS] = {false}; @@ -53,7 +52,7 @@ void solenoid_set_buzz(uint8_t buzz) { } void solenoid_set_dwell(uint8_t dwell) { - solenoid_dwell = dwell; + haptic_set_dwell(dwell); } /** @@ -119,7 +118,7 @@ void solenoid_check(void) { elapsed[i] = timer_elapsed(solenoid_start[i]); // Check if it's time to finish this solenoid click cycle - if (elapsed[i] > solenoid_dwell) { + if (elapsed[i] > haptic_config.dwell) { solenoid_stop(i); continue; } diff --git a/quantum/haptic.c b/quantum/haptic.c index 5a700dca38..a1fea29625 100644 --- a/quantum/haptic.c +++ b/quantum/haptic.c @@ -20,6 +20,7 @@ #include "debug.h" #include "usb_device_state.h" #include "gpio.h" +#include "keyboard.h" #ifdef HAPTIC_DRV2605L # include "drv2605l.h" @@ -58,6 +59,11 @@ static void set_haptic_config_enable(bool enabled) { } void haptic_init(void) { +// only initialize on secondary boards if the user desires +#if defined(SPLIT_KEYBOARD) && !defined(SPLIT_HAPTIC_ENABLE) + if (!is_keyboard_master()) return; +#endif + if (!eeconfig_is_enabled()) { eeconfig_init(); } @@ -99,8 +105,12 @@ void haptic_init(void) { void haptic_task(void) { #ifdef HAPTIC_SOLENOID +// Only run task on seconary boards if the user desires +# if defined(SPLIT_KEYBOARD) && !defined(SPLIT_HAPTIC_ENABLE) + if (!is_keyboard_master()) return; +# endif solenoid_check(); -#endif +#endif // HAPTIC_SOLENOID } void eeconfig_debug_haptic(void) { diff --git a/quantum/keyboard.c b/quantum/keyboard.c index c2ca15d52d..cf3361dff9 100644 --- a/quantum/keyboard.c +++ b/quantum/keyboard.c @@ -395,9 +395,6 @@ void quantum_init(void) { #if defined(UNICODE_COMMON_ENABLE) unicode_input_mode_init(); #endif -#ifdef HAPTIC_ENABLE - haptic_init(); -#endif } /** \brief keyboard_init @@ -462,6 +459,9 @@ void keyboard_init(void) { #ifdef BLUETOOTH_ENABLE bluetooth_init(); #endif +#ifdef HAPTIC_ENABLE + haptic_init(); +#endif #if defined(DEBUG_MATRIX_SCAN_RATE) && defined(CONSOLE_ENABLE) debug_enable = true; @@ -617,10 +617,6 @@ void quantum_task(void) { decay_wpm(); #endif -#ifdef HAPTIC_ENABLE - haptic_task(); -#endif - #ifdef DIP_SWITCH_ENABLE dip_switch_read(false); #endif @@ -726,5 +722,9 @@ void keyboard_task(void) { bluetooth_task(); #endif +#ifdef HAPTIC_ENABLE + haptic_task(); +#endif + led_task(); } From 133be8759a2a01bd0e917543e6b1f3d84830d9a9 Mon Sep 17 00:00:00 2001 From: "T.A" <83424097+t0kies@users.noreply.github.com> Date: Mon, 25 Sep 2023 04:24:57 +0200 Subject: [PATCH 149/496] =?UTF-8?q?included=20keyboard.h.=20To=20use=20is?= =?UTF-8?q?=5Fkeyboard=5Fmaster=20with=20a=20split=20with=20an=20i?= =?UTF-8?q?=E2=80=A6=20(#21571)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Drashna Jaelre Co-authored-by: tokky --- drivers/oled/oled_driver.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/oled/oled_driver.c b/drivers/oled/oled_driver.c index 8ff6e0426c..b9f7207813 100644 --- a/drivers/oled/oled_driver.c +++ b/drivers/oled/oled_driver.c @@ -19,6 +19,9 @@ along with this program. If not, see . # include "spi_master.h" #elif defined(OLED_TRANSPORT_I2C) # include "i2c_master.h" +# if defined(USE_I2C) && defined(SPLIT_KEYBOARD) +# include "keyboard.h" +# endif #endif #include "oled_driver.h" #include OLED_FONT_H From 246f3cb4d2d84df7869709d0f9ae5f3e2d99d4cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Mon, 25 Sep 2023 10:25:24 +0800 Subject: [PATCH 150/496] Improve directional transition of overlapping mouse keys (#21494) --- quantum/mousekey.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/quantum/mousekey.c b/quantum/mousekey.c index c982a2f40b..3910811752 100644 --- a/quantum/mousekey.c +++ b/quantum/mousekey.c @@ -389,7 +389,20 @@ void mousekey_on(uint8_t code) { if (mouse_timer == 0) { mouse_timer = timer_read(); } -# endif /* #ifdef MK_KINETIC_SPEED */ +# endif + +# ifndef MOUSEKEY_INERTIA + // If mouse report is not zero, the current mousekey press is overlapping + // with another. Restart acceleration for smoother directional transition. + if (mouse_report.x || mouse_report.y || mouse_report.h || mouse_report.v) { +# ifdef MK_KINETIC_SPEED + mouse_timer = timer_read() - (MOUSEKEY_INTERVAL << 2); +# else + mousekey_repeat = MOUSEKEY_MOVE_DELTA; + mousekey_wheel_repeat = MOUSEKEY_WHEEL_DELTA; +# endif + } +# endif // ifndef MOUSEKEY_INERTIA # ifdef MOUSEKEY_INERTIA From 1d94de5358a44e08d9c1a07ab76df0b85d029ab7 Mon Sep 17 00:00:00 2001 From: Nebuleon <2391500+Nebuleon@users.noreply.github.com> Date: Sun, 24 Sep 2023 22:26:02 -0400 Subject: [PATCH 151/496] Optimize the additive DAC code, fixing performance-related hangs (#21662) --- platforms/chibios/drivers/audio_dac_additive.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/platforms/chibios/drivers/audio_dac_additive.c b/platforms/chibios/drivers/audio_dac_additive.c index 22e4fa2608..7bb5cfffb5 100644 --- a/platforms/chibios/drivers/audio_dac_additive.c +++ b/platforms/chibios/drivers/audio_dac_additive.c @@ -121,24 +121,27 @@ __attribute__((weak)) uint16_t dac_value_generate(void) { /* doing additive wave synthesis over all currently playing tones = adding up * sine-wave-samples for each frequency, scaled by the number of active tones */ - uint16_t value = 0; - float frequency = 0.0f; + uint_fast16_t value = 0; + float frequency = 0.0f; - for (uint8_t i = 0; i < active_tones_snapshot_length; i++) { + for (size_t i = 0; i < active_tones_snapshot_length; i++) { /* Note: a user implementation does not have to rely on the active_tones_snapshot, but * could directly query the active frequencies through audio_get_processed_frequency */ frequency = active_tones_snapshot[i]; - dac_if[i] = dac_if[i] + ((frequency * AUDIO_DAC_BUFFER_SIZE) / AUDIO_DAC_SAMPLE_RATE) * 2 / 3; + float new_dac_if = dac_if[i]; + new_dac_if += frequency * ((float)AUDIO_DAC_BUFFER_SIZE / AUDIO_DAC_SAMPLE_RATE * 2.0f / 3.0f); /*Note: the 2/3 are necessary to get the correct frequencies on the * DAC output (as measured with an oscilloscope), since the gpt * timer runs with 3*AUDIO_DAC_SAMPLE_RATE; and the DAC callback * is called twice per conversion.*/ - dac_if[i] = fmodf(dac_if[i], AUDIO_DAC_BUFFER_SIZE); + while (new_dac_if >= AUDIO_DAC_BUFFER_SIZE) + new_dac_if -= AUDIO_DAC_BUFFER_SIZE; + dac_if[i] = new_dac_if; // Wavetable generation/lookup - uint16_t dac_i = (uint16_t)dac_if[i]; + size_t dac_i = (size_t)new_dac_if; #if defined(AUDIO_DAC_SAMPLE_WAVEFORM_SINE) value += dac_buffer_sine[dac_i] / active_tones_snapshot_length; From 2f4e1a78ad98fce1da056715aa5304dfdc9c7c49 Mon Sep 17 00:00:00 2001 From: Nebuleon <2391500+Nebuleon@users.noreply.github.com> Date: Sun, 24 Sep 2023 22:26:32 -0400 Subject: [PATCH 152/496] Reduce popping during audio initialization using the additive DAC (#21642) --- platforms/chibios/drivers/audio_dac_additive.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/platforms/chibios/drivers/audio_dac_additive.c b/platforms/chibios/drivers/audio_dac_additive.c index 7bb5cfffb5..26e044b048 100644 --- a/platforms/chibios/drivers/audio_dac_additive.c +++ b/platforms/chibios/drivers/audio_dac_additive.c @@ -84,7 +84,7 @@ static const dacsample_t dac_buffer_trapezoid[AUDIO_DAC_BUFFER_SIZE] = {0x0, 0 0xfff, 0xfdf, 0xf7f, 0xf1f, 0xebf, 0xe5f, 0xdff, 0xd9f, 0xd3f, 0xcdf, 0xc7f, 0xc1f, 0xbbf, 0xb5f, 0xaff, 0xa9f, 0xa3f, 0x9df, 0x97f, 0x91f, 0x8bf, 0x85f, 0x7ff, 0x79f, 0x73f, 0x6df, 0x67f, 0x61f, 0x5bf, 0x55f, 0x4ff, 0x49f, 0x43f, 0x3df, 0x37f, 0x31f, 0x2bf, 0x25f, 0x1ff, 0x19f, 0x13f, 0xdf, 0x7f, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; #endif // AUDIO_DAC_SAMPLE_WAVEFORM_TRAPEZOID -static dacsample_t dac_buffer_empty[AUDIO_DAC_BUFFER_SIZE] = {AUDIO_DAC_OFF_VALUE}; +static dacsample_t dac_buffer[AUDIO_DAC_BUFFER_SIZE]; /* keep track of the sample position for for each frequency */ static float dac_if[AUDIO_MAX_SIMULTANEOUS_TONES] = {0.0}; @@ -311,10 +311,17 @@ void audio_driver_initialize(void) { DACD1.params->dac->CR &= ~DAC_CR_BOFF1; DACD2.params->dac->CR &= ~DAC_CR_BOFF2; + /* Start the DAC output with all off values. This buffer will then get fed + * with samples from dac_end, which will play notes. + */ + for (size_t i = 0; i < AUDIO_DAC_BUFFER_SIZE; i++) { + dac_buffer[i] = AUDIO_DAC_OFF_VALUE; + } + if (AUDIO_PIN == A4) { - dacStartConversion(&DACD1, &dac_conv_cfg, dac_buffer_empty, AUDIO_DAC_BUFFER_SIZE); + dacStartConversion(&DACD1, &dac_conv_cfg, dac_buffer, AUDIO_DAC_BUFFER_SIZE); } else if (AUDIO_PIN == A5) { - dacStartConversion(&DACD2, &dac_conv_cfg, dac_buffer_empty, AUDIO_DAC_BUFFER_SIZE); + dacStartConversion(&DACD2, &dac_conv_cfg, dac_buffer, AUDIO_DAC_BUFFER_SIZE); } // no inverted/out-of-phase waveform (yet?), only pulling AUDIO_PIN_ALT to AUDIO_DAC_OFF_VALUE From fb18ac2b1059d34737103012ab396170aef57328 Mon Sep 17 00:00:00 2001 From: Stefan Kerkmann Date: Mon, 25 Sep 2023 04:27:34 +0200 Subject: [PATCH 153/496] [Core] Bump mouse endpoint packet size to 16 bytes (#21711) --- tmk_core/protocol/arm_atsam/usb/udi_device_epsize.h | 2 +- tmk_core/protocol/usb_descriptor.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tmk_core/protocol/arm_atsam/usb/udi_device_epsize.h b/tmk_core/protocol/arm_atsam/usb/udi_device_epsize.h index 7a9ed31930..47bd02c074 100644 --- a/tmk_core/protocol/arm_atsam/usb/udi_device_epsize.h +++ b/tmk_core/protocol/arm_atsam/usb/udi_device_epsize.h @@ -19,7 +19,7 @@ along with this program. If not, see . #define _UDI_DEVICE_EPSIZE_H_ #define KEYBOARD_EPSIZE 8 -#define MOUSE_EPSIZE 8 +#define MOUSE_EPSIZE 16 #define EXTRAKEY_EPSIZE 8 #define RAW_EPSIZE 32 #define CONSOLE_EPSIZE 32 diff --git a/tmk_core/protocol/usb_descriptor.h b/tmk_core/protocol/usb_descriptor.h index ed84f4c9ab..1268bdae73 100644 --- a/tmk_core/protocol/usb_descriptor.h +++ b/tmk_core/protocol/usb_descriptor.h @@ -299,7 +299,7 @@ enum usb_endpoints { #define KEYBOARD_EPSIZE 8 #define SHARED_EPSIZE 32 -#define MOUSE_EPSIZE 8 +#define MOUSE_EPSIZE 16 #define RAW_EPSIZE 32 #define CONSOLE_EPSIZE 32 #define MIDI_STREAM_EPSIZE 64 From 9d3c0018c118ed2cf5fc251e24774a8c52df09ee Mon Sep 17 00:00:00 2001 From: DeskDaily <65656486+DeskDaily@users.noreply.github.com> Date: Mon, 25 Sep 2023 10:28:48 +0800 Subject: [PATCH 154/496] Added Wyvern Hotswap by BredWorks (#21141) Co-authored-by: Neil Brian Ramirez Co-authored-by: Neil Brian Ramirez --- keyboards/bredworks/wyvern_hs/info.json | 308 ++++++++++++++++++ .../wyvern_hs/keymaps/default/keymap.c | 33 ++ .../wyvern_hs/keymaps/regular_numpad/keymap.c | 33 ++ .../bredworks/wyvern_hs/keymaps/via/keymap.c | 33 ++ .../bredworks/wyvern_hs/keymaps/via/rules.mk | 2 + keyboards/bredworks/wyvern_hs/readme.md | 23 ++ keyboards/bredworks/wyvern_hs/rules.mk | 1 + 7 files changed, 433 insertions(+) create mode 100644 keyboards/bredworks/wyvern_hs/info.json create mode 100644 keyboards/bredworks/wyvern_hs/keymaps/default/keymap.c create mode 100644 keyboards/bredworks/wyvern_hs/keymaps/regular_numpad/keymap.c create mode 100644 keyboards/bredworks/wyvern_hs/keymaps/via/keymap.c create mode 100644 keyboards/bredworks/wyvern_hs/keymaps/via/rules.mk create mode 100644 keyboards/bredworks/wyvern_hs/readme.md create mode 100644 keyboards/bredworks/wyvern_hs/rules.mk diff --git a/keyboards/bredworks/wyvern_hs/info.json b/keyboards/bredworks/wyvern_hs/info.json new file mode 100644 index 0000000000..63e85496ae --- /dev/null +++ b/keyboards/bredworks/wyvern_hs/info.json @@ -0,0 +1,308 @@ +{ + "manufacturer": "Bred Works", + "keyboard_name": "Wyvern HS", + "maintainer": "DeskDaily", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B3", "B2", "B1", "B0", "F7", "D5", "D3", "D2", "D1", "D0", "E6", "F0", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4"], + "rows": ["B7", "F1", "F6", "F5", "F4"] + }, + "processor": "atmega32u4", + "url": "https://bredworks.com/products/wyvern-hotswap-pcb", + "usb": { + "device_version": "0.0.1", + "pid": "0x0001", + "vid": "0x0571" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.25, "y": 0}, + {"matrix": [0, 6], "x": 6.25, "y": 0}, + {"matrix": [0, 7], "x": 7.25, "y": 0}, + {"matrix": [0, 8], "x": 8.25, "y": 0}, + {"matrix": [0, 9], "x": 9.25, "y": 0}, + {"matrix": [0, 10], "x": 10.25, "y": 0}, + {"matrix": [0, 11], "x": 11.25, "y": 0}, + {"matrix": [0, 12], "x": 12.25, "y": 0}, + {"matrix": [0, 13], "x": 13.25, "y": 0}, + {"matrix": [0, 14], "x": 14.25, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [0, 19], "x": 19.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4.25, "y": 1, "w": 1.5}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + {"matrix": [1, 7], "x": 7.75, "y": 1}, + {"matrix": [1, 8], "x": 8.75, "y": 1}, + {"matrix": [1, 9], "x": 9.75, "y": 1}, + {"matrix": [1, 10], "x": 10.75, "y": 1}, + {"matrix": [1, 11], "x": 11.75, "y": 1}, + {"matrix": [1, 12], "x": 12.75, "y": 1}, + {"matrix": [1, 13], "x": 13.75, "y": 1}, + {"matrix": [1, 14], "x": 14.75, "y": 1}, + {"matrix": [1, 15], "x": 15.75, "y": 1}, + {"matrix": [1, 16], "x": 16.75, "y": 1}, + {"matrix": [1, 17], "x": 17.75, "y": 1, "w": 1.5}, + {"matrix": [1, 19], "x": 19.75, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4.25, "y": 2, "w": 1.75}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + {"matrix": [2, 7], "x": 8, "y": 2}, + {"matrix": [2, 8], "x": 9, "y": 2}, + {"matrix": [2, 9], "x": 10, "y": 2}, + {"matrix": [2, 10], "x": 11, "y": 2}, + {"matrix": [2, 11], "x": 12, "y": 2}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [2, 15], "x": 16, "y": 2}, + {"matrix": [2, 16], "x": 17, "y": 2, "w": 2.25}, + {"matrix": [2, 19], "x": 19.75, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "h": 2}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3, "h": 2}, + {"matrix": [3, 4], "x": 4.25, "y": 3, "w": 1.25}, + {"matrix": [3, 5], "x": 5.5, "y": 3}, + {"matrix": [3, 6], "x": 6.5, "y": 3}, + {"matrix": [3, 7], "x": 7.5, "y": 3}, + {"matrix": [3, 8], "x": 8.5, "y": 3}, + {"matrix": [3, 9], "x": 9.5, "y": 3}, + {"matrix": [3, 10], "x": 10.5, "y": 3}, + {"matrix": [3, 11], "x": 11.5, "y": 3}, + {"matrix": [3, 12], "x": 12.5, "y": 3}, + {"matrix": [3, 13], "x": 13.5, "y": 3}, + {"matrix": [3, 14], "x": 14.5, "y": 3}, + {"matrix": [3, 15], "x": 15.5, "y": 3}, + {"matrix": [3, 16], "x": 16.5, "y": 3, "w": 1.75}, + {"matrix": [3, 19], "x": 19.75, "y": 3}, + {"matrix": [3, 17], "x": 18.5, "y": 3.25}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4, "w": 1.25}, + {"matrix": [4, 5], "x": 5.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 6.75, "y": 4, "w": 1.25}, + {"matrix": [4, 8], "x": 8, "y": 4, "w": 2.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 11.5, "y": 4, "w": 2.75}, + {"matrix": [4, 13], "x": 14.25, "y": 4}, + {"matrix": [4, 14], "x": 15.25, "y": 4}, + {"matrix": [4, 15], "x": 16.25, "y": 4}, + {"matrix": [4, 16], "x": 17.5, "y": 4.25}, + {"matrix": [4, 17], "x": 18.5, "y": 4.25}, + {"matrix": [4, 18], "x": 19.5, "y": 4.25}, + {"matrix": [0, 18], "x": 18.25, "y": 0} + ] + }, + "LAYOUT_mirrored_numpad": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.25, "y": 0}, + {"matrix": [0, 6], "x": 6.25, "y": 0}, + {"matrix": [0, 7], "x": 7.25, "y": 0}, + {"matrix": [0, 8], "x": 8.25, "y": 0}, + {"matrix": [0, 9], "x": 9.25, "y": 0}, + {"matrix": [0, 10], "x": 10.25, "y": 0}, + {"matrix": [0, 11], "x": 11.25, "y": 0}, + {"matrix": [0, 12], "x": 12.25, "y": 0}, + {"matrix": [0, 13], "x": 13.25, "y": 0}, + {"matrix": [0, 14], "x": 14.25, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [0, 19], "x": 19.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "h": 2}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4.25, "y": 1, "w": 1.5}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + {"matrix": [1, 7], "x": 7.75, "y": 1}, + {"matrix": [1, 8], "x": 8.75, "y": 1}, + {"matrix": [1, 9], "x": 9.75, "y": 1}, + {"matrix": [1, 10], "x": 10.75, "y": 1}, + {"matrix": [1, 11], "x": 11.75, "y": 1}, + {"matrix": [1, 12], "x": 12.75, "y": 1}, + {"matrix": [1, 13], "x": 13.75, "y": 1}, + {"matrix": [1, 14], "x": 14.75, "y": 1}, + {"matrix": [1, 15], "x": 15.75, "y": 1}, + {"matrix": [1, 16], "x": 16.75, "y": 1}, + {"matrix": [1, 17], "x": 17.75, "y": 1, "w": 1.5}, + {"matrix": [1, 19], "x": 19.75, "y": 1}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4.25, "y": 2, "w": 1.75}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + {"matrix": [2, 7], "x": 8, "y": 2}, + {"matrix": [2, 8], "x": 9, "y": 2}, + {"matrix": [2, 9], "x": 10, "y": 2}, + {"matrix": [2, 10], "x": 11, "y": 2}, + {"matrix": [2, 11], "x": 12, "y": 2}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [2, 15], "x": 16, "y": 2}, + {"matrix": [2, 16], "x": 17, "y": 2, "w": 2.25}, + {"matrix": [2, 19], "x": 19.75, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "h": 2}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3, "w": 1.25}, + {"matrix": [3, 5], "x": 5.5, "y": 3}, + {"matrix": [3, 6], "x": 6.5, "y": 3}, + {"matrix": [3, 7], "x": 7.5, "y": 3}, + {"matrix": [3, 8], "x": 8.5, "y": 3}, + {"matrix": [3, 9], "x": 9.5, "y": 3}, + {"matrix": [3, 10], "x": 10.5, "y": 3}, + {"matrix": [3, 11], "x": 11.5, "y": 3}, + {"matrix": [3, 12], "x": 12.5, "y": 3}, + {"matrix": [3, 13], "x": 13.5, "y": 3}, + {"matrix": [3, 14], "x": 14.5, "y": 3}, + {"matrix": [3, 15], "x": 15.5, "y": 3}, + {"matrix": [3, 16], "x": 16.5, "y": 3, "w": 1.75}, + {"matrix": [3, 19], "x": 19.75, "y": 3}, + {"matrix": [3, 17], "x": 18.5, "y": 3.25}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4, "w": 2}, + {"matrix": [4, 4], "x": 4.25, "y": 4, "w": 1.25}, + {"matrix": [4, 5], "x": 5.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 6.75, "y": 4, "w": 1.25}, + {"matrix": [4, 8], "x": 8, "y": 4, "w": 2.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 11.5, "y": 4, "w": 2.75}, + {"matrix": [4, 13], "x": 14.25, "y": 4}, + {"matrix": [4, 14], "x": 15.25, "y": 4}, + {"matrix": [4, 15], "x": 16.25, "y": 4}, + {"matrix": [4, 16], "x": 17.5, "y": 4.25}, + {"matrix": [4, 17], "x": 18.5, "y": 4.25}, + {"matrix": [4, 18], "x": 19.5, "y": 4.25}, + {"matrix": [0, 18], "x": 18.25, "y": 0} + ] + }, + "LAYOUT_regular_numpad": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.25, "y": 0}, + {"matrix": [0, 6], "x": 6.25, "y": 0}, + {"matrix": [0, 7], "x": 7.25, "y": 0}, + {"matrix": [0, 8], "x": 8.25, "y": 0}, + {"matrix": [0, 9], "x": 9.25, "y": 0}, + {"matrix": [0, 10], "x": 10.25, "y": 0}, + {"matrix": [0, 11], "x": 11.25, "y": 0}, + {"matrix": [0, 12], "x": 12.25, "y": 0}, + {"matrix": [0, 13], "x": 13.25, "y": 0}, + {"matrix": [0, 14], "x": 14.25, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [0, 19], "x": 19.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1, "h": 2}, + {"matrix": [1, 4], "x": 4.25, "y": 1, "w": 1.5}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + {"matrix": [1, 7], "x": 7.75, "y": 1}, + {"matrix": [1, 8], "x": 8.75, "y": 1}, + {"matrix": [1, 9], "x": 9.75, "y": 1}, + {"matrix": [1, 10], "x": 10.75, "y": 1}, + {"matrix": [1, 11], "x": 11.75, "y": 1}, + {"matrix": [1, 12], "x": 12.75, "y": 1}, + {"matrix": [1, 13], "x": 13.75, "y": 1}, + {"matrix": [1, 14], "x": 14.75, "y": 1}, + {"matrix": [1, 15], "x": 15.75, "y": 1}, + {"matrix": [1, 16], "x": 16.75, "y": 1}, + {"matrix": [1, 17], "x": 17.75, "y": 1, "w": 1.5}, + {"matrix": [1, 19], "x": 19.75, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 4], "x": 4.25, "y": 2, "w": 1.75}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + {"matrix": [2, 7], "x": 8, "y": 2}, + {"matrix": [2, 8], "x": 9, "y": 2}, + {"matrix": [2, 9], "x": 10, "y": 2}, + {"matrix": [2, 10], "x": 11, "y": 2}, + {"matrix": [2, 11], "x": 12, "y": 2}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [2, 15], "x": 16, "y": 2}, + {"matrix": [2, 16], "x": 17, "y": 2, "w": 2.25}, + {"matrix": [2, 19], "x": 19.75, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3, "h": 2}, + {"matrix": [3, 4], "x": 4.25, "y": 3, "w": 1.25}, + {"matrix": [3, 5], "x": 5.5, "y": 3}, + {"matrix": [3, 6], "x": 6.5, "y": 3}, + {"matrix": [3, 7], "x": 7.5, "y": 3}, + {"matrix": [3, 8], "x": 8.5, "y": 3}, + {"matrix": [3, 9], "x": 9.5, "y": 3}, + {"matrix": [3, 10], "x": 10.5, "y": 3}, + {"matrix": [3, 11], "x": 11.5, "y": 3}, + {"matrix": [3, 12], "x": 12.5, "y": 3}, + {"matrix": [3, 13], "x": 13.5, "y": 3}, + {"matrix": [3, 14], "x": 14.5, "y": 3}, + {"matrix": [3, 15], "x": 15.5, "y": 3}, + {"matrix": [3, 16], "x": 16.5, "y": 3, "w": 1.75}, + {"matrix": [3, 19], "x": 19.75, "y": 3}, + {"matrix": [3, 17], "x": 18.5, "y": 3.25}, + {"matrix": [4, 1], "x": 0, "y": 4, "w": 2}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4, "w": 1.25}, + {"matrix": [4, 5], "x": 5.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 6.75, "y": 4, "w": 1.25}, + {"matrix": [4, 8], "x": 8, "y": 4, "w": 2.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 11.5, "y": 4, "w": 2.75}, + {"matrix": [4, 13], "x": 14.25, "y": 4}, + {"matrix": [4, 14], "x": 15.25, "y": 4}, + {"matrix": [4, 15], "x": 16.25, "y": 4}, + {"matrix": [4, 16], "x": 17.5, "y": 4.25}, + {"matrix": [4, 17], "x": 18.5, "y": 4.25}, + {"matrix": [4, 18], "x": 19.5, "y": 4.25}, + {"matrix": [0, 18], "x": 18.25, "y": 0} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/bredworks/wyvern_hs/keymaps/default/keymap.c b/keyboards/bredworks/wyvern_hs/keymaps/default/keymap.c new file mode 100644 index 0000000000..3d0e067215 --- /dev/null +++ b/keyboards/bredworks/wyvern_hs/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2023 DeskDaily + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_mirrored_numpad( + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_ESC, 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_BSPC, KC_DEL, + KC_PPLS, KC_P7, KC_P8, KC_P9, 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_PGUP, + KC_P4, KC_P5, KC_P6, 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_ENT, KC_PGDN, + KC_ENT, KC_P1, KC_P2, KC_P3, KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, MO(1), KC_UP, + KC_DEL, KC_P0, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC + ), + [1] = LAYOUT_mirrored_numpad( + _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; \ No newline at end of file diff --git a/keyboards/bredworks/wyvern_hs/keymaps/regular_numpad/keymap.c b/keyboards/bredworks/wyvern_hs/keymaps/regular_numpad/keymap.c new file mode 100644 index 0000000000..78037bac14 --- /dev/null +++ b/keyboards/bredworks/wyvern_hs/keymaps/regular_numpad/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2023 DeskDaily + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_regular_numpad( + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_ESC, 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_BSPC, KC_DEL, + KC_P7, KC_P8, KC_P9, KC_PPLS, 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_PGUP, + KC_P4, KC_P5, KC_P6, 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_ENT, KC_PGDN, + KC_P1, KC_P2, KC_P3, KC_ENT, KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, MO(1), KC_UP, + KC_P0, KC_DEL, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC + ), + [1] = LAYOUT_regular_numpad( + _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; \ No newline at end of file diff --git a/keyboards/bredworks/wyvern_hs/keymaps/via/keymap.c b/keyboards/bredworks/wyvern_hs/keymaps/via/keymap.c new file mode 100644 index 0000000000..0b73184e01 --- /dev/null +++ b/keyboards/bredworks/wyvern_hs/keymaps/via/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2023 DeskDaily + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_ESC, 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_BSPC, KC_DEL, + KC_PPLS, KC_P7, KC_P8, KC_P9, 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_PGUP, + KC_PPLS, KC_P4, KC_P5, KC_P6, 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_ENT, KC_PGDN, + KC_ENT, KC_P1, KC_P2, KC_P3, KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, MO(1), KC_UP, + KC_DEL, KC_P0, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC + ), + [1] = LAYOUT_all( + _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; \ No newline at end of file diff --git a/keyboards/bredworks/wyvern_hs/keymaps/via/rules.mk b/keyboards/bredworks/wyvern_hs/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/bredworks/wyvern_hs/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/bredworks/wyvern_hs/readme.md b/keyboards/bredworks/wyvern_hs/readme.md new file mode 100644 index 0000000000..0d0ed4e099 --- /dev/null +++ b/keyboards/bredworks/wyvern_hs/readme.md @@ -0,0 +1,23 @@ +# Bredworks Wyvern HS + +* Keyboard Maintainer: [DeskDaily](https://github.com/DeskDaily) +* Hardware Supported: Atmega32u4 +* Hardware Availability: [BredWorks](https://bredworks.com/products/wyvern-hotswap-pcb) + +Make example for this keyboard (after setting up your build environment): + + make bredworks/wyvern_hs:default + +Flashing example for this keyboard: + + make bredworks/wyvern_hs:default:flash + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the upper left key/esc) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + +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). diff --git a/keyboards/bredworks/wyvern_hs/rules.mk b/keyboards/bredworks/wyvern_hs/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/bredworks/wyvern_hs/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From 4e7e824a73c81187cca5cc56cb0b3b51a09b75c4 Mon Sep 17 00:00:00 2001 From: RABijl Date: Mon, 25 Sep 2023 05:31:24 +0300 Subject: [PATCH 155/496] Rotary numpad (#21744) Co-authored-by: Duncan Sutherland Co-authored-by: Drashna Jaelre --- .../handwired/rabijl/rotary_numpad/info.json | 66 ++++++++++++++++++ .../rotary_numpad/keymaps/default/keymap.c | 62 +++++++++++++++++ .../rotary_numpad/keymaps/default/rules.mk | 2 + .../handwired/rabijl/rotary_numpad/readme.md | 67 +++++++++++++++++++ .../handwired/rabijl/rotary_numpad/rules.mk | 1 + 5 files changed, 198 insertions(+) create mode 100644 keyboards/handwired/rabijl/rotary_numpad/info.json create mode 100644 keyboards/handwired/rabijl/rotary_numpad/keymaps/default/keymap.c create mode 100644 keyboards/handwired/rabijl/rotary_numpad/keymaps/default/rules.mk create mode 100644 keyboards/handwired/rabijl/rotary_numpad/readme.md create mode 100644 keyboards/handwired/rabijl/rotary_numpad/rules.mk diff --git a/keyboards/handwired/rabijl/rotary_numpad/info.json b/keyboards/handwired/rabijl/rotary_numpad/info.json new file mode 100644 index 0000000000..dafeec0fc0 --- /dev/null +++ b/keyboards/handwired/rabijl/rotary_numpad/info.json @@ -0,0 +1,66 @@ +{ + "manufacturer": "rabijl", + "keyboard_name": "rotary_numpad", + "maintainer": "rabijl", + "url": "https://github.com/RABijl/", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "encoder": true + }, + "development_board": "promicro", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["F5", "F4", "B5", "B4"], + "rows": ["F6", "F7", "B1", "B3", "B2", "B6"] + }, + "encoder": { + "rotary": [ + {"pin_a": "D1", "pin_b": "D0", "resolution": 3}, + {"pin_a": "D4", "pin_b": "C6", "resolution": 3}, + {"pin_a": "D7", "pin_b": "E6", "resolution": 3} + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [5, 0],"x":0, "y":0.4}, + {"matrix": [0, 0], "x":2, "y":0}, + {"matrix": [0, 1], "x":3, "y":0}, + {"matrix": [0, 2], "x":4, "y":0}, + {"matrix": [0, 3], "x":5, "y":0}, + {"matrix": [1, 0], "x":2, "y":1.25}, + {"matrix": [1, 1], "x":3, "y":1.25}, + {"matrix": [1, 2], "x":4, "y":1.25}, + {"matrix": [1, 3], "x":5, "y":1.25}, + {"matrix": [2, 0], "x":2, "y":2.25}, + {"matrix": [2, 1], "x":3, "y":2.25}, + {"matrix": [2, 2], "x":4, "y":2.25}, + {"matrix": [2, 3], "x":5, "y":2.25, "h":2}, + + {"matrix": [3, 3], "x":0, "y":2.75}, + {"matrix": [3, 0], "x":2, "y":3.25}, + {"matrix": [3, 1], "x":3, "y":3.25}, + {"matrix": [3, 2], "x":4, "y":3.25}, + + {"matrix": [4, 0], "x":2, "y":4.25}, + {"matrix": [4, 1], "x":3, "y":4.25}, + {"matrix": [4, 2], "x":4, "y":4.25}, + {"matrix": [4, 3], "x":5, "y":4.25, "h":2}, + + {"matrix": [5, 3], "x":0, "y":5.05}, + {"matrix": [5, 1], "x":2, "y":5.25, "w":2}, + {"matrix": [5, 2], "x":4, "y":5.25} + ] + } + } +} diff --git a/keyboards/handwired/rabijl/rotary_numpad/keymaps/default/keymap.c b/keyboards/handwired/rabijl/rotary_numpad/keymaps/default/keymap.c new file mode 100644 index 0000000000..d4462243b0 --- /dev/null +++ b/keyboards/handwired/rabijl/rotary_numpad/keymaps/default/keymap.c @@ -0,0 +1,62 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +// + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐┌───┬───┬───┬───┐ + * │Ply││Esc│Tab│MO1│Bsp│ + * └───┘├───┼───┼───┼───┤ + * │Num│ / │ * │ - │ + * ├───┼───┼───┼───┤ + * │ 7 │ 8 │ 9 │ │ + * ┌───┐├───┼───┼───┤ + │ + * │Esc││ 4 │ 5 │ 6 │ │ + * └───┘├───┼───┼───┼───┤ + * │ 1 │ 2 │ 3 │ │ + * ┌───┐├───┴───┼───┤Ent│ + * │ENT││ 0 │ . │ │ + * └───┘└───────┴───┴───┘ + */ + [0] = LAYOUT( + KC_MPLY, KC_ESC, KC_TAB, MO(1), KC_BSPC, + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_ESC, KC_P4, KC_P5, KC_P6, + KC_P1, KC_P2, KC_P3, KC_PENT, + KC_ENT, KC_P0, KC_PDOT + ), + /* + * ┌───┐┌───┬───┬───┬───┐ + * │Ply││Rst│Tab│MO1│Bsp│ + * └───┘├───┼───┼───┼───┤ + * │Num│ / │ * │ - │ + * ├───┼───┼───┼───┤ + * │Hom│ ↑ │PgU│ │ + * ┌───┐├───┼───┼───┤ + │ + * │Esc││ ← │ │ → │ │ + * └───┘├───┼───┼───┼───┤ + * │End│ ↓ │PgD│ │ + * ┌───┐├───┴───┼───┤Ent│ + * │ENT││Insert │Del│ │ + * └───┘└───────┴───┘───┘ + */ + [1] = LAYOUT( + _______, QK_BOOT, _______, _______, _______, + _______, _______, _______, _______, + KC_HOME, KC_UP, KC_PGUP, _______, + _______, KC_LEFT, KC_NO, KC_RGHT, + KC_END, KC_DOWN, KC_PGDN, _______, + _______, KC_INS, KC_DEL + ) +}; + +#if defined(ENCODER_MAP_ENABLE) + +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_DOWN, KC_UP), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT) }, + [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/handwired/rabijl/rotary_numpad/keymaps/default/rules.mk b/keyboards/handwired/rabijl/rotary_numpad/keymaps/default/rules.mk new file mode 100644 index 0000000000..34789bf172 --- /dev/null +++ b/keyboards/handwired/rabijl/rotary_numpad/keymaps/default/rules.mk @@ -0,0 +1,2 @@ + +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/handwired/rabijl/rotary_numpad/readme.md b/keyboards/handwired/rabijl/rotary_numpad/readme.md new file mode 100644 index 0000000000..6eb2e1480f --- /dev/null +++ b/keyboards/handwired/rabijl/rotary_numpad/readme.md @@ -0,0 +1,67 @@ +# Rotary Numpad + + +![rotary_numpad](https://i.imgur.com/GwEH4WOh.jpeg) + +This is a personal project of mine where I wanted a number pad that I can put on the left side of keyboard that doesn't have a numberpad. I fell in love with the feel of rotary encoders on my 3d printer, so added three to be able to play around with. + +* Keyboard Maintainer: [rabijl](https://github.com/rabijl) +* Hardware Supported: Sparkfun Pro Micro 5V (atmega32u4) +* Hardware Availability: https://www.sparkfun.com/products/12640 + +## How to build from scratch + +I handsoldered gateron blue switches to a 3D printed case. The design is modified from the [Ultipad](https://www.thingiverse.com/thing:4248565). \ +I used a sparkfun Pro Micro as my microcontroller and the pinout can be found in the `info.json`. I found this [site](https://golem.hu/article/pro-micro-pinout/) \ +to be very useful to identify different pins. You can find useful information on rotary encoders from the qmk docs [here](https://docs.qmk.fm/#/reference_info_json?id=encoders) and [here](https://docs.qmk.fm/#/feature_encoders). + +### matrix + +Due to the three rotary encoders, I had to use most of the available pins. Fortunately, all the buttons still fit in a 6x4 matrix. Looking at the diagram below, the three buttons in the first column correspond to each encoder button. + +``` + ┌──┐┌──┐┌──┐┌──┐ + │0A││0B││0C││0D│ +┌──┐ └──┘└──┘└──┘└──┘ +│5A│ +└──┘ ┌──┐┌──┐┌──┐┌──┐ + │1A││1B││1C││1D│ + └──┘└──┘└──┘└──┘ + ┌──┐┌──┐┌──┐┌──┐ + │2A││2B││2C││2D│ +┌──┐ └──┘└──┘└──┘│ │ +│3D│ ┌──┐┌──┐┌──┐│ │ +└──┘ │3A││3B││3C││ │ + └──┘└──┘└──┘└──┘ + ┌──┐┌──┐┌──┐┌──┐ + │4A││4B││4C││4D│ + └──┘└──┘└──┘│ │ +┌──┐ ┌──────┐┌──┐│ │ +│5D│ │5B ││5C││ │ +└──┘ └──────┘└──┘└──┘ + +``` + +## Flashing + +Make example for this keyboard (after setting up your build environment): + + qmk compile -kb handwired/rabijl/rotary_numpad -km default + +Flashing example for this keyboard: + + qmk flash -kb handwired/rabijl/rotary_numpad -km 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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Short reset leads**: tap the reset lead to ground twice quickly after qmk is in flash mode +* **Keycode in layout**: double tap the key mapped to `QK_BOOT`. On the default keymap this can be found by holding in key (0,C) and tapping key (0,A), see the matrix section for the positions of these keys. +* **Bootmagic reset**: Hold down the key at (0,A) in the matrix (see matrix section) and plug in the keyboard + +**Note:** if the keyboard doesn't show up after putting the keyboard in reset mode, check that +your user is added to the `tty` and/or `uucp` groups. \ +You may need to logout after adding these groups to your user, for the changes to take affect. diff --git a/keyboards/handwired/rabijl/rotary_numpad/rules.mk b/keyboards/handwired/rabijl/rotary_numpad/rules.mk new file mode 100644 index 0000000000..1287472e49 --- /dev/null +++ b/keyboards/handwired/rabijl/rotary_numpad/rules.mk @@ -0,0 +1 @@ +# file intentionally left blank From a360900fbb87cec0aa721d527b251a3dcc72c671 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Mart=C3=ADnez?= <58857054+elpekenin@users.noreply.github.com> Date: Mon, 25 Sep 2023 04:31:46 +0200 Subject: [PATCH 156/496] [Enhancement] QP Getters (#21171) --- docs/quantum_painter.md | 43 +++++++++++++- quantum/painter/qp.c | 121 ++++++++++++++++++++++++++++++++-------- quantum/painter/qp.h | 35 ++++++++++++ 3 files changed, 174 insertions(+), 25 deletions(-) diff --git a/docs/quantum_painter.md b/docs/quantum_painter.md index 5e399183f8..8acf6aeb36 100644 --- a/docs/quantum_painter.md +++ b/docs/quantum_painter.md @@ -857,13 +857,52 @@ void keyboard_post_init_kb(void) { -#### ** Get Geometry ** +#### ** Gettters ** + +These functions allow external code to retrieve the current width, height, rotation, and drawing offsets. + + + +#### ** Width ** + +```c +uint16_t qp_get_width(painter_device_t device); +``` + +#### ** Height ** + +```c +uint16_t qp_get_height(painter_device_t device); +``` + +#### ** Rotation ** + +```c +painter_rotation_t qp_get_rotation(painter_device_t device); +``` + +#### ** Offset X ** + +```c +uint16_t qp_get_offset_x(painter_device_t device); +``` + +#### ** Offset Y ** + +```c +uint16_t qp_get_offset_y(painter_device_t device); +``` + +##### ** Everything ** + +Convenience function to call all the previous ones at once. +Note: You can pass `NULL` for the values you are not interested in. ```c void qp_get_geometry(painter_device_t device, uint16_t *width, uint16_t *height, painter_rotation_t *rotation, uint16_t *offset_x, uint16_t *offset_y); ``` -The `qp_get_geometry` function allows external code to retrieve the current width, height, rotation, and drawing offsets. + #### ** Set Viewport Offsets ** diff --git a/quantum/painter/qp.c b/quantum/painter/qp.c index f27bb7892a..609163afe2 100644 --- a/quantum/painter/qp.c +++ b/quantum/painter/qp.c @@ -131,49 +131,124 @@ bool qp_flush(painter_device_t device) { } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Quantum Painter External API: qp_get_geometry +// Quantum Painter External API: qp_get_* -void qp_get_geometry(painter_device_t device, uint16_t *width, uint16_t *height, painter_rotation_t *rotation, uint16_t *offset_x, uint16_t *offset_y) { - qp_dprintf("qp_get_geometry: entry\n"); +uint16_t qp_get_width(painter_device_t device) { + qp_dprintf("qp_get_width: entry\n"); painter_driver_t *driver = (painter_driver_t *)device; - if (!driver) { - qp_dprintf("qp_get_geometry: fail (pointer to NULL)\n"); - return; + if (!driver || !driver->validate_ok) { + qp_dprintf("qp_get_width: fail (invalid driver)\n"); + return 0; } + uint16_t width; switch (driver->rotation) { default: case QP_ROTATION_0: case QP_ROTATION_180: - if (width) { - *width = driver->panel_width; - } - if (height) { - *height = driver->panel_height; - } - break; + width = driver->panel_width; + case QP_ROTATION_90: case QP_ROTATION_270: - if (width) { - *width = driver->panel_height; - } - if (height) { - *height = driver->panel_width; - } - break; + width = driver->panel_height; + } + + qp_dprintf("qp_get_width: ok\n"); + return width; +} + +uint16_t qp_get_height(painter_device_t device) { + qp_dprintf("qp_get_height: entry\n"); + painter_driver_t *driver = (painter_driver_t *)device; + + if (!driver || !driver->validate_ok) { + qp_dprintf("qp_get_height: fail (invalid driver)\n"); + return 0; + } + + uint16_t height; + switch (driver->rotation) { + default: + case QP_ROTATION_0: + case QP_ROTATION_180: + height = driver->panel_height; + + case QP_ROTATION_90: + case QP_ROTATION_270: + height = driver->panel_width; + } + + qp_dprintf("qp_get_height: ok\n"); + return height; +} + +painter_rotation_t qp_get_rotation(painter_device_t device) { + qp_dprintf("qp_get_rotation: entry\n"); + painter_driver_t *driver = (painter_driver_t *)device; + + if (!driver || !driver->validate_ok) { + qp_dprintf("qp_get_rotation: fail (invalid driver)\n"); + return QP_ROTATION_0; + } + + qp_dprintf("qp_get_rotation: ok\n"); + return driver->rotation; +} + +uint16_t qp_get_offset_x(painter_device_t device) { + qp_dprintf("qp_get_offset_x: entry\n"); + painter_driver_t *driver = (painter_driver_t *)device; + + if (!driver || !driver->validate_ok) { + qp_dprintf("qp_get_offset_x: fail (invalid driver)\n"); + return 0; + } + + qp_dprintf("qp_get_offset_x: ok\n"); + return driver->offset_x; +} + +uint16_t qp_get_offset_y(painter_device_t device) { + qp_dprintf("qp_get_offset_y: entry\n"); + painter_driver_t *driver = (painter_driver_t *)device; + + if (!driver || !driver->validate_ok) { + qp_dprintf("qp_get_offset_y: fail (invalid driver)\n"); + return 0; + } + + qp_dprintf("qp_get_offset_y: ok\n"); + return driver->offset_y; +} + +void qp_get_geometry(painter_device_t device, uint16_t *width, uint16_t *height, painter_rotation_t *rotation, uint16_t *offset_x, uint16_t *offset_y) { + qp_dprintf("qp_geometry: entry\n"); + painter_driver_t *driver = (painter_driver_t *)device; + + if (!driver || !driver->validate_ok) { + qp_dprintf("qp_geometry: fail (invalid driver)\n"); + return; + } + + if (width) { + *width = qp_get_width(device); + } + + if (height) { + *height = qp_get_height(device); } if (rotation) { - *rotation = driver->rotation; + *rotation = qp_get_rotation(device); } if (offset_x) { - *offset_x = driver->offset_x; + *offset_x = qp_get_offset_x(device); } if (offset_y) { - *offset_y = driver->offset_y; + *offset_y = qp_get_offset_y(device); } qp_dprintf("qp_get_geometry: ok\n"); diff --git a/quantum/painter/qp.h b/quantum/painter/qp.h index 7222d3b413..68cb40aa59 100644 --- a/quantum/painter/qp.h +++ b/quantum/painter/qp.h @@ -175,6 +175,41 @@ bool qp_clear(painter_device_t device); */ bool qp_flush(painter_device_t device); +/** + * Retrieves the width of the display. + * + * @param device[in] the handle of the device to control + */ +uint16_t qp_get_width(painter_device_t device); + +/** + * Retrieves the height of the display. + * + * @param device[in] the handle of the device to control + */ +uint16_t qp_get_height(painter_device_t device); + +/** + * Retrieves the rotation of the display. + * + * @param device[in] the handle of the device to control + */ +painter_rotation_t qp_get_rotation(painter_device_t device); + +/** + * Retrieves the x-offset of the display. + * + * @param device[in] the handle of the device to control + */ +uint16_t qp_get_offset_x(painter_device_t device); + +/** + * Retrieves the y-offset of the display. + * + * @param device[in] the handle of the device to control + */ +uint16_t qp_get_offset_y(painter_device_t device); + /** * Retrieves the size, rotation, and offsets for the display. * From 4ebb065f94694b40cadf77808cba946d2fb5bb3c Mon Sep 17 00:00:00 2001 From: Ben Cooper <63478578+bncpr@users.noreply.github.com> Date: Mon, 25 Sep 2023 05:32:20 +0300 Subject: [PATCH 157/496] Fix combo_ref_from_layer respect different default layer [#21780] (#21781) --- quantum/process_keycode/process_combo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quantum/process_keycode/process_combo.c b/quantum/process_keycode/process_combo.c index 64d30fc140..b0034d136a 100644 --- a/quantum/process_keycode/process_combo.c +++ b/quantum/process_keycode/process_combo.c @@ -557,7 +557,7 @@ bool process_combo(uint16_t keycode, keyrecord_t *record) { /* Only check keycodes from one layer. */ keycode = keymap_key_to_keycode(COMBO_ONLY_FROM_LAYER, record->event.key); #else - uint8_t highest_layer = get_highest_layer(layer_state); + uint8_t highest_layer = get_highest_layer(layer_state | default_layer_state); uint8_t ref_layer = combo_ref_from_layer(highest_layer); if (ref_layer != highest_layer) { keycode = keymap_key_to_keycode(ref_layer, record->event.key); From 131bc92b7723d38015e7e82b7dccd773c90f7818 Mon Sep 17 00:00:00 2001 From: plaublin Date: Mon, 25 Sep 2023 11:32:50 +0900 Subject: [PATCH 158/496] Fix variable misspelling (#21774) --- layouts/community/ortho_4x12/drashna/rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/layouts/community/ortho_4x12/drashna/rules.mk b/layouts/community/ortho_4x12/drashna/rules.mk index a2278e931d..15775bcbe3 100644 --- a/layouts/community/ortho_4x12/drashna/rules.mk +++ b/layouts/community/ortho_4x12/drashna/rules.mk @@ -8,7 +8,7 @@ CONSOLE_ENABLE = no COMMAND_ENABLE = no BACKLIGHT_ENABLE = no -ifeq ($(strip $(LAYOUT_HAS_RGB)), yes) +ifeq ($(strip $(LAYOUTS_HAS_RGB)), yes) RGBLIGHT_ENABLE = yes endif From dd94877ec6d2ee5c4cdb0e71287abd76585b0268 Mon Sep 17 00:00:00 2001 From: Isaac Elenbaas Date: Sun, 24 Sep 2023 22:45:49 -0400 Subject: [PATCH 159/496] Improve test invocation, fix Retro Shift bugs, and add Auto+Retro Shift test cases (#15889) --- Makefile | 26 +- builddefs/build_full_test.mk | 8 +- builddefs/build_test.mk | 16 +- docs/feature_auto_shift.md | 18 +- docs/unit_testing.md | 4 +- quantum/action.c | 2 +- quantum/action_tapping.c | 78 +-- quantum/process_keycode/process_auto_shift.c | 29 +- quantum/process_keycode/process_auto_shift.h | 1 + .../auto_shift_no_auto_repeat/config.h | 22 + .../auto_shift_no_auto_repeat/test.mk | 20 + .../test_auto_shift.cpp | 105 ++++ tests/auto_shift/auto_shift_repeat/config.h | 21 + tests/auto_shift/auto_shift_repeat/test.mk | 20 + .../auto_shift_repeat/test_auto_shift.cpp | 107 ++++ tests/auto_shift/config.h | 2 +- .../default_mod_tap/config.h | 24 + .../default_mod_tap/no_timeout/config.h | 21 + .../default_mod_tap/no_timeout/test.mk | 20 + .../no_timeout/test_retro_shift.cpp | 57 ++ .../default_mod_tap/test.mk | 20 + .../default_mod_tap/test_retro_shift.cpp | 485 ++++++++++++++++++ .../hold_on_other_key_press/config.h | 26 + .../hold_on_other_key_press/test.mk | 20 + .../test_retro_shift.cpp | 442 ++++++++++++++++ .../permissive_hold/config.h | 26 + .../permissive_hold/test.mk | 20 + .../permissive_hold/test_retro_shift.cpp | 419 +++++++++++++++ .../config.h | 27 + .../test.mk | 20 + .../test_retro_shift.cpp | 442 ++++++++++++++++ tests/auto_shift/test.mk | 2 +- tests/basic/config.h | 2 +- tests/basic/test.mk | 2 +- tests/caps_word/auto_shift/config.h | 21 + .../retro_shift}/config.h | 0 .../retro_shift}/test.mk | 0 .../test_caps_word_retroshift.cpp} | 4 + tests/caps_word/auto_shift/test.mk | 18 + .../auto_shift/test_caps_word_autoshift.cpp | 66 +++ .../config.h | 0 .../test.mk | 0 .../test_caps_word_unicodemap.cpp | 0 .../default_mod_tap/test.mk | 2 +- .../permissive_hold/config.h | 2 +- tests/test_common/build.mk | 2 +- tests/test_common/main.cpp | 2 +- tests/test_common/test_common.h | 2 +- 48 files changed, 2584 insertions(+), 89 deletions(-) create mode 100644 tests/auto_shift/auto_shift_repeat/auto_shift_no_auto_repeat/config.h create mode 100644 tests/auto_shift/auto_shift_repeat/auto_shift_no_auto_repeat/test.mk create mode 100644 tests/auto_shift/auto_shift_repeat/auto_shift_no_auto_repeat/test_auto_shift.cpp create mode 100644 tests/auto_shift/auto_shift_repeat/config.h create mode 100644 tests/auto_shift/auto_shift_repeat/test.mk create mode 100644 tests/auto_shift/auto_shift_repeat/test_auto_shift.cpp create mode 100644 tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/config.h create mode 100644 tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/no_timeout/config.h create mode 100644 tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/no_timeout/test.mk create mode 100644 tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/no_timeout/test_retro_shift.cpp create mode 100644 tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/test.mk create mode 100644 tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/test_retro_shift.cpp create mode 100644 tests/auto_shift/retro_shift/tap_hold_configurations/hold_on_other_key_press/config.h create mode 100644 tests/auto_shift/retro_shift/tap_hold_configurations/hold_on_other_key_press/test.mk create mode 100644 tests/auto_shift/retro_shift/tap_hold_configurations/hold_on_other_key_press/test_retro_shift.cpp create mode 100644 tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold/config.h create mode 100644 tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold/test.mk create mode 100644 tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold/test_retro_shift.cpp create mode 100644 tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold_hold_on_other_key_press/config.h create mode 100644 tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold_hold_on_other_key_press/test.mk create mode 100644 tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold_hold_on_other_key_press/test_retro_shift.cpp create mode 100644 tests/caps_word/auto_shift/config.h rename tests/caps_word/{caps_word_autoshift => auto_shift/retro_shift}/config.h (100%) rename tests/caps_word/{caps_word_autoshift => auto_shift/retro_shift}/test.mk (100%) rename tests/caps_word/{caps_word_autoshift/test_caps_word_autoshift.cpp => auto_shift/retro_shift/test_caps_word_retroshift.cpp} (98%) create mode 100644 tests/caps_word/auto_shift/test.mk create mode 100644 tests/caps_word/auto_shift/test_caps_word_autoshift.cpp rename tests/caps_word/{caps_word_unicodemap => unicodemap}/config.h (100%) rename tests/caps_word/{caps_word_unicodemap => unicodemap}/test.mk (100%) rename tests/caps_word/{caps_word_unicodemap => unicodemap}/test_caps_word_unicodemap.cpp (100%) diff --git a/Makefile b/Makefile index 9f2e4636a4..9ef406e420 100644 --- a/Makefile +++ b/Makefile @@ -300,17 +300,18 @@ endef define BUILD_TEST TEST_PATH := $1 TEST_NAME := $$(notdir $$(TEST_PATH)) + TEST_FULL_NAME := $$(subst /,_,$$(patsubst $$(ROOT_DIR)tests/%,%,$$(TEST_PATH))) MAKE_TARGET := $2 COMMAND := $1 MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f $(BUILDDEFS_PATH)/build_test.mk $$(MAKE_TARGET) - MAKE_VARS := TEST=$$(TEST_NAME) TEST_PATH=$$(TEST_PATH) FULL_TESTS="$$(FULL_TESTS)" + MAKE_VARS := TEST=$$(TEST_NAME) TEST_OUTPUT=$$(TEST_FULL_NAME) TEST_PATH=$$(TEST_PATH) FULL_TESTS="$$(FULL_TESTS)" MAKE_MSG := $$(MSG_MAKE_TEST) $$(eval $$(call BUILD)) ifneq ($$(MAKE_TARGET),clean) - TEST_EXECUTABLE := $$(TEST_OUTPUT_DIR)/$$(TEST_NAME).elf - TESTS += $$(TEST_NAME) + TEST_EXECUTABLE := $$(TEST_OUTPUT_DIR)/$$(TEST_FULL_NAME).elf + TESTS += $$(TEST_FULL_NAME) TEST_MSG := $$(MSG_TEST) - $$(TEST_NAME)_COMMAND := \ + $$(TEST_FULL_NAME)_COMMAND := \ printf "$$(TEST_MSG)\n"; \ $$(TEST_EXECUTABLE); \ if [ $$$$? -gt 0 ]; \ @@ -322,15 +323,22 @@ endef define PARSE_TEST TESTS := - TEST_NAME := $$(firstword $$(subst :, ,$$(RULE))) - TEST_TARGET := $$(subst $$(TEST_NAME),,$$(subst $$(TEST_NAME):,,$$(RULE))) + # list of possible targets, colon-delimited, to reassign to MAKE_TARGET and remove + TARGETS := :clean: + ifneq (,$$(findstring :$$(lastword $$(subst :, ,$$(RULE))):, $$(TARGETS))) + MAKE_TARGET := $$(lastword $$(subst :, ,$$(RULE))) + TEST_SUBPATH := $$(subst $$(eval) ,/,$$(wordlist 2, $$(words $$(subst :, ,$$(RULE))), _ $$(subst :, ,$$(RULE)))) + else + MAKE_TARGET := + TEST_SUBPATH := $$(subst :,/,$$(RULE)) + endif include $(BUILDDEFS_PATH)/testlist.mk - ifeq ($$(TEST_NAME),all) + ifeq ($$(RULE),all) MATCHED_TESTS := $$(TEST_LIST) else - MATCHED_TESTS := $$(foreach TEST, $$(TEST_LIST),$$(if $$(findstring x$$(TEST_NAME)x, x$$(notdir $$(TEST))x), $$(TEST),)) + MATCHED_TESTS := $$(foreach TEST, $$(TEST_LIST),$$(if $$(findstring /$$(TEST_SUBPATH)/, $$(patsubst %,%/,$$(TEST))), $$(TEST),)) endif - $$(foreach TEST,$$(MATCHED_TESTS),$$(eval $$(call BUILD_TEST,$$(TEST),$$(TEST_TARGET)))) + $$(foreach TEST,$$(MATCHED_TESTS),$$(eval $$(call BUILD_TEST,$$(TEST),$$(MAKE_TARGET)))) endef diff --git a/builddefs/build_full_test.mk b/builddefs/build_full_test.mk index 85ee0898ec..63f9fea915 100644 --- a/builddefs/build_full_test.mk +++ b/builddefs/build_full_test.mk @@ -13,10 +13,10 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -$(TEST)_INC := \ +$(TEST_OUTPUT)_INC := \ tests/test_common/common_config.h -$(TEST)_SRC := \ +$(TEST_OUTPUT)_SRC := \ $(QUANTUM_SRC) \ $(SRC) \ $(QUANTUM_PATH)/keymap_introspection.c \ @@ -30,8 +30,8 @@ $(TEST)_SRC := \ tests/test_common/test_logger.cpp \ $(patsubst $(ROOTDIR)/%,%,$(wildcard $(TEST_PATH)/*.cpp)) -$(TEST)_DEFS := $(OPT_DEFS) "-DKEYMAP_C=\"keymap.c\"" +$(TEST_OUTPUT)_DEFS := $(OPT_DEFS) "-DKEYMAP_C=\"keymap.c\"" -$(TEST)_CONFIG := $(TEST_PATH)/config.h +$(TEST_OUTPUT)_CONFIG := $(TEST_PATH)/config.h VPATH += $(TOP_DIR)/tests/test_common diff --git a/builddefs/build_test.mk b/builddefs/build_test.mk index 9eead77bea..2cc1134da5 100644 --- a/builddefs/build_test.mk +++ b/builddefs/build_test.mk @@ -9,13 +9,13 @@ OPT = g include paths.mk include $(BUILDDEFS_PATH)/message.mk -TARGET=test/$(TEST) +TARGET=test/$(TEST_OUTPUT) GTEST_OUTPUT = $(BUILD_DIR)/gtest TEST_OBJ = $(BUILD_DIR)/test_obj -OUTPUTS := $(TEST_OBJ)/$(TEST) $(GTEST_OUTPUT) +OUTPUTS := $(TEST_OBJ)/$(TEST_OUTPUT) $(GTEST_OUTPUT) GTEST_INC := \ $(LIB_PATH)/googletest/googletest/include \ @@ -71,18 +71,18 @@ ifneq ($(filter $(FULL_TESTS),$(TEST)),) include $(BUILDDEFS_PATH)/build_full_test.mk endif -$(TEST)_SRC += \ +$(TEST_OUTPUT)_SRC += \ tests/test_common/main.cpp \ $(QUANTUM_PATH)/logging/print.c ifneq ($(strip $(INTROSPECTION_KEYMAP_C)),) -$(TEST)_DEFS += -DINTROSPECTION_KEYMAP_C=\"$(strip $(INTROSPECTION_KEYMAP_C))\" +$(TEST_OUTPUT)_DEFS += -DINTROSPECTION_KEYMAP_C=\"$(strip $(INTROSPECTION_KEYMAP_C))\" endif -$(TEST_OBJ)/$(TEST)_SRC := $($(TEST)_SRC) -$(TEST_OBJ)/$(TEST)_INC := $($(TEST)_INC) $(VPATH) $(GTEST_INC) -$(TEST_OBJ)/$(TEST)_DEFS := $($(TEST)_DEFS) -$(TEST_OBJ)/$(TEST)_CONFIG := $($(TEST)_CONFIG) +$(TEST_OBJ)/$(TEST_OUTPUT)_SRC := $($(TEST_OUTPUT)_SRC) +$(TEST_OBJ)/$(TEST_OUTPUT)_INC := $($(TEST_OUTPUT)_INC) $(VPATH) $(GTEST_INC) +$(TEST_OBJ)/$(TEST_OUTPUT)_DEFS := $($(TEST_OUTPUT)_DEFS) +$(TEST_OBJ)/$(TEST_OUTPUT)_CONFIG := $($(TEST_OUTPUT)_CONFIG) include $(PLATFORM_PATH)/$(PLATFORM_KEY)/platform.mk include $(BUILDDEFS_PATH)/common_rules.mk diff --git a/docs/feature_auto_shift.md b/docs/feature_auto_shift.md index 6241cbaeb1..74be33cdd4 100644 --- a/docs/feature_auto_shift.md +++ b/docs/feature_auto_shift.md @@ -180,18 +180,18 @@ For more granular control, there is `get_auto_shifted_key`. The default function bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) { switch (keycode) { # ifndef NO_AUTO_SHIFT_ALPHA - case KC_A ... KC_Z: + case AUTO_SHIFT_ALPHA: # endif # ifndef NO_AUTO_SHIFT_NUMERIC - case KC_1 ... KC_0: + case AUTO_SHIFT_NUMERIC: # endif # ifndef NO_AUTO_SHIFT_SPECIAL -# ifndef NO_AUTO_SHIFT_TAB +# ifndef NO_AUTO_SHIFT_TAB case KC_TAB: -# endif -# ifndef NO_AUTO_SHIFT_SYMBOLS +# endif +# ifndef NO_AUTO_SHIFT_SYMBOLS case AUTO_SHIFT_SYMBOLS: -# endif +# endif # endif # ifdef AUTO_SHIFT_ENTER case KC_ENT: @@ -310,10 +310,16 @@ generating taps on release. For example: #define RETRO_SHIFT 500 ``` +Without a value set, holds of any length without an interrupting key will produce the shifted value. + This value (if set) must be greater than one's `TAPPING_TERM`, as the key press must be designated as a 'hold' by `process_tapping` before we send the modifier. +[Per-key tapping terms](tap_hold.md#tapping-term) can be used as a workaround. There is no such limitation in regards to `AUTO_SHIFT_TIMEOUT` for normal keys. +**Note:** Tap Holds must be added to Auto Shift, see [here.](feature_auto_shift.md#auto-shift-per-key) +`IS_RETRO` may be helpful if one wants all Tap Holds retro shifted. + ### Retro Shift and Tap Hold Configurations Tap Hold Configurations work a little differently when using Retro Shift. diff --git a/docs/unit_testing.md b/docs/unit_testing.md index 47a1055796..60787fdffc 100644 --- a/docs/unit_testing.md +++ b/docs/unit_testing.md @@ -36,7 +36,9 @@ Note how there's several different tests, each mocking out a separate part. Also ## Running the Tests -To run all the tests in the codebase, type `make test:all`. You can also run test matching a substring by typing `make test:matchingsubstring` Note that the tests are always compiled with the native compiler of your platform, so they are also run like any other program on your computer. +To run all the tests in the codebase, type `make test:all`. You can also run test matching a substring by typing `make test:matchingsubstring`. `matchingsubstring` can contain colons to be more specific; `make test:tap_hold_configurations` will run the `tap_hold_configurations` tests for all features while `make test:retro_shift:tap_hold_configurations` will run the `tap_hold_configurations` tests for only the Retro Shift feature. + +Note that the tests are always compiled with the native compiler of your platform, so they are also run like any other program on your computer. ## Debugging the Tests diff --git a/quantum/action.c b/quantum/action.c index 6368f7398c..3b89431cea 100644 --- a/quantum/action.c +++ b/quantum/action.c @@ -497,7 +497,7 @@ void process_action(keyrecord_t *record, action_t action) { default: if (event.pressed) { if (tap_count > 0) { -# ifdef HOLD_ON_OTHER_KEY_PRESS_PER_KEY +# ifdef HOLD_ON_OTHER_KEY_PRESS if ( # ifdef HOLD_ON_OTHER_KEY_PRESS_PER_KEY get_hold_on_other_key_press(get_event_keycode(record->event, false), record) && diff --git a/quantum/action_tapping.c b/quantum/action_tapping.c index f94e5e6f69..8f238490f2 100644 --- a/quantum/action_tapping.c +++ b/quantum/action_tapping.c @@ -116,25 +116,26 @@ void action_tapping_process(keyrecord_t record) { * readable. The conditional definition of tapping_keycode and all the * conditional uses of it are hidden inside macros named TAP_... */ -# if (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) || defined(PERMISSIVE_HOLD_PER_KEY) || defined(HOLD_ON_OTHER_KEY_PRESS_PER_KEY) -# define TAP_DEFINE_KEYCODE const uint16_t tapping_keycode = get_record_keycode(&tapping_key, false) -# else -# define TAP_DEFINE_KEYCODE -# endif +# define TAP_DEFINE_KEYCODE const uint16_t tapping_keycode = get_record_keycode(&tapping_key, false) # if defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT) # ifdef RETRO_TAPPING_PER_KEY -# define TAP_GET_RETRO_TAPPING get_retro_tapping(tapping_keycode, &tapping_key) +# define TAP_GET_RETRO_TAPPING(keyp) get_auto_shifted_key(tapping_keycode, keyp) && get_retro_tapping(tapping_keycode, &tapping_key) # else -# define TAP_GET_RETRO_TAPPING true +# define TAP_GET_RETRO_TAPPING(keyp) get_auto_shifted_key(tapping_keycode, keyp) # endif -# define MAYBE_RETRO_SHIFTING(ev) (TAP_GET_RETRO_TAPPING && (RETRO_SHIFT + 0) != 0 && TIMER_DIFF_16((ev).time, tapping_key.event.time) < (RETRO_SHIFT + 0)) +/* Used to extend TAPPING_TERM: + * indefinitely if RETRO_SHIFT does not have a value + * to RETRO_SHIFT if RETRO_SHIFT is set + * for possibly retro shifted keys. + */ +# define MAYBE_RETRO_SHIFTING(ev, keyp) (get_auto_shifted_key(tapping_keycode, keyp) && TAP_GET_RETRO_TAPPING(keyp) && ((RETRO_SHIFT + 0) == 0 || TIMER_DIFF_16((ev).time, tapping_key.event.time) < (RETRO_SHIFT + 0))) # define TAP_IS_LT IS_QK_LAYER_TAP(tapping_keycode) # define TAP_IS_MT IS_QK_MOD_TAP(tapping_keycode) # define TAP_IS_RETRO IS_RETRO(tapping_keycode) # else -# define TAP_GET_RETRO_TAPPING false -# define MAYBE_RETRO_SHIFTING(ev) false +# define TAP_GET_RETRO_TAPPING(keyp) false +# define MAYBE_RETRO_SHIFTING(ev, kp) false # define TAP_IS_LT false # define TAP_IS_MT false # define TAP_IS_RETRO false @@ -187,20 +188,19 @@ bool process_tapping(keyrecord_t *keyp) { return true; } +# if (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) || defined(PERMISSIVE_HOLD_PER_KEY) || defined(HOLD_ON_OTHER_KEY_PRESS_PER_KEY) TAP_DEFINE_KEYCODE; +# endif // process "pressed" tapping key state if (tapping_key.event.pressed) { - if (WITHIN_TAPPING_TERM(event) || MAYBE_RETRO_SHIFTING(event)) { + if (WITHIN_TAPPING_TERM(event) || MAYBE_RETRO_SHIFTING(event, keyp)) { if (IS_NOEVENT(event)) { // early return for tick events return true; } if (tapping_key.tap.count == 0) { if (IS_TAPPING_RECORD(keyp) && !event.pressed) { -# if defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT) - retroshift_swap_times(); -# endif // first tap! ac_dprintf("Tapping: First tap(0->1).\n"); tapping_key.tap.count = 1; @@ -218,28 +218,12 @@ bool process_tapping(keyrecord_t *keyp) { */ // clang-format off else if ( + !event.pressed && waiting_buffer_typed(event) && ( - !event.pressed && waiting_buffer_typed(event) && - TAP_GET_PERMISSIVE_HOLD - ) - // Causes nested taps to not wait past TAPPING_TERM/RETRO_SHIFT - // unnecessarily and fixes them for Layer Taps. - || (TAP_GET_RETRO_TAPPING && - ( - // Rolled over the two keys. - (tapping_key.tap.interrupted == true && ( - (TAP_IS_LT && TAP_GET_HOLD_ON_OTHER_KEY_PRESS) || - (TAP_IS_MT && TAP_GET_HOLD_ON_OTHER_KEY_PRESS) - ) - ) - // Makes Retro Shift ignore the default behavior of - // MTs and LTs on nested taps below TAPPING_TERM or RETRO_SHIFT - || ( - TAP_IS_RETRO - && (event.key.col != tapping_key.event.key.col || event.key.row != tapping_key.event.key.row) - && !event.pressed && waiting_buffer_typed(event) - ) - ) + TAP_GET_PERMISSIVE_HOLD || + // Causes nested taps to not wait past TAPPING_TERM/RETRO_SHIFT + // unnecessarily and fixes them for Layer Taps. + TAP_GET_RETRO_TAPPING(keyp) ) ) { // clang-format on @@ -284,10 +268,16 @@ bool process_tapping(keyrecord_t *keyp) { process_record(keyp); return true; } else { - // set interrupted flag when other key preesed during tapping + // set interrupted flag when other key pressed during tapping if (event.pressed) { tapping_key.tap.interrupted = true; - if (TAP_GET_HOLD_ON_OTHER_KEY_PRESS) { + if (TAP_GET_HOLD_ON_OTHER_KEY_PRESS +# if defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT) + // Auto Shift cannot evaluate this early + // Retro Shift uses the hold action for all nested taps even without HOLD_ON_OTHER_KEY_PRESS, so this is fine to skip + && !(MAYBE_RETRO_SHIFTING(event, keyp) && get_auto_shifted_key(get_record_keycode(keyp, false), keyp)) +# endif + ) { ac_dprintf("Tapping: End. No tap. Interfered by pressed key\n"); process_record(&tapping_key); tapping_key = (keyrecord_t){0}; @@ -332,6 +322,9 @@ bool process_tapping(keyrecord_t *keyp) { return true; } else { ac_dprintf("Tapping: key event while last tap(>0).\n"); +# if defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT) + retroshift_swap_times(); +# endif process_record(keyp); return true; } @@ -388,7 +381,7 @@ bool process_tapping(keyrecord_t *keyp) { } // process "released" tapping key state else { - if (WITHIN_TAPPING_TERM(event) || MAYBE_RETRO_SHIFTING(event)) { + if (WITHIN_TAPPING_TERM(event) || MAYBE_RETRO_SHIFTING(event, keyp)) { if (IS_NOEVENT(event)) { // early return for tick events return true; @@ -506,9 +499,16 @@ void waiting_buffer_scan_tap(void) { return; } +# if (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) + TAP_DEFINE_KEYCODE; +# endif for (uint8_t i = waiting_buffer_tail; i != waiting_buffer_head; i = (i + 1) % WAITING_BUFFER_SIZE) { keyrecord_t *candidate = &waiting_buffer[i]; - if (IS_EVENT(candidate->event) && KEYEQ(candidate->event.key, tapping_key.event.key) && !candidate->event.pressed && WITHIN_TAPPING_TERM(candidate->event)) { + // clang-format off + if (IS_EVENT(candidate->event) && KEYEQ(candidate->event.key, tapping_key.event.key) && !candidate->event.pressed && ( + WITHIN_TAPPING_TERM(waiting_buffer[i].event) || MAYBE_RETRO_SHIFTING(waiting_buffer[i].event, &tapping_key) + )) { + // clang-format on tapping_key.tap.count = 1; candidate->tap.count = 1; process_record(&tapping_key); diff --git a/quantum/process_keycode/process_auto_shift.c b/quantum/process_keycode/process_auto_shift.c index 9b78214e43..28a21c4b67 100644 --- a/quantum/process_keycode/process_auto_shift.c +++ b/quantum/process_keycode/process_auto_shift.c @@ -66,7 +66,7 @@ __attribute__((weak)) bool get_custom_auto_shifted_key(uint16_t keycode, keyreco return false; } -/** \brief Called on physical press, returns whether is Auto Shift key */ +/** \brief Called on physical press, returns whether key is an Auto Shift key */ __attribute__((weak)) bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) { switch (keycode) { #ifndef NO_AUTO_SHIFT_ALPHA @@ -178,9 +178,8 @@ static bool autoshift_press(uint16_t keycode, uint16_t now, keyrecord_t *record) } // Store record to be sent to user functions if there's no release record then. - autoshift_lastrecord = *record; - autoshift_lastrecord.event.pressed = false; - autoshift_lastrecord.event.time = 0; + autoshift_lastrecord = *record; + autoshift_lastrecord.event.time = 0; // clang-format off #if defined(AUTO_SHIFT_REPEAT) || defined(AUTO_SHIFT_REPEAT_PER_KEY) if (keycode == autoshift_lastkey && @@ -409,8 +408,12 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) { // If Retro Shift is disabled, possible custom actions shouldn't happen. // clang-format off #if defined(RETRO_SHIFT) && !defined(NO_ACTION_TAPPING) -# ifdef HOLD_ON_OTHER_KEY_PRESS_PER_KEY - const bool is_hold_on_interrupt = get_hold_on_other_key_press(keycode, record); +# ifdef HOLD_ON_OTHER_KEY_PRESS + const bool is_hold_on_interrupt = (IS_QK_MOD_TAP(keycode) +# ifdef HOLD_ON_OTHER_KEY_PRESS_PER_KEY + && get_hold_on_other_key_press(keycode, record) +# endif + ); # else const bool is_hold_on_interrupt = false; # endif @@ -450,8 +453,12 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) { #endif ) { // Fixes modifiers not being applied to rolls with AUTO_SHIFT_MODIFIERS set. -#ifdef HOLD_ON_OTHER_KEY_PRESS_PER_KEY - if (autoshift_flags.in_progress && get_hold_on_other_key_press(keycode, record)) { +#ifdef HOLD_ON_OTHER_KEY_PRESS + if (autoshift_flags.in_progress +# ifdef HOLD_ON_OTHER_KEY_PRESS_PER_KEY + && get_hold_on_other_key_press(keycode, record) +# endif + ) { autoshift_end(KC_NO, now, false, &autoshift_lastrecord); } #endif @@ -488,10 +495,8 @@ void retroshift_poll_time(keyevent_t *event) { } // Used to swap the times of Retro Shifted key and Auto Shift key that interrupted it. void retroshift_swap_times(void) { - if (last_retroshift_time != 0 && autoshift_flags.in_progress) { - uint16_t temp = retroshift_time; - retroshift_time = last_retroshift_time; - last_retroshift_time = temp; + if (autoshift_flags.in_progress) { + autoshift_time = last_retroshift_time; } } #endif diff --git a/quantum/process_keycode/process_auto_shift.h b/quantum/process_keycode/process_auto_shift.h index 885a47b533..1353548aa6 100644 --- a/quantum/process_keycode/process_auto_shift.h +++ b/quantum/process_keycode/process_auto_shift.h @@ -56,4 +56,5 @@ uint16_t (get_autoshift_timeout)(uint16_t keycode, keyrecord_t *record); void set_autoshift_timeout(uint16_t timeout); void autoshift_matrix_scan(void); bool get_custom_auto_shifted_key(uint16_t keycode, keyrecord_t *record); +bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record); // clang-format on diff --git a/tests/auto_shift/auto_shift_repeat/auto_shift_no_auto_repeat/config.h b/tests/auto_shift/auto_shift_repeat/auto_shift_no_auto_repeat/config.h new file mode 100644 index 0000000000..973e04582f --- /dev/null +++ b/tests/auto_shift/auto_shift_repeat/auto_shift_no_auto_repeat/config.h @@ -0,0 +1,22 @@ +/* Copyright 2022 Isaac Elenbaas + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "test_common.h" + +#define AUTO_SHIFT_REPEAT +#define AUTO_SHIFT_NO_AUTO_REPEAT diff --git a/tests/auto_shift/auto_shift_repeat/auto_shift_no_auto_repeat/test.mk b/tests/auto_shift/auto_shift_repeat/auto_shift_no_auto_repeat/test.mk new file mode 100644 index 0000000000..b687332005 --- /dev/null +++ b/tests/auto_shift/auto_shift_repeat/auto_shift_no_auto_repeat/test.mk @@ -0,0 +1,20 @@ +# Copyright 2022 Isaac Elenbaas +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# -------------------------------------------------------------------------------- +# Keep this file, even if it is empty, as a marker that this folder contains tests +# -------------------------------------------------------------------------------- + +AUTO_SHIFT_ENABLE = yes diff --git a/tests/auto_shift/auto_shift_repeat/auto_shift_no_auto_repeat/test_auto_shift.cpp b/tests/auto_shift/auto_shift_repeat/auto_shift_no_auto_repeat/test_auto_shift.cpp new file mode 100644 index 0000000000..cd219a5474 --- /dev/null +++ b/tests/auto_shift/auto_shift_repeat/auto_shift_no_auto_repeat/test_auto_shift.cpp @@ -0,0 +1,105 @@ +/* Copyright 2022 Isaac Elenbaas + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +using testing::_; +using testing::AnyNumber; +using testing::AnyOf; +using testing::InSequence; + +class AutoShiftNoAutoRepeat : public TestFixture {}; + +TEST_F(AutoShiftNoAutoRepeat, no_auto_repeat) { + TestDriver driver; + InSequence s; + auto repeat_key = KeymapKey(0, 1, 0, KC_A); + + set_keymap({repeat_key}); + + /* Press repeat key. */ + EXPECT_NO_REPORT(driver); + repeat_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Idle for auto-repeat to (not) kick in. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_EMPTY_REPORT(driver); + idle_for(AUTO_SHIFT_TIMEOUT); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release repeat key. */ + EXPECT_NO_REPORT(driver); + repeat_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(AutoShiftNoAutoRepeat, tap_regular_key_while_another_key_repeats) { + TestDriver driver; + InSequence s; + auto repeat_key = KeymapKey(0, 1, 0, KC_P); + auto regular_key = KeymapKey(0, 2, 0, KC_A); + + set_keymap({repeat_key, regular_key}); + + /* Press repeat key. */ + EXPECT_NO_REPORT(driver); + repeat_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release repeat key. */ + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + repeat_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press repeat key. */ + EXPECT_REPORT(driver, (KC_P)); + repeat_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + EXPECT_REPORT(driver, (KC_P, KC_A)); + EXPECT_REPORT(driver, (KC_P)); + regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release repeat key. */ + EXPECT_EMPTY_REPORT(driver); + repeat_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} diff --git a/tests/auto_shift/auto_shift_repeat/config.h b/tests/auto_shift/auto_shift_repeat/config.h new file mode 100644 index 0000000000..fb4c506b20 --- /dev/null +++ b/tests/auto_shift/auto_shift_repeat/config.h @@ -0,0 +1,21 @@ +/* Copyright 2022 Isaac Elenbaas + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "test_common.h" + +#define AUTO_SHIFT_REPEAT diff --git a/tests/auto_shift/auto_shift_repeat/test.mk b/tests/auto_shift/auto_shift_repeat/test.mk new file mode 100644 index 0000000000..b687332005 --- /dev/null +++ b/tests/auto_shift/auto_shift_repeat/test.mk @@ -0,0 +1,20 @@ +# Copyright 2022 Isaac Elenbaas +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# -------------------------------------------------------------------------------- +# Keep this file, even if it is empty, as a marker that this folder contains tests +# -------------------------------------------------------------------------------- + +AUTO_SHIFT_ENABLE = yes diff --git a/tests/auto_shift/auto_shift_repeat/test_auto_shift.cpp b/tests/auto_shift/auto_shift_repeat/test_auto_shift.cpp new file mode 100644 index 0000000000..4a7569ea90 --- /dev/null +++ b/tests/auto_shift/auto_shift_repeat/test_auto_shift.cpp @@ -0,0 +1,107 @@ +/* Copyright 2022 Isaac Elenbaas + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +using testing::_; +using testing::AnyNumber; +using testing::InSequence; + +class AutoShiftRepeat : public TestFixture {}; + +TEST_F(AutoShiftRepeat, tap_regular_key_cancelling_another_key_hold) { + TestDriver driver; + InSequence s; + auto repeat_key = KeymapKey(0, 1, 0, KC_P); + auto regular_key = KeymapKey(0, 2, 0, KC_A); + + set_keymap({repeat_key, regular_key}); + + /* Press repeat key. */ + EXPECT_NO_REPORT(driver); + repeat_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).Times(testing::AnyNumber()); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).Times(testing::AnyNumber()); + regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).Times(testing::AnyNumber()); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).Times(testing::AnyNumber()); + regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release repeat key. */ + EXPECT_NO_REPORT(driver); + repeat_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(AutoShiftRepeat, tap_regular_key_while_another_key_is_held) { + TestDriver driver; + InSequence s; + auto repeat_key = KeymapKey(0, 1, 0, KC_P); + auto regular_key = KeymapKey(0, 2, 0, KC_A); + + set_keymap({repeat_key, regular_key}); + + /* Press repeat key. */ + EXPECT_NO_REPORT(driver); + repeat_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Idle for auto-repeat to kick in. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LSFT, KC_P)); + idle_for(AUTO_SHIFT_TIMEOUT); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + EXPECT_REPORT(driver, (KC_P, KC_A)); + EXPECT_REPORT(driver, (KC_P)); + regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release repeat key. */ + EXPECT_EMPTY_REPORT(driver); + repeat_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} diff --git a/tests/auto_shift/config.h b/tests/auto_shift/config.h index 4f343b4529..6d872dd57b 100644 --- a/tests/auto_shift/config.h +++ b/tests/auto_shift/config.h @@ -16,4 +16,4 @@ #pragma once -#include "test_common.h" \ No newline at end of file +#include "test_common.h" diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/config.h b/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/config.h new file mode 100644 index 0000000000..0de9845d9d --- /dev/null +++ b/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/config.h @@ -0,0 +1,24 @@ +/* Copyright 2022 Isaac Elenbaas + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "test_common.h" + +#define RETRO_SHIFT 2 * TAPPING_TERM +// releases between AUTO_SHIFT_TIMEOUT and TAPPING_TERM are not tested +#define AUTO_SHIFT_TIMEOUT TAPPING_TERM +#define AUTO_SHIFT_MODIFIERS diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/no_timeout/config.h b/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/no_timeout/config.h new file mode 100644 index 0000000000..dc9dc28cab --- /dev/null +++ b/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/no_timeout/config.h @@ -0,0 +1,21 @@ +/* Copyright 2021 Stefan Kerkmann + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "test_common.h" + +#define RETRO_SHIFT diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/no_timeout/test.mk b/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/no_timeout/test.mk new file mode 100644 index 0000000000..b687332005 --- /dev/null +++ b/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/no_timeout/test.mk @@ -0,0 +1,20 @@ +# Copyright 2022 Isaac Elenbaas +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# -------------------------------------------------------------------------------- +# Keep this file, even if it is empty, as a marker that this folder contains tests +# -------------------------------------------------------------------------------- + +AUTO_SHIFT_ENABLE = yes diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/no_timeout/test_retro_shift.cpp b/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/no_timeout/test_retro_shift.cpp new file mode 100644 index 0000000000..6d7d06427c --- /dev/null +++ b/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/no_timeout/test_retro_shift.cpp @@ -0,0 +1,57 @@ +/* Copyright 2022 Isaac Elenbaas + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) { + return true; +} + +using testing::_; +using testing::AnyNumber; +using testing::AnyOf; +using testing::InSequence; + +class RetroShiftDefaultTapHold : public TestFixture {}; + +TEST_F(RetroShiftDefaultTapHold, hold_mod_tap_key_for_long) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_A)); + + set_keymap({mod_tap_hold_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + idle_for(4 * TAPPING_TERM); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/test.mk b/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/test.mk new file mode 100644 index 0000000000..b687332005 --- /dev/null +++ b/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/test.mk @@ -0,0 +1,20 @@ +# Copyright 2022 Isaac Elenbaas +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# -------------------------------------------------------------------------------- +# Keep this file, even if it is empty, as a marker that this folder contains tests +# -------------------------------------------------------------------------------- + +AUTO_SHIFT_ENABLE = yes diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/test_retro_shift.cpp b/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/test_retro_shift.cpp new file mode 100644 index 0000000000..f85a511632 --- /dev/null +++ b/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/test_retro_shift.cpp @@ -0,0 +1,485 @@ +/* Copyright 2022 Isaac Elenbaas + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) { + return true; +} + +using testing::_; +using testing::AnyNumber; +using testing::AnyOf; +using testing::InSequence; + +class RetroShiftDefaultTapHold : public TestFixture {}; + +TEST_F(RetroShiftDefaultTapHold, tap_mod_tap_key) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_A)); + + set_keymap({mod_tap_hold_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftDefaultTapHold, hold_mod_tap_key_under_retro_shift) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_A)); + + set_keymap({mod_tap_hold_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + idle_for(AUTO_SHIFT_TIMEOUT); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftDefaultTapHold, hold_mod_tap_key_over_retro_shift) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_A)); + + set_keymap({mod_tap_hold_key}); + + /* Press mod-tap-hold key. */ + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_hold_key.press(); + run_one_scan_loop(); + idle_for(RETRO_SHIFT); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftDefaultTapHold, tap_regular_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftDefaultTapHold, tap_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftDefaultTapHold, tap_regular_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + regular_key.release(); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftDefaultTapHold, tap_mod_tap_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_regular_key.release(); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftDefaultTapHold, hold_regular_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + idle_for(AUTO_SHIFT_TIMEOUT); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT), + KeyboardReport(KC_LCTL)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A)); + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL)); + regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftDefaultTapHold, hold_mod_tap_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + idle_for(AUTO_SHIFT_TIMEOUT); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT), + KeyboardReport(KC_LCTL)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A)); + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_regular_key.release(); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftDefaultTapHold, roll_tap_regular_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftDefaultTapHold, roll_tap_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftDefaultTapHold, roll_hold_regular_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + idle_for(AUTO_SHIFT_TIMEOUT); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftDefaultTapHold, roll_hold_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_EMPTY_REPORT(driver); + idle_for(AUTO_SHIFT_TIMEOUT); + mod_tap_regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/hold_on_other_key_press/config.h b/tests/auto_shift/retro_shift/tap_hold_configurations/hold_on_other_key_press/config.h new file mode 100644 index 0000000000..396683963d --- /dev/null +++ b/tests/auto_shift/retro_shift/tap_hold_configurations/hold_on_other_key_press/config.h @@ -0,0 +1,26 @@ +/* Copyright 2022 Isaac Elenbaas + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "test_common.h" + +#define HOLD_ON_OTHER_KEY_PRESS + +#define RETRO_SHIFT 2 * TAPPING_TERM +// releases between AUTO_SHIFT_TIMEOUT and TAPPING_TERM are not tested +#define AUTO_SHIFT_TIMEOUT TAPPING_TERM +#define AUTO_SHIFT_MODIFIERS diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/hold_on_other_key_press/test.mk b/tests/auto_shift/retro_shift/tap_hold_configurations/hold_on_other_key_press/test.mk new file mode 100644 index 0000000000..b687332005 --- /dev/null +++ b/tests/auto_shift/retro_shift/tap_hold_configurations/hold_on_other_key_press/test.mk @@ -0,0 +1,20 @@ +# Copyright 2022 Isaac Elenbaas +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# -------------------------------------------------------------------------------- +# Keep this file, even if it is empty, as a marker that this folder contains tests +# -------------------------------------------------------------------------------- + +AUTO_SHIFT_ENABLE = yes diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/hold_on_other_key_press/test_retro_shift.cpp b/tests/auto_shift/retro_shift/tap_hold_configurations/hold_on_other_key_press/test_retro_shift.cpp new file mode 100644 index 0000000000..52fc082ea3 --- /dev/null +++ b/tests/auto_shift/retro_shift/tap_hold_configurations/hold_on_other_key_press/test_retro_shift.cpp @@ -0,0 +1,442 @@ +/* Copyright 2022 Isaac Elenbaas + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) { + return true; +} + +using testing::_; +using testing::AnyNumber; +using testing::AnyOf; +using testing::InSequence; + +class RetroShiftHoldOnOtherKeyPress : public TestFixture {}; + +TEST_F(RetroShiftHoldOnOtherKeyPress, tap_regular_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftHoldOnOtherKeyPress, tap_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftHoldOnOtherKeyPress, tap_regular_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + regular_key.release(); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftHoldOnOtherKeyPress, tap_mod_tap_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_regular_key.release(); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftHoldOnOtherKeyPress, hold_regular_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + idle_for(AUTO_SHIFT_TIMEOUT); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT), + KeyboardReport(KC_LCTL)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A)); + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL)); + regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftHoldOnOtherKeyPress, hold_mod_tap_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + idle_for(AUTO_SHIFT_TIMEOUT); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT), + KeyboardReport(KC_LCTL)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A)); + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_regular_key.release(); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftHoldOnOtherKeyPress, roll_tap_regular_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftHoldOnOtherKeyPress, roll_tap_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftHoldOnOtherKeyPress, roll_hold_regular_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT), + KeyboardReport(KC_LCTL)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A)); + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT), + KeyboardReport(KC_LCTL)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_EMPTY_REPORT(driver); + idle_for(AUTO_SHIFT_TIMEOUT); + regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftHoldOnOtherKeyPress, roll_hold_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT), + KeyboardReport(KC_LCTL)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A)); + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT), + KeyboardReport(KC_LCTL)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_EMPTY_REPORT(driver); + idle_for(AUTO_SHIFT_TIMEOUT); + mod_tap_regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold/config.h b/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold/config.h new file mode 100644 index 0000000000..5194027c9f --- /dev/null +++ b/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold/config.h @@ -0,0 +1,26 @@ +/* Copyright 2022 Isaac Elenbaas + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "test_common.h" + +#define PERMISSIVE_HOLD + +#define RETRO_SHIFT 2 * TAPPING_TERM +// releases between AUTO_SHIFT_TIMEOUT and TAPPING_TERM are not tested +#define AUTO_SHIFT_TIMEOUT TAPPING_TERM +#define AUTO_SHIFT_MODIFIERS diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold/test.mk b/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold/test.mk new file mode 100644 index 0000000000..b687332005 --- /dev/null +++ b/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold/test.mk @@ -0,0 +1,20 @@ +# Copyright 2022 Isaac Elenbaas +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# -------------------------------------------------------------------------------- +# Keep this file, even if it is empty, as a marker that this folder contains tests +# -------------------------------------------------------------------------------- + +AUTO_SHIFT_ENABLE = yes diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold/test_retro_shift.cpp b/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold/test_retro_shift.cpp new file mode 100644 index 0000000000..a6c2cab167 --- /dev/null +++ b/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold/test_retro_shift.cpp @@ -0,0 +1,419 @@ +/* Copyright 2022 Isaac Elenbaas + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) { + return true; +} + +using testing::_; +using testing::AnyNumber; +using testing::AnyOf; +using testing::InSequence; + +class RetroShiftPermissiveHold : public TestFixture {}; + +TEST_F(RetroShiftPermissiveHold, tap_regular_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHold, tap_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHold, tap_regular_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + regular_key.release(); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHold, tap_mod_tap_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_regular_key.release(); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHold, hold_regular_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + idle_for(AUTO_SHIFT_TIMEOUT); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT), + KeyboardReport(KC_LCTL)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A)); + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL)); + regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHold, hold_mod_tap_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + idle_for(AUTO_SHIFT_TIMEOUT); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT), + KeyboardReport(KC_LCTL)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A)); + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_regular_key.release(); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHold, roll_tap_regular_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHold, roll_tap_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHold, roll_hold_regular_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + idle_for(AUTO_SHIFT_TIMEOUT); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHold, roll_hold_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_EMPTY_REPORT(driver); + idle_for(AUTO_SHIFT_TIMEOUT); + mod_tap_regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold_hold_on_other_key_press/config.h b/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold_hold_on_other_key_press/config.h new file mode 100644 index 0000000000..a9535d8db0 --- /dev/null +++ b/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold_hold_on_other_key_press/config.h @@ -0,0 +1,27 @@ +/* Copyright 2022 Isaac Elenbaas + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "test_common.h" + +#define HOLD_ON_OTHER_KEY_PRESS +#define PERMISSIVE_HOLD + +#define RETRO_SHIFT 2 * TAPPING_TERM +// releases between AUTO_SHIFT_TIMEOUT and TAPPING_TERM are not tested +#define AUTO_SHIFT_TIMEOUT TAPPING_TERM +#define AUTO_SHIFT_MODIFIERS diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold_hold_on_other_key_press/test.mk b/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold_hold_on_other_key_press/test.mk new file mode 100644 index 0000000000..b687332005 --- /dev/null +++ b/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold_hold_on_other_key_press/test.mk @@ -0,0 +1,20 @@ +# Copyright 2022 Isaac Elenbaas +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# -------------------------------------------------------------------------------- +# Keep this file, even if it is empty, as a marker that this folder contains tests +# -------------------------------------------------------------------------------- + +AUTO_SHIFT_ENABLE = yes diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold_hold_on_other_key_press/test_retro_shift.cpp b/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold_hold_on_other_key_press/test_retro_shift.cpp new file mode 100644 index 0000000000..25c80b2cba --- /dev/null +++ b/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold_hold_on_other_key_press/test_retro_shift.cpp @@ -0,0 +1,442 @@ +/* Copyright 2022 Isaac Elenbaas + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) { + return true; +} + +using testing::_; +using testing::AnyNumber; +using testing::AnyOf; +using testing::InSequence; + +class RetroShiftPermissiveHoldHoldOnOtherKeyPress : public TestFixture {}; + +TEST_F(RetroShiftPermissiveHoldHoldOnOtherKeyPress, tap_regular_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHoldHoldOnOtherKeyPress, tap_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHoldHoldOnOtherKeyPress, tap_regular_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + regular_key.release(); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHoldHoldOnOtherKeyPress, tap_mod_tap_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_regular_key.release(); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHoldHoldOnOtherKeyPress, hold_regular_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + idle_for(AUTO_SHIFT_TIMEOUT); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT), + KeyboardReport(KC_LCTL)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A)); + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL)); + regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHoldHoldOnOtherKeyPress, hold_mod_tap_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + idle_for(AUTO_SHIFT_TIMEOUT); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT), + KeyboardReport(KC_LCTL)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A)); + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_regular_key.release(); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHoldHoldOnOtherKeyPress, roll_tap_regular_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHoldHoldOnOtherKeyPress, roll_tap_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHoldHoldOnOtherKeyPress, roll_hold_regular_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT), + KeyboardReport(KC_LCTL)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A)); + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT), + KeyboardReport(KC_LCTL)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_EMPTY_REPORT(driver); + idle_for(AUTO_SHIFT_TIMEOUT); + regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHoldHoldOnOtherKeyPress, roll_hold_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT), + KeyboardReport(KC_LCTL)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A)); + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT), + KeyboardReport(KC_LCTL)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_EMPTY_REPORT(driver); + idle_for(AUTO_SHIFT_TIMEOUT); + mod_tap_regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} diff --git a/tests/auto_shift/test.mk b/tests/auto_shift/test.mk index 4259c606e4..a4c6b380ed 100644 --- a/tests/auto_shift/test.mk +++ b/tests/auto_shift/test.mk @@ -17,4 +17,4 @@ # Keep this file, even if it is empty, as a marker that this folder contains tests # -------------------------------------------------------------------------------- -AUTO_SHIFT_ENABLE = yes \ No newline at end of file +AUTO_SHIFT_ENABLE = yes diff --git a/tests/basic/config.h b/tests/basic/config.h index 85fa9d691d..7fc76d7c2e 100644 --- a/tests/basic/config.h +++ b/tests/basic/config.h @@ -16,4 +16,4 @@ #pragma once -#include "test_common.h" \ No newline at end of file +#include "test_common.h" diff --git a/tests/basic/test.mk b/tests/basic/test.mk index 29690d1adf..6ec384609c 100644 --- a/tests/basic/test.mk +++ b/tests/basic/test.mk @@ -15,4 +15,4 @@ # -------------------------------------------------------------------------------- # Keep this file, even if it is empty, as a marker that this folder contains tests -# -------------------------------------------------------------------------------- \ No newline at end of file +# -------------------------------------------------------------------------------- diff --git a/tests/caps_word/auto_shift/config.h b/tests/caps_word/auto_shift/config.h new file mode 100644 index 0000000000..aff389100e --- /dev/null +++ b/tests/caps_word/auto_shift/config.h @@ -0,0 +1,21 @@ +// Copyright 2022 Google LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#pragma once + +#include "test_common.h" + +#define TAPPING_TERM 200 +#define AUTO_SHIFT_TIMEOUT 150 diff --git a/tests/caps_word/caps_word_autoshift/config.h b/tests/caps_word/auto_shift/retro_shift/config.h similarity index 100% rename from tests/caps_word/caps_word_autoshift/config.h rename to tests/caps_word/auto_shift/retro_shift/config.h diff --git a/tests/caps_word/caps_word_autoshift/test.mk b/tests/caps_word/auto_shift/retro_shift/test.mk similarity index 100% rename from tests/caps_word/caps_word_autoshift/test.mk rename to tests/caps_word/auto_shift/retro_shift/test.mk diff --git a/tests/caps_word/caps_word_autoshift/test_caps_word_autoshift.cpp b/tests/caps_word/auto_shift/retro_shift/test_caps_word_retroshift.cpp similarity index 98% rename from tests/caps_word/caps_word_autoshift/test_caps_word_autoshift.cpp rename to tests/caps_word/auto_shift/retro_shift/test_caps_word_retroshift.cpp index 01b1a78a5f..03a7a61a73 100644 --- a/tests/caps_word/caps_word_autoshift/test_caps_word_autoshift.cpp +++ b/tests/caps_word/auto_shift/retro_shift/test_caps_word_retroshift.cpp @@ -27,6 +27,10 @@ KeyboardReport(KC_LSFT)))) // clang-format on +bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) { + return true; +} + using ::testing::_; using ::testing::AnyNumber; using ::testing::AnyOf; diff --git a/tests/caps_word/auto_shift/test.mk b/tests/caps_word/auto_shift/test.mk new file mode 100644 index 0000000000..7f717d7fc1 --- /dev/null +++ b/tests/caps_word/auto_shift/test.mk @@ -0,0 +1,18 @@ +# Copyright 2022 Google LLC +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +CAPS_WORD_ENABLE = yes +AUTO_SHIFT_ENABLE = yes + diff --git a/tests/caps_word/auto_shift/test_caps_word_autoshift.cpp b/tests/caps_word/auto_shift/test_caps_word_autoshift.cpp new file mode 100644 index 0000000000..849b993525 --- /dev/null +++ b/tests/caps_word/auto_shift/test_caps_word_autoshift.cpp @@ -0,0 +1,66 @@ +// Copyright 2022 Google LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +using ::testing::_; +using ::testing::AnyNumber; +using ::testing::AnyOf; +using ::testing::InSequence; + +class CapsWord : public TestFixture { + public: + void SetUp() override { + caps_word_off(); + } +}; + +// Tests that with Auto Shift, letter keys are shifted by Caps Word +// regardless of whether they are released before AUTO_SHIFT_TIMEOUT. +TEST_F(CapsWord, AutoShiftKeys) { + TestDriver driver; + KeymapKey key_a(0, 0, 0, KC_A); + KeymapKey key_spc(0, 1, 0, KC_SPC); + set_keymap({key_a, key_spc}); + + // Allow any number of reports with no keys or only KC_LSFT. + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(), + KeyboardReport(KC_LSFT)))) + .Times(AnyNumber()); + // clang-format on + { // Expect: "A, A, space, a". + InSequence s; + EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + EXPECT_REPORT(driver, (KC_SPC)); + EXPECT_REPORT(driver, (KC_A)); + } + + // Turn on Caps Word and type "A (quick tap), A (long press), space, A". + caps_word_on(); + + tap_key(key_a); // Tap A quickly. + tap_key(key_a, AUTO_SHIFT_TIMEOUT + 1); // Long press A. + tap_key(key_spc); + tap_key(key_a); + + testing::Mock::VerifyAndClearExpectations(&driver); +} diff --git a/tests/caps_word/caps_word_unicodemap/config.h b/tests/caps_word/unicodemap/config.h similarity index 100% rename from tests/caps_word/caps_word_unicodemap/config.h rename to tests/caps_word/unicodemap/config.h diff --git a/tests/caps_word/caps_word_unicodemap/test.mk b/tests/caps_word/unicodemap/test.mk similarity index 100% rename from tests/caps_word/caps_word_unicodemap/test.mk rename to tests/caps_word/unicodemap/test.mk diff --git a/tests/caps_word/caps_word_unicodemap/test_caps_word_unicodemap.cpp b/tests/caps_word/unicodemap/test_caps_word_unicodemap.cpp similarity index 100% rename from tests/caps_word/caps_word_unicodemap/test_caps_word_unicodemap.cpp rename to tests/caps_word/unicodemap/test_caps_word_unicodemap.cpp diff --git a/tests/tap_hold_configurations/default_mod_tap/test.mk b/tests/tap_hold_configurations/default_mod_tap/test.mk index cfab996e0e..efecca2c22 100644 --- a/tests/tap_hold_configurations/default_mod_tap/test.mk +++ b/tests/tap_hold_configurations/default_mod_tap/test.mk @@ -15,4 +15,4 @@ # -------------------------------------------------------------------------------- # Keep this file, even if it is empty, as a marker that this folder contains tests -# -------------------------------------------------------------------------------- \ No newline at end of file +# -------------------------------------------------------------------------------- diff --git a/tests/tap_hold_configurations/permissive_hold/config.h b/tests/tap_hold_configurations/permissive_hold/config.h index 2d5a9849e7..0031c6e5bc 100644 --- a/tests/tap_hold_configurations/permissive_hold/config.h +++ b/tests/tap_hold_configurations/permissive_hold/config.h @@ -18,4 +18,4 @@ #include "test_common.h" -#define PERMISSIVE_HOLD \ No newline at end of file +#define PERMISSIVE_HOLD diff --git a/tests/test_common/build.mk b/tests/test_common/build.mk index aeb3057854..d7423bc78a 100644 --- a/tests/test_common/build.mk +++ b/tests/test_common/build.mk @@ -13,4 +13,4 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -CUSTOM_MATRIX=yes \ No newline at end of file +CUSTOM_MATRIX=yes diff --git a/tests/test_common/main.cpp b/tests/test_common/main.cpp index 0f4e320b07..ac481b8fba 100644 --- a/tests/test_common/main.cpp +++ b/tests/test_common/main.cpp @@ -29,4 +29,4 @@ int main(int argc, char **argv) { init_logging(); return RUN_ALL_TESTS(); -} \ No newline at end of file +} diff --git a/tests/test_common/test_common.h b/tests/test_common/test_common.h index 19ffcddcea..8b93c032b6 100644 --- a/tests/test_common/test_common.h +++ b/tests/test_common/test_common.h @@ -1,4 +1,4 @@ #pragma once #define MATRIX_ROWS 4 -#define MATRIX_COLS 10 \ No newline at end of file +#define MATRIX_COLS 10 From 960d6e0d7d8007ee826184967dc1edc5ab7b2755 Mon Sep 17 00:00:00 2001 From: Andre Brait Date: Mon, 25 Sep 2023 04:48:55 +0200 Subject: [PATCH 160/496] [Enhancement] Improvements for debounce test coverage + bug fixes for sym_defer_g and sym_eager_pr (#21667) Co-authored-by: Nebuleon <2391500+Nebuleon@users.noreply.github.com> --- platforms/test/timer.c | 41 ++- quantum/debounce/none.c | 10 +- quantum/debounce/sym_defer_g.c | 15 +- quantum/debounce/sym_eager_pr.c | 4 +- .../tests/asym_eager_defer_pk_tests.cpp | 29 ++ .../debounce/tests/debounce_test_common.cpp | 25 +- quantum/debounce/tests/debounce_test_common.h | 5 +- quantum/debounce/tests/none_tests.cpp | 256 ++++++++++++++++++ quantum/debounce/tests/rules.mk | 5 + quantum/debounce/tests/sym_defer_g_tests.cpp | 18 ++ quantum/debounce/tests/sym_defer_pk_tests.cpp | 18 ++ quantum/debounce/tests/sym_defer_pr_tests.cpp | 18 ++ quantum/debounce/tests/sym_eager_pk_tests.cpp | 18 ++ quantum/debounce/tests/sym_eager_pr_tests.cpp | 18 ++ quantum/debounce/tests/testlist.mk | 1 + 15 files changed, 458 insertions(+), 23 deletions(-) create mode 100644 quantum/debounce/tests/none_tests.cpp diff --git a/platforms/test/timer.c b/platforms/test/timer.c index 320cc57782..eb929d7dac 100644 --- a/platforms/test/timer.c +++ b/platforms/test/timer.c @@ -17,34 +17,65 @@ #include "timer.h" #include -static atomic_uint_least32_t current_time = 0; +static atomic_uint_least32_t current_time = 0; +static atomic_uint_least32_t async_tick_amount = 0; +static atomic_uint_least32_t access_counter = 0; + +void simulate_async_tick(uint32_t t) { + async_tick_amount = t; +} + +uint32_t timer_read_internal(void) { + return current_time; +} + +uint32_t current_access_counter(void) { + return access_counter; +} + +void reset_access_counter(void) { + access_counter = 0; +} void timer_init(void) { - current_time = 0; + current_time = 0; + async_tick_amount = 0; + access_counter = 0; } void timer_clear(void) { - current_time = 0; + current_time = 0; + async_tick_amount = 0; + access_counter = 0; } uint16_t timer_read(void) { - return current_time & 0xFFFF; + return (uint16_t)timer_read32(); } + uint32_t timer_read32(void) { + if (access_counter++ > 0) { + current_time += async_tick_amount; + } return current_time; } + uint16_t timer_elapsed(uint16_t last) { return TIMER_DIFF_16(timer_read(), last); } + uint32_t timer_elapsed32(uint32_t last) { return TIMER_DIFF_32(timer_read32(), last); } void set_time(uint32_t t) { - current_time = t; + current_time = t; + access_counter = 0; } + void advance_time(uint32_t ms) { current_time += ms; + access_counter = 0; } void wait_ms(uint32_t ms) { diff --git a/quantum/debounce/none.c b/quantum/debounce/none.c index 1b8b1dc13a..0a8ccfc4ee 100644 --- a/quantum/debounce/none.c +++ b/quantum/debounce/none.c @@ -20,9 +20,15 @@ void debounce_init(uint8_t num_rows) {} bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) { - bool cooked_changed = memcmp(raw, cooked, sizeof(matrix_row_t) * num_rows) != 0; + bool cooked_changed = false; - memcpy(cooked, raw, sizeof(matrix_row_t) * num_rows); + if (changed) { + size_t matrix_size = num_rows * sizeof(matrix_row_t); + if (memcmp(cooked, raw, matrix_size) != 0) { + memcpy(cooked, raw, matrix_size); + cooked_changed = true; + } + } return cooked_changed; } diff --git a/quantum/debounce/sym_defer_g.c b/quantum/debounce/sym_defer_g.c index 25e18890af..d96758fab3 100644 --- a/quantum/debounce/sym_defer_g.c +++ b/quantum/debounce/sym_defer_g.c @@ -24,6 +24,12 @@ When no state changes have occured for DEBOUNCE milliseconds, we push the state. # define DEBOUNCE 5 #endif +// Maximum debounce: 255ms +#if DEBOUNCE > UINT8_MAX +# undef DEBOUNCE +# define DEBOUNCE UINT8_MAX +#endif + #if DEBOUNCE > 0 static bool debouncing = false; static fast_timer_t debouncing_time; @@ -36,11 +42,10 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool if (changed) { debouncing = true; debouncing_time = timer_read_fast(); - } - - if (debouncing && timer_elapsed_fast(debouncing_time) >= DEBOUNCE) { - if (memcmp(cooked, raw, sizeof(matrix_row_t) * num_rows) != 0) { - memcpy(cooked, raw, sizeof(matrix_row_t) * num_rows); + } else if (debouncing && timer_elapsed_fast(debouncing_time) >= DEBOUNCE) { + size_t matrix_size = num_rows * sizeof(matrix_row_t); + if (memcmp(cooked, raw, matrix_size) != 0) { + memcpy(cooked, raw, matrix_size); cooked_changed = true; } debouncing = false; diff --git a/quantum/debounce/sym_eager_pr.c b/quantum/debounce/sym_eager_pr.c index ccc5d20fa2..6cd9308aff 100644 --- a/quantum/debounce/sym_eager_pr.c +++ b/quantum/debounce/sym_eager_pr.c @@ -128,8 +128,8 @@ static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], ui if (existing_row != raw_row) { if (*debounce_pointer == DEBOUNCE_ELAPSED) { *debounce_pointer = DEBOUNCE; - cooked[row] = raw_row; - cooked_changed |= cooked[row] ^ raw[row]; + cooked_changed |= cooked[row] ^ raw_row; + cooked[row] = raw_row; counters_need_update = true; } } diff --git a/quantum/debounce/tests/asym_eager_defer_pk_tests.cpp b/quantum/debounce/tests/asym_eager_defer_pk_tests.cpp index 44b4fe1956..6737f499ab 100644 --- a/quantum/debounce/tests/asym_eager_defer_pk_tests.cpp +++ b/quantum/debounce/tests/asym_eager_defer_pk_tests.cpp @@ -392,3 +392,32 @@ TEST_F(DebounceTest, OneKeyDelayedScan8) { time_jumps_ = true; runEvents(); } + +TEST_F(DebounceTest, AsyncTickOneKeyShort1) { + addEvents({ + /* Time, Inputs, Outputs */ + {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + /* Release key after 1ms delay */ + {1, {{0, 1, UP}}, {}}, + + /* + * Until the eager timer on DOWN is observed to finish, the defer timer + * on UP can't start. There's no workaround for this because it's not + * possible to debounce an event that isn't being tracked. + * + * sym_defer_pk has the same problem but the test has to track that the + * key changed state so the DOWN timer is always allowed to finish + * before starting the UP timer. + */ + {5, {}, {}}, + + {10, {}, {{0, 1, UP}}}, /* 5ms+5ms after DOWN at time 0 */ + /* Press key again after 1ms delay */ + {11, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + }); + /* + * Debounce implementations should never read the timer more than once per invocation + */ + async_time_jumps_ = DEBOUNCE; + runEvents(); +} diff --git a/quantum/debounce/tests/debounce_test_common.cpp b/quantum/debounce/tests/debounce_test_common.cpp index b11378b286..fd4b6f01a6 100644 --- a/quantum/debounce/tests/debounce_test_common.cpp +++ b/quantum/debounce/tests/debounce_test_common.cpp @@ -26,8 +26,12 @@ extern "C" { #include "debounce.h" #include "timer.h" -void set_time(uint32_t t); -void advance_time(uint32_t ms); +void simulate_async_tick(uint32_t t); +void reset_access_counter(void); +uint32_t current_access_counter(void); +uint32_t timer_read_internal(void); +void set_time(uint32_t t); +void advance_time(uint32_t ms); } void DebounceTest::addEvents(std::initializer_list events) { @@ -58,6 +62,7 @@ void DebounceTest::runEventsInternal() { /* Initialise keyboard with start time (offset to avoid testing at 0) and all keys UP */ debounce_init(MATRIX_ROWS); set_time(time_offset_); + simulate_async_tick(async_time_jumps_); std::fill(std::begin(input_matrix_), std::end(input_matrix_), 0); std::fill(std::begin(output_matrix_), std::end(output_matrix_), 0); @@ -70,9 +75,9 @@ void DebounceTest::runEventsInternal() { advance_time(1); } else { /* Fast forward to the time for this event, calling debounce() with no changes */ - ASSERT_LT((time_offset_ + event.time_) - timer_read_fast(), 60000) << "Test tries to advance more than 1 minute of time"; + ASSERT_LT((time_offset_ + event.time_) - timer_read_internal(), 60000) << "Test tries to advance more than 1 minute of time"; - while (timer_read_fast() != time_offset_ + event.time_) { + while (timer_read_internal() != time_offset_ + event.time_) { runDebounce(false); checkCookedMatrix(false, "debounce() modified cooked matrix"); advance_time(1); @@ -124,14 +129,20 @@ void DebounceTest::runDebounce(bool changed) { std::copy(std::begin(input_matrix_), std::end(input_matrix_), std::begin(raw_matrix_)); std::copy(std::begin(output_matrix_), std::end(output_matrix_), std::begin(cooked_matrix_)); + reset_access_counter(); + bool cooked_changed = debounce(raw_matrix_, cooked_matrix_, MATRIX_ROWS, changed); if (!std::equal(std::begin(input_matrix_), std::end(input_matrix_), std::begin(raw_matrix_))) { FAIL() << "Fatal error: debounce() modified raw matrix at " << strTime() << "\ninput_matrix: changed=" << changed << "\n" << strMatrix(input_matrix_) << "\nraw_matrix:\n" << strMatrix(raw_matrix_); } - if (std::equal(std::begin(output_matrix_), std::end(output_matrix_), std::begin(cooked_matrix_)) && cooked_changed) { - FAIL() << "Fatal error: debounce() did detect a wrong cooked matrix change at " << strTime() << "\noutput_matrix: cooked_changed=" << cooked_changed << "\n" << strMatrix(output_matrix_) << "\ncooked_matrix:\n" << strMatrix(cooked_matrix_); + if (std::equal(std::begin(output_matrix_), std::end(output_matrix_), std::begin(cooked_matrix_)) == cooked_changed) { + FAIL() << "Fatal error: debounce() reported a wrong cooked matrix change result at " << strTime() << "\noutput_matrix: cooked_changed=" << cooked_changed << "\n" << strMatrix(output_matrix_) << "\ncooked_matrix:\n" << strMatrix(cooked_matrix_); + } + + if (current_access_counter() > 1) { + FAIL() << "Fatal error: debounce() read the timer multiple times, which is not allowed, at " << strTime() << "\ntimer: access_count=" << current_access_counter() << "\noutput_matrix: cooked_changed=" << cooked_changed << "\n" << strMatrix(output_matrix_) << "\ncooked_matrix:\n" << strMatrix(cooked_matrix_); } } @@ -144,7 +155,7 @@ void DebounceTest::checkCookedMatrix(bool changed, const std::string &error_mess std::string DebounceTest::strTime() { std::stringstream text; - text << "time " << (timer_read_fast() - time_offset_) << " (extra_iterations=" << extra_iterations_ << ", auto_advance_time=" << auto_advance_time_ << ")"; + text << "time " << (timer_read_internal() - time_offset_) << " (extra_iterations=" << extra_iterations_ << ", auto_advance_time=" << auto_advance_time_ << ")"; return text.str(); } diff --git a/quantum/debounce/tests/debounce_test_common.h b/quantum/debounce/tests/debounce_test_common.h index 7319abfbf3..ebbe340c05 100644 --- a/quantum/debounce/tests/debounce_test_common.h +++ b/quantum/debounce/tests/debounce_test_common.h @@ -54,8 +54,9 @@ class DebounceTest : public ::testing::Test { void addEvents(std::initializer_list events); void runEvents(); - fast_timer_t time_offset_ = 7777; - bool time_jumps_ = false; + fast_timer_t time_offset_ = 7777; + bool time_jumps_ = false; + fast_timer_t async_time_jumps_ = 0; private: static bool directionValue(Direction direction); diff --git a/quantum/debounce/tests/none_tests.cpp b/quantum/debounce/tests/none_tests.cpp new file mode 100644 index 0000000000..69fdd02101 --- /dev/null +++ b/quantum/debounce/tests/none_tests.cpp @@ -0,0 +1,256 @@ +/* Copyright 2021 Simon Arlott + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "gtest/gtest.h" + +#include "debounce_test_common.h" + +TEST_F(DebounceTest, OneKeyShort1) { + addEvents({ + /* Time, Inputs, Outputs */ + {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + + {5, {}, {}}, + /* 0ms delay (fast scan rate) */ + {5, {{0, 1, UP}}, {{0, 1, UP}}}, + + {10, {}, {}}, + }); + runEvents(); +} + +TEST_F(DebounceTest, OneKeyShort2) { + addEvents({ + /* Time, Inputs, Outputs */ + {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + + {5, {}, {}}, + /* 1ms delay */ + {6, {{0, 1, UP}}, {{0, 1, UP}}}, + + {11, {}, {}}, + }); + runEvents(); +} + +TEST_F(DebounceTest, OneKeyShort3) { + addEvents({ + /* Time, Inputs, Outputs */ + {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + + {5, {}, {}}, + /* 2ms delay */ + {7, {{0, 1, UP}}, {{0, 1, UP}}}, + + {12, {}, {}}, + }); + runEvents(); +} + +TEST_F(DebounceTest, OneKeyTooQuick1) { + addEvents({ + /* Time, Inputs, Outputs */ + {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + /* Release key exactly on the debounce time */ + {5, {{0, 1, UP}}, {{0, 1, UP}}}, + }); + runEvents(); +} + +TEST_F(DebounceTest, OneKeyTooQuick2) { + addEvents({ + /* Time, Inputs, Outputs */ + {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + + {5, {}, {}}, + {6, {{0, 1, UP}}, {{0, 1, UP}}}, + + /* Press key exactly on the debounce time */ + {11, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + }); + runEvents(); +} + +TEST_F(DebounceTest, OneKeyBouncing1) { + addEvents({ + /* Time, Inputs, Outputs */ + {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + {1, {{0, 1, UP}}, {{0, 1, UP}}}, + {2, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + {3, {{0, 1, UP}}, {{0, 1, UP}}}, + {4, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + {5, {{0, 1, UP}}, {{0, 1, UP}}}, + {6, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + {11, {{0, 1, UP}}, {{0, 1, UP}}}, /* 5ms after DOWN at time 7 */ + }); + runEvents(); +} + +TEST_F(DebounceTest, OneKeyBouncing2) { + addEvents({ + /* Time, Inputs, Outputs */ + {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + {5, {}, {}}, + {6, {{0, 1, UP}}, {{0, 1, UP}}}, + {7, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + {8, {{0, 1, UP}}, {{0, 1, UP}}}, + {9, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + {10, {{0, 1, UP}}, {{0, 1, UP}}}, + {15, {}, {}}, /* 5ms after UP at time 10 */ + }); + runEvents(); +} + +TEST_F(DebounceTest, OneKeyLong) { + addEvents({ + /* Time, Inputs, Outputs */ + {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + + {5, {}, {}}, + + {25, {{0, 1, UP}}, {{0, 1, UP}}}, + + {30, {}, {}}, + + {50, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + + {55, {}, {}}, + }); + runEvents(); +} + +TEST_F(DebounceTest, TwoKeysShort) { + addEvents({ + /* Time, Inputs, Outputs */ + {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + {1, {{0, 2, DOWN}}, {{0, 2, DOWN}}}, + + {6, {}, {}}, + + {7, {{0, 1, UP}}, {{0, 1, UP}}}, + {8, {{0, 2, UP}}, {{0, 2, UP}}}, + + {13, {}, {}}, + }); + runEvents(); +} + +TEST_F(DebounceTest, TwoKeysSimultaneous1) { + addEvents({ + /* Time, Inputs, Outputs */ + {0, {{0, 1, DOWN}, {0, 2, DOWN}}, {{0, 1, DOWN}, {0, 2, DOWN}}}, + + {5, {}, {}}, + {6, {{0, 1, UP}, {0, 2, UP}}, {{0, 1, UP}, {0, 2, UP}}}, + + {11, {}, {}}, + }); + runEvents(); +} + +TEST_F(DebounceTest, TwoKeysSimultaneous2) { + addEvents({ + /* Time, Inputs, Outputs */ + {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + {1, {{0, 2, DOWN}}, {{0, 2, DOWN}}}, + + {5, {}, {}}, + {6, {}, {}}, + {7, {{0, 1, UP}}, {{0, 1, UP}}}, + {8, {{0, 2, UP}}, {{0, 2, UP}}}, + + {13, {}, {}}, + }); + runEvents(); +} + +TEST_F(DebounceTest, OneKeyDelayedScan1) { + addEvents({ + /* Time, Inputs, Outputs */ + {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + + /* Processing is very late */ + {300, {}, {}}, + /* Immediately release key */ + {300, {{0, 1, UP}}, {{0, 1, UP}}}, + + {305, {}, {}}, + }); + time_jumps_ = true; + runEvents(); +} + +TEST_F(DebounceTest, OneKeyDelayedScan2) { + addEvents({ + /* Time, Inputs, Outputs */ + {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + + /* Processing is very late */ + {300, {}, {}}, + /* Release key after 1ms */ + {301, {{0, 1, UP}}, {{0, 1, UP}}}, + + {306, {}, {}}, + }); + time_jumps_ = true; + runEvents(); +} + +TEST_F(DebounceTest, OneKeyDelayedScan3) { + addEvents({ + /* Time, Inputs, Outputs */ + {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + + /* Release key before debounce expires */ + {300, {{0, 1, UP}}, {{0, 1, UP}}}, + }); + time_jumps_ = true; + runEvents(); +} + +TEST_F(DebounceTest, OneKeyDelayedScan4) { + addEvents({ + /* Time, Inputs, Outputs */ + {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + + /* Processing is a bit late */ + {50, {}, {}}, + /* Release key after 1ms */ + {51, {{0, 1, UP}}, {{0, 1, UP}}}, + + {56, {}, {}}, + }); + time_jumps_ = true; + runEvents(); +} + +TEST_F(DebounceTest, AsyncTickOneKeyShort1) { + addEvents({ + /* Time, Inputs, Outputs */ + {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + + {5, {}, {}}, + /* 0ms delay (fast scan rate) */ + {5, {{0, 1, UP}}, {{0, 1, UP}}}, + + {10, {}, {}}, + }); + /* + * Debounce implementations should never read the timer more than once per invocation + */ + async_time_jumps_ = DEBOUNCE; + runEvents(); +} diff --git a/quantum/debounce/tests/rules.mk b/quantum/debounce/tests/rules.mk index 8318b1c668..bbc362d4c7 100644 --- a/quantum/debounce/tests/rules.mk +++ b/quantum/debounce/tests/rules.mk @@ -18,6 +18,11 @@ DEBOUNCE_COMMON_DEFS := -DMATRIX_ROWS=4 -DMATRIX_COLS=10 -DDEBOUNCE=5 DEBOUNCE_COMMON_SRC := $(QUANTUM_PATH)/debounce/tests/debounce_test_common.cpp \ $(PLATFORM_PATH)/$(PLATFORM_KEY)/timer.c +debounce_none_DEFS := $(DEBOUNCE_COMMON_DEFS) +debounce_none_SRC := $(DEBOUNCE_COMMON_SRC) \ + $(QUANTUM_PATH)/debounce/none.c \ + $(QUANTUM_PATH)/debounce/tests/none_tests.cpp + debounce_sym_defer_g_DEFS := $(DEBOUNCE_COMMON_DEFS) debounce_sym_defer_g_SRC := $(DEBOUNCE_COMMON_SRC) \ $(QUANTUM_PATH)/debounce/sym_defer_g.c \ diff --git a/quantum/debounce/tests/sym_defer_g_tests.cpp b/quantum/debounce/tests/sym_defer_g_tests.cpp index 73d3d45e30..33e8b17852 100644 --- a/quantum/debounce/tests/sym_defer_g_tests.cpp +++ b/quantum/debounce/tests/sym_defer_g_tests.cpp @@ -236,3 +236,21 @@ TEST_F(DebounceTest, OneKeyDelayedScan4) { time_jumps_ = true; runEvents(); } + +TEST_F(DebounceTest, AsyncTickOneKeyShort1) { + addEvents({ + /* Time, Inputs, Outputs */ + {0, {{0, 1, DOWN}}, {}}, + + {5, {}, {{0, 1, DOWN}}}, + /* 0ms delay (fast scan rate) */ + {5, {{0, 1, UP}}, {}}, + + {10, {}, {{0, 1, UP}}}, + }); + /* + * Debounce implementations should never read the timer more than once per invocation + */ + async_time_jumps_ = DEBOUNCE; + runEvents(); +} diff --git a/quantum/debounce/tests/sym_defer_pk_tests.cpp b/quantum/debounce/tests/sym_defer_pk_tests.cpp index 7542c2dad4..864b7afcc4 100644 --- a/quantum/debounce/tests/sym_defer_pk_tests.cpp +++ b/quantum/debounce/tests/sym_defer_pk_tests.cpp @@ -238,3 +238,21 @@ TEST_F(DebounceTest, OneKeyDelayedScan4) { time_jumps_ = true; runEvents(); } + +TEST_F(DebounceTest, AsyncTickOneKeyShort1) { + addEvents({ + /* Time, Inputs, Outputs */ + {0, {{0, 1, DOWN}}, {}}, + + {5, {}, {{0, 1, DOWN}}}, + /* 0ms delay (fast scan rate) */ + {5, {{0, 1, UP}}, {}}, + + {10, {}, {{0, 1, UP}}}, + }); + /* + * Debounce implementations should never read the timer more than once per invocation + */ + async_time_jumps_ = DEBOUNCE; + runEvents(); +} diff --git a/quantum/debounce/tests/sym_defer_pr_tests.cpp b/quantum/debounce/tests/sym_defer_pr_tests.cpp index 417e1f4ca2..3ed360b966 100644 --- a/quantum/debounce/tests/sym_defer_pr_tests.cpp +++ b/quantum/debounce/tests/sym_defer_pr_tests.cpp @@ -236,3 +236,21 @@ TEST_F(DebounceTest, OneKeyDelayedScan4) { time_jumps_ = true; runEvents(); } + +TEST_F(DebounceTest, AsyncTickOneKeyShort1) { + addEvents({ + /* Time, Inputs, Outputs */ + {0, {{0, 1, DOWN}}, {}}, + + {5, {}, {{0, 1, DOWN}}}, + /* 0ms delay (fast scan rate) */ + {5, {{0, 1, UP}}, {}}, + + {10, {}, {{0, 1, UP}}}, + }); + /* + * Debounce implementations should never read the timer more than once per invocation + */ + async_time_jumps_ = DEBOUNCE; + runEvents(); +} diff --git a/quantum/debounce/tests/sym_eager_pk_tests.cpp b/quantum/debounce/tests/sym_eager_pk_tests.cpp index d9a02fe33c..39d5b10d8e 100644 --- a/quantum/debounce/tests/sym_eager_pk_tests.cpp +++ b/quantum/debounce/tests/sym_eager_pk_tests.cpp @@ -251,3 +251,21 @@ TEST_F(DebounceTest, OneKeyDelayedScan6) { time_jumps_ = true; runEvents(); } + +TEST_F(DebounceTest, AsyncTickOneKeyShort1) { + addEvents({ + /* Time, Inputs, Outputs */ + {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + {1, {{0, 1, UP}}, {}}, + + {5, {}, {{0, 1, UP}}}, + /* Press key again after 1ms delay (debounce has not yet finished) */ + {6, {{0, 1, DOWN}}, {}}, + {10, {}, {{0, 1, DOWN}}}, /* 5ms after UP at time 5 */ + }); + /* + * Debounce implementations should never read the timer more than once per invocation + */ + async_time_jumps_ = DEBOUNCE; + runEvents(); +} diff --git a/quantum/debounce/tests/sym_eager_pr_tests.cpp b/quantum/debounce/tests/sym_eager_pr_tests.cpp index e91dd9cb87..9a94807a49 100644 --- a/quantum/debounce/tests/sym_eager_pr_tests.cpp +++ b/quantum/debounce/tests/sym_eager_pr_tests.cpp @@ -297,3 +297,21 @@ TEST_F(DebounceTest, OneKeyDelayedScan6) { time_jumps_ = true; runEvents(); } + +TEST_F(DebounceTest, AsyncTickOneKeyShort1) { + addEvents({ + /* Time, Inputs, Outputs */ + {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + {1, {{0, 1, UP}}, {}}, + + {5, {}, {{0, 1, UP}}}, + /* Press key again after 1ms delay (debounce has not yet finished) */ + {6, {{0, 1, DOWN}}, {}}, + {10, {}, {{0, 1, DOWN}}}, /* 5ms after UP at time 5 */ + }); + /* + * Debounce implementations should never read the timer more than once per invocation + */ + async_time_jumps_ = DEBOUNCE; + runEvents(); +} diff --git a/quantum/debounce/tests/testlist.mk b/quantum/debounce/tests/testlist.mk index f7bd520698..dd53633343 100644 --- a/quantum/debounce/tests/testlist.mk +++ b/quantum/debounce/tests/testlist.mk @@ -1,4 +1,5 @@ TEST_LIST += \ + debounce_none \ debounce_sym_defer_g \ debounce_sym_defer_pk \ debounce_sym_defer_pr \ From f35dee5c05b02208716e4e76955ced71a67334eb Mon Sep 17 00:00:00 2001 From: Daniel Kao Date: Sun, 24 Sep 2023 19:49:31 -0700 Subject: [PATCH 161/496] Take care of scroll divisor remainders for PS/2 drag scroll (#20732) --- drivers/ps2/ps2_mouse.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/ps2/ps2_mouse.c b/drivers/ps2/ps2_mouse.c index ae594c94bc..88c9bdcebe 100644 --- a/drivers/ps2/ps2_mouse.c +++ b/drivers/ps2/ps2_mouse.c @@ -265,6 +265,7 @@ static inline void ps2_mouse_scroll_button_task(report_mouse_t *mouse_report) { SCROLL_SENT, } scroll_state = SCROLL_NONE; static uint16_t scroll_button_time = 0; + static int16_t scroll_x, scroll_y; if (PS2_MOUSE_SCROLL_BTN_MASK == (mouse_report->buttons & (PS2_MOUSE_SCROLL_BTN_MASK))) { // All scroll buttons are pressed @@ -272,13 +273,19 @@ static inline void ps2_mouse_scroll_button_task(report_mouse_t *mouse_report) { if (scroll_state == SCROLL_NONE) { scroll_button_time = timer_read(); scroll_state = SCROLL_BTN; + scroll_x = 0; + scroll_y = 0; } // If the mouse has moved, update the report to scroll instead of move the mouse if (mouse_report->x || mouse_report->y) { - scroll_state = SCROLL_SENT; - mouse_report->v = -mouse_report->y / (PS2_MOUSE_SCROLL_DIVISOR_V); - mouse_report->h = mouse_report->x / (PS2_MOUSE_SCROLL_DIVISOR_H); + scroll_state = SCROLL_SENT; + scroll_y += mouse_report->y; + scroll_x += mouse_report->x; + mouse_report->v = -scroll_y / (PS2_MOUSE_SCROLL_DIVISOR_V); + mouse_report->h = scroll_x / (PS2_MOUSE_SCROLL_DIVISOR_H); + scroll_y += (mouse_report->v * (PS2_MOUSE_SCROLL_DIVISOR_V)); + scroll_x -= (mouse_report->h * (PS2_MOUSE_SCROLL_DIVISOR_H)); mouse_report->x = 0; mouse_report->y = 0; #ifdef PS2_MOUSE_INVERT_H From e0eb90aba127f6bceacc9112bb89cb86da19f768 Mon Sep 17 00:00:00 2001 From: NapOli1084 <10320176+NapOli1084@users.noreply.github.com> Date: Sun, 24 Sep 2023 22:53:12 -0400 Subject: [PATCH 162/496] Fix OSM on a OSL activated layer (#20410) --- quantum/action.c | 2 +- tests/basic/test_one_shot_keys.cpp | 46 ++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/quantum/action.c b/quantum/action.c index 3b89431cea..349250472b 100644 --- a/quantum/action.c +++ b/quantum/action.c @@ -374,7 +374,7 @@ void process_action(keyrecord_t *record, action_t action) { if (is_oneshot_layer_active() && event.pressed && (action.kind.id == ACT_USAGE || !(IS_MODIFIER_KEYCODE(action.key.code) # ifndef NO_ACTION_TAPPING - || (tap_count == 0 && (action.kind.id == ACT_LMODS_TAP || action.kind.id == ACT_RMODS_TAP)) + || ((action.kind.id == ACT_LMODS_TAP || action.kind.id == ACT_RMODS_TAP) && (action.layer_tap.code <= MODS_TAP_TOGGLE || tap_count == 0)) # endif )) # ifdef SWAP_HANDS_ENABLE diff --git a/tests/basic/test_one_shot_keys.cpp b/tests/basic/test_one_shot_keys.cpp index 2a3434bf16..9748dad7da 100644 --- a/tests/basic/test_one_shot_keys.cpp +++ b/tests/basic/test_one_shot_keys.cpp @@ -337,3 +337,49 @@ TEST_F(OneShot, OSLWithAdditionalKeypress) { run_one_scan_loop(); VERIFY_AND_CLEAR(driver); } + +TEST_F(OneShot, OSLWithOsmAndAdditionalKeypress) { + TestDriver driver; + InSequence s; + KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; + KeymapKey osm_key = KeymapKey{1, 1, 0, OSM(MOD_LSFT), KC_LSFT}; + KeymapKey regular_key = KeymapKey{1, 1, 1, KC_A}; + + set_keymap({osl_key, osm_key, regular_key}); + + /* Press OSL key */ + EXPECT_NO_REPORT(driver); + osl_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + /* Release OSL key */ + EXPECT_NO_REPORT(driver); + osl_key.release(); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(1)); + VERIFY_AND_CLEAR(driver); + + /* Press and release OSM */ + EXPECT_NO_REPORT(driver); + osm_key.press(); + run_one_scan_loop(); + osm_key.release(); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(1)); + VERIFY_AND_CLEAR(driver); + + /* Press regular key */ + EXPECT_REPORT(driver, (osm_key.report_code, regular_key.report_code)).Times(1); + EXPECT_EMPTY_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + EXPECT_FALSE(layer_state_is(1)); + VERIFY_AND_CLEAR(driver); + + /* Release regular key */ + EXPECT_NO_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} From 408d61dcfb26b257a69fb0aa68fea3b52a629252 Mon Sep 17 00:00:00 2001 From: Purdea Andrei Date: Mon, 25 Sep 2023 05:54:22 +0300 Subject: [PATCH 163/496] Chibios SPI driver: allow some SPI pins to be left unassigned (#20315) Co-authored-by: Sergey Vlasov Co-authored-by: Nick Brassel --- docs/spi_driver.md | 5 ++ platforms/chibios/drivers/spi_master.c | 72 ++++++++++++++++++++------ 2 files changed, 60 insertions(+), 17 deletions(-) diff --git a/docs/spi_driver.md b/docs/spi_driver.md index c1c6831e73..1faa9f0773 100644 --- a/docs/spi_driver.md +++ b/docs/spi_driver.md @@ -49,6 +49,11 @@ Configuration-wise, you'll need to set up the peripheral as per your MCU's datas As per the AVR configuration, you may choose any other standard GPIO as a slave select pin, which should be supplied to `spi_start()`. +If a complete SPI interface is not required, then the following can be done to disable certain SPI pins, so they don't occupy a GPIO unnecessarily: + - in `config.h`: `#define SPI_MISO_PIN NO_PIN` + - in `config.h`: `#define SPI_MOSI_PIN NO_PIN` + - in `mcuconf.h`: `#define SPI_SELECT_MODE SPI_SELECT_MODE_NONE`, in this case the `slavePin` argument passed to `spi_start()` may be `NO_PIN` if the slave select pin is not used. + ## API :id=api ### `void spi_init(void)` :id=api-spi-init diff --git a/platforms/chibios/drivers/spi_master.c b/platforms/chibios/drivers/spi_master.c index c3ab0623f0..481a2e422a 100644 --- a/platforms/chibios/drivers/spi_master.c +++ b/platforms/chibios/drivers/spi_master.c @@ -18,14 +18,14 @@ #include "timer.h" -static pin_t currentSlavePin = NO_PIN; +static bool spiStarted = false; -#if defined(K20x) || defined(KL2x) || defined(RP2040) -static SPIConfig spiConfig = {NULL, 0, 0, 0}; -#else -static SPIConfig spiConfig = {false, NULL, 0, 0, 0, 0}; +#if SPI_SELECT_MODE == SPI_SELECT_MODE_NONE +static pin_t currentSlavePin; #endif +static SPIConfig spiConfig; + __attribute__((weak)) void spi_init(void) { static bool is_initialised = false; if (!is_initialised) { @@ -33,28 +33,45 @@ __attribute__((weak)) void spi_init(void) { // Try releasing special pins for a short time setPinInput(SPI_SCK_PIN); - setPinInput(SPI_MOSI_PIN); - setPinInput(SPI_MISO_PIN); + if (SPI_MOSI_PIN != NO_PIN) { + setPinInput(SPI_MOSI_PIN); + } + if (SPI_MISO_PIN != NO_PIN) { + setPinInput(SPI_MISO_PIN); + } chThdSleepMilliseconds(10); #if defined(USE_GPIOV1) palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), SPI_SCK_PAL_MODE); - palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), SPI_MOSI_PAL_MODE); - palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), SPI_MISO_PAL_MODE); + if (SPI_MOSI_PIN != NO_PIN) { + palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), SPI_MOSI_PAL_MODE); + } + if (SPI_MISO_PIN != NO_PIN) { + palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), SPI_MISO_PAL_MODE); + } #else palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), SPI_SCK_FLAGS); - palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), SPI_MOSI_FLAGS); - palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), SPI_MISO_FLAGS); + if (SPI_MOSI_PIN != NO_PIN) { + palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), SPI_MOSI_FLAGS); + } + if (SPI_MISO_PIN != NO_PIN) { + palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), SPI_MISO_FLAGS); + } #endif spiStop(&SPI_DRIVER); - currentSlavePin = NO_PIN; + spiStarted = false; } } bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor) { - if (currentSlavePin != NO_PIN || slavePin == NO_PIN) { + if (spiStarted) { return false; } +#if SPI_SELECT_MODE != SPI_SELECT_MODE_NONE + if (slavePin == NO_PIN) { + return false; + } +#endif #if !(defined(WB32F3G71xx) || defined(WB32FQ95xx)) uint16_t roundedDivisor = 2; @@ -247,13 +264,29 @@ bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor) { } #endif - currentSlavePin = slavePin; + spiStarted = true; +#if SPI_SELECT_MODE == SPI_SELECT_MODE_NONE + currentSlavePin = slavePin; +#endif +#if SPI_SELECT_MODE == SPI_SELECT_MODE_PAD spiConfig.ssport = PAL_PORT(slavePin); spiConfig.sspad = PAL_PAD(slavePin); - setPinOutput(slavePin); +#elif SPI_SELECT_MODE == SPI_SELECT_MODE_NONE + if (slavePin != NO_PIN) { + setPinOutput(slavePin); + } +#else +# error "Unsupported SPI_SELECT_MODE" +#endif + spiStart(&SPI_DRIVER, &spiConfig); spiSelect(&SPI_DRIVER); +#if SPI_SELECT_MODE == SPI_SELECT_MODE_NONE + if (slavePin != NO_PIN) { + writePinLow(slavePin); + } +#endif return true; } @@ -283,9 +316,14 @@ spi_status_t spi_receive(uint8_t *data, uint16_t length) { } void spi_stop(void) { - if (currentSlavePin != NO_PIN) { + if (spiStarted) { +#if SPI_SELECT_MODE == SPI_SELECT_MODE_NONE + if (currentSlavePin != NO_PIN) { + writePinHigh(currentSlavePin); + } +#endif spiUnselect(&SPI_DRIVER); spiStop(&SPI_DRIVER); - currentSlavePin = NO_PIN; + spiStarted = false; } } From 1a1085da489058e919ca6d1cdebc4e310ea9a2f0 Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Mon, 25 Sep 2023 03:54:59 +0100 Subject: [PATCH 164/496] Add community layout support to tofu60 (#22041) --- keyboards/dztech/tofu60/info.json | 294 +++++++++++++++++++++- keyboards/dztech/tofu60/matrix_diagram.md | 24 ++ 2 files changed, 317 insertions(+), 1 deletion(-) create mode 100644 keyboards/dztech/tofu60/matrix_diagram.md diff --git a/keyboards/dztech/tofu60/info.json b/keyboards/dztech/tofu60/info.json index fb6bc52889..57c57604d1 100644 --- a/keyboards/dztech/tofu60/info.json +++ b/keyboards/dztech/tofu60/info.json @@ -25,7 +25,16 @@ "pid": "0x6071", "vid": "0x4B42" }, - "community_layouts": ["60_ansi", "60_hhkb", "60_iso", "60_ansi_tsangan", "60_tsangan_hhkb"], + "community_layouts": [ + "60_ansi", + "60_ansi_split_bs_rshift", + "60_ansi_tsangan", + "60_hhkb", + "60_iso", + "60_iso_split_bs_rshift", + "60_iso_tsangan", + "60_tsangan_hhkb" + ], "layouts": { "LAYOUT_60_ansi": { "layout": [ @@ -96,6 +105,77 @@ { "label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25 } ] }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + {"label": "~", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Del", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Backspace", "matrix": [2, 12], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "K47", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, "LAYOUT_60_hhkb": { "layout": [ { "label": "~", "matrix": [0, 0], "x": 0, "y": 0 }, @@ -371,6 +451,218 @@ { "label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5 } ] }, + "LAYOUT_60_iso_split_bs_rshift": { + "layout": [ + {"label": "~", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Del", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Backspace", "matrix": [2, 12], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "~", "matrix": [1, 13], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "K47", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "AltGr", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_tsangan": { + "layout": [ + {"label": "~", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "~", "matrix": [1, 13], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "K47", "matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_tsangan_split_bs_rshift": { + "layout": [ + {"label": "~", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Del", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Backspace", "matrix": [2, 12], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "~", "matrix": [1, 13], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "K47", "matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, "LAYOUT_all": { "layout": [ { "label": "~", "matrix": [0, 0], "x": 0, "y": 0 }, diff --git a/keyboards/dztech/tofu60/matrix_diagram.md b/keyboards/dztech/tofu60/matrix_diagram.md new file mode 100644 index 0000000000..0bbd201945 --- /dev/null +++ b/keyboards/dztech/tofu60/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for Dztech Tofu60 + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2C │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │1D │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ +│40 │41 │42 │47 │4A │4B │4C │4D │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +┌────────┐ ┌──────────┐ +│31 │ 2.25u LShift 2.75u RShift │3C │ +└────────┘ └──────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│40 │41 │42 │47 │4B │4C │4D │ Tsangan/WKL/HHKB +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` From de8d8686d2499f3905005bcaef67269f33011396 Mon Sep 17 00:00:00 2001 From: 3araht <69518343+3araht@users.noreply.github.com> Date: Mon, 25 Sep 2023 11:55:42 +0900 Subject: [PATCH 165/496] Chromatonemini info json revised to support qmk 0.22.2 (#21966) --- keyboards/chromatonemini/chromatonemini.c | 60 -------- keyboards/chromatonemini/config.h | 49 +----- keyboards/chromatonemini/info.json | 180 +++++++++++++++++++++- keyboards/chromatonemini/rules.mk | 1 - 4 files changed, 174 insertions(+), 116 deletions(-) diff --git a/keyboards/chromatonemini/chromatonemini.c b/keyboards/chromatonemini/chromatonemini.c index d7dc33a0e0..200ed31d36 100644 --- a/keyboards/chromatonemini/chromatonemini.c +++ b/keyboards/chromatonemini/chromatonemini.c @@ -19,66 +19,6 @@ #ifdef RGB_MATRIX_ENABLE # define NO_LED 255 -led_config_t g_led_config = { - { -#if 0 - // register bottom two rows - { 0, 4, 3, 2, 1, 41, 5, NO_LED }, - { 40, 6, 39, 7, 38, 8, 37, NO_LED }, - { 9, 36, 10, 35, 11, 34, 12, NO_LED }, - { 33, 13, 32, 14, 31, 15, 30, NO_LED }, - { 16, 29, 17, 28, 18, 27, 19, NO_LED }, - { 26, 20, 25, 21, 24, 22, 23, NO_LED } - - // register middle two rows - { 0, 4, 3, 2, 1, 78, 42, NO_LED }, - { 77, 43, 76, 44, 75, 45, 74, NO_LED }, - { 46, 73, 47, 72, 48, 71, 49, NO_LED }, - { 70, 50, 69, 51, 68, 52, 67, NO_LED }, - { 53, 66, 54, 65, 55, 64, 56, NO_LED }, - { 63, 57, 62, 58, 61, 59, 60, NO_LED } - - // register top and bottom rows - { 0, 4, 3, 2, 1, 115, 5, NO_LED }, - { 114, 6, 113, 7, 112, 8, 111, NO_LED }, - { 9, 110, 10, 109, 11, 108, 12, NO_LED }, - { 107, 13, 106, 14, 105, 15, 104, NO_LED }, - { 16, 103, 17, 102, 18, 101, 19, NO_LED }, - { 100, 20, 99, 21, 98, 22, 97, NO_LED } -#else - // register top two rows - { 0, 4, 3, 2, 1, 115, 79, NO_LED }, - { 114, 80, 113, 81, 112, 82, 111, NO_LED }, - { 83, 110, 84, 109, 85, 108, 86, NO_LED }, - { 107, 87, 106, 88, 105, 89, 104, NO_LED }, - { 90, 103, 91, 102, 92, 101, 93, NO_LED }, - { 100, 94, 99, 95, 98, 96, 97, NO_LED } -#endif - }, { - { 14, 12 }, - { 14, 36 }, - { 19, 48 }, { 9, 48 }, - { 14, 60 }, - { 39, 60 }, { 49, 60 }, { 59, 60 }, { 69, 60 }, { 79, 60 }, { 89, 60 }, { 99, 60 }, { 109, 60 }, { 119, 60 }, { 129, 60 }, { 139, 60 }, { 149, 60 }, { 159, 60 }, { 169, 60 }, { 179, 60 }, { 189, 60 }, { 199, 60 }, { 209, 60 }, - { 214, 48 }, { 204, 48 }, { 194, 48 }, { 184, 48 }, { 174, 48 }, { 164, 48 }, { 154, 48 }, { 144, 48 }, { 134, 48 }, { 124, 48 }, { 114, 48 }, { 104, 48 }, { 94, 48 }, { 84, 48 }, { 74, 48 }, { 64, 48 }, { 54, 48 }, { 44, 48 }, { 34, 48 }, - { 39, 36 }, { 49, 36 }, { 59, 36 }, { 69, 36 }, { 79, 36 }, { 89, 36 }, { 99, 36 }, { 109, 36 }, { 119, 36 }, { 129, 36 }, { 139, 36 }, { 149, 36 }, { 159, 36 }, { 169, 36 }, { 179, 36 }, { 189, 36 }, { 199, 36 }, { 209, 36 }, - { 214, 24 }, { 204, 24 }, { 194, 24 }, { 184, 24 }, { 174, 24 }, { 164, 24 }, { 154, 24 }, { 144, 24 }, { 134, 24 }, { 124, 24 }, { 114, 24 }, { 104, 24 }, { 94, 24 }, { 84, 24 }, { 74, 24 }, { 64, 24 }, { 54, 24 }, { 44, 24 }, { 34, 24 }, - { 39, 12 }, { 49, 12 }, { 59, 12 }, { 69, 12 }, { 79, 12 }, { 89, 12 }, { 99, 12 }, { 109, 12 }, { 119, 12 }, { 129, 12 }, { 139, 12 }, { 149, 12 }, { 159, 12 }, { 169, 12 }, { 179, 12 }, { 189, 12 }, { 199, 12 }, { 209, 12 }, - { 214, 0 }, { 204, 0 }, { 194, 0 }, { 184, 0 }, { 174, 0 }, { 164, 0 }, { 154, 0 }, { 144, 0 }, { 134, 0 }, { 124, 0 }, { 114, 0 }, { 104, 0 }, { 94, 0 }, { 84, 0 }, { 74, 0 }, { 64, 0} , { 54, 0 }, { 44, 0 }, { 34, 0 } - }, { - 1, - 4, - 4, 4, - 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 - } -}; - // indicator const uint8_t led_scale_indicator[12][12] = { {23, 29, 35, 41, 60, 66, 72, 78, 97, 103, 109, 115}, // C diff --git a/keyboards/chromatonemini/config.h b/keyboards/chromatonemini/config.h index b5d7155516..83e6ccfe0e 100644 --- a/keyboards/chromatonemini/config.h +++ b/keyboards/chromatonemini/config.h @@ -21,16 +21,14 @@ along with this program. If not, see . /* ws2812 RGB MATRIX */ # define RGB_MATRIX_LED_COUNT 116 - // reacts to keypresses # define RGB_MATRIX_KEYPRESSES // for all fingers used at once. # define LED_HITS_TO_REMEMBER 10 -# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 # define RGB_MATRIX_DEFAULT_SPD 127 -# define RGB_MATRIX_CENTER { 124, 32 } + // the above brighness setting has no effect on rgb_matrix_set_color(). // Use darker colors instead. /* RGB darker COLORS */ @@ -56,51 +54,6 @@ along with this program. If not, see . // https://docs.qmk.fm/#/feature_rgb_matrix // Enable suspend mode. # define RGB_DISABLE_WHEN_USB_SUSPENDED - -# ifdef CONSOLE_ENABLE -# define ENABLE_RGB_MATRIX_SOLID_COLOR -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -# else -# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN -# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT -# define ENABLE_RGB_MATRIX_BREATHING -# define ENABLE_RGB_MATRIX_BAND_SAT -# define ENABLE_RGB_MATRIX_BAND_VAL -# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT -# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL -# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT -# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL -# define ENABLE_RGB_MATRIX_CYCLE_ALL -# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT -# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN -# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN -# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL -# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL -# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL -# define ENABLE_RGB_MATRIX_DUAL_BEACON -# define ENABLE_RGB_MATRIX_RAINBOW_BEACON -# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS -# define ENABLE_RGB_MATRIX_RAINDROPS -# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS -# define ENABLE_RGB_MATRIX_HUE_BREATHING -# define ENABLE_RGB_MATRIX_HUE_PENDULUM -# define ENABLE_RGB_MATRIX_HUE_WAVE -# define ENABLE_RGB_MATRIX_TYPING_HEATMAP -# define ENABLE_RGB_MATRIX_DIGITAL_RAIN -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -# define ENABLE_RGB_MATRIX_SPLASH -# define ENABLE_RGB_MATRIX_MULTISPLASH -# define ENABLE_RGB_MATRIX_SOLID_SPLASH -# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# endif // CONSOLE_ENABLE #endif // RGB_MATRIX_ENABLE /* Audio */ diff --git a/keyboards/chromatonemini/info.json b/keyboards/chromatonemini/info.json index 3dd10d7381..fb4f0c737f 100644 --- a/keyboards/chromatonemini/info.json +++ b/keyboards/chromatonemini/info.json @@ -3,8 +3,10 @@ "manufacturer": "3araht", "url": "https://github.com/3araht/chromatonemini", "maintainer": "3araht", - "bootloader": "caterina", - "processor": "atmega32u4", + "development_board": "promicro", + "build": { + "lto": true + }, "features": { "midi": true, "extrakey": true, @@ -13,15 +15,179 @@ "bootmagic": false, "console": false, "mousekey": false, - "nkro": false, - "rgblight": false, - "audio": false + "nkro": false }, "ws2812": { "pin": "D3" }, "rgb_matrix": { - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 14, "y": 12, "flags": 1}, + {"matrix": [0, 4], "x": 14, "y": 36, "flags": 4}, + {"matrix": [0, 3], "x": 19, "y": 48, "flags": 4}, + {"matrix": [0, 2], "x": 9, "y": 48, "flags": 4}, + {"matrix": [0, 1], "x": 14, "y": 60, "flags": 4}, + {"x": 39, "y": 60, "flags": 4}, + {"x": 49, "y": 60, "flags": 4}, + {"x": 59, "y": 60, "flags": 4}, + {"x": 69, "y": 60, "flags": 4}, + {"x": 79, "y": 60, "flags": 4}, + {"x": 89, "y": 60, "flags": 4}, + {"x": 99, "y": 60, "flags": 4}, + {"x": 109, "y": 60, "flags": 4}, + {"x": 119, "y": 60, "flags": 4}, + {"x": 129, "y": 60, "flags": 4}, + {"x": 139, "y": 60, "flags": 4}, + {"x": 149, "y": 60, "flags": 4}, + {"x": 159, "y": 60, "flags": 4}, + {"x": 169, "y": 60, "flags": 4}, + {"x": 179, "y": 60, "flags": 4}, + {"x": 189, "y": 60, "flags": 4}, + {"x": 199, "y": 60, "flags": 4}, + {"x": 209, "y": 60, "flags": 4}, + {"x": 214, "y": 48, "flags": 4}, + {"x": 204, "y": 48, "flags": 4}, + {"x": 194, "y": 48, "flags": 4}, + {"x": 184, "y": 48, "flags": 4}, + {"x": 174, "y": 48, "flags": 4}, + {"x": 164, "y": 48, "flags": 4}, + {"x": 154, "y": 48, "flags": 4}, + {"x": 144, "y": 48, "flags": 4}, + {"x": 134, "y": 48, "flags": 4}, + {"x": 124, "y": 48, "flags": 4}, + {"x": 114, "y": 48, "flags": 4}, + {"x": 104, "y": 48, "flags": 4}, + {"x": 94, "y": 48, "flags": 4}, + {"x": 84, "y": 48, "flags": 4}, + {"x": 74, "y": 48, "flags": 4}, + {"x": 64, "y": 48, "flags": 4}, + {"x": 54, "y": 48, "flags": 4}, + {"x": 44, "y": 48, "flags": 4}, + {"x": 34, "y": 48, "flags": 4}, + {"x": 39, "y": 36, "flags": 4}, + {"x": 49, "y": 36, "flags": 4}, + {"x": 59, "y": 36, "flags": 4}, + {"x": 69, "y": 36, "flags": 4}, + {"x": 79, "y": 36, "flags": 4}, + {"x": 89, "y": 36, "flags": 4}, + {"x": 99, "y": 36, "flags": 4}, + {"x": 109, "y": 36, "flags": 4}, + {"x": 119, "y": 36, "flags": 4}, + {"x": 129, "y": 36, "flags": 4}, + {"x": 139, "y": 36, "flags": 4}, + {"x": 149, "y": 36, "flags": 4}, + {"x": 159, "y": 36, "flags": 4}, + {"x": 169, "y": 36, "flags": 4}, + {"x": 179, "y": 36, "flags": 4}, + {"x": 189, "y": 36, "flags": 4}, + {"x": 199, "y": 36, "flags": 4}, + {"x": 209, "y": 36, "flags": 4}, + {"x": 214, "y": 24, "flags": 4}, + {"x": 204, "y": 24, "flags": 4}, + {"x": 194, "y": 24, "flags": 4}, + {"x": 184, "y": 24, "flags": 4}, + {"x": 174, "y": 24, "flags": 4}, + {"x": 164, "y": 24, "flags": 4}, + {"x": 154, "y": 24, "flags": 4}, + {"x": 144, "y": 24, "flags": 4}, + {"x": 134, "y": 24, "flags": 4}, + {"x": 124, "y": 24, "flags": 4}, + {"x": 114, "y": 24, "flags": 4}, + {"x": 104, "y": 24, "flags": 4}, + {"x": 94, "y": 24, "flags": 4}, + {"x": 84, "y": 24, "flags": 4}, + {"x": 74, "y": 24, "flags": 4}, + {"x": 64, "y": 24, "flags": 4}, + {"x": 54, "y": 24, "flags": 4}, + {"x": 44, "y": 24, "flags": 4}, + {"x": 34, "y": 24, "flags": 4}, + {"matrix": [0, 6], "x": 39, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 49, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 59, "y": 12, "flags": 4}, + {"matrix": [1, 5], "x": 69, "y": 12, "flags": 4}, + {"matrix": [2, 0], "x": 79, "y": 12, "flags": 4}, + {"matrix": [2, 2], "x": 89, "y": 12, "flags": 4}, + {"matrix": [2, 4], "x": 99, "y": 12, "flags": 4}, + {"matrix": [2, 6], "x": 109, "y": 12, "flags": 4}, + {"matrix": [3, 1], "x": 119, "y": 12, "flags": 4}, + {"matrix": [3, 3], "x": 129, "y": 12, "flags": 4}, + {"matrix": [3, 5], "x": 139, "y": 12, "flags": 4}, + {"matrix": [4, 0], "x": 149, "y": 12, "flags": 4}, + {"matrix": [4, 2], "x": 159, "y": 12, "flags": 4}, + {"matrix": [4, 4], "x": 169, "y": 12, "flags": 4}, + {"matrix": [4, 6], "x": 179, "y": 12, "flags": 4}, + {"matrix": [5, 1], "x": 189, "y": 12, "flags": 4}, + {"matrix": [5, 3], "x": 199, "y": 12, "flags": 4}, + {"matrix": [5, 5], "x": 209, "y": 12, "flags": 4}, + {"matrix": [5, 6], "x": 214, "y": 0, "flags": 4}, + {"matrix": [5, 4], "x": 204, "y": 0, "flags": 4}, + {"matrix": [5, 2], "x": 194, "y": 0, "flags": 4}, + {"matrix": [5, 0], "x": 184, "y": 0, "flags": 4}, + {"matrix": [4, 5], "x": 174, "y": 0, "flags": 4}, + {"matrix": [4, 3], "x": 164, "y": 0, "flags": 4}, + {"matrix": [4, 1], "x": 154, "y": 0, "flags": 4}, + {"matrix": [3, 6], "x": 144, "y": 0, "flags": 4}, + {"matrix": [3, 4], "x": 134, "y": 0, "flags": 4}, + {"matrix": [3, 2], "x": 124, "y": 0, "flags": 4}, + {"matrix": [3, 0], "x": 114, "y": 0, "flags": 4}, + {"matrix": [2, 5], "x": 104, "y": 0, "flags": 4}, + {"matrix": [2, 3], "x": 94, "y": 0, "flags": 4}, + {"matrix": [2, 1], "x": 84, "y": 0, "flags": 4}, + {"matrix": [1, 6], "x": 74, "y": 0, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [1, 2], "x": 54, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 44, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 34, "y": 0, "flags": 4} + ], + "max_brightness": 50, + "sat_steps": 8, + "speed_steps": 10, + "val_steps": 8, + "center_point": [124, 32], + "animations": { + "solid_color": true, + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "dual_beacon": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + } }, "diode_direction": "COL2ROW", "matrix_pins": { @@ -33,7 +199,7 @@ "pid": "0xF4B4", "device_version": "0.0.1" }, - "layouts": { + "layouts": { "LAYOUT": { "layout": [ {"matrix": [0, 0], "x": 0.5, "y": 0}, diff --git a/keyboards/chromatonemini/rules.mk b/keyboards/chromatonemini/rules.mk index 4da205a168..e69de29bb2 100644 --- a/keyboards/chromatonemini/rules.mk +++ b/keyboards/chromatonemini/rules.mk @@ -1 +0,0 @@ -LTO_ENABLE = yes From 2181da4b723a31f88866180089596d557805fdca Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Mon, 25 Sep 2023 03:56:33 +0100 Subject: [PATCH 166/496] amend split_* community_layouts in keyboards (#21847) --- keyboards/budgy/info.json | 1 + keyboards/centromere/info.json | 2 +- keyboards/dailycraft/wings42/rev2/info.json | 6 ++- .../wings42/rev2/keymaps/default/keymap.c | 8 +-- .../wings42/rev2/keymaps/via/keymap.c | 8 +-- keyboards/eek/info.json | 51 +------------------ 6 files changed, 16 insertions(+), 60 deletions(-) diff --git a/keyboards/budgy/info.json b/keyboards/budgy/info.json index 7310fa5a55..5903daa68d 100644 --- a/keyboards/budgy/info.json +++ b/keyboards/budgy/info.json @@ -38,6 +38,7 @@ } } }, + "community_layouts": ["split_3x5_2"], "layouts": { "LAYOUT_split_3x5_2": { "layout": [ diff --git a/keyboards/centromere/info.json b/keyboards/centromere/info.json index 5f9b57d97a..280ab8bd7e 100644 --- a/keyboards/centromere/info.json +++ b/keyboards/centromere/info.json @@ -10,7 +10,7 @@ }, "processor": "atmega32u4", "bootloader": "caterina", - "community_layouts": ["split_3x5_3" "split_3x6_3"], + "community_layouts": ["split_3x5_3", "split_3x6_3"], "layout_aliases": { "LAYOUT": "LAYOUT_split_3x6_3" }, diff --git a/keyboards/dailycraft/wings42/rev2/info.json b/keyboards/dailycraft/wings42/rev2/info.json index 261157627a..a3c3e2396e 100644 --- a/keyboards/dailycraft/wings42/rev2/info.json +++ b/keyboards/dailycraft/wings42/rev2/info.json @@ -27,8 +27,12 @@ }, "processor": "atmega32u4", "bootloader": "caterina", + "layout_aliases": { + "LAYOUT_split_3x6_3_2": "LAYOUT_split_3x6_3" + }, + "community_layouts": ["split_3x6_3"], "layouts": { - "LAYOUT_split_3x6_3_2": { + "LAYOUT_split_3x6_3": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0.875}, {"matrix": [0, 1], "x": 1, "y": 0.625}, diff --git a/keyboards/dailycraft/wings42/rev2/keymaps/default/keymap.c b/keyboards/dailycraft/wings42/rev2/keymaps/default/keymap.c index d809d59f4c..51647fe795 100644 --- a/keyboards/dailycraft/wings42/rev2/keymaps/default/keymap.c +++ b/keyboards/dailycraft/wings42/rev2/keymaps/default/keymap.c @@ -31,7 +31,7 @@ enum layer_number { #define KC_A_DEL ALT_T(KC_DEL) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_split_3x6_3_2( + [_QWERTY] = LAYOUT_split_3x6_3( //,--------+--------+--------+--------+--------+--------. ,--------+---------+--------+---------+--------+--------. KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS, //|--------+--------+--------+--------+--------+--------| |--------+---------+--------+---------+--------+--------| @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `+--------+--------+--------' `--------+---------+--------+' ), - [_RAISE] = LAYOUT_split_3x6_3_2( + [_RAISE] = LAYOUT_split_3x6_3( //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. _______, KC_BSLS, KC_CIRC, KC_EXLM, KC_AMPR, KC_PIPE, KC_AT , KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| @@ -55,7 +55,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `+--------+--------+--------' `--------+-------+--------+' ), - [_LOWER] = LAYOUT_split_3x6_3_2( + [_LOWER] = LAYOUT_split_3x6_3( //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , _______, KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| @@ -67,7 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `+--------+--------+--------' `--------+--------+--------+' ), - [_ADJUST] = LAYOUT_split_3x6_3_2( + [_ADJUST] = LAYOUT_split_3x6_3( //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| diff --git a/keyboards/dailycraft/wings42/rev2/keymaps/via/keymap.c b/keyboards/dailycraft/wings42/rev2/keymaps/via/keymap.c index 362164c5ec..0995600a47 100644 --- a/keyboards/dailycraft/wings42/rev2/keymaps/via/keymap.c +++ b/keyboards/dailycraft/wings42/rev2/keymaps/via/keymap.c @@ -31,7 +31,7 @@ enum layer_number { #define KC_A_DEL ALT_T(KC_DEL) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_split_3x6_3_2( + [_QWERTY] = LAYOUT_split_3x6_3( //,--------+--------+--------+--------+--------+--------. ,--------+---------+--------+---------+--------+--------. KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS, //|--------+--------+--------+--------+--------+--------| |--------+---------+--------+---------+--------+--------| @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `+--------+--------+--------' `--------+---------+--------+' ), - [_RAISE] = LAYOUT_split_3x6_3_2( + [_RAISE] = LAYOUT_split_3x6_3( //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. _______, KC_BSLS, KC_CIRC, KC_EXLM, KC_AMPR, KC_PIPE, KC_AT , KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| @@ -55,7 +55,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `+--------+--------+--------' `--------+-------+--------+' ), - [_LOWER] = LAYOUT_split_3x6_3_2( + [_LOWER] = LAYOUT_split_3x6_3( //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , _______, KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| @@ -67,7 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // `+--------+--------+--------' `--------+--------+--------+' ), - [_ADJUST] = LAYOUT_split_3x6_3_2( + [_ADJUST] = LAYOUT_split_3x6_3( //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| diff --git a/keyboards/eek/info.json b/keyboards/eek/info.json index edcf445c32..27441a293e 100644 --- a/keyboards/eek/info.json +++ b/keyboards/eek/info.json @@ -41,54 +41,5 @@ }, "processor": "atmega32u4", "bootloader": "qmk-dfu", - "community_layouts": ["split_3x5_3"], - "layouts": { - "LAYOUT_split_3x5_3": { - "layout": [ - {"x": 0, "y": 0.88}, - {"x": 1, "y": 0.38}, - {"x": 2, "y": 0}, - {"x": 3, "y": 0.38}, - {"x": 4, "y": 0.5}, - - {"x": 6, "y": 0.5}, - {"x": 7, "y": 0.38}, - {"x": 8, "y": 0}, - {"x": 9, "y": 0.38}, - {"x": 10, "y": 0.88}, - - {"x": 0, "y": 1.88}, - {"x": 1, "y": 1.38}, - {"x": 2, "y": 1}, - {"x": 3, "y": 1.38}, - {"x": 4, "y": 1.5}, - - {"x": 6, "y": 1.5}, - {"x": 7, "y": 1.38}, - {"x": 8, "y": 1}, - {"x": 9, "y": 1.38}, - {"x": 10, "y": 1.88}, - - {"x": 0, "y": 2.88}, - {"x": 1, "y": 2.38}, - {"x": 2, "y": 2}, - {"x": 3, "y": 2.38}, - {"x": 4, "y": 2.5}, - - {"x": 6, "y": 2.5}, - {"x": 7, "y": 2.38}, - {"x": 8, "y": 2}, - {"x": 9, "y": 2.38}, - {"x": 10, "y": 2.88}, - - {"x": 2, "y": 3.25}, - {"x": 3, "y": 3.38}, - {"x": 4, "y": 3.5}, - - {"x": 6, "y": 3.5}, - {"x": 7, "y": 3.38}, - {"x": 8, "y": 3.25} - ] - } - } + "community_layouts": ["split_3x5_3"] } From e3cbd8a9650a9e85be5c2d90ed21686863382376 Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Mon, 25 Sep 2023 03:57:18 +0100 Subject: [PATCH 167/496] amend 75_(ansi|iso) community_layouts in keyboards/ (#21837) --- keyboards/amjkeyboard/amj84/info.json | 188 ++++++++++++++++++ keyboards/duck/octagon/v2/info.json | 103 +++++++++- keyboards/quad_h/lb75/info.json | 188 ++++++++++++++++++ keyboards/ymdk/ymd75/rev1/info.json | 98 ++++++++- .../ymdk/ymd75/rev1/keymaps/default/keymap.c | 4 +- .../ymdk/ymd75/rev1/keymaps/via/keymap.c | 4 +- keyboards/ymdk/ymd75/rev2/info.json | 98 ++++++++- .../ymdk/ymd75/rev2/keymaps/default/keymap.c | 4 +- .../ymdk/ymd75/rev2/keymaps/via/keymap.c | 4 +- keyboards/ymdk/ymd75/rev3/info.json | 98 ++++++++- .../ymdk/ymd75/rev3/keymaps/default/keymap.c | 4 +- .../ymdk/ymd75/rev3/keymaps/via/keymap.c | 4 +- 12 files changed, 779 insertions(+), 18 deletions(-) diff --git a/keyboards/amjkeyboard/amj84/info.json b/keyboards/amjkeyboard/amj84/info.json index 18a7cdff49..85832229a3 100644 --- a/keyboards/amjkeyboard/amj84/info.json +++ b/keyboards/amjkeyboard/amj84/info.json @@ -23,6 +23,7 @@ "layout_aliases": { "LAYOUT": "LAYOUT_all" }, + "community_layouts": ["75_ansi", "75_iso"], "layouts": { "LAYOUT_all": { "layout": [ @@ -118,6 +119,99 @@ {"matrix": [5, 14], "x": 15, "y": 5} ] }, + "LAYOUT_75_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [5, 8], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 14], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [2, 14], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5}, + {"matrix": [5, 10], "x": 11, "y": 5}, + {"matrix": [5, 11], "x": 12, "y": 5}, + {"matrix": [5, 12], "x": 13, "y": 5}, + {"matrix": [5, 13], "x": 14, "y": 5}, + {"matrix": [5, 14], "x": 15, "y": 5} + ] + }, "LAYOUT_75_ansi_rwkl": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -210,6 +304,100 @@ {"matrix": [5, 14], "x": 15, "y": 5} ] }, + "LAYOUT_75_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [5, 8], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 14], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 14], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 12], "x": 12.75, "y": 3}, + {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5}, + {"matrix": [5, 10], "x": 11, "y": 5}, + {"matrix": [5, 11], "x": 12, "y": 5}, + {"matrix": [5, 12], "x": 13, "y": 5}, + {"matrix": [5, 13], "x": 14, "y": 5}, + {"matrix": [5, 14], "x": 15, "y": 5} + ] + }, "LAYOUT_75_iso_rwkl": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, diff --git a/keyboards/duck/octagon/v2/info.json b/keyboards/duck/octagon/v2/info.json index c1512f806b..be552c7b57 100644 --- a/keyboards/duck/octagon/v2/info.json +++ b/keyboards/duck/octagon/v2/info.json @@ -35,9 +35,12 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", - "community_layouts": ["75_ansi"], + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, + "community_layouts": ["75_ansi", "75_iso"], "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -223,7 +226,101 @@ {"matrix": [5, 13], "x": 13, "y": 5}, {"matrix": [5, 14], "x": 14, "y": 5}, {"matrix": [5, 15], "x": 15, "y": 5} - ] + ] + }, + "LAYOUT_75_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 16], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 14], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 12], "x": 12.75, "y": 3}, + {"matrix": [3, 14], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 12], "x": 11.25, "y": 4}, + {"matrix": [4, 13], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 8], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5}, + {"matrix": [5, 11], "x": 11, "y": 5}, + {"matrix": [5, 12], "x": 12, "y": 5}, + {"matrix": [5, 13], "x": 13, "y": 5}, + {"matrix": [5, 14], "x": 14, "y": 5}, + {"matrix": [5, 15], "x": 15, "y": 5} + ] } } } diff --git a/keyboards/quad_h/lb75/info.json b/keyboards/quad_h/lb75/info.json index 99453aae4c..16701a5e99 100644 --- a/keyboards/quad_h/lb75/info.json +++ b/keyboards/quad_h/lb75/info.json @@ -41,7 +41,195 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", + "community_layouts": ["75_ansi", "75_iso"], "layouts": { + "LAYOUT_75_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0}, + {"matrix": [0, 7], "x": 14, "y": 0}, + {"matrix": [1, 7], "x": 15, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1}, + {"matrix": [3, 0], "x": 1, "y": 1}, + {"matrix": [2, 1], "x": 2, "y": 1}, + {"matrix": [3, 1], "x": 3, "y": 1}, + {"matrix": [2, 2], "x": 4, "y": 1}, + {"matrix": [3, 2], "x": 5, "y": 1}, + {"matrix": [2, 3], "x": 6, "y": 1}, + {"matrix": [3, 3], "x": 7, "y": 1}, + {"matrix": [2, 4], "x": 8, "y": 1}, + {"matrix": [3, 4], "x": 9, "y": 1}, + {"matrix": [2, 5], "x": 10, "y": 1}, + {"matrix": [3, 5], "x": 11, "y": 1}, + {"matrix": [2, 6], "x": 12, "y": 1}, + {"matrix": [3, 6], "x": 13, "y": 1, "w": 2}, + {"matrix": [3, 7], "x": 15, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [5, 0], "x": 1.5, "y": 2}, + {"matrix": [4, 1], "x": 2.5, "y": 2}, + {"matrix": [5, 1], "x": 3.5, "y": 2}, + {"matrix": [4, 2], "x": 4.5, "y": 2}, + {"matrix": [5, 2], "x": 5.5, "y": 2}, + {"matrix": [4, 3], "x": 6.5, "y": 2}, + {"matrix": [5, 3], "x": 7.5, "y": 2}, + {"matrix": [4, 4], "x": 8.5, "y": 2}, + {"matrix": [5, 4], "x": 9.5, "y": 2}, + {"matrix": [4, 5], "x": 10.5, "y": 2}, + {"matrix": [5, 5], "x": 11.5, "y": 2}, + {"matrix": [4, 6], "x": 12.5, "y": 2}, + {"matrix": [4, 7], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [5, 7], "x": 15, "y": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [7, 0], "x": 1.75, "y": 3}, + {"matrix": [6, 1], "x": 2.75, "y": 3}, + {"matrix": [7, 1], "x": 3.75, "y": 3}, + {"matrix": [6, 2], "x": 4.75, "y": 3}, + {"matrix": [7, 2], "x": 5.75, "y": 3}, + {"matrix": [6, 3], "x": 6.75, "y": 3}, + {"matrix": [7, 3], "x": 7.75, "y": 3}, + {"matrix": [6, 4], "x": 8.75, "y": 3}, + {"matrix": [7, 4], "x": 9.75, "y": 3}, + {"matrix": [6, 5], "x": 10.75, "y": 3}, + {"matrix": [7, 5], "x": 11.75, "y": 3}, + {"matrix": [7, 6], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [7, 7], "x": 15, "y": 3}, + + {"matrix": [8, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [8, 1], "x": 2.25, "y": 4}, + {"matrix": [9, 1], "x": 3.25, "y": 4}, + {"matrix": [8, 2], "x": 4.25, "y": 4}, + {"matrix": [9, 2], "x": 5.25, "y": 4}, + {"matrix": [8, 3], "x": 6.25, "y": 4}, + {"matrix": [9, 3], "x": 7.25, "y": 4}, + {"matrix": [8, 4], "x": 8.25, "y": 4}, + {"matrix": [9, 4], "x": 9.25, "y": 4}, + {"matrix": [8, 5], "x": 10.25, "y": 4}, + {"matrix": [9, 5], "x": 11.25, "y": 4}, + {"matrix": [8, 6], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [8, 7], "x": 14, "y": 4}, + {"matrix": [9, 7], "x": 15, "y": 4}, + + {"matrix": [10, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [11, 0], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [10, 1], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [10, 3], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [10, 5], "x": 10, "y": 5}, + {"matrix": [11, 5], "x": 11, "y": 5}, + {"matrix": [10, 6], "x": 12, "y": 5}, + {"matrix": [11, 6], "x": 13, "y": 5}, + {"matrix": [10, 7], "x": 14, "y": 5}, + {"matrix": [11, 7], "x": 15, "y": 5} + ] + }, + "LAYOUT_75_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0}, + {"matrix": [0, 7], "x": 14, "y": 0}, + {"matrix": [1, 7], "x": 15, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1}, + {"matrix": [3, 0], "x": 1, "y": 1}, + {"matrix": [2, 1], "x": 2, "y": 1}, + {"matrix": [3, 1], "x": 3, "y": 1}, + {"matrix": [2, 2], "x": 4, "y": 1}, + {"matrix": [3, 2], "x": 5, "y": 1}, + {"matrix": [2, 3], "x": 6, "y": 1}, + {"matrix": [3, 3], "x": 7, "y": 1}, + {"matrix": [2, 4], "x": 8, "y": 1}, + {"matrix": [3, 4], "x": 9, "y": 1}, + {"matrix": [2, 5], "x": 10, "y": 1}, + {"matrix": [3, 5], "x": 11, "y": 1}, + {"matrix": [2, 6], "x": 12, "y": 1}, + {"matrix": [3, 6], "x": 13, "y": 1, "w": 2}, + {"matrix": [3, 7], "x": 15, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [5, 0], "x": 1.5, "y": 2}, + {"matrix": [4, 1], "x": 2.5, "y": 2}, + {"matrix": [5, 1], "x": 3.5, "y": 2}, + {"matrix": [4, 2], "x": 4.5, "y": 2}, + {"matrix": [5, 2], "x": 5.5, "y": 2}, + {"matrix": [4, 3], "x": 6.5, "y": 2}, + {"matrix": [5, 3], "x": 7.5, "y": 2}, + {"matrix": [4, 4], "x": 8.5, "y": 2}, + {"matrix": [5, 4], "x": 9.5, "y": 2}, + {"matrix": [4, 5], "x": 10.5, "y": 2}, + {"matrix": [5, 5], "x": 11.5, "y": 2}, + {"matrix": [4, 6], "x": 12.5, "y": 2}, + {"matrix": [5, 7], "x": 15, "y": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [7, 0], "x": 1.75, "y": 3}, + {"matrix": [6, 1], "x": 2.75, "y": 3}, + {"matrix": [7, 1], "x": 3.75, "y": 3}, + {"matrix": [6, 2], "x": 4.75, "y": 3}, + {"matrix": [7, 2], "x": 5.75, "y": 3}, + {"matrix": [6, 3], "x": 6.75, "y": 3}, + {"matrix": [7, 3], "x": 7.75, "y": 3}, + {"matrix": [6, 4], "x": 8.75, "y": 3}, + {"matrix": [7, 4], "x": 9.75, "y": 3}, + {"matrix": [6, 5], "x": 10.75, "y": 3}, + {"matrix": [7, 5], "x": 11.75, "y": 3}, + {"matrix": [4, 7], "x": 12.75, "y": 3}, + {"matrix": [7, 6], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [7, 7], "x": 15, "y": 3}, + + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4}, + {"matrix": [8, 1], "x": 2.25, "y": 4}, + {"matrix": [9, 1], "x": 3.25, "y": 4}, + {"matrix": [8, 2], "x": 4.25, "y": 4}, + {"matrix": [9, 2], "x": 5.25, "y": 4}, + {"matrix": [8, 3], "x": 6.25, "y": 4}, + {"matrix": [9, 3], "x": 7.25, "y": 4}, + {"matrix": [8, 4], "x": 8.25, "y": 4}, + {"matrix": [9, 4], "x": 9.25, "y": 4}, + {"matrix": [8, 5], "x": 10.25, "y": 4}, + {"matrix": [9, 5], "x": 11.25, "y": 4}, + {"matrix": [8, 6], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [8, 7], "x": 14, "y": 4}, + {"matrix": [9, 7], "x": 15, "y": 4}, + + {"matrix": [10, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [11, 0], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [10, 1], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [10, 3], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [10, 5], "x": 10, "y": 5}, + {"matrix": [11, 5], "x": 11, "y": 5}, + {"matrix": [10, 6], "x": 12, "y": 5}, + {"matrix": [11, 6], "x": 13, "y": 5}, + {"matrix": [10, 7], "x": 14, "y": 5}, + {"matrix": [11, 7], "x": 15, "y": 5} + ] + }, "LAYOUT_continuous_fnrow": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, diff --git a/keyboards/ymdk/ymd75/rev1/info.json b/keyboards/ymdk/ymd75/rev1/info.json index 5f35c77bc2..fb214285c1 100644 --- a/keyboards/ymdk/ymd75/rev1/info.json +++ b/keyboards/ymdk/ymd75/rev1/info.json @@ -43,8 +43,12 @@ }, "processor": "atmega32a", "bootloader": "bootloadhid", + "layout_aliases":{ + "LAYOUT": "LAYOUT_75_ansi" + }, + "community_layouts": ["75_ansi", "75_iso"], "layouts": { - "LAYOUT": { + "LAYOUT_75_ansi": { "layout": [ {"matrix": [5, 0], "x": 0, "y": 0}, {"matrix": [5, 2], "x": 1, "y": 0}, @@ -137,6 +141,98 @@ {"matrix": [6, 6], "x": 15, "y": 5} ] }, + "LAYOUT_75_ansi_rwkl": { + "layout": [ + {"matrix": [5, 0], "x": 0, "y": 0}, + {"matrix": [5, 2], "x": 1, "y": 0}, + {"matrix": [5, 3], "x": 2, "y": 0}, + {"matrix": [5, 4], "x": 3, "y": 0}, + {"matrix": [5, 5], "x": 4, "y": 0}, + {"matrix": [6, 0], "x": 5, "y": 0}, + {"matrix": [6, 10], "x": 6, "y": 0}, + {"matrix": [7, 10], "x": 7, "y": 0}, + {"matrix": [7, 0], "x": 8, "y": 0}, + {"matrix": [5, 11], "x": 9, "y": 0}, + {"matrix": [5, 12], "x": 10, "y": 0}, + {"matrix": [5, 13], "x": 11, "y": 0}, + {"matrix": [5, 14], "x": 12, "y": 0}, + {"matrix": [1, 13], "x": 13, "y": 0}, + {"matrix": [1, 14], "x": 14, "y": 0}, + {"matrix": [2, 14], "x": 15, "y": 0}, + + {"matrix": [4, 0], "x": 0, "y": 1}, + {"matrix": [4, 1], "x": 1, "y": 1}, + {"matrix": [4, 2], "x": 2, "y": 1}, + {"matrix": [4, 3], "x": 3, "y": 1}, + {"matrix": [4, 4], "x": 4, "y": 1}, + {"matrix": [4, 5], "x": 5, "y": 1}, + {"matrix": [6, 1], "x": 6, "y": 1}, + {"matrix": [6, 11], "x": 7, "y": 1}, + {"matrix": [7, 11], "x": 8, "y": 1}, + {"matrix": [7, 1], "x": 9, "y": 1}, + {"matrix": [4, 10], "x": 10, "y": 1}, + {"matrix": [4, 11], "x": 11, "y": 1}, + {"matrix": [4, 12], "x": 12, "y": 1}, + {"matrix": [4, 14], "x": 13, "y": 1, "w": 2}, + {"matrix": [0, 13], "x": 15, "y": 1}, + + {"matrix": [3, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 2}, + {"matrix": [3, 2], "x": 2.5, "y": 2}, + {"matrix": [3, 3], "x": 3.5, "y": 2}, + {"matrix": [3, 4], "x": 4.5, "y": 2}, + {"matrix": [3, 5], "x": 5.5, "y": 2}, + {"matrix": [6, 2], "x": 6.5, "y": 2}, + {"matrix": [6, 12], "x": 7.5, "y": 2}, + {"matrix": [7, 12], "x": 8.5, "y": 2}, + {"matrix": [7, 2], "x": 9.5, "y": 2}, + {"matrix": [3, 10], "x": 10.5, "y": 2}, + {"matrix": [3, 11], "x": 11.5, "y": 2}, + {"matrix": [3, 12], "x": 12.5, "y": 2}, + {"matrix": [3, 13], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [7, 6], "x": 15, "y": 2}, + + {"matrix": [2, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 3}, + {"matrix": [2, 2], "x": 2.75, "y": 3}, + {"matrix": [2, 3], "x": 3.75, "y": 3}, + {"matrix": [2, 4], "x": 4.75, "y": 3}, + {"matrix": [2, 5], "x": 5.75, "y": 3}, + {"matrix": [6, 3], "x": 6.75, "y": 3}, + {"matrix": [6, 13], "x": 7.75, "y": 3}, + {"matrix": [7, 13], "x": 8.75, "y": 3}, + {"matrix": [7, 3], "x": 9.75, "y": 3}, + {"matrix": [2, 10], "x": 10.75, "y": 3}, + {"matrix": [2, 11], "x": 11.75, "y": 3}, + {"matrix": [2, 13], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [7, 8], "x": 15, "y": 3}, + + {"matrix": [1, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [1, 1], "x": 2.25, "y": 4}, + {"matrix": [1, 2], "x": 3.25, "y": 4}, + {"matrix": [1, 3], "x": 4.25, "y": 4}, + {"matrix": [1, 4], "x": 5.25, "y": 4}, + {"matrix": [1, 5], "x": 6.25, "y": 4}, + {"matrix": [6, 4], "x": 7.25, "y": 4}, + {"matrix": [6, 14], "x": 8.25, "y": 4}, + {"matrix": [7, 14], "x": 9.25, "y": 4}, + {"matrix": [7, 4], "x": 10.25, "y": 4}, + {"matrix": [1, 10], "x": 11.25, "y": 4}, + {"matrix": [1, 11], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [6, 8], "x": 14, "y": 4}, + {"matrix": [7, 7], "x": 15, "y": 4}, + + {"matrix": [0, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [0, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [0, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [6, 5], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [7, 5], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [0, 12], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [6, 9], "x": 13, "y": 5}, + {"matrix": [6, 7], "x": 14, "y": 5}, + {"matrix": [6, 6], "x": 15, "y": 5} + ] + }, "LAYOUT_75_iso": { "layout": [ {"matrix": [5, 0], "x": 0, "y": 0}, diff --git a/keyboards/ymdk/ymd75/rev1/keymaps/default/keymap.c b/keyboards/ymdk/ymd75/rev1/keymaps/default/keymap.c index e51f88bb43..0df14f0032 100644 --- a/keyboards/ymdk/ymd75/rev1/keymaps/default/keymap.c +++ b/keyboards/ymdk/ymd75/rev1/keymaps/default/keymap.c @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * │LCTRL │L_GUI │L_ALT │ SPACE │ R_ALT │ R_CTRL │LEFT │DOWN │RIGHT│ * └──────┴──────┴──────┴──────────────────────────────────────┴────────┴────────┴─────┴─────┴─────┘ */ - [_MAIN] = LAYOUT( + [_MAIN] = LAYOUT_75_ansi( KC_ESC, 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_PSCR, KC_DEL, MO(_FN), KC_GRV, 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_BSPC, KC_HOME, 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_END, @@ -66,7 +66,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * │ │ │ │ │ │ │ │ │ │ * └──────┴──────┴──────┴──────────────────────────────────────┴────────┴────────┴─────┴─────┴─────┘ */ - [_FN] = LAYOUT( + [_FN] = LAYOUT_75_ansi( RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, BL_UP, BL_DOWN, P_MACRO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_STEP, 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, diff --git a/keyboards/ymdk/ymd75/rev1/keymaps/via/keymap.c b/keyboards/ymdk/ymd75/rev1/keymaps/via/keymap.c index 0d39958db6..9c1c4fe697 100644 --- a/keyboards/ymdk/ymd75/rev1/keymaps/via/keymap.c +++ b/keyboards/ymdk/ymd75/rev1/keymaps/via/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * │LCTRL │L_GUI │L_ALT │ SPACE │R_ALT| FN │R_CTR│LEFT │DOWN │RIGHT│ * └──────┴──────┴──────┴──────────────────────────────────────┴─────┴─────┴─────┴─────┴─────┘─────┘ */ - [0] = LAYOUT( + [0] = LAYOUT_75_ansi( KC_ESC, 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_PSCR, KC_PAUS, KC_DEL, KC_GRV, 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_BSPC, KC_HOME, 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_END, @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_75_ansi( _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/ymdk/ymd75/rev2/info.json b/keyboards/ymdk/ymd75/rev2/info.json index f20a19ee97..2e2e38ce44 100644 --- a/keyboards/ymdk/ymd75/rev2/info.json +++ b/keyboards/ymdk/ymd75/rev2/info.json @@ -43,8 +43,12 @@ }, "processor": "atmega32a", "bootloader": "bootloadhid", + "layout_aliases":{ + "LAYOUT": "LAYOUT_75_ansi" + }, + "community_layouts": ["75_ansi", "75_iso"], "layouts": { - "LAYOUT": { + "LAYOUT_75_ansi": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -137,6 +141,98 @@ {"matrix": [5, 11], "x": 15, "y": 5} ] }, + "LAYOUT_75_ansi_rwkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [5, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 14], "x": 13, "y": 1, "w": 2}, + {"matrix": [5, 13], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [2, 14], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 6], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [5, 8], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 9], "x": 13, "y": 5}, + {"matrix": [5, 10], "x": 14, "y": 5}, + {"matrix": [5, 11], "x": 15, "y": 5} + ] + }, "LAYOUT_75_iso": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, diff --git a/keyboards/ymdk/ymd75/rev2/keymaps/default/keymap.c b/keyboards/ymdk/ymd75/rev2/keymaps/default/keymap.c index e51f88bb43..0df14f0032 100644 --- a/keyboards/ymdk/ymd75/rev2/keymaps/default/keymap.c +++ b/keyboards/ymdk/ymd75/rev2/keymaps/default/keymap.c @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * │LCTRL │L_GUI │L_ALT │ SPACE │ R_ALT │ R_CTRL │LEFT │DOWN │RIGHT│ * └──────┴──────┴──────┴──────────────────────────────────────┴────────┴────────┴─────┴─────┴─────┘ */ - [_MAIN] = LAYOUT( + [_MAIN] = LAYOUT_75_ansi( KC_ESC, 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_PSCR, KC_DEL, MO(_FN), KC_GRV, 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_BSPC, KC_HOME, 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_END, @@ -66,7 +66,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * │ │ │ │ │ │ │ │ │ │ * └──────┴──────┴──────┴──────────────────────────────────────┴────────┴────────┴─────┴─────┴─────┘ */ - [_FN] = LAYOUT( + [_FN] = LAYOUT_75_ansi( RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, BL_UP, BL_DOWN, P_MACRO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_STEP, 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, diff --git a/keyboards/ymdk/ymd75/rev2/keymaps/via/keymap.c b/keyboards/ymdk/ymd75/rev2/keymaps/via/keymap.c index 0d39958db6..9c1c4fe697 100644 --- a/keyboards/ymdk/ymd75/rev2/keymaps/via/keymap.c +++ b/keyboards/ymdk/ymd75/rev2/keymaps/via/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * │LCTRL │L_GUI │L_ALT │ SPACE │R_ALT| FN │R_CTR│LEFT │DOWN │RIGHT│ * └──────┴──────┴──────┴──────────────────────────────────────┴─────┴─────┴─────┴─────┴─────┘─────┘ */ - [0] = LAYOUT( + [0] = LAYOUT_75_ansi( KC_ESC, 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_PSCR, KC_PAUS, KC_DEL, KC_GRV, 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_BSPC, KC_HOME, 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_END, @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_75_ansi( _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/ymdk/ymd75/rev3/info.json b/keyboards/ymdk/ymd75/rev3/info.json index 45968ab5fb..f3ee46edbd 100644 --- a/keyboards/ymdk/ymd75/rev3/info.json +++ b/keyboards/ymdk/ymd75/rev3/info.json @@ -40,8 +40,12 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", + "layout_aliases":{ + "LAYOUT": "LAYOUT_75_ansi" + }, + "community_layouts": ["75_ansi", "75_iso"], "layouts": { - "LAYOUT": { + "LAYOUT_75_ansi": { "layout": [ {"matrix": [5, 0], "x": 0, "y": 0}, {"matrix": [5, 1], "x": 1, "y": 0}, @@ -134,6 +138,98 @@ {"matrix": [6, 6], "x": 15, "y": 5} ] }, + "LAYOUT_75_ansi_rwkl": { + "layout": [ + {"matrix": [5, 0], "x": 0, "y": 0}, + {"matrix": [5, 1], "x": 1, "y": 0}, + {"matrix": [5, 2], "x": 2, "y": 0}, + {"matrix": [5, 3], "x": 3, "y": 0}, + {"matrix": [5, 4], "x": 4, "y": 0}, + {"matrix": [5, 5], "x": 5, "y": 0}, + {"matrix": [5, 6], "x": 6, "y": 0}, + {"matrix": [5, 7], "x": 7, "y": 0}, + {"matrix": [5, 8], "x": 8, "y": 0}, + {"matrix": [11, 8], "x": 9, "y": 0}, + {"matrix": [11, 7], "x": 10, "y": 0}, + {"matrix": [11, 5], "x": 11, "y": 0}, + {"matrix": [11, 4], "x": 12, "y": 0}, + {"matrix": [11, 3], "x": 13, "y": 0}, + {"matrix": [11, 6], "x": 14, "y": 0}, + {"matrix": [11, 2], "x": 15, "y": 0}, + + {"matrix": [4, 0], "x": 0, "y": 1}, + {"matrix": [4, 1], "x": 1, "y": 1}, + {"matrix": [4, 2], "x": 2, "y": 1}, + {"matrix": [4, 3], "x": 3, "y": 1}, + {"matrix": [4, 4], "x": 4, "y": 1}, + {"matrix": [4, 5], "x": 5, "y": 1}, + {"matrix": [4, 6], "x": 6, "y": 1}, + {"matrix": [4, 7], "x": 7, "y": 1}, + {"matrix": [4, 8], "x": 8, "y": 1}, + {"matrix": [10, 8], "x": 9, "y": 1}, + {"matrix": [10, 7], "x": 10, "y": 1}, + {"matrix": [10, 5], "x": 11, "y": 1}, + {"matrix": [10, 4], "x": 12, "y": 1}, + {"matrix": [10, 6], "x": 13, "y": 1, "w": 2}, + {"matrix": [10, 2], "x": 15, "y": 1}, + + {"matrix": [3, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 2}, + {"matrix": [3, 2], "x": 2.5, "y": 2}, + {"matrix": [3, 3], "x": 3.5, "y": 2}, + {"matrix": [3, 4], "x": 4.5, "y": 2}, + {"matrix": [3, 5], "x": 5.5, "y": 2}, + {"matrix": [3, 6], "x": 6.5, "y": 2}, + {"matrix": [3, 7], "x": 7.5, "y": 2}, + {"matrix": [3, 8], "x": 8.5, "y": 2}, + {"matrix": [9, 8], "x": 9.5, "y": 2}, + {"matrix": [9, 7], "x": 10.5, "y": 2}, + {"matrix": [9, 5], "x": 11.5, "y": 2}, + {"matrix": [9, 4], "x": 12.5, "y": 2}, + {"matrix": [9, 3], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [9, 6], "x": 15, "y": 2}, + + {"matrix": [2, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 3}, + {"matrix": [2, 2], "x": 2.75, "y": 3}, + {"matrix": [2, 3], "x": 3.75, "y": 3}, + {"matrix": [2, 4], "x": 4.75, "y": 3}, + {"matrix": [2, 5], "x": 5.75, "y": 3}, + {"matrix": [2, 6], "x": 6.75, "y": 3}, + {"matrix": [2, 7], "x": 7.75, "y": 3}, + {"matrix": [2, 8], "x": 8.75, "y": 3}, + {"matrix": [8, 8], "x": 9.75, "y": 3}, + {"matrix": [8, 7], "x": 10.75, "y": 3}, + {"matrix": [8, 5], "x": 11.75, "y": 3}, + {"matrix": [8, 4], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [8, 6], "x": 15, "y": 3}, + + {"matrix": [1, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [1, 2], "x": 2.25, "y": 4}, + {"matrix": [1, 3], "x": 3.25, "y": 4}, + {"matrix": [1, 4], "x": 4.25, "y": 4}, + {"matrix": [1, 5], "x": 5.25, "y": 4}, + {"matrix": [1, 6], "x": 6.25, "y": 4}, + {"matrix": [1, 7], "x": 7.25, "y": 4}, + {"matrix": [1, 8], "x": 8.25, "y": 4}, + {"matrix": [7, 8], "x": 9.25, "y": 4}, + {"matrix": [7, 7], "x": 10.25, "y": 4}, + {"matrix": [7, 5], "x": 11.25, "y": 4}, + {"matrix": [7, 4], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [7, 3], "x": 14, "y": 4}, + {"matrix": [7, 6], "x": 15, "y": 4}, + + {"matrix": [0, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [0, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [0, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [0, 6], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [0, 8], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [0, 5], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [0, 4], "x": 13, "y": 5}, + {"matrix": [0, 3], "x": 14, "y": 5}, + {"matrix": [6, 6], "x": 15, "y": 5} + ] + }, "LAYOUT_75_iso": { "layout": [ {"matrix": [5, 0], "x": 0, "y": 0}, diff --git a/keyboards/ymdk/ymd75/rev3/keymaps/default/keymap.c b/keyboards/ymdk/ymd75/rev3/keymaps/default/keymap.c index e51f88bb43..0df14f0032 100644 --- a/keyboards/ymdk/ymd75/rev3/keymaps/default/keymap.c +++ b/keyboards/ymdk/ymd75/rev3/keymaps/default/keymap.c @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * │LCTRL │L_GUI │L_ALT │ SPACE │ R_ALT │ R_CTRL │LEFT │DOWN │RIGHT│ * └──────┴──────┴──────┴──────────────────────────────────────┴────────┴────────┴─────┴─────┴─────┘ */ - [_MAIN] = LAYOUT( + [_MAIN] = LAYOUT_75_ansi( KC_ESC, 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_PSCR, KC_DEL, MO(_FN), KC_GRV, 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_BSPC, KC_HOME, 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_END, @@ -66,7 +66,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * │ │ │ │ │ │ │ │ │ │ * └──────┴──────┴──────┴──────────────────────────────────────┴────────┴────────┴─────┴─────┴─────┘ */ - [_FN] = LAYOUT( + [_FN] = LAYOUT_75_ansi( RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, BL_UP, BL_DOWN, P_MACRO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_STEP, 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, diff --git a/keyboards/ymdk/ymd75/rev3/keymaps/via/keymap.c b/keyboards/ymdk/ymd75/rev3/keymaps/via/keymap.c index 0d39958db6..9c1c4fe697 100644 --- a/keyboards/ymdk/ymd75/rev3/keymaps/via/keymap.c +++ b/keyboards/ymdk/ymd75/rev3/keymaps/via/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * │LCTRL │L_GUI │L_ALT │ SPACE │R_ALT| FN │R_CTR│LEFT │DOWN │RIGHT│ * └──────┴──────┴──────┴──────────────────────────────────────┴─────┴─────┴─────┴─────┴─────┘─────┘ */ - [0] = LAYOUT( + [0] = LAYOUT_75_ansi( KC_ESC, 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_PSCR, KC_PAUS, KC_DEL, KC_GRV, 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_BSPC, KC_HOME, 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_END, @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_75_ansi( _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, From 9d526b8d669c81b0de26ab6aa34c51c2339f48e9 Mon Sep 17 00:00:00 2001 From: HorrorTroll Date: Mon, 25 Sep 2023 09:58:45 +0700 Subject: [PATCH 168/496] Added flower blooming on RGB Matrix effect (#21948) --- docs/feature_rgb_matrix.md | 2 + docs/squeezing_avr.md | 1 + .../animations/flower_blooming_anim.h | 53 +++++++++++++++++++ .../animations/rgb_matrix_effects.inc | 1 + 4 files changed, 57 insertions(+) create mode 100644 quantum/rgb_matrix/animations/flower_blooming_anim.h diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index fe4e1d1ab0..3fc8a7330b 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -645,6 +645,7 @@ enum rgb_matrix_effects { RGB_MATRIX_DUAL_BEACON, // Full gradient spinning around center of keyboard RGB_MATRIX_RAINBOW_BEACON, // Full tighter gradient spinning around center of keyboard RGB_MATRIX_RAINBOW_PINWHEELS, // Full dual gradients spinning two halfs of keyboard + RGB_MATRIX_FLOWER_BLOOMING, // Full tighter gradient of first half scrolling left to right and second half scrolling right to left RGB_MATRIX_RAINDROPS, // Randomly changes a single key's hue RGB_MATRIX_JELLYBEAN_RAINDROPS, // Randomly changes a single key's hue and saturation RGB_MATRIX_HUE_BREATHING, // Hue shifts up a slight ammount at the same time, then shifts back @@ -697,6 +698,7 @@ You can enable a single effect by defining `ENABLE_[EFFECT_NAME]` in your `confi |`#define ENABLE_RGB_MATRIX_DUAL_BEACON` |Enables `RGB_MATRIX_DUAL_BEACON` | |`#define ENABLE_RGB_MATRIX_RAINBOW_BEACON` |Enables `RGB_MATRIX_RAINBOW_BEACON` | |`#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS` |Enables `RGB_MATRIX_RAINBOW_PINWHEELS` | +|`#define ENABLE_RGB_MATRIX_FLOWER_BLOOMING` |Enables `RGB_MATRIX_FLOWER_BLOOMING` | |`#define ENABLE_RGB_MATRIX_RAINDROPS` |Enables `RGB_MATRIX_RAINDROPS` | |`#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS` |Enables `RGB_MATRIX_JELLYBEAN_RAINDROPS` | |`#define ENABLE_RGB_MATRIX_HUE_BREATHING` |Enables `RGB_MATRIX_HUE_BREATHING` | diff --git a/docs/squeezing_avr.md b/docs/squeezing_avr.md index b437901bdb..af015b4b18 100644 --- a/docs/squeezing_avr.md +++ b/docs/squeezing_avr.md @@ -168,6 +168,7 @@ For RGB Matrix, these need to be explicitly enabled as well. To disable any that #undef ENABLE_RGB_MATRIX_DUAL_BEACON #undef ENABLE_RGB_MATRIX_RAINBOW_BEACON #undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +#undef ENABLE_RGB_MATRIX_FLOWER_BLOOMING #undef ENABLE_RGB_MATRIX_RAINDROPS #undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS #undef ENABLE_RGB_MATRIX_HUE_BREATHING diff --git a/quantum/rgb_matrix/animations/flower_blooming_anim.h b/quantum/rgb_matrix/animations/flower_blooming_anim.h new file mode 100644 index 0000000000..7629fde858 --- /dev/null +++ b/quantum/rgb_matrix/animations/flower_blooming_anim.h @@ -0,0 +1,53 @@ +/* Copyright 2023 HorrorTroll + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifdef ENABLE_RGB_MATRIX_FLOWER_BLOOMING +RGB_MATRIX_EFFECT(FLOWER_BLOOMING) +# ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS + +typedef HSV (*flower_blooming_f)(HSV hsv, uint8_t i, uint8_t time); + +bool effect_runner_bloom(effect_params_t* params, flower_blooming_f effect_func) { + RGB_MATRIX_USE_LIMITS(led_min, led_max); + + uint8_t time = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed / 10, 1)); + for (uint8_t i = led_min; i < led_max; i++) { + RGB_MATRIX_TEST_LED_FLAGS(); + if (g_led_config.point[i].y > k_rgb_matrix_center.y) { + RGB bgr = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); + rgb_matrix_set_color(i, bgr.b, bgr.g, bgr.r); + } else { + RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); + } + } + return rgb_matrix_check_finished_leds(led_max); +} + +static HSV FLOWER_BLOOMING_math(HSV hsv, uint8_t i, uint8_t time) { + if (g_led_config.point[i].y > k_rgb_matrix_center.y) + hsv.h = g_led_config.point[i].x * 3 - g_led_config.point[i].y * 3 + time; + else + hsv.h = g_led_config.point[i].x * 3 - g_led_config.point[i].y * 3 - time; + return hsv; +} + +bool FLOWER_BLOOMING(effect_params_t* params) { + return effect_runner_bloom(params, &FLOWER_BLOOMING_math); +} + +# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS +#endif // ENABLE_RGB_MATRIX_FLOWER_BLOOMING diff --git a/quantum/rgb_matrix/animations/rgb_matrix_effects.inc b/quantum/rgb_matrix/animations/rgb_matrix_effects.inc index ac7bac428d..df34718838 100644 --- a/quantum/rgb_matrix/animations/rgb_matrix_effects.inc +++ b/quantum/rgb_matrix/animations/rgb_matrix_effects.inc @@ -21,6 +21,7 @@ #include "dual_beacon_anim.h" #include "rainbow_beacon_anim.h" #include "rainbow_pinwheels_anim.h" +#include "flower_blooming_anim.h" #include "raindrops_anim.h" #include "jellybean_raindrops_anim.h" #include "hue_breathing_anim.h" From c10a46aa436fdd55279bf5b78cc5b9b54c90ca56 Mon Sep 17 00:00:00 2001 From: Andrew Kannan Date: Sun, 24 Sep 2023 22:59:38 -0400 Subject: [PATCH 169/496] Add is0gr to QMK (#22024) Co-authored-by: Duncan Sutherland Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> --- keyboards/cannonkeys/is0gr/info.json | 32 +++++++++++++++++++ .../cannonkeys/is0gr/keymaps/default/keymap.c | 10 ++++++ .../cannonkeys/is0gr/keymaps/via/keymap.c | 11 +++++++ .../cannonkeys/is0gr/keymaps/via/rules.mk | 1 + keyboards/cannonkeys/is0gr/readme.md | 24 ++++++++++++++ keyboards/cannonkeys/is0gr/rules.mk | 2 ++ 6 files changed, 80 insertions(+) create mode 100644 keyboards/cannonkeys/is0gr/info.json create mode 100644 keyboards/cannonkeys/is0gr/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/is0gr/keymaps/via/keymap.c create mode 100644 keyboards/cannonkeys/is0gr/keymaps/via/rules.mk create mode 100644 keyboards/cannonkeys/is0gr/readme.md create mode 100644 keyboards/cannonkeys/is0gr/rules.mk diff --git a/keyboards/cannonkeys/is0gr/info.json b/keyboards/cannonkeys/is0gr/info.json new file mode 100644 index 0000000000..3fd95577d8 --- /dev/null +++ b/keyboards/cannonkeys/is0gr/info.json @@ -0,0 +1,32 @@ +{ + "manufacturer": "CannonKeys", + "keyboard_name": "is0GR", + "maintainer": "awkannan", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B3"], + "rows": ["A15"] + }, + "processor": "STM32F072", + "url": "https://cannonkeys.com", + "usb": { + "device_version": "0.0.1", + "pid": "0xCA04", + "vid": "0x0028" + }, + "community_layouts": ["ortho_1x1"], + "layouts": { + "LAYOUT_ortho_1x1": { + "layout": [ + {"matrix": [0, 0], "x": 0.25, "y": 0, "w": 1.25, "h": 2} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/cannonkeys/is0gr/keymaps/default/keymap.c b/keyboards/cannonkeys/is0gr/keymaps/default/keymap.c new file mode 100644 index 0000000000..49f0cdb491 --- /dev/null +++ b/keyboards/cannonkeys/is0gr/keymaps/default/keymap.c @@ -0,0 +1,10 @@ +// Copyright 2023 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_1x1( + KC_ENT + ), +}; diff --git a/keyboards/cannonkeys/is0gr/keymaps/via/keymap.c b/keyboards/cannonkeys/is0gr/keymaps/via/keymap.c new file mode 100644 index 0000000000..10451984f0 --- /dev/null +++ b/keyboards/cannonkeys/is0gr/keymaps/via/keymap.c @@ -0,0 +1,11 @@ +// Copyright 2023 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_1x1( + KC_ENT + ), +}; + diff --git a/keyboards/cannonkeys/is0gr/keymaps/via/rules.mk b/keyboards/cannonkeys/is0gr/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/cannonkeys/is0gr/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/is0gr/readme.md b/keyboards/cannonkeys/is0gr/readme.md new file mode 100644 index 0000000000..f6fb2b8f61 --- /dev/null +++ b/keyboards/cannonkeys/is0gr/readme.md @@ -0,0 +1,24 @@ +# Alchemist Keyboards is0GR + +is0GR Keyboard + +Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +Hardware Supported: STM32F072CBT6 or equivalent + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/is0gr:default + +Flashing example for this keyboard: + + make cannonkeys/is0gr:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (on this board - it's the only key) and plug in the keyboard +* **Physical reset button**: Bridge the two pads labeled "RESET" on the top of the PCB using some tweezers, and hold the tweezers there until the board enters the bootloader mode +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available (it isn't by default) diff --git a/keyboards/cannonkeys/is0gr/rules.mk b/keyboards/cannonkeys/is0gr/rules.mk new file mode 100644 index 0000000000..0ab54aaaf7 --- /dev/null +++ b/keyboards/cannonkeys/is0gr/rules.mk @@ -0,0 +1,2 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF From 4d994458f02482a659e0f7580576c92e950321d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20B=C3=BCchler?= Date: Mon, 25 Sep 2023 05:00:13 +0200 Subject: [PATCH 170/496] Document the RP2040-specific PS/2 implementation (#22079) Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com> --- docs/feature_ps2_mouse.md | 23 +++++++++++++++++++ .../drivers/vendor/RP/RP2040/ps2_vendor.c | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/docs/feature_ps2_mouse.md b/docs/feature_ps2_mouse.md index e714d9b867..766fd6fe78 100644 --- a/docs/feature_ps2_mouse.md +++ b/docs/feature_ps2_mouse.md @@ -155,6 +155,29 @@ In your keyboard config.h: #endif ``` +### RP2040 PIO Version :id=rp2040-pio-version + +The `PIO` subsystem is a Raspberry Pi RP2040 specific implementation, using the integrated PIO peripheral and is therefore only available on this MCU. + +There are strict requirements for pin ordering but any pair of GPIO pins can be used. The GPIO used for clock must be directly after data, see the included info.json snippet for an example of correct order. + +You may optionally switch the PIO peripheral used with the following define in config.h: +```c +#define PS2_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the PS2 implementation uses the PIO0 peripheral +``` + +Example info.json content: + +```json + "ps2": { + "clock_pin": "GP1", + "data_pin": "GP0", + "driver": "vendor", + "enabled": true, + "mouse_enabled": true + } +``` + ## Additional Settings :id=additional-settings ### PS/2 Mouse Features :id=ps2-mouse-features diff --git a/platforms/chibios/drivers/vendor/RP/RP2040/ps2_vendor.c b/platforms/chibios/drivers/vendor/RP/RP2040/ps2_vendor.c index 119c6354b0..1c61f196bd 100644 --- a/platforms/chibios/drivers/vendor/RP/RP2040/ps2_vendor.c +++ b/platforms/chibios/drivers/vendor/RP/RP2040/ps2_vendor.c @@ -22,7 +22,7 @@ #endif #if PS2_DATA_PIN + 1 != PS2_CLOCK_PIN -# error PS/2 Clock pin must be followed by data pin! +# error PS/2 clock pin must be data pin + 1! #endif static inline void pio_serve_interrupt(void); From 0c4bd1ccdce12e9207054e398c00257d1198a651 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Sep 2023 13:00:34 +1000 Subject: [PATCH 171/496] Bump tj-actions/changed-files from 38 to 39 (#21923) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/format.yml | 2 +- .github/workflows/lint.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index 11b4a8a9f4..9e8b80c883 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -35,7 +35,7 @@ jobs: - name: Get changed files id: file_changes - uses: tj-actions/changed-files@v38 + uses: tj-actions/changed-files@v39 - name: Run qmk formatters shell: 'bash {0}' diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index e0286b83fc..9862ff502c 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -27,7 +27,7 @@ jobs: - name: Get changed files id: file_changes - uses: tj-actions/changed-files@v38 + uses: tj-actions/changed-files@v39 - name: Print info run: | From 6b671f93c6dfcf4967592a6292ff0fe397d5c210 Mon Sep 17 00:00:00 2001 From: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Date: Sun, 24 Sep 2023 23:02:08 -0400 Subject: [PATCH 172/496] feat(eyeohdesigns/babyv): rgb matrix (#22105) --- keyboards/eyeohdesigns/babyv/info.json | 42 ++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/keyboards/eyeohdesigns/babyv/info.json b/keyboards/eyeohdesigns/babyv/info.json index 453cdf2c81..14f52889ba 100644 --- a/keyboards/eyeohdesigns/babyv/info.json +++ b/keyboards/eyeohdesigns/babyv/info.json @@ -34,6 +34,48 @@ "twinkle": true } }, + "rgb_matrix": { + "driver": "ws2812", + "animations": { + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_pinwheel": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_rain": true, + "pixel_flow": true + }, + "layout": [ + {"x": 123, "y": 74, "flags": 2}, + {"x": 188, "y": 67, "flags": 2}, + {"x": 206, "y": 62, "flags": 2}, + {"x": 206, "y": 0, "flags": 2}, + {"x": 175, "y": 0, "flags": 2}, + {"x": 141, "y": 0, "flags": 2}, + {"x": 83, "y": 0, "flags": 2}, + {"x": 65, "y": 0, "flags": 2}, + {"x": 18, "y": 0, "flags": 2}, + {"x": 18, "y": 62, "flags": 2}, + {"x": 40, "y": 67, "flags": 2}, + {"x": 99, "y": 74, "flags": 2} + ], + "sat_steps": 8, + "val_steps": 8, + "led_count": 12, + "center_point": [112, 38] + }, "ws2812": { "pin": "B7" }, From a4760c4d1b03e1006eb62ca72ecc22e0e6ea44bb Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 25 Sep 2023 04:04:38 +0100 Subject: [PATCH 173/496] Remove duplicated rgblight implementation from mxss (#22122) --- keyboards/mxss/config.h | 3 - keyboards/mxss/info.json | 9 + keyboards/mxss/keymaps/default/keymap.c | 17 +- keyboards/mxss/keymaps/via/keymap.c | 3 +- keyboards/mxss/mxss.c | 73 -- keyboards/mxss/mxss_frontled.c | 278 ----- keyboards/mxss/mxss_frontled.h | 87 -- keyboards/mxss/readme.md | 34 +- keyboards/mxss/rgblight.c | 1392 ----------------------- keyboards/mxss/rules.mk | 23 +- keyboards/mxss/templates/keymap.c | 35 - 11 files changed, 22 insertions(+), 1932 deletions(-) delete mode 100644 keyboards/mxss/mxss.c delete mode 100644 keyboards/mxss/mxss_frontled.c delete mode 100644 keyboards/mxss/mxss_frontled.h delete mode 100644 keyboards/mxss/rgblight.c delete mode 100644 keyboards/mxss/templates/keymap.c diff --git a/keyboards/mxss/config.h b/keyboards/mxss/config.h index bfa2338678..704da3911a 100644 --- a/keyboards/mxss/config.h +++ b/keyboards/mxss/config.h @@ -21,6 +21,3 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -// FLED config takes up 1 byte, stored color count takes 1, stored colors take up to 8 -#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 10 diff --git a/keyboards/mxss/info.json b/keyboards/mxss/info.json index 7b24c46717..0846157457 100644 --- a/keyboards/mxss/info.json +++ b/keyboards/mxss/info.json @@ -8,6 +8,15 @@ "pid": "0x5353", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": false, + "rgblight": true + }, "rgblight": { "saturation_steps": 8, "brightness_steps": 8, diff --git a/keyboards/mxss/keymaps/default/keymap.c b/keyboards/mxss/keymaps/default/keymap.c index 06e73f4688..8f7c2bd2a5 100644 --- a/keyboards/mxss/keymaps/default/keymap.c +++ b/keyboards/mxss/keymaps/default/keymap.c @@ -14,21 +14,6 @@ * along with this program. If not, see . */ #include QMK_KEYBOARD_H -#include "mxss_frontled.h" - -hs_set caps_color = { .hue = 0, .sat = 255 }; - -// Colors for layers -// Format: {hue, saturation} -// {0, 0} to turn off the LED -// Add additional rows to handle more layers -hs_set layer_colors[4] = { - [0] = {.hue = 0, .sat = 0}, // Color for Layer 0 - [1] = {.hue = 86, .sat = 255}, // Color for Layer 1 - [2] = {.hue = 36, .sat = 255}, // Color for Layer 2 - [3] = {.hue = 185, .sat = 255}, // Color for Layer 3 -}; -size_t lc_size = ARRAY_SIZE(layer_colors); const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( /* Base */ @@ -41,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( /* L1 */ 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_DEL, - KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PSCR, FLED_VAD, FLED_VAI, FLED_MOD, RGB_VAI, + KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RGB_MOD, RGB_SAI, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI diff --git a/keyboards/mxss/keymaps/via/keymap.c b/keyboards/mxss/keymaps/via/keymap.c index 3591f4d3f9..a9ce5f5bd1 100644 --- a/keyboards/mxss/keymaps/via/keymap.c +++ b/keyboards/mxss/keymaps/via/keymap.c @@ -14,7 +14,6 @@ * along with this program. If not, see . */ #include QMK_KEYBOARD_H -#include "mxss_frontled.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT_all( /* L0 */ @@ -26,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), LAYOUT_all( /* L1 */ 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_TRNS, - KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PSCR, FLED_VAD, FLED_VAI, FLED_MOD, RGB_VAI, + KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RGB_MOD, RGB_SAI, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI diff --git a/keyboards/mxss/mxss.c b/keyboards/mxss/mxss.c deleted file mode 100644 index 021eb1de4e..0000000000 --- a/keyboards/mxss/mxss.c +++ /dev/null @@ -1,73 +0,0 @@ -/* Copyright 2020 Jumail Mundekkat / MxBlue - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * EEPROM management code from ../cannonkeys/stm32f072/keyboard.c - */ - -#include "quantum.h" -#include "eeprom.h" -#include "mxss_frontled.h" -#include "version.h" // for QMK_BUILDDATE used in EEPROM magic - -void via_init_kb(void) { - fled_init(); -} - -void matrix_init_kb(void) { - // If VIA is disabled, we still need to load settings - // Call via_init_kb() the same way as via_init(), with setting - // EEPROM valid afterwards. -#ifndef VIA_ENABLE - fled_init(); - via_eeprom_set_valid(true); -#endif // VIA_ENABLE - - matrix_init_user(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // Handle custom keycodes for front LED operation - process_record_fled(keycode, record); - return process_record_user(keycode, record); -} - -bool led_update_kb(led_t led_state) { - fled_lock_update(led_state); - return led_update_user(led_state); -} - -layer_state_t layer_state_set_kb(layer_state_t state) { - fled_layer_update(state); - return layer_state_set_user(state); -} - -// Fallback eeprom functions if VIA is not enabled -#ifndef VIA_ENABLE - -// Sets VIA/keyboard level usage of EEPROM to valid/invalid -// Keyboard level code (eg. via_init_kb()) should not call this -void via_eeprom_set_valid(bool valid) -{ - char *p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54" - uint8_t magic0 = ( ( p[2] & 0x0F ) << 4 ) | ( p[3] & 0x0F ); - uint8_t magic1 = ( ( p[5] & 0x0F ) << 4 ) | ( p[6] & 0x0F ); - uint8_t magic2 = ( ( p[8] & 0x0F ) << 4 ) | ( p[9] & 0x0F ); - - eeprom_update_byte( (void*)VIA_EEPROM_MAGIC_ADDR+0, valid ? magic0 : 0xFF); - eeprom_update_byte( (void*)VIA_EEPROM_MAGIC_ADDR+1, valid ? magic1 : 0xFF); - eeprom_update_byte( (void*)VIA_EEPROM_MAGIC_ADDR+2, valid ? magic2 : 0xFF); -} - -#endif diff --git a/keyboards/mxss/mxss_frontled.c b/keyboards/mxss/mxss_frontled.c deleted file mode 100644 index 11c942c959..0000000000 --- a/keyboards/mxss/mxss_frontled.c +++ /dev/null @@ -1,278 +0,0 @@ -/* Copyright 2020 Jumail Mundekkat / MxBlue - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Extended from the work done by fcoury: https://github.com/qmk/qmk_firmware/pull/4915 - */ - -#include "mxss_frontled.h" -#include "eeprom.h" -#include "rgblight.h" -#include "via.h" -#include "version.h" // for QMK_BUILDDATE used in EEPROM magic - -// Variables for controlling front LED application -uint8_t fled_mode; // Mode for front LEDs -uint8_t fled_val; // Brightness for front leds (0 - 255) -rgb_led_t fleds[2]; // Front LED rgb values for indicator mode use - -// Layer indicator colors -__attribute__ ((weak)) -hs_set layer_colors[FRONTLED_COLOR_MAXCNT]; - -// Caps lock indicator color -__attribute__ ((weak)) -hs_set caps_color; - -__attribute__ ((weak)) -size_t lc_size = ARRAY_SIZE(layer_colors); - -void fled_init(void) { - // This checks both an EEPROM reset (from bootmagic lite, keycodes) - // and also firmware build date (from via_eeprom_is_valid()) - if (eeconfig_is_enabled()) { - fled_load_conf(); - // Else, default config - } else { - // Default mode/brightness - fled_mode = FLED_RGB; - fled_val = 10 * FLED_VAL_STEP; - - // Default colors - caps_color.hue = 0; - caps_color.sat = 255; - layer_colors[0].hue = 0; - layer_colors[0].sat = 0; - layer_colors[1].hue = 86; - layer_colors[1].sat = 255; - layer_colors[2].hue = 36; - layer_colors[2].sat = 255; - layer_colors[3].hue = 185; - layer_colors[3].sat = 255; - - fled_update_conf(); // Store default config to EEPROM - } - - // Set default values for leds - setrgb(0, 0, 0, &fleds[0]); - setrgb(0, 0, 0, &fleds[1]); - - // Handle lighting for indicator mode - if (fled_mode == FLED_INDI) { - fled_lock_update(host_keyboard_led_state()); - fled_layer_update(layer_state); - } -} - -void process_record_fled(uint16_t keycode, keyrecord_t *record) { - // Handle custom keycodes for front LED operation - switch (keycode) { - case FLED_MOD: // Change between front LED operation modes (off, indicator, RGB) - if (record->event.pressed) - fled_mode_cycle(); - break; - - case FLED_VAI: // Increase the brightness of the front LEDs by FLED_VAL_STEP - if (record->event.pressed) - fled_val_increase(); - break; - - case FLED_VAD: // Decrease the brightness of the front LEDs by FLED_VAL_STEP - if (record->event.pressed) - fled_val_decrease(); - break; - - default: - break; // Process all other keycodes normally - } - - return; -} - -void fled_load_conf(void) { - // Load config - fled_config fled_conf; - fled_conf.raw = eeprom_read_byte(FRONTLED_CONF_ADDR); - fled_mode = fled_conf.mode; - fled_val = fled_conf.val * FLED_VAL_STEP; - - // Load color data - uint8_t stored_cnt = eeprom_read_byte(FRONTLED_COLOR_CNT_ADDR); - uint16_t *color_ptr = FRONTLED_COLOR_ADDR; - caps_color.raw = eeprom_read_word(color_ptr); // Should always store at least 1 color - for (uint8_t i = 1; i < stored_cnt; i++) { - if (i == lc_size) // Can't load more layers than we have available - break; - layer_colors[i].raw = eeprom_read_word(&color_ptr[i]); - } - layer_colors[0].raw = 0; // hue = sat = 0 for layer 0 -} - -// Store current front led config in EEPROM -void fled_update_conf(void) -{ - // Create storage struct and set values - fled_config conf; - conf.mode = fled_mode; - - // Small hack to ensure max value is stored correctly - if (fled_val == 255) - conf.val = 256 / FLED_VAL_STEP; - else - conf.val = fled_val / FLED_VAL_STEP; - - // Store config - eeprom_update_byte(FRONTLED_CONF_ADDR, conf.raw); - - // Store color data - uint16_t *color_ptr = FRONTLED_COLOR_ADDR; - eeprom_update_word(color_ptr, caps_color.raw); - // Start from 1, layer 0 is not modifiable and therefore not persisted - uint8_t i = 1; - for (; i < lc_size; i++) { - if (i == FRONTLED_COLOR_MAXCNT) // Can't store more than the EEPROM we have available - break; - eeprom_update_word(&color_ptr[i], layer_colors[i].raw); - } - eeprom_update_byte(FRONTLED_COLOR_CNT_ADDR, i); // For safety, store the count of colors stored -} - -// Custom keycode functions - -void fled_mode_cycle(void) -{ - // FLED -> FLED_RGB -> FLED_INDI - switch (fled_mode) { - case FLED_OFF: - fled_mode = FLED_RGB; - rgblight_timer_enable(); - break; - - case FLED_RGB: - fled_mode = FLED_INDI; - break; - - case FLED_INDI: - fled_mode = FLED_OFF; - break; - } - - // Update stored config - fled_update_conf(); - rgblight_set(); -} - -void fled_val_increase(void) -{ - // Increase val by FLED_VAL_STEP, handling the upper edge case - if (fled_val + FLED_VAL_STEP > 255) - fled_val = 255; - else - fled_val += FLED_VAL_STEP; - - // Update stored config - fled_update_conf(); - - // Update and set LED state - if (fled_mode == FLED_INDI) { - fled_layer_update(layer_state); - fled_lock_update(host_keyboard_led_state()); - } else { - rgblight_set(); - } -} - -void fled_val_decrease(void) -{ - // Decrease val by FLED_VAL_STEP, handling the lower edge case - if (fled_val - FLED_VAL_STEP > 255) - fled_val = 255; - else - fled_val -= FLED_VAL_STEP; - - // Update stored config - fled_update_conf(); - - // Update and set LED state - if (fled_mode == FLED_INDI) { - fled_layer_update(layer_state); - fled_lock_update(host_keyboard_led_state()); - } else { - rgblight_set(); - } -} - -void fled_layer_update(layer_state_t state) { - // Determine and set colour of layer LED according to current layer - // if hue = sat = 0, leave LED off - uint8_t layer = get_highest_layer(state); - - if (layer < lc_size && !(layer_colors[layer].hue == 0 && layer_colors[layer].sat == 0)) { - sethsv(layer_colors[layer].hue, layer_colors[layer].sat, fled_val, &fleds[1]); - } else { - setrgb(0, 0, 0, &fleds[1]); - } -} - -void fled_lock_update(led_t led_state) { - // Set indicator LED appropriately, whether it is used or not - if (led_state.caps_lock) { - sethsv(caps_color.hue, caps_color.sat, fled_val, &fleds[0]); - } else { - setrgb(0, 0, 0, &fleds[0]); - } - - rgblight_set(); -} - -void set_fled_layer_color(uint8_t layer, hs_set hs) { - // Update layer colors and refresh LEDs - layer_colors[layer] = hs; - fled_layer_update(layer_state); - fled_update_conf(); -} - -hs_set get_fled_layer_color(uint8_t layer) { - return layer_colors[layer]; -} - -void set_fled_caps_color(hs_set hs) { - // Update caplock color and refresh LEDs - caps_color = hs; - fled_lock_update(host_keyboard_led_state()); - fled_update_conf(); -} - -hs_set get_fled_caps_color(void) { - return caps_color; -} - -// Fallback eeprom functions if VIA is not enabled -#ifndef VIA_ENABLE - -// Can be called in an overriding via_init_kb() to test if keyboard level code usage of -// EEPROM is invalid and use/save defaults. -bool via_eeprom_is_valid(void) -{ - char *p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54" - uint8_t magic0 = ( ( p[2] & 0x0F ) << 4 ) | ( p[3] & 0x0F ); - uint8_t magic1 = ( ( p[5] & 0x0F ) << 4 ) | ( p[6] & 0x0F ); - uint8_t magic2 = ( ( p[8] & 0x0F ) << 4 ) | ( p[9] & 0x0F ); - - return (eeprom_read_byte( (void*)VIA_EEPROM_MAGIC_ADDR+0 ) == magic0 && - eeprom_read_byte( (void*)VIA_EEPROM_MAGIC_ADDR+1 ) == magic1 && - eeprom_read_byte( (void*)VIA_EEPROM_MAGIC_ADDR+2 ) == magic2 ); -} - -#endif diff --git a/keyboards/mxss/mxss_frontled.h b/keyboards/mxss/mxss_frontled.h deleted file mode 100644 index c8d4199d47..0000000000 --- a/keyboards/mxss/mxss_frontled.h +++ /dev/null @@ -1,87 +0,0 @@ -/* Copyright 2020 Jumail Mundekkat / MxBlue - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -// EEPROM management code taken from Wilba6582 -// https://github.com/Wilba6582/qmk_firmware/blob/zeal60/keyboards/zeal60/zeal_eeprom.h - -#pragma once - -#include "quantum.h" -#include "quantum_keycodes.h" -#include "via.h" - -// RGBLED index for front LEDs -#define RGBLIGHT_FLED1 14 -#define RGBLIGHT_FLED2 15 - -// Brightness increase step for front LEDs -#define FLED_VAL_STEP 8 - -// Front LED settings -#define FRONTLED_CONF_ADDR ((uint8_t*) VIA_EEPROM_CUSTOM_CONFIG_ADDR) -#define FRONTLED_COLOR_CNT_ADDR (FRONTLED_CONF_ADDR + 1) -#define FRONTLED_COLOR_ADDR ((uint16_t*)(FRONTLED_COLOR_CNT_ADDR + 1)) - -// No point persisting more 4, VIA only allows editing of 3 + 1 for caps -#define FRONTLED_COLOR_MAXCNT 4 - -// Modes for front LEDs -#define FLED_OFF 0b00 -#define FLED_INDI 0b01 -#define FLED_RGB 0b10 -#define FLED_UNDEF 0b11 - -// Config storage format for EEPROM -typedef union { - uint8_t raw; - struct { - uint8_t mode :2; - uint8_t val :6; - }; -} fled_config; - -// Structure to store hue and saturation values -typedef union { - uint16_t raw; - struct { - uint8_t hue; - uint8_t sat; - }; -} hs_set; - -// Custom keycodes for front LED control -enum fled_keycodes { - FLED_MOD = QK_KB_0, // QK_KB_0 = VIA custom keycode start - FLED_VAI, - FLED_VAD, -}; - -void fled_init(void); // Run init functions for front LEDs -void process_record_fled(uint16_t keycode, keyrecord_t* record); // Process keycodes for front LEDs -void fled_load_conf(void); // Load front LED config from EEPROM -void fled_update_conf(void); // Store current front LED config to EEPROM - -void fled_mode_cycle(void); // Cycle between the 3 modes for the front LEDs -void fled_val_increase(void); // Increase the brightness of the front LEDs -void fled_val_decrease(void); // Decrease the brightness of the front LEDs - -void fled_layer_update(layer_state_t state); // Process layer update for front LEDs -void fled_lock_update(led_t led_state); // Process lock update for front LEDs - -void set_fled_layer_color(uint8_t layer, hs_set hs); // Set color for a given layer -void set_fled_caps_color(hs_set hs); // Set color for the capslock indicator -hs_set get_fled_caps_color(void); // Get color for the capslock indicator -hs_set get_fled_layer_color(uint8_t layer); // Get color for a given layer diff --git a/keyboards/mxss/readme.md b/keyboards/mxss/readme.md index 17343be526..e22fe256ed 100644 --- a/keyboards/mxss/readme.md +++ b/keyboards/mxss/readme.md @@ -2,11 +2,6 @@ ![MxSS - Polycarb 65% Kit for MX/SMK](https://i.imgur.com/WDTWcmU.jpg) -### Important Note: -**This PCB supports the VIA configurator, and this is the recommended way to configure the keymap on this keyboard. Building the firmware should only be necessary if you would like to change the colours of the front LEDs in indicator mode.** - -**For more information about the VIA configurator, [see here](https://caniusevia.com/).** - ### Information: - Case: Frosted Polycarbonate, CNC milled @@ -24,32 +19,23 @@ - RGB underglow - 1.5kg with plate and weight -Keyboard Maintainer: [MxBlue](https://github.com/mxblu) - -Hardware Supported: Custom PCB, ATMega32u4 - -Hardware Availability: https://geekhack.org/index.php?topic=94986.0 +* Keyboard Maintainer: [MxBlue](https://github.com/mxblu) +* Hardware Supported: Custom PCB, ATMega32u4 +* Hardware Availability: https://geekhack.org/index.php?topic=94986.0 Make example for this keyboard (after setting up your build environment): make mxss: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. +Flashing example for this keyboard: -# Front LED Operation + make mxss:default:flash -The MxSS PCB has 2 front RGB LEDs which has a separate brightness and mode of operation to the rest of the RGB LEDs. These are controlled through the supplied custom keycodes. +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). -There are 3 modes of operation: +## Bootloader - - FLED_OFF - Front LEDs stay off - - FLED_RGB - Front LEDs are part of the standard RGB LED modes, only works correctly with rainbow modes (will fix on request) - - FLED_INDI - Top front LED represents Caps Lock status, bottom LED represents current layer - -Colors for FLED_INDI mode are hardcoded as hue/saturation values, the caps lock color can be found in mxss_frontled.h, the layer colors are defined in keymap.c (see default/keymap.c for example). +Enter the bootloader in 2 ways: -## Custom Keycodes - - - FLED_MOD - Cycle between the 3 modes (FLED_OFF -> FLED_RGB -> FLED_INDI) - - FLED_VAI - Increase front LED brightness - - FLED_VAD - Decrease front LED brightness +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/mxss/rgblight.c b/keyboards/mxss/rgblight.c deleted file mode 100644 index 9809020a81..0000000000 --- a/keyboards/mxss/rgblight.c +++ /dev/null @@ -1,1392 +0,0 @@ -/* Copyright 2016-2017 Yang Liu - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include -#include -#include -#ifdef __AVR__ -# include -# include -#endif -#ifdef EEPROM_ENABLE -# include "eeprom.h" -#endif -#include "wait.h" -#include "progmem.h" -#include "timer.h" -#include "rgblight.h" -#include "color.h" -#include "debug.h" -#include "led_tables.h" -#include -#ifdef VELOCIKEY_ENABLE -# include "velocikey.h" -#endif -// MxSS custom -#include "mxss_frontled.h" - -#ifndef MIN -# define MIN(a, b) (((a) < (b)) ? (a) : (b)) -#endif - -#ifdef RGBLIGHT_SPLIT -/* for split keyboard */ -# define RGBLIGHT_SPLIT_SET_CHANGE_MODE rgblight_status.change_flags |= RGBLIGHT_STATUS_CHANGE_MODE -# define RGBLIGHT_SPLIT_SET_CHANGE_HSVS rgblight_status.change_flags |= RGBLIGHT_STATUS_CHANGE_HSVS -# define RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS rgblight_status.change_flags |= (RGBLIGHT_STATUS_CHANGE_MODE | RGBLIGHT_STATUS_CHANGE_HSVS) -# define RGBLIGHT_SPLIT_SET_CHANGE_LAYERS rgblight_status.change_flags |= RGBLIGHT_STATUS_CHANGE_LAYERS -# define RGBLIGHT_SPLIT_SET_CHANGE_TIMER_ENABLE rgblight_status.change_flags |= RGBLIGHT_STATUS_CHANGE_TIMER -# define RGBLIGHT_SPLIT_ANIMATION_TICK rgblight_status.change_flags |= RGBLIGHT_STATUS_ANIMATION_TICK -#else -# define RGBLIGHT_SPLIT_SET_CHANGE_MODE -# define RGBLIGHT_SPLIT_SET_CHANGE_HSVS -# define RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS -# define RGBLIGHT_SPLIT_SET_CHANGE_LAYERS -# define RGBLIGHT_SPLIT_SET_CHANGE_TIMER_ENABLE -# define RGBLIGHT_SPLIT_ANIMATION_TICK -#endif - -#define _RGBM_SINGLE_STATIC(sym) RGBLIGHT_MODE_##sym, -#define _RGBM_SINGLE_DYNAMIC(sym) -#define _RGBM_MULTI_STATIC(sym) RGBLIGHT_MODE_##sym, -#define _RGBM_MULTI_DYNAMIC(sym) -#define _RGBM_TMP_STATIC(sym, msym) RGBLIGHT_MODE_##sym, -#define _RGBM_TMP_DYNAMIC(sym, msym) -static uint8_t static_effect_table[] = { -#include "rgblight_modes.h" -}; - -#define _RGBM_SINGLE_STATIC(sym) RGBLIGHT_MODE_##sym, -#define _RGBM_SINGLE_DYNAMIC(sym) RGBLIGHT_MODE_##sym, -#define _RGBM_MULTI_STATIC(sym) RGBLIGHT_MODE_##sym, -#define _RGBM_MULTI_DYNAMIC(sym) RGBLIGHT_MODE_##sym, -#define _RGBM_TMP_STATIC(sym, msym) RGBLIGHT_MODE_##msym, -#define _RGBM_TMP_DYNAMIC(sym, msym) RGBLIGHT_MODE_##msym, -static uint8_t mode_base_table[] = { - 0, // RGBLIGHT_MODE_zero -#include "rgblight_modes.h" -}; - -static inline int is_static_effect(uint8_t mode) { return memchr(static_effect_table, mode, sizeof(static_effect_table)) != NULL; } - -#ifdef RGBLIGHT_LED_MAP -const uint8_t led_map[] PROGMEM = RGBLIGHT_LED_MAP; -#endif - -#ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT -__attribute__((weak)) const uint8_t RGBLED_GRADIENT_RANGES[] PROGMEM = {255, 170, 127, 85, 64}; -#endif - -rgblight_config_t rgblight_config; -rgblight_status_t rgblight_status = {.timer_enabled = false}; -bool is_rgblight_initialized = false; - -#ifdef RGBLIGHT_USE_TIMER -animation_status_t animation_status = {}; -#endif - -#ifndef LED_ARRAY -rgb_led_t led[RGBLED_NUM]; -# define LED_ARRAY led -#endif - -#ifdef RGBLIGHT_LAYERS -rgblight_segment_t const *const *rgblight_layers = NULL; -#endif - -rgblight_ranges_t rgblight_ranges = {0, RGBLED_NUM, 0, RGBLED_NUM, RGBLED_NUM}; - -// MxSS custom -extern uint8_t fled_mode; -extern uint8_t fled_val; -extern rgb_led_t fleds[2]; -hs_set fled_hs[2]; - -void copyrgb(rgb_led_t *src, rgb_led_t *dst) { - dst->r = src->r; - dst->g = src->g; - dst->b = src->b; -} - -void rgblight_set_clipping_range(uint8_t start_pos, uint8_t num_leds) { - rgblight_ranges.clipping_start_pos = start_pos; - rgblight_ranges.clipping_num_leds = num_leds; -} - -void rgblight_set_effect_range(uint8_t start_pos, uint8_t num_leds) { - if (start_pos >= RGBLED_NUM) return; - if (start_pos + num_leds > RGBLED_NUM) return; - rgblight_ranges.effect_start_pos = start_pos; - rgblight_ranges.effect_end_pos = start_pos + num_leds; - rgblight_ranges.effect_num_leds = num_leds; -} - -__attribute__((weak)) RGB rgblight_hsv_to_rgb(HSV hsv) { return hsv_to_rgb(hsv); } - -void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, rgb_led_t *led1) { - HSV hsv = {hue, sat, val}; - // MxSS custom - // if led is front leds, cache the hue and sat values - if (led1 == &led[RGBLIGHT_FLED1]) { - fled_hs[0].hue = hue; - fled_hs[0].sat = sat; - } else if (led1 == &led[RGBLIGHT_FLED2]) { - fled_hs[1].hue = hue; - fled_hs[1].sat = sat; - } - RGB rgb = rgblight_hsv_to_rgb(hsv); - setrgb(rgb.r, rgb.g, rgb.b, led1); -} - -void sethsv(uint8_t hue, uint8_t sat, uint8_t val, rgb_led_t *led1) { sethsv_raw(hue, sat, val > RGBLIGHT_LIMIT_VAL ? RGBLIGHT_LIMIT_VAL : val, led1); } - -void setrgb(uint8_t r, uint8_t g, uint8_t b, rgb_led_t *led1) { - led1->r = r; - led1->g = g; - led1->b = b; -#ifdef RGBW - led1->w = 0; -#endif -} - -void rgblight_check_config(void) { - /* Add some out of bound checks for RGB light config */ - - if (rgblight_config.mode < RGBLIGHT_MODE_STATIC_LIGHT) { - rgblight_config.mode = RGBLIGHT_MODE_STATIC_LIGHT; - } else if (rgblight_config.mode > RGBLIGHT_MODES) { - rgblight_config.mode = RGBLIGHT_MODES; - } - - if (rgblight_config.val > RGBLIGHT_LIMIT_VAL) { - rgblight_config.val = RGBLIGHT_LIMIT_VAL; - } -} - -uint64_t eeconfig_read_rgblight(void) { -#ifdef EEPROM_ENABLE - return (uint64_t)((eeprom_read_dword(EECONFIG_RGBLIGHT)) | ((uint64_t)eeprom_read_byte(EECONFIG_RGBLIGHT_EXTENDED) << 32)); -#else - return 0; -#endif -} - -void eeconfig_update_rgblight(uint64_t val) { -#ifdef EEPROM_ENABLE - rgblight_check_config(); - eeprom_update_dword(EECONFIG_RGBLIGHT, val & 0xFFFFFFFF); - eeprom_update_byte(EECONFIG_RGBLIGHT_EXTENDED, (val >> 32) & 0xFF); -#endif -} - -void eeconfig_update_rgblight_current(void) { eeconfig_update_rgblight(rgblight_config.raw); } - -void eeconfig_update_rgblight_default(void) { - rgblight_config.enable = 1; - rgblight_config.mode = RGBLIGHT_MODE_STATIC_LIGHT; - rgblight_config.hue = 0; - rgblight_config.sat = UINT8_MAX; - rgblight_config.val = RGBLIGHT_LIMIT_VAL; - rgblight_config.speed = 0; - RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS; - eeconfig_update_rgblight(rgblight_config.raw); -} - -void eeconfig_debug_rgblight(void) { - dprintf("rgblight_config EEPROM:\n"); - dprintf("rgblight_config.enable = %d\n", rgblight_config.enable); - dprintf("rghlight_config.mode = %d\n", rgblight_config.mode); - dprintf("rgblight_config.hue = %d\n", rgblight_config.hue); - dprintf("rgblight_config.sat = %d\n", rgblight_config.sat); - dprintf("rgblight_config.val = %d\n", rgblight_config.val); - dprintf("rgblight_config.speed = %d\n", rgblight_config.speed); -} - -void rgblight_init(void) { - /* if already initialized, don't do it again. - If you must do it again, extern this and set to false, first. - This is a dirty, dirty hack until proper hooks can be added for keyboard startup. */ - if (is_rgblight_initialized) { - return; - } - - dprintf("rgblight_init called.\n"); - dprintf("rgblight_init start!\n"); - if (!eeconfig_is_enabled()) { - dprintf("rgblight_init eeconfig is not enabled.\n"); - eeconfig_init(); - eeconfig_update_rgblight_default(); - } - rgblight_config.raw = eeconfig_read_rgblight(); - RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS; - if (!rgblight_config.mode) { - dprintf("rgblight_init rgblight_config.mode = 0. Write default values to EEPROM.\n"); - eeconfig_update_rgblight_default(); - rgblight_config.raw = eeconfig_read_rgblight(); - } - rgblight_check_config(); - - eeconfig_debug_rgblight(); // display current eeprom values - - rgblight_timer_init(); // setup the timer - - if (rgblight_config.enable) { - rgblight_mode_noeeprom(rgblight_config.mode); - } - - is_rgblight_initialized = true; -} - -uint32_t rgblight_read_dword(void) { return rgblight_config.raw; } - -void rgblight_update_dword(uint32_t dword) { - RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS; - rgblight_config.raw = dword; - if (rgblight_config.enable) - rgblight_mode_noeeprom(rgblight_config.mode); - else { - rgblight_timer_disable(); - rgblight_set(); - } -} - -void rgblight_increase(void) { - uint8_t mode = 0; - if (rgblight_config.mode < RGBLIGHT_MODES) { - mode = rgblight_config.mode + 1; - } - rgblight_mode(mode); -} -void rgblight_decrease(void) { - uint8_t mode = 0; - // Mode will never be < 1. If it ever is, eeprom needs to be initialized. - if (rgblight_config.mode > RGBLIGHT_MODE_STATIC_LIGHT) { - mode = rgblight_config.mode - 1; - } - rgblight_mode(mode); -} -void rgblight_step_helper(bool write_to_eeprom) { - uint8_t mode = 0; - mode = rgblight_config.mode + 1; - if (mode > RGBLIGHT_MODES) { - mode = 1; - } - rgblight_mode_eeprom_helper(mode, write_to_eeprom); -} -void rgblight_step_noeeprom(void) { rgblight_step_helper(false); } -void rgblight_step(void) { rgblight_step_helper(true); } -void rgblight_step_reverse_helper(bool write_to_eeprom) { - uint8_t mode = 0; - mode = rgblight_config.mode - 1; - if (mode < 1) { - mode = RGBLIGHT_MODES; - } - rgblight_mode_eeprom_helper(mode, write_to_eeprom); -} -void rgblight_step_reverse_noeeprom(void) { rgblight_step_reverse_helper(false); } -void rgblight_step_reverse(void) { rgblight_step_reverse_helper(true); } - -uint8_t rgblight_get_mode(void) { - if (!rgblight_config.enable) { - return false; - } - - return rgblight_config.mode; -} - -void rgblight_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom) { - if (!rgblight_config.enable) { - return; - } - if (mode < RGBLIGHT_MODE_STATIC_LIGHT) { - rgblight_config.mode = RGBLIGHT_MODE_STATIC_LIGHT; - } else if (mode > RGBLIGHT_MODES) { - rgblight_config.mode = RGBLIGHT_MODES; - } else { - rgblight_config.mode = mode; - } - RGBLIGHT_SPLIT_SET_CHANGE_MODE; - if (write_to_eeprom) { - eeconfig_update_rgblight(rgblight_config.raw); - dprintf("rgblight mode [EEPROM]: %u\n", rgblight_config.mode); - } else { - dprintf("rgblight mode [NOEEPROM]: %u\n", rgblight_config.mode); - } - if (is_static_effect(rgblight_config.mode)) { - rgblight_timer_disable(); - } else { - rgblight_timer_enable(); - } -#ifdef RGBLIGHT_USE_TIMER - animation_status.restart = true; -#endif - rgblight_sethsv_noeeprom(rgblight_config.hue, rgblight_config.sat, rgblight_config.val); -} - -void rgblight_mode(uint8_t mode) { rgblight_mode_eeprom_helper(mode, true); } - -void rgblight_mode_noeeprom(uint8_t mode) { rgblight_mode_eeprom_helper(mode, false); } - -void rgblight_toggle(void) { - dprintf("rgblight toggle [EEPROM]: rgblight_config.enable = %u\n", !rgblight_config.enable); - if (rgblight_config.enable) { - rgblight_disable(); - } else { - rgblight_enable(); - } -} - -void rgblight_toggle_noeeprom(void) { - dprintf("rgblight toggle [NOEEPROM]: rgblight_config.enable = %u\n", !rgblight_config.enable); - if (rgblight_config.enable) { - rgblight_disable_noeeprom(); - } else { - rgblight_enable_noeeprom(); - } -} - -void rgblight_enable(void) { - rgblight_config.enable = 1; - // No need to update EEPROM here. rgblight_mode() will do that, actually - // eeconfig_update_rgblight(rgblight_config.raw); - dprintf("rgblight enable [EEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable); - rgblight_mode(rgblight_config.mode); -} - -void rgblight_enable_noeeprom(void) { - rgblight_config.enable = 1; - dprintf("rgblight enable [NOEEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable); - rgblight_mode_noeeprom(rgblight_config.mode); -} - -void rgblight_disable(void) { - rgblight_config.enable = 0; - eeconfig_update_rgblight(rgblight_config.raw); - dprintf("rgblight disable [EEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable); - rgblight_timer_disable(); - RGBLIGHT_SPLIT_SET_CHANGE_MODE; - wait_ms(50); - rgblight_set(); -} - -void rgblight_disable_noeeprom(void) { - rgblight_config.enable = 0; - dprintf("rgblight disable [NOEEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable); - rgblight_timer_disable(); - RGBLIGHT_SPLIT_SET_CHANGE_MODE; - wait_ms(50); - rgblight_set(); -} - -bool rgblight_is_enabled(void) { return rgblight_config.enable; } - -void rgblight_increase_hue_helper(bool write_to_eeprom) { - uint8_t hue = rgblight_config.hue + RGBLIGHT_HUE_STEP; - rgblight_sethsv_eeprom_helper(hue, rgblight_config.sat, rgblight_config.val, write_to_eeprom); -} -void rgblight_increase_hue_noeeprom(void) { rgblight_increase_hue_helper(false); } -void rgblight_increase_hue(void) { rgblight_increase_hue_helper(true); } -void rgblight_decrease_hue_helper(bool write_to_eeprom) { - uint8_t hue = rgblight_config.hue - RGBLIGHT_HUE_STEP; - rgblight_sethsv_eeprom_helper(hue, rgblight_config.sat, rgblight_config.val, write_to_eeprom); -} -void rgblight_decrease_hue_noeeprom(void) { rgblight_decrease_hue_helper(false); } -void rgblight_decrease_hue(void) { rgblight_decrease_hue_helper(true); } -void rgblight_increase_sat_helper(bool write_to_eeprom) { - uint8_t sat = qadd8(rgblight_config.sat, RGBLIGHT_SAT_STEP); - rgblight_sethsv_eeprom_helper(rgblight_config.hue, sat, rgblight_config.val, write_to_eeprom); -} -void rgblight_increase_sat_noeeprom(void) { rgblight_increase_sat_helper(false); } -void rgblight_increase_sat(void) { rgblight_increase_sat_helper(true); } -void rgblight_decrease_sat_helper(bool write_to_eeprom) { - uint8_t sat = qsub8(rgblight_config.sat, RGBLIGHT_SAT_STEP); - rgblight_sethsv_eeprom_helper(rgblight_config.hue, sat, rgblight_config.val, write_to_eeprom); -} -void rgblight_decrease_sat_noeeprom(void) { rgblight_decrease_sat_helper(false); } -void rgblight_decrease_sat(void) { rgblight_decrease_sat_helper(true); } -void rgblight_increase_val_helper(bool write_to_eeprom) { - uint8_t val = qadd8(rgblight_config.val, RGBLIGHT_VAL_STEP); - rgblight_sethsv_eeprom_helper(rgblight_config.hue, rgblight_config.sat, val, write_to_eeprom); -} -void rgblight_increase_val_noeeprom(void) { rgblight_increase_val_helper(false); } -void rgblight_increase_val(void) { rgblight_increase_val_helper(true); } -void rgblight_decrease_val_helper(bool write_to_eeprom) { - uint8_t val = qsub8(rgblight_config.val, RGBLIGHT_VAL_STEP); - rgblight_sethsv_eeprom_helper(rgblight_config.hue, rgblight_config.sat, val, write_to_eeprom); -} -void rgblight_decrease_val_noeeprom(void) { rgblight_decrease_val_helper(false); } -void rgblight_decrease_val(void) { rgblight_decrease_val_helper(true); } - -void rgblight_increase_speed_helper(bool write_to_eeprom) { - if (rgblight_config.speed < 3) rgblight_config.speed++; - // RGBLIGHT_SPLIT_SET_CHANGE_HSVS; // NEED? - if (write_to_eeprom) { - eeconfig_update_rgblight(rgblight_config.raw); // EECONFIG needs to be increased to support this - } -} -void rgblight_increase_speed(void) { rgblight_increase_speed_helper(true); } -void rgblight_increase_speed_noeeprom(void) { rgblight_increase_speed_helper(false); } -void rgblight_decrease_speed_helper(bool write_to_eeprom) { - if (rgblight_config.speed > 0) rgblight_config.speed--; - // RGBLIGHT_SPLIT_SET_CHANGE_HSVS; // NEED?? - if (write_to_eeprom) { - eeconfig_update_rgblight(rgblight_config.raw); // EECONFIG needs to be increased to support this - } -} -void rgblight_decrease_speed(void) { rgblight_decrease_speed_helper(true); } -void rgblight_decrease_speed_noeeprom(void) { rgblight_decrease_speed_helper(false); } - -void rgblight_sethsv_noeeprom_old(uint8_t hue, uint8_t sat, uint8_t val) { - if (rgblight_config.enable) { - // MxSS custom code - fled_hs[0].hue = fled_hs[1].hue = hue; - fled_hs[0].sat = fled_hs[1].sat = sat; - - rgb_led_t tmp_led; - sethsv(hue, sat, val, &tmp_led); - rgblight_setrgb(tmp_led.r, tmp_led.g, tmp_led.b); - } -} - -void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool write_to_eeprom) { - if (rgblight_config.enable) { - rgblight_status.base_mode = mode_base_table[rgblight_config.mode]; - if (rgblight_config.mode == RGBLIGHT_MODE_STATIC_LIGHT) { - // same static color - rgb_led_t tmp_led; - sethsv(hue, sat, val, &tmp_led); - - // MxSS custom - // Cache hue/sat for rgb - fled_hs[0].hue = fled_hs[1].hue = hue; - fled_hs[0].sat = fled_hs[1].sat = sat; - - rgblight_setrgb(tmp_led.r, tmp_led.g, tmp_led.b); - } else { - // all LEDs in same color - if (1 == 0) { // dummy - } -#ifdef RGBLIGHT_EFFECT_BREATHING - else if (rgblight_status.base_mode == RGBLIGHT_MODE_BREATHING) { - // breathing mode, ignore the change of val, use in memory value instead - val = rgblight_config.val; - } -#endif -#ifdef RGBLIGHT_EFFECT_RAINBOW_MOOD - else if (rgblight_status.base_mode == RGBLIGHT_MODE_RAINBOW_MOOD) { - // rainbow mood, ignore the change of hue - hue = rgblight_config.hue; - } -#endif -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - else if (rgblight_status.base_mode == RGBLIGHT_MODE_RAINBOW_SWIRL) { - // rainbow swirl, ignore the change of hue - hue = rgblight_config.hue; - } -#endif -#ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT - else if (rgblight_status.base_mode == RGBLIGHT_MODE_STATIC_GRADIENT) { - // static gradient - uint8_t delta = rgblight_config.mode - rgblight_status.base_mode; - bool direction = (delta % 2) == 0; -# ifdef __AVR__ - // probably due to how pgm_read_word is defined for ARM, but the ARM compiler really hates this line - uint8_t range = pgm_read_word(&RGBLED_GRADIENT_RANGES[delta / 2]); -# else - uint8_t range = RGBLED_GRADIENT_RANGES[delta / 2]; -# endif - for (uint8_t i = 0; i < rgblight_ranges.effect_num_leds; i++) { - uint8_t _hue = ((uint16_t)i * (uint16_t)range) / rgblight_ranges.effect_num_leds; - if (direction) { - _hue = hue + _hue; - } else { - _hue = hue - _hue; - } - dprintf("rgblight rainbow set hsv: %d,%d,%d,%u\n", i, _hue, direction, range); - sethsv(_hue, sat, val, (rgb_led_t *)&led[i + rgblight_ranges.effect_start_pos]); - } - rgblight_set(); - } -#endif - } -#ifdef RGBLIGHT_SPLIT - if (rgblight_config.hue != hue || rgblight_config.sat != sat || rgblight_config.val != val) { - RGBLIGHT_SPLIT_SET_CHANGE_HSVS; - } -#endif - rgblight_config.hue = hue; - rgblight_config.sat = sat; - rgblight_config.val = val; - if (write_to_eeprom) { - eeconfig_update_rgblight(rgblight_config.raw); - dprintf("rgblight set hsv [EEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val); - } else { - dprintf("rgblight set hsv [NOEEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val); - } - } -} - -void rgblight_sethsv(uint8_t hue, uint8_t sat, uint8_t val) { rgblight_sethsv_eeprom_helper(hue, sat, val, true); } - -void rgblight_sethsv_noeeprom(uint8_t hue, uint8_t sat, uint8_t val) { rgblight_sethsv_eeprom_helper(hue, sat, val, false); } - -uint8_t rgblight_get_speed(void) { return rgblight_config.speed; } - -void rgblight_set_speed_eeprom_helper(uint8_t speed, bool write_to_eeprom) { - rgblight_config.speed = speed; - if (write_to_eeprom) { - eeconfig_update_rgblight(rgblight_config.raw); // EECONFIG needs to be increased to support this - dprintf("rgblight set speed [EEPROM]: %u\n", rgblight_config.speed); - } else { - dprintf("rgblight set speed [NOEEPROM]: %u\n", rgblight_config.speed); - } -} - -void rgblight_set_speed(uint8_t speed) { rgblight_set_speed_eeprom_helper(speed, true); } - -void rgblight_set_speed_noeeprom(uint8_t speed) { rgblight_set_speed_eeprom_helper(speed, false); } - -uint8_t rgblight_get_hue(void) { return rgblight_config.hue; } - -uint8_t rgblight_get_sat(void) { return rgblight_config.sat; } - -uint8_t rgblight_get_val(void) { return rgblight_config.val; } - -HSV rgblight_get_hsv(void) { return (HSV){rgblight_config.hue, rgblight_config.sat, rgblight_config.val}; } - -void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b) { - if (!rgblight_config.enable) { - return; - } - - for (uint8_t i = rgblight_ranges.effect_start_pos; i < rgblight_ranges.effect_end_pos; i++) { - led[i].r = r; - led[i].g = g; - led[i].b = b; -#ifdef RGBW - led[i].w = 0; -#endif - } - rgblight_set(); -} - -void rgblight_setrgb_at(uint8_t r, uint8_t g, uint8_t b, uint8_t index) { - if (!rgblight_config.enable || index >= RGBLED_NUM) { - return; - } - - led[index].r = r; - led[index].g = g; - led[index].b = b; -#ifdef RGBW - led[index].w = 0; -#endif - rgblight_set(); -} - -void rgblight_sethsv_at(uint8_t hue, uint8_t sat, uint8_t val, uint8_t index) { - if (!rgblight_config.enable) { - return; - } - - rgb_led_t tmp_led; - sethsv(hue, sat, val, &tmp_led); - rgblight_setrgb_at(tmp_led.r, tmp_led.g, tmp_led.b, index); -} - -#if defined(RGBLIGHT_EFFECT_BREATHING) || defined(RGBLIGHT_EFFECT_RAINBOW_MOOD) || defined(RGBLIGHT_EFFECT_RAINBOW_SWIRL) || defined(RGBLIGHT_EFFECT_SNAKE) || defined(RGBLIGHT_EFFECT_KNIGHT) || defined(RGBLIGHT_EFFECT_TWINKLE) - -static uint8_t get_interval_time(const uint8_t *default_interval_address, uint8_t velocikey_min, uint8_t velocikey_max) { - return -# ifdef VELOCIKEY_ENABLE - velocikey_enabled() ? velocikey_match_speed(velocikey_min, velocikey_max) : -# endif - pgm_read_byte(default_interval_address); -} - -#endif - -void rgblight_setrgb_range(uint8_t r, uint8_t g, uint8_t b, uint8_t start, uint8_t end) { - if (!rgblight_config.enable || start < 0 || start >= end || end > RGBLED_NUM) { - return; - } - - for (uint8_t i = start; i < end; i++) { - led[i].r = r; - led[i].g = g; - led[i].b = b; -#ifdef RGBW - led[i].w = 0; -#endif - } - rgblight_set(); - wait_ms(1); -} - -void rgblight_sethsv_range(uint8_t hue, uint8_t sat, uint8_t val, uint8_t start, uint8_t end) { - if (!rgblight_config.enable) { - return; - } - - rgb_led_t tmp_led; - sethsv(hue, sat, val, &tmp_led); - rgblight_setrgb_range(tmp_led.r, tmp_led.g, tmp_led.b, start, end); -} - -#ifndef RGBLIGHT_SPLIT -void rgblight_setrgb_master(uint8_t r, uint8_t g, uint8_t b) { rgblight_setrgb_range(r, g, b, 0, (uint8_t)RGBLED_NUM / 2); } - -void rgblight_setrgb_slave(uint8_t r, uint8_t g, uint8_t b) { rgblight_setrgb_range(r, g, b, (uint8_t)RGBLED_NUM / 2, (uint8_t)RGBLED_NUM); } - -void rgblight_sethsv_master(uint8_t hue, uint8_t sat, uint8_t val) { rgblight_sethsv_range(hue, sat, val, 0, (uint8_t)RGBLED_NUM / 2); } - -void rgblight_sethsv_slave(uint8_t hue, uint8_t sat, uint8_t val) { rgblight_sethsv_range(hue, sat, val, (uint8_t)RGBLED_NUM / 2, (uint8_t)RGBLED_NUM); } -#endif // ifndef RGBLIGHT_SPLIT - -#ifdef RGBLIGHT_LAYERS -void rgblight_set_layer_state(uint8_t layer, bool enabled) { - rgblight_layer_mask_t mask = 1 << layer; - if (enabled) { - rgblight_status.enabled_layer_mask |= mask; - } else { - rgblight_status.enabled_layer_mask &= ~mask; - } - RGBLIGHT_SPLIT_SET_CHANGE_LAYERS; - // Static modes don't have a ticker running to update the LEDs - if (rgblight_status.timer_enabled == false) { - rgblight_mode_noeeprom(rgblight_config.mode); - } - -# ifdef RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF - // If not enabled, then nothing else will actually set the LEDs... - if (!rgblight_config.enable) { - rgblight_set(); - } -# endif -} - -bool rgblight_get_layer_state(uint8_t layer) { - rgblight_layer_mask_t mask = 1 << layer; - return (rgblight_status.enabled_layer_mask & mask) != 0; -} - -// Write any enabled LED layers into the buffer -static void rgblight_layers_write(void) { - uint8_t i = 0; - // For each layer - for (const rgblight_segment_t *const *layer_ptr = rgblight_layers; i < RGBLIGHT_MAX_LAYERS; layer_ptr++, i++) { - if (!rgblight_get_layer_state(i)) { - continue; // Layer is disabled - } - const rgblight_segment_t *segment_ptr = pgm_read_ptr(layer_ptr); - if (segment_ptr == NULL) { - break; // No more layers - } - // For each segment - while (1) { - rgblight_segment_t segment; - memcpy_P(&segment, segment_ptr, sizeof(rgblight_segment_t)); - if (segment.index == RGBLIGHT_END_SEGMENT_INDEX) { - break; // No more segments - } - // Write segment.count LEDs - rgb_led_t *const limit = &led[MIN(segment.index + segment.count, RGBLED_NUM)]; - for (rgb_led_t *led_ptr = &led[segment.index]; led_ptr < limit; led_ptr++) { - sethsv(segment.hue, segment.sat, segment.val, led_ptr); - } - segment_ptr++; - } - } -} - -# ifdef RGBLIGHT_LAYER_BLINK -rgblight_layer_mask_t _blinked_layer_mask = 0; -uint16_t _blink_duration = 0; -static uint16_t _blink_timer; - -void rgblight_blink_layer(uint8_t layer, uint16_t duration_ms) { - rgblight_set_layer_state(layer, true); - _blinked_layer_mask |= 1 << layer; - _blink_timer = timer_read(); - _blink_duration = duration_ms; -} - -void rgblight_unblink_layers(void) { - if (_blinked_layer_mask != 0 && timer_elapsed(_blink_timer) > _blink_duration) { - for (uint8_t layer = 0; layer < RGBLIGHT_MAX_LAYERS; layer++) { - if ((_blinked_layer_mask & 1 << layer) != 0) { - rgblight_set_layer_state(layer, false); - } - } - _blinked_layer_mask = 0; - } -} -# endif - -#endif - -__attribute__((weak)) void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds) { ws2812_setleds(start_led, num_leds); } - -#ifndef RGBLIGHT_CUSTOM -void rgblight_set(void) { - rgb_led_t *start_led; - uint8_t num_leds = rgblight_ranges.clipping_num_leds; - - if (!rgblight_config.enable) { - for (uint8_t i = rgblight_ranges.effect_start_pos; i < rgblight_ranges.effect_end_pos; i++) { - if (i == RGBLIGHT_FLED1 && i == RGBLIGHT_FLED2) - continue; - - led[i].r = 0; - led[i].g = 0; - led[i].b = 0; -# ifdef RGBW - led[i].w = 0; -# endif - } - } - -# ifdef RGBLIGHT_LAYERS - if (rgblight_layers != NULL -# ifndef RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF - && rgblight_config.enable -# endif - ) { - rgblight_layers_write(); - } -# endif - -# ifdef RGBLIGHT_LED_MAP - rgb_led_t led0[RGBLED_NUM]; - for (uint8_t i = 0; i < RGBLED_NUM; i++) { - led0[i] = led[pgm_read_byte(&led_map[i])]; - } - start_led = led0 + rgblight_ranges.clipping_start_pos; -# else - start_led = led + rgblight_ranges.clipping_start_pos; -# endif - -# ifdef RGBW - for (uint8_t i = 0; i < num_leds; i++) { - convert_rgb_to_rgbw(&start_led[i]); - } -# endif - // MxSS custom - switch (fled_mode) { - case FLED_OFF: - setrgb(0, 0, 0, &led[RGBLIGHT_FLED1]); - setrgb(0, 0, 0, &led[RGBLIGHT_FLED2]); - break; - - case FLED_INDI: - copyrgb(&fleds[0], &led[RGBLIGHT_FLED1]); - copyrgb(&fleds[1], &led[RGBLIGHT_FLED2]); - break; - - case FLED_RGB: - if (fled_hs[0].hue == 0 && fled_hs[0].hue == 0 && - (rgblight_status.base_mode == RGBLIGHT_MODE_SNAKE || - rgblight_status.base_mode == RGBLIGHT_MODE_KNIGHT)) - setrgb(0, 0, 0, &led[RGBLIGHT_FLED1]); - else - sethsv(fled_hs[0].hue, fled_hs[0].sat, fled_val, &led[RGBLIGHT_FLED1]); - - if (fled_hs[1].hue == 0 && fled_hs[1].hue == 0 && - (rgblight_status.base_mode == RGBLIGHT_MODE_SNAKE || - rgblight_status.base_mode == RGBLIGHT_MODE_KNIGHT)) - setrgb(0, 0, 0, &led[RGBLIGHT_FLED2]); - else - sethsv(fled_hs[1].hue, fled_hs[1].sat, fled_val, &led[RGBLIGHT_FLED2]); - break; - default: - break; - } - - rgblight_call_driver(start_led, num_leds); -} -#endif - -#ifdef RGBLIGHT_SPLIT -/* for split keyboard master side */ -uint8_t rgblight_get_change_flags(void) { return rgblight_status.change_flags; } - -void rgblight_clear_change_flags(void) { rgblight_status.change_flags = 0; } - -void rgblight_get_syncinfo(rgblight_syncinfo_t *syncinfo) { - syncinfo->config = rgblight_config; - syncinfo->status = rgblight_status; -} - -/* for split keyboard slave side */ -void rgblight_update_sync(rgblight_syncinfo_t *syncinfo, bool write_to_eeprom) { -# ifdef RGBLIGHT_LAYERS - if (syncinfo->status.change_flags & RGBLIGHT_STATUS_CHANGE_LAYERS) { - rgblight_status.enabled_layer_mask = syncinfo->status.enabled_layer_mask; - } -# endif - if (syncinfo->status.change_flags & RGBLIGHT_STATUS_CHANGE_MODE) { - if (syncinfo->config.enable) { - rgblight_config.enable = 1; // == rgblight_enable_noeeprom(); - rgblight_mode_eeprom_helper(syncinfo->config.mode, write_to_eeprom); - } else { - rgblight_disable_noeeprom(); - } - } - if (syncinfo->status.change_flags & RGBLIGHT_STATUS_CHANGE_HSVS) { - rgblight_sethsv_eeprom_helper(syncinfo->config.hue, syncinfo->config.sat, syncinfo->config.val, write_to_eeprom); - // rgblight_config.speed = config->speed; // NEED??? - } -# ifdef RGBLIGHT_USE_TIMER - if (syncinfo->status.change_flags & RGBLIGHT_STATUS_CHANGE_TIMER) { - if (syncinfo->status.timer_enabled) { - rgblight_timer_enable(); - } else { - rgblight_timer_disable(); - } - } -# ifndef RGBLIGHT_SPLIT_NO_ANIMATION_SYNC - if (syncinfo->status.change_flags & RGBLIGHT_STATUS_ANIMATION_TICK) { - animation_status.restart = true; - } -# endif /* RGBLIGHT_SPLIT_NO_ANIMATION_SYNC */ -# endif /* RGBLIGHT_USE_TIMER */ -} -#endif /* RGBLIGHT_SPLIT */ - -#ifdef RGBLIGHT_USE_TIMER - -typedef void (*effect_func_t)(animation_status_t *anim); - -// Animation timer -- use system timer (AVR Timer0) -void rgblight_timer_init(void) { - // OLD!!!! Animation timer -- AVR Timer3 - // static uint8_t rgblight_timer_is_init = 0; - // if (rgblight_timer_is_init) { - // return; - // } - // rgblight_timer_is_init = 1; - // /* Timer 3 setup */ - // TCCR3B = _BV(WGM32) // CTC mode OCR3A as TOP - // | _BV(CS30); // Clock selelct: clk/1 - // /* Set TOP value */ - // uint8_t sreg = SREG; - // cli(); - // OCR3AH = (RGBLED_TIMER_TOP >> 8) & 0xff; - // OCR3AL = RGBLED_TIMER_TOP & 0xff; - // SREG = sreg; - - rgblight_status.timer_enabled = false; - RGBLIGHT_SPLIT_SET_CHANGE_TIMER_ENABLE; -} -void rgblight_timer_enable(void) { - if (!is_static_effect(rgblight_config.mode)) { - rgblight_status.timer_enabled = true; - } - animation_status.last_timer = timer_read(); - RGBLIGHT_SPLIT_SET_CHANGE_TIMER_ENABLE; - dprintf("rgblight timer enabled.\n"); -} -void rgblight_timer_disable(void) { - // MxSS custom code - if (fled_mode != FLED_RGB) { - rgblight_status.timer_enabled = false; - RGBLIGHT_SPLIT_SET_CHANGE_TIMER_ENABLE; - dprintf("rgblight timer disable.\n"); - } -} -void rgblight_timer_toggle(void) { - dprintf("rgblight timer toggle.\n"); - if (rgblight_status.timer_enabled) { - rgblight_timer_disable(); - } else { - rgblight_timer_enable(); - } -} - -void rgblight_show_solid_color(uint8_t r, uint8_t g, uint8_t b) { - rgblight_enable(); - rgblight_mode(RGBLIGHT_MODE_STATIC_LIGHT); - rgblight_setrgb(r, g, b); -} - -static void rgblight_effect_dummy(animation_status_t *anim) { - // do nothing - /******** - dprintf("rgblight_task() what happened?\n"); - dprintf("is_static_effect %d\n", is_static_effect(rgblight_config.mode)); - dprintf("mode = %d, base_mode = %d, timer_enabled %d, ", - rgblight_config.mode, rgblight_status.base_mode, - rgblight_status.timer_enabled); - dprintf("last_timer = %d\n",anim->last_timer); - **/ -} - -void rgblight_task(void) { - if (rgblight_status.timer_enabled) { - effect_func_t effect_func = rgblight_effect_dummy; - uint16_t interval_time = 2000; // dummy interval - uint8_t delta = rgblight_config.mode - rgblight_status.base_mode; - animation_status.delta = delta; - - // static light mode, do nothing here - if (1 == 0) { // dummy - } -# ifdef RGBLIGHT_EFFECT_BREATHING - else if (rgblight_status.base_mode == RGBLIGHT_MODE_BREATHING) { - // breathing mode - interval_time = get_interval_time(&RGBLED_BREATHING_INTERVALS[delta], 1, 100); - effect_func = rgblight_effect_breathing; - } -# endif -# ifdef RGBLIGHT_EFFECT_RAINBOW_MOOD - else if (rgblight_status.base_mode == RGBLIGHT_MODE_RAINBOW_MOOD) { - // rainbow mood mode - interval_time = get_interval_time(&RGBLED_RAINBOW_MOOD_INTERVALS[delta], 5, 100); - effect_func = rgblight_effect_rainbow_mood; - } -# endif -# ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - else if (rgblight_status.base_mode == RGBLIGHT_MODE_RAINBOW_SWIRL) { - // rainbow swirl mode - interval_time = get_interval_time(&RGBLED_RAINBOW_SWIRL_INTERVALS[delta / 2], 1, 100); - effect_func = rgblight_effect_rainbow_swirl; - } -# endif -# ifdef RGBLIGHT_EFFECT_SNAKE - else if (rgblight_status.base_mode == RGBLIGHT_MODE_SNAKE) { - // snake mode - interval_time = get_interval_time(&RGBLED_SNAKE_INTERVALS[delta / 2], 1, 200); - effect_func = rgblight_effect_snake; - } -# endif -# ifdef RGBLIGHT_EFFECT_KNIGHT - else if (rgblight_status.base_mode == RGBLIGHT_MODE_KNIGHT) { - // knight mode - interval_time = get_interval_time(&RGBLED_KNIGHT_INTERVALS[delta], 5, 100); - effect_func = rgblight_effect_knight; - } -# endif -# ifdef RGBLIGHT_EFFECT_CHRISTMAS - else if (rgblight_status.base_mode == RGBLIGHT_MODE_CHRISTMAS) { - // christmas mode - interval_time = RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL; - effect_func = (effect_func_t)rgblight_effect_christmas; - } -# endif -# ifdef RGBLIGHT_EFFECT_RGB_TEST - else if (rgblight_status.base_mode == RGBLIGHT_MODE_RGB_TEST) { - // RGB test mode - interval_time = pgm_read_word(&RGBLED_RGBTEST_INTERVALS[0]); - effect_func = (effect_func_t)rgblight_effect_rgbtest; - } -# endif -# ifdef RGBLIGHT_EFFECT_ALTERNATING - else if (rgblight_status.base_mode == RGBLIGHT_MODE_ALTERNATING) { - interval_time = 500; - effect_func = (effect_func_t)rgblight_effect_alternating; - } -# endif -# ifdef RGBLIGHT_EFFECT_TWINKLE - else if (rgblight_status.base_mode == RGBLIGHT_MODE_TWINKLE) { - interval_time = get_interval_time(&RGBLED_TWINKLE_INTERVALS[delta % 3], 5, 50); - effect_func = (effect_func_t)rgblight_effect_twinkle; - } -# endif - if (animation_status.restart) { - animation_status.restart = false; - animation_status.last_timer = timer_read() - interval_time - 1; - animation_status.pos16 = 0; // restart signal to local each effect - } - if (timer_elapsed(animation_status.last_timer) >= interval_time) { -# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC) - static uint16_t report_last_timer = 0; - static bool tick_flag = false; - uint16_t oldpos16; - if (tick_flag) { - tick_flag = false; - if (timer_elapsed(report_last_timer) >= 30000) { - report_last_timer = timer_read(); - dprintf("rgblight animation tick report to slave\n"); - RGBLIGHT_SPLIT_ANIMATION_TICK; - } - } - oldpos16 = animation_status.pos16; -# endif - animation_status.last_timer += interval_time; - effect_func(&animation_status); -# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC) - if (animation_status.pos16 == 0 && oldpos16 != 0) { - tick_flag = true; - } -# endif - } - } - -# ifdef RGBLIGHT_LAYER_BLINK - rgblight_unblink_layers(); -# endif -} - -#endif /* RGBLIGHT_USE_TIMER */ - -// Effects -#ifdef RGBLIGHT_EFFECT_BREATHING - -# ifndef RGBLIGHT_EFFECT_BREATHE_CENTER -# ifndef RGBLIGHT_BREATHE_TABLE_SIZE -# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256 or 128 or 64 -# endif -# include -# endif - -__attribute__((weak)) const uint8_t RGBLED_BREATHING_INTERVALS[] PROGMEM = {30, 20, 10, 5}; - -void rgblight_effect_breathing(animation_status_t *anim) { - float val; - - // http://sean.voisen.org/blog/2011/10/breathing-led-with-arduino/ -# ifdef RGBLIGHT_EFFECT_BREATHE_TABLE - val = pgm_read_byte(&rgblight_effect_breathe_table[anim->pos / table_scale]); -# else - val = (exp(sin((anim->pos / 255.0) * M_PI)) - RGBLIGHT_EFFECT_BREATHE_CENTER / M_E) * (RGBLIGHT_EFFECT_BREATHE_MAX / (M_E - 1 / M_E)); -# endif - rgblight_sethsv_noeeprom_old(rgblight_config.hue, rgblight_config.sat, val); - anim->pos = (anim->pos + 1); -} -#endif - -#ifdef RGBLIGHT_EFFECT_RAINBOW_MOOD -__attribute__((weak)) const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[] PROGMEM = {120, 60, 30}; - -void rgblight_effect_rainbow_mood(animation_status_t *anim) { - rgblight_sethsv_noeeprom_old(anim->current_hue, rgblight_config.sat, rgblight_config.val); - anim->current_hue++; -} -#endif - -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL -# ifndef RGBLIGHT_RAINBOW_SWIRL_RANGE -# define RGBLIGHT_RAINBOW_SWIRL_RANGE 255 -# endif - -__attribute__((weak)) const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {100, 50, 20}; - -void rgblight_effect_rainbow_swirl(animation_status_t *anim) { - uint8_t hue; - uint8_t i; - - for (i = 0; i < rgblight_ranges.effect_num_leds; i++) { - hue = (RGBLIGHT_RAINBOW_SWIRL_RANGE / rgblight_ranges.effect_num_leds * i + anim->current_hue); - sethsv(hue, rgblight_config.sat, rgblight_config.val, (rgb_led_t *)&led[i + rgblight_ranges.effect_start_pos]); - } - rgblight_set(); - - if (anim->delta % 2) { - anim->current_hue++; - } else { - anim->current_hue--; - } -} -#endif - -#ifdef RGBLIGHT_EFFECT_SNAKE -__attribute__((weak)) const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 50, 20}; - -void rgblight_effect_snake(animation_status_t *anim) { - static uint8_t pos = 0; - uint8_t i, j; - int8_t k; - int8_t increment = 1; - - if (anim->delta % 2) { - increment = -1; - } - -# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC) - if (anim->pos == 0) { // restart signal - if (increment == 1) { - pos = rgblight_ranges.effect_num_leds - 1; - } else { - pos = 0; - } - anim->pos = 1; - } -# endif - - // MxSS custom - fled_hs[0].hue = fled_hs[1].hue = 0; - fled_hs[0].sat = fled_hs[1].sat = 0; - - for (i = 0; i < rgblight_ranges.effect_num_leds; i++) { - rgb_led_t *ledp = led + i + rgblight_ranges.effect_start_pos; - ledp->r = 0; - ledp->g = 0; - ledp->b = 0; -# ifdef RGBW - ledp->w = 0; -# endif - for (j = 0; j < RGBLIGHT_EFFECT_SNAKE_LENGTH; j++) { - k = pos + j * increment; - if (k > RGBLED_NUM) { - k = k % RGBLED_NUM; - } - if (k < 0) { - k = k + rgblight_ranges.effect_num_leds; - } - if (i == k) { - sethsv(rgblight_config.hue, rgblight_config.sat, (uint8_t)(rgblight_config.val * (RGBLIGHT_EFFECT_SNAKE_LENGTH - j) / RGBLIGHT_EFFECT_SNAKE_LENGTH), ledp); - } - } - } - rgblight_set(); - if (increment == 1) { - if (pos - 1 < 0) { - pos = rgblight_ranges.effect_num_leds - 1; -# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC) - anim->pos = 0; -# endif - } else { - pos -= 1; -# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC) - anim->pos = 1; -# endif - } - } else { - pos = (pos + 1) % rgblight_ranges.effect_num_leds; -# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC) - anim->pos = pos; -# endif - } -} -#endif - -#ifdef RGBLIGHT_EFFECT_KNIGHT -__attribute__((weak)) const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {127, 63, 31}; - -void rgblight_effect_knight(animation_status_t *anim) { - static int8_t low_bound = 0; - static int8_t high_bound = RGBLIGHT_EFFECT_KNIGHT_LENGTH - 1; - static int8_t increment = 1; - uint8_t i, cur; - -# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC) - if (anim->pos == 0) { // restart signal - anim->pos = 1; - low_bound = 0; - high_bound = RGBLIGHT_EFFECT_KNIGHT_LENGTH - 1; - increment = 1; - } -# endif - // Set all the LEDs to 0 - for (i = rgblight_ranges.effect_start_pos; i < rgblight_ranges.effect_end_pos; i++) { - led[i].r = 0; - led[i].g = 0; - led[i].b = 0; -# ifdef RGBW - led[i].w = 0; -# endif - } - // Determine which LEDs should be lit up - for (i = 0; i < RGBLIGHT_EFFECT_KNIGHT_LED_NUM; i++) { - cur = (i + RGBLIGHT_EFFECT_KNIGHT_OFFSET) % rgblight_ranges.effect_num_leds + rgblight_ranges.effect_start_pos; - - if (i >= low_bound && i <= high_bound) { - sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, (rgb_led_t *)&led[cur]); - } else { - // MxSS custom code - if (cur == RGBLIGHT_FLED1) { - fled_hs[0].hue = fled_hs[0].sat = 0; - } else if (cur == RGBLIGHT_FLED2) { - fled_hs[1].hue = fled_hs[1].sat = 0; - } - - led[cur].r = 0; - led[cur].g = 0; - led[cur].b = 0; -# ifdef RGBW - led[cur].w = 0; -# endif - } - } - rgblight_set(); - - // Move from low_bound to high_bound changing the direction we increment each - // time a boundary is hit. - low_bound += increment; - high_bound += increment; - - if (high_bound <= 0 || low_bound >= RGBLIGHT_EFFECT_KNIGHT_LED_NUM - 1) { - increment = -increment; -# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC) - if (increment == 1) { - anim->pos = 0; - } -# endif - } -} -#endif - -#ifdef RGBLIGHT_EFFECT_CHRISTMAS -# define CUBED(x) ((x) * (x) * (x)) - -/** - * Christmas lights effect, with a smooth animation between red & green. - */ -void rgblight_effect_christmas(animation_status_t *anim) { - static int8_t increment = 1; - const uint8_t max_pos = 32; - const uint8_t hue_green = 85; - - uint32_t xa; - uint8_t hue, val; - uint8_t i; - - // The effect works by animating anim->pos from 0 to 32 and back to 0. - // The pos is used in a cubic bezier formula to ease-in-out between red and green, leaving the interpolated colors visible as short as possible. - xa = CUBED((uint32_t)anim->pos); - hue = ((uint32_t)hue_green) * xa / (xa + CUBED((uint32_t)(max_pos - anim->pos))); - // Additionally, these interpolated colors get shown with a slightly darker value, to make them less prominent than the main colors. - val = 255 - (3 * (hue < hue_green / 2 ? hue : hue_green - hue) / 2); - - for (i = 0; i < rgblight_ranges.effect_num_leds; i++) { - uint8_t local_hue = (i / RGBLIGHT_EFFECT_CHRISTMAS_STEP) % 2 ? hue : hue_green - hue; - sethsv(local_hue, rgblight_config.sat, val, (rgb_led_t *)&led[i + rgblight_ranges.effect_start_pos]); - } - rgblight_set(); - - if (anim->pos == 0) { - increment = 1; - } else if (anim->pos == max_pos) { - increment = -1; - } - anim->pos += increment; -} -#endif - -#ifdef RGBLIGHT_EFFECT_RGB_TEST -__attribute__((weak)) const uint16_t RGBLED_RGBTEST_INTERVALS[] PROGMEM = {1024}; - -void rgblight_effect_rgbtest(animation_status_t *anim) { - static uint8_t maxval = 0; - uint8_t g; - uint8_t r; - uint8_t b; - - if (maxval == 0) { - rgb_led_t tmp_led; - sethsv(0, 255, RGBLIGHT_LIMIT_VAL, &tmp_led); - maxval = tmp_led.r; - } - g = r = b = 0; - switch (anim->pos) { - // MxSS custom code - case 0: - r = maxval; - fled_hs[0].hue = 0; - fled_hs[0].sat = 255; - fled_hs[1].hue = 0; - fled_hs[1].sat = 255; - break; - case 1: - g = maxval; - fled_hs[0].hue = 85; - fled_hs[0].sat = 255; - fled_hs[1].hue = 85; - fled_hs[1].sat = 255; - break; - case 2: - b = maxval; - fled_hs[0].hue = 170; - fled_hs[0].sat = 255; - fled_hs[1].hue = 170; - fled_hs[1].sat = 255; - break; - } - rgblight_setrgb(r, g, b); - anim->pos = (anim->pos + 1) % 3; -} -#endif - -#ifdef RGBLIGHT_EFFECT_ALTERNATING -void rgblight_effect_alternating(animation_status_t *anim) { - for (int i = 0; i < rgblight_ranges.effect_num_leds; i++) { - rgb_led_t *ledp = led + i + rgblight_ranges.effect_start_pos; - if (i < rgblight_ranges.effect_num_leds / 2 && anim->pos) { - sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, ledp); - } else if (i >= rgblight_ranges.effect_num_leds / 2 && !anim->pos) { - sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, ledp); - } else { - sethsv(rgblight_config.hue, rgblight_config.sat, 0, ledp); - } - } - rgblight_set(); - anim->pos = (anim->pos + 1) % 2; -} -#endif - -#ifdef RGBLIGHT_EFFECT_TWINKLE -__attribute__((weak)) const uint8_t RGBLED_TWINKLE_INTERVALS[] PROGMEM = {50, 25, 10}; - -typedef struct PACKED { - HSV hsv; - uint8_t life; - bool up; -} TwinkleState; - -static TwinkleState led_twinkle_state[RGBLED_NUM]; - -void rgblight_effect_twinkle(animation_status_t *anim) { - bool random_color = anim->delta / 3; - bool restart = anim->pos == 0; - anim->pos = 1; - - for (uint8_t i = 0; i < rgblight_ranges.effect_num_leds; i++) { - TwinkleState *t = &(led_twinkle_state[i]); - HSV * c = &(t->hsv); - if (restart) { - // Restart - t->life = 0; - t->hsv.v = 0; - } else if (t->life) { - // This LED is already on, either brightening or dimming - t->life--; - uint8_t on = t->up ? RGBLIGHT_EFFECT_TWINKLE_LIFE - t->life : t->life; - c->v = (uint16_t)rgblight_config.val * on / RGBLIGHT_EFFECT_TWINKLE_LIFE; - if (t->life == 0 && t->up) { - t->up = false; - t->life = RGBLIGHT_EFFECT_TWINKLE_LIFE; - } - if (!random_color) { - c->h = rgblight_config.hue; - c->s = rgblight_config.sat; - } - } else if (rand() < RAND_MAX * RGBLIGHT_EFFECT_TWINKLE_PROBABILITY) { - // This LED is off, but was randomly selected to start brightening - c->h = random_color ? rand() % 0xFF : rgblight_config.hue; - c->s = random_color ? (rand() % (rgblight_config.sat / 2)) + (rgblight_config.sat / 2) : rgblight_config.sat; - c->v = 0; - t->life = RGBLIGHT_EFFECT_TWINKLE_LIFE; - t->up = true; - } else { - // This LED is off, and was NOT selected to start brightening - } - - rgb_led_t *ledp = led + i + rgblight_ranges.effect_start_pos; - sethsv(c->h, c->s, c->v, ledp); - } - - rgblight_set(); -} -#endif diff --git a/keyboards/mxss/rules.mk b/keyboards/mxss/rules.mk index cc4f0ca926..6e7633bfe0 100644 --- a/keyboards/mxss/rules.mk +++ b/keyboards/mxss/rules.mk @@ -1,22 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -AUDIO_ENABLE = no # Audio output - -SRC += mxss_frontled.c - -# Remove the common RGB light code and use my iteration instead -COMMON_VPATH += $(QUANTUM_DIR)/rgblight -OPT_DEFS += -DRGBLIGHT_ENABLE -SRC += rgblight.c -SRC += $(QUANTUM_DIR)/color.c -WS2812_DRIVER_REQUIRED = yes -CIE1931_CURVE = yes -RGB_KEYCODES_ENABLE = yes +# This file intentionally left blank diff --git a/keyboards/mxss/templates/keymap.c b/keyboards/mxss/templates/keymap.c deleted file mode 100644 index e16cf44293..0000000000 --- a/keyboards/mxss/templates/keymap.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright 2018 REPLACE_WITH_YOUR_NAME - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H -#include "mxss_frontled.h" - -hs_set caps_color = { .hue = 0, .sat = 255 }; - -// Colors for layers -// Format: {hue, saturation} -// {0, 0} to turn off the LED -// Add additional rows to handle more layers -hs_set layer_colors[4] = { - [0] = {.hue = 0, .sat = 0}, // Color for Layer 0 - [1] = {.hue = 86, .sat = 255}, // Color for Layer 1 - [2] = {.hue = 36, .sat = 255}, // Color for Layer 2 - [3] = {.hue = 185, .sat = 255}, // Color for Layer 3 -}; -size_t lc_size = ARRAY_SIZE(layer_colors); - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -__KEYMAP_GOES_HERE__ -}; From 61702b25648a4ffb8ae42b739f7134f4709e393a Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 25 Sep 2023 04:05:28 +0100 Subject: [PATCH 174/496] Set default board files for uf2boot bootloader (#22129) --- keyboards/jacky_studio/piggy60/rev2/info.json | 1 - keyboards/ymdk/id75/info.json | 1 - platforms/chibios/bootloader.mk | 1 + 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/keyboards/jacky_studio/piggy60/rev2/info.json b/keyboards/jacky_studio/piggy60/rev2/info.json index 50f2849e73..6d5db8874f 100644 --- a/keyboards/jacky_studio/piggy60/rev2/info.json +++ b/keyboards/jacky_studio/piggy60/rev2/info.json @@ -1,5 +1,4 @@ { - "board": "STM32_F103_STM32DUINO", "bootloader": "uf2boot", "diode_direction": "ROW2COL", "community_layouts": ["60_hhkb", "60_tsangan_hhkb"], diff --git a/keyboards/ymdk/id75/info.json b/keyboards/ymdk/id75/info.json index 692ef7e8b7..e30afaf717 100644 --- a/keyboards/ymdk/id75/info.json +++ b/keyboards/ymdk/id75/info.json @@ -3,7 +3,6 @@ "keyboard_name": "Idobao x YMDK ID75", "maintainer": "qmk", "bootloader": "uf2boot", - "board": "STM32_F103_STM32DUINO", "diode_direction": "ROW2COL", "features": { "bootmagic": true, diff --git a/platforms/chibios/bootloader.mk b/platforms/chibios/bootloader.mk index fc898e7699..5b6edd73ad 100644 --- a/platforms/chibios/bootloader.mk +++ b/platforms/chibios/bootloader.mk @@ -107,6 +107,7 @@ ifeq ($(strip $(BOOTLOADER)), tinyuf2) endif ifeq ($(strip $(BOOTLOADER)), uf2boot) OPT_DEFS += -DBOOTLOADER_UF2BOOT + BOARD = STM32_F103_STM32DUINO BOOTLOADER_TYPE = uf2boot FIRMWARE_FORMAT = uf2 endif From 21ed9b4575fd5c19b4879b90d4a15863aa731ba9 Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 25 Sep 2023 13:06:42 +1000 Subject: [PATCH 175/496] Simplify more feature driver defines (#22090) --- builddefs/common_features.mk | 11 ++++++----- docs/ws2812_driver.md | 2 +- keyboards/4pplet/eagle_viper_rep/rev_a/config.h | 2 +- keyboards/aeboards/ext65/rev2/config.h | 2 +- keyboards/bt66tech/bt66tech60/config.h | 2 +- keyboards/cannonkeys/an_c/config.h | 2 +- keyboards/cannonkeys/atlas/config.h | 2 +- keyboards/cannonkeys/cloudline/config.h | 2 +- keyboards/cannonkeys/db60/config.h | 2 +- keyboards/cannonkeys/devastatingtkl/config.h | 2 +- keyboards/cannonkeys/instant60/config.h | 2 +- keyboards/cannonkeys/instant65/config.h | 2 +- keyboards/cannonkeys/malicious_ergo/config.h | 2 +- keyboards/cannonkeys/obliterated75/config.h | 2 +- keyboards/cannonkeys/ortho48/config.h | 2 +- keyboards/cannonkeys/ortho60/config.h | 2 +- keyboards/cannonkeys/ortho75/config.h | 2 +- keyboards/cannonkeys/practice60/config.h | 2 +- keyboards/cannonkeys/practice65/config.h | 2 +- keyboards/cannonkeys/ripple/config.h | 2 +- keyboards/cannonkeys/sagittarius/config.h | 2 +- keyboards/cannonkeys/savage65/config.h | 2 +- keyboards/cannonkeys/serenity/config.h | 2 +- keyboards/cannonkeys/tmov2/config.h | 2 +- keyboards/cannonkeys/tsukuyomi/config.h | 2 +- keyboards/eason/aeroboard/config.h | 2 +- keyboards/handwired/co60/rev7/config.h | 2 +- keyboards/handwired/steamvan/rev1/config.h | 2 +- keyboards/keebsforall/coarse60/config.h | 2 +- .../mechlovin/adelais/rgb_led/rev3/config.h | 2 +- keyboards/mechlovin/zed60/config.h | 2 +- keyboards/mechlovin/zed65/910/config.h | 2 +- .../zed65/no_backlight/wearhaus66/config.h | 2 +- keyboards/mechlovin/zed65/rev1/config.h | 2 +- keyboards/nack/config.h | 2 +- keyboards/plywrks/ply8x/config.h | 2 +- keyboards/primekb/meridian/config.h | 2 +- keyboards/primekb/meridian/ws2812/config.h | 2 +- keyboards/projectkb/alice/rev1/config.h | 2 +- keyboards/projectkb/alice/rev2/config.h | 2 +- keyboards/rart/rartlice/config.h | 2 +- keyboards/riot_pad/config.h | 2 +- keyboards/spaceholdings/nebula12/config.h | 2 +- keyboards/vertex/angle65/config.h | 2 +- keyboards/vertex/arc60/config.h | 2 +- keyboards/vertex/arc60h/config.h | 2 +- keyboards/zoo/wampus/config.h | 2 +- .../chibios/boards/BONSAI_C4/configs/config.h | 2 +- .../chibios/boards/BONSAI_C4/configs/halconf.h | 2 +- platforms/chibios/drivers/serial.c | 2 +- platforms/chibios/drivers/ws2812_spi.c | 16 ++++++++-------- 51 files changed, 63 insertions(+), 62 deletions(-) diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index a594e2b1d5..8e07c25c24 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -602,7 +602,7 @@ ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes) $(call CATASTROPHIC_ERROR,Invalid WS2812_DRIVER,WS2812_DRIVER="$(WS2812_DRIVER)" is not a valid WS2812 driver) endif - OPT_DEFS += -DWS2812_DRIVER_$(strip $(shell echo $(WS2812_DRIVER) | tr '[:lower:]' '[:upper:]')) + OPT_DEFS += -DWS2812_$(strip $(shell echo $(WS2812_DRIVER) | tr '[:lower:]' '[:upper:]')) SRC += ws2812_$(strip $(WS2812_DRIVER)).c @@ -739,17 +739,16 @@ ifeq ($(strip $(HAPTIC_ENABLE)),yes) ifeq ($(filter $(HAPTIC_DRIVER),$(VALID_HAPTIC_DRIVER_TYPES)),) $(call CATASTROPHIC_ERROR,Invalid HAPTIC_DRIVER,HAPTIC_DRIVER="$(HAPTIC_DRIVER)" is not a valid Haptic driver) else + OPT_DEFS += -DHAPTIC_$(strip $(shell echo $(HAPTIC_DRIVER) | tr '[:lower:]' '[:upper:]')) COMMON_VPATH += $(DRIVER_PATH)/haptic ifeq ($(strip $(HAPTIC_DRIVER)), drv2605l) SRC += drv2605l.c QUANTUM_LIB_SRC += i2c_master.c - OPT_DEFS += -DHAPTIC_DRV2605L endif ifeq ($(strip $(HAPTIC_DRIVER)), solenoid) SRC += solenoid.c - OPT_DEFS += -DHAPTIC_SOLENOID endif endif endif @@ -772,6 +771,7 @@ ifeq ($(strip $(OLED_ENABLE)), yes) $(call CATASTROPHIC_ERROR,Invalid OLED_TRANSPORT,OLED_TRANSPORT="$(OLED_TRANSPORT)" is not a valid OLED transport) else OPT_DEFS += -DOLED_ENABLE + OPT_DEFS += -DOLED_$(strip $(shell echo $(OLED_DRIVER) | tr '[:lower:]' '[:upper:]')) COMMON_VPATH += $(DRIVER_PATH)/oled ifneq ($(strip $(OLED_DRIVER)), custom) SRC += oled_driver.c @@ -924,12 +924,13 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) $(call CATASTROPHIC_ERROR,Invalid BLUETOOTH_DRIVER,BLUETOOTH_DRIVER="$(BLUETOOTH_DRIVER)" is not a valid Bluetooth driver type) endif OPT_DEFS += -DBLUETOOTH_ENABLE + OPT_DEFS += -DBLUETOOTH_$(strip $(shell echo $(BLUETOOTH_DRIVER) | tr '[:lower:]' '[:upper:]')) NO_USB_STARTUP_CHECK := yes COMMON_VPATH += $(DRIVER_PATH)/bluetooth SRC += outputselect.c ifeq ($(strip $(BLUETOOTH_DRIVER)), bluefruit_le) - OPT_DEFS += -DBLUETOOTH_BLUEFRUIT_LE -DHAL_USE_SPI=TRUE + OPT_DEFS += -DHAL_USE_SPI=TRUE SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c SRC += $(DRIVER_PATH)/bluetooth/bluefruit_le.cpp QUANTUM_LIB_SRC += analog.c @@ -937,7 +938,7 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) endif ifeq ($(strip $(BLUETOOTH_DRIVER)), rn42) - OPT_DEFS += -DBLUETOOTH_RN42 -DHAL_USE_SERIAL=TRUE + OPT_DEFS += -DHAL_USE_SERIAL=TRUE SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c SRC += $(DRIVER_PATH)/bluetooth/rn42.c QUANTUM_LIB_SRC += uart.c diff --git a/docs/ws2812_driver.md b/docs/ws2812_driver.md index f8cad20ce0..6fa65b4288 100644 --- a/docs/ws2812_driver.md +++ b/docs/ws2812_driver.md @@ -85,7 +85,7 @@ WS2812_DRIVER = spi Configure the hardware via your config.h: ```c -#define WS2812_SPI SPID1 // default: SPID1 +#define WS2812_SPI_DRIVER SPID1 // default: SPID1 #define WS2812_SPI_MOSI_PAL_MODE 5 // MOSI pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5 #define WS2812_SPI_SCK_PIN B3 // Required for F072, may be for others -- SCK pin, see the respective datasheet for the appropriate values for your MCU. default: unspecified #define WS2812_SPI_SCK_PAL_MODE 5 // SCK pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5 diff --git a/keyboards/4pplet/eagle_viper_rep/rev_a/config.h b/keyboards/4pplet/eagle_viper_rep/rev_a/config.h index 7b89744ff2..350b9abad7 100644 --- a/keyboards/4pplet/eagle_viper_rep/rev_a/config.h +++ b/keyboards/4pplet/eagle_viper_rep/rev_a/config.h @@ -20,7 +20,7 @@ along with this program. If not, see . #define BACKLIGHT_PWM_CHANNEL 4 /* Underglow */ -#define WS2812_SPI SPID1 +#define WS2812_SPI_DRIVER SPID1 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PIN A5 #define WS2812_SPI_SCK_PAL_MODE 0 diff --git a/keyboards/aeboards/ext65/rev2/config.h b/keyboards/aeboards/ext65/rev2/config.h index 78d20f300f..c5149f5741 100644 --- a/keyboards/aeboards/ext65/rev2/config.h +++ b/keyboards/aeboards/ext65/rev2/config.h @@ -17,7 +17,7 @@ #pragma once //SPI -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/bt66tech/bt66tech60/config.h b/keyboards/bt66tech/bt66tech60/config.h index 45693628a6..b49e0a11cd 100644 --- a/keyboards/bt66tech/bt66tech60/config.h +++ b/keyboards/bt66tech/bt66tech60/config.h @@ -25,7 +25,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 5 /* * Feature disable options diff --git a/keyboards/cannonkeys/an_c/config.h b/keyboards/cannonkeys/an_c/config.h index bea77ceac2..f3d6237a78 100644 --- a/keyboards/cannonkeys/an_c/config.h +++ b/keyboards/cannonkeys/an_c/config.h @@ -26,7 +26,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/cannonkeys/atlas/config.h b/keyboards/cannonkeys/atlas/config.h index e8d571f7a9..38f684a861 100644 --- a/keyboards/cannonkeys/atlas/config.h +++ b/keyboards/cannonkeys/atlas/config.h @@ -22,7 +22,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/cannonkeys/cloudline/config.h b/keyboards/cannonkeys/cloudline/config.h index cff0a03945..41e58784b4 100644 --- a/keyboards/cannonkeys/cloudline/config.h +++ b/keyboards/cannonkeys/cloudline/config.h @@ -12,7 +12,7 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/cannonkeys/db60/config.h b/keyboards/cannonkeys/db60/config.h index bea77ceac2..f3d6237a78 100644 --- a/keyboards/cannonkeys/db60/config.h +++ b/keyboards/cannonkeys/db60/config.h @@ -26,7 +26,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/cannonkeys/devastatingtkl/config.h b/keyboards/cannonkeys/devastatingtkl/config.h index bea77ceac2..f3d6237a78 100644 --- a/keyboards/cannonkeys/devastatingtkl/config.h +++ b/keyboards/cannonkeys/devastatingtkl/config.h @@ -26,7 +26,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/cannonkeys/instant60/config.h b/keyboards/cannonkeys/instant60/config.h index bea77ceac2..f3d6237a78 100644 --- a/keyboards/cannonkeys/instant60/config.h +++ b/keyboards/cannonkeys/instant60/config.h @@ -26,7 +26,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/cannonkeys/instant65/config.h b/keyboards/cannonkeys/instant65/config.h index 0adcfdfa92..0b1e0948b3 100644 --- a/keyboards/cannonkeys/instant65/config.h +++ b/keyboards/cannonkeys/instant65/config.h @@ -26,7 +26,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/cannonkeys/malicious_ergo/config.h b/keyboards/cannonkeys/malicious_ergo/config.h index 70d39892fd..f2314b6077 100644 --- a/keyboards/cannonkeys/malicious_ergo/config.h +++ b/keyboards/cannonkeys/malicious_ergo/config.h @@ -28,7 +28,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/cannonkeys/obliterated75/config.h b/keyboards/cannonkeys/obliterated75/config.h index 0adcfdfa92..0b1e0948b3 100644 --- a/keyboards/cannonkeys/obliterated75/config.h +++ b/keyboards/cannonkeys/obliterated75/config.h @@ -26,7 +26,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/cannonkeys/ortho48/config.h b/keyboards/cannonkeys/ortho48/config.h index 703975ab86..32412b1d54 100644 --- a/keyboards/cannonkeys/ortho48/config.h +++ b/keyboards/cannonkeys/ortho48/config.h @@ -25,7 +25,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 /* * Feature disable options diff --git a/keyboards/cannonkeys/ortho60/config.h b/keyboards/cannonkeys/ortho60/config.h index 703975ab86..32412b1d54 100644 --- a/keyboards/cannonkeys/ortho60/config.h +++ b/keyboards/cannonkeys/ortho60/config.h @@ -25,7 +25,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 /* * Feature disable options diff --git a/keyboards/cannonkeys/ortho75/config.h b/keyboards/cannonkeys/ortho75/config.h index 703975ab86..32412b1d54 100644 --- a/keyboards/cannonkeys/ortho75/config.h +++ b/keyboards/cannonkeys/ortho75/config.h @@ -25,7 +25,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 /* * Feature disable options diff --git a/keyboards/cannonkeys/practice60/config.h b/keyboards/cannonkeys/practice60/config.h index 703975ab86..32412b1d54 100644 --- a/keyboards/cannonkeys/practice60/config.h +++ b/keyboards/cannonkeys/practice60/config.h @@ -25,7 +25,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 /* * Feature disable options diff --git a/keyboards/cannonkeys/practice65/config.h b/keyboards/cannonkeys/practice65/config.h index 703975ab86..32412b1d54 100644 --- a/keyboards/cannonkeys/practice65/config.h +++ b/keyboards/cannonkeys/practice65/config.h @@ -25,7 +25,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 /* * Feature disable options diff --git a/keyboards/cannonkeys/ripple/config.h b/keyboards/cannonkeys/ripple/config.h index 68745474c9..d95e23cfaa 100644 --- a/keyboards/cannonkeys/ripple/config.h +++ b/keyboards/cannonkeys/ripple/config.h @@ -12,7 +12,7 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/cannonkeys/sagittarius/config.h b/keyboards/cannonkeys/sagittarius/config.h index b48d66fd78..b8cdc797d0 100644 --- a/keyboards/cannonkeys/sagittarius/config.h +++ b/keyboards/cannonkeys/sagittarius/config.h @@ -26,7 +26,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/cannonkeys/savage65/config.h b/keyboards/cannonkeys/savage65/config.h index 0adcfdfa92..0b1e0948b3 100644 --- a/keyboards/cannonkeys/savage65/config.h +++ b/keyboards/cannonkeys/savage65/config.h @@ -26,7 +26,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/cannonkeys/serenity/config.h b/keyboards/cannonkeys/serenity/config.h index 4b06e24a1c..5f31f2374d 100644 --- a/keyboards/cannonkeys/serenity/config.h +++ b/keyboards/cannonkeys/serenity/config.h @@ -21,7 +21,7 @@ along with this program. If not, see . #define BACKLIGHT_PWM_CHANNEL 1 #define BACKLIGHT_PAL_MODE 1 -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/cannonkeys/tmov2/config.h b/keyboards/cannonkeys/tmov2/config.h index bea77ceac2..f3d6237a78 100644 --- a/keyboards/cannonkeys/tmov2/config.h +++ b/keyboards/cannonkeys/tmov2/config.h @@ -26,7 +26,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/cannonkeys/tsukuyomi/config.h b/keyboards/cannonkeys/tsukuyomi/config.h index 0adcfdfa92..0b1e0948b3 100644 --- a/keyboards/cannonkeys/tsukuyomi/config.h +++ b/keyboards/cannonkeys/tsukuyomi/config.h @@ -26,7 +26,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/eason/aeroboard/config.h b/keyboards/eason/aeroboard/config.h index ff00df878f..2c7d4687b4 100644 --- a/keyboards/eason/aeroboard/config.h +++ b/keyboards/eason/aeroboard/config.h @@ -3,7 +3,7 @@ #pragma once -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 5 /* disable debug print */ diff --git a/keyboards/handwired/co60/rev7/config.h b/keyboards/handwired/co60/rev7/config.h index 7e50f570ed..b6b7cecec2 100644 --- a/keyboards/handwired/co60/rev7/config.h +++ b/keyboards/handwired/co60/rev7/config.h @@ -23,5 +23,5 @@ along with this program. If not, see . #define LOCKING_RESYNC_ENABLE /* RGB underglow configuration */ -#define WS2812_SPI SPID1 +#define WS2812_SPI_DRIVER SPID1 #define WS2812_SPI_MOSI_PAL_MODE 5 diff --git a/keyboards/handwired/steamvan/rev1/config.h b/keyboards/handwired/steamvan/rev1/config.h index 88323300f8..a779dcccab 100644 --- a/keyboards/handwired/steamvan/rev1/config.h +++ b/keyboards/handwired/steamvan/rev1/config.h @@ -22,7 +22,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID1 +#define WS2812_SPI_DRIVER SPID1 #define WS2812_SPI_MOSI_PAL_MODE 5 #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/keebsforall/coarse60/config.h b/keyboards/keebsforall/coarse60/config.h index a9cd3b03b0..6ea9b9aae2 100644 --- a/keyboards/keebsforall/coarse60/config.h +++ b/keyboards/keebsforall/coarse60/config.h @@ -25,7 +25,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/config.h b/keyboards/mechlovin/adelais/rgb_led/rev3/config.h index 72011af8df..039f3ffe81 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev3/config.h +++ b/keyboards/mechlovin/adelais/rgb_led/rev3/config.h @@ -17,7 +17,7 @@ along with this program. If not, see . #pragma once -#define WS2812_SPI SPID1 // default: SPID1 +#define WS2812_SPI_DRIVER SPID1 // default: SPID1 #define WS2812_SPI_MOSI_PAL_MODE 5 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5 #ifdef RGB_MATRIX_ENABLE diff --git a/keyboards/mechlovin/zed60/config.h b/keyboards/mechlovin/zed60/config.h index cdbbd6dd0e..13e17a7bb6 100644 --- a/keyboards/mechlovin/zed60/config.h +++ b/keyboards/mechlovin/zed60/config.h @@ -17,5 +17,5 @@ along with this program. If not, see . #pragma once -#define WS2812_SPI SPID1 // default: SPID1 +#define WS2812_SPI_DRIVER SPID1 // default: SPID1 #define WS2812_SPI_MOSI_PAL_MODE 6 // MOSI pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5 diff --git a/keyboards/mechlovin/zed65/910/config.h b/keyboards/mechlovin/zed65/910/config.h index a5902fa9c1..f21653f5af 100644 --- a/keyboards/mechlovin/zed65/910/config.h +++ b/keyboards/mechlovin/zed65/910/config.h @@ -17,5 +17,5 @@ along with this program. If not, see . #pragma once -#define WS2812_SPI SPID1 // default: SPID1 +#define WS2812_SPI_DRIVER SPID1 // default: SPID1 #define WS2812_SPI_MOSI_PAL_MODE 6 // MOSI pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5 diff --git a/keyboards/mechlovin/zed65/no_backlight/wearhaus66/config.h b/keyboards/mechlovin/zed65/no_backlight/wearhaus66/config.h index 5cb2a00b88..3bec308941 100644 --- a/keyboards/mechlovin/zed65/no_backlight/wearhaus66/config.h +++ b/keyboards/mechlovin/zed65/no_backlight/wearhaus66/config.h @@ -17,5 +17,5 @@ along with this program. If not, see . #pragma once -#define WS2812_SPI SPID2 // default: SPID1 +#define WS2812_SPI_DRIVER SPID2 // default: SPID1 #define WS2812_SPI_MOSI_PAL_MODE 0 // MOSI pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5 diff --git a/keyboards/mechlovin/zed65/rev1/config.h b/keyboards/mechlovin/zed65/rev1/config.h index 24efedfffb..4ed1992992 100644 --- a/keyboards/mechlovin/zed65/rev1/config.h +++ b/keyboards/mechlovin/zed65/rev1/config.h @@ -18,7 +18,7 @@ along with this program. If not, see . #pragma once #ifdef RGBLIGHT_ENABLE -#define WS2812_SPI SPID1 // default: SPID1 +#define WS2812_SPI_DRIVER SPID1 // default: SPID1 #define WS2812_SPI_MOSI_PAL_MODE 6 // MOSI pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5 #define WS2812_SPI_USE_CIRCULAR_BUFFER #endif diff --git a/keyboards/nack/config.h b/keyboards/nack/config.h index adb2cf5d87..8ac70be2dc 100644 --- a/keyboards/nack/config.h +++ b/keyboards/nack/config.h @@ -18,7 +18,7 @@ along with this program. If not, see . #pragma once #ifdef RGB_MATRIX_ENABLE - #define WS2812_SPI SPID1 + #define WS2812_SPI_DRIVER SPID1 #define WS2812_SPI_MOSI_PAL_MODE 5 #define RGB_MATRIX_LED_COUNT 52 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 128 // Max brightness of LEDs diff --git a/keyboards/plywrks/ply8x/config.h b/keyboards/plywrks/ply8x/config.h index 2180b9887f..cccedf8e23 100644 --- a/keyboards/plywrks/ply8x/config.h +++ b/keyboards/plywrks/ply8x/config.h @@ -4,7 +4,7 @@ #pragma once /* RGB */ -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 #define WS2812_SPI_SCK_PAL_MODE 0 diff --git a/keyboards/primekb/meridian/config.h b/keyboards/primekb/meridian/config.h index 3bb4f22006..8593536eec 100644 --- a/keyboards/primekb/meridian/config.h +++ b/keyboards/primekb/meridian/config.h @@ -17,7 +17,7 @@ along with this program. If not, see . #pragma once -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/primekb/meridian/ws2812/config.h b/keyboards/primekb/meridian/ws2812/config.h index 3bb4f22006..8593536eec 100644 --- a/keyboards/primekb/meridian/ws2812/config.h +++ b/keyboards/primekb/meridian/ws2812/config.h @@ -17,7 +17,7 @@ along with this program. If not, see . #pragma once -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/projectkb/alice/rev1/config.h b/keyboards/projectkb/alice/rev1/config.h index 2692965fbf..dca7542513 100644 --- a/keyboards/projectkb/alice/rev1/config.h +++ b/keyboards/projectkb/alice/rev1/config.h @@ -26,7 +26,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/projectkb/alice/rev2/config.h b/keyboards/projectkb/alice/rev2/config.h index 8bb661f90b..f5d9ca0c3e 100644 --- a/keyboards/projectkb/alice/rev2/config.h +++ b/keyboards/projectkb/alice/rev2/config.h @@ -26,7 +26,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/rart/rartlice/config.h b/keyboards/rart/rartlice/config.h index 9673097c38..116f8d544b 100644 --- a/keyboards/rart/rartlice/config.h +++ b/keyboards/rart/rartlice/config.h @@ -22,7 +22,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 /* * Feature disable options diff --git a/keyboards/riot_pad/config.h b/keyboards/riot_pad/config.h index 97dcb1de3c..4c5de878dc 100644 --- a/keyboards/riot_pad/config.h +++ b/keyboards/riot_pad/config.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#define WS2812_SPI SPID1 +#define WS2812_SPI_DRIVER SPID1 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN A5 diff --git a/keyboards/spaceholdings/nebula12/config.h b/keyboards/spaceholdings/nebula12/config.h index ceeed9e1a7..d6e8f0e196 100755 --- a/keyboards/spaceholdings/nebula12/config.h +++ b/keyboards/spaceholdings/nebula12/config.h @@ -35,7 +35,7 @@ along with this program. If not, see . #define I2C1_TIMINGR_SCLH 3U #define I2C1_TIMINGR_SCLL 9U -#define WS2812_SPI SPID2 // default: SPID1 +#define WS2812_SPI_DRIVER SPID2 // default: SPID1 #define WS2812_SPI_MOSI_PAL_MODE 0 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/vertex/angle65/config.h b/keyboards/vertex/angle65/config.h index b3cf8b2507..018bad7cdb 100644 --- a/keyboards/vertex/angle65/config.h +++ b/keyboards/vertex/angle65/config.h @@ -18,5 +18,5 @@ along with this program. If not, see . #define SOLENOID_PIN A2 -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 5 diff --git a/keyboards/vertex/arc60/config.h b/keyboards/vertex/arc60/config.h index 38b830e3df..cab5a59af0 100644 --- a/keyboards/vertex/arc60/config.h +++ b/keyboards/vertex/arc60/config.h @@ -16,7 +16,7 @@ along with this program. If not, see . #pragma once -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 5 /* diff --git a/keyboards/vertex/arc60h/config.h b/keyboards/vertex/arc60h/config.h index 38b830e3df..cab5a59af0 100644 --- a/keyboards/vertex/arc60h/config.h +++ b/keyboards/vertex/arc60h/config.h @@ -16,7 +16,7 @@ along with this program. If not, see . #pragma once -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 5 /* diff --git a/keyboards/zoo/wampus/config.h b/keyboards/zoo/wampus/config.h index eafc776bef..e0ddfaca88 100644 --- a/keyboards/zoo/wampus/config.h +++ b/keyboards/zoo/wampus/config.h @@ -22,7 +22,7 @@ along with this program. If not, see . #define BACKLIGHT_PAL_MODE 1 // SPI RGB Driver -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 #define WS2812_SPI_SCK_PAL_MODE 0 #define WS2812_SPI_SCK_PIN B13 diff --git a/platforms/chibios/boards/BONSAI_C4/configs/config.h b/platforms/chibios/boards/BONSAI_C4/configs/config.h index c5dbb25c45..7539ebed41 100644 --- a/platforms/chibios/boards/BONSAI_C4/configs/config.h +++ b/platforms/chibios/boards/BONSAI_C4/configs/config.h @@ -66,7 +66,7 @@ #endif // WS2812-style LED control on pin A10 -#ifdef WS2812_DRIVER_PWM +#ifdef WS2812_PWM # ifndef WS2812_DI_PIN # define WS2812_DI_PIN PAL_LINE(GPIOA, 10) # endif diff --git a/platforms/chibios/boards/BONSAI_C4/configs/halconf.h b/platforms/chibios/boards/BONSAI_C4/configs/halconf.h index 7887e7c9ba..6bab6fbcff 100644 --- a/platforms/chibios/boards/BONSAI_C4/configs/halconf.h +++ b/platforms/chibios/boards/BONSAI_C4/configs/halconf.h @@ -32,7 +32,7 @@ # endif #endif -#ifdef WS2812_DRIVER_PWM +#ifdef WS2812_PWM # ifndef HAL_USE_PWM # define HAL_USE_PWM TRUE # endif diff --git a/platforms/chibios/drivers/serial.c b/platforms/chibios/drivers/serial.c index f087d0c2ed..f199716a2b 100644 --- a/platforms/chibios/drivers/serial.c +++ b/platforms/chibios/drivers/serial.c @@ -10,7 +10,7 @@ #include // TODO: resolve/remove build warnings -#if defined(RGBLIGHT_ENABLE) && defined(RGBLED_SPLIT) && defined(PROTOCOL_CHIBIOS) && defined(WS2812_DRIVER_BITBANG) +#if defined(RGBLIGHT_ENABLE) && defined(RGBLED_SPLIT) && defined(PROTOCOL_CHIBIOS) && defined(WS2812_BITBANG) # warning "RGBLED_SPLIT not supported with bitbang WS2812 driver" #endif diff --git a/platforms/chibios/drivers/ws2812_spi.c b/platforms/chibios/drivers/ws2812_spi.c index f56236a8b8..01162f07f4 100644 --- a/platforms/chibios/drivers/ws2812_spi.c +++ b/platforms/chibios/drivers/ws2812_spi.c @@ -6,8 +6,8 @@ /* Adapted from https://github.com/gamazeps/ws2812b-chibios-SPIDMA/ */ // Define the spi your LEDs are plugged to here -#ifndef WS2812_SPI -# define WS2812_SPI SPID1 +#ifndef WS2812_SPI_DRIVER +# define WS2812_SPI_DRIVER SPID1 #endif #ifndef WS2812_SPI_MOSI_PAL_MODE @@ -179,11 +179,11 @@ void ws2812_init(void) { #endif }; - spiAcquireBus(&WS2812_SPI); /* Acquire ownership of the bus. */ - spiStart(&WS2812_SPI, &spicfg); /* Setup transfer parameters. */ - spiSelect(&WS2812_SPI); /* Slave Select assertion. */ + spiAcquireBus(&WS2812_SPI_DRIVER); /* Acquire ownership of the bus. */ + spiStart(&WS2812_SPI_DRIVER, &spicfg); /* Setup transfer parameters. */ + spiSelect(&WS2812_SPI_DRIVER); /* Slave Select assertion. */ #ifdef WS2812_SPI_USE_CIRCULAR_BUFFER - spiStartSend(&WS2812_SPI, ARRAY_SIZE(txbuf), txbuf); + spiStartSend(&WS2812_SPI_DRIVER, ARRAY_SIZE(txbuf), txbuf); #endif } @@ -202,9 +202,9 @@ void ws2812_setleds(rgb_led_t* ledarray, uint16_t leds) { // Instead spiSend can be used to send synchronously (or the thread logic can be added back). #ifndef WS2812_SPI_USE_CIRCULAR_BUFFER # ifdef WS2812_SPI_SYNC - spiSend(&WS2812_SPI, ARRAY_SIZE(txbuf), txbuf); + spiSend(&WS2812_SPI_DRIVER, ARRAY_SIZE(txbuf), txbuf); # else - spiStartSend(&WS2812_SPI, ARRAY_SIZE(txbuf), txbuf); + spiStartSend(&WS2812_SPI_DRIVER, ARRAY_SIZE(txbuf), txbuf); # endif #endif } From 234e099c7242550dd0f662d9647ab9dda00f0c41 Mon Sep 17 00:00:00 2001 From: skyloong <92424712+JZ-Skyloong@users.noreply.github.com> Date: Mon, 25 Sep 2023 11:28:08 +0800 Subject: [PATCH 176/496] Added skyloong/Qk21 v1 Number Pad (#21467) Co-authored-by: Duncan Sutherland Co-authored-by: Ryan Co-authored-by: Drashna Jaelre --- keyboards/skyloong/qk21/v1/config.h | 12 ++ keyboards/skyloong/qk21/v1/info.json | 129 ++++++++++++++++++ .../skyloong/qk21/v1/keymaps/default/keymap.c | 54 ++++++++ .../skyloong/qk21/v1/keymaps/via/keymap.c | 54 ++++++++ .../skyloong/qk21/v1/keymaps/via/rules.mk | 1 + keyboards/skyloong/qk21/v1/readme.md | 27 ++++ keyboards/skyloong/qk21/v1/rules.mk | 1 + keyboards/skyloong/qk21/v1/v1.c | 49 +++++++ 8 files changed, 327 insertions(+) create mode 100644 keyboards/skyloong/qk21/v1/config.h create mode 100644 keyboards/skyloong/qk21/v1/info.json create mode 100644 keyboards/skyloong/qk21/v1/keymaps/default/keymap.c create mode 100644 keyboards/skyloong/qk21/v1/keymaps/via/keymap.c create mode 100644 keyboards/skyloong/qk21/v1/keymaps/via/rules.mk create mode 100644 keyboards/skyloong/qk21/v1/readme.md create mode 100644 keyboards/skyloong/qk21/v1/rules.mk create mode 100644 keyboards/skyloong/qk21/v1/v1.c diff --git a/keyboards/skyloong/qk21/v1/config.h b/keyboards/skyloong/qk21/v1/config.h new file mode 100644 index 0000000000..c74d5cce78 --- /dev/null +++ b/keyboards/skyloong/qk21/v1/config.h @@ -0,0 +1,12 @@ +// Copyright 2021 JZ-Skyloong (@JZ-Skyloong) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Enable num-lock LED */ +#define NUM_LOCK_INDEX 13 + +#define RGB_MATRIX_LED_COUNT 21 +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS //Enable frame effects +#define RGB_MATRIX_KEYPRESSES //Reacts to keypress +#define RGB_DISABLE_WHEN_USB_SUSPENDED //turn off effects when suspended diff --git a/keyboards/skyloong/qk21/v1/info.json b/keyboards/skyloong/qk21/v1/info.json new file mode 100644 index 0000000000..d5aa5e8be9 --- /dev/null +++ b/keyboards/skyloong/qk21/v1/info.json @@ -0,0 +1,129 @@ +{ + "manufacturer": "JZ-Skyloong", + "keyboard_name": "qk21", + "maintainer": "linlin012", + "bootloader": "atmel-dfu", + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["F7", "E6", "C7", "D5"], + "rows": ["F0", "F1", "F4", "F5", "F6", "B4"] + }, + "processor": "atmega32u4", + "ws2812": { + "pin": "B7" + }, + "rgb_matrix":{ + "driver": "ws2812", + "animations": { + "alphas_mods": false, + "band_pinwheel_sat": false, + "band_pinwheel_val": false, + "band_sat": false, + "band_spiral_sat": false, + "band_spiral_val": false, + "breathing": true, + "cycle_all": true, + "cycle_left_right": false, + "cycle_out_in": false, + "cycle_out_in_dual": false, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "dual_beacom": false, + "gradient_left_right": false, + "gradient_up_down": false, + "hue_breathing": false, + "hue_pendulum": false, + "hue_wave": false, + "jellybean_raindrops": true, + "pixel_fractal": false, + "pixel_rain": true, + "rainbow_moving_chevron":false, + "rainbow_pinwheels": true, + "raindrops": true, + "ranbow_beacon": true, + "typing_heatmap": true, + "solid_reactive_simple": true, + "solid_reactive_cross": true, + "splash": true + }, + "layout": [ + {"matrix": [5, 0], "x": 37, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 149, "y": 64, "flags": 4}, + {"matrix": [5, 3], "x": 224, "y": 58, "flags": 4}, + + {"matrix": [4, 0], "x": 0, "y": 51, "flags": 4}, + {"matrix": [4, 1], "x": 75, "y": 51, "flags": 4}, + {"matrix": [4, 2], "x": 149, "y": 51, "flags": 4}, + + {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 75, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 149, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 224, "y": 31, "flags": 4}, + + {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4}, + {"matrix": [2, 1], "x": 75, "y": 25, "flags": 4}, + {"matrix": [2, 2], "x": 149, "y": 25, "flags": 4}, + + {"matrix": [1, 0], "x": 0, "y": 12, "flags": 8}, + {"matrix": [1, 1], "x": 75, "y": 12, "flags": 4}, + {"matrix": [1, 2], "x": 149, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 224, "y": 12, "flags": 4}, + + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 149, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4} + + ], + "hue_steps": 20, + "max_brightness": 200, + "sat_steps": 20, + "speed_steps": 20, + "val_steps": 20 + }, + "url": "https://github.com/JZ-Skyloong", + "usb": { + "device_version": "1.0.0", + "pid": "0x6021", + "vid": "0x1EA7", + "max_power": 250 + }, + "community_layouts": ["numpad_6x4"], + "layouts": { + "LAYOUT_numpad_6x4": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 2, "h": 2 }, + { "matrix": [4, 0], "x": 0, "y": 4 }, + { "matrix": [4, 1], "x": 1, "y": 4 }, + { "matrix": [4, 2], "x": 2, "y": 4 }, + { "matrix": [5, 0], "x": 0, "y": 5, "w": 2 }, + { "matrix": [5, 2], "x": 2, "y": 5 }, + { "matrix": [5, 3], "x": 3, "y": 4, "h": 2 } + ] + } + } +} diff --git a/keyboards/skyloong/qk21/v1/keymaps/default/keymap.c b/keyboards/skyloong/qk21/v1/keymaps/default/keymap.c new file mode 100644 index 0000000000..8cb1d20085 --- /dev/null +++ b/keyboards/skyloong/qk21/v1/keymaps/default/keymap.c @@ -0,0 +1,54 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┐ + * │Esc│Tab│MO1│Bsp│ + * ├───┼───┼───┼───┤ + * │Num│ / │ * │ - │ + * ├───┼───┼───┼───┤ + * │ 7 │ 8 │ 9 │ │ + * ├───┼───┼───┤ + │ + * │ 4 │ 5 │ 6 │ │ + * ├───┼───┼───┼───┤ + * │ 1 │ 2 │ 3 │ │ + * ├───┴───┼───┤Ent│ + * │ 0 │ . │ │ + * └───────┴───┴───┘ + */ + [0] = LAYOUT_numpad_6x4( + KC_ESC, KC_TAB, MO(1), KC_BSPC, + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT + ), + + /* + * ┌───┐───┬───┬───┐ + * │Rst│MOD│MO1│Bsp│ + * └───┘───┼───┼───┤ + * │Num│HUD│HUI│VAD│ + * ┌───┬───┬───┐───┤ + * │Hom│ ↑ │PgU│ │ + * ├───┼───┼───┤VAI│ + * │ ← │ │ → │ │ + * ├───┼───┼───┤───┤ + * │End│ ↓ │PgD│ │ + * ├───┴───┼───┤TOG│ + * │Insert │Del│ │ + * └───────┴───┘───┘ + */ + [1] = LAYOUT_numpad_6x4( + QK_BOOT, RGB_MOD, _______, _______, + _______, RGB_HUD, RGB_HUI, RGB_VAD, + KC_HOME, KC_UP, KC_PGUP, + KC_LEFT, RGB_M_SW, KC_RGHT, RGB_VAI, + KC_END, KC_DOWN, KC_PGDN, + KC_INS, KC_DEL, RGB_TOG + ) +}; diff --git a/keyboards/skyloong/qk21/v1/keymaps/via/keymap.c b/keyboards/skyloong/qk21/v1/keymaps/via/keymap.c new file mode 100644 index 0000000000..8cb1d20085 --- /dev/null +++ b/keyboards/skyloong/qk21/v1/keymaps/via/keymap.c @@ -0,0 +1,54 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┐ + * │Esc│Tab│MO1│Bsp│ + * ├───┼───┼───┼───┤ + * │Num│ / │ * │ - │ + * ├───┼───┼───┼───┤ + * │ 7 │ 8 │ 9 │ │ + * ├───┼───┼───┤ + │ + * │ 4 │ 5 │ 6 │ │ + * ├───┼───┼───┼───┤ + * │ 1 │ 2 │ 3 │ │ + * ├───┴───┼───┤Ent│ + * │ 0 │ . │ │ + * └───────┴───┴───┘ + */ + [0] = LAYOUT_numpad_6x4( + KC_ESC, KC_TAB, MO(1), KC_BSPC, + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT + ), + + /* + * ┌───┐───┬───┬───┐ + * │Rst│MOD│MO1│Bsp│ + * └───┘───┼───┼───┤ + * │Num│HUD│HUI│VAD│ + * ┌───┬───┬───┐───┤ + * │Hom│ ↑ │PgU│ │ + * ├───┼───┼───┤VAI│ + * │ ← │ │ → │ │ + * ├───┼───┼───┤───┤ + * │End│ ↓ │PgD│ │ + * ├───┴───┼───┤TOG│ + * │Insert │Del│ │ + * └───────┴───┘───┘ + */ + [1] = LAYOUT_numpad_6x4( + QK_BOOT, RGB_MOD, _______, _______, + _______, RGB_HUD, RGB_HUI, RGB_VAD, + KC_HOME, KC_UP, KC_PGUP, + KC_LEFT, RGB_M_SW, KC_RGHT, RGB_VAI, + KC_END, KC_DOWN, KC_PGDN, + KC_INS, KC_DEL, RGB_TOG + ) +}; diff --git a/keyboards/skyloong/qk21/v1/keymaps/via/rules.mk b/keyboards/skyloong/qk21/v1/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/skyloong/qk21/v1/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/skyloong/qk21/v1/readme.md b/keyboards/skyloong/qk21/v1/readme.md new file mode 100644 index 0000000000..871a819f66 --- /dev/null +++ b/keyboards/skyloong/qk21/v1/readme.md @@ -0,0 +1,27 @@ +# qk21_V1 + +![qk21](https://i.imgur.com/d65CJC5h.jpg) + +The following is the QMK Firmware for the number pad 6x4 keylayout - designed in Dongguan Jizhi Electronic Technology Co., Ltd + +* Keyboard Maintainer: [linlin012](https://github.com/linlin012) +* Hardware Supported: JK172-RGB(4028)-U PCBs, MEGA32U4-MU +* Hardware Availability: http://www.skyloong.com.cn + +Make example for this keyboard (after setting up your build environment): + + make skyloong/qk21/v1:default + +Flashing example for this keyboard: + + make skyloong/qk21/v1:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/skyloong/qk21/v1/rules.mk b/keyboards/skyloong/qk21/v1/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/skyloong/qk21/v1/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/skyloong/qk21/v1/v1.c b/keyboards/skyloong/qk21/v1/v1.c new file mode 100644 index 0000000000..9630d3e223 --- /dev/null +++ b/keyboards/skyloong/qk21/v1/v1.c @@ -0,0 +1,49 @@ +// Copyright 2021 JZ-Skyloong (@JZ-Skyloong) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#if defined(RGB_MATRIX_ENABLE) && defined(NUM_LOCK_INDEX) + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + switch (keycode) { +# ifdef RGB_MATRIX_ENABLE + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + } break; + } + } + return false; +# endif + } + return true; +} + +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } + // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); + + if (host_keyboard_led_state().num_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(NUM_LOCK_INDEX, 255, 255, 255); + } else { + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(NUM_LOCK_INDEX, 0, 0, 0); + } + } + return true; +} + +#endif // NUM_LOCK_INDEX + From 7e923580a51c03a6d45aa4997c7b8e62da6b5cdf Mon Sep 17 00:00:00 2001 From: Ross Montsinger Date: Sun, 24 Sep 2023 23:33:55 -0400 Subject: [PATCH 177/496] Add Palmetto PCB (#21955) --- keyboards/montsinger/palmetto/config.h | 9 + keyboards/montsinger/palmetto/info.json | 649 ++++++++++++++++++ .../palmetto/keymaps/default/keymap.c | 32 + .../montsinger/palmetto/keymaps/via/keymap.c | 32 + .../montsinger/palmetto/keymaps/via/rules.mk | 1 + keyboards/montsinger/palmetto/readme.md | 26 + keyboards/montsinger/palmetto/rules.mk | 1 + 7 files changed, 750 insertions(+) create mode 100755 keyboards/montsinger/palmetto/config.h create mode 100755 keyboards/montsinger/palmetto/info.json create mode 100644 keyboards/montsinger/palmetto/keymaps/default/keymap.c create mode 100644 keyboards/montsinger/palmetto/keymaps/via/keymap.c create mode 100644 keyboards/montsinger/palmetto/keymaps/via/rules.mk create mode 100644 keyboards/montsinger/palmetto/readme.md create mode 100755 keyboards/montsinger/palmetto/rules.mk diff --git a/keyboards/montsinger/palmetto/config.h b/keyboards/montsinger/palmetto/config.h new file mode 100755 index 0000000000..423a60477f --- /dev/null +++ b/keyboards/montsinger/palmetto/config.h @@ -0,0 +1,9 @@ +// Copyright 2023 Ross Montsinger +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U +#define RP2040_FLASH_GENERIC_03H diff --git a/keyboards/montsinger/palmetto/info.json b/keyboards/montsinger/palmetto/info.json new file mode 100755 index 0000000000..efe81dd9c3 --- /dev/null +++ b/keyboards/montsinger/palmetto/info.json @@ -0,0 +1,649 @@ +{ + "manufacturer": "Montsinger", + "keyboard_name": "Palmetto", + "maintainer": "Rossman360", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": false + }, + "matrix_pins": { + "cols": ["GP28", "GP27", "GP29", "GP0", "GP1", "GP9", "GP26", "GP18", "GP10", "GP11", "GP25", "GP24", "GP12", "GP21", "GP13"], + "rows": ["GP5", "GP4", "GP3", "GP2", "GP15"] + }, + "processor": "RP2040", + "url": "https://carolinamech.com", + "usb": { + "device_version": "2.0.1", + "pid": "0x0006", + "vid": "0x524D" + }, + "community_layouts": [ + "60_ansi", + "60_ansi_split_bs_rshift", + "60_ansi_tsangan", + "60_iso", + "60_iso_split_bs_rshift", + "60_iso_tsangan", + "60_tsangan_hhkb", + "60_hhkb" + ], + "layouts": { + "LAYOUT_60_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 12], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 12.5, "y": 4}, + {"matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 12], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 12.5, "y": 4}, + {"matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 12], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 12.5, "y": 4}, + {"matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 12], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 12.5, "y": 4} + ] + }, + "LAYOUT_60_iso_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 12], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 12.5, "y": 4}, + {"matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/montsinger/palmetto/keymaps/default/keymap.c b/keyboards/montsinger/palmetto/keymaps/default/keymap.c new file mode 100644 index 0000000000..5d7b042b27 --- /dev/null +++ b/keyboards/montsinger/palmetto/keymaps/default/keymap.c @@ -0,0 +1,32 @@ +// Copyright 2023 Ross Montsinger +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_60_ansi( + QK_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_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL + ), + + [_FN1] = LAYOUT_60_ansi( + QK_GESC, 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_DEL, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, _______, _______, _______, _______, _______, _______, QK_BOOT + ) +}; diff --git a/keyboards/montsinger/palmetto/keymaps/via/keymap.c b/keyboards/montsinger/palmetto/keymaps/via/keymap.c new file mode 100644 index 0000000000..5d7b042b27 --- /dev/null +++ b/keyboards/montsinger/palmetto/keymaps/via/keymap.c @@ -0,0 +1,32 @@ +// Copyright 2023 Ross Montsinger +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_60_ansi( + QK_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_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL + ), + + [_FN1] = LAYOUT_60_ansi( + QK_GESC, 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_DEL, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, _______, _______, _______, _______, _______, _______, QK_BOOT + ) +}; diff --git a/keyboards/montsinger/palmetto/keymaps/via/rules.mk b/keyboards/montsinger/palmetto/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/montsinger/palmetto/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/montsinger/palmetto/readme.md b/keyboards/montsinger/palmetto/readme.md new file mode 100644 index 0000000000..d237f9c91c --- /dev/null +++ b/keyboards/montsinger/palmetto/readme.md @@ -0,0 +1,26 @@ +# Palmetto PCB + +Palmetto PCB from Montsinger (https://i.imgur.com/VmmAW97.jpeg) + +* Keyboard Maintainer: [Ross Montsinger](https://github.com/rossman360) +* Hardware Supported: RP2040 +* Hardware Availability: [Carolina Mech](https://carolinamech.com) + + +Make example for this keyboard (after setting up your build environment): + + make montsinger/palmetto:default + +Flashing example for this keyboard: + + make montsinger/palmetto:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Hold the "BOOTMODE" button on the back of the PCB and briefly press the "RESET" button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/montsinger/palmetto/rules.mk b/keyboards/montsinger/palmetto/rules.mk new file mode 100755 index 0000000000..8b13789179 --- /dev/null +++ b/keyboards/montsinger/palmetto/rules.mk @@ -0,0 +1 @@ + From 9b0887359bd6828a4071f7ce0dcd35eb0c8f98a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Mart=C3=ADnez?= <58857054+elpekenin@users.noreply.github.com> Date: Mon, 25 Sep 2023 06:17:50 +0200 Subject: [PATCH 178/496] [Feature] Compilation warning if both `keymap.json` and `keymap.c` exist (#19939) Co-authored-by: Nick Brassel --- builddefs/build_json.mk | 10 +++--- builddefs/build_keyboard.mk | 63 ++++++++++++++++++++----------------- builddefs/message.mk | 4 +++ 3 files changed, 43 insertions(+), 34 deletions(-) diff --git a/builddefs/build_json.mk b/builddefs/build_json.mk index 0c034eb2ae..e29d678e48 100644 --- a/builddefs/build_json.mk +++ b/builddefs/build_json.mk @@ -1,17 +1,17 @@ # Look for a json keymap file ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.json)","") KEYMAP_JSON := $(MAIN_KEYMAP_PATH_5)/keymap.json - KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5) + KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_5) else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.json)","") KEYMAP_JSON := $(MAIN_KEYMAP_PATH_4)/keymap.json - KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4) + KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_4) else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.json)","") KEYMAP_JSON := $(MAIN_KEYMAP_PATH_3)/keymap.json - KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3) + KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_3) else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.json)","") KEYMAP_JSON := $(MAIN_KEYMAP_PATH_2)/keymap.json - KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2) + KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_2) else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.json)","") KEYMAP_JSON := $(MAIN_KEYMAP_PATH_1)/keymap.json - KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1) + KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_1) endif diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk index e93ab97cc1..b81e00b0d3 100644 --- a/builddefs/build_keyboard.mk +++ b/builddefs/build_keyboard.mk @@ -127,39 +127,44 @@ include $(INFO_RULES_MK) include $(BUILDDEFS_PATH)/build_json.mk # Pull in keymap level rules.mk -ifeq ("$(wildcard $(KEYMAP_PATH))", "") - # Look through the possible keymap folders until we find a matching keymap.c - ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","") - -include $(MAIN_KEYMAP_PATH_1)/rules.mk - KEYMAP_C := $(MAIN_KEYMAP_PATH_1)/keymap.c - KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1) - else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.c)","") - -include $(MAIN_KEYMAP_PATH_2)/rules.mk - KEYMAP_C := $(MAIN_KEYMAP_PATH_2)/keymap.c - KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2) - else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.c)","") - -include $(MAIN_KEYMAP_PATH_3)/rules.mk - KEYMAP_C := $(MAIN_KEYMAP_PATH_3)/keymap.c - KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3) - else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.c)","") - -include $(MAIN_KEYMAP_PATH_4)/rules.mk - KEYMAP_C := $(MAIN_KEYMAP_PATH_4)/keymap.c - KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4) - else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.c)","") - -include $(MAIN_KEYMAP_PATH_5)/rules.mk - KEYMAP_C := $(MAIN_KEYMAP_PATH_5)/keymap.c - KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5) - else ifneq ($(LAYOUTS),) - # If we haven't found a keymap yet fall back to community layouts - include $(BUILDDEFS_PATH)/build_layout.mk - else - $(call CATASTROPHIC_ERROR,Invalid keymap,Could not find keymap) - # this state should never be reached - endif +# Look through the possible keymap folders until we find a matching keymap.c +ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","") + -include $(MAIN_KEYMAP_PATH_1)/rules.mk + KEYMAP_C := $(MAIN_KEYMAP_PATH_1)/keymap.c + KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1) +else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.c)","") + -include $(MAIN_KEYMAP_PATH_2)/rules.mk + KEYMAP_C := $(MAIN_KEYMAP_PATH_2)/keymap.c + KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2) +else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.c)","") + -include $(MAIN_KEYMAP_PATH_3)/rules.mk + KEYMAP_C := $(MAIN_KEYMAP_PATH_3)/keymap.c + KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3) +else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.c)","") + -include $(MAIN_KEYMAP_PATH_4)/rules.mk + KEYMAP_C := $(MAIN_KEYMAP_PATH_4)/keymap.c + KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4) +else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.c)","") + -include $(MAIN_KEYMAP_PATH_5)/rules.mk + KEYMAP_C := $(MAIN_KEYMAP_PATH_5)/keymap.c + KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5) +else ifneq ($(LAYOUTS),) + # If we haven't found a keymap yet fall back to community layouts + include $(BUILDDEFS_PATH)/build_layout.mk +# Not finding keymap.c is fine if we found a keymap.json +else ifeq ("$(wildcard $(KEYMAP_JSON_PATH))", "") + $(call CATASTROPHIC_ERROR,Invalid keymap,Could not find keymap) + # this state should never be reached endif # Have we found a keymap.json? ifneq ("$(wildcard $(KEYMAP_JSON))", "") + ifneq ("$(wildcard $(KEYMAP_C))", "") + $(call WARNING_MESSAGE,Keymap is specified as both keymap.json and keymap.c -- keymap.json file wins.) + endif + + KEYMAP_PATH := $(KEYMAP_JSON_PATH) + KEYMAP_C := $(INTERMEDIATE_OUTPUT)/src/keymap.c KEYMAP_H := $(INTERMEDIATE_OUTPUT)/src/config.h diff --git a/builddefs/message.mk b/builddefs/message.mk index c7cc5171e7..7c8f87f990 100644 --- a/builddefs/message.mk +++ b/builddefs/message.mk @@ -103,6 +103,10 @@ MSG_BOOTLOADER_NOT_FOUND = $(ERROR_COLOR)ERROR:$(NO_COLOR) $(MSG_BOOTLOADER_NOT_ BOOTLOADER_RETRY_TIME ?= 0.5 MSG_BOOTLOADER_NOT_FOUND_QUICK_RETRY = $(MSG_BOOTLOADER_NOT_FOUND_BASE) Trying again every $(BOOTLOADER_RETRY_TIME)s (Ctrl+C to cancel) +define WARNING_MESSAGE + $(shell printf "\n %-99s $(WARN_STRING)\n" "$1" >&2) +endef + define CATASTROPHIC_ERROR $(shell printf "\n * %-99s $(ERROR_STRING)\n" "$2" >&2) $(error $1) From a931e6d7bd10a081703fafff6f43c30521815576 Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 25 Sep 2023 14:18:40 +1000 Subject: [PATCH 179/496] Update WS2812 docs and add APA102 docs (#22106) Co-authored-by: Nick Brassel --- docs/_summary.md | 1 + docs/apa102_driver.md | 49 ++++++ docs/reference_info_json.md | 2 +- docs/ws2812_driver.md | 336 ++++++++++++++++++++---------------- 4 files changed, 239 insertions(+), 149 deletions(-) create mode 100644 docs/apa102_driver.md diff --git a/docs/_summary.md b/docs/_summary.md index 26a543aee4..28460f5ba9 100644 --- a/docs/_summary.md +++ b/docs/_summary.md @@ -148,6 +148,7 @@ * [Compatible Microcontrollers](compatible_microcontrollers.md) * [Drivers](hardware_drivers.md) * [ADC Driver](adc_driver.md) + * [APA102 Driver](apa102_driver.md) * [Audio Driver](audio_driver.md) * [I2C Driver](i2c_driver.md) * [SPI Driver](spi_driver.md) diff --git a/docs/apa102_driver.md b/docs/apa102_driver.md new file mode 100644 index 0000000000..1da2de6ca3 --- /dev/null +++ b/docs/apa102_driver.md @@ -0,0 +1,49 @@ +# APA102 Driver :id=apa102-driver + +This driver provides support for APA102 addressable RGB LEDs. They are similar to the [WS2812](ws2812_driver.md) LEDs, but have increased data and refresh rates. + +## Usage :id=usage + +In most cases, the APA102 driver code is automatically included if you are using either the [RGBLight](feature_rgblight.md) or [RGB Matrix](feature_rgb_matrix.md) feature with the `apa102` driver set, and you would use those APIs instead. + +However, if you need to use the driver standalone, add the following to your `rules.mk`: + +```make +APA102_DRIVER_REQUIRED = yes +``` + +You can then call the APA102 API by including `apa102.h` in your code. + +## Basic Configuration :id=basic-configuration + +Add the following to your `config.h`: + +|Define |Default |Description | +|---------------------------|-------------|------------------------------------------------------------------| +|`APA102_DI_PIN` |*Not defined*|The GPIO pin connected to the DI pin of the first LED in the chain| +|`APA102_CI_PIN` |*Not defined*|The GPIO pin connected to the CI pin of the first LED in the chain| +|`APA102_DEFAULT_BRIGHTNESS`|`31` |The default global brightness level of the LEDs, from 0 to 31 | + +## API :id=api + +### `void apa102_setleds(rgb_led_t *start_led, uint16_t num_leds)` + +Send RGB data to the APA102 LED chain. + +#### Arguments :id=api-apa102-setleds-arguments + + - `rgb_led_t *start_led` + A pointer to the LED array. + - `uint16_t num_leds` + The length of the LED array. + +--- + +### `void apa102_set_brightness(uint8_t brightness)` + +Set the global brightness. + +#### Arguments :id=api-apa102-set-brightness-arguments + + - `uint8_t brightness` + The brightness level to set, from 0 to 31. diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index c8cb72101e..323db18664 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -88,7 +88,7 @@ You can create `info.json` files at every level under `qmk_firmware/keyboards/RST period between frames. -The default setting is 280 µs, which should work for most cases, but this can be overridden in your config.h. e.g.: - -```c -#define WS2812_TRST_US 80 +```make +WS2812_DRIVER_REQUIRED = yes ``` -#### Byte Order +You can then call the WS2812 API by including `ws2812.h` in your code. -Some variants of the WS2812 may have their color components in a different physical or logical order. For example, the WS2812B-2020 has physically swapped red and green LEDs, which causes the wrong color to be displayed, because the default order of the bytes sent over the wire is defined as GRB. -In this case, you can change the byte order by defining `WS2812_BYTE_ORDER` as one of the following values: +## Basic Configuration :id=basic-configuration -| Byte order | Known devices | -| --------------------------------- | ----------------------------- | -| `WS2812_BYTE_ORDER_GRB` (default) | Most WS2812's, SK6812, SK6805 | -| `WS2812_BYTE_ORDER_RGB` | WS2812B-2020 | -| `WS2812_BYTE_ORDER_BGR` | TM1812 | +Add the following to your `config.h`: +|Define |Default |Description | +|-------------------|-----------------------|------------------------------------------------------------------------------------------------| +|`WS2812_DI_PIN` |*Not defined* |The GPIO pin connected to the DI pin of the first LED in the chain | +|`WS2812_LED_COUNT` |*Not defined* |Number of LEDs in the WS2812 chain - automatically set when RGBLight or RGB Matrix is configured| +|`WS2812_TIMING` |`1250` |The total length of a bit (TH+TL) in nanoseconds | +|`WS2812_T1H` |`900` |The length of a "1" bit's high phase in nanoseconds | +|`WS2812_T0H` |`350` |The length of a "0" bit's high phase in nanoseconds | +|`WS2812_TRST_US` |`280` |The length of the reset phase in microseconds | +|`WS2812_BYTE_ORDER`|`WS2812_BYTE_ORDER_GRB`|The byte order of the RGB data | -### Bitbang -Default driver, the absence of configuration assumes this driver. To configure it, add this to your rules.mk: +### Timing Adjustment :id=timing-adjustment + +The WS2812 LED communication protocol works by encoding a "1" bit with a long high pulse (T1H), and a "0" bit with a shorter pulse (T0H). The total cycle length of a bit is the same. +The "reset" pulse (TRST) latches the sent RGB data to all of the LEDs and denotes a completed "frame". + +Some WS2812 variants have slightly different timing parameter requirements, which can be accounted for if necessary using the above `#define`s in your `config.h`. + +### Byte Order :id=byte-order + +Some WS2812 variants may have their color components in a different physical or logical order. For example, the WS2812B-2020 has physically swapped red and green LEDs, which causes the wrong color to be displayed, because the default order of the bytes sent over the wire is defined as GRB. +If you find your LED colors are consistently swapped, you may need to change the byte order by adding the following to your `config.h`: + +```c +#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_GRB +``` + +Where the byte order may be one of: + +|Byte Order|Known Devices | +|----------|----------------------------| +|`GRB` |Most WS2812s, SK6812, SK6805| +|`RGB` |WS2812B-2020 | +|`BGR` |TM1812 | + +## Driver Configuration :id=driver-configuration + +Driver selection can be configured in `rules.mk` as `WS2812_DRIVER`, or in `info.json` as `ws2812.driver`. Valid values are `bitbang` (default), `i2c`, `spi`, `pwm`, `vendor`, or `custom`. See below for information on individual drivers. + +### Bitbang Driver :id=bitbang-driver + +This is the default WS2812 driver. It operates by "bit-banging" ie. directly toggling the GPIO. + +Please note that on AVR devices, due to the tight timing requirements longer chains and/or heavy CPU loads may cause visible lag. Unfortunately this driver is usually the only option for AVR. ```make WS2812_DRIVER = bitbang ``` -!> This driver is not hardware accelerated and may not be performant on heavily loaded systems. +### I2C Driver :id=i2c-driver -#### Adjusting bit timings - -The WS2812 LED communication topology depends on a serialized timed window. Different versions of the addressable LEDs have differing requirements for the timing parameters, for instance, of the SK6812. -You can tune these parameters through the definition of the following macros: - -| Macro | Default | AVR | ARM | -| --------------- | ---------------------------- | ------------------ | ------------------ | -| `WS2812_TIMING` | `1250` | :heavy_check_mark: | :heavy_check_mark: | -| `WS2812_T0H` | `350` | :heavy_check_mark: | :heavy_check_mark: | -| `WS2812_T0L` | `WS2812_TIMING - WS2812_T0H` | | :heavy_check_mark: | -| `WS2812_T1H` | `900` | :heavy_check_mark: | :heavy_check_mark: | -| `WS2812_T1L` | `WS2812_TIMING - WS2812_T1H` | | :heavy_check_mark: | - -### I2C -Targeting boards where WS2812 support is offloaded to a 2nd MCU. Currently the driver is limited to AVR given the known consumers are ps2avrGB/BMC. To configure it, add this to your rules.mk: +A specialized driver mainly used for PS2AVRGB (Bootmapper Client) boards, which possess an ATtiny85 that handles the WS2812 LEDs. ```make WS2812_DRIVER = i2c ``` -Configure the hardware via your config.h: -```c -#define WS2812_I2C_ADDRESS 0xB0 // default: 0xB0 -#define WS2812_I2C_TIMEOUT 100 // default: 100 -``` +The following `#define`s apply only to the `i2c` driver: -### SPI -Targeting STM32 boards where WS2812 support is offloaded to an SPI hardware device. The advantage is that the use of DMA offloads processing of the WS2812 protocol from the MCU. `WS2812_DI_PIN` for this driver is the configured SPI MOSI pin. Due to the nature of repurposing SPI to drive the LEDs, the other SPI pins, MISO and SCK, **must** remain unused. To configure it, add this to your rules.mk: +|Define |Default|Description | +|--------------------|-------|---------------------------------| +|`WS2812_I2C_ADDRESS`|`0xB0` |The I2C address of the ATtiny85. | +|`WS2812_I2C_TIMEOUT`|`100` |The I2C timeout, in milliseconds.| -```make -WS2812_DRIVER = spi -``` +### PIO Driver :id=pio-driver -Configure the hardware via your config.h: -```c -#define WS2812_SPI_DRIVER SPID1 // default: SPID1 -#define WS2812_SPI_MOSI_PAL_MODE 5 // MOSI pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5 -#define WS2812_SPI_SCK_PIN B3 // Required for F072, may be for others -- SCK pin, see the respective datasheet for the appropriate values for your MCU. default: unspecified -#define WS2812_SPI_SCK_PAL_MODE 5 // SCK pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5 -``` +This driver is RP2040-only, and leverages the onboard PIO (programmable I/O) system and DMA to offload processing from the CPU. -You must also turn on the SPI feature in your halconf.h and mcuconf.h - -#### Circular Buffer Mode -Some boards may flicker while in the normal buffer mode. To fix this issue, circular buffer mode may be used to rectify the issue. - -By default, the circular buffer mode is disabled. - -To enable this alternative buffer mode, place this into your `config.h` file: -```c -#define WS2812_SPI_USE_CIRCULAR_BUFFER -``` - -#### Setting baudrate with divisor -To adjust the baudrate at which the SPI peripheral is configured, users will need to derive the target baudrate from the clock tree provided by STM32CubeMX. - -Only divisors of 2, 4, 8, 16, 32, 64, 128 and 256 are supported by hardware. - -| Define | Default | Description | -| -------------------- | ------- | ----------------------------------- | -| `WS2812_SPI_DIVISOR` | `16` | SPI source clock peripheral divisor | - -#### Testing Notes - -While not an exhaustive list, the following table provides the scenarios that have been partially validated: - -| | SPI1 | SPI2 | SPI3 | -| ---- | ------------------------------------------- | --------------------------------------- | --------------------- | -| f072 | ? | B15 :heavy_check_mark: (needs SCK: B13) | N/A | -| f103 | A7 :heavy_check_mark: | B15 :heavy_check_mark: | N/A | -| f303 | A7 :heavy_check_mark: B5 :heavy_check_mark: | B15 :heavy_check_mark: | B5 :heavy_check_mark: | - -*Other supported ChibiOS boards and/or pins may function, it will be highly chip and configuration dependent.* - -### PWM - -Targeting STM32 boards where WS2812 support is offloaded to an PWM timer and DMA stream. The advantage is that the use of DMA offloads processing of the WS2812 protocol from the MCU. To configure it, add this to your rules.mk: - -```make -WS2812_DRIVER = pwm -``` - -Configure the hardware via your config.h: -```c -#define WS2812_PWM_DRIVER PWMD2 // default: PWMD2 -#define WS2812_PWM_CHANNEL 2 // default: 2 -#define WS2812_PWM_PAL_MODE 2 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2 -//#define WS2812_PWM_COMPLEMENTARY_OUTPUT // Define for a complementary timer output (TIMx_CHyN); omit for a normal timer output (TIMx_CHy). -#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. -#define WS2812_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. -#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM2_UP // DMAMUX configuration for TIMx_UP -- only required if your MCU has a DMAMUX peripheral, see the respective reference manual for the appropriate values for your MCU. -``` - -Note that using a complementary timer output (TIMx_CHyN) is possible only for advanced-control timers (TIM1, TIM8, TIM20 on STM32), and the `STM32_PWM_USE_ADVANCED` option in mcuconf.h must be set to `TRUE`. Complementary outputs of general-purpose timers are not supported due to ChibiOS limitations. - -You must also turn on the PWM feature in your halconf.h and mcuconf.h - -#### Testing Notes - -While not an exhaustive list, the following table provides the scenarios that have been partially validated: - -| | Status | -| --------- | ------------------ | -| f072 | ? | -| f103 | :heavy_check_mark: | -| f303 | :heavy_check_mark: | -| f401/f411 | :heavy_check_mark: | - -*Other supported ChibiOS boards and/or pins may function, it will be highly chip and configuration dependent.* - -### PIO - -Targeting Raspberry Pi RP2040 boards only where WS2812 support is offloaded to an dedicated PIO implementation. This offloads processing of the WS2812 protocol from the MCU to a dedicated PIO program using DMA transfers. - -To configure it, add this to your rules.mk: +The WS2812 PIO program uses one state machine, six instructions and one DMA interrupt handler callback. Due to the implementation the time resolution for this driver is 50 ns - any value not specified in this interval will be rounded to the next matching interval. ```make WS2812_DRIVER = vendor ``` -Configure the hardware via your config.h: -```c -#define WS2812_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the WS2812 implementation uses the PIO0 peripheral +### PWM Driver :id=pwm-driver + +This driver is ARM-only, and leverages the onboard PWM peripheral and DMA to offload processing from the CPU. + +```make +WS2812_DRIVER = pwm ``` -The WS2812 PIO programm uses 1 state machine, 6 instructions and one DMA interrupt handler callback. Due to the implementation the time resolution for this drivers is 50ns, any value not specified in this interval will be rounded to the next matching interval. +### SPI Driver :id=spi-driver -### Push Pull and Open Drain Configuration -The default configuration is a push pull on the defined pin. -This can be configured for bitbang, PWM and SPI. +This driver is ARM-only, and leverages the onboard SPI peripheral and DMA to offload processing from the CPU. The DI pin **must** be connected to the MOSI pin on the MCU, and all other SPI pins **must** be left unused. This is also very dependent on your MCU's SPI peripheral clock speed, and may or may not be possible depending on the MCU selected. -Note: This only applies to STM32 boards. +```make +WS2812_DRIVER = spi +``` + +## ChibiOS/ARM Configuration :id=arm-configuration + +The following defines apply only to ARM devices: + +|Define |Default |Description | +|------------|------------------------------|---------------------------------------------------------------------------------| +|`WS2812_T1L`|`(WS2812_TIMING - WS2812_T1H)`|The length of a "1" bit's low phase in nanoseconds (bitbang and PIO drivers only)| +|`WS2812_T0L`|`(WS2812_TIMING - WS2812_T0H)`|The length of a "0" bit's low phase in nanoseconds (bitbang and PIO drivers only)| + +### Push-Pull and Open Drain :id=push-pull-open-drain + +By default, the GPIO used for data transmission is configured as a *push-pull* output, meaning the pin is effectively always driven either to VCC or to ground. + +For situations where the logic level voltage is lower than the power supply voltage, however, this can pose an issue. The solution is to configure the pin for *open drain* mode instead, and use a pullup resistor between the DI pin and VCC. In this mode, the MCU can only pull the GPIO *low*, or leave it floating. The pullup resistor is then responsible for pulling the line high, when the MCU is not driving the GPIO. + +To configure the DI pin for open drain configuration, add the following to your `config.h`: - To configure the `WS2812_DI_PIN` to open drain configuration add this to your config.h file: ```c #define WS2812_EXTERNAL_PULLUP ``` + +### SPI Driver :id=arm-spi-driver + +Depending on the ChibiOS board configuration, you may need to enable SPI at the keyboard level. For STM32, this would look like: + +`halconf.h`: +```c +#define HAL_USE_SPI TRUE +``` +`mcuconf.h`: +```c +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE +``` + +The following `define`s apply only to the `spi` driver: + +|Define |Default |Description | +|--------------------------------|-------------|-------------------------------------------------------------------------------| +|`WS2812_SPI_DRIVER` |`SPID1` |The SPI driver to use | +|`WS2812_SPI_MOSI_PAL_MODE` |`5` |The MOSI pin alternative function to use | +|`WS2812_SPI_SCK_PIN` |*Not defined*|The SCK pin - required for F072 and possibly others | +|`WS2812_SPI_SCK_PAL_MODE` |`5` |The SCK pin alternative function to use - required for F072 and possibly others| +|`WS2812_SPI_DIVISOR` |`16` |The divisor used to adjust the baudrate | +|`WS2812_SPI_USE_CIRCULAR_BUFFER`|*Not defined*|Enable a circular buffer for improved rendering | + +#### Setting the Baudrate :id=arm-spi-baudrate + +To adjust the SPI baudrate, you will need to derive the target baudrate from the clock tree provided by STM32CubeMX, and add the following to your `config.h`: + +```c +#define WS2812_SPI_DIVISOR 16 +``` + +Only divisors of 2, 4, 8, 16, 32, 64, 128 and 256 are supported on STM32 devices. Other MCUs may have similar constraints -- check the reference manual for your respective MCU for specifics. + +#### Circular Buffer :id=arm-spi-circular-buffer + +A circular buffer can be enabled if you experience flickering. + +To enable the circular buffer, add the following to your `config.h`: + +```c +#define WS2812_SPI_USE_CIRCULAR_BUFFER +``` + +### PIO Driver :id=arm-pio-driver + +The following `#define`s apply only to the PIO driver: + +|Define |Default |Description | +|---------------------|-------------|---------------------------------------| +|`WS2812_PIO_USE_PIO1`|*Not defined*|Use the PIO1 peripheral instead of PIO0| + +### PWM Driver :id=arm-pwm-driver + +Depending on the ChibiOS board configuration, you may need to enable PWM at the keyboard level. For STM32, this would look like: + +`halconf.h`: +```c +#define HAL_USE_PWM TRUE +``` +`mcuconf.h`: +```c +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE +``` + +The following `#define`s apply only to the `pwm` driver: + +|Define |Default |Description | +|---------------------------------|--------------------|------------------------------------------------------------------------------------------| +|`WS2812_PWM_DRIVER` |`PWMD2` |The PWM driver to use | +|`WS2812_PWM_CHANNEL` |`2` |The PWM channel to use | +|`WS2812_PWM_PAL_MODE` |`2` |The pin alternative function to use | +|`WS2812_DMA_STREAM` |`STM32_DMA1_STREAM2`|The DMA Stream for `TIMx_UP` | +|`WS2812_DMA_CHANNEL` |`2` |The DMA Channel for `TIMx_UP` | +|`WS2812_DMAMUX_ID` |*Not defined* |The DMAMUX configuration for `TIMx_UP` - only required if your MCU has a DMAMUX peripheral| +|`WS2812_PWM_COMPLEMENTARY_OUTPUT`|*Not defined* |Whether the PWM output is complementary (`TIMx_CHyN`) | + +?> Using a complementary timer output (`TIMx_CHyN`) is possible only for advanced-control timers (1, 8 and 20 on STM32), and the `STM32_PWM_USE_ADVANCED` option in `mcuconf.h` must be set to `TRUE`. Complementary outputs of general-purpose timers are not supported due to ChibiOS limitations. + +## API :id=api + +### `void ws2812_setleds(rgb_led_t *ledarray, uint16_t number_of_leds)` :id=api-ws2812-setleds + +Send RGB data to the WS2812 LED chain. + +#### Arguments :id=api-ws2812-setleds-arguments + + - `rgb_led_t *ledarray` + A pointer to the LED array. + - `uint16_t number_of_leds` + The length of the LED array. From 538978b782bdd3ed034c477e22fa60bf541e3a27 Mon Sep 17 00:00:00 2001 From: spbgzh <72414103+spbgzh@users.noreply.github.com> Date: Mon, 25 Sep 2023 08:13:00 +0300 Subject: [PATCH 180/496] Add zoom98 (#22062) Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis --- keyboards/meletrix/zoom98/config.h | 24 ++ keyboards/meletrix/zoom98/info.json | 215 ++++++++++++++++++ .../meletrix/zoom98/keymaps/default/keymap.c | 43 ++++ .../meletrix/zoom98/keymaps/default/rules.mk | 1 + .../meletrix/zoom98/keymaps/via/keymap.c | 44 ++++ .../meletrix/zoom98/keymaps/via/rules.mk | 3 + keyboards/meletrix/zoom98/readme.md | 25 ++ keyboards/meletrix/zoom98/rules.mk | 1 + keyboards/meletrix/zoom98/zoom98.c | 31 +++ 9 files changed, 387 insertions(+) create mode 100644 keyboards/meletrix/zoom98/config.h create mode 100644 keyboards/meletrix/zoom98/info.json create mode 100644 keyboards/meletrix/zoom98/keymaps/default/keymap.c create mode 100644 keyboards/meletrix/zoom98/keymaps/default/rules.mk create mode 100644 keyboards/meletrix/zoom98/keymaps/via/keymap.c create mode 100644 keyboards/meletrix/zoom98/keymaps/via/rules.mk create mode 100644 keyboards/meletrix/zoom98/readme.md create mode 100644 keyboards/meletrix/zoom98/rules.mk create mode 100644 keyboards/meletrix/zoom98/zoom98.c diff --git a/keyboards/meletrix/zoom98/config.h b/keyboards/meletrix/zoom98/config.h new file mode 100644 index 0000000000..88c82de3bf --- /dev/null +++ b/keyboards/meletrix/zoom98/config.h @@ -0,0 +1,24 @@ +/* +Copyright 2023 meletrix + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/meletrix/zoom98/info.json b/keyboards/meletrix/zoom98/info.json new file mode 100644 index 0000000000..0a57fc3bb6 --- /dev/null +++ b/keyboards/meletrix/zoom98/info.json @@ -0,0 +1,215 @@ +{ + "keyboard_name": "zoom98", + "manufacturer": "meletrix", + "url": "https://meletrix.com/", + "maintainer": "spbgzh", + "usb": { + "vid": "0x36B5", + "pid": "0x27D6", + "device_version": "0.0.1" + }, + "encoder": { + "rotary": [ + {"pin_a": "B2", "pin_b": "B1", "resolution": 2} + ] + }, + "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 3 + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "rgb_matrix": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "encoder": true + }, + "ws2812": { + "pin": "B7" + }, + "rgb_matrix":{ + "driver":"ws2812", + "max_brightness": 200, + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron":true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "typing_heatmap": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_multinexus": true, + "splash": true, + "solid_splash": true + }, + "layout": [ + { "matrix": [0, 1], "x": 0, "y": 0, "flags": 4 }, + { "matrix": [0, 2], "x": 0, "y": 0, "flags": 4 }, + { "matrix": [2, 1], "x": 0, "y": 1, "flags": 4 }, + { "matrix": [2, 2], "x": 0, "y": 1, "flags": 4 }, + { "matrix": [4, 1], "x": 0, "y": 2, "flags": 4 }, + { "matrix": [4, 2], "x": 0, "y": 2, "flags": 4 }, + { "matrix": [6, 1], "x": 0, "y": 3, "flags": 4 }, + { "matrix": [6, 2], "x": 0, "y": 3, "flags": 4 }, + { "matrix": [8, 1], "x": 0, "y": 4, "flags": 4 }, + { "matrix": [8, 2], "x": 0, "y": 4, "flags": 4 }, + { "matrix": [1, 8], "x": 20.5, "y": 0, "flags": 4 }, + { "matrix": [1, 7], "x": 20.5, "y": 0, "flags": 4 }, + { "matrix": [3, 8], "x": 20.5, "y": 1, "flags": 4 }, + { "matrix": [3, 7], "x": 20.5, "y": 1, "flags": 4 }, + { "matrix": [5, 8], "x": 20.5, "y": 2, "flags": 4 }, + { "matrix": [5, 7], "x": 20.5, "y": 2, "flags": 4 }, + { "matrix": [7, 8], "x": 20.5, "y": 3, "flags": 4 }, + { "matrix": [7, 7], "x": 20.5, "y": 3, "flags": 4 }, + { "matrix": [9, 8], "x": 20.5, "y": 4, "flags": 4 }, + { "matrix": [9, 7], "x": 20.5, "y": 4, "flags": 4 }, + { "matrix": [6, 0], "x": 0, "y": 3.25, "flags": 1 } + ] + }, + "matrix_pins": { + "rows": ["E6", "B0", "F1", "D0", "F0", "B3", "C7", "D6", "B6", "C6", "B5", "D4"], + "cols": ["F7", "F4", "F6", "D2", "F5", "D5", "D1", "D7", "D3", "B4"] + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "label": "Esc", "x": 0, "y": 0}, + {"matrix": [0, 1], "label": "F1", "x": 1.25, "y": 0}, + {"matrix": [0, 2], "label": "F2", "x": 2.25, "y": 0}, + {"matrix": [0, 3], "label": "F3", "x": 3.25, "y": 0}, + {"matrix": [0, 4], "label": "F4", "x": 4.25, "y": 0}, + {"matrix": [0, 5], "label": "F5", "x": 5.5, "y": 0}, + {"matrix": [0, 6], "label": "F6", "x": 6.5, "y": 0}, + {"matrix": [0, 7], "label": "F7", "x": 7.5, "y": 0}, + {"matrix": [0, 8], "label": "F8", "x": 8.5, "y": 0}, + {"matrix": [0, 9], "label": "F9", "x": 9.75, "y": 0}, + {"matrix": [1, 0], "label": "F10", "x": 10.75, "y": 0}, + {"matrix": [1, 1], "label": "F11", "x": 11.75, "y": 0}, + {"matrix": [1, 2], "label": "F12", "x": 12.75, "y": 0}, + {"matrix": [1, 3], "label": "F13", "x": 14, "y": 0}, + {"matrix": [1, 4], "label": "F14", "x": 15.25, "y": 0}, + {"matrix": [1, 5], "label": "Mute", "x": 16.25, "y": 0}, + {"matrix": [1, 6], "label": "Home", "x": 17.5, "y": 0}, + {"matrix": [1, 7], "label": "Prtsc", "x": 18.5, "y": 0}, + {"matrix": [1, 8], "label": "Scroll", "x": 19.5, "y": 0}, + {"matrix": [1, 9], "label": "Pause", "x": 20.5, "y": 0}, + + {"matrix": [2, 0], "label": "~", "x": 0, "y": 1.25}, + {"matrix": [2, 1], "label": "1", "x": 1, "y": 1.25}, + {"matrix": [2, 2], "label": "2", "x": 2, "y": 1.25}, + {"matrix": [2, 3], "label": "3", "x": 3, "y": 1.25}, + {"matrix": [2, 4], "label": "4", "x": 4, "y": 1.25}, + {"matrix": [2, 5], "label": "5", "x": 5, "y": 1.25}, + {"matrix": [2, 6], "label": "6", "x": 6, "y": 1.25}, + {"matrix": [2, 7], "label": "7", "x": 7, "y": 1.25}, + {"matrix": [2, 8], "label": "8", "x": 8, "y": 1.25}, + {"matrix": [2, 9], "label": "9", "x": 9, "y": 1.25}, + {"matrix": [3, 0], "label": "0", "x": 10, "y": 1.25}, + {"matrix": [3, 1], "label": "-", "x": 11, "y": 1.25}, + {"matrix": [3, 2], "label": "=", "x": 12, "y": 1.25}, + {"matrix": [3, 3], "label": "Backspace", "x": 13, "y": 1.25}, + {"matrix": [7, 4], "label": "Backspace1", "x": 14, "y": 1.25}, + {"matrix": [3, 4], "label": "Ins", "x": 15.25, "y": 1.25}, + {"matrix": [3, 5], "label": "PageUp", "x": 16.25, "y": 1.25}, + {"matrix": [3, 6], "label": "Num", "x": 17.5, "y": 1.25}, + {"matrix": [3, 7], "label": "//", "x": 18.5, "y": 1.25}, + {"matrix": [3, 8], "label": "*", "x": 19.5, "y": 1.25}, + {"matrix": [3, 9], "label": "-", "x": 20.5, "y": 1.25}, + + {"matrix": [4, 0], "label": "Tab", "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [4, 1], "label": "Q", "x": 1.5, "y": 2.25}, + {"matrix": [4, 2], "label": "W", "x": 2.5, "y": 2.25}, + {"matrix": [4, 3], "label": "E", "x": 3.5, "y": 2.25}, + {"matrix": [4, 4], "label": "R", "x": 4.5, "y": 2.25}, + {"matrix": [4, 5], "label": "T", "x": 5.5, "y": 2.25}, + {"matrix": [4, 6], "label": "Y", "x": 6.5, "y": 2.25}, + {"matrix": [4, 7], "label": "U", "x": 7.5, "y": 2.25}, + {"matrix": [4, 8], "label": "I", "x": 8.5, "y": 2.25}, + {"matrix": [4, 9], "label": "O", "x": 9.5, "y": 2.25}, + {"matrix": [5, 0], "label": "P", "x": 10.5, "y": 2.25}, + {"matrix": [5, 1], "label": "[", "x": 11.5, "y": 2.25}, + {"matrix": [5, 2], "label": "]", "x": 12.5, "y": 2.25}, + {"matrix": [5, 3], "label": "\\", "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [5, 4], "label": "Delete", "x": 15.25, "y": 2.25}, + {"matrix": [5, 5], "label": "PageDown", "x": 16.25, "y": 2.25}, + {"matrix": [5, 6], "label": "7", "x": 17.5, "y": 2.25}, + {"matrix": [5, 7], "label": "8", "x": 18.5, "y": 2.25}, + {"matrix": [5, 8], "label": "9", "x": 19.5, "y": 2.25}, + + {"matrix": [6, 0], "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [6, 1], "label": "A", "x": 1.75, "y": 3.25}, + {"matrix": [6, 2], "label": "S", "x": 2.75, "y": 3.25}, + {"matrix": [6, 3], "label": "D", "x": 3.75, "y": 3.25}, + {"matrix": [6, 4], "label": "F", "x": 4.75, "y": 3.25}, + {"matrix": [6, 5], "label": "G", "x": 5.75, "y": 3.25}, + {"matrix": [6, 6], "label": "H", "x": 6.75, "y": 3.25}, + {"matrix": [6, 7], "label": "J", "x": 7.75, "y": 3.25}, + {"matrix": [6, 8], "label": "K", "x": 8.75, "y": 3.25}, + {"matrix": [6, 9], "label": "L", "x": 9.75, "y": 3.25}, + {"matrix": [7, 0], "label": ";", "x": 10.75, "y": 3.25}, + {"matrix": [7, 1], "label": "'", "x": 11.75, "y": 3.25}, + {"matrix": [7, 2], "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [7, 6], "label": "4", "x": 17.5, "y": 3.25}, + {"matrix": [7, 7], "label": "5", "x": 18.5, "y": 3.25}, + {"matrix": [7, 8], "label": "6", "x": 19.5, "y": 3.25}, + {"matrix": [7, 9], "label": "+", "x": 20.5, "y": 2.25,"h":2}, + + {"matrix": [8, 0], "label": "Shift1", "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [8, 1], "label": "Shift2", "x": 1.25, "y": 4.25}, + {"matrix": [8, 2], "label": "Z", "x": 2.25, "y": 4.25}, + {"matrix": [8, 3], "label": "X", "x": 3.25, "y": 4.25}, + {"matrix": [8, 4], "label": "C", "x": 4.25, "y": 4.25}, + {"matrix": [8, 5], "label": "V", "x": 5.25, "y": 4.25}, + {"matrix": [8, 6], "label": "B", "x": 6.25, "y": 4.25}, + {"matrix": [8, 7], "label": "N", "x": 7.25, "y": 4.25}, + {"matrix": [8, 8], "label": "M", "x": 8.25, "y": 4.25}, + {"matrix": [8, 9], "label": ",", "x": 9.25, "y": 4.25}, + {"matrix": [9, 0], "label": ".", "x": 10.25, "y": 4.25}, + {"matrix": [9, 1], "label": "/", "x": 11.25, "y": 4.25}, + {"matrix": [9, 2], "label": "Shift1", "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [9, 3], "label": "Shift2", "x": 14, "y": 4.25}, + {"matrix": [9, 4], "label": "\u2191", "x": 15.25, "y": 4.25}, + {"matrix": [9, 6], "label": "1", "x": 17.5, "y": 4.25}, + {"matrix": [9, 7], "label": "2", "x": 18.5, "y": 4.25}, + {"matrix": [9, 8], "label": "3", "x": 19.5, "y": 4.25}, + + {"matrix": [10, 0], "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [10, 2], "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [10, 5], "label": "Space", "x": 3.75, "y": 5.25, "w": 2.25}, + {"matrix": [10, 6], "label": "Space", "x": 6, "y": 5.25, "w": 1.25}, + {"matrix": [10, 7], "label": "Space", "x": 7.25, "y": 5.25, "w": 2.75}, + {"matrix": [11, 0], "label": "Alt", "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [11, 1], "label": "Fn", "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [11, 2], "label": "Ctrl", "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [11, 3], "label": "\u2190", "x": 14.25, "y": 5.25}, + {"matrix": [11, 4], "label": "\u2193", "x": 15.25, "y": 5.25}, + {"matrix": [11, 5], "label": "\u2192", "x": 16.25, "y": 5.25}, + {"matrix": [11, 7], "label": "0", "x": 17.5, "y": 5.25, "w": 2}, + {"matrix": [11, 8], "label": ".", "x": 19.5, "y": 5.25}, + {"matrix": [11, 9], "label": "Enter", "x": 20.5, "y": 4.25, "h": 2} + ] + } + } +} diff --git a/keyboards/meletrix/zoom98/keymaps/default/keymap.c b/keyboards/meletrix/zoom98/keymaps/default/keymap.c new file mode 100644 index 0000000000..591c4bdf68 --- /dev/null +++ b/keyboards/meletrix/zoom98/keymaps/default/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2023 meletrix + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT), }, +}; +#endif + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT( + KC_ESC, 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_F13, KC_F14, KC_MUTE, KC_HOME, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_BSPC, KC_INS, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_DEL, KC_PGDN, KC_P7, KC_P8, KC_P9, + 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_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT, KC_PENT + ), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/meletrix/zoom98/keymaps/default/rules.mk b/keyboards/meletrix/zoom98/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/meletrix/zoom98/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/meletrix/zoom98/keymaps/via/keymap.c b/keyboards/meletrix/zoom98/keymaps/via/keymap.c new file mode 100644 index 0000000000..7ffcdd8e38 --- /dev/null +++ b/keyboards/meletrix/zoom98/keymaps/via/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2023 meletrix + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_MNXT, KC_MPRV) }, +}; +#endif + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT( + KC_ESC, 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_F13, KC_F14, KC_MUTE, KC_HOME, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_BSPC, KC_INS, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_DEL, KC_PGDN, KC_P7, KC_P8, KC_P9, + 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_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT, KC_PENT + ), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/meletrix/zoom98/keymaps/via/rules.mk b/keyboards/meletrix/zoom98/keymaps/via/rules.mk new file mode 100644 index 0000000000..5ed7f6a38c --- /dev/null +++ b/keyboards/meletrix/zoom98/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +ENCODER_MAP_ENABLE = yes +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/meletrix/zoom98/readme.md b/keyboards/meletrix/zoom98/readme.md new file mode 100644 index 0000000000..42b8408e48 --- /dev/null +++ b/keyboards/meletrix/zoom98/readme.md @@ -0,0 +1,25 @@ +# Zoom98 + +More Info at [Zoom98 Wired Version](https://meletrix.com/) +​ +* Keyboard Maintainer: [spbgzh](https://github.com/spbgzh) +* Hardware Supported: Zoom98 Wired Version +* Hardware Availability: [zoom98](https://meletrix.com/) + +Make example for this keyboard (after setting up your build environment): + + make meletrix/zoom98:default + +Flashing example for this keyboard: + + make meletrix/zoom98:default:flash + +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). + +## Bootloader + +Enter the bootloader using one of the following methods: + +* Tap the Reset switch mounted on the PCB +* In the case of the default keymap, use the key combination Fn + Delete +* Hold the Esc key while connecting the USB cable (also erases persistent settings) diff --git a/keyboards/meletrix/zoom98/rules.mk b/keyboards/meletrix/zoom98/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/meletrix/zoom98/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/meletrix/zoom98/zoom98.c b/keyboards/meletrix/zoom98/zoom98.c new file mode 100644 index 0000000000..5ebd292eca --- /dev/null +++ b/keyboards/meletrix/zoom98/zoom98.c @@ -0,0 +1,31 @@ +/* Copyright 2023 meletrix + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } + if (host_keyboard_led_state().caps_lock) { + for (uint8_t i = led_min; i < led_max; i++) { + if (g_led_config.flags[i] & LED_FLAG_MODIFIER) { + rgb_matrix_set_color(i, RGB_WHITE); + } + } + } + return false; +} From a7afa58fb633e38cd39f8610d89182c04855a074 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sun, 24 Sep 2023 22:39:18 -0700 Subject: [PATCH 181/496] YMDK Melody96 Break-Up (#22121) --- data/mappings/keyboard_aliases.hjson | 4 + keyboards/ymdk/melody96/hotswap/info.json | 501 ++++++++++++++++++ .../melody96/hotswap/keymaps/default/keymap.c | 23 + .../melody96/hotswap/keymaps/via/keymap.c | 23 + .../{ => hotswap}/keymaps/via/rules.mk | 0 .../{ => hotswap}/keymaps/zunger/config.h | 0 .../{ => hotswap}/keymaps/zunger/keymap.c | 12 +- .../{ => hotswap}/keymaps/zunger/readme.md | 0 .../{ => hotswap}/keymaps/zunger/rules.mk | 0 .../ymdk/melody96/hotswap/matrix_diagram.md | 23 + keyboards/ymdk/melody96/hotswap/readme.md | 19 + keyboards/ymdk/melody96/hotswap/rules.mk | 1 + keyboards/ymdk/melody96/rules.mk | 13 +- .../ymdk/melody96/{ => soldered}/config.h | 0 .../ymdk/melody96/{ => soldered}/info.json | 0 .../{ => soldered}/keymaps/crilith/keymap.c | 0 .../{ => soldered}/keymaps/default/keymap.c | 0 .../default_96_with60_split_num0/keymap.c | 0 .../{ => soldered}/keymaps/dvz/config.h | 0 .../{ => soldered}/keymaps/dvz/keymap.c | 0 .../{ => soldered}/keymaps/dvz/readme.md | 0 .../{ => soldered}/keymaps/dvz/rules.mk | 0 .../keymaps/konstantin/config.h | 0 .../keymaps/konstantin/keymap.c | 0 .../keymaps/konstantin/rules.mk | 0 .../{ => soldered}/keymaps/via/keymap.c | 0 .../melody96/soldered/keymaps/via/rules.mk | 2 + .../melody96/{ => soldered}/matrix_diagram.md | 2 +- .../ymdk/melody96/{ => soldered}/readme.md | 4 +- keyboards/ymdk/melody96/soldered/rules.mk | 12 + 30 files changed, 618 insertions(+), 21 deletions(-) create mode 100644 keyboards/ymdk/melody96/hotswap/info.json create mode 100644 keyboards/ymdk/melody96/hotswap/keymaps/default/keymap.c create mode 100644 keyboards/ymdk/melody96/hotswap/keymaps/via/keymap.c rename keyboards/ymdk/melody96/{ => hotswap}/keymaps/via/rules.mk (100%) rename keyboards/ymdk/melody96/{ => hotswap}/keymaps/zunger/config.h (100%) rename keyboards/ymdk/melody96/{ => hotswap}/keymaps/zunger/keymap.c (99%) rename keyboards/ymdk/melody96/{ => hotswap}/keymaps/zunger/readme.md (100%) rename keyboards/ymdk/melody96/{ => hotswap}/keymaps/zunger/rules.mk (100%) create mode 100644 keyboards/ymdk/melody96/hotswap/matrix_diagram.md create mode 100644 keyboards/ymdk/melody96/hotswap/readme.md create mode 100644 keyboards/ymdk/melody96/hotswap/rules.mk rename keyboards/ymdk/melody96/{ => soldered}/config.h (100%) rename keyboards/ymdk/melody96/{ => soldered}/info.json (100%) rename keyboards/ymdk/melody96/{ => soldered}/keymaps/crilith/keymap.c (100%) rename keyboards/ymdk/melody96/{ => soldered}/keymaps/default/keymap.c (100%) rename keyboards/ymdk/melody96/{ => soldered}/keymaps/default_96_with60_split_num0/keymap.c (100%) rename keyboards/ymdk/melody96/{ => soldered}/keymaps/dvz/config.h (100%) rename keyboards/ymdk/melody96/{ => soldered}/keymaps/dvz/keymap.c (100%) rename keyboards/ymdk/melody96/{ => soldered}/keymaps/dvz/readme.md (100%) rename keyboards/ymdk/melody96/{ => soldered}/keymaps/dvz/rules.mk (100%) rename keyboards/ymdk/melody96/{ => soldered}/keymaps/konstantin/config.h (100%) rename keyboards/ymdk/melody96/{ => soldered}/keymaps/konstantin/keymap.c (100%) rename keyboards/ymdk/melody96/{ => soldered}/keymaps/konstantin/rules.mk (100%) rename keyboards/ymdk/melody96/{ => soldered}/keymaps/via/keymap.c (100%) create mode 100644 keyboards/ymdk/melody96/soldered/keymaps/via/rules.mk rename keyboards/ymdk/melody96/{ => soldered}/matrix_diagram.md (99%) rename keyboards/ymdk/melody96/{ => soldered}/readme.md (90%) create mode 100644 keyboards/ymdk/melody96/soldered/rules.mk diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index fbb25b0298..7eec3217b6 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -1321,5 +1321,9 @@ }, "zinc/reva": { "target": "25keys/zinc/reva" + }, + // Moved during 2023 Q4 cycle + "ymdk/melody96": { + "target": "ymdk/melody96/soldered" } } diff --git a/keyboards/ymdk/melody96/hotswap/info.json b/keyboards/ymdk/melody96/hotswap/info.json new file mode 100644 index 0000000000..61112d88ab --- /dev/null +++ b/keyboards/ymdk/melody96/hotswap/info.json @@ -0,0 +1,501 @@ +{ + "keyboard_name": "Melody96 Hotswap", + "manufacturer": "YMDK", + "url": "", + "maintainer": "qmk", + "usb": { + "vid": "0x594D", + "pid": "0x4D97", + "device_version": "0.0.1" + }, + "matrix_pins": { + "cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4"], + "rows": ["B7", "B3", "B2", "B1", "B0", "E6", "F0", "F1", "F4", "F5", "F6", "F7"] + }, + "diode_direction": "ROW2COL", + "features": { + "audio": false, + "backlight": true, + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "backlight": { + "pin": "B6", + "levels": 5 + }, + "rgblight": { + "led_count": 18, + "saturation_steps": 8, + "brightness_steps": 8, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, + "ws2812": { + "pin": "E2" + }, + "indicators": { + "caps_lock": "C7", + "num_lock": "C6", + "scroll_lock": "B5", + "on_state": 0 + }, + "bootmagic": { + "matrix": [5, 0] + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "community_layouts": ["96_ansi", "96_iso"], + "layouts": { + "LAYOUT_96_iso": { + "layout": [ + {"matrix": [5, 0], "x": 0, "y": 0}, + {"matrix": [5, 1], "x": 1, "y": 0}, + {"matrix": [5, 2], "x": 2, "y": 0}, + {"matrix": [5, 3], "x": 3, "y": 0}, + {"matrix": [5, 4], "x": 4, "y": 0}, + {"matrix": [5, 5], "x": 5, "y": 0}, + {"matrix": [5, 6], "x": 6, "y": 0}, + {"matrix": [5, 7], "x": 7, "y": 0}, + {"matrix": [5, 8], "x": 8, "y": 0}, + {"matrix": [11, 8], "x": 9, "y": 0}, + {"matrix": [11, 7], "x": 10, "y": 0}, + {"matrix": [11, 5], "x": 11, "y": 0}, + {"matrix": [11, 4], "x": 12, "y": 0}, + {"matrix": [11, 3], "x": 13, "y": 0}, + {"matrix": [11, 6], "x": 14, "y": 0}, + {"matrix": [11, 2], "x": 15, "y": 0}, + {"matrix": [11, 1], "x": 16, "y": 0}, + {"matrix": [11, 0], "x": 17, "y": 0}, + {"matrix": [6, 3], "x": 18, "y": 0}, + + {"matrix": [4, 0], "x": 0, "y": 1}, + {"matrix": [4, 1], "x": 1, "y": 1}, + {"matrix": [4, 2], "x": 2, "y": 1}, + {"matrix": [4, 3], "x": 3, "y": 1}, + {"matrix": [4, 4], "x": 4, "y": 1}, + {"matrix": [4, 5], "x": 5, "y": 1}, + {"matrix": [4, 6], "x": 6, "y": 1}, + {"matrix": [4, 7], "x": 7, "y": 1}, + {"matrix": [4, 8], "x": 8, "y": 1}, + {"matrix": [10, 8], "x": 9, "y": 1}, + {"matrix": [10, 7], "x": 10, "y": 1}, + {"matrix": [10, 5], "x": 11, "y": 1}, + {"matrix": [10, 4], "x": 12, "y": 1}, + {"matrix": [10, 6], "x": 13, "y": 1, "w": 2}, + {"matrix": [10, 2], "x": 15, "y": 1}, + {"matrix": [10, 1], "x": 16, "y": 1}, + {"matrix": [10, 0], "x": 17, "y": 1}, + {"matrix": [6, 4], "x": 18, "y": 1}, + + {"matrix": [3, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 2}, + {"matrix": [3, 2], "x": 2.5, "y": 2}, + {"matrix": [3, 3], "x": 3.5, "y": 2}, + {"matrix": [3, 4], "x": 4.5, "y": 2}, + {"matrix": [3, 5], "x": 5.5, "y": 2}, + {"matrix": [3, 6], "x": 6.5, "y": 2}, + {"matrix": [3, 7], "x": 7.5, "y": 2}, + {"matrix": [3, 8], "x": 8.5, "y": 2}, + {"matrix": [9, 8], "x": 9.5, "y": 2}, + {"matrix": [9, 7], "x": 10.5, "y": 2}, + {"matrix": [9, 5], "x": 11.5, "y": 2}, + {"matrix": [9, 4], "x": 12.5, "y": 2}, + {"matrix": [9, 6], "x": 15, "y": 2}, + {"matrix": [9, 2], "x": 16, "y": 2}, + {"matrix": [9, 1], "x": 17, "y": 2}, + {"matrix": [8, 0], "x": 18, "y": 2, "h": 2}, + + {"matrix": [2, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 3}, + {"matrix": [2, 2], "x": 2.75, "y": 3}, + {"matrix": [2, 3], "x": 3.75, "y": 3}, + {"matrix": [2, 4], "x": 4.75, "y": 3}, + {"matrix": [2, 5], "x": 5.75, "y": 3}, + {"matrix": [2, 6], "x": 6.75, "y": 3}, + {"matrix": [2, 7], "x": 7.75, "y": 3}, + {"matrix": [2, 8], "x": 8.75, "y": 3}, + {"matrix": [8, 8], "x": 9.75, "y": 3}, + {"matrix": [8, 7], "x": 10.75, "y": 3}, + {"matrix": [8, 5], "x": 11.75, "y": 3}, + {"matrix": [8, 4], "x": 12.75, "y": 3}, + {"matrix": [9, 3], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [8, 6], "x": 15, "y": 3}, + {"matrix": [8, 2], "x": 16, "y": 3}, + {"matrix": [8, 1], "x": 17, "y": 3}, + + {"matrix": [1, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [1, 1], "x": 1.25, "y": 4}, + {"matrix": [1, 2], "x": 2.25, "y": 4}, + {"matrix": [1, 3], "x": 3.25, "y": 4}, + {"matrix": [1, 4], "x": 4.25, "y": 4}, + {"matrix": [1, 5], "x": 5.25, "y": 4}, + {"matrix": [1, 6], "x": 6.25, "y": 4}, + {"matrix": [1, 7], "x": 7.25, "y": 4}, + {"matrix": [1, 8], "x": 8.25, "y": 4}, + {"matrix": [7, 8], "x": 9.25, "y": 4}, + {"matrix": [7, 7], "x": 10.25, "y": 4}, + {"matrix": [7, 5], "x": 11.25, "y": 4}, + {"matrix": [7, 4], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [7, 3], "x": 14, "y": 4}, + {"matrix": [7, 6], "x": 15, "y": 4}, + {"matrix": [7, 2], "x": 16, "y": 4}, + {"matrix": [7, 1], "x": 17, "y": 4}, + {"matrix": [6, 0], "x": 18, "y": 4, "h": 2}, + + {"matrix": [0, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [0, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [0, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [0, 6], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [0, 8], "x": 10, "y": 5}, + {"matrix": [0, 7], "x": 11, "y": 5}, + {"matrix": [0, 5], "x": 12, "y": 5}, + {"matrix": [0, 4], "x": 13, "y": 5}, + {"matrix": [0, 3], "x": 14, "y": 5}, + {"matrix": [6, 6], "x": 15, "y": 5}, + {"matrix": [6, 2], "x": 16, "y": 5}, + {"matrix": [6, 1], "x": 17, "y": 5} + ] + }, + "LAYOUT_96_iso_rwkl": { + "layout": [ + {"matrix": [5, 0], "x": 0, "y": 0}, + {"matrix": [5, 1], "x": 1, "y": 0}, + {"matrix": [5, 2], "x": 2, "y": 0}, + {"matrix": [5, 3], "x": 3, "y": 0}, + {"matrix": [5, 4], "x": 4, "y": 0}, + {"matrix": [5, 5], "x": 5, "y": 0}, + {"matrix": [5, 6], "x": 6, "y": 0}, + {"matrix": [5, 7], "x": 7, "y": 0}, + {"matrix": [5, 8], "x": 8, "y": 0}, + {"matrix": [11, 8], "x": 9, "y": 0}, + {"matrix": [11, 7], "x": 10, "y": 0}, + {"matrix": [11, 5], "x": 11, "y": 0}, + {"matrix": [11, 4], "x": 12, "y": 0}, + {"matrix": [11, 3], "x": 13, "y": 0}, + {"matrix": [11, 6], "x": 14, "y": 0}, + {"matrix": [11, 2], "x": 15, "y": 0}, + {"matrix": [11, 1], "x": 16, "y": 0}, + {"matrix": [11, 0], "x": 17, "y": 0}, + {"matrix": [6, 3], "x": 18, "y": 0}, + + {"matrix": [4, 0], "x": 0, "y": 1}, + {"matrix": [4, 1], "x": 1, "y": 1}, + {"matrix": [4, 2], "x": 2, "y": 1}, + {"matrix": [4, 3], "x": 3, "y": 1}, + {"matrix": [4, 4], "x": 4, "y": 1}, + {"matrix": [4, 5], "x": 5, "y": 1}, + {"matrix": [4, 6], "x": 6, "y": 1}, + {"matrix": [4, 7], "x": 7, "y": 1}, + {"matrix": [4, 8], "x": 8, "y": 1}, + {"matrix": [10, 8], "x": 9, "y": 1}, + {"matrix": [10, 7], "x": 10, "y": 1}, + {"matrix": [10, 5], "x": 11, "y": 1}, + {"matrix": [10, 4], "x": 12, "y": 1}, + {"matrix": [10, 6], "x": 13, "y": 1, "w": 2}, + {"matrix": [10, 2], "x": 15, "y": 1}, + {"matrix": [10, 1], "x": 16, "y": 1}, + {"matrix": [10, 0], "x": 17, "y": 1}, + {"matrix": [6, 4], "x": 18, "y": 1}, + + {"matrix": [3, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 2}, + {"matrix": [3, 2], "x": 2.5, "y": 2}, + {"matrix": [3, 3], "x": 3.5, "y": 2}, + {"matrix": [3, 4], "x": 4.5, "y": 2}, + {"matrix": [3, 5], "x": 5.5, "y": 2}, + {"matrix": [3, 6], "x": 6.5, "y": 2}, + {"matrix": [3, 7], "x": 7.5, "y": 2}, + {"matrix": [3, 8], "x": 8.5, "y": 2}, + {"matrix": [9, 8], "x": 9.5, "y": 2}, + {"matrix": [9, 7], "x": 10.5, "y": 2}, + {"matrix": [9, 5], "x": 11.5, "y": 2}, + {"matrix": [9, 4], "x": 12.5, "y": 2}, + {"matrix": [9, 6], "x": 15, "y": 2}, + {"matrix": [9, 2], "x": 16, "y": 2}, + {"matrix": [9, 1], "x": 17, "y": 2}, + {"matrix": [8, 0], "x": 18, "y": 2, "h": 2}, + + {"matrix": [2, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 3}, + {"matrix": [2, 2], "x": 2.75, "y": 3}, + {"matrix": [2, 3], "x": 3.75, "y": 3}, + {"matrix": [2, 4], "x": 4.75, "y": 3}, + {"matrix": [2, 5], "x": 5.75, "y": 3}, + {"matrix": [2, 6], "x": 6.75, "y": 3}, + {"matrix": [2, 7], "x": 7.75, "y": 3}, + {"matrix": [2, 8], "x": 8.75, "y": 3}, + {"matrix": [8, 8], "x": 9.75, "y": 3}, + {"matrix": [8, 7], "x": 10.75, "y": 3}, + {"matrix": [8, 5], "x": 11.75, "y": 3}, + {"matrix": [8, 4], "x": 12.75, "y": 3}, + {"matrix": [9, 3], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [8, 6], "x": 15, "y": 3}, + {"matrix": [8, 2], "x": 16, "y": 3}, + {"matrix": [8, 1], "x": 17, "y": 3}, + + {"matrix": [1, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [1, 1], "x": 1.25, "y": 4}, + {"matrix": [1, 2], "x": 2.25, "y": 4}, + {"matrix": [1, 3], "x": 3.25, "y": 4}, + {"matrix": [1, 4], "x": 4.25, "y": 4}, + {"matrix": [1, 5], "x": 5.25, "y": 4}, + {"matrix": [1, 6], "x": 6.25, "y": 4}, + {"matrix": [1, 7], "x": 7.25, "y": 4}, + {"matrix": [1, 8], "x": 8.25, "y": 4}, + {"matrix": [7, 8], "x": 9.25, "y": 4}, + {"matrix": [7, 7], "x": 10.25, "y": 4}, + {"matrix": [7, 5], "x": 11.25, "y": 4}, + {"matrix": [7, 4], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [7, 3], "x": 14, "y": 4}, + {"matrix": [7, 6], "x": 15, "y": 4}, + {"matrix": [7, 2], "x": 16, "y": 4}, + {"matrix": [7, 1], "x": 17, "y": 4}, + {"matrix": [6, 0], "x": 18, "y": 4, "h": 2}, + + {"matrix": [0, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [0, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [0, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [0, 6], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [0, 8], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [0, 5], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [0, 4], "x": 13, "y": 5}, + {"matrix": [0, 3], "x": 14, "y": 5}, + {"matrix": [6, 6], "x": 15, "y": 5}, + {"matrix": [6, 2], "x": 16, "y": 5}, + {"matrix": [6, 1], "x": 17, "y": 5} + ] + }, + "LAYOUT_96_ansi": { + "layout": [ + {"matrix": [5, 0], "x": 0, "y": 0}, + {"matrix": [5, 1], "x": 1, "y": 0}, + {"matrix": [5, 2], "x": 2, "y": 0}, + {"matrix": [5, 3], "x": 3, "y": 0}, + {"matrix": [5, 4], "x": 4, "y": 0}, + {"matrix": [5, 5], "x": 5, "y": 0}, + {"matrix": [5, 6], "x": 6, "y": 0}, + {"matrix": [5, 7], "x": 7, "y": 0}, + {"matrix": [5, 8], "x": 8, "y": 0}, + {"matrix": [11, 8], "x": 9, "y": 0}, + {"matrix": [11, 7], "x": 10, "y": 0}, + {"matrix": [11, 5], "x": 11, "y": 0}, + {"matrix": [11, 4], "x": 12, "y": 0}, + {"matrix": [11, 3], "x": 13, "y": 0}, + {"matrix": [11, 6], "x": 14, "y": 0}, + {"matrix": [11, 2], "x": 15, "y": 0}, + {"matrix": [11, 1], "x": 16, "y": 0}, + {"matrix": [11, 0], "x": 17, "y": 0}, + {"matrix": [6, 3], "x": 18, "y": 0}, + + {"matrix": [4, 0], "x": 0, "y": 1}, + {"matrix": [4, 1], "x": 1, "y": 1}, + {"matrix": [4, 2], "x": 2, "y": 1}, + {"matrix": [4, 3], "x": 3, "y": 1}, + {"matrix": [4, 4], "x": 4, "y": 1}, + {"matrix": [4, 5], "x": 5, "y": 1}, + {"matrix": [4, 6], "x": 6, "y": 1}, + {"matrix": [4, 7], "x": 7, "y": 1}, + {"matrix": [4, 8], "x": 8, "y": 1}, + {"matrix": [10, 8], "x": 9, "y": 1}, + {"matrix": [10, 7], "x": 10, "y": 1}, + {"matrix": [10, 5], "x": 11, "y": 1}, + {"matrix": [10, 4], "x": 12, "y": 1}, + {"matrix": [10, 6], "x": 13, "y": 1, "w": 2}, + {"matrix": [10, 2], "x": 15, "y": 1}, + {"matrix": [10, 1], "x": 16, "y": 1}, + {"matrix": [10, 0], "x": 17, "y": 1}, + {"matrix": [6, 4], "x": 18, "y": 1}, + + {"matrix": [3, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 2}, + {"matrix": [3, 2], "x": 2.5, "y": 2}, + {"matrix": [3, 3], "x": 3.5, "y": 2}, + {"matrix": [3, 4], "x": 4.5, "y": 2}, + {"matrix": [3, 5], "x": 5.5, "y": 2}, + {"matrix": [3, 6], "x": 6.5, "y": 2}, + {"matrix": [3, 7], "x": 7.5, "y": 2}, + {"matrix": [3, 8], "x": 8.5, "y": 2}, + {"matrix": [9, 8], "x": 9.5, "y": 2}, + {"matrix": [9, 7], "x": 10.5, "y": 2}, + {"matrix": [9, 5], "x": 11.5, "y": 2}, + {"matrix": [9, 4], "x": 12.5, "y": 2}, + {"matrix": [9, 3], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [9, 6], "x": 15, "y": 2}, + {"matrix": [9, 2], "x": 16, "y": 2}, + {"matrix": [9, 1], "x": 17, "y": 2}, + {"matrix": [8, 0], "x": 18, "y": 2, "h": 2}, + + {"matrix": [2, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 3}, + {"matrix": [2, 2], "x": 2.75, "y": 3}, + {"matrix": [2, 3], "x": 3.75, "y": 3}, + {"matrix": [2, 4], "x": 4.75, "y": 3}, + {"matrix": [2, 5], "x": 5.75, "y": 3}, + {"matrix": [2, 6], "x": 6.75, "y": 3}, + {"matrix": [2, 7], "x": 7.75, "y": 3}, + {"matrix": [2, 8], "x": 8.75, "y": 3}, + {"matrix": [8, 8], "x": 9.75, "y": 3}, + {"matrix": [8, 7], "x": 10.75, "y": 3}, + {"matrix": [8, 5], "x": 11.75, "y": 3}, + {"matrix": [8, 4], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [8, 6], "x": 15, "y": 3}, + {"matrix": [8, 2], "x": 16, "y": 3}, + {"matrix": [8, 1], "x": 17, "y": 3}, + + {"matrix": [1, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [1, 2], "x": 2.25, "y": 4}, + {"matrix": [1, 3], "x": 3.25, "y": 4}, + {"matrix": [1, 4], "x": 4.25, "y": 4}, + {"matrix": [1, 5], "x": 5.25, "y": 4}, + {"matrix": [1, 6], "x": 6.25, "y": 4}, + {"matrix": [1, 7], "x": 7.25, "y": 4}, + {"matrix": [1, 8], "x": 8.25, "y": 4}, + {"matrix": [7, 8], "x": 9.25, "y": 4}, + {"matrix": [7, 7], "x": 10.25, "y": 4}, + {"matrix": [7, 5], "x": 11.25, "y": 4}, + {"matrix": [7, 4], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [7, 3], "x": 14, "y": 4}, + {"matrix": [7, 6], "x": 15, "y": 4}, + {"matrix": [7, 2], "x": 16, "y": 4}, + {"matrix": [7, 1], "x": 17, "y": 4}, + {"matrix": [6, 0], "x": 18, "y": 4, "h": 2}, + + {"matrix": [0, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [0, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [0, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [0, 6], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [0, 8], "x": 10, "y": 5}, + {"matrix": [0, 7], "x": 11, "y": 5}, + {"matrix": [0, 5], "x": 12, "y": 5}, + {"matrix": [0, 4], "x": 13, "y": 5}, + {"matrix": [0, 3], "x": 14, "y": 5}, + {"matrix": [6, 6], "x": 15, "y": 5}, + {"matrix": [6, 2], "x": 16, "y": 5}, + {"matrix": [6, 1], "x": 17, "y": 5} + ] + }, + "LAYOUT_96_ansi_rwkl": { + "layout": [ + {"matrix": [5, 0], "x": 0, "y": 0}, + {"matrix": [5, 1], "x": 1, "y": 0}, + {"matrix": [5, 2], "x": 2, "y": 0}, + {"matrix": [5, 3], "x": 3, "y": 0}, + {"matrix": [5, 4], "x": 4, "y": 0}, + {"matrix": [5, 5], "x": 5, "y": 0}, + {"matrix": [5, 6], "x": 6, "y": 0}, + {"matrix": [5, 7], "x": 7, "y": 0}, + {"matrix": [5, 8], "x": 8, "y": 0}, + {"matrix": [11, 8], "x": 9, "y": 0}, + {"matrix": [11, 7], "x": 10, "y": 0}, + {"matrix": [11, 5], "x": 11, "y": 0}, + {"matrix": [11, 4], "x": 12, "y": 0}, + {"matrix": [11, 3], "x": 13, "y": 0}, + {"matrix": [11, 6], "x": 14, "y": 0}, + {"matrix": [11, 2], "x": 15, "y": 0}, + {"matrix": [11, 1], "x": 16, "y": 0}, + {"matrix": [11, 0], "x": 17, "y": 0}, + {"matrix": [6, 3], "x": 18, "y": 0}, + + {"matrix": [4, 0], "x": 0, "y": 1}, + {"matrix": [4, 1], "x": 1, "y": 1}, + {"matrix": [4, 2], "x": 2, "y": 1}, + {"matrix": [4, 3], "x": 3, "y": 1}, + {"matrix": [4, 4], "x": 4, "y": 1}, + {"matrix": [4, 5], "x": 5, "y": 1}, + {"matrix": [4, 6], "x": 6, "y": 1}, + {"matrix": [4, 7], "x": 7, "y": 1}, + {"matrix": [4, 8], "x": 8, "y": 1}, + {"matrix": [10, 8], "x": 9, "y": 1}, + {"matrix": [10, 7], "x": 10, "y": 1}, + {"matrix": [10, 5], "x": 11, "y": 1}, + {"matrix": [10, 4], "x": 12, "y": 1}, + {"matrix": [10, 6], "x": 13, "y": 1, "w": 2}, + {"matrix": [10, 2], "x": 15, "y": 1}, + {"matrix": [10, 1], "x": 16, "y": 1}, + {"matrix": [10, 0], "x": 17, "y": 1}, + {"matrix": [6, 4], "x": 18, "y": 1}, + + {"matrix": [3, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [3, 1], "x": 1.5, "y": 2}, + {"matrix": [3, 2], "x": 2.5, "y": 2}, + {"matrix": [3, 3], "x": 3.5, "y": 2}, + {"matrix": [3, 4], "x": 4.5, "y": 2}, + {"matrix": [3, 5], "x": 5.5, "y": 2}, + {"matrix": [3, 6], "x": 6.5, "y": 2}, + {"matrix": [3, 7], "x": 7.5, "y": 2}, + {"matrix": [3, 8], "x": 8.5, "y": 2}, + {"matrix": [9, 8], "x": 9.5, "y": 2}, + {"matrix": [9, 7], "x": 10.5, "y": 2}, + {"matrix": [9, 5], "x": 11.5, "y": 2}, + {"matrix": [9, 4], "x": 12.5, "y": 2}, + {"matrix": [9, 3], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [9, 6], "x": 15, "y": 2}, + {"matrix": [9, 2], "x": 16, "y": 2}, + {"matrix": [9, 1], "x": 17, "y": 2}, + {"matrix": [8, 0], "x": 18, "y": 2, "h": 2}, + + {"matrix": [2, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 3}, + {"matrix": [2, 2], "x": 2.75, "y": 3}, + {"matrix": [2, 3], "x": 3.75, "y": 3}, + {"matrix": [2, 4], "x": 4.75, "y": 3}, + {"matrix": [2, 5], "x": 5.75, "y": 3}, + {"matrix": [2, 6], "x": 6.75, "y": 3}, + {"matrix": [2, 7], "x": 7.75, "y": 3}, + {"matrix": [2, 8], "x": 8.75, "y": 3}, + {"matrix": [8, 8], "x": 9.75, "y": 3}, + {"matrix": [8, 7], "x": 10.75, "y": 3}, + {"matrix": [8, 5], "x": 11.75, "y": 3}, + {"matrix": [8, 4], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [8, 6], "x": 15, "y": 3}, + {"matrix": [8, 2], "x": 16, "y": 3}, + {"matrix": [8, 1], "x": 17, "y": 3}, + + {"matrix": [1, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [1, 2], "x": 2.25, "y": 4}, + {"matrix": [1, 3], "x": 3.25, "y": 4}, + {"matrix": [1, 4], "x": 4.25, "y": 4}, + {"matrix": [1, 5], "x": 5.25, "y": 4}, + {"matrix": [1, 6], "x": 6.25, "y": 4}, + {"matrix": [1, 7], "x": 7.25, "y": 4}, + {"matrix": [1, 8], "x": 8.25, "y": 4}, + {"matrix": [7, 8], "x": 9.25, "y": 4}, + {"matrix": [7, 7], "x": 10.25, "y": 4}, + {"matrix": [7, 5], "x": 11.25, "y": 4}, + {"matrix": [7, 4], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [7, 3], "x": 14, "y": 4}, + {"matrix": [7, 6], "x": 15, "y": 4}, + {"matrix": [7, 2], "x": 16, "y": 4}, + {"matrix": [7, 1], "x": 17, "y": 4}, + {"matrix": [6, 0], "x": 18, "y": 4, "h": 2}, + + {"matrix": [0, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [0, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [0, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [0, 6], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [0, 8], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [0, 5], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [0, 4], "x": 13, "y": 5}, + {"matrix": [0, 3], "x": 14, "y": 5}, + {"matrix": [6, 6], "x": 15, "y": 5}, + {"matrix": [6, 2], "x": 16, "y": 5}, + {"matrix": [6, 1], "x": 17, "y": 5} + ] + } + } +} diff --git a/keyboards/ymdk/melody96/hotswap/keymaps/default/keymap.c b/keyboards/ymdk/melody96/hotswap/keymaps/default/keymap.c new file mode 100644 index 0000000000..90a18f965f --- /dev/null +++ b/keyboards/ymdk/melody96/hotswap/keymaps/default/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2023 James Young for QMK (@noroadsleft) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_96_iso( + KC_ESC, 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_PSCR, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_DEL, + KC_GRV, 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_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_P7, KC_P8, KC_P9, KC_PPLS, + 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_P4, KC_P5, KC_P6, + 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_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + [1] = LAYOUT_96_iso( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DOWN, BL_TOGG, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ymdk/melody96/hotswap/keymaps/via/keymap.c b/keyboards/ymdk/melody96/hotswap/keymaps/via/keymap.c new file mode 100644 index 0000000000..90a18f965f --- /dev/null +++ b/keyboards/ymdk/melody96/hotswap/keymaps/via/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2023 James Young for QMK (@noroadsleft) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_96_iso( + KC_ESC, 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_PSCR, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_DEL, + KC_GRV, 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_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_P7, KC_P8, KC_P9, KC_PPLS, + 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_P4, KC_P5, KC_P6, + 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_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + [1] = LAYOUT_96_iso( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DOWN, BL_TOGG, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ymdk/melody96/keymaps/via/rules.mk b/keyboards/ymdk/melody96/hotswap/keymaps/via/rules.mk similarity index 100% rename from keyboards/ymdk/melody96/keymaps/via/rules.mk rename to keyboards/ymdk/melody96/hotswap/keymaps/via/rules.mk diff --git a/keyboards/ymdk/melody96/keymaps/zunger/config.h b/keyboards/ymdk/melody96/hotswap/keymaps/zunger/config.h similarity index 100% rename from keyboards/ymdk/melody96/keymaps/zunger/config.h rename to keyboards/ymdk/melody96/hotswap/keymaps/zunger/config.h diff --git a/keyboards/ymdk/melody96/keymaps/zunger/keymap.c b/keyboards/ymdk/melody96/hotswap/keymaps/zunger/keymap.c similarity index 99% rename from keyboards/ymdk/melody96/keymaps/zunger/keymap.c rename to keyboards/ymdk/melody96/hotswap/keymaps/zunger/keymap.c index d65f10dcec..c84f656080 100644 --- a/keyboards/ymdk/melody96/keymaps/zunger/keymap.c +++ b/keyboards/ymdk/melody96/hotswap/keymaps/zunger/keymap.c @@ -140,7 +140,7 @@ enum layers_keymap { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // NB: Using GESC for escape in the QWERTY layer as a temporary hack because I messed up the // switch on the KC_GRV key; change back to KC_ESC once this is fixed. - [_QWERTY] = LAYOUT_hotswap( + [_QWERTY] = LAYOUT_96_ansi( QK_GESC, 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_HOME, KC_END, KC_PGUP, KC_PGDN, KC_MPLY, KC_BRK, KC_GRV, 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_BSPC, KC_LLCK, KC_PSLS, KC_PAST, KC_PMNS, 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_P7, KC_P8, KC_P9, @@ -175,14 +175,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | CTL | ALT| CMD| SPACE | α | β | γ | | | | | | | * `---------------------------------------------------------------------------' */ - [_GREEK] = LAYOUT_hotswap( + [_GREEK] = LAYOUT_96_ansi( KC_GRV, H(00b9), H(00b2), H(00b3), H(2074), H(2075), H(2076), H(2077), H(2078), H(2079), H(2070), H(207b), H(207a), H(207d), H(207e), XXXXXXX, XXXXXXX, XXXXXXX, _______, KC_GRV, _______, _______, _______, _______, _______, _______, _______, H(00b0), _______, _______, H(221d), H(223c), _______, _______, H(2298), H(2299), H(2296), _______, H(03b8), H(03c9), H(03b5), H(03c1), H(03c4), H(03c8), H(03c5), H(03b9), H(03bf), H(03c0), KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, _______, H(03b1), H(03c3), H(03b4), H(03c6), H(03b3), H(03b7), H(03d1), H(03ba), H(03bb), H(22ef), H(22c5), _______, KC_P4, KC_P5, KC_P6, H(2295), _______, H(03b6), H(03be), H(03c7), H(03c2), H(03b2), H(03bd), H(03bc), H(226a), H(226b), H(222b), _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT), - [_SHIFTGREEK] = LAYOUT_hotswap( + [_SHIFTGREEK] = LAYOUT_96_ansi( KC_GRV, H(2081), H(2082), H(2083), H(2084), H(2085), H(2086), H(2087), H(2088), H(2089), H(2080), H(208b), H(208a), H(208d), H(208e), XXXXXXX, XXXXXXX, XXXXXXX, _______, KC_GRV, H(00bf), _______, H(20ac), _______, _______, _______, _______, _______, _______, _______, XXXXXXX, H(2241), _______, _______, XXXXXXX, H(2297), XXXXXXX, _______, H(0398), H(03a9), H(0395), H(03a1), H(03a4), H(03a8), H(03a5), H(0399), H(039f), H(03a0), KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, @@ -218,14 +218,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * [1] CADET + numpad moves the mouse. SHIFT+CADET+NUMPAD moves it more quickly. CADET+5 * clicks the mouse, and SHIFT+CADET+FIVE right-clicks. */ - [_CADET] = LAYOUT_hotswap( + [_CADET] = LAYOUT_96_ansi( H(00AC), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, KC_GRV, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, H(00b1), _______, _______, XXXXXXX, H(00d7), XXXXXXX, _______, H(2227), H(2228), H(2229), H(222a), H(2282), H(2283), H(2200), H(221e), H(2203), H(2202), H(2208), XXXXXXX, XXXXXXX, KC_P7, KC_P8, KC_P9, _______, H(22a5), H(22a4), H(22a2), H(22a3), H(2191), H(2193), H(2190), H(2192), H(2194), XXXXXXX, XXXXXXX, _______, KC_P4, KC_P5, KC_P6, XXXXXXX, _______, XXXXXXX, H(2260), XXXXXXX, H(2248), H(2261), H(2264), H(2265), XXXXXXX, XXXXXXX, H(00f7), _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT), - [_SHIFTCADET] = LAYOUT_hotswap( + [_SHIFTCADET] = LAYOUT_96_ansi( H(2205), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, KC_GRV, H(00a1), XXXXXXX, H(00a3), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, H(2213), _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, H(211a), XXXXXXX, XXXXXXX, H(211d), H(2286), H(2287), XXXXXXX, H(2135), H(2204), XXXXXXX, H(2209), XXXXXXX, XXXXXXX, KC_P7, KC_P8, KC_P9, @@ -235,7 +235,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Function layer is mostly for keyboard meta-control operations, but also contains the combining // accent marks. These are deliberately placed to match where the analogous controls go on Mac OS. - [_FUNCTION] = LAYOUT_hotswap( + [_FUNCTION] = LAYOUT_96_ansi( KC_CGRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, QK_BOOT, KC_CGRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_CAGU, _______, _______, _______, KC_CDIA, KC_CCIR, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/ymdk/melody96/keymaps/zunger/readme.md b/keyboards/ymdk/melody96/hotswap/keymaps/zunger/readme.md similarity index 100% rename from keyboards/ymdk/melody96/keymaps/zunger/readme.md rename to keyboards/ymdk/melody96/hotswap/keymaps/zunger/readme.md diff --git a/keyboards/ymdk/melody96/keymaps/zunger/rules.mk b/keyboards/ymdk/melody96/hotswap/keymaps/zunger/rules.mk similarity index 100% rename from keyboards/ymdk/melody96/keymaps/zunger/rules.mk rename to keyboards/ymdk/melody96/hotswap/keymaps/zunger/rules.mk diff --git a/keyboards/ymdk/melody96/hotswap/matrix_diagram.md b/keyboards/ymdk/melody96/hotswap/matrix_diagram.md new file mode 100644 index 0000000000..77f7e6a925 --- /dev/null +++ b/keyboards/ymdk/melody96/hotswap/matrix_diagram.md @@ -0,0 +1,23 @@ +# Matrix Diagram for YMDK Melody96 Hotswap + +``` +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│50 │51 │52 │53 │54 │55 │56 │57 │58 │B8 │B7 │B5 │B4 │B3 │B6 │B2 │B1 │B0 │63 │ +├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┤ +│40 │41 │42 │43 │44 │45 │46 │47 │48 │A8 │A7 │A5 │A4 │A6 │A2 │A1 │A0 │64 │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┼───┼───┼───┤ ┌─────┐ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │98 │97 │95 │94 │93 │96 │92 │91 │80 │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┼───┼───┤ │ ┌──┴┐93 │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │88 │87 │85 │84 │86 │82 │81 │ │ │84 │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┼───┼───┼───┤ └───┴────┘ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │78 │77 │75 │74 │73 │76 │72 │71 │60 │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┼───┼───┤ │ +│00 │01 │02 │06 │08 │07 │05 │04 │03 │66 │62 │61 │ │ +└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ +┌────────┐ +│10 │ 2.25u LShift +└────────┘ +┌────┬────┬────┬────────────────────────┬─────┬─────┐ +│00 │01 │02 │06 │08 │05 │ RWKL +└────┴────┴────┴────────────────────────┴─────┴─────┘ +``` diff --git a/keyboards/ymdk/melody96/hotswap/readme.md b/keyboards/ymdk/melody96/hotswap/readme.md new file mode 100644 index 0000000000..9fd379b273 --- /dev/null +++ b/keyboards/ymdk/melody96/hotswap/readme.md @@ -0,0 +1,19 @@ +# YMDK Melody96 Hotswap + +![melody96](https://i.imgur.com/9o0a6XFh.png) + +A 96% hotswap keyboard from YMDK, available in four different layouts. + +* Keyboard Maintainer: [The QMK Community](https://github.com/qmk) +* Hardware Supported: Melody96 Hotswap PCBs +* Hardware Availability: [YMDK](https://ymdkey.com/products/ymdk-hot-swap-hot-swappable-kailh-socket-96-pcb-qmk-fully-programmable-support-ansi-iso-interchange-melody-96-ymd96), [AliExpress](https://www.aliexpress.us/item/2251832770844523.html) + +Make example for this keyboard (after setting up your build environment): + + make ymdk/melody96/hotswap:default + +Flashing example for this keyboard: + + make ymdk/melody96/hotswap:default:flash + +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). diff --git a/keyboards/ymdk/melody96/hotswap/rules.mk b/keyboards/ymdk/melody96/hotswap/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/ymdk/melody96/hotswap/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/ymdk/melody96/rules.mk b/keyboards/ymdk/melody96/rules.mk index 3d5cb57ad5..806543977b 100644 --- a/keyboards/ymdk/melody96/rules.mk +++ b/keyboards/ymdk/melody96/rules.mk @@ -1,12 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output +DEFAULT_FOLDER = ymdk/melody96/soldered diff --git a/keyboards/ymdk/melody96/config.h b/keyboards/ymdk/melody96/soldered/config.h similarity index 100% rename from keyboards/ymdk/melody96/config.h rename to keyboards/ymdk/melody96/soldered/config.h diff --git a/keyboards/ymdk/melody96/info.json b/keyboards/ymdk/melody96/soldered/info.json similarity index 100% rename from keyboards/ymdk/melody96/info.json rename to keyboards/ymdk/melody96/soldered/info.json diff --git a/keyboards/ymdk/melody96/keymaps/crilith/keymap.c b/keyboards/ymdk/melody96/soldered/keymaps/crilith/keymap.c similarity index 100% rename from keyboards/ymdk/melody96/keymaps/crilith/keymap.c rename to keyboards/ymdk/melody96/soldered/keymaps/crilith/keymap.c diff --git a/keyboards/ymdk/melody96/keymaps/default/keymap.c b/keyboards/ymdk/melody96/soldered/keymaps/default/keymap.c similarity index 100% rename from keyboards/ymdk/melody96/keymaps/default/keymap.c rename to keyboards/ymdk/melody96/soldered/keymaps/default/keymap.c diff --git a/keyboards/ymdk/melody96/keymaps/default_96_with60_split_num0/keymap.c b/keyboards/ymdk/melody96/soldered/keymaps/default_96_with60_split_num0/keymap.c similarity index 100% rename from keyboards/ymdk/melody96/keymaps/default_96_with60_split_num0/keymap.c rename to keyboards/ymdk/melody96/soldered/keymaps/default_96_with60_split_num0/keymap.c diff --git a/keyboards/ymdk/melody96/keymaps/dvz/config.h b/keyboards/ymdk/melody96/soldered/keymaps/dvz/config.h similarity index 100% rename from keyboards/ymdk/melody96/keymaps/dvz/config.h rename to keyboards/ymdk/melody96/soldered/keymaps/dvz/config.h diff --git a/keyboards/ymdk/melody96/keymaps/dvz/keymap.c b/keyboards/ymdk/melody96/soldered/keymaps/dvz/keymap.c similarity index 100% rename from keyboards/ymdk/melody96/keymaps/dvz/keymap.c rename to keyboards/ymdk/melody96/soldered/keymaps/dvz/keymap.c diff --git a/keyboards/ymdk/melody96/keymaps/dvz/readme.md b/keyboards/ymdk/melody96/soldered/keymaps/dvz/readme.md similarity index 100% rename from keyboards/ymdk/melody96/keymaps/dvz/readme.md rename to keyboards/ymdk/melody96/soldered/keymaps/dvz/readme.md diff --git a/keyboards/ymdk/melody96/keymaps/dvz/rules.mk b/keyboards/ymdk/melody96/soldered/keymaps/dvz/rules.mk similarity index 100% rename from keyboards/ymdk/melody96/keymaps/dvz/rules.mk rename to keyboards/ymdk/melody96/soldered/keymaps/dvz/rules.mk diff --git a/keyboards/ymdk/melody96/keymaps/konstantin/config.h b/keyboards/ymdk/melody96/soldered/keymaps/konstantin/config.h similarity index 100% rename from keyboards/ymdk/melody96/keymaps/konstantin/config.h rename to keyboards/ymdk/melody96/soldered/keymaps/konstantin/config.h diff --git a/keyboards/ymdk/melody96/keymaps/konstantin/keymap.c b/keyboards/ymdk/melody96/soldered/keymaps/konstantin/keymap.c similarity index 100% rename from keyboards/ymdk/melody96/keymaps/konstantin/keymap.c rename to keyboards/ymdk/melody96/soldered/keymaps/konstantin/keymap.c diff --git a/keyboards/ymdk/melody96/keymaps/konstantin/rules.mk b/keyboards/ymdk/melody96/soldered/keymaps/konstantin/rules.mk similarity index 100% rename from keyboards/ymdk/melody96/keymaps/konstantin/rules.mk rename to keyboards/ymdk/melody96/soldered/keymaps/konstantin/rules.mk diff --git a/keyboards/ymdk/melody96/keymaps/via/keymap.c b/keyboards/ymdk/melody96/soldered/keymaps/via/keymap.c similarity index 100% rename from keyboards/ymdk/melody96/keymaps/via/keymap.c rename to keyboards/ymdk/melody96/soldered/keymaps/via/keymap.c diff --git a/keyboards/ymdk/melody96/soldered/keymaps/via/rules.mk b/keyboards/ymdk/melody96/soldered/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/ymdk/melody96/soldered/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/ymdk/melody96/matrix_diagram.md b/keyboards/ymdk/melody96/soldered/matrix_diagram.md similarity index 99% rename from keyboards/ymdk/melody96/matrix_diagram.md rename to keyboards/ymdk/melody96/soldered/matrix_diagram.md index e589bcc469..af8ba0ec81 100644 --- a/keyboards/ymdk/melody96/matrix_diagram.md +++ b/keyboards/ymdk/melody96/soldered/matrix_diagram.md @@ -1,4 +1,4 @@ -# Matrix Diagram for YMDK Melody96 +# Matrix Diagram for YMDK Melody96 Soldered ``` ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ diff --git a/keyboards/ymdk/melody96/readme.md b/keyboards/ymdk/melody96/soldered/readme.md similarity index 90% rename from keyboards/ymdk/melody96/readme.md rename to keyboards/ymdk/melody96/soldered/readme.md index e0e57a081e..8cd3889a6c 100644 --- a/keyboards/ymdk/melody96/readme.md +++ b/keyboards/ymdk/melody96/soldered/readme.md @@ -10,10 +10,10 @@ Make example for this keyboard (after setting up your build environment): - make ymdk/melody96:default + make ymdk/melody96/soldered:default Flashing example for this keyboard: - make ymdk/melody96:default:flash + make ymdk/melody96/soldered:default:flash 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). diff --git a/keyboards/ymdk/melody96/soldered/rules.mk b/keyboards/ymdk/melody96/soldered/rules.mk new file mode 100644 index 0000000000..3d5cb57ad5 --- /dev/null +++ b/keyboards/ymdk/melody96/soldered/rules.mk @@ -0,0 +1,12 @@ +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output From 2fad45132f0777002934e07d17bfe8ec7aa95740 Mon Sep 17 00:00:00 2001 From: Joy Lee Date: Mon, 25 Sep 2023 17:45:48 +0800 Subject: [PATCH 182/496] Added more rgb effects for rpk-001 keyboard (#22120) --- keyboards/phentech/rpk_001/info.json | 46 ++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/keyboards/phentech/rpk_001/info.json b/keyboards/phentech/rpk_001/info.json index 105a126160..3d89d012ee 100644 --- a/keyboards/phentech/rpk_001/info.json +++ b/keyboards/phentech/rpk_001/info.json @@ -36,6 +36,52 @@ }, "rgb_matrix": { "driver": "aw20216", + "animations": { + "solid_color": true, + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, "layout": [ { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0 }, { "flags": 4, "matrix": [0, 1], "x": 16, "y": 0 }, From 339bff63393cda8bd6e8358e09d04b50ff9ac010 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 25 Sep 2023 17:48:10 +0100 Subject: [PATCH 183/496] Move velocikey to within rgblight (#22123) --- builddefs/common_features.mk | 4 ++ builddefs/generic_features.mk | 1 - docs/_summary.md | 1 - docs/feature_rgblight.md | 30 +++++++++++++ docs/feature_velocikey.md | 29 ------------- docs/ja/_summary.md | 1 - docs/ja/feature_velocikey.md | 34 --------------- docs/zh-cn/_summary.md | 1 - quantum/eeconfig.c | 2 +- quantum/eeconfig.h | 2 +- quantum/keyboard.c | 9 ---- quantum/quantum.c | 10 ++--- quantum/rgblight/rgblight.c | 81 +++++++++++++++++++++++++++++------ quantum/rgblight/rgblight.h | 19 ++++++-- quantum/velocikey.c | 40 ----------------- quantum/velocikey.h | 10 ----- 16 files changed, 124 insertions(+), 150 deletions(-) delete mode 100644 docs/feature_velocikey.md delete mode 100644 docs/ja/feature_velocikey.md delete mode 100644 quantum/velocikey.c delete mode 100644 quantum/velocikey.h diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 8e07c25c24..973cfba394 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -342,6 +342,10 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) ifeq ($(strip $(RGBLIGHT_DRIVER)), apa102) APA102_DRIVER_REQUIRED := yes endif + + ifeq ($(strip $(VELOCIKEY_ENABLE)), yes) + OPT_DEFS += -DVELOCIKEY_ENABLE + endif endif # Deprecated driver names - do not use diff --git a/builddefs/generic_features.mk b/builddefs/generic_features.mk index 4e058dcd26..afd8bbd276 100644 --- a/builddefs/generic_features.mk +++ b/builddefs/generic_features.mk @@ -37,7 +37,6 @@ GENERIC_FEATURES = \ SPACE_CADET \ SWAP_HANDS \ TAP_DANCE \ - VELOCIKEY \ WPM \ DYNAMIC_TAPPING_TERM \ TRI_LAYER diff --git a/docs/_summary.md b/docs/_summary.md index 28460f5ba9..722c5f9c5d 100644 --- a/docs/_summary.md +++ b/docs/_summary.md @@ -126,7 +126,6 @@ * [PS/2 Mouse](feature_ps2_mouse.md) * [Split Keyboard](feature_split_keyboard.md) * [Stenography](feature_stenography.md) - * [Velocikey](feature_velocikey.md) * Keyboard Building * [Easy Maker for One Offs](easy_maker.md) diff --git a/docs/feature_rgblight.md b/docs/feature_rgblight.md index 2bdfe6a7cf..f5c8d56e4e 100644 --- a/docs/feature_rgblight.md +++ b/docs/feature_rgblight.md @@ -552,3 +552,33 @@ In addition to setting the Clipping Range, you can use `RGBLIGHT_LED_MAP` togeth ## Hardware Modification If your keyboard lacks onboard underglow LEDs, you may often be able to solder on an RGB LED strip yourself. You will need to find an unused pin to wire to the data pin of your LED strip. Some keyboards may break out unused pins from the MCU to make soldering easier. The other two pins, VCC and GND, must also be connected to the appropriate power pins. + +## Velocikey + +Velocikey is a feature that lets you control the speed of lighting effects (like the Rainbow Swirl effect) with the speed of your typing. The faster you type, the faster the lights will go! + +### Usage +For Velocikey to take effect, there are two steps. First, when compiling your keyboard, you'll need to set `VELOCIKEY_ENABLE=yes` in `rules.mk`, e.g.: + +``` +MOUSEKEY_ENABLE = no +STENO_ENABLE = no +EXTRAKEY_ENABLE = yes +VELOCIKEY_ENABLE = yes +``` + +Then, while using your keyboard, you need to also turn it on with the `VK_TOGG` keycode, which toggles the feature on and off. + +The following light effects will all be controlled by Velocikey when it is enabled: + - RGB Breathing + - RGB Rainbow Mood + - RGB Rainbow Swirl + - RGB Snake + - RGB Knight + +Support for LED breathing effects is planned but not available yet. + + As long as Velocikey is enabled, it will control the speed regardless of any other speed setting that your RGB lights are currently on. + + ### Configuration + Velocikey doesn't currently support any configuration via keyboard settings. If you want to adjust something like the speed increase or decay rate, you would need to edit `velocikey.c` and adjust the values there to achieve the kinds of speeds that you like. diff --git a/docs/feature_velocikey.md b/docs/feature_velocikey.md deleted file mode 100644 index aeb1865e8a..0000000000 --- a/docs/feature_velocikey.md +++ /dev/null @@ -1,29 +0,0 @@ -# Velocikey - -Velocikey is a feature that lets you control the speed of lighting effects (like the Rainbow Swirl effect) with the speed of your typing. The faster you type, the faster the lights will go! - -## Usage -For Velocikey to take effect, there are two steps. First, when compiling your keyboard, you'll need to set `VELOCIKEY_ENABLE=yes` in `rules.mk`, e.g.: - -``` -MOUSEKEY_ENABLE = no -STENO_ENABLE = no -EXTRAKEY_ENABLE = yes -VELOCIKEY_ENABLE = yes -``` - -Then, while using your keyboard, you need to also turn it on with the `VK_TOGG` keycode, which toggles the feature on and off. - -The following light effects will all be controlled by Velocikey when it is enabled: - - RGB Breathing - - RGB Rainbow Mood - - RGB Rainbow Swirl - - RGB Snake - - RGB Knight - -Support for LED breathing effects is planned but not available yet. - - As long as Velocikey is enabled, it will control the speed regardless of any other speed setting that your RGB lights are currently on. - - ## Configuration - Velocikey doesn't currently support any configuration via keyboard settings. If you want to adjust something like the speed increase or decay rate, you would need to edit `velocikey.c` and adjust the values there to achieve the kinds of speeds that you like. diff --git a/docs/ja/_summary.md b/docs/ja/_summary.md index 4d6f2348d5..f26665e614 100644 --- a/docs/ja/_summary.md +++ b/docs/ja/_summary.md @@ -112,7 +112,6 @@ * [分割キーボード](ja/feature_split_keyboard.md) * [速記](ja/feature_stenography.md) * [感熱式プリンタ](ja/feature_thermal_printer.md) - * [Velocikey](ja/feature_velocikey.md) * QMK の開発 * [PR チェックリスト](ja/pr_checklist.md) diff --git a/docs/ja/feature_velocikey.md b/docs/ja/feature_velocikey.md deleted file mode 100644 index b13969a195..0000000000 --- a/docs/ja/feature_velocikey.md +++ /dev/null @@ -1,34 +0,0 @@ -# Velocikey - - - -Velocikey は入力の速度を使って(レインボー渦巻効果のような)ライト効果の速度を制御できる機能です。速く入力すればするほどライトが速くなります! - -## 使用法 -Velocikey を使うためには、2つのステップがあります。最初に、キーボードをコンパイルする時に、`rules.mk` に `VELOCIKEY_ENABLE=yes` を設定する必要があります。例えば: - -``` -MOUSEKEY_ENABLE = no -STENO_ENABLE = no -EXTRAKEY_ENABLE = yes -VELOCIKEY_ENABLE = yes -``` - -次に、キーボードの使用中に、VLK_TOG キーコードを使って Velocikey を有効にする必要もあります。これは機能をオンおよびオフにします。 - -以下の全てのライト効果が、Velocikey を有効にすることで制御されます: -- RGB 明滅動作 -- RGB レインボームード -- RGB レインボー渦巻 -- RGB スネーク -- RGB ナイト - -LED 明滅動作の効果のサポートは計画されていますがまだ利用できません。 - -Velocikey が有効になっている限り、現在オンになっている RGB ライトの他の全ての速度設定に関係なく、速度が制御されます。 - -## 設定 -Velocikey は現在のところキーボード設定を介したどのような設定もサポートしません。速度の増加あるいは減少率などを調整したい場合は、`velocikey.c` を編集し、そこで値を調整して、好みの速度を実現する必要があります。 diff --git a/docs/zh-cn/_summary.md b/docs/zh-cn/_summary.md index 0fc92e33d3..a076f1a8c6 100644 --- a/docs/zh-cn/_summary.md +++ b/docs/zh-cn/_summary.md @@ -121,7 +121,6 @@ * [分体式键盘](zh-cn/feature_split_keyboard.md) * [速记](zh-cn/feature_stenography.md) * [热敏打印机](zh-cn/feature_thermal_printer.md) - * [Velocikey](zh-cn/feature_velocikey.md) * QMK开发 * [PR Checklist](zh-cn/pr_checklist.md) diff --git a/quantum/eeconfig.c b/quantum/eeconfig.c index 4579d67c28..d9eea13758 100644 --- a/quantum/eeconfig.c +++ b/quantum/eeconfig.c @@ -57,7 +57,7 @@ void eeconfig_init_quantum(void) { eeprom_update_byte(EECONFIG_AUDIO, 0xFF); // On by default eeprom_update_dword(EECONFIG_RGBLIGHT, 0); eeprom_update_byte(EECONFIG_RGBLIGHT_EXTENDED, 0); - eeprom_update_byte(EECONFIG_VELOCIKEY, 0); + eeprom_update_byte(EECONFIG_UNUSED, 0); eeprom_update_byte(EECONFIG_UNICODEMODE, 0); eeprom_update_byte(EECONFIG_STENOMODE, 0); uint64_t dummy = 0; diff --git a/quantum/eeconfig.h b/quantum/eeconfig.h index 85e80226b6..34d85cb91e 100644 --- a/quantum/eeconfig.h +++ b/quantum/eeconfig.h @@ -39,7 +39,7 @@ along with this program. If not, see . #define EECONFIG_HANDEDNESS (uint8_t *)14 #define EECONFIG_KEYBOARD (uint32_t *)15 #define EECONFIG_USER (uint32_t *)19 -#define EECONFIG_VELOCIKEY (uint8_t *)23 +#define EECONFIG_UNUSED (uint8_t *)23 // Mutually exclusive #define EECONFIG_LED_MATRIX (uint32_t *)24 #define EECONFIG_RGB_MATRIX (uint64_t *)24 diff --git a/quantum/keyboard.c b/quantum/keyboard.c index cf3361dff9..86a1a9fea3 100644 --- a/quantum/keyboard.c +++ b/quantum/keyboard.c @@ -99,9 +99,6 @@ along with this program. If not, see . #ifdef ST7565_ENABLE # include "st7565.h" #endif -#ifdef VELOCIKEY_ENABLE -# include "velocikey.h" -#endif #ifdef VIA_ENABLE # include "via.h" #endif @@ -708,12 +705,6 @@ void keyboard_task(void) { midi_task(); #endif -#ifdef VELOCIKEY_ENABLE - if (velocikey_enabled()) { - velocikey_decelerate(); - } -#endif - #ifdef JOYSTICK_ENABLE joystick_task(); #endif diff --git a/quantum/quantum.c b/quantum/quantum.c index 3323a5adb6..f721ab0a1f 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -68,10 +68,6 @@ # include "process_unicode_common.h" #endif -#ifdef VELOCIKEY_ENABLE -# include "velocikey.h" -#endif - #ifdef AUDIO_ENABLE # ifndef GOODBYE_SONG # define GOODBYE_SONG SONG(GOODBYE_SOUND) @@ -288,9 +284,9 @@ bool process_record_quantum(keyrecord_t *record) { } #endif -#ifdef VELOCIKEY_ENABLE - if (velocikey_enabled() && record->event.pressed) { - velocikey_accelerate(); +#ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + preprocess_rgblight(); } #endif diff --git a/quantum/rgblight/rgblight.c b/quantum/rgblight/rgblight.c index d6dd432c83..aea0ae44cb 100644 --- a/quantum/rgblight/rgblight.c +++ b/quantum/rgblight/rgblight.c @@ -27,9 +27,6 @@ #ifdef EEPROM_ENABLE # include "eeprom.h" #endif -#ifdef VELOCIKEY_ENABLE -# include "velocikey.h" -#endif #ifdef RGBLIGHT_SPLIT /* for split keyboard */ @@ -198,12 +195,13 @@ void eeconfig_update_rgblight_current(void) { } void eeconfig_update_rgblight_default(void) { - rgblight_config.enable = 1; - rgblight_config.mode = RGBLIGHT_DEFAULT_MODE; - rgblight_config.hue = RGBLIGHT_DEFAULT_HUE; - rgblight_config.sat = RGBLIGHT_DEFAULT_SAT; - rgblight_config.val = RGBLIGHT_DEFAULT_VAL; - rgblight_config.speed = RGBLIGHT_DEFAULT_SPD; + rgblight_config.enable = 1; + rgblight_config.velocikey = 0; + rgblight_config.mode = RGBLIGHT_DEFAULT_MODE; + rgblight_config.hue = RGBLIGHT_DEFAULT_HUE; + rgblight_config.sat = RGBLIGHT_DEFAULT_SAT; + rgblight_config.val = RGBLIGHT_DEFAULT_VAL; + rgblight_config.speed = RGBLIGHT_DEFAULT_SPD; RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS; eeconfig_update_rgblight(rgblight_config.raw); } @@ -211,6 +209,7 @@ void eeconfig_update_rgblight_default(void) { void eeconfig_debug_rgblight(void) { dprintf("rgblight_config EEPROM:\n"); dprintf("rgblight_config.enable = %d\n", rgblight_config.enable); + dprintf("rgblight_config.velocikey = %d\n", rgblight_config.velocikey); dprintf("rghlight_config.mode = %d\n", rgblight_config.mode); dprintf("rgblight_config.hue = %d\n", rgblight_config.hue); dprintf("rgblight_config.sat = %d\n", rgblight_config.sat); @@ -689,9 +688,9 @@ void rgblight_sethsv_at(uint8_t hue, uint8_t sat, uint8_t val, uint8_t index) { static uint8_t get_interval_time(const uint8_t *default_interval_address, uint8_t velocikey_min, uint8_t velocikey_max) { return # ifdef VELOCIKEY_ENABLE - velocikey_enabled() ? velocikey_match_speed(velocikey_min, velocikey_max) : + rgblight_velocikey_enabled() ? rgblight_velocikey_match_speed(velocikey_min, velocikey_max) : # endif - pgm_read_byte(default_interval_address); + pgm_read_byte(default_interval_address); } #endif @@ -1049,7 +1048,7 @@ static void rgblight_effect_dummy(animation_status_t *anim) { **/ } -void rgblight_task(void) { +void rgblight_timer_task(void) { if (rgblight_status.timer_enabled) { effect_func_t effect_func = rgblight_effect_dummy; uint16_t interval_time = 2000; // dummy interval @@ -1519,3 +1518,61 @@ void rgblight_effect_twinkle(animation_status_t *anim) { rgblight_set(); } #endif + +void preprocess_rgblight(void) { +#ifdef VELOCIKEY_ENABLE + if (rgblight_velocikey_enabled()) { + rgblight_velocikey_accelerate(); + } +#endif +} + +void rgblight_task(void) { +#ifdef RGBLIGHT_USE_TIMER + rgblight_timer_task(); +#endif + +#ifdef VELOCIKEY_ENABLE + if (rgblight_velocikey_enabled()) { + rgblight_velocikey_decelerate(); + } +#endif +} + +#ifdef VELOCIKEY_ENABLE +# define TYPING_SPEED_MAX_VALUE 200 + +static uint8_t typing_speed = 0; + +bool rgblight_velocikey_enabled(void) { + return rgblight_config.velocikey; +} + +void rgblight_velocikey_toggle(void) { + dprintf("rgblight velocikey toggle [EEPROM]: rgblight_config.velocikey = %u\n", !rgblight_config.velocikey); + rgblight_config.velocikey = !rgblight_config.velocikey; + eeconfig_update_rgblight_current(); +} + +void rgblight_velocikey_accelerate(void) { + if (typing_speed < TYPING_SPEED_MAX_VALUE) typing_speed += (TYPING_SPEED_MAX_VALUE / 100); +} + +void rgblight_velocikey_decelerate(void) { + static uint16_t decay_timer = 0; + + if (timer_elapsed(decay_timer) > 500 || decay_timer == 0) { + if (typing_speed > 0) typing_speed -= 1; + // Decay a little faster at half of max speed + if (typing_speed > TYPING_SPEED_MAX_VALUE / 2) typing_speed -= 1; + // Decay even faster at 3/4 of max speed + if (typing_speed > TYPING_SPEED_MAX_VALUE / 4 * 3) typing_speed -= 2; + decay_timer = timer_read(); + } +} + +uint8_t rgblight_velocikey_match_speed(uint8_t minValue, uint8_t maxValue) { + return MAX(minValue, maxValue - (maxValue - minValue) * ((float)typing_speed / TYPING_SPEED_MAX_VALUE)); +} + +#endif \ No newline at end of file diff --git a/quantum/rgblight/rgblight.h b/quantum/rgblight/rgblight.h index 450caf603e..a222ab6b9f 100644 --- a/quantum/rgblight/rgblight.h +++ b/quantum/rgblight/rgblight.h @@ -248,7 +248,8 @@ typedef union { uint64_t raw; struct { bool enable : 1; - uint8_t mode : 7; + bool velocikey : 1; + uint8_t mode : 6; uint8_t hue : 8; uint8_t sat : 8; uint8_t val : 8; @@ -385,14 +386,15 @@ void rgblight_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom); #define EZ_RGB(val) rgblight_show_solid_color((val >> 16) & 0xFF, (val >> 8) & 0xFF, val & 0xFF) void rgblight_show_solid_color(uint8_t r, uint8_t g, uint8_t b); -#ifdef RGBLIGHT_USE_TIMER +void preprocess_rgblight(void); void rgblight_task(void); + +#ifdef RGBLIGHT_USE_TIMER void rgblight_timer_init(void); void rgblight_timer_enable(void); void rgblight_timer_disable(void); void rgblight_timer_toggle(void); #else -# define rgblight_task() # define rgblight_timer_init() # define rgblight_timer_enable() # define rgblight_timer_disable() @@ -446,3 +448,14 @@ void rgblight_effect_alternating(animation_status_t *anim); void rgblight_effect_twinkle(animation_status_t *anim); #endif + +#ifdef VELOCIKEY_ENABLE +bool rgblight_velocikey_enabled(void); +void rgblight_velocikey_toggle(void); +void rgblight_velocikey_accelerate(void); +void rgblight_velocikey_decelerate(void); +uint8_t rgblight_velocikey_match_speed(uint8_t minValue, uint8_t maxValue); + +# define velocikey_enabled rgblight_velocikey_enabled +# define velocikey_toggle rgblight_velocikey_toggle +#endif diff --git a/quantum/velocikey.c b/quantum/velocikey.c deleted file mode 100644 index 03e91911f6..0000000000 --- a/quantum/velocikey.c +++ /dev/null @@ -1,40 +0,0 @@ -#include "velocikey.h" -#include "timer.h" -#include "eeconfig.h" -#include "eeprom.h" -#include "util.h" - -#define TYPING_SPEED_MAX_VALUE 200 -uint8_t typing_speed = 0; - -bool velocikey_enabled(void) { - return eeprom_read_byte(EECONFIG_VELOCIKEY) == 1; -} - -void velocikey_toggle(void) { - if (velocikey_enabled()) - eeprom_update_byte(EECONFIG_VELOCIKEY, 0); - else - eeprom_update_byte(EECONFIG_VELOCIKEY, 1); -} - -void velocikey_accelerate(void) { - if (typing_speed < TYPING_SPEED_MAX_VALUE) typing_speed += (TYPING_SPEED_MAX_VALUE / 100); -} - -void velocikey_decelerate(void) { - static uint16_t decay_timer = 0; - - if (timer_elapsed(decay_timer) > 500 || decay_timer == 0) { - if (typing_speed > 0) typing_speed -= 1; - // Decay a little faster at half of max speed - if (typing_speed > TYPING_SPEED_MAX_VALUE / 2) typing_speed -= 1; - // Decay even faster at 3/4 of max speed - if (typing_speed > TYPING_SPEED_MAX_VALUE / 4 * 3) typing_speed -= 2; - decay_timer = timer_read(); - } -} - -uint8_t velocikey_match_speed(uint8_t minValue, uint8_t maxValue) { - return MAX(minValue, maxValue - (maxValue - minValue) * ((float)typing_speed / TYPING_SPEED_MAX_VALUE)); -} diff --git a/quantum/velocikey.h b/quantum/velocikey.h deleted file mode 100644 index c375f82f71..0000000000 --- a/quantum/velocikey.h +++ /dev/null @@ -1,10 +0,0 @@ -#pragma once - -#include -#include - -bool velocikey_enabled(void); -void velocikey_toggle(void); -void velocikey_accelerate(void); -void velocikey_decelerate(void); -uint8_t velocikey_match_speed(uint8_t minValue, uint8_t maxValue); From 6eb2e43a8d61694b05016e9a6c95303ff9d5e761 Mon Sep 17 00:00:00 2001 From: Ikko Eltociear Ashimine Date: Tue, 26 Sep 2023 04:40:27 +0900 Subject: [PATCH 184/496] Fix typo in oled_driver (#22134) betwen -> between --- docs/feature_oled_driver.md | 2 +- drivers/oled/oled_driver.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/feature_oled_driver.md b/docs/feature_oled_driver.md index ba10a5a2b9..e67f80c879 100644 --- a/docs/feature_oled_driver.md +++ b/docs/feature_oled_driver.md @@ -399,7 +399,7 @@ void oled_scroll_set_area(uint8_t start_line, uint8_t end_line); // Sets scroll speed, 0-7, fastest to slowest. Default is three. // Does not take effect until scrolling is either started or restarted // the ssd1306 supports 8 speeds with the delay -// listed below betwen each frame of the scrolling effect +// listed below between each frame of the scrolling effect // 0=2, 1=3, 2=4, 3=5, 4=25, 5=64, 6=128, 7=256 void oled_scroll_set_speed(uint8_t speed); diff --git a/drivers/oled/oled_driver.h b/drivers/oled/oled_driver.h index 627a3da0ba..91c376ec27 100644 --- a/drivers/oled/oled_driver.h +++ b/drivers/oled/oled_driver.h @@ -454,7 +454,7 @@ void oled_scroll_set_area(uint8_t start_line, uint8_t end_line); // Sets scroll speed, 0-7, fastest to slowest. Default is three. // Does not take effect until scrolling is either started or restarted // the ssd1306 supports 8 speeds with the delay -// listed below betwen each frame of the scrolling effect +// listed below between each frame of the scrolling effect // 0=2, 1=3, 2=4, 3=5, 4=25, 5=64, 6=128, 7=256 void oled_scroll_set_speed(uint8_t speed); From 1acecc38e9975cc2fd8f2b17c52c5255943d6b45 Mon Sep 17 00:00:00 2001 From: dztech Date: Tue, 26 Sep 2023 09:16:28 +0800 Subject: [PATCH 185/496] add tofujr v2 keyboard (#21740) Co-authored-by: Ryan --- keyboards/dztech/tofu/jr/{ => v1}/readme.md | 4 +- keyboards/dztech/tofu/jr/v2/config.h | 24 ++++ keyboards/dztech/tofu/jr/v2/info.json | 124 ++++++++++++++++++++ keyboards/dztech/tofu/jr/v2/readme.md | 22 ++++ keyboards/dztech/tofu/jr/v2/rules.mk | 1 + 5 files changed, 173 insertions(+), 2 deletions(-) rename keyboards/dztech/tofu/jr/{ => v1}/readme.md (94%) create mode 100644 keyboards/dztech/tofu/jr/v2/config.h create mode 100644 keyboards/dztech/tofu/jr/v2/info.json create mode 100644 keyboards/dztech/tofu/jr/v2/readme.md create mode 100644 keyboards/dztech/tofu/jr/v2/rules.mk diff --git a/keyboards/dztech/tofu/jr/readme.md b/keyboards/dztech/tofu/jr/v1/readme.md similarity index 94% rename from keyboards/dztech/tofu/jr/readme.md rename to keyboards/dztech/tofu/jr/v1/readme.md index 579929c5d7..f17b9aea90 100644 --- a/keyboards/dztech/tofu/jr/readme.md +++ b/keyboards/dztech/tofu/jr/v1/readme.md @@ -1,8 +1,8 @@ -# TOFU_JR +# TOFU_JR_V1 A customizable 65% RGB keyboard. * Keyboard Maintainer: [moyi4681](https://github.com/moyi4681) -* Hardware Supported: TOFU_JR +* Hardware Supported: TOFU_JR_V1 * Hardware Availability: [KBDfans](https://kbdfans.com/) ## Bootloader mode diff --git a/keyboards/dztech/tofu/jr/v2/config.h b/keyboards/dztech/tofu/jr/v2/config.h new file mode 100644 index 0000000000..935a2ab437 --- /dev/null +++ b/keyboards/dztech/tofu/jr/v2/config.h @@ -0,0 +1,24 @@ +/* Copyright 2023 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_EFFECT_RAINBOW_MOOD + 8) + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U + + diff --git a/keyboards/dztech/tofu/jr/v2/info.json b/keyboards/dztech/tofu/jr/v2/info.json new file mode 100644 index 0000000000..6a60565b22 --- /dev/null +++ b/keyboards/dztech/tofu/jr/v2/info.json @@ -0,0 +1,124 @@ +{ + "bootloader": "rp2040", + "processor": "RP2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["GP25", "GP24", "GP23", "GP1", "GP7", "GP21", "GP20", "GP19", "GP18", "GP17", "GP16", "GP15", "GP14", "GP13", "GP12"], + "rows": ["GP29", "GP28", "GP27", "GP26", "GP22"] + }, + "indicators": { + "caps_lock": "GP11" + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x1425", + "vid": "0x445A" + }, + "rgblight": { + "brightness_steps": 10, + "hue_steps": 10, + "led_count": 16, + "saturation_steps": 10, + "sleep": true, + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + } + }, + "ws2812": { + "pin": "GP2", + "driver": "vendor" + }, + "community_layouts": ["65_ansi"], + "layouts": { + "LAYOUT_65_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "w": 2, "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "w": 1.5, "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "w": 1.75, "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "w": 2.25, "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [3, 11], "w": 1.75, "x": 12.25, "y": 3}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "w": 1.25, "x": 0, "y": 4}, + {"matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4}, + {"matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4}, + {"matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4}, + {"matrix": [4, 8], "x": 10, "y": 4}, + {"matrix": [4, 9], "x": 11, "y": 4}, + {"matrix": [4, 10], "x": 12, "y": 4}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/dztech/tofu/jr/v2/readme.md b/keyboards/dztech/tofu/jr/v2/readme.md new file mode 100644 index 0000000000..8523a3f32a --- /dev/null +++ b/keyboards/dztech/tofu/jr/v2/readme.md @@ -0,0 +1,22 @@ +# TOFU_JR_V2 +A customizable 65% hotswap with RGB backlight keyboard. + +* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681) +* Hardware Supported: TOFU_JR_V2 +* Hardware Availability: [KBDfans](https://kbdfans.com/) + +## Bootloader mode + +Enter the bootloader in 3 ways: + +* Bootmagic reset: Hold down the left top key then plug in the USB cable. +* Physical reset button: Double tap the reset button. +* Keycode in layout: Press the key mapped to QK_BOOT if it is available. + +## Making firmware + +Make example for this keyboard (after setting up your build environment): + + make dztech/tofu/jr/v2: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). diff --git a/keyboards/dztech/tofu/jr/v2/rules.mk b/keyboards/dztech/tofu/jr/v2/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/dztech/tofu/jr/v2/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From 8d9c770a8181d0bcc59b89a57e6835735356da91 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Tue, 26 Sep 2023 12:20:32 +1000 Subject: [PATCH 186/496] Fix entry into bootloader for STM32G431. (#22138) --- .../chibios/boards/GENERIC_STM32_F446XE/configs/config.h | 4 ---- .../chibios/boards/GENERIC_STM32_G431XB/configs/config.h | 7 +++++++ 2 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 platforms/chibios/boards/GENERIC_STM32_G431XB/configs/config.h diff --git a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h index 90a41326a1..cbb98f9098 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h +++ b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h @@ -14,10 +14,6 @@ * along with this program. If not, see . */ -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up by checking against ST's application note AN2606. - */ - #ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP # define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE #endif diff --git a/platforms/chibios/boards/GENERIC_STM32_G431XB/configs/config.h b/platforms/chibios/boards/GENERIC_STM32_G431XB/configs/config.h new file mode 100644 index 0000000000..2f23d400bb --- /dev/null +++ b/platforms/chibios/boards/GENERIC_STM32_G431XB/configs/config.h @@ -0,0 +1,7 @@ +// Copyright 2023 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP +# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE +#endif From 17ae28f0e41aa30937d80e48dc19548c76cc6e43 Mon Sep 17 00:00:00 2001 From: Yanfei Guo Date: Tue, 26 Sep 2023 01:17:20 -0500 Subject: [PATCH 187/496] Fix doc for programmable buttons. (#22136) Co-authored-by: Yanfei Guo --- docs/feature_programmable_button.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/feature_programmable_button.md b/docs/feature_programmable_button.md index 43a9e7fc16..091464e19c 100644 --- a/docs/feature_programmable_button.md +++ b/docs/feature_programmable_button.md @@ -2,7 +2,7 @@ Programmable Buttons are keys that have no predefined meaning. This means they can be processed on the host side by custom software without the operating system trying to interpret them. -The keycodes are emitted according to the HID Telephony Device page (`0x0B`), Programmable Button usage (`0x07`). On Linux (> 5.14) they are handled automatically and translated to `KEY_MACRO#` keycodes (up to `KEY_MACRO30`). +The keycodes are emitted according to the HID Telephony Device page (`0x0B`), Programmable Button usage (`0x09`). On Linux (> 5.14) they are handled automatically and translated to `KEY_MACRO#` keycodes (up to `KEY_MACRO30`). ?> Currently there is no known support in Windows or macOS. It may be possible to write a custom HID driver to receive these usages, but this is out of the scope of the QMK documentation. From 46c1e7351e8f19c2e884c9338db3fdbabf8d3a17 Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Tue, 26 Sep 2023 07:17:47 +0100 Subject: [PATCH 188/496] rastersoft/minitkl layout corrections (#22130) --- keyboards/rastersoft/minitkl/info.json | 154 +++++++++++++------------ 1 file changed, 78 insertions(+), 76 deletions(-) diff --git a/keyboards/rastersoft/minitkl/info.json b/keyboards/rastersoft/minitkl/info.json index 7de5b4f75d..e8d0691959 100644 --- a/keyboards/rastersoft/minitkl/info.json +++ b/keyboards/rastersoft/minitkl/info.json @@ -50,21 +50,21 @@ "LAYOUT_iso": { "layout": [ {"label":"esc", "x":0, "y":0, "matrix": [0, 0]}, - {"label":"F1", "x":1, "y":0, "matrix": [0, 1]}, - {"label":"F2", "x":2, "y":0, "matrix": [0, 2]}, - {"label":"F3", "x":3, "y":0, "matrix": [0, 3]}, - {"label":"F4", "x":4, "y":0, "matrix": [0, 4]}, - {"label":"F5", "x":5, "y":0, "matrix": [0, 5]}, - {"label":"F6", "x":6, "y":0, "matrix": [0, 6]}, - {"label":"F7", "x":7, "y":0, "matrix": [0, 7]}, - {"label":"F8", "x":8, "y":0, "matrix": [1, 7]}, - {"label":"F9", "x":9, "y":0, "matrix": [1, 6]}, - {"label":"F10", "x":10, "y":0, "matrix": [1, 5]}, - {"label":"F11", "x":11, "y":0, "matrix": [1, 4]}, - {"label":"F12", "x":12, "y":0, "matrix": [1, 3]}, - {"label":"PrtScr", "x":13, "y":0, "matrix": [1, 2]}, - {"label":"ScrollLock", "x":14, "y":0, "matrix": [1, 1]}, - {"label":"Pause", "x":15, "y":0, "matrix": [1, 0]}, + {"label":"F1", "x":1.25, "y":0, "matrix": [0, 1]}, + {"label":"F2", "x":2.25, "y":0, "matrix": [0, 2]}, + {"label":"F3", "x":3.25, "y":0, "matrix": [0, 3]}, + {"label":"F4", "x":4.25, "y":0, "matrix": [0, 4]}, + {"label":"F5", "x":5.5, "y":0, "matrix": [0, 5]}, + {"label":"F6", "x":6.5, "y":0, "matrix": [0, 6]}, + {"label":"F7", "x":7.5, "y":0, "matrix": [0, 7]}, + {"label":"F8", "x":8.5, "y":0, "matrix": [1, 7]}, + {"label":"F9", "x":9.75, "y":0, "matrix": [1, 6]}, + {"label":"F10", "x":10.75, "y":0, "matrix": [1, 5]}, + {"label":"F11", "x":11.75, "y":0, "matrix": [1, 4]}, + {"label":"F12", "x":12.75, "y":0, "matrix": [1, 3]}, + {"label":"PrtScr", "x":14, "y":0, "matrix": [1, 2]}, + {"label":"ScrollLock", "x":15, "y":0, "matrix": [1, 1]}, + {"label":"Pause", "x":16, "y":0, "matrix": [1, 0]}, {"label":"º", "x":0, "y":1, "matrix": [2, 0]}, {"label":"1", "x":1, "y":1, "matrix": [2, 1]}, @@ -97,7 +97,7 @@ {"label":"^", "x":11.5, "y":2, "matrix": [5, 4]}, {"label":"*", "x":12.5, "y":2, "matrix": [5, 3]}, {"label":"Insert", "x":15, "y":2, "matrix": [5, 1]}, - {"label":"PgUp", "x":15, "y":2, "matrix": [5, 0]}, + {"label":"PgUp", "x":16, "y":2, "matrix": [5, 0]}, {"label":"Shift Lock", "x":0, "y":3, "w":1.75, "matrix": [6, 0]}, {"label":"A", "x":1.75, "y":3, "matrix": [6, 1]}, @@ -134,33 +134,34 @@ {"label":"Ctrl", "x":0, "y":5, "w":1.25, "matrix": [10, 0]}, {"label":"Mod", "x":1.25, "y":5, "w":1.25, "matrix": [10, 1]}, - {"label":"Alt", "x":2.25, "y":5, "w":1.25, "matrix": [10, 2]}, - {"label":"Space", "x":3.5, "y":5, "w":6.5, "matrix": [10, 6]}, - {"label":"AltGr", "x":10, "y":5, "w":1.25, "matrix": [11, 5]}, - {"label":"Menu", "x":11, "y":5, "w":1.25, "matrix": [11, 4]}, - {"label":"Ctrl", "x":12, "y":5, "w":1.25, "matrix": [11, 3]}, - {"label":"Left", "x":13, "y":5, "matrix": [11, 2]}, - {"label":"Bottom", "x":14, "y":5, "matrix": [11, 1]}, - {"label":"Right", "x":15, "y":5, "matrix": [11, 0]} + {"label":"Alt", "x":2.5, "y":5, "w":1.25, "matrix": [10, 2]}, + {"label":"Space", "x":3.75, "y":5, "w":6.5, "matrix": [10, 6]}, + {"label":"AltGr", "x":10.25, "y":5, "w":1.25, "matrix": [11, 5]}, + {"label":"Menu", "x":11.5, "y":5, "w":1.25, "matrix": [11, 4]}, + {"label":"Ctrl", "x":12.75, "y":5, "w":1.25, "matrix": [11, 3]}, + {"label":"Left", "x":14, "y":5, "matrix": [11, 2]}, + {"label":"Bottom", "x":15, "y":5, "matrix": [11, 1]}, + {"label":"Right", "x":16, "y":5, "matrix": [11, 0]} ] - },"LAYOUT_ansi": { + }, + "LAYOUT_ansi": { "layout": [ {"label":"esc", "x":0, "y":0, "matrix": [0, 0]}, - {"label":"F1", "x":1, "y":0, "matrix": [0, 1]}, - {"label":"F2", "x":2, "y":0, "matrix": [0, 2]}, - {"label":"F3", "x":3, "y":0, "matrix": [0, 3]}, - {"label":"F4", "x":4, "y":0, "matrix": [0, 4]}, - {"label":"F5", "x":5, "y":0, "matrix": [0, 5]}, - {"label":"F6", "x":6, "y":0, "matrix": [0, 6]}, - {"label":"F7", "x":7, "y":0, "matrix": [0, 7]}, - {"label":"F8", "x":8, "y":0, "matrix": [1, 7]}, - {"label":"F9", "x":9, "y":0, "matrix": [1, 6]}, - {"label":"F10", "x":10, "y":0, "matrix": [1, 5]}, - {"label":"F11", "x":11, "y":0, "matrix": [1, 4]}, - {"label":"F12", "x":12, "y":0, "matrix": [1, 3]}, - {"label":"PrtScr", "x":13, "y":0, "matrix": [1, 2]}, - {"label":"ScrollLock", "x":14, "y":0, "matrix": [1, 1]}, - {"label":"Pause", "x":15, "y":0, "matrix": [1, 0]}, + {"label":"F1", "x":1.25, "y":0, "matrix": [0, 1]}, + {"label":"F2", "x":2.25, "y":0, "matrix": [0, 2]}, + {"label":"F3", "x":3.25, "y":0, "matrix": [0, 3]}, + {"label":"F4", "x":4.25, "y":0, "matrix": [0, 4]}, + {"label":"F5", "x":5.5, "y":0, "matrix": [0, 5]}, + {"label":"F6", "x":6.5, "y":0, "matrix": [0, 6]}, + {"label":"F7", "x":7.5, "y":0, "matrix": [0, 7]}, + {"label":"F8", "x":8.5, "y":0, "matrix": [1, 7]}, + {"label":"F9", "x":9.75, "y":0, "matrix": [1, 6]}, + {"label":"F10", "x":10.75, "y":0, "matrix": [1, 5]}, + {"label":"F11", "x":11.75, "y":0, "matrix": [1, 4]}, + {"label":"F12", "x":12.75, "y":0, "matrix": [1, 3]}, + {"label":"PrtScr", "x":14, "y":0, "matrix": [1, 2]}, + {"label":"ScrollLock", "x":15, "y":0, "matrix": [1, 1]}, + {"label":"Pause", "x":16, "y":0, "matrix": [1, 0]}, {"label":"º", "x":0, "y":1, "matrix": [2, 0]}, {"label":"1", "x":1, "y":1, "matrix": [2, 1]}, @@ -192,9 +193,9 @@ {"label":"P", "x":10.5, "y":2, "matrix": [5, 5]}, {"label":"[", "x":11.5, "y":2, "matrix": [5, 4]}, {"label":"]", "x":12.5, "y":2, "matrix": [5, 3]}, - {"label":"|", "x":13.75, "y":2, "w":1.25, "matrix": [5, 2]}, + {"label":"|", "x":13.5, "y":2, "w":1.5, "matrix": [5, 2]}, {"label":"Insert", "x":15, "y":2, "matrix": [5, 1]}, - {"label":"PgUp", "x":15, "y":2, "matrix": [5, 0]}, + {"label":"PgUp", "x":16, "y":2, "matrix": [5, 0]}, {"label":"Shift Lock", "x":0, "y":3, "w":1.75, "matrix": [6, 0]}, {"label":"A", "x":1.75, "y":3, "matrix": [6, 1]}, @@ -229,33 +230,34 @@ {"label":"Ctrl", "x":0, "y":5, "w":1.25, "matrix": [10, 0]}, {"label":"Mod", "x":1.25, "y":5, "w":1.25, "matrix": [10, 1]}, - {"label":"Alt", "x":2.25, "y":5, "w":1.25, "matrix": [10, 2]}, - {"label":"Space", "x":3.5, "y":5, "w":6.5, "matrix": [10, 6]}, - {"label":"AltGr", "x":10, "y":5, "w":1.25, "matrix": [11, 5]}, - {"label":"Menu", "x":11, "y":5, "w":1.25, "matrix": [11, 4]}, - {"label":"Ctrl", "x":12, "y":5, "w":1.25, "matrix": [11, 3]}, - {"label":"Left", "x":13, "y":5, "matrix": [11, 2]}, - {"label":"Bottom", "x":14, "y":5, "matrix": [11, 1]}, - {"label":"Right", "x":15, "y":5, "matrix": [11, 0]} + {"label":"Alt", "x":2.5, "y":5, "w":1.25, "matrix": [10, 2]}, + {"label":"Space", "x":3.75, "y":5, "w":6.5, "matrix": [10, 6]}, + {"label":"AltGr", "x":10.25, "y":5, "w":1.25, "matrix": [11, 5]}, + {"label":"Menu", "x":11.5, "y":5, "w":1.25, "matrix": [11, 4]}, + {"label":"Ctrl", "x":12.75, "y":5, "w":1.25, "matrix": [11, 3]}, + {"label":"Left", "x":14, "y":5, "matrix": [11, 2]}, + {"label":"Bottom", "x":15, "y":5, "matrix": [11, 1]}, + {"label":"Right", "x":16, "y":5, "matrix": [11, 0]} ] - },"LAYOUT_hybrid": { + }, + "LAYOUT_hybrid": { "layout": [ {"label":"esc", "x":0, "y":0, "matrix": [0, 0]}, - {"label":"F1", "x":1, "y":0, "matrix": [0, 1]}, - {"label":"F2", "x":2, "y":0, "matrix": [0, 2]}, - {"label":"F3", "x":3, "y":0, "matrix": [0, 3]}, - {"label":"F4", "x":4, "y":0, "matrix": [0, 4]}, - {"label":"F5", "x":5, "y":0, "matrix": [0, 5]}, - {"label":"F6", "x":6, "y":0, "matrix": [0, 6]}, - {"label":"F7", "x":7, "y":0, "matrix": [0, 7]}, - {"label":"F8", "x":8, "y":0, "matrix": [1, 7]}, - {"label":"F9", "x":9, "y":0, "matrix": [1, 6]}, - {"label":"F10", "x":10, "y":0, "matrix": [1, 5]}, - {"label":"F11", "x":11, "y":0, "matrix": [1, 4]}, - {"label":"F12", "x":12, "y":0, "matrix": [1, 3]}, - {"label":"PrtScr", "x":13, "y":0, "matrix": [1, 2]}, - {"label":"ScrollLock", "x":14, "y":0, "matrix": [1, 1]}, - {"label":"Pause", "x":15, "y":0, "matrix": [1, 0]}, + {"label":"F1", "x":1.25, "y":0, "matrix": [0, 1]}, + {"label":"F2", "x":2.25, "y":0, "matrix": [0, 2]}, + {"label":"F3", "x":3.25, "y":0, "matrix": [0, 3]}, + {"label":"F4", "x":4.25, "y":0, "matrix": [0, 4]}, + {"label":"F5", "x":5.5, "y":0, "matrix": [0, 5]}, + {"label":"F6", "x":6.5, "y":0, "matrix": [0, 6]}, + {"label":"F7", "x":7.5, "y":0, "matrix": [0, 7]}, + {"label":"F8", "x":8.5, "y":0, "matrix": [1, 7]}, + {"label":"F9", "x":9.75, "y":0, "matrix": [1, 6]}, + {"label":"F10", "x":10.75, "y":0, "matrix": [1, 5]}, + {"label":"F11", "x":11.75, "y":0, "matrix": [1, 4]}, + {"label":"F12", "x":12.75, "y":0, "matrix": [1, 3]}, + {"label":"PrtScr", "x":14, "y":0, "matrix": [1, 2]}, + {"label":"ScrollLock", "x":15, "y":0, "matrix": [1, 1]}, + {"label":"Pause", "x":16, "y":0, "matrix": [1, 0]}, {"label":"º", "x":0, "y":1, "matrix": [2, 0]}, {"label":"1", "x":1, "y":1, "matrix": [2, 1]}, @@ -287,9 +289,9 @@ {"label":"P", "x":10.5, "y":2, "matrix": [5, 5]}, {"label":"[", "x":11.5, "y":2, "matrix": [5, 4]}, {"label":"]", "x":12.5, "y":2, "matrix": [5, 3]}, - {"label":"|", "x":13.75, "y":2, "w":1.25, "matrix": [5, 2]}, + {"label":"|", "x":13.5, "y":2, "w":1.5, "matrix": [5, 2]}, {"label":"Insert", "x":15, "y":2, "matrix": [5, 1]}, - {"label":"PgUp", "x":15, "y":2, "matrix": [5, 0]}, + {"label":"PgUp", "x":16, "y":2, "matrix": [5, 0]}, {"label":"Shift Lock", "x":0, "y":3, "w":1.75, "matrix": [6, 0]}, {"label":"A", "x":1.75, "y":3, "matrix": [6, 1]}, @@ -325,14 +327,14 @@ {"label":"Ctrl", "x":0, "y":5, "w":1.25, "matrix": [10, 0]}, {"label":"Mod", "x":1.25, "y":5, "w":1.25, "matrix": [10, 1]}, - {"label":"Alt", "x":2.25, "y":5, "w":1.25, "matrix": [10, 2]}, - {"label":"Space", "x":3.5, "y":5, "w":6.5, "matrix": [10, 6]}, - {"label":"AltGr", "x":10, "y":5, "w":1.25, "matrix": [11, 5]}, - {"label":"Menu", "x":11, "y":5, "w":1.25, "matrix": [11, 4]}, - {"label":"Ctrl", "x":12, "y":5, "w":1.25, "matrix": [11, 3]}, - {"label":"Left", "x":13, "y":5, "matrix": [11, 2]}, - {"label":"Bottom", "x":14, "y":5, "matrix": [11, 1]}, - {"label":"Right", "x":15, "y":5, "matrix": [11, 0]} + {"label":"Alt", "x":2.5, "y":5, "w":1.25, "matrix": [10, 2]}, + {"label":"Space", "x":3.75, "y":5, "w":6.5, "matrix": [10, 6]}, + {"label":"AltGr", "x":10.25, "y":5, "w":1.25, "matrix": [11, 5]}, + {"label":"Menu", "x":11.5, "y":5, "w":1.25, "matrix": [11, 4]}, + {"label":"Ctrl", "x":12.75, "y":5, "w":1.25, "matrix": [11, 3]}, + {"label":"Left", "x":14, "y":5, "matrix": [11, 2]}, + {"label":"Bottom", "x":15, "y":5, "matrix": [11, 1]}, + {"label":"Right", "x":16, "y":5, "matrix": [11, 0]} ] } } From ca9664b1accaa8e1c0b9040eddbd49f2ef4e6f97 Mon Sep 17 00:00:00 2001 From: Idan Kamara Date: Tue, 26 Sep 2023 21:06:18 +0300 Subject: [PATCH 189/496] [Keyboard] Add spankbd, 3x5+3 split keyboard (#22003) --- keyboards/idank/spankbd/config.h | 6 + keyboards/idank/spankbd/info.json | 76 +++++++++++ .../idank/spankbd/keymaps/default/keymap.json | 125 ++++++++++++++++++ keyboards/idank/spankbd/keymaps/via/keymap.c | 81 ++++++++++++ keyboards/idank/spankbd/keymaps/via/rules.mk | 2 + keyboards/idank/spankbd/readme.md | 28 ++++ keyboards/idank/spankbd/rules.mk | 1 + keyboards/idank/spankbd/spankbd.c | 29 ++++ 8 files changed, 348 insertions(+) create mode 100644 keyboards/idank/spankbd/config.h create mode 100644 keyboards/idank/spankbd/info.json create mode 100644 keyboards/idank/spankbd/keymaps/default/keymap.json create mode 100644 keyboards/idank/spankbd/keymaps/via/keymap.c create mode 100644 keyboards/idank/spankbd/keymaps/via/rules.mk create mode 100644 keyboards/idank/spankbd/readme.md create mode 100644 keyboards/idank/spankbd/rules.mk create mode 100644 keyboards/idank/spankbd/spankbd.c diff --git a/keyboards/idank/spankbd/config.h b/keyboards/idank/spankbd/config.h new file mode 100644 index 0000000000..e926de7f5f --- /dev/null +++ b/keyboards/idank/spankbd/config.h @@ -0,0 +1,6 @@ +// Copyright 2023 Idan Kamara (@idank) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define MASTER_RIGHT diff --git a/keyboards/idank/spankbd/info.json b/keyboards/idank/spankbd/info.json new file mode 100644 index 0000000000..fc9dce4631 --- /dev/null +++ b/keyboards/idank/spankbd/info.json @@ -0,0 +1,76 @@ +{ + "url": "https://github.com/idank/spankbd", + "maintainer": "idank", + "keyboard_name": "Span", + "manufacturer": "holykeebs", + "development_board": "promicro", + "usb": { + "vid": "0xC3AC", + "pid": "0x3140", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": [ "F4", "F5", "F6", "F7", "B1" ], + "rows": [ "D4", "C6", "D7", "E6" ] + }, + "diode_direction": "COL2ROW", + "split": { + "enabled": true, + "soft_serial_pin": "D2" + }, + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.25}, + {"matrix": [0, 1], "x": 1, "y": 0.125}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0.125}, + {"matrix": [0, 4], "x": 4, "y": 0.375}, + + {"matrix": [4, 4], "x": 8, "y": 0.375}, + {"matrix": [4, 3], "x": 9, "y": 0.125}, + {"matrix": [4, 2], "x": 10, "y": 0}, + {"matrix": [4, 1], "x": 11, "y": 0.125}, + {"matrix": [4, 0], "x": 12, "y": 0.25}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.125}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1.125}, + {"matrix": [1, 4], "x": 4, "y": 1.375}, + + {"matrix": [5, 4], "x": 8, "y": 1.375}, + {"matrix": [5, 3], "x": 9, "y": 1.125}, + {"matrix": [5, 2], "x": 10, "y": 1}, + {"matrix": [5, 1], "x": 11, "y": 1.125}, + {"matrix": [5, 0], "x": 12, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25}, + {"matrix": [2, 1], "x": 1, "y": 2.125}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2.125}, + {"matrix": [2, 4], "x": 4, "y": 2.375}, + + {"matrix": [6, 4], "x": 8, "y": 2.375}, + {"matrix": [6, 3], "x": 9, "y": 2.125}, + {"matrix": [6, 2], "x": 10, "y": 2}, + {"matrix": [6, 1], "x": 11, "y": 2.125}, + {"matrix": [6, 0], "x": 12, "y": 2.25}, + + {"matrix": [3, 2], "x": 2, "y": 3.5}, + {"matrix": [3, 3], "x": 3.25, "y": 3.625, "w": 1.5}, + {"matrix": [3, 4], "x": 5, "y": 3.125, "h": 2}, + + {"matrix": [7, 4], "x": 7, "y": 3.125, "h": 2}, + {"matrix": [7, 3], "x": 8.25, "y": 3.625, "w": 1.5}, + {"matrix": [7, 2], "x": 10, "y": 3.5} + ] + } + } +} diff --git a/keyboards/idank/spankbd/keymaps/default/keymap.json b/keyboards/idank/spankbd/keymaps/default/keymap.json new file mode 100644 index 0000000000..10bb42e108 --- /dev/null +++ b/keyboards/idank/spankbd/keymaps/default/keymap.json @@ -0,0 +1,125 @@ +{ + "version": 1, + "notes": "Span default keymap", + "documentation": "\"This file is a QMK Configurator export. You can import this at . It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: \n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n", + "keyboard": "idank/spankbd", + "keymap": "default", + "layout": "LAYOUT_split_3x5_3", + "layers": [ + [ + "KC_Q", + "KC_W", + "KC_E", + "KC_R", + "KC_T", + "KC_Y", + "KC_U", + "KC_I", + "KC_O", + "KC_P", + "LCTL_T(KC_A)", + "KC_S", + "KC_D", + "KC_F", + "KC_G", + "KC_H", + "KC_J", + "KC_K", + "KC_L", + "LCTL_T(KC_SCLN)", + "RSFT_T(KC_Z)", + "KC_X", + "KC_C", + "KC_V", + "KC_B", + "KC_N", + "KC_M", + "KC_COMM", + "KC_DOT", + "RSFT_T(KC_SLSH)", + "LGUI_T(KC_ESC)", + "LALT_T(KC_ENT)", + "LT(1,KC_SPC)", + "LT(2,KC_SPC)", + "KC_LSFT", + "RSFT_T(KC_TAB)" + ], + [ + "KC_EXLM", + "KC_AT", + "KC_LCBR", + "KC_RCBR", + "KC_PIPE", + "KC_GRV", + "KC_TILD", + "KC_TRNS", + "KC_TRNS", + "KC_BSLS", + "KC_HASH", + "KC_DLR", + "KC_LPRN", + "KC_RPRN", + "KC_BTN2", + "KC_PPLS", + "KC_MINS", + "KC_SLSH", + "KC_ASTR", + "KC_QUOT", + "KC_PERC", + "KC_CIRC", + "KC_LBRC", + "KC_RBRC", + "KC_BTN1", + "KC_AMPR", + "KC_EQL", + "KC_COMM", + "KC_DOT", + "KC_MINS", + "KC_BSPC", + "KC_SCLN", + "KC_TRNS", + "KC_TRNS", + "KC_SCLN", + "KC_DEL" + ], + [ + "KC_1", + "KC_2", + "KC_3", + "KC_4", + "KC_5", + "KC_6", + "KC_7", + "KC_8", + "KC_9", + "KC_0", + "KC_F1", + "KC_F2", + "KC_F3", + "KC_F4", + "KC_F5", + "KC_LEFT", + "KC_DOWN", + "KC_UP", + "KC_RGHT", + "KC_VOLU", + "KC_F6", + "KC_F7", + "KC_F8", + "KC_F9", + "KC_F10", + "KC_MS_L", + "KC_MS_D", + "KC_MS_U", + "KC_MS_R", + "KC_VOLD", + "KC_F11", + "KC_F12", + "KC_TRNS", + "KC_TRNS", + "KC_MPLY", + "KC_MNXT" + ] + ], + "author": "idank" +} diff --git a/keyboards/idank/spankbd/keymaps/via/keymap.c b/keyboards/idank/spankbd/keymaps/via/keymap.c new file mode 100644 index 0000000000..763631f59d --- /dev/null +++ b/keyboards/idank/spankbd/keymaps/via/keymap.c @@ -0,0 +1,81 @@ +// Copyright 2023 Idan Kamara (@idank) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum { + _ALPHA, // default + _SPECIAL, // special characters + _NUMBERS // numbers/function/motion +}; + +#define KC_CTL_A MT(MOD_LCTL, KC_A) // Tap for A, hold for Control +#define KC_CTL_CL MT(MOD_LCTL, KC_SCLN) // Tap for colon, hold for Control +#define KC_SFT_Z MT(MOD_RSFT, KC_Z) // Tap for Z, hold for Shift +#define KC_SFT_SL MT(MOD_RSFT, KC_SLSH) // Tap for slash, hold for Shift + +#define KC_GUI_ESC MT(MOD_LGUI, KC_ESC) // Tap for Esc, hold for GUI (Meta, Command, Win) +#define KC_ALT_ENT MT(MOD_LALT, KC_ENT) // Tap for Enter, hold for Alt (Option) +#define KC_SPE_SPC LT(_SPECIAL, KC_SPC) // Tap for Space, hold for Special layer +#define KC_NUM_SPC LT(_NUMBERS, KC_SPC) // Tap for Space, hold for Numbers layer +#define KC_SFT_TAB MT(MOD_RSFT, KC_TAB) // Tap for Tab, hold for Right Shift + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap 0: Alpha layer + * + * ,-------------------------------. ,-------------------------------. + * | Q | W | E | R | T | | Y | U | I | O | P | + * |-------+-----+-----+-----+-----| |-----+-----+-----+-----+-------| + * | CTRL A| S | D | F | G | | H | J | K | L |CTRL ; | + * |-------+-----+-----+-----+-----| |-----+-----+-----+-----+-------| + * | SHFT Z| X | C | V | B | | N | M | < | > |SHFT / | + * `-------------------------------' `-------------------------------' + * .------------------------------. .----------------------. + * | ESC META | ENT ALT | SPC SPE | | SPC NUM | SHFT | TAB | + * '------------------------------' '----------------------' + */ + [_ALPHA] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_CTL_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_CTL_CL, + KC_SFT_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SFT_SL, + KC_GUI_ESC, KC_ALT_ENT, KC_SPE_SPC, KC_NUM_SPC, KC_LSFT, KC_SFT_TAB), + + /* Keymap 1: Special characters layer + * + * ,-------------------------------. ,-------------------------------. + * | ! | @ | { | } | | | | ` | ~ | | | \ | + * |-------+-----+-----+-----+-----| |-----+-----+-----+-----+-------| + * | # | $ | ( | ) | RMB | | + | - | / | * | ' | + * |-------+-----+-----+-----+-----| |-----+-----+-----+-----+-------| + * | % | ^ | [ | ] | LMB | | & | = | , | . | - | + * `-------------------------------' `-------------------------------' + * .------------------. .-----------------. + * | BSPC | ; | = | | = | ; | DEL | + * '------------------' '-----------------' + */ + [_SPECIAL] = LAYOUT_split_3x5_3( + KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV, KC_TILD, KC_TRNS, KC_TRNS, KC_BSLS, + KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_BTN2, KC_PLUS, KC_MINS, KC_SLSH, KC_ASTR, KC_QUOT, + KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_BTN1, KC_AMPR, KC_EQL, KC_COMM, KC_DOT, KC_MINS, + KC_BSPC, KC_SCLN, KC_EQL, KC_EQL, KC_SCLN, KC_DEL), + + /* Keymap 2: Numbers/Function/Motion layer + * + * ,-------------------------------. ,-------------------------------. + * | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | + * |-------+-----+-----+-----+-----| |-----+-----+-----+-----+-------| + * | F1 | F2 | F3 | F4 | F5 | | LFT | DWN | UP | RGT | VOLUP | + * |-------+-----+-----+-----+-----| |-----+-----+-----+-----+-------| + * | F6 | F7 | F8 | F9 | F10 | | MLFT| MDWN| MUP | MRGT| VOLDN | + * `-------------------------------' `-------------------------------' + * .-----------------. .-----------------. + * | F11 | F12 | | | | PLY | SKP | + * '-----------------' '-----------------' + */ + [_NUMBERS] = LAYOUT_split_3x5_3( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_VOLU, + KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_VOLD, + KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT) +}; + diff --git a/keyboards/idank/spankbd/keymaps/via/rules.mk b/keyboards/idank/spankbd/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/idank/spankbd/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/idank/spankbd/readme.md b/keyboards/idank/spankbd/readme.md new file mode 100644 index 0000000000..3d09ccbe42 --- /dev/null +++ b/keyboards/idank/spankbd/readme.md @@ -0,0 +1,28 @@ +# Span + +*Span is a 3x5+3 split keyboard, with 2u, 1.5u, 1u thumb clusters.* + +The keyboard layout Span uses is derived from GergoPlex, a keyboard that was originally available on gboards.ca +(now defunct). + +* Keyboard Maintainer: [@idank](https://github.com/idank) +* Hardware Supported: [spankbd](https://github.com/idank/spankbd) +* Hardware Availability: *[holykeebs](https://holykeebs.com)* + +Make example for this keyboard (after setting up your build environment): + + make idank/spankbd:default + +Flashing example for this keyboard: + + make idank/spankbd:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard. +* **Physical reset button**: Briefly press the button on the front of the PCB. Double tap for pro micro, 1 second press for Sea Picro / RP2040s. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/idank/spankbd/rules.mk b/keyboards/idank/spankbd/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/idank/spankbd/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/idank/spankbd/spankbd.c b/keyboards/idank/spankbd/spankbd.c new file mode 100644 index 0000000000..7bfd41d2d8 --- /dev/null +++ b/keyboards/idank/spankbd/spankbd.c @@ -0,0 +1,29 @@ +// Copyright 2023 Idan Kamara (@idank) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#ifdef OLED_ENABLE + +__attribute__((weak)) void oled_render_logo(void) { + // [span) logo + static const char PROGMEM raw_logo[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,192,192,192,192,192,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255, 1, 1, 1, 64,240,248,248,248,184, 56,120,120, 0, 0, 0,248,248,248,248, 56, 56,120,248,240,240,192, 0, 0, 24,120, 56, 56, 56,120,248,248,240,224, 0, 0,248,248,248,248, 56, 56,120,248,248,240,192, 0, 1, 7,127,255,255,252,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 96,121,123,115,119,119,127,127, 63, 30, 0, 0,255,255,255,255,112,112,120,127,127, 63, 15, 0, 28, 62,127,127,127,115,115,127,127,127,127, 0, 0,127,127,127,127, 0, 0, 0,127,127,127,127, 0, 0,192,252,255,255,127, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 7, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + oled_write_raw_P(raw_logo, sizeof(raw_logo)); +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + + oled_render_logo(); + + return false; +} + +#endif From 80ccbdfd86b75689561c43d9344ccb3f15e4d094 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 27 Sep 2023 00:41:13 +0100 Subject: [PATCH 190/496] More data driven RGB/LED Matrix config (#21939) --- data/mappings/info_config.hjson | 8 ++++++++ data/schemas/keyboard.jsonschema | 8 ++++++++ docs/reference_info_json.md | 24 ++++++++++++++++++++++++ 3 files changed, 40 insertions(+) diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index c3db2e46a2..e68a4439d0 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -67,7 +67,11 @@ "LEADER_TIMEOUT": {"info_key": "leader_key.timeout", "value_type": "int"}, // LED Matrix + "LED_DISABLE_WHEN_USB_SUSPENDED": {"info_key": "led_matrix.sleep", "value_type": "bool"}, "LED_MATRIX_CENTER": {"info_key": "led_matrix.center_point", "value_type": "array.int"}, + "LED_MATRIX_KEYRELEASES": {"info_key": "led_matrix.react_on_keyup", "value_type": "bool"}, + "LED_MATRIX_LED_FLUSH_LIMIT": {"info_key": "led_matrix.led_flush_limit", "value_type": "int"}, + "LED_MATRIX_LED_PROCESS_LIMIT": {"info_key": "led_matrix.led_process_limit", "value_type": "int", "to_json": false}, "LED_MATRIX_MAXIMUM_BRIGHTNESS": {"info_key": "led_matrix.max_brightness", "value_type": "int"}, "LED_MATRIX_SPD_STEP": {"info_key": "led_matrix.speed_steps", "value_type": "int"}, "LED_MATRIX_SPLIT": {"info_key": "led_matrix.split_count", "value_type": "array.int"}, @@ -104,8 +108,12 @@ "PS2_DATA_PIN": {"info_key": "ps2.data_pin"}, // RGB Matrix + "RGB_DISABLE_WHEN_USB_SUSPENDED": {"info_key": "rgb_matrix.sleep", "value_type": "bool"}, "RGB_MATRIX_CENTER": {"info_key": "rgb_matrix.center_point", "value_type": "array.int"}, "RGB_MATRIX_HUE_STEP": {"info_key": "rgb_matrix.hue_steps", "value_type": "int"}, + "RGB_MATRIX_KEYRELEASES": {"info_key": "rgb_matrix.react_on_keyup", "value_type": "bool"}, + "RGB_MATRIX_LED_FLUSH_LIMIT": {"info_key": "rgb_matrix.led_flush_limit", "value_type": "int"}, + "RGB_MATRIX_LED_PROCESS_LIMIT": {"info_key": "rgb_matrix.led_process_limit", "value_type": "int", "to_json": false}, "RGB_MATRIX_MAXIMUM_BRIGHTNESS": {"info_key": "rgb_matrix.max_brightness", "value_type": "int"}, "RGB_MATRIX_SAT_STEP": {"info_key": "rgb_matrix.sat_steps", "value_type": "int"}, "RGB_MATRIX_SPD_STEP": {"info_key": "rgb_matrix.speed_steps", "value_type": "int"}, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 1d9b7e7e6a..9c63ab8bcf 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -402,6 +402,10 @@ "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "led_flush_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "led_process_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "react_on_keyup": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "sleep": {"type": "boolean"}, "split_count": { "type": "array", "minItems": 2, @@ -454,6 +458,10 @@ "sat_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "led_flush_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "led_process_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "react_on_keyup": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "sleep": {"type": "boolean"}, "split_count": { "type": "array", "minItems": 2, diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 323db18664..001d80ddab 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -342,9 +342,21 @@ Configures the [LED Matrix](feature_led_matrix.md) feature. * The key matrix position associated with the LED. * Example: `[0, 2]` * Example: `{"matrix": [2, 1], "x": 20, "y": 48, "flags": 2}` + * `led_flush_limit` + * Limits in milliseconds how frequently an animation will update the LEDs. + * Default: `16` + * `led_process_limit` + * Limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness). + * Default: `led_count / 5` * `max_brightness` * The maximum value which brightness is scaled to, from 0 to 255. * Default: `255` + * `react_on_keyup` + * Animations react to keyup instead of keydown. + * Default: `false` + * `sleep` + * Turn off the LEDs when the host goes to sleep. + * Default: `false` * `speed_steps` * The number of speed adjustment steps. * Default: `16` @@ -546,12 +558,24 @@ Configures the [RGB Matrix](feature_rgb_matrix.md) feature. * The key matrix position associated with the LED. * Example: `[0, 2]` * Example: `{"matrix": [2, 1], "x": 20, "y": 48, "flags": 2}` + * `led_flush_limit` + * Limits in milliseconds how frequently an animation will update the LEDs. + * Default: `16` + * `led_process_limit` + * Limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness). + * Default: `led_count / 5` * `max_brightness` * The maximum value which the HSV "V" component is scaled to, from 0 to 255. * Default: `255` + * `react_on_keyup` + * Animations react to keyup instead of keydown. + * Default: `false` * `sat_steps` * The number of saturation adjustment steps. * Default: `16` + * `sleep` + * Turn off the LEDs when the host goes to sleep. + * Default: `false` * `speed_steps` * The number of speed adjustment steps. * Default: `16` From 351b5cd2cd625e031ba88c95ef7c4dfec7a04d80 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 27 Sep 2023 00:48:42 +0100 Subject: [PATCH 191/496] Initial support for CSTM80 (#22137) --- keyboards/drop/cstm80/board.h | 8 + keyboards/drop/cstm80/config.h | 22 ++ keyboards/drop/cstm80/cstm80.c | 96 +++++++ keyboards/drop/cstm80/halconf.h | 7 + keyboards/drop/cstm80/info.json | 272 ++++++++++++++++++ .../drop/cstm80/keymaps/default/keymap.c | 38 +++ keyboards/drop/cstm80/keymaps/via/config.h | 5 + keyboards/drop/cstm80/keymaps/via/keymap.c | 38 +++ keyboards/drop/cstm80/keymaps/via/rules.mk | 1 + keyboards/drop/cstm80/mcuconf.h | 14 + keyboards/drop/cstm80/readme.md | 24 ++ keyboards/drop/cstm80/rules.mk | 4 + keyboards/drop/lib/common.c | 10 +- 13 files changed, 533 insertions(+), 6 deletions(-) create mode 100644 keyboards/drop/cstm80/board.h create mode 100644 keyboards/drop/cstm80/config.h create mode 100644 keyboards/drop/cstm80/cstm80.c create mode 100644 keyboards/drop/cstm80/halconf.h create mode 100644 keyboards/drop/cstm80/info.json create mode 100644 keyboards/drop/cstm80/keymaps/default/keymap.c create mode 100644 keyboards/drop/cstm80/keymaps/via/config.h create mode 100644 keyboards/drop/cstm80/keymaps/via/keymap.c create mode 100644 keyboards/drop/cstm80/keymaps/via/rules.mk create mode 100644 keyboards/drop/cstm80/mcuconf.h create mode 100644 keyboards/drop/cstm80/readme.md create mode 100644 keyboards/drop/cstm80/rules.mk diff --git a/keyboards/drop/cstm80/board.h b/keyboards/drop/cstm80/board.h new file mode 100644 index 0000000000..ed3ea4b1f7 --- /dev/null +++ b/keyboards/drop/cstm80/board.h @@ -0,0 +1,8 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/drop/cstm80/config.h b/keyboards/drop/cstm80/config.h new file mode 100644 index 0000000000..2aefadfe30 --- /dev/null +++ b/keyboards/drop/cstm80/config.h @@ -0,0 +1,22 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define I2C1_SCL_PIN B8 +#define I2C1_SDA_PIN B9 + +#define EXTERNAL_EEPROM_I2C_BASE_ADDRESS 0b10101000 +#define EXTERNAL_EEPROM_WP_PIN B7 +#define EEPROM_I2C_24LC256 + +#define DRIVER_ADDR_1 0b1010000 +#define DRIVER_ADDR_2 0b1011111 +#define DRIVER_COUNT 2 +#define RGB_MATRIX_LED_COUNT 88 +#define ISSI_PWM_FREQUENCY 0b010 // 26k + +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS + +#define RGB_MATRIX_CAPS_LOCK_INDEX 48 diff --git a/keyboards/drop/cstm80/cstm80.c b/keyboards/drop/cstm80/cstm80.c new file mode 100644 index 0000000000..c60f347cb9 --- /dev/null +++ b/keyboards/drop/cstm80/cstm80.c @@ -0,0 +1,96 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#ifdef RGB_MATRIX_ENABLE +# include "rgb_matrix.h" + +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { + { 0, E_1, D_1, F_1 }, + { 0, E_2, D_2, F_2 }, + { 0, E_3, D_3, F_3 }, + { 0, E_4, D_4, F_4 }, + { 0, E_5, D_5, F_5 }, + { 0, E_6, D_6, F_6 }, + { 0, E_7, D_7, F_7 }, + { 0, E_8, D_8, F_8 }, + { 0, E_9, D_9, F_9 }, + { 0, E_10, D_10, F_10 }, + { 0, E_11, D_11, F_11 }, + { 0, E_12, D_12, F_12 }, + { 0, E_13, D_13, F_13 }, + { 0, E_14, D_14, F_14 }, + { 0, E_15, D_15, F_15 }, + { 0, E_16, D_16, F_16 }, + { 0, H_1, G_1, I_1 }, + { 0, H_2, G_2, I_2 }, + { 0, H_3, G_3, I_3 }, + { 0, H_4, G_4, I_4 }, + { 0, H_5, G_5, I_5 }, + { 0, H_6, G_6, I_6 }, + { 0, H_7, G_7, I_7 }, + { 0, H_8, G_8, I_8 }, + { 0, H_9, G_9, I_9 }, + { 0, H_10, G_10, I_10 }, + { 0, H_11, G_11, I_11 }, + { 0, H_12, G_12, I_12 }, + { 0, H_13, G_13, I_13 }, + { 0, H_14, G_14, I_14 }, + { 0, H_15, G_15, I_15 }, + { 0, H_16, G_16, I_16 }, + { 0, K_1, J_1, L_1 }, + { 0, K_2, J_2, L_2 }, + { 0, K_3, J_3, L_3 }, + { 0, K_4, J_4, L_4 }, + { 0, K_5, J_5, L_5 }, + { 0, K_6, J_6, L_6 }, + { 0, K_7, J_7, L_7 }, + { 0, K_8, J_8, L_8 }, + { 0, K_9, J_9, L_9 }, + { 0, K_10, J_10, L_10 }, + { 0, K_11, J_11, L_11 }, + { 0, K_12, J_12, L_12 }, + { 0, K_13, J_13, L_13 }, + { 0, K_14, J_14, L_14 }, + { 0, K_15, J_15, L_15 }, + { 0, K_16, J_16, L_16 }, + { 1, B_1, A_1, C_1 }, + { 1, B_2, A_2, C_2 }, + { 1, B_3, A_3, C_3 }, + { 1, B_4, A_4, C_4 }, + { 1, B_5, A_5, C_5 }, + { 1, B_6, A_6, C_6 }, + { 1, B_7, A_7, C_7 }, + { 1, B_8, A_8, C_8 }, + { 1, B_9, A_9, C_9 }, + { 1, B_10, A_10, C_10 }, + { 1, B_11, A_11, C_11 }, + { 1, B_12, A_12, C_12 }, + { 1, B_13, A_13, C_13 }, + { 1, B_14, A_14, C_14 }, + { 1, B_15, A_15, C_15 }, + { 1, B_16, A_16, C_16 }, + { 1, E_1, D_1, F_1 }, + { 1, E_2, D_2, F_2 }, + { 1, E_3, D_3, F_3 }, + { 1, E_4, D_4, F_4 }, + { 1, E_5, D_5, F_5 }, + { 1, E_6, D_6, F_6 }, + { 1, E_7, D_7, F_7 }, + { 1, E_8, D_8, F_8 }, + { 1, E_9, D_9, F_9 }, + { 1, E_10, D_10, F_10 }, + { 1, E_11, D_11, F_11 }, + { 1, E_12, D_12, F_12 }, + { 1, E_13, D_13, F_13 }, + { 1, H_1, G_1, I_1 }, + { 1, H_2, G_2, I_2 }, + { 1, H_3, G_3, I_3 }, + { 1, H_4, G_4, I_4 }, + { 1, H_5, G_5, I_5 }, + { 1, H_6, G_6, I_6 }, + { 1, H_7, G_7, I_7 }, + { 1, H_8, G_8, I_8 }, + { 1, H_9, G_9, I_9 }, + { 1, H_10, G_10, I_10 }, + { 1, H_11, G_11, I_11 }, +}; +#endif diff --git a/keyboards/drop/cstm80/halconf.h b/keyboards/drop/cstm80/halconf.h new file mode 100644 index 0000000000..2677c2a654 --- /dev/null +++ b/keyboards/drop/cstm80/halconf.h @@ -0,0 +1,7 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/drop/cstm80/info.json b/keyboards/drop/cstm80/info.json new file mode 100644 index 0000000000..170538027e --- /dev/null +++ b/keyboards/drop/cstm80/info.json @@ -0,0 +1,272 @@ +{ + "keyboard_name": "CSTM80", + "manufacturer": "Drop Inc.", + "maintainer": "zvecr", + "processor": "STM32F303", + "bootloader": "tinyuf2", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["C15", "C14", "C13", "C12", "C11", "C10", "C9", "C8", "C7", "C6", "C5", "C4", "C3", "C2", "C1", "C0", "D2"], + "rows": ["B15", "B14", "B13", "B12", "B11", "B10"] + }, + "usb": { + "vid": "0x359B", + "pid": "0x0004", + "device_version": "1.0.0" + }, + "eeprom": { + "driver": "i2c" + }, + "features": { + "rgb_matrix": true, + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "community_layouts": ["tkl_f13_ansi"], + "layouts": { + "LAYOUT_tkl_f13_ansi": { + "layout": [ + { "matrix": [0, 0], "label":"Esc", "x":0, "y":0}, + { "matrix": [0, 1], "label":"F1", "x":1.25, "y":0}, + { "matrix": [0, 2], "label":"F2", "x":2.25, "y":0}, + { "matrix": [0, 3], "label":"F3", "x":3.25, "y":0}, + { "matrix": [0, 4], "label":"F4", "x":4.25, "y":0}, + { "matrix": [0, 5], "label":"F5", "x":5.5, "y":0}, + { "matrix": [0, 6], "label":"F6", "x":6.5, "y":0}, + { "matrix": [0, 7], "label":"F7", "x":7.5, "y":0}, + { "matrix": [0, 8], "label":"F8", "x":8.5, "y":0}, + { "matrix": [0, 9], "label":"F9", "x":9.75, "y":0}, + { "matrix": [0, 10], "label":"F10", "x":10.75, "y":0}, + { "matrix": [0, 11], "label":"F11", "x":11.75, "y":0}, + { "matrix": [0, 12], "label":"F12", "x":12.75, "y":0}, + { "matrix": [0, 13], "label":"F13", "x":14, "y":0}, + { "matrix": [0, 14], "label":"PrtSc", "x":15.25, "y":0}, + { "matrix": [0, 15], "label":"ScrLk", "x":16.25, "y":0}, + { "matrix": [0, 16], "label":"Pause", "x":17.25, "y":0}, + + { "matrix": [1, 0], "label":"~", "x":0, "y":1.25}, + { "matrix": [1, 1], "label":"!", "x":1, "y":1.25}, + { "matrix": [1, 2], "label":"@", "x":2, "y":1.25}, + { "matrix": [1, 3], "label":"#", "x":3, "y":1.25}, + { "matrix": [1, 4], "label":"$", "x":4, "y":1.25}, + { "matrix": [1, 5], "label":"%", "x":5, "y":1.25}, + { "matrix": [1, 6], "label":"^", "x":6, "y":1.25}, + { "matrix": [1, 7], "label":"&", "x":7, "y":1.25}, + { "matrix": [1, 8], "label":"*", "x":8, "y":1.25}, + { "matrix": [1, 9], "label":"(", "x":9, "y":1.25}, + { "matrix": [1, 10], "label":")", "x":10, "y":1.25}, + { "matrix": [1, 11], "label":"_", "x":11, "y":1.25}, + { "matrix": [1, 12], "label":"+", "x":12, "y":1.25}, + { "matrix": [1, 13], "label":"Bksp", "x":13, "y":1.25, "w":2}, + { "matrix": [1, 14], "label":"Insert", "x":15.25, "y":1.25}, + { "matrix": [1, 15], "label":"Home", "x":16.25, "y":1.25}, + { "matrix": [1, 16], "label":"Page Up", "x":17.25, "y":1.25}, + + { "matrix": [2, 0], "label":"Tab", "x":0, "y":2.25, "w":1.5}, + { "matrix": [2, 1], "label":"Q", "x":1.5, "y":2.25}, + { "matrix": [2, 2], "label":"W", "x":2.5, "y":2.25}, + { "matrix": [2, 3], "label":"E", "x":3.5, "y":2.25}, + { "matrix": [2, 4], "label":"R", "x":4.5, "y":2.25}, + { "matrix": [2, 5], "label":"T", "x":5.5, "y":2.25}, + { "matrix": [2, 6], "label":"Y", "x":6.5, "y":2.25}, + { "matrix": [2, 7], "label":"U", "x":7.5, "y":2.25}, + { "matrix": [2, 8], "label":"I", "x":8.5, "y":2.25}, + { "matrix": [2, 9], "label":"O", "x":9.5, "y":2.25}, + { "matrix": [2, 10], "label":"P", "x":10.5, "y":2.25}, + { "matrix": [2, 11], "label":"{", "x":11.5, "y":2.25}, + { "matrix": [2, 12], "label":"}", "x":12.5, "y":2.25}, + { "matrix": [2, 13], "label":"|", "x":13.5, "y":2.25, "w":1.5}, + { "matrix": [2, 14], "label":"Delete", "x":15.25, "y":2.25}, + { "matrix": [2, 15], "label":"End", "x":16.25, "y":2.25}, + { "matrix": [2, 16], "label":"Page Dn", "x":17.25, "y":2.25}, + + { "matrix": [3, 0], "label":"CapsLk", "x":0, "y":3.25, "w":1.75}, + { "matrix": [3, 1], "label":"A", "x":1.75, "y":3.25}, + { "matrix": [3, 2], "label":"S", "x":2.75, "y":3.25}, + { "matrix": [3, 3], "label":"D", "x":3.75, "y":3.25}, + { "matrix": [3, 4], "label":"F", "x":4.75, "y":3.25}, + { "matrix": [3, 5], "label":"G", "x":5.75, "y":3.25}, + { "matrix": [3, 6], "label":"H", "x":6.75, "y":3.25}, + { "matrix": [3, 7], "label":"J", "x":7.75, "y":3.25}, + { "matrix": [3, 8], "label":"K", "x":8.75, "y":3.25}, + { "matrix": [3, 9], "label":"L", "x":9.75, "y":3.25}, + { "matrix": [3, 10], "label":":", "x":10.75, "y":3.25}, + { "matrix": [3, 11], "label":"\"", "x":11.75, "y":3.25}, + { "matrix": [3, 13], "label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + + { "matrix": [4, 0], "label":"Shift", "x":0, "y":4.25, "w":2.25}, + { "matrix": [4, 1], "label":"Z", "x":2.25, "y":4.25}, + { "matrix": [4, 2], "label":"X", "x":3.25, "y":4.25}, + { "matrix": [4, 3], "label":"C", "x":4.25, "y":4.25}, + { "matrix": [4, 4], "label":"V", "x":5.25, "y":4.25}, + { "matrix": [4, 5], "label":"B", "x":6.25, "y":4.25}, + { "matrix": [4, 6], "label":"N", "x":7.25, "y":4.25}, + { "matrix": [4, 7], "label":"M", "x":8.25, "y":4.25}, + { "matrix": [4, 8], "label":"<", "x":9.25, "y":4.25}, + { "matrix": [4, 9], "label":">", "x":10.25, "y":4.25}, + { "matrix": [4, 10], "label":"?", "x":11.25, "y":4.25}, + { "matrix": [4, 12], "label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + { "matrix": [4, 15], "label":"\u2191", "x":16.25, "y":4.25}, + + { "matrix": [5, 0], "label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + { "matrix": [5, 1], "label":"Win", "x":1.25, "y":5.25, "w":1.25}, + { "matrix": [5, 2], "label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + { "matrix": [5, 6], "label":" ", "x":3.75, "y":5.25, "w":6.25}, + { "matrix": [5, 10], "label":"Alt", "x":10, "y":5.25, "w":1.25}, + { "matrix": [5, 11], "label":"Fn", "x":11.25, "y":5.25, "w":1.25}, + { "matrix": [5, 12], "label":"Menu", "x":12.5, "y":5.25, "w":1.25}, + { "matrix": [5, 13], "label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, + { "matrix": [5, 14], "label":"\u2190", "x":15.25, "y":5.25}, + { "matrix": [5, 15], "label":"\u2193", "x":16.25, "y":5.25}, + { "matrix": [5, 16], "label":"\u2192", "x":17.25, "y":5.25} + ] + } + }, + "rgb_matrix": { + "driver": "is31fl3733", + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "layout": [ + { "flags": 4, "matrix": [0, 0], "x": 6, "y": 8 }, + { "flags": 4, "matrix": [0, 1], "x": 21, "y": 8 }, + { "flags": 4, "matrix": [0, 2], "x": 33, "y": 8 }, + { "flags": 4, "matrix": [0, 3], "x": 45, "y": 8 }, + { "flags": 4, "matrix": [0, 4], "x": 57, "y": 8 }, + { "flags": 4, "matrix": [0, 5], "x": 74, "y": 8 }, + { "flags": 4, "matrix": [0, 6], "x": 86, "y": 8 }, + { "flags": 4, "matrix": [0, 7], "x": 98, "y": 8 }, + { "flags": 4, "matrix": [0, 8], "x": 110, "y": 8 }, + { "flags": 4, "matrix": [0, 9], "x": 125, "y": 8 }, + { "flags": 4, "matrix": [0, 10], "x": 137, "y": 8 }, + { "flags": 4, "matrix": [0, 11], "x": 150, "y": 8 }, + { "flags": 4, "matrix": [0, 12], "x": 161, "y": 8 }, + { "flags": 4, "matrix": [0, 13], "x": 176, "y": 8 }, + { "flags": 4, "matrix": [0, 14], "x": 192, "y": 8 }, + { "flags": 4, "matrix": [0, 15], "x": 204, "y": 8 }, + + { "flags": 4, "matrix": [1, 0], "x": 6, "y": 21 }, + { "flags": 4, "matrix": [1, 1], "x": 18, "y": 21 }, + { "flags": 4, "matrix": [1, 2], "x": 37, "y": 21 }, + { "flags": 4, "matrix": [1, 3], "x": 43, "y": 21 }, + { "flags": 4, "matrix": [1, 4], "x": 55, "y": 21 }, + { "flags": 4, "matrix": [1, 5], "x": 67, "y": 21 }, + { "flags": 4, "matrix": [1, 6], "x": 79, "y": 21 }, + { "flags": 4, "matrix": [1, 7], "x": 92, "y": 21 }, + { "flags": 4, "matrix": [1, 8], "x": 104, "y": 21 }, + { "flags": 4, "matrix": [1, 9], "x": 116, "y": 21 }, + { "flags": 4, "matrix": [1, 10], "x": 128, "y": 21 }, + { "flags": 4, "matrix": [1, 11], "x": 141, "y": 21 }, + { "flags": 4, "matrix": [1, 12], "x": 153, "y": 21 }, + { "flags": 4, "matrix": [1, 13], "x": 171, "y": 21 }, + { "flags": 4, "matrix": [1, 14], "x": 192, "y": 21 }, + { "flags": 4, "matrix": [1, 15], "x": 204, "y": 21 }, + + { "flags": 4, "matrix": [2, 0], "x": 9, "y": 31 }, + { "flags": 4, "matrix": [2, 1], "x": 24, "y": 31 }, + { "flags": 4, "matrix": [2, 2], "x": 36, "y": 31 }, + { "flags": 4, "matrix": [2, 3], "x": 48, "y": 31 }, + { "flags": 4, "matrix": [2, 4], "x": 61, "y": 31 }, + { "flags": 4, "matrix": [2, 5], "x": 73, "y": 31 }, + { "flags": 4, "matrix": [2, 6], "x": 86, "y": 31 }, + { "flags": 4, "matrix": [2, 7], "x": 98, "y": 31 }, + { "flags": 4, "matrix": [2, 8], "x": 110, "y": 31 }, + { "flags": 4, "matrix": [2, 9], "x": 122, "y": 31 }, + { "flags": 4, "matrix": [2, 10], "x": 134, "y": 31 }, + { "flags": 4, "matrix": [2, 11], "x": 146, "y": 31 }, + { "flags": 4, "matrix": [2, 12], "x": 159, "y": 31 }, + { "flags": 4, "matrix": [2, 13], "x": 174, "y": 31 }, + { "flags": 4, "matrix": [2, 14], "x": 192, "y": 31 }, + { "flags": 4, "matrix": [2, 15], "x": 204, "y": 31 }, + + { "flags": 4, "matrix": [3, 0], "x": 11, "y": 41 }, + { "flags": 4, "matrix": [3, 1], "x": 27, "y": 41 }, + { "flags": 4, "matrix": [3, 2], "x": 40, "y": 41 }, + { "flags": 4, "matrix": [3, 3], "x": 52, "y": 41 }, + { "flags": 4, "matrix": [3, 4], "x": 64, "y": 41 }, + { "flags": 4, "matrix": [3, 5], "x": 76, "y": 41 }, + { "flags": 4, "matrix": [3, 6], "x": 88, "y": 41 }, + { "flags": 4, "matrix": [3, 7], "x": 100, "y": 41 }, + { "flags": 4, "matrix": [3, 8], "x": 113, "y": 41 }, + { "flags": 4, "matrix": [3, 9], "x": 124, "y": 41 }, + { "flags": 4, "matrix": [3, 10], "x": 137, "y": 41 }, + { "flags": 4, "matrix": [3, 11], "x": 150, "y": 41 }, + { "flags": 4, "matrix": [3, 12], "x": 170, "y": 41 }, + { "flags": 4, "matrix": [0, 16], "x": 217, "y": 8 }, + { "flags": 4, "matrix": [1, 16], "x": 217, "y": 21 }, + { "flags": 4, "matrix": [2, 16], "x": 217, "y": 31 }, + + { "flags": 4, "matrix": [4, 0], "x": 13, "y": 51 }, + { "flags": 4, "matrix": [4, 1], "x": 34, "y": 51 }, + { "flags": 4, "matrix": [4, 2], "x": 45, "y": 51 }, + { "flags": 4, "matrix": [4, 3], "x": 58, "y": 51 }, + { "flags": 4, "matrix": [4, 4], "x": 70, "y": 51 }, + { "flags": 4, "matrix": [4, 5], "x": 82, "y": 51 }, + { "flags": 4, "matrix": [4, 6], "x": 94, "y": 51 }, + { "flags": 4, "matrix": [4, 7], "x": 107, "y": 51 }, + { "flags": 4, "matrix": [4, 8], "x": 119, "y": 51 }, + { "flags": 4, "matrix": [4, 9], "x": 131, "y": 51 }, + { "flags": 4, "matrix": [4, 10], "x": 143, "y": 51 }, + { "flags": 4, "matrix": [4, 12], "x": 166, "y": 51 }, + { "flags": 4, "matrix": [4, 15], "x": 204, "y": 51 }, + + { "flags": 4, "matrix": [5, 0], "x": 8, "y": 61 }, + { "flags": 4, "matrix": [5, 1], "x": 23, "y": 61 }, + { "flags": 4, "matrix": [5, 2], "x": 38, "y": 61 }, + { "flags": 4, "matrix": [5, 6], "x": 84, "y": 61 }, + { "flags": 4, "matrix": [5, 10], "x": 129, "y": 61 }, + { "flags": 4, "matrix": [5, 11], "x": 144, "y": 61 }, + { "flags": 4, "matrix": [5, 12], "x": 160, "y": 61 }, + { "flags": 4, "matrix": [5, 13], "x": 175, "y": 61 }, + { "flags": 4, "matrix": [5, 14], "x": 192, "y": 61 }, + { "flags": 4, "matrix": [5, 15], "x": 204, "y": 61 }, + { "flags": 4, "matrix": [5, 16], "x": 217, "y": 61 } + ] + } +} diff --git a/keyboards/drop/cstm80/keymaps/default/keymap.c b/keyboards/drop/cstm80/keymaps/default/keymap.c new file mode 100644 index 0000000000..e820a0a743 --- /dev/null +++ b/keyboards/drop/cstm80/keymaps/default/keymap.c @@ -0,0 +1,38 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │Esc││F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12││F13││PSc│Scr│Pse│ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp││Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ ││Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl││ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ + [0] = LAYOUT_tkl_f13_ansi( + KC_ESC, 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_F13, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_f13_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, + _______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,_______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/drop/cstm80/keymaps/via/config.h b/keyboards/drop/cstm80/keymaps/via/config.h new file mode 100644 index 0000000000..616f8e3291 --- /dev/null +++ b/keyboards/drop/cstm80/keymaps/via/config.h @@ -0,0 +1,5 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 8 diff --git a/keyboards/drop/cstm80/keymaps/via/keymap.c b/keyboards/drop/cstm80/keymaps/via/keymap.c new file mode 100644 index 0000000000..e820a0a743 --- /dev/null +++ b/keyboards/drop/cstm80/keymaps/via/keymap.c @@ -0,0 +1,38 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │Esc││F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12││F13││PSc│Scr│Pse│ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp││Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ ││Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl││ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ + [0] = LAYOUT_tkl_f13_ansi( + KC_ESC, 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_F13, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_f13_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, + _______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,_______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/drop/cstm80/keymaps/via/rules.mk b/keyboards/drop/cstm80/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/drop/cstm80/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/drop/cstm80/mcuconf.h b/keyboards/drop/cstm80/mcuconf.h new file mode 100644 index 0000000000..819aa70bf7 --- /dev/null +++ b/keyboards/drop/cstm80/mcuconf.h @@ -0,0 +1,14 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 16 + +#undef STM32_PREDIV_VALUE +#define STM32_PREDIV_VALUE 2 + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/drop/cstm80/readme.md b/keyboards/drop/cstm80/readme.md new file mode 100644 index 0000000000..f0851cc045 --- /dev/null +++ b/keyboards/drop/cstm80/readme.md @@ -0,0 +1,24 @@ +# CSTM80 + +The CSTM80 is a tenkeyless keyboard with customizable switch plates and weights, as well as a magnetically attached top case. + +* Keyboard Maintainer: [zvecr](https://github.com/zvecr) +* Hardware Availability: [Drop CSTM80 Mechanical Keyboard](https://drop.com/buy/drop-cstm80-mechanical-keyboard) + +Make example for this keyboard (after setting up your build environment): + + make drop/cstm80:default + +Flashing example for this keyboard: + + make drop/cstm80:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Quickly double tap the button located under the spacebar +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/drop/cstm80/rules.mk b/keyboards/drop/cstm80/rules.mk new file mode 100644 index 0000000000..21d76468cf --- /dev/null +++ b/keyboards/drop/cstm80/rules.mk @@ -0,0 +1,4 @@ +UF2_DEVICE_TYPE_ID = 0x8bfa7750 +UF2CONV_ARGS = --device-type $(UF2_DEVICE_TYPE_ID) + +SRC += lib/common.c diff --git a/keyboards/drop/lib/common.c b/keyboards/drop/lib/common.c index b393e7650b..04845ed17a 100644 --- a/keyboards/drop/lib/common.c +++ b/keyboards/drop/lib/common.c @@ -5,17 +5,15 @@ # include "quantum.h" # include "rgb_matrix.h" -# define LED_FLAG_ANY_SWITCH (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR) - # ifdef RGB_MATRIX_CAPS_LOCK_INDEX bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; } - if (host_keyboard_led_state().caps_lock) { + if (host_keyboard_led_state().caps_lock && (rgb_matrix_get_flags() != LED_FLAG_NONE)) { rgb_matrix_set_color(RGB_MATRIX_CAPS_LOCK_INDEX, RGB_WHITE); - } else if ((rgb_matrix_get_flags() & LED_FLAG_ANY_SWITCH) == 0) { + } else if (rgb_matrix_get_flags() == LED_FLAG_UNDERGLOW) { rgb_matrix_set_color(RGB_MATRIX_CAPS_LOCK_INDEX, RGB_OFF); } return true; @@ -33,9 +31,9 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { case RGB_TOG: switch (rgb_matrix_get_flags()) { case LED_FLAG_ALL: - rgb_matrix_set_flags(LED_FLAG_ANY_SWITCH); + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); break; - case LED_FLAG_ANY_SWITCH: + case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); break; case LED_FLAG_UNDERGLOW: From 25c850e7626534ca112edb5708f42af10302fff5 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 27 Sep 2023 00:49:07 +0100 Subject: [PATCH 192/496] Add support for YMD75 V4 - ISO (#22128) --- keyboards/ymdk/ymd75/rev4/iso/board.h | 8 + keyboards/ymdk/ymd75/rev4/iso/config.h | 11 + keyboards/ymdk/ymd75/rev4/iso/halconf.h | 7 + keyboards/ymdk/ymd75/rev4/iso/info.json | 277 ++++++++++++++++++ .../ymd75/rev4/iso/keymaps/default/keymap.c | 37 +++ .../ymdk/ymd75/rev4/iso/keymaps/via/keymap.c | 37 +++ .../ymdk/ymd75/rev4/iso/keymaps/via/rules.mk | 1 + keyboards/ymdk/ymd75/rev4/iso/mcuconf.h | 11 + keyboards/ymdk/ymd75/rev4/iso/readme.md | 24 ++ keyboards/ymdk/ymd75/rev4/iso/rules.mk | 1 + 10 files changed, 414 insertions(+) create mode 100644 keyboards/ymdk/ymd75/rev4/iso/board.h create mode 100644 keyboards/ymdk/ymd75/rev4/iso/config.h create mode 100644 keyboards/ymdk/ymd75/rev4/iso/halconf.h create mode 100644 keyboards/ymdk/ymd75/rev4/iso/info.json create mode 100644 keyboards/ymdk/ymd75/rev4/iso/keymaps/default/keymap.c create mode 100644 keyboards/ymdk/ymd75/rev4/iso/keymaps/via/keymap.c create mode 100644 keyboards/ymdk/ymd75/rev4/iso/keymaps/via/rules.mk create mode 100644 keyboards/ymdk/ymd75/rev4/iso/mcuconf.h create mode 100644 keyboards/ymdk/ymd75/rev4/iso/readme.md create mode 100644 keyboards/ymdk/ymd75/rev4/iso/rules.mk diff --git a/keyboards/ymdk/ymd75/rev4/iso/board.h b/keyboards/ymdk/ymd75/rev4/iso/board.h new file mode 100644 index 0000000000..3cd1802102 --- /dev/null +++ b/keyboards/ymdk/ymd75/rev4/iso/board.h @@ -0,0 +1,8 @@ +// Copyright 2023 zvecr +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000 diff --git a/keyboards/ymdk/ymd75/rev4/iso/config.h b/keyboards/ymdk/ymd75/rev4/iso/config.h new file mode 100644 index 0000000000..317c0ec236 --- /dev/null +++ b/keyboards/ymdk/ymd75/rev4/iso/config.h @@ -0,0 +1,11 @@ +// Copyright 2023 zvecr +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define RGB_DISABLE_WHEN_USB_SUSPENDED + +#define WS2812_PWM_DRIVER PWMD4 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_PAL_MODE 2 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 +#define WS2812_DMA_CHANNEL 7 diff --git a/keyboards/ymdk/ymd75/rev4/iso/halconf.h b/keyboards/ymdk/ymd75/rev4/iso/halconf.h new file mode 100644 index 0000000000..782eea99a4 --- /dev/null +++ b/keyboards/ymdk/ymd75/rev4/iso/halconf.h @@ -0,0 +1,7 @@ +// Copyright 2023 zvecr +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/ymdk/ymd75/rev4/iso/info.json b/keyboards/ymdk/ymd75/rev4/iso/info.json new file mode 100644 index 0000000000..d7e27dbdeb --- /dev/null +++ b/keyboards/ymdk/ymd75/rev4/iso/info.json @@ -0,0 +1,277 @@ +{ + "keyboard_name": "YMD75 V4", + "manufacturer": "YMDK", + "url": "", + "maintainer": "zvecr", + "processor": "STM32F103", + "bootloader": "uf2boot", + "board": "STM32_F103_STM32DUINO", + "diode_direction": "ROW2COL", + "matrix_pins": { + "cols": ["A7","B0","B1","B2","B10","B11","A5","A15","B3"], + "rows": ["A6","A4","A3","A2","A1","A0","A8","B15","B14","B13","B12","A9"] + }, + "usb": { + "vid": "0x594D", + "pid": "0x7549", + "device_version": "4.0.0" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "ws2812": { + "driver": "pwm", + "pin": "B9" + }, + "rgb_matrix": { + "driver": "ws2812", + "max_brightness": 200, + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "layout": [ + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 15, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 30, "y": 0 }, + { "flags": 4, "matrix": [0, 3], "x": 45, "y": 0 }, + { "flags": 4, "matrix": [0, 4], "x": 60, "y": 0 }, + { "flags": 4, "matrix": [0, 5], "x": 75, "y": 0 }, + { "flags": 4, "matrix": [0, 6], "x": 90, "y": 0 }, + { "flags": 4, "matrix": [0, 7], "x": 105, "y": 0 }, + { "flags": 4, "matrix": [0, 8], "x": 119, "y": 0 }, + { "flags": 4, "matrix": [6, 8], "x": 134, "y": 0 }, + { "flags": 4, "matrix": [6, 7], "x": 149, "y": 0 }, + { "flags": 4, "matrix": [6, 5], "x": 164, "y": 0 }, + { "flags": 4, "matrix": [6, 4], "x": 179, "y": 0 }, + { "flags": 4, "matrix": [6, 3], "x": 194, "y": 0 }, + { "flags": 4, "matrix": [6, 6], "x": 209, "y": 0 }, + { "flags": 4, "matrix": [6, 2], "x": 224, "y": 0 }, + { "flags": 4, "matrix": [1, 0], "x": 0, "y": 13 }, + { "flags": 4, "matrix": [1, 1], "x": 15, "y": 13 }, + { "flags": 4, "matrix": [1, 2], "x": 30, "y": 13 }, + { "flags": 4, "matrix": [1, 3], "x": 45, "y": 13 }, + { "flags": 4, "matrix": [1, 4], "x": 60, "y": 13 }, + { "flags": 4, "matrix": [1, 5], "x": 75, "y": 13 }, + { "flags": 4, "matrix": [1, 6], "x": 90, "y": 13 }, + { "flags": 4, "matrix": [1, 7], "x": 105, "y": 13 }, + { "flags": 4, "matrix": [1, 8], "x": 119, "y": 13 }, + { "flags": 4, "matrix": [7, 8], "x": 134, "y": 13 }, + { "flags": 4, "matrix": [7, 7], "x": 149, "y": 13 }, + { "flags": 4, "matrix": [7, 5], "x": 164, "y": 13 }, + { "flags": 4, "matrix": [7, 4], "x": 179, "y": 13 }, + { "flags": 4, "matrix": [7, 6], "x": 202, "y": 13 }, + { "flags": 4, "matrix": [7, 2], "x": 224, "y": 13 }, + { "flags": 4, "matrix": [2, 0], "x": 4, "y": 26 }, + { "flags": 4, "matrix": [2, 1], "x": 22, "y": 26 }, + { "flags": 4, "matrix": [2, 2], "x": 37, "y": 26 }, + { "flags": 4, "matrix": [2, 3], "x": 52, "y": 26 }, + { "flags": 4, "matrix": [2, 4], "x": 67, "y": 26 }, + { "flags": 4, "matrix": [2, 5], "x": 82, "y": 26 }, + { "flags": 4, "matrix": [2, 6], "x": 97, "y": 26 }, + { "flags": 4, "matrix": [2, 7], "x": 112, "y": 26 }, + { "flags": 4, "matrix": [2, 8], "x": 127, "y": 26 }, + { "flags": 4, "matrix": [8, 8], "x": 142, "y": 26 }, + { "flags": 4, "matrix": [8, 7], "x": 157, "y": 26 }, + { "flags": 4, "matrix": [8, 5], "x": 172, "y": 26 }, + { "flags": 4, "matrix": [8, 4], "x": 187, "y": 26 }, + { "flags": 4, "matrix": [8, 3], "x": 207, "y": 32 }, + { "flags": 4, "matrix": [8, 6], "x": 224, "y": 26 }, + { "flags": 4, "matrix": [3, 0], "x": 6, "y": 38 }, + { "flags": 4, "matrix": [3, 1], "x": 26, "y": 38 }, + { "flags": 4, "matrix": [3, 2], "x": 41, "y": 38 }, + { "flags": 4, "matrix": [3, 3], "x": 56, "y": 38 }, + { "flags": 4, "matrix": [3, 4], "x": 71, "y": 38 }, + { "flags": 4, "matrix": [3, 5], "x": 86, "y": 38 }, + { "flags": 4, "matrix": [3, 6], "x": 101, "y": 38 }, + { "flags": 4, "matrix": [3, 7], "x": 116, "y": 38 }, + { "flags": 4, "matrix": [3, 8], "x": 131, "y": 38 }, + { "flags": 4, "matrix": [9, 8], "x": 146, "y": 38 }, + { "flags": 4, "matrix": [9, 7], "x": 161, "y": 38 }, + { "flags": 4, "matrix": [9, 5], "x": 175, "y": 38 }, + { "flags": 4, "matrix": [9, 4], "x": 190, "y": 38 }, + { "flags": 4, "matrix": [9, 6], "x": 224, "y": 38 }, + { "flags": 4, "matrix": [4, 0], "x": 2, "y": 51 }, + { "flags": 4, "matrix": [4, 1], "x": 19, "y": 51 }, + { "flags": 4, "matrix": [4, 2], "x": 34, "y": 51 }, + { "flags": 4, "matrix": [4, 3], "x": 49, "y": 51 }, + { "flags": 4, "matrix": [4, 4], "x": 63, "y": 51 }, + { "flags": 4, "matrix": [4, 5], "x": 78, "y": 51 }, + { "flags": 4, "matrix": [4, 6], "x": 93, "y": 51 }, + { "flags": 4, "matrix": [4, 7], "x": 108, "y": 51 }, + { "flags": 4, "matrix": [4, 8], "x": 123, "y": 51 }, + { "flags": 4, "matrix": [10, 8], "x": 138, "y": 51 }, + { "flags": 4, "matrix": [10, 7], "x": 153, "y": 51 }, + { "flags": 4, "matrix": [10, 5], "x": 168, "y": 51 }, + { "flags": 4, "matrix": [10, 4], "x": 189, "y": 51 }, + { "flags": 4, "matrix": [10, 3], "x": 209, "y": 51 }, + { "flags": 4, "matrix": [10, 6], "x": 224, "y": 51 }, + { "flags": 4, "matrix": [5, 0], "x": 2, "y": 64 }, + { "flags": 4, "matrix": [5, 1], "x": 21, "y": 64 }, + { "flags": 4, "matrix": [5, 2], "x": 39, "y": 64 }, + { "flags": 4, "matrix": [5, 6], "x": 95, "y": 64 }, + { "flags": 4, "matrix": [5, 8], "x": 149, "y": 64 }, + { "flags": 4, "matrix": [5, 7], "x": 164, "y": 64 }, + { "flags": 4, "matrix": [5, 5], "x": 179, "y": 64 }, + { "flags": 4, "matrix": [5, 4], "x": 194, "y": 64 }, + { "flags": 4, "matrix": [5, 3], "x": 209, "y": 64 }, + { "flags": 4, "matrix": [11, 6], "x": 224, "y": 64 }, + { "flags": 2, "x": 1, "y": 5 }, + { "flags": 2, "x": 38, "y": 5 }, + { "flags": 2, "x": 75, "y": 5 }, + { "flags": 2, "x": 112, "y": 5 }, + { "flags": 2, "x": 149, "y": 5 }, + { "flags": 2, "x": 186, "y": 5 }, + { "flags": 2, "x": 223, "y": 5 }, + { "flags": 2, "x": 223, "y": 32 }, + { "flags": 2, "x": 223, "y": 60 }, + { "flags": 2, "x": 186, "y": 60 }, + { "flags": 2, "x": 149, "y": 60 }, + { "flags": 2, "x": 112, "y": 60 }, + { "flags": 2, "x": 75, "y": 60 }, + { "flags": 2, "x": 38, "y": 60 }, + { "flags": 2, "x": 1, "y": 60 }, + { "flags": 2, "x": 1, "y": 32 } + ] + }, + "community_layouts": ["75_iso"], + "layouts": { + "LAYOUT_75_iso": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0}, + {"matrix": [0, 1], "x":1, "y":0}, + {"matrix": [0, 2], "x":2, "y":0}, + {"matrix": [0, 3], "x":3, "y":0}, + {"matrix": [0, 4], "x":4, "y":0}, + {"matrix": [0, 5], "x":5, "y":0}, + {"matrix": [0, 6], "x":6, "y":0}, + {"matrix": [0, 7], "x":7, "y":0}, + {"matrix": [0, 8], "x":8, "y":0}, + {"matrix": [6, 8], "x":9, "y":0}, + {"matrix": [6, 7], "x":10, "y":0}, + {"matrix": [6, 5], "x":11, "y":0}, + {"matrix": [6, 4], "x":12, "y":0}, + {"matrix": [6, 3], "x":13, "y":0}, + {"matrix": [6, 6], "x":14, "y":0}, + {"matrix": [6, 2], "x":15, "y":0}, + {"matrix": [1, 0], "x":0, "y":1}, + {"matrix": [1, 1], "x":1, "y":1}, + {"matrix": [1, 2], "x":2, "y":1}, + {"matrix": [1, 3], "x":3, "y":1}, + {"matrix": [1, 4], "x":4, "y":1}, + {"matrix": [1, 5], "x":5, "y":1}, + {"matrix": [1, 6], "x":6, "y":1}, + {"matrix": [1, 7], "x":7, "y":1}, + {"matrix": [1, 8], "x":8, "y":1}, + {"matrix": [7, 8], "x":9, "y":1}, + {"matrix": [7, 7], "x":10, "y":1}, + {"matrix": [7, 5], "x":11, "y":1}, + {"matrix": [7, 4], "x":12, "y":1}, + {"matrix": [7, 6], "x":13, "y":1, "w":2}, + {"matrix": [7, 2], "x":15, "y":1}, + {"matrix": [2, 0], "x":0, "y":2, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2}, + {"matrix": [2, 2], "x":2.5, "y":2}, + {"matrix": [2, 3], "x":3.5, "y":2}, + {"matrix": [2, 4], "x":4.5, "y":2}, + {"matrix": [2, 5], "x":5.5, "y":2}, + {"matrix": [2, 6], "x":6.5, "y":2}, + {"matrix": [2, 7], "x":7.5, "y":2}, + {"matrix": [2, 8], "x":8.5, "y":2}, + {"matrix": [8, 8], "x":9.5, "y":2}, + {"matrix": [8, 7], "x":10.5, "y":2}, + {"matrix": [8, 5], "x":11.5, "y":2}, + {"matrix": [8, 4], "x":12.5, "y":2}, + {"matrix": [8, 6], "x":15, "y":2}, + {"matrix": [3, 0], "x":0, "y":3, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3}, + {"matrix": [3, 2], "x":2.75, "y":3}, + {"matrix": [3, 3], "x":3.75, "y":3}, + {"matrix": [3, 4], "x":4.75, "y":3}, + {"matrix": [3, 5], "x":5.75, "y":3}, + {"matrix": [3, 6], "x":6.75, "y":3}, + {"matrix": [3, 7], "x":7.75, "y":3}, + {"matrix": [3, 8], "x":8.75, "y":3}, + {"matrix": [9, 8], "x":9.75, "y":3}, + {"matrix": [9, 7], "x":10.75, "y":3}, + {"matrix": [9, 5], "x":11.75, "y":3}, + {"matrix": [9, 4], "x":12.75, "y":3}, + {"matrix": [8, 3], "x":13.75, "y":2, "w":1.25, "h":2}, + {"matrix": [9, 6], "x":15, "y":3}, + {"matrix": [4, 0], "x":0, "y":4, "w":1.25}, + {"matrix": [4, 1], "x":1.25, "y":4}, + {"matrix": [4, 2], "x":2.25, "y":4}, + {"matrix": [4, 3], "x":3.25, "y":4}, + {"matrix": [4, 4], "x":4.25, "y":4}, + {"matrix": [4, 5], "x":5.25, "y":4}, + {"matrix": [4, 6], "x":6.25, "y":4}, + {"matrix": [4, 7], "x":7.25, "y":4}, + {"matrix": [4, 8], "x":8.25, "y":4}, + {"matrix": [10, 8], "x":9.25, "y":4}, + {"matrix": [10, 7], "x":10.25, "y":4}, + {"matrix": [10, 5], "x":11.25, "y":4}, + {"matrix": [10, 4], "x":12.25, "y":4, "w":1.75}, + {"matrix": [10, 3], "x":14, "y":4}, + {"matrix": [10, 6], "x":15, "y":4}, + {"matrix": [5, 0], "x":0, "y":5, "w":1.25}, + {"matrix": [5, 1], "x":1.25, "y":5, "w":1.25}, + {"matrix": [5, 2], "x":2.5, "y":5, "w":1.25}, + {"matrix": [5, 6], "x":3.75, "y":5, "w":6.25}, + {"matrix": [5, 8], "x":10, "y":5}, + {"matrix": [5, 7], "x":11, "y":5}, + {"matrix": [5, 5], "x":12, "y":5}, + {"matrix": [5, 4], "x":13, "y":5}, + {"matrix": [5, 3], "x":14, "y":5}, + {"matrix": [11, 6], "x":15, "y":5} + ] + } + } +} + diff --git a/keyboards/ymdk/ymd75/rev4/iso/keymaps/default/keymap.c b/keyboards/ymdk/ymd75/rev4/iso/keymaps/default/keymap.c new file mode 100644 index 0000000000..15dc1dc8b7 --- /dev/null +++ b/keyboards/ymdk/ymd75/rev4/iso/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +// Copyright 2023 zvecr +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│PSc│Pse│Del│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│Hom│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │PgU│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent├───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │PgD│ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ + * │Ctrl│GUI │Alt │ │Alt│GUI│Ctl│ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ + */ + [0] = LAYOUT_75_iso( + KC_ESC, 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_PSCR, KC_PAUS, KC_DEL, + KC_GRV, 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_BSPC, KC_HOME, + 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_PGUP, + 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_PGDN, + 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_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_75_iso( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/ymdk/ymd75/rev4/iso/keymaps/via/keymap.c b/keyboards/ymdk/ymd75/rev4/iso/keymaps/via/keymap.c new file mode 100644 index 0000000000..15dc1dc8b7 --- /dev/null +++ b/keyboards/ymdk/ymd75/rev4/iso/keymaps/via/keymap.c @@ -0,0 +1,37 @@ +// Copyright 2023 zvecr +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│PSc│Pse│Del│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│Hom│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │PgU│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent├───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │PgD│ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ + * │Ctrl│GUI │Alt │ │Alt│GUI│Ctl│ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ + */ + [0] = LAYOUT_75_iso( + KC_ESC, 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_PSCR, KC_PAUS, KC_DEL, + KC_GRV, 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_BSPC, KC_HOME, + 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_PGUP, + 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_PGDN, + 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_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_75_iso( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/ymdk/ymd75/rev4/iso/keymaps/via/rules.mk b/keyboards/ymdk/ymd75/rev4/iso/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/ymdk/ymd75/rev4/iso/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/ymdk/ymd75/rev4/iso/mcuconf.h b/keyboards/ymdk/ymd75/rev4/iso/mcuconf.h new file mode 100644 index 0000000000..a7e5a1c058 --- /dev/null +++ b/keyboards/ymdk/ymd75/rev4/iso/mcuconf.h @@ -0,0 +1,11 @@ +// Copyright 2023 zvecr +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM4 +#define STM32_PWM_USE_TIM4 TRUE + +#undef STM32_PLLXTPRE +#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV2 diff --git a/keyboards/ymdk/ymd75/rev4/iso/readme.md b/keyboards/ymdk/ymd75/rev4/iso/readme.md new file mode 100644 index 0000000000..43b0c92224 --- /dev/null +++ b/keyboards/ymdk/ymd75/rev4/iso/readme.md @@ -0,0 +1,24 @@ +# YMD75 V4 + +75% per key RGB hotswap PCB with North Facing LED. + +* Keyboard Maintainer: [zvecr](https://github.com/zvecr) +* Hardware Availability: + +Make example for this keyboard (after setting up your build environment): + + make ymdk/ymd75/rev4/iso:default + +Flashing example for this keyboard: + + make ymdk/ymd75/rev4/iso:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Quickly double tap the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/ymdk/ymd75/rev4/iso/rules.mk b/keyboards/ymdk/ymd75/rev4/iso/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/ymdk/ymd75/rev4/iso/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From 32de27bb20071e4e8614b0fd1f2d289e016ca5a1 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 27 Sep 2023 10:18:07 +1000 Subject: [PATCH 193/496] is31fl3736: extract single-color API (#22133) --- builddefs/common_features.mk | 9 +- docs/reference_info_json.md | 2 +- drivers/led/issi/is31fl3736-simple.c | 222 +++++++++++++++++++++++ drivers/led/issi/is31fl3736-simple.h | 215 ++++++++++++++++++++++ drivers/led/issi/is31fl3736.c | 60 +----- drivers/led/issi/is31fl3736.h | 4 - keyboards/wilba_tech/wt60_a/config.h | 4 +- keyboards/wilba_tech/wt60_a/rules.mk | 2 +- keyboards/wilba_tech/wt65_a/config.h | 4 +- keyboards/wilba_tech/wt65_a/rules.mk | 2 +- keyboards/wilba_tech/wt65_b/config.h | 4 +- keyboards/wilba_tech/wt65_b/rules.mk | 2 +- keyboards/wilba_tech/wt75_a/config.h | 4 +- keyboards/wilba_tech/wt75_a/rules.mk | 2 +- keyboards/wilba_tech/wt75_b/config.h | 4 +- keyboards/wilba_tech/wt75_b/rules.mk | 2 +- keyboards/wilba_tech/wt75_c/config.h | 4 +- keyboards/wilba_tech/wt75_c/rules.mk | 2 +- keyboards/wilba_tech/wt80_a/config.h | 4 +- keyboards/wilba_tech/wt80_a/rules.mk | 2 +- keyboards/wilba_tech/wt_mono_backlight.c | 138 ++++++++++++-- quantum/led_matrix/led_matrix.h | 8 +- quantum/led_matrix/led_matrix_drivers.c | 49 ++++- 23 files changed, 654 insertions(+), 95 deletions(-) create mode 100644 drivers/led/issi/is31fl3736-simple.c create mode 100644 drivers/led/issi/is31fl3736-simple.h diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 973cfba394..edc6f30d64 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -354,7 +354,7 @@ LED_MATRIX_DRIVER := aw20216s endif LED_MATRIX_ENABLE ?= no -VALID_LED_MATRIX_TYPES := is31fl3731 is31fl3742a is31fl3743a is31fl3745 is31fl3746a ckled2001 custom +VALID_LED_MATRIX_TYPES := is31fl3731 is31fl3736 is31fl3742a is31fl3743a is31fl3745 is31fl3746a ckled2001 custom # TODO: is31fl3733 is31fl3737 is31fl3741 ifeq ($(strip $(LED_MATRIX_ENABLE)), yes) @@ -384,6 +384,13 @@ endif QUANTUM_LIB_SRC += i2c_master.c endif + ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3736) + OPT_DEFS += -DHAL_USE_I2C=TRUE + COMMON_VPATH += $(DRIVER_PATH)/led/issi + SRC += is31fl3736-simple.c + QUANTUM_LIB_SRC += i2c_master.c + endif + ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3742a) OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 001d80ddab..3ea85932af 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -329,7 +329,7 @@ Configures the [LED Matrix](feature_led_matrix.md) feature. * The centroid (geometric center) of the LEDs. Used for certain effects. * Default: `[112, 32]` * `driver` (Required) - * The driver to use. Must be one of `ckled2001`, `custom`, `is31fl3731`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`. + * The driver to use. Must be one of `ckled2001`, `custom`, `is31fl3731`, `is31fl3736`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`. * `layout` (Required) * List of LED configuration dictionaries. Each dictionary contains: * `flags` (Required) diff --git a/drivers/led/issi/is31fl3736-simple.c b/drivers/led/issi/is31fl3736-simple.c new file mode 100644 index 0000000000..cd4038ac2c --- /dev/null +++ b/drivers/led/issi/is31fl3736-simple.c @@ -0,0 +1,222 @@ +/* Copyright 2018 Jason Williams (Wilba) + * Copyright 2021 Doni Crosby + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "is31fl3736-simple.h" +#include +#include "i2c_master.h" +#include "wait.h" + +#define IS31FL3736_COMMANDREGISTER 0xFD +#define IS31FL3736_COMMANDREGISTER_WRITELOCK 0xFE +#define IS31FL3736_INTERRUPTMASKREGISTER 0xF0 +#define IS31FL3736_INTERRUPTSTATUSREGISTER 0xF1 + +#define IS31FL3736_PAGE_LEDCONTROL 0x00 // PG0 +#define IS31FL3736_PAGE_PWM 0x01 // PG1 +#define IS31FL3736_PAGE_AUTOBREATH 0x02 // PG2 +#define IS31FL3736_PAGE_FUNCTION 0x03 // PG3 + +#define IS31FL3736_REG_CONFIGURATION 0x00 // PG3 +#define IS31FL3736_REG_GLOBALCURRENT 0x01 // PG3 +#define IS31FL3736_REG_RESET 0x11 // PG3 +#define IS31FL3736_REG_SWPULLUP 0x0F // PG3 +#define IS31FL3736_REG_CSPULLUP 0x10 // PG3 + +#ifndef IS31FL3736_I2C_TIMEOUT +# define IS31FL3736_I2C_TIMEOUT 100 +#endif + +#ifndef IS31FL3736_I2C_PERSISTENCE +# define IS31FL3736_I2C_PERSISTENCE 0 +#endif + +#ifndef IS31FL3736_PWM_FREQUENCY +# define IS31FL3736_PWM_FREQUENCY IS31FL3736_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3736B only +#endif + +#ifndef IS31FL3736_SWPULLUP +# define IS31FL3736_SWPULLUP IS31FL3736_PUR_0R +#endif + +#ifndef IS31FL3736_CSPULLUP +# define IS31FL3736_CSPULLUP IS31FL3736_PUR_0R +#endif + +#ifndef IS31FL3736_GLOBALCURRENT +# define IS31FL3736_GLOBALCURRENT 0xFF +#endif + +// Transfer buffer for TWITransmitData() +uint8_t g_twi_transfer_buffer[20]; + +// These buffers match the IS31FL3736 PWM registers. +// The control buffers match the PG0 LED On/Off registers. +// Storing them like this is optimal for I2C transfers to the registers. +// We could optimize this and take out the unused registers from these +// buffers and the transfers in is31fl3736_write_pwm_buffer() but it's +// probably not worth the extra complexity. +uint8_t g_pwm_buffer[IS31FL3736_DRIVER_COUNT][192]; +bool g_pwm_buffer_update_required[IS31FL3736_DRIVER_COUNT] = {false}; + +uint8_t g_led_control_registers[IS31FL3736_DRIVER_COUNT][24] = {0}; +bool g_led_control_registers_update_required[IS31FL3736_DRIVER_COUNT] = {false}; + +void is31fl3736_write_register(uint8_t addr, uint8_t reg, uint8_t data) { + g_twi_transfer_buffer[0] = reg; + g_twi_transfer_buffer[1] = data; + +#if IS31FL3736_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3736_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3736_I2C_TIMEOUT) == 0) break; + } +#else + i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3736_I2C_TIMEOUT); +#endif +} + +void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { + // assumes PG1 is already selected + + // transmit PWM registers in 12 transfers of 16 bytes + // g_twi_transfer_buffer[] is 20 bytes + + // iterate over the pwm_buffer contents at 16 byte intervals + for (int i = 0; i < 192; i += 16) { + g_twi_transfer_buffer[0] = i; + // copy the data from i to i+15 + // device will auto-increment register for data after the first byte + // thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer + memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 16); + +#if IS31FL3736_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3736_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3736_I2C_TIMEOUT) == 0) break; + } +#else + i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3736_I2C_TIMEOUT); +#endif + } +} + +void is31fl3736_init(uint8_t addr) { + // In order to avoid the LEDs being driven with garbage data + // in the LED driver's PWM registers, shutdown is enabled last. + // Set up the mode and other settings, clear the PWM registers, + // then disable software shutdown. + + // Unlock the command register. + is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER_WRITELOCK, 0xC5); + + // Select PG0 + is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_LEDCONTROL); + // Turn off all LEDs. + for (int i = 0x00; i <= 0x17; i++) { + is31fl3736_write_register(addr, i, 0x00); + } + + // Unlock the command register. + is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER_WRITELOCK, 0xC5); + + // Select PG1 + is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_PWM); + // Set PWM on all LEDs to 0 + // No need to setup Breath registers to PWM as that is the default. + for (int i = 0x00; i <= 0xBF; i++) { + is31fl3736_write_register(addr, i, 0x00); + } + + // Unlock the command register. + is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER_WRITELOCK, 0xC5); + + // Select PG3 + is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_FUNCTION); + // Set de-ghost pull-up resistors (SWx) + is31fl3736_write_register(addr, IS31FL3736_REG_SWPULLUP, IS31FL3736_SWPULLUP); + // Set de-ghost pull-down resistors (CSx) + is31fl3736_write_register(addr, IS31FL3736_REG_CSPULLUP, IS31FL3736_CSPULLUP); + // Set global current to maximum. + is31fl3736_write_register(addr, IS31FL3736_REG_GLOBALCURRENT, IS31FL3736_GLOBALCURRENT); + // Disable software shutdown. + is31fl3736_write_register(addr, IS31FL3736_REG_CONFIGURATION, ((IS31FL3736_PWM_FREQUENCY & 0b111) << 3) | 0x01); + + // Wait 10ms to ensure the device has woken up. + wait_ms(10); +} + +void is31fl3736_set_value(int index, uint8_t value) { + is31_led led; + if (index >= 0 && index < LED_MATRIX_LED_COUNT) { + memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + + if (g_pwm_buffer[led.driver][led.v] == value) { + return; + } + g_pwm_buffer[led.driver][led.v] = value; + g_pwm_buffer_update_required[led.driver] = true; + } +} + +void is31fl3736_set_value_all(uint8_t value) { + for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { + is31fl3736_set_value(i, value); + } +} + +void is31fl3736_set_led_control_register(uint8_t index, bool value) { + is31_led led; + memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + + // The PWM register for a matrix position (0x00 to 0xBF) is interleaved, so: + // A1=0x00 A2=0x02 A3=0x04 A4=0x06 A5=0x08 A6=0x0A A7=0x0C A8=0x0E + // B1=0x10 B2=0x12 B3=0x14 + // But also, the LED control registers (0x00 to 0x17) are also interleaved, so: + // A1-A4=0x00 A5-A8=0x01 + + uint8_t control_register = led.v / 8; + uint8_t bit_value = led.v % 8; + + if (value) { + g_led_control_registers[led.driver][control_register] |= (1 << bit_value); + } else { + g_led_control_registers[led.driver][control_register] &= ~(1 << bit_value); + } + + g_led_control_registers_update_required[led.driver] = true; +} + +void is31fl3736_update_pwm_buffers(uint8_t addr, uint8_t index) { + if (g_pwm_buffer_update_required[index]) { + // Firstly we need to unlock the command register and select PG1 + is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_PWM); + + is31fl3736_write_pwm_buffer(addr, g_pwm_buffer[index]); + g_pwm_buffer_update_required[index] = false; + } +} + +void is31fl3736_update_led_control_registers(uint8_t addr, uint8_t index) { + if (g_led_control_registers_update_required[index]) { + // Firstly we need to unlock the command register and select PG0 + is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_LEDCONTROL); + for (int i = 0; i < 24; i++) { + is31fl3736_write_register(addr, i, g_led_control_registers[index][i]); + } + g_led_control_registers_update_required[index] = false; + } +} diff --git a/drivers/led/issi/is31fl3736-simple.h b/drivers/led/issi/is31fl3736-simple.h new file mode 100644 index 0000000000..9f8056af5b --- /dev/null +++ b/drivers/led/issi/is31fl3736-simple.h @@ -0,0 +1,215 @@ +/* Copyright 2018 Jason Williams (Wilba) + * Copyright 2021 Doni Crosby + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include +#include +#include "progmem.h" + +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_COUNT +# define IS31FL3736_DRIVER_COUNT DRIVER_COUNT +#endif +#ifdef ISSI_TIMEOUT +# define IS31FL3736_I2C_TIMEOUT ISSI_TIMEOUT +#endif +#ifdef ISSI_PERSISTENCE +# define IS31FL3736_I2C_PERSISTENCE ISSI_PERSISTENCE +#endif +#ifdef ISSI_SWPULLUP +# define IS31FL3736_SWPULLUP ISSI_SWPULLUP +#endif +#ifdef ISSI_CSPULLUP +# define IS31FL3736_CSPULLUP ISSI_CSPULLUP +#endif +#ifdef ISSI_GLOBALCURRENT +# define IS31FL3736_GLOBALCURRENT ISSI_GLOBALCURRENT +#endif + +#define PUR_0R IS31FL3736_PUR_0R +#define PUR_05KR IS31FL3736_PUR_05KR +#define PUR_1KR IS31FL3736_PUR_1KR +#define PUR_2KR IS31FL3736_PUR_2KR +#define PUR_4KR IS31FL3736_PUR_4KR +#define PUR_8KR IS31FL3736_PUR_8KR +#define PUR_16KR IS31FL3736_PUR_16KR +#define PUR_32KR IS31FL3736_PUR_32KR +// ======== + +#define IS31FL3736_I2C_ADDRESS_GND_GND 0x50 +#define IS31FL3736_I2C_ADDRESS_GND_SCL 0x51 +#define IS31FL3736_I2C_ADDRESS_GND_SDA 0x52 +#define IS31FL3736_I2C_ADDRESS_GND_VCC 0x53 +#define IS31FL3736_I2C_ADDRESS_SCL_GND 0x54 +#define IS31FL3736_I2C_ADDRESS_SCL_SCL 0x55 +#define IS31FL3736_I2C_ADDRESS_SCL_SDA 0x56 +#define IS31FL3736_I2C_ADDRESS_SCL_VCC 0x57 +#define IS31FL3736_I2C_ADDRESS_SDA_GND 0x58 +#define IS31FL3736_I2C_ADDRESS_SDA_SCL 0x59 +#define IS31FL3736_I2C_ADDRESS_SDA_SDA 0x5A +#define IS31FL3736_I2C_ADDRESS_SDA_VCC 0x5B +#define IS31FL3736_I2C_ADDRESS_VCC_GND 0x5C +#define IS31FL3736_I2C_ADDRESS_VCC_SCL 0x5D +#define IS31FL3736_I2C_ADDRESS_VCC_SDA 0x5E +#define IS31FL3736_I2C_ADDRESS_VCC_VCC 0x5F + +typedef struct is31_led { + uint8_t driver : 2; + uint8_t v; +} __attribute__((packed)) is31_led; + +extern const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT]; + +void is31fl3736_init(uint8_t addr); +void is31fl3736_write_register(uint8_t addr, uint8_t reg, uint8_t data); +void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); + +void is31fl3736_set_value(int index, uint8_t value); +void is31fl3736_set_value_all(uint8_t value); + +void is31fl3736_set_led_control_register(uint8_t index, bool value); + +// This should not be called from an interrupt +// (eg. from a timer interrupt). +// Call this while idle (in between matrix scans). +// If the buffer is dirty, it will update the driver with the buffer. +void is31fl3736_update_pwm_buffers(uint8_t addr, uint8_t index); +void is31fl3736_update_led_control_registers(uint8_t addr, uint8_t index); + +#define IS31FL3736_PUR_0R 0x00 // No PUR resistor +#define IS31FL3736_PUR_05KR 0x01 // 0.5k Ohm resistor +#define IS31FL3736_PUR_1KR 0x02 // 1.0k Ohm resistor +#define IS31FL3736_PUR_2KR 0x03 // 2.0k Ohm resistor +#define IS31FL3736_PUR_4KR 0x04 // 4.0k Ohm resistor +#define IS31FL3736_PUR_8KR 0x05 // 8.0k Ohm resistor +#define IS31FL3736_PUR_16KR 0x06 // 16k Ohm resistor +#define IS31FL3736_PUR_32KR 0x07 // 32k Ohm resistor + +#define IS31FL3736_PWM_FREQUENCY_8K4_HZ 0b000 +#define IS31FL3736_PWM_FREQUENCY_4K2_HZ 0b001 +#define IS31FL3736_PWM_FREQUENCY_26K7_HZ 0b010 +#define IS31FL3736_PWM_FREQUENCY_2K1_HZ 0b011 +#define IS31FL3736_PWM_FREQUENCY_1K05_HZ 0b100 + +#define A_1 0x00 +#define A_2 0x02 +#define A_3 0x04 +#define A_4 0x06 +#define A_5 0x08 +#define A_6 0x0A +#define A_7 0x0C +#define A_8 0x0E + +#define B_1 0x10 +#define B_2 0x12 +#define B_3 0x14 +#define B_4 0x16 +#define B_5 0x18 +#define B_6 0x1A +#define B_7 0x1C +#define B_8 0x1E + +#define C_1 0x20 +#define C_2 0x22 +#define C_3 0x24 +#define C_4 0x26 +#define C_5 0x28 +#define C_6 0x2A +#define C_7 0x2C +#define C_8 0x2E + +#define D_1 0x30 +#define D_2 0x32 +#define D_3 0x34 +#define D_4 0x36 +#define D_5 0x38 +#define D_6 0x3A +#define D_7 0x3C +#define D_8 0x3E + +#define E_1 0x40 +#define E_2 0x42 +#define E_3 0x44 +#define E_4 0x46 +#define E_5 0x48 +#define E_6 0x4A +#define E_7 0x4C +#define E_8 0x4E + +#define F_1 0x50 +#define F_2 0x52 +#define F_3 0x54 +#define F_4 0x56 +#define F_5 0x58 +#define F_6 0x5A +#define F_7 0x5C +#define F_8 0x5E + +#define G_1 0x60 +#define G_2 0x62 +#define G_3 0x64 +#define G_4 0x66 +#define G_5 0x68 +#define G_6 0x6A +#define G_7 0x6C +#define G_8 0x6E + +#define H_1 0x70 +#define H_2 0x72 +#define H_3 0x74 +#define H_4 0x76 +#define H_5 0x78 +#define H_6 0x7A +#define H_7 0x7C +#define H_8 0x7E + +#define I_1 0x80 +#define I_2 0x82 +#define I_3 0x84 +#define I_4 0x86 +#define I_5 0x88 +#define I_6 0x8A +#define I_7 0x8C +#define I_8 0x8E + +#define J_1 0x90 +#define J_2 0x92 +#define J_3 0x94 +#define J_4 0x96 +#define J_5 0x98 +#define J_6 0x9A +#define J_7 0x9C +#define J_8 0x9E + +#define K_1 0xA0 +#define K_2 0xA2 +#define K_3 0xA4 +#define K_4 0xA6 +#define K_5 0xA8 +#define K_6 0xAA +#define K_7 0xAC +#define K_8 0xAE + +#define L_1 0xB0 +#define L_2 0xB2 +#define L_3 0xB4 +#define L_4 0xB6 +#define L_5 0xB8 +#define L_6 0xBA +#define L_7 0xBC +#define L_8 0xBE diff --git a/drivers/led/issi/is31fl3736.c b/drivers/led/issi/is31fl3736.c index 7f50411f1f..23ff0637a6 100644 --- a/drivers/led/issi/is31fl3736.c +++ b/drivers/led/issi/is31fl3736.c @@ -72,8 +72,8 @@ uint8_t g_twi_transfer_buffer[20]; uint8_t g_pwm_buffer[IS31FL3736_DRIVER_COUNT][192]; bool g_pwm_buffer_update_required[IS31FL3736_DRIVER_COUNT] = {false}; -uint8_t g_led_control_registers[IS31FL3736_DRIVER_COUNT][24] = {{0}, {0}}; -bool g_led_control_registers_update_required = false; +uint8_t g_led_control_registers[IS31FL3736_DRIVER_COUNT][24] = {0}; +bool g_led_control_registers_update_required[IS31FL3736_DRIVER_COUNT] = {false}; void is31fl3736_write_register(uint8_t addr, uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; @@ -182,18 +182,11 @@ void is31fl3736_set_led_control_register(uint8_t index, bool red, bool green, bo is31_led led; memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); - // IS31FL3733 - // The PWM register for a matrix position (0x00 to 0xBF) can be - // divided by 8 to get the LED control register (0x00 to 0x17), - // then mod 8 to get the bit position within that register. - - // IS31FL3736 // The PWM register for a matrix position (0x00 to 0xBF) is interleaved, so: // A1=0x00 A2=0x02 A3=0x04 A4=0x06 A5=0x08 A6=0x0A A7=0x0C A8=0x0E // B1=0x10 B2=0x12 B3=0x14 // But also, the LED control registers (0x00 to 0x17) are also interleaved, so: // A1-A4=0x00 A5-A8=0x01 - // So, the same math applies. uint8_t control_register_r = led.r / 8; uint8_t control_register_g = led.g / 8; @@ -219,41 +212,7 @@ void is31fl3736_set_led_control_register(uint8_t index, bool red, bool green, bo g_led_control_registers[led.driver][control_register_b] &= ~(1 << bit_b); } - g_led_control_registers_update_required = true; -} - -void is31fl3736_mono_set_brightness(int index, uint8_t value) { - if (index >= 0 && index < 96) { - // Index in range 0..95 -> A1..A8, B1..B8, etc. - // Map index 0..95 to registers 0x00..0xBE (interleaved) - uint8_t pwm_register = index * 2; - g_pwm_buffer[0][pwm_register] = value; - g_pwm_buffer_update_required[0] = true; - } -} - -void is31fl3736_mono_set_brightness_all(uint8_t value) { - for (int i = 0; i < 96; i++) { - is31fl3736_mono_set_brightness(i, value); - } -} - -void is31fl3736_mono_set_led_control_register(uint8_t index, bool enabled) { - // Index in range 0..95 -> A1..A8, B1..B8, etc. - - // Map index 0..95 to registers 0x00..0xBE (interleaved) - uint8_t pwm_register = index * 2; - // Map register 0x00..0xBE (interleaved) into control register and bit - uint8_t control_register = pwm_register / 8; - uint8_t bit = pwm_register % 8; - - if (enabled) { - g_led_control_registers[0][control_register] |= (1 << bit); - } else { - g_led_control_registers[0][control_register] &= ~(1 << bit); - } - - g_led_control_registers_update_required = true; + g_led_control_registers_update_required[led.driver] = true; } void is31fl3736_update_pwm_buffers(uint8_t addr, uint8_t index) { @@ -267,15 +226,14 @@ void is31fl3736_update_pwm_buffers(uint8_t addr, uint8_t index) { } } -void is31fl3736_update_led_control_registers(uint8_t addr1, uint8_t addr2) { - if (g_led_control_registers_update_required) { +void is31fl3736_update_led_control_registers(uint8_t addr, uint8_t index) { + if (g_led_control_registers_update_required[index]) { // Firstly we need to unlock the command register and select PG0 - is31fl3736_write_register(addr1, IS31FL3736_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3736_write_register(addr1, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_LEDCONTROL); + is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_LEDCONTROL); for (int i = 0; i < 24; i++) { - is31fl3736_write_register(addr1, i, g_led_control_registers[0][i]); - // is31fl3736_write_register(addr2, i, g_led_control_registers[1][i]); + is31fl3736_write_register(addr, i, g_led_control_registers[index][i]); } - g_led_control_registers_update_required = false; + g_led_control_registers_update_required[index] = false; } } diff --git a/drivers/led/issi/is31fl3736.h b/drivers/led/issi/is31fl3736.h index baf200f8ad..f263b131fd 100644 --- a/drivers/led/issi/is31fl3736.h +++ b/drivers/led/issi/is31fl3736.h @@ -86,10 +86,6 @@ void is31fl3736_set_color_all(uint8_t red, uint8_t green, uint8_t blue); void is31fl3736_set_led_control_register(uint8_t index, bool red, bool green, bool blue); -void is31fl3736_mono_set_brightness(int index, uint8_t value); -void is31fl3736_mono_set_brightness_all(uint8_t value); -void is31fl3736_mono_set_led_control_register(uint8_t index, bool enabled); - // This should not be called from an interrupt // (eg. from a timer interrupt). // Call this while idle (in between matrix scans). diff --git a/keyboards/wilba_tech/wt60_a/config.h b/keyboards/wilba_tech/wt60_a/config.h index 54f68e9aaf..ec3f1abf30 100644 --- a/keyboards/wilba_tech/wt60_a/config.h +++ b/keyboards/wilba_tech/wt60_a/config.h @@ -62,5 +62,5 @@ // dynamic keymaps start after this. #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 -#define IS31FL3736_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 96 +#define IS31FL3736_DRIVER_COUNT 1 +#define LED_MATRIX_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt60_a/rules.mk b/keyboards/wilba_tech/wt60_a/rules.mk index 4a53424c53..3a552128d8 100644 --- a/keyboards/wilba_tech/wt60_a/rules.mk +++ b/keyboards/wilba_tech/wt60_a/rules.mk @@ -11,7 +11,7 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output # project specific files -SRC = drivers/led/issi/is31fl3736.c \ +SRC = drivers/led/issi/is31fl3736-simple.c \ i2c_master.c \ quantum/color.c \ keyboards/wilba_tech/wt_mono_backlight.c \ diff --git a/keyboards/wilba_tech/wt65_a/config.h b/keyboards/wilba_tech/wt65_a/config.h index 8b30dd6cde..bddeb8397c 100644 --- a/keyboards/wilba_tech/wt65_a/config.h +++ b/keyboards/wilba_tech/wt65_a/config.h @@ -62,5 +62,5 @@ // dynamic keymaps start after this. #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 -#define IS31FL3736_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 96 +#define IS31FL3736_DRIVER_COUNT 1 +#define LED_MATRIX_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt65_a/rules.mk b/keyboards/wilba_tech/wt65_a/rules.mk index 4a53424c53..3a552128d8 100644 --- a/keyboards/wilba_tech/wt65_a/rules.mk +++ b/keyboards/wilba_tech/wt65_a/rules.mk @@ -11,7 +11,7 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output # project specific files -SRC = drivers/led/issi/is31fl3736.c \ +SRC = drivers/led/issi/is31fl3736-simple.c \ i2c_master.c \ quantum/color.c \ keyboards/wilba_tech/wt_mono_backlight.c \ diff --git a/keyboards/wilba_tech/wt65_b/config.h b/keyboards/wilba_tech/wt65_b/config.h index 0a2a7526d9..f0aec12b06 100644 --- a/keyboards/wilba_tech/wt65_b/config.h +++ b/keyboards/wilba_tech/wt65_b/config.h @@ -62,5 +62,5 @@ // dynamic keymaps start after this. #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 -#define IS31FL3736_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 96 +#define IS31FL3736_DRIVER_COUNT 1 +#define LED_MATRIX_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt65_b/rules.mk b/keyboards/wilba_tech/wt65_b/rules.mk index 4a53424c53..3a552128d8 100644 --- a/keyboards/wilba_tech/wt65_b/rules.mk +++ b/keyboards/wilba_tech/wt65_b/rules.mk @@ -11,7 +11,7 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output # project specific files -SRC = drivers/led/issi/is31fl3736.c \ +SRC = drivers/led/issi/is31fl3736-simple.c \ i2c_master.c \ quantum/color.c \ keyboards/wilba_tech/wt_mono_backlight.c \ diff --git a/keyboards/wilba_tech/wt75_a/config.h b/keyboards/wilba_tech/wt75_a/config.h index e987252e44..b2d20e3351 100644 --- a/keyboards/wilba_tech/wt75_a/config.h +++ b/keyboards/wilba_tech/wt75_a/config.h @@ -62,5 +62,5 @@ // dynamic keymaps start after this. #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 -#define IS31FL3736_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 96 +#define IS31FL3736_DRIVER_COUNT 1 +#define LED_MATRIX_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt75_a/rules.mk b/keyboards/wilba_tech/wt75_a/rules.mk index 4a53424c53..3a552128d8 100644 --- a/keyboards/wilba_tech/wt75_a/rules.mk +++ b/keyboards/wilba_tech/wt75_a/rules.mk @@ -11,7 +11,7 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output # project specific files -SRC = drivers/led/issi/is31fl3736.c \ +SRC = drivers/led/issi/is31fl3736-simple.c \ i2c_master.c \ quantum/color.c \ keyboards/wilba_tech/wt_mono_backlight.c \ diff --git a/keyboards/wilba_tech/wt75_b/config.h b/keyboards/wilba_tech/wt75_b/config.h index 9d6dfb9585..cd6aa96577 100644 --- a/keyboards/wilba_tech/wt75_b/config.h +++ b/keyboards/wilba_tech/wt75_b/config.h @@ -62,5 +62,5 @@ // dynamic keymaps start after this. #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 -#define IS31FL3736_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 96 +#define IS31FL3736_DRIVER_COUNT 1 +#define LED_MATRIX_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt75_b/rules.mk b/keyboards/wilba_tech/wt75_b/rules.mk index 4a53424c53..3a552128d8 100644 --- a/keyboards/wilba_tech/wt75_b/rules.mk +++ b/keyboards/wilba_tech/wt75_b/rules.mk @@ -11,7 +11,7 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output # project specific files -SRC = drivers/led/issi/is31fl3736.c \ +SRC = drivers/led/issi/is31fl3736-simple.c \ i2c_master.c \ quantum/color.c \ keyboards/wilba_tech/wt_mono_backlight.c \ diff --git a/keyboards/wilba_tech/wt75_c/config.h b/keyboards/wilba_tech/wt75_c/config.h index c4f9170872..f2cebdc7aa 100644 --- a/keyboards/wilba_tech/wt75_c/config.h +++ b/keyboards/wilba_tech/wt75_c/config.h @@ -62,5 +62,5 @@ // dynamic keymaps start after this. #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 -#define IS31FL3736_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 96 +#define IS31FL3736_DRIVER_COUNT 1 +#define LED_MATRIX_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt75_c/rules.mk b/keyboards/wilba_tech/wt75_c/rules.mk index 4a53424c53..3a552128d8 100644 --- a/keyboards/wilba_tech/wt75_c/rules.mk +++ b/keyboards/wilba_tech/wt75_c/rules.mk @@ -11,7 +11,7 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output # project specific files -SRC = drivers/led/issi/is31fl3736.c \ +SRC = drivers/led/issi/is31fl3736-simple.c \ i2c_master.c \ quantum/color.c \ keyboards/wilba_tech/wt_mono_backlight.c \ diff --git a/keyboards/wilba_tech/wt80_a/config.h b/keyboards/wilba_tech/wt80_a/config.h index b33d797bdf..6b424a649f 100644 --- a/keyboards/wilba_tech/wt80_a/config.h +++ b/keyboards/wilba_tech/wt80_a/config.h @@ -62,5 +62,5 @@ // dynamic keymaps start after this. #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 -#define IS31FL3736_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 96 +#define IS31FL3736_DRIVER_COUNT 1 +#define LED_MATRIX_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt80_a/rules.mk b/keyboards/wilba_tech/wt80_a/rules.mk index 4a53424c53..3a552128d8 100644 --- a/keyboards/wilba_tech/wt80_a/rules.mk +++ b/keyboards/wilba_tech/wt80_a/rules.mk @@ -11,7 +11,7 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output # project specific files -SRC = drivers/led/issi/is31fl3736.c \ +SRC = drivers/led/issi/is31fl3736-simple.c \ i2c_master.c \ quantum/color.c \ keyboards/wilba_tech/wt_mono_backlight.c \ diff --git a/keyboards/wilba_tech/wt_mono_backlight.c b/keyboards/wilba_tech/wt_mono_backlight.c index 28ee5fae81..57610f5b98 100644 --- a/keyboards/wilba_tech/wt_mono_backlight.c +++ b/keyboards/wilba_tech/wt_mono_backlight.c @@ -33,7 +33,7 @@ #error VIA_EEPROM_CUSTOM_CONFIG_SIZE was not defined to store backlight_config struct #endif -#include "drivers/led/issi/is31fl3736.h" +#include "drivers/led/issi/is31fl3736-simple.h" #define ISSI_ADDR_DEFAULT 0x50 @@ -52,6 +52,116 @@ backlight_config g_config = { .color_1 = MONO_BACKLIGHT_COLOR_1, }; +const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = { + {0, A_1}, + {0, A_2}, + {0, A_3}, + {0, A_4}, + {0, A_5}, + {0, A_6}, + {0, A_7}, + {0, A_8}, + + {0, B_1}, + {0, B_2}, + {0, B_3}, + {0, B_4}, + {0, B_5}, + {0, B_6}, + {0, B_7}, + {0, B_8}, + + {0, C_1}, + {0, C_2}, + {0, C_3}, + {0, C_4}, + {0, C_5}, + {0, C_6}, + {0, C_7}, + {0, C_8}, + + {0, D_1}, + {0, D_2}, + {0, D_3}, + {0, D_4}, + {0, D_5}, + {0, D_6}, + {0, D_7}, + {0, D_8}, + + {0, E_1}, + {0, E_2}, + {0, E_3}, + {0, E_4}, + {0, E_5}, + {0, E_6}, + {0, E_7}, + {0, E_8}, + + {0, F_1}, + {0, F_2}, + {0, F_3}, + {0, F_4}, + {0, F_5}, + {0, F_6}, + {0, F_7}, + {0, F_8}, + + {0, G_1}, + {0, G_2}, + {0, G_3}, + {0, G_4}, + {0, G_5}, + {0, G_6}, + {0, G_7}, + {0, G_8}, + + {0, H_1}, + {0, H_2}, + {0, H_3}, + {0, H_4}, + {0, H_5}, + {0, H_6}, + {0, H_7}, + {0, H_8}, + + {0, I_1}, + {0, I_2}, + {0, I_3}, + {0, I_4}, + {0, I_5}, + {0, I_6}, + {0, I_7}, + {0, I_8}, + + {0, J_1}, + {0, J_2}, + {0, J_3}, + {0, J_4}, + {0, J_5}, + {0, J_6}, + {0, J_7}, + {0, J_8}, + + {0, K_1}, + {0, K_2}, + {0, K_3}, + {0, K_4}, + {0, K_5}, + {0, K_6}, + {0, K_7}, + {0, K_8}, + + {0, L_1}, + {0, L_2}, + {0, L_3}, + {0, L_4}, + {0, L_5}, + {0, L_6}, + {0, L_7}, + {0, L_8} +}; + bool g_suspend_state = false; // Global tick at 20 Hz @@ -67,9 +177,9 @@ void backlight_init_drivers(void) is31fl3736_init( ISSI_ADDR_DEFAULT ); for ( uint8_t index = 0; index < 96; index++ ) { - is31fl3736_mono_set_led_control_register( index, true ); + is31fl3736_set_led_control_register( index, true ); } - is31fl3736_update_led_control_registers( ISSI_ADDR_DEFAULT, 0x00 ); + is31fl3736_update_led_control_registers( ISSI_ADDR_DEFAULT, 0 ); } void backlight_set_key_hit(uint8_t row, uint8_t column) @@ -119,17 +229,17 @@ void backlight_set_suspend_state(bool state) void backlight_set_brightness_all( uint8_t value ) { - is31fl3736_mono_set_brightness_all( value ); + is31fl3736_set_value_all( value ); } void backlight_effect_all_off(void) { - is31fl3736_mono_set_brightness_all( 0 ); + is31fl3736_set_value_all( 0 ); } void backlight_effect_all_on(void) { - is31fl3736_mono_set_brightness_all( g_config.brightness ); + is31fl3736_set_value_all( g_config.brightness ); } void backlight_effect_raindrops(bool initialize) @@ -143,7 +253,7 @@ void backlight_effect_raindrops(bool initialize) // If not, all but one will stay the same as before. if ( initialize || i == led_to_change ) { - is31fl3736_mono_set_brightness(i, rand() & 0xFF ); + is31fl3736_set_value(i, rand() & 0xFF ); } } } @@ -165,9 +275,9 @@ void backlight_effect_indicators(void) // SW7,CS8 = (6*8+7) = 55 // SW8,CS8 = (7*8+7) = 63 // SW9,CS8 = (8*8+7) = 71 - is31fl3736_mono_set_brightness(55, rgb.r); - is31fl3736_mono_set_brightness(63, rgb.g); - is31fl3736_mono_set_brightness(71, rgb.b); + is31fl3736_set_value(55, rgb.r); + is31fl3736_set_value(63, rgb.g); + is31fl3736_set_value(71, rgb.b); #endif // MONO_BACKLIGHT_WT75_A // This pairs with "All Off" already setting zero brightness, @@ -181,19 +291,19 @@ defined(MONO_BACKLIGHT_WT75_C) || \ defined(MONO_BACKLIGHT_WT80_A) if ( host_keyboard_led_state().caps_lock ) { // SW3,CS1 = (2*8+0) = 16 - is31fl3736_mono_set_brightness(16, 255); + is31fl3736_set_value(16, 255); } #endif #if defined(MONO_BACKLIGHT_WT80_A) if ( host_keyboard_led_state().scroll_lock ) { // SW7,CS7 = (6*8+6) = 54 - is31fl3736_mono_set_brightness(54, 255); + is31fl3736_set_value(54, 255); } #endif #if defined(MONO_BACKLIGHT_WT75_C) if ( host_keyboard_led_state().scroll_lock ) { // SW7,CS8 = (6*8+7) = 55 - is31fl3736_mono_set_brightness(55, 255); + is31fl3736_set_value(55, 255); } #endif } @@ -361,7 +471,7 @@ void backlight_config_save(void) void backlight_update_pwm_buffers(void) { - is31fl3736_update_pwm_buffers(ISSI_ADDR_DEFAULT,0x00); + is31fl3736_update_pwm_buffers(ISSI_ADDR_DEFAULT, 0); } bool process_record_backlight(uint16_t keycode, keyrecord_t *record) diff --git a/quantum/led_matrix/led_matrix.h b/quantum/led_matrix/led_matrix.h index d654fd5757..2b41f11bbf 100644 --- a/quantum/led_matrix/led_matrix.h +++ b/quantum/led_matrix/led_matrix.h @@ -27,12 +27,16 @@ #ifdef LED_MATRIX_IS31FL3731 # include "is31fl3731-simple.h" -#elif defined(IS31FLCOMMON) -# include "is31flcommon.h" #endif #ifdef LED_MATRIX_IS31FL3733 # include "is31fl3733-simple.h" #endif +#ifdef LED_MATRIX_IS31FL3736 +# include "is31fl3736-simple.h" +#endif +#if defined(IS31FLCOMMON) +# include "is31flcommon.h" +#endif #ifdef LED_MATRIX_CKLED2001 # include "ckled2001-simple.h" #endif diff --git a/quantum/led_matrix/led_matrix_drivers.c b/quantum/led_matrix/led_matrix_drivers.c index 77c5aa3d0a..7ca0c7958f 100644 --- a/quantum/led_matrix/led_matrix_drivers.c +++ b/quantum/led_matrix/led_matrix_drivers.c @@ -25,7 +25,7 @@ * in their own files. */ -#if defined(LED_MATRIX_IS31FL3731) || defined(LED_MATRIX_IS31FL3733) || defined(IS31FLCOMMON) || defined(LED_MATRIX_CKLED2001) +#if defined(LED_MATRIX_IS31FL3731) || defined(LED_MATRIX_IS31FL3733) || defined(LED_MATRIX_IS31FL3736) || defined(IS31FLCOMMON) || defined(LED_MATRIX_CKLED2001) # include "i2c_master.h" static void init(void) { @@ -67,6 +67,18 @@ static void init(void) { # endif # endif +# elif defined(LED_MATRIX_IS31FL3736) + is31fl3736_init(LED_DRIVER_ADDR_1); +# if defined(LED_DRIVER_ADDR_2) + is31fl3736_init(LED_DRIVER_ADDR_2); +# if defined(LED_DRIVER_ADDR_3) + is31fl3736_init(LED_DRIVER_ADDR_3); +# if defined(LED_DRIVER_ADDR_4) + is31fl3736_init(LED_DRIVER_ADDR_4); +# endif +# endif +# endif + # elif defined(IS31FLCOMMON) IS31FL_common_init(DRIVER_ADDR_1, ISSI_SSR_1); # if defined(LED_DRIVER_ADDR_2) @@ -101,6 +113,8 @@ static void init(void) { is31fl3731_set_led_control_register(index, true); # elif defined(LED_MATRIX_IS31FL3733) is31fl3733_set_led_control_register(index, true); +# elif defined(LED_MATRIX_IS31FL3736) + is31fl3736_set_led_control_register(index, true); # elif defined(IS31FLCOMMON) IS31FL_simple_set_scaling_buffer(index, true); # elif defined(LED_MATRIX_CKLED2001) @@ -133,6 +147,18 @@ static void init(void) { # endif # endif +# elif defined(LED_MATRIX_IS31FL3736) + is31fl3736_update_led_control_registers(LED_DRIVER_ADDR_1, 0); +# if defined(LED_DRIVER_ADDR_2) + is31fl3736_update_led_control_registers(LED_DRIVER_ADDR_2, 1); +# if defined(LED_DRIVER_ADDR_3) + is31fl3736_update_led_control_registers(LED_DRIVER_ADDR_3, 2); +# if defined(LED_DRIVER_ADDR_4) + is31fl3736_update_led_control_registers(LED_DRIVER_ADDR_4, 3); +# endif +# endif +# endif + # elif defined(IS31FLCOMMON) # ifdef ISSI_MANUAL_SCALING IS31FL_set_manual_scaling_buffer(); @@ -203,6 +229,27 @@ const led_matrix_driver_t led_matrix_driver = { .set_value_all = is31fl3733_set_value_all, }; +# elif defined(LED_MATRIX_IS31FL3736) +static void flush(void) { + is31fl3736_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); +# if defined(LED_DRIVER_ADDR_2) + is31fl3736_update_pwm_buffers(LED_DRIVER_ADDR_2, 1); +# if defined(LED_DRIVER_ADDR_3) + is31fl3736_update_pwm_buffers(LED_DRIVER_ADDR_3, 2); +# if defined(LED_DRIVER_ADDR_4) + is31fl3736_update_pwm_buffers(LED_DRIVER_ADDR_4, 3); +# endif +# endif +# endif +} + +const led_matrix_driver_t led_matrix_driver = { + .init = init, + .flush = flush, + .set_value = is31fl3736_set_value, + .set_value_all = is31fl3736_set_value_all, +}; + # elif defined(IS31FLCOMMON) static void flush(void) { IS31FL_common_update_pwm_register(DRIVER_ADDR_1, 0); From 4e86dca49d5b86cf47d6b43172f0d4b17f15cd3a Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 27 Sep 2023 03:57:37 +0100 Subject: [PATCH 194/496] Fix parsing/validation for 21939 (#22148) --- data/schemas/keyboard.jsonschema | 4 ++-- lib/python/qmk/info.py | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 9c63ab8bcf..e0be8f5b97 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -404,7 +404,7 @@ "speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "led_flush_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "led_process_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"}, - "react_on_keyup": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "react_on_keyup": {"type": "boolean"}, "sleep": {"type": "boolean"}, "split_count": { "type": "array", @@ -460,7 +460,7 @@ "speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "led_flush_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "led_process_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"}, - "react_on_keyup": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "react_on_keyup": {"type": "boolean"}, "sleep": {"type": "boolean"}, "split_count": { "type": "array", diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index 9c8521a2a3..4806add67a 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -520,6 +520,8 @@ def _config_to_json(key_type, config_value): return list(map(str.strip, config_value.split(','))) elif key_type == 'bool': + if isinstance(config_value, bool): + return config_value return config_value in true_values elif key_type == 'hex': From 0ecb03ad47a1ec1871537cd9fa3ea39cc60f52aa Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 27 Sep 2023 03:57:57 +0100 Subject: [PATCH 195/496] Drop V2 production updates (#22147) --- keyboards/drop/alt/v2/config.h | 1 - keyboards/drop/alt/v2/info.json | 1 + keyboards/drop/ctrl/v2/config.h | 1 - keyboards/drop/ctrl/v2/info.json | 1 + keyboards/drop/shift/v2/config.h | 1 - keyboards/drop/shift/v2/info.json | 1 + 6 files changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/drop/alt/v2/config.h b/keyboards/drop/alt/v2/config.h index f3f432390e..5de22f7bcf 100644 --- a/keyboards/drop/alt/v2/config.h +++ b/keyboards/drop/alt/v2/config.h @@ -21,7 +21,6 @@ #define ISSI_PWM_FREQUENCY 0b010 // 26k #define RGB_DISABLE_WHEN_USB_SUSPENDED -#define RGB_MATRIX_DEFAULT_VAL 100 #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/drop/alt/v2/info.json b/keyboards/drop/alt/v2/info.json index bfd7942fff..c234f03090 100644 --- a/keyboards/drop/alt/v2/info.json +++ b/keyboards/drop/alt/v2/info.json @@ -105,6 +105,7 @@ }, "rgb_matrix": { "driver": "is31fl3733", + "max_brightness": 191, "animations": { "alphas_mods": true, "gradient_up_down": true, diff --git a/keyboards/drop/ctrl/v2/config.h b/keyboards/drop/ctrl/v2/config.h index 539c505cb3..2cff42074a 100644 --- a/keyboards/drop/ctrl/v2/config.h +++ b/keyboards/drop/ctrl/v2/config.h @@ -21,7 +21,6 @@ #define ISSI_PWM_FREQUENCY 0b010 // 26k #define RGB_DISABLE_WHEN_USB_SUSPENDED -#define RGB_MATRIX_DEFAULT_VAL 100 #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/drop/ctrl/v2/info.json b/keyboards/drop/ctrl/v2/info.json index 3d11359120..11af6a553c 100644 --- a/keyboards/drop/ctrl/v2/info.json +++ b/keyboards/drop/ctrl/v2/info.json @@ -125,6 +125,7 @@ }, "rgb_matrix": { "driver": "is31fl3733", + "max_brightness": 191, "animations": { "alphas_mods": true, "gradient_up_down": true, diff --git a/keyboards/drop/shift/v2/config.h b/keyboards/drop/shift/v2/config.h index 6c651d1f83..a4faafe394 100644 --- a/keyboards/drop/shift/v2/config.h +++ b/keyboards/drop/shift/v2/config.h @@ -22,7 +22,6 @@ #define ISSI_PWM_FREQUENCY 0b010 // 26k #define RGB_DISABLE_WHEN_USB_SUSPENDED -#define RGB_MATRIX_DEFAULT_VAL 100 #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/drop/shift/v2/info.json b/keyboards/drop/shift/v2/info.json index 44a3a5fc98..3615fdef4f 100644 --- a/keyboards/drop/shift/v2/info.json +++ b/keyboards/drop/shift/v2/info.json @@ -133,6 +133,7 @@ }, "rgb_matrix": { "driver": "is31fl3733", + "max_brightness": 191, "animations": { "alphas_mods": true, "gradient_up_down": true, From 18bc541694c99f86ce27a23f44246597c3ba91f2 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 27 Sep 2023 04:16:37 +0100 Subject: [PATCH 196/496] Update Drop keyboards for develop (#22145) --- keyboards/drop/alt/v2/config.h | 5 ----- keyboards/drop/alt/v2/info.json | 1 + keyboards/drop/cstm80/config.h | 13 ++++--------- keyboards/drop/cstm80/info.json | 1 + keyboards/drop/ctrl/v2/config.h | 5 ----- keyboards/drop/ctrl/v2/info.json | 1 + keyboards/drop/sense75/config.h | 5 ----- keyboards/drop/sense75/info.json | 1 + keyboards/drop/shift/v2/config.h | 5 ----- keyboards/drop/shift/v2/info.json | 1 + 10 files changed, 9 insertions(+), 29 deletions(-) diff --git a/keyboards/drop/alt/v2/config.h b/keyboards/drop/alt/v2/config.h index 40d061ab07..2d8fa2b36f 100644 --- a/keyboards/drop/alt/v2/config.h +++ b/keyboards/drop/alt/v2/config.h @@ -17,12 +17,7 @@ #define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_VCC #define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_VCC_VCC #define IS31FL3733_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 111 #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ -#define RGB_DISABLE_WHEN_USB_SUSPENDED -#define RGB_MATRIX_KEYPRESSES -#define RGB_MATRIX_FRAMEBUFFER_EFFECTS - #define RGB_MATRIX_CYCLE_ZONES_ENABLE #define RGB_MATRIX_CAPS_LOCK_INDEX 30 diff --git a/keyboards/drop/alt/v2/info.json b/keyboards/drop/alt/v2/info.json index c234f03090..d0fc31f624 100644 --- a/keyboards/drop/alt/v2/info.json +++ b/keyboards/drop/alt/v2/info.json @@ -106,6 +106,7 @@ "rgb_matrix": { "driver": "is31fl3733", "max_brightness": 191, + "sleep": true, "animations": { "alphas_mods": true, "gradient_up_down": true, diff --git a/keyboards/drop/cstm80/config.h b/keyboards/drop/cstm80/config.h index 2aefadfe30..73f5287f09 100644 --- a/keyboards/drop/cstm80/config.h +++ b/keyboards/drop/cstm80/config.h @@ -9,14 +9,9 @@ #define EXTERNAL_EEPROM_WP_PIN B7 #define EEPROM_I2C_24LC256 -#define DRIVER_ADDR_1 0b1010000 -#define DRIVER_ADDR_2 0b1011111 -#define DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 88 -#define ISSI_PWM_FREQUENCY 0b010 // 26k - -#define RGB_DISABLE_WHEN_USB_SUSPENDED -#define RGB_MATRIX_KEYPRESSES -#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_VCC_VCC +#define IS31FL3733_DRIVER_COUNT 2 +#define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ #define RGB_MATRIX_CAPS_LOCK_INDEX 48 diff --git a/keyboards/drop/cstm80/info.json b/keyboards/drop/cstm80/info.json index 170538027e..12331eb097 100644 --- a/keyboards/drop/cstm80/info.json +++ b/keyboards/drop/cstm80/info.json @@ -128,6 +128,7 @@ }, "rgb_matrix": { "driver": "is31fl3733", + "sleep": true, "animations": { "alphas_mods": true, "gradient_up_down": true, diff --git a/keyboards/drop/ctrl/v2/config.h b/keyboards/drop/ctrl/v2/config.h index d05abc68d3..b1b2f5b396 100644 --- a/keyboards/drop/ctrl/v2/config.h +++ b/keyboards/drop/ctrl/v2/config.h @@ -17,12 +17,7 @@ #define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_VCC #define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_VCC_VCC #define IS31FL3733_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 119 #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ -#define RGB_DISABLE_WHEN_USB_SUSPENDED -#define RGB_MATRIX_KEYPRESSES -#define RGB_MATRIX_FRAMEBUFFER_EFFECTS - #define RGB_MATRIX_CYCLE_ZONES_ENABLE #define RGB_MATRIX_CAPS_LOCK_INDEX 50 diff --git a/keyboards/drop/ctrl/v2/info.json b/keyboards/drop/ctrl/v2/info.json index 11af6a553c..f461800dde 100644 --- a/keyboards/drop/ctrl/v2/info.json +++ b/keyboards/drop/ctrl/v2/info.json @@ -126,6 +126,7 @@ "rgb_matrix": { "driver": "is31fl3733", "max_brightness": 191, + "sleep": true, "animations": { "alphas_mods": true, "gradient_up_down": true, diff --git a/keyboards/drop/sense75/config.h b/keyboards/drop/sense75/config.h index 70e425eb74..a9c604f2ac 100644 --- a/keyboards/drop/sense75/config.h +++ b/keyboards/drop/sense75/config.h @@ -12,12 +12,7 @@ #define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND #define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_VCC_VCC #define IS31FL3733_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 111 #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ -#define RGB_DISABLE_WHEN_USB_SUSPENDED -#define RGB_MATRIX_KEYPRESSES -#define RGB_MATRIX_FRAMEBUFFER_EFFECTS - #define RGB_MATRIX_CYCLE_ZONES_ENABLE #define RGB_MATRIX_CAPS_LOCK_INDEX 62 diff --git a/keyboards/drop/sense75/info.json b/keyboards/drop/sense75/info.json index 2df7b0ae5a..dbefc108f2 100644 --- a/keyboards/drop/sense75/info.json +++ b/keyboards/drop/sense75/info.json @@ -117,6 +117,7 @@ }, "rgb_matrix": { "driver": "is31fl3733", + "sleep": true, "animations": { "alphas_mods": true, "gradient_up_down": true, diff --git a/keyboards/drop/shift/v2/config.h b/keyboards/drop/shift/v2/config.h index dedc55373e..088ccada62 100644 --- a/keyboards/drop/shift/v2/config.h +++ b/keyboards/drop/shift/v2/config.h @@ -18,11 +18,6 @@ #define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_VCC_VCC #define DRIVER_ADDR_3 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_DRIVER_COUNT 3 -#define RGB_MATRIX_LED_COUNT 166 #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ -#define RGB_DISABLE_WHEN_USB_SUSPENDED -#define RGB_MATRIX_KEYPRESSES -#define RGB_MATRIX_FRAMEBUFFER_EFFECTS - #define RGB_MATRIX_CYCLE_ZONES_ENABLE diff --git a/keyboards/drop/shift/v2/info.json b/keyboards/drop/shift/v2/info.json index 3615fdef4f..212263d71c 100644 --- a/keyboards/drop/shift/v2/info.json +++ b/keyboards/drop/shift/v2/info.json @@ -134,6 +134,7 @@ "rgb_matrix": { "driver": "is31fl3733", "max_brightness": 191, + "sleep": true, "animations": { "alphas_mods": true, "gradient_up_down": true, From 288c2313fe3b705a07166971210e91a33bb1add4 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 27 Sep 2023 14:37:06 +1000 Subject: [PATCH 197/496] is31fl3218: Add LED Matrix support (#22126) Co-authored-by: Joel Challis --- builddefs/common_features.mk | 9 +- docs/reference_info_json.md | 2 +- drivers/led/issi/is31fl3218-simple.c | 143 ++++++++++++++++++++++++ drivers/led/issi/is31fl3218-simple.h | 60 ++++++++++ quantum/led_matrix/led_matrix.h | 4 +- quantum/led_matrix/led_matrix_drivers.c | 36 ++++-- 6 files changed, 243 insertions(+), 11 deletions(-) create mode 100644 drivers/led/issi/is31fl3218-simple.c create mode 100644 drivers/led/issi/is31fl3218-simple.h diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index edc6f30d64..c20c8be8bd 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -354,7 +354,7 @@ LED_MATRIX_DRIVER := aw20216s endif LED_MATRIX_ENABLE ?= no -VALID_LED_MATRIX_TYPES := is31fl3731 is31fl3736 is31fl3742a is31fl3743a is31fl3745 is31fl3746a ckled2001 custom +VALID_LED_MATRIX_TYPES := is31fl3218 is31fl3731 is31fl3736 is31fl3742a is31fl3743a is31fl3745 is31fl3746a ckled2001 custom # TODO: is31fl3733 is31fl3737 is31fl3741 ifeq ($(strip $(LED_MATRIX_ENABLE)), yes) @@ -377,6 +377,13 @@ endif SRC += $(LIB_PATH)/lib8tion/lib8tion.c CIE1931_CURVE := yes + ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3218) + OPT_DEFS += -DHAL_USE_I2C=TRUE + COMMON_VPATH += $(DRIVER_PATH)/led/issi + SRC += is31fl3218-simple.c + QUANTUM_LIB_SRC += i2c_master.c + endif + ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3731) OPT_DEFS += -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 3ea85932af..55de09f3c7 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -329,7 +329,7 @@ Configures the [LED Matrix](feature_led_matrix.md) feature. * The centroid (geometric center) of the LEDs. Used for certain effects. * Default: `[112, 32]` * `driver` (Required) - * The driver to use. Must be one of `ckled2001`, `custom`, `is31fl3731`, `is31fl3736`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`. + * The driver to use. Must be one of `ckled2001`, `custom`, `is31fl3218`, `is31fl3731`, `is31fl3736`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`. * `layout` (Required) * List of LED configuration dictionaries. Each dictionary contains: * `flags` (Required) diff --git a/drivers/led/issi/is31fl3218-simple.c b/drivers/led/issi/is31fl3218-simple.c new file mode 100644 index 0000000000..a78dedfcf1 --- /dev/null +++ b/drivers/led/issi/is31fl3218-simple.c @@ -0,0 +1,143 @@ +/* Copyright 2018 Jason Williams (Wilba) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "is31fl3218.h" +#include +#include "i2c_master.h" + +// These are the register addresses +#define IS31FL3218_REG_SHUTDOWN 0x00 +#define IS31FL3218_REG_PWM 0x01 +#define IS31FL3218_REG_CONTROL 0x13 +#define IS31FL3218_REG_UPDATE 0x16 +#define IS31FL3218_REG_RESET 0x17 + +#ifndef IS31FL3218_I2C_TIMEOUT +# define IS31FL3218_I2C_TIMEOUT 100 +#endif + +#ifndef IS31FL3218_I2C_PERSISTENCE +# define IS31FL3218_I2C_PERSISTENCE 0 +#endif + +// Reusable buffer for transfers +uint8_t g_twi_transfer_buffer[20]; + +// IS31FL3218 has 18 PWM outputs and a fixed I2C address, so no chaining. +uint8_t g_pwm_buffer[18]; +bool g_pwm_buffer_update_required = false; + +uint8_t g_led_control_registers[3] = {0}; +bool g_led_control_registers_update_required = false; + +void is31fl3218_write_register(uint8_t reg, uint8_t data) { + g_twi_transfer_buffer[0] = reg; + g_twi_transfer_buffer[1] = data; +#if IS31FL3218_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3218_I2C_PERSISTENCE; i++) { + if (i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, g_twi_transfer_buffer, 2, IS31FL3218_I2C_TIMEOUT) == 0) break; + } +#else + i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, g_twi_transfer_buffer, 2, IS31FL3218_I2C_TIMEOUT); +#endif +} + +void is31fl3218_write_pwm_buffer(uint8_t *pwm_buffer) { + g_twi_transfer_buffer[0] = IS31FL3218_REG_PWM; + memcpy(g_twi_transfer_buffer + 1, pwm_buffer, 18); + +#if IS31FL3218_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3218_I2C_PERSISTENCE; i++) { + i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, g_twi_transfer_buffer, 19, IS31FL3218_I2C_TIMEOUT); + } +#else + i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, g_twi_transfer_buffer, 19, IS31FL3218_I2C_TIMEOUT); +#endif +} + +void is31fl3218_init(void) { + // In case we ever want to reinitialize (?) + is31fl3218_write_register(IS31FL3218_REG_RESET, 0x00); + + // Turn off software shutdown + is31fl3218_write_register(IS31FL3218_REG_SHUTDOWN, 0x01); + + // Set all PWM values to zero + for (uint8_t i = 0; i < 18; i++) { + is31fl3218_write_register(IS31FL3218_REG_PWM + i, 0x00); + } + + // turn off all LEDs in the LED control register + for (uint8_t i = 0; i < 3; i++) { + is31fl3218_write_register(IS31FL3218_REG_CONTROL + i, 0x00); + } + + // Load PWM registers and LED Control register data + is31fl3218_write_register(IS31FL3218_REG_UPDATE, 0x01); +} + +void is31fl3218_set_value(int index, uint8_t value) { + is31fl3218_led_t led; + if (index >= 0 && index < LED_MATRIX_LED_COUNT) { + memcpy_P(&led, (&g_is31fl3218_leds[index]), sizeof(led)); + } + if (g_pwm_buffer[led.v - IS31FL3218_REG_PWM] == value) { + return; + } + g_pwm_buffer[led.v - IS31FL3218_REG_PWM] = value; + g_pwm_buffer_update_required = true; +} + +void is31fl3218_set_value_all(uint8_t value) { + for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { + is31fl3218_set_value(i, value); + } +} + +void is31fl3218_set_led_control_register(uint8_t index, bool value) { + is31fl3218_led_t led; + memcpy_P(&led, (&g_is31fl3218_leds[index]), sizeof(led)); + + uint8_t control_register = (led.v - IS31FL3218_REG_PWM) / 6; + uint8_t bit_value = (led.v - IS31FL3218_REG_PWM) % 6; + + if (value) { + g_led_control_registers[control_register] |= (1 << bit_value); + } else { + g_led_control_registers[control_register] &= ~(1 << bit_value); + } + + g_led_control_registers_update_required = true; +} + +void is31fl3218_update_pwm_buffers(void) { + if (g_pwm_buffer_update_required) { + is31fl3218_write_pwm_buffer(g_pwm_buffer); + // Load PWM registers and LED Control register data + is31fl3218_write_register(IS31FL3218_REG_UPDATE, 0x01); + + g_pwm_buffer_update_required = false; + } +} + +void is31fl3218_update_led_control_registers(void) { + if (g_led_control_registers_update_required) { + for (int i = 0; i < 3; i++) { + is31fl3218_write_register(IS31FL3218_REG_CONTROL + i, g_led_control_registers[i]); + } + + g_led_control_registers_update_required = false; + } +} diff --git a/drivers/led/issi/is31fl3218-simple.h b/drivers/led/issi/is31fl3218-simple.h new file mode 100644 index 0000000000..2260361ec6 --- /dev/null +++ b/drivers/led/issi/is31fl3218-simple.h @@ -0,0 +1,60 @@ +/* Copyright 2018 Jason Williams (Wilba) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include +#include +#include "progmem.h" + +#define IS31FL3218_I2C_ADDRESS 0x54 + +typedef struct is31fl3218_led_t { + uint8_t v; +} __attribute__((packed)) is31fl3218_led_t; + +extern const is31fl3218_led_t PROGMEM g_is31fl3218_leds[LED_MATRIX_LED_COUNT]; + +void is31fl3218_init(void); + +void is31fl3218_set_value(int index, uint8_t value); + +void is31fl3218_set_value_all(uint8_t value); + +void is31fl3218_set_led_control_register(uint8_t index, bool value); + +void is31fl3218_update_pwm_buffers(void); + +void is31fl3218_update_led_control_registers(void); + +#define OUT1 0x01 +#define OUT2 0x02 +#define OUT3 0x03 +#define OUT4 0x04 +#define OUT5 0x05 +#define OUT6 0x06 +#define OUT7 0x07 +#define OUT8 0x08 +#define OUT9 0x09 +#define OUT10 0x0A +#define OUT11 0x0B +#define OUT12 0x0C +#define OUT13 0x0D +#define OUT14 0x0E +#define OUT15 0x0F +#define OUT16 0x10 +#define OUT17 0x11 +#define OUT18 0x12 diff --git a/quantum/led_matrix/led_matrix.h b/quantum/led_matrix/led_matrix.h index 2b41f11bbf..cdc90097bb 100644 --- a/quantum/led_matrix/led_matrix.h +++ b/quantum/led_matrix/led_matrix.h @@ -25,7 +25,9 @@ #include "led_matrix_types.h" #include "keyboard.h" -#ifdef LED_MATRIX_IS31FL3731 +#if defined(LED_MATRIX_IS31FL3218) +# include "is31fl3218-simple.h" +#elif defined(LED_MATRIX_IS31FL3731) # include "is31fl3731-simple.h" #endif #ifdef LED_MATRIX_IS31FL3733 diff --git a/quantum/led_matrix/led_matrix_drivers.c b/quantum/led_matrix/led_matrix_drivers.c index 7ca0c7958f..27c53a223a 100644 --- a/quantum/led_matrix/led_matrix_drivers.c +++ b/quantum/led_matrix/led_matrix_drivers.c @@ -25,13 +25,16 @@ * in their own files. */ -#if defined(LED_MATRIX_IS31FL3731) || defined(LED_MATRIX_IS31FL3733) || defined(LED_MATRIX_IS31FL3736) || defined(IS31FLCOMMON) || defined(LED_MATRIX_CKLED2001) +#if defined(LED_MATRIX_IS31FL3218) || defined(LED_MATRIX_IS31FL3731) || defined(LED_MATRIX_IS31FL3733) || defined(LED_MATRIX_IS31FL3736) || defined(IS31FLCOMMON) || defined(LED_MATRIX_CKLED2001) # include "i2c_master.h" static void init(void) { i2c_init(); -# if defined(LED_MATRIX_IS31FL3731) +# if defined(LED_MATRIX_IS31FL3218) + is31fl3218_init(); + +# elif defined(LED_MATRIX_IS31FL3731) is31fl3731_init(LED_DRIVER_ADDR_1); # if defined(LED_DRIVER_ADDR_2) is31fl3731_init(LED_DRIVER_ADDR_2); @@ -109,7 +112,9 @@ static void init(void) { # endif for (int index = 0; index < LED_MATRIX_LED_COUNT; index++) { -# if defined(LED_MATRIX_IS31FL3731) +# if defined(LED_MATRIX_IS31FL3218) + is31fl3218_set_led_control_register(index, true); +# elif defined(LED_MATRIX_IS31FL3731) is31fl3731_set_led_control_register(index, true); # elif defined(LED_MATRIX_IS31FL3733) is31fl3733_set_led_control_register(index, true); @@ -123,7 +128,10 @@ static void init(void) { } // This actually updates the LED drivers -# if defined(LED_MATRIX_IS31FL3731) +# if defined(LED_MATRIX_IS31FL3218) + is31fl3218_update_led_control_registers(); + +# elif defined(LED_MATRIX_IS31FL3731) is31fl3731_update_led_control_registers(LED_DRIVER_ADDR_1, 0); # if defined(LED_DRIVER_ADDR_2) is31fl3731_update_led_control_registers(LED_DRIVER_ADDR_2, 1); @@ -187,7 +195,19 @@ static void init(void) { # endif } -# if defined(LED_MATRIX_IS31FL3731) +# if defined(LED_MATRIX_IS31FL3218) +static void flush(void) { + is31fl3218_update_pwm_buffers(); +} + +const led_matrix_driver_t led_matrix_driver = { + .init = init, + .flush = flush, + .set_value = is31fl3218_set_value, + .set_value_all = is31fl3218_set_value_all, +}; + +# elif defined(LED_MATRIX_IS31FL3731) static void flush(void) { is31fl3731_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); # if defined(LED_DRIVER_ADDR_2) @@ -202,9 +222,9 @@ static void flush(void) { } const led_matrix_driver_t led_matrix_driver = { - .init = init, - .flush = flush, - .set_value = is31fl3731_set_value, + .init = init, + .flush = flush, + .set_value = is31fl3731_set_value, .set_value_all = is31fl3731_set_value_all, }; From d58f85e09e7e1048beb4ccb6e678adad866f96fb Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 27 Sep 2023 16:11:28 +1000 Subject: [PATCH 198/496] is31fl3733: complete LED Matrix support (#22149) --- builddefs/common_features.mk | 29 +++++++++++++++++----------- docs/reference_info_json.md | 2 +- drivers/led/issi/is31fl3731-simple.c | 27 ++------------------------ drivers/led/issi/is31fl3731.c | 16 +-------------- drivers/led/issi/is31fl3733-simple.c | 13 ++----------- 5 files changed, 24 insertions(+), 63 deletions(-) diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index c20c8be8bd..8be4e40d33 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -354,8 +354,8 @@ LED_MATRIX_DRIVER := aw20216s endif LED_MATRIX_ENABLE ?= no -VALID_LED_MATRIX_TYPES := is31fl3218 is31fl3731 is31fl3736 is31fl3742a is31fl3743a is31fl3745 is31fl3746a ckled2001 custom -# TODO: is31fl3733 is31fl3737 is31fl3741 +VALID_LED_MATRIX_TYPES := is31fl3218 is31fl3731 is31fl3733 is31fl3736 is31fl3742a is31fl3743a is31fl3745 is31fl3746a ckled2001 custom +# TODO: is31fl3737 is31fl3741 ifeq ($(strip $(LED_MATRIX_ENABLE)), yes) ifeq ($(filter $(LED_MATRIX_DRIVER),$(VALID_LED_MATRIX_TYPES)),) @@ -391,6 +391,13 @@ endif QUANTUM_LIB_SRC += i2c_master.c endif + ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3733) + OPT_DEFS += -DHAL_USE_I2C=TRUE + COMMON_VPATH += $(DRIVER_PATH)/led/issi + SRC += is31fl3733-simple.c + QUANTUM_LIB_SRC += i2c_master.c + endif + ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3736) OPT_DEFS += -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi @@ -398,35 +405,35 @@ endif QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3742a) + ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3742a) OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3743a) + ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3743a) OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3745) + ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3745) OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3746a) + ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3746a) OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(LED_MATRIX_DRIVER)), ckled2001) + ifeq ($(strip $(LED_MATRIX_DRIVER)), ckled2001) OPT_DEFS += -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led SRC += ckled2001-simple.c @@ -513,28 +520,28 @@ endif QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3742a) + ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3742a) OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3743a) + ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3743a) OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3745) + ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3745) OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3746a) + ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3746a) OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 55de09f3c7..6a79b11b34 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -329,7 +329,7 @@ Configures the [LED Matrix](feature_led_matrix.md) feature. * The centroid (geometric center) of the LEDs. Used for certain effects. * Default: `[112, 32]` * `driver` (Required) - * The driver to use. Must be one of `ckled2001`, `custom`, `is31fl3218`, `is31fl3731`, `is31fl3736`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`. + * The driver to use. Must be one of `ckled2001`, `custom`, `is31fl3218`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`. * `layout` (Required) * List of LED configuration dictionaries. Each dictionary contains: * `flags` (Required) diff --git a/drivers/led/issi/is31fl3731-simple.c b/drivers/led/issi/is31fl3731-simple.c index 19bbc73d12..5ea4613845 100644 --- a/drivers/led/issi/is31fl3731-simple.c +++ b/drivers/led/issi/is31fl3731-simple.c @@ -61,31 +61,8 @@ uint8_t g_twi_transfer_buffer[20]; uint8_t g_pwm_buffer[IS31FL3731_DRIVER_COUNT][144]; bool g_pwm_buffer_update_required[IS31FL3731_DRIVER_COUNT] = {false}; -/* There's probably a better way to init this... */ -#if IS31FL3731_DRIVER_COUNT == 1 -uint8_t g_led_control_registers[IS31FL3731_DRIVER_COUNT][18] = {{0}}; -#elif IS31FL3731_DRIVER_COUNT == 2 -uint8_t g_led_control_registers[IS31FL3731_DRIVER_COUNT][18] = {{0}, {0}}; -#elif IS31FL3731_DRIVER_COUNT == 3 -uint8_t g_led_control_registers[IS31FL3731_DRIVER_COUNT][18] = {{0}, {0}, {0}}; -#elif IS31FL3731_DRIVER_COUNT == 4 -uint8_t g_led_control_registers[IS31FL3731_DRIVER_COUNT][18] = {{0}, {0}, {0}, {0}}; -#endif -bool g_led_control_registers_update_required[IS31FL3731_DRIVER_COUNT] = {false}; - -// This is the bit pattern in the LED control registers -// (for matrix A, add one to register for matrix B) -// -// reg - b7 b6 b5 b4 b3 b2 b1 b0 -// 0x00 - R08,R07,R06,R05,R04,R03,R02,R01 -// 0x02 - G08,G07,G06,G05,G04,G03,G02,R00 -// 0x04 - B08,B07,B06,B05,B04,B03,G01,G00 -// 0x06 - - , - , - , - , - ,B02,B01,B00 -// 0x08 - - , - , - , - , - , - , - , - -// 0x0A - B17,B16,B15, - , - , - , - , - -// 0x0C - G17,G16,B14,B13,B12,B11,B10,B09 -// 0x0E - R17,G15,G14,G13,G12,G11,G10,G09 -// 0x10 - R16,R15,R14,R13,R12,R11,R10,R09 +uint8_t g_led_control_registers[IS31FL3731_DRIVER_COUNT][18] = {0}; +bool g_led_control_registers_update_required[IS31FL3731_DRIVER_COUNT] = {false}; void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; diff --git a/drivers/led/issi/is31fl3731.c b/drivers/led/issi/is31fl3731.c index 2123438a5f..d6ee5cdd94 100644 --- a/drivers/led/issi/is31fl3731.c +++ b/drivers/led/issi/is31fl3731.c @@ -60,23 +60,9 @@ uint8_t g_twi_transfer_buffer[20]; uint8_t g_pwm_buffer[IS31FL3731_DRIVER_COUNT][144]; bool g_pwm_buffer_update_required[IS31FL3731_DRIVER_COUNT] = {false}; -uint8_t g_led_control_registers[IS31FL3731_DRIVER_COUNT][18] = {{0}}; +uint8_t g_led_control_registers[IS31FL3731_DRIVER_COUNT][18] = {0}; bool g_led_control_registers_update_required[IS31FL3731_DRIVER_COUNT] = {false}; -// This is the bit pattern in the LED control registers -// (for matrix A, add one to register for matrix B) -// -// reg - b7 b6 b5 b4 b3 b2 b1 b0 -// 0x00 - R08,R07,R06,R05,R04,R03,R02,R01 -// 0x02 - G08,G07,G06,G05,G04,G03,G02,R00 -// 0x04 - B08,B07,B06,B05,B04,B03,G01,G00 -// 0x06 - - , - , - , - , - ,B02,B01,B00 -// 0x08 - - , - , - , - , - , - , - , - -// 0x0A - B17,B16,B15, - , - , - , - , - -// 0x0C - G17,G16,B14,B13,B12,B11,B10,B09 -// 0x0E - R17,G15,G14,G13,G12,G11,G10,G09 -// 0x10 - R16,R15,R14,R13,R12,R11,R10,R09 - void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; g_twi_transfer_buffer[1] = data; diff --git a/drivers/led/issi/is31fl3733-simple.c b/drivers/led/issi/is31fl3733-simple.c index 514d9e366d..6f7a8af79c 100644 --- a/drivers/led/issi/is31fl3733-simple.c +++ b/drivers/led/issi/is31fl3733-simple.c @@ -75,17 +75,8 @@ uint8_t g_twi_transfer_buffer[20]; uint8_t g_pwm_buffer[IS31FL3733_DRIVER_COUNT][192]; bool g_pwm_buffer_update_required[IS31FL3733_DRIVER_COUNT] = {false}; -/* There's probably a better way to init this... */ -#if IS31FL3733_DRIVER_COUNT == 1 -uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][24] = {{0}}; -#elif IS31FL3733_DRIVER_COUNT == 2 -uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][24] = {{0}, {0}}; -#elif IS31FL3733_DRIVER_COUNT == 3 -uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][24] = {{0}, {0}, {0}}; -#elif IS31FL3733_DRIVER_COUNT == 4 -uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][24] = {{0}, {0}, {0}, {0}}; -#endif -bool g_led_control_registers_update_required[IS31FL3733_DRIVER_COUNT] = {false}; +uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][24] = {0}; +bool g_led_control_registers_update_required[IS31FL3733_DRIVER_COUNT] = {false}; bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data) { // If the transaction fails function returns false. From da9f894341a20c2e4e293cc2e1bb862785a6ccbf Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 28 Sep 2023 07:59:24 +0100 Subject: [PATCH 199/496] Fix issues with adm42 (#22144) --- keyboards/adm42/config.h | 21 -- keyboards/adm42/info.json | 90 -------- keyboards/adm42/rev4/config.h | 44 ---- keyboards/adm42/rev4/info.json | 163 ++++++++++++++ keyboards/adm42/rev4/keymaps/default/config.h | 2 - keyboards/adm42/rev4/keymaps/default/keymap.c | 204 ------------------ .../adm42/rev4/keymaps/default/keymap.json | 44 ++++ keyboards/adm42/rev4/rev4.c | 39 ---- keyboards/adm42/rev4/rules.mk | 2 +- keyboards/adm42/rules.mk | 16 +- 10 files changed, 209 insertions(+), 416 deletions(-) delete mode 100644 keyboards/adm42/config.h delete mode 100644 keyboards/adm42/info.json delete mode 100644 keyboards/adm42/rev4/config.h create mode 100644 keyboards/adm42/rev4/info.json delete mode 100644 keyboards/adm42/rev4/keymaps/default/config.h delete mode 100644 keyboards/adm42/rev4/keymaps/default/keymap.c create mode 100644 keyboards/adm42/rev4/keymaps/default/keymap.json delete mode 100644 keyboards/adm42/rev4/rev4.c diff --git a/keyboards/adm42/config.h b/keyboards/adm42/config.h deleted file mode 100644 index b5ba2eb94e..0000000000 --- a/keyboards/adm42/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2020-2022 Lorenzo Leonini - * SPDX-License-Identifier: GPL-2.0-only - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#if defined(CONSOLE_ENABLE) - #define DEBUG_MATRIX_SCAN_RATE -#endif diff --git a/keyboards/adm42/info.json b/keyboards/adm42/info.json deleted file mode 100644 index b2bdbc4dad..0000000000 --- a/keyboards/adm42/info.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "keyboard_name": "ADM42", - "manufacturer": "Lorenzo Leonini", - "url": "https://adm42.dev/", - "maintainer": "lleonini", - "debounce": 10, - "usb": { - "vid": "0x04D8", - "pid": "0xE873", - "device_version": "0.0.1" - }, - "ws2812": { - "pin": "B7" - }, - "rgb_matrix": { - "driver": "ws2812", - "sat_steps": 24 - }, - "qmk": { - "tap_keycode_delay": 1 - }, - "build": { - "debounce_type": "sym_eager_pk" - }, - "matrix_pins": { - "cols": ["C6", "B6", "B5", "B4", "D7", "D6", "F0", "F1", "F4", "F5", "F6", "F7"], - "rows": ["C7", "D5", "D3", "D2"] - }, - "diode_direction": "ROW2COL", - "processor": "atmega32u4", - "bootloader": "atmel-dfu", - "layout_aliases": { - "LAYOUT_adm42_3x12_6": "LAYOUT" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.8}, - {"matrix": [0, 1], "x": 1, "y": 0.8}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0.5}, - {"matrix": [0, 5], "x": 5, "y": 0.5}, - - {"matrix": [0, 6], "x": 7.5, "y": 0.5}, - {"matrix": [0, 7], "x": 8.5, "y": 0.5}, - {"matrix": [0, 8], "x": 9.5, "y": 0}, - {"matrix": [0, 9], "x": 10.5, "y": 0}, - {"matrix": [0, 10], "x": 11.5, "y": 0.8}, - {"matrix": [0, 11], "x": 12.5, "y": 0.8}, - - {"matrix": [1, 0], "x": 0, "y": 1.8}, - {"matrix": [1, 1], "x": 1, "y": 1.8}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1.5}, - {"matrix": [1, 5], "x": 5, "y": 1.5}, - - {"matrix": [1, 6], "x": 7.5, "y": 1.5}, - {"matrix": [1, 7], "x": 8.5, "y": 1.5}, - {"matrix": [1, 8], "x": 9.5, "y": 1}, - {"matrix": [1, 9], "x": 10.5, "y": 1}, - {"matrix": [1, 10], "x": 11.5, "y": 1.8}, - {"matrix": [1, 11], "x": 12.5, "y": 1.8}, - - {"matrix": [2, 0], "x": 0, "y": 2.8}, - {"matrix": [2, 1], "x": 1, "y": 2.8}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2.5}, - {"matrix": [2, 5], "x": 5, "y": 2.5}, - - {"matrix": [2, 6], "x": 7.5, "y": 2.5}, - {"matrix": [2, 7], "x": 8.5, "y": 2.5}, - {"matrix": [2, 8], "x": 9.5, "y": 2}, - {"matrix": [2, 9], "x": 10.5, "y": 2}, - {"matrix": [2, 10], "x": 11.5, "y": 2.8}, - {"matrix": [2, 11], "x": 12.5, "y": 2.8}, - - {"matrix": [3, 3], "x": 4.25, "y": 3.55}, - {"matrix": [3, 4], "x": 5.25, "y": 3.65}, - {"matrix": [3, 6], "x": 6.25, "y": 1.875, "h": 1.25}, - - {"matrix": [3, 5], "x": 6.25, "y": 4.05}, - {"matrix": [3, 7], "x": 7.25, "y": 3.65}, - {"matrix": [3, 8], "x": 8.25, "y": 3.55} - ] - } - } -} diff --git a/keyboards/adm42/rev4/config.h b/keyboards/adm42/rev4/config.h deleted file mode 100644 index 5553b18751..0000000000 --- a/keyboards/adm42/rev4/config.h +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright 2020-2022 Lorenzo Leonini - * SPDX-License-Identifier: GPL-2.0-only - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define ADM42_LED E6 - -#define RGB_MATRIX_LED_COUNT 42 -#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 170 -#define RGB_DISABLE_WHEN_USB_SUSPENDED -#define RGB_MATRIX_LED_PROCESS_LIMIT 21 -#define RGB_MATRIX_LED_FLUSH_LIMIT 16 -#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT -#define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 20 -#define RGB_MATRIX_KEYPRESSES -#define RGB_MATRIX_FRAMEBUFFER_EFFECTS - -#define ENABLE_RGB_MATRIX_BREATHING -#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT -#define ENABLE_RGBLIGHT_MODE_STATIC_LIGHT -#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN -#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL -#define ENABLE_RGB_MATRIX_TYPING_HEATMAP -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS -#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN -#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL -#define ENABLE_RGB_MATRIX_PIXEL_RAIN -#define ENABLE_RGB_MATRIX_DIGITAL_RAIN -#define ENABLE_RGB_MATRIX_BAND_VAL -#define ENABLE_RGB_MATRIX_SPLASH diff --git a/keyboards/adm42/rev4/info.json b/keyboards/adm42/rev4/info.json new file mode 100644 index 0000000000..efb0eea029 --- /dev/null +++ b/keyboards/adm42/rev4/info.json @@ -0,0 +1,163 @@ +{ + "keyboard_name": "ADM42", + "manufacturer": "Lorenzo Leonini", + "url": "https://adm42.dev/", + "maintainer": "lleonini", + "debounce": 10, + "usb": { + "vid": "0x04D8", + "pid": "0xE873", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "ws2812": { + "pin": "B7" + }, + "rgb_matrix": { + "driver": "ws2812", + "animations": { + "breathing": true, + "band_val": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_pinwheel": true, + "jellybean_raindrops": true, + "pixel_fractal": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "splash": true + }, + "layout": [ + {"matrix": [3, 6], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 36, "flags": 4}, + {"matrix": [1, 5], "x": 94, "y": 25, "flags": 4}, + {"matrix": [0, 5], "x": 97, "y": 14, "flags": 4}, + {"matrix": [0, 4], "x": 80, "y": 13, "flags": 4}, + {"matrix": [1, 4], "x": 77, "y": 24, "flags": 4}, + {"matrix": [1, 3], "x": 62, "y": 18, "flags": 4}, + {"matrix": [0, 3], "x": 64, "y": 8, "flags": 4}, + {"matrix": [0, 2], "x": 49, "y": 6, "flags": 4}, + {"matrix": [1, 2], "x": 46, "y": 17, "flags": 4}, + {"matrix": [1, 1], "x": 28, "y": 23, "flags": 4}, + {"matrix": [0, 1], "x": 30, "y": 13, "flags": 4}, + {"matrix": [0, 0], "x": 14, "y": 11, "flags": 4}, + {"matrix": [1, 0], "x": 11, "y": 22, "flags": 4}, + {"matrix": [2, 0], "x": 8, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 26, "y": 34, "flags": 4}, + {"matrix": [2, 2], "x": 43, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 61, "y": 29, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 34, "flags": 4}, + {"matrix": [3, 3], "x": 78, "y": 46, "flags": 4}, + {"matrix": [3, 4], "x": 97, "y": 49, "flags": 4}, + {"matrix": [3, 5], "x": 112, "y": 56, "flags": 4}, + {"matrix": [3, 7], "x": 127, "y": 49, "flags": 4}, + {"matrix": [3, 8], "x": 146, "y": 46, "flags": 4}, + {"matrix": [2, 6], "x": 132, "y": 36, "flags": 4}, + {"matrix": [2, 7], "x": 148, "y": 34, "flags": 4}, + {"matrix": [2, 8], "x": 164, "y": 29, "flags": 4}, + {"matrix": [2, 9], "x": 180, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 198, "y": 34, "flags": 4}, + {"matrix": [2, 11], "x": 215, "y": 32, "flags": 4}, + {"matrix": [1, 11], "x": 212, "y": 22, "flags": 4}, + {"matrix": [1, 10], "x": 196, "y": 23, "flags": 4}, + {"matrix": [1, 9], "x": 178, "y": 17, "flags": 4}, + {"matrix": [1, 8], "x": 161, "y": 18, "flags": 4}, + {"matrix": [1, 7], "x": 146, "y": 24, "flags": 4}, + {"matrix": [1, 6], "x": 130, "y": 25, "flags": 4}, + {"matrix": [0, 6], "x": 126, "y": 14, "flags": 4}, + {"matrix": [0, 7], "x": 143, "y": 13, "flags": 4}, + {"matrix": [0, 8], "x": 159, "y": 8, "flags": 4}, + {"matrix": [0, 9], "x": 175, "y": 6, "flags": 4}, + {"matrix": [0, 10], "x": 194, "y": 13, "flags": 4}, + {"matrix": [0, 11], "x": 210, "y": 11, "flags": 4} + ], + "led_flush_limit": 16, + "led_process_limit": 21, + "max_brightness": 170, + "sat_steps": 24, + "sleep": true + }, + "qmk": { + "tap_keycode_delay": 1 + }, + "build": { + "debounce_type": "sym_eager_pk", + "lto": true + }, + "matrix_pins": { + "cols": ["C6", "B6", "B5", "B4", "D7", "D6", "F0", "F1", "F4", "F5", "F6", "F7"], + "rows": ["C7", "D5", "D3", "D2"] + }, + "diode_direction": "ROW2COL", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "layout_aliases": { + "LAYOUT_adm42_3x12_6": "LAYOUT" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.8}, + {"matrix": [0, 1], "x": 1, "y": 0.8}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.5}, + {"matrix": [0, 5], "x": 5, "y": 0.5}, + + {"matrix": [0, 6], "x": 7.5, "y": 0.5}, + {"matrix": [0, 7], "x": 8.5, "y": 0.5}, + {"matrix": [0, 8], "x": 9.5, "y": 0}, + {"matrix": [0, 9], "x": 10.5, "y": 0}, + {"matrix": [0, 10], "x": 11.5, "y": 0.8}, + {"matrix": [0, 11], "x": 12.5, "y": 0.8}, + + {"matrix": [1, 0], "x": 0, "y": 1.8}, + {"matrix": [1, 1], "x": 1, "y": 1.8}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + + {"matrix": [1, 6], "x": 7.5, "y": 1.5}, + {"matrix": [1, 7], "x": 8.5, "y": 1.5}, + {"matrix": [1, 8], "x": 9.5, "y": 1}, + {"matrix": [1, 9], "x": 10.5, "y": 1}, + {"matrix": [1, 10], "x": 11.5, "y": 1.8}, + {"matrix": [1, 11], "x": 12.5, "y": 1.8}, + + {"matrix": [2, 0], "x": 0, "y": 2.8}, + {"matrix": [2, 1], "x": 1, "y": 2.8}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.5}, + {"matrix": [2, 5], "x": 5, "y": 2.5}, + + {"matrix": [2, 6], "x": 7.5, "y": 2.5}, + {"matrix": [2, 7], "x": 8.5, "y": 2.5}, + {"matrix": [2, 8], "x": 9.5, "y": 2}, + {"matrix": [2, 9], "x": 10.5, "y": 2}, + {"matrix": [2, 10], "x": 11.5, "y": 2.8}, + {"matrix": [2, 11], "x": 12.5, "y": 2.8}, + + {"matrix": [3, 3], "x": 4.25, "y": 3.55}, + {"matrix": [3, 4], "x": 5.25, "y": 3.65}, + {"matrix": [3, 6], "x": 6.25, "y": 1.875, "h": 1.25}, + + {"matrix": [3, 5], "x": 6.25, "y": 4.05}, + {"matrix": [3, 7], "x": 7.25, "y": 3.65}, + {"matrix": [3, 8], "x": 8.25, "y": 3.55} + ] + } + } +} diff --git a/keyboards/adm42/rev4/keymaps/default/config.h b/keyboards/adm42/rev4/keymaps/default/config.h deleted file mode 100644 index abfaf9af78..0000000000 --- a/keyboards/adm42/rev4/keymaps/default/config.h +++ /dev/null @@ -1,2 +0,0 @@ -#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY -#define QUICK_TAP_TERM_PER_KEY diff --git a/keyboards/adm42/rev4/keymaps/default/keymap.c b/keyboards/adm42/rev4/keymaps/default/keymap.c deleted file mode 100644 index 12e4e85a4a..0000000000 --- a/keyboards/adm42/rev4/keymaps/default/keymap.c +++ /dev/null @@ -1,204 +0,0 @@ -/* Copyright 2020-2022 Lorenzo Leonini - * SPDX-License-Identifier: GPL-2.0-only - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -enum custom_layers { - _QWERTY, - _COLEMAKDH, - _SPECIAL, - _EXTRA, - _ADM, - _SETUP, -}; - -#define LW_GRV LWIN_T(KC_GRV) -#define RW_EQU RWIN_T(KC_EQUAL) -#define RW_BS RWIN_T(KC_BSLS) -#define LC_TAB LCTL_T(KC_TAB) -#define RC_QUT RCTL_T(KC_QUOT) -#define LS_BPC LSFT_T(KC_BSPC) -#define RS_SPC RSFT_T(KC_SPC) -#define LA_BS LALT_T(KC_BSLS) -#define LW_F11 LWIN_T(KC_F11) -#define LC_APP LCTL_T(KC_APP) -#define LA_TOG LALT_T(RGB_TOG) -#define RW_F12 RWIN_T(KC_F12) - -#define LLS_ESC LT(_SPECIAL, KC_ESC) -#define LLS_RALT LT(_SPECIAL, KC_RALT) -#define LLE_ENT LT(_EXTRA, KC_ENT) -#define LLA_DEL LT(_ADM, KC_DEL) -#define SETUP MO(_SETUP) - -enum custom_keycodes { - REFLASH = SAFE_RANGE, - LC_CIRC, - RC_DLR, - DF_QWER, - DF_COLE, -}; - -// Not a mistake to have KC_LALT (also) on the right, RALT is kept for compose (LLS_RALT) -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT( - LW_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, RW_EQU, - LC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, RC_QUT, - KC_LALT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LALT, - LLS_ESC, LS_BPC, LLA_DEL, LLE_ENT, RS_SPC, LLS_RALT - ), - [_COLEMAKDH] = LAYOUT( - LW_GRV, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, RW_EQU, - LC_TAB, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, RC_QUT, - KC_LALT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_LALT, - LLS_ESC, LS_BPC, LLA_DEL, LLE_ENT, RS_SPC, LLS_RALT - ), - - [_SPECIAL] = LAYOUT( - _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, RW_BS, - LC_CIRC, KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_EXLM, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_MINS, RC_DLR, - _______, KC_AMPR, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_UNDS, KC_ASTR, KC_HASH, KC_PERC, KC_TILD, _______, - KC_ESC, _______, KC_DEL, KC_ENT, _______, KC_RALT - ), - [_EXTRA] = LAYOUT( - LW_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RW_F12, - KC_LCTL, KC_PAUS, KC_INS, KC_VOLD, KC_VOLU, KC_MUTE, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_APP, KC_RCTL, - _______, KC_SLEP, KC_PWR, KC_MSTP, KC_MNXT, KC_MPLY, _______, KC_BRID, KC_BRIU, KC_PSCR, KC_WAKE, _______, - KC_CAPS, _______, _______, _______, _______, KC_CAPS - ), - [_ADM] = LAYOUT( - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_M_B, RGB_VAD, RGB_VAI, RGB_SAD, RGB_SAI, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUD, RGB_HUI, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_M_P, RGB_SPD, RGB_SPI, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, SETUP, XXXXXXX, XXXXXXX - ), - [_SETUP] = LAYOUT( - REFLASH, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, DF_QWER, DF_COLE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX - ), -}; - -bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) { - // Special if-condition outside the switch because `RC_QUT` overlaps with - // the `QK_MOD_TAP ... QK_MOD_TAP_MAX` range. - if (keycode == RC_QUT) { - return false; - } - switch (keycode) { - case QK_MOD_TAP ... QK_MOD_TAP_MAX: - case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: - return true; - default: - return false; - } -} - -uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case LLS_ESC: - case LLS_RALT: - return 0; - default: - return QUICK_TAP_TERM; - } -} - -static uint16_t last_timer = 0; -static int last_key = 0; -bool cleanup_return(uint16_t keycode, keyrecord_t *record, bool value) { - if (record->event.pressed) { - last_key = keycode; - last_timer = timer_read(); - } - return value; -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - -#ifdef CONSOLE_ENABLE - uprintf("KL: kc: 0x%04X, col: %u, row: %u, pressed: %b, time: %u, interrupt: %b, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count); -#endif - - switch (keycode) { - - case RC_DLR: - if (record->event.pressed) { - register_code(KC_RCTL); - } else { - unregister_code(KC_RCTL); - if (last_key == keycode && timer_elapsed(last_timer) <= TAPPING_TERM) { - send_string("$"); - } - } - return cleanup_return(keycode, record, false); - - case LC_CIRC: - if (record->event.pressed) { - register_code(KC_LCTL); - } else { - unregister_code(KC_LCTL); - if (last_key == keycode && timer_elapsed(last_timer) <= TAPPING_TERM) { - send_string("^"); - } - } - return cleanup_return(keycode, record, false); - - case DF_QWER: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - send_string("QWERTY layout"); - } - return false; - case DF_COLE: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAKDH); - send_string("COLEMAKDH layout"); - } - return false; - - case REFLASH: - eeconfig_init(); - eeconfig_update_rgb_matrix_default(); - writePinLow(ADM42_LED); - reset_keyboard(); - return false; - - default: - return cleanup_return(keycode, record, true); - } -} - -void keyboard_pre_init_kb(void) { - setPinOutput(ADM42_LED); - writePinHigh(ADM42_LED); -} - -void keyboard_post_init_kb(void) { - debug_enable = true; - debug_matrix = false; - debug_keyboard = false; - writePinHigh(ADM42_LED); -} - -void suspend_power_down_kb(void) { - writePinLow(ADM42_LED); -} - -void suspend_wakeup_init_kb(void) { - writePinHigh(ADM42_LED); -} diff --git a/keyboards/adm42/rev4/keymaps/default/keymap.json b/keyboards/adm42/rev4/keymaps/default/keymap.json new file mode 100644 index 0000000000..72eb7d50de --- /dev/null +++ b/keyboards/adm42/rev4/keymaps/default/keymap.json @@ -0,0 +1,44 @@ +{ + "keyboard": "adm42/rev4", + "keymap": "default", + "commit": "3bf01bb9ed202b14f78105db2aa2a75d01fc4323", + "layout": "LAYOUT", + "layers": [ + [ + "LWIN_T(KC_GRV)", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "RWIN_T(KC_EQL)", + "LCTL_T(KC_TAB)", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "RCTL_T(KC_QUOT)", + "KC_LALT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_LALT", + "LT(2,KC_ESC)", "LSFT_T(KC_BSPC)", "LT(4,KC_DEL)", "LT(3,KC_ENT)", "RSFT_T(KC_SPC)", "LT(2,KC_RALT)" + ], + [ + "LWIN_T(KC_GRV)", "KC_Q", "KC_W", "KC_F", "KC_P", "KC_B", "KC_J", "KC_L", "KC_U", "KC_Y", "KC_SCLN", "RWIN_T(KC_EQL)", + "LCTL_T(KC_TAB)", "KC_A", "KC_R", "KC_S", "KC_T", "KC_G", "KC_M", "KC_N", "KC_E", "KC_I", "KC_O", "RCTL_T(KC_QUOT)", + "KC_LALT", "KC_Z", "KC_X", "KC_C", "KC_D", "KC_V", "KC_K", "KC_H", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_LALT", + "LT(2,KC_ESC)", "LSFT_T(KC_BSPC)", "LT(4,KC_DEL)", "LT(3,KC_ENT)", "RSFT_T(KC_SPC)", "LT(2,KC_RALT)" + ], + [ + "_______", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "RWIN_T(KC_BSLS)", + "KC_LCTL", "KC_LBRC", "KC_RBRC", "KC_LPRN", "KC_RPRN", "KC_EXLM", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RGHT", "KC_MINS", "KC_RCTL", + "_______", "KC_AMPR", "KC_AT", "KC_LCBR", "KC_RCBR", "KC_PIPE", "KC_UNDS", "KC_ASTR", "KC_HASH", "KC_PERC", "KC_TILD", "_______", + "KC_ESC", "_______", "KC_DEL", "KC_ENT", "_______", "KC_RALT" + ], + [ + "LWIN_T(KC_F11)", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "RWIN_T(KC_F12)", + "KC_LCTL", "KC_PAUS", "KC_INS", "KC_VOLD", "KC_VOLU", "KC_MUTE", "KC_HOME", "KC_PGDN", "KC_PGUP", "KC_END", "KC_APP", "KC_RCTL", + "_______", "KC_SLEP", "KC_PWR", "KC_MSTP", "KC_MNXT", "KC_MPLY", "_______", "KC_BRID", "KC_BRIU", "KC_PSCR", "KC_WAKE", "_______", + "KC_CAPS", "_______", "_______", "_______", "_______", "KC_CAPS" + ], + [ + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_M_B", "RGB_VAD", "RGB_VAI", "RGB_SAD", "RGB_SAI", "XXXXXXX", + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_TOG", "RGB_MOD", "RGB_RMOD", "RGB_HUD", "RGB_HUI", "XXXXXXX", + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_M_P", "RGB_SPD", "RGB_SPI", "XXXXXXX", "XXXXXXX", "XXXXXXX", + "XXXXXXX", "XXXXXXX", "XXXXXXX", "MO(5)", "XXXXXXX", "XXXXXXX" + ], + [ + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", + "XXXXXXX", "DF(0)", "DF(1)", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "EE_CLR", + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX" + ] + ] +} \ No newline at end of file diff --git a/keyboards/adm42/rev4/rev4.c b/keyboards/adm42/rev4/rev4.c deleted file mode 100644 index 623b5cb5a3..0000000000 --- a/keyboards/adm42/rev4/rev4.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright 2020-2022 Lorenzo Leonini - * SPDX-License-Identifier: GPL-2.0-only - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "quantum.h" - -led_config_t g_led_config = { - { - {12, 11, 8, 7, 4, 3, 36, 37, 38, 39, 40, 41}, - {13, 10, 9, 6, 5, 2, 35, 34, 33, 32, 31, 30}, - {14, 15, 16, 17, 18, 1, 24, 25, 26, 27, 28, 29}, - {NO_LED, NO_LED, NO_LED, 19, 20, 21, 0, 22, 23, NO_LED, NO_LED, NO_LED} - }, { - {112, 32}, {92, 36}, {94, 25}, {97, 14}, {80, 13}, {77, 24}, - {62, 18}, {64, 8}, {49, 6}, {46, 17}, {28, 23}, {30, 13}, - {14, 11}, {11, 22}, {8, 32}, {26, 34}, {43, 28}, {61, 29}, - {76, 34}, {78, 46}, {97, 49}, {112, 56}, {127, 49}, {146, 46}, - {132, 36}, {148, 34}, {164, 29}, {180, 28}, {198, 34}, {215, 32}, - {212, 22}, {196, 23}, {178, 17}, {161, 18}, {146, 24}, {130, 25}, - {126, 14}, {143, 13}, {159, 8}, {175, 6}, {194, 13}, {210, 11} - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4 - } -}; diff --git a/keyboards/adm42/rev4/rules.mk b/keyboards/adm42/rev4/rules.mk index aad92997d0..6e7633bfe0 100644 --- a/keyboards/adm42/rev4/rules.mk +++ b/keyboards/adm42/rev4/rules.mk @@ -1 +1 @@ -RGB_MATRIX_ENABLE = yes +# This file intentionally left blank diff --git a/keyboards/adm42/rules.mk b/keyboards/adm42/rules.mk index a2402f19a9..06fc88e9f6 100644 --- a/keyboards/adm42/rules.mk +++ b/keyboards/adm42/rules.mk @@ -1,15 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -LTO_ENABLE = yes - -DEFAULT_FOLDER = adm42/rev4 +DEFAULT_FOLDER = adm42/rev4 \ No newline at end of file From fb0c64a567b6dd2536aae0c2df56a915ffa72404 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Thu, 28 Sep 2023 20:48:58 +1000 Subject: [PATCH 200/496] Allow inline generation of compile_commands.json while doing a `qmk compile`, using `--compiledb` (#21549) --- lib/python/qmk/cli/compile.py | 16 +++++ .../qmk/cli/generate/compilation_database.py | 63 ++++++++++--------- 2 files changed, 48 insertions(+), 31 deletions(-) diff --git a/lib/python/qmk/cli/compile.py b/lib/python/qmk/cli/compile.py index 3d632e74a9..2478ea1fed 100755 --- a/lib/python/qmk/cli/compile.py +++ b/lib/python/qmk/cli/compile.py @@ -7,10 +7,12 @@ from argcomplete.completers import FilesCompleter from milc import cli import qmk.path +from qmk.constants import QMK_FIRMWARE from qmk.decorators import automagic_keyboard, automagic_keymap from qmk.commands import compile_configurator_json, create_make_command, parse_configurator_json, build_environment from qmk.keyboard import keyboard_completer, keyboard_folder_or_all, is_all_keyboards from qmk.keymap import keymap_completer, locate_keymap +from qmk.cli.generate.compilation_database import write_compilation_database def _is_keymap_target(keyboard, keymap): @@ -30,6 +32,7 @@ def _is_keymap_target(keyboard, keymap): @cli.argument('-j', '--parallel', type=int, default=1, help="Set the number of parallel make jobs; 0 means unlimited.") @cli.argument('-e', '--env', arg_only=True, action='append', default=[], help="Set a variable to be passed to make. May be passed multiple times.") @cli.argument('-c', '--clean', arg_only=True, action='store_true', help="Remove object files before compiling.") +@cli.argument('--compiledb', arg_only=True, action='store_true', help="Generates the clang compile_commands.json file during build. Implies --clean.") @cli.subcommand('Compile a QMK Firmware.') @automagic_keyboard @automagic_keymap @@ -53,6 +56,9 @@ def compile(cli): # Determine the compile command commands = [] + current_keyboard = None + current_keymap = None + if cli.args.filename: # If a configurator JSON was provided generate a keymap and compile it user_keymap = parse_configurator_json(cli.args.filename) @@ -69,11 +75,21 @@ def compile(cli): commands.append(create_make_command(cli.config.compile.keyboard, cli.config.compile.keymap, 'clean', **envs)) commands.append(create_make_command(cli.config.compile.keyboard, cli.config.compile.keymap, parallel=cli.config.compile.parallel, **envs)) + current_keyboard = cli.config.compile.keyboard + current_keymap = cli.config.compile.keymap + if not commands: cli.log.error('You must supply a configurator export, both `--keyboard` and `--keymap`, or be in a directory for a keyboard or keymap.') cli.print_help() return False + if cli.args.compiledb: + if current_keyboard is None or current_keymap is None: + cli.log.error('You must supply both `--keyboard` and `--keymap` or be in a directory with a keymap to generate a compile_commands.json file.') + cli.print_help() + return False + write_compilation_database(current_keyboard, current_keymap, QMK_FIRMWARE / 'compile_commands.json') + cli.log.info('Compiling keymap with {fg_cyan}%s', ' '.join(commands[-1])) if not cli.args.dry_run: cli.echo('\n') diff --git a/lib/python/qmk/cli/generate/compilation_database.py b/lib/python/qmk/cli/generate/compilation_database.py index 5e1a18a69b..9e5c266516 100755 --- a/lib/python/qmk/cli/generate/compilation_database.py +++ b/lib/python/qmk/cli/generate/compilation_database.py @@ -76,33 +76,9 @@ def parse_make_n(f: Iterator[str]) -> List[Dict[str, str]]: return records -@cli.argument('-kb', '--keyboard', type=keyboard_folder, completer=keyboard_completer, help='The keyboard\'s name') -@cli.argument('-km', '--keymap', completer=keymap_completer, help='The keymap\'s name') -@cli.subcommand('Create a compilation database.') -@automagic_keyboard -@automagic_keymap -def generate_compilation_database(cli: MILC) -> Union[bool, int]: - """Creates a compilation database for the given keyboard build. - - Does a make clean, then a make -n for this target and uses the dry-run output to create - a compilation database (compile_commands.json). This file can help some IDEs and - IDE-like editors work better. For more information about this: - - https://clang.llvm.org/docs/JSONCompilationDatabase.html - """ - command = None - # check both config domains: the magic decorator fills in `generate_compilation_database` but the user is - # more likely to have set `compile` in their config file. - current_keyboard = cli.config.generate_compilation_database.keyboard or cli.config.user.keyboard - current_keymap = cli.config.generate_compilation_database.keymap or cli.config.user.keymap - - if current_keyboard and current_keymap: - # Generate the make command for a specific keyboard/keymap. - command = create_make_command(current_keyboard, current_keymap, dry_run=True) - elif not current_keyboard: - cli.log.error('Could not determine keyboard!') - elif not current_keymap: - cli.log.error('Could not determine keymap!') +def write_compilation_database(keyboard: str, keymap: str, output_path: Path) -> bool: + # Generate the make command for a specific keyboard/keymap. + command = create_make_command(keyboard, keymap, dry_run=True) if not command: cli.log.error('You must supply both `--keyboard` and `--keymap`, or be in a directory for a keyboard or keymap.') @@ -128,9 +104,34 @@ def generate_compilation_database(cli: MILC) -> Union[bool, int]: cli.log.info("Found %s compile commands", len(db)) - dbpath = QMK_FIRMWARE / 'compile_commands.json' - - cli.log.info(f"Writing build database to {dbpath}") - dbpath.write_text(json.dumps(db, indent=4)) + cli.log.info(f"Writing build database to {output_path}") + output_path.write_text(json.dumps(db, indent=4)) return True + + +@cli.argument('-kb', '--keyboard', type=keyboard_folder, completer=keyboard_completer, help='The keyboard\'s name') +@cli.argument('-km', '--keymap', completer=keymap_completer, help='The keymap\'s name') +@cli.subcommand('Create a compilation database.') +@automagic_keyboard +@automagic_keymap +def generate_compilation_database(cli: MILC) -> Union[bool, int]: + """Creates a compilation database for the given keyboard build. + + Does a make clean, then a make -n for this target and uses the dry-run output to create + a compilation database (compile_commands.json). This file can help some IDEs and + IDE-like editors work better. For more information about this: + + https://clang.llvm.org/docs/JSONCompilationDatabase.html + """ + # check both config domains: the magic decorator fills in `generate_compilation_database` but the user is + # more likely to have set `compile` in their config file. + current_keyboard = cli.config.generate_compilation_database.keyboard or cli.config.user.keyboard + current_keymap = cli.config.generate_compilation_database.keymap or cli.config.user.keymap + + if not current_keyboard: + cli.log.error('Could not determine keyboard!') + elif not current_keymap: + cli.log.error('Could not determine keymap!') + + return write_compilation_database(current_keyboard, current_keymap, QMK_FIRMWARE / 'compile_commands.json') From 346b06d391dbc760d753a5cffcbbcb58ecc9ce95 Mon Sep 17 00:00:00 2001 From: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Date: Thu, 28 Sep 2023 06:51:18 -0400 Subject: [PATCH 201/496] refactor: move default RGB/LED matrix #defines (#21938) * refactor: move default RGB/LED matrix #defines Moving the fallback definitions of macros like LED_MATRIX_VAL_STEP and RGB_MATRIX_MAXIMUM_BRIGHTNESS to header files allows keyboards to leverage these defaults without requiring #ifdef guards (and often repeating said fallback definitions). * style: use if(n)def for consistency and remove redundant UINT8_MAX checks on maximum brightness Co-authored-by: Joel Challis * refactor: remove INDICATOR_MAX_BRIGHTNESS macro Co-authored-by: Joel Challis --------- Co-authored-by: Joel Challis --- .../ergodox_infinity/ergodox_infinity.c | 3 -- keyboards/input_club/k_type/k_type.c | 3 -- keyboards/input_club/whitefox/whitefox.c | 3 -- keyboards/kbdfans/kbd67/mkiirgb/v3/info.json | 3 +- keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c | 8 +-- .../native/ansi/keymaps/default/keymap.c | 6 +-- .../native/ansi/keymaps/perfmode/keymap.c | 6 +-- .../teleport/native/ansi/keymaps/via/keymap.c | 6 +-- keyboards/teleport/native/config.h | 7 --- .../native/iso/keymaps/default/keymap.c | 6 +-- .../native/iso/keymaps/perfmode/keymap.c | 6 +-- .../teleport/native/iso/keymaps/via/keymap.c | 6 +-- keyboards/zykrah/fuyu/keymaps/via/keymap.c | 8 +-- quantum/led_matrix/led_matrix.c | 31 +---------- quantum/led_matrix/led_matrix.h | 28 ++++++++++ quantum/rgb_matrix/rgb_matrix.c | 52 +------------------ quantum/rgb_matrix/rgb_matrix.h | 49 +++++++++++++++++ quantum/via.c | 10 ---- 18 files changed, 103 insertions(+), 138 deletions(-) diff --git a/keyboards/input_club/ergodox_infinity/ergodox_infinity.c b/keyboards/input_club/ergodox_infinity/ergodox_infinity.c index b8f0d4ae13..70cd26a3f3 100644 --- a/keyboards/input_club/ergodox_infinity/ergodox_infinity.c +++ b/keyboards/input_club/ergodox_infinity/ergodox_infinity.c @@ -117,9 +117,6 @@ void matrix_init_kb(void) { * Since K20x is stuck with a 32 byte EEPROM (see tmk_core/common/chibios/eeprom_teensy.c), * and neither led_matrix_eeconfig.speed or .flags fit in this boundary, just force their values to default on boot. */ -# if !defined(LED_MATRIX_DEFAULT_SPD) -# define LED_MATRIX_DEFAULT_SPD UINT8_MAX / 2 -# endif led_matrix_set_speed(LED_MATRIX_DEFAULT_SPD); led_matrix_set_flags(LED_FLAG_ALL); #endif diff --git a/keyboards/input_club/k_type/k_type.c b/keyboards/input_club/k_type/k_type.c index dc1ca9dc25..0d0b763b20 100644 --- a/keyboards/input_club/k_type/k_type.c +++ b/keyboards/input_club/k_type/k_type.c @@ -217,9 +217,6 @@ void matrix_init_kb(void) { * Since K20x is stuck with a 32 byte EEPROM (see tmk_core/common/chibios/eeprom_teensy.c), * and neither led_matrix_eeconfig.speed or .flags fit in this boundary, just force their values to default on boot. */ -# if !defined(RGB_MATRIX_DEFAULT_SPD) -# define RGB_MATRIX_DEFAULT_SPD UINT8_MAX / 2 -# endif rgb_matrix_set_speed(RGB_MATRIX_DEFAULT_SPD), rgb_matrix_set_flags(LED_FLAG_ALL); diff --git a/keyboards/input_club/whitefox/whitefox.c b/keyboards/input_club/whitefox/whitefox.c index 4aa12586f3..b0f0f03776 100644 --- a/keyboards/input_club/whitefox/whitefox.c +++ b/keyboards/input_club/whitefox/whitefox.c @@ -83,9 +83,6 @@ void matrix_init_kb(void) { * Since K20x is stuck with a 32 byte EEPROM (see tmk_core/common/chibios/eeprom_teensy.c), * and neither led_matrix_eeconfig.speed or .flags fit in this boundary, just force their values to default on boot. */ -# if !defined(LED_MATRIX_DEFAULT_SPD) -# define LED_MATRIX_DEFAULT_SPD UINT8_MAX / 2 -# endif led_matrix_set_speed(LED_MATRIX_DEFAULT_SPD), led_matrix_set_flags(LED_FLAG_ALL); #endif diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/info.json b/keyboards/kbdfans/kbd67/mkiirgb/v3/info.json index 165db96293..284461c2a7 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v3/info.json +++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/info.json @@ -5,7 +5,8 @@ "device_version": "0.0.3" }, "rgb_matrix": { - "driver": "is31fl3741" + "driver": "is31fl3741", + "val_steps": 8 }, "matrix_pins": { "cols": ["F7", "F6", "F5", "C7", "B0", "B1", "B2", "B3", "B4", "D7", "D6", "D4", "D5", "D3", "D2"], diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c b/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c index 4329893ac1..c0f892980e 100755 --- a/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c @@ -125,16 +125,12 @@ led_config_t g_led_config = { { #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) -#ifdef RGB_MATRIX_MAXIMUM_BRIGHTNESS +#if !defined(CAPS_LOCK_MAX_BRIGHTNESS) #define CAPS_LOCK_MAX_BRIGHTNESS RGB_MATRIX_MAXIMUM_BRIGHTNESS -#else - #define CAPS_LOCK_MAX_BRIGHTNESS 0xFF #endif -#ifdef RGB_MATRIX_VAL_STEP +#if !defined(CAPS_LOCK_VAL_STEP) #define CAPS_LOCK_VAL_STEP RGB_MATRIX_VAL_STEP -#else - #define CAPS_LOCK_VAL_STEP 8 #endif bool rgb_matrix_indicators_kb(void) { diff --git a/keyboards/teleport/native/ansi/keymaps/default/keymap.c b/keyboards/teleport/native/ansi/keymaps/default/keymap.c index fcea5c41f3..2780fdda7d 100644 --- a/keyboards/teleport/native/ansi/keymaps/default/keymap.c +++ b/keyboards/teleport/native/ansi/keymaps/default/keymap.c @@ -53,11 +53,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* RGB matrix indicator code It reads the current matrix color, offsets the hue by 30, -and sets val to either 255 or, if defined, RGB_MATRIX_MAXIMUM_BRIGHTNESS +and sets val to RGB_MATRIX_MAXIMUM_BRIGHTNESS (by default, 255) This is applied to both caps lock, and other indicator keys for layer 1 */ bool rgb_matrix_indicators_user(void) { - HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS}; + HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS}; RGB rgb_ind = hsv_to_rgb(hsv_ind); /* Sets Caps to different color as indicator. If RGB mode is rain, and caps indicator is off, the LED will always be off. @@ -70,7 +70,7 @@ bool rgb_matrix_indicators_user(void) { /* Sets W, A, S, D, LGUI to a different color as layer indicator */ if(IS_LAYER_ON(1)) { - HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS}; + HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS}; RGB rgb_ind = hsv_to_rgb(hsv_ind); rgb_matrix_set_color(W_LED_INDEX, rgb_ind.r, rgb_ind.g, rgb_ind.b); diff --git a/keyboards/teleport/native/ansi/keymaps/perfmode/keymap.c b/keyboards/teleport/native/ansi/keymaps/perfmode/keymap.c index 1a7852a062..ab598dd5e6 100644 --- a/keyboards/teleport/native/ansi/keymaps/perfmode/keymap.c +++ b/keyboards/teleport/native/ansi/keymaps/perfmode/keymap.c @@ -144,13 +144,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* RGB matrix indicator code It reads the current matrix color, offsets the hue by 30, -and sets val to either 255 or, if defined, RGB_MATRIX_MAXIMUM_BRIGHTNESS +and sets val to RGB_MATRIX_MAXIMUM_BRIGHTNESS (by default, 255) This is applied to both caps lock, and other indicator keys for layer 1 */ bool rgb_matrix_indicators_user(void) { /* Layer 2 (perf mode on this keymap) is not supposed to have LED refreshes, hence excluded */ if (!IS_LAYER_ON(2)) { - HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS}; + HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS}; RGB rgb_ind = hsv_to_rgb(hsv_ind); /* Sets Caps to different color as indicator. If RGB mode is rain, and caps indicator is off, the LED will always be off. @@ -163,7 +163,7 @@ bool rgb_matrix_indicators_user(void) { /* Sets W, A, S, D, LGUI to a different color as layer indicator */ if(IS_LAYER_ON(1)) { - HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS}; + HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS}; RGB rgb_ind = hsv_to_rgb(hsv_ind); rgb_matrix_set_color(W_LED_INDEX, rgb_ind.r, rgb_ind.g, rgb_ind.b); diff --git a/keyboards/teleport/native/ansi/keymaps/via/keymap.c b/keyboards/teleport/native/ansi/keymaps/via/keymap.c index e1fbd285ec..95a5bc58b1 100644 --- a/keyboards/teleport/native/ansi/keymaps/via/keymap.c +++ b/keyboards/teleport/native/ansi/keymaps/via/keymap.c @@ -53,11 +53,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* RGB matrix indicator code It reads the current matrix color, offsets the hue by 30, -and sets val to either 255 or, if defined, RGB_MATRIX_MAXIMUM_BRIGHTNESS +and sets val to RGB_MATRIX_MAXIMUM_BRIGHTNESS (by default, 255) This is applied to both caps lock, and other indicator keys for layer 1 */ bool rgb_matrix_indicators_user(void) { - HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS}; + HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS}; RGB rgb_ind = hsv_to_rgb(hsv_ind); /* Sets Caps to different color as indicator. If RGB mode is rain, and caps indicator is off, the LED will always be off. @@ -70,7 +70,7 @@ bool rgb_matrix_indicators_user(void) { /* Sets W, A, S, D, LGUI to a different color as layer indicator */ if(IS_LAYER_ON(1)) { - HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS}; + HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS}; RGB rgb_ind = hsv_to_rgb(hsv_ind); rgb_matrix_set_color(W_LED_INDEX, rgb_ind.r, rgb_ind.g, rgb_ind.b); diff --git a/keyboards/teleport/native/config.h b/keyboards/teleport/native/config.h index ed858db0c7..c607aa0afe 100644 --- a/keyboards/teleport/native/config.h +++ b/keyboards/teleport/native/config.h @@ -61,13 +61,6 @@ along with this program. If not, see . #define ENABLE_RGB_MATRIX_CUSTOM_SINGLE_COLOR_RAINDROPS // 0 Single color raindrops, random keys lighting up at randomized intensity #define ENABLE_RGB_MATRIX_CUSTOM_STATIC_GAME_MODE // - Game mode sets the entire matrix (static) once, then stops LED refreshes -#define INDICATOR_MAX_BRIGHTNESS 255 -#ifdef RGB_MATRIX_MAXIMUM_BRIGHTNESS - #undef INDICATOR_MAX_BRIGHTNESS - #define INDICATOR_MAX_BRIGHTNESS RGB_MATRIX_MAXIMUM_BRIGHTNESS -#endif - - /* Define indicator LED indices, used for lighting effects */ #define W_LED_INDEX 33 #define A_LED_INDEX 47 diff --git a/keyboards/teleport/native/iso/keymaps/default/keymap.c b/keyboards/teleport/native/iso/keymaps/default/keymap.c index c1ed3cd4f4..b6f2e7ab82 100644 --- a/keyboards/teleport/native/iso/keymaps/default/keymap.c +++ b/keyboards/teleport/native/iso/keymaps/default/keymap.c @@ -53,11 +53,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* RGB matrix indicator code It reads the current matrix color, offsets the hue by 30, -and sets val to either 255 or, if defined, RGB_MATRIX_MAXIMUM_BRIGHTNESS +and sets val to RGB_MATRIX_MAXIMUM_BRIGHTNESS (by default, 255) This is applied to both caps lock, and other indicator keys for layer 1 */ bool rgb_matrix_indicators_user(void) { - HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS}; + HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS}; RGB rgb_ind = hsv_to_rgb(hsv_ind); /* Sets Caps to different color as indicator. If RGB mode is rain, and caps indicator is off, the LED will always be off. @@ -70,7 +70,7 @@ bool rgb_matrix_indicators_user(void) { /* Sets W, A, S, D, LGUI to a different color as layer indicator */ if(IS_LAYER_ON(1)) { - HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS}; + HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS}; RGB rgb_ind = hsv_to_rgb(hsv_ind); rgb_matrix_set_color(W_LED_INDEX, rgb_ind.r, rgb_ind.g, rgb_ind.b); diff --git a/keyboards/teleport/native/iso/keymaps/perfmode/keymap.c b/keyboards/teleport/native/iso/keymaps/perfmode/keymap.c index 3be8eec3dd..f95391358a 100644 --- a/keyboards/teleport/native/iso/keymaps/perfmode/keymap.c +++ b/keyboards/teleport/native/iso/keymaps/perfmode/keymap.c @@ -144,13 +144,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* RGB matrix indicator code It reads the current matrix color, offsets the hue by 30, -and sets val to either 255 or, if defined, RGB_MATRIX_MAXIMUM_BRIGHTNESS +and sets val to RGB_MATRIX_MAXIMUM_BRIGHTNESS (by default, 255) This is applied to both caps lock, and other indicator keys for layer 1 */ bool rgb_matrix_indicators_user(void) { /* Layer 2 (perf mode on this keymap) is not supposed to have LED refreshes, hence excluded */ if (!IS_LAYER_ON(2)) { - HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS}; + HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS}; RGB rgb_ind = hsv_to_rgb(hsv_ind); /* Sets Caps to different color as indicator. If RGB mode is rain, and caps indicator is off, the LED will always be off. @@ -163,7 +163,7 @@ bool rgb_matrix_indicators_user(void) { /* Sets W, A, S, D, LGUI to a different color as layer indicator */ if(IS_LAYER_ON(1)) { - HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS}; + HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS}; RGB rgb_ind = hsv_to_rgb(hsv_ind); rgb_matrix_set_color(W_LED_INDEX, rgb_ind.r, rgb_ind.g, rgb_ind.b); diff --git a/keyboards/teleport/native/iso/keymaps/via/keymap.c b/keyboards/teleport/native/iso/keymaps/via/keymap.c index c1ed3cd4f4..b6f2e7ab82 100644 --- a/keyboards/teleport/native/iso/keymaps/via/keymap.c +++ b/keyboards/teleport/native/iso/keymaps/via/keymap.c @@ -53,11 +53,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* RGB matrix indicator code It reads the current matrix color, offsets the hue by 30, -and sets val to either 255 or, if defined, RGB_MATRIX_MAXIMUM_BRIGHTNESS +and sets val to RGB_MATRIX_MAXIMUM_BRIGHTNESS (by default, 255) This is applied to both caps lock, and other indicator keys for layer 1 */ bool rgb_matrix_indicators_user(void) { - HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS}; + HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS}; RGB rgb_ind = hsv_to_rgb(hsv_ind); /* Sets Caps to different color as indicator. If RGB mode is rain, and caps indicator is off, the LED will always be off. @@ -70,7 +70,7 @@ bool rgb_matrix_indicators_user(void) { /* Sets W, A, S, D, LGUI to a different color as layer indicator */ if(IS_LAYER_ON(1)) { - HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS}; + HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS}; RGB rgb_ind = hsv_to_rgb(hsv_ind); rgb_matrix_set_color(W_LED_INDEX, rgb_ind.r, rgb_ind.g, rgb_ind.b); diff --git a/keyboards/zykrah/fuyu/keymaps/via/keymap.c b/keyboards/zykrah/fuyu/keymaps/via/keymap.c index 1ad867731e..95eb2692cb 100644 --- a/keyboards/zykrah/fuyu/keymaps/via/keymap.c +++ b/keyboards/zykrah/fuyu/keymaps/via/keymap.c @@ -73,15 +73,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Code for Caps Locks indicator #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) -#define CAPS_LOCK_MAX_BRIGHTNESS 0xFF -#ifdef RGB_MATRIX_MAXIMUM_BRIGHTNESS - #undef CAPS_LOCK_MAX_BRIGHTNESS +#if !defined(CAPS_LOCK_MAX_BRIGHTNESS) #define CAPS_LOCK_MAX_BRIGHTNESS RGB_MATRIX_MAXIMUM_BRIGHTNESS #endif -#define CAPS_LOCK_VAL_STEP 8 -#ifdef RGB_MATRIX_VAL_STEP - #undef CAPS_LOCK_VAL_STEP +#if !defined(CAPS_LOCK_VAL_STEP) #define CAPS_LOCK_VAL_STEP RGB_MATRIX_VAL_STEP #endif diff --git a/quantum/led_matrix/led_matrix.c b/quantum/led_matrix/led_matrix.c index 1676a60aa3..a59d475521 100644 --- a/quantum/led_matrix/led_matrix.c +++ b/quantum/led_matrix/led_matrix.c @@ -58,35 +58,6 @@ const led_point_t k_led_matrix_center = LED_MATRIX_CENTER; // -----End led effect includes macros------- // ------------------------------------------ -#ifndef LED_MATRIX_TIMEOUT -# define LED_MATRIX_TIMEOUT 0 -#endif - -#if !defined(LED_MATRIX_MAXIMUM_BRIGHTNESS) || LED_MATRIX_MAXIMUM_BRIGHTNESS > UINT8_MAX -# undef LED_MATRIX_MAXIMUM_BRIGHTNESS -# define LED_MATRIX_MAXIMUM_BRIGHTNESS UINT8_MAX -#endif - -#if !defined(LED_MATRIX_VAL_STEP) -# define LED_MATRIX_VAL_STEP 8 -#endif - -#if !defined(LED_MATRIX_SPD_STEP) -# define LED_MATRIX_SPD_STEP 16 -#endif - -#if !defined(LED_MATRIX_DEFAULT_MODE) -# define LED_MATRIX_DEFAULT_MODE LED_MATRIX_SOLID -#endif - -#if !defined(LED_MATRIX_DEFAULT_VAL) -# define LED_MATRIX_DEFAULT_VAL LED_MATRIX_MAXIMUM_BRIGHTNESS -#endif - -#if !defined(LED_MATRIX_DEFAULT_SPD) -# define LED_MATRIX_DEFAULT_SPD UINT8_MAX / 2 -#endif - // globals led_eeconfig_t led_matrix_eeconfig; // TODO: would like to prefix this with g_ for global consistancy, do this in another pr uint32_t g_led_timer; @@ -632,7 +603,7 @@ void led_matrix_decrease_speed(void) { void led_matrix_set_flags_eeprom_helper(led_flags_t flags, bool write_to_eeprom) { led_matrix_eeconfig.flags = flags; eeconfig_flag_led_matrix(write_to_eeprom); - dprintf("led matrix set speed [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", led_matrix_eeconfig.flags); + dprintf("led matrix set flags [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", led_matrix_eeconfig.flags); } led_flags_t led_matrix_get_flags(void) { diff --git a/quantum/led_matrix/led_matrix.h b/quantum/led_matrix/led_matrix.h index cdc90097bb..771afc47ec 100644 --- a/quantum/led_matrix/led_matrix.h +++ b/quantum/led_matrix/led_matrix.h @@ -43,6 +43,34 @@ # include "ckled2001-simple.h" #endif +#ifndef LED_MATRIX_TIMEOUT +# define LED_MATRIX_TIMEOUT 0 +#endif + +#ifndef LED_MATRIX_MAXIMUM_BRIGHTNESS +# define LED_MATRIX_MAXIMUM_BRIGHTNESS UINT8_MAX +#endif + +#ifndef LED_MATRIX_VAL_STEP +# define LED_MATRIX_VAL_STEP 8 +#endif + +#ifndef LED_MATRIX_SPD_STEP +# define LED_MATRIX_SPD_STEP 16 +#endif + +#ifndef LED_MATRIX_DEFAULT_MODE +# define LED_MATRIX_DEFAULT_MODE LED_MATRIX_SOLID +#endif + +#ifndef LED_MATRIX_DEFAULT_VAL +# define LED_MATRIX_DEFAULT_VAL LED_MATRIX_MAXIMUM_BRIGHTNESS +#endif + +#ifndef LED_MATRIX_DEFAULT_SPD +# define LED_MATRIX_DEFAULT_SPD UINT8_MAX / 2 +#endif + #ifndef LED_MATRIX_LED_FLUSH_LIMIT # define LED_MATRIX_LED_FLUSH_LIMIT 16 #endif diff --git a/quantum/rgb_matrix/rgb_matrix.c b/quantum/rgb_matrix/rgb_matrix.c index 96be615162..ff3e5b2b35 100644 --- a/quantum/rgb_matrix/rgb_matrix.c +++ b/quantum/rgb_matrix/rgb_matrix.c @@ -60,56 +60,6 @@ __attribute__((weak)) RGB rgb_matrix_hsv_to_rgb(HSV hsv) { // -----End rgb effect includes macros------- // ------------------------------------------ -#ifndef RGB_MATRIX_TIMEOUT -# define RGB_MATRIX_TIMEOUT 0 -#endif - -#if !defined(RGB_MATRIX_MAXIMUM_BRIGHTNESS) || RGB_MATRIX_MAXIMUM_BRIGHTNESS > UINT8_MAX -# undef RGB_MATRIX_MAXIMUM_BRIGHTNESS -# define RGB_MATRIX_MAXIMUM_BRIGHTNESS UINT8_MAX -#endif - -#if !defined(RGB_MATRIX_HUE_STEP) -# define RGB_MATRIX_HUE_STEP 8 -#endif - -#if !defined(RGB_MATRIX_SAT_STEP) -# define RGB_MATRIX_SAT_STEP 16 -#endif - -#if !defined(RGB_MATRIX_VAL_STEP) -# define RGB_MATRIX_VAL_STEP 16 -#endif - -#if !defined(RGB_MATRIX_SPD_STEP) -# define RGB_MATRIX_SPD_STEP 16 -#endif - -#if !defined(RGB_MATRIX_DEFAULT_MODE) -# ifdef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT -# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT -# else -// fallback to solid colors if RGB_MATRIX_CYCLE_LEFT_RIGHT is disabled in userspace -# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR -# endif -#endif - -#if !defined(RGB_MATRIX_DEFAULT_HUE) -# define RGB_MATRIX_DEFAULT_HUE 0 -#endif - -#if !defined(RGB_MATRIX_DEFAULT_SAT) -# define RGB_MATRIX_DEFAULT_SAT UINT8_MAX -#endif - -#if !defined(RGB_MATRIX_DEFAULT_VAL) -# define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS -#endif - -#if !defined(RGB_MATRIX_DEFAULT_SPD) -# define RGB_MATRIX_DEFAULT_SPD UINT8_MAX / 2 -#endif - // globals rgb_config_t rgb_matrix_config; // TODO: would like to prefix this with g_ for global consistancy, do this in another pr uint32_t g_rgb_timer; @@ -736,7 +686,7 @@ void rgb_matrix_decrease_speed(void) { void rgb_matrix_set_flags_eeprom_helper(led_flags_t flags, bool write_to_eeprom) { rgb_matrix_config.flags = flags; eeconfig_flag_rgb_matrix(write_to_eeprom); - dprintf("rgb matrix set speed [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", rgb_matrix_config.flags); + dprintf("rgb matrix set flags [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", rgb_matrix_config.flags); } led_flags_t rgb_matrix_get_flags(void) { diff --git a/quantum/rgb_matrix/rgb_matrix.h b/quantum/rgb_matrix/rgb_matrix.h index e4807ee54a..025a1f4700 100644 --- a/quantum/rgb_matrix/rgb_matrix.h +++ b/quantum/rgb_matrix/rgb_matrix.h @@ -46,6 +46,55 @@ # include "ws2812.h" #endif +#ifndef RGB_MATRIX_TIMEOUT +# define RGB_MATRIX_TIMEOUT 0 +#endif + +#ifndef RGB_MATRIX_MAXIMUM_BRIGHTNESS +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS UINT8_MAX +#endif + +#ifndef RGB_MATRIX_HUE_STEP +# define RGB_MATRIX_HUE_STEP 8 +#endif + +#ifndef RGB_MATRIX_SAT_STEP +# define RGB_MATRIX_SAT_STEP 16 +#endif + +#ifndef RGB_MATRIX_VAL_STEP +# define RGB_MATRIX_VAL_STEP 16 +#endif + +#ifndef RGB_MATRIX_SPD_STEP +# define RGB_MATRIX_SPD_STEP 16 +#endif + +#ifndef RGB_MATRIX_DEFAULT_MODE +# ifdef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT +# else +// fallback to solid colors if RGB_MATRIX_CYCLE_LEFT_RIGHT is disabled in userspace +# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR +# endif +#endif + +#ifndef RGB_MATRIX_DEFAULT_HUE +# define RGB_MATRIX_DEFAULT_HUE 0 +#endif + +#ifndef RGB_MATRIX_DEFAULT_SAT +# define RGB_MATRIX_DEFAULT_SAT UINT8_MAX +#endif + +#ifndef RGB_MATRIX_DEFAULT_VAL +# define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS +#endif + +#ifndef RGB_MATRIX_DEFAULT_SPD +# define RGB_MATRIX_DEFAULT_SPD UINT8_MAX / 2 +#endif + #ifndef RGB_MATRIX_LED_FLUSH_LIMIT # define RGB_MATRIX_LED_FLUSH_LIMIT 16 #endif diff --git a/quantum/via.c b/quantum/via.c index 2acd7aa90c..643d7aa3c3 100644 --- a/quantum/via.c +++ b/quantum/via.c @@ -634,11 +634,6 @@ void via_qmk_rgblight_save(void) { #if defined(RGB_MATRIX_ENABLE) -# if !defined(RGB_MATRIX_MAXIMUM_BRIGHTNESS) || RGB_MATRIX_MAXIMUM_BRIGHTNESS > UINT8_MAX -# undef RGB_MATRIX_MAXIMUM_BRIGHTNESS -# define RGB_MATRIX_MAXIMUM_BRIGHTNESS UINT8_MAX -# endif - void via_qmk_rgb_matrix_command(uint8_t *data, uint8_t length) { // data = [ command_id, channel_id, value_id, value_data ] uint8_t *command_id = &(data[0]); @@ -727,11 +722,6 @@ void via_qmk_rgb_matrix_save(void) { #if defined(LED_MATRIX_ENABLE) -# if !defined(LED_MATRIX_MAXIMUM_BRIGHTNESS) || LED_MATRIX_MAXIMUM_BRIGHTNESS > UINT8_MAX -# undef LED_MATRIX_MAXIMUM_BRIGHTNESS -# define LED_MATRIX_MAXIMUM_BRIGHTNESS UINT8_MAX -# endif - void via_qmk_led_matrix_command(uint8_t *data, uint8_t length) { // data = [ command_id, channel_id, value_id, value_data ] uint8_t *command_id = &(data[0]); From 4a855bd2d19325b442f7c63726620e39853039fe Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 28 Sep 2023 13:30:07 -0700 Subject: [PATCH 202/496] GMMK2 65% ISO Community Layout Support (#22152) * Refactor `LAYOUT` into `LAYOUT_65_iso_blocker` Move the Enter key to the end of the home row for Community Layout compatibility. [chore] [refactor] * Enable Community Layout support [enhancement] --- keyboards/gmmk/gmmk2/p65/iso/info.json | 5 +++-- .../gmmk2/p65/iso/keymaps/default/keymap.c | 12 +++++----- .../gmmk/gmmk2/p65/iso/keymaps/via/keymap.c | 22 +++++++++---------- 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/keyboards/gmmk/gmmk2/p65/iso/info.json b/keyboards/gmmk/gmmk2/p65/iso/info.json index a266ce2b4f..c286cb7ba0 100644 --- a/keyboards/gmmk/gmmk2/p65/iso/info.json +++ b/keyboards/gmmk/gmmk2/p65/iso/info.json @@ -24,8 +24,9 @@ }, "processor": "WB32F3G71", "bootloader": "wb32-dfu", + "community_layouts": ["65_iso_blocker"], "layouts": { - "LAYOUT": { + "LAYOUT_65_iso_blocker": { "layout": [ {"matrix": [1, 3], "x": 0, "y": 0}, {"matrix": [1, 7], "x": 1, "y": 0}, @@ -56,7 +57,6 @@ {"matrix": [8, 0], "x": 10.5, "y": 1}, {"matrix": [8, 1], "x": 11.5, "y": 1}, {"matrix": [6, 1], "x": 12.5, "y": 1}, - {"matrix": [8, 4], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, {"matrix": [2, 6], "x": 15, "y": 1}, {"matrix": [2, 1], "x": 0, "y": 2, "w": 1.75}, @@ -72,6 +72,7 @@ {"matrix": [8, 2], "x": 10.75, "y": 2}, {"matrix": [8, 3], "x": 11.75, "y": 2}, {"matrix": [7, 5], "x": 12.75, "y": 2}, + {"matrix": [8, 4], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, {"matrix": [6, 5], "x": 15, "y": 2}, {"matrix": [0, 0], "x": 0, "y": 3, "w": 1.25}, diff --git a/keyboards/gmmk/gmmk2/p65/iso/keymaps/default/keymap.c b/keyboards/gmmk/gmmk2/p65/iso/keymaps/default/keymap.c index 1ab85d7f0a..6a3da299a2 100644 --- a/keyboards/gmmk/gmmk2/p65/iso/keymaps/default/keymap.c +++ b/keyboards/gmmk/gmmk2/p65/iso/keymaps/default/keymap.c @@ -26,19 +26,19 @@ enum custom_layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap _BL: Base Layer (Default Layer) */ -[_BL] = LAYOUT( +[_BL] = LAYOUT_65_iso_blocker( QK_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_BSPC, KC_DEL, - 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_ENT, KC_PGUP, - 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_PGDN, + 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_PGUP, + 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_PGDN, 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_RSFT, KC_UP, KC_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), /* Keymap _FL: Function Layer */ -[_FL] = LAYOUT( +[_FL] = LAYOUT_65_iso_blocker( _______, 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_INS, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_HUD, RGB_SPD, RGB_SPI, KC_MUTE, KC_VOLU, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, _______, RGB_VAI, KC_HOME, _______, _______, _______, QK_BOOT, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD) }; diff --git a/keyboards/gmmk/gmmk2/p65/iso/keymaps/via/keymap.c b/keyboards/gmmk/gmmk2/p65/iso/keymaps/via/keymap.c index 6146e7817f..f0fe740042 100644 --- a/keyboards/gmmk/gmmk2/p65/iso/keymaps/via/keymap.c +++ b/keyboards/gmmk/gmmk2/p65/iso/keymaps/via/keymap.c @@ -19,32 +19,32 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap _BL: Base Layer (Default Layer) */ -[0] = LAYOUT( +[0] = LAYOUT_65_iso_blocker( QK_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_BSPC, KC_DEL, - 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_ENT, KC_PGUP, - 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_PGDN, + 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_PGUP, + 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_PGDN, 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_RSFT, KC_UP, KC_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), /* Keymap _FL: Function Layer */ -[1] = LAYOUT( - _______, 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_INS, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +[1] = LAYOUT_65_iso_blocker( + _______, 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_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_HUD, RGB_SPD, RGB_SPI, KC_MUTE, KC_VOLU, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, _______, RGB_VAI, KC_HOME, _______, _______, _______, QK_BOOT, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD), -[2] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +[2] = LAYOUT_65_iso_blocker( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -[3] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +[3] = LAYOUT_65_iso_blocker( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; From c5706ef79105cb5e782d01271fe420fd798d3573 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Fri, 29 Sep 2023 06:48:20 +1000 Subject: [PATCH 203/496] Allow for `qmk mass-compile all:` (#22116) Co-authored-by: Joel Challis --- lib/python/qmk/cli/mass_compile.py | 127 ++++++++++--------- lib/python/qmk/keyboard.py | 2 + lib/python/qmk/search.py | 196 +++++++++++++++++++---------- 3 files changed, 198 insertions(+), 127 deletions(-) diff --git a/lib/python/qmk/cli/mass_compile.py b/lib/python/qmk/cli/mass_compile.py index 1032dc82d1..1227f435e7 100755 --- a/lib/python/qmk/cli/mass_compile.py +++ b/lib/python/qmk/cli/mass_compile.py @@ -9,8 +9,69 @@ from milc import cli from qmk.constants import QMK_FIRMWARE from qmk.commands import _find_make, get_make_parallel_args -from qmk.keyboard import resolve_keyboard -from qmk.search import search_keymap_targets +from qmk.search import search_keymap_targets, search_make_targets + + +def mass_compile_targets(targets, clean, dry_run, no_temp, parallel, env): + if len(targets) == 0: + return + + make_cmd = _find_make() + builddir = Path(QMK_FIRMWARE) / '.build' + makefile = builddir / 'parallel_kb_builds.mk' + + if dry_run: + cli.log.info('Compilation targets:') + for target in sorted(targets): + cli.log.info(f"{{fg_cyan}}qmk compile -kb {target[0]} -km {target[1]}{{fg_reset}}") + else: + if clean: + cli.run([make_cmd, 'clean'], capture_output=False, stdin=DEVNULL) + + builddir.mkdir(parents=True, exist_ok=True) + with open(makefile, "w") as f: + for target in sorted(targets): + keyboard_name = target[0] + keymap_name = target[1] + keyboard_safe = keyboard_name.replace('/', '_') + build_log = f"{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" + failed_log = f"{QMK_FIRMWARE}/.build/failed.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" + # yapf: disable + f.write( + f"""\ +all: {keyboard_safe}_{keymap_name}_binary +{keyboard_safe}_{keymap_name}_binary: + @rm -f "{build_log}" || true + @echo "Compiling QMK Firmware for target: '{keyboard_name}:{keymap_name}'..." >>"{build_log}" + +@$(MAKE) -C "{QMK_FIRMWARE}" -f "{QMK_FIRMWARE}/builddefs/build_keyboard.mk" KEYBOARD="{keyboard_name}" KEYMAP="{keymap_name}" COLOR=true SILENT=false {' '.join(env)} \\ + >>"{build_log}" 2>&1 \\ + || cp "{build_log}" "{failed_log}" + @{{ grep '\[ERRORS\]' "{build_log}" >/dev/null 2>&1 && printf "Build %-64s \e[1;31m[ERRORS]\e[0m\\n" "{keyboard_name}:{keymap_name}" ; }} \\ + || {{ grep '\[WARNINGS\]' "{build_log}" >/dev/null 2>&1 && printf "Build %-64s \e[1;33m[WARNINGS]\e[0m\\n" "{keyboard_name}:{keymap_name}" ; }} \\ + || printf "Build %-64s \e[1;32m[OK]\e[0m\\n" "{keyboard_name}:{keymap_name}" + @rm -f "{build_log}" || true +"""# noqa + ) + # yapf: enable + + if no_temp: + # yapf: disable + f.write( + f"""\ + @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{keymap_name}.elf" 2>/dev/null || true + @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{keymap_name}.map" 2>/dev/null || true + @rm -rf "{QMK_FIRMWARE}/.build/obj_{keyboard_safe}_{keymap_name}" || true +"""# noqa + ) + # yapf: enable + f.write('\n') + + cli.run([make_cmd, *get_make_parallel_args(parallel), '-f', makefile.as_posix(), 'all'], capture_output=False, stdin=DEVNULL) + + # Check for failures + failures = [f for f in builddir.glob(f'failed.log.{os.getpid()}.*')] + if len(failures) > 0: + return False @cli.argument('builds', nargs='*', arg_only=True, help="List of builds in form : to compile in parallel. Specifying this overrides all other target search options.") @@ -33,67 +94,9 @@ from qmk.search import search_keymap_targets def mass_compile(cli): """Compile QMK Firmware against all keyboards. """ - make_cmd = _find_make() - if cli.args.clean: - cli.run([make_cmd, 'clean'], capture_output=False, stdin=DEVNULL) - - builddir = Path(QMK_FIRMWARE) / '.build' - makefile = builddir / 'parallel_kb_builds.mk' - if len(cli.args.builds) > 0: - targets = list(sorted(set([(resolve_keyboard(e[0]), e[1]) for e in [b.split(':') for b in cli.args.builds]]))) + targets = search_make_targets(cli.args.builds, cli.args.filter) else: targets = search_keymap_targets(cli.args.keymap, cli.args.filter) - if len(targets) == 0: - return - - if cli.args.dry_run: - cli.log.info('Compilation targets:') - for target in sorted(targets): - cli.log.info(f"{{fg_cyan}}qmk compile -kb {target[0]} -km {target[1]}{{fg_reset}}") - else: - builddir.mkdir(parents=True, exist_ok=True) - with open(makefile, "w") as f: - for target in sorted(targets): - keyboard_name = target[0] - keymap_name = target[1] - keyboard_safe = keyboard_name.replace('/', '_') - build_log = f"{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" - failed_log = f"{QMK_FIRMWARE}/.build/failed.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" - # yapf: disable - f.write( - f"""\ -all: {keyboard_safe}_{keymap_name}_binary -{keyboard_safe}_{keymap_name}_binary: - @rm -f "{build_log}" || true - @echo "Compiling QMK Firmware for target: '{keyboard_name}:{keymap_name}'..." >>"{build_log}" - +@$(MAKE) -C "{QMK_FIRMWARE}" -f "{QMK_FIRMWARE}/builddefs/build_keyboard.mk" KEYBOARD="{keyboard_name}" KEYMAP="{keymap_name}" COLOR=true SILENT=false {' '.join(cli.args.env)} \\ - >>"{build_log}" 2>&1 \\ - || cp "{build_log}" "{failed_log}" - @{{ grep '\[ERRORS\]' "{build_log}" >/dev/null 2>&1 && printf "Build %-64s \e[1;31m[ERRORS]\e[0m\\n" "{keyboard_name}:{keymap_name}" ; }} \\ - || {{ grep '\[WARNINGS\]' "{build_log}" >/dev/null 2>&1 && printf "Build %-64s \e[1;33m[WARNINGS]\e[0m\\n" "{keyboard_name}:{keymap_name}" ; }} \\ - || printf "Build %-64s \e[1;32m[OK]\e[0m\\n" "{keyboard_name}:{keymap_name}" - @rm -f "{build_log}" || true -"""# noqa - ) - # yapf: enable - - if cli.args.no_temp: - # yapf: disable - f.write( - f"""\ - @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{keymap_name}.elf" 2>/dev/null || true - @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{keymap_name}.map" 2>/dev/null || true - @rm -rf "{QMK_FIRMWARE}/.build/obj_{keyboard_safe}_{keymap_name}" || true -"""# noqa - ) - # yapf: enable - f.write('\n') - - cli.run([make_cmd, *get_make_parallel_args(cli.args.parallel), '-f', makefile.as_posix(), 'all'], capture_output=False, stdin=DEVNULL) - - # Check for failures - failures = [f for f in builddir.glob(f'failed.log.{os.getpid()}.*')] - if len(failures) > 0: - return False + return mass_compile_targets(targets, cli.args.clean, cli.args.dry_run, cli.args.no_temp, cli.args.parallel, cli.args.env) diff --git a/lib/python/qmk/keyboard.py b/lib/python/qmk/keyboard.py index 3e5cae4b22..18ca5a9534 100644 --- a/lib/python/qmk/keyboard.py +++ b/lib/python/qmk/keyboard.py @@ -1,6 +1,7 @@ """Functions that help us work with keyboards. """ from array import array +from functools import lru_cache from math import ceil from pathlib import Path import os @@ -144,6 +145,7 @@ def list_keyboards(resolve_defaults=True): return sorted(set(found)) +@lru_cache(maxsize=None) def resolve_keyboard(keyboard): cur_dir = Path('keyboards') rules = parse_rules_mk_file(cur_dir / keyboard / 'rules.mk') diff --git a/lib/python/qmk/search.py b/lib/python/qmk/search.py index 2bbbc7806f..0b5d489218 100644 --- a/lib/python/qmk/search.py +++ b/lib/python/qmk/search.py @@ -1,10 +1,12 @@ """Functions for searching through QMK keyboards and keymaps. """ import contextlib +import functools import fnmatch import logging import multiprocessing import re +from typing import List, Tuple from dotty_dict import dotty from milc import cli @@ -31,95 +33,159 @@ def ignore_logging(): def _all_keymaps(keyboard): + """Returns a list of tuples of (keyboard, keymap) for all keymaps for the given keyboard. + """ with ignore_logging(): - return (keyboard, qmk.keymap.list_keymaps(keyboard)) + keyboard = qmk.keyboard.resolve_keyboard(keyboard) + return [(keyboard, keymap) for keymap in qmk.keymap.list_keymaps(keyboard)] def _keymap_exists(keyboard, keymap): + """Returns the keyboard name if the keyboard+keymap combination exists, otherwise None. + """ with ignore_logging(): return keyboard if qmk.keymap.locate_keymap(keyboard, keymap) is not None else None -def _load_keymap_info(keyboard, keymap): +def _load_keymap_info(kb_km): + """Returns a tuple of (keyboard, keymap, info.json) for the given keyboard/keymap combination. + """ with ignore_logging(): - return (keyboard, keymap, keymap_json(keyboard, keymap)) + return (kb_km[0], kb_km[1], keymap_json(kb_km[0], kb_km[1])) -def search_keymap_targets(keymap='default', filters=[], print_vals=[]): - targets = [] +def expand_make_targets(targets: List[str]) -> List[Tuple[str, str]]: + """Expand a list of make targets into a list of (keyboard, keymap) tuples. - with multiprocessing.Pool() as pool: - cli.log.info(f'Retrieving list of keyboards with keymap "{keymap}"...') - target_list = [] + Caters for 'all' in either keyboard or keymap, or both. + """ + split_targets = [] + for target in targets: + split_target = target.split(':') + if len(split_target) != 2: + cli.log.error(f"Invalid build target: {target}") + return [] + split_targets.append((split_target[0], split_target[1])) + return expand_keymap_targets(split_targets) + + +def _expand_keymap_target(keyboard: str, keymap: str, all_keyboards: List[str] = None) -> List[Tuple[str, str]]: + """Expand a keyboard input and keymap input into a list of (keyboard, keymap) tuples. + + Caters for 'all' in either keyboard or keymap, or both. + """ + if all_keyboards is None: + all_keyboards = qmk.keyboard.list_keyboards() + + if keyboard == 'all': + with multiprocessing.Pool() as pool: + if keymap == 'all': + cli.log.info('Retrieving list of all keyboards and keymaps...') + targets = [] + for kb in pool.imap_unordered(_all_keymaps, all_keyboards): + targets.extend(kb) + return targets + else: + cli.log.info(f'Retrieving list of keyboards with keymap "{keymap}"...') + keyboard_filter = functools.partial(_keymap_exists, keymap=keymap) + return [(kb, keymap) for kb in filter(lambda e: e is not None, pool.imap_unordered(keyboard_filter, all_keyboards))] + else: if keymap == 'all': - kb_to_kms = pool.map(_all_keymaps, qmk.keyboard.list_keyboards()) - for targets in kb_to_kms: - keyboard = targets[0] - keymaps = targets[1] - target_list.extend([(keyboard, keymap) for keymap in keymaps]) + keyboard = qmk.keyboard.resolve_keyboard(keyboard) + cli.log.info(f'Retrieving list of keymaps for keyboard "{keyboard}"...') + return _all_keymaps(keyboard) else: - target_list = [(kb, keymap) for kb in filter(lambda kb: kb is not None, pool.starmap(_keymap_exists, [(kb, keymap) for kb in qmk.keyboard.list_keyboards()]))] + return [(qmk.keyboard.resolve_keyboard(keyboard), keymap)] - if len(filters) == 0: - targets = [(kb, km, {}) for kb, km in target_list] - else: - cli.log.info('Parsing data for all matching keyboard/keymap combinations...') - valid_keymaps = [(e[0], e[1], dotty(e[2])) for e in pool.starmap(_load_keymap_info, target_list)] - function_re = re.compile(r'^(?P[a-zA-Z]+)\((?P[a-zA-Z0-9_\.]+)(,\s*(?P[^#]+))?\)$') - equals_re = re.compile(r'^(?P[a-zA-Z0-9_\.]+)\s*=\s*(?P[^#]+)$') +def expand_keymap_targets(targets: List[Tuple[str, str]]) -> List[Tuple[str, str]]: + """Expand a list of (keyboard, keymap) tuples inclusive of 'all', into a list of explicit (keyboard, keymap) tuples. + """ + overall_targets = [] + all_keyboards = qmk.keyboard.list_keyboards() + for target in targets: + overall_targets.extend(_expand_keymap_target(target[0], target[1], all_keyboards)) + return list(sorted(set(overall_targets))) - for filter_expr in filters: - function_match = function_re.match(filter_expr) - equals_match = equals_re.match(filter_expr) - if function_match is not None: - func_name = function_match.group('function').lower() - key = function_match.group('key') - value = function_match.group('value') +def _filter_keymap_targets(target_list: List[Tuple[str, str]], filters: List[str] = [], print_vals: List[str] = []) -> List[Tuple[str, str, List[Tuple[str, str]]]]: + """Filter a list of (keyboard, keymap) tuples based on the supplied filters. - if value is not None: - if func_name == 'length': - valid_keymaps = filter(lambda e, key=key, value=value: key in e[2] and len(e[2].get(key)) == int(value), valid_keymaps) - elif func_name == 'contains': - valid_keymaps = filter(lambda e, key=key, value=value: key in e[2] and value in e[2].get(key), valid_keymaps) - else: - cli.log.warning(f'Unrecognized filter expression: {function_match.group(0)}') - continue + Optionally includes the values of the queried info.json keys. + """ + if len(filters) == 0 and len(print_vals) == 0: + targets = [(kb, km, {}) for kb, km in target_list] + else: + cli.log.info('Parsing data for all matching keyboard/keymap combinations...') + with multiprocessing.Pool() as pool: + valid_keymaps = [(e[0], e[1], dotty(e[2])) for e in pool.imap_unordered(_load_keymap_info, target_list)] - cli.log.info(f'Filtering on condition: {{fg_green}}{func_name}{{fg_reset}}({{fg_cyan}}{key}{{fg_reset}}, {{fg_cyan}}{value}{{fg_reset}})...') + function_re = re.compile(r'^(?P[a-zA-Z]+)\((?P[a-zA-Z0-9_\.]+)(,\s*(?P[^#]+))?\)$') + equals_re = re.compile(r'^(?P[a-zA-Z0-9_\.]+)\s*=\s*(?P[^#]+)$') + + for filter_expr in filters: + function_match = function_re.match(filter_expr) + equals_match = equals_re.match(filter_expr) + + if function_match is not None: + func_name = function_match.group('function').lower() + key = function_match.group('key') + value = function_match.group('value') + + if value is not None: + if func_name == 'length': + valid_keymaps = filter(lambda e, key=key, value=value: key in e[2] and len(e[2].get(key)) == int(value), valid_keymaps) + elif func_name == 'contains': + valid_keymaps = filter(lambda e, key=key, value=value: key in e[2] and value in e[2].get(key), valid_keymaps) else: - if func_name == 'exists': - valid_keymaps = filter(lambda e, key=key: key in e[2], valid_keymaps) - elif func_name == 'absent': - valid_keymaps = filter(lambda e, key=key: key not in e[2], valid_keymaps) - else: - cli.log.warning(f'Unrecognized filter expression: {function_match.group(0)}') - continue + cli.log.warning(f'Unrecognized filter expression: {function_match.group(0)}') + continue - cli.log.info(f'Filtering on condition: {{fg_green}}{func_name}{{fg_reset}}({{fg_cyan}}{key}{{fg_reset}})...') - - elif equals_match is not None: - key = equals_match.group('key') - value = equals_match.group('value') - cli.log.info(f'Filtering on condition: {{fg_cyan}}{key}{{fg_reset}} == {{fg_cyan}}{value}{{fg_reset}}...') - - def _make_filter(k, v): - expr = fnmatch.translate(v) - rule = re.compile(f'^{expr}$', re.IGNORECASE) - - def f(e): - lhs = e[2].get(k) - lhs = str(False if lhs is None else lhs) - return rule.search(lhs) is not None - - return f - - valid_keymaps = filter(_make_filter(key, value), valid_keymaps) + cli.log.info(f'Filtering on condition: {{fg_green}}{func_name}{{fg_reset}}({{fg_cyan}}{key}{{fg_reset}}, {{fg_cyan}}{value}{{fg_reset}})...') else: - cli.log.warning(f'Unrecognized filter expression: {filter_expr}') - continue + if func_name == 'exists': + valid_keymaps = filter(lambda e, key=key: key in e[2], valid_keymaps) + elif func_name == 'absent': + valid_keymaps = filter(lambda e, key=key: key not in e[2], valid_keymaps) + else: + cli.log.warning(f'Unrecognized filter expression: {function_match.group(0)}') + continue + + cli.log.info(f'Filtering on condition: {{fg_green}}{func_name}{{fg_reset}}({{fg_cyan}}{key}{{fg_reset}})...') + + elif equals_match is not None: + key = equals_match.group('key') + value = equals_match.group('value') + cli.log.info(f'Filtering on condition: {{fg_cyan}}{key}{{fg_reset}} == {{fg_cyan}}{value}{{fg_reset}}...') + + def _make_filter(k, v): + expr = fnmatch.translate(v) + rule = re.compile(f'^{expr}$', re.IGNORECASE) + + def f(e): + lhs = e[2].get(k) + lhs = str(False if lhs is None else lhs) + return rule.search(lhs) is not None + + return f + + valid_keymaps = filter(_make_filter(key, value), valid_keymaps) + else: + cli.log.warning(f'Unrecognized filter expression: {filter_expr}') + continue targets = [(e[0], e[1], [(p, e[2].get(p)) for p in print_vals]) for e in valid_keymaps] return targets + + +def search_keymap_targets(keymap='default', filters: List[str] = [], print_vals: List[str] = []) -> List[Tuple[str, str, List[Tuple[str, str]]]]: + """Search for build targets matching the supplied criteria. + """ + return list(sorted(_filter_keymap_targets(expand_keymap_targets([('all', keymap)]), filters, print_vals), key=lambda e: (e[0], e[1]))) + + +def search_make_targets(targets: List[str], filters: List[str] = [], print_vals: List[str] = []) -> List[Tuple[str, str, List[Tuple[str, str]]]]: + """Search for build targets matching the supplied criteria. + """ + return list(sorted(_filter_keymap_targets(expand_make_targets(targets), filters, print_vals), key=lambda e: (e[0], e[1]))) From 0edc68f7cda59dbaf6c807e136972d9f64e79df1 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 28 Sep 2023 21:34:30 -0700 Subject: [PATCH 204/496] HnahKB Freyr Layout Additions (#22150) * Add layout/matrix diagram [docs] * Add `LAYOUT_tkl_ansi_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_ansi_tsangan_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_ansi_tsangan` [enhancement] * Add `LAYOUT_tkl_ansi_wkl_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_ansi_wkl` [enhancement] * Add `LAYOUT_tkl_iso_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_iso_tsangan_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_iso_tsangan` [enhancement] * Add `LAYOUT_tkl_iso_wkl_split_bs_rshift` [enhancement] * Add `LAYOUT_tkl_iso_wkl` [enhancement] * Extend Community Layout support Add as supported layouts: - `tkl_ansi_split_bs_rshift` - `tkl_ansi_tsangan` - `tkl_ansi_tsangan_split_bs_rshift` - `tkl_iso_split_bs_rshift` - `tkl_iso_tsangan` - `tkl_iso_tsangan_split_bs_rshift` [enhancement] --- keyboards/hnahkb/freyr/info.json | 1043 +++++++++++++++++++++- keyboards/hnahkb/freyr/matrix_diagram.md | 30 + 2 files changed, 1072 insertions(+), 1 deletion(-) create mode 100644 keyboards/hnahkb/freyr/matrix_diagram.md diff --git a/keyboards/hnahkb/freyr/info.json b/keyboards/hnahkb/freyr/info.json index 0bc3c9a9c6..26d1fc52d8 100644 --- a/keyboards/hnahkb/freyr/info.json +++ b/keyboards/hnahkb/freyr/info.json @@ -24,7 +24,7 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", - "community_layouts": ["tkl_ansi", "tkl_iso"], + "community_layouts": ["tkl_ansi", "tkl_ansi_split_bs_rshift", "tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift", "tkl_iso", "tkl_iso_split_bs_rshift", "tkl_iso_tsangan", "tkl_iso_tsangan_split_bs_rshift"], "layouts": { "LAYOUT_all": { "layout": [ @@ -238,6 +238,524 @@ {"matrix": [6, 9], "x": 17.25, "y": 5.25} ] }, + "LAYOUT_tkl_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [0, 3], "x": 4, "y": 0}, + {"matrix": [0, 4], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + + {"matrix": [6, 0], "x": 11, "y": 0}, + {"matrix": [6, 1], "x": 12, "y": 0}, + {"matrix": [6, 2], "x": 13, "y": 0}, + {"matrix": [6, 3], "x": 14, "y": 0}, + + {"matrix": [6, 4], "x": 15.25, "y": 0}, + {"matrix": [6, 5], "x": 16.25, "y": 0}, + {"matrix": [6, 6], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [7, 0], "x": 10, "y": 1.25}, + {"matrix": [7, 1], "x": 11, "y": 1.25}, + {"matrix": [7, 2], "x": 12, "y": 1.25}, + {"matrix": [7, 3], "x": 13, "y": 1.25}, + {"matrix": [7, 4], "x": 14, "y": 1.25}, + + {"matrix": [7, 5], "x": 15.25, "y": 1.25}, + {"matrix": [7, 6], "x": 16.25, "y": 1.25}, + {"matrix": [6, 7], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [8, 0], "x": 10.5, "y": 2.25}, + {"matrix": [8, 1], "x": 11.5, "y": 2.25}, + {"matrix": [8, 2], "x": 12.5, "y": 2.25}, + {"matrix": [8, 3], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [7, 8], "x": 15.25, "y": 2.25}, + {"matrix": [7, 7], "x": 16.25, "y": 2.25}, + {"matrix": [6, 8], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [9, 0], "x": 10.75, "y": 3.25}, + {"matrix": [9, 1], "x": 11.75, "y": 3.25}, + {"matrix": [8, 4], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [9, 5], "x": 10.25, "y": 4.25}, + {"matrix": [9, 4], "x": 11.25, "y": 4.25}, + {"matrix": [8, 5], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [9, 3], "x": 14, "y": 4.25}, + + {"matrix": [7, 9], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 3], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 4], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 5], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 7], "x": 13.75, "y": 5.25, "w": 1.25}, + + {"matrix": [5, 8], "x": 15.25, "y": 5.25}, + {"matrix": [5, 9], "x": 16.25, "y": 5.25}, + {"matrix": [6, 9], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [0, 3], "x": 4, "y": 0}, + {"matrix": [0, 4], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + + {"matrix": [6, 0], "x": 11, "y": 0}, + {"matrix": [6, 1], "x": 12, "y": 0}, + {"matrix": [6, 2], "x": 13, "y": 0}, + {"matrix": [6, 3], "x": 14, "y": 0}, + + {"matrix": [6, 4], "x": 15.25, "y": 0}, + {"matrix": [6, 5], "x": 16.25, "y": 0}, + {"matrix": [6, 6], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [7, 0], "x": 10, "y": 1.25}, + {"matrix": [7, 1], "x": 11, "y": 1.25}, + {"matrix": [7, 2], "x": 12, "y": 1.25}, + {"matrix": [7, 3], "x": 13, "y": 1.25, "w": 2}, + + {"matrix": [7, 5], "x": 15.25, "y": 1.25}, + {"matrix": [7, 6], "x": 16.25, "y": 1.25}, + {"matrix": [6, 7], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [8, 0], "x": 10.5, "y": 2.25}, + {"matrix": [8, 1], "x": 11.5, "y": 2.25}, + {"matrix": [8, 2], "x": 12.5, "y": 2.25}, + {"matrix": [8, 3], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [7, 8], "x": 15.25, "y": 2.25}, + {"matrix": [7, 7], "x": 16.25, "y": 2.25}, + {"matrix": [6, 8], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [9, 0], "x": 10.75, "y": 3.25}, + {"matrix": [9, 1], "x": 11.75, "y": 3.25}, + {"matrix": [8, 4], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [9, 5], "x": 10.25, "y": 4.25}, + {"matrix": [9, 4], "x": 11.25, "y": 4.25}, + {"matrix": [9, 3], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"matrix": [7, 9], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 3], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 5], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 12.5, "y": 5.25}, + {"matrix": [5, 7], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"matrix": [5, 8], "x": 15.25, "y": 5.25}, + {"matrix": [5, 9], "x": 16.25, "y": 5.25}, + {"matrix": [6, 9], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [0, 3], "x": 4, "y": 0}, + {"matrix": [0, 4], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + + {"matrix": [6, 0], "x": 11, "y": 0}, + {"matrix": [6, 1], "x": 12, "y": 0}, + {"matrix": [6, 2], "x": 13, "y": 0}, + {"matrix": [6, 3], "x": 14, "y": 0}, + + {"matrix": [6, 4], "x": 15.25, "y": 0}, + {"matrix": [6, 5], "x": 16.25, "y": 0}, + {"matrix": [6, 6], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [7, 0], "x": 10, "y": 1.25}, + {"matrix": [7, 1], "x": 11, "y": 1.25}, + {"matrix": [7, 2], "x": 12, "y": 1.25}, + {"matrix": [7, 3], "x": 13, "y": 1.25}, + {"matrix": [7, 4], "x": 14, "y": 1.25}, + + {"matrix": [7, 5], "x": 15.25, "y": 1.25}, + {"matrix": [7, 6], "x": 16.25, "y": 1.25}, + {"matrix": [6, 7], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [8, 0], "x": 10.5, "y": 2.25}, + {"matrix": [8, 1], "x": 11.5, "y": 2.25}, + {"matrix": [8, 2], "x": 12.5, "y": 2.25}, + {"matrix": [8, 3], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [7, 8], "x": 15.25, "y": 2.25}, + {"matrix": [7, 7], "x": 16.25, "y": 2.25}, + {"matrix": [6, 8], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [9, 0], "x": 10.75, "y": 3.25}, + {"matrix": [9, 1], "x": 11.75, "y": 3.25}, + {"matrix": [8, 4], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [9, 5], "x": 10.25, "y": 4.25}, + {"matrix": [9, 4], "x": 11.25, "y": 4.25}, + {"matrix": [8, 5], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [9, 3], "x": 14, "y": 4.25}, + + {"matrix": [7, 9], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 3], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 5], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 12.5, "y": 5.25}, + {"matrix": [5, 7], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"matrix": [5, 8], "x": 15.25, "y": 5.25}, + {"matrix": [5, 9], "x": 16.25, "y": 5.25}, + {"matrix": [6, 9], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [0, 3], "x": 4, "y": 0}, + {"matrix": [0, 4], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + + {"matrix": [6, 0], "x": 11, "y": 0}, + {"matrix": [6, 1], "x": 12, "y": 0}, + {"matrix": [6, 2], "x": 13, "y": 0}, + {"matrix": [6, 3], "x": 14, "y": 0}, + + {"matrix": [6, 4], "x": 15.25, "y": 0}, + {"matrix": [6, 5], "x": 16.25, "y": 0}, + {"matrix": [6, 6], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [7, 0], "x": 10, "y": 1.25}, + {"matrix": [7, 1], "x": 11, "y": 1.25}, + {"matrix": [7, 2], "x": 12, "y": 1.25}, + {"matrix": [7, 3], "x": 13, "y": 1.25, "w": 2}, + + {"matrix": [7, 5], "x": 15.25, "y": 1.25}, + {"matrix": [7, 6], "x": 16.25, "y": 1.25}, + {"matrix": [6, 7], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [8, 0], "x": 10.5, "y": 2.25}, + {"matrix": [8, 1], "x": 11.5, "y": 2.25}, + {"matrix": [8, 2], "x": 12.5, "y": 2.25}, + {"matrix": [8, 3], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [7, 8], "x": 15.25, "y": 2.25}, + {"matrix": [7, 7], "x": 16.25, "y": 2.25}, + {"matrix": [6, 8], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [9, 0], "x": 10.75, "y": 3.25}, + {"matrix": [9, 1], "x": 11.75, "y": 3.25}, + {"matrix": [8, 4], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [9, 5], "x": 10.25, "y": 4.25}, + {"matrix": [9, 4], "x": 11.25, "y": 4.25}, + {"matrix": [9, 3], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"matrix": [7, 9], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 3], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 5], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 7], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"matrix": [5, 8], "x": 15.25, "y": 5.25}, + {"matrix": [5, 9], "x": 16.25, "y": 5.25}, + {"matrix": [6, 9], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [0, 3], "x": 4, "y": 0}, + {"matrix": [0, 4], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + + {"matrix": [6, 0], "x": 11, "y": 0}, + {"matrix": [6, 1], "x": 12, "y": 0}, + {"matrix": [6, 2], "x": 13, "y": 0}, + {"matrix": [6, 3], "x": 14, "y": 0}, + + {"matrix": [6, 4], "x": 15.25, "y": 0}, + {"matrix": [6, 5], "x": 16.25, "y": 0}, + {"matrix": [6, 6], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [7, 0], "x": 10, "y": 1.25}, + {"matrix": [7, 1], "x": 11, "y": 1.25}, + {"matrix": [7, 2], "x": 12, "y": 1.25}, + {"matrix": [7, 3], "x": 13, "y": 1.25}, + {"matrix": [7, 4], "x": 14, "y": 1.25}, + + {"matrix": [7, 5], "x": 15.25, "y": 1.25}, + {"matrix": [7, 6], "x": 16.25, "y": 1.25}, + {"matrix": [6, 7], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [8, 0], "x": 10.5, "y": 2.25}, + {"matrix": [8, 1], "x": 11.5, "y": 2.25}, + {"matrix": [8, 2], "x": 12.5, "y": 2.25}, + {"matrix": [8, 3], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [7, 8], "x": 15.25, "y": 2.25}, + {"matrix": [7, 7], "x": 16.25, "y": 2.25}, + {"matrix": [6, 8], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [9, 0], "x": 10.75, "y": 3.25}, + {"matrix": [9, 1], "x": 11.75, "y": 3.25}, + {"matrix": [8, 4], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [9, 5], "x": 10.25, "y": 4.25}, + {"matrix": [9, 4], "x": 11.25, "y": 4.25}, + {"matrix": [8, 5], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [9, 3], "x": 14, "y": 4.25}, + + {"matrix": [7, 9], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 3], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 5], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 7], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"matrix": [5, 8], "x": 15.25, "y": 5.25}, + {"matrix": [5, 9], "x": 16.25, "y": 5.25}, + {"matrix": [6, 9], "x": 17.25, "y": 5.25} + ] + }, "LAYOUT_tkl_iso": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -338,6 +856,529 @@ {"matrix": [5, 6], "x": 12.5, "y": 5.25, "w": 1.25}, {"matrix": [5, 7], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 8], "x": 15.25, "y": 5.25}, + {"matrix": [5, 9], "x": 16.25, "y": 5.25}, + {"matrix": [6, 9], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [0, 3], "x": 4, "y": 0}, + {"matrix": [0, 4], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + + {"matrix": [6, 0], "x": 11, "y": 0}, + {"matrix": [6, 1], "x": 12, "y": 0}, + {"matrix": [6, 2], "x": 13, "y": 0}, + {"matrix": [6, 3], "x": 14, "y": 0}, + + {"matrix": [6, 4], "x": 15.25, "y": 0}, + {"matrix": [6, 5], "x": 16.25, "y": 0}, + {"matrix": [6, 6], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [7, 0], "x": 10, "y": 1.25}, + {"matrix": [7, 1], "x": 11, "y": 1.25}, + {"matrix": [7, 2], "x": 12, "y": 1.25}, + {"matrix": [7, 3], "x": 13, "y": 1.25}, + {"matrix": [7, 4], "x": 14, "y": 1.25}, + + {"matrix": [7, 5], "x": 15.25, "y": 1.25}, + {"matrix": [7, 6], "x": 16.25, "y": 1.25}, + {"matrix": [6, 7], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [8, 0], "x": 10.5, "y": 2.25}, + {"matrix": [8, 1], "x": 11.5, "y": 2.25}, + {"matrix": [8, 2], "x": 12.5, "y": 2.25}, + + {"matrix": [7, 8], "x": 15.25, "y": 2.25}, + {"matrix": [7, 7], "x": 16.25, "y": 2.25}, + {"matrix": [6, 8], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [9, 0], "x": 10.75, "y": 3.25}, + {"matrix": [9, 1], "x": 11.75, "y": 3.25}, + {"matrix": [9, 2], "x": 12.75, "y": 3.25}, + {"matrix": [8, 4], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [9, 5], "x": 10.25, "y": 4.25}, + {"matrix": [9, 4], "x": 11.25, "y": 4.25}, + {"matrix": [8, 5], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [9, 3], "x": 14, "y": 4.25}, + + {"matrix": [7, 9], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 3], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 4], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 5], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 7], "x": 13.75, "y": 5.25, "w": 1.25}, + + {"matrix": [5, 8], "x": 15.25, "y": 5.25}, + {"matrix": [5, 9], "x": 16.25, "y": 5.25}, + {"matrix": [6, 9], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [0, 3], "x": 4, "y": 0}, + {"matrix": [0, 4], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + + {"matrix": [6, 0], "x": 11, "y": 0}, + {"matrix": [6, 1], "x": 12, "y": 0}, + {"matrix": [6, 2], "x": 13, "y": 0}, + {"matrix": [6, 3], "x": 14, "y": 0}, + + {"matrix": [6, 4], "x": 15.25, "y": 0}, + {"matrix": [6, 5], "x": 16.25, "y": 0}, + {"matrix": [6, 6], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [7, 0], "x": 10, "y": 1.25}, + {"matrix": [7, 1], "x": 11, "y": 1.25}, + {"matrix": [7, 2], "x": 12, "y": 1.25}, + {"matrix": [7, 3], "x": 13, "y": 1.25, "w": 2}, + + {"matrix": [7, 5], "x": 15.25, "y": 1.25}, + {"matrix": [7, 6], "x": 16.25, "y": 1.25}, + {"matrix": [6, 7], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [8, 0], "x": 10.5, "y": 2.25}, + {"matrix": [8, 1], "x": 11.5, "y": 2.25}, + {"matrix": [8, 2], "x": 12.5, "y": 2.25}, + + {"matrix": [7, 8], "x": 15.25, "y": 2.25}, + {"matrix": [7, 7], "x": 16.25, "y": 2.25}, + {"matrix": [6, 8], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [9, 0], "x": 10.75, "y": 3.25}, + {"matrix": [9, 1], "x": 11.75, "y": 3.25}, + {"matrix": [9, 2], "x": 12.75, "y": 3.25}, + {"matrix": [8, 4], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [9, 5], "x": 10.25, "y": 4.25}, + {"matrix": [9, 4], "x": 11.25, "y": 4.25}, + {"matrix": [9, 3], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"matrix": [7, 9], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 3], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 5], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 12.5, "y": 5.25}, + {"matrix": [5, 7], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"matrix": [5, 8], "x": 15.25, "y": 5.25}, + {"matrix": [5, 9], "x": 16.25, "y": 5.25}, + {"matrix": [6, 9], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [0, 3], "x": 4, "y": 0}, + {"matrix": [0, 4], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + + {"matrix": [6, 0], "x": 11, "y": 0}, + {"matrix": [6, 1], "x": 12, "y": 0}, + {"matrix": [6, 2], "x": 13, "y": 0}, + {"matrix": [6, 3], "x": 14, "y": 0}, + + {"matrix": [6, 4], "x": 15.25, "y": 0}, + {"matrix": [6, 5], "x": 16.25, "y": 0}, + {"matrix": [6, 6], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [7, 0], "x": 10, "y": 1.25}, + {"matrix": [7, 1], "x": 11, "y": 1.25}, + {"matrix": [7, 2], "x": 12, "y": 1.25}, + {"matrix": [7, 3], "x": 13, "y": 1.25}, + {"matrix": [7, 4], "x": 14, "y": 1.25}, + + {"matrix": [7, 5], "x": 15.25, "y": 1.25}, + {"matrix": [7, 6], "x": 16.25, "y": 1.25}, + {"matrix": [6, 7], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [8, 0], "x": 10.5, "y": 2.25}, + {"matrix": [8, 1], "x": 11.5, "y": 2.25}, + {"matrix": [8, 2], "x": 12.5, "y": 2.25}, + + {"matrix": [7, 8], "x": 15.25, "y": 2.25}, + {"matrix": [7, 7], "x": 16.25, "y": 2.25}, + {"matrix": [6, 8], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [9, 0], "x": 10.75, "y": 3.25}, + {"matrix": [9, 1], "x": 11.75, "y": 3.25}, + {"matrix": [9, 2], "x": 12.75, "y": 3.25}, + {"matrix": [8, 4], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [9, 5], "x": 10.25, "y": 4.25}, + {"matrix": [9, 4], "x": 11.25, "y": 4.25}, + {"matrix": [8, 5], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [9, 3], "x": 14, "y": 4.25}, + + {"matrix": [7, 9], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 3], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 5], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 12.5, "y": 5.25}, + {"matrix": [5, 7], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"matrix": [5, 8], "x": 15.25, "y": 5.25}, + {"matrix": [5, 9], "x": 16.25, "y": 5.25}, + {"matrix": [6, 9], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [0, 3], "x": 4, "y": 0}, + {"matrix": [0, 4], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + + {"matrix": [6, 0], "x": 11, "y": 0}, + {"matrix": [6, 1], "x": 12, "y": 0}, + {"matrix": [6, 2], "x": 13, "y": 0}, + {"matrix": [6, 3], "x": 14, "y": 0}, + + {"matrix": [6, 4], "x": 15.25, "y": 0}, + {"matrix": [6, 5], "x": 16.25, "y": 0}, + {"matrix": [6, 6], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [7, 0], "x": 10, "y": 1.25}, + {"matrix": [7, 1], "x": 11, "y": 1.25}, + {"matrix": [7, 2], "x": 12, "y": 1.25}, + {"matrix": [7, 3], "x": 13, "y": 1.25, "w": 2}, + + {"matrix": [7, 5], "x": 15.25, "y": 1.25}, + {"matrix": [7, 6], "x": 16.25, "y": 1.25}, + {"matrix": [6, 7], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [8, 0], "x": 10.5, "y": 2.25}, + {"matrix": [8, 1], "x": 11.5, "y": 2.25}, + {"matrix": [8, 2], "x": 12.5, "y": 2.25}, + + {"matrix": [7, 8], "x": 15.25, "y": 2.25}, + {"matrix": [7, 7], "x": 16.25, "y": 2.25}, + {"matrix": [6, 8], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [9, 0], "x": 10.75, "y": 3.25}, + {"matrix": [9, 1], "x": 11.75, "y": 3.25}, + {"matrix": [9, 2], "x": 12.75, "y": 3.25}, + {"matrix": [8, 4], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [9, 5], "x": 10.25, "y": 4.25}, + {"matrix": [9, 4], "x": 11.25, "y": 4.25}, + {"matrix": [9, 3], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"matrix": [7, 9], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 3], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 5], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 7], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"matrix": [5, 8], "x": 15.25, "y": 5.25}, + {"matrix": [5, 9], "x": 16.25, "y": 5.25}, + {"matrix": [6, 9], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [0, 3], "x": 4, "y": 0}, + {"matrix": [0, 4], "x": 5, "y": 0}, + + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + + {"matrix": [6, 0], "x": 11, "y": 0}, + {"matrix": [6, 1], "x": 12, "y": 0}, + {"matrix": [6, 2], "x": 13, "y": 0}, + {"matrix": [6, 3], "x": 14, "y": 0}, + + {"matrix": [6, 4], "x": 15.25, "y": 0}, + {"matrix": [6, 5], "x": 16.25, "y": 0}, + {"matrix": [6, 6], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [7, 0], "x": 10, "y": 1.25}, + {"matrix": [7, 1], "x": 11, "y": 1.25}, + {"matrix": [7, 2], "x": 12, "y": 1.25}, + {"matrix": [7, 3], "x": 13, "y": 1.25}, + {"matrix": [7, 4], "x": 14, "y": 1.25}, + + {"matrix": [7, 5], "x": 15.25, "y": 1.25}, + {"matrix": [7, 6], "x": 16.25, "y": 1.25}, + {"matrix": [6, 7], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [8, 0], "x": 10.5, "y": 2.25}, + {"matrix": [8, 1], "x": 11.5, "y": 2.25}, + {"matrix": [8, 2], "x": 12.5, "y": 2.25}, + + {"matrix": [7, 8], "x": 15.25, "y": 2.25}, + {"matrix": [7, 7], "x": 16.25, "y": 2.25}, + {"matrix": [6, 8], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [9, 0], "x": 10.75, "y": 3.25}, + {"matrix": [9, 1], "x": 11.75, "y": 3.25}, + {"matrix": [9, 2], "x": 12.75, "y": 3.25}, + {"matrix": [8, 4], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [9, 5], "x": 10.25, "y": 4.25}, + {"matrix": [9, 4], "x": 11.25, "y": 4.25}, + {"matrix": [8, 5], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [9, 3], "x": 14, "y": 4.25}, + + {"matrix": [7, 9], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 3], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 5], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 7], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 8], "x": 15.25, "y": 5.25}, {"matrix": [5, 9], "x": 16.25, "y": 5.25}, {"matrix": [6, 9], "x": 17.25, "y": 5.25} diff --git a/keyboards/hnahkb/freyr/matrix_diagram.md b/keyboards/hnahkb/freyr/matrix_diagram.md new file mode 100644 index 0000000000..643ee77f01 --- /dev/null +++ b/keyboards/hnahkb/freyr/matrix_diagram.md @@ -0,0 +1,30 @@ +# Matrix Diagram for HnahKB Freyr + +``` +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐ +│00 │ │01 │02 │03 │04 │ │06 │07 │08 │09 │ │60 │61 │62 │63 ││64 │65 │66 │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ ┌───────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │70 │71 │72 │73 │74 ││75 │76 │67 │ │73 │ 2u Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ └─┬─────┤ ┌─────┐ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │80 │81 │82 │83 ││78 │77 │68 │ │ │ │83 │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤└───┴───┴───┘ ┌──┴┐84 │ ISO Enter ┌──┴─────┤ ANSI Enter +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │90 │91 │92 │84 │ │92 │ │ │84 │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ ┌───┐ └───┴────┘ └────────┘ +│40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │95 │94 │85 │93 │ │79 │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬──┴─┬────┤┌───┼───┼───┐ +│50 │51 │52 │53 │54 │55 │56 │57 ││58 │59 │69 │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ +┌────────┐ ┌──────────┐ +│40 │ 2.25u LShift 2.75u RShift │93 │ +└────────┘ └──────────┘ + ┌──────┬───┐ + 1.75u/1u RShift │85 │93 │ + └──────┴───┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│50 │51 │52 │53 │55 │56 │57 │ Tsangan/WKL +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +┌────┬──┬────┬────┬───────────────────────┬────┬────┬──┬────┐ +│50 │ │51 │52 │53 │55 │56 │ │57 │ 6u Centered Spacebar +└────┘ └────┴────┴───────────────────────┴────┴────┘ └────┘ +``` From f214ee7f3ab506d0f758f4f3197a0a329c388db9 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 28 Sep 2023 21:55:14 -0700 Subject: [PATCH 205/496] Rura66 Layout Data (#22155) * Friendly-format `info.json` [style] * Update layout data - separate keyboard halves - add vertical stagger [refactor] --- keyboards/rura66/rev1/info.json | 236 ++++++++++++++++---------------- 1 file changed, 118 insertions(+), 118 deletions(-) diff --git a/keyboards/rura66/rev1/info.json b/keyboards/rura66/rev1/info.json index efab211fca..591d6228b7 100644 --- a/keyboards/rura66/rev1/info.json +++ b/keyboards/rura66/rev1/info.json @@ -1,121 +1,121 @@ { - "keyboard_name": "RURA66", - "manufacturer": "ShinoharaTa", - "url": "https://github.com/ShinoharaTa/keyboards/tree/master/RURA66", - "maintainer": "ShinoharaTa", - "usb": { - "vid": "0x7335", - "pid": "0x0200", - "device_version": "0.0.1" - }, - "rgb_matrix": { - "driver": "ws2812" - }, - "rgblight": { - "saturation_steps": 8, - "brightness_steps": 8, - "led_count": 66, - "max_brightness": 120, - "split_count": [33, 33], - "animations": { - "rainbow_mood": true, - "rainbow_swirl": true, - "static_gradient": true, - "rgb_test": true + "keyboard_name": "RURA66", + "manufacturer": "ShinoharaTa", + "url": "https://github.com/ShinoharaTa/keyboards/tree/master/RURA66", + "maintainer": "ShinoharaTa", + "usb": { + "vid": "0x7335", + "pid": "0x0200", + "device_version": "0.0.1" + }, + "rgb_matrix": { + "driver": "ws2812" + }, + "rgblight": { + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 66, + "max_brightness": 120, + "split_count": [33, 33], + "animations": { + "rainbow_mood": true, + "rainbow_swirl": true, + "static_gradient": true, + "rgb_test": true + } + }, + "matrix_pins": { + "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2"], + "rows": ["D4", "C6", "D7", "E6", "B4"] + }, + "diode_direction": "COL2ROW", + "split": { + "soft_serial_pin": "D2" + }, + "ws2812": { + "pin": "D3" + }, + "processor": "atmega32u4", + "bootloader": "caterina", + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.75}, + {"matrix": [0, 1], "x": 1, "y": 0.75}, + {"matrix": [0, 2], "x": 2, "y": 0.25}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [5, 5], "x": 11, "y": 0}, + {"matrix": [5, 4], "x": 12, "y": 0}, + {"matrix": [5, 3], "x": 13, "y": 0}, + {"matrix": [5, 2], "x": 14, "y": 0.25}, + {"matrix": [5, 1], "x": 15, "y": 0.75}, + {"matrix": [5, 0], "x": 16, "y": 0.75}, + + {"matrix": [1, 0], "x": 0, "y": 1.75}, + {"matrix": [1, 1], "x": 1, "y": 1.75}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + + {"matrix": [6, 5], "x": 11, "y": 1}, + {"matrix": [6, 4], "x": 12, "y": 1}, + {"matrix": [6, 3], "x": 13, "y": 1}, + {"matrix": [6, 2], "x": 14, "y": 1.25}, + {"matrix": [6, 1], "x": 15, "y": 1.75}, + {"matrix": [6, 0], "x": 16, "y": 1.75}, + + {"matrix": [2, 0], "x": 0, "y": 2.75}, + {"matrix": [2, 1], "x": 1, "y": 2.75}, + {"matrix": [2, 2], "x": 2, "y": 2.25}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [2, 6], "x": 6, "y": 2}, + + {"matrix": [7, 6], "x": 10, "y": 2}, + {"matrix": [7, 5], "x": 11, "y": 2}, + {"matrix": [7, 4], "x": 12, "y": 2}, + {"matrix": [7, 3], "x": 13, "y": 2}, + {"matrix": [7, 2], "x": 14, "y": 2.25}, + {"matrix": [7, 1], "x": 15, "y": 2.75}, + {"matrix": [7, 0], "x": 16, "y": 2.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.75}, + {"matrix": [3, 1], "x": 1, "y": 3.75}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + {"matrix": [3, 6], "x": 6, "y": 3}, + {"matrix": [0, 6], "x": 7, "y": 3.8}, + {"matrix": [5, 6], "x": 9, "y": 3.8}, + {"matrix": [8, 6], "x": 10, "y": 3}, + {"matrix": [8, 5], "x": 11, "y": 3}, + {"matrix": [8, 4], "x": 12, "y": 3}, + {"matrix": [8, 3], "x": 13, "y": 3}, + {"matrix": [8, 2], "x": 14, "y": 3.25}, + {"matrix": [8, 1], "x": 15, "y": 3.75}, + {"matrix": [8, 0], "x": 16, "y": 3.75}, + + {"matrix": [4, 0], "x": 0, "y": 4.75, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.75, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4.25, "w": 1.25}, + + {"matrix": [4, 5], "x": 4.8, "y": 4}, + {"matrix": [4, 6], "x": 6, "y": 4.4}, + {"matrix": [1, 6], "x": 7, "y": 4.8}, + {"matrix": [6, 6], "x": 9, "y": 4.8}, + {"matrix": [9, 6], "x": 10, "y": 4.4}, + {"matrix": [9, 5], "x": 11.2, "y": 4}, + + {"matrix": [9, 2], "x": 13.25, "y": 4.25, "w": 1.25}, + {"matrix": [9, 1], "x": 14.5, "y": 4.75, "w": 1.25}, + {"matrix": [9, 0], "x": 15.75, "y": 4.75, "w": 1.25} + ] + } } - }, - "matrix_pins": { - "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2"], - "rows": ["D4", "C6", "D7", "E6", "B4"] - }, - "diode_direction": "COL2ROW", - "split": { - "soft_serial_pin": "D2" - }, - "ws2812": { - "pin": "D3" - }, - "processor": "atmega32u4", - "bootloader": "caterina", - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - - {"matrix": [5, 5], "x": 10, "y": 0}, - {"matrix": [5, 4], "x": 11, "y": 0}, - {"matrix": [5, 3], "x": 12, "y": 0}, - {"matrix": [5, 2], "x": 13, "y": 0}, - {"matrix": [5, 1], "x": 14, "y": 0}, - {"matrix": [5, 0], "x": 15, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - - {"matrix": [6, 5], "x": 10, "y": 1}, - {"matrix": [6, 4], "x": 11, "y": 1}, - {"matrix": [6, 3], "x": 12, "y": 1}, - {"matrix": [6, 2], "x": 13, "y": 1}, - {"matrix": [6, 1], "x": 14, "y": 1}, - {"matrix": [6, 0], "x": 15, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2}, - {"matrix": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2}, - - {"matrix": [7, 6], "x": 9, "y": 2}, - {"matrix": [7, 5], "x": 10, "y": 2}, - {"matrix": [7, 4], "x": 11, "y": 2}, - {"matrix": [7, 3], "x": 12, "y": 2}, - {"matrix": [7, 2], "x": 13, "y": 2}, - {"matrix": [7, 1], "x": 14, "y": 2}, - {"matrix": [7, 0], "x": 15, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3}, - {"matrix": [3, 1], "x": 1, "y": 3}, - {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [3, 6], "x": 6, "y": 3}, - {"matrix": [0, 6], "x": 7, "y": 3}, - {"matrix": [5, 6], "x": 8, "y": 3}, - {"matrix": [8, 6], "x": 9, "y": 3}, - {"matrix": [8, 5], "x": 10, "y": 3}, - {"matrix": [8, 4], "x": 11, "y": 3}, - {"matrix": [8, 3], "x": 12, "y": 3}, - {"matrix": [8, 2], "x": 13, "y": 3}, - {"matrix": [8, 1], "x": 14, "y": 3}, - {"matrix": [8, 0], "x": 15, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 2], "x": 2, "y": 4}, - - {"matrix": [4, 5], "x": 5, "y": 4}, - {"matrix": [4, 6], "x": 6, "y": 4}, - {"matrix": [1, 6], "x": 7, "y": 4}, - {"matrix": [6, 6], "x": 8, "y": 4}, - {"matrix": [9, 6], "x": 9, "y": 4}, - {"matrix": [9, 5], "x": 10, "y": 4}, - - {"matrix": [9, 2], "x": 13, "y": 4}, - {"matrix": [9, 1], "x": 14, "y": 4}, - {"matrix": [9, 0], "x": 15, "y": 4} - ] - } - } } From daea202bfdcb257acb11f14997bdab49b3afb870 Mon Sep 17 00:00:00 2001 From: DUILCHOI <48977039+duilchoi@users.noreply.github.com> Date: Fri, 29 Sep 2023 15:39:15 +0900 Subject: [PATCH 206/496] add linworks fave60 (#20796) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Duncan Sutherland --- keyboards/linworks/fave60/config.h | 25 + keyboards/linworks/fave60/info.json | 446 ++++++++++++++++++ .../linworks/fave60/keymaps/default/keymap.c | 33 ++ .../linworks/fave60/keymaps/via/keymap.c | 33 ++ .../linworks/fave60/keymaps/via/rules.mk | 1 + keyboards/linworks/fave60/readme.md | 28 ++ keyboards/linworks/fave60/rules.mk | 0 7 files changed, 566 insertions(+) create mode 100644 keyboards/linworks/fave60/config.h create mode 100644 keyboards/linworks/fave60/info.json create mode 100644 keyboards/linworks/fave60/keymaps/default/keymap.c create mode 100644 keyboards/linworks/fave60/keymaps/via/keymap.c create mode 100644 keyboards/linworks/fave60/keymaps/via/rules.mk create mode 100644 keyboards/linworks/fave60/readme.md create mode 100644 keyboards/linworks/fave60/rules.mk diff --git a/keyboards/linworks/fave60/config.h b/keyboards/linworks/fave60/config.h new file mode 100644 index 0000000000..55402104dd --- /dev/null +++ b/keyboards/linworks/fave60/config.h @@ -0,0 +1,25 @@ +/* +Copyright 2020 Moritz Plattner + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + diff --git a/keyboards/linworks/fave60/info.json b/keyboards/linworks/fave60/info.json new file mode 100644 index 0000000000..c801c594ca --- /dev/null +++ b/keyboards/linworks/fave60/info.json @@ -0,0 +1,446 @@ +{ + "manufacturer": "Lx3", + "keyboard_name": "fave60", + "maintainer": "keydler", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "backlight": { + "pin": "B7", + "breathing": true + }, + "ws2812": { + "pin": "F5" + }, + "rgblight": { + "led_count": 18, + "sleep": true, + "animations": { + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "twinkle": true + } + }, + "diode_direction": "COL2ROW", + "features": { + "backlight": true, + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["D6", "D4", "B5", "B4", "B6", "C6", "C7", "F4", "F0", "E6", "D1", "D2", "D3", "D5", "B0"], + "rows": ["F6", "F7", "D7", "F1", "D0"] + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x000D", + "vid": "0x4C58" + }, + "Layout_aliases": { + "LAYOUT_all": "LAYOUT_60_ansi_split_bs_rshift" + }, + "community_layouts": [ + "60_ansi", + "60_ansi_tsangan", + "60_ansi_split_bs_rshift", + "60_tsangan_hhkb" + ], + "layouts": { + "LAYOUT_60_ansi": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 1], "w": 2.25, "x": 0, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 14], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "x": 13, "y": 0 }, + { "matrix": [0, 14], "x": 14, "y": 0 }, + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 1], "w": 2.25, "x": 0, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, + { "matrix": [3, 14], "x": 14, "y": 3 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 3], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 14], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 1], "w": 2.25, "x": 0, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3 }, + { "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 7, "x": 4, "y": 4 }, + { "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "matrix": [4, 13], "x": 12.5, "y": 4 }, + { "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4 } + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "x": 13, "y": 0 }, + { "matrix": [0, 14], "x": 14, "y": 0 }, + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 1], "w": 2.25, "x": 0, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, + { "matrix": [3, 14], "x": 14, "y": 3 }, + { "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 7, "x": 4, "y": 4 }, + { "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "matrix": [4, 13], "x": 12.5, "y": 4 }, + { "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4 } + ] + }, + "LAYOUT_winkeyless": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 1], "w": 2.25, "x": 0, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3 }, + { "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 7, "x": 4, "y": 4 }, + { "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4 } + ] + }, + "LAYOUT_winkeyless_split": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "x": 13, "y": 0 }, + { "matrix": [0, 14], "x": 14, "y": 0 }, + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 2], "x": 1.5, "y": 1 }, + { "matrix": [1, 3], "x": 2.5, "y": 1 }, + { "matrix": [1, 4], "x": 3.5, "y": 1 }, + { "matrix": [1, 5], "x": 4.5, "y": 1 }, + { "matrix": [1, 6], "x": 5.5, "y": 1 }, + { "matrix": [1, 7], "x": 6.5, "y": 1 }, + { "matrix": [1, 8], "x": 7.5, "y": 1 }, + { "matrix": [1, 9], "x": 8.5, "y": 1 }, + { "matrix": [1, 10], "x": 9.5, "y": 1 }, + { "matrix": [1, 11], "x": 10.5, "y": 1 }, + { "matrix": [1, 12], "x": 11.5, "y": 1 }, + { "matrix": [1, 13], "x": 12.5, "y": 1 }, + { "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 2], "x": 1.75, "y": 2 }, + { "matrix": [2, 3], "x": 2.75, "y": 2 }, + { "matrix": [2, 4], "x": 3.75, "y": 2 }, + { "matrix": [2, 5], "x": 4.75, "y": 2 }, + { "matrix": [2, 6], "x": 5.75, "y": 2 }, + { "matrix": [2, 7], "x": 6.75, "y": 2 }, + { "matrix": [2, 8], "x": 7.75, "y": 2 }, + { "matrix": [2, 9], "x": 8.75, "y": 2 }, + { "matrix": [2, 10], "x": 9.75, "y": 2 }, + { "matrix": [2, 11], "x": 10.75, "y": 2 }, + { "matrix": [2, 12], "x": 11.75, "y": 2 }, + { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 1], "w": 2.25, "x": 0, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, + { "matrix": [3, 14], "x": 14, "y": 3 }, + { "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 7, "x": 4, "y": 4 }, + { "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4 } + ] + } + } +} + diff --git a/keyboards/linworks/fave60/keymaps/default/keymap.c b/keyboards/linworks/fave60/keymaps/default/keymap.c new file mode 100644 index 0000000000..497aabde0f --- /dev/null +++ b/keyboards/linworks/fave60/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2020 noroadsleft + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_ansi( + KC_GRV, 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_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_MENU, KC_RCTL + ), + [1] = LAYOUT_60_ansi( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, KC_PLUS, _______, + _______, BL_TOGG, BL_DOWN, BL_UP, BL_STEP, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_LCBR, KC_RCBR, KC_PIPE, + _______, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, KC_COLN, KC_DQUO, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_LT, KC_GT, KC_QUES, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/linworks/fave60/keymaps/via/keymap.c b/keyboards/linworks/fave60/keymaps/via/keymap.c new file mode 100644 index 0000000000..497aabde0f --- /dev/null +++ b/keyboards/linworks/fave60/keymaps/via/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2020 noroadsleft + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_ansi( + KC_GRV, 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_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_MENU, KC_RCTL + ), + [1] = LAYOUT_60_ansi( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, KC_PLUS, _______, + _______, BL_TOGG, BL_DOWN, BL_UP, BL_STEP, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_LCBR, KC_RCBR, KC_PIPE, + _______, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, KC_COLN, KC_DQUO, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_LT, KC_GT, KC_QUES, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/linworks/fave60/keymaps/via/rules.mk b/keyboards/linworks/fave60/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/linworks/fave60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/linworks/fave60/readme.md b/keyboards/linworks/fave60/readme.md new file mode 100644 index 0000000000..234010e00c --- /dev/null +++ b/keyboards/linworks/fave60/readme.md @@ -0,0 +1,28 @@ +# linworks/fave60 + +![linworks/fave60 front](https://i.imgur.com/lv97Ymuh.png) +![linworks/fave60 back](https://i.imgur.com/xBLhQIoh.png) + +The Fave60 PCB is a 60 keys keyboard designed by Lx3 (Linworks). + +* Keyboard Maintainer: [keydler](https://github.com/duilchoi) +* Hardware Supported: Fave 60 PCBs +* Hardware Availability: Groupbuy.Check the ongoing ones on [the Linworks Discord](https://discord.gg/UC8gTdVnsj) + +Make example for this keyboard (after setting up your build environment): + + make linworks/fave60:default + +Flashing example for this keyboard: + + make linworks/fave60:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/linworks/fave60/rules.mk b/keyboards/linworks/fave60/rules.mk new file mode 100644 index 0000000000..e69de29bb2 From 5626a9282cfe28cd267c5351e68e15914a5578bb Mon Sep 17 00:00:00 2001 From: DOIO2022 <116554792+DOIO2022@users.noreply.github.com> Date: Fri, 29 Sep 2023 14:42:45 +0800 Subject: [PATCH 207/496] Add KB12 keyboard (#21605) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Pablo Martínez <58857054+elpekenin@users.noreply.github.com> Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Co-authored-by: Joel Challis Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/doio/kb12/config.h | 70 ++++++++++++++++++ keyboards/doio/kb12/info.json | 78 ++++++++++++++++++++ keyboards/doio/kb12/keymaps/default/keymap.c | 55 ++++++++++++++ keyboards/doio/kb12/keymaps/via/keymap.c | 55 ++++++++++++++ keyboards/doio/kb12/keymaps/via/rules.mk | 2 + keyboards/doio/kb12/readme.md | 24 ++++++ keyboards/doio/kb12/rules.mk | 1 + 7 files changed, 285 insertions(+) create mode 100644 keyboards/doio/kb12/config.h create mode 100644 keyboards/doio/kb12/info.json create mode 100644 keyboards/doio/kb12/keymaps/default/keymap.c create mode 100644 keyboards/doio/kb12/keymaps/via/keymap.c create mode 100644 keyboards/doio/kb12/keymaps/via/rules.mk create mode 100644 keyboards/doio/kb12/readme.md create mode 100644 keyboards/doio/kb12/rules.mk diff --git a/keyboards/doio/kb12/config.h b/keyboards/doio/kb12/config.h new file mode 100644 index 0000000000..c7ea434320 --- /dev/null +++ b/keyboards/doio/kb12/config.h @@ -0,0 +1,70 @@ +/* Copyright 2022 DOIO + * Copyright 2022 DOIO2022 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* RGB Matrix config */ +#define RGB_MATRIX_LED_COUNT 12 +#define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS +#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_UP_DOWN +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS + +/* RGB Matrix effect */ +#define ENABLE_RGB_MATRIX_ALPHAS_MODS +#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +#define ENABLE_RGB_MATRIX_BAND_SAT +#define ENABLE_RGB_MATRIX_BAND_VAL +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define ENABLE_RGB_MATRIX_CYCLE_ALL +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +#define ENABLE_RGB_MATRIX_DUAL_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +#define ENABLE_RGB_MATRIX_RAINDROPS +#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +#define ENABLE_RGB_MATRIX_HUE_BREATHING +#define ENABLE_RGB_MATRIX_HUE_PENDULUM +#define ENABLE_RGB_MATRIX_HUE_WAVE +#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +#define ENABLE_RGB_MATRIX_PIXEL_RAIN +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_RAIN +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#define ENABLE_RGB_MATRIX_SPLASH +#define ENABLE_RGB_MATRIX_MULTISPLASH +#define ENABLE_RGB_MATRIX_SOLID_SPLASH +#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH diff --git a/keyboards/doio/kb12/info.json b/keyboards/doio/kb12/info.json new file mode 100644 index 0000000000..fc75fd8c0d --- /dev/null +++ b/keyboards/doio/kb12/info.json @@ -0,0 +1,78 @@ +{ + "keyboard_name": "KB12-01", + "manufacturer": "DOIO", + "url": "", + "maintainer": "DOIO2022", + "usb": { + "vid": "0xD010", + "pid": "0x1201", + "device_version": "0.0.1" + }, + "rgb_matrix": { + "driver": "ws2812" + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [1, 1], "x": 75, "y": 32, "flags": 4}, + {"matrix": [1, 2], "x": 150, "y": 32, "flags": 4}, + {"matrix": [1, 3], "x": 224, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [2, 1], "x": 75, "y": 64, "flags": 4}, + {"matrix": [2, 2], "x": 150, "y": 64, "flags": 4}, + {"matrix": [2, 3], "x": 224, "y": 64, "flags": 4} + ], + "max_brightness": 200 + }, + "matrix_pins": { + "cols": ["B14", "B13", "B12", "B0", "A7"], + "rows": ["B3", "B4", "B9"] + }, + "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 6 + }, + "encoder": { + "rotary": [ + {"pin_a": "B5", "pin_b": "B6"} + ] + }, + "ws2812": { + "pin": "A10" + }, + "processor": "STM32F103", + "bootloader": "stm32duino", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true, + "encoder": true + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 4], "x": 0, "y": 0 }, + { "matrix": [0, 0], "x": 3.25, "y": 0 }, + { "matrix": [0, 1], "x": 4.25, "y": 0 }, + { "matrix": [0, 2], "x": 5.25, "y": 0 }, + { "matrix": [0, 3], "x": 6.25, "y": 0 }, + + { "matrix": [1, 0], "x": 7.75, "y": 0 }, + { "matrix": [1, 1], "x": 8.75, "y": 0 }, + { "matrix": [1, 2], "x": 9.75, "y": 0 }, + { "matrix": [1, 3], "x": 10.75, "y": 0 }, + + { "matrix": [2, 0], "x": 12.25, "y": 0 }, + { "matrix": [2, 1], "x": 13.25, "y": 0 }, + { "matrix": [2, 2], "x": 14.25, "y": 0 }, + { "matrix": [2, 3], "x": 15.25, "y": 0 } + ] + } + } +} diff --git a/keyboards/doio/kb12/keymaps/default/keymap.c b/keyboards/doio/kb12/keymaps/default/keymap.c new file mode 100644 index 0000000000..72360f1a8b --- /dev/null +++ b/keyboards/doio/kb12/keymaps/default/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2022 DOIO + * Copyright 2022 DOIO2022 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#include QMK_KEYBOARD_H + +enum layer_names { + _LAY0, + _LAY1, + _LAY2, + _LAY3, + _LAY4, + _LAY5 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_LAY0] = LAYOUT( + TO(1), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12), + [_LAY1] = LAYOUT( + TO(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), + [_LAY2] = LAYOUT( + TO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_LAY3] = LAYOUT( + TO(4), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_LAY4] = LAYOUT( + TO(5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_LAY5] = LAYOUT( + TO(0), RGB_TOG, RGB_MOD, RGB_SPI, RGB_SPD, RGB_SAI, RGB_SAD, RGB_HUI, RGB_HUD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS) + +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_LAY0] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [_LAY1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_LAY2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_LAY3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_LAY4] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_LAY5] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, +}; +#endif diff --git a/keyboards/doio/kb12/keymaps/via/keymap.c b/keyboards/doio/kb12/keymaps/via/keymap.c new file mode 100644 index 0000000000..72360f1a8b --- /dev/null +++ b/keyboards/doio/kb12/keymaps/via/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2022 DOIO + * Copyright 2022 DOIO2022 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#include QMK_KEYBOARD_H + +enum layer_names { + _LAY0, + _LAY1, + _LAY2, + _LAY3, + _LAY4, + _LAY5 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_LAY0] = LAYOUT( + TO(1), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12), + [_LAY1] = LAYOUT( + TO(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), + [_LAY2] = LAYOUT( + TO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_LAY3] = LAYOUT( + TO(4), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_LAY4] = LAYOUT( + TO(5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_LAY5] = LAYOUT( + TO(0), RGB_TOG, RGB_MOD, RGB_SPI, RGB_SPD, RGB_SAI, RGB_SAD, RGB_HUI, RGB_HUD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS) + +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_LAY0] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [_LAY1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_LAY2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_LAY3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_LAY4] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_LAY5] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, +}; +#endif diff --git a/keyboards/doio/kb12/keymaps/via/rules.mk b/keyboards/doio/kb12/keymaps/via/rules.mk new file mode 100644 index 0000000000..f1adcab005 --- /dev/null +++ b/keyboards/doio/kb12/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/doio/kb12/readme.md b/keyboards/doio/kb12/readme.md new file mode 100644 index 0000000000..1dd7a310f1 --- /dev/null +++ b/keyboards/doio/kb12/readme.md @@ -0,0 +1,24 @@ +# doio/kb12 + +QMK for DOIO Knob 12% . + +* Keyboard Maintainer: DOIO2022 +* Hardware Supported: DOIO Knob 12% + +Make example for this keyboard (after setting up your build environment): + + make doio/kb12:default + +Flashing example for this keyboard: + + make doio/kb12:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/doio/kb12/rules.mk b/keyboards/doio/kb12/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/doio/kb12/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From ab1e851e7da929669514d000bd675adbc9b9f8ae Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 29 Sep 2023 00:30:59 -0700 Subject: [PATCH 208/496] 4pplet Eagle/Viper Rep Rev.A Layout Additions II (#22161) --- .../4pplet/eagle_viper_rep/rev_a/info.json | 429 ++++++++++++++++++ .../eagle_viper_rep/rev_a/matrix_diagram.md | 4 +- 2 files changed, 431 insertions(+), 2 deletions(-) diff --git a/keyboards/4pplet/eagle_viper_rep/rev_a/info.json b/keyboards/4pplet/eagle_viper_rep/rev_a/info.json index 4be993daea..c08f53f7b7 100644 --- a/keyboards/4pplet/eagle_viper_rep/rev_a/info.json +++ b/keyboards/4pplet/eagle_viper_rep/rev_a/info.json @@ -41,6 +41,16 @@ }, "processor": "STM32F072", "bootloader": "stm32-dfu", + "community_layouts": [ + "60_ansi", + "60_ansi_split_bs_rshift", + "60_ansi_tsangan", + "60_tsangan_hhkb", + "60_hhkb", + "60_iso", + "60_iso_split_bs_rshift", + "60_iso_tsangan" + ], "layouts": { "LAYOUT_all": { "layout": [ @@ -115,6 +125,75 @@ {"label": "Ctrl", "matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25} ] }, + "LAYOUT_60_ansi": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [1, 0], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "#", "matrix": [1, 1], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 2], "x": 4, "y": 0}, + {"label": "%", "matrix": [1, 2], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 3], "x": 6, "y": 0}, + {"label": "&", "matrix": [1, 3], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 4], "x": 8, "y": 0}, + {"label": "(", "matrix": [1, 4], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 5], "x": 10, "y": 0}, + {"label": "_", "matrix": [1, 5], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 6], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [3, 6], "x": 13, "y": 0, "w": 2}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [3, 0], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [2, 1], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [3, 1], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [2, 2], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [3, 2], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [2, 3], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [3, 3], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [2, 4], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [3, 4], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [2, 5], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [3, 5], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [2, 6], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [5, 6], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps Lock", "matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [5, 0], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [4, 1], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [5, 1], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [4, 2], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [5, 2], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [4, 3], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [5, 3], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [4, 4], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [4, 5], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [5, 5], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [7, 6], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [7, 1], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [6, 2], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [7, 2], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [6, 3], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [7, 3], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [6, 4], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [7, 4], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [6, 5], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [7, 5], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75}, + + {"label": "Ctrl", "matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [9, 1], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [9, 3], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [9, 4], "x": 10, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25} + ] + }, "LAYOUT_60_ansi_split_bs_rshift": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, @@ -186,6 +265,74 @@ {"label": "Ctrl", "matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25} ] }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [1, 0], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "#", "matrix": [1, 1], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 2], "x": 4, "y": 0}, + {"label": "%", "matrix": [1, 2], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 3], "x": 6, "y": 0}, + {"label": "&", "matrix": [1, 3], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 4], "x": 8, "y": 0}, + {"label": "(", "matrix": [1, 4], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 5], "x": 10, "y": 0}, + {"label": "_", "matrix": [1, 5], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 6], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [3, 6], "x": 13, "y": 0, "w": 2}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [3, 0], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [2, 1], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [3, 1], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [2, 2], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [3, 2], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [2, 3], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [3, 3], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [2, 4], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [3, 4], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [2, 5], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [3, 5], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [2, 6], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [5, 6], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps Lock", "matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [5, 0], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [4, 1], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [5, 1], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [4, 2], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [5, 2], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [4, 3], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [5, 3], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [4, 4], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [4, 5], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [5, 5], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [7, 6], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [7, 1], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [6, 2], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [7, 2], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [6, 3], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [7, 3], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [6, 4], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [7, 4], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [6, 5], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [7, 5], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75}, + + {"label": "Ctrl", "matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [9, 0], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [9, 1], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [9, 3], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [8, 5], "x": 11, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [9, 5], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5} + ] + }, "LAYOUT_60_tsangan_hhkb": { "layout": [ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, @@ -323,6 +470,288 @@ {"label": "GUI", "matrix": [8, 5], "x": 11, "y": 4, "w": 1.5}, {"label": "Alt", "matrix": [9, 5], "x": 12.5, "y": 4} ] + }, + "LAYOUT_60_iso": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [1, 0], "x": 1, "y": 0}, + {"label": "\"", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "\u00a3", "matrix": [1, 1], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 2], "x": 4, "y": 0}, + {"label": "%", "matrix": [1, 2], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 3], "x": 6, "y": 0}, + {"label": "&", "matrix": [1, 3], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 4], "x": 8, "y": 0}, + {"label": "(", "matrix": [1, 4], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 5], "x": 10, "y": 0}, + {"label": "_", "matrix": [1, 5], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 6], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [3, 6], "x": 13, "y": 0, "w": 2}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [3, 0], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [2, 1], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [3, 1], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [2, 2], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [3, 2], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [2, 3], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [3, 3], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [2, 4], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [3, 4], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [2, 5], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [3, 5], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [2, 6], "x": 12.5, "y": 1}, + + {"label": "Caps Lock", "matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [5, 0], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [4, 1], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [5, 1], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [4, 2], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [5, 2], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [4, 3], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [5, 3], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [4, 4], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [4, 5], "x": 10.75, "y": 2}, + {"label": "@", "matrix": [5, 5], "x": 11.75, "y": 2}, + {"label": "~", "matrix": [4, 6], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [7, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "|", "matrix": [7, 0], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [7, 1], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [6, 2], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [7, 2], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [6, 3], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [7, 3], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [6, 4], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [7, 4], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [6, 5], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [7, 5], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75}, + + {"label": "Ctrl", "matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [9, 1], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [9, 3], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [9, 4], "x": 10, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [1, 0], "x": 1, "y": 0}, + {"label": "\"", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "\u00a3", "matrix": [1, 1], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 2], "x": 4, "y": 0}, + {"label": "%", "matrix": [1, 2], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 3], "x": 6, "y": 0}, + {"label": "&", "matrix": [1, 3], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 4], "x": 8, "y": 0}, + {"label": "(", "matrix": [1, 4], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 5], "x": 10, "y": 0}, + {"label": "_", "matrix": [1, 5], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 6], "x": 12, "y": 0}, + {"label": "|", "matrix": [1, 6], "x": 13, "y": 0}, + {"label": "Backspace", "matrix": [3, 6], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [3, 0], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [2, 1], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [3, 1], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [2, 2], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [3, 2], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [2, 3], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [3, 3], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [2, 4], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [3, 4], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [2, 5], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [3, 5], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [2, 6], "x": 12.5, "y": 1}, + + {"label": "Caps Lock", "matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [5, 0], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [4, 1], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [5, 1], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [4, 2], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [5, 2], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [4, 3], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [5, 3], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [4, 4], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [4, 5], "x": 10.75, "y": 2}, + {"label": "@", "matrix": [5, 5], "x": 11.75, "y": 2}, + {"label": "~", "matrix": [4, 6], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [7, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "|", "matrix": [7, 0], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [7, 1], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [6, 2], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [7, 2], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [6, 3], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [7, 3], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [6, 4], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [7, 4], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [6, 5], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [7, 5], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [9, 6], "x": 14, "y": 3}, + + {"label": "Ctrl", "matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [9, 1], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [9, 3], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [9, 4], "x": 10, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [1, 0], "x": 1, "y": 0}, + {"label": "\"", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "\u00a3", "matrix": [1, 1], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 2], "x": 4, "y": 0}, + {"label": "%", "matrix": [1, 2], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 3], "x": 6, "y": 0}, + {"label": "&", "matrix": [1, 3], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 4], "x": 8, "y": 0}, + {"label": "(", "matrix": [1, 4], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 5], "x": 10, "y": 0}, + {"label": "_", "matrix": [1, 5], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 6], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [3, 6], "x": 13, "y": 0, "w": 2}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [3, 0], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [2, 1], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [3, 1], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [2, 2], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [3, 2], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [2, 3], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [3, 3], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [2, 4], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [3, 4], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [2, 5], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [3, 5], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [2, 6], "x": 12.5, "y": 1}, + + {"label": "Caps Lock", "matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [5, 0], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [4, 1], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [5, 1], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [4, 2], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [5, 2], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [4, 3], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [5, 3], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [4, 4], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [4, 5], "x": 10.75, "y": 2}, + {"label": "@", "matrix": [5, 5], "x": 11.75, "y": 2}, + {"label": "~", "matrix": [4, 6], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [7, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "|", "matrix": [7, 0], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [7, 1], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [6, 2], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [7, 2], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [6, 3], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [7, 3], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [6, 4], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [7, 4], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [6, 5], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [7, 5], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75}, + + {"label": "Ctrl", "matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [9, 0], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [9, 1], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [9, 3], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [8, 5], "x": 11, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [9, 5], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [1, 0], "x": 1, "y": 0}, + {"label": "\"", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "\u00a3", "matrix": [1, 1], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 2], "x": 4, "y": 0}, + {"label": "%", "matrix": [1, 2], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 3], "x": 6, "y": 0}, + {"label": "&", "matrix": [1, 3], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 4], "x": 8, "y": 0}, + {"label": "(", "matrix": [1, 4], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 5], "x": 10, "y": 0}, + {"label": "_", "matrix": [1, 5], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 6], "x": 12, "y": 0}, + {"label": "|", "matrix": [1, 6], "x": 13, "y": 0}, + {"label": "Backspace", "matrix": [3, 6], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [3, 0], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [2, 1], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [3, 1], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [2, 2], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [3, 2], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [2, 3], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [3, 3], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [2, 4], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [3, 4], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [2, 5], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [3, 5], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [2, 6], "x": 12.5, "y": 1}, + + {"label": "Caps Lock", "matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [5, 0], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [4, 1], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [5, 1], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [4, 2], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [5, 2], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [4, 3], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [5, 3], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [4, 4], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [4, 5], "x": 10.75, "y": 2}, + {"label": "@", "matrix": [5, 5], "x": 11.75, "y": 2}, + {"label": "~", "matrix": [4, 6], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [7, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "|", "matrix": [7, 0], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [7, 1], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [6, 2], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [7, 2], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [6, 3], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [7, 3], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [6, 4], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [7, 4], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [6, 5], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [7, 5], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [9, 6], "x": 14, "y": 3}, + + {"label": "Ctrl", "matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [9, 0], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [9, 1], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [9, 3], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [8, 5], "x": 11, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [9, 5], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5} + ] } } } diff --git a/keyboards/4pplet/eagle_viper_rep/rev_a/matrix_diagram.md b/keyboards/4pplet/eagle_viper_rep/rev_a/matrix_diagram.md index 6a51e0447e..8ec59179b0 100644 --- a/keyboards/4pplet/eagle_viper_rep/rev_a/matrix_diagram.md +++ b/keyboards/4pplet/eagle_viper_rep/rev_a/matrix_diagram.md @@ -2,7 +2,7 @@ ``` ┌───────┐ - 2u Backspace │36? │ + 2u Backspace │36 │ └───────┘ ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │00 │10 │01 │11 │02 │12 │03 │13 │04 │14 │05 │15 │06 │16 │36 │ @@ -19,6 +19,6 @@ │60 │ 2.25u LShift 2.75u RShift │66 │ └────────┘ └──────────┘ ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ -│80 │90 │91 │93 │85 │95 │86 │ Tsangan/WKL/HHKB +│80 │90 │91 │93 │85 │95 │86 │ Tsangan/HHKB └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ ``` From cfb4bb9b98dccd12132b784a6656ddefdb524728 Mon Sep 17 00:00:00 2001 From: Moritz Plattner Date: Fri, 29 Sep 2023 13:19:03 +0200 Subject: [PATCH 209/496] teleport/native: switch from wrongly used user to kb function, boost matrix scan rate (#21172) * enable LTO * change from _user to _kb function * switch matrix io delay to nops, add opt=3 for higher scan rates * disable console which was enabled for testing but collides with endpoint used by VIA * switched from opt=3 to opt=2 * Update keyboards/teleport/native/native.c Co-authored-by: Joel Challis * slightly upped debounce, as some testers had chatter with async + default debounce --------- Co-authored-by: Joel Challis --- keyboards/teleport/native/ansi/keymaps/perfmode/config.h | 5 ++++- keyboards/teleport/native/ansi/keymaps/perfmode/keymap.c | 3 +++ keyboards/teleport/native/ansi/keymaps/perfmode/rules.mk | 1 + keyboards/teleport/native/info.json | 3 ++- keyboards/teleport/native/iso/keymaps/perfmode/config.h | 5 ++++- keyboards/teleport/native/iso/keymaps/perfmode/keymap.c | 3 +++ keyboards/teleport/native/iso/keymaps/perfmode/rules.mk | 1 + keyboards/teleport/native/native.c | 4 +++- 8 files changed, 21 insertions(+), 4 deletions(-) diff --git a/keyboards/teleport/native/ansi/keymaps/perfmode/config.h b/keyboards/teleport/native/ansi/keymaps/perfmode/config.h index a99590cd1c..896166db12 100644 --- a/keyboards/teleport/native/ansi/keymaps/perfmode/config.h +++ b/keyboards/teleport/native/ansi/keymaps/perfmode/config.h @@ -20,4 +20,7 @@ along with this program. If not, see . /* Increase eeprom size to allow for 5 layers */ #define WEAR_LEVELING_BACKING_SIZE 16384 -#define WEAR_LEVELING_LOGICAL_SIZE 4096 \ No newline at end of file +#define WEAR_LEVELING_LOGICAL_SIZE 4096 + +/* Increase debounce, as asym eager seems to lead to chatter with the fast polling rate in some cases */ +#define DEBOUNCE 7 \ No newline at end of file diff --git a/keyboards/teleport/native/ansi/keymaps/perfmode/keymap.c b/keyboards/teleport/native/ansi/keymaps/perfmode/keymap.c index 1a7852a062..abe6188ccf 100644 --- a/keyboards/teleport/native/ansi/keymaps/perfmode/keymap.c +++ b/keyboards/teleport/native/ansi/keymaps/perfmode/keymap.c @@ -15,6 +15,9 @@ */ #include QMK_KEYBOARD_H +// tested and working +void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); } + enum layers{ BASE, GAME, diff --git a/keyboards/teleport/native/ansi/keymaps/perfmode/rules.mk b/keyboards/teleport/native/ansi/keymaps/perfmode/rules.mk index b735c48f20..d6c9b615e0 100644 --- a/keyboards/teleport/native/ansi/keymaps/perfmode/rules.mk +++ b/keyboards/teleport/native/ansi/keymaps/perfmode/rules.mk @@ -1,4 +1,5 @@ DEBOUNCE_TYPE = asym_eager_defer_pk +OPT = 2 VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/teleport/native/info.json b/keyboards/teleport/native/info.json index 7aec5f77ed..87b97e5b2d 100644 --- a/keyboards/teleport/native/info.json +++ b/keyboards/teleport/native/info.json @@ -19,7 +19,8 @@ "console": false, "extrakey": true, "mousekey": true, - "nkro": true + "nkro": true, + "lto": true }, "diode_direction": "ROW2COL", "matrix_pins": { diff --git a/keyboards/teleport/native/iso/keymaps/perfmode/config.h b/keyboards/teleport/native/iso/keymaps/perfmode/config.h index a99590cd1c..896166db12 100644 --- a/keyboards/teleport/native/iso/keymaps/perfmode/config.h +++ b/keyboards/teleport/native/iso/keymaps/perfmode/config.h @@ -20,4 +20,7 @@ along with this program. If not, see . /* Increase eeprom size to allow for 5 layers */ #define WEAR_LEVELING_BACKING_SIZE 16384 -#define WEAR_LEVELING_LOGICAL_SIZE 4096 \ No newline at end of file +#define WEAR_LEVELING_LOGICAL_SIZE 4096 + +/* Increase debounce, as asym eager seems to lead to chatter with the fast polling rate in some cases */ +#define DEBOUNCE 7 \ No newline at end of file diff --git a/keyboards/teleport/native/iso/keymaps/perfmode/keymap.c b/keyboards/teleport/native/iso/keymaps/perfmode/keymap.c index 3be8eec3dd..96e9925fd5 100644 --- a/keyboards/teleport/native/iso/keymaps/perfmode/keymap.c +++ b/keyboards/teleport/native/iso/keymaps/perfmode/keymap.c @@ -15,6 +15,9 @@ */ #include QMK_KEYBOARD_H +// tested and working +void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); } + enum layers{ BASE, GAME, diff --git a/keyboards/teleport/native/iso/keymaps/perfmode/rules.mk b/keyboards/teleport/native/iso/keymaps/perfmode/rules.mk index b735c48f20..d6c9b615e0 100644 --- a/keyboards/teleport/native/iso/keymaps/perfmode/rules.mk +++ b/keyboards/teleport/native/iso/keymaps/perfmode/rules.mk @@ -1,4 +1,5 @@ DEBOUNCE_TYPE = asym_eager_defer_pk +OPT = 2 VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/teleport/native/native.c b/keyboards/teleport/native/native.c index 042e2bfa95..c3cac80c22 100644 --- a/keyboards/teleport/native/native.c +++ b/keyboards/teleport/native/native.c @@ -17,9 +17,11 @@ #include "quantum.h" /* This board has !SDB of the is31 wired to D2. Set high to enable */ -void keyboard_post_init_user(void) { +void keyboard_post_init_kb(void) { setPinOutput(B9); writePinHigh(B9); + + keyboard_post_init_user(); } #ifdef RGB_MATRIX_ENABLE From 2eed1f5bad453b11e9f2190239f9c43f4dde979d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20A=2E=20Volpato?= Date: Fri, 29 Sep 2023 10:53:12 -0300 Subject: [PATCH 210/496] Add `RGBLIGHT_DEFAULT_ON` macro configuration option (#20857) * ADD RGB_DEFAULT_DISABLED option and updated documentation * Formatting * Add as by fauxpark's suggestion Co-authored by: fauxpark * Formatting * Use boolean values instead of numerical Co-authored-by: Ryan * Edit documentation formatting Co-authored-by: Ryan * Remove comment Co-authored-by: Ryan * Set RGB mode to DEFAULT macro at init Co-authored-by: Ryan --------- Co-authored-by: Ryan Co-authored-by: zvecr --- docs/feature_rgblight.md | 1 + quantum/rgblight/rgblight.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/feature_rgblight.md b/docs/feature_rgblight.md index f5c8d56e4e..2db878eb5f 100644 --- a/docs/feature_rgblight.md +++ b/docs/feature_rgblight.md @@ -102,6 +102,7 @@ Your RGB lighting can be configured by placing these `#define`s in your `config. |`RGBLIGHT_DEFAULT_SAT` |`UINT8_MAX` (255) |The default saturation to use upon clearing the EEPROM | |`RGBLIGHT_DEFAULT_VAL` |`RGBLIGHT_LIMIT_VAL` |The default value (brightness) to use upon clearing the EEPROM | |`RGBLIGHT_DEFAULT_SPD` |`0` |The default speed to use upon clearing the EEPROM | +|`RGBLIGHT_DEFAULT_ON` |`true` |Enable RGB lighting upon clearing the EEPROM | ## Effects and Animations diff --git a/quantum/rgblight/rgblight.c b/quantum/rgblight/rgblight.c index aea0ae44cb..8ac886d441 100644 --- a/quantum/rgblight/rgblight.c +++ b/quantum/rgblight/rgblight.c @@ -86,6 +86,10 @@ static uint8_t mode_base_table[] = { # define RGBLIGHT_DEFAULT_SPD 0 #endif +#if !defined(RGBLIGHT_DEFAULT_ON) +# define RGBLIGHT_DEFAULT_ON true +#endif + static inline int is_static_effect(uint8_t mode) { return memchr(static_effect_table, mode, sizeof(static_effect_table)) != NULL; } @@ -195,7 +199,7 @@ void eeconfig_update_rgblight_current(void) { } void eeconfig_update_rgblight_default(void) { - rgblight_config.enable = 1; + rgblight_config.enable = RGBLIGHT_DEFAULT_ON; rgblight_config.velocikey = 0; rgblight_config.mode = RGBLIGHT_DEFAULT_MODE; rgblight_config.hue = RGBLIGHT_DEFAULT_HUE; From 6910ed2de5c8935712b646e1c2143c4e7e5f9bea Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 29 Sep 2023 18:31:21 +0100 Subject: [PATCH 211/496] Add _DEFAULT_ON lighting configuration options (#21865) --- docs/feature_backlight.md | 3 ++- docs/feature_led_matrix.md | 1 + docs/feature_rgb_matrix.md | 1 + quantum/backlight/backlight.c | 21 ++++++++++++++------- quantum/led_matrix/led_matrix.c | 2 +- quantum/led_matrix/led_matrix.h | 4 ++++ quantum/rgb_matrix/rgb_matrix.c | 2 +- quantum/rgb_matrix/rgb_matrix.h | 4 ++++ 8 files changed, 28 insertions(+), 10 deletions(-) diff --git a/docs/feature_backlight.md b/docs/feature_backlight.md index 2f9381e3dc..89916aa813 100644 --- a/docs/feature_backlight.md +++ b/docs/feature_backlight.md @@ -37,8 +37,9 @@ Add the following to your `config.h`: |`BREATHING_PERIOD` |`6` |The length of one backlight "breath" in seconds | |`BACKLIGHT_ON_STATE` |`1` |The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low | |`BACKLIGHT_LIMIT_VAL` |`255` |The maximum duty cycle of the backlight -- `255` allows for full brightness, any lower will decrease the maximum.| +|`BACKLIGHT_DEFAULT_ON` |`true` |Enable backlight upon clearing the EEPROM | +|`BACKLIGHT_DEFAULT_BREATHING`|`false` |Whether to enable backlight breathing upon clearing the EEPROM | |`BACKLIGHT_DEFAULT_LEVEL` |`BACKLIGHT_LEVELS`|The default backlight level to use upon clearing the EEPROM | -|`BACKLIGHT_DEFAULT_BREATHING`|*Not defined* |Whether to enable backlight breathing upon clearing the EEPROM | |`BACKLIGHT_PWM_PERIOD` |2048Hz |Defaults to `BACKLIGHT_PWM_COUNTER_FREQUENCY / 2048`, which results in a PWM frequency of 2048Hz. | Unless you are designing your own keyboard, you generally should not need to change the `BACKLIGHT_PIN` or `BACKLIGHT_ON_STATE`. diff --git a/docs/feature_led_matrix.md b/docs/feature_led_matrix.md index e44cc87e32..3f91146708 100644 --- a/docs/feature_led_matrix.md +++ b/docs/feature_led_matrix.md @@ -365,6 +365,7 @@ For inspiration and examples, check out the built-in effects under `quantum/led_ #define LED_MATRIX_LED_PROCESS_LIMIT (LED_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) #define LED_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) #define LED_MATRIX_MAXIMUM_BRIGHTNESS 255 // limits maximum brightness of LEDs +#define LED_MATRIX_DEFAULT_ON true // Sets the default enabled state, if none has been set #define LED_MATRIX_DEFAULT_MODE LED_MATRIX_SOLID // Sets the default mode, if none has been set #define LED_MATRIX_DEFAULT_VAL LED_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set #define LED_MATRIX_DEFAULT_SPD 127 // Sets the default animation speed, if none has been set diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index 3fc8a7330b..5222209e57 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -880,6 +880,7 @@ These are defined in [`color.h`](https://github.com/qmk/qmk_firmware/blob/master #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set #define RGB_MATRIX_DEFAULT_HUE 0 // Sets the default hue value, if none has been set #define RGB_MATRIX_DEFAULT_SAT 255 // Sets the default saturation value, if none has been set +#define RGB_MATRIX_DEFAULT_ON true // Sets the default enabled state, if none has been set #define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set #define RGB_MATRIX_DEFAULT_SPD 127 // Sets the default animation speed, if none has been set #define RGB_MATRIX_DISABLE_KEYCODES // disables control of rgb matrix by keycodes (must use code functions to control the feature) diff --git a/quantum/backlight/backlight.c b/quantum/backlight/backlight.c index 9d9f944f5d..e89b34696c 100644 --- a/quantum/backlight/backlight.c +++ b/quantum/backlight/backlight.c @@ -22,10 +22,21 @@ along with this program. If not, see . backlight_config_t backlight_config; +#ifndef BACKLIGHT_DEFAULT_ON +# define BACKLIGHT_DEFAULT_ON true +#endif + #ifndef BACKLIGHT_DEFAULT_LEVEL # define BACKLIGHT_DEFAULT_LEVEL BACKLIGHT_LEVELS #endif +#ifndef BACKLIGHT_DEFAULT_BREATHING +# define BACKLIGHT_DEFAULT_BREATHING false +#else +# undef BACKLIGHT_DEFAULT_BREATHING +# define BACKLIGHT_DEFAULT_BREATHING true +#endif + #ifdef BACKLIGHT_BREATHING // TODO: migrate to backlight_config_t static uint8_t breathing_period = BREATHING_PERIOD; @@ -172,13 +183,9 @@ void eeconfig_update_backlight_current(void) { } void eeconfig_update_backlight_default(void) { - backlight_config.enable = 1; -#ifdef BACKLIGHT_DEFAULT_BREATHING - backlight_config.breathing = 1; -#else - backlight_config.breathing = 0; -#endif - backlight_config.level = BACKLIGHT_DEFAULT_LEVEL; + backlight_config.enable = BACKLIGHT_DEFAULT_ON; + backlight_config.breathing = BACKLIGHT_DEFAULT_BREATHING; + backlight_config.level = BACKLIGHT_DEFAULT_LEVEL; eeconfig_update_backlight(backlight_config.raw); } diff --git a/quantum/led_matrix/led_matrix.c b/quantum/led_matrix/led_matrix.c index a59d475521..c13ca94077 100644 --- a/quantum/led_matrix/led_matrix.c +++ b/quantum/led_matrix/led_matrix.c @@ -97,7 +97,7 @@ void eeconfig_update_led_matrix(void) { void eeconfig_update_led_matrix_default(void) { dprintf("eeconfig_update_led_matrix_default\n"); - led_matrix_eeconfig.enable = 1; + led_matrix_eeconfig.enable = LED_MATRIX_DEFAULT_ON; led_matrix_eeconfig.mode = LED_MATRIX_DEFAULT_MODE; led_matrix_eeconfig.val = LED_MATRIX_DEFAULT_VAL; led_matrix_eeconfig.speed = LED_MATRIX_DEFAULT_SPD; diff --git a/quantum/led_matrix/led_matrix.h b/quantum/led_matrix/led_matrix.h index 771afc47ec..316585b1fe 100644 --- a/quantum/led_matrix/led_matrix.h +++ b/quantum/led_matrix/led_matrix.h @@ -59,6 +59,10 @@ # define LED_MATRIX_SPD_STEP 16 #endif +#ifndef LED_MATRIX_DEFAULT_ON +# define LED_MATRIX_DEFAULT_ON true +#endif + #ifndef LED_MATRIX_DEFAULT_MODE # define LED_MATRIX_DEFAULT_MODE LED_MATRIX_SOLID #endif diff --git a/quantum/rgb_matrix/rgb_matrix.c b/quantum/rgb_matrix/rgb_matrix.c index ff3e5b2b35..8e69616a0e 100644 --- a/quantum/rgb_matrix/rgb_matrix.c +++ b/quantum/rgb_matrix/rgb_matrix.c @@ -99,7 +99,7 @@ void eeconfig_update_rgb_matrix(void) { void eeconfig_update_rgb_matrix_default(void) { dprintf("eeconfig_update_rgb_matrix_default\n"); - rgb_matrix_config.enable = 1; + rgb_matrix_config.enable = RGB_MATRIX_DEFAULT_ON; rgb_matrix_config.mode = RGB_MATRIX_DEFAULT_MODE; rgb_matrix_config.hsv = (HSV){RGB_MATRIX_DEFAULT_HUE, RGB_MATRIX_DEFAULT_SAT, RGB_MATRIX_DEFAULT_VAL}; rgb_matrix_config.speed = RGB_MATRIX_DEFAULT_SPD; diff --git a/quantum/rgb_matrix/rgb_matrix.h b/quantum/rgb_matrix/rgb_matrix.h index 025a1f4700..3e1db3cdce 100644 --- a/quantum/rgb_matrix/rgb_matrix.h +++ b/quantum/rgb_matrix/rgb_matrix.h @@ -70,6 +70,10 @@ # define RGB_MATRIX_SPD_STEP 16 #endif +#ifndef RGB_MATRIX_DEFAULT_ON +# define RGB_MATRIX_DEFAULT_ON true +#endif + #ifndef RGB_MATRIX_DEFAULT_MODE # ifdef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT From b404d5e9e4907314df19fea93876b1b2a8f4ff5b Mon Sep 17 00:00:00 2001 From: Andrew Kannan Date: Fri, 29 Sep 2023 22:43:40 -0400 Subject: [PATCH 212/496] Add Brutalv2 60 Keyboard (#22094) Co-authored-by: Duncan Sutherland --- keyboards/cannonkeys/brutalv2_60/config.h | 10 + keyboards/cannonkeys/brutalv2_60/info.json | 700 ++++++++++++++++++ .../brutalv2_60/keymaps/default/keymap.c | 36 + .../brutalv2_60/keymaps/via/keymap.c | 36 + .../brutalv2_60/keymaps/via/rules.mk | 1 + keyboards/cannonkeys/brutalv2_60/readme.md | 24 + keyboards/cannonkeys/brutalv2_60/rules.mk | 1 + 7 files changed, 808 insertions(+) create mode 100644 keyboards/cannonkeys/brutalv2_60/config.h create mode 100644 keyboards/cannonkeys/brutalv2_60/info.json create mode 100644 keyboards/cannonkeys/brutalv2_60/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/brutalv2_60/keymaps/via/keymap.c create mode 100644 keyboards/cannonkeys/brutalv2_60/keymaps/via/rules.mk create mode 100644 keyboards/cannonkeys/brutalv2_60/readme.md create mode 100644 keyboards/cannonkeys/brutalv2_60/rules.mk diff --git a/keyboards/cannonkeys/brutalv2_60/config.h b/keyboards/cannonkeys/brutalv2_60/config.h new file mode 100644 index 0000000000..8b8e7f9aa5 --- /dev/null +++ b/keyboards/cannonkeys/brutalv2_60/config.h @@ -0,0 +1,10 @@ +// Copyright 2023 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U + +#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 + diff --git a/keyboards/cannonkeys/brutalv2_60/info.json b/keyboards/cannonkeys/brutalv2_60/info.json new file mode 100644 index 0000000000..3ee5f0d576 --- /dev/null +++ b/keyboards/cannonkeys/brutalv2_60/info.json @@ -0,0 +1,700 @@ +{ + "manufacturer": "CannonKeys", + "keyboard_name": "Brutal V2 60", + "maintainer": "awkannan", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "GP12", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["GP3", "GP2", "GP29", "GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP22", "GP21", "GP20", "GP19", "GP18"], + "rows": ["GP4", "GP5", "GP13", "GP14", "GP10"] + }, + "processor": "RP2040", + "url": "https://cannonkeys.com", + "usb": { + "device_version": "0.0.1", + "pid": "0x000B", + "vid": "0xCA04" + }, + "community_layouts": [ + "60_ansi", + "60_ansi_split_bs_rshift", + "60_ansi_tsangan", + "60_tsangan_hhkb", + "60_hhkb", + "60_iso", + "60_iso_split_bs_rshift", + "60_iso_tsangan" + ], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Del", "matrix": [2, 12], "x": 14, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Del", "matrix": [2, 12], "x": 14, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [2, 12], "x": 14, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Bspc", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Ctrl", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "Alt", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Win", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Win", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Alt", "matrix": [4, 12], "x": 12.5, "y": 4} + ] + }, + "LAYOUT_60_iso": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "|", "matrix": [1, 13], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Del", "matrix": [2, 12], "x": 14, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "|", "matrix": [1, 13], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "|", "matrix": [1, 13], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Del", "matrix": [2, 12], "x": 14, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "|", "matrix": [1, 13], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/cannonkeys/brutalv2_60/keymaps/default/keymap.c b/keyboards/cannonkeys/brutalv2_60/keymaps/default/keymap.c new file mode 100644 index 0000000000..4678bab52a --- /dev/null +++ b/keyboards/cannonkeys/brutalv2_60/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +// Copyright 2023 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _BASE, + _FN1, + _FN2, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + QK_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_BSPC, KC_DEL, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN2), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL + ), + + [_FN1] = LAYOUT_all( + 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_DEL, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, QK_BOOT + ), + + [_FN2] = LAYOUT_all( + 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_DEL, _______, + _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, DB_TOGG, QK_BOOT + ) +}; diff --git a/keyboards/cannonkeys/brutalv2_60/keymaps/via/keymap.c b/keyboards/cannonkeys/brutalv2_60/keymaps/via/keymap.c new file mode 100644 index 0000000000..4678bab52a --- /dev/null +++ b/keyboards/cannonkeys/brutalv2_60/keymaps/via/keymap.c @@ -0,0 +1,36 @@ +// Copyright 2023 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _BASE, + _FN1, + _FN2, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + QK_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_BSPC, KC_DEL, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN2), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL + ), + + [_FN1] = LAYOUT_all( + 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_DEL, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, QK_BOOT + ), + + [_FN2] = LAYOUT_all( + 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_DEL, _______, + _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, DB_TOGG, QK_BOOT + ) +}; diff --git a/keyboards/cannonkeys/brutalv2_60/keymaps/via/rules.mk b/keyboards/cannonkeys/brutalv2_60/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/cannonkeys/brutalv2_60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/brutalv2_60/readme.md b/keyboards/cannonkeys/brutalv2_60/readme.md new file mode 100644 index 0000000000..8c08e3a30a --- /dev/null +++ b/keyboards/cannonkeys/brutalv2_60/readme.md @@ -0,0 +1,24 @@ +# Brutal v2 60 + +Brutal v2 60 Keyboard + +Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +Hardware Supported: RP2040 + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/brutalv2_60:default + +Flashing example for this keyboard: + + make cannonkeys/brutalv2_60:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Hold the "BOOTMODE" button on the back of the PCB and briefly press the "RESET" button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cannonkeys/brutalv2_60/rules.mk b/keyboards/cannonkeys/brutalv2_60/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/cannonkeys/brutalv2_60/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From c23d873e1a83f0c889ecb4863ec7bef5f89ee148 Mon Sep 17 00:00:00 2001 From: Brian Low Date: Sat, 30 Sep 2023 12:15:47 -0600 Subject: [PATCH 213/496] keyboards: Add support for Sofle Choc (#16736) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-developed-by: Brian Low Co-developed-by: duese Co-authored-by: Thomas Weißschuh --- keyboards/sofle_choc/info.json | 176 ++++++++++++++++++ keyboards/sofle_choc/keymaps/default/config.h | 29 +++ keyboards/sofle_choc/keymaps/default/keymap.c | 48 +++++ keyboards/sofle_choc/keymaps/default/rules.mk | 1 + keyboards/sofle_choc/keymaps/via/config.h | 29 +++ keyboards/sofle_choc/keymaps/via/keymap.c | 48 +++++ keyboards/sofle_choc/keymaps/via/rules.mk | 2 + keyboards/sofle_choc/readme.md | 25 +++ keyboards/sofle_choc/rules.mk | 0 keyboards/sofle_choc/sofle_choc.c | 48 +++++ 10 files changed, 406 insertions(+) create mode 100644 keyboards/sofle_choc/info.json create mode 100644 keyboards/sofle_choc/keymaps/default/config.h create mode 100644 keyboards/sofle_choc/keymaps/default/keymap.c create mode 100644 keyboards/sofle_choc/keymaps/default/rules.mk create mode 100644 keyboards/sofle_choc/keymaps/via/config.h create mode 100644 keyboards/sofle_choc/keymaps/via/keymap.c create mode 100644 keyboards/sofle_choc/keymaps/via/rules.mk create mode 100644 keyboards/sofle_choc/readme.md create mode 100644 keyboards/sofle_choc/rules.mk create mode 100644 keyboards/sofle_choc/sofle_choc.c diff --git a/keyboards/sofle_choc/info.json b/keyboards/sofle_choc/info.json new file mode 100644 index 0000000000..172f60256e --- /dev/null +++ b/keyboards/sofle_choc/info.json @@ -0,0 +1,176 @@ +{ + "manufacturer": "Brian Low", + "keyboard_name": "Sofle Choc", + "maintainer": "Brian Low ", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "encoder": { + "enabled": true, + "rotary": [ + { "pin_a": "F5", "pin_b": "F4" } + ] + }, + "features": { + "oled": true, + "rgb_matrix": true, + "extrakey": true + }, + "development_board": "promicro", + "rgb_matrix": { + "driver": "ws2812", + "split_count": [29, 29], + "layout": [ + { "flags": 4, "matrix": [0, 5], "x": 95, "y": 7 }, + { "flags": 4, "matrix": [1, 5], "x": 95, "y": 21 }, + { "flags": 4, "matrix": [2, 5], "x": 95, "y": 36 }, + { "flags": 4, "matrix": [3, 5], "x": 95, "y": 50 }, + { "flags": 4, "matrix": [4, 4], "x":115, "y": 64 }, + { "flags": 4, "matrix": [4, 3], "x": 95, "y": 64 }, + { "flags": 4, "matrix": [4, 2], "x": 76, "y": 62 }, + { "flags": 4, "matrix": [3, 4], "x": 76, "y": 48 }, + { "flags": 4, "matrix": [2, 4], "x": 76, "y": 33 }, + { "flags": 4, "matrix": [1, 4], "x": 76, "y": 19 }, + { "flags": 4, "matrix": [0, 4], "x": 76, "y": 5 }, + { "flags": 4, "matrix": [0, 3], "x": 57, "y": 3 }, + { "flags": 4, "matrix": [1, 3], "x": 57, "y": 17 }, + { "flags": 4, "matrix": [2, 3], "x": 57, "y": 31 }, + { "flags": 4, "matrix": [3, 3], "x": 57, "y": 46 }, + { "flags": 4, "matrix": [4, 1], "x": 57, "y": 62 }, + { "flags": 4, "matrix": [4, 0], "x": 38, "y": 64 }, + { "flags": 4, "matrix": [3, 2], "x": 38, "y": 48 }, + { "flags": 4, "matrix": [2, 2], "x": 38, "y": 33 }, + { "flags": 4, "matrix": [1, 2], "x": 38, "y": 19 }, + { "flags": 4, "matrix": [0, 2], "x": 38, "y": 5 }, + { "flags": 4, "matrix": [0, 1], "x": 19, "y": 7 }, + { "flags": 4, "matrix": [1, 1], "x": 19, "y": 21 }, + { "flags": 4, "matrix": [2, 1], "x": 19, "y": 36 }, + { "flags": 4, "matrix": [3, 1], "x": 19, "y": 50 }, + { "flags": 4, "matrix": [3, 0], "x": 0, "y": 50 }, + { "flags": 4, "matrix": [2, 0], "x": 0, "y": 36 }, + { "flags": 4, "matrix": [1, 0], "x": 0, "y": 21 }, + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 7 }, + + { "flags": 4, "matrix": [5, 5], "x":129, "y": 7 }, + { "flags": 4, "matrix": [6, 5], "x":129, "y": 21 }, + { "flags": 4, "matrix": [7, 5], "x":129, "y": 36 }, + { "flags": 4, "matrix": [8, 5], "x":129, "y": 50 }, + { "flags": 4, "matrix": [9, 4], "x":119, "y": 64 }, + { "flags": 4, "matrix": [9, 3], "x":129, "y": 64 }, + { "flags": 4, "matrix": [9, 2], "x":148, "y": 62 }, + { "flags": 4, "matrix": [8, 4], "x":148, "y": 48 }, + { "flags": 4, "matrix": [7, 4], "x":148, "y": 33 }, + { "flags": 4, "matrix": [6, 4], "x":148, "y": 19 }, + { "flags": 4, "matrix": [5, 4], "x":148, "y": 5 }, + { "flags": 4, "matrix": [5, 3], "x":167, "y": 3 }, + { "flags": 4, "matrix": [6, 3], "x":167, "y": 17 }, + { "flags": 4, "matrix": [7, 3], "x":167, "y": 31 }, + { "flags": 4, "matrix": [8, 3], "x":167, "y": 46 }, + { "flags": 4, "matrix": [9, 1], "x":167, "y": 62 }, + { "flags": 4, "matrix": [9, 0], "x":186, "y": 64 }, + { "flags": 4, "matrix": [8, 2], "x":186, "y": 48 }, + { "flags": 4, "matrix": [7, 2], "x":186, "y": 33 }, + { "flags": 4, "matrix": [6, 2], "x":186, "y": 19 }, + { "flags": 4, "matrix": [5, 2], "x":186, "y": 5 }, + { "flags": 4, "matrix": [5, 1], "x":209, "y": 7 }, + { "flags": 4, "matrix": [6, 1], "x":209, "y": 21 }, + { "flags": 4, "matrix": [7, 1], "x":209, "y": 36 }, + { "flags": 4, "matrix": [8, 1], "x":209, "y": 50 }, + { "flags": 4, "matrix": [8, 0], "x":224, "y": 50 }, + { "flags": 4, "matrix": [7, 0], "x":224, "y": 36 }, + { "flags": 4, "matrix": [6, 0], "x":224, "y": 21 }, + { "flags": 4, "matrix": [5, 0], "x":224, "y": 7 } + ] + }, + "split": { + "enabled": true, + "soft_serial_pin": "D2", + "encoder": { + "right": { + "rotary": [ + { "pin_a": "F4", "pin_b": "F5" } + ] + } + } + }, + "url": "https://github.com/josefadamcik/SofleKeyboard", + "usb": { + "device_version": "0.0.1", + "pid": "0x0287", + "vid": "0xFC32" + }, + "ws2812": { + "pin": "D3" + }, + "matrix_pins": { + "cols": ["F6", "F7", "B1", "B3", "B2", "B6"], + "rows": ["C6", "D7", "E6", "B4", "B5"] + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.5}, + {"matrix": [0, 1], "x": 1, "y": 0.375}, + {"matrix": [0, 2], "x": 2, "y": 0.125}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.125}, + {"matrix": [0, 5], "x": 5, "y": 0.25}, + {"matrix": [5, 5], "x": 10.5, "y": 0.25}, + {"matrix": [5, 4], "x": 11.5, "y": 0.125}, + {"matrix": [5, 3], "x": 12.5, "y": 0}, + {"matrix": [5, 2], "x": 13.5, "y": 0.125}, + {"matrix": [5, 1], "x": 14.5, "y": 0.375}, + {"matrix": [5, 0], "x": 15.5, "y": 0.5}, + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.375}, + {"matrix": [1, 2], "x": 2, "y": 1.125}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.125}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [6, 5], "x": 10.5, "y": 1.25}, + {"matrix": [6, 4], "x": 11.5, "y": 1.125}, + {"matrix": [6, 3], "x": 12.5, "y": 1}, + {"matrix": [6, 2], "x": 13.5, "y": 1.125}, + {"matrix": [6, 1], "x": 14.5, "y": 1.375}, + {"matrix": [6, 0], "x": 15.5, "y": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2.5}, + {"matrix": [2, 1], "x": 1, "y": 2.375}, + {"matrix": [2, 2], "x": 2, "y": 2.125}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.125}, + {"matrix": [2, 5], "x": 5, "y": 2.25}, + {"matrix": [7, 5], "x": 10.5, "y": 2.25}, + {"matrix": [7, 4], "x": 11.5, "y": 2.125}, + {"matrix": [7, 3], "x": 12.5, "y": 2}, + {"matrix": [7, 2], "x": 13.5, "y": 2.125}, + {"matrix": [7, 1], "x": 14.5, "y": 2.375}, + {"matrix": [7, 0], "x": 15.5, "y": 2.5}, + {"matrix": [3, 0], "x": 0, "y": 3.5}, + {"matrix": [3, 1], "x": 1, "y": 3.375}, + {"matrix": [3, 2], "x": 2, "y": 3.125}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3.125}, + {"matrix": [3, 5], "x": 5, "y": 3.25}, + {"matrix": [4, 5], "x": 6, "y": 2.75}, + {"matrix": [9, 5], "x": 9.5, "y": 2.75}, + {"matrix": [8, 5], "x": 10.5, "y": 3.25}, + {"matrix": [8, 4], "x": 11.5, "y": 3.125}, + {"matrix": [8, 3], "x": 12.5, "y": 3}, + {"matrix": [8, 2], "x": 13.5, "y": 3.125}, + {"matrix": [8, 1], "x": 14.5, "y": 3.375}, + {"matrix": [8, 0], "x": 15.5, "y": 3.5}, + {"matrix": [4, 0], "x": 1.5, "y": 4.375}, + {"matrix": [4, 1], "x": 2.5, "y": 4.125}, + {"matrix": [4, 2], "x": 3.5, "y": 4.15}, + {"matrix": [4, 3], "x": 4.5, "y": 4.25}, + {"matrix": [4, 4], "x": 6, "y": 4.25, "h": 1.5}, + {"matrix": [9, 4], "x": 9.5, "y": 4.25, "h": 1.5}, + {"matrix": [9, 3], "x": 11, "y": 4.25}, + {"matrix": [9, 2], "x": 12, "y": 4.15}, + {"matrix": [9, 1], "x": 13, "y": 4.125}, + {"matrix": [9, 0], "x": 14, "y": 4.375} + ] + } + } +} diff --git a/keyboards/sofle_choc/keymaps/default/config.h b/keyboards/sofle_choc/keymaps/default/config.h new file mode 100644 index 0000000000..93f173e84d --- /dev/null +++ b/keyboards/sofle_choc/keymaps/default/config.h @@ -0,0 +1,29 @@ +/* Copyright 2023 Brian Low + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +// Enabling this option changes the startup behavior to listen for an +// active USB communication to delegate which part is master and which +// is slave. With this option enabled and theres’s USB communication, +// then that half assumes it is the master, otherwise it assumes it +// is the slave. +// +// I've found this helps with some ProMicros where the slave does not boot +#define SPLIT_USB_DETECT + +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define SPLIT_TRANSPORT_MIRROR // If LED_MATRIX_KEYPRESSES or LED_MATRIX_KEYRELEASES is enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 100 // limits maximum brightness of LEDs (max 255). Higher may cause the controller to crash. diff --git a/keyboards/sofle_choc/keymaps/default/keymap.c b/keyboards/sofle_choc/keymaps/default/keymap.c new file mode 100644 index 0000000000..3850466f17 --- /dev/null +++ b/keyboards/sofle_choc/keymaps/default/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2023 Brian Low + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * QWERTY + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | + * |------+------+------+------+------+------| Mute | | Pause |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LCTL | LGUI | LCMD | LALT | /Enter / \Space \ | RALT | RCMD | RGUI | RCTL | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + +LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_MPLY,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LCMD, KC_LALT, KC_ENT, KC_SPC, KC_RALT, KC_RCMD, KC_RGUI, KC_RCTL +) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, +}; +#endif diff --git a/keyboards/sofle_choc/keymaps/default/rules.mk b/keyboards/sofle_choc/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/sofle_choc/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/sofle_choc/keymaps/via/config.h b/keyboards/sofle_choc/keymaps/via/config.h new file mode 100644 index 0000000000..93f173e84d --- /dev/null +++ b/keyboards/sofle_choc/keymaps/via/config.h @@ -0,0 +1,29 @@ +/* Copyright 2023 Brian Low + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +// Enabling this option changes the startup behavior to listen for an +// active USB communication to delegate which part is master and which +// is slave. With this option enabled and theres’s USB communication, +// then that half assumes it is the master, otherwise it assumes it +// is the slave. +// +// I've found this helps with some ProMicros where the slave does not boot +#define SPLIT_USB_DETECT + +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define SPLIT_TRANSPORT_MIRROR // If LED_MATRIX_KEYPRESSES or LED_MATRIX_KEYRELEASES is enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 100 // limits maximum brightness of LEDs (max 255). Higher may cause the controller to crash. diff --git a/keyboards/sofle_choc/keymaps/via/keymap.c b/keyboards/sofle_choc/keymaps/via/keymap.c new file mode 100644 index 0000000000..3850466f17 --- /dev/null +++ b/keyboards/sofle_choc/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2023 Brian Low + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * QWERTY + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | + * |------+------+------+------+------+------| Mute | | Pause |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LCTL | LGUI | LCMD | LALT | /Enter / \Space \ | RALT | RCMD | RGUI | RCTL | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + +LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_MPLY,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LCMD, KC_LALT, KC_ENT, KC_SPC, KC_RALT, KC_RCMD, KC_RGUI, KC_RCTL +) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, +}; +#endif diff --git a/keyboards/sofle_choc/keymaps/via/rules.mk b/keyboards/sofle_choc/keymaps/via/rules.mk new file mode 100644 index 0000000000..715838ecc5 --- /dev/null +++ b/keyboards/sofle_choc/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +ENCODER_MAP_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/sofle_choc/readme.md b/keyboards/sofle_choc/readme.md new file mode 100644 index 0000000000..5b8f47ec5a --- /dev/null +++ b/keyboards/sofle_choc/readme.md @@ -0,0 +1,25 @@ +# Sofle Choc Keyboard + +![Sofle Choc Photo](https://i.imgur.com/MhSEAZYh.jpg) + +The Sofle Choc is 6×4+5 keys column-staggered split keyboard. Based on Lily58, Corne and Helix keyboards. The Sofle Choc variant uses low profile Kailh choc switches, hotswap sockets, per-key RGB using the easier to solder SK6812 Mini-E, and is fairly thin at 15mm from desktop to top of keycaps. + +More details about the keyboard and build guide: [Sofle Choc Build GUide](https://josefadamcik.github.io/SofleKeyboard/build_guide_choc.html) + +* Keyboard Maintainer: [Brian Low](https://github.com/brianlow/) +* Hardware Supported: Sofle Choc PCB 2.x, ProMicro +* Hardware Availability: [PCB & Case Data](https://github.com/josefadamcik/SofleKeyboard) + +Make example for this keyboard (after setting up your build environment): + + make sofle_choc:default + +Flashing example for this keyboard: + + make sofle_choc:default:flash + +Press reset button twice on the keyboard when asked. + +Disconnect the first half, connect the second one and repeat the process. + +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). diff --git a/keyboards/sofle_choc/rules.mk b/keyboards/sofle_choc/rules.mk new file mode 100644 index 0000000000..e69de29bb2 diff --git a/keyboards/sofle_choc/sofle_choc.c b/keyboards/sofle_choc/sofle_choc.c new file mode 100644 index 0000000000..64385907b9 --- /dev/null +++ b/keyboards/sofle_choc/sofle_choc.c @@ -0,0 +1,48 @@ +/* Copyright 2022 Brian Low + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef OLED_ENABLE + +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00 + }; + + oled_write_P(qmk_logo, false); +} + +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + if (is_keyboard_master()) { + return OLED_ROTATION_180; + } + return rotation; +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + + render_logo(); + + return false; +} + +#endif From 8813bdf5ddfc9fdcbcaf7d4bddb44f7673dbfe9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Sun, 1 Oct 2023 13:33:57 +0800 Subject: [PATCH 214/496] Remove rosetta instructions for Apple Silicon (#22174) --- docs/newbs_getting_started.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/docs/newbs_getting_started.md b/docs/newbs_getting_started.md index a16207f267..68e37679b8 100644 --- a/docs/newbs_getting_started.md +++ b/docs/newbs_getting_started.md @@ -56,7 +56,7 @@ QMK maintains a Homebrew tap and formula which will automatically install the CL You will need to install Homebrew. Follow the instructions on https://brew.sh. -!> **NOTE:** If you are using Apple Silicon, such as the M1, you will need to install a rosetta compatible version of Homebrew. This version does not override the base Homebrew. This can be done by running `arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"`. See here: [Rosetta-compatible Homebrew](https://stackoverflow.com/questions/64882584/how-to-run-the-homebrew-installer-under-rosetta-2-on-m1-macbook) +?> If you are using an Apple Silicon machine, the installation process will take significantly longer because GitHub actions do not have native runners to build binary packages for the ARM and AVR toolchains. #### Installation @@ -64,10 +64,6 @@ Install the QMK CLI by running: brew install qmk/qmk/qmk -Install the QMK CLI on an Apple Silicon Mac by running: - - arch -x86_64 brew install qmk/qmk/qmk - ### ** Linux/WSL ** ?> **Note for WSL users**: By default, the installation process will clone the QMK repository into your WSL home directory, but if you have cloned manually, ensure that it is located inside the WSL instance instead of the Windows filesystem (ie. not in `/mnt`), as accessing it is currently [extremely slow](https://github.com/microsoft/WSL/issues/4197). From 1b7a538353347e564edce2c78a7b155a50ac3c4b Mon Sep 17 00:00:00 2001 From: casuanoob <96005765+casuanoob@users.noreply.github.com> Date: Mon, 2 Oct 2023 04:55:54 +1100 Subject: [PATCH 215/496] Bastard Keyboards: Add support for Dilemma Max (4x6_4) (#22064) * tentatively add dilemma 4x6_4 WIP untested PR by Casuanoob. Co-authored-by: Joel Challis Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/bastardkb/dilemma/4x6_4/4x6_4.c | 59 ++++ keyboards/bastardkb/dilemma/4x6_4/config.h | 62 ++++ keyboards/bastardkb/dilemma/4x6_4/halconf.h | 22 ++ keyboards/bastardkb/dilemma/4x6_4/info.json | 265 ++++++++++++++++++ .../dilemma/4x6_4/keymaps/default/keymap.c | 73 +++++ .../dilemma/4x6_4/keymaps/default/readme.md | 2 + .../dilemma/4x6_4/keymaps/via/config.h | 20 ++ .../dilemma/4x6_4/keymaps/via/keymap.c | 132 +++++++++ .../dilemma/4x6_4/keymaps/via/readme.md | 47 ++++ .../dilemma/4x6_4/keymaps/via/rules.mk | 2 + keyboards/bastardkb/dilemma/4x6_4/mcuconf.h | 23 ++ keyboards/bastardkb/dilemma/4x6_4/readme.md | 5 + keyboards/bastardkb/dilemma/4x6_4/rules.mk | 6 + keyboards/bastardkb/dilemma/readme.md | 15 +- 14 files changed, 728 insertions(+), 5 deletions(-) create mode 100644 keyboards/bastardkb/dilemma/4x6_4/4x6_4.c create mode 100644 keyboards/bastardkb/dilemma/4x6_4/config.h create mode 100644 keyboards/bastardkb/dilemma/4x6_4/halconf.h create mode 100644 keyboards/bastardkb/dilemma/4x6_4/info.json create mode 100644 keyboards/bastardkb/dilemma/4x6_4/keymaps/default/keymap.c create mode 100644 keyboards/bastardkb/dilemma/4x6_4/keymaps/default/readme.md create mode 100644 keyboards/bastardkb/dilemma/4x6_4/keymaps/via/config.h create mode 100644 keyboards/bastardkb/dilemma/4x6_4/keymaps/via/keymap.c create mode 100644 keyboards/bastardkb/dilemma/4x6_4/keymaps/via/readme.md create mode 100644 keyboards/bastardkb/dilemma/4x6_4/keymaps/via/rules.mk create mode 100644 keyboards/bastardkb/dilemma/4x6_4/mcuconf.h create mode 100644 keyboards/bastardkb/dilemma/4x6_4/readme.md create mode 100644 keyboards/bastardkb/dilemma/4x6_4/rules.mk diff --git a/keyboards/bastardkb/dilemma/4x6_4/4x6_4.c b/keyboards/bastardkb/dilemma/4x6_4/4x6_4.c new file mode 100644 index 0000000000..c80ccbc8eb --- /dev/null +++ b/keyboards/bastardkb/dilemma/4x6_4/4x6_4.c @@ -0,0 +1,59 @@ +/** + * Copyright 2020 Christopher Courtney (@drashna) + * Copyright 2021 Quentin LEBASTARD + * Copyright 2022 Charly Delay (@0xcharly) + * Copyright 2023 casuanoob (@casuanoob) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Publicw License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef SWAP_HANDS_ENABLE +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + /* Left hand, matrix positions */ + {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}, {5, 5}}, + {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}, {5, 6}}, + {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}, {5, 7}}, + {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}}, + {{0, 9}, {1, 9}, {2, 9}, {3, 9}, {4, 9}, {5, 9}}, + /* Right hand, matrix positions */ + {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}}, + {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}}, + {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, {5, 2}}, + {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}}, + {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}} +}; + +# ifdef ENCODER_MAP_ENABLE +const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {1, 0}; +# endif +#endif + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } + switch (index) { + case 0: // Left-half encoder, mouse scroll. + tap_code(clockwise ? KC_MS_WH_DOWN : KC_MS_WH_UP); + break; + case 1: // Right-half encoder, volume control. + tap_code(clockwise ? KC_AUDIO_VOL_UP : KC_AUDIO_VOL_DOWN); + break; + } + return true; +} +#endif // ENCODER_ENABLE diff --git a/keyboards/bastardkb/dilemma/4x6_4/config.h b/keyboards/bastardkb/dilemma/4x6_4/config.h new file mode 100644 index 0000000000..a824017750 --- /dev/null +++ b/keyboards/bastardkb/dilemma/4x6_4/config.h @@ -0,0 +1,62 @@ +/** + * Copyright 2022 Charly Delay (@0xcharly) + * Copyright 2023 casuanoob (@casuanoob) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Handedness. */ +#define SPLIT_HAND_PIN GP29 +#define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* VBUS detection. */ +#define USB_VBUS_PIN GP19 + +/* CRC. */ +#define CRC8_USE_TABLE +#define CRC8_OPTIMIZE_SPEED + +/* Cirque trackpad over SPI. */ +#define SPI_DRIVER SPID0 +#define SPI_SCK_PIN GP22 +#define SPI_MOSI_PIN GP23 +#define SPI_MISO_PIN GP20 +#define POINTING_DEVICE_CS_PIN GP21 +#undef CIRQUE_PINNACLE_DIAMETER_MM +#define CIRQUE_PINNACLE_DIAMETER_MM 40 + +/* Reset. */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U + +/* RGB matrix support. */ +#define SPLIT_TRANSPORT_MIRROR +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS + +// Startup values. +#define RGB_MATRIX_DEFAULT_HUE 0 +#define RGB_MATRIX_DEFAULT_SAT 255 +#define RGB_MATRIX_DEFAULT_VAL 64 + +// Rainbow swirl as startup mode. +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT + +// Slow swirl at startup. +#define RGB_MATRIX_DEFAULT_SPD 32 diff --git a/keyboards/bastardkb/dilemma/4x6_4/halconf.h b/keyboards/bastardkb/dilemma/4x6_4/halconf.h new file mode 100644 index 0000000000..57d15376d6 --- /dev/null +++ b/keyboards/bastardkb/dilemma/4x6_4/halconf.h @@ -0,0 +1,22 @@ +/** + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_SPI TRUE + +#include_next diff --git a/keyboards/bastardkb/dilemma/4x6_4/info.json b/keyboards/bastardkb/dilemma/4x6_4/info.json new file mode 100644 index 0000000000..7b3aaf5567 --- /dev/null +++ b/keyboards/bastardkb/dilemma/4x6_4/info.json @@ -0,0 +1,265 @@ +{ + "keyboard_name": "Dilemma Max", + "usb": { + "device_version": "1.0.0", + "pid": "0x1837" + }, + "processor": "RP2040", + "bootloader": "rp2040", + "board": "GENERIC_RP_RP2040", + "matrix_pins": { + "cols": ["GP14", "GP8", "GP9", "GP7", "GP6", "GP28"], + "rows": ["GP15", "GP4", "GP5", "GP27", "GP26"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "GP1", + "bootmagic": { + "matrix": [5, 0] + } + }, + "encoder": { + "enabled" : true, + "rotary" : [ + {"pin_a": "GP25", "pin_b": "GP24"} + ] + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true, + "caps_word": true + }, + "ws2812": { + "pin": "GP10", + "driver": "vendor" + }, + "rgb_matrix": { + "driver": "ws2812", + "split_count": [52, 52], + "max_brightness": 176, + "center_point": [112, 28], + "animations": { + "solid_color": true, + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "layout": [ + {"x": 81, "y": 4, "flags": 2}, + {"x": 65, "y": 2, "flags": 2}, + {"x": 40, "y": 0, "flags": 2}, + {"x": 29, "y": 9, "flags": 2}, + {"x": 16, "y": 9, "flags": 2}, + {"x": 0, "y": 16, "flags": 2}, + {"x": 0, "y": 29, "flags": 2}, + {"x": 0, "y": 40, "flags": 2}, + {"x": 5, "y": 50, "flags": 2}, + {"x": 17, "y": 49, "flags": 2}, + {"x": 28, "y": 44, "flags": 2}, + {"x": 40, "y": 43, "flags": 2}, + {"x": 49, "y": 51, "flags": 2}, + {"x": 62, "y": 53, "flags": 2}, + {"x": 73, "y": 56, "flags": 2}, + {"x": 85, "y": 59, "flags": 2}, + {"x": 100, "y": 64, "flags": 2}, + {"x": 106, "y": 55, "flags": 2}, + {"x": 107, "y": 45, "flags": 2}, + {"x": 91, "y": 51, "flags": 2}, + {"x": 94, "y": 40, "flags": 2}, + {"x": 108, "y": 33, "flags": 2}, + {"x": 106, "y": 25, "flags": 2}, + {"x": 108, "y": 16, "flags": 2}, + + {"matrix": [0, 5], "x": 75, "y": 10, "flags": 4}, + {"matrix": [0, 4], "x": 62, "y": 9, "flags": 4}, + {"matrix": [0, 3], "x": 49, "y": 6, "flags": 4}, + {"matrix": [0, 2], "x": 35, "y": 10, "flags": 4}, + {"matrix": [0, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [0, 0], "x": 9, "y": 16, "flags": 1}, + {"matrix": [1, 0], "x": 9, "y": 27, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 27, "flags": 4}, + {"matrix": [1, 2], "x": 35, "y": 20, "flags": 4}, + {"matrix": [1, 3], "x": 49, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 62, "y": 19, "flags": 4}, + {"matrix": [1, 5], "x": 75, "y": 21, "flags": 4}, + {"matrix": [2, 5], "x": 75, "y": 31, "flags": 4}, + {"matrix": [2, 4], "x": 62, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 49, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 35, "y": 31, "flags": 4}, + {"matrix": [2, 1], "x": 22, "y": 37, "flags": 4}, + {"matrix": [2, 0], "x": 9, "y": 37, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 22, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 35, "y": 41, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 42, "flags": 4}, + {"matrix": [4, 3], "x": 54, "y": 51, "flags": 4}, + {"matrix": [4, 1], "x": 68, "y": 53, "flags": 4}, + {"matrix": [4, 2], "x": 81, "y": 57, "flags": 4}, + {"matrix": [4, 4], "x": 92, "y": 64, "flags": 4}, + + {"x": 143, "y": 4, "flags": 2}, + {"x": 159, "y": 2, "flags": 2}, + {"x": 184, "y": 0, "flags": 2}, + {"x": 195, "y": 9, "flags": 2}, + {"x": 208, "y": 9, "flags": 2}, + {"x": 224, "y": 16, "flags": 2}, + {"x": 224, "y": 29, "flags": 2}, + {"x": 224, "y": 40, "flags": 2}, + {"x": 219, "y": 50, "flags": 2}, + {"x": 207, "y": 49, "flags": 2}, + {"x": 196, "y": 44, "flags": 2}, + {"x": 184, "y": 43, "flags": 2}, + {"x": 176, "y": 51, "flags": 2}, + {"x": 162, "y": 53, "flags": 2}, + {"x": 151, "y": 56, "flags": 2}, + {"x": 139, "y": 59, "flags": 2}, + {"x": 124, "y": 64, "flags": 2}, + {"x": 118, "y": 55, "flags": 2}, + {"x": 117, "y": 45, "flags": 2}, + {"x": 133, "y": 51, "flags": 2}, + {"x": 130, "y": 40, "flags": 2}, + {"x": 116, "y": 33, "flags": 2}, + {"x": 118, "y": 25, "flags": 2}, + {"x": 116, "y": 16, "flags": 2}, + + {"matrix": [5, 5], "x": 149, "y": 10, "flags": 4}, + {"matrix": [5, 4], "x": 162, "y": 9, "flags": 4}, + {"matrix": [5, 3], "x": 175, "y": 6, "flags": 4}, + {"matrix": [5, 2], "x": 189, "y": 10, "flags": 4}, + {"matrix": [5, 1], "x": 202, "y": 16, "flags": 4}, + {"matrix": [5, 0], "x": 215, "y": 16, "flags": 1}, + {"matrix": [6, 0], "x": 215, "y": 27, "flags": 1}, + {"matrix": [6, 1], "x": 202, "y": 27, "flags": 4}, + {"matrix": [6, 2], "x": 189, "y": 20, "flags": 4}, + {"matrix": [6, 3], "x": 175, "y": 17, "flags": 4}, + {"matrix": [6, 4], "x": 162, "y": 19, "flags": 4}, + {"matrix": [6, 5], "x": 149, "y": 21, "flags": 4}, + {"matrix": [7, 5], "x": 149, "y": 31, "flags": 4}, + {"matrix": [7, 4], "x": 162, "y": 30, "flags": 4}, + {"matrix": [7, 3], "x": 175, "y": 27, "flags": 4}, + {"matrix": [7, 2], "x": 189, "y": 31, "flags": 4}, + {"matrix": [7, 1], "x": 202, "y": 37, "flags": 4}, + {"matrix": [7, 0], "x": 215, "y": 37, "flags": 1}, + {"matrix": [8, 0], "x": 215, "y": 48, "flags": 1}, + {"matrix": [8, 1], "x": 202, "y": 48, "flags": 4}, + {"matrix": [8, 2], "x": 189, "y": 41, "flags": 4}, + {"matrix": [8, 3], "x": 175, "y": 38, "flags": 4}, + {"matrix": [8, 4], "x": 162, "y": 40, "flags": 4}, + {"matrix": [8, 5], "x": 149, "y": 42, "flags": 4}, + {"matrix": [9, 4], "x": 170, "y": 51, "flags": 4}, + {"matrix": [9, 2], "x": 156, "y": 53, "flags": 4}, + {"matrix": [9, 1], "x": 143, "y": 57, "flags": 4}, + {"matrix": [9, 3], "x": 132, "y": 64, "flags": 4} + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"L00", "matrix": [0, 0], "x":0, "y":0}, + {"label":"L01", "matrix": [0, 1], "x":1, "y":0}, + {"label":"L02", "matrix": [0, 2], "x":2, "y":0}, + {"label":"L03", "matrix": [0, 3], "x":3, "y":0}, + {"label":"L04", "matrix": [0, 4], "x":4, "y":0}, + {"label":"L05", "matrix": [0, 5], "x":5, "y":0}, + {"label":"R05", "matrix": [5, 5], "x":8, "y":0}, + {"label":"R04", "matrix": [5, 4], "x":9, "y":0}, + {"label":"R03", "matrix": [5, 3], "x":10, "y":0}, + {"label":"R02", "matrix": [5, 2], "x":11, "y":0}, + {"label":"R01", "matrix": [5, 1], "x":12, "y":0}, + {"label":"R00", "matrix": [5, 0], "x":13, "y":0}, + {"label":"L10", "matrix": [1, 0], "x":0, "y":1}, + {"label":"L11", "matrix": [1, 1], "x":1, "y":1}, + {"label":"L12", "matrix": [1, 2], "x":2, "y":1}, + {"label":"L13", "matrix": [1, 3], "x":3, "y":1}, + {"label":"L14", "matrix": [1, 4], "x":4, "y":1}, + {"label":"L15", "matrix": [1, 5], "x":5, "y":1}, + {"label":"R15", "matrix": [6, 5], "x":8, "y":1}, + {"label":"R14", "matrix": [6, 4], "x":9, "y":1}, + {"label":"R13", "matrix": [6, 3], "x":10, "y":1}, + {"label":"R12", "matrix": [6, 2], "x":11, "y":1}, + {"label":"R11", "matrix": [6, 1], "x":12, "y":1}, + {"label":"R10", "matrix": [6, 0], "x":13, "y":1}, + {"label":"L20", "matrix": [2, 0], "x":0, "y":2}, + {"label":"L21", "matrix": [2, 1], "x":1, "y":2}, + {"label":"L22", "matrix": [2, 2], "x":2, "y":2}, + {"label":"L23", "matrix": [2, 3], "x":3, "y":2}, + {"label":"L24", "matrix": [2, 4], "x":4, "y":2}, + {"label":"L25", "matrix": [2, 5], "x":5, "y":2}, + {"label":"R25", "matrix": [7, 5], "x":8, "y":2}, + {"label":"R24", "matrix": [7, 4], "x":9, "y":2}, + {"label":"R23", "matrix": [7, 3], "x":10, "y":2}, + {"label":"R22", "matrix": [7, 2], "x":11, "y":2}, + {"label":"R21", "matrix": [7, 1], "x":12, "y":2}, + {"label":"R20", "matrix": [7, 0], "x":13, "y":2}, + {"label":"L30", "matrix": [3, 0], "x":0, "y":3}, + {"label":"L31", "matrix": [3, 1], "x":1, "y":3}, + {"label":"L32", "matrix": [3, 2], "x":2, "y":3}, + {"label":"L33", "matrix": [3, 3], "x":3, "y":3}, + {"label":"L34", "matrix": [3, 4], "x":4, "y":3}, + {"label":"L35", "matrix": [3, 5], "x":5, "y":3}, + {"label":"R35", "matrix": [8, 5], "x":8, "y":3}, + {"label":"R34", "matrix": [8, 4], "x":9, "y":3}, + {"label":"R33", "matrix": [8, 3], "x":10, "y":3}, + {"label":"R32", "matrix": [8, 2], "x":11, "y":3}, + {"label":"R31", "matrix": [8, 1], "x":12, "y":3}, + {"label":"R30", "matrix": [8, 0], "x":13, "y":3}, + {"label":"L43", "matrix": [4, 3], "x":2.5, "y":4}, + {"label":"L41", "matrix": [4, 1], "x":3.5, "y":4}, + {"label":"L42", "matrix": [4, 2], "x":4.5, "y":4}, + {"label":"L44", "matrix": [4, 4], "x":5.5, "y":4}, + {"label":"R44", "matrix": [9, 4], "x":7.5, "y":4}, + {"label":"R42", "matrix": [9, 2], "x":8.5, "y":4}, + {"label":"R41", "matrix": [9, 1], "x":9.5, "y":4}, + {"label":"R43", "matrix": [9, 3], "x":10.5, "y":4} + ] + } + } +} diff --git a/keyboards/bastardkb/dilemma/4x6_4/keymaps/default/keymap.c b/keyboards/bastardkb/dilemma/4x6_4/keymaps/default/keymap.c new file mode 100644 index 0000000000..2e5564f5e9 --- /dev/null +++ b/keyboards/bastardkb/dilemma/4x6_4/keymaps/default/keymap.c @@ -0,0 +1,73 @@ +/** + * Copyright 2021 Charly Delay (@0xcharly) + * Copyright 2023 casuanoob (@casuanoob) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +enum dilemma_keymap_layers { + LAYER_BASE = 0, + LAYER_LOWER, + LAYER_RAISE, +}; + +#define LOWER MO(LAYER_LOWER) +#define RAISE MO(LAYER_RAISE) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [LAYER_BASE] = LAYOUT( + // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LALT, + // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯ + KC_LALT, KC_BSPC, KC_SPC, LOWER, RAISE, KC_ENT, KC_DEL, KC_LGUI + // ╰───────────────────────────────────╯ ╰───────────────────────────────────╯ + ), + + [LAYER_LOWER] = LAYOUT( + // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_P7, KC_P8, KC_P9, KC_RBRC, XXXXXXX, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + RGB_TOG, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PEQL, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR, QK_BOOT, KC_PAST, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_PDOT, + // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯ + XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______ + // ╰───────────────────────────────────╯ ╰───────────────────────────────────╯ + ), + + [LAYER_RAISE] = LAYOUT( + // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ + KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + KC_MPLY, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, KC_RSFT, KC_RCTL, KC_RALT, KC_RGUI, KC_MUTE, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + KC_MPRV, KC_HOME, KC_PGUP, KC_PGDN, KC_END, XXXXXXX, QK_BOOT, EE_CLR, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, + // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯ + _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX + // ╰───────────────────────────────────╯ ╰───────────────────────────────────╯ + ), +}; +// clang-format on diff --git a/keyboards/bastardkb/dilemma/4x6_4/keymaps/default/readme.md b/keyboards/bastardkb/dilemma/4x6_4/keymaps/default/readme.md new file mode 100644 index 0000000000..2005c2fec9 --- /dev/null +++ b/keyboards/bastardkb/dilemma/4x6_4/keymaps/default/readme.md @@ -0,0 +1,2 @@ +# Dilemma Max (4x6+4) default keymap + diff --git a/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/config.h b/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/config.h new file mode 100644 index 0000000000..24322f9904 --- /dev/null +++ b/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/config.h @@ -0,0 +1,20 @@ +/** + * Copyright 2021 Charly Delay (@0xcharly) + * Copyright 2023 casuanoob (@casuanoob) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 8 diff --git a/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/keymap.c b/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/keymap.c new file mode 100644 index 0000000000..68602b2722 --- /dev/null +++ b/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/keymap.c @@ -0,0 +1,132 @@ +/** + * Copyright 2021 Charly Delay (@0xcharly) + * Copyright 2023 casuanoob (@casuanoob) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +enum dilemma_keymap_layers { + LAYER_BASE = 0, + LAYER_LOWER, + LAYER_RAISE, + LAYER_POINTER, +}; + +// Automatically enable sniping-mode on the pointer layer. +// #define DILEMMA_AUTO_SNIPING_ON_LAYER LAYER_POINTER + +#define LOWER MO(LAYER_LOWER) +#define RAISE MO(LAYER_RAISE) +#define PT_Z LT(LAYER_POINTER, KC_Z) +#define PT_SLSH LT(LAYER_POINTER, KC_SLSH) + +#ifndef POINTING_DEVICE_ENABLE +# define DRGSCRL KC_NO +# define DPI_MOD KC_NO +# define S_D_MOD KC_NO +# define SNIPING KC_NO +#endif // !POINTING_DEVICE_ENABLE + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [LAYER_BASE] = LAYOUT( + // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + KC_LCTL, PT_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, PT_SLSH, KC_LALT, + // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯ + KC_LALT, KC_BSPC, KC_SPC, LOWER, RAISE, KC_ENT, KC_DEL, KC_MUTE + // ╰───────────────────────────────────╯ ╰───────────────────────────────────╯ + ), + + [LAYER_LOWER] = LAYOUT( + // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_P7, KC_P8, KC_P9, KC_RBRC, XXXXXXX, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + RGB_TOG, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PEQL, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PAST, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_PDOT, + // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯ + XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX + // ╰───────────────────────────────────╯ ╰───────────────────────────────────╯ + ), + + [LAYER_RAISE] = LAYOUT( + // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ + KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + KC_MPLY, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, KC_RSFT, KC_RCTL, KC_RALT, KC_RGUI, KC_MUTE, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + KC_MPRV, KC_HOME, KC_PGUP, KC_PGDN, KC_END, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, + // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯ + XXXXXXX, _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX + // ╰───────────────────────────────────╯ ╰───────────────────────────────────╯ + ), + + [LAYER_POINTER] = LAYOUT( + // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DPI_MOD, S_D_MOD, S_D_MOD, DPI_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + XXXXXXX, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_RSFT, KC_RCTL, KC_RALT, KC_RGUI, XXXXXXX, + // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ + XXXXXXX, _______, DRGSCRL, SNIPING, EE_CLR, QK_BOOT, QK_BOOT, EE_CLR, SNIPING, DRGSCRL, _______, XXXXXXX, + // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯ + XXXXXXX, KC_BTN2, KC_BTN1, KC_BTN3, KC_BTN3, KC_BTN1, KC_BTN2, XXXXXXX + // ╰───────────────────────────────────╯ ╰───────────────────────────────────╯ + ), +}; +// clang-format on + +#ifdef POINTING_DEVICE_ENABLE +# ifdef DILEMMA_AUTO_SNIPING_ON_LAYER +layer_state_t layer_state_set_user(layer_state_t state) { + dilemma_set_pointer_sniping_enabled(layer_state_cmp(state, DILEMMA_AUTO_SNIPING_ON_LAYER)); + return state; +} +# endif // DILEMMA_AUTO_SNIPING_ON_LAYER +#endif // POINTING_DEVICE_ENABLEE + +#ifdef RGB_MATRIX_ENABLE +// Forward-declare this helper function since it is defined in rgb_matrix.c. +void rgb_matrix_update_pwm_buffers(void); +#endif + +#ifdef ENCODER_MAP_ENABLE +// clang-format off +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [LAYER_BASE] = {ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLU, KC_VOLD)}, + [LAYER_LOWER] = {ENCODER_CCW_CW(KC_UP, KC_DOWN), ENCODER_CCW_CW(KC_LEFT, KC_RGHT)}, + [LAYER_RAISE] = {ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLU, KC_VOLD)}, + [LAYER_POINTER] = {ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI)}, +}; +// clang-format on +#endif // ENCODER_MAP_ENABLE + +void shutdown_user(void) { +#ifdef RGB_MATRIX_ENABLE + rgb_matrix_sethsv_noeeprom(HSV_RED); + rgb_matrix_update_pwm_buffers(); +#endif // RGB_MATRIX_ENABLE +} diff --git a/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/readme.md b/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/readme.md new file mode 100644 index 0000000000..f3636c8a40 --- /dev/null +++ b/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/readme.md @@ -0,0 +1,47 @@ +# Dilemma Max `via` keymap + +The Dilemma Max `via` keymap is based on the original [Dactyl Manuform](../../../../../handwired/dactyl_manuform) default keymap, with some features and changes specific to the Dilemma. + +This layout also supports VIA. + +## Customizing the keymap + +### Dynamic DPI scaling + +Use the following keycodes to change the default DPI: + +- `POINTER_DEFAULT_DPI_FORWARD`: increases the DPI; decreases when shifted; +- `POINTER_DEFAULT_DPI_REVERSE`: decreases the DPI; increases when shifted. + +There's a maximum of 16 possible values for the sniping mode DPI. See the [Dilemma documentation](../../README.md) for more information. + +Use the following keycodes to change the sniping mode DPI: + +- `POINTER_SNIPING_DPI_FORWARD`: increases the DPI; decreases when shifted; +- `POINTER_SNIPING_DPI_REVERSE`: decreases the DPI; increases when shifted. + +There's a maximum of 4 possible values for the sniping mode DPI. See the [Dilemma documentation](../../README.md) for more information. + +### Drag-scroll + +Use the `DRAGSCROLL_MODE` keycode to enable drag-scroll on hold. Use the `DRAGSCROLL_TOGGLE` keycode to enable/disable drag-scroll on key press. + +### Circular scroll + +By default, the firmware is configured to enable the circular scroll feature on Cirque trackpad. + +To disable this, add the following to your keymap: + +```c +#undef POINTING_DEVICE_GESTURES_SCROLL_ENABLE +``` + +### Sniping + +Use the `SNIPING_MODE` keycode to enable sniping mode on hold. Use the `SNIPING_TOGGLE` keycode to enable/disable sniping mode on key press. + +Change the value of `DILEMMA_AUTO_SNIPING_ON_LAYER` to automatically enable sniping mode on layer change. By default, sniping mode is enabled on the pointer layer: + +```c +#define DILEMMA_AUTO_SNIPING_ON_LAYER LAYER_POINTER +``` diff --git a/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/rules.mk b/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/rules.mk new file mode 100644 index 0000000000..f1adcab005 --- /dev/null +++ b/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/bastardkb/dilemma/4x6_4/mcuconf.h b/keyboards/bastardkb/dilemma/4x6_4/mcuconf.h new file mode 100644 index 0000000000..52b726a56d --- /dev/null +++ b/keyboards/bastardkb/dilemma/4x6_4/mcuconf.h @@ -0,0 +1,23 @@ +/** + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef RP_SPI_USE_SPI0 +#define RP_SPI_USE_SPI0 TRUE diff --git a/keyboards/bastardkb/dilemma/4x6_4/readme.md b/keyboards/bastardkb/dilemma/4x6_4/readme.md new file mode 100644 index 0000000000..30dd2a99f1 --- /dev/null +++ b/keyboards/bastardkb/dilemma/4x6_4/readme.md @@ -0,0 +1,5 @@ +# Dilemma Max (4x6+4) + +This keyboard is an upsized version of the [3x5+3 Dilemma](../3x5_3/). + +The Dilemma Max is available at [bastardkb.com](https://bastardkb.com). diff --git a/keyboards/bastardkb/dilemma/4x6_4/rules.mk b/keyboards/bastardkb/dilemma/4x6_4/rules.mk new file mode 100644 index 0000000000..9f83631e63 --- /dev/null +++ b/keyboards/bastardkb/dilemma/4x6_4/rules.mk @@ -0,0 +1,6 @@ +TRI_LAYER_ENABLE = yes # Tri Layers + +SERIAL_DRIVER = vendor + +POINTING_DEVICE_ENABLE = yes +POINTING_DEVICE_DRIVER = cirque_pinnacle_spi diff --git a/keyboards/bastardkb/dilemma/readme.md b/keyboards/bastardkb/dilemma/readme.md index ac3c818bd6..876400ae52 100644 --- a/keyboards/bastardkb/dilemma/readme.md +++ b/keyboards/bastardkb/dilemma/readme.md @@ -1,16 +1,21 @@ # Dilemma -A very small keyboard made for ergonomic enthusiasts. +A family of split keyboards with embedded RP2040 controllers, support for Cirque GlidePoint circle trackpads, and SPI + I2C breakouts for other peripherals - Keyboard Maintainer: [Bastard Keyboards](https://github.com/Bastardkb/) -- Hardware Supported: RP2040-based controller (_eg._ Splinky, Elite-c, ...) +- Hardware Supported: [Bastardkb Dilemma](https://github.com/Bastardkb/Dilemma) - Hardware Availability: [Bastardkb.com](https://bastardkb.com/) -A pre-assembled version (with embedded controller) is also available. +A DIY version of the 3x5_2 PCB with promicro compatible footprint is also available. Make example for this keyboard (after setting up your build environment): - make bastardkb/dilemma/3x5_2/splinky:default - make bastardkb/dilemma/3x5_2/assembled:default + make bastardkb/dilemma/3x5_3:default + make bastardkb/dilemma/4x6_4:default + +Flashing example for this keyboard: + + make bastardkb/dilemma/3x5_3:default:flash + make bastardkb/dilemma/4x6_4:default:flash See the [keyboard build instructions](http://docs.bastardkb.com/) From 997a6747ee83c87de92d9444e2bc57c981dbf260 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 2 Oct 2023 11:49:53 +0100 Subject: [PATCH 216/496] Miscellaneous fixes for recently merged keyboards (#22179) --- keyboards/bastardkb/dilemma/4x6_4/config.h | 8 ----- keyboards/bastardkb/dilemma/4x6_4/info.json | 3 +- keyboards/bastardkb/dilemma/4x6_4/rules.mk | 2 -- keyboards/doio/kb12/config.h | 1 - keyboards/era/klein/config.h | 2 -- keyboards/keychron/q9_plus/config.h | 4 --- keyboards/keychron/q9_plus/q9_plus.c | 1 - keyboards/qck75/v1/config.h | 2 -- keyboards/sofle_choc/info.json | 36 ++++++++++++++++++++- keyboards/sofle_choc/keymaps/via/rules.mk | 5 +++ 10 files changed, 42 insertions(+), 22 deletions(-) diff --git a/keyboards/bastardkb/dilemma/4x6_4/config.h b/keyboards/bastardkb/dilemma/4x6_4/config.h index a824017750..9c76cb76f9 100644 --- a/keyboards/bastardkb/dilemma/4x6_4/config.h +++ b/keyboards/bastardkb/dilemma/4x6_4/config.h @@ -50,13 +50,5 @@ #define RGB_MATRIX_FRAMEBUFFER_EFFECTS // Startup values. -#define RGB_MATRIX_DEFAULT_HUE 0 -#define RGB_MATRIX_DEFAULT_SAT 255 #define RGB_MATRIX_DEFAULT_VAL 64 - -// Rainbow swirl as startup mode. -#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT -#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT - -// Slow swirl at startup. #define RGB_MATRIX_DEFAULT_SPD 32 diff --git a/keyboards/bastardkb/dilemma/4x6_4/info.json b/keyboards/bastardkb/dilemma/4x6_4/info.json index 7b3aaf5567..ba07a7fccf 100644 --- a/keyboards/bastardkb/dilemma/4x6_4/info.json +++ b/keyboards/bastardkb/dilemma/4x6_4/info.json @@ -33,7 +33,8 @@ "mousekey": true, "nkro": true, "rgb_matrix": true, - "caps_word": true + "caps_word": true, + "tri_layer": true }, "ws2812": { "pin": "GP10", diff --git a/keyboards/bastardkb/dilemma/4x6_4/rules.mk b/keyboards/bastardkb/dilemma/4x6_4/rules.mk index 9f83631e63..4923c2c84a 100644 --- a/keyboards/bastardkb/dilemma/4x6_4/rules.mk +++ b/keyboards/bastardkb/dilemma/4x6_4/rules.mk @@ -1,5 +1,3 @@ -TRI_LAYER_ENABLE = yes # Tri Layers - SERIAL_DRIVER = vendor POINTING_DEVICE_ENABLE = yes diff --git a/keyboards/doio/kb12/config.h b/keyboards/doio/kb12/config.h index c7ea434320..d853409b85 100644 --- a/keyboards/doio/kb12/config.h +++ b/keyboards/doio/kb12/config.h @@ -19,7 +19,6 @@ /* RGB Matrix config */ #define RGB_MATRIX_LED_COUNT 12 -#define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_UP_DOWN #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/era/klein/config.h b/keyboards/era/klein/config.h index e74b7d73d3..1033bc738e 100644 --- a/keyboards/era/klein/config.h +++ b/keyboards/era/klein/config.h @@ -21,9 +21,7 @@ #define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_B /* RGB Matrix */ -#define WS2812_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the WS2812 implementation uses the PIO0 peripheral #define RGB_MATRIX_DEFAULT_VAL 60 #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #define RGB_MATRIX_KEYPRESSES #define RGB_DISABLE_WHEN_USB_SUSPENDED -#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT \ No newline at end of file diff --git a/keyboards/keychron/q9_plus/config.h b/keyboards/keychron/q9_plus/config.h index c6cd09b388..a8cba07e90 100755 --- a/keyboards/keychron/q9_plus/config.h +++ b/keyboards/keychron/q9_plus/config.h @@ -52,7 +52,3 @@ /* Old default behavior of mod-taps */ #define HOLD_ON_OTHER_KEY_PRESS - -/* Factory test keys */ -#define F_RESET_KEY1 KC_7 -#define FN_KEY1 MO(4) diff --git a/keyboards/keychron/q9_plus/q9_plus.c b/keyboards/keychron/q9_plus/q9_plus.c index f0f304def6..848117d323 100755 --- a/keyboards/keychron/q9_plus/q9_plus.c +++ b/keyboards/keychron/q9_plus/q9_plus.c @@ -67,7 +67,6 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { return false; } - // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); if (host_keyboard_led_state().caps_lock) { RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 255, 255, 255); diff --git a/keyboards/qck75/v1/config.h b/keyboards/qck75/v1/config.h index 01d875e3d4..06d945ebf7 100644 --- a/keyboards/qck75/v1/config.h +++ b/keyboards/qck75/v1/config.h @@ -16,5 +16,3 @@ #define OLED_TIMEOUT 120000 #define OLED_BRIGHTNESS 120 - -#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 21 diff --git a/keyboards/sofle_choc/info.json b/keyboards/sofle_choc/info.json index 172f60256e..b59def38b0 100644 --- a/keyboards/sofle_choc/info.json +++ b/keyboards/sofle_choc/info.json @@ -13,14 +13,48 @@ ] }, "features": { + "bootmagic": true, "oled": true, "rgb_matrix": true, - "extrakey": true + "extrakey": true, + "mousekey": true }, "development_board": "promicro", "rgb_matrix": { "driver": "ws2812", "split_count": [29, 29], + "animations": { + "solid_color": true, + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true + }, "layout": [ { "flags": 4, "matrix": [0, 5], "x": 95, "y": 7 }, { "flags": 4, "matrix": [1, 5], "x": 95, "y": 21 }, diff --git a/keyboards/sofle_choc/keymaps/via/rules.mk b/keyboards/sofle_choc/keymaps/via/rules.mk index 715838ecc5..8a52d2aa54 100644 --- a/keyboards/sofle_choc/keymaps/via/rules.mk +++ b/keyboards/sofle_choc/keymaps/via/rules.mk @@ -1,2 +1,7 @@ ENCODER_MAP_ENABLE = yes VIA_ENABLE = yes + +# Reduce compiled size +MOUSEKEY_ENABLE = no +SPACE_CADET_ENABLE = no +GRAVE_ESC_ENABLE = no From bd5860de4ed50ee306cee2ef54c7ff4f751a6168 Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 3 Oct 2023 01:09:20 +1100 Subject: [PATCH 217/496] is31fl3737/3741: add LED Matrix support (#22163) --- builddefs/common_features.mk | 17 +- docs/reference_info_json.md | 2 +- drivers/led/issi/is31fl3737-simple.c | 219 +++++++++++ drivers/led/issi/is31fl3737-simple.h | 256 +++++++++++++ drivers/led/issi/is31fl3741-simple.c | 253 +++++++++++++ drivers/led/issi/is31fl3741-simple.h | 471 ++++++++++++++++++++++++ quantum/led_matrix/led_matrix.h | 6 + quantum/led_matrix/led_matrix_drivers.c | 96 ++++- 8 files changed, 1316 insertions(+), 4 deletions(-) create mode 100644 drivers/led/issi/is31fl3737-simple.c create mode 100644 drivers/led/issi/is31fl3737-simple.h create mode 100644 drivers/led/issi/is31fl3741-simple.c create mode 100644 drivers/led/issi/is31fl3741-simple.h diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 8be4e40d33..5ac392c6a9 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -354,8 +354,7 @@ LED_MATRIX_DRIVER := aw20216s endif LED_MATRIX_ENABLE ?= no -VALID_LED_MATRIX_TYPES := is31fl3218 is31fl3731 is31fl3733 is31fl3736 is31fl3742a is31fl3743a is31fl3745 is31fl3746a ckled2001 custom -# TODO: is31fl3737 is31fl3741 +VALID_LED_MATRIX_TYPES := is31fl3218 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a ckled2001 custom ifeq ($(strip $(LED_MATRIX_ENABLE)), yes) ifeq ($(filter $(LED_MATRIX_DRIVER),$(VALID_LED_MATRIX_TYPES)),) @@ -405,6 +404,20 @@ endif QUANTUM_LIB_SRC += i2c_master.c endif + ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3737) + OPT_DEFS += -DHAL_USE_I2C=TRUE + COMMON_VPATH += $(DRIVER_PATH)/led/issi + SRC += is31fl3737-simple.c + QUANTUM_LIB_SRC += i2c_master.c + endif + + ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3741) + OPT_DEFS += -DHAL_USE_I2C=TRUE + COMMON_VPATH += $(DRIVER_PATH)/led/issi + SRC += is31fl3741-simple.c + QUANTUM_LIB_SRC += i2c_master.c + endif + ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3742a) OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led/issi diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 6a79b11b34..7e5f11b7a7 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -329,7 +329,7 @@ Configures the [LED Matrix](feature_led_matrix.md) feature. * The centroid (geometric center) of the LEDs. Used for certain effects. * Default: `[112, 32]` * `driver` (Required) - * The driver to use. Must be one of `ckled2001`, `custom`, `is31fl3218`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`. + * The driver to use. Must be one of `ckled2001`, `custom`, `is31fl3218`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`. * `layout` (Required) * List of LED configuration dictionaries. Each dictionary contains: * `flags` (Required) diff --git a/drivers/led/issi/is31fl3737-simple.c b/drivers/led/issi/is31fl3737-simple.c new file mode 100644 index 0000000000..b25fbb5a56 --- /dev/null +++ b/drivers/led/issi/is31fl3737-simple.c @@ -0,0 +1,219 @@ +/* Copyright 2017 Jason Williams + * Copyright 2018 Jack Humbert + * Copyright 2018 Yiancar + * Copyright 2021 Doni Crosby + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "is31fl3737-simple.h" +#include +#include "i2c_master.h" +#include "wait.h" + +#define IS31FL3737_COMMANDREGISTER 0xFD +#define IS31FL3737_COMMANDREGISTER_WRITELOCK 0xFE +#define IS31FL3737_INTERRUPTMASKREGISTER 0xF0 +#define IS31FL3737_INTERRUPTSTATUSREGISTER 0xF1 + +#define IS31FL3737_PAGE_LEDCONTROL 0x00 // PG0 +#define IS31FL3737_PAGE_PWM 0x01 // PG1 +#define IS31FL3737_PAGE_AUTOBREATH 0x02 // PG2 +#define IS31FL3737_PAGE_FUNCTION 0x03 // PG3 + +#define IS31FL3737_REG_CONFIGURATION 0x00 // PG3 +#define IS31FL3737_REG_GLOBALCURRENT 0x01 // PG3 +#define IS31FL3737_REG_RESET 0x11 // PG3 +#define IS31FL3737_REG_SWPULLUP 0x0F // PG3 +#define IS31FL3737_REG_CSPULLUP 0x10 // PG3 + +#ifndef IS31FL3737_I2C_TIMEOUT +# define IS31FL3737_I2C_TIMEOUT 100 +#endif + +#ifndef IS31FL3737_I2C_PERSISTENCE +# define IS31FL3737_I2C_PERSISTENCE 0 +#endif + +#ifndef IS31FL3737_PWM_FREQUENCY +# define IS31FL3737_PWM_FREQUENCY IS31FL3737_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3737B only +#endif + +#ifndef IS31FL3737_SWPULLUP +# define IS31FL3737_SWPULLUP IS31FL3737_PUR_0R +#endif + +#ifndef IS31FL3737_CSPULLUP +# define IS31FL3737_CSPULLUP IS31FL3737_PUR_0R +#endif + +#ifndef IS31FL3737_GLOBALCURRENT +# define IS31FL3737_GLOBALCURRENT 0xFF +#endif + +// Transfer buffer for TWITransmitData() +uint8_t g_twi_transfer_buffer[20]; + +// These buffers match the IS31FL3737 PWM registers. +// The control buffers match the PG0 LED On/Off registers. +// Storing them like this is optimal for I2C transfers to the registers. +// We could optimize this and take out the unused registers from these +// buffers and the transfers in is31fl3737_write_pwm_buffer() but it's +// probably not worth the extra complexity. + +uint8_t g_pwm_buffer[IS31FL3737_DRIVER_COUNT][192]; +bool g_pwm_buffer_update_required[IS31FL3737_DRIVER_COUNT] = {false}; + +uint8_t g_led_control_registers[IS31FL3737_DRIVER_COUNT][24] = {0}; +bool g_led_control_registers_update_required[IS31FL3737_DRIVER_COUNT] = {false}; + +void is31fl3737_write_register(uint8_t addr, uint8_t reg, uint8_t data) { + g_twi_transfer_buffer[0] = reg; + g_twi_transfer_buffer[1] = data; + +#if IS31FL3737_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3737_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3737_I2C_TIMEOUT) == 0) break; + } +#else + i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3737_I2C_TIMEOUT); +#endif +} + +void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { + // assumes PG1 is already selected + + // transmit PWM registers in 12 transfers of 16 bytes + // g_twi_transfer_buffer[] is 20 bytes + + // iterate over the pwm_buffer contents at 16 byte intervals + for (int i = 0; i < 192; i += 16) { + g_twi_transfer_buffer[0] = i; + // copy the data from i to i+15 + // device will auto-increment register for data after the first byte + // thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer + memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 16); + +#if IS31FL3737_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3737_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3737_I2C_TIMEOUT) == 0) break; + } +#else + i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3737_I2C_TIMEOUT); +#endif + } +} + +void is31fl3737_init(uint8_t addr) { + // In order to avoid the LEDs being driven with garbage data + // in the LED driver's PWM registers, shutdown is enabled last. + // Set up the mode and other settings, clear the PWM registers, + // then disable software shutdown. + + // Unlock the command register. + is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER_WRITELOCK, 0xC5); + + // Select PG0 + is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_LEDCONTROL); + // Turn off all LEDs. + for (int i = 0x00; i <= 0x17; i++) { + is31fl3737_write_register(addr, i, 0x00); + } + + // Unlock the command register. + is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER_WRITELOCK, 0xC5); + + // Select PG1 + is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_PWM); + // Set PWM on all LEDs to 0 + // No need to setup Breath registers to PWM as that is the default. + for (int i = 0x00; i <= 0xBF; i++) { + is31fl3737_write_register(addr, i, 0x00); + } + + // Unlock the command register. + is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER_WRITELOCK, 0xC5); + + // Select PG3 + is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_FUNCTION); + // Set de-ghost pull-up resistors (SWx) + is31fl3737_write_register(addr, IS31FL3737_REG_SWPULLUP, IS31FL3737_SWPULLUP); + // Set de-ghost pull-down resistors (CSx) + is31fl3737_write_register(addr, IS31FL3737_REG_CSPULLUP, IS31FL3737_CSPULLUP); + // Set global current to maximum. + is31fl3737_write_register(addr, IS31FL3737_REG_GLOBALCURRENT, IS31FL3737_GLOBALCURRENT); + // Disable software shutdown. + is31fl3737_write_register(addr, IS31FL3737_REG_CONFIGURATION, ((IS31FL3737_PWM_FREQUENCY & 0b111) << 3) | 0x01); + + // Wait 10ms to ensure the device has woken up. + wait_ms(10); +} + +void is31fl3737_set_value(int index, uint8_t value) { + is31_led led; + if (index >= 0 && index < LED_MATRIX_LED_COUNT) { + memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + + if (g_pwm_buffer[led.driver][led.v] == value) { + return; + } + g_pwm_buffer[led.driver][led.v] = value; + g_pwm_buffer_update_required[led.driver] = true; + } +} + +void is31fl3737_set_value_all(uint8_t value) { + for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { + is31fl3737_set_value(i, value); + } +} + +void is31fl3737_set_led_control_register(uint8_t index, bool value) { + is31_led led; + memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + + uint8_t control_register = led.v / 8; + uint8_t bit_value = led.v % 8; + + if (value) { + g_led_control_registers[led.driver][control_register] |= (1 << bit_value); + } else { + g_led_control_registers[led.driver][control_register] &= ~(1 << bit_value); + } + + g_led_control_registers_update_required[led.driver] = true; +} + +void is31fl3737_update_pwm_buffers(uint8_t addr, uint8_t index) { + if (g_pwm_buffer_update_required[index]) { + // Firstly we need to unlock the command register and select PG1 + is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_PWM); + + is31fl3737_write_pwm_buffer(addr, g_pwm_buffer[index]); + g_pwm_buffer_update_required[index] = false; + } +} + +void is31fl3737_update_led_control_registers(uint8_t addr, uint8_t index) { + if (g_led_control_registers_update_required[index]) { + // Firstly we need to unlock the command register and select PG0 + is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_LEDCONTROL); + for (int i = 0; i < 24; i++) { + is31fl3737_write_register(addr, i, g_led_control_registers[index][i]); + } + g_led_control_registers_update_required[index] = false; + } +} diff --git a/drivers/led/issi/is31fl3737-simple.h b/drivers/led/issi/is31fl3737-simple.h new file mode 100644 index 0000000000..d242daa1d0 --- /dev/null +++ b/drivers/led/issi/is31fl3737-simple.h @@ -0,0 +1,256 @@ +/* Copyright 2017 Jason Williams + * Copyright 2018 Jack Humbert + * Copyright 2018 Yiancar + * Copyright 2021 Doni Crosby + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include +#include +#include "progmem.h" + +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_COUNT +# define IS31FL3737_DRIVER_COUNT DRIVER_COUNT +#endif +#ifdef ISSI_TIMEOUT +# define IS31FL3737_I2C_TIMEOUT ISSI_TIMEOUT +#endif +#ifdef ISSI_PERSISTENCE +# define IS31FL3737_I2C_PERSISTENCE ISSI_PERSISTENCE +#endif +#ifdef ISSI_PWM_FREQUENCY +# define IS31FL3737_PWM_FREQUENCY ISSI_PWM_FREQUENCY +#endif +#ifdef ISSI_SWPULLUP +# define IS31FL3737_SWPULLUP ISSI_SWPULLUP +#endif +#ifdef ISSI_CSPULLUP +# define IS31FL3737_CSPULLUP ISSI_CSPULLUP +#endif +#ifdef ISSI_GLOBALCURRENT +# define IS31FL3737_GLOBALCURRENT ISSI_GLOBALCURRENT +#endif + +#define PUR_0R IS31FL3737_PUR_0R +#define PUR_05KR IS31FL3737_PUR_05KR +#define PUR_1KR IS31FL3737_PUR_1KR +#define PUR_2KR IS31FL3737_PUR_2KR +#define PUR_4KR IS31FL3737_PUR_4KR +#define PUR_8KR IS31FL3737_PUR_8KR +#define PUR_16KR IS31FL3737_PUR_16KR +#define PUR_32KR IS31FL3737_PUR_32KR +// ======== + +#define IS31FL3737_I2C_ADDRESS_GND 0x50 +#define IS31FL3737_I2C_ADDRESS_SCL 0x55 +#define IS31FL3737_I2C_ADDRESS_SDA 0x5A +#define IS31FL3737_I2C_ADDRESS_VCC 0x5F + +typedef struct is31_led { + uint8_t driver : 2; + uint8_t v; +} __attribute__((packed)) is31_led; + +extern const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT]; + +void is31fl3737_init(uint8_t addr); +void is31fl3737_write_register(uint8_t addr, uint8_t reg, uint8_t data); +void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); + +void is31fl3737_set_value(int index, uint8_t value); +void is31fl3737_set_value_all(uint8_t value); + +void is31fl3737_set_led_control_register(uint8_t index, bool value); + +// This should not be called from an interrupt +// (eg. from a timer interrupt). +// Call this while idle (in between matrix scans). +// If the buffer is dirty, it will update the driver with the buffer. +void is31fl3737_update_pwm_buffers(uint8_t addr, uint8_t index); +void is31fl3737_update_led_control_registers(uint8_t addr, uint8_t index); + +#define IS31FL3737_PUR_0R 0x00 // No PUR resistor +#define IS31FL3737_PUR_05KR 0x01 // 0.5k Ohm resistor in t_NOL +#define IS31FL3737_PUR_1KR 0x02 // 1.0k Ohm resistor in t_NOL +#define IS31FL3737_PUR_2KR 0x03 // 2.0k Ohm resistor in t_NOL +#define IS31FL3737_PUR_4KR 0x04 // 4.0k Ohm resistor in t_NOL +#define IS31FL3737_PUR_8KR 0x05 // 8.0k Ohm resistor in t_NOL +#define IS31FL3737_PUR_16KR 0x06 // 16k Ohm resistor in t_NOL +#define IS31FL3737_PUR_32KR 0x07 // 32k Ohm resistor in t_NOL + +#define IS31FL3737_PWM_FREQUENCY_8K4_HZ 0b000 +#define IS31FL3737_PWM_FREQUENCY_4K2_HZ 0b001 +#define IS31FL3737_PWM_FREQUENCY_26K7_HZ 0b010 +#define IS31FL3737_PWM_FREQUENCY_2K1_HZ 0b011 +#define IS31FL3737_PWM_FREQUENCY_1K05_HZ 0b100 + +#define A_1 0x00 +#define A_2 0x01 +#define A_3 0x02 +#define A_4 0x03 +#define A_5 0x04 +#define A_6 0x05 +#define A_7 0x08 +#define A_8 0x09 +#define A_9 0x0A +#define A_10 0x0B +#define A_11 0x0C +#define A_12 0x0D + +#define B_1 0x10 +#define B_2 0x11 +#define B_3 0x12 +#define B_4 0x13 +#define B_5 0x14 +#define B_6 0x15 +#define B_7 0x18 +#define B_8 0x19 +#define B_9 0x1A +#define B_10 0x1B +#define B_11 0x1C +#define B_12 0x1D + +#define C_1 0x20 +#define C_2 0x21 +#define C_3 0x22 +#define C_4 0x23 +#define C_5 0x24 +#define C_6 0x25 +#define C_7 0x28 +#define C_8 0x29 +#define C_9 0x2A +#define C_10 0x2B +#define C_11 0x2C +#define C_12 0x2D + +#define D_1 0x30 +#define D_2 0x31 +#define D_3 0x32 +#define D_4 0x33 +#define D_5 0x34 +#define D_6 0x35 +#define D_7 0x38 +#define D_8 0x39 +#define D_9 0x3A +#define D_10 0x3B +#define D_11 0x3C +#define D_12 0x3D + +#define E_1 0x40 +#define E_2 0x41 +#define E_3 0x42 +#define E_4 0x43 +#define E_5 0x44 +#define E_6 0x45 +#define E_7 0x48 +#define E_8 0x49 +#define E_9 0x4A +#define E_10 0x4B +#define E_11 0x4C +#define E_12 0x4D + +#define F_1 0x50 +#define F_2 0x51 +#define F_3 0x52 +#define F_4 0x53 +#define F_5 0x54 +#define F_6 0x55 +#define F_7 0x58 +#define F_8 0x59 +#define F_9 0x5A +#define F_10 0x5B +#define F_11 0x5C +#define F_12 0x5D + +#define G_1 0x60 +#define G_2 0x61 +#define G_3 0x62 +#define G_4 0x63 +#define G_5 0x64 +#define G_6 0x65 +#define G_7 0x68 +#define G_8 0x69 +#define G_9 0x6A +#define G_10 0x6B +#define G_11 0x6C +#define G_12 0x6D + +#define H_1 0x70 +#define H_2 0x71 +#define H_3 0x72 +#define H_4 0x73 +#define H_5 0x74 +#define H_6 0x75 +#define H_7 0x78 +#define H_8 0x79 +#define H_9 0x7A +#define H_10 0x7B +#define H_11 0x7C +#define H_12 0x7D + +#define I_1 0x80 +#define I_2 0x81 +#define I_3 0x82 +#define I_4 0x83 +#define I_5 0x84 +#define I_6 0x85 +#define I_7 0x88 +#define I_8 0x89 +#define I_9 0x8A +#define I_10 0x8B +#define I_11 0x8C +#define I_12 0x8D + +#define J_1 0x90 +#define J_2 0x91 +#define J_3 0x92 +#define J_4 0x93 +#define J_5 0x94 +#define J_6 0x95 +#define J_7 0x98 +#define J_8 0x99 +#define J_9 0x9A +#define J_10 0x9B +#define J_11 0x9C +#define J_12 0x9D + +#define K_1 0xA0 +#define K_2 0xA1 +#define K_3 0xA2 +#define K_4 0xA3 +#define K_5 0xA4 +#define K_6 0xA5 +#define K_7 0xA8 +#define K_8 0xA9 +#define K_9 0xAA +#define K_10 0xAB +#define K_11 0xAC +#define K_12 0xAD + +#define L_1 0xB0 +#define L_2 0xB1 +#define L_3 0xB2 +#define L_4 0xB3 +#define L_5 0xB4 +#define L_6 0xB5 +#define L_7 0xB8 +#define L_8 0xB9 +#define L_9 0xBA +#define L_10 0xBB +#define L_11 0xBC +#define L_12 0xBD diff --git a/drivers/led/issi/is31fl3741-simple.c b/drivers/led/issi/is31fl3741-simple.c new file mode 100644 index 0000000000..7df3030131 --- /dev/null +++ b/drivers/led/issi/is31fl3741-simple.c @@ -0,0 +1,253 @@ +/* Copyright 2017 Jason Williams + * Copyright 2018 Jack Humbert + * Copyright 2018 Yiancar + * Copyright 2020 MelGeek + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "is31fl3741-simple.h" +#include +#include "i2c_master.h" +#include "wait.h" + +#define IS31FL3741_COMMANDREGISTER 0xFD +#define IS31FL3741_COMMANDREGISTER_WRITELOCK 0xFE +#define IS31FL3741_INTERRUPTMASKREGISTER 0xF0 +#define IS31FL3741_INTERRUPTSTATUSREGISTER 0xF1 +#define IS31FL3741_IDREGISTER 0xFC + +#define IS31FL3741_PAGE_PWM0 0x00 // PG0 +#define IS31FL3741_PAGE_PWM1 0x01 // PG1 +#define IS31FL3741_PAGE_SCALING_0 0x02 // PG2 +#define IS31FL3741_PAGE_SCALING_1 0x03 // PG3 +#define IS31FL3741_PAGE_FUNCTION 0x04 // PG4 + +#define IS31FL3741_REG_CONFIGURATION 0x00 // PG4 +#define IS31FL3741_REG_GLOBALCURRENT 0x01 // PG4 +#define IS31FL3741_REG_PULLDOWNUP 0x02 // PG4 +#define IS31FL3741_REG_PWM_FREQUENCY 0x36 // PG4 +#define IS31FL3741_REG_RESET 0x3F // PG4 + +#ifndef IS31FL3741_I2C_TIMEOUT +# define IS31FL3741_I2C_TIMEOUT 100 +#endif + +#ifndef IS31FL3741_I2C_PERSISTENCE +# define IS31FL3741_I2C_PERSISTENCE 0 +#endif + +#ifndef IS31FL3741_CONFIGURATION +# define IS31FL3741_CONFIGURATION 0x01 +#endif + +#ifndef IS31FL3741_PWM_FREQUENCY +# define IS31FL3741_PWM_FREQUENCY IS31FL3741_PWM_FREQUENCY_29K_HZ +#endif + +#ifndef IS31FL3741_SWPULLUP +# define IS31FL3741_SWPULLUP IS31FL3741_PUR_32KR +#endif + +#ifndef IS31FL3741_CSPULLUP +# define IS31FL3741_CSPULLUP IS31FL3741_PUR_32KR +#endif + +#ifndef IS31FL3741_GLOBALCURRENT +# define IS31FL3741_GLOBALCURRENT 0xFF +#endif + +#define IS31FL3741_MAX_LEDS 351 + +// Transfer buffer for TWITransmitData() +uint8_t g_twi_transfer_buffer[20] = {0xFF}; + +// These buffers match the IS31FL3741 and IS31FL3741A PWM registers. +// The scaling buffers match the PG2 and PG3 LED On/Off registers. +// Storing them like this is optimal for I2C transfers to the registers. +// We could optimize this and take out the unused registers from these +// buffers and the transfers in is31fl3741_write_pwm_buffer() but it's +// probably not worth the extra complexity. +uint8_t g_pwm_buffer[IS31FL3741_DRIVER_COUNT][IS31FL3741_MAX_LEDS]; +bool g_pwm_buffer_update_required[IS31FL3741_DRIVER_COUNT] = {false}; +bool g_scaling_registers_update_required[IS31FL3741_DRIVER_COUNT] = {false}; + +uint8_t g_scaling_registers[IS31FL3741_DRIVER_COUNT][IS31FL3741_MAX_LEDS]; + +void is31fl3741_write_register(uint8_t addr, uint8_t reg, uint8_t data) { + g_twi_transfer_buffer[0] = reg; + g_twi_transfer_buffer[1] = data; + +#if IS31FL3741_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3741_I2C_TIMEOUT) == 0) break; + } +#else + i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3741_I2C_TIMEOUT); +#endif +} + +bool is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { + // Assume PG0 is already selected + + for (int i = 0; i < 342; i += 18) { + if (i == 180) { + // unlock the command register and select PG1 + is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER, IS31FL3741_PAGE_PWM1); + } + + g_twi_transfer_buffer[0] = i % 180; + memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 18); + +#if IS31FL3741_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 19, IS31FL3741_I2C_TIMEOUT) != 0) { + return false; + } + } +#else + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 19, IS31FL3741_I2C_TIMEOUT) != 0) { + return false; + } +#endif + } + + // transfer the left cause the total number is 351 + g_twi_transfer_buffer[0] = 162; + memcpy(g_twi_transfer_buffer + 1, pwm_buffer + 342, 9); + +#if IS31FL3741_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 10, IS31FL3741_I2C_TIMEOUT) != 0) { + return false; + } + } +#else + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 10, IS31FL3741_I2C_TIMEOUT) != 0) { + return false; + } +#endif + + return true; +} + +void is31fl3741_init(uint8_t addr) { + // In order to avoid the LEDs being driven with garbage data + // in the LED driver's PWM registers, shutdown is enabled last. + // Set up the mode and other settings, clear the PWM registers, + // then disable software shutdown. + // Unlock the command register. + + // Unlock the command register. + is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER_WRITELOCK, 0xC5); + + // Select PG4 + is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER, IS31FL3741_PAGE_FUNCTION); + + // Set to Normal operation + is31fl3741_write_register(addr, IS31FL3741_REG_CONFIGURATION, IS31FL3741_CONFIGURATION); + + // Set Golbal Current Control Register + is31fl3741_write_register(addr, IS31FL3741_REG_GLOBALCURRENT, IS31FL3741_GLOBALCURRENT); + // Set Pull up & Down for SWx CSy + is31fl3741_write_register(addr, IS31FL3741_REG_PULLDOWNUP, ((IS31FL3741_CSPULLUP << 4) | IS31FL3741_SWPULLUP)); + // Set PWM frequency + is31fl3741_write_register(addr, IS31FL3741_REG_PWM_FREQUENCY, (IS31FL3741_PWM_FREQUENCY & 0b1111)); + + // is31fl3741_update_led_scaling_registers(addr, 0xFF, 0xFF, 0xFF); + + // Wait 10ms to ensure the device has woken up. + wait_ms(10); +} + +void is31fl3741_set_value(int index, uint8_t value) { + is31_led led; + if (index >= 0 && index < LED_MATRIX_LED_COUNT) { + memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + + if (g_pwm_buffer[led.driver][led.v] == value) { + return; + } + g_pwm_buffer_update_required[led.driver] = true; + g_pwm_buffer[led.driver][led.v] = value; + } +} + +void is31fl3741_set_value_all(uint8_t value) { + for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { + is31fl3741_set_value(i, value); + } +} + +void is31fl3741_set_led_control_register(uint8_t index, bool value) { + is31_led led; + memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + + if (value) { + g_scaling_registers[led.driver][led.v] = 0xFF; + } else { + g_scaling_registers[led.driver][led.v] = 0x00; + } + + g_scaling_registers_update_required[led.driver] = true; +} + +void is31fl3741_update_pwm_buffers(uint8_t addr, uint8_t index) { + if (g_pwm_buffer_update_required[index]) { + // unlock the command register and select PG2 + is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER, IS31FL3741_PAGE_PWM0); + + is31fl3741_write_pwm_buffer(addr, g_pwm_buffer[index]); + } + + g_pwm_buffer_update_required[index] = false; +} + +void is31fl3741_set_pwm_buffer(const is31_led *pled, uint8_t value) { + g_pwm_buffer[pled->driver][pled->v] = value; + + g_pwm_buffer_update_required[pled->driver] = true; +} + +void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index) { + if (g_scaling_registers_update_required[index]) { + // unlock the command register and select PG2 + is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER, IS31FL3741_PAGE_SCALING_0); + + // CS1_SW1 to CS30_SW6 are on PG2 + for (int i = CS1_SW1; i <= CS30_SW6; ++i) { + is31fl3741_write_register(addr, i, g_scaling_registers[index][i]); + } + + // unlock the command register and select PG3 + is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER, IS31FL3741_PAGE_SCALING_1); + + // CS1_SW7 to CS39_SW9 are on PG3 + for (int i = CS1_SW7; i <= CS39_SW9; ++i) { + is31fl3741_write_register(addr, i - CS1_SW7, g_scaling_registers[index][i]); + } + + g_scaling_registers_update_required[index] = false; + } +} + +void is31fl3741_set_scaling_registers(const is31_led *pled, uint8_t value) { + g_scaling_registers[pled->driver][pled->v] = value; + + g_scaling_registers_update_required[pled->driver] = true; +} diff --git a/drivers/led/issi/is31fl3741-simple.h b/drivers/led/issi/is31fl3741-simple.h new file mode 100644 index 0000000000..8bca066ad3 --- /dev/null +++ b/drivers/led/issi/is31fl3741-simple.h @@ -0,0 +1,471 @@ +/* Copyright 2017 Jason Williams + * Copyright 2018 Jack Humbert + * Copyright 2018 Yiancar + * Copyright 2020 MelGeek + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include +#include +#include "progmem.h" + +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_COUNT +# define IS31FL3741_DRIVER_COUNT DRIVER_COUNT +#endif +#ifdef ISSI_TIMEOUT +# define IS31FL3741_I2C_TIMEOUT ISSI_TIMEOUT +#endif +#ifdef ISSI_PERSISTENCE +# define IS31FL3741_I2C_PERSISTENCE ISSI_PERSISTENCE +#endif +#ifdef ISSI_CONFIGURATION +# define IS31FL3741_CONFIGURATION ISSI_CONFIGURATION +#endif +#ifdef ISSI_SWPULLUP +# define IS31FL3741_SWPULLUP ISSI_SWPULLUP +#endif +#ifdef ISSI_CSPULLUP +# define IS31FL3741_CSPULLUP ISSI_CSPULLUP +#endif +#ifdef ISSI_GLOBALCURRENT +# define IS31FL3741_GLOBALCURRENT ISSI_GLOBALCURRENT +#endif + +#define PUR_0R IS31FL3741_PUR_0R +#define PUR_05KR IS31FL3741_PUR_05KR +#define PUR_1KR IS31FL3741_PUR_1KR +#define PUR_2KR IS31FL3741_PUR_2KR +#define PUR_4KR IS31FL3741_PUR_4KR +#define PUR_8KR IS31FL3741_PUR_8KR +#define PUR_16KR IS31FL3741_PUR_16KR +#define PUR_32KR IS31FL3741_PUR_32KR +// ======== + +#define IS31FL3741_I2C_ADDRESS_GND 0x30 +#define IS31FL3741_I2C_ADDRESS_SCL 0x31 +#define IS31FL3741_I2C_ADDRESS_SDA 0x32 +#define IS31FL3741_I2C_ADDRESS_VCC 0x33 + +typedef struct is31_led { + uint32_t driver : 2; + uint32_t v : 10; +} __attribute__((packed)) is31_led; + +extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT]; + +void is31fl3741_init(uint8_t addr); +void is31fl3741_write_register(uint8_t addr, uint8_t reg, uint8_t data); +bool is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); + +void is31fl3741_set_value(int index, uint8_t value); +void is31fl3741_set_value_all(uint8_t value); + +void is31fl3741_set_led_control_register(uint8_t index, bool value); + +// This should not be called from an interrupt +// (eg. from a timer interrupt). +// Call this while idle (in between matrix scans). +// If the buffer is dirty, it will update the driver with the buffer. +void is31fl3741_update_pwm_buffers(uint8_t addr, uint8_t index); +void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index); +void is31fl3741_set_scaling_registers(const is31_led *pled, uint8_t value); + +void is31fl3741_set_pwm_buffer(const is31_led *pled, uint8_t value); + +#define IS31FL3741_PUR_0R 0x00 // No PUR resistor +#define IS31FL3741_PUR_05KR 0x01 // 0.5k Ohm resistor +#define IS31FL3741_PUR_1KR 0x02 // 1.0k Ohm resistor +#define IS31FL3741_PUR_2KR 0x03 // 2.0k Ohm resistor +#define IS31FL3741_PUR_4KR 0x04 // 4.0k Ohm resistor +#define IS31FL3741_PUR_8KR 0x05 // 8.0k Ohm resistor +#define IS31FL3741_PUR_16KR 0x06 // 16k Ohm resistor +#define IS31FL3741_PUR_32KR 0x07 // 32k Ohm resistor + +#define IS31FL3741_PWM_FREQUENCY_29K_HZ 0b0000 +#define IS31FL3741_PWM_FREQUENCY_3K6_HZ 0b0011 +#define IS31FL3741_PWM_FREQUENCY_1K8_HZ 0b0111 +#define IS31FL3741_PWM_FREQUENCY_900_HZ 0b1011 + +#define CS1_SW1 0x00 +#define CS2_SW1 0x01 +#define CS3_SW1 0x02 +#define CS4_SW1 0x03 +#define CS5_SW1 0x04 +#define CS6_SW1 0x05 +#define CS7_SW1 0x06 +#define CS8_SW1 0x07 +#define CS9_SW1 0x08 +#define CS10_SW1 0x09 +#define CS11_SW1 0x0A +#define CS12_SW1 0x0B +#define CS13_SW1 0x0C +#define CS14_SW1 0x0D +#define CS15_SW1 0x0E +#define CS16_SW1 0x0F +#define CS17_SW1 0x10 +#define CS18_SW1 0x11 +#define CS19_SW1 0x12 +#define CS20_SW1 0x13 +#define CS21_SW1 0x14 +#define CS22_SW1 0x15 +#define CS23_SW1 0x16 +#define CS24_SW1 0x17 +#define CS25_SW1 0x18 +#define CS26_SW1 0x19 +#define CS27_SW1 0x1A +#define CS28_SW1 0x1B +#define CS29_SW1 0x1C +#define CS30_SW1 0x1D + +#define CS1_SW2 0x1E +#define CS2_SW2 0x1F +#define CS3_SW2 0x20 +#define CS4_SW2 0x21 +#define CS5_SW2 0x22 +#define CS6_SW2 0x23 +#define CS7_SW2 0x24 +#define CS8_SW2 0x25 +#define CS9_SW2 0x26 +#define CS10_SW2 0x27 +#define CS11_SW2 0x28 +#define CS12_SW2 0x29 +#define CS13_SW2 0x2A +#define CS14_SW2 0x2B +#define CS15_SW2 0x2C +#define CS16_SW2 0x2D +#define CS17_SW2 0x2E +#define CS18_SW2 0x2F +#define CS19_SW2 0x30 +#define CS20_SW2 0x31 +#define CS21_SW2 0x32 +#define CS22_SW2 0x33 +#define CS23_SW2 0x34 +#define CS24_SW2 0x35 +#define CS25_SW2 0x36 +#define CS26_SW2 0x37 +#define CS27_SW2 0x38 +#define CS28_SW2 0x39 +#define CS29_SW2 0x3A +#define CS30_SW2 0x3B + +#define CS1_SW3 0x3C +#define CS2_SW3 0x3D +#define CS3_SW3 0x3E +#define CS4_SW3 0x3F +#define CS5_SW3 0x40 +#define CS6_SW3 0x41 +#define CS7_SW3 0x42 +#define CS8_SW3 0x43 +#define CS9_SW3 0x44 +#define CS10_SW3 0x45 +#define CS11_SW3 0x46 +#define CS12_SW3 0x47 +#define CS13_SW3 0x48 +#define CS14_SW3 0x49 +#define CS15_SW3 0x4A +#define CS16_SW3 0x4B +#define CS17_SW3 0x4C +#define CS18_SW3 0x4D +#define CS19_SW3 0x4E +#define CS20_SW3 0x4F +#define CS21_SW3 0x50 +#define CS22_SW3 0x51 +#define CS23_SW3 0x52 +#define CS24_SW3 0x53 +#define CS25_SW3 0x54 +#define CS26_SW3 0x55 +#define CS27_SW3 0x56 +#define CS28_SW3 0x57 +#define CS29_SW3 0x58 +#define CS30_SW3 0x59 + +#define CS1_SW4 0x5A +#define CS2_SW4 0x5B +#define CS3_SW4 0x5C +#define CS4_SW4 0x5D +#define CS5_SW4 0x5E +#define CS6_SW4 0x5F +#define CS7_SW4 0x60 +#define CS8_SW4 0x61 +#define CS9_SW4 0x62 +#define CS10_SW4 0x63 +#define CS11_SW4 0x64 +#define CS12_SW4 0x65 +#define CS13_SW4 0x66 +#define CS14_SW4 0x67 +#define CS15_SW4 0x68 +#define CS16_SW4 0x69 +#define CS17_SW4 0x6A +#define CS18_SW4 0x6B +#define CS19_SW4 0x6C +#define CS20_SW4 0x6D +#define CS21_SW4 0x6E +#define CS22_SW4 0x6F +#define CS23_SW4 0x70 +#define CS24_SW4 0x71 +#define CS25_SW4 0x72 +#define CS26_SW4 0x73 +#define CS27_SW4 0x74 +#define CS28_SW4 0x75 +#define CS29_SW4 0x76 +#define CS30_SW4 0x77 + +#define CS1_SW5 0x78 +#define CS2_SW5 0x79 +#define CS3_SW5 0x7A +#define CS4_SW5 0x7B +#define CS5_SW5 0x7C +#define CS6_SW5 0x7D +#define CS7_SW5 0x7E +#define CS8_SW5 0x7F +#define CS9_SW5 0x80 +#define CS10_SW5 0x81 +#define CS11_SW5 0x82 +#define CS12_SW5 0x83 +#define CS13_SW5 0x84 +#define CS14_SW5 0x85 +#define CS15_SW5 0x86 +#define CS16_SW5 0x87 +#define CS17_SW5 0x88 +#define CS18_SW5 0x89 +#define CS19_SW5 0x8A +#define CS20_SW5 0x8B +#define CS21_SW5 0x8C +#define CS22_SW5 0x8D +#define CS23_SW5 0x8E +#define CS24_SW5 0x8F +#define CS25_SW5 0x90 +#define CS26_SW5 0x91 +#define CS27_SW5 0x92 +#define CS28_SW5 0x93 +#define CS29_SW5 0x94 +#define CS30_SW5 0x95 + +#define CS1_SW6 0x96 +#define CS2_SW6 0x97 +#define CS3_SW6 0x98 +#define CS4_SW6 0x99 +#define CS5_SW6 0x9A +#define CS6_SW6 0x9B +#define CS7_SW6 0x9C +#define CS8_SW6 0x9D +#define CS9_SW6 0x9E +#define CS10_SW6 0x9F +#define CS11_SW6 0xA0 +#define CS12_SW6 0xA1 +#define CS13_SW6 0xA2 +#define CS14_SW6 0xA3 +#define CS15_SW6 0xA4 +#define CS16_SW6 0xA5 +#define CS17_SW6 0xA6 +#define CS18_SW6 0xA7 +#define CS19_SW6 0xA8 +#define CS20_SW6 0xA9 +#define CS21_SW6 0xAA +#define CS22_SW6 0xAB +#define CS23_SW6 0xAC +#define CS24_SW6 0xAD +#define CS25_SW6 0xAE +#define CS26_SW6 0xAF +#define CS27_SW6 0xB0 +#define CS28_SW6 0xB1 +#define CS29_SW6 0xB2 +#define CS30_SW6 0xB3 + +#define CS1_SW7 0xB4 +#define CS2_SW7 0xB5 +#define CS3_SW7 0xB6 +#define CS4_SW7 0xB7 +#define CS5_SW7 0xB8 +#define CS6_SW7 0xB9 +#define CS7_SW7 0xBA +#define CS8_SW7 0xBB +#define CS9_SW7 0xBC +#define CS10_SW7 0xBD +#define CS11_SW7 0xBE +#define CS12_SW7 0xBF +#define CS13_SW7 0xC0 +#define CS14_SW7 0xC1 +#define CS15_SW7 0xC2 +#define CS16_SW7 0xC3 +#define CS17_SW7 0xC4 +#define CS18_SW7 0xC5 +#define CS19_SW7 0xC6 +#define CS20_SW7 0xC7 +#define CS21_SW7 0xC8 +#define CS22_SW7 0xC9 +#define CS23_SW7 0xCA +#define CS24_SW7 0xCB +#define CS25_SW7 0xCC +#define CS26_SW7 0xCD +#define CS27_SW7 0xCE +#define CS28_SW7 0xCF +#define CS29_SW7 0xD0 +#define CS30_SW7 0xD1 + +#define CS1_SW8 0xD2 +#define CS2_SW8 0xD3 +#define CS3_SW8 0xD4 +#define CS4_SW8 0xD5 +#define CS5_SW8 0xD6 +#define CS6_SW8 0xD7 +#define CS7_SW8 0xD8 +#define CS8_SW8 0xD9 +#define CS9_SW8 0xDA +#define CS10_SW8 0xDB +#define CS11_SW8 0xDC +#define CS12_SW8 0xDD +#define CS13_SW8 0xDE +#define CS14_SW8 0xDF +#define CS15_SW8 0xE0 +#define CS16_SW8 0xE1 +#define CS17_SW8 0xE2 +#define CS18_SW8 0xE3 +#define CS19_SW8 0xE4 +#define CS20_SW8 0xE5 +#define CS21_SW8 0xE6 +#define CS22_SW8 0xE7 +#define CS23_SW8 0xE8 +#define CS24_SW8 0xE9 +#define CS25_SW8 0xEA +#define CS26_SW8 0xEB +#define CS27_SW8 0xEC +#define CS28_SW8 0xED +#define CS29_SW8 0xEE +#define CS30_SW8 0xEF + +#define CS1_SW9 0xF0 +#define CS2_SW9 0xF1 +#define CS3_SW9 0xF2 +#define CS4_SW9 0xF3 +#define CS5_SW9 0xF4 +#define CS6_SW9 0xF5 +#define CS7_SW9 0xF6 +#define CS8_SW9 0xF7 +#define CS9_SW9 0xF8 +#define CS10_SW9 0xF9 +#define CS11_SW9 0xFA +#define CS12_SW9 0xFB +#define CS13_SW9 0xFC +#define CS14_SW9 0xFD +#define CS15_SW9 0xFE +#define CS16_SW9 0xFF +#define CS17_SW9 0x100 +#define CS18_SW9 0x101 +#define CS19_SW9 0x102 +#define CS20_SW9 0x103 +#define CS21_SW9 0x104 +#define CS22_SW9 0x105 +#define CS23_SW9 0x106 +#define CS24_SW9 0x107 +#define CS25_SW9 0x108 +#define CS26_SW9 0x109 +#define CS27_SW9 0x10A +#define CS28_SW9 0x10B +#define CS29_SW9 0x10C +#define CS30_SW9 0x10D + +#define CS31_SW1 0x10E +#define CS32_SW1 0x10F +#define CS33_SW1 0x110 +#define CS34_SW1 0x111 +#define CS35_SW1 0x112 +#define CS36_SW1 0x113 +#define CS37_SW1 0x114 +#define CS38_SW1 0x115 +#define CS39_SW1 0x116 + +#define CS31_SW2 0x117 +#define CS32_SW2 0x118 +#define CS33_SW2 0x119 +#define CS34_SW2 0x11A +#define CS35_SW2 0x11B +#define CS36_SW2 0x11C +#define CS37_SW2 0x11D +#define CS38_SW2 0x11E +#define CS39_SW2 0x11F + +#define CS31_SW3 0x120 +#define CS32_SW3 0x121 +#define CS33_SW3 0x122 +#define CS34_SW3 0x123 +#define CS35_SW3 0x124 +#define CS36_SW3 0x125 +#define CS37_SW3 0x126 +#define CS38_SW3 0x127 +#define CS39_SW3 0x128 + +#define CS31_SW4 0x129 +#define CS32_SW4 0x12A +#define CS33_SW4 0x12B +#define CS34_SW4 0x12C +#define CS35_SW4 0x12D +#define CS36_SW4 0x12E +#define CS37_SW4 0x12F +#define CS38_SW4 0x130 +#define CS39_SW4 0x131 + +#define CS31_SW5 0x132 +#define CS32_SW5 0x133 +#define CS33_SW5 0x134 +#define CS34_SW5 0x135 +#define CS35_SW5 0x136 +#define CS36_SW5 0x137 +#define CS37_SW5 0x138 +#define CS38_SW5 0x139 +#define CS39_SW5 0x13A + +#define CS31_SW6 0x13B +#define CS32_SW6 0x13C +#define CS33_SW6 0x13D +#define CS34_SW6 0x13E +#define CS35_SW6 0x13F +#define CS36_SW6 0x140 +#define CS37_SW6 0x141 +#define CS38_SW6 0x142 +#define CS39_SW6 0x143 + +#define CS31_SW7 0x144 +#define CS32_SW7 0x145 +#define CS33_SW7 0x146 +#define CS34_SW7 0x147 +#define CS35_SW7 0x148 +#define CS36_SW7 0x149 +#define CS37_SW7 0x14A +#define CS38_SW7 0x14B +#define CS39_SW7 0x14C + +#define CS31_SW8 0x14D +#define CS32_SW8 0x14E +#define CS33_SW8 0x14F +#define CS34_SW8 0x150 +#define CS35_SW8 0x151 +#define CS36_SW8 0x152 +#define CS37_SW8 0x153 +#define CS38_SW8 0x154 +#define CS39_SW8 0x155 + +#define CS31_SW9 0x156 +#define CS32_SW9 0x157 +#define CS33_SW9 0x158 +#define CS34_SW9 0x159 +#define CS35_SW9 0x15A +#define CS36_SW9 0x15B +#define CS37_SW9 0x15C +#define CS38_SW9 0x15D +#define CS39_SW9 0x15E diff --git a/quantum/led_matrix/led_matrix.h b/quantum/led_matrix/led_matrix.h index 316585b1fe..47803d2423 100644 --- a/quantum/led_matrix/led_matrix.h +++ b/quantum/led_matrix/led_matrix.h @@ -36,6 +36,12 @@ #ifdef LED_MATRIX_IS31FL3736 # include "is31fl3736-simple.h" #endif +#ifdef LED_MATRIX_IS31FL3737 +# include "is31fl3737-simple.h" +#endif +#ifdef LED_MATRIX_IS31FL3741 +# include "is31fl3741-simple.h" +#endif #if defined(IS31FLCOMMON) # include "is31flcommon.h" #endif diff --git a/quantum/led_matrix/led_matrix_drivers.c b/quantum/led_matrix/led_matrix_drivers.c index 27c53a223a..771ce820af 100644 --- a/quantum/led_matrix/led_matrix_drivers.c +++ b/quantum/led_matrix/led_matrix_drivers.c @@ -25,7 +25,7 @@ * in their own files. */ -#if defined(LED_MATRIX_IS31FL3218) || defined(LED_MATRIX_IS31FL3731) || defined(LED_MATRIX_IS31FL3733) || defined(LED_MATRIX_IS31FL3736) || defined(IS31FLCOMMON) || defined(LED_MATRIX_CKLED2001) +#if defined(LED_MATRIX_IS31FL3218) || defined(LED_MATRIX_IS31FL3731) || defined(LED_MATRIX_IS31FL3733) || defined(LED_MATRIX_IS31FL3736) || defined(LED_MATRIX_IS31FL3737) || defined(LED_MATRIX_IS31FL3741) || defined(IS31FLCOMMON) || defined(LED_MATRIX_CKLED2001) # include "i2c_master.h" static void init(void) { @@ -82,6 +82,30 @@ static void init(void) { # endif # endif +# elif defined(LED_MATRIX_IS31FL3737) + is31fl3737_init(LED_DRIVER_ADDR_1); +# if defined(LED_DRIVER_ADDR_2) + is31fl3737_init(LED_DRIVER_ADDR_2); +# if defined(LED_DRIVER_ADDR_3) + is31fl3737_init(LED_DRIVER_ADDR_3); +# if defined(LED_DRIVER_ADDR_4) + is31fl3737_init(LED_DRIVER_ADDR_4); +# endif +# endif +# endif + +# elif defined(LED_MATRIX_IS31FL3741) + is31fl3741_init(LED_DRIVER_ADDR_1); +# if defined(LED_DRIVER_ADDR_2) + is31fl3741_init(LED_DRIVER_ADDR_2); +# if defined(LED_DRIVER_ADDR_3) + is31fl3741_init(LED_DRIVER_ADDR_3); +# if defined(LED_DRIVER_ADDR_4) + is31fl3741_init(LED_DRIVER_ADDR_4); +# endif +# endif +# endif + # elif defined(IS31FLCOMMON) IS31FL_common_init(DRIVER_ADDR_1, ISSI_SSR_1); # if defined(LED_DRIVER_ADDR_2) @@ -120,6 +144,10 @@ static void init(void) { is31fl3733_set_led_control_register(index, true); # elif defined(LED_MATRIX_IS31FL3736) is31fl3736_set_led_control_register(index, true); +# elif defined(LED_MATRIX_IS31FL3737) + is31fl3737_set_led_control_register(index, true); +# elif defined(LED_MATRIX_IS31FL3741) + is31fl3741_set_led_control_register(index, true); # elif defined(IS31FLCOMMON) IS31FL_simple_set_scaling_buffer(index, true); # elif defined(LED_MATRIX_CKLED2001) @@ -167,6 +195,30 @@ static void init(void) { # endif # endif +# elif defined(LED_MATRIX_IS31FL3737) + is31fl3737_update_led_control_registers(LED_DRIVER_ADDR_1, 0); +# if defined(LED_DRIVER_ADDR_2) + is31fl3737_update_led_control_registers(LED_DRIVER_ADDR_2, 1); +# if defined(LED_DRIVER_ADDR_3) + is31fl3737_update_led_control_registers(LED_DRIVER_ADDR_3, 2); +# if defined(LED_DRIVER_ADDR_4) + is31fl3737_update_led_control_registers(LED_DRIVER_ADDR_4, 3); +# endif +# endif +# endif + +# elif defined(LED_MATRIX_IS31FL3741) + is31fl3741_update_led_control_registers(LED_DRIVER_ADDR_1, 0); +# if defined(LED_DRIVER_ADDR_2) + is31fl3741_update_led_control_registers(LED_DRIVER_ADDR_2, 1); +# if defined(LED_DRIVER_ADDR_3) + is31fl3741_update_led_control_registers(LED_DRIVER_ADDR_3, 2); +# if defined(LED_DRIVER_ADDR_4) + is31fl3741_update_led_control_registers(LED_DRIVER_ADDR_4, 3); +# endif +# endif +# endif + # elif defined(IS31FLCOMMON) # ifdef ISSI_MANUAL_SCALING IS31FL_set_manual_scaling_buffer(); @@ -270,6 +322,48 @@ const led_matrix_driver_t led_matrix_driver = { .set_value_all = is31fl3736_set_value_all, }; +# elif defined(LED_MATRIX_IS31FL3737) +static void flush(void) { + is31fl3737_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); +# if defined(LED_DRIVER_ADDR_2) + is31fl3737_update_pwm_buffers(LED_DRIVER_ADDR_2, 1); +# if defined(LED_DRIVER_ADDR_3) + is31fl3737_update_pwm_buffers(LED_DRIVER_ADDR_3, 2); +# if defined(LED_DRIVER_ADDR_4) + is31fl3737_update_pwm_buffers(LED_DRIVER_ADDR_4, 3); +# endif +# endif +# endif +} + +const led_matrix_driver_t led_matrix_driver = { + .init = init, + .flush = flush, + .set_value = is31fl3737_set_value, + .set_value_all = is31fl3737_set_value_all, +}; + +# elif defined(LED_MATRIX_IS31FL3741) +static void flush(void) { + is31fl3741_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); +# if defined(LED_DRIVER_ADDR_2) + is31fl3741_update_pwm_buffers(LED_DRIVER_ADDR_2, 1); +# if defined(LED_DRIVER_ADDR_3) + is31fl3741_update_pwm_buffers(LED_DRIVER_ADDR_3, 2); +# if defined(LED_DRIVER_ADDR_4) + is31fl3741_update_pwm_buffers(LED_DRIVER_ADDR_4, 3); +# endif +# endif +# endif +} + +const led_matrix_driver_t led_matrix_driver = { + .init = init, + .flush = flush, + .set_value = is31fl3741_set_value, + .set_value_all = is31fl3741_set_value_all, +}; + # elif defined(IS31FLCOMMON) static void flush(void) { IS31FL_common_update_pwm_register(DRIVER_ADDR_1, 0); From f33881b1da15955b43c463611f7a24390d4acd5d Mon Sep 17 00:00:00 2001 From: Sergey Fedorov Date: Tue, 3 Oct 2023 16:27:00 +0900 Subject: [PATCH 218/496] Add Soulstone keyboard (#22093) --- keyboards/strech/soulstone/config.h | 24 ++++++ keyboards/strech/soulstone/info.json | 84 +++++++++++++++++++ .../strech/soulstone/keymaps/default/keymap.c | 44 ++++++++++ .../strech/soulstone/keymaps/via/keymap.c | 44 ++++++++++ .../strech/soulstone/keymaps/via/rules.mk | 1 + keyboards/strech/soulstone/readme.md | 30 +++++++ keyboards/strech/soulstone/rules.mk | 1 + keyboards/strech/soulstone/soulstone.c | 30 +++++++ 8 files changed, 258 insertions(+) create mode 100644 keyboards/strech/soulstone/config.h create mode 100644 keyboards/strech/soulstone/info.json create mode 100644 keyboards/strech/soulstone/keymaps/default/keymap.c create mode 100644 keyboards/strech/soulstone/keymaps/via/keymap.c create mode 100644 keyboards/strech/soulstone/keymaps/via/rules.mk create mode 100644 keyboards/strech/soulstone/readme.md create mode 100644 keyboards/strech/soulstone/rules.mk create mode 100644 keyboards/strech/soulstone/soulstone.c diff --git a/keyboards/strech/soulstone/config.h b/keyboards/strech/soulstone/config.h new file mode 100644 index 0000000000..425546d77e --- /dev/null +++ b/keyboards/strech/soulstone/config.h @@ -0,0 +1,24 @@ +/* Copyright 2023 Strech + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define LAYER_INDICATOR_LED_PIN B3 diff --git a/keyboards/strech/soulstone/info.json b/keyboards/strech/soulstone/info.json new file mode 100644 index 0000000000..53037d1460 --- /dev/null +++ b/keyboards/strech/soulstone/info.json @@ -0,0 +1,84 @@ +{ + "keyboard_name": "Soulstone", + "maintainer": "Strech", + "manufacturer": "Strech", + "usb": { + "vid": "0xB030", + "pid": "0x0001", + "device_version": "1.0.0" + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["B7", "F1", "B0", "F4", "E6", "F0", "D5", "D3", "D2", "D1", "B4", "D7", "D6"], + "rows": ["D0", "D4", "B5", "F5"] + }, + "indicators": { + "caps_lock": "B1", + "num_lock": "B2" + }, + "dynamic_keymap": { + "layer_count": 6 + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "label": "Esc"}, + {"matrix": [0, 1], "x": 1, "y": 0, "label": "Q"}, + {"matrix": [0, 2], "x": 2, "y": 0, "label": "W"}, + {"matrix": [0, 3], "x": 3, "y": 0, "label": "E"}, + {"matrix": [0, 4], "x": 4, "y": 0, "label": "R"}, + {"matrix": [0, 5], "x": 5, "y": 0, "label": "T"}, + {"matrix": [0, 6], "x": 7, "y": 0, "label": "Y"}, + {"matrix": [0, 7], "x": 8, "y": 0, "label": "U"}, + {"matrix": [0, 8], "x": 9, "y": 0, "label": "I"}, + {"matrix": [0, 9], "x": 10, "y": 0, "label": "O"}, + {"matrix": [0, 10], "x": 11, "y": 0, "label": "P"}, + {"matrix": [0, 11], "x": 12, "y": 0, "label": "Del"}, + {"matrix": [0, 12], "x": 13, "y": 0, "label": "Bspc"}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.25, "label": "Tab"}, + {"matrix": [1, 1], "x": 1.25, "y": 1, "label": "A"}, + {"matrix": [1, 2], "x": 2.25, "y": 1, "label": "S"}, + {"matrix": [1, 3], "x": 3.25, "y": 1, "label": "D"}, + {"matrix": [1, 4], "x": 4.25, "y": 1, "label": "F"}, + {"matrix": [1, 5], "x": 5.25, "y": 1, "label": "G"}, + {"matrix": [1, 6], "x": 7.25, "y": 1, "label": "H"}, + {"matrix": [1, 7], "x": 8.25, "y": 1, "label": "J"}, + {"matrix": [1, 8], "x": 9.25, "y": 1, "label": "K"}, + {"matrix": [1, 9], "x": 10.25, "y": 1, "label": "L"}, + {"matrix": [1, 10], "x": 11.25, "y": 1, "label": ";"}, + {"matrix": [1, 12], "x": 12.25, "y": 1, "w": 1.5, "label": "Enter"}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75, "label": "L Shift"}, + {"matrix": [2, 1], "x": 1.75, "y": 2, "label": "Z"}, + {"matrix": [2, 2], "x": 2.75, "y": 2, "label": "X"}, + {"matrix": [2, 3], "x": 3.75, "y": 2, "label": "C"}, + {"matrix": [2, 4], "x": 4.75, "y": 2, "label": "V"}, + {"matrix": [2, 5], "x": 5.75, "y": 2, "label": "B"}, + {"matrix": [2, 6], "x": 6.75, "y": 2, "label": "MO(3)"}, + {"matrix": [2, 7], "x": 7.75, "y": 2, "label": "N"}, + {"matrix": [2, 8], "x": 8.75, "y": 2, "label": "M"}, + {"matrix": [2, 9], "x": 9.75, "y": 2, "label": ","}, + {"matrix": [2, 10], "x": 10.75, "y": 2, "label": "."}, + {"matrix": [2, 11], "x": 11.75, "y": 2, "label": "/"}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 1.25, "label": "R Shift"}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25, "label": "L Ctrl"}, + {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25, "label": "L Alt"}, + {"matrix": [3, 3], "x": 3.50, "y": 3, "w": 1.25, "label": "MO(2)"}, + {"matrix": [3, 4], "x": 4.75, "y": 3, "w": 2, "label": "MO(1)"}, + {"matrix": [3, 6], "x": 6.75, "y": 3, "w": 2.25, "label": "Space"}, + {"matrix": [3, 8], "x": 9, "y": 3, "w": 1.25, "label": "R Alt"}, + {"matrix": [3, 11], "x": 11.50, "y": 3, "w": 1.25, "label": "R GUI"}, + {"matrix": [3, 12], "x": 12.75, "y": 3, "w": 1.25, "label": "R Ctrl"} + ] + } + } +} diff --git a/keyboards/strech/soulstone/keymaps/default/keymap.c b/keyboards/strech/soulstone/keymaps/default/keymap.c new file mode 100644 index 0000000000..7dc655b619 --- /dev/null +++ b/keyboards/strech/soulstone/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2023 Strech + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(3), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LALT, MO(2), MO(1), KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + [1] = LAYOUT( + KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_SCLN, KC_BSLS, + 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 + ), + [2] = LAYOUT( + KC_TRNS, 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_LNUM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_LBRC, KC_RBRC, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PENT, KC_PDOT, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT( + KC_TRNS, 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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/strech/soulstone/keymaps/via/keymap.c b/keyboards/strech/soulstone/keymaps/via/keymap.c new file mode 100644 index 0000000000..7dc655b619 --- /dev/null +++ b/keyboards/strech/soulstone/keymaps/via/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2023 Strech + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(3), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LALT, MO(2), MO(1), KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + [1] = LAYOUT( + KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_SCLN, KC_BSLS, + 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 + ), + [2] = LAYOUT( + KC_TRNS, 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_LNUM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_LBRC, KC_RBRC, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PENT, KC_PDOT, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT( + KC_TRNS, 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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/strech/soulstone/keymaps/via/rules.mk b/keyboards/strech/soulstone/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/strech/soulstone/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/strech/soulstone/readme.md b/keyboards/strech/soulstone/readme.md new file mode 100644 index 0000000000..07c792f0eb --- /dev/null +++ b/keyboards/strech/soulstone/readme.md @@ -0,0 +1,30 @@ +# Soulstone + +![Soulstone](https://i.imgur.com/aQBsgZ9h.jpg) + +A hotswap PCB inspired by an elegant [prime_e](https://www.primekb.com/products/prime_e-rev-2-pcb), +45% ergo keyboard. It is compatible with `rev2` (RGB and non-RGB) which makes it +fit to any `rev2` compatible case. + +* Keyboard Maintainer: [Strech](https://github.com/Strech) +* Hardware Supported: Soulstone +* Hardware Availability: Coming soon + +Make example for this keyboard (after setting up your build environment): + + make strech/soulstone:default + +Flashing example for this keyboard: + + make strech/soulstone:default:flash + +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). + +## Bootloader + +Enter the bootloader using one of the following methods: + +* Tap the Reset switch mounted on the PCB +* Hold down the key at (0,0) in the matrix (usually the top left key or `Escape`) and plug in the keyboard diff --git a/keyboards/strech/soulstone/rules.mk b/keyboards/strech/soulstone/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/strech/soulstone/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/strech/soulstone/soulstone.c b/keyboards/strech/soulstone/soulstone.c new file mode 100644 index 0000000000..4a951aff9d --- /dev/null +++ b/keyboards/strech/soulstone/soulstone.c @@ -0,0 +1,30 @@ +/* Copyright 2023 Strech + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +// Prepare layer indicator LED +void keyboard_post_init_kb(void) { + setPinOutput(LAYER_INDICATOR_LED_PIN); + writePinLow(LAYER_INDICATOR_LED_PIN); + keyboard_post_init_user(); +} + +// Function for layer indicator LED +layer_state_t layer_state_set_kb(layer_state_t state) { + writePin(LAYER_INDICATOR_LED_PIN, !layer_state_cmp(state, 0)); + return layer_state_set_user(state); +} From bc5d407bf723057df8b450947239fb44923de505 Mon Sep 17 00:00:00 2001 From: Syenasweta Date: Tue, 3 Oct 2023 14:34:06 +0700 Subject: [PATCH 219/496] [Keyboard] Add SyenaKeyboards (#22168) Co-authored-by: Syenasweta --- keyboards/syenakeyboards/aswagata/info.json | 36 +++++++++++++++++++ .../aswagata/keymaps/default/keymap.c | 11 ++++++ .../aswagata/keymaps/via/keymap.c | 11 ++++++ .../aswagata/keymaps/via/rules.mk | 1 + keyboards/syenakeyboards/aswagata/readme.md | 25 +++++++++++++ keyboards/syenakeyboards/aswagata/rules.mk | 1 + 6 files changed, 85 insertions(+) create mode 100644 keyboards/syenakeyboards/aswagata/info.json create mode 100644 keyboards/syenakeyboards/aswagata/keymaps/default/keymap.c create mode 100644 keyboards/syenakeyboards/aswagata/keymaps/via/keymap.c create mode 100644 keyboards/syenakeyboards/aswagata/keymaps/via/rules.mk create mode 100644 keyboards/syenakeyboards/aswagata/readme.md create mode 100644 keyboards/syenakeyboards/aswagata/rules.mk diff --git a/keyboards/syenakeyboards/aswagata/info.json b/keyboards/syenakeyboards/aswagata/info.json new file mode 100644 index 0000000000..1f2cf798bb --- /dev/null +++ b/keyboards/syenakeyboards/aswagata/info.json @@ -0,0 +1,36 @@ +{ + "manufacturer": "Syenasweta", + "keyboard_name": "SyenaKeyboards Aswagata", + "maintainer": "syenasweta", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": true, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP20", "GP21"], + "rows": ["GP10", "GP11"] + }, + "processor": "RP2040", + "url": "https://github.com/syenasweta/syenakeyboards", + "usb": { + "device_version": "1.0.0", + "pid": "0x4173", + "vid": "0x5373" + } + "layouts": { + "LAYOUT_ortho_2x2": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1} + ] + } + } +} diff --git a/keyboards/syenakeyboards/aswagata/keymaps/default/keymap.c b/keyboards/syenakeyboards/aswagata/keymaps/default/keymap.c new file mode 100644 index 0000000000..48bdb8ffb4 --- /dev/null +++ b/keyboards/syenakeyboards/aswagata/keymaps/default/keymap.c @@ -0,0 +1,11 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_2x2( + KC_COPY, KC_PASTE, + KC_SELECT, KC_CUT + ) +}; diff --git a/keyboards/syenakeyboards/aswagata/keymaps/via/keymap.c b/keyboards/syenakeyboards/aswagata/keymaps/via/keymap.c new file mode 100644 index 0000000000..4dd4706744 --- /dev/null +++ b/keyboards/syenakeyboards/aswagata/keymaps/via/keymap.c @@ -0,0 +1,11 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_2x2( + KC_COPY, KC_PASTE, + KC_SELECT, KC_CUT + ) +}; \ No newline at end of file diff --git a/keyboards/syenakeyboards/aswagata/keymaps/via/rules.mk b/keyboards/syenakeyboards/aswagata/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/syenakeyboards/aswagata/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/syenakeyboards/aswagata/readme.md b/keyboards/syenakeyboards/aswagata/readme.md new file mode 100644 index 0000000000..5b9673d96f --- /dev/null +++ b/keyboards/syenakeyboards/aswagata/readme.md @@ -0,0 +1,25 @@ +# SyenaKeyboards Aswagata + +![SyenaKeyboards Aswagata](https://i.imgur.com/JMiFegah.jpg) + +Aswagata is a macropad with four buttons. The default functions are `copy`, `paste`, `cut`, and `select` for Linux, but can be customized. + +* Keyboard Maintainer: [Syenasweta](https://github.com/syenasweta) +* Hardware Supported: RP2040 +* Hardware Availability: [Tokopedia (Syenasweta)](https://tokopedia.link/gDJ6Rgp4xDb) + +Make example for this keyboard (after setting up your build environment): + + make syenakeyboards/aswagata:default + +Flashing example for this keyboard: + + make syenakeyboards/aswagata:default:flash + +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). + +## Bootloader + +Enter the bootloader in 1 ways: + +* **Bootmagic reset**: Hold down the top left key (assigned to `copy` by default) and plug in the keyboard. diff --git a/keyboards/syenakeyboards/aswagata/rules.mk b/keyboards/syenakeyboards/aswagata/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/syenakeyboards/aswagata/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file From 3df155f203dd1f22085376ee0f86568f7f9bf63a Mon Sep 17 00:00:00 2001 From: "Kuan-Wei, Chiu" Date: Wed, 4 Oct 2023 06:27:11 +0800 Subject: [PATCH 220/496] Fix memory leak in realloc failure handling (#22188) --- quantum/painter/lvgl/qp_lvgl.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/quantum/painter/lvgl/qp_lvgl.c b/quantum/painter/lvgl/qp_lvgl.c index 2e433d7761..877b2652c6 100644 --- a/quantum/painter/lvgl/qp_lvgl.c +++ b/quantum/painter/lvgl/qp_lvgl.c @@ -96,13 +96,14 @@ bool qp_lvgl_attach(painter_device_t device) { // Set up lvgl display buffer static lv_disp_draw_buf_t draw_buf; // Allocate a buffer for 1/10 screen size - const size_t count_required = driver->panel_width * driver->panel_height / 10; - color_buffer = color_buffer ? realloc(color_buffer, sizeof(lv_color_t) * count_required) : malloc(sizeof(lv_color_t) * count_required); - if (!color_buffer) { + const size_t count_required = driver->panel_width * driver->panel_height / 10; + void * new_color_buffer = realloc(color_buffer, sizeof(lv_color_t) * count_required); + if (!new_color_buffer) { qp_dprintf("qp_lvgl_attach: fail (could not set up memory buffer)\n"); qp_lvgl_detach(); return false; } + color_buffer = new_color_buffer; memset(color_buffer, 0, sizeof(lv_color_t) * count_required); // Initialize the display buffer. lv_disp_draw_buf_init(&draw_buf, color_buffer, NULL, count_required); From a638f6e5aae3bdfe6c5a2b120ad6e5fa0fcba467 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 4 Oct 2023 01:19:04 +0100 Subject: [PATCH 221/496] Fix minimum python version references (#22191) --- docs/cli.md | 4 ++-- docs/cli_development.md | 6 +++--- docs/coding_conventions_python.md | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/cli.md b/docs/cli.md index 8684479d0c..feb5458d39 100644 --- a/docs/cli.md +++ b/docs/cli.md @@ -6,7 +6,7 @@ The QMK CLI makes building and working with QMK keyboards easier. We have provid ### Requirements :id=requirements -QMK requires Python 3.6 or greater. We try to keep the number of requirements small but you will also need to install the packages listed in [`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt). These are installed automatically when you install the QMK CLI. +QMK requires Python 3.7 or greater. We try to keep the number of requirements small but you will also need to install the packages listed in [`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt). These are installed automatically when you install the QMK CLI. ### Install Using Homebrew (macOS, some Linux) :id=install-using-homebrew @@ -20,7 +20,7 @@ qmk setup # This will clone `qmk/qmk_firmware` and optionally set up your build ### Install Using pip :id=install-using-easy_install-or-pip -If your system is not listed above you can install QMK manually. First ensure that you have Python 3.6 (or later) installed and have installed pip. Then install QMK with this command: +If your system is not listed above you can install QMK manually. First ensure that you have Python 3.7 (or later) installed and have installed pip. Then install QMK with this command: ``` python3 -m pip install qmk diff --git a/docs/cli_development.md b/docs/cli_development.md index d878deff17..8d4ee62535 100644 --- a/docs/cli_development.md +++ b/docs/cli_development.md @@ -44,7 +44,7 @@ def hello(cli): First we import the `cli` object from `milc`. This is how we interact with the user and control the script's behavior. We use `@cli.argument()` to define a command line flag, `--name`. This also creates a configuration variable named `hello.name` (and the corresponding `user.name`) which the user can set so they don't have to specify the argument. The `cli.subcommand()` decorator designates this function as a subcommand. The name of the subcommand will be taken from the name of the function. -Once inside our function we find a typical "Hello, World!" program. We use `cli.log` to access the underlying [Logger Object](https://docs.python.org/3.6/library/logging.html#logger-objects), whose behavior is user controllable. We also access the value for name supplied by the user as `cli.config.hello.name`. The value for `cli.config.hello.name` will be determined by looking at the `--name` argument supplied by the user, if not provided it will use the value in the `qmk.ini` config file, and if neither of those is provided it will fall back to the default supplied in the `cli.argument()` decorator. +Once inside our function we find a typical "Hello, World!" program. We use `cli.log` to access the underlying [Logger Object](https://docs.python.org/3.7/library/logging.html#logger-objects), whose behavior is user controllable. We also access the value for name supplied by the user as `cli.config.hello.name`. The value for `cli.config.hello.name` will be determined by looking at the `--name` argument supplied by the user, if not provided it will use the value in the `qmk.ini` config file, and if neither of those is provided it will fall back to the default supplied in the `cli.argument()` decorator. # User Interaction @@ -56,13 +56,13 @@ There are two main methods for outputting text in a subcommand- `cli.log` and `c You can use special tokens to colorize your text, to make it easier to understand the output of your program. See [Colorizing Text](#colorizing-text) below. -Both of these methods support built-in string formatting using python's [printf style string format operations](https://docs.python.org/3.6/library/stdtypes.html#old-string-formatting). You can use tokens such as `%s` and `%d` within your text strings then pass the values as arguments. See our Hello, World program above for an example. +Both of these methods support built-in string formatting using python's [printf style string format operations](https://docs.python.org/3.7/library/stdtypes.html#old-string-formatting). You can use tokens such as `%s` and `%d` within your text strings then pass the values as arguments. See our Hello, World program above for an example. You should never use the format operator (`%`) directly, always pass values as arguments. ### Logging (`cli.log`) -The `cli.log` object gives you access to a [Logger Object](https://docs.python.org/3.6/library/logging.html#logger-objects). We have configured our log output to show the user a nice emoji for each log level (or the log level name if their terminal does not support unicode.) This way the user can tell at a glance which messages are most important when something goes wrong. +The `cli.log` object gives you access to a [Logger Object](https://docs.python.org/3.7/library/logging.html#logger-objects). We have configured our log output to show the user a nice emoji for each log level (or the log level name if their terminal does not support unicode.) This way the user can tell at a glance which messages are most important when something goes wrong. The default log level is `INFO`. If the user runs `qmk -v ` the default log level will be set to `DEBUG`. diff --git a/docs/coding_conventions_python.md b/docs/coding_conventions_python.md index 2b68703448..1ed27ee46a 100644 --- a/docs/coding_conventions_python.md +++ b/docs/coding_conventions_python.md @@ -317,7 +317,7 @@ At the time of this writing our tests are not very comprehensive. Looking at the ## Integration Tests -Integration tests can be found in `lib/python/qmk/tests/test_cli_commands.py`. This is where CLI commands are actually run and their overall behavior is verified. We use [`subprocess`](https://docs.python.org/3.6/library/subprocess.html#module-subprocess) to launch each CLI command and a combination of checking output and returncode to determine if the right thing happened. +Integration tests can be found in `lib/python/qmk/tests/test_cli_commands.py`. This is where CLI commands are actually run and their overall behavior is verified. We use [`subprocess`](https://docs.python.org/3.7/library/subprocess.html#module-subprocess) to launch each CLI command and a combination of checking output and returncode to determine if the right thing happened. ## Unit Tests From d9fa80c0b0044bb951694aead215d72e4a51807c Mon Sep 17 00:00:00 2001 From: Coom <1655787+coomstoolbox@users.noreply.github.com> Date: Wed, 4 Oct 2023 12:40:57 +0900 Subject: [PATCH 222/496] Added /handwired/ziyoulang_k3_mod (#21965) Co-authored-by: Duncan Sutherland Co-authored-by: Drashna Jaelre --- .../handwired/ziyoulang_k3_mod/info.json | 142 ++++++++++++++++++ .../ziyoulang_k3_mod/keymaps/default/keymap.c | 45 ++++++ .../ziyoulang_k3_mod/keymaps/via/keymap.c | 34 +++++ .../ziyoulang_k3_mod/keymaps/via/rules.mk | 3 + .../handwired/ziyoulang_k3_mod/readme.md | 33 ++++ keyboards/handwired/ziyoulang_k3_mod/rules.mk | 1 + 6 files changed, 258 insertions(+) create mode 100644 keyboards/handwired/ziyoulang_k3_mod/info.json create mode 100644 keyboards/handwired/ziyoulang_k3_mod/keymaps/default/keymap.c create mode 100644 keyboards/handwired/ziyoulang_k3_mod/keymaps/via/keymap.c create mode 100644 keyboards/handwired/ziyoulang_k3_mod/keymaps/via/rules.mk create mode 100644 keyboards/handwired/ziyoulang_k3_mod/readme.md create mode 100644 keyboards/handwired/ziyoulang_k3_mod/rules.mk diff --git a/keyboards/handwired/ziyoulang_k3_mod/info.json b/keyboards/handwired/ziyoulang_k3_mod/info.json new file mode 100644 index 0000000000..127cc51299 --- /dev/null +++ b/keyboards/handwired/ziyoulang_k3_mod/info.json @@ -0,0 +1,142 @@ +{ + "keyboard_name": "ziyoulang k3 mod", + "development_board": "bluepill", + "usb": { + "device_version": "1.0.0", + "pid": "0xE002", + "vid": "0x5006" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": false + }, + "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 3 + }, + "matrix_pins": { + "cols": ["B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A10", "A9", "A8", "B15", "B14", "B13", "B12", "B1", "B0", "A7", "A6", "A5", "A4"], + "rows": ["C14", "C15", "A0", "A1", "A2", "A3"] + }, + "community_layouts": ["96_ansi"], + "layouts": { + "LAYOUT_96_ansi": { + "layout": [ + {"label":"Esc", "x":0, "y":0, "matrix": [0, 0]}, + {"label":"F1", "x":1, "y":0, "matrix": [0, 2]}, + {"label":"F2", "x":2, "y":0, "matrix": [0, 3]}, + {"label":"F3", "x":3, "y":0, "matrix": [0, 4]}, + {"label":"F4", "x":4, "y":0, "matrix": [0, 5]}, + {"label":"F5", "x":5, "y":0, "matrix": [0, 6]}, + {"label":"F6", "x":6, "y":0, "matrix": [0, 7]}, + {"label":"F7", "x":7, "y":0, "matrix": [0, 8]}, + {"label":"F8", "x":8, "y":0, "matrix": [0, 9]}, + {"label":"F9", "x":9, "y":0, "matrix": [0, 10]}, + {"label":"F10", "x":10, "y":0, "matrix": [0, 11]}, + {"label":"F11", "x":11, "y":0, "matrix": [0, 12]}, + {"label":"F12", "x":12, "y":0, "matrix": [0, 13]}, + {"label":"PrtSc", "x":13, "y":0, "matrix": [0, 14]}, + {"label":"Delete", "x":14, "y":0, "matrix": [0, 15]}, + {"label":"Home", "x":15.5, "y":0, "matrix": [0, 16]}, + {"label":"Insert", "x":16.5, "y":0, "matrix": [0, 17]}, + {"label":"PgUp", "x":17.5, "y":0, "matrix": [0, 18]}, + {"label":"PgDn", "x":18.5, "y":0, "matrix": [0, 19]}, + + {"label":"~", "x":0, "y":1.25, "matrix": [1, 0]}, + {"label":"!", "x":1, "y":1.25, "matrix": [1, 1]}, + {"label":"@", "x":2, "y":1.25, "matrix": [1, 2]}, + {"label":"#", "x":3, "y":1.25, "matrix": [1, 3]}, + {"label":"$", "x":4, "y":1.25, "matrix": [1, 4]}, + {"label":"%", "x":5, "y":1.25, "matrix": [1, 5]}, + {"label":"^", "x":6, "y":1.25, "matrix": [1, 6]}, + {"label":"&", "x":7, "y":1.25, "matrix": [1, 7]}, + {"label":"*", "x":8, "y":1.25, "matrix": [1, 8]}, + {"label":"(", "x":9, "y":1.25, "matrix": [1, 9]}, + {"label":")", "x":10, "y":1.25, "matrix": [1, 10]}, + {"label":"_", "x":11, "y":1.25, "matrix": [1, 11]}, + {"label":"+", "x":12, "y":1.25, "matrix": [1, 12]}, + {"label":"Backspace", "x":13, "y":1.25, "w":2, "matrix": [1, 13]}, + {"label":"Num Lock", "x":15.5, "y":1.25, "matrix": [1, 17]}, + {"label":"/", "x":16.5, "y":1.25, "matrix": [1, 18]}, + {"label":"*", "x":17.5, "y":1.25, "matrix": [1, 19]}, + {"label":"-", "x":18.5, "y":1.25, "matrix": [1, 20]}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5, "matrix": [2, 0]}, + {"label":"Q", "x":1.5, "y":2.25, "matrix": [2, 1]}, + {"label":"W", "x":2.5, "y":2.25, "matrix": [2, 2]}, + {"label":"E", "x":3.5, "y":2.25, "matrix": [2, 3]}, + {"label":"R", "x":4.5, "y":2.25, "matrix": [2, 4]}, + {"label":"T", "x":5.5, "y":2.25, "matrix": [2, 5]}, + {"label":"Y", "x":6.5, "y":2.25, "matrix": [2, 6]}, + {"label":"U", "x":7.5, "y":2.25, "matrix": [2, 7]}, + {"label":"I", "x":8.5, "y":2.25, "matrix": [2, 8]}, + {"label":"O", "x":9.5, "y":2.25, "matrix": [2, 9]}, + {"label":"P", "x":10.5, "y":2.25, "matrix": [2, 10]}, + {"label":"{", "x":11.5, "y":2.25, "matrix": [2, 11]}, + {"label":"}", "x":12.5, "y":2.25, "matrix": [2, 12]}, + {"label":"|", "x":13.5, "y":2.25, "w":1.5, "matrix": [2, 13]}, + {"label":"7", "x":15.5, "y":2.25, "matrix": [2, 17]}, + {"label":"8", "x":16.5, "y":2.25, "matrix": [2, 18]}, + {"label":"9", "x":17.5, "y":2.25, "matrix": [2, 19]}, + {"label":"+", "x":18.5, "y":2.25, "h":2, "matrix": [2, 20]}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75, "matrix": [3, 0]}, + {"label":"A", "x":1.75, "y":3.25, "matrix": [3, 2]}, + {"label":"S", "x":2.75, "y":3.25, "matrix": [3, 3]}, + {"label":"D", "x":3.75, "y":3.25, "matrix": [3, 4]}, + {"label":"F", "x":4.75, "y":3.25, "matrix": [3, 5]}, + {"label":"G", "x":5.75, "y":3.25, "matrix": [3, 6]}, + {"label":"H", "x":6.75, "y":3.25, "matrix": [3, 7]}, + {"label":"J", "x":7.75, "y":3.25, "matrix": [3, 8]}, + {"label":"K", "x":8.75, "y":3.25, "matrix": [3, 9]}, + {"label":"L", "x":9.75, "y":3.25, "matrix": [3, 10]}, + {"label":":", "x":10.75, "y":3.25, "matrix": [3, 11]}, + {"label":"\"", "x":11.75, "y":3.25, "matrix": [3, 12]}, + {"label":"Enter", "x":12.75, "y":3.25, "w":2.25, "matrix": [3, 13]}, + {"label":"4", "x":15.5, "y":3.25, "matrix": [3, 17]}, + {"label":"5", "x":16.5, "y":3.25, "matrix": [3, 18]}, + {"label":"6", "x":17.5, "y":3.25, "matrix": [3, 19]}, + + {"label":"Shift", "x":0, "y":4.25, "w":2.25, "matrix": [4, 0]}, + {"label":"Z", "x":2.25, "y":4.25, "matrix": [4, 2]}, + {"label":"X", "x":3.25, "y":4.25, "matrix": [4, 3]}, + {"label":"C", "x":4.25, "y":4.25, "matrix": [4, 4]}, + {"label":"V", "x":5.25, "y":4.25, "matrix": [4, 5]}, + {"label":"B", "x":6.25, "y":4.25, "matrix": [4, 6]}, + {"label":"N", "x":7.25, "y":4.25, "matrix": [4, 7]}, + {"label":"M", "x":8.25, "y":4.25, "matrix": [4, 8]}, + {"label":"<", "x":9.25, "y":4.25, "matrix": [4, 9]}, + {"label":">", "x":10.25, "y":4.25, "matrix": [4, 10]}, + {"label":"?", "x":11.25, "y":4.25, "matrix": [4, 11]}, + {"label":"Shift", "x":12.25, "y":4.25, "w":1.75, "matrix": [4, 13]}, + {"label":"1", "x":15.5, "y":4.25, "matrix": [4, 17]}, + {"label":"2", "x":16.5, "y":4.25, "matrix": [4, 18]}, + {"label":"3", "x":17.5, "y":4.25, "matrix": [4, 19]}, + {"label":"Enter", "x":18.5, "y":4.25, "h":2, "matrix": [4, 20]}, + + {"label":"\u2191", "x":14.25, "y":4.5, "matrix": [4, 15]}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.25, "matrix": [5, 0]}, + {"label":"Win", "x":1.25, "y":5.25, "w":1.25, "matrix": [5, 2]}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.25, "matrix": [5, 3]}, + {"x":3.75, "y":5.25, "w":6.25, "matrix": [5, 6]}, + {"label":"Alt", "x":10, "y":5.25, "matrix": [5, 10]}, + {"label":"Fn", "x":11, "y":5.25, "matrix": [5, 11]}, + {"label":"Ctrl", "x":12, "y":5.25, "matrix": [5, 13]}, + {"label":"0", "x":16.5, "y":5.25, "matrix": [5, 17]}, + {"label":".", "x":17.5, "y":5.25, "matrix": [5, 19]}, + + {"label":"\u2190", "x":13.25, "y":5.5, "matrix": [5, 14]}, + {"label":"\u2193", "x":14.25, "y":5.5, "matrix": [5, 15]}, + {"label":"\u2192", "x":15.25, "y":5.5, "matrix": [5, 16]} + ] + } + }, + "manufacturer": "Coom", + "maintainer": "coomstoolbox", + "url": "" +} \ No newline at end of file diff --git a/keyboards/handwired/ziyoulang_k3_mod/keymaps/default/keymap.c b/keyboards/handwired/ziyoulang_k3_mod/keymaps/default/keymap.c new file mode 100644 index 0000000000..6cd7d86403 --- /dev/null +++ b/keyboards/handwired/ziyoulang_k3_mod/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┐ + * │Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│PSc│Del│ │Hom│Ins│PgU│PgD│ + * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Num│ / │ * │ - │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │ 7 │ 8 │ 9 │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┼───┼───┤ + │ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ │ 4 │ 5 │ 6 │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬┬──┴┐├───┼───┼───┼───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift││ ↑ ││ 1 │ 2 │ 3 │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬┬──┴┼───┼┴──┬┼───┼───┤Ent│ + * │Ctrl│GUI │Alt │ │Alt│ Fn│Ctr││ ← │ ↓ │ → ││ 0 │ . │ │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┘└───┴───┴───┘└───┴───┴───┘ + */ + [0] = LAYOUT_96_ansi( + KC_ESC, 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_PSCR, KC_DEL, KC_HOME, KC_INS, KC_PGUP, KC_PGDN, + + KC_GRV, 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_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_P7, KC_P8, KC_P9, KC_PPLS, + 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_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_P0, KC_PDOT, + KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_96_ansi( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, _______, KC_SCRL, KC_PAUS, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______ + ) +}; diff --git a/keyboards/handwired/ziyoulang_k3_mod/keymaps/via/keymap.c b/keyboards/handwired/ziyoulang_k3_mod/keymaps/via/keymap.c new file mode 100644 index 0000000000..08825dacce --- /dev/null +++ b/keyboards/handwired/ziyoulang_k3_mod/keymaps/via/keymap.c @@ -0,0 +1,34 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┐ + * │Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│PSc│Del│ │Hom│Ins│PgU│PgD│ + * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Num│ / │ * │ - │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │ 7 │ 8 │ 9 │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┼───┼───┤ + │ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ │ 4 │ 5 │ 6 │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬┬──┴┐├───┼───┼───┼───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift││ ↑ ││ 1 │ 2 │ 3 │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬┬──┴┼───┼┴──┬┼───┼───┤Ent│ + * │Ctrl│GUI │Alt │ │Alt│ Fn│Ctr││ ← │ ↓ │ → ││ 0 │ . │ │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┘└───┴───┴───┘└───┴───┴───┘ + */ + [0] = LAYOUT_96_ansi( + KC_ESC, 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_PSCR, KC_DEL, KC_HOME, KC_INS, KC_PGUP, KC_PGDN, + + KC_GRV, 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_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_P7, KC_P8, KC_P9, KC_PPLS, + 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_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_P0, KC_PDOT, + KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/handwired/ziyoulang_k3_mod/keymaps/via/rules.mk b/keyboards/handwired/ziyoulang_k3_mod/keymaps/via/rules.mk new file mode 100644 index 0000000000..ea877d6786 --- /dev/null +++ b/keyboards/handwired/ziyoulang_k3_mod/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +MOUSEKEY_ENABLE = no +LTO_ENABLE = yes diff --git a/keyboards/handwired/ziyoulang_k3_mod/readme.md b/keyboards/handwired/ziyoulang_k3_mod/readme.md new file mode 100644 index 0000000000..7e247fde19 --- /dev/null +++ b/keyboards/handwired/ziyoulang_k3_mod/readme.md @@ -0,0 +1,33 @@ +# ziyoulang_k3_mod + +![ziyoulang_k3_mod](https://i.imgur.com/z9mUvIoh.jpg) + + +This base keyboard has SX83099 IC causes some problems. I needed QMK as an alternative, especially since the controller freezes when the backlight is off. + +* Keyboard Maintainer: [Coom](https://github.com/coomstoolbox) +* Hardware Supported: Ziyoulang K3,Blue Pill +* Hardware Availability: [Base Keyboard](https://www.aliexpress.com/item/1005005458088199.html), [Blue Pill Board](https://www.aliexpress.com/item/32812837487.html) + +Make example for this keyboard (after setting up your build environment): + + make handwired/ziyoulang_k3_mod:default + +Flashing example for this keyboard: + + make handwired/ziyoulang_k3_mod:default:flash + +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). + +## Requires hand wired + +[KiCAD wiring diagram](https://github.com/coomstoolbox/ZK3-BP-MOD-wiring-diagram) + +![explanation](https://i.imgur.com/yvhvhoBh.png) + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/ziyoulang_k3_mod/rules.mk b/keyboards/handwired/ziyoulang_k3_mod/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/handwired/ziyoulang_k3_mod/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From 75ba2db2c19f20434f842108acefddc9ca5ebde1 Mon Sep 17 00:00:00 2001 From: adophoxia <100170946+adophoxia@users.noreply.github.com> Date: Tue, 3 Oct 2023 20:52:09 -0700 Subject: [PATCH 223/496] Update Keychron Q2 (#21994) Co-authored-by: Drashna Jaelre --- keyboards/keychron/q2/ansi/ansi.c | 29 ------ keyboards/keychron/q2/ansi/config.h | 7 +- keyboards/keychron/q2/ansi/info.json | 87 ++++++++++++++--- keyboards/keychron/q2/ansi/rules.mk | 16 +--- .../keychron/q2/ansi_encoder/ansi_encoder.c | 29 ------ keyboards/keychron/q2/ansi_encoder/config.h | 8 +- keyboards/keychron/q2/ansi_encoder/info.json | 92 +++++++++++++++--- keyboards/keychron/q2/ansi_encoder/rules.mk | 16 +--- keyboards/keychron/q2/config.h | 57 +---------- keyboards/keychron/q2/info.json | 60 ++++++++++++ keyboards/keychron/q2/iso/config.h | 7 +- keyboards/keychron/q2/iso/info.json | 88 ++++++++++++++--- keyboards/keychron/q2/iso/iso.c | 29 ------ keyboards/keychron/q2/iso/rules.mk | 16 +--- keyboards/keychron/q2/iso_encoder/config.h | 8 +- keyboards/keychron/q2/iso_encoder/info.json | 93 +++++++++++++++--- .../keychron/q2/iso_encoder/iso_encoder.c | 29 ------ keyboards/keychron/q2/iso_encoder/rules.mk | 16 +--- keyboards/keychron/q2/jis/config.h | 4 +- keyboards/keychron/q2/jis/info.json | 89 +++++++++++++++--- keyboards/keychron/q2/jis/jis.c | 29 ------ keyboards/keychron/q2/jis/rules.mk | 15 +-- keyboards/keychron/q2/jis_encoder/config.h | 7 +- keyboards/keychron/q2/jis_encoder/info.json | 94 ++++++++++++++++--- .../keychron/q2/jis_encoder/jis_encoder.c | 29 ------ keyboards/keychron/q2/jis_encoder/rules.mk | 16 +--- keyboards/keychron/q2/readme.md | 16 +++- 27 files changed, 557 insertions(+), 429 deletions(-) create mode 100644 keyboards/keychron/q2/info.json diff --git a/keyboards/keychron/q2/ansi/ansi.c b/keyboards/keychron/q2/ansi/ansi.c index 28f91269c4..baf12d3df0 100644 --- a/keyboards/keychron/q2/ansi/ansi.c +++ b/keyboards/keychron/q2/ansi/ansi.c @@ -97,33 +97,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { {1, F_16, D_16, E_16}, }; -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 65, 42, 43 }, - { 44, __, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, __, 55, 56 }, - { 57, 58, 59, __, __, __, 60, __, __, __, 61, 62, 63, 64, 66 } - }, - { - // LED Index to Physical Position - {0,0}, {15,0}, {29,0}, {44,0}, {59,0}, {73,0}, {88,0}, {103,0}, {118,0}, {132,0}, {147,0}, {162,0}, {176,0}, {198,0}, {224,0}, - {4,15}, {22,15}, {37,15}, {51,15}, {66,15}, {81,15}, {95,15}, {110,15}, {125,15}, {140,15}, {154,15}, {169,15}, {184,15}, {202,15}, {224,15}, - {6,30}, {26,30}, {40,30}, {55,30}, {70,30}, {84,30}, {99,30}, {114,30}, {129,30}, {143,30}, {158,30}, {173,30}, {196,30}, {224,30}, - {9,45}, {33,45}, {48,45}, {62,45}, {77,45}, {92,45}, {106,45}, {121,45}, {136,45}, {151,45}, {165,45}, {185,45}, {209,49}, - {2,60}, {20,60}, {39,60}, {94,60}, {147,60}, {162,60}, {176,60}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q2/ansi/config.h b/keyboards/keychron/q2/ansi/config.h index 6c39432b74..41b92074be 100644 --- a/keyboards/keychron/q2/ansi/config.h +++ b/keyboards/keychron/q2/ansi/config.h @@ -17,6 +17,7 @@ #pragma once /* RGB Matrix Configuration */ -#define DRIVER_1_LED_TOTAL 34 -#define DRIVER_2_LED_TOTAL 33 -#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT 67 + +/* Enable caps-lock LED */ +#define CAPS_LOCK_LED_INDEX 30 \ No newline at end of file diff --git a/keyboards/keychron/q2/ansi/info.json b/keyboards/keychron/q2/ansi/info.json index 8ed601fe8f..d419d31eef 100644 --- a/keyboards/keychron/q2/ansi/info.json +++ b/keyboards/keychron/q2/ansi/info.json @@ -1,23 +1,84 @@ { - "keyboard_name": "Q2", - "manufacturer": "Keychron", - "url": "https://github.com/Keychron", - "maintainer": "lalalademaxiya1", "usb": { - "vid": "0x3434", "pid": "0x0110", "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 44, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 59, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 73, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 88, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 103, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 118, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 147, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + + {"matrix": [1, 0], "x": 4, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 51, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 81, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 95, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 110, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 140, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 154, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 169, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 184, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 202, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1}, + + {"matrix": [2, 0], "x": 6, "y": 30, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 30, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 55, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 70, "y": 30, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 30, "flags": 4}, + {"matrix": [2, 6], "x": 99, "y": 30, "flags": 4}, + {"matrix": [2, 7], "x": 114, "y": 30, "flags": 4}, + {"matrix": [2, 8], "x": 129, "y": 30, "flags": 4}, + {"matrix": [2, 9], "x": 143, "y": 30, "flags": 4}, + {"matrix": [2, 10], "x": 158, "y": 30, "flags": 4}, + {"matrix": [2, 11], "x": 173, "y": 30, "flags": 4}, + {"matrix": [2, 13], "x": 196, "y": 30, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 30, "flags": 1}, + + {"matrix": [3, 0], "x": 9, "y": 45, "flags": 1}, + {"matrix": [3, 2], "x": 33, "y": 45, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 45, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 45, "flags": 4}, + {"matrix": [3, 5], "x": 77, "y": 45, "flags": 4}, + {"matrix": [3, 6], "x": 92, "y": 45, "flags": 4}, + {"matrix": [3, 7], "x": 106, "y": 45, "flags": 4}, + {"matrix": [3, 8], "x": 121, "y": 45, "flags": 4}, + {"matrix": [3, 9], "x": 136, "y": 45, "flags": 4}, + {"matrix": [3, 10], "x": 151, "y": 45, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 45, "flags": 4}, + {"matrix": [3, 13], "x": 185, "y": 45, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1}, + + {"matrix": [4, 0], "x": 2, "y": 60, "flags": 1}, + {"matrix": [4, 1], "x": 20, "y": 60, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 60, "flags": 1}, + {"matrix": [4, 6], "x": 94, "y": 60, "flags": 4}, + {"matrix": [4, 10], "x": 147, "y": 60, "flags": 1}, + {"matrix": [4, 11], "x": 162, "y": 60, "flags": 1}, + {"matrix": [4, 12], "x": 176, "y": 60, "flags": 1}, + {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + + ] }, - "matrix_pins": { - "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], - "rows": ["B4", "B3", "A15", "A14", "A13"] - }, - "diode_direction": "ROW2COL", - "processor": "STM32L432", - "bootloader": "stm32-dfu", "layouts": { "LAYOUT_ansi_67": { "layout": [ diff --git a/keyboards/keychron/q2/ansi/rules.mk b/keyboards/keychron/q2/ansi/rules.mk index eca21676ee..7ff128fa69 100644 --- a/keyboards/keychron/q2/ansi/rules.mk +++ b/keyboards/keychron/q2/ansi/rules.mk @@ -1,15 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = no # Enable Encoder -DIP_SWITCH_ENABLE = yes -RGB_MATRIX_ENABLE = yes +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/keychron/q2/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q2/ansi_encoder/ansi_encoder.c index 28f91269c4..baf12d3df0 100644 --- a/keyboards/keychron/q2/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q2/ansi_encoder/ansi_encoder.c @@ -97,33 +97,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { {1, F_16, D_16, E_16}, }; -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 65, 42, 43 }, - { 44, __, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, __, 55, 56 }, - { 57, 58, 59, __, __, __, 60, __, __, __, 61, 62, 63, 64, 66 } - }, - { - // LED Index to Physical Position - {0,0}, {15,0}, {29,0}, {44,0}, {59,0}, {73,0}, {88,0}, {103,0}, {118,0}, {132,0}, {147,0}, {162,0}, {176,0}, {198,0}, {224,0}, - {4,15}, {22,15}, {37,15}, {51,15}, {66,15}, {81,15}, {95,15}, {110,15}, {125,15}, {140,15}, {154,15}, {169,15}, {184,15}, {202,15}, {224,15}, - {6,30}, {26,30}, {40,30}, {55,30}, {70,30}, {84,30}, {99,30}, {114,30}, {129,30}, {143,30}, {158,30}, {173,30}, {196,30}, {224,30}, - {9,45}, {33,45}, {48,45}, {62,45}, {77,45}, {92,45}, {106,45}, {121,45}, {136,45}, {151,45}, {165,45}, {185,45}, {209,49}, - {2,60}, {20,60}, {39,60}, {94,60}, {147,60}, {162,60}, {176,60}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q2/ansi_encoder/config.h b/keyboards/keychron/q2/ansi_encoder/config.h index b7e4b1e7f8..41b92074be 100644 --- a/keyboards/keychron/q2/ansi_encoder/config.h +++ b/keyboards/keychron/q2/ansi_encoder/config.h @@ -17,9 +17,7 @@ #pragma once /* RGB Matrix Configuration */ -#define DRIVER_1_LED_TOTAL 34 -#define DRIVER_2_LED_TOTAL 33 -#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT 67 -/* Encoder used pins */ -#define ENCODER_DEFAULT_POS 0x3 +/* Enable caps-lock LED */ +#define CAPS_LOCK_LED_INDEX 30 \ No newline at end of file diff --git a/keyboards/keychron/q2/ansi_encoder/info.json b/keyboards/keychron/q2/ansi_encoder/info.json index c9587d20ea..1e1f22bada 100644 --- a/keyboards/keychron/q2/ansi_encoder/info.json +++ b/keyboards/keychron/q2/ansi_encoder/info.json @@ -1,28 +1,90 @@ { - "keyboard_name": "Q2", - "manufacturer": "Keychron", - "url": "https://github.com/Keychron", - "maintainer": "lalalademaxiya1", "usb": { - "vid": "0x3434", "pid": "0x0111", "device_version": "1.0.0" }, - "rgb_matrix": { - "driver": "ckled2001" - }, - "matrix_pins": { - "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], - "rows": ["B4", "B3", "A15", "A14", "A13"] - }, - "diode_direction": "ROW2COL", "encoder": { + "enabled": true, "rotary": [ {"pin_a": "A10", "pin_b": "B5"} ] }, - "processor": "STM32L432", - "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 44, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 59, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 73, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 88, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 103, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 118, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 147, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + + {"matrix": [1, 0], "x": 4, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 51, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 81, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 95, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 110, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 140, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 154, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 169, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 184, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 202, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1}, + + {"matrix": [2, 0], "x": 6, "y": 30, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 30, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 55, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 70, "y": 30, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 30, "flags": 4}, + {"matrix": [2, 6], "x": 99, "y": 30, "flags": 4}, + {"matrix": [2, 7], "x": 114, "y": 30, "flags": 4}, + {"matrix": [2, 8], "x": 129, "y": 30, "flags": 4}, + {"matrix": [2, 9], "x": 143, "y": 30, "flags": 4}, + {"matrix": [2, 10], "x": 158, "y": 30, "flags": 4}, + {"matrix": [2, 11], "x": 173, "y": 30, "flags": 4}, + {"matrix": [2, 13], "x": 196, "y": 30, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 30, "flags": 1}, + + {"matrix": [3, 0], "x": 9, "y": 45, "flags": 1}, + {"matrix": [3, 2], "x": 33, "y": 45, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 45, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 45, "flags": 4}, + {"matrix": [3, 5], "x": 77, "y": 45, "flags": 4}, + {"matrix": [3, 6], "x": 92, "y": 45, "flags": 4}, + {"matrix": [3, 7], "x": 106, "y": 45, "flags": 4}, + {"matrix": [3, 8], "x": 121, "y": 45, "flags": 4}, + {"matrix": [3, 9], "x": 136, "y": 45, "flags": 4}, + {"matrix": [3, 10], "x": 151, "y": 45, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 45, "flags": 4}, + {"matrix": [3, 13], "x": 185, "y": 45, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1}, + + {"matrix": [4, 0], "x": 2, "y": 60, "flags": 1}, + {"matrix": [4, 1], "x": 20, "y": 60, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 60, "flags": 1}, + {"matrix": [4, 6], "x": 94, "y": 60, "flags": 4}, + {"matrix": [4, 10], "x": 147, "y": 60, "flags": 1}, + {"matrix": [4, 11], "x": 162, "y": 60, "flags": 1}, + {"matrix": [4, 12], "x": 176, "y": 60, "flags": 1}, + {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + + ] + }, "layouts": { "LAYOUT_ansi_67": { "layout": [ diff --git a/keyboards/keychron/q2/ansi_encoder/rules.mk b/keyboards/keychron/q2/ansi_encoder/rules.mk index dfa13564d2..7ff128fa69 100644 --- a/keyboards/keychron/q2/ansi_encoder/rules.mk +++ b/keyboards/keychron/q2/ansi_encoder/rules.mk @@ -1,15 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes # Enable Encoder -DIP_SWITCH_ENABLE = yes -RGB_MATRIX_ENABLE = yes +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/keychron/q2/config.h b/keyboards/keychron/q2/config.h index 1ecff68e4d..b6b2e8356a 100644 --- a/keyboards/keychron/q2/config.h +++ b/keyboards/keychron/q2/config.h @@ -34,61 +34,8 @@ /* turn off effects when suspended */ #define RGB_DISABLE_WHEN_USB_SUSPENDED -/* Use 5 dynamic keymap layers */ -#define DYNAMIC_KEYMAP_LAYER_COUNT 5 - -/* EEPROM Driver Configuration */ -#define WEAR_LEVELING_LOGICAL_SIZE 2048 -#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) - -// RGB Matrix Animation modes. Explicitly enabled -// For full list of effects, see: -// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects -// #define ENABLE_RGB_MATRIX_ALPHAS_MODS -// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN -// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT -#define ENABLE_RGB_MATRIX_BREATHING -// #define ENABLE_RGB_MATRIX_BAND_SAT -// #define ENABLE_RGB_MATRIX_BAND_VAL -// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT -// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL -// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT -#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL -#define ENABLE_RGB_MATRIX_CYCLE_ALL -#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT -#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN -#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN -#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL -#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL -#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL -#define ENABLE_RGB_MATRIX_DUAL_BEACON -#define ENABLE_RGB_MATRIX_RAINBOW_BEACON -// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS -// #define ENABLE_RGB_MATRIX_RAINDROPS -#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS -// #define ENABLE_RGB_MATRIX_HUE_BREATHING -// #define ENABLE_RGB_MATRIX_HUE_PENDULUM -// #define ENABLE_RGB_MATRIX_HUE_WAVE -#define ENABLE_RGB_MATRIX_PIXEL_RAIN -// #define ENABLE_RGB_MATRIX_PIXEL_FLOW -// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL -// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined -#define ENABLE_RGB_MATRIX_TYPING_HEATMAP -#define ENABLE_RGB_MATRIX_DIGITAL_RAIN -// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE -// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -#define ENABLE_RGB_MATRIX_SPLASH -// #define ENABLE_RGB_MATRIX_MULTISPLASH -#define ENABLE_RGB_MATRIX_SOLID_SPLASH -// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +/* Encoder Configuration*/ +#define ENCODER_DEFAULT_POS 0x3 #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/keychron/q2/info.json b/keyboards/keychron/q2/info.json new file mode 100644 index 0000000000..7667ac5b28 --- /dev/null +++ b/keyboards/keychron/q2/info.json @@ -0,0 +1,60 @@ +{ + "keyboard_name": "Keychron Q2", + "manufacturer": "Keychron", + "maintainer": "lalalademaxiya1", + "bootloader": "stm32-dfu", + "diode_direction": "ROW2COL", + "dynamic_keymap": { + "layer_count": 5 + }, + "eeprom": { + "wear_leveling": { + "backing_size": 4096 + } + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "dip_switch": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], + "rows": ["B4", "B3", "A15", "A14", "A13"] + }, + "processor": "STM32L432", + "rgb_matrix": { + "animations": { + "band_spiral_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "jellybean_raindrops": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_simple": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "driver": "ckled2001" + }, + "url": "https://github.com/Keychron", + "usb": { + "vid": "0x3434" + } +} \ No newline at end of file diff --git a/keyboards/keychron/q2/iso/config.h b/keyboards/keychron/q2/iso/config.h index 35a86d5839..b463f7886e 100644 --- a/keyboards/keychron/q2/iso/config.h +++ b/keyboards/keychron/q2/iso/config.h @@ -17,6 +17,7 @@ #pragma once /* RGB Matrix Configuration */ -#define DRIVER_1_LED_TOTAL 34 -#define DRIVER_2_LED_TOTAL 34 -#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT 68 + +/* Enable caps-lock LED */ +#define CAPS_LOCK_LED_INDEX 29 \ No newline at end of file diff --git a/keyboards/keychron/q2/iso/info.json b/keyboards/keychron/q2/iso/info.json index e3cad79b14..8a2023320d 100644 --- a/keyboards/keychron/q2/iso/info.json +++ b/keyboards/keychron/q2/iso/info.json @@ -1,23 +1,85 @@ { - "keyboard_name": "Q2", - "manufacturer": "Keychron", - "url": "https://github.com/Keychron", - "maintainer": "lalalademaxiya1", "usb": { - "vid": "0x3434", "pid": "0x0112", "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 44, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 59, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 73, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 88, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 103, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 118, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 147, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + + {"matrix": [1, 0], "x": 4, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 51, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 81, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 95, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 110, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 140, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 154, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 169, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 184, "y": 15, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1}, + + {"matrix": [2, 0], "x": 6, "y": 30, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 30, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 55, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 70, "y": 30, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 30, "flags": 4}, + {"matrix": [2, 6], "x": 99, "y": 30, "flags": 4}, + {"matrix": [2, 7], "x": 114, "y": 30, "flags": 4}, + {"matrix": [2, 8], "x": 129, "y": 30, "flags": 4}, + {"matrix": [2, 9], "x": 143, "y": 30, "flags": 4}, + {"matrix": [2, 10], "x": 158, "y": 30, "flags": 4}, + {"matrix": [2, 11], "x": 173, "y": 30, "flags": 4}, + {"matrix": [2, 13], "x": 187, "y": 30, "flags": 4}, + {"matrix": [1, 13], "x": 204, "y": 23, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 30, "flags": 1}, + + {"matrix": [3, 0], "x": 9, "y": 45, "flags": 1}, + {"matrix": [3, 1], "x": 18, "y": 45, "flags": 4}, + {"matrix": [3, 2], "x": 33, "y": 45, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 45, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 45, "flags": 4}, + {"matrix": [3, 5], "x": 77, "y": 45, "flags": 4}, + {"matrix": [3, 6], "x": 92, "y": 45, "flags": 4}, + {"matrix": [3, 7], "x": 106, "y": 45, "flags": 4}, + {"matrix": [3, 8], "x": 121, "y": 45, "flags": 4}, + {"matrix": [3, 9], "x": 136, "y": 45, "flags": 4}, + {"matrix": [3, 10], "x": 151, "y": 45, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 45, "flags": 4}, + {"matrix": [3, 13], "x": 185, "y": 45, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1}, + + {"matrix": [4, 0], "x": 2, "y": 60, "flags": 1}, + {"matrix": [4, 1], "x": 20, "y": 60, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 60, "flags": 1}, + {"matrix": [4, 6], "x": 94, "y": 60, "flags": 4}, + {"matrix": [4, 10], "x": 147, "y": 60, "flags": 1}, + {"matrix": [4, 11], "x": 162, "y": 60, "flags": 1}, + {"matrix": [4, 12], "x": 176, "y": 60, "flags": 1}, + {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + + ] }, - "matrix_pins": { - "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], - "rows": ["B4", "B3", "A15", "A14", "A13"] - }, - "diode_direction": "ROW2COL", - "processor": "STM32L432", - "bootloader": "stm32-dfu", "layouts": { "LAYOUT_iso_68": { "layout": [ diff --git a/keyboards/keychron/q2/iso/iso.c b/keyboards/keychron/q2/iso/iso.c index 1f2c76468e..c852b8d0cb 100644 --- a/keyboards/keychron/q2/iso/iso.c +++ b/keyboards/keychron/q2/iso/iso.c @@ -98,33 +98,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { {1, F_16, D_16, E_16} }; -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 42, 28 }, - { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 66, 41, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, __, 56, 57 }, - { 58, 59, 60, __, __, __, 61, __, __, __, 62, 63, 64, 65, 67 } - }, - { - // LED Index to Physical Position - {0,0}, {15,0}, {29,0}, {44,0}, {59,0}, {73,0}, {88,0}, {103,0}, {118,0}, {132,0}, {147,0}, {162,0}, {176,0}, {198,0}, {224,0}, - {4,15}, {22,15}, {37,15}, {51,15}, {66,15}, {81,15}, {95,15}, {110,15}, {125,15}, {140,15}, {154,15}, {169,15}, {184,15}, {224,15}, - {6,30}, {26,30}, {40,30}, {55,30}, {70,30}, {84,30}, {99,30}, {114,30}, {129,30}, {143,30}, {158,30}, {173,30}, {187,30}, {204,23}, {224,30}, - {2,45}, {18,45}, {33,45}, {48,45}, {62,45}, {77,45}, {92,45}, {106,45}, {121,45}, {136,45}, {151,45}, {165,45}, {185,45}, {209,49}, - {2,60}, {20,60}, {39,60}, {94,60}, {147,60}, {162,60}, {176,60}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q2/iso/rules.mk b/keyboards/keychron/q2/iso/rules.mk index 2cdda3f9a7..7ff128fa69 100644 --- a/keyboards/keychron/q2/iso/rules.mk +++ b/keyboards/keychron/q2/iso/rules.mk @@ -1,15 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = no # Enable Encoder -DIP_SWITCH_ENABLE = yes -RGB_MATRIX_ENABLE = yes +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/keychron/q2/iso_encoder/config.h b/keyboards/keychron/q2/iso_encoder/config.h index 376b92b6fa..b463f7886e 100644 --- a/keyboards/keychron/q2/iso_encoder/config.h +++ b/keyboards/keychron/q2/iso_encoder/config.h @@ -17,9 +17,7 @@ #pragma once /* RGB Matrix Configuration */ -#define DRIVER_1_LED_TOTAL 34 -#define DRIVER_2_LED_TOTAL 34 -#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT 68 -/* Encoder used pins */ -#define ENCODER_DEFAULT_POS 0x3 +/* Enable caps-lock LED */ +#define CAPS_LOCK_LED_INDEX 29 \ No newline at end of file diff --git a/keyboards/keychron/q2/iso_encoder/info.json b/keyboards/keychron/q2/iso_encoder/info.json index 5030e6be42..b828c88931 100644 --- a/keyboards/keychron/q2/iso_encoder/info.json +++ b/keyboards/keychron/q2/iso_encoder/info.json @@ -1,28 +1,91 @@ { - "keyboard_name": "Q2", - "manufacturer": "Keychron", - "url": "https://github.com/Keychron", - "maintainer": "lalalademaxiya1", "usb": { - "vid": "0x3434", "pid": "0x0113", "device_version": "1.0.0" }, - "rgb_matrix": { - "driver": "ckled2001" - }, - "matrix_pins": { - "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], - "rows": ["B4", "B3", "A15", "A14", "A13"] - }, - "diode_direction": "ROW2COL", "encoder": { + "enabled": true, "rotary": [ {"pin_a": "A10", "pin_b": "B5"} ] }, - "processor": "STM32L432", - "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 44, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 59, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 73, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 88, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 103, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 118, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 147, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + + {"matrix": [1, 0], "x": 4, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 51, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 81, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 95, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 110, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 140, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 154, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 169, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 184, "y": 15, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1}, + + {"matrix": [2, 0], "x": 6, "y": 30, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 30, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 55, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 70, "y": 30, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 30, "flags": 4}, + {"matrix": [2, 6], "x": 99, "y": 30, "flags": 4}, + {"matrix": [2, 7], "x": 114, "y": 30, "flags": 4}, + {"matrix": [2, 8], "x": 129, "y": 30, "flags": 4}, + {"matrix": [2, 9], "x": 143, "y": 30, "flags": 4}, + {"matrix": [2, 10], "x": 158, "y": 30, "flags": 4}, + {"matrix": [2, 11], "x": 173, "y": 30, "flags": 4}, + {"matrix": [2, 13], "x": 187, "y": 30, "flags": 4}, + {"matrix": [1, 13], "x": 204, "y": 23, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 30, "flags": 1}, + + {"matrix": [3, 0], "x": 9, "y": 45, "flags": 1}, + {"matrix": [3, 1], "x": 18, "y": 45, "flags": 4}, + {"matrix": [3, 2], "x": 33, "y": 45, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 45, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 45, "flags": 4}, + {"matrix": [3, 5], "x": 77, "y": 45, "flags": 4}, + {"matrix": [3, 6], "x": 92, "y": 45, "flags": 4}, + {"matrix": [3, 7], "x": 106, "y": 45, "flags": 4}, + {"matrix": [3, 8], "x": 121, "y": 45, "flags": 4}, + {"matrix": [3, 9], "x": 136, "y": 45, "flags": 4}, + {"matrix": [3, 10], "x": 151, "y": 45, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 45, "flags": 4}, + {"matrix": [3, 13], "x": 185, "y": 45, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1}, + + {"matrix": [4, 0], "x": 2, "y": 60, "flags": 1}, + {"matrix": [4, 1], "x": 20, "y": 60, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 60, "flags": 1}, + {"matrix": [4, 6], "x": 94, "y": 60, "flags": 4}, + {"matrix": [4, 10], "x": 147, "y": 60, "flags": 1}, + {"matrix": [4, 11], "x": 162, "y": 60, "flags": 1}, + {"matrix": [4, 12], "x": 176, "y": 60, "flags": 1}, + {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + + ] + }, "layouts": { "LAYOUT_iso_68": { "layout": [ diff --git a/keyboards/keychron/q2/iso_encoder/iso_encoder.c b/keyboards/keychron/q2/iso_encoder/iso_encoder.c index 1f2c76468e..c852b8d0cb 100644 --- a/keyboards/keychron/q2/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q2/iso_encoder/iso_encoder.c @@ -98,33 +98,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { {1, F_16, D_16, E_16} }; -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 42, 28 }, - { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 66, 41, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, __, 56, 57 }, - { 58, 59, 60, __, __, __, 61, __, __, __, 62, 63, 64, 65, 67 } - }, - { - // LED Index to Physical Position - {0,0}, {15,0}, {29,0}, {44,0}, {59,0}, {73,0}, {88,0}, {103,0}, {118,0}, {132,0}, {147,0}, {162,0}, {176,0}, {198,0}, {224,0}, - {4,15}, {22,15}, {37,15}, {51,15}, {66,15}, {81,15}, {95,15}, {110,15}, {125,15}, {140,15}, {154,15}, {169,15}, {184,15}, {224,15}, - {6,30}, {26,30}, {40,30}, {55,30}, {70,30}, {84,30}, {99,30}, {114,30}, {129,30}, {143,30}, {158,30}, {173,30}, {187,30}, {204,23}, {224,30}, - {2,45}, {18,45}, {33,45}, {48,45}, {62,45}, {77,45}, {92,45}, {106,45}, {121,45}, {136,45}, {151,45}, {165,45}, {185,45}, {209,49}, - {2,60}, {20,60}, {39,60}, {94,60}, {147,60}, {162,60}, {176,60}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q2/iso_encoder/rules.mk b/keyboards/keychron/q2/iso_encoder/rules.mk index f7e6a950e8..7ff128fa69 100644 --- a/keyboards/keychron/q2/iso_encoder/rules.mk +++ b/keyboards/keychron/q2/iso_encoder/rules.mk @@ -1,15 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes # Enable Encoder -DIP_SWITCH_ENABLE = yes -RGB_MATRIX_ENABLE = yes +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/keychron/q2/jis/config.h b/keyboards/keychron/q2/jis/config.h index 2d83933f9a..fa6fc4e91a 100644 --- a/keyboards/keychron/q2/jis/config.h +++ b/keyboards/keychron/q2/jis/config.h @@ -17,9 +17,7 @@ #pragma once /* RGB Matrix Configuration */ -#define DRIVER_1_LED_TOTAL 35 -#define DRIVER_2_LED_TOTAL 36 -#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT 71 #define CKLED2001_CURRENT_TUNE { 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D } diff --git a/keyboards/keychron/q2/jis/info.json b/keyboards/keychron/q2/jis/info.json index d0af24b29d..834b89332e 100644 --- a/keyboards/keychron/q2/jis/info.json +++ b/keyboards/keychron/q2/jis/info.json @@ -1,23 +1,86 @@ { - "keyboard_name": "Keychron Q2", - "manufacturer": "Keychron", - "url": "https://github.com/Keychron", - "maintainer": "lalalademaxiya1", "usb": { - "vid": "0x3434", "pid": "0x0114", "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 4, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 4, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 4, "flags": 4}, + {"matrix": [0, 3], "x": 44, "y": 4, "flags": 4}, + {"matrix": [0, 4], "x": 59, "y": 4, "flags": 4}, + {"matrix": [0, 5], "x": 73, "y": 4, "flags": 4}, + {"matrix": [0, 6], "x": 88, "y": 4, "flags": 4}, + {"matrix": [0, 7], "x": 103, "y": 4, "flags": 4}, + {"matrix": [0, 8], "x": 117, "y": 4, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 4, "flags": 4}, + {"matrix": [0, 10], "x": 146, "y": 4, "flags": 4}, + {"matrix": [0, 11], "x": 161, "y": 4, "flags": 4}, + {"matrix": [0, 12], "x": 176, "y": 4, "flags": 4}, + {"matrix": [0, 13], "x": 190, "y": 4, "flags": 4}, + {"matrix": [3, 1], "x": 205, "y": 4, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + + {"matrix": [1, 0], "x": 4, "y": 19, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 19, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 19, "flags": 4}, + {"matrix": [1, 3], "x": 51, "y": 19, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 19, "flags": 4}, + {"matrix": [1, 5], "x": 81, "y": 19, "flags": 4}, + {"matrix": [1, 6], "x": 95, "y": 19, "flags": 4}, + {"matrix": [1, 7], "x": 110, "y": 19, "flags": 4}, + {"matrix": [1, 8], "x": 125, "y": 19, "flags": 4}, + {"matrix": [1, 9], "x": 139, "y": 19, "flags": 4}, + {"matrix": [1, 10], "x": 154, "y": 19, "flags": 4}, + {"matrix": [1, 11], "x": 168, "y": 19, "flags": 4}, + {"matrix": [1, 12], "x": 183, "y": 19, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 19, "flags": 1}, + + {"matrix": [2, 0], "x": 6, "y": 34, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 34, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 34, "flags": 4}, + {"matrix": [2, 3], "x": 55, "y": 34, "flags": 4}, + {"matrix": [2, 4], "x": 70, "y": 34, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 34, "flags": 4}, + {"matrix": [2, 6], "x": 99, "y": 34, "flags": 4}, + {"matrix": [2, 7], "x": 114, "y": 34, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 34, "flags": 4}, + {"matrix": [2, 9], "x": 143, "y": 34, "flags": 4}, + {"matrix": [2, 10], "x": 158, "y": 34, "flags": 4}, + {"matrix": [2, 11], "x": 172, "y": 34, "flags": 4}, + {"matrix": [2, 13], "x": 187, "y": 34, "flags": 4}, + {"matrix": [1, 13], "x": 207, "y": 29, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 34, "flags": 1}, + + {"matrix": [3, 0], "x": 9, "y": 49, "flags": 1}, + {"matrix": [3, 2], "x": 33, "y": 49, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 49, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 49, "flags": 4}, + {"matrix": [3, 5], "x": 77, "y": 49, "flags": 4}, + {"matrix": [3, 6], "x": 92, "y": 49, "flags": 4}, + {"matrix": [3, 7], "x": 106, "y": 49, "flags": 4}, + {"matrix": [3, 8], "x": 121, "y": 49, "flags": 4}, + {"matrix": [3, 9], "x": 136, "y": 49, "flags": 4}, + {"matrix": [3, 10], "x": 150, "y": 49, "flags": 4}, + {"matrix": [3, 11], "x": 179, "y": 49, "flags": 4}, + {"matrix": [3, 13], "x": 194, "y": 49, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1}, + + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 35, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 51, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 92, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 134, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 150, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 165, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 179, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 194, "y": 64, "flags": 1}, + {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 223, "y": 64, "flags": 1} + ] }, - "matrix_pins": { - "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], - "rows": ["B4", "B3", "A15", "A14", "A13"] - }, - "diode_direction": "ROW2COL", - "processor": "STM32L432", - "bootloader": "stm32-dfu", "layouts": { "LAYOUT_jis_71": { "layout": [ diff --git a/keyboards/keychron/q2/jis/jis.c b/keyboards/keychron/q2/jis/jis.c index 31ed1edc58..9d8f439d6f 100644 --- a/keyboards/keychron/q2/jis/jis.c +++ b/keyboards/keychron/q2/jis/jis.c @@ -102,33 +102,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { {1, F_16, D_16, E_16} }; -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 43, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 69, 42, 44 }, - { 45, 14, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 }, - { 59, 60, 61, 62, __, __, 63, __, __, 64, 65, 66, 67, 68, 70 } - }, - { - // LED Index to Physical Position - {0,4}, {15,4}, {29,4}, {44,4}, {59,4}, {73,4}, {88,4}, {103,4}, {117,4}, {132,4}, {146,4}, {161,4}, {176,4}, {190,4}, {205,4}, {224,0}, - {4,19}, {22,19}, {37,19}, {51,19}, {66,19}, {81,19}, {95,19}, {110,19}, {125,19}, {139,19}, {154,19}, {168,19}, {183,19}, {224,19}, - {6,34}, {26,34}, {40,34}, {55,34}, {70,34}, {84,34}, {99,34}, {114,34}, {128,34}, {143,34}, {158,34}, {172,34}, {187,34}, {207,29}, {224,34}, - {9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {150,49}, {165,49}, {179,49}, {194,49}, {209,49}, - {2,64}, {18,64}, {35,64}, {51,64}, {92,64}, {134,64}, {150,64}, {165,64}, {179,64}, {194,64}, {209,64}, {223,64}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q2/jis/rules.mk b/keyboards/keychron/q2/jis/rules.mk index cf31e094cb..6e7633bfe0 100644 --- a/keyboards/keychron/q2/jis/rules.mk +++ b/keyboards/keychron/q2/jis/rules.mk @@ -1,14 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable USB N-key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -DIP_SWITCH_ENABLE = yes -RGB_MATRIX_ENABLE = yes +# This file intentionally left blank diff --git a/keyboards/keychron/q2/jis_encoder/config.h b/keyboards/keychron/q2/jis_encoder/config.h index 5e7ab55143..fa6fc4e91a 100644 --- a/keyboards/keychron/q2/jis_encoder/config.h +++ b/keyboards/keychron/q2/jis_encoder/config.h @@ -17,14 +17,9 @@ #pragma once /* RGB Matrix Configuration */ -#define DRIVER_1_LED_TOTAL 35 -#define DRIVER_2_LED_TOTAL 36 -#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT 71 #define CKLED2001_CURRENT_TUNE { 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D } -/* Encoder Configuration */ -#define ENCODER_DEFAULT_POS 0x3 - /* Enable caps-lock LED */ #define CAPS_LOCK_LED_INDEX 30 diff --git a/keyboards/keychron/q2/jis_encoder/info.json b/keyboards/keychron/q2/jis_encoder/info.json index e409fb63a6..32b691742b 100644 --- a/keyboards/keychron/q2/jis_encoder/info.json +++ b/keyboards/keychron/q2/jis_encoder/info.json @@ -1,28 +1,92 @@ { - "keyboard_name": "Keychron Q2", - "manufacturer": "Keychron", - "url": "https://github.com/Keychron", - "maintainer": "lalalademaxiya1", "usb": { - "vid": "0x3434", "pid": "0x0115", "device_version": "1.0.0" }, - "rgb_matrix": { - "driver": "ckled2001" - }, - "matrix_pins": { - "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], - "rows": ["B4", "B3", "A15", "A14", "A13"] - }, - "diode_direction": "ROW2COL", "encoder": { + "enabled": true, "rotary": [ {"pin_a": "A10", "pin_b": "B5"} ] }, - "processor": "STM32L432", - "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 4, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 4, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 4, "flags": 4}, + {"matrix": [0, 3], "x": 44, "y": 4, "flags": 4}, + {"matrix": [0, 4], "x": 59, "y": 4, "flags": 4}, + {"matrix": [0, 5], "x": 73, "y": 4, "flags": 4}, + {"matrix": [0, 6], "x": 88, "y": 4, "flags": 4}, + {"matrix": [0, 7], "x": 103, "y": 4, "flags": 4}, + {"matrix": [0, 8], "x": 117, "y": 4, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 4, "flags": 4}, + {"matrix": [0, 10], "x": 146, "y": 4, "flags": 4}, + {"matrix": [0, 11], "x": 161, "y": 4, "flags": 4}, + {"matrix": [0, 12], "x": 176, "y": 4, "flags": 4}, + {"matrix": [0, 13], "x": 190, "y": 4, "flags": 4}, + {"matrix": [3, 1], "x": 205, "y": 4, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + + {"matrix": [1, 0], "x": 4, "y": 19, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 19, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 19, "flags": 4}, + {"matrix": [1, 3], "x": 51, "y": 19, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 19, "flags": 4}, + {"matrix": [1, 5], "x": 81, "y": 19, "flags": 4}, + {"matrix": [1, 6], "x": 95, "y": 19, "flags": 4}, + {"matrix": [1, 7], "x": 110, "y": 19, "flags": 4}, + {"matrix": [1, 8], "x": 125, "y": 19, "flags": 4}, + {"matrix": [1, 9], "x": 139, "y": 19, "flags": 4}, + {"matrix": [1, 10], "x": 154, "y": 19, "flags": 4}, + {"matrix": [1, 11], "x": 168, "y": 19, "flags": 4}, + {"matrix": [1, 12], "x": 183, "y": 19, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 19, "flags": 1}, + + {"matrix": [2, 0], "x": 6, "y": 34, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 34, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 34, "flags": 4}, + {"matrix": [2, 3], "x": 55, "y": 34, "flags": 4}, + {"matrix": [2, 4], "x": 70, "y": 34, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 34, "flags": 4}, + {"matrix": [2, 6], "x": 99, "y": 34, "flags": 4}, + {"matrix": [2, 7], "x": 114, "y": 34, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 34, "flags": 4}, + {"matrix": [2, 9], "x": 143, "y": 34, "flags": 4}, + {"matrix": [2, 10], "x": 158, "y": 34, "flags": 4}, + {"matrix": [2, 11], "x": 172, "y": 34, "flags": 4}, + {"matrix": [2, 13], "x": 187, "y": 34, "flags": 4}, + {"matrix": [1, 13], "x": 207, "y": 29, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 34, "flags": 1}, + + {"matrix": [3, 0], "x": 9, "y": 49, "flags": 1}, + {"matrix": [3, 2], "x": 33, "y": 49, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 49, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 49, "flags": 4}, + {"matrix": [3, 5], "x": 77, "y": 49, "flags": 4}, + {"matrix": [3, 6], "x": 92, "y": 49, "flags": 4}, + {"matrix": [3, 7], "x": 106, "y": 49, "flags": 4}, + {"matrix": [3, 8], "x": 121, "y": 49, "flags": 4}, + {"matrix": [3, 9], "x": 136, "y": 49, "flags": 4}, + {"matrix": [3, 10], "x": 150, "y": 49, "flags": 4}, + {"matrix": [3, 11], "x": 179, "y": 49, "flags": 4}, + {"matrix": [3, 13], "x": 194, "y": 49, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1}, + + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 35, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 51, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 92, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 134, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 150, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 165, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 179, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 194, "y": 64, "flags": 1}, + {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 223, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_jis_71": { "layout": [ diff --git a/keyboards/keychron/q2/jis_encoder/jis_encoder.c b/keyboards/keychron/q2/jis_encoder/jis_encoder.c index de20255e0b..9d8f439d6f 100644 --- a/keyboards/keychron/q2/jis_encoder/jis_encoder.c +++ b/keyboards/keychron/q2/jis_encoder/jis_encoder.c @@ -102,33 +102,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { {1, F_16, D_16, E_16} }; -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 43, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 69, 42, 44 }, - { 45, 14, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 }, - { 59, 60, 61, 62, __, __, 63, __, __, 64, 65, 66, 67, 68, 70 }, - }, - { - // LED Index to Physical Position - {0,4}, {15,4}, {29,4}, {44,4}, {59,4}, {73,4}, {88,4}, {103,4}, {117,4}, {132,4}, {146,4}, {161,4}, {176,4}, {190,4}, {205,4}, {224,0}, - {4,19}, {22,19}, {37,19}, {51,19}, {66,19}, {81,19}, {95,19}, {110,19}, {125,19}, {139,19}, {154,19}, {168,19}, {183,19}, {224,19}, - {6,34}, {26,34}, {40,34}, {55,34}, {70,34}, {84,34}, {99,34}, {114,34}, {128,34}, {143,34}, {158,34}, {172,34}, {187,34}, {207,29}, {224,34}, - {9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {150,49}, {165,49}, {179,49}, {194,49}, {209,49}, - {2,64}, {18,64}, {35,64}, {51,64}, {92,64}, {134,64}, {150,64}, {165,64}, {179,64}, {194,64}, {209,64}, {223,64}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q2/jis_encoder/rules.mk b/keyboards/keychron/q2/jis_encoder/rules.mk index 5d77f09971..6e7633bfe0 100644 --- a/keyboards/keychron/q2/jis_encoder/rules.mk +++ b/keyboards/keychron/q2/jis_encoder/rules.mk @@ -1,15 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable USB N-key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes # Enable Encoder -DIP_SWITCH_ENABLE = yes -RGB_MATRIX_ENABLE = yes +# This file intentionally left blank diff --git a/keyboards/keychron/q2/readme.md b/keyboards/keychron/q2/readme.md index 60144a1079..69a2d892ff 100644 --- a/keyboards/keychron/q2/readme.md +++ b/keyboards/keychron/q2/readme.md @@ -1,19 +1,31 @@ # Keychron Q2 +![Keychron Q2](https://i.imgur.com/9bJ6Moh.jpg) + A customizable 65% keyboard. * Keyboard Maintainer: [Keychron](https://github.com/keychron) * Hardware Supported: Keychron Q2 -* Hardware Availability: [Keychron](https://www.keychron.com) +* Hardware Availability: [Keychron Q2 QMK Custom Mechanical Keyboard](https://www.keychron.com/products/keychron-q2-qmk-custom-mechanical-keyboard) Make example for this keyboard (after setting up your build environment): make keychron/q2/ansi:default + make keychron/q2/ansi_encoder:default + make keychron/q2/iso:default + make keychron/q2/iso_encoder:default + make keychron/q2/jis:default + make keychron/q2/jis_encoder:default Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) make keychron/q2/ansi:default:flash + make keychron/q2/ansi_encoder:default:flash + make keychron/q2/iso:default:flash + make keychron/q2/iso_encoder:default:flash + make keychron/q2/jis:default:flash + make keychron/q2/jis_encoder:default:flash **Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. -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). +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). \ No newline at end of file From 6f59236b1f42017e645fdf688799190961f116c8 Mon Sep 17 00:00:00 2001 From: adophoxia <100170946+adophoxia@users.noreply.github.com> Date: Tue, 3 Oct 2023 20:53:19 -0700 Subject: [PATCH 224/496] Update Keychron Q3 (#21995) Co-authored-by: Duncan Sutherland Co-authored-by: Drashna Jaelre --- keyboards/keychron/q3/ansi/ansi.c | 32 ----- keyboards/keychron/q3/ansi/config.h | 10 +- keyboards/keychron/q3/ansi/info.json | 107 ++++++++++++++-- keyboards/keychron/q3/ansi/rules.mk | 16 +-- .../keychron/q3/ansi_encoder/ansi_encoder.c | 32 ----- keyboards/keychron/q3/ansi_encoder/config.h | 7 +- keyboards/keychron/q3/ansi_encoder/info.json | 108 ++++++++++++++-- keyboards/keychron/q3/ansi_encoder/rules.mk | 19 +-- keyboards/keychron/q3/config.h | 63 +--------- keyboards/keychron/q3/info.json | 52 ++++++++ keyboards/keychron/q3/iso/config.h | 10 +- keyboards/keychron/q3/iso/info.json | 108 ++++++++++++++-- keyboards/keychron/q3/iso/iso.c | 32 ----- keyboards/keychron/q3/iso/rules.mk | 16 +-- keyboards/keychron/q3/iso_encoder/config.h | 7 +- keyboards/keychron/q3/iso_encoder/info.json | 109 ++++++++++++++-- .../keychron/q3/iso_encoder/iso_encoder.c | 32 ----- keyboards/keychron/q3/iso_encoder/rules.mk | 19 +-- keyboards/keychron/q3/jis/config.h | 10 +- keyboards/keychron/q3/jis/info.json | 114 +++++++++++++++-- keyboards/keychron/q3/jis/jis.c | 32 ----- keyboards/keychron/q3/jis/rules.mk | 16 +-- keyboards/keychron/q3/jis_encoder/config.h | 13 +- keyboards/keychron/q3/jis_encoder/info.json | 116 ++++++++++++++++-- .../keychron/q3/jis_encoder/jis_encoder.c | 32 ----- keyboards/keychron/q3/jis_encoder/rules.mk | 19 +-- keyboards/keychron/q3/readme.md | 22 ++-- 27 files changed, 694 insertions(+), 459 deletions(-) create mode 100644 keyboards/keychron/q3/info.json diff --git a/keyboards/keychron/q3/ansi/ansi.c b/keyboards/keychron/q3/ansi/ansi.c index 432a914058..220cfcb98d 100644 --- a/keyboards/keychron/q3/ansi/ansi.c +++ b/keyboards/keychron/q3/ansi/ansi.c @@ -119,36 +119,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { {1, C_15, A_15, B_15}, }; -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }, - { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48 }, - { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 49, 62, 15, 32 }, - { 63, __, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, __, 74, 86, 75 }, - { 76, 77, 78, __, __, __, 79, __, __, __, 80, 81, 82, 83, 84, 85 }, - }, - { - // LED Index to Physical Position - {0,0}, {26,0}, {39,0}, {52,0}, {65,0}, {85,0}, {98,0}, {111,0}, {124,0}, {143,0}, {156,0}, {169,0}, {182,0}, {198,0}, {211,0}, {224,0}, - {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {176,15}, {198,15}, {211,15}, {224,15}, - {3,28}, {20,28}, {33,28}, {46,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {179,28}, {198,28}, {211,28}, {224,28}, - {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {174,40}, - {8,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {171,52}, {211,52}, - {2,64}, {18,64}, {34,64}, {83,64}, {131,64}, {148,64}, {164,64}, {180,64}, {198,64}, {211,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q3/ansi/config.h b/keyboards/keychron/q3/ansi/config.h index f7c1c16931..89300267be 100644 --- a/keyboards/keychron/q3/ansi/config.h +++ b/keyboards/keychron/q3/ansi/config.h @@ -16,17 +16,11 @@ #pragma once -/* key matrix pins */ -#define MATRIX_ROW_PINS { B5, B4, B3, A15, A14, A13 } -#define MATRIX_COL_PINS { C14, C15, A0, A1, A2, A3, A4, A5, A6, A7, B0, B1, A8, A9, A10, H3 } - -/* We uses a pin with a stronger pull resistor than the internal MCU pins */ +/* We use a pin with a stronger pull resistor than the internal MCU pins */ // #define MATRIX_UNSELECT_DRIVE_HIGH /* RGB Matrix Configuration */ -#define DRIVER_1_LED_TOTAL 48 -#define DRIVER_2_LED_TOTAL 39 -#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT 87 #define CKLED2001_CURRENT_TUNE \ { 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 } diff --git a/keyboards/keychron/q3/ansi/info.json b/keyboards/keychron/q3/ansi/info.json index 124ac1bdcc..2162208082 100644 --- a/keyboards/keychron/q3/ansi/info.json +++ b/keyboards/keychron/q3/ansi/info.json @@ -1,18 +1,109 @@ { - "keyboard_name": "Keychron Q3", - "manufacturer": "Keychron", - "url": "https://github.com/Keychron", - "maintainer": "lalalademaxiya1", "usb": { - "vid": "0x3434", "pid": "0x0120", "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 26, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 39, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 65, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 85, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 98, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 111, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 124, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 156, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 182, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1}, + + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1}, + + {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 33, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 46, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4}, + {"matrix": [2, 13], "x": 179, "y": 28, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1}, + {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1}, + + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 174, "y": 40, "flags": 1}, + + {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 171, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, + + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] }, - "processor": "STM32L432", - "bootloader": "stm32-dfu", + "matrix_pins": { + "rows": ["B5", "B4", "B3", "A15", "A14", "A13"], + "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "H3"] + }, + "community_layouts": ["tkl_ansi"], "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/keychron/q3/ansi/rules.mk b/keyboards/keychron/q3/ansi/rules.mk index cf4b02e6da..7ff128fa69 100644 --- a/keyboards/keychron/q3/ansi/rules.mk +++ b/keyboards/keychron/q3/ansi/rules.mk @@ -1,15 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable USB N-key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -DIP_SWITCH_ENABLE = yes -RGB_MATRIX_ENABLE = yes -LTO_ENABLE = yes +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/keychron/q3/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q3/ansi_encoder/ansi_encoder.c index f873f77d12..3bee55a63c 100644 --- a/keyboards/keychron/q3/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q3/ansi_encoder/ansi_encoder.c @@ -119,36 +119,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { {1, C_15, A_15, B_15}, }; -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }, - { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48 }, - { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 49, 62, 15, 32 }, - { 63, __, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, __, 74, 86, 75 }, - { 76, 77, 78, __, __, __, 79, __, __, __, 80, 81, 82, 83, 84, 85 }, - }, - { - // LED Index to Physical Position - {0,0}, {16,0}, {29,0}, {42,0}, {55,0}, {71,0}, {84,0}, {97,0}, {110,0}, {126,0}, {139,0}, {152,0}, {165,0}, {198,0}, {211,0}, {224,0}, - {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {176,15}, {198,15}, {211,15}, {224,15}, - {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {179,28}, {198,28}, {211,28}, {224,28}, - {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {174,40}, - {8,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {171,52}, {211,52}, - {2,64}, {18,64}, {34,64}, {83,64}, {131,64}, {148,64}, {164,64}, {180,64}, {198,64}, {211,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q3/ansi_encoder/config.h b/keyboards/keychron/q3/ansi_encoder/config.h index 201288841a..78c82969d0 100644 --- a/keyboards/keychron/q3/ansi_encoder/config.h +++ b/keyboards/keychron/q3/ansi_encoder/config.h @@ -21,12 +21,7 @@ #define MATRIX_COL_PINS { C14, C15, A0, A1, A2, A3, A4, A5, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN } /* RGB Matrix Configuration */ -#define DRIVER_1_LED_TOTAL 48 -#define DRIVER_2_LED_TOTAL 39 -#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) - -/* Encoder Configuration */ -#define ENCODER_DEFAULT_POS 0x3 +#define RGB_MATRIX_LED_COUNT 87 #define CKLED2001_CURRENT_TUNE \ { 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 } diff --git a/keyboards/keychron/q3/ansi_encoder/info.json b/keyboards/keychron/q3/ansi_encoder/info.json index 2dd2f18bf9..f3bab2768f 100644 --- a/keyboards/keychron/q3/ansi_encoder/info.json +++ b/keyboards/keychron/q3/ansi_encoder/info.json @@ -1,23 +1,111 @@ { - "keyboard_name": "Keychron Q3", - "manufacturer": "Keychron", - "url": "https://github.com/Keychron", - "maintainer": "lalalademaxiya1", "usb": { - "vid": "0x3434", "pid": "0x0121", "device_version": "1.0.0" }, - "rgb_matrix": { - "driver": "ckled2001" - }, "encoder": { + "enabled": true, "rotary": [ {"pin_a": "A10", "pin_b": "A8"} ] }, - "processor": "STM32L432", - "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 55, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 71, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 97, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 126, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 139, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 152, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 165, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1}, + + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1}, + + {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4}, + {"matrix": [2, 13], "x": 179, "y": 28, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1}, + {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1}, + + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 174, "y": 40, "flags": 1}, + + {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 171, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, + + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] + }, + "community_layouts": ["tkl_f13_ansi"], "layouts": { "LAYOUT_tkl_f13_ansi": { "layout": [ diff --git a/keyboards/keychron/q3/ansi_encoder/rules.mk b/keyboards/keychron/q3/ansi_encoder/rules.mk index 929c4532a0..5f0634f6d3 100644 --- a/keyboards/keychron/q3/ansi_encoder/rules.mk +++ b/keyboards/keychron/q3/ansi_encoder/rules.mk @@ -1,21 +1,4 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable USB N-key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes # Enable Encoder -DIP_SWITCH_ENABLE = yes -RGB_MATRIX_ENABLE = yes -LTO_ENABLE = yes - -# custom matrix setup +# Custom matrix setup CUSTOM_MATRIX = lite SRC += matrix.c diff --git a/keyboards/keychron/q3/config.h b/keyboards/keychron/q3/config.h index 5914df0200..28328358e9 100644 --- a/keyboards/keychron/q3/config.h +++ b/keyboards/keychron/q3/config.h @@ -16,13 +16,6 @@ #pragma once -/* key matrix size */ -#define MATRIX_ROWS 6 -#define MATRIX_COLS 16 - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION ROW2COL - /* RGB Matrix Driver Configuration */ #define CKLED2001_DRIVER_COUNT 2 #define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO @@ -43,61 +36,11 @@ /* Disable DIP switch in matrix data */ #define MATRIX_MASKED +/* Encoder Configuration*/ +#define ENCODER_DEFAULT_POS 0x3 + /* turn off effects when suspended */ #define RGB_DISABLE_WHEN_USB_SUSPENDED -/* EEPROM Driver Configuration */ -#define WEAR_LEVELING_LOGICAL_SIZE 2048 -#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) - -// RGB Matrix Animation modes. Explicitly enabled -// For full list of effects, see: -// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects -// #define ENABLE_RGB_MATRIX_ALPHAS_MODS -// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN -// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT -#define ENABLE_RGB_MATRIX_BREATHING -// #define ENABLE_RGB_MATRIX_BAND_SAT -// #define ENABLE_RGB_MATRIX_BAND_VAL -// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT -// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL -// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT -#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL -#define ENABLE_RGB_MATRIX_CYCLE_ALL -#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT -#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN -#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN -#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL -#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL -#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL -#define ENABLE_RGB_MATRIX_DUAL_BEACON -#define ENABLE_RGB_MATRIX_RAINBOW_BEACON -// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS -// #define ENABLE_RGB_MATRIX_RAINDROPS -#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS -// #define ENABLE_RGB_MATRIX_HUE_BREATHING -// #define ENABLE_RGB_MATRIX_HUE_PENDULUM -// #define ENABLE_RGB_MATRIX_HUE_WAVE -#define ENABLE_RGB_MATRIX_PIXEL_RAIN -// #define ENABLE_RGB_MATRIX_PIXEL_FLOW -// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL -// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined -#define ENABLE_RGB_MATRIX_TYPING_HEATMAP -#define ENABLE_RGB_MATRIX_DIGITAL_RAIN -// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE -// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -#define ENABLE_RGB_MATRIX_SPLASH -// #define ENABLE_RGB_MATRIX_MULTISPLASH -#define ENABLE_RGB_MATRIX_SOLID_SPLASH -// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH - #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/keychron/q3/info.json b/keyboards/keychron/q3/info.json new file mode 100644 index 0000000000..835aea4504 --- /dev/null +++ b/keyboards/keychron/q3/info.json @@ -0,0 +1,52 @@ +{ + "manufacturer": "Keychron Q3", + "maintainer": "lalalademaxiya1", + "bootloader": "stm32-dfu", + "diode_direction": "ROW2COL", + "eeprom": { + "wear_leveling": { + "backing_size": 4096 + } + }, + "features": { + "bootmagic": true, + "dip_switch": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "processor": "STM32L432", + "rgb_matrix": { + "animations": { + "band_spiral_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "jellybean_raindrops": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_simple": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "driver": "ckled2001" + }, + "url": "https://github.com/Keychron", + "usb": { + "vid": "0x3434" + } +} \ No newline at end of file diff --git a/keyboards/keychron/q3/iso/config.h b/keyboards/keychron/q3/iso/config.h index c6992eb52b..eb141cb270 100644 --- a/keyboards/keychron/q3/iso/config.h +++ b/keyboards/keychron/q3/iso/config.h @@ -16,17 +16,11 @@ #pragma once -/* key matrix pins */ -#define MATRIX_ROW_PINS { B5, B4, B3, A15, A14, A13 } -#define MATRIX_COL_PINS { C14, C15, A0, A1, A2, A3, A4, A5, A6, A7, B0, B1, A8, A9, A10, H3 } - -/* We uses a pin with a stronger pull resistor than the internal MCU pins */ +/* We use a pin with a stronger pull resistor than the internal MCU pins */ // #define MATRIX_UNSELECT_DRIVE_HIGH /* RGB Matrix Configuration */ -#define DRIVER_1_LED_TOTAL 48 -#define DRIVER_2_LED_TOTAL 40 -#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT 88 #define CKLED2001_CURRENT_TUNE \ { 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 } diff --git a/keyboards/keychron/q3/iso/info.json b/keyboards/keychron/q3/iso/info.json index c9618c5b47..14e1e96629 100644 --- a/keyboards/keychron/q3/iso/info.json +++ b/keyboards/keychron/q3/iso/info.json @@ -1,18 +1,110 @@ { - "keyboard_name": "Keychron Q3", - "manufacturer": "Keychron", - "url": "https://github.com/Keychron", - "maintainer": "lalalademaxiya1", "usb": { - "vid": "0x3434", "pid": "0x0122", "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 26, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 39, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 65, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 97, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 111, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 124, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 156, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 182, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1}, + + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1}, + + {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1}, + {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1}, + + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 166, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 183, "y": 36, "flags": 1}, + + {"matrix": [4, 0], "x": 2, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 16, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 171, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, + + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] }, - "processor": "STM32L432", - "bootloader": "stm32-dfu", + "matrix_pins": { + "rows": ["B5", "B4", "B3", "A15", "A14", "A13"], + "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "H3"] + }, + "community_layouts": ["tkl_iso"], "layouts": { "LAYOUT_tkl_iso": { "layout": [ diff --git a/keyboards/keychron/q3/iso/iso.c b/keyboards/keychron/q3/iso/iso.c index d747d55115..1c179a34b4 100644 --- a/keyboards/keychron/q3/iso/iso.c +++ b/keyboards/keychron/q3/iso/iso.c @@ -120,36 +120,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { {1, C_15, A_15, B_15}, }; -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }, - { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 62, 46, 47 }, - { 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 48, 61, 15, 32 }, - { 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, __, 75, 87, 76 }, - { 77, 78, 79, __, __, __, 80, __, __, __, 81, 82, 83, 84, 85, 86 }, - }, - { - // LED Index to Physical Position - {0,0}, {26,0}, {39,0}, {52,0}, {65,0}, {84,0}, {97,0}, {111,0}, {124,0}, {143,0}, {156,0}, {169,0}, {182,0}, {198,0}, {211,0}, {224,0}, - {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {176,15}, {198,15}, {211,15}, {224,15}, - {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {198,28}, {211,28}, {224,28}, - {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {166,40}, {183,36}, - {2,52}, {16,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {171,52}, {211,52}, - {2,64}, {18,64}, {34,64}, {83,64}, {131,64}, {148,64}, {164,64}, {180,64}, {198,64}, {211,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q3/iso/rules.mk b/keyboards/keychron/q3/iso/rules.mk index cf4b02e6da..7ff128fa69 100644 --- a/keyboards/keychron/q3/iso/rules.mk +++ b/keyboards/keychron/q3/iso/rules.mk @@ -1,15 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable USB N-key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -DIP_SWITCH_ENABLE = yes -RGB_MATRIX_ENABLE = yes -LTO_ENABLE = yes +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/keychron/q3/iso_encoder/config.h b/keyboards/keychron/q3/iso_encoder/config.h index 2ee93a4fae..050c940054 100644 --- a/keyboards/keychron/q3/iso_encoder/config.h +++ b/keyboards/keychron/q3/iso_encoder/config.h @@ -21,12 +21,7 @@ #define MATRIX_COL_PINS { C14, C15, A0, A1, A2, A3, A4, A5, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN } /* RGB Matrix Configuration */ -#define DRIVER_1_LED_TOTAL 48 -#define DRIVER_2_LED_TOTAL 40 -#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) - -/* Encoder Configuration */ -#define ENCODER_DEFAULT_POS 0x3 +#define RGB_MATRIX_LED_COUNT 88 #define CKLED2001_CURRENT_TUNE \ { 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 } diff --git a/keyboards/keychron/q3/iso_encoder/info.json b/keyboards/keychron/q3/iso_encoder/info.json index 8571445087..f86e425c9d 100644 --- a/keyboards/keychron/q3/iso_encoder/info.json +++ b/keyboards/keychron/q3/iso_encoder/info.json @@ -1,23 +1,112 @@ { - "keyboard_name": "Keychron Q3", - "manufacturer": "Keychron", - "url": "https://github.com/Keychron", - "maintainer": "lalalademaxiya1", "usb": { - "vid": "0x3434", "pid": "0x0123", "device_version": "1.0.0" }, - "rgb_matrix": { - "driver": "ckled2001" - }, "encoder": { + "enabled": true, "rotary": [ {"pin_a": "A10", "pin_b": "A8"} ] }, - "processor": "STM32L432", - "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 55, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 71, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 97, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 126, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 139, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 152, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 165, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1}, + + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1}, + + {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1}, + {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1}, + + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 166, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 183, "y": 36, "flags": 1}, + + {"matrix": [4, 0], "x": 2, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 16, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 171, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, + + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] + }, + "community_layouts": ["tkl_f13_iso"], "layouts": { "LAYOUT_tkl_f13_iso": { "layout": [ diff --git a/keyboards/keychron/q3/iso_encoder/iso_encoder.c b/keyboards/keychron/q3/iso_encoder/iso_encoder.c index d2bb169aac..1c179a34b4 100644 --- a/keyboards/keychron/q3/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q3/iso_encoder/iso_encoder.c @@ -120,36 +120,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { {1, C_15, A_15, B_15}, }; -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }, - { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 62, 46, 47 }, - { 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 48, 61, 15, 32 }, - { 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, __, 75, 87, 76 }, - { 77, 78, 79, __, __, __, 80, __, __, __, 81, 82, 83, 84, 85, 86 }, - }, - { - // LED Index to Physical Position - {0,0}, {16,0}, {29,0}, {42,0}, {55,0}, {71,0}, {84,0}, {97,0}, {110,0}, {126,0}, {139,0}, {152,0}, {165,0}, {198,0}, {211,0}, {224,0}, - {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {176,15}, {198,15}, {211,15}, {224,15}, - {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {198,28}, {211,28}, {224,28}, - {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {166,40}, {183,36}, - {2,52}, {16,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {171,52}, {211,52}, - {2,64}, {18,64}, {34,64}, {83,64}, {131,64}, {148,64}, {164,64}, {180,64}, {198,64}, {211,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q3/iso_encoder/rules.mk b/keyboards/keychron/q3/iso_encoder/rules.mk index 929c4532a0..5f0634f6d3 100644 --- a/keyboards/keychron/q3/iso_encoder/rules.mk +++ b/keyboards/keychron/q3/iso_encoder/rules.mk @@ -1,21 +1,4 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable USB N-key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes # Enable Encoder -DIP_SWITCH_ENABLE = yes -RGB_MATRIX_ENABLE = yes -LTO_ENABLE = yes - -# custom matrix setup +# Custom matrix setup CUSTOM_MATRIX = lite SRC += matrix.c diff --git a/keyboards/keychron/q3/jis/config.h b/keyboards/keychron/q3/jis/config.h index 856dd14df4..026fe54568 100644 --- a/keyboards/keychron/q3/jis/config.h +++ b/keyboards/keychron/q3/jis/config.h @@ -16,19 +16,11 @@ #pragma once -/* key matrix pins */ -#define MATRIX_ROW_PINS \ - { B5, B4, B3, A15, A14, A13 } -#define MATRIX_COL_PINS \ - { C14, C15, A0, A1, A2, A3, A4, A5, A6, A7, B0, B1, A8, A9, A10, H3 } - /* If PH3 used with a stronger pull resistor then the following definition needs be included */ // #define MATRIX_UNSELECT_DRIVE_HIGH /* RGB Matrix Configuration */ -#define DRIVER_1_LED_TOTAL 48 -#define DRIVER_2_LED_TOTAL 43 -#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT 91 #define CKLED2001_CURRENT_TUNE \ { 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44 } diff --git a/keyboards/keychron/q3/jis/info.json b/keyboards/keychron/q3/jis/info.json index 6f17a7cf9d..7a45046f82 100644 --- a/keyboards/keychron/q3/jis/info.json +++ b/keyboards/keychron/q3/jis/info.json @@ -1,18 +1,116 @@ { - "keyboard_name": "Keychron Q3", - "manufacturer": "Keychron", - "url": "https://github.com/Keychron", - "maintainer": "lalalademaxiya1", "usb": { - "vid": "0x3434", "pid": "0x0124", "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 26, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 39, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 65, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 97, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 111, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 124, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 156, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 182, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1}, + + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 169, "y": 15, "flags": 4}, + {"matrix": [0, 13], "x": 182, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1}, + + {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1}, + {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1}, + + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 166, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 183, "y": 36, "flags": 1}, + + {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 12], "x": 159, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 177, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, + + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 16, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 31, "y": 64, "flags": 1}, + {"matrix": [5, 3], "x": 45, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 119, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 135, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 151, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 166, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] }, - "processor": "STM32L432", - "bootloader": "stm32-dfu", + "matrix_pins": { + "rows": ["B5", "B4", "B3", "A15", "A14", "A13"], + "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "H3"] + }, + "layout_aliases": { + "LAYOUT_tkl_jis": "LAYOUT_jis_91" + }, + "community_layouts": ["tkl_jis"], "layouts": { "LAYOUT_jis_91": { "layout": [ diff --git a/keyboards/keychron/q3/jis/jis.c b/keyboards/keychron/q3/jis/jis.c index f262d3c7d8..9b10f1d103 100644 --- a/keyboards/keychron/q3/jis/jis.c +++ b/keyboards/keychron/q3/jis/jis.c @@ -123,36 +123,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { {1, C_15, A_15, B_15}, // Right }; -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 30, 13, 14 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32 }, - { 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 63, 47, 48 }, - { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 49, 62, 15, 33 }, - { 64, __, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 90, 77 }, - { 78, 79, 80, 81, __, __, 82, __, __, 83, 84, 85, 86, 87, 88, 89 }, - }, - { - // LED Index to Physical Position - {0,0}, {26,0}, {39,0}, {52,0}, {65,0}, {84,0}, {97,0}, {111,0}, {124,0}, {143,0}, {156,0}, {169,0}, {182,0}, {198,0}, {211,0}, {224,0}, - {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {169,15}, {182,15}, {198,15}, {211,15}, {224,15}, - {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {198,28}, {211,28}, {224,28}, - {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {166,40}, {183,36}, - {8,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {159,52}, {177,52}, {211,52}, - {2,64}, {16,64}, {31,64}, {45,64}, {81,64}, {119,64}, {135,64}, {151,64}, {166,64}, {180,64}, {198,64}, {211,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // GB_MATRIX_ENABLE diff --git a/keyboards/keychron/q3/jis/rules.mk b/keyboards/keychron/q3/jis/rules.mk index cf4b02e6da..7ff128fa69 100644 --- a/keyboards/keychron/q3/jis/rules.mk +++ b/keyboards/keychron/q3/jis/rules.mk @@ -1,15 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable USB N-key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -DIP_SWITCH_ENABLE = yes -RGB_MATRIX_ENABLE = yes -LTO_ENABLE = yes +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/keychron/q3/jis_encoder/config.h b/keyboards/keychron/q3/jis_encoder/config.h index 9fca0cfc73..13f132c02c 100644 --- a/keyboards/keychron/q3/jis_encoder/config.h +++ b/keyboards/keychron/q3/jis_encoder/config.h @@ -17,21 +17,14 @@ #pragma once /* key matrix pins */ -#define MATRIX_ROW_PINS \ - { B5, B4, B3, A15, A14, A13 } -#define MATRIX_COL_PINS \ - { C14, C15, A0, A1, A2, A3, A4, A5, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN } +#define MATRIX_ROW_PINS { B5, B4, B3, A15, A14, A13 } +#define MATRIX_COL_PINS { C14, C15, A0, A1, A2, A3, A4, A5, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN } /* RGB Matrix Configuration */ -#define DRIVER_1_LED_TOTAL 49 -#define DRIVER_2_LED_TOTAL 43 -#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT 92 #define CKLED2001_CURRENT_TUNE \ { 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44 } -/* Encoder Configuration */ -#define ENCODER_DEFAULT_POS 0x3 - /* Enable CapsLcok LED */ #define CAPS_LOCK_LED_INDEX 51 diff --git a/keyboards/keychron/q3/jis_encoder/info.json b/keyboards/keychron/q3/jis_encoder/info.json index fd1f361f57..9fc61c7e6c 100644 --- a/keyboards/keychron/q3/jis_encoder/info.json +++ b/keyboards/keychron/q3/jis_encoder/info.json @@ -1,23 +1,119 @@ { - "keyboard_name": "Keychron Q3", - "manufacturer": "Keychron", - "url": "https://github.com/Keychron", - "maintainer": "lalalademaxiya1", "usb": { - "vid": "0x3434", "pid": "0x0125", "device_version": "1.0.0" }, - "rgb_matrix": { - "driver": "ckled2001" - }, "encoder": { + "enabled": true, "rotary": [ {"pin_a": "A10", "pin_b": "A8"} ] }, - "processor": "STM32L432", - "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 55, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 71, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 97, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 126, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 139, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 152, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 165, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 182, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1}, + + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 169, "y": 15, "flags": 4}, + {"matrix": [0, 13], "x": 182, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1}, + + {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1}, + {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1}, + + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 166, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 183, "y": 36, "flags": 1}, + + {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 12], "x": 159, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 177, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, + + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 16, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 31, "y": 64, "flags": 1}, + {"matrix": [5, 3], "x": 45, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 81, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 119, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 135, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 151, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 166, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] + }, + "layout_aliases": { + "LAYOUT_tkl_f13_jis": "LAYOUT_jis_92" + }, + "community_layouts": ["tkl_f13_jis"], "layouts": { "LAYOUT_jis_92": { "layout": [ diff --git a/keyboards/keychron/q3/jis_encoder/jis_encoder.c b/keyboards/keychron/q3/jis_encoder/jis_encoder.c index 0a97c5ca68..1515e9a353 100644 --- a/keyboards/keychron/q3/jis_encoder/jis_encoder.c +++ b/keyboards/keychron/q3/jis_encoder/jis_encoder.c @@ -124,36 +124,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { {1, C_15, A_15, B_15}, // Right }; -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33 }, - { 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 64, 48, 49 }, - { 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 50, 63, 16, 34 }, - { 65, __, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 91, 78 }, - { 79, 80, 81, 82, __, 31, 83, __, __, 84, 85, 86, 87, 88, 89, 90 }, - }, - { - // LED Index to Physical Position - {0,0}, {16,0}, {29,0}, {42,0}, {55,0}, {71,0}, {84,0}, {97,0}, {110,0}, {126,0}, {139,0}, {152,0}, {165,0}, {182,0}, {198,0}, {211,0}, {224,0}, - {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {169,15}, {182,15}, {198,15}, {211,15}, {224,15}, - {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {198,28}, {211,28}, {224,28}, - {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {166,40}, {183,36}, - {8,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {159,52}, {177,52}, {211,52}, - {2,64}, {16,64}, {31,64}, {45,64}, {81,64}, {119,64}, {135,64}, {151,64}, {166,64}, {180,64}, {198,64}, {211,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q3/jis_encoder/rules.mk b/keyboards/keychron/q3/jis_encoder/rules.mk index 929c4532a0..5f0634f6d3 100644 --- a/keyboards/keychron/q3/jis_encoder/rules.mk +++ b/keyboards/keychron/q3/jis_encoder/rules.mk @@ -1,21 +1,4 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable USB N-key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes # Enable Encoder -DIP_SWITCH_ENABLE = yes -RGB_MATRIX_ENABLE = yes -LTO_ENABLE = yes - -# custom matrix setup +# Custom matrix setup CUSTOM_MATRIX = lite SRC += matrix.c diff --git a/keyboards/keychron/q3/readme.md b/keyboards/keychron/q3/readme.md index 8e25a1b332..073455336f 100644 --- a/keyboards/keychron/q3/readme.md +++ b/keyboards/keychron/q3/readme.md @@ -1,22 +1,30 @@ # Keychron Q3 +![Keychron Q3](https://i.imgur.com/KjP4nqdh.jpg) + A customizable 80% keyboard. * Keyboard Maintainer: [Keychron](https://github.com/keychron) * Hardware Supported: Keychron Q3 -* Hardware Availability: [Keychron](https://www.keychron.com) +* Hardware Availability: [Keychron Q3 QMK Custom Mechanical Keyboard](https://www.keychron.com/products/keychron-q3-qmk-custom-mechanical-keyboard) Make example for this keyboard (after setting up your build environment): -``` - make keychron/q3/ansi:default -``` + make keychron/q3/ansi:default + make keychron/q3/ansi_encoder:default + make keychron/q3/iso:default + make keychron/q3/iso_encoder:default + make keychron/q3/jis:default + make keychron/q3/jis_encoder:default Flashing example for this keyboard: -``` - make keychron/q3/ansi:default:flash -``` + make keychron/q3/ansi:default:flash + make keychron/q3/ansi_encoder:default:flash + make keychron/q3/iso:default:flash + make keychron/q3/iso_encoder:default:flash + make keychron/q3/jis:default:flash + make keychron/q3/jis_encoder:default:flash **Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. From 38f89dfc2f8535ca8721a9ab91db850e78273e2f Mon Sep 17 00:00:00 2001 From: adophoxia <100170946+adophoxia@users.noreply.github.com> Date: Tue, 3 Oct 2023 20:53:39 -0700 Subject: [PATCH 225/496] Update Keychron Q1v1 (#21993) Co-authored-by: Drashna Jaelre --- data/mappings/keyboard_aliases.hjson | 3 + keyboards/keychron/q1/ansi/info.json | 115 ---------- keyboards/keychron/q1/ansi/rules.mk | 15 -- keyboards/keychron/q1/ansi_encoder/info.json | 120 ----------- keyboards/keychron/q1/ansi_encoder/rules.mk | 16 -- keyboards/keychron/q1/config.h | 80 ------- keyboards/keychron/q1/iso/info.json | 116 ---------- keyboards/keychron/q1/iso/rules.mk | 15 -- keyboards/keychron/q1/iso_encoder/info.json | 121 ----------- keyboards/keychron/q1/iso_encoder/rules.mk | 18 -- keyboards/keychron/q1/q1.c | 38 ---- keyboards/keychron/q1/readme.md | 21 -- .../ansi_encoder.c => q1v1/ansi/ansi.c} | 41 +--- keyboards/keychron/{q1 => q1v1}/ansi/config.h | 7 +- keyboards/keychron/q1v1/ansi/info.json | 190 +++++++++++++++++ .../ansi/keymaps/default/keymap.c | 0 .../ansi/keymaps/gtg465x/README.md | 0 .../ansi/keymaps/gtg465x/config.h | 0 .../ansi/keymaps/gtg465x/keymap.c | 0 .../ansi/keymaps/gtg465x/keymap_user.h | 0 .../ansi/keymaps/gtg465x/rgb_matrix_user.c | 0 .../ansi/keymaps/gtg465x/rgb_matrix_user.h | 0 .../ansi/keymaps/gtg465x/rules.mk | 0 .../ansi/keymaps/keychron/keymap.c | 0 .../ansi/keymaps/keychron/rules.mk | 0 .../ansi/keymaps/mkillewald/config.h | 0 .../ansi/keymaps/mkillewald/keymap.c | 0 .../ansi/keymaps/mkillewald/keymap_user.h | 0 .../ansi/keymaps/mkillewald/readme.md | 0 .../ansi/keymaps/mkillewald/rgb_matrix_user.c | 0 .../ansi/keymaps/mkillewald/rgb_matrix_user.h | 0 .../ansi/keymaps/mkillewald/rules.mk | 0 .../{q1 => q1v1}/ansi/keymaps/teimor/config.h | 0 .../{q1 => q1v1}/ansi/keymaps/teimor/keymap.c | 0 .../ansi/keymaps/teimor/keymap_user.h | 0 .../ansi/keymaps/teimor/readme.md | 0 .../ansi/keymaps/teimor/rgb_matrix_user.c | 0 .../ansi/keymaps/teimor/rgb_matrix_user.h | 0 .../{q1 => q1v1}/ansi/keymaps/teimor/rules.mk | 0 .../ansi/keymaps/teimor/tap_dance_mac_caps.c | 0 .../ansi/keymaps/teimor/tap_dance_mac_caps.h | 0 .../ansi/keymaps/teimor/tap_dance_setup.c | 0 .../ansi/keymaps/teimor/tap_dance_setup.h | 0 .../ansi/keymaps/teimor/tap_dance_user.c | 0 .../ansi/keymaps/teimor/tap_dance_win_caps.c | 0 .../ansi/keymaps/teimor/tap_dance_win_caps.h | 0 .../{q1 => q1v1}/ansi/keymaps/via/keymap.c | 0 .../{q1 => q1v1}/ansi/keymaps/via/rules.mk | 0 .../keychron/{q1 => q1v1}/ansi/readme.md | 0 keyboards/keychron/q1v1/ansi/rules.mk | 1 + .../ansi_encoder/ansi_encoder.c} | 45 +--- .../{q1/iso => q1v1/ansi_encoder}/config.h | 7 +- .../keychron/q1v1/ansi_encoder/info.json | 196 +++++++++++++++++ .../ansi_encoder/keymaps/default/keymap.c | 0 .../ansi_encoder/keymaps/default/rules.mk | 0 .../ansi_encoder/keymaps/keychron/keymap.c | 0 .../ansi_encoder/keymaps/keychron/rules.mk | 0 .../ansi_encoder/keymaps/via/keymap.c | 0 .../ansi_encoder/keymaps/via/rules.mk | 0 .../{q1 => q1v1}/ansi_encoder/readme.md | 0 keyboards/keychron/q1v1/ansi_encoder/rules.mk | 1 + keyboards/keychron/q1v1/config.h | 37 ++++ keyboards/keychron/q1v1/info.json | 54 +++++ .../{q1/ansi_encoder => q1v1/iso}/config.h | 7 +- keyboards/keychron/q1v1/iso/info.json | 192 +++++++++++++++++ keyboards/keychron/{q1 => q1v1}/iso/iso.c | 39 ++-- .../{q1 => q1v1}/iso/keymaps/default/keymap.c | 0 .../iso/keymaps/keychron/keymap.c | 0 .../iso/keymaps/keychron/rules.mk | 0 .../iso/keymaps/kubahorak/README.md | 0 .../iso/keymaps/kubahorak/config.h | 0 .../iso/keymaps/kubahorak/keymap.c | 0 .../iso/keymaps/kubahorak/keymap_user.h | 0 .../iso/keymaps/kubahorak/rgb_matrix_user.c | 0 .../iso/keymaps/kubahorak/rgb_matrix_user.h | 0 .../iso/keymaps/kubahorak/rules.mk | 0 .../iso/keymaps/mkillewald_iso/config.h | 0 .../iso/keymaps/mkillewald_iso/keymap.c | 0 .../iso/keymaps/mkillewald_iso/keymap_user.h | 0 .../iso/keymaps/mkillewald_iso/readme.md | 0 .../keymaps/mkillewald_iso/rgb_matrix_user.c | 0 .../keymaps/mkillewald_iso/rgb_matrix_user.h | 0 .../iso/keymaps/mkillewald_iso/rules.mk | 0 .../{q1 => q1v1}/iso/keymaps/via/keymap.c | 0 .../{q1 => q1v1}/iso/keymaps/via/rules.mk | 0 .../iso/keymaps/victorsavu3/config.h | 0 .../iso/keymaps/victorsavu3/keymap.c | 0 .../iso/keymaps/victorsavu3/readme.md | 0 .../iso/keymaps/victorsavu3/rules.mk | 0 keyboards/keychron/{q1 => q1v1}/iso/readme.md | 0 keyboards/keychron/q1v1/iso/rules.mk | 1 + .../{q1 => q1v1}/iso_encoder/config.h | 4 +- keyboards/keychron/q1v1/iso_encoder/info.json | 199 ++++++++++++++++++ .../ansi.c => q1v1/iso_encoder/iso_encoder.c} | 45 +--- .../iso_encoder/keymaps/default/keymap.c | 0 .../iso_encoder/keymaps/default/rules.mk | 0 .../iso_encoder/keymaps/keychron/keymap.c | 0 .../iso_encoder/keymaps/keychron/rules.mk | 0 .../iso_encoder/keymaps/via/keymap.c | 0 .../iso_encoder/keymaps/via/rules.mk | 0 .../{q1 => q1v1}/iso_encoder/readme.md | 0 keyboards/keychron/q1v1/iso_encoder/rules.mk | 2 + keyboards/keychron/q1v1/q1v1.c | 73 +++++++ keyboards/keychron/q1v1/readme.md | 27 +++ 104 files changed, 1044 insertions(+), 802 deletions(-) delete mode 100644 keyboards/keychron/q1/ansi/info.json delete mode 100644 keyboards/keychron/q1/ansi/rules.mk delete mode 100644 keyboards/keychron/q1/ansi_encoder/info.json delete mode 100644 keyboards/keychron/q1/ansi_encoder/rules.mk delete mode 100644 keyboards/keychron/q1/config.h delete mode 100644 keyboards/keychron/q1/iso/info.json delete mode 100644 keyboards/keychron/q1/iso/rules.mk delete mode 100644 keyboards/keychron/q1/iso_encoder/info.json delete mode 100644 keyboards/keychron/q1/iso_encoder/rules.mk delete mode 100644 keyboards/keychron/q1/q1.c delete mode 100644 keyboards/keychron/q1/readme.md rename keyboards/keychron/{q1/ansi_encoder/ansi_encoder.c => q1v1/ansi/ansi.c} (65%) rename keyboards/keychron/{q1 => q1v1}/ansi/config.h (85%) create mode 100644 keyboards/keychron/q1v1/ansi/info.json rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/default/keymap.c (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/gtg465x/README.md (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/gtg465x/config.h (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/gtg465x/keymap.c (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/gtg465x/keymap_user.h (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/gtg465x/rgb_matrix_user.c (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/gtg465x/rgb_matrix_user.h (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/gtg465x/rules.mk (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/keychron/keymap.c (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/keychron/rules.mk (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/mkillewald/config.h (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/mkillewald/keymap.c (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/mkillewald/keymap_user.h (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/mkillewald/readme.md (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/mkillewald/rgb_matrix_user.c (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/mkillewald/rgb_matrix_user.h (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/mkillewald/rules.mk (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/teimor/config.h (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/teimor/keymap.c (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/teimor/keymap_user.h (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/teimor/readme.md (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/teimor/rgb_matrix_user.c (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/teimor/rgb_matrix_user.h (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/teimor/rules.mk (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/teimor/tap_dance_mac_caps.c (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/teimor/tap_dance_mac_caps.h (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/teimor/tap_dance_setup.c (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/teimor/tap_dance_setup.h (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/teimor/tap_dance_user.c (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/teimor/tap_dance_win_caps.c (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/teimor/tap_dance_win_caps.h (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/via/keymap.c (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/keymaps/via/rules.mk (100%) rename keyboards/keychron/{q1 => q1v1}/ansi/readme.md (100%) create mode 100644 keyboards/keychron/q1v1/ansi/rules.mk rename keyboards/keychron/{q1/iso_encoder/iso_encoder.c => q1v1/ansi_encoder/ansi_encoder.c} (64%) rename keyboards/keychron/{q1/iso => q1v1/ansi_encoder}/config.h (85%) create mode 100644 keyboards/keychron/q1v1/ansi_encoder/info.json rename keyboards/keychron/{q1 => q1v1}/ansi_encoder/keymaps/default/keymap.c (100%) rename keyboards/keychron/{q1 => q1v1}/ansi_encoder/keymaps/default/rules.mk (100%) rename keyboards/keychron/{q1 => q1v1}/ansi_encoder/keymaps/keychron/keymap.c (100%) rename keyboards/keychron/{q1 => q1v1}/ansi_encoder/keymaps/keychron/rules.mk (100%) rename keyboards/keychron/{q1 => q1v1}/ansi_encoder/keymaps/via/keymap.c (100%) rename keyboards/keychron/{q1 => q1v1}/ansi_encoder/keymaps/via/rules.mk (100%) rename keyboards/keychron/{q1 => q1v1}/ansi_encoder/readme.md (100%) create mode 100644 keyboards/keychron/q1v1/ansi_encoder/rules.mk create mode 100644 keyboards/keychron/q1v1/config.h create mode 100644 keyboards/keychron/q1v1/info.json rename keyboards/keychron/{q1/ansi_encoder => q1v1/iso}/config.h (85%) create mode 100644 keyboards/keychron/q1v1/iso/info.json rename keyboards/keychron/{q1 => q1v1}/iso/iso.c (80%) rename keyboards/keychron/{q1 => q1v1}/iso/keymaps/default/keymap.c (100%) rename keyboards/keychron/{q1 => q1v1}/iso/keymaps/keychron/keymap.c (100%) rename keyboards/keychron/{q1 => q1v1}/iso/keymaps/keychron/rules.mk (100%) rename keyboards/keychron/{q1 => q1v1}/iso/keymaps/kubahorak/README.md (100%) rename keyboards/keychron/{q1 => q1v1}/iso/keymaps/kubahorak/config.h (100%) rename keyboards/keychron/{q1 => q1v1}/iso/keymaps/kubahorak/keymap.c (100%) rename keyboards/keychron/{q1 => q1v1}/iso/keymaps/kubahorak/keymap_user.h (100%) rename keyboards/keychron/{q1 => q1v1}/iso/keymaps/kubahorak/rgb_matrix_user.c (100%) rename keyboards/keychron/{q1 => q1v1}/iso/keymaps/kubahorak/rgb_matrix_user.h (100%) rename keyboards/keychron/{q1 => q1v1}/iso/keymaps/kubahorak/rules.mk (100%) rename keyboards/keychron/{q1 => q1v1}/iso/keymaps/mkillewald_iso/config.h (100%) rename keyboards/keychron/{q1 => q1v1}/iso/keymaps/mkillewald_iso/keymap.c (100%) rename keyboards/keychron/{q1 => q1v1}/iso/keymaps/mkillewald_iso/keymap_user.h (100%) rename keyboards/keychron/{q1 => q1v1}/iso/keymaps/mkillewald_iso/readme.md (100%) rename keyboards/keychron/{q1 => q1v1}/iso/keymaps/mkillewald_iso/rgb_matrix_user.c (100%) rename keyboards/keychron/{q1 => q1v1}/iso/keymaps/mkillewald_iso/rgb_matrix_user.h (100%) rename keyboards/keychron/{q1 => q1v1}/iso/keymaps/mkillewald_iso/rules.mk (100%) rename keyboards/keychron/{q1 => q1v1}/iso/keymaps/via/keymap.c (100%) rename keyboards/keychron/{q1 => q1v1}/iso/keymaps/via/rules.mk (100%) rename keyboards/keychron/{q1 => q1v1}/iso/keymaps/victorsavu3/config.h (100%) rename keyboards/keychron/{q1 => q1v1}/iso/keymaps/victorsavu3/keymap.c (100%) rename keyboards/keychron/{q1 => q1v1}/iso/keymaps/victorsavu3/readme.md (100%) rename keyboards/keychron/{q1 => q1v1}/iso/keymaps/victorsavu3/rules.mk (100%) rename keyboards/keychron/{q1 => q1v1}/iso/readme.md (100%) create mode 100644 keyboards/keychron/q1v1/iso/rules.mk rename keyboards/keychron/{q1 => q1v1}/iso_encoder/config.h (86%) create mode 100644 keyboards/keychron/q1v1/iso_encoder/info.json rename keyboards/keychron/{q1/ansi/ansi.c => q1v1/iso_encoder/iso_encoder.c} (65%) rename keyboards/keychron/{q1 => q1v1}/iso_encoder/keymaps/default/keymap.c (100%) rename keyboards/keychron/{q1 => q1v1}/iso_encoder/keymaps/default/rules.mk (100%) rename keyboards/keychron/{q1 => q1v1}/iso_encoder/keymaps/keychron/keymap.c (100%) rename keyboards/keychron/{q1 => q1v1}/iso_encoder/keymaps/keychron/rules.mk (100%) rename keyboards/keychron/{q1 => q1v1}/iso_encoder/keymaps/via/keymap.c (100%) rename keyboards/keychron/{q1 => q1v1}/iso_encoder/keymaps/via/rules.mk (100%) rename keyboards/keychron/{q1 => q1v1}/iso_encoder/readme.md (100%) create mode 100644 keyboards/keychron/q1v1/iso_encoder/rules.mk create mode 100644 keyboards/keychron/q1v1/q1v1.c create mode 100644 keyboards/keychron/q1v1/readme.md diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 7eec3217b6..626c3eb2f0 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -890,6 +890,9 @@ "kelowna/rgb64": { "target": "weirdo/kelowna/rgb64" }, + "keychron/q1": { + "target": "keychron/q1v1" + } "kprepublic/bm40hsrgb": { "target": "kprepublic/bm40hsrgb/rev1" }, diff --git a/keyboards/keychron/q1/ansi/info.json b/keyboards/keychron/q1/ansi/info.json deleted file mode 100644 index 8ff2075747..0000000000 --- a/keyboards/keychron/q1/ansi/info.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "keyboard_name": "Q1", - "manufacturer": "Keychron", - "url": "https://github.com/Keychron", - "maintainer": "lalalademaxiya1", - "usb": { - "vid": "0x3434", - "pid": "0x0100", - "device_version": "1.0.0", - "force_nkro": true - }, - "rgb_matrix": { - "driver": "is31fl3733" - }, - "matrix_pins": { - "cols": ["D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"], - "rows": ["D3", "D2", "B3", "B2", "B1", "B0"] - }, - "diode_direction": "ROW2COL", - "processor": "atmega32u4", - "bootloader": "atmel-dfu", - "layouts": { - "LAYOUT_ansi_82": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 1.25, "y": 0}, - {"matrix": [0, 3], "x": 2.25, "y": 0}, - {"matrix": [0, 4], "x": 3.25, "y": 0}, - {"matrix": [0, 5], "x": 4.25, "y": 0}, - {"matrix": [0, 6], "x": 5.5, "y": 0}, - {"matrix": [0, 7], "x": 6.5, "y": 0}, - {"matrix": [0, 8], "x": 7.5, "y": 0}, - {"matrix": [0, 9], "x": 8.5, "y": 0}, - {"matrix": [0, 10], "x": 9.75, "y": 0}, - {"matrix": [0, 11], "x": 10.75, "y": 0}, - {"matrix": [0, 12], "x": 11.75, "y": 0}, - {"matrix": [0, 13], "x": 12.75, "y": 0}, - {"matrix": [4, 14], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - {"matrix": [1, 11], "x": 11, "y": 1}, - {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, - {"matrix": [1, 14], "x": 15.25, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2}, - {"matrix": [2, 2], "x": 2.5, "y": 2}, - {"matrix": [2, 3], "x": 3.5, "y": 2}, - {"matrix": [2, 4], "x": 4.5, "y": 2}, - {"matrix": [2, 5], "x": 5.5, "y": 2}, - {"matrix": [2, 6], "x": 6.5, "y": 2}, - {"matrix": [2, 7], "x": 7.5, "y": 2}, - {"matrix": [2, 8], "x": 8.5, "y": 2}, - {"matrix": [2, 9], "x": 9.5, "y": 2}, - {"matrix": [2, 10], "x": 10.5, "y": 2}, - {"matrix": [2, 11], "x": 11.5, "y": 2}, - {"matrix": [2, 12], "x": 12.5, "y": 2}, - {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3}, - {"matrix": [3, 2], "x": 2.75, "y": 3}, - {"matrix": [3, 3], "x": 3.75, "y": 3}, - {"matrix": [3, 4], "x": 4.75, "y": 3}, - {"matrix": [3, 5], "x": 5.75, "y": 3}, - {"matrix": [3, 6], "x": 6.75, "y": 3}, - {"matrix": [3, 7], "x": 7.75, "y": 3}, - {"matrix": [3, 8], "x": 8.75, "y": 3}, - {"matrix": [3, 9], "x": 9.75, "y": 3}, - {"matrix": [3, 10], "x": 10.75, "y": 3}, - {"matrix": [3, 11], "x": 11.75, "y": 3}, - {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, - {"matrix": [3, 14], "x": 15.25, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4}, - {"matrix": [4, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 4], "x": 4.25, "y": 4}, - {"matrix": [4, 5], "x": 5.25, "y": 4}, - {"matrix": [4, 6], "x": 6.25, "y": 4}, - {"matrix": [4, 7], "x": 7.25, "y": 4}, - {"matrix": [4, 8], "x": 8.25, "y": 4}, - {"matrix": [4, 9], "x": 9.25, "y": 4}, - {"matrix": [4, 10], "x": 10.25, "y": 4}, - {"matrix": [4, 11], "x": 11.25, "y": 4}, - {"matrix": [4, 13], "x": 12.25, "y": 4, "w": 1.75}, - {"matrix": [3, 12], "x": 14.25, "y": 4.25}, - - {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5}, - {"matrix": [5, 11], "x": 11, "y": 5}, - {"matrix": [5, 12], "x": 12, "y": 5}, - {"matrix": [5, 13], "x": 13.25, "y": 5.25}, - {"matrix": [4, 12], "x": 14.25, "y": 5.25}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25} - ] - } - } -} diff --git a/keyboards/keychron/q1/ansi/rules.mk b/keyboards/keychron/q1/ansi/rules.mk deleted file mode 100644 index 0379fdb94c..0000000000 --- a/keyboards/keychron/q1/ansi/rules.mk +++ /dev/null @@ -1,15 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -DIP_SWITCH_ENABLE = yes -RGB_MATRIX_ENABLE = yes -LTO_ENABLE = yes diff --git a/keyboards/keychron/q1/ansi_encoder/info.json b/keyboards/keychron/q1/ansi_encoder/info.json deleted file mode 100644 index ef361257f0..0000000000 --- a/keyboards/keychron/q1/ansi_encoder/info.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "keyboard_name": "Q1", - "manufacturer": "Keychron", - "url": "https://github.com/Keychron", - "maintainer": "lalalademaxiya1", - "usb": { - "vid": "0x3434", - "pid": "0x0101", - "device_version": "1.0.0", - "force_nkro": true - }, - "rgb_matrix": { - "driver": "is31fl3733" - }, - "matrix_pins": { - "cols": ["D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"], - "rows": ["D3", "D2", "B3", "B2", "B1", "B0"] - }, - "diode_direction": "ROW2COL", - "encoder": { - "rotary": [ - {"pin_a": "E6", "pin_b": "B7"} - ] - }, - "processor": "atmega32u4", - "bootloader": "atmel-dfu", - "layouts": { - "LAYOUT_ansi_82": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 1.25, "y": 0}, - {"matrix": [0, 3], "x": 2.25, "y": 0}, - {"matrix": [0, 4], "x": 3.25, "y": 0}, - {"matrix": [0, 5], "x": 4.25, "y": 0}, - {"matrix": [0, 6], "x": 5.5, "y": 0}, - {"matrix": [0, 7], "x": 6.5, "y": 0}, - {"matrix": [0, 8], "x": 7.5, "y": 0}, - {"matrix": [0, 9], "x": 8.5, "y": 0}, - {"matrix": [0, 10], "x": 9.75, "y": 0}, - {"matrix": [0, 11], "x": 10.75, "y": 0}, - {"matrix": [0, 12], "x": 11.75, "y": 0}, - {"matrix": [0, 13], "x": 12.75, "y": 0}, - {"matrix": [4, 14], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - {"matrix": [1, 11], "x": 11, "y": 1}, - {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, - {"matrix": [1, 14], "x": 15.25, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2}, - {"matrix": [2, 2], "x": 2.5, "y": 2}, - {"matrix": [2, 3], "x": 3.5, "y": 2}, - {"matrix": [2, 4], "x": 4.5, "y": 2}, - {"matrix": [2, 5], "x": 5.5, "y": 2}, - {"matrix": [2, 6], "x": 6.5, "y": 2}, - {"matrix": [2, 7], "x": 7.5, "y": 2}, - {"matrix": [2, 8], "x": 8.5, "y": 2}, - {"matrix": [2, 9], "x": 9.5, "y": 2}, - {"matrix": [2, 10], "x": 10.5, "y": 2}, - {"matrix": [2, 11], "x": 11.5, "y": 2}, - {"matrix": [2, 12], "x": 12.5, "y": 2}, - {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5}, - {"matrix": [2, 14], "x": 15.25, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3}, - {"matrix": [3, 2], "x": 2.75, "y": 3}, - {"matrix": [3, 3], "x": 3.75, "y": 3}, - {"matrix": [3, 4], "x": 4.75, "y": 3}, - {"matrix": [3, 5], "x": 5.75, "y": 3}, - {"matrix": [3, 6], "x": 6.75, "y": 3}, - {"matrix": [3, 7], "x": 7.75, "y": 3}, - {"matrix": [3, 8], "x": 8.75, "y": 3}, - {"matrix": [3, 9], "x": 9.75, "y": 3}, - {"matrix": [3, 10], "x": 10.75, "y": 3}, - {"matrix": [3, 11], "x": 11.75, "y": 3}, - {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, - {"matrix": [3, 14], "x": 15.25, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4}, - {"matrix": [4, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 4], "x": 4.25, "y": 4}, - {"matrix": [4, 5], "x": 5.25, "y": 4}, - {"matrix": [4, 6], "x": 6.25, "y": 4}, - {"matrix": [4, 7], "x": 7.25, "y": 4}, - {"matrix": [4, 8], "x": 8.25, "y": 4}, - {"matrix": [4, 9], "x": 9.25, "y": 4}, - {"matrix": [4, 10], "x": 10.25, "y": 4}, - {"matrix": [4, 11], "x": 11.25, "y": 4}, - {"matrix": [4, 13], "x": 12.25, "y": 4, "w": 1.75}, - {"matrix": [3, 12], "x": 14.25, "y": 4.25}, - - {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5}, - {"matrix": [5, 11], "x": 11, "y": 5}, - {"matrix": [5, 12], "x": 12, "y": 5}, - {"matrix": [5, 13], "x": 13.25, "y": 5.25}, - {"matrix": [4, 12], "x": 14.25, "y": 5.25}, - {"matrix": [5, 14], "x": 15.25, "y": 5.25} - ] - } - } -} diff --git a/keyboards/keychron/q1/ansi_encoder/rules.mk b/keyboards/keychron/q1/ansi_encoder/rules.mk deleted file mode 100644 index d60167579e..0000000000 --- a/keyboards/keychron/q1/ansi_encoder/rules.mk +++ /dev/null @@ -1,16 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes # Enable Encoder -DIP_SWITCH_ENABLE = yes -RGB_MATRIX_ENABLE = yes -LTO_ENABLE = yes diff --git a/keyboards/keychron/q1/config.h b/keyboards/keychron/q1/config.h deleted file mode 100644 index 543f62f9d8..0000000000 --- a/keyboards/keychron/q1/config.h +++ /dev/null @@ -1,80 +0,0 @@ -/* Copyright 2021 @ Keychron(https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -/* RGB Matrix Driver Configuration */ -#define IS31FL3733_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND -#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_VCC_VCC - -/* DIP switch */ -#define DIP_SWITCH_MATRIX_GRID { {0,1} } - -/* Disable DIP switch in matrix data */ -#define MATRIX_MASKED - -/* Disable RGB lighting when PC is in suspend */ -#define RGB_DISABLE_WHEN_USB_SUSPENDED - -// RGB Matrix Animation modes. Explicitly enabled -// For full list of effects, see: -// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects -// #define ENABLE_RGB_MATRIX_ALPHAS_MODS -// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN -// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT -#define ENABLE_RGB_MATRIX_BREATHING -// #define ENABLE_RGB_MATRIX_BAND_SAT -// #define ENABLE_RGB_MATRIX_BAND_VAL -// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT -// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL -// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT -#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL -#define ENABLE_RGB_MATRIX_CYCLE_ALL -#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT -#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN -#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN -#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL -#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL -#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL -#define ENABLE_RGB_MATRIX_DUAL_BEACON -#define ENABLE_RGB_MATRIX_RAINBOW_BEACON -// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS -// #define ENABLE_RGB_MATRIX_RAINDROPS -#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS -// #define ENABLE_RGB_MATRIX_HUE_BREATHING -// #define ENABLE_RGB_MATRIX_HUE_PENDULUM -// #define ENABLE_RGB_MATRIX_HUE_WAVE -#define ENABLE_RGB_MATRIX_PIXEL_RAIN -// #define ENABLE_RGB_MATRIX_PIXEL_FLOW -// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL -// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined -#define ENABLE_RGB_MATRIX_TYPING_HEATMAP -#define ENABLE_RGB_MATRIX_DIGITAL_RAIN -// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE -// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -#define ENABLE_RGB_MATRIX_SPLASH -// #define ENABLE_RGB_MATRIX_MULTISPLASH -#define ENABLE_RGB_MATRIX_SOLID_SPLASH -#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH diff --git a/keyboards/keychron/q1/iso/info.json b/keyboards/keychron/q1/iso/info.json deleted file mode 100644 index 424ed021e1..0000000000 --- a/keyboards/keychron/q1/iso/info.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "keyboard_name": "Q1", - "manufacturer": "Keychron", - "url": "https://github.com/Keychron", - "maintainer": "lalalademaxiya1", - "usb": { - "vid": "0x3434", - "pid": "0x0102", - "device_version": "1.0.0", - "force_nkro": true - }, - "rgb_matrix": { - "driver": "is31fl3733" - }, - "matrix_pins": { - "cols": ["D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"], - "rows": ["D3", "D2", "B3", "B2", "B1", "B0"] - }, - "diode_direction": "ROW2COL", - "processor": "atmega32u4", - "bootloader": "atmel-dfu", - "layouts": { - "LAYOUT_iso_83": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 1.25, "y": 0}, - {"matrix": [0, 3], "x": 2.25, "y": 0}, - {"matrix": [0, 4], "x": 3.25, "y": 0}, - {"matrix": [0, 5], "x": 4.25, "y": 0}, - {"matrix": [0, 6], "x": 5.5, "y": 0}, - {"matrix": [0, 7], "x": 6.5, "y": 0}, - {"matrix": [0, 8], "x": 7.5, "y": 0}, - {"matrix": [0, 9], "x": 8.5, "y": 0}, - {"matrix": [0, 10], "x": 9.75, "y": 0}, - {"matrix": [0, 11], "x": 10.75, "y": 0}, - {"matrix": [0, 12], "x": 11.75, "y": 0}, - {"matrix": [0, 13], "x": 12.75, "y": 0}, - {"matrix": [4, 14], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, - {"matrix": [1, 14], "x": 15.25, "y": 1.25}, - - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 13], "x": 12.75, "y": 3.25}, - {"matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, - {"matrix": [3, 14], "x": 15.25, "y": 3.25}, - - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 1.75}, - {"matrix": [3, 12], "x": 14.25, "y": 4.5}, - - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5.25}, - {"matrix": [5, 11], "x": 11, "y": 5.25}, - {"matrix": [5, 12], "x": 12, "y": 5.25}, - {"matrix": [5, 13], "x": 13.25, "y": 5.5}, - {"matrix": [4, 12], "x": 14.25, "y": 5.5}, - {"matrix": [5, 14], "x": 15.25, "y": 5.5} - ] - } - } -} diff --git a/keyboards/keychron/q1/iso/rules.mk b/keyboards/keychron/q1/iso/rules.mk deleted file mode 100644 index 0379fdb94c..0000000000 --- a/keyboards/keychron/q1/iso/rules.mk +++ /dev/null @@ -1,15 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -DIP_SWITCH_ENABLE = yes -RGB_MATRIX_ENABLE = yes -LTO_ENABLE = yes diff --git a/keyboards/keychron/q1/iso_encoder/info.json b/keyboards/keychron/q1/iso_encoder/info.json deleted file mode 100644 index 250cd1ffb4..0000000000 --- a/keyboards/keychron/q1/iso_encoder/info.json +++ /dev/null @@ -1,121 +0,0 @@ -{ - "keyboard_name": "Keychron Q1", - "manufacturer": "Keychron", - "url": "https://github.com/Keychron", - "maintainer": "lalalademaxiya1", - "usb": { - "vid": "0x3434", - "pid": "0x0103", - "device_version": "1.0.2", - "force_nkro": true - }, - "rgb_matrix": { - "driver": "is31fl3733" - }, - "matrix_pins": { - "cols": ["D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"], - "rows": ["D3", "D2", "B3", "B2", "B1", "B0"] - }, - "diode_direction": "ROW2COL", - "encoder": { - "rotary": [ - {"pin_a": "E6", "pin_b": "B7"} - ] - }, - "processor": "atmega32u4", - "bootloader": "atmel-dfu", - "layouts": { - "LAYOUT_iso_83": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 1.25, "y": 0}, - {"matrix": [0, 3], "x": 2.25, "y": 0}, - {"matrix": [0, 4], "x": 3.25, "y": 0}, - {"matrix": [0, 5], "x": 4.25, "y": 0}, - {"matrix": [0, 6], "x": 5.5, "y": 0}, - {"matrix": [0, 7], "x": 6.5, "y": 0}, - {"matrix": [0, 8], "x": 7.5, "y": 0}, - {"matrix": [0, 9], "x": 8.5, "y": 0}, - {"matrix": [0, 10], "x": 9.75, "y": 0}, - {"matrix": [0, 11], "x": 10.75, "y": 0}, - {"matrix": [0, 12], "x": 11.75, "y": 0}, - {"matrix": [0, 13], "x": 12.75, "y": 0}, - {"matrix": [4, 14], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15.25, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, - {"matrix": [1, 14], "x": 15.25, "y": 1.25}, - - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 14], "x": 15.25, "y": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 13], "x": 12.75, "y": 3.25}, - {"matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, - {"matrix": [3, 14], "x": 15.25, "y": 3.25}, - - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4.25}, - {"matrix": [4, 3], "x": 3.25, "y": 4.25}, - {"matrix": [4, 4], "x": 4.25, "y": 4.25}, - {"matrix": [4, 5], "x": 5.25, "y": 4.25}, - {"matrix": [4, 6], "x": 6.25, "y": 4.25}, - {"matrix": [4, 7], "x": 7.25, "y": 4.25}, - {"matrix": [4, 8], "x": 8.25, "y": 4.25}, - {"matrix": [4, 9], "x": 9.25, "y": 4.25}, - {"matrix": [4, 10], "x": 10.25, "y": 4.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4.25}, - {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 1.75}, - {"matrix": [3, 12], "x": 14.25, "y": 4.5}, - - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5.25}, - {"matrix": [5, 11], "x": 11, "y": 5.25}, - {"matrix": [5, 12], "x": 12, "y": 5.25}, - {"matrix": [5, 13], "x": 13.25, "y": 5.5}, - {"matrix": [4, 12], "x": 14.25, "y": 5.5}, - {"matrix": [5, 14], "x": 15.25, "y": 5.5} - ] - } - } -} diff --git a/keyboards/keychron/q1/iso_encoder/rules.mk b/keyboards/keychron/q1/iso_encoder/rules.mk deleted file mode 100644 index d994ac1fad..0000000000 --- a/keyboards/keychron/q1/iso_encoder/rules.mk +++ /dev/null @@ -1,18 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes # Enable Encoder -DIP_SWITCH_ENABLE = yes -RGB_MATRIX_ENABLE = yes -RAW_ENABLE = yes -LTO_ENABLE = yes - diff --git a/keyboards/keychron/q1/q1.c b/keyboards/keychron/q1/q1.c deleted file mode 100644 index 3df62c4339..0000000000 --- a/keyboards/keychron/q1/q1.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright 2021 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "quantum.h" - -const matrix_row_t matrix_mask[] = { - 0b0111111111111101, - 0b0111111111111111, - 0b0111111111111111, - 0b0111111111111111, - 0b0111111111111111, - 0b0111111111111111, -}; - -#ifdef DIP_SWITCH_ENABLE - -bool dip_switch_update_kb(uint8_t index, bool active) { - if (!dip_switch_update_user(index, active)) { return false;} - if (index == 0) { - default_layer_set(1UL << (active ? 2 : 0)); - } - return true; -} - -#endif // DIP_SWITCH_ENABLE diff --git a/keyboards/keychron/q1/readme.md b/keyboards/keychron/q1/readme.md deleted file mode 100644 index 94b7a21f5b..0000000000 --- a/keyboards/keychron/q1/readme.md +++ /dev/null @@ -1,21 +0,0 @@ -# Keychron Q1 - -![Keychron Q1](https://cdn.shopify.com/s/files/1/0059/0630/1017/t/5/assets/pf-823ebdc7--1073.jpg) - -A customizable 75% keyboard. - -* Keyboard Maintainer: [Keychron](https://github.com/keychron) -* Hardware Supported: Keychron Q1 -* Hardware Availability: [Keychron](https://www.keychron.com) - -Make example for this keyboard (after setting up your build environment): - - make keychron/q1/ansi:default - -Flashing example for this keyboard: - - make keychron/q1/ansi:default:flash - -**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. - -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). diff --git a/keyboards/keychron/q1/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q1v1/ansi/ansi.c similarity index 65% rename from keyboards/keychron/q1/ansi_encoder/ansi_encoder.c rename to keyboards/keychron/q1v1/ansi/ansi.c index bc559b3541..059745a129 100644 --- a/keyboards/keychron/q1/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q1v1/ansi/ansi.c @@ -16,7 +16,17 @@ #include "quantum.h" +const matrix_row_t matrix_mask[] = { + 0b0111111111111101, + 0b0111111111111111, + 0b0111111111111111, + 0b0111111111111111, + 0b0111111111111111, + 0b0111111111111111, +}; + #ifdef RGB_MATRIX_ENABLE + const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver @@ -111,38 +121,7 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {1, F_14, D_14, E_14}, {1, F_15, D_15, E_15}, {1, F_16, D_16, E_16} -}; -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, __, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 }, - { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 71, 57, 58 }, - { 59, __, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 80, 70, 13 }, - { 72, 73, 74, __, __, __, 75, __, __, __, 76, 77, 78, 79, 81 } - }, - { - // LED Index to Physical Position - {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0}, - {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15}, - {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {202,26}, {224,26}, - {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {196,38}, {224,38}, - {9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52}, - {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } }; #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q1/ansi/config.h b/keyboards/keychron/q1v1/ansi/config.h similarity index 85% rename from keyboards/keychron/q1/ansi/config.h rename to keyboards/keychron/q1v1/ansi/config.h index c6d4e44c87..5eaa1e82f1 100644 --- a/keyboards/keychron/q1/ansi/config.h +++ b/keyboards/keychron/q1v1/ansi/config.h @@ -17,6 +17,7 @@ #pragma once /* RGB Matrix Configuration */ -#define DRIVER_1_LED_TOTAL 59 -#define DRIVER_2_LED_TOTAL 23 -#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) \ No newline at end of file +#define RGB_MATRIX_LED_COUNT 82 + +/* Enable caps-lock LED */ +#define CAPS_LOCK_LED_INDEX 45 \ No newline at end of file diff --git a/keyboards/keychron/q1v1/ansi/info.json b/keyboards/keychron/q1v1/ansi/info.json new file mode 100644 index 0000000000..028967d608 --- /dev/null +++ b/keyboards/keychron/q1v1/ansi/info.json @@ -0,0 +1,190 @@ +{ + "usb": { + "pid": "0x0100", + "device_version": "1.0.0" + }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 18, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 33, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 62, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 81, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 95, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 158, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 173, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 187, "y": 0, "flags": 1}, + {"matrix": [4, 14], "x": 206, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 118, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 162, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1}, + + {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 95, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 110, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 125, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 140, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 154, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 169, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 184, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 202, "y": 26, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 26, "flags": 1}, + + {"matrix": [3, 0], "x": 6, "y": 38, "flags": 1}, + {"matrix": [3, 1], "x": 26, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 99, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 114, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 129, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 143, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 158, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 173, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 196, "y": 38, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 38, "flags": 1}, + + {"matrix": [4, 0], "x": 9, "y": 49, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 62, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 77, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 92, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 106, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 121, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 136, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 151, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 165, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 185, "y": 49, "flags": 1}, + {"matrix": [3, 12], "x": 209, "y": 52, "flags": 1}, + + {"matrix": [5, 0], "x":2, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x":20, "y": 61, "flags": 1}, + {"matrix": [5, 2], "x":39, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x":94, "y": 61, "flags": 4}, + {"matrix": [5, 10], "x":147, "y": 61, "flags": 1}, + {"matrix": [5, 11], "x":162, "y": 61, "flags": 1}, + {"matrix": [5, 12], "x":176, "y": 61, "flags": 1}, + {"matrix": [5, 13], "x":195, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x":209, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x":224, "y": 64, "flags": 1} + ] + }, + "layouts": { + "LAYOUT_ansi_82": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.25, "y": 0}, + {"matrix": [0, 3], "x": 2.25, "y": 0}, + {"matrix": [0, 4], "x": 3.25, "y": 0}, + {"matrix": [0, 5], "x": 4.25, "y": 0}, + {"matrix": [0, 6], "x": 5.5, "y": 0}, + {"matrix": [0, 7], "x": 6.5, "y": 0}, + {"matrix": [0, 8], "x": 7.5, "y": 0}, + {"matrix": [0, 9], "x": 8.5, "y": 0}, + {"matrix": [0, 10], "x": 9.75, "y": 0}, + {"matrix": [0, 11], "x": 10.75, "y": 0}, + {"matrix": [0, 12], "x": 11.75, "y": 0}, + {"matrix": [0, 13], "x": 12.75, "y": 0}, + {"matrix": [4, 14], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [3, 14], "x": 15.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 13], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [3, 12], "x": 14.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5}, + {"matrix": [5, 11], "x": 11, "y": 5}, + {"matrix": [5, 12], "x": 12, "y": 5}, + {"matrix": [5, 13], "x": 13.25, "y": 5.25}, + {"matrix": [4, 12], "x": 14.25, "y": 5.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/keychron/q1/ansi/keymaps/default/keymap.c b/keyboards/keychron/q1v1/ansi/keymaps/default/keymap.c similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/default/keymap.c rename to keyboards/keychron/q1v1/ansi/keymaps/default/keymap.c diff --git a/keyboards/keychron/q1/ansi/keymaps/gtg465x/README.md b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/README.md similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/gtg465x/README.md rename to keyboards/keychron/q1v1/ansi/keymaps/gtg465x/README.md diff --git a/keyboards/keychron/q1/ansi/keymaps/gtg465x/config.h b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/config.h similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/gtg465x/config.h rename to keyboards/keychron/q1v1/ansi/keymaps/gtg465x/config.h diff --git a/keyboards/keychron/q1/ansi/keymaps/gtg465x/keymap.c b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/keymap.c similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/gtg465x/keymap.c rename to keyboards/keychron/q1v1/ansi/keymaps/gtg465x/keymap.c diff --git a/keyboards/keychron/q1/ansi/keymaps/gtg465x/keymap_user.h b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/keymap_user.h similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/gtg465x/keymap_user.h rename to keyboards/keychron/q1v1/ansi/keymaps/gtg465x/keymap_user.h diff --git a/keyboards/keychron/q1/ansi/keymaps/gtg465x/rgb_matrix_user.c b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rgb_matrix_user.c similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/gtg465x/rgb_matrix_user.c rename to keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rgb_matrix_user.c diff --git a/keyboards/keychron/q1/ansi/keymaps/gtg465x/rgb_matrix_user.h b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rgb_matrix_user.h similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/gtg465x/rgb_matrix_user.h rename to keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rgb_matrix_user.h diff --git a/keyboards/keychron/q1/ansi/keymaps/gtg465x/rules.mk b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rules.mk similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/gtg465x/rules.mk rename to keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rules.mk diff --git a/keyboards/keychron/q1/ansi/keymaps/keychron/keymap.c b/keyboards/keychron/q1v1/ansi/keymaps/keychron/keymap.c similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/keychron/keymap.c rename to keyboards/keychron/q1v1/ansi/keymaps/keychron/keymap.c diff --git a/keyboards/keychron/q1/ansi/keymaps/keychron/rules.mk b/keyboards/keychron/q1v1/ansi/keymaps/keychron/rules.mk similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/keychron/rules.mk rename to keyboards/keychron/q1v1/ansi/keymaps/keychron/rules.mk diff --git a/keyboards/keychron/q1/ansi/keymaps/mkillewald/config.h b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/config.h similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/mkillewald/config.h rename to keyboards/keychron/q1v1/ansi/keymaps/mkillewald/config.h diff --git a/keyboards/keychron/q1/ansi/keymaps/mkillewald/keymap.c b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/keymap.c similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/mkillewald/keymap.c rename to keyboards/keychron/q1v1/ansi/keymaps/mkillewald/keymap.c diff --git a/keyboards/keychron/q1/ansi/keymaps/mkillewald/keymap_user.h b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/keymap_user.h similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/mkillewald/keymap_user.h rename to keyboards/keychron/q1v1/ansi/keymaps/mkillewald/keymap_user.h diff --git a/keyboards/keychron/q1/ansi/keymaps/mkillewald/readme.md b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/readme.md similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/mkillewald/readme.md rename to keyboards/keychron/q1v1/ansi/keymaps/mkillewald/readme.md diff --git a/keyboards/keychron/q1/ansi/keymaps/mkillewald/rgb_matrix_user.c b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rgb_matrix_user.c similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/mkillewald/rgb_matrix_user.c rename to keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rgb_matrix_user.c diff --git a/keyboards/keychron/q1/ansi/keymaps/mkillewald/rgb_matrix_user.h b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rgb_matrix_user.h similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/mkillewald/rgb_matrix_user.h rename to keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rgb_matrix_user.h diff --git a/keyboards/keychron/q1/ansi/keymaps/mkillewald/rules.mk b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rules.mk similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/mkillewald/rules.mk rename to keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rules.mk diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/config.h b/keyboards/keychron/q1v1/ansi/keymaps/teimor/config.h similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/teimor/config.h rename to keyboards/keychron/q1v1/ansi/keymaps/teimor/config.h diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/keymap.c b/keyboards/keychron/q1v1/ansi/keymaps/teimor/keymap.c similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/teimor/keymap.c rename to keyboards/keychron/q1v1/ansi/keymaps/teimor/keymap.c diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/keymap_user.h b/keyboards/keychron/q1v1/ansi/keymaps/teimor/keymap_user.h similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/teimor/keymap_user.h rename to keyboards/keychron/q1v1/ansi/keymaps/teimor/keymap_user.h diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/readme.md b/keyboards/keychron/q1v1/ansi/keymaps/teimor/readme.md similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/teimor/readme.md rename to keyboards/keychron/q1v1/ansi/keymaps/teimor/readme.md diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/rgb_matrix_user.c b/keyboards/keychron/q1v1/ansi/keymaps/teimor/rgb_matrix_user.c similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/teimor/rgb_matrix_user.c rename to keyboards/keychron/q1v1/ansi/keymaps/teimor/rgb_matrix_user.c diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/rgb_matrix_user.h b/keyboards/keychron/q1v1/ansi/keymaps/teimor/rgb_matrix_user.h similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/teimor/rgb_matrix_user.h rename to keyboards/keychron/q1v1/ansi/keymaps/teimor/rgb_matrix_user.h diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/rules.mk b/keyboards/keychron/q1v1/ansi/keymaps/teimor/rules.mk similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/teimor/rules.mk rename to keyboards/keychron/q1v1/ansi/keymaps/teimor/rules.mk diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_mac_caps.c b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_mac_caps.c similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_mac_caps.c rename to keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_mac_caps.c diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_mac_caps.h b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_mac_caps.h similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_mac_caps.h rename to keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_mac_caps.h diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_setup.c b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_setup.c similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_setup.c rename to keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_setup.c diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_setup.h b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_setup.h similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_setup.h rename to keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_setup.h diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_user.c b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_user.c similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_user.c rename to keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_user.c diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_win_caps.c b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_win_caps.c similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_win_caps.c rename to keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_win_caps.c diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_win_caps.h b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_win_caps.h similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_win_caps.h rename to keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_win_caps.h diff --git a/keyboards/keychron/q1/ansi/keymaps/via/keymap.c b/keyboards/keychron/q1v1/ansi/keymaps/via/keymap.c similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/via/keymap.c rename to keyboards/keychron/q1v1/ansi/keymaps/via/keymap.c diff --git a/keyboards/keychron/q1/ansi/keymaps/via/rules.mk b/keyboards/keychron/q1v1/ansi/keymaps/via/rules.mk similarity index 100% rename from keyboards/keychron/q1/ansi/keymaps/via/rules.mk rename to keyboards/keychron/q1v1/ansi/keymaps/via/rules.mk diff --git a/keyboards/keychron/q1/ansi/readme.md b/keyboards/keychron/q1v1/ansi/readme.md similarity index 100% rename from keyboards/keychron/q1/ansi/readme.md rename to keyboards/keychron/q1v1/ansi/readme.md diff --git a/keyboards/keychron/q1v1/ansi/rules.mk b/keyboards/keychron/q1v1/ansi/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/keychron/q1v1/ansi/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/keychron/q1/iso_encoder/iso_encoder.c b/keyboards/keychron/q1v1/ansi_encoder/ansi_encoder.c similarity index 64% rename from keyboards/keychron/q1/iso_encoder/iso_encoder.c rename to keyboards/keychron/q1v1/ansi_encoder/ansi_encoder.c index c6b091fff1..21bf8a6c0b 100644 --- a/keyboards/keychron/q1/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q1v1/ansi_encoder/ansi_encoder.c @@ -16,8 +16,16 @@ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE +const matrix_row_t matrix_mask[] = { + 0b0111111111111101, + 0b0111111111111111, + 0b0111111111111111, + 0b0111111111111111, + 0b0111111111111111, + 0b0111111111111111, +}; +#ifdef RGB_MATRIX_ENABLE const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver @@ -70,6 +78,7 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, I_11, G_11, H_11}, {0, I_12, G_12, H_12}, {0, I_13, G_13, H_13}, + {0, I_14, G_14, H_14}, {0, I_16, G_16, H_16}, {0, L_1, J_1, K_1}, @@ -85,11 +94,9 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, L_11, J_11, K_11}, {0, L_12, J_12, K_12}, {0, L_14, J_14, K_14}, - {0, I_14, G_14, H_14}, {0, L_16, J_16, K_16}, {1, C_1, A_1, B_1}, - {1, C_2, A_2, B_2}, {1, C_3, A_3, B_3}, {1, C_4, A_4, B_4}, {1, C_5, A_5, B_5}, @@ -115,36 +122,4 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {1, F_16, D_16, E_16} }; -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, __, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 57, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 72, 56, 58 }, - { 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 81, 71, 13 }, - { 73, 74, 75, __, __, __, 76, __, __, __, 77, 78, 79, 80, 82 } - }, - { - // LED Index to Physical Position - {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0}, - {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15}, - {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {224,26}, - {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {187,38}, {203,32}, {224,38}, - {2,49}, {18,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52}, - {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q1/iso/config.h b/keyboards/keychron/q1v1/ansi_encoder/config.h similarity index 85% rename from keyboards/keychron/q1/iso/config.h rename to keyboards/keychron/q1v1/ansi_encoder/config.h index cb7b05560a..e608b42c8d 100644 --- a/keyboards/keychron/q1/iso/config.h +++ b/keyboards/keychron/q1v1/ansi_encoder/config.h @@ -17,6 +17,7 @@ #pragma once /* RGB Matrix Configuration */ -#define DRIVER_1_LED_TOTAL 59 -#define DRIVER_2_LED_TOTAL 24 -#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) \ No newline at end of file +#define RGB_MATRIX_LED_COUNT 82 + +/* Enable caps-lock LED */ +#define CAPS_LOCK_LED_INDEX 45 diff --git a/keyboards/keychron/q1v1/ansi_encoder/info.json b/keyboards/keychron/q1v1/ansi_encoder/info.json new file mode 100644 index 0000000000..786c297fd3 --- /dev/null +++ b/keyboards/keychron/q1v1/ansi_encoder/info.json @@ -0,0 +1,196 @@ +{ + "usb": { + "pid": "0x0101", + "device_version": "1.0.0" + }, + "encoder": { + "enabled": true, + "rotary": [ + {"pin_a": "E6", "pin_b": "B7"} + ] + }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 18, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 33, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 62, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 81, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 95, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 158, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 173, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 187, "y": 0, "flags": 1}, + {"matrix": [4, 14], "x": 206, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 118, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 162, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1}, + + {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 95, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 110, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 125, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 140, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 154, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 169, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 184, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 202, "y": 26, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 26, "flags": 1}, + + {"matrix": [3, 0], "x": 6, "y": 38, "flags": 1}, + {"matrix": [3, 1], "x": 26, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 99, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 114, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 129, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 143, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 158, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 173, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 196, "y": 38, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 38, "flags": 1}, + + {"matrix": [4, 0], "x": 9, "y": 49, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 62, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 77, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 92, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 106, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 121, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 136, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 151, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 165, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 185, "y": 49, "flags": 1}, + {"matrix": [3, 12], "x": 209, "y": 52, "flags": 1}, + + {"matrix": [5, 0], "x":2, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x":20, "y": 61, "flags": 1}, + {"matrix": [5, 2], "x":39, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x":94, "y": 61, "flags": 4}, + {"matrix": [5, 10], "x":147, "y": 61, "flags": 1}, + {"matrix": [5, 11], "x":162, "y": 61, "flags": 1}, + {"matrix": [5, 12], "x":176, "y": 61, "flags": 1}, + {"matrix": [5, 13], "x":195, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x":209, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x":224, "y": 64, "flags": 1} + ] + }, + "layouts": { + "LAYOUT_ansi_82": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.25, "y": 0}, + {"matrix": [0, 3], "x": 2.25, "y": 0}, + {"matrix": [0, 4], "x": 3.25, "y": 0}, + {"matrix": [0, 5], "x": 4.25, "y": 0}, + {"matrix": [0, 6], "x": 5.5, "y": 0}, + {"matrix": [0, 7], "x": 6.5, "y": 0}, + {"matrix": [0, 8], "x": 7.5, "y": 0}, + {"matrix": [0, 9], "x": 8.5, "y": 0}, + {"matrix": [0, 10], "x": 9.75, "y": 0}, + {"matrix": [0, 11], "x": 10.75, "y": 0}, + {"matrix": [0, 12], "x": 11.75, "y": 0}, + {"matrix": [0, 13], "x": 12.75, "y": 0}, + {"matrix": [4, 14], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [3, 14], "x": 15.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 13], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [3, 12], "x": 14.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5}, + {"matrix": [5, 11], "x": 11, "y": 5}, + {"matrix": [5, 12], "x": 12, "y": 5}, + {"matrix": [5, 13], "x": 13.25, "y": 5.25}, + {"matrix": [4, 12], "x": 14.25, "y": 5.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/keychron/q1/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/q1v1/ansi_encoder/keymaps/default/keymap.c similarity index 100% rename from keyboards/keychron/q1/ansi_encoder/keymaps/default/keymap.c rename to keyboards/keychron/q1v1/ansi_encoder/keymaps/default/keymap.c diff --git a/keyboards/keychron/q1/ansi_encoder/keymaps/default/rules.mk b/keyboards/keychron/q1v1/ansi_encoder/keymaps/default/rules.mk similarity index 100% rename from keyboards/keychron/q1/ansi_encoder/keymaps/default/rules.mk rename to keyboards/keychron/q1v1/ansi_encoder/keymaps/default/rules.mk diff --git a/keyboards/keychron/q1/ansi_encoder/keymaps/keychron/keymap.c b/keyboards/keychron/q1v1/ansi_encoder/keymaps/keychron/keymap.c similarity index 100% rename from keyboards/keychron/q1/ansi_encoder/keymaps/keychron/keymap.c rename to keyboards/keychron/q1v1/ansi_encoder/keymaps/keychron/keymap.c diff --git a/keyboards/keychron/q1/ansi_encoder/keymaps/keychron/rules.mk b/keyboards/keychron/q1v1/ansi_encoder/keymaps/keychron/rules.mk similarity index 100% rename from keyboards/keychron/q1/ansi_encoder/keymaps/keychron/rules.mk rename to keyboards/keychron/q1v1/ansi_encoder/keymaps/keychron/rules.mk diff --git a/keyboards/keychron/q1/ansi_encoder/keymaps/via/keymap.c b/keyboards/keychron/q1v1/ansi_encoder/keymaps/via/keymap.c similarity index 100% rename from keyboards/keychron/q1/ansi_encoder/keymaps/via/keymap.c rename to keyboards/keychron/q1v1/ansi_encoder/keymaps/via/keymap.c diff --git a/keyboards/keychron/q1/ansi_encoder/keymaps/via/rules.mk b/keyboards/keychron/q1v1/ansi_encoder/keymaps/via/rules.mk similarity index 100% rename from keyboards/keychron/q1/ansi_encoder/keymaps/via/rules.mk rename to keyboards/keychron/q1v1/ansi_encoder/keymaps/via/rules.mk diff --git a/keyboards/keychron/q1/ansi_encoder/readme.md b/keyboards/keychron/q1v1/ansi_encoder/readme.md similarity index 100% rename from keyboards/keychron/q1/ansi_encoder/readme.md rename to keyboards/keychron/q1v1/ansi_encoder/readme.md diff --git a/keyboards/keychron/q1v1/ansi_encoder/rules.mk b/keyboards/keychron/q1v1/ansi_encoder/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/keychron/q1v1/ansi_encoder/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/keychron/q1v1/config.h b/keyboards/keychron/q1v1/config.h new file mode 100644 index 0000000000..93452f86fd --- /dev/null +++ b/keyboards/keychron/q1v1/config.h @@ -0,0 +1,37 @@ +/* Copyright 2021 @ Keychron(https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* RGB Matrix Driver Configuration */ +#define IS31FL3733_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_VCC + +/* DIP switch */ +#define DIP_SWITCH_MATRIX_GRID { {0,1} } + +/* Disable DIP switch in matrix data */ +#define MATRIX_MASKED + +/* Encoder Configuration*/ +#define ENCODER_DEFAULT_POS 0x3 + +/* Disable RGB lighting when PC is in suspend */ +#define RGB_DISABLE_WHEN_USB_SUSPENDED + +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS \ No newline at end of file diff --git a/keyboards/keychron/q1v1/info.json b/keyboards/keychron/q1v1/info.json new file mode 100644 index 0000000000..26c846927b --- /dev/null +++ b/keyboards/keychron/q1v1/info.json @@ -0,0 +1,54 @@ +{ + "keyboard_name": "Keychron Q1v1", + "manufacturer": "Keychron", + "maintainer": "lalalademaxiya1", + "bootloader": "atmel-dfu", + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "dip_switch": true, + "extrakey": true, + "lto": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"], + "rows": ["D3", "D2", "B3", "B2", "B1", "B0"] + }, + "processor": "atmega32u4", + "rgb_matrix": { + "animations": { + "band_spiral_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "jellybean_raindrops": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_simple": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "driver": "is31fl3733" + }, + "url": "https://github.com/Keychron", + "usb": { + "force_nkro": true, + "vid": "0x3434" + } +} \ No newline at end of file diff --git a/keyboards/keychron/q1/ansi_encoder/config.h b/keyboards/keychron/q1v1/iso/config.h similarity index 85% rename from keyboards/keychron/q1/ansi_encoder/config.h rename to keyboards/keychron/q1v1/iso/config.h index 28bbea9087..b6a2563986 100644 --- a/keyboards/keychron/q1/ansi_encoder/config.h +++ b/keyboards/keychron/q1v1/iso/config.h @@ -17,6 +17,7 @@ #pragma once /* RGB Matrix Configuration */ -#define DRIVER_1_LED_TOTAL 59 -#define DRIVER_2_LED_TOTAL 23 -#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT 83 + +/* Enable caps-lock LED */ +#define CAPS_LOCK_LED_INDEX 44 \ No newline at end of file diff --git a/keyboards/keychron/q1v1/iso/info.json b/keyboards/keychron/q1v1/iso/info.json new file mode 100644 index 0000000000..2bd353803e --- /dev/null +++ b/keyboards/keychron/q1v1/iso/info.json @@ -0,0 +1,192 @@ +{ + "usb": { + "pid": "0x0102", + "device_version": "1.0.0" + }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 18, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 33, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 62, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 81, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 95, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 158, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 173, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 187, "y": 0, "flags": 1}, + {"matrix": [4, 14], "x": 206, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 118, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 162, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1}, + + {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 95, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 110, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 125, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 140, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 154, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 169, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 184, "y": 26, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 26, "flags": 1}, + + {"matrix": [3, 0], "x": 6, "y": 38, "flags": 1}, + {"matrix": [3, 1], "x": 26, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 99, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 114, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 129, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 143, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 158, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 173, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 187, "y": 38, "flags": 4}, + {"matrix": [2, 13], "x": 203, "y": 32, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 38, "flags": 1}, + + {"matrix": [4, 0], "x": 2, "y": 49, "flags": 1}, + {"matrix": [4, 1], "x": 18, "y": 49, "flags": 4}, + {"matrix": [4, 2], "x": 33, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 62, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 77, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 92, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 106, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 121, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 136, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 151, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 165, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 185, "y": 49, "flags": 1}, + {"matrix": [3, 12], "x": 209, "y": 52, "flags": 1}, + + {"matrix": [5, 0], "x": 2, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 20, "y": 61, "flags": 1}, + {"matrix": [5, 2], "x": 39, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x": 94, "y": 61, "flags": 4}, + {"matrix": [5, 10], "x": 147, "y": 61, "flags": 1}, + {"matrix": [5, 11], "x": 162, "y": 61, "flags": 1}, + {"matrix": [5, 12], "x": 176, "y": 61, "flags": 1}, + {"matrix": [5, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 209, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 224, "y": 64, "flags": 1} + ] + }, + "layouts": { + "LAYOUT_iso_83": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.25, "y": 0}, + {"matrix": [0, 3], "x": 2.25, "y": 0}, + {"matrix": [0, 4], "x": 3.25, "y": 0}, + {"matrix": [0, 5], "x": 4.25, "y": 0}, + {"matrix": [0, 6], "x": 5.5, "y": 0}, + {"matrix": [0, 7], "x": 6.5, "y": 0}, + {"matrix": [0, 8], "x": 7.5, "y": 0}, + {"matrix": [0, 9], "x": 8.5, "y": 0}, + {"matrix": [0, 10], "x": 9.75, "y": 0}, + {"matrix": [0, 11], "x": 10.75, "y": 0}, + {"matrix": [0, 12], "x": 11.75, "y": 0}, + {"matrix": [0, 13], "x": 12.75, "y": 0}, + {"matrix": [4, 14], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25}, + {"matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [3, 14], "x": 15.25, "y": 3.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [3, 12], "x": 14.25, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25}, + {"matrix": [5, 11], "x": 11, "y": 5.25}, + {"matrix": [5, 12], "x": 12, "y": 5.25}, + {"matrix": [5, 13], "x": 13.25, "y": 5.5}, + {"matrix": [4, 12], "x": 14.25, "y": 5.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.5} + ] + } + } +} diff --git a/keyboards/keychron/q1/iso/iso.c b/keyboards/keychron/q1v1/iso/iso.c similarity index 80% rename from keyboards/keychron/q1/iso/iso.c rename to keyboards/keychron/q1v1/iso/iso.c index 619d89dffc..97ba2bce5b 100644 --- a/keyboards/keychron/q1/iso/iso.c +++ b/keyboards/keychron/q1v1/iso/iso.c @@ -16,6 +16,15 @@ #include "quantum.h" +const matrix_row_t matrix_mask[] = { + 0b0111111111111101, + 0b0111111111111111, + 0b0111111111111111, + 0b0111111111111111, + 0b0111111111111111, + 0b0111111111111111, +}; + #ifdef RGB_MATRIX_ENABLE const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations @@ -118,31 +127,31 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { led_config_t g_led_config = { { - // Key Matrix to LED Index + // Key Matrix to LED Index { 0, __, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 }, { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 57, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 72, 56, 58 }, - { 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 81, 71, 13 }, - { 73, 74, 75, __, __, __, 76, __, __, __, 77, 78, 79, 80, 82 } + { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 }, + { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 71, 57, 58 }, + { 59, __, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 80, 70, 13 }, + { 72, 73, 74, __, __, __, 75, __, __, __, 76, 77, 78, 79, 81 } }, { // LED Index to Physical Position {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0}, {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15}, - {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {224,26}, - {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {187,38}, {203,32}, {224,38}, - {2,49}, {18,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52}, - {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64} - }, + {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {202,26}, {224,26}, + {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {196,38}, {224,38}, + {9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52}, + {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64} + }, { // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, + 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 } }; diff --git a/keyboards/keychron/q1/iso/keymaps/default/keymap.c b/keyboards/keychron/q1v1/iso/keymaps/default/keymap.c similarity index 100% rename from keyboards/keychron/q1/iso/keymaps/default/keymap.c rename to keyboards/keychron/q1v1/iso/keymaps/default/keymap.c diff --git a/keyboards/keychron/q1/iso/keymaps/keychron/keymap.c b/keyboards/keychron/q1v1/iso/keymaps/keychron/keymap.c similarity index 100% rename from keyboards/keychron/q1/iso/keymaps/keychron/keymap.c rename to keyboards/keychron/q1v1/iso/keymaps/keychron/keymap.c diff --git a/keyboards/keychron/q1/iso/keymaps/keychron/rules.mk b/keyboards/keychron/q1v1/iso/keymaps/keychron/rules.mk similarity index 100% rename from keyboards/keychron/q1/iso/keymaps/keychron/rules.mk rename to keyboards/keychron/q1v1/iso/keymaps/keychron/rules.mk diff --git a/keyboards/keychron/q1/iso/keymaps/kubahorak/README.md b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/README.md similarity index 100% rename from keyboards/keychron/q1/iso/keymaps/kubahorak/README.md rename to keyboards/keychron/q1v1/iso/keymaps/kubahorak/README.md diff --git a/keyboards/keychron/q1/iso/keymaps/kubahorak/config.h b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/config.h similarity index 100% rename from keyboards/keychron/q1/iso/keymaps/kubahorak/config.h rename to keyboards/keychron/q1v1/iso/keymaps/kubahorak/config.h diff --git a/keyboards/keychron/q1/iso/keymaps/kubahorak/keymap.c b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/keymap.c similarity index 100% rename from keyboards/keychron/q1/iso/keymaps/kubahorak/keymap.c rename to keyboards/keychron/q1v1/iso/keymaps/kubahorak/keymap.c diff --git a/keyboards/keychron/q1/iso/keymaps/kubahorak/keymap_user.h b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/keymap_user.h similarity index 100% rename from keyboards/keychron/q1/iso/keymaps/kubahorak/keymap_user.h rename to keyboards/keychron/q1v1/iso/keymaps/kubahorak/keymap_user.h diff --git a/keyboards/keychron/q1/iso/keymaps/kubahorak/rgb_matrix_user.c b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/rgb_matrix_user.c similarity index 100% rename from keyboards/keychron/q1/iso/keymaps/kubahorak/rgb_matrix_user.c rename to keyboards/keychron/q1v1/iso/keymaps/kubahorak/rgb_matrix_user.c diff --git a/keyboards/keychron/q1/iso/keymaps/kubahorak/rgb_matrix_user.h b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/rgb_matrix_user.h similarity index 100% rename from keyboards/keychron/q1/iso/keymaps/kubahorak/rgb_matrix_user.h rename to keyboards/keychron/q1v1/iso/keymaps/kubahorak/rgb_matrix_user.h diff --git a/keyboards/keychron/q1/iso/keymaps/kubahorak/rules.mk b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/rules.mk similarity index 100% rename from keyboards/keychron/q1/iso/keymaps/kubahorak/rules.mk rename to keyboards/keychron/q1v1/iso/keymaps/kubahorak/rules.mk diff --git a/keyboards/keychron/q1/iso/keymaps/mkillewald_iso/config.h b/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/config.h similarity index 100% rename from keyboards/keychron/q1/iso/keymaps/mkillewald_iso/config.h rename to keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/config.h diff --git a/keyboards/keychron/q1/iso/keymaps/mkillewald_iso/keymap.c b/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/keymap.c similarity index 100% rename from keyboards/keychron/q1/iso/keymaps/mkillewald_iso/keymap.c rename to keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/keymap.c diff --git a/keyboards/keychron/q1/iso/keymaps/mkillewald_iso/keymap_user.h b/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/keymap_user.h similarity index 100% rename from keyboards/keychron/q1/iso/keymaps/mkillewald_iso/keymap_user.h rename to keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/keymap_user.h diff --git a/keyboards/keychron/q1/iso/keymaps/mkillewald_iso/readme.md b/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/readme.md similarity index 100% rename from keyboards/keychron/q1/iso/keymaps/mkillewald_iso/readme.md rename to keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/readme.md diff --git a/keyboards/keychron/q1/iso/keymaps/mkillewald_iso/rgb_matrix_user.c b/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/rgb_matrix_user.c similarity index 100% rename from keyboards/keychron/q1/iso/keymaps/mkillewald_iso/rgb_matrix_user.c rename to keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/rgb_matrix_user.c diff --git a/keyboards/keychron/q1/iso/keymaps/mkillewald_iso/rgb_matrix_user.h b/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/rgb_matrix_user.h similarity index 100% rename from keyboards/keychron/q1/iso/keymaps/mkillewald_iso/rgb_matrix_user.h rename to keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/rgb_matrix_user.h diff --git a/keyboards/keychron/q1/iso/keymaps/mkillewald_iso/rules.mk b/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/rules.mk similarity index 100% rename from keyboards/keychron/q1/iso/keymaps/mkillewald_iso/rules.mk rename to keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/rules.mk diff --git a/keyboards/keychron/q1/iso/keymaps/via/keymap.c b/keyboards/keychron/q1v1/iso/keymaps/via/keymap.c similarity index 100% rename from keyboards/keychron/q1/iso/keymaps/via/keymap.c rename to keyboards/keychron/q1v1/iso/keymaps/via/keymap.c diff --git a/keyboards/keychron/q1/iso/keymaps/via/rules.mk b/keyboards/keychron/q1v1/iso/keymaps/via/rules.mk similarity index 100% rename from keyboards/keychron/q1/iso/keymaps/via/rules.mk rename to keyboards/keychron/q1v1/iso/keymaps/via/rules.mk diff --git a/keyboards/keychron/q1/iso/keymaps/victorsavu3/config.h b/keyboards/keychron/q1v1/iso/keymaps/victorsavu3/config.h similarity index 100% rename from keyboards/keychron/q1/iso/keymaps/victorsavu3/config.h rename to keyboards/keychron/q1v1/iso/keymaps/victorsavu3/config.h diff --git a/keyboards/keychron/q1/iso/keymaps/victorsavu3/keymap.c b/keyboards/keychron/q1v1/iso/keymaps/victorsavu3/keymap.c similarity index 100% rename from keyboards/keychron/q1/iso/keymaps/victorsavu3/keymap.c rename to keyboards/keychron/q1v1/iso/keymaps/victorsavu3/keymap.c diff --git a/keyboards/keychron/q1/iso/keymaps/victorsavu3/readme.md b/keyboards/keychron/q1v1/iso/keymaps/victorsavu3/readme.md similarity index 100% rename from keyboards/keychron/q1/iso/keymaps/victorsavu3/readme.md rename to keyboards/keychron/q1v1/iso/keymaps/victorsavu3/readme.md diff --git a/keyboards/keychron/q1/iso/keymaps/victorsavu3/rules.mk b/keyboards/keychron/q1v1/iso/keymaps/victorsavu3/rules.mk similarity index 100% rename from keyboards/keychron/q1/iso/keymaps/victorsavu3/rules.mk rename to keyboards/keychron/q1v1/iso/keymaps/victorsavu3/rules.mk diff --git a/keyboards/keychron/q1/iso/readme.md b/keyboards/keychron/q1v1/iso/readme.md similarity index 100% rename from keyboards/keychron/q1/iso/readme.md rename to keyboards/keychron/q1v1/iso/readme.md diff --git a/keyboards/keychron/q1v1/iso/rules.mk b/keyboards/keychron/q1v1/iso/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/keychron/q1v1/iso/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/keychron/q1/iso_encoder/config.h b/keyboards/keychron/q1v1/iso_encoder/config.h similarity index 86% rename from keyboards/keychron/q1/iso_encoder/config.h rename to keyboards/keychron/q1v1/iso_encoder/config.h index 33916cf8c4..0907aa14af 100644 --- a/keyboards/keychron/q1/iso_encoder/config.h +++ b/keyboards/keychron/q1v1/iso_encoder/config.h @@ -17,9 +17,7 @@ #pragma once /* RGB Matrix Configuration */ -#define DRIVER_1_LED_TOTAL 59 -#define DRIVER_2_LED_TOTAL 24 -#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT 83 /* Enable caps-lock LED */ #define CAPS_LOCK_LED_INDEX 44 diff --git a/keyboards/keychron/q1v1/iso_encoder/info.json b/keyboards/keychron/q1v1/iso_encoder/info.json new file mode 100644 index 0000000000..780fc7ae82 --- /dev/null +++ b/keyboards/keychron/q1v1/iso_encoder/info.json @@ -0,0 +1,199 @@ +{ + "usb": { + "pid": "0x0103", + "device_version": "1.0.2" + }, + "diode_direction": "ROW2COL", + "encoder": { + "enabled": true, + "rotary": [ + {"pin_a": "E6", "pin_b": "B7"} + ] + }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 18, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 33, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 62, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 81, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 95, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 158, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 173, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 187, "y": 0, "flags": 1}, + {"matrix": [4, 14], "x": 206, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 118, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 162, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1}, + + {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 95, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 110, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 125, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 140, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 154, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 169, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 184, "y": 26, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 26, "flags": 1}, + + {"matrix": [3, 0], "x": 6, "y": 38, "flags": 1}, + {"matrix": [3, 1], "x": 26, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 99, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 114, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 129, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 143, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 158, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 173, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 187, "y": 38, "flags": 4}, + {"matrix": [2, 13], "x": 203, "y": 32, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 38, "flags": 1}, + + {"matrix": [4, 0], "x": 2, "y": 49, "flags": 1}, + {"matrix": [4, 1], "x": 18, "y": 49, "flags": 4}, + {"matrix": [4, 2], "x": 33, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 62, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 77, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 92, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 106, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 121, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 136, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 151, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 165, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 185, "y": 49, "flags": 1}, + {"matrix": [3, 12], "x": 209, "y": 52, "flags": 1}, + + {"matrix": [5, 0], "x": 2, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 20, "y": 61, "flags": 1}, + {"matrix": [5, 2], "x": 39, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x": 94, "y": 61, "flags": 4}, + {"matrix": [5, 10], "x": 147, "y": 61, "flags": 1}, + {"matrix": [5, 11], "x": 162, "y": 61, "flags": 1}, + {"matrix": [5, 12], "x": 176, "y": 61, "flags": 1}, + {"matrix": [5, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 209, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 224, "y": 64, "flags": 1} + ] + }, + "layouts": { + "LAYOUT_iso_83": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.25, "y": 0}, + {"matrix": [0, 3], "x": 2.25, "y": 0}, + {"matrix": [0, 4], "x": 3.25, "y": 0}, + {"matrix": [0, 5], "x": 4.25, "y": 0}, + {"matrix": [0, 6], "x": 5.5, "y": 0}, + {"matrix": [0, 7], "x": 6.5, "y": 0}, + {"matrix": [0, 8], "x": 7.5, "y": 0}, + {"matrix": [0, 9], "x": 8.5, "y": 0}, + {"matrix": [0, 10], "x": 9.75, "y": 0}, + {"matrix": [0, 11], "x": 10.75, "y": 0}, + {"matrix": [0, 12], "x": 11.75, "y": 0}, + {"matrix": [0, 13], "x": 12.75, "y": 0}, + {"matrix": [4, 14], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25}, + {"matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [3, 14], "x": 15.25, "y": 3.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [3, 12], "x": 14.25, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25}, + {"matrix": [5, 11], "x": 11, "y": 5.25}, + {"matrix": [5, 12], "x": 12, "y": 5.25}, + {"matrix": [5, 13], "x": 13.25, "y": 5.5}, + {"matrix": [4, 12], "x": 14.25, "y": 5.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.5} + ] + } + } +} diff --git a/keyboards/keychron/q1/ansi/ansi.c b/keyboards/keychron/q1v1/iso_encoder/iso_encoder.c similarity index 65% rename from keyboards/keychron/q1/ansi/ansi.c rename to keyboards/keychron/q1v1/iso_encoder/iso_encoder.c index ee586fef93..7e01214430 100644 --- a/keyboards/keychron/q1/ansi/ansi.c +++ b/keyboards/keychron/q1v1/iso_encoder/iso_encoder.c @@ -16,6 +16,15 @@ #include "quantum.h" +const matrix_row_t matrix_mask[] = { + 0b0111111111111101, + 0b0111111111111111, + 0b0111111111111111, + 0b0111111111111111, + 0b0111111111111111, + 0b0111111111111111, +}; + #ifdef RGB_MATRIX_ENABLE const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { @@ -70,7 +79,6 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, I_11, G_11, H_11}, {0, I_12, G_12, H_12}, {0, I_13, G_13, H_13}, - {0, I_14, G_14, H_14}, {0, I_16, G_16, H_16}, {0, L_1, J_1, K_1}, @@ -86,9 +94,11 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, L_11, J_11, K_11}, {0, L_12, J_12, K_12}, {0, L_14, J_14, K_14}, + {0, I_14, G_14, H_14}, {0, L_16, J_16, K_16}, {1, C_1, A_1, B_1}, + {1, C_2, A_2, B_2}, {1, C_3, A_3, B_3}, {1, C_4, A_4, B_4}, {1, C_5, A_5, B_5}, @@ -112,39 +122,6 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {1, F_14, D_14, E_14}, {1, F_15, D_15, E_15}, {1, F_16, D_16, E_16} - -}; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, __, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 }, - { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 71, 57, 58 }, - { 59, __, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 80, 70, 13 }, - { 72, 73, 74, __, __, __, 75, __, __, __, 76, 77, 78, 79, 81 } - }, - { - // LED Index to Physical Position - {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0}, - {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15}, - {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {202,26}, {224,26}, - {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {196,38}, {224,38}, - {9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52}, - {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } }; #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q1/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/q1v1/iso_encoder/keymaps/default/keymap.c similarity index 100% rename from keyboards/keychron/q1/iso_encoder/keymaps/default/keymap.c rename to keyboards/keychron/q1v1/iso_encoder/keymaps/default/keymap.c diff --git a/keyboards/keychron/q1/iso_encoder/keymaps/default/rules.mk b/keyboards/keychron/q1v1/iso_encoder/keymaps/default/rules.mk similarity index 100% rename from keyboards/keychron/q1/iso_encoder/keymaps/default/rules.mk rename to keyboards/keychron/q1v1/iso_encoder/keymaps/default/rules.mk diff --git a/keyboards/keychron/q1/iso_encoder/keymaps/keychron/keymap.c b/keyboards/keychron/q1v1/iso_encoder/keymaps/keychron/keymap.c similarity index 100% rename from keyboards/keychron/q1/iso_encoder/keymaps/keychron/keymap.c rename to keyboards/keychron/q1v1/iso_encoder/keymaps/keychron/keymap.c diff --git a/keyboards/keychron/q1/iso_encoder/keymaps/keychron/rules.mk b/keyboards/keychron/q1v1/iso_encoder/keymaps/keychron/rules.mk similarity index 100% rename from keyboards/keychron/q1/iso_encoder/keymaps/keychron/rules.mk rename to keyboards/keychron/q1v1/iso_encoder/keymaps/keychron/rules.mk diff --git a/keyboards/keychron/q1/iso_encoder/keymaps/via/keymap.c b/keyboards/keychron/q1v1/iso_encoder/keymaps/via/keymap.c similarity index 100% rename from keyboards/keychron/q1/iso_encoder/keymaps/via/keymap.c rename to keyboards/keychron/q1v1/iso_encoder/keymaps/via/keymap.c diff --git a/keyboards/keychron/q1/iso_encoder/keymaps/via/rules.mk b/keyboards/keychron/q1v1/iso_encoder/keymaps/via/rules.mk similarity index 100% rename from keyboards/keychron/q1/iso_encoder/keymaps/via/rules.mk rename to keyboards/keychron/q1v1/iso_encoder/keymaps/via/rules.mk diff --git a/keyboards/keychron/q1/iso_encoder/readme.md b/keyboards/keychron/q1v1/iso_encoder/readme.md similarity index 100% rename from keyboards/keychron/q1/iso_encoder/readme.md rename to keyboards/keychron/q1v1/iso_encoder/readme.md diff --git a/keyboards/keychron/q1v1/iso_encoder/rules.mk b/keyboards/keychron/q1v1/iso_encoder/rules.mk new file mode 100644 index 0000000000..6968c52335 --- /dev/null +++ b/keyboards/keychron/q1v1/iso_encoder/rules.mk @@ -0,0 +1,2 @@ +# This file intentionally left blank + diff --git a/keyboards/keychron/q1v1/q1v1.c b/keyboards/keychron/q1v1/q1v1.c new file mode 100644 index 0000000000..2ed907adb9 --- /dev/null +++ b/keyboards/keychron/q1v1/q1v1.c @@ -0,0 +1,73 @@ +/* Copyright 2021 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef DIP_SWITCH_ENABLE + +bool dip_switch_update_kb(uint8_t index, bool active) { + if (!dip_switch_update_user(index, active)) { return false;} + if (index == 0) { + default_layer_set(1UL << (active ? 2 : 0)); + } + return true; +} + +#endif // DIP_SWITCH_ENABLE + +#if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { return false; } + switch (keycode) { +#ifdef RGB_MATRIX_ENABLE + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + } break; + } + } + if (!rgb_matrix_is_enabled()) { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable(); + } + return false; +#endif + } + return true; +} + +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { return false; } + // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); + + if (host_keyboard_led_state().caps_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 255, 255, 255); + } else { + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 0, 0, 0); + } + } + return true; +} + +#endif // CAPS_LOCK_LED_INDEX \ No newline at end of file diff --git a/keyboards/keychron/q1v1/readme.md b/keyboards/keychron/q1v1/readme.md new file mode 100644 index 0000000000..af54da8195 --- /dev/null +++ b/keyboards/keychron/q1v1/readme.md @@ -0,0 +1,27 @@ +# Keychron Q1v1 + +![Keychron Q1v1](https://i.imgur.com/BbJNGLY.jpg) + +A customizable 75% keyboard. + +* Keyboard Maintainer: [Keychron](https://github.com/keychron) +* Hardware Supported: Keychron Q1v1 +* Hardware Availability: [Keychron Q1v1 QMK Custom Mechanical Keyboard](https://www.keychron.com/products/keychron-q1-qmk-custom-mechanical-keyboard) + +Make example for this keyboard (after setting up your build environment): + + make keychron/q1v1/ansi:default + make keychron/q1v1/ansi_encoder:default + make keychron/q1v1/iso:default + make keychron/q1v1/iso_encoder:default + +Flashing example for this keyboard: + + make keychron/q1v1/ansi:default:flash + make keychron/q1v1/ansi_encoder:default:flash + make keychron/q1v1/iso:default:flash + make keychron/q1v1/iso_encoder:default:flash + +**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. + +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). \ No newline at end of file From 2ba0a75c2f7a1218f9bf2a1cdb5ef0280f9f68ab Mon Sep 17 00:00:00 2001 From: skyloong <92424712+JZ-Skyloong@users.noreply.github.com> Date: Wed, 4 Oct 2023 12:01:10 +0800 Subject: [PATCH 226/496] add Skyloong/GK61_V1 keyboard (#21364) Co-authored-by: Joel Challis Co-authored-by: Sergey Vlasov Co-authored-by: Drashna Jaelre Co-authored-by: Duncan Sutherland Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Fix and Matrix Diagram (#21255) --- keyboards/skyloong/gk61/v1/config.h | 39 +++ keyboards/skyloong/gk61/v1/halconf.h | 21 ++ keyboards/skyloong/gk61/v1/info.json | 331 ++++++++++++++++++ .../skyloong/gk61/v1/keymaps/default/keymap.c | 47 +++ .../skyloong/gk61/v1/keymaps/via/keymap.c | 47 +++ .../skyloong/gk61/v1/keymaps/via/rules.mk | 1 + keyboards/skyloong/gk61/v1/mcuconf.h | 21 ++ keyboards/skyloong/gk61/v1/readme.md | 33 ++ keyboards/skyloong/gk61/v1/rules.mk | 1 + keyboards/skyloong/gk61/v1/v1.c | 119 +++++++ 10 files changed, 660 insertions(+) create mode 100644 keyboards/skyloong/gk61/v1/config.h create mode 100644 keyboards/skyloong/gk61/v1/halconf.h create mode 100644 keyboards/skyloong/gk61/v1/info.json create mode 100644 keyboards/skyloong/gk61/v1/keymaps/default/keymap.c create mode 100644 keyboards/skyloong/gk61/v1/keymaps/via/keymap.c create mode 100644 keyboards/skyloong/gk61/v1/keymaps/via/rules.mk create mode 100644 keyboards/skyloong/gk61/v1/mcuconf.h create mode 100644 keyboards/skyloong/gk61/v1/readme.md create mode 100644 keyboards/skyloong/gk61/v1/rules.mk create mode 100644 keyboards/skyloong/gk61/v1/v1.c diff --git a/keyboards/skyloong/gk61/v1/config.h b/keyboards/skyloong/gk61/v1/config.h new file mode 100644 index 0000000000..f648bf80d4 --- /dev/null +++ b/keyboards/skyloong/gk61/v1/config.h @@ -0,0 +1,39 @@ +/* Copyright 2021 JZ-Skyloong (@JZ-Skyloong) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +/* + * RGB matrix driver config (CKLED2001) + * + * This is a 7-bit address, that gets left-shifted and bit 0 + * set to 0 for write, 1 for read (as per I2C protocol) + * The address will vary depending on your wiring: + * 00 <-> GND + * 01 <-> SCL + * 10 <-> SDA + * 11 <-> VCC + * ADDR/CS represents A1:A0 of the 7-bit address. + * The result is: 0b11101(ADDR/CS) + */ +#define DRIVER_ADDR_1 0b1110100 + +#define DRIVER_COUNT 1 +#define RGB_MATRIX_LED_COUNT 64 + +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS //Enable frame effects +#define RGB_MATRIX_KEYPRESSES //Reacts to keypress +#define RGB_DISABLE_WHEN_USB_SUSPENDED //turn off effects when suspended +#define SDB C1 diff --git a/keyboards/skyloong/gk61/v1/halconf.h b/keyboards/skyloong/gk61/v1/halconf.h new file mode 100644 index 0000000000..74dddca8a5 --- /dev/null +++ b/keyboards/skyloong/gk61/v1/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2021 JZ-Skyloong (@JZ-Skyloong) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next + diff --git a/keyboards/skyloong/gk61/v1/info.json b/keyboards/skyloong/gk61/v1/info.json new file mode 100644 index 0000000000..8e30cc3bc0 --- /dev/null +++ b/keyboards/skyloong/gk61/v1/info.json @@ -0,0 +1,331 @@ +{ + "manufacturer": "JZ-Skyloong", + "keyboard_name": "GK61", + "maintainer": "JZ-Skyloong", + "bootloader": "stm32duino", + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "command": false, + "console": false, + "rgb_matrix": true + }, + "processor": "STM32F103", + "matrix_pins": { + "cols": ["B11", "C6", "C7", "B12", "B13", "B14", "B15", "B10", "B2", "B1", "D2", "B3", "B4", "B5"], + "rows": ["A15", "C10", "C11", "C12", "A3"] + }, + "rgb_matrix": { + "animations": { + "breathing": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "raindrops": true, + "jellybean_raindrops": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive_multiwide": true, + "solid_reactive_multinexus": true, + "splash": true, + "solid_splash": true + }, + "driver": "ckled2001", + "hue_steps": 20, + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 89, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 104, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 119, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 134, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 149, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 164, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 179, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 209, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 156, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 171, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 186, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x":216, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 115, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 130, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 145, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 175, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 208, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 63, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 78, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 93, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 108, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 123, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 138, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 153, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 168, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 205, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 19, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 37, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 56, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x":95, "y": 64, "flags": 4}, + {"matrix": [3, 5], "x": 107, "y": 64, "flags": 4}, + {"matrix": [4, 8], "x": 130, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 149, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 175, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 198, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 220, "y": 64, "flags": 4} + ], + "max_brightness": 200, + "sat_steps": 20, + "speed_steps": 20, + "val_steps": 20 + }, + "url": "https://github.com/JZ-Skyloong", + "usb": { + "vid": "0x1EA7", + "device_version": "1.0.0", + "pid": "0x6061", + "max_power": 380, + "force_nkro": true + }, + "community_layouts": ["60_ansi"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [4, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 4], "x": 3.75, "y": 4, "w": 2.6}, + {"matrix": [4, 5], "x": 6.35, "y": 4, "w": 0.7}, + {"matrix": [3, 5], "x": 7.15, "y": 4, "w": 1.5}, + {"matrix": [4, 8], "x": 8.75, "y": 4, "w": 1.25}, + {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [4, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_split_space": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [4, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 4], "x": 3.75, "y": 4, "w": 2.5}, + {"matrix": [3, 5], "x": 6.25, "y": 4, "w": 2.5}, + {"matrix": [4, 8], "x": 8.75, "y": 4, "w": 1.25}, + {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + } + } + +} + diff --git a/keyboards/skyloong/gk61/v1/keymaps/default/keymap.c b/keyboards/skyloong/gk61/v1/keymaps/default/keymap.c new file mode 100644 index 0000000000..4ddb35f6f4 --- /dev/null +++ b/keyboards/skyloong/gk61/v1/keymaps/default/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2021 JZ-Skyloong (@JZ-Skyloong) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN, +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT_all( + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM , KC_DOT, KC_SLASH, KC_RSFT, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_APP, KC_RCTL, MO(1) + ), + /* Fn+ */ + [_FN] = LAYOUT_all( + KC_ESC, 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_PSCR, + RGB_TOG, RGB_VAD, RGB_VAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLD, KC_VOLU, KC_MUTE, + RGB_MOD, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPRV, KC_MNXT, KC_MPLY, + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_UP, KC_RSFT, + KC_CALC, KC_MAIL, KC_NO, KC_SPC, KC_SPC, KC_SPC, KC_LEFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO + ), + +}; + + diff --git a/keyboards/skyloong/gk61/v1/keymaps/via/keymap.c b/keyboards/skyloong/gk61/v1/keymaps/via/keymap.c new file mode 100644 index 0000000000..4ddb35f6f4 --- /dev/null +++ b/keyboards/skyloong/gk61/v1/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2021 JZ-Skyloong (@JZ-Skyloong) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN, +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT_all( + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM , KC_DOT, KC_SLASH, KC_RSFT, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_APP, KC_RCTL, MO(1) + ), + /* Fn+ */ + [_FN] = LAYOUT_all( + KC_ESC, 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_PSCR, + RGB_TOG, RGB_VAD, RGB_VAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLD, KC_VOLU, KC_MUTE, + RGB_MOD, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPRV, KC_MNXT, KC_MPLY, + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_UP, KC_RSFT, + KC_CALC, KC_MAIL, KC_NO, KC_SPC, KC_SPC, KC_SPC, KC_LEFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO + ), + +}; + + diff --git a/keyboards/skyloong/gk61/v1/keymaps/via/rules.mk b/keyboards/skyloong/gk61/v1/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/skyloong/gk61/v1/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/skyloong/gk61/v1/mcuconf.h b/keyboards/skyloong/gk61/v1/mcuconf.h new file mode 100644 index 0000000000..92905e0b11 --- /dev/null +++ b/keyboards/skyloong/gk61/v1/mcuconf.h @@ -0,0 +1,21 @@ +/* Copyright 2021 JZ-Skyloong (@JZ-Skyloong) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/skyloong/gk61/v1/readme.md b/keyboards/skyloong/gk61/v1/readme.md new file mode 100644 index 0000000000..95917ad957 --- /dev/null +++ b/keyboards/skyloong/gk61/v1/readme.md @@ -0,0 +1,33 @@ +# GK61 + +![GK61](https://i.imgur.com/hEufouph.jpg) + +## The PCB features: +* QMK & VIA compatibility +* RGB Matrix backlight + + +The following is the QMK Firmware for the Destop 60% keylayout - designed in Dongguan Jizhi Electronic Technology Co., Ltd +* Keyboard Maintainer: [JZ-Skyloong](https://github.com/JZ-Skyloong) +* Hardware Supported: DestopPCB for Skyloong keylayout 60%, STM32F103C8T6 +* Hardware Availability: http://www.skyloong.com.cn + +Make example for this keyboard (after setting up your build environment): + + make skyloong/gk61/v1:default + make skyloong/gk61/v1:via + +Flashing example for this keyboard: + + make skyloong/gk61/v1:default:flash + make skyloong/gk61/v1:via:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/skyloong/gk61/v1/rules.mk b/keyboards/skyloong/gk61/v1/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/skyloong/gk61/v1/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/skyloong/gk61/v1/v1.c b/keyboards/skyloong/gk61/v1/v1.c new file mode 100644 index 0000000000..5fed5701b2 --- /dev/null +++ b/keyboards/skyloong/gk61/v1/v1.c @@ -0,0 +1,119 @@ +/* Copyright 2021 JZ-Skyloong (@JZ-Skyloong) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE + +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to CKLED2001 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C_1, B_1, A_1}, + {0, C_2, B_2, A_2}, + {0, C_3, B_3, A_3}, + {0, C_4, B_4, A_4}, + {0, C_5, B_5, A_5}, + {0, C_6, B_6, A_6}, + {0, C_7, B_7, A_7}, + {0, C_8, B_8, A_8}, + {0, C_9, B_9, A_9}, + {0, C_10, B_10, A_10}, + {0, C_11, B_11, A_11}, + {0, C_12, B_12, A_12}, + {0, C_13, B_13, A_13}, + {0, C_14, B_14, A_14}, + + + {0, F_1, E_1, D_1}, + {0, F_2, E_2, D_2}, + {0, F_3, E_3, D_3}, + {0, F_4, E_4, D_4}, + {0, F_5, E_5, D_5}, + {0, F_6, E_6, D_6}, + {0, F_7, E_7, D_7}, + {0, F_8, E_8, D_8}, + {0, F_9, E_9, D_9}, + {0, F_10, E_10, D_10}, + {0, F_11, E_11, D_11}, + {0, F_12, E_12, D_12}, + {0, F_13, E_13, D_13}, + {0, F_14, E_14, D_14}, + + + {0, I_1, H_1, G_1}, + {0, I_2, H_2, G_2}, + {0, I_3, H_3, G_3}, + {0, I_4, H_4, G_4}, + {0, I_5, H_5, G_5}, + {0, I_6, H_6, G_6}, + {0, I_7, H_7, G_7}, + {0, I_8, H_8, G_8}, + {0, I_9, H_9, G_9}, + {0, I_10, H_10, G_10}, + {0, I_11, H_11, G_11}, + {0, I_12, H_12, G_12}, + {0, I_13, H_13, G_13}, + + + + {0, L_1, K_1, J_1}, + {0, L_2, K_2, J_2}, + {0, L_3, K_3, J_3}, + {0, L_4, K_4, J_4}, + {0, L_5, K_5, J_5}, + {0, L_6, K_6, J_6}, + {0, L_7, K_7, J_7}, + {0, L_8, K_8, J_8}, + {0, L_9, K_9, J_9}, + {0, L_10, K_10, J_10}, + {0, L_11, K_11, J_11}, + {0, L_13, K_13, J_13}, + + {0, L_15, K_15, J_15}, + {0, L_16, K_16, J_16}, + {0, I_15, H_15, G_15}, + {0, I_16, H_16, G_16}, + {0, F_15, E_15, D_15}, + {0, F_16, E_16, D_16}, + {0, C_15, B_15, A_15}, + {0, C_16, B_16, A_16}, + {0, I_14, H_14, G_14}, + {0, L_12, K_12, J_12}, + {0, L_14, K_14, J_14}, + + +}; +#endif // RGB_MATRIX_ENABLE + +void suspend_power_down_kb() { + writePinLow(SDB); + + suspend_power_down_user(); +} + +void suspend_wakeup_init_kb() { + writePinHigh(SDB); + + suspend_wakeup_init_user(); +} + +void board_init(void) { + setPinOutput(SDB); + writePinHigh(SDB); +} From 5485d5023eae4653805d1acb481cf438ff8a80e0 Mon Sep 17 00:00:00 2001 From: yuezp <49514776+LXF-YZP@users.noreply.github.com> Date: Wed, 4 Oct 2023 12:02:42 +0800 Subject: [PATCH 227/496] Add the Split67 keyboard PCB (#22107) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: “yuezp” <“yuezpchn@126.com”> --- keyboards/split67/config.h | 26 +++++ keyboards/split67/info.json | 111 +++++++++++++++++++++ keyboards/split67/keymaps/default/keymap.c | 33 ++++++ keyboards/split67/keymaps/via/keymap.c | 60 +++++++++++ keyboards/split67/keymaps/via/rules.mk | 1 + keyboards/split67/readme.md | 26 +++++ keyboards/split67/rules.mk | 1 + 7 files changed, 258 insertions(+) create mode 100644 keyboards/split67/config.h create mode 100644 keyboards/split67/info.json create mode 100644 keyboards/split67/keymaps/default/keymap.c create mode 100644 keyboards/split67/keymaps/via/keymap.c create mode 100644 keyboards/split67/keymaps/via/rules.mk create mode 100644 keyboards/split67/readme.md create mode 100644 keyboards/split67/rules.mk diff --git a/keyboards/split67/config.h b/keyboards/split67/config.h new file mode 100644 index 0000000000..9d50d9bdd1 --- /dev/null +++ b/keyboards/split67/config.h @@ -0,0 +1,26 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + + + diff --git a/keyboards/split67/info.json b/keyboards/split67/info.json new file mode 100644 index 0000000000..f24eea4ce0 --- /dev/null +++ b/keyboards/split67/info.json @@ -0,0 +1,111 @@ +{ + "manufacturer": "yuezp", + "keyboard_name": "split_67", + "maintainer": "qmk", + "build": { + "lto": true + }, + "development_board": "promicro", + "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 3 + }, + "features": { + "bootmagic": true, + "extrakey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["F6", "F7", "B1", "B3", "B2", "B6", null, null], + "rows": ["D4", "C6", "D7", "E6", "B4"] + }, + "split": { + "enabled": true, + "matrix_pins": { + "right": { + "cols": ["F5", "F6", "F7", "B1", "B3", "B2", "B6", "B5"], + "rows": ["D4", "C6", "D7", "E6", "B4"] + } + }, + "soft_serial_pin": "D0" + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0xBBBC", + "vid": "0xCCCD" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [4, 5], "x": 6, "y": 0}, + {"matrix": [5, 0], "x": 9, "y": 0}, + {"matrix": [5, 1], "x": 10, "y": 0}, + {"matrix": [5, 2], "x": 11, "y": 0}, + {"matrix": [5, 3], "x": 12, "y": 0}, + {"matrix": [5, 4], "x": 13, "y": 0}, + {"matrix": [5, 5], "x": 14, "y": 0}, + {"matrix": [5, 6], "x": 15, "y": 0, "w": 2}, + {"matrix": [5, 7], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [6, 0], "x": 8.5, "y": 1}, + {"matrix": [6, 1], "x": 9.5, "y": 1}, + {"matrix": [6, 2], "x": 10.5, "y": 1}, + {"matrix": [6, 3], "x": 11.5, "y": 1}, + {"matrix": [6, 4], "x": 12.5, "y": 1}, + {"matrix": [6, 5], "x": 13.5, "y": 1}, + {"matrix": [6, 6], "x": 14.5, "y": 1}, + {"matrix": [6, 7], "x": 15.5, "y": 1, "w": 1.5}, + {"matrix": [7, 7], "x": 17.25, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [7, 0], "x": 8.75, "y": 2}, + {"matrix": [7, 1], "x": 9.75, "y": 2}, + {"matrix": [7, 2], "x": 10.75, "y": 2}, + {"matrix": [7, 3], "x": 11.75, "y": 2}, + {"matrix": [7, 4], "x": 12.75, "y": 2}, + {"matrix": [7, 5], "x": 13.75, "y": 2}, + {"matrix": [7, 6], "x": 14.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [8, 0], "x": 9.25, "y": 3}, + {"matrix": [8, 1], "x": 10.25, "y": 3}, + {"matrix": [8, 2], "x": 11.25, "y": 3}, + {"matrix": [8, 3], "x": 12.25, "y": 3}, + {"matrix": [8, 4], "x": 13.25, "y": 3}, + {"matrix": [8, 5], "x": 14.25, "y": 3, "w": 2}, + {"matrix": [8, 6], "x": 16.25, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 3], "x": 3.75, "y": 4, "w": 2.25}, + {"matrix": [4, 4], "x": 6, "y": 4}, + {"matrix": [9, 0], "x": 9, "y": 4, "w": 2.75}, + {"matrix": [9, 1], "x": 11.75, "y": 4, "w": 1.25}, + {"matrix": [9, 2], "x": 13, "y": 4, "w": 1.25}, + {"matrix": [9, 3], "x": 15.25, "y": 4}, + {"matrix": [9, 4], "x": 16.25, "y": 4}, + {"matrix": [9, 5], "x": 17.25, "y": 4} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/split67/keymaps/default/keymap.c b/keyboards/split67/keymaps/default/keymap.c new file mode 100644 index 0000000000..4e896f4aa5 --- /dev/null +++ b/keyboards/split67/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT( + KC_ESC, 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_BSPC, KC_INS, + 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_DEL, + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RCTL, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), + +[1] = LAYOUT( + KC_TRNS, 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_BSPC, KC_INS, + 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_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_LGUI, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/split67/keymaps/via/keymap.c b/keyboards/split67/keymaps/via/keymap.c new file mode 100644 index 0000000000..cb14ee19bf --- /dev/null +++ b/keyboards/split67/keymaps/via/keymap.c @@ -0,0 +1,60 @@ +/* Copyright 2021 JasonRen(biu) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Keymap (Base Layer) Default Layer +* .-------------------------------------. .---------------------------------------------------. +* |Esc | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | Backsp| Insert | +* |-------------------------------------| |---------------------------------------------------| +* |Tab | Q | W | E | R | T | | | Y | U | I | O | P | [ | ] | \ | +* |-------------------------------------| |---------------------------------------------------| +* |Ctrl | A | S | D | F | G | | | H | J | K | L | ; | ' | Return| Delete | +* |-------------------------------------| |---------------------------------------------------| +* |Shift | Z | X | C | V | B | | | N | M | , | . | / | Shift | Up | | +* |-------------------------------------| |---------------------------------------------------| +* |Ctrl | Win| Alt| Space| Fn | | | |Space| Ctrl| Alt| Lef| Dow| Rig | | | +* .-------------------------------------. .---------------------------------------------------. +*/ +[0] = LAYOUT( + KC_ESC, 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_BSPC, KC_INS, + 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_DEL, + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RCTL, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), + + +/* Keymap Fn Layer +* .----------------------------------------. .---------------------------------------------------. +* | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | | | +* |----------------------------------------| |---------------------------------------------------| +* | | | | | | | | | | | | | | | | | +* |----------------------------------------| |---------------------------------------------------| +* | | | | | | | | | | | | | | | | | +* |----------------------------------------| |---------------------------------------------------| +* | | | | | | | | | | | | | | | | | +* |----------------------------------------| |---------------------------------------------------| +* | | | | | | | | | | | | | | | | | +* .----------------------------------------. .---------------------------------------------------. +*/ +[1] = LAYOUT( + KC_TRNS, 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_BSPC, KC_INS, + 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_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_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/split67/keymaps/via/rules.mk b/keyboards/split67/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/split67/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/split67/readme.md b/keyboards/split67/readme.md new file mode 100644 index 0000000000..e42fa9f9ff --- /dev/null +++ b/keyboards/split67/readme.md @@ -0,0 +1,26 @@ +# split67 + +![split67](https://i.imgur.com/2eC03Smh.jpg) + +A 65% keys split keyboard. + +* Keyboard Maintainer: https://github.com/LXF-YZP +* Hardware Supported: Pro Micro, (ATmega32u4) + +Make example for this keyboard (after setting up your build environment): + + make split67:default + +Flashing example for this keyboard: + + make split67:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/split67/rules.mk b/keyboards/split67/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/split67/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file From c0f16be50fec33cdb30386ac512efb900f3f7470 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 4 Oct 2023 20:10:05 +1100 Subject: [PATCH 228/496] Rename CKLED2001 driver to SNLED27351 (#22071) --- builddefs/common_features.mk | 18 +- docs/reference_info_json.md | 4 +- drivers/led/ckled2001-simple.c | 220 ---------- drivers/led/ckled2001-simple.h | 370 ----------------- drivers/led/ckled2001.c | 235 ----------- drivers/led/ckled2001.h | 372 ----------------- drivers/led/snled27351-simple.c | 220 ++++++++++ drivers/led/snled27351-simple.h | 376 +++++++++++++++++ drivers/led/snled27351.c | 235 +++++++++++ drivers/led/snled27351.h | 378 ++++++++++++++++++ keyboards/akko/5108/5108.c | 4 +- keyboards/akko/5108/config.h | 6 +- keyboards/akko/5108/info.json | 2 +- keyboards/akko/acr87/acr87.c | 4 +- keyboards/akko/acr87/config.h | 8 +- keyboards/akko/acr87/info.json | 2 +- keyboards/akko/top40/config.h | 6 +- keyboards/akko/top40/info.json | 2 +- keyboards/akko/top40/top40.c | 4 +- keyboards/chosfox/cf81/cf81.c | 4 +- keyboards/chosfox/cf81/config.h | 6 +- keyboards/chosfox/cf81/info.json | 2 +- keyboards/inland/kb83/config.h | 6 +- keyboards/inland/kb83/info.json | 2 +- keyboards/inland/kb83/kb83.c | 4 +- keyboards/inland/mk47/config.h | 5 +- keyboards/inland/mk47/info.json | 2 +- keyboards/inland/mk47/mk47.c | 4 +- keyboards/keychron/c1_pro/ansi/rgb/config.h | 10 +- keyboards/keychron/c1_pro/ansi/rgb/info.json | 2 +- keyboards/keychron/c1_pro/ansi/rgb/rgb.c | 4 +- keyboards/keychron/c1_pro/ansi/white/config.h | 8 +- .../keychron/c1_pro/ansi/white/info.json | 2 +- keyboards/keychron/c1_pro/ansi/white/white.c | 4 +- keyboards/keychron/c2_pro/ansi/rgb/config.h | 8 +- keyboards/keychron/c2_pro/ansi/rgb/info.json | 2 +- keyboards/keychron/c2_pro/ansi/rgb/rgb.c | 4 +- keyboards/keychron/c2_pro/ansi/white/config.h | 6 +- .../keychron/c2_pro/ansi/white/info.json | 2 +- keyboards/keychron/c2_pro/ansi/white/white.c | 4 +- keyboards/keychron/q0/config.h | 2 +- keyboards/keychron/q0/rev_0130/config.h | 4 +- keyboards/keychron/q0/rev_0130/info.json | 2 +- keyboards/keychron/q0/rev_0130/rev_0130.c | 4 +- keyboards/keychron/q0/rev_0131/config.h | 6 +- keyboards/keychron/q0/rev_0131/info.json | 2 +- keyboards/keychron/q0/rev_0131/rev_0131.c | 4 +- .../keychron/q10/ansi_encoder/ansi_encoder.c | 4 +- keyboards/keychron/q10/ansi_encoder/info.json | 2 +- keyboards/keychron/q10/config.h | 10 +- keyboards/keychron/q10/iso_encoder/info.json | 2 +- .../keychron/q10/iso_encoder/iso_encoder.c | 4 +- .../keychron/q11/ansi_encoder/ansi_encoder.c | 4 +- keyboards/keychron/q11/config.h | 6 +- keyboards/keychron/q11/info.json | 2 +- .../keychron/q11/iso_encoder/iso_encoder.c | 4 +- .../keychron/q12/ansi_encoder/ansi_encoder.c | 4 +- keyboards/keychron/q12/ansi_encoder/info.json | 2 +- keyboards/keychron/q12/config.h | 8 +- keyboards/keychron/q12/iso_encoder/info.json | 2 +- .../keychron/q12/iso_encoder/iso_encoder.c | 4 +- keyboards/keychron/q2/ansi/ansi.c | 4 +- .../keychron/q2/ansi_encoder/ansi_encoder.c | 4 +- keyboards/keychron/q2/config.h | 8 +- keyboards/keychron/q2/info.json | 2 +- keyboards/keychron/q2/iso/iso.c | 4 +- .../keychron/q2/iso_encoder/iso_encoder.c | 4 +- keyboards/keychron/q2/jis/config.h | 2 +- keyboards/keychron/q2/jis/jis.c | 4 +- keyboards/keychron/q2/jis_encoder/config.h | 2 +- .../keychron/q2/jis_encoder/jis_encoder.c | 4 +- keyboards/keychron/q3/ansi/ansi.c | 4 +- keyboards/keychron/q3/ansi/config.h | 2 +- .../keychron/q3/ansi_encoder/ansi_encoder.c | 4 +- keyboards/keychron/q3/ansi_encoder/config.h | 2 +- keyboards/keychron/q3/config.h | 8 +- keyboards/keychron/q3/info.json | 2 +- keyboards/keychron/q3/iso/config.h | 2 +- keyboards/keychron/q3/iso/iso.c | 4 +- keyboards/keychron/q3/iso_encoder/config.h | 2 +- .../keychron/q3/iso_encoder/iso_encoder.c | 4 +- keyboards/keychron/q3/jis/config.h | 2 +- keyboards/keychron/q3/jis/jis.c | 4 +- keyboards/keychron/q3/jis_encoder/config.h | 2 +- .../keychron/q3/jis_encoder/jis_encoder.c | 4 +- keyboards/keychron/q4/ansi_v1/ansi_v1.c | 4 +- keyboards/keychron/q4/ansi_v1/config.h | 10 +- keyboards/keychron/q4/ansi_v1/info.json | 2 +- keyboards/keychron/q4/ansi_v2/ansi_v2.c | 4 +- keyboards/keychron/q4/ansi_v2/config.h | 6 +- keyboards/keychron/q4/ansi_v2/info.json | 2 +- keyboards/keychron/q4/iso/config.h | 6 +- keyboards/keychron/q4/iso/info.json | 2 +- keyboards/keychron/q4/iso/iso.c | 4 +- keyboards/keychron/q5/ansi/ansi.c | 4 +- keyboards/keychron/q5/ansi/info.json | 2 +- .../keychron/q5/ansi_encoder/ansi_encoder.c | 4 +- keyboards/keychron/q5/ansi_encoder/info.json | 2 +- keyboards/keychron/q5/config.h | 8 +- keyboards/keychron/q5/iso/info.json | 2 +- keyboards/keychron/q5/iso/iso.c | 4 +- keyboards/keychron/q5/iso_encoder/info.json | 2 +- .../keychron/q5/iso_encoder/iso_encoder.c | 4 +- keyboards/keychron/q6/ansi/ansi.c | 4 +- keyboards/keychron/q6/ansi/info.json | 2 +- .../keychron/q6/ansi_encoder/ansi_encoder.c | 4 +- keyboards/keychron/q6/ansi_encoder/info.json | 2 +- keyboards/keychron/q6/config.h | 8 +- keyboards/keychron/q6/iso/info.json | 2 +- keyboards/keychron/q6/iso/iso.c | 4 +- keyboards/keychron/q6/iso_encoder/info.json | 2 +- .../keychron/q6/iso_encoder/iso_encoder.c | 4 +- keyboards/keychron/q60/ansi/ansi.c | 4 +- keyboards/keychron/q60/ansi/info.json | 2 +- keyboards/keychron/q60/config.h | 6 +- .../keychron/q65/ansi_encoder/ansi_encoder.c | 4 +- keyboards/keychron/q65/ansi_encoder/info.json | 2 +- keyboards/keychron/q65/config.h | 10 +- keyboards/keychron/q7/ansi/ansi.c | 4 +- keyboards/keychron/q7/ansi/info.json | 2 +- keyboards/keychron/q7/config.h | 10 +- keyboards/keychron/q7/iso/info.json | 2 +- keyboards/keychron/q7/iso/iso.c | 4 +- keyboards/keychron/q8/ansi/ansi.c | 4 +- keyboards/keychron/q8/ansi/info.json | 2 +- .../keychron/q8/ansi_encoder/ansi_encoder.c | 4 +- keyboards/keychron/q8/ansi_encoder/info.json | 2 +- keyboards/keychron/q8/config.h | 10 +- keyboards/keychron/q8/iso/info.json | 2 +- keyboards/keychron/q8/iso/iso.c | 4 +- keyboards/keychron/q8/iso_encoder/info.json | 2 +- .../keychron/q8/iso_encoder/iso_encoder.c | 4 +- keyboards/keychron/q9/ansi/ansi.c | 4 +- keyboards/keychron/q9/ansi/info.json | 2 +- .../keychron/q9/ansi_encoder/ansi_encoder.c | 4 +- keyboards/keychron/q9/ansi_encoder/info.json | 2 +- keyboards/keychron/q9/config.h | 6 +- keyboards/keychron/q9/iso/info.json | 2 +- keyboards/keychron/q9/iso/iso.c | 4 +- keyboards/keychron/q9/iso_encoder/info.json | 2 +- .../keychron/q9/iso_encoder/iso_encoder.c | 4 +- .../q9_plus/ansi_encoder/ansi_encoder.c | 4 +- keyboards/keychron/q9_plus/config.h | 6 +- keyboards/keychron/q9_plus/info.json | 2 +- keyboards/keychron/s1/ansi/rgb/config.h | 10 +- keyboards/keychron/s1/ansi/rgb/info.json | 2 +- keyboards/keychron/s1/ansi/rgb/rgb.c | 4 +- keyboards/keychron/s1/ansi/white/config.h | 8 +- keyboards/keychron/s1/ansi/white/info.json | 2 +- keyboards/keychron/s1/ansi/white/white.c | 4 +- keyboards/keychron/v1/ansi/ansi.c | 4 +- keyboards/keychron/v1/ansi/config.h | 2 +- keyboards/keychron/v1/ansi/info.json | 2 +- .../keychron/v1/ansi_encoder/ansi_encoder.c | 4 +- keyboards/keychron/v1/ansi_encoder/config.h | 2 +- keyboards/keychron/v1/ansi_encoder/info.json | 2 +- keyboards/keychron/v1/config.h | 8 +- keyboards/keychron/v1/iso/config.h | 2 +- keyboards/keychron/v1/iso/info.json | 2 +- keyboards/keychron/v1/iso/iso.c | 4 +- keyboards/keychron/v1/iso_encoder/config.h | 2 +- keyboards/keychron/v1/iso_encoder/info.json | 2 +- .../keychron/v1/iso_encoder/iso_encoder.c | 4 +- keyboards/keychron/v1/jis/config.h | 2 +- keyboards/keychron/v1/jis/info.json | 2 +- keyboards/keychron/v1/jis/jis.c | 4 +- keyboards/keychron/v1/jis_encoder/config.h | 2 +- keyboards/keychron/v1/jis_encoder/info.json | 2 +- .../keychron/v1/jis_encoder/jis_encoder.c | 4 +- .../keychron/v10/ansi_encoder/ansi_encoder.c | 4 +- keyboards/keychron/v10/ansi_encoder/info.json | 2 +- keyboards/keychron/v10/config.h | 10 +- keyboards/keychron/v10/iso_encoder/info.json | 2 +- .../keychron/v10/iso_encoder/iso_encoder.c | 4 +- keyboards/keychron/v2/ansi/ansi.c | 4 +- keyboards/keychron/v2/ansi/config.h | 2 +- keyboards/keychron/v2/ansi/info.json | 2 +- .../keychron/v2/ansi_encoder/ansi_encoder.c | 4 +- keyboards/keychron/v2/ansi_encoder/info.json | 2 +- keyboards/keychron/v2/config.h | 8 +- keyboards/keychron/v2/iso/info.json | 2 +- keyboards/keychron/v2/iso/iso.c | 4 +- keyboards/keychron/v2/iso_encoder/info.json | 2 +- .../keychron/v2/iso_encoder/iso_encoder.c | 4 +- keyboards/keychron/v2/jis/config.h | 2 +- keyboards/keychron/v2/jis/info.json | 2 +- keyboards/keychron/v2/jis/jis.c | 4 +- keyboards/keychron/v2/jis_encoder/config.h | 2 +- keyboards/keychron/v2/jis_encoder/info.json | 2 +- .../keychron/v2/jis_encoder/jis_encoder.c | 4 +- keyboards/keychron/v3/ansi/ansi.c | 4 +- keyboards/keychron/v3/ansi/config.h | 2 +- keyboards/keychron/v3/ansi/info.json | 2 +- .../keychron/v3/ansi_encoder/ansi_encoder.c | 4 +- keyboards/keychron/v3/ansi_encoder/info.json | 2 +- keyboards/keychron/v3/config.h | 8 +- keyboards/keychron/v3/iso/info.json | 2 +- keyboards/keychron/v3/iso/iso.c | 4 +- keyboards/keychron/v3/iso_encoder/info.json | 2 +- .../keychron/v3/iso_encoder/iso_encoder.c | 4 +- keyboards/keychron/v3/jis/config.h | 2 +- keyboards/keychron/v3/jis/info.json | 2 +- keyboards/keychron/v3/jis/jis.c | 4 +- keyboards/keychron/v3/jis_encoder/config.h | 2 +- keyboards/keychron/v3/jis_encoder/info.json | 2 +- .../keychron/v3/jis_encoder/jis_encoder.c | 4 +- keyboards/keychron/v4/ansi/ansi.c | 4 +- keyboards/keychron/v4/ansi/info.json | 2 +- keyboards/keychron/v4/config.h | 6 +- keyboards/keychron/v4/iso/info.json | 2 +- keyboards/keychron/v4/iso/iso.c | 4 +- keyboards/keychron/v5/ansi/ansi.c | 4 +- keyboards/keychron/v5/ansi/info.json | 2 +- .../keychron/v5/ansi_encoder/ansi_encoder.c | 4 +- keyboards/keychron/v5/ansi_encoder/info.json | 2 +- keyboards/keychron/v5/config.h | 8 +- keyboards/keychron/v5/iso/info.json | 2 +- keyboards/keychron/v5/iso/iso.c | 4 +- keyboards/keychron/v5/iso_encoder/info.json | 2 +- .../keychron/v5/iso_encoder/iso_encoder.c | 4 +- keyboards/keychron/v6/ansi/ansi.c | 4 +- keyboards/keychron/v6/ansi/info.json | 2 +- .../keychron/v6/ansi_encoder/ansi_encoder.c | 4 +- keyboards/keychron/v6/ansi_encoder/info.json | 2 +- keyboards/keychron/v6/config.h | 8 +- keyboards/keychron/v6/iso/info.json | 2 +- keyboards/keychron/v6/iso/iso.c | 4 +- keyboards/keychron/v6/iso_encoder/info.json | 2 +- .../keychron/v6/iso_encoder/iso_encoder.c | 4 +- keyboards/keychron/v7/ansi/ansi.c | 4 +- keyboards/keychron/v7/ansi/info.json | 2 +- keyboards/keychron/v7/config.h | 10 +- keyboards/keychron/v7/iso/info.json | 2 +- keyboards/keychron/v7/iso/iso.c | 4 +- keyboards/keychron/v8/ansi/ansi.c | 4 +- keyboards/keychron/v8/ansi/info.json | 2 +- .../keychron/v8/ansi_encoder/ansi_encoder.c | 4 +- keyboards/keychron/v8/ansi_encoder/info.json | 2 +- keyboards/keychron/v8/config.h | 10 +- keyboards/keychron/v8/iso/info.json | 2 +- keyboards/keychron/v8/iso/iso.c | 4 +- keyboards/keychron/v8/iso_encoder/info.json | 2 +- .../keychron/v8/iso_encoder/iso_encoder.c | 4 +- keyboards/monsgeek/m1/config.h | 6 +- keyboards/monsgeek/m1/info.json | 2 +- keyboards/monsgeek/m1/m1.c | 4 +- keyboards/monsgeek/m5/config.h | 6 +- keyboards/monsgeek/m5/info.json | 2 +- keyboards/monsgeek/m5/m5.c | 4 +- keyboards/monsgeek/m6/config.h | 6 +- keyboards/monsgeek/m6/info.json | 2 +- keyboards/monsgeek/m6/m6.c | 4 +- keyboards/skyloong/gk61/v1/config.h | 17 +- keyboards/skyloong/gk61/v1/info.json | 2 +- keyboards/skyloong/gk61/v1/v1.c | 4 +- quantum/led_matrix/led_matrix.h | 4 +- quantum/led_matrix/led_matrix_drivers.c | 40 +- quantum/rgb_matrix/rgb_matrix.h | 4 +- quantum/rgb_matrix/rgb_matrix_drivers.c | 40 +- 259 files changed, 1726 insertions(+), 1720 deletions(-) delete mode 100644 drivers/led/ckled2001-simple.c delete mode 100644 drivers/led/ckled2001-simple.h delete mode 100644 drivers/led/ckled2001.c delete mode 100644 drivers/led/ckled2001.h create mode 100644 drivers/led/snled27351-simple.c create mode 100644 drivers/led/snled27351-simple.h create mode 100644 drivers/led/snled27351.c create mode 100644 drivers/led/snled27351.h diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 5ac392c6a9..d08b3751fc 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -352,9 +352,12 @@ endif ifeq ($(strip $(LED_MATRIX_DRIVER)), aw20216) LED_MATRIX_DRIVER := aw20216s endif +ifeq ($(strip $(LED_MATRIX_DRIVER)), ckled2001) +LED_MATRIX_DRIVER := snled27351 +endif LED_MATRIX_ENABLE ?= no -VALID_LED_MATRIX_TYPES := is31fl3218 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a ckled2001 custom +VALID_LED_MATRIX_TYPES := is31fl3218 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 custom ifeq ($(strip $(LED_MATRIX_ENABLE)), yes) ifeq ($(filter $(LED_MATRIX_DRIVER),$(VALID_LED_MATRIX_TYPES)),) @@ -446,10 +449,10 @@ endif QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(LED_MATRIX_DRIVER)), ckled2001) + ifeq ($(strip $(LED_MATRIX_DRIVER)), snled27351) OPT_DEFS += -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led - SRC += ckled2001-simple.c + SRC += snled27351-simple.c QUANTUM_LIB_SRC += i2c_master.c endif @@ -459,10 +462,13 @@ endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), aw20216) RGB_MATRIX_DRIVER := aw20216s endif +ifeq ($(strip $(RGB_MATRIX_DRIVER)), ckled2001) +RGB_MATRIX_DRIVER := snled27351 +endif RGB_MATRIX_ENABLE ?= no -VALID_RGB_MATRIX_TYPES := aw20216s is31fl3218 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a ckled2001 ws2812 custom +VALID_RGB_MATRIX_TYPES := aw20216s is31fl3218 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 ws2812 custom ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) ifeq ($(filter $(RGB_MATRIX_DRIVER),$(VALID_RGB_MATRIX_TYPES)),) $(call CATASTROPHIC_ERROR,Invalid RGB_MATRIX_DRIVER,RGB_MATRIX_DRIVER="$(RGB_MATRIX_DRIVER)" is not a valid matrix type) @@ -561,10 +567,10 @@ endif QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(RGB_MATRIX_DRIVER)), ckled2001) + ifeq ($(strip $(RGB_MATRIX_DRIVER)), snled27351) OPT_DEFS += -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led - SRC += ckled2001.c + SRC += snled27351.c QUANTUM_LIB_SRC += i2c_master.c endif diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 7e5f11b7a7..f31d3c4a2f 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -329,7 +329,7 @@ Configures the [LED Matrix](feature_led_matrix.md) feature. * The centroid (geometric center) of the LEDs. Used for certain effects. * Default: `[112, 32]` * `driver` (Required) - * The driver to use. Must be one of `ckled2001`, `custom`, `is31fl3218`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`. + * The driver to use. Must be one of `custom`, `is31fl3218`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `snled27351`. * `layout` (Required) * List of LED configuration dictionaries. Each dictionary contains: * `flags` (Required) @@ -542,7 +542,7 @@ Configures the [RGB Matrix](feature_rgb_matrix.md) feature. * The centroid (geometric center) of the LEDs. Used for certain effects. * Default: `[112, 32]` * `driver` (Required) - * The driver to use. Must be one of `aw20216s`, `ckled2001`, `custom`, `is31fl3218`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `ws2812`. + * The driver to use. Must be one of `aw20216s`, `custom`, `is31fl3218`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `snled27351`, `ws2812`. * `hue_steps` * The number of hue adjustment steps. * Default: `8` diff --git a/drivers/led/ckled2001-simple.c b/drivers/led/ckled2001-simple.c deleted file mode 100644 index 936b915af8..0000000000 --- a/drivers/led/ckled2001-simple.c +++ /dev/null @@ -1,220 +0,0 @@ -/* Copyright 2021 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "ckled2001-simple.h" -#include "i2c_master.h" - -#ifndef CKLED2001_I2C_TIMEOUT -# define CKLED2001_I2C_TIMEOUT 100 -#endif - -#ifndef CKLED2001_I2C_PERSISTENCE -# define CKLED2001_I2C_PERSISTENCE 0 -#endif - -#ifndef CKLED2001_PHASE_CHANNEL -# define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_12CHANNEL -#endif - -#ifndef CKLED2001_CURRENT_TUNE -# define CKLED2001_CURRENT_TUNE \ - { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } -#endif - -// Transfer buffer for TWITransmitData() -uint8_t g_twi_transfer_buffer[20]; - -// These buffers match the CKLED2001 PWM registers. -// The control buffers match the PG0 LED On/Off registers. -// Storing them like this is optimal for I2C transfers to the registers. -// We could optimize this and take out the unused registers from these -// buffers and the transfers in ckled2001_write_pwm_buffer() but it's -// probably not worth the extra complexity. -uint8_t g_pwm_buffer[CKLED2001_DRIVER_COUNT][192]; -bool g_pwm_buffer_update_required[CKLED2001_DRIVER_COUNT] = {false}; - -uint8_t g_led_control_registers[CKLED2001_DRIVER_COUNT][24] = {0}; -bool g_led_control_registers_update_required[CKLED2001_DRIVER_COUNT] = {false}; - -bool ckled2001_write_register(uint8_t addr, uint8_t reg, uint8_t data) { - // If the transaction fails function returns false. - g_twi_transfer_buffer[0] = reg; - g_twi_transfer_buffer[1] = data; - -#if CKLED2001_I2C_PERSISTENCE > 0 - for (uint8_t i = 0; i < CKLED2001_I2C_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, CKLED2001_I2C_TIMEOUT) != 0) { - return false; - } - } -#else - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, CKLED2001_I2C_TIMEOUT) != 0) { - return false; - } -#endif - return true; -} - -bool ckled2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { - // Assumes PG1 is already selected. - // If any of the transactions fails function returns false. - // Transmit PWM registers in 12 transfers of 16 bytes. - // g_twi_transfer_buffer[] is 20 bytes - - // Iterate over the pwm_buffer contents at 16 byte intervals. - for (int i = 0; i < 192; i += 16) { - g_twi_transfer_buffer[0] = i; - // Copy the data from i to i+15. - // Device will auto-increment register for data after the first byte - // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer. - for (int j = 0; j < 16; j++) { - g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j]; - } - -#if CKLED2001_I2C_PERSISTENCE > 0 - for (uint8_t i = 0; i < CKLED2001_I2C_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, CKLED2001_I2C_TIMEOUT) != 0) { - return false; - } - } -#else - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, CKLED2001_I2C_TIMEOUT) != 0) { - return false; - } -#endif - } - return true; -} - -void ckled2001_init(uint8_t addr) { - // Select to function page - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_FUNCTION_PAGE); - // Setting LED driver to shutdown mode - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURATION, CKLED2001_MSKSW_SHUT_DOWN_MODE); - // Setting internal channel pulldown/pullup - ckled2001_write_register(addr, CKLED2001_REG_PDU, CKLED2001_MSKSET_CA_CB_CHANNEL); - // Select number of scan phase - ckled2001_write_register(addr, CKLED2001_REG_SCAN_PHASE, CKLED2001_PHASE_CHANNEL); - // Setting PWM Delay Phase - ckled2001_write_register(addr, CKLED2001_REG_SLEW_RATE_CONTROL_MODE1, CKLED2001_MSKPWM_DELAY_PHASE_ENABLE); - // Setting Driving/Sinking Channel Slew Rate - ckled2001_write_register(addr, CKLED2001_REG_SLEW_RATE_CONTROL_MODE2, CKLED2001_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_ENABLE); - // Setting Iref - ckled2001_write_register(addr, CKLED2001_REG_SOFTWARE_SLEEP, CKLED2001_MSKSLEEP_DISABLE); - // Set LED CONTROL PAGE (Page 0) - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_CONTROL_PAGE); - for (int i = 0; i < CKLED2001_LED_CONTROL_ON_OFF_LENGTH; i++) { - ckled2001_write_register(addr, i, 0x00); - } - - // Set PWM PAGE (Page 1) - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_PWM_PAGE); - for (int i = 0; i < CKLED2001_LED_CURRENT_TUNE_LENGTH; i++) { - ckled2001_write_register(addr, i, 0x00); - } - - // Set CURRENT PAGE (Page 4) - uint8_t current_tune_reg_list[CKLED2001_LED_CURRENT_TUNE_LENGTH] = CKLED2001_CURRENT_TUNE; - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_CURRENT_TUNE_PAGE); - for (int i = 0; i < CKLED2001_LED_CURRENT_TUNE_LENGTH; i++) { - ckled2001_write_register(addr, i, current_tune_reg_list[i]); - } - - // Enable LEDs ON/OFF - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_CONTROL_PAGE); - for (int i = 0; i < CKLED2001_LED_CONTROL_ON_OFF_LENGTH; i++) { - ckled2001_write_register(addr, i, 0xFF); - } - - // Select to function page - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_FUNCTION_PAGE); - // Setting LED driver to normal mode - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURATION, CKLED2001_MSKSW_NORMAL_MODE); -} - -void ckled2001_set_value(int index, uint8_t value) { - ckled2001_led led; - if (index >= 0 && index < LED_MATRIX_LED_COUNT) { - memcpy_P(&led, (&g_ckled2001_leds[index]), sizeof(led)); - - if (g_pwm_buffer[led.driver][led.v] == value) { - return; - } - g_pwm_buffer[led.driver][led.v] = value; - g_pwm_buffer_update_required[led.driver] = true; - } -} - -void ckled2001_set_value_all(uint8_t value) { - for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { - ckled2001_set_value(i, value); - } -} - -void ckled2001_set_led_control_register(uint8_t index, bool value) { - ckled2001_led led; - memcpy_P(&led, (&g_ckled2001_leds[index]), sizeof(led)); - - uint8_t control_register = led.v / 8; - uint8_t bit_value = led.v % 8; - - if (value) { - g_led_control_registers[led.driver][control_register] |= (1 << bit_value); - } else { - g_led_control_registers[led.driver][control_register] &= ~(1 << bit_value); - } - - g_led_control_registers_update_required[led.driver] = true; -} - -void ckled2001_update_pwm_buffers(uint8_t addr, uint8_t index) { - if (g_pwm_buffer_update_required[index]) { - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_PWM_PAGE); - - // If any of the transactions fail we risk writing dirty PG0, - // refresh page 0 just in case. - if (!ckled2001_write_pwm_buffer(addr, g_pwm_buffer[index])) { - g_led_control_registers_update_required[index] = true; - } - } - g_pwm_buffer_update_required[index] = false; -} - -void ckled2001_update_led_control_registers(uint8_t addr, uint8_t index) { - if (g_led_control_registers_update_required[index]) { - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_CONTROL_PAGE); - for (int i = 0; i < 24; i++) { - ckled2001_write_register(addr, i, g_led_control_registers[index][i]); - } - } - g_led_control_registers_update_required[index] = false; -} - -void ckled2001_sw_return_normal(uint8_t addr) { - // Select to function page - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_FUNCTION_PAGE); - // Setting LED driver to normal mode - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURATION, CKLED2001_MSKSW_NORMAL_MODE); -} - -void ckled2001_sw_shutdown(uint8_t addr) { - // Select to function page - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_FUNCTION_PAGE); - // Setting LED driver to shutdown mode - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURATION, CKLED2001_MSKSW_SHUT_DOWN_MODE); - // Write SW Sleep Register - ckled2001_write_register(addr, CKLED2001_REG_SOFTWARE_SLEEP, CKLED2001_MSKSLEEP_ENABLE); -} diff --git a/drivers/led/ckled2001-simple.h b/drivers/led/ckled2001-simple.h deleted file mode 100644 index 1080da34c2..0000000000 --- a/drivers/led/ckled2001-simple.h +++ /dev/null @@ -1,370 +0,0 @@ -/* Copyright 2021 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include -#include -#include "progmem.h" - -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef DRIVER_COUNT -# define CKLED2001_DRIVER_COUNT DRIVER_COUNT -#endif -#ifdef CKLED2001_TIMEOUT -# define CKLED2001_I2C_TIMEOUT CKLED2001_TIMEOUT -#endif -#ifdef CKLED2001_PERSISTENCE -# define CKLED2001_I2C_PERSISTENCE CKLED2001_PERSISTENCE -#endif -#ifdef PHASE_CHANNEL -# define CKLED2001_PHASE_CHANNEL PHASE_CHANNEL -#endif - -#define MSKPHASE_12CHANNEL CKLED2001_MSKPHASE_12CHANNEL -#define MSKPHASE_11CHANNEL CKLED2001_MSKPHASE_11CHANNEL -#define MSKPHASE_10CHANNEL CKLED2001_MSKPHASE_10CHANNEL -#define MSKPHASE_9CHANNEL CKLED2001_MSKPHASE_9CHANNEL -#define MSKPHASE_8CHANNEL CKLED2001_MSKPHASE_8CHANNEL -#define MSKPHASE_7CHANNEL CKLED2001_MSKPHASE_7CHANNEL -#define MSKPHASE_6CHANNEL CKLED2001_MSKPHASE_6CHANNEL -#define MSKPHASE_5CHANNEL CKLED2001_MSKPHASE_5CHANNEL -#define MSKPHASE_4CHANNEL CKLED2001_MSKPHASE_4CHANNEL -#define MSKPHASE_3CHANNEL CKLED2001_MSKPHASE_3CHANNEL -#define MSKPHASE_2CHANNEL CKLED2001_MSKPHASE_2CHANNEL -#define MSKPHASE_1CHANNEL CKLED2001_MSKPHASE_1CHANNEL -// ======== - -#define CKLED2001_I2C_ADDRESS_GND 0x74 -#define CKLED2001_I2C_ADDRESS_SCL 0x75 -#define CKLED2001_I2C_ADDRESS_SDA 0x76 -#define CKLED2001_I2C_ADDRESS_VDDIO 0x77 - -typedef struct ckled2001_led { - uint8_t driver : 2; - uint8_t v; -} __attribute__((packed)) ckled2001_led; - -extern const ckled2001_led PROGMEM g_ckled2001_leds[LED_MATRIX_LED_COUNT]; - -void ckled2001_init(uint8_t addr); -bool ckled2001_write_register(uint8_t addr, uint8_t reg, uint8_t data); -bool ckled2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); - -void ckled2001_set_value(int index, uint8_t value); -void ckled2001_set_value_all(uint8_t value); - -void ckled2001_set_led_control_register(uint8_t index, bool value); - -// This should not be called from an interrupt -// (eg. from a timer interrupt). -// Call this while idle (in between matrix scans). -// If the buffer is dirty, it will update the driver with the buffer. -void ckled2001_update_pwm_buffers(uint8_t addr, uint8_t index); -void ckled2001_update_led_control_registers(uint8_t addr, uint8_t index); - -void ckled2001_sw_return_normal(uint8_t addr); -void ckled2001_sw_shutdown(uint8_t addr); - -// Registers Page Define -#define CKLED2001_REG_CONFIGURE_CMD_PAGE 0xFD -#define CKLED2001_LED_CONTROL_PAGE 0x00 -#define CKLED2001_LED_PWM_PAGE 0x01 -#define CKLED2001_FUNCTION_PAGE 0x03 -#define CKLED2001_CURRENT_TUNE_PAGE 0x04 - -// Function Register: address 0x00 -#define CKLED2001_REG_CONFIGURATION 0x00 -#define CKLED2001_MSKSW_SHUT_DOWN_MODE (0x0 << 0) -#define CKLED2001_MSKSW_NORMAL_MODE (0x1 << 0) - -#define CKLED2001_REG_DRIVER_ID 0x11 -#define CKLED2001_DRIVER_ID 0x8A - -#define CKLED2001_REG_PDU 0x13 -#define CKLED2001_MSKSET_CA_CB_CHANNEL 0xAA -#define CKLED2001_MSKCLR_CA_CB_CHANNEL 0x00 - -#define CKLED2001_REG_SCAN_PHASE 0x14 -#define CKLED2001_MSKPHASE_12CHANNEL 0x00 -#define CKLED2001_MSKPHASE_11CHANNEL 0x01 -#define CKLED2001_MSKPHASE_10CHANNEL 0x02 -#define CKLED2001_MSKPHASE_9CHANNEL 0x03 -#define CKLED2001_MSKPHASE_8CHANNEL 0x04 -#define CKLED2001_MSKPHASE_7CHANNEL 0x05 -#define CKLED2001_MSKPHASE_6CHANNEL 0x06 -#define CKLED2001_MSKPHASE_5CHANNEL 0x07 -#define CKLED2001_MSKPHASE_4CHANNEL 0x08 -#define CKLED2001_MSKPHASE_3CHANNEL 0x09 -#define CKLED2001_MSKPHASE_2CHANNEL 0x0A -#define CKLED2001_MSKPHASE_1CHANNEL 0x0B - -#define CKLED2001_REG_SLEW_RATE_CONTROL_MODE1 0x15 -#define CKLED2001_MSKPWM_DELAY_PHASE_ENABLE 0x04 -#define CKLED2001_MSKPWM_DELAY_PHASE_DISABLE 0x00 - -#define CKLED2001_REG_SLEW_RATE_CONTROL_MODE2 0x16 -#define CKLED2001_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_ENABLE 0xC0 -#define CKLED2001_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_DISABLE 0x00 - -#define CKLED2001_REG_OPEN_SHORT_ENABLE 0x17 -#define CKLED2001_MSKOPEN_DETECTION_ENABLE (0x01 << 7) -#define CKLED2001_MSKOPEN_DETECTION_DISABLE (0x00) - -#define CKLED2001_MSKSHORT_DETECTION_ENABLE (0x01 << 6) -#define CKLED2001_MSKSHORT_DETECTION_DISABLE (0x00) - -#define CKLED2001_REG_OPEN_SHORT_DUTY 0x18 -#define CKLED2001_REG_OPEN_SHORT_FLAG 0x19 - -#define CKLED2001_MSKOPEN_DETECTION_INTERRUPT_ENABLE (0x01 << 7) -#define CKLED2001_MSKOPEN_DETECTION_INTERRUPT_DISABLE (0x00) - -#define CKLED2001_MSKSHORT_DETECTION_INTERRUPT_ENABLE (0x01 << 6) -#define CKLED2001_MSKSHORT_DETECTION_INTERRUPT_DISABLE (0x00) - -#define CKLED2001_REG_SOFTWARE_SLEEP 0x1A -#define CKLED2001_MSKSLEEP_ENABLE 0x02 -#define CKLED2001_MSKSLEEP_DISABLE 0x00 - -// LED Control Registers -#define CKLED2001_LED_CONTROL_ON_OFF_FIRST_ADDR 0x0 -#define CKLED2001_LED_CONTROL_ON_OFF_LAST_ADDR 0x17 -#define CKLED2001_LED_CONTROL_ON_OFF_LENGTH ((CKLED2001_LED_CONTROL_ON_OFF_LAST_ADDR - CKLED2001_LED_CONTROL_ON_OFF_FIRST_ADDR) + 1) - -#define CKLED2001_LED_CONTROL_OPEN_FIRST_ADDR 0x18 -#define CKLED2001_LED_CONTROL_OPEN_LAST_ADDR 0x2F -#define CKLED2001_LED_CONTROL_OPEN_LENGTH ((CKLED2001_LED_CONTROL_OPEN_LAST_ADDR - CKLED2001_LED_CONTROL_OPEN_FIRST_ADDR) + 1) - -#define CKLED2001_LED_CONTROL_SHORT_FIRST_ADDR 0x30 -#define CKLED2001_LED_CONTROL_SHORT_LAST_ADDR 0x47 -#define CKLED2001_LED_CONTROL_SHORT_LENGTH ((CKLED2001_LED_CONTROL_SHORT_LAST_ADDR - CKLED2001_LED_CONTROL_SHORT_FIRST_ADDR) + 1) - -#define CKLED2001_LED_CONTROL_PAGE_LENGTH 0x48 - -// LED Control Registers -#define CKLED2001_LED_PWM_FIRST_ADDR 0x00 -#define CKLED2001_LED_PWM_LAST_ADDR 0xBF -#define CKLED2001_LED_PWM_LENGTH 0xC0 - -// Current Tune Registers -#define CKLED2001_LED_CURRENT_TUNE_FIRST_ADDR 0x00 -#define CKLED2001_LED_CURRENT_TUNE_LAST_ADDR 0x0B -#define CKLED2001_LED_CURRENT_TUNE_LENGTH 0x0C - -#define A_1 0x00 -#define A_2 0x01 -#define A_3 0x02 -#define A_4 0x03 -#define A_5 0x04 -#define A_6 0x05 -#define A_7 0x06 -#define A_8 0x07 -#define A_9 0x08 -#define A_10 0x09 -#define A_11 0x0A -#define A_12 0x0B -#define A_13 0x0C -#define A_14 0x0D -#define A_15 0x0E -#define A_16 0x0F - -#define B_1 0x10 -#define B_2 0x11 -#define B_3 0x12 -#define B_4 0x13 -#define B_5 0x14 -#define B_6 0x15 -#define B_7 0x16 -#define B_8 0x17 -#define B_9 0x18 -#define B_10 0x19 -#define B_11 0x1A -#define B_12 0x1B -#define B_13 0x1C -#define B_14 0x1D -#define B_15 0x1E -#define B_16 0x1F - -#define C_1 0x20 -#define C_2 0x21 -#define C_3 0x22 -#define C_4 0x23 -#define C_5 0x24 -#define C_6 0x25 -#define C_7 0x26 -#define C_8 0x27 -#define C_9 0x28 -#define C_10 0x29 -#define C_11 0x2A -#define C_12 0x2B -#define C_13 0x2C -#define C_14 0x2D -#define C_15 0x2E -#define C_16 0x2F - -#define D_1 0x30 -#define D_2 0x31 -#define D_3 0x32 -#define D_4 0x33 -#define D_5 0x34 -#define D_6 0x35 -#define D_7 0x36 -#define D_8 0x37 -#define D_9 0x38 -#define D_10 0x39 -#define D_11 0x3A -#define D_12 0x3B -#define D_13 0x3C -#define D_14 0x3D -#define D_15 0x3E -#define D_16 0x3F - -#define E_1 0x40 -#define E_2 0x41 -#define E_3 0x42 -#define E_4 0x43 -#define E_5 0x44 -#define E_6 0x45 -#define E_7 0x46 -#define E_8 0x47 -#define E_9 0x48 -#define E_10 0x49 -#define E_11 0x4A -#define E_12 0x4B -#define E_13 0x4C -#define E_14 0x4D -#define E_15 0x4E -#define E_16 0x4F - -#define F_1 0x50 -#define F_2 0x51 -#define F_3 0x52 -#define F_4 0x53 -#define F_5 0x54 -#define F_6 0x55 -#define F_7 0x56 -#define F_8 0x57 -#define F_9 0x58 -#define F_10 0x59 -#define F_11 0x5A -#define F_12 0x5B -#define F_13 0x5C -#define F_14 0x5D -#define F_15 0x5E -#define F_16 0x5F - -#define G_1 0x60 -#define G_2 0x61 -#define G_3 0x62 -#define G_4 0x63 -#define G_5 0x64 -#define G_6 0x65 -#define G_7 0x66 -#define G_8 0x67 -#define G_9 0x68 -#define G_10 0x69 -#define G_11 0x6A -#define G_12 0x6B -#define G_13 0x6C -#define G_14 0x6D -#define G_15 0x6E -#define G_16 0x6F - -#define H_1 0x70 -#define H_2 0x71 -#define H_3 0x72 -#define H_4 0x73 -#define H_5 0x74 -#define H_6 0x75 -#define H_7 0x76 -#define H_8 0x77 -#define H_9 0x78 -#define H_10 0x79 -#define H_11 0x7A -#define H_12 0x7B -#define H_13 0x7C -#define H_14 0x7D -#define H_15 0x7E -#define H_16 0x7F - -#define I_1 0x80 -#define I_2 0x81 -#define I_3 0x82 -#define I_4 0x83 -#define I_5 0x84 -#define I_6 0x85 -#define I_7 0x86 -#define I_8 0x87 -#define I_9 0x88 -#define I_10 0x89 -#define I_11 0x8A -#define I_12 0x8B -#define I_13 0x8C -#define I_14 0x8D -#define I_15 0x8E -#define I_16 0x8F - -#define J_1 0x90 -#define J_2 0x91 -#define J_3 0x92 -#define J_4 0x93 -#define J_5 0x94 -#define J_6 0x95 -#define J_7 0x96 -#define J_8 0x97 -#define J_9 0x98 -#define J_10 0x99 -#define J_11 0x9A -#define J_12 0x9B -#define J_13 0x9C -#define J_14 0x9D -#define J_15 0x9E -#define J_16 0x9F - -#define K_1 0xA0 -#define K_2 0xA1 -#define K_3 0xA2 -#define K_4 0xA3 -#define K_5 0xA4 -#define K_6 0xA5 -#define K_7 0xA6 -#define K_8 0xA7 -#define K_9 0xA8 -#define K_10 0xA9 -#define K_11 0xAA -#define K_12 0xAB -#define K_13 0xAC -#define K_14 0xAD -#define K_15 0xAE -#define K_16 0xAF - -#define L_1 0xB0 -#define L_2 0xB1 -#define L_3 0xB2 -#define L_4 0xB3 -#define L_5 0xB4 -#define L_6 0xB5 -#define L_7 0xB6 -#define L_8 0xB7 -#define L_9 0xB8 -#define L_10 0xB9 -#define L_11 0xBA -#define L_12 0xBB -#define L_13 0xBC -#define L_14 0xBD -#define L_15 0xBE -#define L_16 0xBF diff --git a/drivers/led/ckled2001.c b/drivers/led/ckled2001.c deleted file mode 100644 index 8340aae823..0000000000 --- a/drivers/led/ckled2001.c +++ /dev/null @@ -1,235 +0,0 @@ -/* Copyright 2021 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "ckled2001.h" -#include "i2c_master.h" - -#ifndef CKLED2001_I2C_TIMEOUT -# define CKLED2001_I2C_TIMEOUT 100 -#endif - -#ifndef CKLED2001_I2C_PERSISTENCE -# define CKLED2001_I2C_PERSISTENCE 0 -#endif - -#ifndef CKLED2001_PHASE_CHANNEL -# define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_12CHANNEL -#endif - -#ifndef CKLED2001_CURRENT_TUNE -# define CKLED2001_CURRENT_TUNE \ - { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } -#endif - -// Transfer buffer for TWITransmitData() -uint8_t g_twi_transfer_buffer[65]; - -// These buffers match the CKLED2001 PWM registers. -// The control buffers match the PG0 LED On/Off registers. -// Storing them like this is optimal for I2C transfers to the registers. -// We could optimize this and take out the unused registers from these -// buffers and the transfers in ckled2001_write_pwm_buffer() but it's -// probably not worth the extra complexity. -uint8_t g_pwm_buffer[CKLED2001_DRIVER_COUNT][192]; -bool g_pwm_buffer_update_required[CKLED2001_DRIVER_COUNT] = {false}; - -uint8_t g_led_control_registers[CKLED2001_DRIVER_COUNT][24] = {0}; -bool g_led_control_registers_update_required[CKLED2001_DRIVER_COUNT] = {false}; - -bool ckled2001_write_register(uint8_t addr, uint8_t reg, uint8_t data) { - // If the transaction fails function returns false. - g_twi_transfer_buffer[0] = reg; - g_twi_transfer_buffer[1] = data; - -#if CKLED2001_I2C_PERSISTENCE > 0 - for (uint8_t i = 0; i < CKLED2001_I2C_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, CKLED2001_I2C_TIMEOUT) != 0) { - return false; - } - } -#else - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, CKLED2001_I2C_TIMEOUT) != 0) { - return false; - } -#endif - return true; -} - -bool ckled2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { - // Assumes PG1 is already selected. - // If any of the transactions fails function returns false. - // Transmit PWM registers in 3 transfers of 64 bytes. - - // Iterate over the pwm_buffer contents at 64 byte intervals. - for (uint8_t i = 0; i < 192; i += 64) { - g_twi_transfer_buffer[0] = i; - // Copy the data from i to i+63. - // Device will auto-increment register for data after the first byte - // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer. - for (uint8_t j = 0; j < 64; j++) { - g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j]; - } - -#if CKLED2001_I2C_PERSISTENCE > 0 - for (uint8_t i = 0; i < CKLED2001_I2C_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 65, CKLED2001_I2C_TIMEOUT) != 0) { - return false; - } - } -#else - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 65, CKLED2001_I2C_TIMEOUT) != 0) { - return false; - } -#endif - } - return true; -} - -void ckled2001_init(uint8_t addr) { - // Select to function page - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_FUNCTION_PAGE); - // Setting LED driver to shutdown mode - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURATION, CKLED2001_MSKSW_SHUT_DOWN_MODE); - // Setting internal channel pulldown/pullup - ckled2001_write_register(addr, CKLED2001_REG_PDU, CKLED2001_MSKSET_CA_CB_CHANNEL); - // Select number of scan phase - ckled2001_write_register(addr, CKLED2001_REG_SCAN_PHASE, CKLED2001_PHASE_CHANNEL); - // Setting PWM Delay Phase - ckled2001_write_register(addr, CKLED2001_REG_SLEW_RATE_CONTROL_MODE1, CKLED2001_MSKPWM_DELAY_PHASE_ENABLE); - // Setting Driving/Sinking Channel Slew Rate - ckled2001_write_register(addr, CKLED2001_REG_SLEW_RATE_CONTROL_MODE2, CKLED2001_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_ENABLE); - // Setting Iref - ckled2001_write_register(addr, CKLED2001_REG_SOFTWARE_SLEEP, CKLED2001_MSKSLEEP_DISABLE); - // Set LED CONTROL PAGE (Page 0) - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_CONTROL_PAGE); - for (int i = 0; i < CKLED2001_LED_CONTROL_ON_OFF_LENGTH; i++) { - ckled2001_write_register(addr, i, 0x00); - } - - // Set PWM PAGE (Page 1) - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_PWM_PAGE); - for (int i = 0; i < CKLED2001_LED_CURRENT_TUNE_LENGTH; i++) { - ckled2001_write_register(addr, i, 0x00); - } - - // Set CURRENT PAGE (Page 4) - uint8_t current_tune_reg_list[CKLED2001_LED_CURRENT_TUNE_LENGTH] = CKLED2001_CURRENT_TUNE; - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_CURRENT_TUNE_PAGE); - for (int i = 0; i < CKLED2001_LED_CURRENT_TUNE_LENGTH; i++) { - ckled2001_write_register(addr, i, current_tune_reg_list[i]); - } - - // Enable LEDs ON/OFF - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_CONTROL_PAGE); - for (int i = 0; i < CKLED2001_LED_CONTROL_ON_OFF_LENGTH; i++) { - ckled2001_write_register(addr, i, 0xFF); - } - - // Select to function page - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_FUNCTION_PAGE); - // Setting LED driver to normal mode - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURATION, CKLED2001_MSKSW_NORMAL_MODE); -} - -void ckled2001_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - ckled2001_led led; - if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { - memcpy_P(&led, (&g_ckled2001_leds[index]), sizeof(led)); - - if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { - return; - } - g_pwm_buffer[led.driver][led.r] = red; - g_pwm_buffer[led.driver][led.g] = green; - g_pwm_buffer[led.driver][led.b] = blue; - g_pwm_buffer_update_required[led.driver] = true; - } -} - -void ckled2001_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { - ckled2001_set_color(i, red, green, blue); - } -} - -void ckled2001_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { - ckled2001_led led; - memcpy_P(&led, (&g_ckled2001_leds[index]), sizeof(led)); - - uint8_t control_register_r = led.r / 8; - uint8_t control_register_g = led.g / 8; - uint8_t control_register_b = led.b / 8; - uint8_t bit_r = led.r % 8; - uint8_t bit_g = led.g % 8; - uint8_t bit_b = led.b % 8; - - if (red) { - g_led_control_registers[led.driver][control_register_r] |= (1 << bit_r); - } else { - g_led_control_registers[led.driver][control_register_r] &= ~(1 << bit_r); - } - if (green) { - g_led_control_registers[led.driver][control_register_g] |= (1 << bit_g); - } else { - g_led_control_registers[led.driver][control_register_g] &= ~(1 << bit_g); - } - if (blue) { - g_led_control_registers[led.driver][control_register_b] |= (1 << bit_b); - } else { - g_led_control_registers[led.driver][control_register_b] &= ~(1 << bit_b); - } - - g_led_control_registers_update_required[led.driver] = true; -} - -void ckled2001_update_pwm_buffers(uint8_t addr, uint8_t index) { - if (g_pwm_buffer_update_required[index]) { - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_PWM_PAGE); - - // If any of the transactions fail we risk writing dirty PG0, - // refresh page 0 just in case. - if (!ckled2001_write_pwm_buffer(addr, g_pwm_buffer[index])) { - g_led_control_registers_update_required[index] = true; - } - } - g_pwm_buffer_update_required[index] = false; -} - -void ckled2001_update_led_control_registers(uint8_t addr, uint8_t index) { - if (g_led_control_registers_update_required[index]) { - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_CONTROL_PAGE); - for (int i = 0; i < 24; i++) { - ckled2001_write_register(addr, i, g_led_control_registers[index][i]); - } - } - g_led_control_registers_update_required[index] = false; -} - -void ckled2001_sw_return_normal(uint8_t addr) { - // Select to function page - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_FUNCTION_PAGE); - // Setting LED driver to normal mode - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURATION, CKLED2001_MSKSW_NORMAL_MODE); -} - -void ckled2001_sw_shutdown(uint8_t addr) { - // Select to function page - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_FUNCTION_PAGE); - // Setting LED driver to shutdown mode - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURATION, CKLED2001_MSKSW_SHUT_DOWN_MODE); - // Write SW Sleep Register - ckled2001_write_register(addr, CKLED2001_REG_SOFTWARE_SLEEP, CKLED2001_MSKSLEEP_ENABLE); -} diff --git a/drivers/led/ckled2001.h b/drivers/led/ckled2001.h deleted file mode 100644 index 257efbb6a1..0000000000 --- a/drivers/led/ckled2001.h +++ /dev/null @@ -1,372 +0,0 @@ -/* Copyright 2021 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include -#include -#include "progmem.h" - -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef DRIVER_COUNT -# define CKLED2001_DRIVER_COUNT DRIVER_COUNT -#endif -#ifdef CKLED2001_TIMEOUT -# define CKLED2001_I2C_TIMEOUT CKLED2001_TIMEOUT -#endif -#ifdef CKLED2001_PERSISTENCE -# define CKLED2001_I2C_PERSISTENCE CKLED2001_PERSISTENCE -#endif -#ifdef PHASE_CHANNEL -# define CKLED2001_PHASE_CHANNEL PHASE_CHANNEL -#endif - -#define MSKPHASE_12CHANNEL CKLED2001_MSKPHASE_12CHANNEL -#define MSKPHASE_11CHANNEL CKLED2001_MSKPHASE_11CHANNEL -#define MSKPHASE_10CHANNEL CKLED2001_MSKPHASE_10CHANNEL -#define MSKPHASE_9CHANNEL CKLED2001_MSKPHASE_9CHANNEL -#define MSKPHASE_8CHANNEL CKLED2001_MSKPHASE_8CHANNEL -#define MSKPHASE_7CHANNEL CKLED2001_MSKPHASE_7CHANNEL -#define MSKPHASE_6CHANNEL CKLED2001_MSKPHASE_6CHANNEL -#define MSKPHASE_5CHANNEL CKLED2001_MSKPHASE_5CHANNEL -#define MSKPHASE_4CHANNEL CKLED2001_MSKPHASE_4CHANNEL -#define MSKPHASE_3CHANNEL CKLED2001_MSKPHASE_3CHANNEL -#define MSKPHASE_2CHANNEL CKLED2001_MSKPHASE_2CHANNEL -#define MSKPHASE_1CHANNEL CKLED2001_MSKPHASE_1CHANNEL -// ======== - -#define CKLED2001_I2C_ADDRESS_GND 0x74 -#define CKLED2001_I2C_ADDRESS_SCL 0x75 -#define CKLED2001_I2C_ADDRESS_SDA 0x76 -#define CKLED2001_I2C_ADDRESS_VDDIO 0x77 - -typedef struct ckled2001_led { - uint8_t driver : 2; - uint8_t r; - uint8_t g; - uint8_t b; -} __attribute__((packed)) ckled2001_led; - -extern const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT]; - -void ckled2001_init(uint8_t addr); -bool ckled2001_write_register(uint8_t addr, uint8_t reg, uint8_t data); -bool ckled2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); - -void ckled2001_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); -void ckled2001_set_color_all(uint8_t red, uint8_t green, uint8_t blue); - -void ckled2001_set_led_control_register(uint8_t index, bool red, bool green, bool blue); - -// This should not be called from an interrupt -// (eg. from a timer interrupt). -// Call this while idle (in between matrix scans). -// If the buffer is dirty, it will update the driver with the buffer. -void ckled2001_update_pwm_buffers(uint8_t addr, uint8_t index); -void ckled2001_update_led_control_registers(uint8_t addr, uint8_t index); - -void ckled2001_sw_return_normal(uint8_t addr); -void ckled2001_sw_shutdown(uint8_t addr); - -// Registers Page Define -#define CKLED2001_REG_CONFIGURE_CMD_PAGE 0xFD -#define CKLED2001_LED_CONTROL_PAGE 0x00 -#define CKLED2001_LED_PWM_PAGE 0x01 -#define CKLED2001_FUNCTION_PAGE 0x03 -#define CKLED2001_CURRENT_TUNE_PAGE 0x04 - -// Function Register: address 0x00 -#define CKLED2001_REG_CONFIGURATION 0x00 -#define CKLED2001_MSKSW_SHUT_DOWN_MODE (0x0 << 0) -#define CKLED2001_MSKSW_NORMAL_MODE (0x1 << 0) - -#define CKLED2001_REG_DRIVER_ID 0x11 -#define CKLED2001_DRIVER_ID 0x8A - -#define CKLED2001_REG_PDU 0x13 -#define CKLED2001_MSKSET_CA_CB_CHANNEL 0xAA -#define CKLED2001_MSKCLR_CA_CB_CHANNEL 0x00 - -#define CKLED2001_REG_SCAN_PHASE 0x14 -#define CKLED2001_MSKPHASE_12CHANNEL 0x00 -#define CKLED2001_MSKPHASE_11CHANNEL 0x01 -#define CKLED2001_MSKPHASE_10CHANNEL 0x02 -#define CKLED2001_MSKPHASE_9CHANNEL 0x03 -#define CKLED2001_MSKPHASE_8CHANNEL 0x04 -#define CKLED2001_MSKPHASE_7CHANNEL 0x05 -#define CKLED2001_MSKPHASE_6CHANNEL 0x06 -#define CKLED2001_MSKPHASE_5CHANNEL 0x07 -#define CKLED2001_MSKPHASE_4CHANNEL 0x08 -#define CKLED2001_MSKPHASE_3CHANNEL 0x09 -#define CKLED2001_MSKPHASE_2CHANNEL 0x0A -#define CKLED2001_MSKPHASE_1CHANNEL 0x0B - -#define CKLED2001_REG_SLEW_RATE_CONTROL_MODE1 0x15 -#define CKLED2001_MSKPWM_DELAY_PHASE_ENABLE 0x04 -#define CKLED2001_MSKPWM_DELAY_PHASE_DISABLE 0x00 - -#define CKLED2001_REG_SLEW_RATE_CONTROL_MODE2 0x16 -#define CKLED2001_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_ENABLE 0xC0 -#define CKLED2001_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_DISABLE 0x00 - -#define CKLED2001_REG_OPEN_SHORT_ENABLE 0x17 -#define CKLED2001_MSKOPEN_DETECTION_ENABLE (0x01 << 7) -#define CKLED2001_MSKOPEN_DETECTION_DISABLE (0x00) - -#define CKLED2001_MSKSHORT_DETECTION_ENABLE (0x01 << 6) -#define CKLED2001_MSKSHORT_DETECTION_DISABLE (0x00) - -#define CKLED2001_REG_OPEN_SHORT_DUTY 0x18 -#define CKLED2001_REG_OPEN_SHORT_FLAG 0x19 - -#define CKLED2001_MSKOPEN_DETECTION_INTERRUPT_ENABLE (0x01 << 7) -#define CKLED2001_MSKOPEN_DETECTION_INTERRUPT_DISABLE (0x00) - -#define CKLED2001_MSKSHORT_DETECTION_INTERRUPT_ENABLE (0x01 << 6) -#define CKLED2001_MSKSHORT_DETECTION_INTERRUPT_DISABLE (0x00) - -#define CKLED2001_REG_SOFTWARE_SLEEP 0x1A -#define CKLED2001_MSKSLEEP_ENABLE 0x02 -#define CKLED2001_MSKSLEEP_DISABLE 0x00 - -// LED Control Registers -#define CKLED2001_LED_CONTROL_ON_OFF_FIRST_ADDR 0x0 -#define CKLED2001_LED_CONTROL_ON_OFF_LAST_ADDR 0x17 -#define CKLED2001_LED_CONTROL_ON_OFF_LENGTH ((CKLED2001_LED_CONTROL_ON_OFF_LAST_ADDR - CKLED2001_LED_CONTROL_ON_OFF_FIRST_ADDR) + 1) - -#define CKLED2001_LED_CONTROL_OPEN_FIRST_ADDR 0x18 -#define CKLED2001_LED_CONTROL_OPEN_LAST_ADDR 0x2F -#define CKLED2001_LED_CONTROL_OPEN_LENGTH ((CKLED2001_LED_CONTROL_OPEN_LAST_ADDR - CKLED2001_LED_CONTROL_OPEN_FIRST_ADDR) + 1) - -#define CKLED2001_LED_CONTROL_SHORT_FIRST_ADDR 0x30 -#define CKLED2001_LED_CONTROL_SHORT_LAST_ADDR 0x47 -#define CKLED2001_LED_CONTROL_SHORT_LENGTH ((CKLED2001_LED_CONTROL_SHORT_LAST_ADDR - CKLED2001_LED_CONTROL_SHORT_FIRST_ADDR) + 1) - -#define CKLED2001_LED_CONTROL_PAGE_LENGTH 0x48 - -// LED Control Registers -#define CKLED2001_LED_PWM_FIRST_ADDR 0x00 -#define CKLED2001_LED_PWM_LAST_ADDR 0xBF -#define CKLED2001_LED_PWM_LENGTH 0xC0 - -// Current Tune Registers -#define CKLED2001_LED_CURRENT_TUNE_FIRST_ADDR 0x00 -#define CKLED2001_LED_CURRENT_TUNE_LAST_ADDR 0x0B -#define CKLED2001_LED_CURRENT_TUNE_LENGTH 0x0C - -#define A_1 0x00 -#define A_2 0x01 -#define A_3 0x02 -#define A_4 0x03 -#define A_5 0x04 -#define A_6 0x05 -#define A_7 0x06 -#define A_8 0x07 -#define A_9 0x08 -#define A_10 0x09 -#define A_11 0x0A -#define A_12 0x0B -#define A_13 0x0C -#define A_14 0x0D -#define A_15 0x0E -#define A_16 0x0F - -#define B_1 0x10 -#define B_2 0x11 -#define B_3 0x12 -#define B_4 0x13 -#define B_5 0x14 -#define B_6 0x15 -#define B_7 0x16 -#define B_8 0x17 -#define B_9 0x18 -#define B_10 0x19 -#define B_11 0x1A -#define B_12 0x1B -#define B_13 0x1C -#define B_14 0x1D -#define B_15 0x1E -#define B_16 0x1F - -#define C_1 0x20 -#define C_2 0x21 -#define C_3 0x22 -#define C_4 0x23 -#define C_5 0x24 -#define C_6 0x25 -#define C_7 0x26 -#define C_8 0x27 -#define C_9 0x28 -#define C_10 0x29 -#define C_11 0x2A -#define C_12 0x2B -#define C_13 0x2C -#define C_14 0x2D -#define C_15 0x2E -#define C_16 0x2F - -#define D_1 0x30 -#define D_2 0x31 -#define D_3 0x32 -#define D_4 0x33 -#define D_5 0x34 -#define D_6 0x35 -#define D_7 0x36 -#define D_8 0x37 -#define D_9 0x38 -#define D_10 0x39 -#define D_11 0x3A -#define D_12 0x3B -#define D_13 0x3C -#define D_14 0x3D -#define D_15 0x3E -#define D_16 0x3F - -#define E_1 0x40 -#define E_2 0x41 -#define E_3 0x42 -#define E_4 0x43 -#define E_5 0x44 -#define E_6 0x45 -#define E_7 0x46 -#define E_8 0x47 -#define E_9 0x48 -#define E_10 0x49 -#define E_11 0x4A -#define E_12 0x4B -#define E_13 0x4C -#define E_14 0x4D -#define E_15 0x4E -#define E_16 0x4F - -#define F_1 0x50 -#define F_2 0x51 -#define F_3 0x52 -#define F_4 0x53 -#define F_5 0x54 -#define F_6 0x55 -#define F_7 0x56 -#define F_8 0x57 -#define F_9 0x58 -#define F_10 0x59 -#define F_11 0x5A -#define F_12 0x5B -#define F_13 0x5C -#define F_14 0x5D -#define F_15 0x5E -#define F_16 0x5F - -#define G_1 0x60 -#define G_2 0x61 -#define G_3 0x62 -#define G_4 0x63 -#define G_5 0x64 -#define G_6 0x65 -#define G_7 0x66 -#define G_8 0x67 -#define G_9 0x68 -#define G_10 0x69 -#define G_11 0x6A -#define G_12 0x6B -#define G_13 0x6C -#define G_14 0x6D -#define G_15 0x6E -#define G_16 0x6F - -#define H_1 0x70 -#define H_2 0x71 -#define H_3 0x72 -#define H_4 0x73 -#define H_5 0x74 -#define H_6 0x75 -#define H_7 0x76 -#define H_8 0x77 -#define H_9 0x78 -#define H_10 0x79 -#define H_11 0x7A -#define H_12 0x7B -#define H_13 0x7C -#define H_14 0x7D -#define H_15 0x7E -#define H_16 0x7F - -#define I_1 0x80 -#define I_2 0x81 -#define I_3 0x82 -#define I_4 0x83 -#define I_5 0x84 -#define I_6 0x85 -#define I_7 0x86 -#define I_8 0x87 -#define I_9 0x88 -#define I_10 0x89 -#define I_11 0x8A -#define I_12 0x8B -#define I_13 0x8C -#define I_14 0x8D -#define I_15 0x8E -#define I_16 0x8F - -#define J_1 0x90 -#define J_2 0x91 -#define J_3 0x92 -#define J_4 0x93 -#define J_5 0x94 -#define J_6 0x95 -#define J_7 0x96 -#define J_8 0x97 -#define J_9 0x98 -#define J_10 0x99 -#define J_11 0x9A -#define J_12 0x9B -#define J_13 0x9C -#define J_14 0x9D -#define J_15 0x9E -#define J_16 0x9F - -#define K_1 0xA0 -#define K_2 0xA1 -#define K_3 0xA2 -#define K_4 0xA3 -#define K_5 0xA4 -#define K_6 0xA5 -#define K_7 0xA6 -#define K_8 0xA7 -#define K_9 0xA8 -#define K_10 0xA9 -#define K_11 0xAA -#define K_12 0xAB -#define K_13 0xAC -#define K_14 0xAD -#define K_15 0xAE -#define K_16 0xAF - -#define L_1 0xB0 -#define L_2 0xB1 -#define L_3 0xB2 -#define L_4 0xB3 -#define L_5 0xB4 -#define L_6 0xB5 -#define L_7 0xB6 -#define L_8 0xB7 -#define L_9 0xB8 -#define L_10 0xB9 -#define L_11 0xBA -#define L_12 0xBB -#define L_13 0xBC -#define L_14 0xBD -#define L_15 0xBE -#define L_16 0xBF diff --git a/drivers/led/snled27351-simple.c b/drivers/led/snled27351-simple.c new file mode 100644 index 0000000000..499769555c --- /dev/null +++ b/drivers/led/snled27351-simple.c @@ -0,0 +1,220 @@ +/* Copyright 2021 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "snled27351-simple.h" +#include "i2c_master.h" + +#ifndef SNLED27351_I2C_TIMEOUT +# define SNLED27351_I2C_TIMEOUT 100 +#endif + +#ifndef SNLED27351_I2C_PERSISTENCE +# define SNLED27351_I2C_PERSISTENCE 0 +#endif + +#ifndef SNLED27351_PHASE_CHANNEL +# define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_12CHANNEL +#endif + +#ifndef SNLED27351_CURRENT_TUNE +# define SNLED27351_CURRENT_TUNE \ + { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } +#endif + +// Transfer buffer for TWITransmitData() +uint8_t g_twi_transfer_buffer[20]; + +// These buffers match the SNLED27351 PWM registers. +// The control buffers match the PG0 LED On/Off registers. +// Storing them like this is optimal for I2C transfers to the registers. +// We could optimize this and take out the unused registers from these +// buffers and the transfers in snled27351_write_pwm_buffer() but it's +// probably not worth the extra complexity. +uint8_t g_pwm_buffer[SNLED27351_DRIVER_COUNT][192]; +bool g_pwm_buffer_update_required[SNLED27351_DRIVER_COUNT] = {false}; + +uint8_t g_led_control_registers[SNLED27351_DRIVER_COUNT][24] = {0}; +bool g_led_control_registers_update_required[SNLED27351_DRIVER_COUNT] = {false}; + +bool snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data) { + // If the transaction fails function returns false. + g_twi_transfer_buffer[0] = reg; + g_twi_transfer_buffer[1] = data; + +#if SNLED27351_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < SNLED27351_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) != 0) { + return false; + } + } +#else + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) != 0) { + return false; + } +#endif + return true; +} + +bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { + // Assumes PG1 is already selected. + // If any of the transactions fails function returns false. + // Transmit PWM registers in 12 transfers of 16 bytes. + // g_twi_transfer_buffer[] is 20 bytes + + // Iterate over the pwm_buffer contents at 16 byte intervals. + for (int i = 0; i < 192; i += 16) { + g_twi_transfer_buffer[0] = i; + // Copy the data from i to i+15. + // Device will auto-increment register for data after the first byte + // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer. + for (int j = 0; j < 16; j++) { + g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j]; + } + +#if SNLED27351_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < SNLED27351_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, SNLED27351_I2C_TIMEOUT) != 0) { + return false; + } + } +#else + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, SNLED27351_I2C_TIMEOUT) != 0) { + return false; + } +#endif + } + return true; +} + +void snled27351_init(uint8_t addr) { + // Select to function page + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); + // Setting LED driver to shutdown mode + snled27351_write_register(addr, SNLED27351_REG_CONFIGURATION, SNLED27351_MSKSW_SHUT_DOWN_MODE); + // Setting internal channel pulldown/pullup + snled27351_write_register(addr, SNLED27351_REG_PDU, SNLED27351_MSKSET_CA_CB_CHANNEL); + // Select number of scan phase + snled27351_write_register(addr, SNLED27351_REG_SCAN_PHASE, SNLED27351_PHASE_CHANNEL); + // Setting PWM Delay Phase + snled27351_write_register(addr, SNLED27351_REG_SLEW_RATE_CONTROL_MODE1, SNLED27351_MSKPWM_DELAY_PHASE_ENABLE); + // Setting Driving/Sinking Channel Slew Rate + snled27351_write_register(addr, SNLED27351_REG_SLEW_RATE_CONTROL_MODE2, SNLED27351_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_ENABLE); + // Setting Iref + snled27351_write_register(addr, SNLED27351_REG_SOFTWARE_SLEEP, SNLED27351_MSKSLEEP_DISABLE); + // Set LED CONTROL PAGE (Page 0) + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_CONTROL_PAGE); + for (int i = 0; i < SNLED27351_LED_CONTROL_ON_OFF_LENGTH; i++) { + snled27351_write_register(addr, i, 0x00); + } + + // Set PWM PAGE (Page 1) + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_PWM_PAGE); + for (int i = 0; i < SNLED27351_LED_CURRENT_TUNE_LENGTH; i++) { + snled27351_write_register(addr, i, 0x00); + } + + // Set CURRENT PAGE (Page 4) + uint8_t current_tune_reg_list[SNLED27351_LED_CURRENT_TUNE_LENGTH] = SNLED27351_CURRENT_TUNE; + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_CURRENT_TUNE_PAGE); + for (int i = 0; i < SNLED27351_LED_CURRENT_TUNE_LENGTH; i++) { + snled27351_write_register(addr, i, current_tune_reg_list[i]); + } + + // Enable LEDs ON/OFF + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_CONTROL_PAGE); + for (int i = 0; i < SNLED27351_LED_CONTROL_ON_OFF_LENGTH; i++) { + snled27351_write_register(addr, i, 0xFF); + } + + // Select to function page + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); + // Setting LED driver to normal mode + snled27351_write_register(addr, SNLED27351_REG_CONFIGURATION, SNLED27351_MSKSW_NORMAL_MODE); +} + +void snled27351_set_value(int index, uint8_t value) { + snled27351_led_t led; + if (index >= 0 && index < LED_MATRIX_LED_COUNT) { + memcpy_P(&led, (&g_snled27351_leds[index]), sizeof(led)); + + if (g_pwm_buffer[led.driver][led.v] == value) { + return; + } + g_pwm_buffer[led.driver][led.v] = value; + g_pwm_buffer_update_required[led.driver] = true; + } +} + +void snled27351_set_value_all(uint8_t value) { + for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { + snled27351_set_value(i, value); + } +} + +void snled27351_set_led_control_register(uint8_t index, bool value) { + snled27351_led_t led; + memcpy_P(&led, (&g_snled27351_leds[index]), sizeof(led)); + + uint8_t control_register = led.v / 8; + uint8_t bit_value = led.v % 8; + + if (value) { + g_led_control_registers[led.driver][control_register] |= (1 << bit_value); + } else { + g_led_control_registers[led.driver][control_register] &= ~(1 << bit_value); + } + + g_led_control_registers_update_required[led.driver] = true; +} + +void snled27351_update_pwm_buffers(uint8_t addr, uint8_t index) { + if (g_pwm_buffer_update_required[index]) { + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_PWM_PAGE); + + // If any of the transactions fail we risk writing dirty PG0, + // refresh page 0 just in case. + if (!snled27351_write_pwm_buffer(addr, g_pwm_buffer[index])) { + g_led_control_registers_update_required[index] = true; + } + } + g_pwm_buffer_update_required[index] = false; +} + +void snled27351_update_led_control_registers(uint8_t addr, uint8_t index) { + if (g_led_control_registers_update_required[index]) { + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_CONTROL_PAGE); + for (int i = 0; i < 24; i++) { + snled27351_write_register(addr, i, g_led_control_registers[index][i]); + } + } + g_led_control_registers_update_required[index] = false; +} + +void snled27351_sw_return_normal(uint8_t addr) { + // Select to function page + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); + // Setting LED driver to normal mode + snled27351_write_register(addr, SNLED27351_REG_CONFIGURATION, SNLED27351_MSKSW_NORMAL_MODE); +} + +void snled27351_sw_shutdown(uint8_t addr) { + // Select to function page + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); + // Setting LED driver to shutdown mode + snled27351_write_register(addr, SNLED27351_REG_CONFIGURATION, SNLED27351_MSKSW_SHUT_DOWN_MODE); + // Write SW Sleep Register + snled27351_write_register(addr, SNLED27351_REG_SOFTWARE_SLEEP, SNLED27351_MSKSLEEP_ENABLE); +} diff --git a/drivers/led/snled27351-simple.h b/drivers/led/snled27351-simple.h new file mode 100644 index 0000000000..ff71b44b91 --- /dev/null +++ b/drivers/led/snled27351-simple.h @@ -0,0 +1,376 @@ +/* Copyright 2021 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include +#include +#include "progmem.h" + +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_COUNT +# define SNLED27351_DRIVER_COUNT DRIVER_COUNT +#endif +#ifdef CKLED2001_TIMEOUT +# define SNLED27351_I2C_TIMEOUT CKLED2001_TIMEOUT +#endif +#ifdef CKLED2001_PERSISTENCE +# define SNLED27351_I2C_PERSISTENCE CKLED2001_PERSISTENCE +#endif +#ifdef PHASE_CHANNEL +# define SNLED27351_PHASE_CHANNEL PHASE_CHANNEL +#endif +#ifdef CKLED2001_CURRENT_TUNE +# define SNLED27351_CURRENT_TUNE CKLED2001_CURRENT_TUNE +#endif + +#define MSKPHASE_12CHANNEL SNLED27351_MSKPHASE_12CHANNEL +#define MSKPHASE_11CHANNEL SNLED27351_MSKPHASE_11CHANNEL +#define MSKPHASE_10CHANNEL SNLED27351_MSKPHASE_10CHANNEL +#define MSKPHASE_9CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define MSKPHASE_8CHANNEL SNLED27351_MSKPHASE_8CHANNEL +#define MSKPHASE_7CHANNEL SNLED27351_MSKPHASE_7CHANNEL +#define MSKPHASE_6CHANNEL SNLED27351_MSKPHASE_6CHANNEL +#define MSKPHASE_5CHANNEL SNLED27351_MSKPHASE_5CHANNEL +#define MSKPHASE_4CHANNEL SNLED27351_MSKPHASE_4CHANNEL +#define MSKPHASE_3CHANNEL SNLED27351_MSKPHASE_3CHANNEL +#define MSKPHASE_2CHANNEL SNLED27351_MSKPHASE_2CHANNEL +#define MSKPHASE_1CHANNEL SNLED27351_MSKPHASE_1CHANNEL + +#define ckled2001_led snled27351_led_t +#define g_ckled2001_leds g_snled27351_leds +// ======== + +#define SNLED27351_I2C_ADDRESS_GND 0x74 +#define SNLED27351_I2C_ADDRESS_SCL 0x75 +#define SNLED27351_I2C_ADDRESS_SDA 0x76 +#define SNLED27351_I2C_ADDRESS_VDDIO 0x77 + +typedef struct snled27351_led_t { + uint8_t driver : 2; + uint8_t v; +} __attribute__((packed)) snled27351_led_t; + +extern const snled27351_led_t PROGMEM g_snled27351_leds[LED_MATRIX_LED_COUNT]; + +void snled27351_init(uint8_t addr); +bool snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data); +bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); + +void snled27351_set_value(int index, uint8_t value); +void snled27351_set_value_all(uint8_t value); + +void snled27351_set_led_control_register(uint8_t index, bool value); + +// This should not be called from an interrupt +// (eg. from a timer interrupt). +// Call this while idle (in between matrix scans). +// If the buffer is dirty, it will update the driver with the buffer. +void snled27351_update_pwm_buffers(uint8_t addr, uint8_t index); +void snled27351_update_led_control_registers(uint8_t addr, uint8_t index); + +void snled27351_sw_return_normal(uint8_t addr); +void snled27351_sw_shutdown(uint8_t addr); + +// Registers Page Define +#define SNLED27351_REG_CONFIGURE_CMD_PAGE 0xFD +#define SNLED27351_LED_CONTROL_PAGE 0x00 +#define SNLED27351_LED_PWM_PAGE 0x01 +#define SNLED27351_FUNCTION_PAGE 0x03 +#define SNLED27351_CURRENT_TUNE_PAGE 0x04 + +// Function Register: address 0x00 +#define SNLED27351_REG_CONFIGURATION 0x00 +#define SNLED27351_MSKSW_SHUT_DOWN_MODE (0x0 << 0) +#define SNLED27351_MSKSW_NORMAL_MODE (0x1 << 0) + +#define SNLED27351_REG_DRIVER_ID 0x11 +#define SNLED27351_DRIVER_ID 0x8A + +#define SNLED27351_REG_PDU 0x13 +#define SNLED27351_MSKSET_CA_CB_CHANNEL 0xAA +#define SNLED27351_MSKCLR_CA_CB_CHANNEL 0x00 + +#define SNLED27351_REG_SCAN_PHASE 0x14 +#define SNLED27351_MSKPHASE_12CHANNEL 0x00 +#define SNLED27351_MSKPHASE_11CHANNEL 0x01 +#define SNLED27351_MSKPHASE_10CHANNEL 0x02 +#define SNLED27351_MSKPHASE_9CHANNEL 0x03 +#define SNLED27351_MSKPHASE_8CHANNEL 0x04 +#define SNLED27351_MSKPHASE_7CHANNEL 0x05 +#define SNLED27351_MSKPHASE_6CHANNEL 0x06 +#define SNLED27351_MSKPHASE_5CHANNEL 0x07 +#define SNLED27351_MSKPHASE_4CHANNEL 0x08 +#define SNLED27351_MSKPHASE_3CHANNEL 0x09 +#define SNLED27351_MSKPHASE_2CHANNEL 0x0A +#define SNLED27351_MSKPHASE_1CHANNEL 0x0B + +#define SNLED27351_REG_SLEW_RATE_CONTROL_MODE1 0x15 +#define SNLED27351_MSKPWM_DELAY_PHASE_ENABLE 0x04 +#define SNLED27351_MSKPWM_DELAY_PHASE_DISABLE 0x00 + +#define SNLED27351_REG_SLEW_RATE_CONTROL_MODE2 0x16 +#define SNLED27351_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_ENABLE 0xC0 +#define SNLED27351_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_DISABLE 0x00 + +#define SNLED27351_REG_OPEN_SHORT_ENABLE 0x17 +#define SNLED27351_MSKOPEN_DETECTION_ENABLE (0x01 << 7) +#define SNLED27351_MSKOPEN_DETECTION_DISABLE (0x00) + +#define SNLED27351_MSKSHORT_DETECTION_ENABLE (0x01 << 6) +#define SNLED27351_MSKSHORT_DETECTION_DISABLE (0x00) + +#define SNLED27351_REG_OPEN_SHORT_DUTY 0x18 +#define SNLED27351_REG_OPEN_SHORT_FLAG 0x19 + +#define SNLED27351_MSKOPEN_DETECTION_INTERRUPT_ENABLE (0x01 << 7) +#define SNLED27351_MSKOPEN_DETECTION_INTERRUPT_DISABLE (0x00) + +#define SNLED27351_MSKSHORT_DETECTION_INTERRUPT_ENABLE (0x01 << 6) +#define SNLED27351_MSKSHORT_DETECTION_INTERRUPT_DISABLE (0x00) + +#define SNLED27351_REG_SOFTWARE_SLEEP 0x1A +#define SNLED27351_MSKSLEEP_ENABLE 0x02 +#define SNLED27351_MSKSLEEP_DISABLE 0x00 + +// LED Control Registers +#define SNLED27351_LED_CONTROL_ON_OFF_FIRST_ADDR 0x0 +#define SNLED27351_LED_CONTROL_ON_OFF_LAST_ADDR 0x17 +#define SNLED27351_LED_CONTROL_ON_OFF_LENGTH ((SNLED27351_LED_CONTROL_ON_OFF_LAST_ADDR - SNLED27351_LED_CONTROL_ON_OFF_FIRST_ADDR) + 1) + +#define SNLED27351_LED_CONTROL_OPEN_FIRST_ADDR 0x18 +#define SNLED27351_LED_CONTROL_OPEN_LAST_ADDR 0x2F +#define SNLED27351_LED_CONTROL_OPEN_LENGTH ((SNLED27351_LED_CONTROL_OPEN_LAST_ADDR - SNLED27351_LED_CONTROL_OPEN_FIRST_ADDR) + 1) + +#define SNLED27351_LED_CONTROL_SHORT_FIRST_ADDR 0x30 +#define SNLED27351_LED_CONTROL_SHORT_LAST_ADDR 0x47 +#define SNLED27351_LED_CONTROL_SHORT_LENGTH ((SNLED27351_LED_CONTROL_SHORT_LAST_ADDR - SNLED27351_LED_CONTROL_SHORT_FIRST_ADDR) + 1) + +#define SNLED27351_LED_CONTROL_PAGE_LENGTH 0x48 + +// LED Control Registers +#define SNLED27351_LED_PWM_FIRST_ADDR 0x00 +#define SNLED27351_LED_PWM_LAST_ADDR 0xBF +#define SNLED27351_LED_PWM_LENGTH 0xC0 + +// Current Tune Registers +#define SNLED27351_LED_CURRENT_TUNE_FIRST_ADDR 0x00 +#define SNLED27351_LED_CURRENT_TUNE_LAST_ADDR 0x0B +#define SNLED27351_LED_CURRENT_TUNE_LENGTH 0x0C + +#define A_1 0x00 +#define A_2 0x01 +#define A_3 0x02 +#define A_4 0x03 +#define A_5 0x04 +#define A_6 0x05 +#define A_7 0x06 +#define A_8 0x07 +#define A_9 0x08 +#define A_10 0x09 +#define A_11 0x0A +#define A_12 0x0B +#define A_13 0x0C +#define A_14 0x0D +#define A_15 0x0E +#define A_16 0x0F + +#define B_1 0x10 +#define B_2 0x11 +#define B_3 0x12 +#define B_4 0x13 +#define B_5 0x14 +#define B_6 0x15 +#define B_7 0x16 +#define B_8 0x17 +#define B_9 0x18 +#define B_10 0x19 +#define B_11 0x1A +#define B_12 0x1B +#define B_13 0x1C +#define B_14 0x1D +#define B_15 0x1E +#define B_16 0x1F + +#define C_1 0x20 +#define C_2 0x21 +#define C_3 0x22 +#define C_4 0x23 +#define C_5 0x24 +#define C_6 0x25 +#define C_7 0x26 +#define C_8 0x27 +#define C_9 0x28 +#define C_10 0x29 +#define C_11 0x2A +#define C_12 0x2B +#define C_13 0x2C +#define C_14 0x2D +#define C_15 0x2E +#define C_16 0x2F + +#define D_1 0x30 +#define D_2 0x31 +#define D_3 0x32 +#define D_4 0x33 +#define D_5 0x34 +#define D_6 0x35 +#define D_7 0x36 +#define D_8 0x37 +#define D_9 0x38 +#define D_10 0x39 +#define D_11 0x3A +#define D_12 0x3B +#define D_13 0x3C +#define D_14 0x3D +#define D_15 0x3E +#define D_16 0x3F + +#define E_1 0x40 +#define E_2 0x41 +#define E_3 0x42 +#define E_4 0x43 +#define E_5 0x44 +#define E_6 0x45 +#define E_7 0x46 +#define E_8 0x47 +#define E_9 0x48 +#define E_10 0x49 +#define E_11 0x4A +#define E_12 0x4B +#define E_13 0x4C +#define E_14 0x4D +#define E_15 0x4E +#define E_16 0x4F + +#define F_1 0x50 +#define F_2 0x51 +#define F_3 0x52 +#define F_4 0x53 +#define F_5 0x54 +#define F_6 0x55 +#define F_7 0x56 +#define F_8 0x57 +#define F_9 0x58 +#define F_10 0x59 +#define F_11 0x5A +#define F_12 0x5B +#define F_13 0x5C +#define F_14 0x5D +#define F_15 0x5E +#define F_16 0x5F + +#define G_1 0x60 +#define G_2 0x61 +#define G_3 0x62 +#define G_4 0x63 +#define G_5 0x64 +#define G_6 0x65 +#define G_7 0x66 +#define G_8 0x67 +#define G_9 0x68 +#define G_10 0x69 +#define G_11 0x6A +#define G_12 0x6B +#define G_13 0x6C +#define G_14 0x6D +#define G_15 0x6E +#define G_16 0x6F + +#define H_1 0x70 +#define H_2 0x71 +#define H_3 0x72 +#define H_4 0x73 +#define H_5 0x74 +#define H_6 0x75 +#define H_7 0x76 +#define H_8 0x77 +#define H_9 0x78 +#define H_10 0x79 +#define H_11 0x7A +#define H_12 0x7B +#define H_13 0x7C +#define H_14 0x7D +#define H_15 0x7E +#define H_16 0x7F + +#define I_1 0x80 +#define I_2 0x81 +#define I_3 0x82 +#define I_4 0x83 +#define I_5 0x84 +#define I_6 0x85 +#define I_7 0x86 +#define I_8 0x87 +#define I_9 0x88 +#define I_10 0x89 +#define I_11 0x8A +#define I_12 0x8B +#define I_13 0x8C +#define I_14 0x8D +#define I_15 0x8E +#define I_16 0x8F + +#define J_1 0x90 +#define J_2 0x91 +#define J_3 0x92 +#define J_4 0x93 +#define J_5 0x94 +#define J_6 0x95 +#define J_7 0x96 +#define J_8 0x97 +#define J_9 0x98 +#define J_10 0x99 +#define J_11 0x9A +#define J_12 0x9B +#define J_13 0x9C +#define J_14 0x9D +#define J_15 0x9E +#define J_16 0x9F + +#define K_1 0xA0 +#define K_2 0xA1 +#define K_3 0xA2 +#define K_4 0xA3 +#define K_5 0xA4 +#define K_6 0xA5 +#define K_7 0xA6 +#define K_8 0xA7 +#define K_9 0xA8 +#define K_10 0xA9 +#define K_11 0xAA +#define K_12 0xAB +#define K_13 0xAC +#define K_14 0xAD +#define K_15 0xAE +#define K_16 0xAF + +#define L_1 0xB0 +#define L_2 0xB1 +#define L_3 0xB2 +#define L_4 0xB3 +#define L_5 0xB4 +#define L_6 0xB5 +#define L_7 0xB6 +#define L_8 0xB7 +#define L_9 0xB8 +#define L_10 0xB9 +#define L_11 0xBA +#define L_12 0xBB +#define L_13 0xBC +#define L_14 0xBD +#define L_15 0xBE +#define L_16 0xBF diff --git a/drivers/led/snled27351.c b/drivers/led/snled27351.c new file mode 100644 index 0000000000..1ca691b30f --- /dev/null +++ b/drivers/led/snled27351.c @@ -0,0 +1,235 @@ +/* Copyright 2021 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "snled27351.h" +#include "i2c_master.h" + +#ifndef SNLED27351_I2C_TIMEOUT +# define SNLED27351_I2C_TIMEOUT 100 +#endif + +#ifndef SNLED27351_I2C_PERSISTENCE +# define SNLED27351_I2C_PERSISTENCE 0 +#endif + +#ifndef SNLED27351_PHASE_CHANNEL +# define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_12CHANNEL +#endif + +#ifndef SNLED27351_CURRENT_TUNE +# define SNLED27351_CURRENT_TUNE \ + { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } +#endif + +// Transfer buffer for TWITransmitData() +uint8_t g_twi_transfer_buffer[65]; + +// These buffers match the SNLED27351 PWM registers. +// The control buffers match the PG0 LED On/Off registers. +// Storing them like this is optimal for I2C transfers to the registers. +// We could optimize this and take out the unused registers from these +// buffers and the transfers in snled27351_write_pwm_buffer() but it's +// probably not worth the extra complexity. +uint8_t g_pwm_buffer[SNLED27351_DRIVER_COUNT][192]; +bool g_pwm_buffer_update_required[SNLED27351_DRIVER_COUNT] = {false}; + +uint8_t g_led_control_registers[SNLED27351_DRIVER_COUNT][24] = {0}; +bool g_led_control_registers_update_required[SNLED27351_DRIVER_COUNT] = {false}; + +bool snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data) { + // If the transaction fails function returns false. + g_twi_transfer_buffer[0] = reg; + g_twi_transfer_buffer[1] = data; + +#if SNLED27351_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < SNLED27351_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) != 0) { + return false; + } + } +#else + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) != 0) { + return false; + } +#endif + return true; +} + +bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { + // Assumes PG1 is already selected. + // If any of the transactions fails function returns false. + // Transmit PWM registers in 3 transfers of 64 bytes. + + // Iterate over the pwm_buffer contents at 64 byte intervals. + for (uint8_t i = 0; i < 192; i += 64) { + g_twi_transfer_buffer[0] = i; + // Copy the data from i to i+63. + // Device will auto-increment register for data after the first byte + // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer. + for (uint8_t j = 0; j < 64; j++) { + g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j]; + } + +#if SNLED27351_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < SNLED27351_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 65, SNLED27351_I2C_TIMEOUT) != 0) { + return false; + } + } +#else + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 65, SNLED27351_I2C_TIMEOUT) != 0) { + return false; + } +#endif + } + return true; +} + +void snled27351_init(uint8_t addr) { + // Select to function page + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); + // Setting LED driver to shutdown mode + snled27351_write_register(addr, SNLED27351_REG_CONFIGURATION, SNLED27351_MSKSW_SHUT_DOWN_MODE); + // Setting internal channel pulldown/pullup + snled27351_write_register(addr, SNLED27351_REG_PDU, SNLED27351_MSKSET_CA_CB_CHANNEL); + // Select number of scan phase + snled27351_write_register(addr, SNLED27351_REG_SCAN_PHASE, SNLED27351_PHASE_CHANNEL); + // Setting PWM Delay Phase + snled27351_write_register(addr, SNLED27351_REG_SLEW_RATE_CONTROL_MODE1, SNLED27351_MSKPWM_DELAY_PHASE_ENABLE); + // Setting Driving/Sinking Channel Slew Rate + snled27351_write_register(addr, SNLED27351_REG_SLEW_RATE_CONTROL_MODE2, SNLED27351_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_ENABLE); + // Setting Iref + snled27351_write_register(addr, SNLED27351_REG_SOFTWARE_SLEEP, SNLED27351_MSKSLEEP_DISABLE); + // Set LED CONTROL PAGE (Page 0) + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_CONTROL_PAGE); + for (int i = 0; i < SNLED27351_LED_CONTROL_ON_OFF_LENGTH; i++) { + snled27351_write_register(addr, i, 0x00); + } + + // Set PWM PAGE (Page 1) + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_PWM_PAGE); + for (int i = 0; i < SNLED27351_LED_CURRENT_TUNE_LENGTH; i++) { + snled27351_write_register(addr, i, 0x00); + } + + // Set CURRENT PAGE (Page 4) + uint8_t current_tune_reg_list[SNLED27351_LED_CURRENT_TUNE_LENGTH] = SNLED27351_CURRENT_TUNE; + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_CURRENT_TUNE_PAGE); + for (int i = 0; i < SNLED27351_LED_CURRENT_TUNE_LENGTH; i++) { + snled27351_write_register(addr, i, current_tune_reg_list[i]); + } + + // Enable LEDs ON/OFF + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_CONTROL_PAGE); + for (int i = 0; i < SNLED27351_LED_CONTROL_ON_OFF_LENGTH; i++) { + snled27351_write_register(addr, i, 0xFF); + } + + // Select to function page + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); + // Setting LED driver to normal mode + snled27351_write_register(addr, SNLED27351_REG_CONFIGURATION, SNLED27351_MSKSW_NORMAL_MODE); +} + +void snled27351_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { + snled27351_led_t led; + if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { + memcpy_P(&led, (&g_snled27351_leds[index]), sizeof(led)); + + if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { + return; + } + g_pwm_buffer[led.driver][led.r] = red; + g_pwm_buffer[led.driver][led.g] = green; + g_pwm_buffer[led.driver][led.b] = blue; + g_pwm_buffer_update_required[led.driver] = true; + } +} + +void snled27351_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { + snled27351_set_color(i, red, green, blue); + } +} + +void snled27351_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { + snled27351_led_t led; + memcpy_P(&led, (&g_snled27351_leds[index]), sizeof(led)); + + uint8_t control_register_r = led.r / 8; + uint8_t control_register_g = led.g / 8; + uint8_t control_register_b = led.b / 8; + uint8_t bit_r = led.r % 8; + uint8_t bit_g = led.g % 8; + uint8_t bit_b = led.b % 8; + + if (red) { + g_led_control_registers[led.driver][control_register_r] |= (1 << bit_r); + } else { + g_led_control_registers[led.driver][control_register_r] &= ~(1 << bit_r); + } + if (green) { + g_led_control_registers[led.driver][control_register_g] |= (1 << bit_g); + } else { + g_led_control_registers[led.driver][control_register_g] &= ~(1 << bit_g); + } + if (blue) { + g_led_control_registers[led.driver][control_register_b] |= (1 << bit_b); + } else { + g_led_control_registers[led.driver][control_register_b] &= ~(1 << bit_b); + } + + g_led_control_registers_update_required[led.driver] = true; +} + +void snled27351_update_pwm_buffers(uint8_t addr, uint8_t index) { + if (g_pwm_buffer_update_required[index]) { + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_PWM_PAGE); + + // If any of the transactions fail we risk writing dirty PG0, + // refresh page 0 just in case. + if (!snled27351_write_pwm_buffer(addr, g_pwm_buffer[index])) { + g_led_control_registers_update_required[index] = true; + } + } + g_pwm_buffer_update_required[index] = false; +} + +void snled27351_update_led_control_registers(uint8_t addr, uint8_t index) { + if (g_led_control_registers_update_required[index]) { + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_CONTROL_PAGE); + for (int i = 0; i < 24; i++) { + snled27351_write_register(addr, i, g_led_control_registers[index][i]); + } + } + g_led_control_registers_update_required[index] = false; +} + +void snled27351_sw_return_normal(uint8_t addr) { + // Select to function page + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); + // Setting LED driver to normal mode + snled27351_write_register(addr, SNLED27351_REG_CONFIGURATION, SNLED27351_MSKSW_NORMAL_MODE); +} + +void snled27351_sw_shutdown(uint8_t addr) { + // Select to function page + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); + // Setting LED driver to shutdown mode + snled27351_write_register(addr, SNLED27351_REG_CONFIGURATION, SNLED27351_MSKSW_SHUT_DOWN_MODE); + // Write SW Sleep Register + snled27351_write_register(addr, SNLED27351_REG_SOFTWARE_SLEEP, SNLED27351_MSKSLEEP_ENABLE); +} diff --git a/drivers/led/snled27351.h b/drivers/led/snled27351.h new file mode 100644 index 0000000000..770becdba1 --- /dev/null +++ b/drivers/led/snled27351.h @@ -0,0 +1,378 @@ +/* Copyright 2021 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include +#include +#include "progmem.h" + +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_COUNT +# define SNLED27351_DRIVER_COUNT DRIVER_COUNT +#endif +#ifdef CKLED2001_TIMEOUT +# define SNLED27351_I2C_TIMEOUT CKLED2001_TIMEOUT +#endif +#ifdef CKLED2001_PERSISTENCE +# define SNLED27351_I2C_PERSISTENCE CKLED2001_PERSISTENCE +#endif +#ifdef PHASE_CHANNEL +# define SNLED27351_PHASE_CHANNEL PHASE_CHANNEL +#endif +#ifdef CKLED2001_CURRENT_TUNE +# define SNLED27351_CURRENT_TUNE CKLED2001_CURRENT_TUNE +#endif + +#define MSKPHASE_12CHANNEL SNLED27351_MSKPHASE_12CHANNEL +#define MSKPHASE_11CHANNEL SNLED27351_MSKPHASE_11CHANNEL +#define MSKPHASE_10CHANNEL SNLED27351_MSKPHASE_10CHANNEL +#define MSKPHASE_9CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define MSKPHASE_8CHANNEL SNLED27351_MSKPHASE_8CHANNEL +#define MSKPHASE_7CHANNEL SNLED27351_MSKPHASE_7CHANNEL +#define MSKPHASE_6CHANNEL SNLED27351_MSKPHASE_6CHANNEL +#define MSKPHASE_5CHANNEL SNLED27351_MSKPHASE_5CHANNEL +#define MSKPHASE_4CHANNEL SNLED27351_MSKPHASE_4CHANNEL +#define MSKPHASE_3CHANNEL SNLED27351_MSKPHASE_3CHANNEL +#define MSKPHASE_2CHANNEL SNLED27351_MSKPHASE_2CHANNEL +#define MSKPHASE_1CHANNEL SNLED27351_MSKPHASE_1CHANNEL + +#define ckled2001_led snled27351_led_t +#define g_ckled2001_leds g_snled27351_leds +// ======== + +#define SNLED27351_I2C_ADDRESS_GND 0x74 +#define SNLED27351_I2C_ADDRESS_SCL 0x75 +#define SNLED27351_I2C_ADDRESS_SDA 0x76 +#define SNLED27351_I2C_ADDRESS_VDDIO 0x77 + +typedef struct snled27351_led_t { + uint8_t driver : 2; + uint8_t r; + uint8_t g; + uint8_t b; +} __attribute__((packed)) snled27351_led_t; + +extern const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT]; + +void snled27351_init(uint8_t addr); +bool snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data); +bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); + +void snled27351_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); +void snled27351_set_color_all(uint8_t red, uint8_t green, uint8_t blue); + +void snled27351_set_led_control_register(uint8_t index, bool red, bool green, bool blue); + +// This should not be called from an interrupt +// (eg. from a timer interrupt). +// Call this while idle (in between matrix scans). +// If the buffer is dirty, it will update the driver with the buffer. +void snled27351_update_pwm_buffers(uint8_t addr, uint8_t index); +void snled27351_update_led_control_registers(uint8_t addr, uint8_t index); + +void snled27351_sw_return_normal(uint8_t addr); +void snled27351_sw_shutdown(uint8_t addr); + +// Registers Page Define +#define SNLED27351_REG_CONFIGURE_CMD_PAGE 0xFD +#define SNLED27351_LED_CONTROL_PAGE 0x00 +#define SNLED27351_LED_PWM_PAGE 0x01 +#define SNLED27351_FUNCTION_PAGE 0x03 +#define SNLED27351_CURRENT_TUNE_PAGE 0x04 + +// Function Register: address 0x00 +#define SNLED27351_REG_CONFIGURATION 0x00 +#define SNLED27351_MSKSW_SHUT_DOWN_MODE (0x0 << 0) +#define SNLED27351_MSKSW_NORMAL_MODE (0x1 << 0) + +#define SNLED27351_REG_DRIVER_ID 0x11 +#define SNLED27351_DRIVER_ID 0x8A + +#define SNLED27351_REG_PDU 0x13 +#define SNLED27351_MSKSET_CA_CB_CHANNEL 0xAA +#define SNLED27351_MSKCLR_CA_CB_CHANNEL 0x00 + +#define SNLED27351_REG_SCAN_PHASE 0x14 +#define SNLED27351_MSKPHASE_12CHANNEL 0x00 +#define SNLED27351_MSKPHASE_11CHANNEL 0x01 +#define SNLED27351_MSKPHASE_10CHANNEL 0x02 +#define SNLED27351_MSKPHASE_9CHANNEL 0x03 +#define SNLED27351_MSKPHASE_8CHANNEL 0x04 +#define SNLED27351_MSKPHASE_7CHANNEL 0x05 +#define SNLED27351_MSKPHASE_6CHANNEL 0x06 +#define SNLED27351_MSKPHASE_5CHANNEL 0x07 +#define SNLED27351_MSKPHASE_4CHANNEL 0x08 +#define SNLED27351_MSKPHASE_3CHANNEL 0x09 +#define SNLED27351_MSKPHASE_2CHANNEL 0x0A +#define SNLED27351_MSKPHASE_1CHANNEL 0x0B + +#define SNLED27351_REG_SLEW_RATE_CONTROL_MODE1 0x15 +#define SNLED27351_MSKPWM_DELAY_PHASE_ENABLE 0x04 +#define SNLED27351_MSKPWM_DELAY_PHASE_DISABLE 0x00 + +#define SNLED27351_REG_SLEW_RATE_CONTROL_MODE2 0x16 +#define SNLED27351_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_ENABLE 0xC0 +#define SNLED27351_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_DISABLE 0x00 + +#define SNLED27351_REG_OPEN_SHORT_ENABLE 0x17 +#define SNLED27351_MSKOPEN_DETECTION_ENABLE (0x01 << 7) +#define SNLED27351_MSKOPEN_DETECTION_DISABLE (0x00) + +#define SNLED27351_MSKSHORT_DETECTION_ENABLE (0x01 << 6) +#define SNLED27351_MSKSHORT_DETECTION_DISABLE (0x00) + +#define SNLED27351_REG_OPEN_SHORT_DUTY 0x18 +#define SNLED27351_REG_OPEN_SHORT_FLAG 0x19 + +#define SNLED27351_MSKOPEN_DETECTION_INTERRUPT_ENABLE (0x01 << 7) +#define SNLED27351_MSKOPEN_DETECTION_INTERRUPT_DISABLE (0x00) + +#define SNLED27351_MSKSHORT_DETECTION_INTERRUPT_ENABLE (0x01 << 6) +#define SNLED27351_MSKSHORT_DETECTION_INTERRUPT_DISABLE (0x00) + +#define SNLED27351_REG_SOFTWARE_SLEEP 0x1A +#define SNLED27351_MSKSLEEP_ENABLE 0x02 +#define SNLED27351_MSKSLEEP_DISABLE 0x00 + +// LED Control Registers +#define SNLED27351_LED_CONTROL_ON_OFF_FIRST_ADDR 0x0 +#define SNLED27351_LED_CONTROL_ON_OFF_LAST_ADDR 0x17 +#define SNLED27351_LED_CONTROL_ON_OFF_LENGTH ((SNLED27351_LED_CONTROL_ON_OFF_LAST_ADDR - SNLED27351_LED_CONTROL_ON_OFF_FIRST_ADDR) + 1) + +#define SNLED27351_LED_CONTROL_OPEN_FIRST_ADDR 0x18 +#define SNLED27351_LED_CONTROL_OPEN_LAST_ADDR 0x2F +#define SNLED27351_LED_CONTROL_OPEN_LENGTH ((SNLED27351_LED_CONTROL_OPEN_LAST_ADDR - SNLED27351_LED_CONTROL_OPEN_FIRST_ADDR) + 1) + +#define SNLED27351_LED_CONTROL_SHORT_FIRST_ADDR 0x30 +#define SNLED27351_LED_CONTROL_SHORT_LAST_ADDR 0x47 +#define SNLED27351_LED_CONTROL_SHORT_LENGTH ((SNLED27351_LED_CONTROL_SHORT_LAST_ADDR - SNLED27351_LED_CONTROL_SHORT_FIRST_ADDR) + 1) + +#define SNLED27351_LED_CONTROL_PAGE_LENGTH 0x48 + +// LED Control Registers +#define SNLED27351_LED_PWM_FIRST_ADDR 0x00 +#define SNLED27351_LED_PWM_LAST_ADDR 0xBF +#define SNLED27351_LED_PWM_LENGTH 0xC0 + +// Current Tune Registers +#define SNLED27351_LED_CURRENT_TUNE_FIRST_ADDR 0x00 +#define SNLED27351_LED_CURRENT_TUNE_LAST_ADDR 0x0B +#define SNLED27351_LED_CURRENT_TUNE_LENGTH 0x0C + +#define A_1 0x00 +#define A_2 0x01 +#define A_3 0x02 +#define A_4 0x03 +#define A_5 0x04 +#define A_6 0x05 +#define A_7 0x06 +#define A_8 0x07 +#define A_9 0x08 +#define A_10 0x09 +#define A_11 0x0A +#define A_12 0x0B +#define A_13 0x0C +#define A_14 0x0D +#define A_15 0x0E +#define A_16 0x0F + +#define B_1 0x10 +#define B_2 0x11 +#define B_3 0x12 +#define B_4 0x13 +#define B_5 0x14 +#define B_6 0x15 +#define B_7 0x16 +#define B_8 0x17 +#define B_9 0x18 +#define B_10 0x19 +#define B_11 0x1A +#define B_12 0x1B +#define B_13 0x1C +#define B_14 0x1D +#define B_15 0x1E +#define B_16 0x1F + +#define C_1 0x20 +#define C_2 0x21 +#define C_3 0x22 +#define C_4 0x23 +#define C_5 0x24 +#define C_6 0x25 +#define C_7 0x26 +#define C_8 0x27 +#define C_9 0x28 +#define C_10 0x29 +#define C_11 0x2A +#define C_12 0x2B +#define C_13 0x2C +#define C_14 0x2D +#define C_15 0x2E +#define C_16 0x2F + +#define D_1 0x30 +#define D_2 0x31 +#define D_3 0x32 +#define D_4 0x33 +#define D_5 0x34 +#define D_6 0x35 +#define D_7 0x36 +#define D_8 0x37 +#define D_9 0x38 +#define D_10 0x39 +#define D_11 0x3A +#define D_12 0x3B +#define D_13 0x3C +#define D_14 0x3D +#define D_15 0x3E +#define D_16 0x3F + +#define E_1 0x40 +#define E_2 0x41 +#define E_3 0x42 +#define E_4 0x43 +#define E_5 0x44 +#define E_6 0x45 +#define E_7 0x46 +#define E_8 0x47 +#define E_9 0x48 +#define E_10 0x49 +#define E_11 0x4A +#define E_12 0x4B +#define E_13 0x4C +#define E_14 0x4D +#define E_15 0x4E +#define E_16 0x4F + +#define F_1 0x50 +#define F_2 0x51 +#define F_3 0x52 +#define F_4 0x53 +#define F_5 0x54 +#define F_6 0x55 +#define F_7 0x56 +#define F_8 0x57 +#define F_9 0x58 +#define F_10 0x59 +#define F_11 0x5A +#define F_12 0x5B +#define F_13 0x5C +#define F_14 0x5D +#define F_15 0x5E +#define F_16 0x5F + +#define G_1 0x60 +#define G_2 0x61 +#define G_3 0x62 +#define G_4 0x63 +#define G_5 0x64 +#define G_6 0x65 +#define G_7 0x66 +#define G_8 0x67 +#define G_9 0x68 +#define G_10 0x69 +#define G_11 0x6A +#define G_12 0x6B +#define G_13 0x6C +#define G_14 0x6D +#define G_15 0x6E +#define G_16 0x6F + +#define H_1 0x70 +#define H_2 0x71 +#define H_3 0x72 +#define H_4 0x73 +#define H_5 0x74 +#define H_6 0x75 +#define H_7 0x76 +#define H_8 0x77 +#define H_9 0x78 +#define H_10 0x79 +#define H_11 0x7A +#define H_12 0x7B +#define H_13 0x7C +#define H_14 0x7D +#define H_15 0x7E +#define H_16 0x7F + +#define I_1 0x80 +#define I_2 0x81 +#define I_3 0x82 +#define I_4 0x83 +#define I_5 0x84 +#define I_6 0x85 +#define I_7 0x86 +#define I_8 0x87 +#define I_9 0x88 +#define I_10 0x89 +#define I_11 0x8A +#define I_12 0x8B +#define I_13 0x8C +#define I_14 0x8D +#define I_15 0x8E +#define I_16 0x8F + +#define J_1 0x90 +#define J_2 0x91 +#define J_3 0x92 +#define J_4 0x93 +#define J_5 0x94 +#define J_6 0x95 +#define J_7 0x96 +#define J_8 0x97 +#define J_9 0x98 +#define J_10 0x99 +#define J_11 0x9A +#define J_12 0x9B +#define J_13 0x9C +#define J_14 0x9D +#define J_15 0x9E +#define J_16 0x9F + +#define K_1 0xA0 +#define K_2 0xA1 +#define K_3 0xA2 +#define K_4 0xA3 +#define K_5 0xA4 +#define K_6 0xA5 +#define K_7 0xA6 +#define K_8 0xA7 +#define K_9 0xA8 +#define K_10 0xA9 +#define K_11 0xAA +#define K_12 0xAB +#define K_13 0xAC +#define K_14 0xAD +#define K_15 0xAE +#define K_16 0xAF + +#define L_1 0xB0 +#define L_2 0xB1 +#define L_3 0xB2 +#define L_4 0xB3 +#define L_5 0xB4 +#define L_6 0xB5 +#define L_7 0xB6 +#define L_8 0xB7 +#define L_9 0xB8 +#define L_10 0xB9 +#define L_11 0xBA +#define L_12 0xBB +#define L_13 0xBC +#define L_14 0xBD +#define L_15 0xBE +#define L_16 0xBF diff --git a/keyboards/akko/5108/5108.c b/keyboards/akko/5108/5108.c index a14f02bc76..91f53e1e55 100644 --- a/keyboards/akko/5108/5108.c +++ b/keyboards/akko/5108/5108.c @@ -17,8 +17,8 @@ #include "quantum.h" // clang-format off #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/akko/5108/config.h b/keyboards/akko/5108/config.h index a50041ccc9..73c7c27939 100644 --- a/keyboards/akko/5108/config.h +++ b/keyboards/akko/5108/config.h @@ -34,9 +34,9 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define IS31FL3733_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_SCL_PAL_MODE 4 #define I2C1_OPMODE OPMODE_I2C #define I2C1_CLOCK_SPEED 400000 /* 400000 */ diff --git a/keyboards/akko/5108/info.json b/keyboards/akko/5108/info.json index 93e73f3cd3..662a949a53 100644 --- a/keyboards/akko/5108/info.json +++ b/keyboards/akko/5108/info.json @@ -41,7 +41,7 @@ "caps_lock": "C10" }, "rgb_matrix": { - "driver": "is31fl3733", + "driver": "snled27351", "max_brightness": 180, "animations": { "breathing": true, diff --git a/keyboards/akko/acr87/acr87.c b/keyboards/akko/acr87/acr87.c index e175e21368..7ee9ec6470 100644 --- a/keyboards/akko/acr87/acr87.c +++ b/keyboards/akko/acr87/acr87.c @@ -17,8 +17,8 @@ #include "quantum.h" // clang-format off #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/akko/acr87/config.h b/keyboards/akko/acr87/config.h index 6afa413552..1ff3380d6a 100644 --- a/keyboards/akko/acr87/config.h +++ b/keyboards/akko/acr87/config.h @@ -31,10 +31,10 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define IS31FL3733_DRIVER_COUNT 3 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 -#define DRIVER_ADDR_3 0b1110110 +#define SNLED27351_DRIVER_COUNT 3 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_3 SNLED27351_I2C_ADDRESS_SDA #define I2C1_SCL_PAL_MODE 4 #define I2C1_OPMODE OPMODE_I2C diff --git a/keyboards/akko/acr87/info.json b/keyboards/akko/acr87/info.json index 0533d328a9..5ccb0c3f73 100644 --- a/keyboards/akko/acr87/info.json +++ b/keyboards/akko/acr87/info.json @@ -37,7 +37,7 @@ } }, "rgb_matrix": { - "driver": "is31fl3733", + "driver": "snled27351", "max_brightness": 180, "animations": { "breathing": true, diff --git a/keyboards/akko/top40/config.h b/keyboards/akko/top40/config.h index 09474e1217..fd10534ce7 100644 --- a/keyboards/akko/top40/config.h +++ b/keyboards/akko/top40/config.h @@ -31,9 +31,9 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define IS31FL3733_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_SCL_PAL_MODE 4 #define I2C1_OPMODE OPMODE_I2C #define I2C1_CLOCK_SPEED 400000 /* 400000 */ diff --git a/keyboards/akko/top40/info.json b/keyboards/akko/top40/info.json index b5ff321740..243952ccc8 100644 --- a/keyboards/akko/top40/info.json +++ b/keyboards/akko/top40/info.json @@ -37,7 +37,7 @@ } }, "rgb_matrix": { - "driver": "is31fl3733", + "driver": "snled27351", "max_brightness": 180, "animations": { "breathing": true, diff --git a/keyboards/akko/top40/top40.c b/keyboards/akko/top40/top40.c index 7fe193447d..028e4bdd05 100644 --- a/keyboards/akko/top40/top40.c +++ b/keyboards/akko/top40/top40.c @@ -17,8 +17,8 @@ #include "quantum.h" // clang-format off #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/chosfox/cf81/cf81.c b/keyboards/chosfox/cf81/cf81.c index ab8afd0c63..ad7ec9bc55 100644 --- a/keyboards/chosfox/cf81/cf81.c +++ b/keyboards/chosfox/cf81/cf81.c @@ -18,8 +18,8 @@ // clang-format off #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/chosfox/cf81/config.h b/keyboards/chosfox/cf81/config.h index 2c85f5dd04..5895d60903 100644 --- a/keyboards/chosfox/cf81/config.h +++ b/keyboards/chosfox/cf81/config.h @@ -31,9 +31,9 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define IS31FL3733_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_OPMODE OPMODE_I2C #define I2C1_CLOCK_SPEED 400000 /* 400000 */ diff --git a/keyboards/chosfox/cf81/info.json b/keyboards/chosfox/cf81/info.json index bbfc2deb31..5dff610071 100644 --- a/keyboards/chosfox/cf81/info.json +++ b/keyboards/chosfox/cf81/info.json @@ -39,7 +39,7 @@ ] }, "rgb_matrix": { - "driver": "is31fl3733", + "driver": "snled27351", "animations": { "breathing": true, "cycle_all": true, diff --git a/keyboards/inland/kb83/config.h b/keyboards/inland/kb83/config.h index ed1f3cf160..efa076c915 100644 --- a/keyboards/inland/kb83/config.h +++ b/keyboards/inland/kb83/config.h @@ -38,9 +38,9 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define IS31FL3733_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_SDA_PIN B7 #define I2C1_SCL_PIN B6 #define I2C1_SCL_PAL_MODE 4 diff --git a/keyboards/inland/kb83/info.json b/keyboards/inland/kb83/info.json index cd538ef4ee..f0da3f50b6 100644 --- a/keyboards/inland/kb83/info.json +++ b/keyboards/inland/kb83/info.json @@ -9,7 +9,7 @@ "force_nkro": true }, "rgb_matrix": { - "driver": "is31fl3733" + "driver": "snled27351" }, "processor": "WB32FQ95", "bootloader": "wb32-dfu", diff --git a/keyboards/inland/kb83/kb83.c b/keyboards/inland/kb83/kb83.c index 86b52cfe92..49604b93be 100644 --- a/keyboards/inland/kb83/kb83.c +++ b/keyboards/inland/kb83/kb83.c @@ -18,8 +18,8 @@ // clang-format off #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/inland/mk47/config.h b/keyboards/inland/mk47/config.h index db9aea328f..7e0115f7f0 100644 --- a/keyboards/inland/mk47/config.h +++ b/keyboards/inland/mk47/config.h @@ -25,8 +25,9 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define IS31FL3733_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 0b1110100 +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND + /* WB32 MCU has no default definition */ #define I2C1_OPMODE OPMODE_I2C #define I2C1_CLOCK_SPEED 400000 diff --git a/keyboards/inland/mk47/info.json b/keyboards/inland/mk47/info.json index 7d94365724..e647723ed8 100644 --- a/keyboards/inland/mk47/info.json +++ b/keyboards/inland/mk47/info.json @@ -34,7 +34,7 @@ } }, "rgb_matrix": { - "driver": "is31fl3733", + "driver": "snled27351", "max_brightness": 200, "animations": { "breathing": true, diff --git a/keyboards/inland/mk47/mk47.c b/keyboards/inland/mk47/mk47.c index f247855944..5a34527c6c 100644 --- a/keyboards/inland/mk47/mk47.c +++ b/keyboards/inland/mk47/mk47.c @@ -16,8 +16,8 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/c1_pro/ansi/rgb/config.h b/keyboards/keychron/c1_pro/ansi/rgb/config.h index c6b63b4d7c..f2779f2bb9 100644 --- a/keyboards/keychron/c1_pro/ansi/rgb/config.h +++ b/keyboards/keychron/c1_pro/ansi/rgb/config.h @@ -20,18 +20,18 @@ // #define MATRIX_UNSELECT_DRIVE_HIGH /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 49 #define DRIVER_2_LED_TOTAL 39 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL /* Set led driver current */ -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 } /* turn off effects when suspended */ diff --git a/keyboards/keychron/c1_pro/ansi/rgb/info.json b/keyboards/keychron/c1_pro/ansi/rgb/info.json index c6011a2837..fcd805706b 100644 --- a/keyboards/keychron/c1_pro/ansi/rgb/info.json +++ b/keyboards/keychron/c1_pro/ansi/rgb/info.json @@ -105,7 +105,7 @@ } }, "rgb_matrix": { - "driver": "ckled2001", + "driver": "snled27351", "animations": { "breathing": true, "band_spiral_val": true, diff --git a/keyboards/keychron/c1_pro/ansi/rgb/rgb.c b/keyboards/keychron/c1_pro/ansi/rgb/rgb.c index 04565f3b01..c04e82a44e 100644 --- a/keyboards/keychron/c1_pro/ansi/rgb/rgb.c +++ b/keyboards/keychron/c1_pro/ansi/rgb/rgb.c @@ -18,8 +18,8 @@ // clang-format off #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED2001 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/c1_pro/ansi/white/config.h b/keyboards/keychron/c1_pro/ansi/white/config.h index 5492eca28f..430cb68a8e 100644 --- a/keyboards/keychron/c1_pro/ansi/white/config.h +++ b/keyboards/keychron/c1_pro/ansi/white/config.h @@ -20,15 +20,15 @@ // #define MATRIX_UNSELECT_DRIVE_HIGH /* LED Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND /* LED Matrix Configuration */ #define LED_MATRIX_LED_COUNT 90 -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL /* Set led driver current */ -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 } /* turn off effects when suspended */ diff --git a/keyboards/keychron/c1_pro/ansi/white/info.json b/keyboards/keychron/c1_pro/ansi/white/info.json index 070ed6c427..4a6c6e2b8d 100644 --- a/keyboards/keychron/c1_pro/ansi/white/info.json +++ b/keyboards/keychron/c1_pro/ansi/white/info.json @@ -105,7 +105,7 @@ } }, "led_matrix": { - "driver": "ckled2001", + "driver": "snled27351", "animations": { "none": true, "solid": true, diff --git a/keyboards/keychron/c1_pro/ansi/white/white.c b/keyboards/keychron/c1_pro/ansi/white/white.c index 72e9ad4db1..15f291e80c 100644 --- a/keyboards/keychron/c1_pro/ansi/white/white.c +++ b/keyboards/keychron/c1_pro/ansi/white/white.c @@ -18,8 +18,8 @@ // clang-format off #ifdef LED_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[LED_MATRIX_LED_COUNT] = { -/* Refer to CKLED2001 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[LED_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | LED address * | | */ diff --git a/keyboards/keychron/c2_pro/ansi/rgb/config.h b/keyboards/keychron/c2_pro/ansi/rgb/config.h index d2d3d61f29..673e8e438e 100644 --- a/keyboards/keychron/c2_pro/ansi/rgb/config.h +++ b/keyboards/keychron/c2_pro/ansi/rgb/config.h @@ -17,12 +17,12 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Set LED driver current */ -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xAA, 0xAA, 0x56, 0xAA, 0xAA, 0x56, 0xAA, 0xAA, 0x56, 0xAA, 0xAA, 0x56 } /* RGB Matrix Configuration */ diff --git a/keyboards/keychron/c2_pro/ansi/rgb/info.json b/keyboards/keychron/c2_pro/ansi/rgb/info.json index e527af3371..1eee0ee1cd 100644 --- a/keyboards/keychron/c2_pro/ansi/rgb/info.json +++ b/keyboards/keychron/c2_pro/ansi/rgb/info.json @@ -122,7 +122,7 @@ } }, "rgb_matrix": { - "driver": "ckled2001", + "driver": "snled27351", "animations": { "breathing": true, "band_spiral_val": true, diff --git a/keyboards/keychron/c2_pro/ansi/rgb/rgb.c b/keyboards/keychron/c2_pro/ansi/rgb/rgb.c index 998933081f..d42c2de39e 100644 --- a/keyboards/keychron/c2_pro/ansi/rgb/rgb.c +++ b/keyboards/keychron/c2_pro/ansi/rgb/rgb.c @@ -17,8 +17,8 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED2001 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/c2_pro/ansi/white/config.h b/keyboards/keychron/c2_pro/ansi/white/config.h index fb2ca3aa41..9945901527 100644 --- a/keyboards/keychron/c2_pro/ansi/white/config.h +++ b/keyboards/keychron/c2_pro/ansi/white/config.h @@ -17,11 +17,11 @@ #pragma once /* LED Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND /* Set LED driver current */ -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0 } /* LED Matrix Configuration */ diff --git a/keyboards/keychron/c2_pro/ansi/white/info.json b/keyboards/keychron/c2_pro/ansi/white/info.json index dc58d1943b..4d9b1e12b8 100644 --- a/keyboards/keychron/c2_pro/ansi/white/info.json +++ b/keyboards/keychron/c2_pro/ansi/white/info.json @@ -122,7 +122,7 @@ } }, "led_matrix": { - "driver": "ckled2001", + "driver": "snled27351", "animations": { "none": true, "solid": true, diff --git a/keyboards/keychron/c2_pro/ansi/white/white.c b/keyboards/keychron/c2_pro/ansi/white/white.c index 963ac8755f..9c75e73c6d 100644 --- a/keyboards/keychron/c2_pro/ansi/white/white.c +++ b/keyboards/keychron/c2_pro/ansi/white/white.c @@ -18,8 +18,8 @@ // clang-format off #ifdef LED_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[LED_MATRIX_LED_COUNT] = { -/* Refer to CKLED2001 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[LED_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | LED address * | | */ diff --git a/keyboards/keychron/q0/config.h b/keyboards/keychron/q0/config.h index c0366b1ed8..f4ec417043 100644 --- a/keyboards/keychron/q0/config.h +++ b/keyboards/keychron/q0/config.h @@ -16,7 +16,7 @@ #pragma once -#define CKLED2001_CURRENT_TUNE { 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70 } +#define SNLED27351_CURRENT_TUNE { 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70 } /* turn off effects when suspended */ #define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/keychron/q0/rev_0130/config.h b/keyboards/keychron/q0/rev_0130/config.h index c6a241a1ce..8b14e05a29 100644 --- a/keyboards/keychron/q0/rev_0130/config.h +++ b/keyboards/keychron/q0/rev_0130/config.h @@ -17,8 +17,8 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 21 diff --git a/keyboards/keychron/q0/rev_0130/info.json b/keyboards/keychron/q0/rev_0130/info.json index f6225c884a..6b5a29d7ea 100644 --- a/keyboards/keychron/q0/rev_0130/info.json +++ b/keyboards/keychron/q0/rev_0130/info.json @@ -29,7 +29,7 @@ "processor": "STM32L432", "bootloader": "stm32-dfu", "rgb_matrix": { - "driver": "ckled2001", + "driver": "snled27351", "animations": { "band_spiral_val": true, "breathing": true, diff --git a/keyboards/keychron/q0/rev_0130/rev_0130.c b/keyboards/keychron/q0/rev_0130/rev_0130.c index ffe82a6d8c..05803234c0 100644 --- a/keyboards/keychron/q0/rev_0130/rev_0130.c +++ b/keyboards/keychron/q0/rev_0130/rev_0130.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q0/rev_0131/config.h b/keyboards/keychron/q0/rev_0131/config.h index f1d06a2842..f3187704a7 100644 --- a/keyboards/keychron/q0/rev_0131/config.h +++ b/keyboards/keychron/q0/rev_0131/config.h @@ -17,14 +17,14 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 26 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL /* Enable num-lock LED */ #define NUM_LOCK_LED_INDEX 5 diff --git a/keyboards/keychron/q0/rev_0131/info.json b/keyboards/keychron/q0/rev_0131/info.json index c569e498f4..24d2a0488a 100644 --- a/keyboards/keychron/q0/rev_0131/info.json +++ b/keyboards/keychron/q0/rev_0131/info.json @@ -38,7 +38,7 @@ "processor": "STM32L432", "bootloader": "stm32-dfu", "rgb_matrix": { - "driver": "ckled2001", + "driver": "snled27351", "animations": { "band_spiral_val": true, "breathing": true, diff --git a/keyboards/keychron/q0/rev_0131/rev_0131.c b/keyboards/keychron/q0/rev_0131/rev_0131.c index 282c511ce2..0466e1a584 100644 --- a/keyboards/keychron/q0/rev_0131/rev_0131.c +++ b/keyboards/keychron/q0/rev_0131/rev_0131.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c index c5abcb4f6e..a9df1609e0 100644 --- a/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q10/ansi_encoder/info.json b/keyboards/keychron/q10/ansi_encoder/info.json index 8a8a624154..da2cb106e3 100644 --- a/keyboards/keychron/q10/ansi_encoder/info.json +++ b/keyboards/keychron/q10/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q10/config.h b/keyboards/keychron/q10/config.h index 3a0d613510..b31322464e 100644 --- a/keyboards/keychron/q10/config.h +++ b/keyboards/keychron/q10/config.h @@ -30,9 +30,9 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -41,8 +41,8 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_CURRENT_TUNE \ { 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A } /* DIP switch */ diff --git a/keyboards/keychron/q10/iso_encoder/info.json b/keyboards/keychron/q10/iso_encoder/info.json index d7e1bf2885..08e6b2deae 100644 --- a/keyboards/keychron/q10/iso_encoder/info.json +++ b/keyboards/keychron/q10/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q10/iso_encoder/iso_encoder.c b/keyboards/keychron/q10/iso_encoder/iso_encoder.c index 1e8f80ddd8..fbe4bca637 100644 --- a/keyboards/keychron/q10/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q10/iso_encoder/iso_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q11/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q11/ansi_encoder/ansi_encoder.c index 0585ae9c96..f7acae7add 100755 --- a/keyboards/keychron/q11/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q11/ansi_encoder/ansi_encoder.c @@ -17,8 +17,8 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q11/config.h b/keyboards/keychron/q11/config.h index 90bd7e0a56..6880ee7c2d 100755 --- a/keyboards/keychron/q11/config.h +++ b/keyboards/keychron/q11/config.h @@ -27,8 +27,8 @@ #define MATRIX_MASKED // actual mask is defined by `matrix_mask` in `q11.c` /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -37,7 +37,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0x80, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0x80, 0xFF, 0xFF } // 300mA /* EEPROM Driver Configuration */ diff --git a/keyboards/keychron/q11/info.json b/keyboards/keychron/q11/info.json index cd2864979d..7a56725324 100755 --- a/keyboards/keychron/q11/info.json +++ b/keyboards/keychron/q11/info.json @@ -59,7 +59,7 @@ ] }, "rgb_matrix": { - "driver": "ckled2001", + "driver": "snled27351", "animations": { "breathing": true, "band_spiral_val": true, diff --git a/keyboards/keychron/q11/iso_encoder/iso_encoder.c b/keyboards/keychron/q11/iso_encoder/iso_encoder.c index 08858d9b79..a2db569710 100755 --- a/keyboards/keychron/q11/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q11/iso_encoder/iso_encoder.c @@ -17,8 +17,8 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED2001 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c index 2cfaeae8fc..350da52661 100644 --- a/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c @@ -17,8 +17,8 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q12/ansi_encoder/info.json b/keyboards/keychron/q12/ansi_encoder/info.json index 97c1334ffd..291fd1774c 100644 --- a/keyboards/keychron/q12/ansi_encoder/info.json +++ b/keyboards/keychron/q12/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q12/config.h b/keyboards/keychron/q12/config.h index 52c4ade5a6..1114c966aa 100644 --- a/keyboards/keychron/q12/config.h +++ b/keyboards/keychron/q12/config.h @@ -26,9 +26,9 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -37,7 +37,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xAD, 0xAD, 0x55, 0xAD, 0xAD, 0x55, 0xAD, 0xAD, 0x55, 0xAD, 0xAD, 0x55 } /* DIP switch */ diff --git a/keyboards/keychron/q12/iso_encoder/info.json b/keyboards/keychron/q12/iso_encoder/info.json index cd848c86b6..edd0d0ea43 100644 --- a/keyboards/keychron/q12/iso_encoder/info.json +++ b/keyboards/keychron/q12/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q12/iso_encoder/iso_encoder.c b/keyboards/keychron/q12/iso_encoder/iso_encoder.c index 8090649d33..37d9db10b4 100644 --- a/keyboards/keychron/q12/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q12/iso_encoder/iso_encoder.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q2/ansi/ansi.c b/keyboards/keychron/q2/ansi/ansi.c index baf12d3df0..d0ff0a1869 100644 --- a/keyboards/keychron/q2/ansi/ansi.c +++ b/keyboards/keychron/q2/ansi/ansi.c @@ -17,8 +17,8 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q2/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q2/ansi_encoder/ansi_encoder.c index baf12d3df0..d0ff0a1869 100644 --- a/keyboards/keychron/q2/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q2/ansi_encoder/ansi_encoder.c @@ -17,8 +17,8 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q2/config.h b/keyboards/keychron/q2/config.h index b6b2e8356a..9b17851400 100644 --- a/keyboards/keychron/q2/config.h +++ b/keyboards/keychron/q2/config.h @@ -22,11 +22,11 @@ #define DIP_SWITCH_MATRIX_GRID { {4, 4} } /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL /* Disable DIP switch in matrix data */ #define MATRIX_MASKED diff --git a/keyboards/keychron/q2/info.json b/keyboards/keychron/q2/info.json index 7667ac5b28..47d9aa83b1 100644 --- a/keyboards/keychron/q2/info.json +++ b/keyboards/keychron/q2/info.json @@ -51,7 +51,7 @@ "splash": true, "typing_heatmap": true }, - "driver": "ckled2001" + "driver": "snled27351" }, "url": "https://github.com/Keychron", "usb": { diff --git a/keyboards/keychron/q2/iso/iso.c b/keyboards/keychron/q2/iso/iso.c index c852b8d0cb..a54c90bc4b 100644 --- a/keyboards/keychron/q2/iso/iso.c +++ b/keyboards/keychron/q2/iso/iso.c @@ -17,8 +17,8 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q2/iso_encoder/iso_encoder.c b/keyboards/keychron/q2/iso_encoder/iso_encoder.c index c852b8d0cb..a54c90bc4b 100644 --- a/keyboards/keychron/q2/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q2/iso_encoder/iso_encoder.c @@ -17,8 +17,8 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q2/jis/config.h b/keyboards/keychron/q2/jis/config.h index fa6fc4e91a..0d811e0845 100644 --- a/keyboards/keychron/q2/jis/config.h +++ b/keyboards/keychron/q2/jis/config.h @@ -19,7 +19,7 @@ /* RGB Matrix Configuration */ #define RGB_MATRIX_LED_COUNT 71 -#define CKLED2001_CURRENT_TUNE { 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D } +#define SNLED27351_CURRENT_TUNE { 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D } /* Enable caps-lock LED */ #define CAPS_LOCK_LED_INDEX 30 diff --git a/keyboards/keychron/q2/jis/jis.c b/keyboards/keychron/q2/jis/jis.c index 9d8f439d6f..d877e225d9 100644 --- a/keyboards/keychron/q2/jis/jis.c +++ b/keyboards/keychron/q2/jis/jis.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q2/jis_encoder/config.h b/keyboards/keychron/q2/jis_encoder/config.h index fa6fc4e91a..0d811e0845 100644 --- a/keyboards/keychron/q2/jis_encoder/config.h +++ b/keyboards/keychron/q2/jis_encoder/config.h @@ -19,7 +19,7 @@ /* RGB Matrix Configuration */ #define RGB_MATRIX_LED_COUNT 71 -#define CKLED2001_CURRENT_TUNE { 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D } +#define SNLED27351_CURRENT_TUNE { 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D } /* Enable caps-lock LED */ #define CAPS_LOCK_LED_INDEX 30 diff --git a/keyboards/keychron/q2/jis_encoder/jis_encoder.c b/keyboards/keychron/q2/jis_encoder/jis_encoder.c index 9d8f439d6f..d877e225d9 100644 --- a/keyboards/keychron/q2/jis_encoder/jis_encoder.c +++ b/keyboards/keychron/q2/jis_encoder/jis_encoder.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q3/ansi/ansi.c b/keyboards/keychron/q3/ansi/ansi.c index 220cfcb98d..8327ee430b 100644 --- a/keyboards/keychron/q3/ansi/ansi.c +++ b/keyboards/keychron/q3/ansi/ansi.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q3/ansi/config.h b/keyboards/keychron/q3/ansi/config.h index 89300267be..77afc9b9b6 100644 --- a/keyboards/keychron/q3/ansi/config.h +++ b/keyboards/keychron/q3/ansi/config.h @@ -22,7 +22,7 @@ /* RGB Matrix Configuration */ #define RGB_MATRIX_LED_COUNT 87 -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 } /* Enable CapsLcok LED */ diff --git a/keyboards/keychron/q3/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q3/ansi_encoder/ansi_encoder.c index 3bee55a63c..a386e87a01 100644 --- a/keyboards/keychron/q3/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q3/ansi_encoder/ansi_encoder.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q3/ansi_encoder/config.h b/keyboards/keychron/q3/ansi_encoder/config.h index 78c82969d0..2a6f9ba4c5 100644 --- a/keyboards/keychron/q3/ansi_encoder/config.h +++ b/keyboards/keychron/q3/ansi_encoder/config.h @@ -23,7 +23,7 @@ /* RGB Matrix Configuration */ #define RGB_MATRIX_LED_COUNT 87 -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 } /* Enable CapsLcok LED */ diff --git a/keyboards/keychron/q3/config.h b/keyboards/keychron/q3/config.h index 28328358e9..035aea2bb3 100644 --- a/keyboards/keychron/q3/config.h +++ b/keyboards/keychron/q3/config.h @@ -17,9 +17,9 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -28,7 +28,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL /* DIP switch */ #define DIP_SWITCH_MATRIX_GRID { {5, 4} } diff --git a/keyboards/keychron/q3/info.json b/keyboards/keychron/q3/info.json index 835aea4504..c08d73f26a 100644 --- a/keyboards/keychron/q3/info.json +++ b/keyboards/keychron/q3/info.json @@ -43,7 +43,7 @@ "splash": true, "typing_heatmap": true }, - "driver": "ckled2001" + "driver": "snled27351" }, "url": "https://github.com/Keychron", "usb": { diff --git a/keyboards/keychron/q3/iso/config.h b/keyboards/keychron/q3/iso/config.h index eb141cb270..3ffda1ce1e 100644 --- a/keyboards/keychron/q3/iso/config.h +++ b/keyboards/keychron/q3/iso/config.h @@ -22,7 +22,7 @@ /* RGB Matrix Configuration */ #define RGB_MATRIX_LED_COUNT 88 -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 } /* Enable caps-lock LED */ diff --git a/keyboards/keychron/q3/iso/iso.c b/keyboards/keychron/q3/iso/iso.c index 1c179a34b4..725af67006 100644 --- a/keyboards/keychron/q3/iso/iso.c +++ b/keyboards/keychron/q3/iso/iso.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q3/iso_encoder/config.h b/keyboards/keychron/q3/iso_encoder/config.h index 050c940054..6893c2e8ff 100644 --- a/keyboards/keychron/q3/iso_encoder/config.h +++ b/keyboards/keychron/q3/iso_encoder/config.h @@ -23,7 +23,7 @@ /* RGB Matrix Configuration */ #define RGB_MATRIX_LED_COUNT 88 -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 } /* Enable caps-lock LED */ diff --git a/keyboards/keychron/q3/iso_encoder/iso_encoder.c b/keyboards/keychron/q3/iso_encoder/iso_encoder.c index 1c179a34b4..725af67006 100644 --- a/keyboards/keychron/q3/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q3/iso_encoder/iso_encoder.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q3/jis/config.h b/keyboards/keychron/q3/jis/config.h index 026fe54568..1ea4386bba 100644 --- a/keyboards/keychron/q3/jis/config.h +++ b/keyboards/keychron/q3/jis/config.h @@ -22,7 +22,7 @@ /* RGB Matrix Configuration */ #define RGB_MATRIX_LED_COUNT 91 -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44 } /* Enable CapsLcok LED */ diff --git a/keyboards/keychron/q3/jis/jis.c b/keyboards/keychron/q3/jis/jis.c index 9b10f1d103..4b19eca52f 100644 --- a/keyboards/keychron/q3/jis/jis.c +++ b/keyboards/keychron/q3/jis/jis.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q3/jis_encoder/config.h b/keyboards/keychron/q3/jis_encoder/config.h index 13f132c02c..5c5efb4ff6 100644 --- a/keyboards/keychron/q3/jis_encoder/config.h +++ b/keyboards/keychron/q3/jis_encoder/config.h @@ -23,7 +23,7 @@ /* RGB Matrix Configuration */ #define RGB_MATRIX_LED_COUNT 92 -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44 } /* Enable CapsLcok LED */ diff --git a/keyboards/keychron/q3/jis_encoder/jis_encoder.c b/keyboards/keychron/q3/jis_encoder/jis_encoder.c index 1515e9a353..8770f9d33c 100644 --- a/keyboards/keychron/q3/jis_encoder/jis_encoder.c +++ b/keyboards/keychron/q3/jis_encoder/jis_encoder.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q4/ansi_v1/ansi_v1.c b/keyboards/keychron/q4/ansi_v1/ansi_v1.c index 88599103ef..953da2df8b 100644 --- a/keyboards/keychron/q4/ansi_v1/ansi_v1.c +++ b/keyboards/keychron/q4/ansi_v1/ansi_v1.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q4/ansi_v1/config.h b/keyboards/keychron/q4/ansi_v1/config.h index cf12c75966..1bd02e42a6 100644 --- a/keyboards/keychron/q4/ansi_v1/config.h +++ b/keyboards/keychron/q4/ansi_v1/config.h @@ -17,17 +17,17 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 31 #define DRIVER_2_LED_TOTAL 30 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_CURRENT_TUNE \ { 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60 } /* Enable CapsLcok LED*/ diff --git a/keyboards/keychron/q4/ansi_v1/info.json b/keyboards/keychron/q4/ansi_v1/info.json index 8ee286c481..78226e1985 100644 --- a/keyboards/keychron/q4/ansi_v1/info.json +++ b/keyboards/keychron/q4/ansi_v1/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"], diff --git a/keyboards/keychron/q4/ansi_v2/ansi_v2.c b/keyboards/keychron/q4/ansi_v2/ansi_v2.c index d454a796fa..b09fb7810a 100644 --- a/keyboards/keychron/q4/ansi_v2/ansi_v2.c +++ b/keyboards/keychron/q4/ansi_v2/ansi_v2.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q4/ansi_v2/config.h b/keyboards/keychron/q4/ansi_v2/config.h index 1bcaf204ef..ea9b45607e 100644 --- a/keyboards/keychron/q4/ansi_v2/config.h +++ b/keyboards/keychron/q4/ansi_v2/config.h @@ -17,14 +17,14 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 61 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60 } /* Enable CapsLcok LED*/ diff --git a/keyboards/keychron/q4/ansi_v2/info.json b/keyboards/keychron/q4/ansi_v2/info.json index 8ee286c481..78226e1985 100644 --- a/keyboards/keychron/q4/ansi_v2/info.json +++ b/keyboards/keychron/q4/ansi_v2/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"], diff --git a/keyboards/keychron/q4/iso/config.h b/keyboards/keychron/q4/iso/config.h index b61f8be4a4..e8aed1af0f 100644 --- a/keyboards/keychron/q4/iso/config.h +++ b/keyboards/keychron/q4/iso/config.h @@ -17,14 +17,14 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 62 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60 } /* Enable CapsLcok LED*/ diff --git a/keyboards/keychron/q4/iso/info.json b/keyboards/keychron/q4/iso/info.json index f8945cda61..7143fba9b1 100644 --- a/keyboards/keychron/q4/iso/info.json +++ b/keyboards/keychron/q4/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"], diff --git a/keyboards/keychron/q4/iso/iso.c b/keyboards/keychron/q4/iso/iso.c index 24cbcfd745..a7c42914d2 100644 --- a/keyboards/keychron/q4/iso/iso.c +++ b/keyboards/keychron/q4/iso/iso.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q5/ansi/ansi.c b/keyboards/keychron/q5/ansi/ansi.c index dda563cd79..8c80245fbc 100644 --- a/keyboards/keychron/q5/ansi/ansi.c +++ b/keyboards/keychron/q5/ansi/ansi.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q5/ansi/info.json b/keyboards/keychron/q5/ansi/info.json index 55d7ae0165..8795957c45 100644 --- a/keyboards/keychron/q5/ansi/info.json +++ b/keyboards/keychron/q5/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/q5/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q5/ansi_encoder/ansi_encoder.c index 4d3cc0f036..d5f67f1297 100644 --- a/keyboards/keychron/q5/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q5/ansi_encoder/ansi_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q5/ansi_encoder/info.json b/keyboards/keychron/q5/ansi_encoder/info.json index 468261b1e9..ae4a58e55d 100644 --- a/keyboards/keychron/q5/ansi_encoder/info.json +++ b/keyboards/keychron/q5/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q5/config.h b/keyboards/keychron/q5/config.h index d459d8c54e..49216fba1f 100644 --- a/keyboards/keychron/q5/config.h +++ b/keyboards/keychron/q5/config.h @@ -30,11 +30,11 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56 } /* DIP switch */ diff --git a/keyboards/keychron/q5/iso/info.json b/keyboards/keychron/q5/iso/info.json index 3b0b2ea1a0..2cc2ce9640 100644 --- a/keyboards/keychron/q5/iso/info.json +++ b/keyboards/keychron/q5/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/q5/iso/iso.c b/keyboards/keychron/q5/iso/iso.c index 65924abd76..8a7cb863ec 100644 --- a/keyboards/keychron/q5/iso/iso.c +++ b/keyboards/keychron/q5/iso/iso.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q5/iso_encoder/info.json b/keyboards/keychron/q5/iso_encoder/info.json index eefa6dc693..a425cf3145 100644 --- a/keyboards/keychron/q5/iso_encoder/info.json +++ b/keyboards/keychron/q5/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q5/iso_encoder/iso_encoder.c b/keyboards/keychron/q5/iso_encoder/iso_encoder.c index 22ba9e2d4e..009e8043db 100644 --- a/keyboards/keychron/q5/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q5/iso_encoder/iso_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q6/ansi/ansi.c b/keyboards/keychron/q6/ansi/ansi.c index a81d5f9e9f..80eaad02b3 100644 --- a/keyboards/keychron/q6/ansi/ansi.c +++ b/keyboards/keychron/q6/ansi/ansi.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q6/ansi/info.json b/keyboards/keychron/q6/ansi/info.json index fdec220e80..108cc46379 100644 --- a/keyboards/keychron/q6/ansi/info.json +++ b/keyboards/keychron/q6/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c index 6fbece3678..9c88533620 100644 --- a/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q6/ansi_encoder/info.json b/keyboards/keychron/q6/ansi_encoder/info.json index df3902f44a..fc2da19f73 100644 --- a/keyboards/keychron/q6/ansi_encoder/info.json +++ b/keyboards/keychron/q6/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q6/config.h b/keyboards/keychron/q6/config.h index 98e3642c4d..8b26545724 100644 --- a/keyboards/keychron/q6/config.h +++ b/keyboards/keychron/q6/config.h @@ -24,11 +24,11 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xA4, 0xA4, 0x52, 0xA4, 0xA4, 0x52, 0xA4, 0xA4, 0x52, 0xA4, 0xA4, 0x52 } /* DIP switch */ diff --git a/keyboards/keychron/q6/iso/info.json b/keyboards/keychron/q6/iso/info.json index dfaa20aa93..269605ff8b 100644 --- a/keyboards/keychron/q6/iso/info.json +++ b/keyboards/keychron/q6/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/q6/iso/iso.c b/keyboards/keychron/q6/iso/iso.c index f2081177e9..d2aa010c05 100644 --- a/keyboards/keychron/q6/iso/iso.c +++ b/keyboards/keychron/q6/iso/iso.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q6/iso_encoder/info.json b/keyboards/keychron/q6/iso_encoder/info.json index 4590616831..e5aa0bd8f5 100644 --- a/keyboards/keychron/q6/iso_encoder/info.json +++ b/keyboards/keychron/q6/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q6/iso_encoder/iso_encoder.c b/keyboards/keychron/q6/iso_encoder/iso_encoder.c index e9a6f6edfc..66e066b839 100644 --- a/keyboards/keychron/q6/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q6/iso_encoder/iso_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q60/ansi/ansi.c b/keyboards/keychron/q60/ansi/ansi.c index bb3c84b64a..ac72737146 100644 --- a/keyboards/keychron/q60/ansi/ansi.c +++ b/keyboards/keychron/q60/ansi/ansi.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q60/ansi/info.json b/keyboards/keychron/q60/ansi/info.json index 95b1c4e472..f5832b2d8f 100644 --- a/keyboards/keychron/q60/ansi/info.json +++ b/keyboards/keychron/q60/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"], diff --git a/keyboards/keychron/q60/config.h b/keyboards/keychron/q60/config.h index e5d0954ba0..9816ff3479 100644 --- a/keyboards/keychron/q60/config.h +++ b/keyboards/keychron/q60/config.h @@ -17,8 +17,8 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -27,7 +27,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xD8, 0xD8, 0x60, 0xD8, 0xD8, 0x60, 0xD8, 0xD8, 0x60, 0xD8, 0xD8, 0x60 } /* DIP switch */ diff --git a/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c index fffa00194d..8e9b37b806 100644 --- a/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q65/ansi_encoder/info.json b/keyboards/keychron/q65/ansi_encoder/info.json index 0f7679945a..a42d7d289c 100644 --- a/keyboards/keychron/q65/ansi_encoder/info.json +++ b/keyboards/keychron/q65/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q65/config.h b/keyboards/keychron/q65/config.h index 35d05ffab7..43b7ef9b04 100644 --- a/keyboards/keychron/q65/config.h +++ b/keyboards/keychron/q65/config.h @@ -26,9 +26,9 @@ { NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, A2, A3, A4, A5, A6, A7, B0, B1 } /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -37,8 +37,8 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 30U -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_CURRENT_TUNE \ { 0xB8, 0xB8, 0x58, 0xB8, 0xB8, 0x58, 0xB8, 0xB8, 0x58, 0xB8, 0xB8, 0x58 } /* Disable DIP switch in matrix data */ diff --git a/keyboards/keychron/q7/ansi/ansi.c b/keyboards/keychron/q7/ansi/ansi.c index 3dccb8b660..190c110a77 100644 --- a/keyboards/keychron/q7/ansi/ansi.c +++ b/keyboards/keychron/q7/ansi/ansi.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q7/ansi/info.json b/keyboards/keychron/q7/ansi/info.json index 2549e329f2..717fe357b7 100644 --- a/keyboards/keychron/q7/ansi/info.json +++ b/keyboards/keychron/q7/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "B5"], diff --git a/keyboards/keychron/q7/config.h b/keyboards/keychron/q7/config.h index 125e17a3da..9593196149 100644 --- a/keyboards/keychron/q7/config.h +++ b/keyboards/keychron/q7/config.h @@ -17,9 +17,9 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -28,8 +28,8 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_CURRENT_TUNE \ { 0xF8, 0xF8, 0x80, 0xF8, 0xF8, 0x80, 0xF8, 0xF8, 0x80, 0xF8, 0xF8, 0x80 } /* DIP switch */ diff --git a/keyboards/keychron/q7/iso/info.json b/keyboards/keychron/q7/iso/info.json index 27262eb4f3..d57c5b17b9 100644 --- a/keyboards/keychron/q7/iso/info.json +++ b/keyboards/keychron/q7/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "B5"], diff --git a/keyboards/keychron/q7/iso/iso.c b/keyboards/keychron/q7/iso/iso.c index 039bd13836..13354b9f0b 100644 --- a/keyboards/keychron/q7/iso/iso.c +++ b/keyboards/keychron/q7/iso/iso.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q8/ansi/ansi.c b/keyboards/keychron/q8/ansi/ansi.c index e9c4edeb3e..3bb10b383d 100644 --- a/keyboards/keychron/q8/ansi/ansi.c +++ b/keyboards/keychron/q8/ansi/ansi.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q8/ansi/info.json b/keyboards/keychron/q8/ansi/info.json index 7ee5b6c21f..f733004270 100644 --- a/keyboards/keychron/q8/ansi/info.json +++ b/keyboards/keychron/q8/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/q8/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q8/ansi_encoder/ansi_encoder.c index e9c4edeb3e..3bb10b383d 100644 --- a/keyboards/keychron/q8/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q8/ansi_encoder/ansi_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q8/ansi_encoder/info.json b/keyboards/keychron/q8/ansi_encoder/info.json index a4c3ac77e1..ccf9453d53 100644 --- a/keyboards/keychron/q8/ansi_encoder/info.json +++ b/keyboards/keychron/q8/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/q8/config.h b/keyboards/keychron/q8/config.h index 4b6d5f1614..7b23723f99 100644 --- a/keyboards/keychron/q8/config.h +++ b/keyboards/keychron/q8/config.h @@ -20,9 +20,9 @@ // #define MATRIX_UNSELECT_DRIVE_HIGH /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -31,8 +31,8 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_CURRENT_TUNE \ { 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60 } /* DIP switch */ diff --git a/keyboards/keychron/q8/iso/info.json b/keyboards/keychron/q8/iso/info.json index 03a6cd1fdd..28d586984e 100644 --- a/keyboards/keychron/q8/iso/info.json +++ b/keyboards/keychron/q8/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/q8/iso/iso.c b/keyboards/keychron/q8/iso/iso.c index 205989383e..dbcefd76c0 100644 --- a/keyboards/keychron/q8/iso/iso.c +++ b/keyboards/keychron/q8/iso/iso.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q8/iso_encoder/info.json b/keyboards/keychron/q8/iso_encoder/info.json index eb9dc22503..0d96f3f193 100644 --- a/keyboards/keychron/q8/iso_encoder/info.json +++ b/keyboards/keychron/q8/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/q8/iso_encoder/iso_encoder.c b/keyboards/keychron/q8/iso_encoder/iso_encoder.c index 205989383e..dbcefd76c0 100644 --- a/keyboards/keychron/q8/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q8/iso_encoder/iso_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q9/ansi/ansi.c b/keyboards/keychron/q9/ansi/ansi.c index b98149a5f8..9178c8dcc7 100644 --- a/keyboards/keychron/q9/ansi/ansi.c +++ b/keyboards/keychron/q9/ansi/ansi.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q9/ansi/info.json b/keyboards/keychron/q9/ansi/info.json index 952d3158c8..ccb29a749b 100644 --- a/keyboards/keychron/q9/ansi/info.json +++ b/keyboards/keychron/q9/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"], diff --git a/keyboards/keychron/q9/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q9/ansi_encoder/ansi_encoder.c index de0eda1c02..58d66e0473 100644 --- a/keyboards/keychron/q9/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q9/ansi_encoder/ansi_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q9/ansi_encoder/info.json b/keyboards/keychron/q9/ansi_encoder/info.json index 4fd5352638..3826a1b768 100644 --- a/keyboards/keychron/q9/ansi_encoder/info.json +++ b/keyboards/keychron/q9/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"], diff --git a/keyboards/keychron/q9/config.h b/keyboards/keychron/q9/config.h index de5795a5f6..e423d962e0 100644 --- a/keyboards/keychron/q9/config.h +++ b/keyboards/keychron/q9/config.h @@ -23,8 +23,8 @@ #define DIP_SWITCH_MATRIX_GRID { { 3, 4 } } /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -33,7 +33,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70 } /* turn off effects when suspended */ diff --git a/keyboards/keychron/q9/iso/info.json b/keyboards/keychron/q9/iso/info.json index 3e9a7690c1..a9586d6d91 100644 --- a/keyboards/keychron/q9/iso/info.json +++ b/keyboards/keychron/q9/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"], diff --git a/keyboards/keychron/q9/iso/iso.c b/keyboards/keychron/q9/iso/iso.c index 0e258e8c63..1917b61f37 100644 --- a/keyboards/keychron/q9/iso/iso.c +++ b/keyboards/keychron/q9/iso/iso.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q9/iso_encoder/info.json b/keyboards/keychron/q9/iso_encoder/info.json index ecf944744d..1c74566da1 100644 --- a/keyboards/keychron/q9/iso_encoder/info.json +++ b/keyboards/keychron/q9/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"], diff --git a/keyboards/keychron/q9/iso_encoder/iso_encoder.c b/keyboards/keychron/q9/iso_encoder/iso_encoder.c index 0804f33671..3a161fe9d7 100644 --- a/keyboards/keychron/q9/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q9/iso_encoder/iso_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q9_plus/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q9_plus/ansi_encoder/ansi_encoder.c index c0b4b3a32d..d264334fa0 100755 --- a/keyboards/keychron/q9_plus/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q9_plus/ansi_encoder/ansi_encoder.c @@ -17,8 +17,8 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED2001 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q9_plus/config.h b/keyboards/keychron/q9_plus/config.h index a8cba07e90..8416de0d6a 100755 --- a/keyboards/keychron/q9_plus/config.h +++ b/keyboards/keychron/q9_plus/config.h @@ -23,8 +23,8 @@ #define DIP_SWITCH_MATRIX_GRID {{ 3, 4 }} /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 1 -#define DRIVER_ADDR_1 0b1110100 +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -34,7 +34,7 @@ #define I2C1_TIMINGR_SCLL 51U /* Set LED driver current */ -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70 } /* turn off effects when suspended */ diff --git a/keyboards/keychron/q9_plus/info.json b/keyboards/keychron/q9_plus/info.json index c56650cb1d..9f8703de37 100755 --- a/keyboards/keychron/q9_plus/info.json +++ b/keyboards/keychron/q9_plus/info.json @@ -96,7 +96,7 @@ } }, "rgb_matrix": { - "driver": "ckled2001", + "driver": "snled27351", "animations": { "breathing": true, "band_spiral_val": true, diff --git a/keyboards/keychron/s1/ansi/rgb/config.h b/keyboards/keychron/s1/ansi/rgb/config.h index 1f77559339..21569bd07c 100644 --- a/keyboards/keychron/s1/ansi/rgb/config.h +++ b/keyboards/keychron/s1/ansi/rgb/config.h @@ -17,15 +17,15 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND #define DRIVER_1_LED_TOTAL 46 #define DRIVER_2_LED_TOTAL 38 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_CURRENT_TUNE \ { 0xA0, 0xA0, 0x48, 0xA0, 0xA0, 0x48, 0xA0, 0xA0, 0x48, 0xA0, 0xA0, 0x48 } /* Disable RGB lighting when PC is in suspend */ diff --git a/keyboards/keychron/s1/ansi/rgb/info.json b/keyboards/keychron/s1/ansi/rgb/info.json index 3bef5f343c..6b49cb18e0 100644 --- a/keyboards/keychron/s1/ansi/rgb/info.json +++ b/keyboards/keychron/s1/ansi/rgb/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"], diff --git a/keyboards/keychron/s1/ansi/rgb/rgb.c b/keyboards/keychron/s1/ansi/rgb/rgb.c index a0a2d25f94..ca39b0c796 100644 --- a/keyboards/keychron/s1/ansi/rgb/rgb.c +++ b/keyboards/keychron/s1/ansi/rgb/rgb.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED2001 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/s1/ansi/white/config.h b/keyboards/keychron/s1/ansi/white/config.h index 02eeb7fc81..0ee5470f69 100644 --- a/keyboards/keychron/s1/ansi/white/config.h +++ b/keyboards/keychron/s1/ansi/white/config.h @@ -17,13 +17,13 @@ #pragma once /* LED Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND #define DRIVER_1_LED_TOTAL 84 #define LED_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_6CHANNEL -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_6CHANNEL +#define SNLED27351_CURRENT_TUNE \ { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 } // 250mA // { 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40 } // 127mA diff --git a/keyboards/keychron/s1/ansi/white/info.json b/keyboards/keychron/s1/ansi/white/info.json index ff0a6b69cb..bcd64eea59 100644 --- a/keyboards/keychron/s1/ansi/white/info.json +++ b/keyboards/keychron/s1/ansi/white/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "led_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"], diff --git a/keyboards/keychron/s1/ansi/white/white.c b/keyboards/keychron/s1/ansi/white/white.c index e41ba06401..b3a49ae9eb 100644 --- a/keyboards/keychron/s1/ansi/white/white.c +++ b/keyboards/keychron/s1/ansi/white/white.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[LED_MATRIX_LED_COUNT] = { -/* Refer to CKLED2001 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[LED_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | LED address * | | */ diff --git a/keyboards/keychron/v1/ansi/ansi.c b/keyboards/keychron/v1/ansi/ansi.c index dc488d1b73..ed8a6ed1af 100644 --- a/keyboards/keychron/v1/ansi/ansi.c +++ b/keyboards/keychron/v1/ansi/ansi.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v1/ansi/config.h b/keyboards/keychron/v1/ansi/config.h index 143042076d..5d10cae886 100644 --- a/keyboards/keychron/v1/ansi/config.h +++ b/keyboards/keychron/v1/ansi/config.h @@ -21,7 +21,7 @@ #define DRIVER_2_LED_TOTAL 37 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50 } /* Enable caps-lock LED */ diff --git a/keyboards/keychron/v1/ansi/info.json b/keyboards/keychron/v1/ansi/info.json index f4c526bfdc..34fdd6ac31 100644 --- a/keyboards/keychron/v1/ansi/info.json +++ b/keyboards/keychron/v1/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c index dc488d1b73..ed8a6ed1af 100644 --- a/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v1/ansi_encoder/config.h b/keyboards/keychron/v1/ansi_encoder/config.h index c32e4d104a..ea0733eeaf 100644 --- a/keyboards/keychron/v1/ansi_encoder/config.h +++ b/keyboards/keychron/v1/ansi_encoder/config.h @@ -21,7 +21,7 @@ #define DRIVER_2_LED_TOTAL 37 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50 } /* Encoder Configuration */ diff --git a/keyboards/keychron/v1/ansi_encoder/info.json b/keyboards/keychron/v1/ansi_encoder/info.json index 9beffb9f6a..43e07609ae 100644 --- a/keyboards/keychron/v1/ansi_encoder/info.json +++ b/keyboards/keychron/v1/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v1/config.h b/keyboards/keychron/v1/config.h index 8edbf05ca8..e08a27f1c3 100644 --- a/keyboards/keychron/v1/config.h +++ b/keyboards/keychron/v1/config.h @@ -32,9 +32,9 @@ #define DIP_SWITCH_MATRIX_GRID { {5,4} } /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -43,7 +43,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL /* turn off effects when suspended */ #define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/keychron/v1/iso/config.h b/keyboards/keychron/v1/iso/config.h index 13ebd695f3..acb35ac7ac 100644 --- a/keyboards/keychron/v1/iso/config.h +++ b/keyboards/keychron/v1/iso/config.h @@ -21,7 +21,7 @@ #define DRIVER_2_LED_TOTAL 38 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50 } /* Enable caps-lock LED */ diff --git a/keyboards/keychron/v1/iso/info.json b/keyboards/keychron/v1/iso/info.json index 5a4c74234c..6dbf50a931 100644 --- a/keyboards/keychron/v1/iso/info.json +++ b/keyboards/keychron/v1/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v1/iso/iso.c b/keyboards/keychron/v1/iso/iso.c index 1d9ef76997..00909c85e3 100644 --- a/keyboards/keychron/v1/iso/iso.c +++ b/keyboards/keychron/v1/iso/iso.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v1/iso_encoder/config.h b/keyboards/keychron/v1/iso_encoder/config.h index fd231aa98a..1a928cd9b7 100644 --- a/keyboards/keychron/v1/iso_encoder/config.h +++ b/keyboards/keychron/v1/iso_encoder/config.h @@ -21,7 +21,7 @@ #define DRIVER_2_LED_TOTAL 38 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50 } /* Encoder Configuration */ diff --git a/keyboards/keychron/v1/iso_encoder/info.json b/keyboards/keychron/v1/iso_encoder/info.json index 106b43b5e7..1f009ac0c7 100644 --- a/keyboards/keychron/v1/iso_encoder/info.json +++ b/keyboards/keychron/v1/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v1/iso_encoder/iso_encoder.c b/keyboards/keychron/v1/iso_encoder/iso_encoder.c index 1d9ef76997..00909c85e3 100644 --- a/keyboards/keychron/v1/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v1/iso_encoder/iso_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v1/jis/config.h b/keyboards/keychron/v1/jis/config.h index 474a84c8b9..ef778528fe 100644 --- a/keyboards/keychron/v1/jis/config.h +++ b/keyboards/keychron/v1/jis/config.h @@ -21,7 +21,7 @@ #define DRIVER_2_LED_TOTAL 40 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D } /* Enable caps-lock LED */ diff --git a/keyboards/keychron/v1/jis/info.json b/keyboards/keychron/v1/jis/info.json index 16365ccd9e..28425b5b50 100644 --- a/keyboards/keychron/v1/jis/info.json +++ b/keyboards/keychron/v1/jis/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v1/jis/jis.c b/keyboards/keychron/v1/jis/jis.c index 7f2f02bfa5..6bc647656d 100644 --- a/keyboards/keychron/v1/jis/jis.c +++ b/keyboards/keychron/v1/jis/jis.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v1/jis_encoder/config.h b/keyboards/keychron/v1/jis_encoder/config.h index 93d2a72d98..25db44a84c 100644 --- a/keyboards/keychron/v1/jis_encoder/config.h +++ b/keyboards/keychron/v1/jis_encoder/config.h @@ -21,7 +21,7 @@ #define DRIVER_2_LED_TOTAL 40 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D } /* Encoder Configuration */ diff --git a/keyboards/keychron/v1/jis_encoder/info.json b/keyboards/keychron/v1/jis_encoder/info.json index 702e579758..018f154537 100644 --- a/keyboards/keychron/v1/jis_encoder/info.json +++ b/keyboards/keychron/v1/jis_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v1/jis_encoder/jis_encoder.c b/keyboards/keychron/v1/jis_encoder/jis_encoder.c index 7f2f02bfa5..6bc647656d 100644 --- a/keyboards/keychron/v1/jis_encoder/jis_encoder.c +++ b/keyboards/keychron/v1/jis_encoder/jis_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c index bada8af6e9..8b787aad18 100644 --- a/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v10/ansi_encoder/info.json b/keyboards/keychron/v10/ansi_encoder/info.json index 2a7dc307cb..a416601d02 100644 --- a/keyboards/keychron/v10/ansi_encoder/info.json +++ b/keyboards/keychron/v10/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v10/config.h b/keyboards/keychron/v10/config.h index b8aa40a186..e711b753dd 100644 --- a/keyboards/keychron/v10/config.h +++ b/keyboards/keychron/v10/config.h @@ -31,9 +31,9 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -42,8 +42,8 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL -#define CKLED2001_CURRENT_TUNE { 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A } +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_CURRENT_TUNE { 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A } /* DIP switch */ #define DIP_SWITCH_MATRIX_GRID { {5,5} } diff --git a/keyboards/keychron/v10/iso_encoder/info.json b/keyboards/keychron/v10/iso_encoder/info.json index 455b375472..4c6b6580e0 100644 --- a/keyboards/keychron/v10/iso_encoder/info.json +++ b/keyboards/keychron/v10/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v10/iso_encoder/iso_encoder.c b/keyboards/keychron/v10/iso_encoder/iso_encoder.c index 070a01a8a8..f7e0a10470 100644 --- a/keyboards/keychron/v10/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v10/iso_encoder/iso_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v2/ansi/ansi.c b/keyboards/keychron/v2/ansi/ansi.c index a2524d36cc..d98a96fdf9 100644 --- a/keyboards/keychron/v2/ansi/ansi.c +++ b/keyboards/keychron/v2/ansi/ansi.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v2/ansi/config.h b/keyboards/keychron/v2/ansi/config.h index b6c31201a7..094038d5b3 100644 --- a/keyboards/keychron/v2/ansi/config.h +++ b/keyboards/keychron/v2/ansi/config.h @@ -21,7 +21,7 @@ #define DRIVER_2_LED_TOTAL 33 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60 } /* Enable caps-lock LED */ diff --git a/keyboards/keychron/v2/ansi/info.json b/keyboards/keychron/v2/ansi/info.json index d07fba97b8..3b54b90201 100644 --- a/keyboards/keychron/v2/ansi/info.json +++ b/keyboards/keychron/v2/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c index 2c9fe0e8e2..64153d4251 100644 --- a/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v2/ansi_encoder/info.json b/keyboards/keychron/v2/ansi_encoder/info.json index c733b389e6..f1998272e9 100644 --- a/keyboards/keychron/v2/ansi_encoder/info.json +++ b/keyboards/keychron/v2/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v2/config.h b/keyboards/keychron/v2/config.h index 8e881da987..8ac0bea5f0 100644 --- a/keyboards/keychron/v2/config.h +++ b/keyboards/keychron/v2/config.h @@ -20,9 +20,9 @@ // #define MATRIX_UNSELECT_DRIVE_HIGH /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -31,7 +31,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL /* Disable DIP switch in matrix data */ #define MATRIX_MASKED diff --git a/keyboards/keychron/v2/iso/info.json b/keyboards/keychron/v2/iso/info.json index 0d8376f7b7..cfc5ef3c5b 100644 --- a/keyboards/keychron/v2/iso/info.json +++ b/keyboards/keychron/v2/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v2/iso/iso.c b/keyboards/keychron/v2/iso/iso.c index 385f566252..37cac7337d 100644 --- a/keyboards/keychron/v2/iso/iso.c +++ b/keyboards/keychron/v2/iso/iso.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v2/iso_encoder/info.json b/keyboards/keychron/v2/iso_encoder/info.json index 0241cdb21e..d5f630a3c3 100644 --- a/keyboards/keychron/v2/iso_encoder/info.json +++ b/keyboards/keychron/v2/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v2/iso_encoder/iso_encoder.c b/keyboards/keychron/v2/iso_encoder/iso_encoder.c index 385f566252..37cac7337d 100644 --- a/keyboards/keychron/v2/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v2/iso_encoder/iso_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v2/jis/config.h b/keyboards/keychron/v2/jis/config.h index f258f9edd1..1b3fd5a27a 100644 --- a/keyboards/keychron/v2/jis/config.h +++ b/keyboards/keychron/v2/jis/config.h @@ -21,7 +21,7 @@ #define DRIVER_2_LED_TOTAL 36 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D } /* Enable caps-lock LED */ diff --git a/keyboards/keychron/v2/jis/info.json b/keyboards/keychron/v2/jis/info.json index f65e2b51d2..124cb0ecc6 100644 --- a/keyboards/keychron/v2/jis/info.json +++ b/keyboards/keychron/v2/jis/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v2/jis/jis.c b/keyboards/keychron/v2/jis/jis.c index b9060cafb2..42285e56ca 100644 --- a/keyboards/keychron/v2/jis/jis.c +++ b/keyboards/keychron/v2/jis/jis.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v2/jis_encoder/config.h b/keyboards/keychron/v2/jis_encoder/config.h index a9a3438ab7..aacac818a4 100644 --- a/keyboards/keychron/v2/jis_encoder/config.h +++ b/keyboards/keychron/v2/jis_encoder/config.h @@ -21,7 +21,7 @@ #define DRIVER_2_LED_TOTAL 36 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D } /* Encoder Configuration */ diff --git a/keyboards/keychron/v2/jis_encoder/info.json b/keyboards/keychron/v2/jis_encoder/info.json index 263e403167..d3df93819f 100644 --- a/keyboards/keychron/v2/jis_encoder/info.json +++ b/keyboards/keychron/v2/jis_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v2/jis_encoder/jis_encoder.c b/keyboards/keychron/v2/jis_encoder/jis_encoder.c index 661ee0c1d6..5ccbb807cb 100644 --- a/keyboards/keychron/v2/jis_encoder/jis_encoder.c +++ b/keyboards/keychron/v2/jis_encoder/jis_encoder.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v3/ansi/ansi.c b/keyboards/keychron/v3/ansi/ansi.c index 6d56122c52..16d6b77131 100644 --- a/keyboards/keychron/v3/ansi/ansi.c +++ b/keyboards/keychron/v3/ansi/ansi.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v3/ansi/config.h b/keyboards/keychron/v3/ansi/config.h index ff756dc046..ba64aa96da 100644 --- a/keyboards/keychron/v3/ansi/config.h +++ b/keyboards/keychron/v3/ansi/config.h @@ -30,7 +30,7 @@ #define DRIVER_2_LED_TOTAL 39 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0x95, 0x95, 0x55, 0x95, 0x95, 0x55, 0x95, 0x95, 0x55, 0x95, 0x95, 0x55 } /* Enable CapsLcok LED */ diff --git a/keyboards/keychron/v3/ansi/info.json b/keyboards/keychron/v3/ansi/info.json index 6572066329..49792690a7 100644 --- a/keyboards/keychron/v3/ansi/info.json +++ b/keyboards/keychron/v3/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c index 5ed38074e3..39fa354539 100644 --- a/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v3/ansi_encoder/info.json b/keyboards/keychron/v3/ansi_encoder/info.json index cffbc85158..ad46ae7a62 100644 --- a/keyboards/keychron/v3/ansi_encoder/info.json +++ b/keyboards/keychron/v3/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v3/config.h b/keyboards/keychron/v3/config.h index 8757f6bace..a6a6394ffd 100644 --- a/keyboards/keychron/v3/config.h +++ b/keyboards/keychron/v3/config.h @@ -20,9 +20,9 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -31,7 +31,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL /* DIP switch */ #define DIP_SWITCH_MATRIX_GRID { {5, 4} } diff --git a/keyboards/keychron/v3/iso/info.json b/keyboards/keychron/v3/iso/info.json index 18c73a8f58..56796b5eb2 100644 --- a/keyboards/keychron/v3/iso/info.json +++ b/keyboards/keychron/v3/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v3/iso/iso.c b/keyboards/keychron/v3/iso/iso.c index 95b324d11b..24b406467a 100644 --- a/keyboards/keychron/v3/iso/iso.c +++ b/keyboards/keychron/v3/iso/iso.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v3/iso_encoder/info.json b/keyboards/keychron/v3/iso_encoder/info.json index 60c56a6b87..057e4a8d7d 100644 --- a/keyboards/keychron/v3/iso_encoder/info.json +++ b/keyboards/keychron/v3/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v3/iso_encoder/iso_encoder.c b/keyboards/keychron/v3/iso_encoder/iso_encoder.c index 6231172fde..53fe99aac0 100644 --- a/keyboards/keychron/v3/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v3/iso_encoder/iso_encoder.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v3/jis/config.h b/keyboards/keychron/v3/jis/config.h index f19e7538c2..10c77c74f0 100644 --- a/keyboards/keychron/v3/jis/config.h +++ b/keyboards/keychron/v3/jis/config.h @@ -30,7 +30,7 @@ #define DRIVER_2_LED_TOTAL 43 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44 } /* Enable CapsLcok LED */ diff --git a/keyboards/keychron/v3/jis/info.json b/keyboards/keychron/v3/jis/info.json index 9b97707b2f..d5601a3b34 100644 --- a/keyboards/keychron/v3/jis/info.json +++ b/keyboards/keychron/v3/jis/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v3/jis/jis.c b/keyboards/keychron/v3/jis/jis.c index 7e05aa4063..70dbf812fa 100644 --- a/keyboards/keychron/v3/jis/jis.c +++ b/keyboards/keychron/v3/jis/jis.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v3/jis_encoder/config.h b/keyboards/keychron/v3/jis_encoder/config.h index 5f67d6a870..27f37cbed4 100644 --- a/keyboards/keychron/v3/jis_encoder/config.h +++ b/keyboards/keychron/v3/jis_encoder/config.h @@ -27,7 +27,7 @@ #define DRIVER_2_LED_TOTAL 43 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44 } /* Encoder Configuration */ diff --git a/keyboards/keychron/v3/jis_encoder/info.json b/keyboards/keychron/v3/jis_encoder/info.json index 585cf4519e..968c0396e9 100644 --- a/keyboards/keychron/v3/jis_encoder/info.json +++ b/keyboards/keychron/v3/jis_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v3/jis_encoder/jis_encoder.c b/keyboards/keychron/v3/jis_encoder/jis_encoder.c index 41b1c1e5af..cf1065eed9 100644 --- a/keyboards/keychron/v3/jis_encoder/jis_encoder.c +++ b/keyboards/keychron/v3/jis_encoder/jis_encoder.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v4/ansi/ansi.c b/keyboards/keychron/v4/ansi/ansi.c index 44056459f9..6326405380 100644 --- a/keyboards/keychron/v4/ansi/ansi.c +++ b/keyboards/keychron/v4/ansi/ansi.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v4/ansi/info.json b/keyboards/keychron/v4/ansi/info.json index 812aec53a7..5fad0ca9b1 100644 --- a/keyboards/keychron/v4/ansi/info.json +++ b/keyboards/keychron/v4/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"], diff --git a/keyboards/keychron/v4/config.h b/keyboards/keychron/v4/config.h index 2fc94aaaee..fb0b2cd276 100644 --- a/keyboards/keychron/v4/config.h +++ b/keyboards/keychron/v4/config.h @@ -17,8 +17,8 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -27,7 +27,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xD0, 0xD0, 0x60, 0xD0, 0xD0, 0x60, 0xD0, 0xD0, 0x60, 0xD0, 0xD0, 0x60 } /* DIP switch */ diff --git a/keyboards/keychron/v4/iso/info.json b/keyboards/keychron/v4/iso/info.json index 7d4a8eae1d..a53d3ee6a4 100644 --- a/keyboards/keychron/v4/iso/info.json +++ b/keyboards/keychron/v4/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"], diff --git a/keyboards/keychron/v4/iso/iso.c b/keyboards/keychron/v4/iso/iso.c index 8f86aa0498..9116135a4a 100644 --- a/keyboards/keychron/v4/iso/iso.c +++ b/keyboards/keychron/v4/iso/iso.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v5/ansi/ansi.c b/keyboards/keychron/v5/ansi/ansi.c index f4525dc3dc..073fb0cde0 100644 --- a/keyboards/keychron/v5/ansi/ansi.c +++ b/keyboards/keychron/v5/ansi/ansi.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v5/ansi/info.json b/keyboards/keychron/v5/ansi/info.json index bc5eec2ca5..eb5cdca90b 100644 --- a/keyboards/keychron/v5/ansi/info.json +++ b/keyboards/keychron/v5/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c index 1e3b303896..62ebc3f7b3 100644 --- a/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v5/ansi_encoder/info.json b/keyboards/keychron/v5/ansi_encoder/info.json index 8a4aec4e36..00079fca47 100644 --- a/keyboards/keychron/v5/ansi_encoder/info.json +++ b/keyboards/keychron/v5/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v5/config.h b/keyboards/keychron/v5/config.h index 0ee5e4e46b..bca7f6d1cf 100644 --- a/keyboards/keychron/v5/config.h +++ b/keyboards/keychron/v5/config.h @@ -26,9 +26,9 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -37,7 +37,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56 } /* DIP switch */ diff --git a/keyboards/keychron/v5/iso/info.json b/keyboards/keychron/v5/iso/info.json index 02db87e9ac..badac7f49a 100644 --- a/keyboards/keychron/v5/iso/info.json +++ b/keyboards/keychron/v5/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v5/iso/iso.c b/keyboards/keychron/v5/iso/iso.c index d67be2d530..1552de7d47 100644 --- a/keyboards/keychron/v5/iso/iso.c +++ b/keyboards/keychron/v5/iso/iso.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v5/iso_encoder/info.json b/keyboards/keychron/v5/iso_encoder/info.json index b0be43fc50..cbf77fc93a 100644 --- a/keyboards/keychron/v5/iso_encoder/info.json +++ b/keyboards/keychron/v5/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v5/iso_encoder/iso_encoder.c b/keyboards/keychron/v5/iso_encoder/iso_encoder.c index 5719da5e34..95eb62ae1f 100644 --- a/keyboards/keychron/v5/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v5/iso_encoder/iso_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v6/ansi/ansi.c b/keyboards/keychron/v6/ansi/ansi.c index 4011529883..a3f1032a1e 100644 --- a/keyboards/keychron/v6/ansi/ansi.c +++ b/keyboards/keychron/v6/ansi/ansi.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v6/ansi/info.json b/keyboards/keychron/v6/ansi/info.json index 3f12305f06..3eee229ea8 100644 --- a/keyboards/keychron/v6/ansi/info.json +++ b/keyboards/keychron/v6/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c index 91831bf3c1..02e0de0b3d 100644 --- a/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c @@ -20,8 +20,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v6/ansi_encoder/info.json b/keyboards/keychron/v6/ansi_encoder/info.json index ad0ea78318..86ecc82e35 100644 --- a/keyboards/keychron/v6/ansi_encoder/info.json +++ b/keyboards/keychron/v6/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v6/config.h b/keyboards/keychron/v6/config.h index e836cced84..2ff53f2a67 100644 --- a/keyboards/keychron/v6/config.h +++ b/keyboards/keychron/v6/config.h @@ -20,9 +20,9 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -32,7 +32,7 @@ #define I2C1_TIMINGR_SCLL 51U /* Limit the maximum brigtness current of colour white to 500mA */ -#define CKLED2001_CURRENT_TUNE { 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48 } +#define SNLED27351_CURRENT_TUNE { 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48 } /* DIP switch */ #define DIP_SWITCH_MATRIX_GRID { {5, 4} } diff --git a/keyboards/keychron/v6/iso/info.json b/keyboards/keychron/v6/iso/info.json index 0840ee9cc8..242e904cf0 100644 --- a/keyboards/keychron/v6/iso/info.json +++ b/keyboards/keychron/v6/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v6/iso/iso.c b/keyboards/keychron/v6/iso/iso.c index 5c0e2fa396..7804ca3600 100644 --- a/keyboards/keychron/v6/iso/iso.c +++ b/keyboards/keychron/v6/iso/iso.c @@ -20,8 +20,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v6/iso_encoder/info.json b/keyboards/keychron/v6/iso_encoder/info.json index a40d4d66b6..d4237a69f4 100644 --- a/keyboards/keychron/v6/iso_encoder/info.json +++ b/keyboards/keychron/v6/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v6/iso_encoder/iso_encoder.c b/keyboards/keychron/v6/iso_encoder/iso_encoder.c index 8268e5b0a9..bd9189f8b5 100644 --- a/keyboards/keychron/v6/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v6/iso_encoder/iso_encoder.c @@ -20,8 +20,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v7/ansi/ansi.c b/keyboards/keychron/v7/ansi/ansi.c index c0deea7845..07a98622a4 100644 --- a/keyboards/keychron/v7/ansi/ansi.c +++ b/keyboards/keychron/v7/ansi/ansi.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v7/ansi/info.json b/keyboards/keychron/v7/ansi/info.json index 26f31786b5..4088a20ced 100644 --- a/keyboards/keychron/v7/ansi/info.json +++ b/keyboards/keychron/v7/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "B5"], diff --git a/keyboards/keychron/v7/config.h b/keyboards/keychron/v7/config.h index 606f682719..e66866a33c 100644 --- a/keyboards/keychron/v7/config.h +++ b/keyboards/keychron/v7/config.h @@ -17,9 +17,9 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -28,8 +28,8 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL -#define CKLED2001_CURRENT_TUNE { 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70 } +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_CURRENT_TUNE { 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70 } /* DIP switch */ #define DIP_SWITCH_MATRIX_GRID { {4,4} } diff --git a/keyboards/keychron/v7/iso/info.json b/keyboards/keychron/v7/iso/info.json index f29d9d9a32..97588498ed 100644 --- a/keyboards/keychron/v7/iso/info.json +++ b/keyboards/keychron/v7/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "B5"], diff --git a/keyboards/keychron/v7/iso/iso.c b/keyboards/keychron/v7/iso/iso.c index 4630059be4..a35dcb2092 100644 --- a/keyboards/keychron/v7/iso/iso.c +++ b/keyboards/keychron/v7/iso/iso.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v8/ansi/ansi.c b/keyboards/keychron/v8/ansi/ansi.c index 670ff2fbdb..bda7ba1d74 100644 --- a/keyboards/keychron/v8/ansi/ansi.c +++ b/keyboards/keychron/v8/ansi/ansi.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v8/ansi/info.json b/keyboards/keychron/v8/ansi/info.json index 02780ffcde..06a657a5a8 100644 --- a/keyboards/keychron/v8/ansi/info.json +++ b/keyboards/keychron/v8/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c index 670ff2fbdb..bda7ba1d74 100644 --- a/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v8/ansi_encoder/info.json b/keyboards/keychron/v8/ansi_encoder/info.json index c3fc389780..6202a306c5 100644 --- a/keyboards/keychron/v8/ansi_encoder/info.json +++ b/keyboards/keychron/v8/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v8/config.h b/keyboards/keychron/v8/config.h index 3dc6d58518..ed4d98799a 100644 --- a/keyboards/keychron/v8/config.h +++ b/keyboards/keychron/v8/config.h @@ -20,9 +20,9 @@ // #define MATRIX_UNSELECT_DRIVE_HIGH /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -31,8 +31,8 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL -#define CKLED2001_CURRENT_TUNE { 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60 } +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_CURRENT_TUNE { 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60 } /* DIP switch */ #define DIP_SWITCH_MATRIX_GRID { {4, 4} } diff --git a/keyboards/keychron/v8/iso/info.json b/keyboards/keychron/v8/iso/info.json index 5f30af5b1a..8b40b7d065 100644 --- a/keyboards/keychron/v8/iso/info.json +++ b/keyboards/keychron/v8/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v8/iso/iso.c b/keyboards/keychron/v8/iso/iso.c index f64d3c4c56..88040c3ab8 100644 --- a/keyboards/keychron/v8/iso/iso.c +++ b/keyboards/keychron/v8/iso/iso.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/v8/iso_encoder/info.json b/keyboards/keychron/v8/iso_encoder/info.json index e13261a2d6..3d04699651 100644 --- a/keyboards/keychron/v8/iso_encoder/info.json +++ b/keyboards/keychron/v8/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v8/iso_encoder/iso_encoder.c b/keyboards/keychron/v8/iso_encoder/iso_encoder.c index f64d3c4c56..88040c3ab8 100644 --- a/keyboards/keychron/v8/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v8/iso_encoder/iso_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/monsgeek/m1/config.h b/keyboards/monsgeek/m1/config.h index efec0207c3..9c25c9f21c 100644 --- a/keyboards/monsgeek/m1/config.h +++ b/keyboards/monsgeek/m1/config.h @@ -33,9 +33,9 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define IS31FL3733_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_OPMODE OPMODE_I2C #define I2C1_CLOCK_SPEED 400000 /* 400000 */ diff --git a/keyboards/monsgeek/m1/info.json b/keyboards/monsgeek/m1/info.json index 3eade9d76d..23d3d714c6 100644 --- a/keyboards/monsgeek/m1/info.json +++ b/keyboards/monsgeek/m1/info.json @@ -42,7 +42,7 @@ ] }, "rgb_matrix": { - "driver": "is31fl3733", + "driver": "snled27351", "max_brightness": 200, "val_steps": 20, "animations": { diff --git a/keyboards/monsgeek/m1/m1.c b/keyboards/monsgeek/m1/m1.c index ac00bb4e2b..b85adbc0bf 100644 --- a/keyboards/monsgeek/m1/m1.c +++ b/keyboards/monsgeek/m1/m1.c @@ -17,8 +17,8 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/monsgeek/m5/config.h b/keyboards/monsgeek/m5/config.h index ef2a43cdb3..ddb700870b 100644 --- a/keyboards/monsgeek/m5/config.h +++ b/keyboards/monsgeek/m5/config.h @@ -34,9 +34,9 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define IS31FL3733_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_OPMODE OPMODE_I2C #define I2C1_CLOCK_SPEED 400000 /* 400000 */ #define I2C1_SCL_PAL_MODE 4 diff --git a/keyboards/monsgeek/m5/info.json b/keyboards/monsgeek/m5/info.json index 7b01d2526d..e4ecba91ce 100644 --- a/keyboards/monsgeek/m5/info.json +++ b/keyboards/monsgeek/m5/info.json @@ -40,7 +40,7 @@ "caps_lock": "C10" }, "rgb_matrix": { - "driver": "is31fl3733", + "driver": "snled27351", "max_brightness": 180, "animations": { "breathing": true, diff --git a/keyboards/monsgeek/m5/m5.c b/keyboards/monsgeek/m5/m5.c index 7dbc3111bf..83dd4b6b79 100644 --- a/keyboards/monsgeek/m5/m5.c +++ b/keyboards/monsgeek/m5/m5.c @@ -17,8 +17,8 @@ #include "quantum.h" // clang-format off #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/monsgeek/m6/config.h b/keyboards/monsgeek/m6/config.h index fac90ac0ad..b10220db17 100644 --- a/keyboards/monsgeek/m6/config.h +++ b/keyboards/monsgeek/m6/config.h @@ -31,9 +31,9 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define IS31FL3733_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_SCL_PAL_MODE 4 #define I2C1_OPMODE OPMODE_I2C #define I2C1_CLOCK_SPEED 400000 /* 400000 */ diff --git a/keyboards/monsgeek/m6/info.json b/keyboards/monsgeek/m6/info.json index d3951c8046..3ec89cc497 100644 --- a/keyboards/monsgeek/m6/info.json +++ b/keyboards/monsgeek/m6/info.json @@ -36,7 +36,7 @@ } }, "rgb_matrix": { - "driver": "is31fl3733", + "driver": "snled27351", "max_brightness": 200, "val_steps": 20, "animations": { diff --git a/keyboards/monsgeek/m6/m6.c b/keyboards/monsgeek/m6/m6.c index 1823d865cc..dc20a9916f 100644 --- a/keyboards/monsgeek/m6/m6.c +++ b/keyboards/monsgeek/m6/m6.c @@ -17,8 +17,8 @@ #include "quantum.h" // clang-format off #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/skyloong/gk61/v1/config.h b/keyboards/skyloong/gk61/v1/config.h index f648bf80d4..153bd8d0eb 100644 --- a/keyboards/skyloong/gk61/v1/config.h +++ b/keyboards/skyloong/gk61/v1/config.h @@ -15,22 +15,9 @@ */ #pragma once -/* - * RGB matrix driver config (CKLED2001) - * - * This is a 7-bit address, that gets left-shifted and bit 0 - * set to 0 for write, 1 for read (as per I2C protocol) - * The address will vary depending on your wiring: - * 00 <-> GND - * 01 <-> SCL - * 10 <-> SDA - * 11 <-> VCC - * ADDR/CS represents A1:A0 of the 7-bit address. - * The result is: 0b11101(ADDR/CS) - */ -#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND -#define DRIVER_COUNT 1 +#define SNLED27351_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 #define RGB_MATRIX_FRAMEBUFFER_EFFECTS //Enable frame effects diff --git a/keyboards/skyloong/gk61/v1/info.json b/keyboards/skyloong/gk61/v1/info.json index 8e30cc3bc0..6015efa12c 100644 --- a/keyboards/skyloong/gk61/v1/info.json +++ b/keyboards/skyloong/gk61/v1/info.json @@ -42,7 +42,7 @@ "splash": true, "solid_splash": true }, - "driver": "ckled2001", + "driver": "snled27351", "hue_steps": 20, "layout": [ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, diff --git a/keyboards/skyloong/gk61/v1/v1.c b/keyboards/skyloong/gk61/v1/v1.c index 5fed5701b2..cb3772f6b4 100644 --- a/keyboards/skyloong/gk61/v1/v1.c +++ b/keyboards/skyloong/gk61/v1/v1.c @@ -17,8 +17,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED2001 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/quantum/led_matrix/led_matrix.h b/quantum/led_matrix/led_matrix.h index 47803d2423..77d4f558ac 100644 --- a/quantum/led_matrix/led_matrix.h +++ b/quantum/led_matrix/led_matrix.h @@ -45,8 +45,8 @@ #if defined(IS31FLCOMMON) # include "is31flcommon.h" #endif -#ifdef LED_MATRIX_CKLED2001 -# include "ckled2001-simple.h" +#ifdef LED_MATRIX_SNLED27351 +# include "snled27351-simple.h" #endif #ifndef LED_MATRIX_TIMEOUT diff --git a/quantum/led_matrix/led_matrix_drivers.c b/quantum/led_matrix/led_matrix_drivers.c index 771ce820af..f52870aea5 100644 --- a/quantum/led_matrix/led_matrix_drivers.c +++ b/quantum/led_matrix/led_matrix_drivers.c @@ -25,7 +25,7 @@ * in their own files. */ -#if defined(LED_MATRIX_IS31FL3218) || defined(LED_MATRIX_IS31FL3731) || defined(LED_MATRIX_IS31FL3733) || defined(LED_MATRIX_IS31FL3736) || defined(LED_MATRIX_IS31FL3737) || defined(LED_MATRIX_IS31FL3741) || defined(IS31FLCOMMON) || defined(LED_MATRIX_CKLED2001) +#if defined(LED_MATRIX_IS31FL3218) || defined(LED_MATRIX_IS31FL3731) || defined(LED_MATRIX_IS31FL3733) || defined(LED_MATRIX_IS31FL3736) || defined(LED_MATRIX_IS31FL3737) || defined(LED_MATRIX_IS31FL3741) || defined(IS31FLCOMMON) || defined(LED_MATRIX_SNLED27351) # include "i2c_master.h" static void init(void) { @@ -117,19 +117,19 @@ static void init(void) { # endif # endif # endif -# elif defined(LED_MATRIX_CKLED2001) +# elif defined(LED_MATRIX_SNLED27351) # if defined(LED_DRIVER_SHUTDOWN_PIN) setPinOutput(LED_DRIVER_SHUTDOWN_PIN); writePinHigh(LED_DRIVER_SHUTDOWN_PIN); # endif - ckled2001_init(DRIVER_ADDR_1); + snled27351_init(DRIVER_ADDR_1); # if defined(DRIVER_ADDR_2) - ckled2001_init(DRIVER_ADDR_2); + snled27351_init(DRIVER_ADDR_2); # if defined(DRIVER_ADDR_3) - ckled2001_init(DRIVER_ADDR_3); + snled27351_init(DRIVER_ADDR_3); # if defined(DRIVER_ADDR_4) - ckled2001_init(DRIVER_ADDR_4); + snled27351_init(DRIVER_ADDR_4); # endif # endif # endif @@ -150,8 +150,8 @@ static void init(void) { is31fl3741_set_led_control_register(index, true); # elif defined(IS31FLCOMMON) IS31FL_simple_set_scaling_buffer(index, true); -# elif defined(LED_MATRIX_CKLED2001) - ckled2001_set_led_control_register(index, true); +# elif defined(LED_MATRIX_SNLED27351) + snled27351_set_led_control_register(index, true); # endif } @@ -233,14 +233,14 @@ static void init(void) { # endif # endif # endif -# elif defined(LED_MATRIX_CKLED2001) - ckled2001_update_led_control_registers(DRIVER_ADDR_1, 0); +# elif defined(LED_MATRIX_SNLED27351) + snled27351_update_led_control_registers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) - ckled2001_update_led_control_registers(DRIVER_ADDR_2, 1); + snled27351_update_led_control_registers(DRIVER_ADDR_2, 1); # if defined(DRIVER_ADDR_3) - ckled2001_update_led_control_registers(DRIVER_ADDR_3, 2); + snled27351_update_led_control_registers(DRIVER_ADDR_3, 2); # if defined(DRIVER_ADDR_4) - ckled2001_update_led_control_registers(DRIVER_ADDR_4, 3); + snled27351_update_led_control_registers(DRIVER_ADDR_4, 3); # endif # endif # endif @@ -384,15 +384,15 @@ const led_matrix_driver_t led_matrix_driver = { .set_value = IS31FL_simple_set_brightness, .set_value_all = IS31FL_simple_set_brigntness_all, }; -# elif defined(LED_MATRIX_CKLED2001) +# elif defined(LED_MATRIX_SNLED27351) static void flush(void) { - ckled2001_update_pwm_buffers(DRIVER_ADDR_1, 0); + snled27351_update_pwm_buffers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) - ckled2001_update_pwm_buffers(DRIVER_ADDR_2, 1); + snled27351_update_pwm_buffers(DRIVER_ADDR_2, 1); # if defined(DRIVER_ADDR_3) - ckled2001_update_pwm_buffers(DRIVER_ADDR_3, 2); + snled27351_update_pwm_buffers(DRIVER_ADDR_3, 2); # if defined(DRIVER_ADDR_4) - ckled2001_update_pwm_buffers(DRIVER_ADDR_4, 3); + snled27351_update_pwm_buffers(DRIVER_ADDR_4, 3); # endif # endif # endif @@ -401,8 +401,8 @@ static void flush(void) { const led_matrix_driver_t led_matrix_driver = { .init = init, .flush = flush, - .set_value = ckled2001_set_value, - .set_value_all = ckled2001_set_value_all, + .set_value = snled27351_set_value, + .set_value_all = snled27351_set_value_all, }; # endif #endif diff --git a/quantum/rgb_matrix/rgb_matrix.h b/quantum/rgb_matrix/rgb_matrix.h index 3e1db3cdce..8ac263c635 100644 --- a/quantum/rgb_matrix/rgb_matrix.h +++ b/quantum/rgb_matrix/rgb_matrix.h @@ -38,8 +38,8 @@ # include "is31fl3741.h" #elif defined(IS31FLCOMMON) # include "is31flcommon.h" -#elif defined(RGB_MATRIX_CKLED2001) -# include "ckled2001.h" +#elif defined(RGB_MATRIX_SNLED27351) +# include "snled27351.h" #elif defined(RGB_MATRIX_AW20216S) # include "aw20216s.h" #elif defined(RGB_MATRIX_WS2812) diff --git a/quantum/rgb_matrix/rgb_matrix_drivers.c b/quantum/rgb_matrix/rgb_matrix_drivers.c index 58b707bf7f..06d82b9c69 100644 --- a/quantum/rgb_matrix/rgb_matrix_drivers.c +++ b/quantum/rgb_matrix/rgb_matrix_drivers.c @@ -24,7 +24,7 @@ * be here if shared between boards. */ -#if defined(RGB_MATRIX_IS31FL3218) || defined(RGB_MATRIX_IS31FL3731) || defined(RGB_MATRIX_IS31FL3733) || defined(RGB_MATRIX_IS31FL3736) || defined(RGB_MATRIX_IS31FL3737) || defined(RGB_MATRIX_IS31FL3741) || defined(IS31FLCOMMON) || defined(RGB_MATRIX_CKLED2001) +#if defined(RGB_MATRIX_IS31FL3218) || defined(RGB_MATRIX_IS31FL3731) || defined(RGB_MATRIX_IS31FL3733) || defined(RGB_MATRIX_IS31FL3736) || defined(RGB_MATRIX_IS31FL3737) || defined(RGB_MATRIX_IS31FL3741) || defined(IS31FLCOMMON) || defined(RGB_MATRIX_SNLED27351) # include "i2c_master.h" // TODO: Remove this at some later date @@ -124,14 +124,14 @@ static void init(void) { # endif # endif -# elif defined(RGB_MATRIX_CKLED2001) - ckled2001_init(DRIVER_ADDR_1); +# elif defined(RGB_MATRIX_SNLED27351) + snled27351_init(DRIVER_ADDR_1); # if defined(DRIVER_ADDR_2) - ckled2001_init(DRIVER_ADDR_2); + snled27351_init(DRIVER_ADDR_2); # if defined(DRIVER_ADDR_3) - ckled2001_init(DRIVER_ADDR_3); + snled27351_init(DRIVER_ADDR_3); # if defined(DRIVER_ADDR_4) - ckled2001_init(DRIVER_ADDR_4); + snled27351_init(DRIVER_ADDR_4); # endif # endif # endif @@ -155,8 +155,8 @@ static void init(void) { is31fl3741_set_led_control_register(index, enabled, enabled, enabled); # elif defined(IS31FLCOMMON) IS31FL_RGB_set_scaling_buffer(index, enabled, enabled, enabled); -# elif defined(RGB_MATRIX_CKLED2001) - ckled2001_set_led_control_register(index, enabled, enabled, enabled); +# elif defined(RGB_MATRIX_SNLED27351) + snled27351_set_led_control_register(index, enabled, enabled, enabled); # endif } @@ -239,14 +239,14 @@ static void init(void) { # endif # endif -# elif defined(RGB_MATRIX_CKLED2001) - ckled2001_update_led_control_registers(DRIVER_ADDR_1, 0); +# elif defined(RGB_MATRIX_SNLED27351) + snled27351_update_led_control_registers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) - ckled2001_update_led_control_registers(DRIVER_ADDR_2, 1); + snled27351_update_led_control_registers(DRIVER_ADDR_2, 1); # if defined(DRIVER_ADDR_3) - ckled2001_update_led_control_registers(DRIVER_ADDR_3, 2); + snled27351_update_led_control_registers(DRIVER_ADDR_3, 2); # if defined(DRIVER_ADDR_4) - ckled2001_update_led_control_registers(DRIVER_ADDR_4, 3); + snled27351_update_led_control_registers(DRIVER_ADDR_4, 3); # endif # endif # endif @@ -391,15 +391,15 @@ const rgb_matrix_driver_t rgb_matrix_driver = { .set_color_all = IS31FL_RGB_set_color_all, }; -# elif defined(RGB_MATRIX_CKLED2001) +# elif defined(RGB_MATRIX_SNLED27351) static void flush(void) { - ckled2001_update_pwm_buffers(DRIVER_ADDR_1, 0); + snled27351_update_pwm_buffers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) - ckled2001_update_pwm_buffers(DRIVER_ADDR_2, 1); + snled27351_update_pwm_buffers(DRIVER_ADDR_2, 1); # if defined(DRIVER_ADDR_3) - ckled2001_update_pwm_buffers(DRIVER_ADDR_3, 2); + snled27351_update_pwm_buffers(DRIVER_ADDR_3, 2); # if defined(DRIVER_ADDR_4) - ckled2001_update_pwm_buffers(DRIVER_ADDR_4, 3); + snled27351_update_pwm_buffers(DRIVER_ADDR_4, 3); # endif # endif # endif @@ -408,8 +408,8 @@ static void flush(void) { const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, .flush = flush, - .set_color = ckled2001_set_color, - .set_color_all = ckled2001_set_color_all, + .set_color = snled27351_set_color, + .set_color_all = snled27351_set_color_all, }; # endif From d99dbe4d56a5d414b8d131bf703257172af91b70 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 4 Oct 2023 20:12:50 +1100 Subject: [PATCH 229/496] Update ISSI LED types (#22099) --- docs/feature_led_matrix.md | 4 ++-- docs/feature_rgb_matrix.md | 10 +++++----- drivers/led/issi/is31fl3731-simple.c | 8 ++++---- drivers/led/issi/is31fl3731-simple.h | 9 ++++++--- drivers/led/issi/is31fl3731.c | 8 ++++---- drivers/led/issi/is31fl3731.h | 9 ++++++--- drivers/led/issi/is31fl3733-simple.c | 8 ++++---- drivers/led/issi/is31fl3733-simple.h | 9 ++++++--- drivers/led/issi/is31fl3733.c | 8 ++++---- drivers/led/issi/is31fl3733.h | 9 ++++++--- drivers/led/issi/is31fl3736-simple.c | 8 ++++---- drivers/led/issi/is31fl3736-simple.h | 9 ++++++--- drivers/led/issi/is31fl3736.c | 8 ++++---- drivers/led/issi/is31fl3736.h | 9 ++++++--- drivers/led/issi/is31fl3737-simple.c | 8 ++++---- drivers/led/issi/is31fl3737-simple.h | 6 +++--- drivers/led/issi/is31fl3737.c | 8 ++++---- drivers/led/issi/is31fl3737.h | 9 ++++++--- drivers/led/issi/is31fl3741-simple.c | 12 ++++++------ drivers/led/issi/is31fl3741-simple.h | 10 +++++----- drivers/led/issi/is31fl3741.c | 12 ++++++------ drivers/led/issi/is31fl3741.h | 13 ++++++++----- keyboards/4pplet/perk60_iso/rev_a/rev_a.c | 2 +- keyboards/abko/ak84bt/ak84bt.c | 2 +- keyboards/acheron/apollo/87h/gamma/gamma.c | 2 +- keyboards/aeboards/satellite/rev1/rev1.c | 2 +- keyboards/axolstudio/yeti/hotswap/hotswap.c | 2 +- keyboards/canary/canary60rgb/canary60rgb.c | 2 +- keyboards/clueboard/66_hotswap/gen1/gen1.c | 2 +- keyboards/dp60/dp60.c | 2 +- keyboards/drop/alt/v2/v2.c | 2 +- keyboards/drop/cstm80/cstm80.c | 2 +- keyboards/drop/ctrl/v2/v2.c | 2 +- keyboards/drop/sense75/sense75.c | 2 +- keyboards/drop/shift/v2/v2.c | 2 +- keyboards/durgod/dgk6x/galaxy/galaxy.c | 2 +- keyboards/durgod/dgk6x/hades_ansi/hades_ansi.c | 2 +- keyboards/durgod/dgk6x/hades_iso/hades_iso.c | 2 +- keyboards/durgod/dgk6x/venus/venus.c | 2 +- keyboards/dztech/dz60rgb/dz60rgb.c | 2 +- keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c | 2 +- keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c | 2 +- keyboards/dztech/dz64rgb/dz64rgb.c | 2 +- keyboards/dztech/dz65rgb/v1/v1.c | 2 +- keyboards/dztech/dz65rgb/v2/v2.c | 2 +- keyboards/dztech/dz65rgb/v3/v3.c | 2 +- keyboards/dztech/tofu/ii/v1/v1.c | 2 +- keyboards/dztech/tofu/jr/v1/v1.c | 2 +- keyboards/ergodox_ez/ergodox_ez.c | 2 +- keyboards/evyd13/atom47/rev5/rev5.c | 2 +- keyboards/exclusive/e6_rgb/e6_rgb.c | 2 +- keyboards/fallacy/indicators.c | 2 +- keyboards/feker/ik75/ik75.c | 2 +- keyboards/ferris/0_2/bling/bling.c | 2 +- keyboards/flashquark/horizon_z/horizon_z.c | 2 +- keyboards/frooastboard/walnut/walnut.c | 2 +- keyboards/geekboards/tester/tester.c | 2 +- keyboards/gizmo_engineering/gk6/gk6.c | 2 +- keyboards/handwired/orbweaver/orbweaver.c | 2 +- keyboards/hs60/v1/v1.c | 4 ++-- keyboards/ilumkb/simpler61/simpler61.c | 2 +- keyboards/ilumkb/simpler64/simpler64.c | 2 +- keyboards/inett_studio/sqx/hotswap/hotswap.c | 2 +- .../inett_studio/sqx/universal/universal.c | 2 +- .../ergodox_infinity/ergodox_infinity.c | 4 ++-- keyboards/input_club/infinity60/led/led.c | 2 +- keyboards/input_club/k_type/is31fl3733-dual.c | 8 ++++---- keyboards/input_club/k_type/is31fl3733-dual.h | 6 +++--- keyboards/input_club/k_type/k_type.c | 2 +- keyboards/input_club/whitefox/whitefox.c | 2 +- keyboards/kbdcraft/adam64/adam64.c | 2 +- keyboards/kbdfans/bella/rgb/rgb.c | 2 +- keyboards/kbdfans/bella/rgb_iso/rgb_iso.c | 2 +- keyboards/kbdfans/boop65/rgb/rgb.c | 2 +- keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c | 2 +- keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c | 2 +- keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c | 2 +- keyboards/kbdfans/kbdmini/kbdmini.c | 2 +- keyboards/kbdfans/maja/maja.c | 2 +- keyboards/keychron/q1v1/ansi/ansi.c | 3 +-- .../keychron/q1v1/ansi_encoder/ansi_encoder.c | 2 +- keyboards/keychron/q1v1/iso/iso.c | 2 +- .../keychron/q1v1/iso_encoder/iso_encoder.c | 2 +- keyboards/kprepublic/bm40hsrgb/rev2/rev2.c | 2 +- keyboards/kprepublic/bm60hsrgb/rev2/rev2.c | 2 +- keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c | 2 +- keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c | 2 +- .../kprepublic/bm60hsrgb_poker/rev2/rev2.c | 2 +- keyboards/kprepublic/bm68hsrgb/rev2/rev2.c | 2 +- keyboards/kprepublic/bm80v2/bm80v2.c | 2 +- keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c | 2 +- keyboards/latincompass/latin17rgb/latin17rgb.c | 2 +- keyboards/latincompass/latin60rgb/latin60rgb.c | 2 +- keyboards/latincompass/latin6rgb/latin6rgb.c | 2 +- keyboards/matrix/m20add/rgb_ring.c | 2 +- keyboards/matrix/noah/noah.c | 2 +- .../mechlovin/adelais/rgb_led/rev2/rev2.c | 2 +- .../mechlovin/adelais/rgb_led/rev3/rev3.c | 2 +- keyboards/mechlovin/delphine/rgb_led/rgb_led.c | 2 +- keyboards/mechlovin/hannah60rgb/rev2/rev2.c | 2 +- .../mechlovin/infinity87/rgb_rev1/rgb_rev1.c | 2 +- keyboards/mechlovin/olly/octagon/octagon.c | 2 +- keyboards/mechlovin/zed65/mono_led/mono_led.c | 2 +- keyboards/melgeek/mach80/rev1/rev1.c | 6 +++--- keyboards/melgeek/mach80/rev2/rev2.c | 6 +++--- keyboards/melgeek/mj61/rev1/rev1.c | 2 +- keyboards/melgeek/mj61/rev2/rev2.c | 2 +- keyboards/melgeek/mj63/rev1/rev1.c | 2 +- keyboards/melgeek/mj63/rev2/rev2.c | 2 +- keyboards/melgeek/mj64/rev1/rev1.c | 2 +- keyboards/melgeek/mj64/rev2/rev2.c | 2 +- keyboards/melgeek/mj64/rev3/rev3.c | 2 +- keyboards/melgeek/mj65/rev3/rev3.c | 2 +- keyboards/melgeek/mojo68/rev1/rev1.c | 6 +++--- keyboards/melgeek/mojo75/rev1/rev1.c | 2 +- keyboards/melgeek/tegic/rev1/rev1.c | 2 +- keyboards/melgeek/z70ultra/z70ultra.c | 6 +++--- keyboards/miller/gm862/gm862.c | 2 +- keyboards/moonlander/moonlander.c | 2 +- keyboards/mt/mt64rgb/mt64rgb.c | 2 +- keyboards/mt/mt84/mt84.c | 2 +- keyboards/neson_design/700e/700e.c | 2 +- keyboards/neson_design/n6/n6.c | 2 +- keyboards/opendeck/32/rev1/rev1.c | 2 +- keyboards/owlab/voice65/hotswap/hotswap.c | 2 +- keyboards/owlab/voice65/soldered/soldered.c | 2 +- keyboards/planck/ez/ez.c | 2 +- keyboards/planck/light/light.c | 2 +- keyboards/playkbtw/pk64rgb/pk64rgb.c | 2 +- keyboards/redragon/k667/k667.c | 2 +- keyboards/smallkeyboard/smallkeyboard.c | 2 +- keyboards/teleport/native/native.c | 2 +- keyboards/terrazzo/terrazzo.c | 2 +- keyboards/tkc/portico/portico.c | 2 +- keyboards/tkc/portico68v2/portico68v2.c | 2 +- keyboards/tkc/portico75/portico75.c | 2 +- keyboards/wilba_tech/wt_mono_backlight.c | 2 +- keyboards/wilba_tech/wt_rgb_backlight.c | 18 +++++++++--------- keyboards/xbows/knight/knight.c | 2 +- keyboards/xbows/knight_plus/knight_plus.c | 2 +- keyboards/xbows/nature/nature.c | 2 +- keyboards/xbows/numpad/numpad.c | 2 +- keyboards/xbows/ranger/ranger.c | 2 +- keyboards/xbows/woody/woody.c | 2 +- keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c | 2 +- keyboards/xelus/pachi/rgb/rev1/rev1.c | 2 +- keyboards/xelus/pachi/rgb/rev2/rev2.c | 2 +- users/tominabox1/dimple_rgb.c | 10 +++++----- 148 files changed, 262 insertions(+), 239 deletions(-) diff --git a/docs/feature_led_matrix.md b/docs/feature_led_matrix.md index 3f91146708..87f4f36f1d 100644 --- a/docs/feature_led_matrix.md +++ b/docs/feature_led_matrix.md @@ -51,12 +51,12 @@ Here is an example using 2 drivers. !> Note the parentheses, this is so when `LED_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL)` will give very different results than `rand() % LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL`. -For split keyboards using `LED_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `DRIVER_ADDR_1` for one and `DRIVER_ADDR_2` for the other one. Then, in `g_is31_leds`, fill out the correct driver index (0 or 1). If using one address, use `DRIVER_ADDR_1` for both, and use index 0 for `g_is31_leds`. +For split keyboards using `LED_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `DRIVER_ADDR_1` for one and `DRIVER_ADDR_2` for the other one. Then, in `g_is31fl3731_leds`, fill out the correct driver index (0 or 1). If using one address, use `DRIVER_ADDR_1` for both, and use index 0 for `g_is31fl3731_leds`. Define these arrays listing all the LEDs in your `.c`: ```c -const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[LED_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | LED address diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index 5222209e57..82b45583ec 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -52,12 +52,12 @@ Here is an example using 2 drivers. !> Note the parentheses, this is so when `RGB_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`. -For split keyboards using `RGB_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `DRIVER_ADDR_1` for one and `DRIVER_ADDR_2` for the other one. Then, in `g_is31_leds`, fill out the correct driver index (0 or 1). If using one address, use `DRIVER_ADDR_1` for both, and use index 0 for `g_is31_leds`. +For split keyboards using `RGB_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `DRIVER_ADDR_1` for one and `DRIVER_ADDR_2` for the other one. Then, in `g_is31fl3731_leds`, fill out the correct driver index (0 or 1). If using one address, use `DRIVER_ADDR_1` for both, and use index 0 for `g_is31fl3731_leds`. Define these arrays listing all the LEDs in your `.c`: ```c -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -143,7 +143,7 @@ Currently only 4 drivers are supported, but it would be trivial to support all 8 Define these arrays listing all the LEDs in your `.c`: ```c -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -224,7 +224,7 @@ Here is an example using 2 drivers. Define these arrays listing all the LEDs in your `.c`: ```c -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3736_led_t PROGMEM g_is31fl3736_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -300,7 +300,7 @@ Here is an example using 2 drivers. Define these arrays listing all the LEDs in your `.c`: ```c -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3737_led_t PROGMEM g_is31fl3737_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/drivers/led/issi/is31fl3731-simple.c b/drivers/led/issi/is31fl3731-simple.c index 5ea4613845..f9ad703ced 100644 --- a/drivers/led/issi/is31fl3731-simple.c +++ b/drivers/led/issi/is31fl3731-simple.c @@ -160,9 +160,9 @@ void is31fl3731_init(uint8_t addr) { } void is31fl3731_set_value(int index, uint8_t value) { - is31_led led; + is31fl3731_led_t led; if (index >= 0 && index < LED_MATRIX_LED_COUNT) { - memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + memcpy_P(&led, (&g_is31fl3731_leds[index]), sizeof(led)); // Subtract 0x24 to get the second index of g_pwm_buffer @@ -181,8 +181,8 @@ void is31fl3731_set_value_all(uint8_t value) { } void is31fl3731_set_led_control_register(uint8_t index, bool value) { - is31_led led; - memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + is31fl3731_led_t led; + memcpy_P(&led, (&g_is31fl3731_leds[index]), sizeof(led)); uint8_t control_register = (led.v - 0x24) / 8; uint8_t bit_value = (led.v - 0x24) % 8; diff --git a/drivers/led/issi/is31fl3731-simple.h b/drivers/led/issi/is31fl3731-simple.h index e6c9ce37c5..940ad413d8 100644 --- a/drivers/led/issi/is31fl3731-simple.h +++ b/drivers/led/issi/is31fl3731-simple.h @@ -35,6 +35,9 @@ #ifdef ISSI_3731_DEGHOST # define IS31FL3731_DEGHOST ISSI_3731_DEGHOST #endif + +#define is31_led is31fl3731_led_t +#define g_is31_leds g_is31fl3731_leds // ======== #define IS31FL3731_I2C_ADDRESS_GND 0x74 @@ -42,12 +45,12 @@ #define IS31FL3731_I2C_ADDRESS_SDA 0x76 #define IS31FL3731_I2C_ADDRESS_VCC 0x77 -typedef struct is31_led { +typedef struct is31fl3731_led_t { uint8_t driver : 2; uint8_t v; -} __attribute__((packed)) is31_led; +} __attribute__((packed)) is31fl3731_led_t; -extern const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT]; +extern const is31fl3731_led_t PROGMEM g_is31fl3731_leds[LED_MATRIX_LED_COUNT]; void is31fl3731_init(uint8_t addr); void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data); diff --git a/drivers/led/issi/is31fl3731.c b/drivers/led/issi/is31fl3731.c index d6ee5cdd94..a30e8fcbc2 100644 --- a/drivers/led/issi/is31fl3731.c +++ b/drivers/led/issi/is31fl3731.c @@ -157,9 +157,9 @@ void is31fl3731_init(uint8_t addr) { } void is31fl3731_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - is31_led led; + is31fl3731_led_t led; if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { - memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + memcpy_P(&led, (&g_is31fl3731_leds[index]), sizeof(led)); // Subtract 0x24 to get the second index of g_pwm_buffer if (g_pwm_buffer[led.driver][led.r - 0x24] == red && g_pwm_buffer[led.driver][led.g - 0x24] == green && g_pwm_buffer[led.driver][led.b - 0x24] == blue) { @@ -179,8 +179,8 @@ void is31fl3731_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { } void is31fl3731_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { - is31_led led; - memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + is31fl3731_led_t led; + memcpy_P(&led, (&g_is31fl3731_leds[index]), sizeof(led)); uint8_t control_register_r = (led.r - 0x24) / 8; uint8_t control_register_g = (led.g - 0x24) / 8; diff --git a/drivers/led/issi/is31fl3731.h b/drivers/led/issi/is31fl3731.h index ccd972a03e..1e70eb276f 100644 --- a/drivers/led/issi/is31fl3731.h +++ b/drivers/led/issi/is31fl3731.h @@ -34,6 +34,9 @@ #ifdef ISSI_3731_DEGHOST # define IS31FL3731_DEGHOST ISSI_3731_DEGHOST #endif + +#define is31_led is31fl3731_led_t +#define g_is31_leds g_is31fl3731_leds // ======== #define IS31FL3731_I2C_ADDRESS_GND 0x74 @@ -41,14 +44,14 @@ #define IS31FL3731_I2C_ADDRESS_SDA 0x76 #define IS31FL3731_I2C_ADDRESS_VCC 0x77 -typedef struct is31_led { +typedef struct is31fl3731_led_t { uint8_t driver : 2; uint8_t r; uint8_t g; uint8_t b; -} __attribute__((packed)) is31_led; +} __attribute__((packed)) is31fl3731_led_t; -extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT]; +extern const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT]; void is31fl3731_init(uint8_t addr); void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data); diff --git a/drivers/led/issi/is31fl3733-simple.c b/drivers/led/issi/is31fl3733-simple.c index 6f7a8af79c..e94b4c7d78 100644 --- a/drivers/led/issi/is31fl3733-simple.c +++ b/drivers/led/issi/is31fl3733-simple.c @@ -173,9 +173,9 @@ void is31fl3733_init(uint8_t addr, uint8_t sync) { } void is31fl3733_set_value(int index, uint8_t value) { - is31_led led; + is31fl3733_led_t led; if (index >= 0 && index < LED_MATRIX_LED_COUNT) { - memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + memcpy_P(&led, (&g_is31fl3733_leds[index]), sizeof(led)); if (g_pwm_buffer[led.driver][led.v] == value) { return; @@ -192,8 +192,8 @@ void is31fl3733_set_value_all(uint8_t value) { } void is31fl3733_set_led_control_register(uint8_t index, bool value) { - is31_led led; - memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + is31fl3733_led_t led; + memcpy_P(&led, (&g_is31fl3733_leds[index]), sizeof(led)); uint8_t control_register = led.v / 8; uint8_t bit_value = led.v % 8; diff --git a/drivers/led/issi/is31fl3733-simple.h b/drivers/led/issi/is31fl3733-simple.h index b870c5c58c..8041a7f0f3 100644 --- a/drivers/led/issi/is31fl3733-simple.h +++ b/drivers/led/issi/is31fl3733-simple.h @@ -47,6 +47,9 @@ # define IS31FL3733_GLOBALCURRENT ISSI_GLOBALCURRENT #endif +#define is31_led is31fl3733_led_t +#define g_is31_leds g_is31fl3733_leds + #define PUR_0R IS31FL3733_PUR_0R #define PUR_05KR IS31FL3733_PUR_05KR #define PUR_3KR IS31FL3733_PUR_3KR @@ -73,12 +76,12 @@ #define IS31FL3733_I2C_ADDRESS_VCC_SDA 0x5E #define IS31FL3733_I2C_ADDRESS_VCC_VCC 0x5F -typedef struct is31_led { +typedef struct is31fl3733_led_t { uint8_t driver : 2; uint8_t v; -} __attribute__((packed)) is31_led; +} __attribute__((packed)) is31fl3733_led_t; -extern const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT]; +extern const is31fl3733_led_t PROGMEM g_is31fl3733_leds[LED_MATRIX_LED_COUNT]; void is31fl3733_init(uint8_t addr, uint8_t sync); bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data); diff --git a/drivers/led/issi/is31fl3733.c b/drivers/led/issi/is31fl3733.c index e501175a11..efc5929587 100644 --- a/drivers/led/issi/is31fl3733.c +++ b/drivers/led/issi/is31fl3733.c @@ -172,9 +172,9 @@ void is31fl3733_init(uint8_t addr, uint8_t sync) { } void is31fl3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - is31_led led; + is31fl3733_led_t led; if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { - memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + memcpy_P(&led, (&g_is31fl3733_leds[index]), sizeof(led)); if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { return; @@ -193,8 +193,8 @@ void is31fl3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { } void is31fl3733_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { - is31_led led; - memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + is31fl3733_led_t led; + memcpy_P(&led, (&g_is31fl3733_leds[index]), sizeof(led)); uint8_t control_register_r = led.r / 8; uint8_t control_register_g = led.g / 8; diff --git a/drivers/led/issi/is31fl3733.h b/drivers/led/issi/is31fl3733.h index e16560807f..be80e9e32c 100644 --- a/drivers/led/issi/is31fl3733.h +++ b/drivers/led/issi/is31fl3733.h @@ -46,6 +46,9 @@ # define IS31FL3733_GLOBALCURRENT ISSI_GLOBALCURRENT #endif +#define is31_led is31fl3733_led_t +#define g_is31_leds g_is31fl3733_leds + #define PUR_0R IS31FL3733_PUR_0R #define PUR_05KR IS31FL3733_PUR_05KR #define PUR_3KR IS31FL3733_PUR_3KR @@ -72,14 +75,14 @@ #define IS31FL3733_I2C_ADDRESS_VCC_SDA 0x5E #define IS31FL3733_I2C_ADDRESS_VCC_VCC 0x5F -typedef struct is31_led { +typedef struct is31fl3733_led_t { uint8_t driver : 2; uint8_t r; uint8_t g; uint8_t b; -} __attribute__((packed)) is31_led; +} __attribute__((packed)) is31fl3733_led_t; -extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT]; +extern const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT]; void is31fl3733_init(uint8_t addr, uint8_t sync); bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data); diff --git a/drivers/led/issi/is31fl3736-simple.c b/drivers/led/issi/is31fl3736-simple.c index cd4038ac2c..f3f202efb2 100644 --- a/drivers/led/issi/is31fl3736-simple.c +++ b/drivers/led/issi/is31fl3736-simple.c @@ -158,9 +158,9 @@ void is31fl3736_init(uint8_t addr) { } void is31fl3736_set_value(int index, uint8_t value) { - is31_led led; + is31fl3736_led_t led; if (index >= 0 && index < LED_MATRIX_LED_COUNT) { - memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + memcpy_P(&led, (&g_is31fl3736_leds[index]), sizeof(led)); if (g_pwm_buffer[led.driver][led.v] == value) { return; @@ -177,8 +177,8 @@ void is31fl3736_set_value_all(uint8_t value) { } void is31fl3736_set_led_control_register(uint8_t index, bool value) { - is31_led led; - memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + is31fl3736_led_t led; + memcpy_P(&led, (&g_is31fl3736_leds[index]), sizeof(led)); // The PWM register for a matrix position (0x00 to 0xBF) is interleaved, so: // A1=0x00 A2=0x02 A3=0x04 A4=0x06 A5=0x08 A6=0x0A A7=0x0C A8=0x0E diff --git a/drivers/led/issi/is31fl3736-simple.h b/drivers/led/issi/is31fl3736-simple.h index 9f8056af5b..d5525e460d 100644 --- a/drivers/led/issi/is31fl3736-simple.h +++ b/drivers/led/issi/is31fl3736-simple.h @@ -41,6 +41,9 @@ # define IS31FL3736_GLOBALCURRENT ISSI_GLOBALCURRENT #endif +#define is31_led is31fl3736_led_t +#define g_is31_leds g_is31fl3736_leds + #define PUR_0R IS31FL3736_PUR_0R #define PUR_05KR IS31FL3736_PUR_05KR #define PUR_1KR IS31FL3736_PUR_1KR @@ -68,12 +71,12 @@ #define IS31FL3736_I2C_ADDRESS_VCC_SDA 0x5E #define IS31FL3736_I2C_ADDRESS_VCC_VCC 0x5F -typedef struct is31_led { +typedef struct is31fl3736_led_t { uint8_t driver : 2; uint8_t v; -} __attribute__((packed)) is31_led; +} __attribute__((packed)) is31fl3736_led_t; -extern const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT]; +extern const is31fl3736_led_t PROGMEM g_is31fl3736_leds[LED_MATRIX_LED_COUNT]; void is31fl3736_init(uint8_t addr); void is31fl3736_write_register(uint8_t addr, uint8_t reg, uint8_t data); diff --git a/drivers/led/issi/is31fl3736.c b/drivers/led/issi/is31fl3736.c index 23ff0637a6..03f50873df 100644 --- a/drivers/led/issi/is31fl3736.c +++ b/drivers/led/issi/is31fl3736.c @@ -158,9 +158,9 @@ void is31fl3736_init(uint8_t addr) { } void is31fl3736_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - is31_led led; + is31fl3736_led_t led; if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { - memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + memcpy_P(&led, (&g_is31fl3736_leds[index]), sizeof(led)); if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { return; @@ -179,8 +179,8 @@ void is31fl3736_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { } void is31fl3736_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { - is31_led led; - memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + is31fl3736_led_t led; + memcpy_P(&led, (&g_is31fl3736_leds[index]), sizeof(led)); // The PWM register for a matrix position (0x00 to 0xBF) is interleaved, so: // A1=0x00 A2=0x02 A3=0x04 A4=0x06 A5=0x08 A6=0x0A A7=0x0C A8=0x0E diff --git a/drivers/led/issi/is31fl3736.h b/drivers/led/issi/is31fl3736.h index f263b131fd..37031134e9 100644 --- a/drivers/led/issi/is31fl3736.h +++ b/drivers/led/issi/is31fl3736.h @@ -41,6 +41,9 @@ # define IS31FL3736_GLOBALCURRENT ISSI_GLOBALCURRENT #endif +#define is31_led is31fl3736_led_t +#define g_is31_leds g_is31fl3736_leds + #define PUR_0R IS31FL3736_PUR_0R #define PUR_05KR IS31FL3736_PUR_05KR #define PUR_1KR IS31FL3736_PUR_1KR @@ -68,14 +71,14 @@ #define IS31FL3736_I2C_ADDRESS_VCC_SDA 0x5E #define IS31FL3736_I2C_ADDRESS_VCC_VCC 0x5F -typedef struct is31_led { +typedef struct is31fl3736_led_t { uint8_t driver : 2; uint8_t r; uint8_t g; uint8_t b; -} __attribute__((packed)) is31_led; +} __attribute__((packed)) is31fl3736_led_t; -extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT]; +extern const is31fl3736_led_t PROGMEM g_is31fl3736_leds[RGB_MATRIX_LED_COUNT]; void is31fl3736_init(uint8_t addr); void is31fl3736_write_register(uint8_t addr, uint8_t reg, uint8_t data); diff --git a/drivers/led/issi/is31fl3737-simple.c b/drivers/led/issi/is31fl3737-simple.c index b25fbb5a56..3db7b7ed33 100644 --- a/drivers/led/issi/is31fl3737-simple.c +++ b/drivers/led/issi/is31fl3737-simple.c @@ -161,9 +161,9 @@ void is31fl3737_init(uint8_t addr) { } void is31fl3737_set_value(int index, uint8_t value) { - is31_led led; + is31fl3737_led_t led; if (index >= 0 && index < LED_MATRIX_LED_COUNT) { - memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + memcpy_P(&led, (&g_is31fl3737_leds[index]), sizeof(led)); if (g_pwm_buffer[led.driver][led.v] == value) { return; @@ -180,8 +180,8 @@ void is31fl3737_set_value_all(uint8_t value) { } void is31fl3737_set_led_control_register(uint8_t index, bool value) { - is31_led led; - memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + is31fl3737_led_t led; + memcpy_P(&led, (&g_is31fl3737_leds[index]), sizeof(led)); uint8_t control_register = led.v / 8; uint8_t bit_value = led.v % 8; diff --git a/drivers/led/issi/is31fl3737-simple.h b/drivers/led/issi/is31fl3737-simple.h index d242daa1d0..0f4e0d014b 100644 --- a/drivers/led/issi/is31fl3737-simple.h +++ b/drivers/led/issi/is31fl3737-simple.h @@ -61,12 +61,12 @@ #define IS31FL3737_I2C_ADDRESS_SDA 0x5A #define IS31FL3737_I2C_ADDRESS_VCC 0x5F -typedef struct is31_led { +typedef struct is31fl3737_led_t { uint8_t driver : 2; uint8_t v; -} __attribute__((packed)) is31_led; +} __attribute__((packed)) is31fl3737_led_t; -extern const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT]; +extern const is31fl3737_led_t PROGMEM g_is31fl3737_leds[LED_MATRIX_LED_COUNT]; void is31fl3737_init(uint8_t addr); void is31fl3737_write_register(uint8_t addr, uint8_t reg, uint8_t data); diff --git a/drivers/led/issi/is31fl3737.c b/drivers/led/issi/is31fl3737.c index 3d93548a46..c2af75bbb8 100644 --- a/drivers/led/issi/is31fl3737.c +++ b/drivers/led/issi/is31fl3737.c @@ -161,9 +161,9 @@ void is31fl3737_init(uint8_t addr) { } void is31fl3737_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - is31_led led; + is31fl3737_led_t led; if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { - memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + memcpy_P(&led, (&g_is31fl3737_leds[index]), sizeof(led)); if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { return; @@ -182,8 +182,8 @@ void is31fl3737_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { } void is31fl3737_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { - is31_led led; - memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + is31fl3737_led_t led; + memcpy_P(&led, (&g_is31fl3737_leds[index]), sizeof(led)); uint8_t control_register_r = led.r / 8; uint8_t control_register_g = led.g / 8; diff --git a/drivers/led/issi/is31fl3737.h b/drivers/led/issi/is31fl3737.h index 2d6612b704..84ed95f793 100644 --- a/drivers/led/issi/is31fl3737.h +++ b/drivers/led/issi/is31fl3737.h @@ -46,6 +46,9 @@ # define IS31FL3737_GLOBALCURRENT ISSI_GLOBALCURRENT #endif +#define is31_led is31fl3737_led_t +#define g_is31_leds g_is31fl3737_leds + #define PUR_0R IS31FL3737_PUR_0R #define PUR_05KR IS31FL3737_PUR_05KR #define PUR_1KR IS31FL3737_PUR_1KR @@ -61,14 +64,14 @@ #define IS31FL3737_I2C_ADDRESS_SDA 0x5A #define IS31FL3737_I2C_ADDRESS_VCC 0x5F -typedef struct is31_led { +typedef struct is31fl3737_led_t { uint8_t driver : 2; uint8_t r; uint8_t g; uint8_t b; -} __attribute__((packed)) is31_led; +} __attribute__((packed)) is31fl3737_led_t; -extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT]; +extern const is31fl3737_led_t PROGMEM g_is31fl3737_leds[RGB_MATRIX_LED_COUNT]; void is31fl3737_init(uint8_t addr); void is31fl3737_write_register(uint8_t addr, uint8_t reg, uint8_t data); diff --git a/drivers/led/issi/is31fl3741-simple.c b/drivers/led/issi/is31fl3741-simple.c index 7df3030131..93c02fbc26 100644 --- a/drivers/led/issi/is31fl3741-simple.c +++ b/drivers/led/issi/is31fl3741-simple.c @@ -173,9 +173,9 @@ void is31fl3741_init(uint8_t addr) { } void is31fl3741_set_value(int index, uint8_t value) { - is31_led led; + is31fl3741_led_t led; if (index >= 0 && index < LED_MATRIX_LED_COUNT) { - memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + memcpy_P(&led, (&g_is31fl3741_leds[index]), sizeof(led)); if (g_pwm_buffer[led.driver][led.v] == value) { return; @@ -192,8 +192,8 @@ void is31fl3741_set_value_all(uint8_t value) { } void is31fl3741_set_led_control_register(uint8_t index, bool value) { - is31_led led; - memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + is31fl3741_led_t led; + memcpy_P(&led, (&g_is31fl3741_leds[index]), sizeof(led)); if (value) { g_scaling_registers[led.driver][led.v] = 0xFF; @@ -216,7 +216,7 @@ void is31fl3741_update_pwm_buffers(uint8_t addr, uint8_t index) { g_pwm_buffer_update_required[index] = false; } -void is31fl3741_set_pwm_buffer(const is31_led *pled, uint8_t value) { +void is31fl3741_set_pwm_buffer(const is31fl3741_led_t *pled, uint8_t value) { g_pwm_buffer[pled->driver][pled->v] = value; g_pwm_buffer_update_required[pled->driver] = true; @@ -246,7 +246,7 @@ void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index) { } } -void is31fl3741_set_scaling_registers(const is31_led *pled, uint8_t value) { +void is31fl3741_set_scaling_registers(const is31fl3741_led_t *pled, uint8_t value) { g_scaling_registers[pled->driver][pled->v] = value; g_scaling_registers_update_required[pled->driver] = true; diff --git a/drivers/led/issi/is31fl3741-simple.h b/drivers/led/issi/is31fl3741-simple.h index 8bca066ad3..46c058c644 100644 --- a/drivers/led/issi/is31fl3741-simple.h +++ b/drivers/led/issi/is31fl3741-simple.h @@ -61,12 +61,12 @@ #define IS31FL3741_I2C_ADDRESS_SDA 0x32 #define IS31FL3741_I2C_ADDRESS_VCC 0x33 -typedef struct is31_led { +typedef struct is31fl3741_led_t { uint32_t driver : 2; uint32_t v : 10; -} __attribute__((packed)) is31_led; +} __attribute__((packed)) is31fl3741_led_t; -extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT]; +extern const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT]; void is31fl3741_init(uint8_t addr); void is31fl3741_write_register(uint8_t addr, uint8_t reg, uint8_t data); @@ -83,9 +83,9 @@ void is31fl3741_set_led_control_register(uint8_t index, bool value); // If the buffer is dirty, it will update the driver with the buffer. void is31fl3741_update_pwm_buffers(uint8_t addr, uint8_t index); void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index); -void is31fl3741_set_scaling_registers(const is31_led *pled, uint8_t value); +void is31fl3741_set_scaling_registers(const is31fl3741_led_t *pled, uint8_t value); -void is31fl3741_set_pwm_buffer(const is31_led *pled, uint8_t value); +void is31fl3741_set_pwm_buffer(const is31fl3741_led *pled, uint8_t value); #define IS31FL3741_PUR_0R 0x00 // No PUR resistor #define IS31FL3741_PUR_05KR 0x01 // 0.5k Ohm resistor diff --git a/drivers/led/issi/is31fl3741.c b/drivers/led/issi/is31fl3741.c index f34e0b87a1..47c15a11ca 100644 --- a/drivers/led/issi/is31fl3741.c +++ b/drivers/led/issi/is31fl3741.c @@ -173,9 +173,9 @@ void is31fl3741_init(uint8_t addr) { } void is31fl3741_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - is31_led led; + is31fl3741_led_t led; if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { - memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + memcpy_P(&led, (&g_is31fl3741_leds[index]), sizeof(led)); if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { return; @@ -194,8 +194,8 @@ void is31fl3741_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { } void is31fl3741_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { - is31_led led; - memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + is31fl3741_led_t led; + memcpy_P(&led, (&g_is31fl3741_leds[index]), sizeof(led)); if (red) { g_scaling_registers[led.driver][led.r] = 0xFF; @@ -230,7 +230,7 @@ void is31fl3741_update_pwm_buffers(uint8_t addr, uint8_t index) { g_pwm_buffer_update_required[index] = false; } -void is31fl3741_set_pwm_buffer(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue) { +void is31fl3741_set_pwm_buffer(const is31fl3741_led_t *pled, uint8_t red, uint8_t green, uint8_t blue) { g_pwm_buffer[pled->driver][pled->r] = red; g_pwm_buffer[pled->driver][pled->g] = green; g_pwm_buffer[pled->driver][pled->b] = blue; @@ -262,7 +262,7 @@ void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index) { } } -void is31fl3741_set_scaling_registers(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue) { +void is31fl3741_set_scaling_registers(const is31fl3741_led_t *pled, uint8_t red, uint8_t green, uint8_t blue) { g_scaling_registers[pled->driver][pled->r] = red; g_scaling_registers[pled->driver][pled->g] = green; g_scaling_registers[pled->driver][pled->b] = blue; diff --git a/drivers/led/issi/is31fl3741.h b/drivers/led/issi/is31fl3741.h index 65f8af98c8..ff16624009 100644 --- a/drivers/led/issi/is31fl3741.h +++ b/drivers/led/issi/is31fl3741.h @@ -46,6 +46,9 @@ # define IS31FL3741_GLOBALCURRENT ISSI_GLOBALCURRENT #endif +#define is31_led is31fl3741_led_t +#define g_is31_leds g_is31fl3741_leds + #define PUR_0R IS31FL3741_PUR_0R #define PUR_05KR IS31FL3741_PUR_05KR #define PUR_1KR IS31FL3741_PUR_1KR @@ -61,14 +64,14 @@ #define IS31FL3741_I2C_ADDRESS_SDA 0x32 #define IS31FL3741_I2C_ADDRESS_VCC 0x33 -typedef struct is31_led { +typedef struct is31fl3741_led_t { uint32_t driver : 2; uint32_t r : 10; uint32_t g : 10; uint32_t b : 10; -} __attribute__((packed)) is31_led; +} __attribute__((packed)) is31fl3741_led_t; -extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT]; +extern const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT]; void is31fl3741_init(uint8_t addr); void is31fl3741_write_register(uint8_t addr, uint8_t reg, uint8_t data); @@ -85,9 +88,9 @@ void is31fl3741_set_led_control_register(uint8_t index, bool red, bool green, bo // If the buffer is dirty, it will update the driver with the buffer. void is31fl3741_update_pwm_buffers(uint8_t addr, uint8_t index); void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index); -void is31fl3741_set_scaling_registers(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue); +void is31fl3741_set_scaling_registers(const is31fl3741_led_t *pled, uint8_t red, uint8_t green, uint8_t blue); -void is31fl3741_set_pwm_buffer(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue); +void is31fl3741_set_pwm_buffer(const is31fl3741_led_t *pled, uint8_t red, uint8_t green, uint8_t blue); #define IS31FL3741_PUR_0R 0x00 // No PUR resistor #define IS31FL3741_PUR_05KR 0x01 // 0.5k Ohm resistor diff --git a/keyboards/4pplet/perk60_iso/rev_a/rev_a.c b/keyboards/4pplet/perk60_iso/rev_a/rev_a.c index 814a8f95d4..e3b8d71a90 100644 --- a/keyboards/4pplet/perk60_iso/rev_a/rev_a.c +++ b/keyboards/4pplet/perk60_iso/rev_a/rev_a.c @@ -17,7 +17,7 @@ along with this program. If not, see . #include "rev_a.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { { 0, K_2, J_2, L_2 }, //D402 { 0, K_3, J_3, L_3 }, //D403 { 0, K_4, J_4, L_4 }, //D404 diff --git a/keyboards/abko/ak84bt/ak84bt.c b/keyboards/abko/ak84bt/ak84bt.c index 0ecd06b177..a51f1f458f 100644 --- a/keyboards/abko/ak84bt/ak84bt.c +++ b/keyboards/abko/ak84bt/ak84bt.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { {0, G_1, I_1, H_1}, {0, G_3, I_3, H_3}, {0, G_4, I_4, H_4}, diff --git a/keyboards/acheron/apollo/87h/gamma/gamma.c b/keyboards/acheron/apollo/87h/gamma/gamma.c index fb381f52ce..19e9106287 100644 --- a/keyboards/acheron/apollo/87h/gamma/gamma.c +++ b/keyboards/acheron/apollo/87h/gamma/gamma.c @@ -18,7 +18,7 @@ along with this program. If not, see . #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/aeboards/satellite/rev1/rev1.c b/keyboards/aeboards/satellite/rev1/rev1.c index 785fa8af9f..7260bdc67b 100644 --- a/keyboards/aeboards/satellite/rev1/rev1.c +++ b/keyboards/aeboards/satellite/rev1/rev1.c @@ -18,7 +18,7 @@ #include "drivers/led/issi/is31fl3731.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/axolstudio/yeti/hotswap/hotswap.c b/keyboards/axolstudio/yeti/hotswap/hotswap.c index 98d37290e6..527bec17ee 100644 --- a/keyboards/axolstudio/yeti/hotswap/hotswap.c +++ b/keyboards/axolstudio/yeti/hotswap/hotswap.c @@ -17,7 +17,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { { 0, B_1, A_1, C_1 }, { 0, B_2, A_2, C_2 }, { 0, B_3, A_3, C_3 }, diff --git a/keyboards/canary/canary60rgb/canary60rgb.c b/keyboards/canary/canary60rgb/canary60rgb.c index c47abf57fd..065268c531 100644 --- a/keyboards/canary/canary60rgb/canary60rgb.c +++ b/keyboards/canary/canary60rgb/canary60rgb.c @@ -16,7 +16,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { { 0, J_14, K_14, L_14 }, { 0, J_13, K_13, L_13 }, { 0, J_12, K_12, L_12 }, diff --git a/keyboards/clueboard/66_hotswap/gen1/gen1.c b/keyboards/clueboard/66_hotswap/gen1/gen1.c index a935884a0b..7af0b964da 100644 --- a/keyboards/clueboard/66_hotswap/gen1/gen1.c +++ b/keyboards/clueboard/66_hotswap/gen1/gen1.c @@ -16,7 +16,7 @@ #include "quantum.h" #ifdef LED_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[LED_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | LED address diff --git a/keyboards/dp60/dp60.c b/keyboards/dp60/dp60.c index 75e6649ad5..588acd591d 100644 --- a/keyboards/dp60/dp60.c +++ b/keyboards/dp60/dp60.c @@ -17,7 +17,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/drop/alt/v2/v2.c b/keyboards/drop/alt/v2/v2.c index 2e183fe4d8..fcdad7f2df 100644 --- a/keyboards/drop/alt/v2/v2.c +++ b/keyboards/drop/alt/v2/v2.c @@ -3,7 +3,7 @@ #ifdef RGB_MATRIX_ENABLE # include "rgb_matrix.h" -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { { 1, B_2, A_2, C_2 }, { 1, E_3, D_3, F_3 }, { 1, E_4, D_4, F_4 }, diff --git a/keyboards/drop/cstm80/cstm80.c b/keyboards/drop/cstm80/cstm80.c index c60f347cb9..75e7049c20 100644 --- a/keyboards/drop/cstm80/cstm80.c +++ b/keyboards/drop/cstm80/cstm80.c @@ -3,7 +3,7 @@ #ifdef RGB_MATRIX_ENABLE # include "rgb_matrix.h" -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { { 0, E_1, D_1, F_1 }, { 0, E_2, D_2, F_2 }, { 0, E_3, D_3, F_3 }, diff --git a/keyboards/drop/ctrl/v2/v2.c b/keyboards/drop/ctrl/v2/v2.c index 6f3091035b..6b565efbe1 100644 --- a/keyboards/drop/ctrl/v2/v2.c +++ b/keyboards/drop/ctrl/v2/v2.c @@ -3,7 +3,7 @@ #ifdef RGB_MATRIX_ENABLE # include "rgb_matrix.h" -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { { 1, B_2, A_2, C_2 }, { 1, E_3, D_3, F_3 }, { 1, E_4, D_4, F_4 }, diff --git a/keyboards/drop/sense75/sense75.c b/keyboards/drop/sense75/sense75.c index 40577054cc..057e310748 100644 --- a/keyboards/drop/sense75/sense75.c +++ b/keyboards/drop/sense75/sense75.c @@ -3,7 +3,7 @@ #ifdef RGB_MATRIX_ENABLE # include "rgb_matrix.h" -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { // top underglow sd2-sd17 { 0, B_2, A_2, C_2 }, { 0, B_3, A_3, C_3 }, diff --git a/keyboards/drop/shift/v2/v2.c b/keyboards/drop/shift/v2/v2.c index 326c418279..8565a0cb26 100644 --- a/keyboards/drop/shift/v2/v2.c +++ b/keyboards/drop/shift/v2/v2.c @@ -4,7 +4,7 @@ # include "host.h" # include "rgb_matrix.h" -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { { 0, K_1, J_1, L_1 },// LED1 { 0, K_2, J_2, L_2 }, { 0, K_3, J_3, L_3 }, diff --git a/keyboards/durgod/dgk6x/galaxy/galaxy.c b/keyboards/durgod/dgk6x/galaxy/galaxy.c index 9d0d25f823..aa903c3a0a 100644 --- a/keyboards/durgod/dgk6x/galaxy/galaxy.c +++ b/keyboards/durgod/dgk6x/galaxy/galaxy.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/durgod/dgk6x/hades_ansi/hades_ansi.c b/keyboards/durgod/dgk6x/hades_ansi/hades_ansi.c index fb54c95667..2d1907f4db 100644 --- a/keyboards/durgod/dgk6x/hades_ansi/hades_ansi.c +++ b/keyboards/durgod/dgk6x/hades_ansi/hades_ansi.c @@ -19,7 +19,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/durgod/dgk6x/hades_iso/hades_iso.c b/keyboards/durgod/dgk6x/hades_iso/hades_iso.c index 5f7a724aea..42f43645f5 100644 --- a/keyboards/durgod/dgk6x/hades_iso/hades_iso.c +++ b/keyboards/durgod/dgk6x/hades_iso/hades_iso.c @@ -19,7 +19,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/durgod/dgk6x/venus/venus.c b/keyboards/durgod/dgk6x/venus/venus.c index 8c5ba712b1..d48e95fb21 100644 --- a/keyboards/durgod/dgk6x/venus/venus.c +++ b/keyboards/durgod/dgk6x/venus/venus.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/dztech/dz60rgb/dz60rgb.c b/keyboards/dztech/dz60rgb/dz60rgb.c index 811dd0cd91..826e3502eb 100644 --- a/keyboards/dztech/dz60rgb/dz60rgb.c +++ b/keyboards/dztech/dz60rgb/dz60rgb.c @@ -1,7 +1,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { { 0, K_14, J_14, L_14 }, { 0, K_13, J_13, L_13 }, { 0, K_12, J_12, L_12 }, diff --git a/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c b/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c index b607a58a4e..5c06922028 100644 --- a/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c +++ b/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c @@ -1,7 +1,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { { 0, K_14, J_14, L_14 }, { 0, K_13, J_13, L_13 }, { 0, K_12, J_12, L_12 }, diff --git a/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c b/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c index 5a55bacefc..d6506389a6 100644 --- a/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c +++ b/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c @@ -1,7 +1,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { { 0, H_15, G_15, I_15 }, { 0, K_14, J_14, L_14 }, { 0, K_13, J_13, L_13 }, diff --git a/keyboards/dztech/dz64rgb/dz64rgb.c b/keyboards/dztech/dz64rgb/dz64rgb.c index 5fa08a3ee8..561a9727e5 100644 --- a/keyboards/dztech/dz64rgb/dz64rgb.c +++ b/keyboards/dztech/dz64rgb/dz64rgb.c @@ -17,7 +17,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { { 0, K_14, J_14, L_14 }, { 0, K_13, J_13, L_13 }, { 0, K_12, J_12, L_12 }, diff --git a/keyboards/dztech/dz65rgb/v1/v1.c b/keyboards/dztech/dz65rgb/v1/v1.c index a3b7bdfb5b..a0a355e120 100644 --- a/keyboards/dztech/dz65rgb/v1/v1.c +++ b/keyboards/dztech/dz65rgb/v1/v1.c @@ -16,7 +16,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { { 0, C8_8, C7_8, C6_8 }, { 0, C9_8, C7_7, C6_7 }, { 0, C9_7, C8_7, C6_6 }, diff --git a/keyboards/dztech/dz65rgb/v2/v2.c b/keyboards/dztech/dz65rgb/v2/v2.c index 31599ad4b8..7754bc4ee5 100644 --- a/keyboards/dztech/dz65rgb/v2/v2.c +++ b/keyboards/dztech/dz65rgb/v2/v2.c @@ -16,7 +16,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { { 0, C8_8, C7_8, C6_8 }, { 0, C9_8, C7_7, C6_7 }, { 0, C9_7, C8_7, C6_6 }, diff --git a/keyboards/dztech/dz65rgb/v3/v3.c b/keyboards/dztech/dz65rgb/v3/v3.c index ceb5c30f3e..0fb8ba49de 100755 --- a/keyboards/dztech/dz65rgb/v3/v3.c +++ b/keyboards/dztech/dz65rgb/v3/v3.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS21_SW1, CS20_SW1, CS19_SW1}, {0, CS21_SW2, CS20_SW2, CS19_SW2}, {0, CS21_SW3, CS20_SW3, CS19_SW3}, diff --git a/keyboards/dztech/tofu/ii/v1/v1.c b/keyboards/dztech/tofu/ii/v1/v1.c index bb15f3d4a1..8baf0235bd 100644 --- a/keyboards/dztech/tofu/ii/v1/v1.c +++ b/keyboards/dztech/tofu/ii/v1/v1.c @@ -17,7 +17,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3737_led_t PROGMEM g_is31fl3737_leds[RGB_MATRIX_LED_COUNT] = { { 1, K_12, J_12, L_12 }, { 1, K_11, J_11, L_11 }, { 1, K_10, J_10, L_10 }, diff --git a/keyboards/dztech/tofu/jr/v1/v1.c b/keyboards/dztech/tofu/jr/v1/v1.c index 4b7d7c957e..474134cb5e 100644 --- a/keyboards/dztech/tofu/jr/v1/v1.c +++ b/keyboards/dztech/tofu/jr/v1/v1.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3737_led_t PROGMEM g_is31fl3737_leds[RGB_MATRIX_LED_COUNT] = { { 1, K_12, J_12, L_12 }, { 1, K_11, J_11, L_11 }, { 1, K_10, J_10, L_10 }, diff --git a/keyboards/ergodox_ez/ergodox_ez.c b/keyboards/ergodox_ez/ergodox_ez.c index 3683128234..455d294ef5 100644 --- a/keyboards/ergodox_ez/ergodox_ez.c +++ b/keyboards/ergodox_ez/ergodox_ez.c @@ -243,7 +243,7 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { #ifdef RGB_MATRIX_ENABLE // clang-format off -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* driver * | R location * | | G location diff --git a/keyboards/evyd13/atom47/rev5/rev5.c b/keyboards/evyd13/atom47/rev5/rev5.c index adec48e6bb..7bf2a961ff 100644 --- a/keyboards/evyd13/atom47/rev5/rev5.c +++ b/keyboards/evyd13/atom47/rev5/rev5.c @@ -17,7 +17,7 @@ along with this program. If not, see . #include "quantum.h" -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/exclusive/e6_rgb/e6_rgb.c b/keyboards/exclusive/e6_rgb/e6_rgb.c index 2da1fbce68..f34f40cc1f 100644 --- a/keyboards/exclusive/e6_rgb/e6_rgb.c +++ b/keyboards/exclusive/e6_rgb/e6_rgb.c @@ -7,7 +7,7 @@ void matrix_init_kb(void) { matrix_init_user(); } -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/fallacy/indicators.c b/keyboards/fallacy/indicators.c index b9a4a87056..607be8cd85 100755 --- a/keyboards/fallacy/indicators.c +++ b/keyboards/fallacy/indicators.c @@ -54,7 +54,7 @@ void set_fallacy_led(int index, bool state) { /* define LED matrix */ -const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[LED_MATRIX_LED_COUNT] = { {0, C1_1}, {0, C2_1}, {0, C3_1}, diff --git a/keyboards/feker/ik75/ik75.c b/keyboards/feker/ik75/ik75.c index 98b24abfe8..826afab01b 100644 --- a/keyboards/feker/ik75/ik75.c +++ b/keyboards/feker/ik75/ik75.c @@ -18,7 +18,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | G location diff --git a/keyboards/ferris/0_2/bling/bling.c b/keyboards/ferris/0_2/bling/bling.c index 8af1d33e85..07f58149cc 100644 --- a/keyboards/ferris/0_2/bling/bling.c +++ b/keyboards/ferris/0_2/bling/bling.c @@ -27,7 +27,7 @@ along with this program. If not, see . | | 4 | | || | | 4 | | | 6 | | | 2 || 2 | | | 5 | */ -const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/flashquark/horizon_z/horizon_z.c b/keyboards/flashquark/horizon_z/horizon_z.c index da62deaf29..a9faa5a943 100755 --- a/keyboards/flashquark/horizon_z/horizon_z.c +++ b/keyboards/flashquark/horizon_z/horizon_z.c @@ -17,7 +17,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { {0, B_1, A_1, C_1}, {0, B_2, A_2, C_2}, {0, B_3, A_3, C_3}, diff --git a/keyboards/frooastboard/walnut/walnut.c b/keyboards/frooastboard/walnut/walnut.c index 7163af011d..48d1677f7a 100644 --- a/keyboards/frooastboard/walnut/walnut.c +++ b/keyboards/frooastboard/walnut/walnut.c @@ -5,7 +5,7 @@ #if defined(RGB_MATRIX_ENABLE) -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3737_led_t PROGMEM g_is31fl3737_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/geekboards/tester/tester.c b/keyboards/geekboards/tester/tester.c index 05b220250f..187d887d58 100644 --- a/keyboards/geekboards/tester/tester.c +++ b/keyboards/geekboards/tester/tester.c @@ -1,6 +1,6 @@ #include "quantum.h" -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/gizmo_engineering/gk6/gk6.c b/keyboards/gizmo_engineering/gk6/gk6.c index e28f5d43c7..18883727b8 100755 --- a/keyboards/gizmo_engineering/gk6/gk6.c +++ b/keyboards/gizmo_engineering/gk6/gk6.c @@ -17,7 +17,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { {0, C1_8, C2_8, C3_8}, //0 led1 {0, C1_7, C2_7, C3_7}, //1 led2 {0, C1_6, C2_6, C3_6}, //2 led3 diff --git a/keyboards/handwired/orbweaver/orbweaver.c b/keyboards/handwired/orbweaver/orbweaver.c index f6485b6adf..63778ea52b 100644 --- a/keyboards/handwired/orbweaver/orbweaver.c +++ b/keyboards/handwired/orbweaver/orbweaver.c @@ -22,7 +22,7 @@ #include "rgb_matrix.h" -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/hs60/v1/v1.c b/keyboards/hs60/v1/v1.c index 6c5f03f428..50f6215a02 100644 --- a/keyboards/hs60/v1/v1.c +++ b/keyboards/hs60/v1/v1.c @@ -91,7 +91,7 @@ void raw_hid_receive( uint8_t *data, uint8_t length ) #ifdef HS60_ANSI -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -199,7 +199,7 @@ led_config_t g_led_config = { { #else -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/ilumkb/simpler61/simpler61.c b/keyboards/ilumkb/simpler61/simpler61.c index 32670396da..f29f05defe 100644 --- a/keyboards/ilumkb/simpler61/simpler61.c +++ b/keyboards/ilumkb/simpler61/simpler61.c @@ -17,7 +17,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS3_SW1, CS2_SW1, CS1_SW1}, {0, CS3_SW2, CS2_SW2, CS1_SW2}, {0, CS3_SW3, CS2_SW3, CS1_SW3}, diff --git a/keyboards/ilumkb/simpler64/simpler64.c b/keyboards/ilumkb/simpler64/simpler64.c index 130898f037..a562fa5c8b 100644 --- a/keyboards/ilumkb/simpler64/simpler64.c +++ b/keyboards/ilumkb/simpler64/simpler64.c @@ -17,7 +17,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS3_SW1, CS2_SW1, CS1_SW1}, {0, CS3_SW2, CS2_SW2, CS1_SW2}, {0, CS3_SW3, CS2_SW3, CS1_SW3}, diff --git a/keyboards/inett_studio/sqx/hotswap/hotswap.c b/keyboards/inett_studio/sqx/hotswap/hotswap.c index 7f5e298c4c..4d77a4829e 100644 --- a/keyboards/inett_studio/sqx/hotswap/hotswap.c +++ b/keyboards/inett_studio/sqx/hotswap/hotswap.c @@ -20,7 +20,7 @@ #include "hotswap.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/inett_studio/sqx/universal/universal.c b/keyboards/inett_studio/sqx/universal/universal.c index 9715f28b78..3ba42e9995 100644 --- a/keyboards/inett_studio/sqx/universal/universal.c +++ b/keyboards/inett_studio/sqx/universal/universal.c @@ -20,7 +20,7 @@ #include "universal.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/input_club/ergodox_infinity/ergodox_infinity.c b/keyboards/input_club/ergodox_infinity/ergodox_infinity.c index 70cd26a3f3..8f245d9fa3 100644 --- a/keyboards/input_club/ergodox_infinity/ergodox_infinity.c +++ b/keyboards/input_club/ergodox_infinity/ergodox_infinity.c @@ -171,7 +171,7 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { #endif #ifdef LED_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[LED_MATRIX_LED_COUNT] = { // The numbers in the comments are the led numbers DXX on the PCB /* Refer to IS31 manual for these locations * driver @@ -195,7 +195,7 @@ const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = { // 71 70 69 { 0, C3_7 }, { 0, C2_7 }, { 0, C1_7 }, // Right half (mirrored) -// Due to how LED_MATRIX_SPLIT is implemented, only the first half of g_is31_leds is actually used. +// Due to how LED_MATRIX_SPLIT is implemented, only the first half of g_is31fl3731_leds is actually used. // Luckily, the right half has the same LED pinouts, just mirrored. // 45 44 43 42 41 40 39 { 0, C2_2 }, { 0, C1_2 }, { 0, C5_1 }, { 0, C4_1 }, { 0, C3_1 }, { 0, C2_1 }, { 0, C1_1 }, diff --git a/keyboards/input_club/infinity60/led/led.c b/keyboards/input_club/infinity60/led/led.c index ef29d12a29..a6a63e202d 100644 --- a/keyboards/input_club/infinity60/led/led.c +++ b/keyboards/input_club/infinity60/led/led.c @@ -4,7 +4,7 @@ #include "quantum.h" #ifdef LED_MATRIX_ENABLE -const is31_led g_is31_leds[LED_MATRIX_LED_COUNT] = { +const is31fl3731_led_t g_is31fl3731_leds[LED_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | LED address diff --git a/keyboards/input_club/k_type/is31fl3733-dual.c b/keyboards/input_club/k_type/is31fl3733-dual.c index 851b56a37d..ea523eea1f 100644 --- a/keyboards/input_club/k_type/is31fl3733-dual.c +++ b/keyboards/input_club/k_type/is31fl3733-dual.c @@ -172,9 +172,9 @@ void is31fl3733_init(uint8_t bus, uint8_t addr, uint8_t sync) { } void is31fl3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - is31_led led; + is31fl3733_led_t led; if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { - memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + memcpy_P(&led, (&g_is31fl3733_leds[index]), sizeof(led)); if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { return; @@ -193,8 +193,8 @@ void is31fl3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { } void is31fl3733_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { - is31_led led; - memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); + is31fl3733_led_t led; + memcpy_P(&led, (&g_is31fl3733_leds[index]), sizeof(led)); uint8_t control_register_r = led.r / 8; uint8_t control_register_g = led.g / 8; diff --git a/keyboards/input_club/k_type/is31fl3733-dual.h b/keyboards/input_club/k_type/is31fl3733-dual.h index 796708f507..7a43bc49f4 100644 --- a/keyboards/input_club/k_type/is31fl3733-dual.h +++ b/keyboards/input_club/k_type/is31fl3733-dual.h @@ -39,14 +39,14 @@ #define IS31FL3733_I2C_ADDRESS_VCC_SDA 0x5E #define IS31FL3733_I2C_ADDRESS_VCC_VCC 0x5F -typedef struct is31_led { +typedef struct is31fl3733_led_t { uint8_t driver : 2; uint8_t r; uint8_t g; uint8_t b; -} __attribute__((packed)) is31_led; +} __attribute__((packed)) is31fl3733_led_t; -extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT]; +extern const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT]; void is31fl3733_init(uint8_t bus, uint8_t addr, uint8_t sync); bool is31fl3733_write_register(uint8_t index, uint8_t addr, uint8_t reg, uint8_t data); diff --git a/keyboards/input_club/k_type/k_type.c b/keyboards/input_club/k_type/k_type.c index 0d0b763b20..c6d06b51dc 100644 --- a/keyboards/input_club/k_type/k_type.c +++ b/keyboards/input_club/k_type/k_type.c @@ -20,7 +20,7 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE # include "is31fl3733-dual.h" -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { { 0, B_1, A_1, C_1 }, { 0, B_2, A_2, C_2 }, { 0, B_3, A_3, C_3 }, diff --git a/keyboards/input_club/whitefox/whitefox.c b/keyboards/input_club/whitefox/whitefox.c index b0f0f03776..63c6a49240 100644 --- a/keyboards/input_club/whitefox/whitefox.c +++ b/keyboards/input_club/whitefox/whitefox.c @@ -18,7 +18,7 @@ along with this program. If not, see . #include "quantum.h" #ifdef LED_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[LED_MATRIX_LED_COUNT] = { // The numbers in the comments are the led numbers DXX on the PCB /* Refer to IS31 manual for these locations * driver diff --git a/keyboards/kbdcraft/adam64/adam64.c b/keyboards/kbdcraft/adam64/adam64.c index c23bd489a5..b0712aec39 100644 --- a/keyboards/kbdcraft/adam64/adam64.c +++ b/keyboards/kbdcraft/adam64/adam64.c @@ -19,7 +19,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/kbdfans/bella/rgb/rgb.c b/keyboards/kbdfans/bella/rgb/rgb.c index aac16dd820..8bdc1d8fdf 100644 --- a/keyboards/kbdfans/bella/rgb/rgb.c +++ b/keyboards/kbdfans/bella/rgb/rgb.c @@ -15,7 +15,7 @@ */ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS18_SW1, CS17_SW1, CS16_SW1}, /* RGB6 */ {0, CS18_SW3, CS17_SW3, CS16_SW3}, /* RGB32 */ {0, CS18_SW4, CS17_SW4, CS16_SW4}, /* RGB45 */ diff --git a/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c b/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c index 30371614d8..e36b811bbc 100644 --- a/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c +++ b/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c @@ -15,7 +15,7 @@ */ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS18_SW1, CS17_SW1, CS16_SW1}, /* RGB6 */ {0, CS18_SW3, CS17_SW3, CS16_SW3}, /* RGB32 */ {0, CS18_SW4, CS17_SW4, CS16_SW4}, /* RGB45 */ diff --git a/keyboards/kbdfans/boop65/rgb/rgb.c b/keyboards/kbdfans/boop65/rgb/rgb.c index 985f877e85..f2b5858966 100644 --- a/keyboards/kbdfans/boop65/rgb/rgb.c +++ b/keyboards/kbdfans/boop65/rgb/rgb.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS21_SW1, CS20_SW1, CS19_SW1}, {0, CS21_SW2, CS20_SW2, CS19_SW2}, {0, CS21_SW3, CS20_SW3, CS19_SW3}, diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c b/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c index 336526eb11..c70622dd56 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c @@ -16,7 +16,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { {0, C8_8, C7_8, C6_8}, // LA17 {0, C9_8, C7_7, C6_7}, // LA16 diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c b/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c index 3bb336c0a2..7de8060d7a 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c @@ -16,7 +16,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { {0, C8_8, C7_8, C6_8}, // LA17 {0, C9_8, C7_7, C6_7}, // LA16 diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c b/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c index c0f892980e..7347a365bc 100755 --- a/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS21_SW1, CS20_SW1, CS19_SW1}, {0, CS21_SW2, CS20_SW2, CS19_SW2}, {0, CS21_SW3, CS20_SW3, CS19_SW3}, diff --git a/keyboards/kbdfans/kbdmini/kbdmini.c b/keyboards/kbdfans/kbdmini/kbdmini.c index 4dd76e974e..d46283b973 100644 --- a/keyboards/kbdfans/kbdmini/kbdmini.c +++ b/keyboards/kbdfans/kbdmini/kbdmini.c @@ -1,6 +1,6 @@ #include "quantum.h" -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { { 0, B_9, A_9, C_9 }, //LA33 { 0, B_10, A_10, C_10 }, //LA37 { 0, B_11, A_11, C_11 }, //LA41 diff --git a/keyboards/kbdfans/maja/maja.c b/keyboards/kbdfans/maja/maja.c index 43153808d9..d30d327113 100755 --- a/keyboards/kbdfans/maja/maja.c +++ b/keyboards/kbdfans/maja/maja.c @@ -1,6 +1,6 @@ #include "quantum.h" -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { {0, C2_1, C3_1, C4_1}, // LA0 {0, C1_1, C3_2, C4_2}, // LA1 {0, C1_2, C2_2, C4_3}, // LA2 diff --git a/keyboards/keychron/q1v1/ansi/ansi.c b/keyboards/keychron/q1v1/ansi/ansi.c index 059745a129..5f74267bf4 100644 --- a/keyboards/keychron/q1v1/ansi/ansi.c +++ b/keyboards/keychron/q1v1/ansi/ansi.c @@ -26,8 +26,7 @@ const matrix_row_t matrix_mask[] = { }; #ifdef RGB_MATRIX_ENABLE - -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/keychron/q1v1/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q1v1/ansi_encoder/ansi_encoder.c index 21bf8a6c0b..c4fc884bc2 100644 --- a/keyboards/keychron/q1v1/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q1v1/ansi_encoder/ansi_encoder.c @@ -26,7 +26,7 @@ const matrix_row_t matrix_mask[] = { }; #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/keychron/q1v1/iso/iso.c b/keyboards/keychron/q1v1/iso/iso.c index 97ba2bce5b..874f5c8539 100644 --- a/keyboards/keychron/q1v1/iso/iso.c +++ b/keyboards/keychron/q1v1/iso/iso.c @@ -26,7 +26,7 @@ const matrix_row_t matrix_mask[] = { }; #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/keychron/q1v1/iso_encoder/iso_encoder.c b/keyboards/keychron/q1v1/iso_encoder/iso_encoder.c index 7e01214430..4a7496ed29 100644 --- a/keyboards/keychron/q1v1/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q1v1/iso_encoder/iso_encoder.c @@ -27,7 +27,7 @@ const matrix_row_t matrix_mask[] = { #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/kprepublic/bm40hsrgb/rev2/rev2.c b/keyboards/kprepublic/bm40hsrgb/rev2/rev2.c index b4a7e4399f..4bf9168935 100755 --- a/keyboards/kprepublic/bm40hsrgb/rev2/rev2.c +++ b/keyboards/kprepublic/bm40hsrgb/rev2/rev2.c @@ -17,7 +17,7 @@ #if defined(RGB_MATRIX_ENABLE) -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { { 0, B_1, A_1, C_1 }, { 0, B_2, A_2, C_2 }, { 0, B_3, A_3, C_3 }, diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c index e51bec0049..a55c88c97b 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c @@ -22,7 +22,7 @@ # include "is31fl3733.h" # include "ws2812.h" -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { { 0, B_1, A_1, C_1 }, { 0, B_2, A_2, C_2 }, { 0, B_3, A_3, C_3 }, diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c index e738b47c40..fc40e0fa9a 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c @@ -15,7 +15,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { { 0, B_1, A_1, C_1 }, { 0, B_2, A_2, C_2 }, { 0, B_3, A_3, C_3 }, diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c index 075e8ae580..4ca2ab8de1 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c @@ -24,7 +24,7 @@ # include "ws2812.h" -const PROGMEM is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const PROGMEM is31fl3733_led_t g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { { 0, B_1, A_1, C_1 }, { 0, B_2, A_2, C_2 }, { 0, B_3, A_3, C_3 }, diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c index 0084fd9245..1f291a85dd 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c @@ -21,7 +21,7 @@ # include "is31fl3733.h" # include "ws2812.h" -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { { 0, B_1, A_1, C_1 }, { 0, B_2, A_2, C_2 }, { 0, B_3, A_3, C_3 }, diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c b/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c index 7251a24067..057b4669f5 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c +++ b/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c @@ -17,7 +17,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS6_SW1, CS5_SW1, CS4_SW1}, {0, CS6_SW2, CS5_SW2, CS4_SW2}, {0, CS6_SW3, CS5_SW3, CS4_SW3}, diff --git a/keyboards/kprepublic/bm80v2/bm80v2.c b/keyboards/kprepublic/bm80v2/bm80v2.c index 7a224c9ad0..13d67cdd56 100644 --- a/keyboards/kprepublic/bm80v2/bm80v2.c +++ b/keyboards/kprepublic/bm80v2/bm80v2.c @@ -16,7 +16,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS6_SW1, CS5_SW1, CS4_SW1}, {0, CS6_SW3, CS5_SW3, CS4_SW3}, {0, CS6_SW4, CS5_SW4, CS4_SW4}, diff --git a/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c index dea1a76d78..3b8daf5fee 100644 --- a/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c +++ b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c @@ -16,7 +16,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS6_SW1, CS5_SW1, CS4_SW1}, {0, CS6_SW3, CS5_SW3, CS4_SW3}, {0, CS6_SW4, CS5_SW4, CS4_SW4}, diff --git a/keyboards/latincompass/latin17rgb/latin17rgb.c b/keyboards/latincompass/latin17rgb/latin17rgb.c index c758e8eb35..b75a11d965 100644 --- a/keyboards/latincompass/latin17rgb/latin17rgb.c +++ b/keyboards/latincompass/latin17rgb/latin17rgb.c @@ -17,7 +17,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/latincompass/latin60rgb/latin60rgb.c b/keyboards/latincompass/latin60rgb/latin60rgb.c index 26431fa61b..a915bede80 100644 --- a/keyboards/latincompass/latin60rgb/latin60rgb.c +++ b/keyboards/latincompass/latin60rgb/latin60rgb.c @@ -16,7 +16,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { { 0, K_13, J_13, L_13 }, { 0, K_12, J_12, L_12 }, { 0, K_11, J_11, L_11 }, diff --git a/keyboards/latincompass/latin6rgb/latin6rgb.c b/keyboards/latincompass/latin6rgb/latin6rgb.c index b7c05dd4ad..a1eb38b9af 100644 --- a/keyboards/latincompass/latin6rgb/latin6rgb.c +++ b/keyboards/latincompass/latin6rgb/latin6rgb.c @@ -17,7 +17,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/matrix/m20add/rgb_ring.c b/keyboards/matrix/m20add/rgb_ring.c index be41e0ac02..81bd5e5407 100644 --- a/keyboards/matrix/m20add/rgb_ring.c +++ b/keyboards/matrix/m20add/rgb_ring.c @@ -30,7 +30,7 @@ #endif // rgb ring leds setting -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/matrix/noah/noah.c b/keyboards/matrix/noah/noah.c index f3d6062059..8246da809c 100644 --- a/keyboards/matrix/noah/noah.c +++ b/keyboards/matrix/noah/noah.c @@ -63,7 +63,7 @@ void matrix_scan_kb(void) { } #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c b/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c index e51e92ed6f..9e5fe11895 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c +++ b/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c @@ -17,7 +17,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { {0, C2_1, C3_1, C4_1}, //D102-A0-0 {0, C5_1, C6_1, C7_1}, //D108-A1-1 diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c b/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c index b7e03d0f1e..b13f223a1c 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c +++ b/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c @@ -17,7 +17,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS3_SW5, CS2_SW5, CS1_SW5}, /* D9-K31-00 */ {0, CS6_SW5, CS5_SW5, CS4_SW5}, /* D46-K00-01 */ {0, CS6_SW9, CS5_SW9, CS4_SW9}, /* D59-K01-02 */ diff --git a/keyboards/mechlovin/delphine/rgb_led/rgb_led.c b/keyboards/mechlovin/delphine/rgb_led/rgb_led.c index 02a011ba4b..a55143f2e1 100644 --- a/keyboards/mechlovin/delphine/rgb_led/rgb_led.c +++ b/keyboards/mechlovin/delphine/rgb_led/rgb_led.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { // left CA {0, C5_2, C6_2, C7_2}, //D2-0 {0, C1_1, C3_2, C4_2}, //D20-1 diff --git a/keyboards/mechlovin/hannah60rgb/rev2/rev2.c b/keyboards/mechlovin/hannah60rgb/rev2/rev2.c index 246caa2963..2e3c8d0090 100644 --- a/keyboards/mechlovin/hannah60rgb/rev2/rev2.c +++ b/keyboards/mechlovin/hannah60rgb/rev2/rev2.c @@ -17,7 +17,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c b/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c index c10d47d191..5649f80712 100644 --- a/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c +++ b/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c @@ -17,7 +17,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS34_SW1, CS35_SW1, CS36_SW1}, //D92-K00-0 {0, CS37_SW1, CS38_SW1, CS39_SW1}, //D94-K01-1 {0, CS31_SW1, CS32_SW1, CS33_SW1}, //D96-K02-2 diff --git a/keyboards/mechlovin/olly/octagon/octagon.c b/keyboards/mechlovin/olly/octagon/octagon.c index 41f9dbb438..b5eb828bc8 100644 --- a/keyboards/mechlovin/olly/octagon/octagon.c +++ b/keyboards/mechlovin/olly/octagon/octagon.c @@ -16,7 +16,7 @@ #include "quantum.h" -const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[LED_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | LED address diff --git a/keyboards/mechlovin/zed65/mono_led/mono_led.c b/keyboards/mechlovin/zed65/mono_led/mono_led.c index e618d41489..f66c4b1359 100644 --- a/keyboards/mechlovin/zed65/mono_led/mono_led.c +++ b/keyboards/mechlovin/zed65/mono_led/mono_led.c @@ -19,7 +19,7 @@ along with this program. If not, see . -const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[LED_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | LED address diff --git a/keyboards/melgeek/mach80/rev1/rev1.c b/keyboards/melgeek/mach80/rev1/rev1.c index da4c6b73d8..19075b7605 100755 --- a/keyboards/melgeek/mach80/rev1/rev1.c +++ b/keyboards/melgeek/mach80/rev1/rev1.c @@ -19,7 +19,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */ {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */ @@ -144,7 +144,7 @@ led_config_t g_led_config = { } }; -const is31_led g_is31_indicator_leds[3] = { +const is31fl3741_led_t g_is31_indicator_leds[3] = { {0, CS6_SW1, CS5_SW1, CS4_SW1}, /* RGB107 */ {0, CS6_SW2, CS5_SW2, CS4_SW2}, /* RGB108 */ {0, CS6_SW3, CS5_SW3, CS4_SW3}, /* RGB109 */ @@ -175,7 +175,7 @@ bool led_update_kb(led_t led_state) { void matrix_init_kb(void) { for (int i = 0; i < DRIVER_INDICATOR_LED_TOTAL; ++i) { - is31_led led = g_is31_indicator_leds[i]; + is31fl3741_led_t led = g_is31_indicator_leds[i]; is31fl3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF); } diff --git a/keyboards/melgeek/mach80/rev2/rev2.c b/keyboards/melgeek/mach80/rev2/rev2.c index 632466376d..38b23955c6 100755 --- a/keyboards/melgeek/mach80/rev2/rev2.c +++ b/keyboards/melgeek/mach80/rev2/rev2.c @@ -19,7 +19,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */ {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */ @@ -142,7 +142,7 @@ led_config_t g_led_config = { } }; -const is31_led g_is31_indicator_leds[3] = { +const is31fl3741_led_t g_is31_indicator_leds[3] = { {0, CS6_SW1, CS5_SW1, CS4_SW1}, /* RGB107 */ {0, CS6_SW2, CS5_SW2, CS4_SW2}, /* RGB108 */ {0, CS6_SW3, CS5_SW3, CS4_SW3}, /* RGB109 */ @@ -173,7 +173,7 @@ bool led_update_kb(led_t led_state) { void matrix_init_kb(void) { for (int i = 0; i < DRIVER_INDICATOR_LED_TOTAL; ++i) { - is31_led led = g_is31_indicator_leds[i]; + is31fl3741_led_t led = g_is31_indicator_leds[i]; is31fl3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF); } diff --git a/keyboards/melgeek/mj61/rev1/rev1.c b/keyboards/melgeek/mj61/rev1/rev1.c index 8f8b48b017..76fcb64c37 100644 --- a/keyboards/melgeek/mj61/rev1/rev1.c +++ b/keyboards/melgeek/mj61/rev1/rev1.c @@ -17,7 +17,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS12_SW1, CS11_SW1, CS10_SW1}, /* RGB1 */ {0, CS12_SW2, CS11_SW2, CS10_SW2}, /* RGB2 */ {0, CS12_SW3, CS11_SW3, CS10_SW3}, /* RGB3 */ diff --git a/keyboards/melgeek/mj61/rev2/rev2.c b/keyboards/melgeek/mj61/rev2/rev2.c index 448fa0bb18..9d13d52ebc 100644 --- a/keyboards/melgeek/mj61/rev2/rev2.c +++ b/keyboards/melgeek/mj61/rev2/rev2.c @@ -19,7 +19,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB3 */ {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB4 */ diff --git a/keyboards/melgeek/mj63/rev1/rev1.c b/keyboards/melgeek/mj63/rev1/rev1.c index a0a9ac13cd..69e7ab5da6 100644 --- a/keyboards/melgeek/mj63/rev1/rev1.c +++ b/keyboards/melgeek/mj63/rev1/rev1.c @@ -19,7 +19,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */ {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */ diff --git a/keyboards/melgeek/mj63/rev2/rev2.c b/keyboards/melgeek/mj63/rev2/rev2.c index 2d6768e2aa..5ab9cdb65a 100644 --- a/keyboards/melgeek/mj63/rev2/rev2.c +++ b/keyboards/melgeek/mj63/rev2/rev2.c @@ -19,7 +19,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB3 */ {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB4 */ diff --git a/keyboards/melgeek/mj64/rev1/rev1.c b/keyboards/melgeek/mj64/rev1/rev1.c index 0369d6b0da..fff946b20a 100644 --- a/keyboards/melgeek/mj64/rev1/rev1.c +++ b/keyboards/melgeek/mj64/rev1/rev1.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */ {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */ diff --git a/keyboards/melgeek/mj64/rev2/rev2.c b/keyboards/melgeek/mj64/rev2/rev2.c index bf3dc4cf86..35da35b2e4 100644 --- a/keyboards/melgeek/mj64/rev2/rev2.c +++ b/keyboards/melgeek/mj64/rev2/rev2.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */ {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */ diff --git a/keyboards/melgeek/mj64/rev3/rev3.c b/keyboards/melgeek/mj64/rev3/rev3.c index 4b28bb8b44..942bda1487 100644 --- a/keyboards/melgeek/mj64/rev3/rev3.c +++ b/keyboards/melgeek/mj64/rev3/rev3.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB3 */ {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB4 */ diff --git a/keyboards/melgeek/mj65/rev3/rev3.c b/keyboards/melgeek/mj65/rev3/rev3.c index f44c412659..6d851aa847 100644 --- a/keyboards/melgeek/mj65/rev3/rev3.c +++ b/keyboards/melgeek/mj65/rev3/rev3.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */ {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */ diff --git a/keyboards/melgeek/mojo68/rev1/rev1.c b/keyboards/melgeek/mojo68/rev1/rev1.c index bea523c84e..bf4dad659b 100755 --- a/keyboards/melgeek/mojo68/rev1/rev1.c +++ b/keyboards/melgeek/mojo68/rev1/rev1.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */ {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */ @@ -112,7 +112,7 @@ led_config_t g_led_config = { } }; -const is31_led g_is31_indicator_leds[3] = { +const is31fl3741_led_t g_is31_indicator_leds[3] = { {0, CS6_SW1, CS5_SW1, CS4_SW1}, /* RGB124 */ {0, CS6_SW2, CS5_SW2, CS4_SW2}, /* RGB125 */ {0, CS6_SW3, CS5_SW3, CS4_SW3}, /* RGB126 */ @@ -143,7 +143,7 @@ bool led_update_kb(led_t led_state) { void matrix_init_kb(void) { for (int i = 0; i < DRIVER_INDICATOR_LED_TOTAL; ++i) { - is31_led led = g_is31_indicator_leds[i]; + is31fl3741_led_t led = g_is31_indicator_leds[i]; is31fl3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF); } diff --git a/keyboards/melgeek/mojo75/rev1/rev1.c b/keyboards/melgeek/mojo75/rev1/rev1.c index a313a25cfe..e64c163c78 100644 --- a/keyboards/melgeek/mojo75/rev1/rev1.c +++ b/keyboards/melgeek/mojo75/rev1/rev1.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS6_SW1, CS5_SW1, CS4_SW1}, /* RGB1 */ {0, CS6_SW2, CS5_SW2, CS4_SW2}, /* RGB2 */ {0, CS6_SW3, CS5_SW3, CS4_SW3}, /* RGB3 */ diff --git a/keyboards/melgeek/tegic/rev1/rev1.c b/keyboards/melgeek/tegic/rev1/rev1.c index 24c7fd6cb7..6dc2e8d180 100755 --- a/keyboards/melgeek/tegic/rev1/rev1.c +++ b/keyboards/melgeek/tegic/rev1/rev1.c @@ -19,7 +19,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */ {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */ diff --git a/keyboards/melgeek/z70ultra/z70ultra.c b/keyboards/melgeek/z70ultra/z70ultra.c index d0b23c3bf8..4afe7376b9 100644 --- a/keyboards/melgeek/z70ultra/z70ultra.c +++ b/keyboards/melgeek/z70ultra/z70ultra.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS28_SW1, CS30_SW1, CS29_SW1}, /* RGB10 */ {0, CS28_SW2, CS30_SW2, CS29_SW2}, /* RGB11 */ {0, CS28_SW3, CS30_SW3, CS29_SW3}, /* RGB12 */ @@ -117,7 +117,7 @@ led_config_t g_led_config = { } }; -const is31_led g_is31_indicator_leds[6] = { +const is31fl3741_led_t g_is31_indicator_leds[6] = { {0, CS5_SW1, CS3_SW1, CS4_SW1}, /* RGB71 */ {0, CS5_SW2, CS3_SW2, CS4_SW2}, /* RGB72 */ {0, CS5_SW3, CS3_SW3, CS4_SW3}, /* RGB73 */ @@ -157,7 +157,7 @@ bool led_update_kb(led_t led_state) { void matrix_init_kb(void) { for (int i = 0; i < DRIVER_INDICATOR_LED_TOTAL; ++i) { - is31_led led = g_is31_indicator_leds[i]; + is31fl3741_led_t led = g_is31_indicator_leds[i]; is31fl3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF); } diff --git a/keyboards/miller/gm862/gm862.c b/keyboards/miller/gm862/gm862.c index 73d1323cfb..b677ae3be4 100644 --- a/keyboards/miller/gm862/gm862.c +++ b/keyboards/miller/gm862/gm862.c @@ -1,7 +1,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { {0, B_1, A_1, C_1}, {0, B_2, A_2, C_2}, {0, B_3, A_3, C_3}, diff --git a/keyboards/moonlander/moonlander.c b/keyboards/moonlander/moonlander.c index 4146fc7afb..5b52ba7031 100644 --- a/keyboards/moonlander/moonlander.c +++ b/keyboards/moonlander/moonlander.c @@ -172,7 +172,7 @@ layer_state_t layer_state_set_kb(layer_state_t state) { #ifdef RGB_MATRIX_ENABLE // clang-format off -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/mt/mt64rgb/mt64rgb.c b/keyboards/mt/mt64rgb/mt64rgb.c index 9fb25fb168..7a6831f6d0 100644 --- a/keyboards/mt/mt64rgb/mt64rgb.c +++ b/keyboards/mt/mt64rgb/mt64rgb.c @@ -16,7 +16,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/mt/mt84/mt84.c b/keyboards/mt/mt84/mt84.c index fcbf65cf46..fd4811e63a 100644 --- a/keyboards/mt/mt84/mt84.c +++ b/keyboards/mt/mt84/mt84.c @@ -16,7 +16,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3737_led_t PROGMEM g_is31fl3737_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/neson_design/700e/700e.c b/keyboards/neson_design/700e/700e.c index 70438233c5..7d28dba2bb 100644 --- a/keyboards/neson_design/700e/700e.c +++ b/keyboards/neson_design/700e/700e.c @@ -207,7 +207,7 @@ static void self_testing(void) update_ticks(); } -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/neson_design/n6/n6.c b/keyboards/neson_design/n6/n6.c index 0bff544672..4d655453cb 100644 --- a/keyboards/neson_design/n6/n6.c +++ b/keyboards/neson_design/n6/n6.c @@ -211,7 +211,7 @@ static void self_testing(void) update_ticks(); } -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/opendeck/32/rev1/rev1.c b/keyboards/opendeck/32/rev1/rev1.c index 5d546afb29..0b062ecd38 100644 --- a/keyboards/opendeck/32/rev1/rev1.c +++ b/keyboards/opendeck/32/rev1/rev1.c @@ -17,7 +17,7 @@ #include "rev1.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/owlab/voice65/hotswap/hotswap.c b/keyboards/owlab/voice65/hotswap/hotswap.c index 65c0ee7eed..b4c0c02c32 100644 --- a/keyboards/owlab/voice65/hotswap/hotswap.c +++ b/keyboards/owlab/voice65/hotswap/hotswap.c @@ -17,7 +17,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS3_SW1, CS2_SW1, CS1_SW1}, /* RGB0-ESC ROW0*/ {0, CS6_SW1, CS5_SW1, CS4_SW1}, /* RGB1-1 */ {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB2-2 */ diff --git a/keyboards/owlab/voice65/soldered/soldered.c b/keyboards/owlab/voice65/soldered/soldered.c index 1444b05864..301a5adc59 100644 --- a/keyboards/owlab/voice65/soldered/soldered.c +++ b/keyboards/owlab/voice65/soldered/soldered.c @@ -17,7 +17,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS3_SW1, CS2_SW1, CS1_SW1}, /* RGB0-ESC ROW0*/ {0, CS6_SW1, CS5_SW1, CS4_SW1}, /* RGB1-1 */ {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB2-2 */ diff --git a/keyboards/planck/ez/ez.c b/keyboards/planck/ez/ez.c index e6bd217520..dfadb820ae 100644 --- a/keyboards/planck/ez/ez.c +++ b/keyboards/planck/ez/ez.c @@ -21,7 +21,7 @@ keyboard_config_t keyboard_config; #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3737_led_t PROGMEM g_is31fl3737_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/planck/light/light.c b/keyboards/planck/light/light.c index 1fc6a65c0c..828319c66d 100644 --- a/keyboards/planck/light/light.c +++ b/keyboards/planck/light/light.c @@ -16,7 +16,7 @@ #include "quantum.h" -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/playkbtw/pk64rgb/pk64rgb.c b/keyboards/playkbtw/pk64rgb/pk64rgb.c index d4c6702472..427d1cf04e 100644 --- a/keyboards/playkbtw/pk64rgb/pk64rgb.c +++ b/keyboards/playkbtw/pk64rgb/pk64rgb.c @@ -17,7 +17,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/redragon/k667/k667.c b/keyboards/redragon/k667/k667.c index 81aeef4494..629e120b7b 100644 --- a/keyboards/redragon/k667/k667.c +++ b/keyboards/redragon/k667/k667.c @@ -17,7 +17,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { {0, G_1, I_1, H_1}, {0, G_3, I_3, H_3}, {0, G_4, I_4, H_4}, diff --git a/keyboards/smallkeyboard/smallkeyboard.c b/keyboards/smallkeyboard/smallkeyboard.c index 7ea6f2c40a..ce79c7df5d 100644 --- a/keyboards/smallkeyboard/smallkeyboard.c +++ b/keyboards/smallkeyboard/smallkeyboard.c @@ -17,7 +17,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/teleport/native/native.c b/keyboards/teleport/native/native.c index c3cac80c22..ab6d588de7 100644 --- a/keyboards/teleport/native/native.c +++ b/keyboards/teleport/native/native.c @@ -25,7 +25,7 @@ void keyboard_post_init_kb(void) { } #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/terrazzo/terrazzo.c b/keyboards/terrazzo/terrazzo.c index cc62225de7..7717b36e65 100644 --- a/keyboards/terrazzo/terrazzo.c +++ b/keyboards/terrazzo/terrazzo.c @@ -21,7 +21,7 @@ #include "print.h" #include "quantum.h" -const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[LED_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * https://cdn-learn.adafruit.com/downloads/pdf/adafruit-15x7-7x15-charlieplex-led-matrix-charliewing-featherwing.pdf */ diff --git a/keyboards/tkc/portico/portico.c b/keyboards/tkc/portico/portico.c index e41de1c232..bbb09ef8f6 100644 --- a/keyboards/tkc/portico/portico.c +++ b/keyboards/tkc/portico/portico.c @@ -19,7 +19,7 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { { 0, C2_1, C3_1, C4_1 }, { 0, C1_1, C3_2, C4_2 }, { 0, C1_2, C2_2, C4_3 }, diff --git a/keyboards/tkc/portico68v2/portico68v2.c b/keyboards/tkc/portico68v2/portico68v2.c index 83a365f7c0..90d8c12fca 100644 --- a/keyboards/tkc/portico68v2/portico68v2.c +++ b/keyboards/tkc/portico68v2/portico68v2.c @@ -18,7 +18,7 @@ along with this program. If not, see . #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS18_SW1, CS17_SW1, CS16_SW1}, /* RGB1 */ {0, CS18_SW2, CS17_SW2, CS16_SW2}, /* RGB2 */ {0, CS18_SW3, CS17_SW3, CS16_SW3}, /* RGB3 */ diff --git a/keyboards/tkc/portico75/portico75.c b/keyboards/tkc/portico75/portico75.c index 568f75901f..69d6256071 100644 --- a/keyboards/tkc/portico75/portico75.c +++ b/keyboards/tkc/portico75/portico75.c @@ -20,7 +20,7 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { {0, CS18_SW1, CS17_SW1, CS16_SW1}, {0, CS18_SW2, CS17_SW2, CS16_SW2}, {0, CS18_SW3, CS17_SW3, CS16_SW3}, diff --git a/keyboards/wilba_tech/wt_mono_backlight.c b/keyboards/wilba_tech/wt_mono_backlight.c index 57610f5b98..a1545a668b 100644 --- a/keyboards/wilba_tech/wt_mono_backlight.c +++ b/keyboards/wilba_tech/wt_mono_backlight.c @@ -52,7 +52,7 @@ backlight_config g_config = { .color_1 = MONO_BACKLIGHT_COLOR_1, }; -const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = { +const is31fl3736_led_t PROGMEM g_is31fl3736_leds[LED_MATRIX_LED_COUNT] = { {0, A_1}, {0, A_2}, {0, A_3}, diff --git a/keyboards/wilba_tech/wt_rgb_backlight.c b/keyboards/wilba_tech/wt_rgb_backlight.c index 20932138ed..1c865deecf 100644 --- a/keyboards/wilba_tech/wt_rgb_backlight.c +++ b/keyboards/wilba_tech/wt_rgb_backlight.c @@ -157,7 +157,7 @@ uint32_t g_any_key_hit = 0; #if defined(RGB_BACKLIGHT_HS60) #define ISSI_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -234,7 +234,7 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { #define ISSI_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND #define ISSI_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_SDA -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -375,7 +375,7 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { #elif defined(RGB_BACKLIGHT_NEBULA12) #define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -406,7 +406,7 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { #define ISSI_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA #define ISSI_ADDR_3 IS31FL3731_I2C_ADDRESS_SCL -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -531,7 +531,7 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { #define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND #define ISSI_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -610,7 +610,7 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { #define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND #define ISSI_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -694,7 +694,7 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { #define ISSI_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define ISSI_ADDR_2 -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -829,7 +829,7 @@ const is31fl3218_led_t PROGMEM g_is31fl3218_leds[RGB_MATRIX_LED_COUNT] = { #define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND #define ISSI_ADDR_2 -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { {0, C1_9, C3_10, C4_10}, // LB1 {0, C1_10, C2_10, C4_11}, // LB2 {0, C1_11, C2_11, C3_11}, // LB3 @@ -847,7 +847,7 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { #define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND #define ISSI_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/xbows/knight/knight.c b/keyboards/xbows/knight/knight.c index 5be49f9d6f..05ff84060c 100644 --- a/keyboards/xbows/knight/knight.c +++ b/keyboards/xbows/knight/knight.c @@ -15,7 +15,7 @@ */ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE - const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { + const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { {0, C1_3, C2_3, C3_3}, // L01 {0, C1_4, C2_4, C3_4}, // L02 diff --git a/keyboards/xbows/knight_plus/knight_plus.c b/keyboards/xbows/knight_plus/knight_plus.c index ce718d22a5..b84f6b964b 100644 --- a/keyboards/xbows/knight_plus/knight_plus.c +++ b/keyboards/xbows/knight_plus/knight_plus.c @@ -15,7 +15,7 @@ */ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE - const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { + const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { {0, C1_3, C2_3, C3_3}, // L01 {0, C1_4, C2_4, C3_4}, // L02 diff --git a/keyboards/xbows/nature/nature.c b/keyboards/xbows/nature/nature.c index da0cb54a60..1ba964e453 100644 --- a/keyboards/xbows/nature/nature.c +++ b/keyboards/xbows/nature/nature.c @@ -15,7 +15,7 @@ */ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE - const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { + const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { {0, C1_3, C2_3, C3_3}, // L01 {0, C1_4, C2_4, C3_4}, // L02 diff --git a/keyboards/xbows/numpad/numpad.c b/keyboards/xbows/numpad/numpad.c index da20172f34..519a1b36f4 100644 --- a/keyboards/xbows/numpad/numpad.c +++ b/keyboards/xbows/numpad/numpad.c @@ -15,7 +15,7 @@ */ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE - const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { + const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { {0, C3_3, C2_3, C1_3}, // L01 {0, C3_4, C2_4, C1_4}, // L02 diff --git a/keyboards/xbows/ranger/ranger.c b/keyboards/xbows/ranger/ranger.c index 4ae55e7d68..028b5fca5c 100644 --- a/keyboards/xbows/ranger/ranger.c +++ b/keyboards/xbows/ranger/ranger.c @@ -17,7 +17,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { {0, C3_3, C2_3, C1_3}, // L01 {0, C3_4, C2_4, C1_4}, // L02 diff --git a/keyboards/xbows/woody/woody.c b/keyboards/xbows/woody/woody.c index fa0ba7f768..e58ec15e10 100644 --- a/keyboards/xbows/woody/woody.c +++ b/keyboards/xbows/woody/woody.c @@ -1,6 +1,6 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { {0, C8_8, C7_8, C6_8}, // LA17 {0, C9_8, C7_7, C6_7}, // LA16 diff --git a/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c b/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c index b10114e134..0c6e0c12e3 100644 --- a/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c +++ b/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c @@ -25,7 +25,7 @@ #ifdef RGB_MATRIX_ENABLE rgb_led_t rgb_matrix_ws2812_array[WS2812_LED_TOTAL]; -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/xelus/pachi/rgb/rev1/rev1.c b/keyboards/xelus/pachi/rgb/rev1/rev1.c index 156c5228da..a59d085f25 100644 --- a/keyboards/xelus/pachi/rgb/rev1/rev1.c +++ b/keyboards/xelus/pachi/rgb/rev1/rev1.c @@ -22,7 +22,7 @@ void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); } #ifdef RGB_MATRIX_ENABLE #include "i2c_master.h" #include "drivers/led/issi/is31fl3741.h" -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/xelus/pachi/rgb/rev2/rev2.c b/keyboards/xelus/pachi/rgb/rev2/rev2.c index d7c74730f8..7ca3c6f9f6 100644 --- a/keyboards/xelus/pachi/rgb/rev2/rev2.c +++ b/keyboards/xelus/pachi/rgb/rev2/rev2.c @@ -22,7 +22,7 @@ void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); } #ifdef RGB_MATRIX_ENABLE #include "i2c_master.h" #include "drivers/led/issi/is31fl3741.h" -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/users/tominabox1/dimple_rgb.c b/users/tominabox1/dimple_rgb.c index 299dc830f1..8d80d45b95 100644 --- a/users/tominabox1/dimple_rgb.c +++ b/users/tominabox1/dimple_rgb.c @@ -1,7 +1,7 @@ #include "dz60rgb.h" #include "config.h" #if defined (dzrgb60_iso) -const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { {0, K_14, J_14, L_14}, {0, K_13, J_13, L_13}, {0, K_12, J_12, L_12}, @@ -86,7 +86,7 @@ led_config_t g_led_config = { { } }; #elif defined (dzrgb60_hhkb) -const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { {0, H_15, G_15, I_15}, {0, K_14, J_14, L_14}, {0, K_13, J_13, L_13}, @@ -172,7 +172,7 @@ led_config_t g_led_config = { { } }; #elif defined (dzrgb60_hhkb_iso) -const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { {0, H_15, G_15, I_15}, {0, K_14, J_14, L_14}, {0, K_13, J_13, L_13}, @@ -258,7 +258,7 @@ led_config_t g_led_config = { { } }; #elif defined (dzrgb60_ansi) -const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { {0, K_14, J_14, L_14}, {0, K_13, J_13, L_13}, {0, K_12, J_12, L_12}, @@ -343,7 +343,7 @@ led_config_t g_led_config = { { } }; #else -const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { {0, K_14, J_14, L_14}, {0, K_13, J_13, L_13}, {0, K_12, J_12, L_12}, From 6e93b59f6134753e6167caf425de666999710c6d Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 4 Oct 2023 03:17:01 -0700 Subject: [PATCH 230/496] Monstargear XO87 Soldered: correct layout data (#22199) Correct key positions on the bottom row for `LAYOUT_tkl_ansi_tsangan`. [chore] --- keyboards/monstargear/xo87/solderable/info.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/monstargear/xo87/solderable/info.json b/keyboards/monstargear/xo87/solderable/info.json index 7013ce903d..4c569a89df 100644 --- a/keyboards/monstargear/xo87/solderable/info.json +++ b/keyboards/monstargear/xo87/solderable/info.json @@ -346,9 +346,9 @@ {"label": "\u2191", "matrix": [4, 14], "x": 16.25, "y": 4.25}, {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, - {"label": "GUI", "matrix": [5, 1], "x": 1.25, "y": 5.25}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, - {"label": "Space", "matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 7}, + {"label": "Space", "matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, {"label": "Fn", "matrix": [5, 12], "x": 12.5, "y": 5.25}, {"label": "Ctrl", "matrix": [4, 15], "x": 13.5, "y": 5.25, "w": 1.5}, From d33f9ec86b339f671f0c8673ba6e1246a6edff90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20A=2E=20Volpato?= Date: Thu, 5 Oct 2023 00:35:24 -0300 Subject: [PATCH 231/496] Add Acheron Themis and its variants (#22142) Co-authored-by: Drashna Jaelre --- keyboards/acheron/themis/87h/87h.c | 25 ++++ keyboards/acheron/themis/87h/config.h | 33 +++++ keyboards/acheron/themis/87h/halconf.h | 22 +++ keyboards/acheron/themis/87h/info.json | 136 +++++++++++++++++ .../themis/87h/keymaps/default/keymap.c | 37 +++++ .../acheron/themis/87h/keymaps/via/keymap.c | 37 +++++ .../acheron/themis/87h/keymaps/via/rules.mk | 1 + keyboards/acheron/themis/87h/mcuconf.h | 25 ++++ keyboards/acheron/themis/87h/rules.mk | 0 keyboards/acheron/themis/87htsc/87htsc.c | 25 ++++ keyboards/acheron/themis/87htsc/config.h | 33 +++++ keyboards/acheron/themis/87htsc/halconf.h | 22 +++ keyboards/acheron/themis/87htsc/info.json | 135 +++++++++++++++++ .../themis/87htsc/keymaps/default/keymap.c | 37 +++++ .../themis/87htsc/keymaps/via/keymap.c | 37 +++++ .../themis/87htsc/keymaps/via/rules.mk | 1 + keyboards/acheron/themis/87htsc/mcuconf.h | 25 ++++ keyboards/acheron/themis/87htsc/rules.mk | 0 keyboards/acheron/themis/88htsc/88htsc.c | 25 ++++ keyboards/acheron/themis/88htsc/config.h | 33 +++++ keyboards/acheron/themis/88htsc/halconf.h | 22 +++ keyboards/acheron/themis/88htsc/info.json | 137 ++++++++++++++++++ .../themis/88htsc/keymaps/default/keymap.c | 37 +++++ .../themis/88htsc/keymaps/via/keymap.c | 37 +++++ .../themis/88htsc/keymaps/via/rules.mk | 1 + keyboards/acheron/themis/88htsc/mcuconf.h | 25 ++++ keyboards/acheron/themis/88htsc/rules.mk | 0 keyboards/acheron/themis/info.json | 8 + keyboards/acheron/themis/readme.md | 23 +++ 29 files changed, 979 insertions(+) create mode 100644 keyboards/acheron/themis/87h/87h.c create mode 100644 keyboards/acheron/themis/87h/config.h create mode 100644 keyboards/acheron/themis/87h/halconf.h create mode 100644 keyboards/acheron/themis/87h/info.json create mode 100755 keyboards/acheron/themis/87h/keymaps/default/keymap.c create mode 100755 keyboards/acheron/themis/87h/keymaps/via/keymap.c create mode 100644 keyboards/acheron/themis/87h/keymaps/via/rules.mk create mode 100644 keyboards/acheron/themis/87h/mcuconf.h create mode 100644 keyboards/acheron/themis/87h/rules.mk create mode 100644 keyboards/acheron/themis/87htsc/87htsc.c create mode 100644 keyboards/acheron/themis/87htsc/config.h create mode 100644 keyboards/acheron/themis/87htsc/halconf.h create mode 100644 keyboards/acheron/themis/87htsc/info.json create mode 100755 keyboards/acheron/themis/87htsc/keymaps/default/keymap.c create mode 100755 keyboards/acheron/themis/87htsc/keymaps/via/keymap.c create mode 100644 keyboards/acheron/themis/87htsc/keymaps/via/rules.mk create mode 100644 keyboards/acheron/themis/87htsc/mcuconf.h create mode 100644 keyboards/acheron/themis/87htsc/rules.mk create mode 100644 keyboards/acheron/themis/88htsc/88htsc.c create mode 100644 keyboards/acheron/themis/88htsc/config.h create mode 100644 keyboards/acheron/themis/88htsc/halconf.h create mode 100644 keyboards/acheron/themis/88htsc/info.json create mode 100755 keyboards/acheron/themis/88htsc/keymaps/default/keymap.c create mode 100755 keyboards/acheron/themis/88htsc/keymaps/via/keymap.c create mode 100644 keyboards/acheron/themis/88htsc/keymaps/via/rules.mk create mode 100644 keyboards/acheron/themis/88htsc/mcuconf.h create mode 100644 keyboards/acheron/themis/88htsc/rules.mk create mode 100644 keyboards/acheron/themis/info.json create mode 100644 keyboards/acheron/themis/readme.md diff --git a/keyboards/acheron/themis/87h/87h.c b/keyboards/acheron/themis/87h/87h.c new file mode 100644 index 0000000000..dada30ff87 --- /dev/null +++ b/keyboards/acheron/themis/87h/87h.c @@ -0,0 +1,25 @@ +/* Copyright 2023 Gondolindrim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if(res) { + led_state.caps_lock ? rgblight_setrgb_at(0xAA,0xAA,0xAA,0) : rgblight_setrgb_at(0x00,0x00,0x00,0) ; + } + return res; +} diff --git a/keyboards/acheron/themis/87h/config.h b/keyboards/acheron/themis/87h/config.h new file mode 100644 index 0000000000..8a1ff48583 --- /dev/null +++ b/keyboards/acheron/themis/87h/config.h @@ -0,0 +1,33 @@ +/* +Copyright 2023 Gondolindrim + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define LOCKING_SUPPORT_ENABLE +#define LOCKING_RESYNC_ENABLE + +#define RGBLED_NUM 1 + +#define WS2812_PWM_COMPLEMENTARY_OUTPUT +#define WS2812_PWM_DRIVER PWMD1 +#define WS2812_PWM_CHANNEL 3 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 +#define WS2812_DMA_CHANNEL 6 + +#define WEAR_LEVELING_LOGICAL_SIZE 4096 +#define WEAR_LEVELING_BACKING_SIZE 8192 diff --git a/keyboards/acheron/themis/87h/halconf.h b/keyboards/acheron/themis/87h/halconf.h new file mode 100644 index 0000000000..485d48ef30 --- /dev/null +++ b/keyboards/acheron/themis/87h/halconf.h @@ -0,0 +1,22 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_PWM TRUE +#define HAL_USE_PAL TRUE + +#include_next diff --git a/keyboards/acheron/themis/87h/info.json b/keyboards/acheron/themis/87h/info.json new file mode 100644 index 0000000000..ed5d48690d --- /dev/null +++ b/keyboards/acheron/themis/87h/info.json @@ -0,0 +1,136 @@ +{ + "keyboard_name": "Themis 87H Rev. Alpha", + "usb": { + "pid": "0x5448", + "device_version": "0.0.1" + }, + "matrix_pins": { + "cols": ["A8" ,"C9" ,"C8" ,"B14","B12","B10","B1" ,"B0" ,"A7" ,"A6" ,"A5" ,"A4" ,"C5" ,"C7" ,"B3" ,"A2" ,"C12","D2" ], + "rows": ["A15","A10","C6" ,"C4" ,"A3" ,"A1" ,"C11","C10","B4"] + }, + "features": { + "bootmagic": true, + "lto": true, + "mousekey": true, + "extrakey": true, + "console": false, + "backlight": false, + "rgblight": true, + "audio": false, + "encoder": false, + "nkro": true + }, + "diode_direction": "COL2ROW", + "ws2812": { + "pin": "B15" + }, + "processor": "STM32F401", + "bootloader": "stm32-dfu", + "community_layouts": ["tkl_ansi"], + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + {"label":"Escape", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label":"F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label":"F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label":"F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label":"F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label":"F5", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label":"F6", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label":"F7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label":"F8", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label":"F9", "matrix": [0, 9], "x": 11, "y": 0}, + {"label":"F10", "matrix": [0, 10], "x": 12, "y": 0}, + {"label":"F11", "matrix": [0, 11], "x": 13, "y": 0}, + {"label":"F12", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label":"Print Screen", "matrix": [6, 14], "x": 15.25, "y": 0}, + {"label":"Scroll Lock", "matrix": [6, 17], "x": 16.25, "y": 0}, + {"label":"Pause", "matrix": [6, 16], "x": 17.25, "y": 0}, + + {"label":"`~", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label":"1!", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label":"2@", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label":"3#", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label":"4$", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label":"5%", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label":"6^", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label":"7&", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label":"8*", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label":"9(", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label":"0)", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label":"-_", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label":"=+", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label":"Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"label":"Insert", "matrix": [7, 14], "x": 15.25, "y": 1.25}, + {"label":"Home", "matrix": [7, 17], "x": 16.25, "y": 1.25}, + {"label":"Page Up","matrix": [7, 16], "x": 17.25, "y": 1.25}, + + {"label":"Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label":"Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label":"W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label":"E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label":"R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label":"T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label":"Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label":"U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label":"I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label":"O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label":"P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label":"[{", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label":"]}", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label":"\\|", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label":"Delete", "matrix": [8, 14], "x": 15.25, "y": 2.25}, + {"label":"End", "matrix": [8, 17], "x": 16.25, "y": 2.25}, + {"label":"Page Down", "matrix": [8, 16], "x": 17.25, "y": 2.25}, + + {"label":"Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label":"A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label":"S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label":"D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label":"F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label":"G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label":"H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label":"J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label":"K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label":"L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label":";:", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label":"\'\"", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label":"Enter", "matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label":"Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label":"Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label":"X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label":"C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label":"V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label":"B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label":"N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label":"M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label":",<", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label":".>", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label":"/?", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label":"Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"label":"Up", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label":"LCtrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"label":"Lwin", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"label":"LAlt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"label":"Space", "matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"label":"RAlt", "matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25}, + {"label":"RWin", "matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25}, + {"label":"MO(1)", "matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25}, + {"label":"RCtrl", "matrix": [5, 12], "x": 13.75, "y": 5.25, "w": 1.25}, + + {"label":"Left", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label":"Down", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label":"Right", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/acheron/themis/87h/keymaps/default/keymap.c b/keyboards/acheron/themis/87h/keymaps/default/keymap.c new file mode 100755 index 0000000000..4728331f05 --- /dev/null +++ b/keyboards/acheron/themis/87h/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* +Copyright 2020 Álvaro "Gondolindrim" Volpato + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_ansi( + KC_ESC , 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_PSCR, KC_SCRL, KC_PAUS , + KC_GRV , 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_BSPC, KC_INS , KC_HOME, 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_DEL , KC_END , 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_ENT , + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(1) , KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi( + QK_BOOT, 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_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_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, 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 + ) +}; diff --git a/keyboards/acheron/themis/87h/keymaps/via/keymap.c b/keyboards/acheron/themis/87h/keymaps/via/keymap.c new file mode 100755 index 0000000000..4728331f05 --- /dev/null +++ b/keyboards/acheron/themis/87h/keymaps/via/keymap.c @@ -0,0 +1,37 @@ +/* +Copyright 2020 Álvaro "Gondolindrim" Volpato + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_ansi( + KC_ESC , 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_PSCR, KC_SCRL, KC_PAUS , + KC_GRV , 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_BSPC, KC_INS , KC_HOME, 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_DEL , KC_END , 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_ENT , + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(1) , KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi( + QK_BOOT, 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_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_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, 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 + ) +}; diff --git a/keyboards/acheron/themis/87h/keymaps/via/rules.mk b/keyboards/acheron/themis/87h/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/acheron/themis/87h/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/acheron/themis/87h/mcuconf.h b/keyboards/acheron/themis/87h/mcuconf.h new file mode 100644 index 0000000000..3d1d05c307 --- /dev/null +++ b/keyboards/acheron/themis/87h/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/acheron/themis/87h/rules.mk b/keyboards/acheron/themis/87h/rules.mk new file mode 100644 index 0000000000..e69de29bb2 diff --git a/keyboards/acheron/themis/87htsc/87htsc.c b/keyboards/acheron/themis/87htsc/87htsc.c new file mode 100644 index 0000000000..dada30ff87 --- /dev/null +++ b/keyboards/acheron/themis/87htsc/87htsc.c @@ -0,0 +1,25 @@ +/* Copyright 2023 Gondolindrim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if(res) { + led_state.caps_lock ? rgblight_setrgb_at(0xAA,0xAA,0xAA,0) : rgblight_setrgb_at(0x00,0x00,0x00,0) ; + } + return res; +} diff --git a/keyboards/acheron/themis/87htsc/config.h b/keyboards/acheron/themis/87htsc/config.h new file mode 100644 index 0000000000..8a1ff48583 --- /dev/null +++ b/keyboards/acheron/themis/87htsc/config.h @@ -0,0 +1,33 @@ +/* +Copyright 2023 Gondolindrim + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define LOCKING_SUPPORT_ENABLE +#define LOCKING_RESYNC_ENABLE + +#define RGBLED_NUM 1 + +#define WS2812_PWM_COMPLEMENTARY_OUTPUT +#define WS2812_PWM_DRIVER PWMD1 +#define WS2812_PWM_CHANNEL 3 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 +#define WS2812_DMA_CHANNEL 6 + +#define WEAR_LEVELING_LOGICAL_SIZE 4096 +#define WEAR_LEVELING_BACKING_SIZE 8192 diff --git a/keyboards/acheron/themis/87htsc/halconf.h b/keyboards/acheron/themis/87htsc/halconf.h new file mode 100644 index 0000000000..485d48ef30 --- /dev/null +++ b/keyboards/acheron/themis/87htsc/halconf.h @@ -0,0 +1,22 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_PWM TRUE +#define HAL_USE_PAL TRUE + +#include_next diff --git a/keyboards/acheron/themis/87htsc/info.json b/keyboards/acheron/themis/87htsc/info.json new file mode 100644 index 0000000000..854ad5a7d5 --- /dev/null +++ b/keyboards/acheron/themis/87htsc/info.json @@ -0,0 +1,135 @@ +{ + "keyboard_name": "Themis 87H-T-SC Rev. Alpha", + "usb": { + "pid": "0x5449", + "device_version": "0.0.1" + }, + "matrix_pins": { + "cols": ["A8" ,"C9" ,"C8" ,"B14","B12","B10","B1" ,"B0" ,"A7" ,"A6" ,"A5" ,"A4" ,"C5" ,"C7" ,"B3" ,"A2" ,"C12","D2" ], + "rows": ["A15","A10","C6" ,"C4" ,"A3" ,"A1" ,"C11","C10","B4"] + }, + "features": { + "bootmagic": true, + "lto": true, + "mousekey": true, + "extrakey": true, + "console": false, + "backlight": false, + "rgblight": true, + "audio": false, + "encoder": false, + "nkro": true + }, + "diode_direction": "COL2ROW", + "ws2812": { + "pin": "B15" + }, + "processor": "STM32F401", + "bootloader": "stm32-dfu", + "community_layouts": ["tkl_ansi_tsangan"], + "layouts": { + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"label":"Escape", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label":"F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label":"F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label":"F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label":"F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label":"F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label":"F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label":"F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label":"F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + + {"label":"F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label":"F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label":"F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label":"F12", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label":"Print Screen", "matrix": [6, 14], "x": 15.25, "y": 0}, + {"label":"Scroll Lock", "matrix": [6, 17], "x": 16.25, "y": 0}, + {"label":"Pause", "matrix": [6, 16], "x": 17.25, "y": 0}, + + {"label":"`~", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label":"1!", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label":"2@", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label":"3#", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label":"4$", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label":"5%", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label":"6^", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label":"7&", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label":"8*", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label":"9(", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label":"0)", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label":"-_", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label":"=+", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label":"Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"label":"Insert", "matrix": [7, 14], "x": 15.25, "y": 1.25}, + {"label":"Home", "matrix": [7, 17], "x": 16.25, "y": 1.25}, + {"label":"Page Up","matrix": [7, 16], "x": 17.25, "y": 1.25}, + + {"label":"Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label":"Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label":"W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label":"E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label":"R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label":"T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label":"Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label":"U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label":"I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label":"O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label":"P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label":"[{", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label":"]}", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label":"\\|", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label":"Delete", "matrix": [8, 14], "x": 15.25, "y": 2.25}, + {"label":"End", "matrix": [8, 17], "x": 16.25, "y": 2.25}, + {"label":"Page Down", "matrix": [8, 16], "x": 17.25, "y": 2.25}, + + {"label":"Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label":"A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label":"S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label":"D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label":"F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label":"G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label":"H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label":"J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label":"K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label":"L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label":";:", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label":"\'\"", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label":"Enter", "matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label":"Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label":"Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label":"X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label":"C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label":"V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label":"B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label":"N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label":"M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label":",<", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label":".>", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label":"/?", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label":"Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"label":"Up", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label":"LCtrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label":"Lwin", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label":"LAlt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label":"Space", "matrix": [5, 6], "x": 4, "y": 5.25, "w": 6.25}, + {"label":"RAlt", "matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, + {"label":"RWin", "matrix": [5, 11], "x": 12.5, "y": 5.25}, + {"label":"RCtrl", "matrix": [5, 12], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label":"Left", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label":"Down", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label":"Right", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/acheron/themis/87htsc/keymaps/default/keymap.c b/keyboards/acheron/themis/87htsc/keymaps/default/keymap.c new file mode 100755 index 0000000000..7b29220ec8 --- /dev/null +++ b/keyboards/acheron/themis/87htsc/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* +Copyright 2023 Gondolindrim + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_ansi_tsangan( + KC_ESC , 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_PSCR, KC_SCRL, KC_PAUS , + KC_GRV , 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_BSPC, KC_INS , KC_HOME, 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_DEL , KC_END , 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_ENT , + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi_tsangan( + QK_BOOT, 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_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_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, 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 + ) +}; diff --git a/keyboards/acheron/themis/87htsc/keymaps/via/keymap.c b/keyboards/acheron/themis/87htsc/keymaps/via/keymap.c new file mode 100755 index 0000000000..7b29220ec8 --- /dev/null +++ b/keyboards/acheron/themis/87htsc/keymaps/via/keymap.c @@ -0,0 +1,37 @@ +/* +Copyright 2023 Gondolindrim + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_ansi_tsangan( + KC_ESC , 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_PSCR, KC_SCRL, KC_PAUS , + KC_GRV , 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_BSPC, KC_INS , KC_HOME, 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_DEL , KC_END , 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_ENT , + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi_tsangan( + QK_BOOT, 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_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_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, 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 + ) +}; diff --git a/keyboards/acheron/themis/87htsc/keymaps/via/rules.mk b/keyboards/acheron/themis/87htsc/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/acheron/themis/87htsc/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/acheron/themis/87htsc/mcuconf.h b/keyboards/acheron/themis/87htsc/mcuconf.h new file mode 100644 index 0000000000..3d1d05c307 --- /dev/null +++ b/keyboards/acheron/themis/87htsc/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/acheron/themis/87htsc/rules.mk b/keyboards/acheron/themis/87htsc/rules.mk new file mode 100644 index 0000000000..e69de29bb2 diff --git a/keyboards/acheron/themis/88htsc/88htsc.c b/keyboards/acheron/themis/88htsc/88htsc.c new file mode 100644 index 0000000000..dada30ff87 --- /dev/null +++ b/keyboards/acheron/themis/88htsc/88htsc.c @@ -0,0 +1,25 @@ +/* Copyright 2023 Gondolindrim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if(res) { + led_state.caps_lock ? rgblight_setrgb_at(0xAA,0xAA,0xAA,0) : rgblight_setrgb_at(0x00,0x00,0x00,0) ; + } + return res; +} diff --git a/keyboards/acheron/themis/88htsc/config.h b/keyboards/acheron/themis/88htsc/config.h new file mode 100644 index 0000000000..8a1ff48583 --- /dev/null +++ b/keyboards/acheron/themis/88htsc/config.h @@ -0,0 +1,33 @@ +/* +Copyright 2023 Gondolindrim + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define LOCKING_SUPPORT_ENABLE +#define LOCKING_RESYNC_ENABLE + +#define RGBLED_NUM 1 + +#define WS2812_PWM_COMPLEMENTARY_OUTPUT +#define WS2812_PWM_DRIVER PWMD1 +#define WS2812_PWM_CHANNEL 3 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 +#define WS2812_DMA_CHANNEL 6 + +#define WEAR_LEVELING_LOGICAL_SIZE 4096 +#define WEAR_LEVELING_BACKING_SIZE 8192 diff --git a/keyboards/acheron/themis/88htsc/halconf.h b/keyboards/acheron/themis/88htsc/halconf.h new file mode 100644 index 0000000000..485d48ef30 --- /dev/null +++ b/keyboards/acheron/themis/88htsc/halconf.h @@ -0,0 +1,22 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_PWM TRUE +#define HAL_USE_PAL TRUE + +#include_next diff --git a/keyboards/acheron/themis/88htsc/info.json b/keyboards/acheron/themis/88htsc/info.json new file mode 100644 index 0000000000..cfce0702eb --- /dev/null +++ b/keyboards/acheron/themis/88htsc/info.json @@ -0,0 +1,137 @@ +{ + "keyboard_name": "Themis 88H-T-SC Rev. Alpha", + "usb": { + "pid": "0x5450", + "device_version": "0.0.1" + }, + "matrix_pins": { + "cols": ["A8" ,"C9" ,"C8" ,"B14","B12","B10","B1" ,"B0" ,"A7" ,"A6" ,"A5" ,"A4" ,"C5" ,"C7" ,"B3" ,"A2" ,"C12","D2" ], + "rows": ["A15","A10","C6" ,"C4" ,"A3" ,"A1" ,"C11","C10","B4"] + }, + "features": { + "bootmagic": true, + "lto": true, + "mousekey": true, + "extrakey": true, + "console": false, + "backlight": false, + "rgblight": true, + "audio": false, + "encoder": false, + "nkro": true + }, + "diode_direction": "COL2ROW", + "ws2812": { + "pin": "B15" + }, + "processor": "STM32F401", + "bootloader": "stm32-dfu", + "community_layouts": ["tkl_f13_ansi_tsangan"], + "layouts": { + "LAYOUT_tkl_f13_ansi_tsangan": { + "layout": [ + {"label":"Escape", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label":"F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label":"F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label":"F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label":"F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + + {"label":"F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label":"F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label":"F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label":"F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + + {"label":"F9", "matrix": [0, 9], "x": 9.75, "y": 0}, + {"label":"F10", "matrix": [0, 10], "x": 10.75, "y": 0}, + {"label":"F11", "matrix": [0, 11], "x": 11.75, "y": 0}, + {"label":"F12", "matrix": [0, 12], "x": 12.75, "y": 0}, + + {"label":"F13", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label":"Print Screen", "matrix": [6, 14], "x": 15.25, "y": 0}, + {"label":"Scroll Lock", "matrix": [6, 17], "x": 16.25, "y": 0}, + {"label":"Pause", "matrix": [6, 16], "x": 17.25, "y": 0}, + + {"label":"`~", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label":"1!", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label":"2@", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label":"3#", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label":"4$", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label":"5%", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label":"6^", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label":"7&", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label":"8*", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label":"9(", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label":"0)", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label":"-_", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label":"=+", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label":"Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"label":"Insert", "matrix": [7, 14], "x": 15.25, "y": 1.25}, + {"label":"Home", "matrix": [7, 17], "x": 16.25, "y": 1.25}, + {"label":"Page Up","matrix": [7, 16], "x": 17.25, "y": 1.25}, + + {"label":"Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label":"Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label":"W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label":"E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label":"R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label":"T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label":"Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label":"U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label":"I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label":"O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label":"P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label":"[{", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label":"]}", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label":"\\|", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label":"Delete", "matrix": [8, 14], "x": 15.25, "y": 2.25}, + {"label":"End", "matrix": [8, 17], "x": 16.25, "y": 2.25}, + {"label":"Page Down", "matrix": [8, 16], "x": 17.25, "y": 2.25}, + + {"label":"Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label":"A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label":"S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label":"D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label":"F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label":"G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label":"H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label":"J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label":"K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label":"L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label":";:", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label":"\'\"", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label":"Enter", "matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label":"Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label":"Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label":"X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label":"C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label":"V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label":"B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label":"N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label":"M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label":",<", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label":".>", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label":"/?", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label":"Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"label":"Up", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label":"LCtrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label":"Lwin", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label":"LAlt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label":"Space", "matrix": [5, 6], "x": 4, "y": 5.25, "w": 6.25}, + {"label":"RAlt", "matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, + {"label":"RWin", "matrix": [5, 11], "x": 12.5, "y": 5.25}, + {"label":"RCtrl", "matrix": [5, 12], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label":"Left", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label":"Down", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label":"Right", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/acheron/themis/88htsc/keymaps/default/keymap.c b/keyboards/acheron/themis/88htsc/keymaps/default/keymap.c new file mode 100755 index 0000000000..725b294b0d --- /dev/null +++ b/keyboards/acheron/themis/88htsc/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* +Copyright 2023 Gondolindrim + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_f13_ansi_tsangan( + KC_ESC , 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_F13, KC_PSCR, KC_SCRL, KC_PAUS , + KC_GRV , 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_BSPC, KC_INS , KC_HOME, 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_DEL , KC_END , 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_ENT , + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_f13_ansi_tsangan( + QK_BOOT, 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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, 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 + ) +}; diff --git a/keyboards/acheron/themis/88htsc/keymaps/via/keymap.c b/keyboards/acheron/themis/88htsc/keymaps/via/keymap.c new file mode 100755 index 0000000000..725b294b0d --- /dev/null +++ b/keyboards/acheron/themis/88htsc/keymaps/via/keymap.c @@ -0,0 +1,37 @@ +/* +Copyright 2023 Gondolindrim + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_f13_ansi_tsangan( + KC_ESC , 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_F13, KC_PSCR, KC_SCRL, KC_PAUS , + KC_GRV , 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_BSPC, KC_INS , KC_HOME, 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_DEL , KC_END , 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_ENT , + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_f13_ansi_tsangan( + QK_BOOT, 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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, 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 + ) +}; diff --git a/keyboards/acheron/themis/88htsc/keymaps/via/rules.mk b/keyboards/acheron/themis/88htsc/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/acheron/themis/88htsc/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/acheron/themis/88htsc/mcuconf.h b/keyboards/acheron/themis/88htsc/mcuconf.h new file mode 100644 index 0000000000..3d1d05c307 --- /dev/null +++ b/keyboards/acheron/themis/88htsc/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/acheron/themis/88htsc/rules.mk b/keyboards/acheron/themis/88htsc/rules.mk new file mode 100644 index 0000000000..e69de29bb2 diff --git a/keyboards/acheron/themis/info.json b/keyboards/acheron/themis/info.json new file mode 100644 index 0000000000..4f9d3b61e6 --- /dev/null +++ b/keyboards/acheron/themis/info.json @@ -0,0 +1,8 @@ +{ + "manufacturer": "AcheronProject", + "url": "", + "maintainer": "Gondolindrim", + "usb": { + "vid": "0xAC11" + } +} diff --git a/keyboards/acheron/themis/readme.md b/keyboards/acheron/themis/readme.md new file mode 100644 index 0000000000..8c0c7e63e5 --- /dev/null +++ b/keyboards/acheron/themis/readme.md @@ -0,0 +1,23 @@ +# Acheron Themis QMK firmware + +![themis](https://i.imgur.com/kwemOsJh.png) + +The Themis is Acheron Project's open-source, freely available tenkeyless (TKL) keyboard Printed Circuit Boards (PCB) which features: + +- No LED lighting +- Solderless ("hotswap") MX switches support +- Fixed layout for each variant + +* Keyboard Maintainer: [Gondolindrim](https://github.com/Gondolindrim) +* Hardware Supported: open-source PCB using the [Joker template](https://acheronproject.com/joker_mcus/joker/). First units were manufactured using STM32F4x1 microcontroller; +* Hardware Availability: open-source PCBs + +In order to flash this PCB, first build the default layout (after setting up your build environment): + + make acheron/themis/:default + +After building or downloading the firmware, put the PCB into DFU mode by holding the reset button for at least five seconds and upload the firmware onto the microcontroller through a utility like `dfu-util` or QMK Toolbox. Alternatively, you can build and flash using: + + make acheron/themis/:default:flash + +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). From 7603a464cd74f4ff48e775bf79e0c089d1dc69a6 Mon Sep 17 00:00:00 2001 From: gskygithub <106651989+gskygithub@users.noreply.github.com> Date: Thu, 5 Oct 2023 11:49:43 +0800 Subject: [PATCH 232/496] Add keyboard Projectd/75/Projectd_75_ansi (#21628) Co-authored-by: Ryan Co-authored-by: gksygithub <106651989+gksygithub@users.noreply.github.com> --- keyboards/projectd/75/ansi/ansi.c | 205 +++++++++++++ keyboards/projectd/75/ansi/ansi.h | 27 ++ keyboards/projectd/75/ansi/config.h | 44 +++ keyboards/projectd/75/ansi/halconf.h | 23 ++ keyboards/projectd/75/ansi/info.json | 276 ++++++++++++++++++ .../projectd/75/ansi/keymaps/default/config.h | 22 ++ .../projectd/75/ansi/keymaps/default/keymap.c | 46 +++ .../projectd/75/ansi/keymaps/via/keymap.c | 46 +++ .../projectd/75/ansi/keymaps/via/rules.mk | 1 + keyboards/projectd/75/ansi/mcuconf.h | 25 ++ keyboards/projectd/75/ansi/readme.md | 25 ++ keyboards/projectd/75/ansi/rules.mk | 1 + 12 files changed, 741 insertions(+) create mode 100644 keyboards/projectd/75/ansi/ansi.c create mode 100644 keyboards/projectd/75/ansi/ansi.h create mode 100644 keyboards/projectd/75/ansi/config.h create mode 100644 keyboards/projectd/75/ansi/halconf.h create mode 100644 keyboards/projectd/75/ansi/info.json create mode 100644 keyboards/projectd/75/ansi/keymaps/default/config.h create mode 100644 keyboards/projectd/75/ansi/keymaps/default/keymap.c create mode 100644 keyboards/projectd/75/ansi/keymaps/via/keymap.c create mode 100644 keyboards/projectd/75/ansi/keymaps/via/rules.mk create mode 100644 keyboards/projectd/75/ansi/mcuconf.h create mode 100644 keyboards/projectd/75/ansi/readme.md create mode 100644 keyboards/projectd/75/ansi/rules.mk diff --git a/keyboards/projectd/75/ansi/ansi.c b/keyboards/projectd/75/ansi/ansi.c new file mode 100644 index 0000000000..1df7625002 --- /dev/null +++ b/keyboards/projectd/75/ansi/ansi.c @@ -0,0 +1,205 @@ +/* Copyright 2023 GSKY + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "ansi.h" + +#ifdef RGB_MATRIX_ENABLE + +const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + //{0, CS1_SW4, CS2_SW4, CS3_SW4}, // 0, k00, Esc + + {0, CS1_SW1, CS2_SW1, CS3_SW1}, // Esc + {0, CS1_SW2, CS2_SW2, CS3_SW2}, // F1 + {0, CS1_SW3, CS2_SW3, CS3_SW3}, // F2 + {0, CS1_SW4, CS2_SW4, CS3_SW4}, // F3 + {0, CS1_SW5, CS2_SW5, CS3_SW5}, // F4 + {0, CS1_SW6, CS2_SW6, CS3_SW6}, // F5 + {0, CS1_SW7, CS2_SW7, CS3_SW7}, // F6 + {0, CS1_SW8, CS2_SW8, CS3_SW8}, // F7 + {0, CS1_SW9, CS2_SW9, CS3_SW9}, // F8 + {0, CS1_SW10, CS2_SW10, CS3_SW10}, // F9 + {0, CS1_SW11, CS2_SW11, CS3_SW11}, // F10 + {0, CS1_SW12, CS2_SW12, CS3_SW12}, // F11 + {1, CS1_SW1, CS2_SW1, CS3_SW1}, // F12 + {1, CS4_SW1, CS5_SW1, CS6_SW1}, // Printscreen + {1, CS4_SW3, CS5_SW3, CS6_SW3}, // Delete + + {0, CS4_SW1, CS5_SW1, CS6_SW1}, // ` + {0, CS4_SW2, CS5_SW2, CS6_SW2}, // 1 + {0, CS4_SW3, CS5_SW3, CS6_SW3}, // 2 + {0, CS4_SW4, CS5_SW4, CS6_SW4}, // 3 + {0, CS4_SW5, CS5_SW5, CS6_SW5}, // 4 + {0, CS4_SW6, CS5_SW6, CS6_SW6}, // 5 + {0, CS4_SW7, CS5_SW7, CS6_SW7}, // 6 + {0, CS4_SW8, CS5_SW8, CS6_SW8}, // 7 + {0, CS4_SW9, CS5_SW9, CS6_SW9}, // 8 + {0, CS4_SW10, CS5_SW10, CS6_SW10}, // 9 + {0, CS4_SW11, CS5_SW11, CS6_SW11}, // 0 + {0, CS4_SW12, CS5_SW12, CS6_SW12}, // - + {1, CS1_SW5, CS2_SW5, CS3_SW5}, // = + {1, CS1_SW7, CS2_SW7, CS3_SW7}, // Backspace + {1, CS4_SW5, CS5_SW5, CS6_SW5}, // Home + + {0, CS7_SW1, CS8_SW1, CS9_SW1}, // Tab + {0, CS7_SW2, CS8_SW2, CS9_SW2}, // Q + {0, CS7_SW3, CS8_SW3, CS9_SW3}, // W + {0, CS7_SW4, CS8_SW4, CS9_SW4}, // E + {0, CS7_SW5, CS8_SW5, CS9_SW5}, // R + {0, CS7_SW6, CS8_SW6, CS9_SW6}, // T + {0, CS7_SW7, CS8_SW7, CS9_SW7}, // Y + {0, CS7_SW8, CS8_SW8, CS9_SW8}, // U + {0, CS7_SW9, CS8_SW9, CS9_SW9}, // I + {0, CS7_SW10, CS8_SW10, CS9_SW10}, // O + {0, CS7_SW11, CS8_SW11, CS9_SW11}, // P + {0, CS7_SW12, CS8_SW12, CS9_SW12}, // [ + {1, CS1_SW8, CS2_SW8, CS3_SW8}, // ] + {1, CS1_SW9, CS2_SW9, CS3_SW9}, // "\\" + {1, CS4_SW4, CS5_SW4, CS6_SW4}, // PGUP + + {0, CS10_SW1, CS11_SW1, CS12_SW1}, // Caps Lock + {0, CS10_SW2, CS11_SW2, CS12_SW2}, // A + {0, CS10_SW3, CS11_SW3, CS12_SW3}, // S + {0, CS10_SW4, CS11_SW4, CS12_SW4}, // D + {0, CS10_SW5, CS11_SW5, CS12_SW5}, // F + {0, CS10_SW6, CS11_SW6, CS12_SW6}, // G + {0, CS10_SW7, CS11_SW7, CS12_SW7}, // H + {0, CS10_SW8, CS11_SW8, CS12_SW8}, // J + {0, CS10_SW9, CS11_SW9, CS12_SW9}, // K + {0, CS10_SW10, CS11_SW10, CS12_SW10}, // L + {0, CS10_SW11, CS11_SW11, CS12_SW11}, // ; + {0, CS10_SW12, CS11_SW12, CS12_SW12}, // ' + {1, CS1_SW11, CS2_SW11, CS3_SW11}, // Enter + {1, CS4_SW7, CS5_SW7, CS6_SW7}, // PGDN + + {0, CS13_SW1, CS14_SW1, CS15_SW1}, // L Shift + {0, CS13_SW2, CS14_SW2, CS15_SW2}, // Z + {0, CS13_SW3, CS14_SW3, CS15_SW3}, // X + {0, CS13_SW4, CS14_SW4, CS15_SW4}, // C + {0, CS13_SW5, CS14_SW5, CS15_SW5}, // V + {0, CS13_SW6, CS14_SW6, CS15_SW6}, // B + {0, CS13_SW7, CS14_SW7, CS15_SW7}, // N + {0, CS13_SW8, CS14_SW8, CS15_SW8}, // M + {0, CS13_SW9, CS14_SW9, CS15_SW9}, // , + {0, CS13_SW10, CS14_SW10, CS15_SW10}, // . + {0, CS13_SW11, CS14_SW11, CS15_SW11}, // "/"" + {1, CS4_SW8, CS5_SW8, CS6_SW8}, // R Shift + {1, CS4_SW9, CS5_SW9, CS6_SW9}, // Up + {1, CS4_SW6, CS5_SW6, CS6_SW6}, // END + + {0, CS16_SW1, CS17_SW1, CS18_SW1}, // L Ctrl + {0, CS16_SW2, CS17_SW2, CS18_SW2}, // L Win + {0, CS16_SW3, CS17_SW3, CS18_SW3}, // L Alt + {0, CS16_SW4, CS17_SW4, CS18_SW4}, // LED1 + {0, CS16_SW5, CS17_SW5, CS18_SW5}, // LED2 + {0, CS16_SW6, CS17_SW6, CS18_SW6}, // Space + {0, CS16_SW7, CS17_SW7, CS18_SW7}, // LED3 + {0, CS16_SW8, CS17_SW8, CS18_SW8}, // LED4 + {0, CS16_SW9, CS17_SW9, CS18_SW9}, // R Alt + {0, CS16_SW10, CS17_SW10, CS18_SW10}, // FN + {0, CS16_SW12, CS17_SW12, CS18_SW12}, // R Ctrl + + {1, CS4_SW10, CS5_SW10, CS6_SW10}, // Left + {1, CS4_SW11, CS5_SW11, CS6_SW11}, // Down + {1, CS10_SW5, CS11_SW5, CS12_SW5}, // Right +}; + +#endif + +#ifdef EEPROM_ENABLE + +#include "spi_master.h" + +void spi_init(void) { + static bool is_initialised = false; + if (!is_initialised) { + is_initialised = true; + + // Try releasing special pins for a short time + setPinInput(SPI_SCK_PIN); + setPinInput(SPI_MOSI_PIN); + setPinInput(SPI_MISO_PIN); + + chThdSleepMilliseconds(10); + + palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_ALTERNATE(SPI_SCK_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST | PAL_WB32_CURRENT_LEVEL3); + palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_ALTERNATE(SPI_MOSI_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST); + palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_ALTERNATE(SPI_MISO_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST); + } +} + +#endif + +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } + if (host_keyboard_led_state().caps_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(45, 255, 255, 255); + } + + return false; + +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + + switch (keycode) { + + case RGB_R: + if (record->event.pressed) { + rgb_matrix_sethsv(0, 255, 255); + rgb_matrix_mode(1); + } + return false; /* Skip all further processing of this key */ + + case RGB_G: + if (record->event.pressed) { + rgb_matrix_sethsv(85, 255, 255); + rgb_matrix_mode(1); + } + return false; /* Skip all further processing of this key */ + + case RGB_B: + if (record->event.pressed) { + rgb_matrix_sethsv(170, 255, 255); + rgb_matrix_mode(1); + } + return false; /* Skip all further processing of this key */ + + case RGB_W: + if (record->event.pressed) { + rgb_matrix_sethsv(0, 0, 255); + rgb_matrix_mode(1); + } + return false; /* Skip all further processing of this key */ + + case SW_cy: + rgb_matrix_sethsv(0, 255, 255); + rgb_matrix_mode(13); + return false; /* Skip all further processing of this key */ + + + default: + return true; /* Process all other keycodes normally */ + } +}; diff --git a/keyboards/projectd/75/ansi/ansi.h b/keyboards/projectd/75/ansi/ansi.h new file mode 100644 index 0000000000..4e65d84ba7 --- /dev/null +++ b/keyboards/projectd/75/ansi/ansi.h @@ -0,0 +1,27 @@ +/* Copyright 2023 GSKY + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +enum my_keycodes { + RGB_R = QK_KB, + RGB_G, + RGB_B, + RGB_W, + SW_cy, +}; diff --git a/keyboards/projectd/75/ansi/config.h b/keyboards/projectd/75/ansi/config.h new file mode 100644 index 0000000000..5fcad72e71 --- /dev/null +++ b/keyboards/projectd/75/ansi/config.h @@ -0,0 +1,44 @@ +/* Copyright 2023 GSKY + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define RGB_DISABLE_WHEN_USB_SUSPENDED + +/* External spi flash */ +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B14 +#define WEAR_LEVELING_BACKING_SIZE (4 * 1024) + +/* SPI Config for LED Driver */ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN A5 +#define SPI_MOSI_PIN A7 +#define SPI_MISO_PIN A6 + +#define DRIVER_1_CS A15 +#define DRIVER_2_CS B15 +#define DRIVER_1_EN C13 +#define DRIVER_2_EN C13 + +#define DRIVER_COUNT 2 +#define DRIVER_1_LED_TOTAL 70 +#define DRIVER_2_LED_TOTAL 17 +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/projectd/75/ansi/halconf.h b/keyboards/projectd/75/ansi/halconf.h new file mode 100644 index 0000000000..64a184eb92 --- /dev/null +++ b/keyboards/projectd/75/ansi/halconf.h @@ -0,0 +1,23 @@ +/* Copyright (C) 2023 Westberry Technology (ChangZhou) Corp., Ltd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/projectd/75/ansi/info.json b/keyboards/projectd/75/ansi/info.json new file mode 100644 index 0000000000..daf94202e0 --- /dev/null +++ b/keyboards/projectd/75/ansi/info.json @@ -0,0 +1,276 @@ +{ + "manufacturer": "ProjectD", + "keyboard_name": "ProjectD 75% ANSI", + "maintainer": "Gsky", + "bootloader": "wb32-dfu", + "bootmagic": { + "matrix": [1, 3] + }, + "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 10 + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"], + "rows": ["B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10"] + }, + "processor": "WB32FQ95", + "qmk": { + "tap_keycode_delay": 10 + }, + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "center_point": [78, 20], + "driver": "aw20216", + "layout": [ + { "flags": 4, "matrix": [1, 3], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [2, 6], "x": 12.5, "y": 0 }, + { "flags": 4, "matrix": [3, 6], "x": 22.5, "y": 0 }, + { "flags": 4, "matrix": [3, 1], "x": 32.5, "y": 0 }, + { "flags": 4, "matrix": [3, 3], "x": 42.5, "y": 0 }, + { "flags": 4, "matrix": [0, 7], "x": 55, "y": 0 }, + { "flags": 4, "matrix": [6, 3], "x": 65, "y": 0 }, + { "flags": 4, "matrix": [7, 1], "x": 75, "y": 0 }, + { "flags": 4, "matrix": [7, 6], "x": 85, "y": 0 }, + { "flags": 4, "matrix": [10, 6], "x": 97.5, "y": 0 }, + { "flags": 4, "matrix": [10, 7], "x": 107.5, "y": 0 }, + { "flags": 4, "matrix": [10, 3], "x": 117.5, "y": 0 }, + { "flags": 4, "matrix": [10, 5], "x": 127.5, "y": 0 }, + { "flags": 4, "matrix": [9, 7], "x": 140, "y": 0 }, + { "flags": 4, "matrix": [6, 5], "x": 155, "y": 0 }, + + { "flags": 4, "matrix": [1, 6], "x": 0, "y": 12.5 }, + { "flags": 4, "matrix": [1, 7], "x": 10, "y": 12.5 }, + { "flags": 4, "matrix": [2, 7], "x": 20, "y": 12.5 }, + { "flags": 4, "matrix": [3, 7], "x": 30, "y": 12.5 }, + { "flags": 4, "matrix": [4, 7], "x": 40, "y": 12.5 }, + { "flags": 4, "matrix": [4, 6], "x": 50, "y": 12.5 }, + { "flags": 4, "matrix": [5, 6], "x": 60, "y": 12.5 }, + { "flags": 4, "matrix": [5, 7], "x": 70, "y": 12.5 }, + { "flags": 4, "matrix": [6, 7], "x": 80, "y": 12.5 }, + { "flags": 4, "matrix": [7, 7], "x": 90, "y": 12.5 }, + { "flags": 4, "matrix": [8, 7], "x": 100, "y": 12.5 }, + { "flags": 4, "matrix": [8, 6], "x": 110, "y": 12.5 }, + { "flags": 4, "matrix": [6, 6], "x": 120, "y": 12.5 }, + { "flags": 4, "matrix": [10, 1], "x": 130, "y": 12.5 }, + { "flags": 4, "matrix": [0, 2], "x": 155, "y": 12.5 }, + + { "flags": 4, "matrix": [1, 1], "x": 0, "y": 22.5 }, + { "flags": 4, "matrix": [1, 0], "x": 15, "y": 22.5 }, + { "flags": 4, "matrix": [2, 0], "x": 25, "y": 22.5 }, + { "flags": 4, "matrix": [3, 0], "x": 35, "y": 22.5 }, + { "flags": 4, "matrix": [4, 0], "x": 45, "y": 22.5 }, + { "flags": 4, "matrix": [4, 1], "x": 55, "y": 22.5 }, + { "flags": 4, "matrix": [5, 1], "x": 65, "y": 22.5 }, + { "flags": 4, "matrix": [5, 0], "x": 75, "y": 22.5 }, + { "flags": 4, "matrix": [6, 0], "x": 85, "y": 22.5 }, + { "flags": 4, "matrix": [7, 0], "x": 95, "y": 22.5 }, + { "flags": 4, "matrix": [8, 0], "x": 105, "y": 22.5 }, + { "flags": 4, "matrix": [8, 1], "x": 115, "y": 22.5 }, + { "flags": 4, "matrix": [6, 1], "x": 125, "y": 22.5 }, + { "flags": 4, "matrix": [10, 2], "x": 135, "y": 22.5 }, + { "flags": 4, "matrix": [1, 5], "x": 155, "y": 22.5 }, + + { "flags": 8, "matrix": [2, 1], "x": 0, "y": 32.5 }, + { "flags": 4, "matrix": [1, 2], "x": 17.5, "y": 32.5 }, + { "flags": 4, "matrix": [2, 2], "x": 27.5, "y": 32.5 }, + { "flags": 4, "matrix": [3, 2], "x": 37.5, "y": 32.5 }, + { "flags": 4, "matrix": [4, 2], "x": 47.5, "y": 32.5 }, + { "flags": 4, "matrix": [4, 3], "x": 57.5, "y": 32.5 }, + { "flags": 4, "matrix": [5, 3], "x": 67.5, "y": 32.5 }, + { "flags": 4, "matrix": [5, 2], "x": 77.5, "y": 32.5 }, + { "flags": 4, "matrix": [6, 2], "x": 87.5, "y": 32.5 }, + { "flags": 4, "matrix": [7, 2], "x": 97.5, "y": 32.5 }, + { "flags": 4, "matrix": [8, 2], "x": 107.5, "y": 32.5 }, + { "flags": 4, "matrix": [8, 3], "x": 117.5, "y": 32.5 }, + { "flags": 4, "matrix": [10, 4], "x": 127.5, "y": 32.5 }, + { "flags": 4, "matrix": [2, 5], "x": 155, "y": 32.5 }, + + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 42.5 }, + { "flags": 4, "matrix": [1, 4], "x": 22.5, "y": 42.5 }, + { "flags": 4, "matrix": [2, 4], "x": 32.5, "y": 42.5 }, + { "flags": 4, "matrix": [3, 4], "x": 42.5, "y": 42.5 }, + { "flags": 4, "matrix": [4, 4], "x": 52.5, "y": 42.5 }, + { "flags": 4, "matrix": [4, 5], "x": 62.5, "y": 42.5 }, + { "flags": 4, "matrix": [5, 5], "x": 72.5, "y": 42.5 }, + { "flags": 4, "matrix": [5, 4], "x": 82.5, "y": 42.5 }, + { "flags": 4, "matrix": [6, 4], "x": 92.5, "y": 42.5 }, + { "flags": 4, "matrix": [7, 4], "x": 102.5, "y": 42.5 }, + { "flags": 4, "matrix": [8, 5], "x": 112.5, "y": 42.5 }, + { "flags": 4, "matrix": [9, 1], "x": 122.5, "y": 42.5 }, + { "flags": 4, "matrix": [3, 5], "x": 142.5, "y": 45 }, + { "flags": 4, "matrix": [7, 5], "x": 155, "y": 42.5 }, + + { "flags": 4, "matrix": [0, 6], "x": 0, "y": 52.5 }, + { "flags": 4, "matrix": [9, 0], "x": 12.5, "y": 52.5 }, + { "flags": 4, "matrix": [9, 3], "x": 25, "y": 52.5 }, + { "flags": 4, "x": 61.5, "y": 52.5 }, + { "flags": 4, "x": 62.5, "y": 52.5 }, + { "flags": 4, "matrix": [9, 4], "x": 65, "y": 52.5 }, + { "flags": 4, "x": 67.5, "y": 52.5 }, + { "flags": 4, "x": 68.5, "y": 52.5 }, + { "flags": 4, "matrix": [9, 5], "x": 100, "y": 52.5 }, + { "flags": 4, "matrix": [9, 2], "x": 110, "y": 52.5 }, + { "flags": 4, "matrix": [0, 4], "x": 120, "y": 52.5 }, + { "flags": 4, "matrix": [0, 3], "x": 132.5, "y": 52.5 }, + { "flags": 4, "matrix": [7, 3], "x": 142.5, "y": 52.5 }, + { "flags": 4, "matrix": [0, 5], "x": 152.5, "y": 52.5 } + ] + }, + "url": "", + "usb": { + "device_version": "0.0.2", + "pid": "0x000F", + "vid": "0x3233" + }, + "eeprom": { + "driver": "wear_leveling" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Esc", "matrix": [1, 3], "x": 0, "y": 0 }, + { "label": "F1", "matrix": [2, 6], "x": 1.25, "y": 0 }, + { "label": "F2", "matrix": [3, 6], "x": 2.25, "y": 0 }, + { "label": "F3", "matrix": [3, 1], "x": 3.25, "y": 0 }, + { "label": "F4", "matrix": [3, 3], "x": 4.25, "y": 0 }, + { "label": "F5", "matrix": [0, 7], "x": 5.5, "y": 0 }, + { "label": "F6", "matrix": [6, 3], "x": 6.5, "y": 0 }, + { "label": "F7", "matrix": [7, 1], "x": 7.5, "y": 0 }, + { "label": "F8", "matrix": [7, 6], "x": 8.5, "y": 0 }, + { "label": "F9", "matrix": [10, 6], "x": 9.75, "y": 0 }, + { "label": "F10", "matrix": [10, 7], "x": 10.75, "y": 0 }, + { "label": "F11", "matrix": [10, 3], "x": 11.75, "y": 0 }, + { "label": "F12", "matrix": [10, 5], "x": 12.75, "y": 0 }, + { "label": "PrintScreen", "matrix": [9, 7], "x": 14, "y": 0 }, + { "label": "Delete", "matrix": [6, 5], "x": 15.5, "y": 0 }, + + { "label": "`", "matrix": [1, 6], "x": 0, "y": 1.25 }, + { "label": "1", "matrix": [1, 7], "x": 1, "y": 1.25 }, + { "label": "2", "matrix": [2, 7], "x": 2, "y": 1.25 }, + { "label": "3", "matrix": [3, 7], "x": 3, "y": 1.25 }, + { "label": "4", "matrix": [4, 7], "x": 4, "y": 1.25 }, + { "label": "5", "matrix": [4, 6], "x": 5, "y": 1.25 }, + { "label": "6", "matrix": [5, 6], "x": 6, "y": 1.25 }, + { "label": "7", "matrix": [5, 7], "x": 7, "y": 1.25 }, + { "label": "8", "matrix": [6, 7], "x": 8, "y": 1.25 }, + { "label": "9", "matrix": [7, 7], "x": 9, "y": 1.25 }, + { "label": "0", "matrix": [8, 7], "x": 10, "y": 1.25 }, + { "label": "-", "matrix": [8, 6], "x": 11, "y": 1.25 }, + { "label": "=", "matrix": [6, 6], "x": 12, "y": 1.25 }, + { "label": "Backspace", "matrix": [10, 1], "w": 2, "x": 13, "y": 1.25 }, + { "label": "Home", "matrix": [0, 2], "x": 15.5, "y": 1.25 }, + + { "label": "Tab", "matrix": [1, 1], "w": 1.5, "x": 0, "y": 2.25 }, + { "label": "Q", "matrix": [1, 0], "x": 1.5, "y": 2.25 }, + { "label": "W", "matrix": [2, 0], "x": 2.5, "y": 2.25 }, + { "label": "E", "matrix": [3, 0], "x": 3.5, "y": 2.25 }, + { "label": "R", "matrix": [4, 0], "x": 4.5, "y": 2.25 }, + { "label": "T", "matrix": [4, 1], "x": 5.5, "y": 2.25 }, + { "label": "Y", "matrix": [5, 1], "x": 6.5, "y": 2.25 }, + { "label": "U", "matrix": [5, 0], "x": 7.5, "y": 2.25 }, + { "label": "I", "matrix": [6, 0], "x": 8.5, "y": 2.25 }, + { "label": "O", "matrix": [7, 0], "x": 9.5, "y": 2.25 }, + { "label": "P", "matrix": [8, 0], "x": 10.5, "y": 2.25 }, + { "label": "[", "matrix": [8, 1], "x": 11.5, "y": 2.25 }, + { "label": "]", "matrix": [6, 1], "x": 12.5, "y": 2.25 }, + { "label": "\\", "matrix": [10, 2], "w": 1.5, "x": 13.5, "y": 2.25 }, + { "label": "PGUP", "matrix": [1, 5], "x": 15.5, "y": 2.25 }, + + { "label": "Caps Lock", "matrix": [2, 1], "w": 1.75, "x": 0, "y": 3.25 }, + { "label": "A", "matrix": [1, 2], "x": 1.75, "y": 3.25 }, + { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 3.25 }, + { "label": "D", "matrix": [3, 2], "x": 3.75, "y": 3.25 }, + { "label": "F", "matrix": [4, 2], "x": 4.75, "y": 3.25 }, + { "label": "G", "matrix": [4, 3], "x": 5.75, "y": 3.25 }, + { "label": "H", "matrix": [5, 3], "x": 6.75, "y": 3.25 }, + { "label": "J", "matrix": [5, 2], "x": 7.75, "y": 3.25 }, + { "label": "K", "matrix": [6, 2], "x": 8.75, "y": 3.25 }, + { "label": "L", "matrix": [7, 2], "x": 9.75, "y": 3.25 }, + { "label": ";", "matrix": [8, 2], "x": 10.75, "y": 3.25 }, + { "label": "'", "matrix": [8, 3], "x": 11.75, "y": 3.25 }, + { "label": "Enter", "matrix": [10, 4], "w": 2.25, "x": 12.75, "y": 3.25 }, + { "label": "PGDN", "matrix": [2, 5], "x": 15.5, "y": 3.25 }, + + { "label": "L Shift", "matrix": [0, 0], "w": 2.25, "x": 0, "y": 4.25 }, + { "label": "Z", "matrix": [1, 4], "x": 2.25, "y": 4.25 }, + { "label": "X", "matrix": [2, 4], "x": 3.25, "y": 4.25 }, + { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 4.25 }, + { "label": "V", "matrix": [4, 4], "x": 5.25, "y": 4.25 }, + { "label": "B", "matrix": [4, 5], "x": 6.25, "y": 4.25 }, + { "label": "N", "matrix": [5, 5], "x": 7.25, "y": 4.25 }, + { "label": "M", "matrix": [5, 4], "x": 8.25, "y": 4.25 }, + { "label": ",", "matrix": [6, 4], "x": 9.25, "y": 4.25 }, + { "label": ".", "matrix": [7, 4], "x": 10.25, "y": 4.25 }, + { "label": "/", "matrix": [8, 5], "x": 11.25, "y": 4.25 }, + { "label": "R Shift", "matrix": [9, 1], "w": 1.75, "x": 12.25, "y": 4.25 }, + { "label": "Up", "matrix": [3, 5], "x": 14.25, "y": 4.5 }, + { "label": "End", "matrix": [7, 5], "x": 15.5, "y": 4.25 }, + + { "label": "L Ctrl", "matrix": [0, 6], "w": 1.25, "x": 0, "y": 5.25 }, + { "label": "L Win", "matrix": [9, 0], "w": 1.25, "x": 1.25, "y": 5.25 }, + { "label": "L Alt", "matrix": [9, 3], "w": 1.25, "x": 2.5, "y": 5.25 }, + { "label": "Space", "matrix": [9, 4], "w": 6.25, "x": 3.75, "y": 5.25 }, + { "label": "R Alt", "matrix": [9, 5], "x": 10, "y": 5.25 }, + { "label": "FN", "matrix": [9, 2], "x": 11, "y": 5.25 }, + { "label": "R Ctrl", "matrix": [0, 4], "x": 12, "y": 5.25 }, + { "label": "Left", "matrix": [0, 3], "x": 13.25, "y": 5.5 }, + { "label": "Down", "matrix": [7, 3], "x": 14.25, "y": 5.5 }, + { "label": "Right", "matrix": [0, 5], "x": 15.25, "y": 5.5 } + ] + } + } +} diff --git a/keyboards/projectd/75/ansi/keymaps/default/config.h b/keyboards/projectd/75/ansi/keymaps/default/config.h new file mode 100644 index 0000000000..43e27f6356 --- /dev/null +++ b/keyboards/projectd/75/ansi/keymaps/default/config.h @@ -0,0 +1,22 @@ +/* Copyright 2023 GSKY + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/projectd/75/ansi/keymaps/default/keymap.c b/keyboards/projectd/75/ansi/keymaps/default/keymap.c new file mode 100644 index 0000000000..36e4937481 --- /dev/null +++ b/keyboards/projectd/75/ansi/keymaps/default/keymap.c @@ -0,0 +1,46 @@ +/* Copyright 2023 GSKY + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: Base Layer (Default Layer) + */ +[0] = LAYOUT( + QK_GESC, 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_PSCR, KC_DEL, + KC_GRV, 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_BSPC, KC_HOME, + 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_PGUP, + 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_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), +[1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RGB_TOG, RGB_MOD, RGB_RMOD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, + _______, _______, _______, _______, MO(2), _______, _______, RGB_SPD, RGB_VAD, RGB_SPI), +[2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_R, RGB_G, RGB_B, RGB_W, SW_cy, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/projectd/75/ansi/keymaps/via/keymap.c b/keyboards/projectd/75/ansi/keymaps/via/keymap.c new file mode 100644 index 0000000000..36e4937481 --- /dev/null +++ b/keyboards/projectd/75/ansi/keymaps/via/keymap.c @@ -0,0 +1,46 @@ +/* Copyright 2023 GSKY + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: Base Layer (Default Layer) + */ +[0] = LAYOUT( + QK_GESC, 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_PSCR, KC_DEL, + KC_GRV, 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_BSPC, KC_HOME, + 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_PGUP, + 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_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), +[1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RGB_TOG, RGB_MOD, RGB_RMOD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, + _______, _______, _______, _______, MO(2), _______, _______, RGB_SPD, RGB_VAD, RGB_SPI), +[2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_R, RGB_G, RGB_B, RGB_W, SW_cy, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/projectd/75/ansi/keymaps/via/rules.mk b/keyboards/projectd/75/ansi/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/projectd/75/ansi/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/projectd/75/ansi/mcuconf.h b/keyboards/projectd/75/ansi/mcuconf.h new file mode 100644 index 0000000000..e4b8d1f973 --- /dev/null +++ b/keyboards/projectd/75/ansi/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright (C) 2023 Westberry Technology (ChangZhou) Corp., Ltd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE + +#undef WB32_SPI_USE_SPIM2 +#define WB32_SPI_USE_SPIM2 TRUE diff --git a/keyboards/projectd/75/ansi/readme.md b/keyboards/projectd/75/ansi/readme.md new file mode 100644 index 0000000000..97b13a953b --- /dev/null +++ b/keyboards/projectd/75/ansi/readme.md @@ -0,0 +1,25 @@ +# ProjectD 75% ANSI +![ProjectD 75 ANSI](https://imgur.com/dtNDC8zh.png) + +A 75% keyboard, Equipped with the WestBerry Q95 microcontroller. + +* Keyboard Maintainer: [GSKY](https://github.com/gksygithub) +* Hardware Supported: projectd_75_ansi +* Hardware Availability: [GSKY](https://github.com/gskygithub/projectd_75_ansi) + +Make example for this keyboard (after setting up your build environment): + + make projectd/75/ansi:default + +Flashing example for this keyboard: + + make projectd/75/ansi:default:flash + +To reset the board into bootloader mode, do one of the following: + +* Hold the Reset switch mounted under the space key after the USB cable is connected +* Hold the Esc key while connecting the USB cable (also erases persistent settings) +* Fn+Alt+Tab will reset the board to bootloader mode + +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). + diff --git a/keyboards/projectd/75/ansi/rules.mk b/keyboards/projectd/75/ansi/rules.mk new file mode 100644 index 0000000000..002458405e --- /dev/null +++ b/keyboards/projectd/75/ansi/rules.mk @@ -0,0 +1 @@ +WEAR_LEVELING_DRIVER = spi_flash From 22fbbbb1cc5f3782cd70a088bc7cf9122462893e Mon Sep 17 00:00:00 2001 From: thompson-ele Date: Wed, 4 Oct 2023 20:56:26 -0700 Subject: [PATCH 233/496] [Keyboard] Add SP-111 v2 keyboard (#21652) Co-authored-by: Duncan Sutherland Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/viktus/sp111_v2/info.json | 198 ++++++++++++++++++ .../viktus/sp111_v2/keymaps/default/keymap.c | 49 +++++ .../viktus/sp111_v2/keymaps/via/config.h | 6 + .../viktus/sp111_v2/keymaps/via/keymap.c | 22 ++ .../viktus/sp111_v2/keymaps/via/rules.mk | 2 + keyboards/viktus/sp111_v2/readme.md | 27 +++ keyboards/viktus/sp111_v2/rules.mk | 1 + keyboards/viktus/sp111_v2/sp111_v2.c | 12 ++ 8 files changed, 317 insertions(+) create mode 100644 keyboards/viktus/sp111_v2/info.json create mode 100644 keyboards/viktus/sp111_v2/keymaps/default/keymap.c create mode 100644 keyboards/viktus/sp111_v2/keymaps/via/config.h create mode 100644 keyboards/viktus/sp111_v2/keymaps/via/keymap.c create mode 100644 keyboards/viktus/sp111_v2/keymaps/via/rules.mk create mode 100644 keyboards/viktus/sp111_v2/readme.md create mode 100644 keyboards/viktus/sp111_v2/rules.mk create mode 100644 keyboards/viktus/sp111_v2/sp111_v2.c diff --git a/keyboards/viktus/sp111_v2/info.json b/keyboards/viktus/sp111_v2/info.json new file mode 100644 index 0000000000..63c531ee44 --- /dev/null +++ b/keyboards/viktus/sp111_v2/info.json @@ -0,0 +1,198 @@ +{ + "manufacturer": "BlindAssassin111", + "keyboard_name": "viktus/sp111_v2", + "maintainer": "blindassassin111", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["C6", "F6", "F5", "F4", "F1", "F7", "B7", "D2", "D3", "D5", "D4"], + "rows": ["C7", "B6", "B5", "B4", "D7", "D6"] + }, + "ws2812": { + "pin": "F0" + }, + "rgb_matrix": { + "driver": "ws2812", + "max_brightness": 150, + "layout": [ + { "flags": 8, "x": 0, "y": 0 }, + { "flags": 8, "x": 0, "y": 1 }, + { "flags": 8, "x": 0, "y": 2 } + ], + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true + } + }, + "split": { + "enabled": true, + "matrix_pins": { + "right": { + "cols": ["C6", "F1", "B4", "B5", "D2", "D3", "D5", "D4", "D6", "D7"], + "rows": ["C7", "B6", "F4", "F5", "F6", "F7"] + } + }, + "transport": { + "protocol": "i2c" + }, + "usb_detect": { + "enabled": true + } + }, + "url": "https://viktus.design/", + "usb": { + "device_version": "2.0.0", + "pid": "0x5112", + "vid": "0x5644" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "0,0", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "0,1", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "0,2", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "0,3", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "0,4", "matrix": [0, 4], "x": 4.5, "y": 0 }, + { "label": "0,5", "matrix": [0, 5], "x": 5.75, "y": 0 }, + { "label": "0,6", "matrix": [0, 6], "x": 6.75, "y": 0 }, + { "label": "0,7", "matrix": [0, 7], "x": 7.75, "y": 0 }, + { "label": "0,8", "matrix": [0, 8], "x": 8.75, "y": 0 }, + { "label": "0,9", "matrix": [0, 9], "x": 10, "y": 0 }, + { "label": "0,10", "matrix": [0, 10], "x": 11, "y": 0 }, + { "label": "6,0", "matrix": [6, 0], "x": 13, "y": 0 }, + { "label": "6,1", "matrix": [6, 1], "x": 14, "y": 0 }, + { "label": "6,3", "matrix": [6, 3], "x": 15.25, "y": 0 }, + { "label": "6,4", "matrix": [6, 4], "x": 16.25, "y": 0 }, + { "label": "6,5", "matrix": [6, 5], "x": 17.25, "y": 0 }, + { "label": "6,6", "matrix": [6, 6], "x": 18.25, "y": 0 }, + { "label": "6,7", "matrix": [6, 7], "x": 19.5, "y": 0 }, + { "label": "6,8", "matrix": [6, 8], "x": 20.75, "y": 0 }, + { "label": "6,9", "matrix": [6, 9], "x": 21.75, "y": 0 }, + { "label": "1,0", "matrix": [1, 0], "x": 0, "y": 1.5 }, + { "label": "1,1", "matrix": [1, 1], "x": 1, "y": 1.5 }, + { "label": "1,2", "matrix": [1, 2], "x": 2, "y": 1.5 }, + { "label": "1,3", "matrix": [1, 3], "x": 3, "y": 1.5 }, + { "label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1.5 }, + { "label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1.5 }, + { "label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1.5 }, + { "label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1.5 }, + { "label": "1,8", "matrix": [1, 8], "x": 8.5, "y": 1.5 }, + { "label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1.5 }, + { "label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1.5 }, + { "label": "7,0", "matrix": [7, 0], "x": 12.5, "y": 1.5 }, + { "label": "7,1", "matrix": [7, 1], "x": 13.5, "y": 1.5 }, + { "label": "7,2", "matrix": [7, 2], "x": 14.5, "y": 1.5 }, + { "label": "7,3", "matrix": [7, 3], "x": 15.5, "y": 1.5 }, + { "label": "7,4", "matrix": [7, 4], "x": 16.5, "y": 1.5 }, + { "label": "7,5", "matrix": [7, 5], "x": 17.5, "y": 1.5 }, + { "label": "7,6", "matrix": [7, 6], "x": 18.5, "y": 1.5 }, + { "label": "7,7", "matrix": [7, 7], "x": 19.5, "y": 1.5 }, + { "label": "7,8", "matrix": [7, 8], "x": 20.75, "y": 1.5 }, + { "label": "7,9", "matrix": [7, 9], "x": 21.75, "y": 1.5 }, + { "label": "2,0", "matrix": [2, 0], "x": 0, "y": 2.5 }, + { "label": "2,1", "matrix": [2, 1], "x": 1, "y": 2.5 }, + { "label": "2,2", "matrix": [2, 2], "x": 2, "y": 2.5 }, + { "label": "2,3", "matrix": [2, 3], "x": 3, "y": 2.5 }, + { "label": "2,4", "matrix": [2, 4], "w": 1.5, "x": 4.5, "y": 2.5 }, + { "label": "2,5", "matrix": [2, 5], "x": 6, "y": 2.5 }, + { "label": "2,6", "matrix": [2, 6], "x": 7, "y": 2.5 }, + { "label": "2,7", "matrix": [2, 7], "x": 8, "y": 2.5 }, + { "label": "2,8", "matrix": [2, 8], "x": 9, "y": 2.5 }, + { "label": "2,9", "matrix": [2, 9], "x": 10, "y": 2.5 }, + { "label": "8,0", "matrix": [8, 0], "x": 12, "y": 2.5 }, + { "label": "8,1", "matrix": [8, 1], "x": 13, "y": 2.5 }, + { "label": "8,2", "matrix": [8, 2], "x": 14, "y": 2.5 }, + { "label": "8,3", "matrix": [8, 3], "x": 15, "y": 2.5 }, + { "label": "8,4", "matrix": [8, 4], "x": 16, "y": 2.5 }, + { "label": "8,5", "matrix": [8, 5], "x": 17, "y": 2.5 }, + { "label": "8,6", "matrix": [8, 6], "x": 18, "y": 2.5 }, + { "label": "8,7", "matrix": [8, 7], "w": 1.5, "x": 19, "y": 2.5 }, + { "label": "8,8", "matrix": [8, 8], "x": 20.75, "y": 2.5 }, + { "label": "8,9", "matrix": [8, 9], "x": 21.75, "y": 2.5 }, + { "label": "3,0", "matrix": [3, 0], "x": 0, "y": 3.5 }, + { "label": "3,1", "matrix": [3, 1], "x": 1, "y": 3.5 }, + { "label": "3,2", "matrix": [3, 2], "x": 2, "y": 3.5 }, + { "label": "3,3", "matrix": [3, 3], "x": 3, "y": 3.5 }, + { "label": "3,4", "matrix": [3, 4], "w": 1.75, "x": 4.5, "y": 3.5 }, + { "label": "3,5", "matrix": [3, 5], "x": 6.25, "y": 3.5 }, + { "label": "3,6", "matrix": [3, 6], "x": 7.25, "y": 3.5 }, + { "label": "3,7", "matrix": [3, 7], "x": 8.25, "y": 3.5 }, + { "label": "3,8", "matrix": [3, 8], "x": 9.25, "y": 3.5 }, + { "label": "3,9", "matrix": [3, 9], "x": 10.25, "y": 3.5 }, + { "label": "9,0", "matrix": [9, 0], "x": 12.25, "y": 3.5 }, + { "label": "9,1", "matrix": [9, 1], "x": 13.25, "y": 3.5 }, + { "label": "9,2", "matrix": [9, 2], "x": 14.25, "y": 3.5 }, + { "label": "9,3", "matrix": [9, 3], "x": 15.25, "y": 3.5 }, + { "label": "9,4", "matrix": [9, 4], "x": 16.25, "y": 3.5 }, + { "label": "9,5", "matrix": [9, 5], "x": 17.25, "y": 3.5 }, + { "label": "9,6", "matrix": [9, 6], "x": 18.25, "y": 3.5 }, + { "label": "9,7", "matrix": [9, 7], "w": 1.25, "x": 19.25, "y": 3.5 }, + { "label": "9,8", "matrix": [9, 8], "x": 20.75, "y": 3.5 }, + { "label": "9,9", "matrix": [9, 9], "x": 21.75, "y": 3.5 }, + { "label": "4,0", "matrix": [4, 0], "x": 0, "y": 4.5 }, + { "label": "4,1", "matrix": [4, 1], "x": 1, "y": 4.5 }, + { "label": "4,2", "matrix": [4, 2], "x": 2, "y": 4.5 }, + { "label": "4,3", "matrix": [4, 3], "x": 3, "y": 4.5 }, + { "label": "4,4", "matrix": [4, 4], "w": 1.25, "x": 4.5, "y": 4.5 }, + { "label": "4,5", "matrix": [4, 5], "x": 5.75, "y": 4.5 }, + { "label": "4,6", "matrix": [4, 6], "x": 6.75, "y": 4.5 }, + { "label": "4,7", "matrix": [4, 7], "x": 7.75, "y": 4.5 }, + { "label": "4,8", "matrix": [4, 8], "x": 8.75, "y": 4.5 }, + { "label": "4,9", "matrix": [4, 9], "x": 9.75, "y": 4.5 }, + { "label": "4,10", "matrix": [4, 10], "x": 10.75, "y": 4.5 }, + { "label": "10,1", "matrix": [10, 1], "x": 12.75, "y": 4.5 }, + { "label": "10,1", "matrix": [10, 2], "x": 13.75, "y": 4.5 }, + { "label": "10,2", "matrix": [10, 3], "x": 14.75, "y": 4.5 }, + { "label": "10,3", "matrix": [10, 4], "x": 15.75, "y": 4.5 }, + { "label": "10,4", "matrix": [10, 5], "x": 16.75, "y": 4.5 }, + { "label": "10,6", "matrix": [10, 6], "w": 1.75, "x": 17.75, "y": 4.5 }, + { "label": "10,7", "matrix": [10, 7], "x": 19.5, "y": 4.5 }, + { "label": "10,8", "matrix": [10, 8], "x": 20.75, "y": 4.75 }, + { "label": "5.0", "matrix": [5, 0], "x": 0, "y": 5.5 }, + { "label": "5,1", "matrix": [5, 1], "x": 1, "y": 5.5 }, + { "label": "5,2", "matrix": [5, 2], "x": 2, "y": 5.5 }, + { "label": "5,3", "matrix": [5, 3], "x": 3, "y": 5.5 }, + { "label": "5,4", "matrix": [5, 4], "w": 1.25, "x": 4.5, "y": 5.5 }, + { "label": "5,5", "matrix": [5, 5], "w": 1.25, "x": 5.75, "y": 5.5 }, + { "label": "5,7", "matrix": [5, 7], "w": 1.25, "x": 7, "y": 5.5 }, + { "label": "5,8", "matrix": [5, 8], "x": 8.25, "y": 5.5 }, + { "label": "5,9", "matrix": [5, 9], "w": 2.25, "x": 9.25, "y": 5.5 }, + { "label": "11,2", "matrix": [11, 2], "w": 2.25, "x": 12.5, "y": 5.5 }, + { "label": "11,3", "matrix": [11, 3], "x": 14.75, "y": 5.5 }, + { "label": "11,4", "matrix": [11, 4], "w": 1.25, "x": 15.75, "y": 5.5 }, + { "label": "11,5", "matrix": [11, 5], "w": 1.25, "x": 17, "y": 5.5 }, + { "label": "11,6", "matrix": [11, 6], "w": 1.25, "x": 18.25, "y": 5.5 }, + { "label": "11,7", "matrix": [11, 7], "x": 19.75, "y": 5.75 }, + { "label": "11,8", "matrix": [11, 8], "x": 20.75, "y": 5.75 }, + { "label": "11,9", "matrix": [11, 9], "x": 21.75, "y": 5.75 } + ] + } + } +} diff --git a/keyboards/viktus/sp111_v2/keymaps/default/keymap.c b/keyboards/viktus/sp111_v2/keymaps/default/keymap.c new file mode 100644 index 0000000000..ac1b84e199 --- /dev/null +++ b/keyboards/viktus/sp111_v2/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +// Copyright 2023 BlindAssassin111 (@blindassassin111) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌──┐┌──┐┌──┐┌──┐ ┌──┐ ┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐ ┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐ ┌──┐ ┌──┐┌──┐ + * │0A││0B││0C││0D│ │0E│ │0F││0G││0H││0I│ │0J││0K│ │6A││6B│ │6D││6E││6F││6G│ │6H│ │6I││6J│ + * └──┘└──┘└──┘└──┘ └──┘ └──┘└──┘└──┘└──┘ └──┘└──┘ └──┘└──┘ └──┘└──┘└──┘└──┘ └──┘ └──┘└──┘ + * ┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐ + * │1A││1B││1C││1D│ │1E││1F││1G││1H││1I││1J││1K│ │7A││7B││7C││7D││7E││7F││7G││7H│ │7I││7J│ + * └──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘ └──┘└──┘ + * ┌──┐┌──┐┌──┐┌──┐ ┌────┐┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌────┐ ┌──┐┌──┐ + * │2A││2B││2C││2D│ │2E ││2F││2G││2H││2I││2J│ │8A││8B││8C││8D││8E││8F││8G││8H │ │8I││8J│ + * └──┘└──┘└──┘└──┘ └────┘└──┘└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘└──┘└──┘└────┘ └──┘└──┘ + * ┌──┐┌──┐┌──┐┌──┐ ┌─────┐┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌───┐ ┌──┐┌──┐ + * │3A││3B││3C││3D│ │3E ││3F││3G││3H││3I││3J│ │9A││9B││9C││9D││9E││9F││9G││9H │ │9I││9J│ + * └──┘└──┘└──┘└──┘ └─────┘└──┘└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘└──┘└──┘└───┘ └──┘└──┘ + * ┌──┐┌──┐┌──┐┌──┐ ┌───┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌─────┐┌──┐ + * │4A││4B││4C││4D│ │4E ││4F││4G││4H││4I││4J││4K│ │AB││AC││AD││AE││AF││AG ││AH│ ┌──┐ + * └──┘└──┘└──┘└──┘ └───┘└──┘└──┘└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘└─────┘└──┘ │AI│ + * ┌──┐┌──┐┌──┐┌──┐ ┌───┐┌───┐┌───┐┌──┐┌───────┐ ┌───────┐┌──┐┌───┐┌───┐┌───┐ └──┘ + * │5A││5B││5C││5D│ │5E ││5F ││5H ││5I││5J │ │BC ││BD││BE ││BF ││BG │ ┌──┐┌──┐┌──┐ + * └──┘└──┘└──┘└──┘ └───┘└───┘└───┘└──┘└───────┘ └───────┘└──┘└───┘└───┘└───┘ │BH││BI││BJ│ + * └──┘└──┘└──┘ + */ + [_BASE] = LAYOUT( + KC_MUTE,KC_MPRV,KC_MPLY,KC_MNXT, KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, + KC_NUM, KC_PSLS,KC_PAST,KC_PMNS, KC_GRV, 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_BSPC, KC_DEL, KC_HOME, KC_INS, + KC_P7, KC_P8, KC_P9, KC_PPLS, 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_END, KC_DEL, + KC_P4, KC_P5, KC_P6, KC_PEQL, 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_PGUP, KC_PGDN, + KC_P1, KC_P2, KC_P3, KC_PENT, 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_RSFT, MO(_FN), KC_UP, + KC_P0, KC_P0, KC_P0, KC_PDOT, KC_LCTL, KC_LGUI, KC_LALT, KC_MUTE, KC_SPC, KC_SPC, KC_APP, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [_FN] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) +}; diff --git a/keyboards/viktus/sp111_v2/keymaps/via/config.h b/keyboards/viktus/sp111_v2/keymaps/via/config.h new file mode 100644 index 0000000000..917fe0c8bb --- /dev/null +++ b/keyboards/viktus/sp111_v2/keymaps/via/config.h @@ -0,0 +1,6 @@ +// Copyright 2023 BlindAssassin111 (@blindassassin111) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/viktus/sp111_v2/keymaps/via/keymap.c b/keyboards/viktus/sp111_v2/keymaps/via/keymap.c new file mode 100644 index 0000000000..57e25720f9 --- /dev/null +++ b/keyboards/viktus/sp111_v2/keymaps/via/keymap.c @@ -0,0 +1,22 @@ +// Copyright 2023 BlindAssassin111 (@blindassassin111) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_MUTE,KC_MPRV,KC_MPLY,KC_MNXT, KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, + KC_NUM, KC_PSLS,KC_PAST,KC_PMNS, KC_GRV, 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_BSPC, KC_BSPC, KC_HOME, KC_INS, + KC_P7, KC_P8, KC_P9, KC_PMNS, 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_END, KC_DEL, + KC_P4, KC_P5, KC_P6, KC_PPLS, 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_PGUP, KC_PGDN, + KC_P1, KC_P2, KC_P3, KC_PPLS, 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_RSFT, MO(1), KC_UP, + KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_LCTL, KC_LGUI, KC_LALT, KC_MUTE, KC_SPC, KC_SPC, KC_APP, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) +}; diff --git a/keyboards/viktus/sp111_v2/keymaps/via/rules.mk b/keyboards/viktus/sp111_v2/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/viktus/sp111_v2/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/viktus/sp111_v2/readme.md b/keyboards/viktus/sp111_v2/readme.md new file mode 100644 index 0000000000..c3767ba02b --- /dev/null +++ b/keyboards/viktus/sp111_v2/readme.md @@ -0,0 +1,27 @@ +# Viktus Styrka v2 + +![viktus/sp111_v2](https://i.imgur.com/ApgZRhgh.png) + +A split southpaw fullsize-esque layout. Round 2 of the board has RGB LED indicators. + +* Keyboard Maintainer: [BlindAssassin111](https://github.com/blindassassin111) +* Hardware Supported: SP-111 round 2 PCBs only +* Hardware Availability: Space Cables, Ashkeebs, protoTypist, mykeyboard, ilumkb, SwitchKeys + +Make example for this keyboard (after setting up your build environment): + + make viktus/sp111_v2:default + +Flashing example for this keyboard: + + make viktus/sp111_v2:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/viktus/sp111_v2/rules.mk b/keyboards/viktus/sp111_v2/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/viktus/sp111_v2/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/viktus/sp111_v2/sp111_v2.c b/keyboards/viktus/sp111_v2/sp111_v2.c new file mode 100644 index 0000000000..96a9aaa5fe --- /dev/null +++ b/keyboards/viktus/sp111_v2/sp111_v2.c @@ -0,0 +1,12 @@ +// Copyright 2023 BlindAssassin111 (@blindassassin111) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +void keyboard_pre_init_kb(void) { + // enable built in pullups to avoid timeouts when right hand not connected + setPinInputHigh(D0); + setPinInputHigh(D1); + + keyboard_pre_init_user(); +} From a58f86812c47b1227e72f937dc165bd211e69de0 Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Thu, 5 Oct 2023 12:02:26 +0800 Subject: [PATCH 234/496] [Keyboard] Add qwertyqop60hs (#22164) Co-authored-by: Duncan Sutherland --- keyboards/zeix/qwertyqop60hs/config.h | 20 + keyboards/zeix/qwertyqop60hs/info.json | 452 ++++++++++++++++++ .../qwertyqop60hs/keymaps/default/keymap.c | 33 ++ .../zeix/qwertyqop60hs/keymaps/via/keymap.c | 33 ++ .../zeix/qwertyqop60hs/keymaps/via/rules.mk | 1 + .../zeix/qwertyqop60hs/matrix_diagram.md | 24 + keyboards/zeix/qwertyqop60hs/readme.md | 27 ++ keyboards/zeix/qwertyqop60hs/rules.mk | 1 + 8 files changed, 591 insertions(+) create mode 100644 keyboards/zeix/qwertyqop60hs/config.h create mode 100644 keyboards/zeix/qwertyqop60hs/info.json create mode 100644 keyboards/zeix/qwertyqop60hs/keymaps/default/keymap.c create mode 100644 keyboards/zeix/qwertyqop60hs/keymaps/via/keymap.c create mode 100644 keyboards/zeix/qwertyqop60hs/keymaps/via/rules.mk create mode 100644 keyboards/zeix/qwertyqop60hs/matrix_diagram.md create mode 100644 keyboards/zeix/qwertyqop60hs/readme.md create mode 100644 keyboards/zeix/qwertyqop60hs/rules.mk diff --git a/keyboards/zeix/qwertyqop60hs/config.h b/keyboards/zeix/qwertyqop60hs/config.h new file mode 100644 index 0000000000..77970ce4d3 --- /dev/null +++ b/keyboards/zeix/qwertyqop60hs/config.h @@ -0,0 +1,20 @@ +/* +Copyright 2023 zeix (@itsme-zeix) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/zeix/qwertyqop60hs/info.json b/keyboards/zeix/qwertyqop60hs/info.json new file mode 100644 index 0000000000..8a3e06f2eb --- /dev/null +++ b/keyboards/zeix/qwertyqop60hs/info.json @@ -0,0 +1,452 @@ +{ + "keyboard_name": "QQ 60% Hotswap", + "maintainer": "itsme-zeix", + "manufacturer": "qwertyqop", + "processor": "RP2040", + "bootloader": "rp2040", + "usb": { + "vid": "0x4C27", + "pid": "0x2900", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "rows": ["GP6","GP5","GP4","GP0","GP12"], + "cols": ["GP28","GP27","GP26","GP25","GP24","GP23","GP22","GP3","GP2","GP1","GP8","GP9","GP10","GP11","GP7"] + }, + "community_layouts": [ + "60_ansi", + "60_ansi_split_bs_rshift", + "60_ansi_tsangan", + "60_tsangan_hhkb", + "60_hhkb" + ], + "layouts": { + "LAYOUT_all": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "x": 13, "y": 0 }, + { "matrix": [0, 14], "x": 14, "y": 0 }, + + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + + { "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1.25, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, + { "matrix": [3, 13], "x": 14, "y": 3 }, + + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_ansi": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 14], "x": 13, "y": 0, "w": 2 }, + + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + + { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 12], "w": 2.75, "x": 12.25, "y": 3 }, + + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "x": 13, "y": 0 }, + { "matrix": [0, 14], "x": 14, "y": 0 }, + + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + + { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, + { "matrix": [3, 13], "x": 14, "y": 3 }, + + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 14], "x": 13, "y": 0, "w": 2 }, + + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + + { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 12], "w": 2.75, "x": 12.25, "y": 3 }, + + { "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 7, "x": 4, "y": 4 }, + { "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "matrix": [4, 12], "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 } + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "x": 13, "y": 0 }, + { "matrix": [0, 14], "x": 14, "y": 0 }, + + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + + { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, + { "matrix": [3, 13], "x": 14, "y": 3 }, + + { "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 7, "x": 4, "y": 4 }, + { "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "matrix": [4, 12], "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 } + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "x": 13, "y": 0 }, + { "matrix": [0, 14], "x": 14, "y": 0 }, + + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + + { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, + { "matrix": [3, 13], "x": 14, "y": 3 }, + + { "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 7, "x": 4, "y": 4 }, + { "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "matrix": [4, 12], "x": 12.5, "y": 4 } + ] + } + } +} diff --git a/keyboards/zeix/qwertyqop60hs/keymaps/default/keymap.c b/keyboards/zeix/qwertyqop60hs/keymaps/default/keymap.c new file mode 100644 index 0000000000..14d759965a --- /dev/null +++ b/keyboards/zeix/qwertyqop60hs/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* +Copyright 2023 zeix (@itsme-zeix) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT_all( + KC_ESC, 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_BSLS, KC_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, 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_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), + +[1] = LAYOUT_all( + KC_TRNS, 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_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_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), +}; diff --git a/keyboards/zeix/qwertyqop60hs/keymaps/via/keymap.c b/keyboards/zeix/qwertyqop60hs/keymaps/via/keymap.c new file mode 100644 index 0000000000..14d759965a --- /dev/null +++ b/keyboards/zeix/qwertyqop60hs/keymaps/via/keymap.c @@ -0,0 +1,33 @@ +/* +Copyright 2023 zeix (@itsme-zeix) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT_all( + KC_ESC, 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_BSLS, KC_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, 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_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), + +[1] = LAYOUT_all( + KC_TRNS, 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_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_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), +}; diff --git a/keyboards/zeix/qwertyqop60hs/keymaps/via/rules.mk b/keyboards/zeix/qwertyqop60hs/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/zeix/qwertyqop60hs/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/zeix/qwertyqop60hs/matrix_diagram.md b/keyboards/zeix/qwertyqop60hs/matrix_diagram.md new file mode 100644 index 0000000000..37644edc7f --- /dev/null +++ b/keyboards/zeix/qwertyqop60hs/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for Zeix Qwertyqop60hs + +``` + ┌───────┐ + 2u Backspace │0E │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ +│40 │41 │42 │46 │4A │4B │4C │4D │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +┌────────┐ ┌──────────┐ +│30 │ 2.25u LShift 2.75u RShift │3C │ +└────────┘ └──────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│40 │41 │42 │46 │4B │4C │4D │ Tsangan/WKL/HHKB +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` diff --git a/keyboards/zeix/qwertyqop60hs/readme.md b/keyboards/zeix/qwertyqop60hs/readme.md new file mode 100644 index 0000000000..1a36951fd1 --- /dev/null +++ b/keyboards/zeix/qwertyqop60hs/readme.md @@ -0,0 +1,27 @@ +# qwertyqop hotswap 60% PCB + +![qwertyqop hotswap 60% PCB](https://i.imgur.com/OJXzZSEh.jpg) + +A generic hotswap 60% PCB with cutouts akin to h60 and 2 positions for JST port. + +* Keyboard Maintainer: [Zeix](https://github.com/itsme-zeix) +* Hardware Supported: Qwertyqop QQ60 Hotswap PCB Rev1 +* Hardware Availability: https://qwertyqop.com/products/60-pcb-1 + +Make example for this keyboard (after setting up your build environment): + + make zeix/qwertyqop60hs:default + +Flashing example for this keyboard: + + make zeix/qwertyqop60hs:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Press the 'USB_BOOT' button and plug in keyboard or briefly short the `RESET` and `GND` pads on the SWD header twice +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/zeix/qwertyqop60hs/rules.mk b/keyboards/zeix/qwertyqop60hs/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/zeix/qwertyqop60hs/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file From d187a0a3af4c73e7680098a6badc24c30457727c Mon Sep 17 00:00:00 2001 From: ClicketySplit <101202583+ClicketySplit@users.noreply.github.com> Date: Wed, 4 Oct 2023 22:37:02 -0600 Subject: [PATCH 235/496] Leeloo revision 2 updates (#21671) Co-authored-by: Duncan Sutherland Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis Co-authored-by: Ryan --- keyboards/clickety_split/leeloo/info.json | 143 +++++++++--------- .../leeloo/keymaps/default/config.h | 38 +++-- .../leeloo/keymaps/default/keymap.c | 26 +++- .../leeloo/keymaps/default/rules.mk | 1 - keyboards/clickety_split/leeloo/leeloo.c | 28 ++-- keyboards/clickety_split/leeloo/readme.md | 23 ++- .../clickety_split/leeloo/rev1/info.json | 6 + keyboards/clickety_split/leeloo/rev2/config.h | 22 +++ .../clickety_split/leeloo/rev2/info.json | 102 +++++++++++++ keyboards/clickety_split/leeloo/rev2/rules.mk | 1 + keyboards/clickety_split/leeloo/rules.mk | 17 +-- 11 files changed, 284 insertions(+), 123 deletions(-) delete mode 100644 keyboards/clickety_split/leeloo/keymaps/default/rules.mk create mode 100644 keyboards/clickety_split/leeloo/rev1/info.json create mode 100644 keyboards/clickety_split/leeloo/rev2/config.h create mode 100644 keyboards/clickety_split/leeloo/rev2/info.json create mode 100644 keyboards/clickety_split/leeloo/rev2/rules.mk diff --git a/keyboards/clickety_split/leeloo/info.json b/keyboards/clickety_split/leeloo/info.json index a2510f9f7f..c83fedeb28 100644 --- a/keyboards/clickety_split/leeloo/info.json +++ b/keyboards/clickety_split/leeloo/info.json @@ -1,24 +1,31 @@ { - "keyboard_name": "Leeloo", "manufacturer": "Clickety Split Ltd", "url": "https://clicketysplit.ca/pages/leeloo", "maintainer": "ClicketySplit", "usb": { "vid": "0x4013", - "pid": "0x2022", - "device_version": "0.1.3" - }, - "matrix_pins": { - "cols": ["F6", "F7", "B1", "B3", "B2", "B6"], - "rows": ["C6", "D7", "E6", "B4", "B5"] + "pid": "0x2022" }, "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["F6", "F7", "B1", "B3", "B2", "B6"], + "rows": ["C6", "D7", "E6", "B4", "B5"] + }, + "build": { + "lto": true + }, + "features": { + "extrakey": true, + "oled": true + }, "encoder": { + "enabled": true, "rotary": [ {"pin_a": "F5", "pin_b": "F4"} ] }, "split": { + "enabled": true, "soft_serial_pin": "D2", "encoder": { "right": { @@ -28,81 +35,77 @@ } } }, - "tapping": { - "term": 100 - }, - "processor": "atmega32u4", - "bootloader": "caterina", + "development_board": "promicro", "layouts": { "LAYOUT": { "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.5}, - {"matrix": [0, 1], "x": 1, "y": 0.4}, - {"matrix": [0, 2], "x": 2, "y": 0.2}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0.2}, - {"matrix": [0, 5], "x": 5, "y": 0.4}, + {"label":"Esc", "matrix": [0, 0], "x": 0.0, "y":0.5}, + {"label":"1", "matrix": [0, 1], "x": 1.0, "y":0.4}, + {"label":"2", "matrix": [0, 2], "x": 2.0, "y":0.2}, + {"label":"3", "matrix": [0, 3], "x": 3.0, "y":0.0}, + {"label":"4", "matrix": [0, 4], "x": 4.0, "y":0.2}, + {"label":"5", "matrix": [0, 5], "x": 5.0, "y":0.4}, - {"matrix": [5, 5], "x": 9, "y": 0.4}, - {"matrix": [5, 4], "x": 10, "y": 0.2}, - {"matrix": [5, 3], "x": 11, "y": 0}, - {"matrix": [5, 2], "x": 12, "y": 0.2}, - {"matrix": [5, 1], "x": 13, "y": 0.4}, - {"matrix": [5, 0], "x": 14, "y": 0.5}, + {"label":"6", "matrix": [5, 5], "x": 9.0, "y":0.4}, + {"label":"7", "matrix": [5, 4], "x": 10.0, "y":0.2}, + {"label":"8", "matrix": [5, 3], "x": 11.0, "y":0.0}, + {"label":"9", "matrix": [5, 2], "x": 12.0, "y":0.2}, + {"label":"0", "matrix": [5, 1], "x": 13.0, "y":0.4}, + {"label":"BSL", "matrix": [5, 0], "x": 14.0, "y":0.5}, - {"matrix": [1, 0], "x": 0, "y": 1.5}, - {"matrix": [1, 1], "x": 1, "y": 1.4}, - {"matrix": [1, 2], "x": 2, "y": 1.2}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1.2}, - {"matrix": [1, 5], "x": 5, "y": 1.4}, + {"label":"TAB", "matrix": [1, 0], "x": 0.0, "y":1.5}, + {"label":"Q", "matrix": [1, 1], "x": 1.0, "y":1.4}, + {"label":"W", "matrix": [1, 2], "x": 2.0, "y":1.2}, + {"label":"E", "matrix": [1, 3], "x": 3.0, "y":1.0}, + {"label":"R", "matrix": [1, 4], "x": 4.0, "y":1.2}, + {"label":"T", "matrix": [1, 5], "x": 5.0, "y":1.4}, - {"matrix": [6, 5], "x": 9, "y": 1.4}, - {"matrix": [6, 4], "x": 10, "y": 1.2}, - {"matrix": [6, 3], "x": 11, "y": 1}, - {"matrix": [6, 2], "x": 12, "y": 1.2}, - {"matrix": [6, 1], "x": 13, "y": 1.4}, - {"matrix": [6, 0], "x": 14, "y": 1.5}, + {"label":"Y", "matrix": [6, 5], "x": 9.0, "y":1.4}, + {"label":"U", "matrix": [6, 4], "x": 10.0, "y":1.2}, + {"label":"I", "matrix": [6, 3], "x": 11.0, "y":1.0}, + {"label":"O", "matrix": [6, 2], "x": 12.0, "y":1.2}, + {"label":"P", "matrix": [6, 1], "x": 13.0, "y":1.4}, + {"label":"GRV", "matrix": [6, 0], "x": 14.0, "y":1.5}, - {"matrix": [2, 0], "x": 0, "y": 2.5}, - {"matrix": [2, 1], "x": 1, "y": 2.4}, - {"matrix": [2, 2], "x": 2, "y": 2.2}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2.2}, - {"matrix": [2, 5], "x": 5, "y": 2.4}, + {"label":"CAPS", "matrix": [2, 0], "x": 0.0, "y":2.5}, + {"label":"A", "matrix": [2, 1], "x": 1.0, "y":2.4}, + {"label":"S", "matrix": [2, 2], "x": 2.0, "y":2.2}, + {"label":"D", "matrix": [2, 3], "x": 3.0, "y":2.0}, + {"label":"F", "matrix": [2, 4], "x": 4.0, "y":2.2}, + {"label":"G", "matrix": [2, 5], "x": 5.0, "y":2.4}, - {"matrix": [7, 5], "x": 9, "y": 2.4}, - {"matrix": [7, 4], "x": 10, "y": 2.2}, - {"matrix": [7, 3], "x": 11, "y": 2}, - {"matrix": [7, 2], "x": 12, "y": 2.2}, - {"matrix": [7, 1], "x": 13, "y": 2.4}, - {"matrix": [7, 0], "x": 14, "y": 2.5}, + {"label":"H", "matrix": [7, 5], "x": 9.0, "y":2.4}, + {"label":"J", "matrix": [7, 4], "x": 10.0, "y":2.2}, + {"label":"K", "matrix": [7, 3], "x": 11.0, "y":2.0}, + {"label":"L", "matrix": [7, 2], "x": 12.0, "y":2.2}, + {"label":";", "matrix": [7, 1], "x": 13.0, "y":2.4}, + {"label":"'", "matrix": [7, 0], "x": 14.0, "y":2.5}, - {"matrix": [3, 0], "x": 0, "y": 3.5}, - {"matrix": [3, 1], "x": 1, "y": 3.4}, - {"matrix": [3, 2], "x": 2, "y": 3.2}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3.2}, - {"matrix": [3, 5], "x": 5, "y": 3.4}, - {"matrix": [4, 5], "x": 6.25, "y": 3.4}, + {"label":"SFT", "matrix": [3, 0], "x": 0.0, "y":3.5}, + {"label":"Z", "matrix": [3, 1], "x": 1.0, "y":3.4}, + {"label":"X", "matrix": [3, 2], "x": 2.0, "y":3.2}, + {"label":"C", "matrix": [3, 3], "x": 3.0, "y":3.0}, + {"label":"V", "matrix": [3, 4], "x": 4.0, "y":3.2}, + {"label":"B", "matrix": [3, 5], "x": 5.0, "y":3.4}, + {"label":"GUI", "matrix": [4, 5], "x": 6.25, "y":3.4}, - {"matrix": [9, 5], "x": 7.75, "y": 3.4}, - {"matrix": [8, 5], "x": 9, "y": 3.4}, - {"matrix": [8, 4], "x": 10, "y": 3.2}, - {"matrix": [8, 3], "x": 11, "y": 3}, - {"matrix": [8, 2], "x": 12, "y": 3.2}, - {"matrix": [8, 1], "x": 13, "y": 3.4}, - {"matrix": [8, 0], "x": 14, "y": 3.5}, + {"label":"GUI", "matrix": [9, 5], "x": 7.75, "y":3.4}, + {"label":"N", "matrix": [8, 5], "x": 9.0, "y":3.4}, + {"label":"M", "matrix": [8, 4], "x": 10.0, "y":3.2}, + {"label":",", "matrix": [8, 3], "x": 11.0, "y":3.0}, + {"label":".", "matrix": [8, 2], "x": 12.0, "y":3.2}, + {"label":"/", "matrix": [8, 1], "x": 13.0, "y":3.4}, + {"label":"SFT", "matrix": [8, 0], "x": 14.0, "y":3.5}, - {"matrix": [4, 1], "x": 2.7, "y": 4.6}, - {"matrix": [4, 2], "x": 3.8, "y": 4.5}, - {"matrix": [4, 3], "x": 4.9, "y": 4.55}, - {"matrix": [4, 4], "x": 6.1, "y": 4.65}, + {"label":"ALT", "matrix": [4, 1], "x": 2.7, "y":4.6}, + {"label":"CTL", "matrix": [4, 2], "x": 3.8, "y":4.5}, + {"label":"ENT", "matrix": [4, 3], "x": 4.9, "y":4.55}, + {"label":"MINS", "matrix": [4, 4], "x": 6.1, "y":4.65}, - {"matrix": [9, 4], "x": 7.9, "y": 4.65}, - {"matrix": [9, 3], "x": 9.1, "y": 4.55}, - {"matrix": [9, 2], "x": 10.2, "y": 4.5}, - {"matrix": [9, 1], "x": 11.3, "y": 4.6} + {"label":"EQL", "matrix": [9, 4], "x": 7.9, "y":4.65}, + {"label":"SPC", "matrix": [9, 3], "x": 9.1, "y":4.55}, + {"label":"BSP", "matrix": [9, 2], "x": 10.2, "y":4.5}, + {"label":"DEL", "matrix": [9, 1], "x": 11.3, "y":4.6} ] } } diff --git a/keyboards/clickety_split/leeloo/keymaps/default/config.h b/keyboards/clickety_split/leeloo/keymaps/default/config.h index d0348d06ef..e41b3d34aa 100644 --- a/keyboards/clickety_split/leeloo/keymaps/default/config.h +++ b/keyboards/clickety_split/leeloo/keymaps/default/config.h @@ -1,5 +1,4 @@ -/* Copyright 2022 Clickety Split Ltd. - * https://clicketysplit.ca +/* Copyright 2023 Clickety Split Ltd. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,17 +16,30 @@ #pragma once -// Select hand configuration -// #define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -#ifdef TAPPING_TERM - #undef TAPPING_TERM - #define QUICK_TAP_TERM 0 - #define TAPPING_TERM 150 -#endif - // If rotary encoders are used, and they require more or less resolution/sensitivity // you may try increasing or decreasing the value. // #define ENCODER_RESOLUTION 2 + + #define RGB_MATRIX_KEYPRESSES // reacts to keypresses +// #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +// #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects + #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended + #define RGB_MATRIX_FRAMEBUFFER_EFFECTS + + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 115 // limits maximum brightness of LEDs to 150 out of 255. + // Higher may cause the controller to crash. + #define RGB_MATRIX_HUE_STEP 10 + #define RGB_MATRIX_SAT_STEP 10 + #define RGB_MATRIX_VAL_STEP 10 + #define RGB_MATRIX_SPD_STEP 10 + + +/* By default, the RGB_MATRIX effects are disabled. + * + * For a complete list, visit: https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects. + * Some of the effects take up a lot of memory, so you may need to manage the number of + * effects that are loaded at any given time. +*/ + #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS + #define ENABLE_RGB_MATRIX_SPLASH diff --git a/keyboards/clickety_split/leeloo/keymaps/default/keymap.c b/keyboards/clickety_split/leeloo/keymaps/default/keymap.c index bac722a7c3..6bf9824472 100644 --- a/keyboards/clickety_split/leeloo/keymaps/default/keymap.c +++ b/keyboards/clickety_split/leeloo/keymaps/default/keymap.c @@ -1,5 +1,4 @@ -/* Copyright 2022 Clickety Split Ltd. - * https://clicketysplit.ca +/* Copyright 2023 Clickety Split Ltd. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -92,23 +91,34 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------. ,-----------------------------------------. * | | | | | | | | | | | | | | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | | | | | | | | | | | | | + * | | | | | | | | | | +VOL | | | | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | | | | | |--------. ,-------| | | | | | | + * | | | | | | |--------. ,-------| | | -VOL | | | | * |------+------+------+------+------+------| | | |------+------+------+------+------+------| - * | | | | | | |--------| |-------| | | | | | | + * | | | | | | |--------| |-------| | MUTE | | | | | * `-----------------------------------------/ / \ \-----------------------------------------' * | LALT | LCTL | ENT | / MINS / \ EQL \ | SPC | BSPC | DEL | * | | | LOWR |/ RAISE / \RAISE \ | LOWR | | | * `-------------------------------' '------''-----------------------' + * + * NOTE: For Leeloo v1 the RGB Keycodes will not have any effect. + * */ [_ADJUST] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, + _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, KC_VOLD, _______, _______, _______, + _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; +/* Tri Layer + * When Lower and Raise are pressed at the same time, and wrapped with LT(), + * Adjust is activated with the following method. + */ +layer_state_t layer_state_set_user(layer_state_t state) { + state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); + return state; +} diff --git a/keyboards/clickety_split/leeloo/keymaps/default/rules.mk b/keyboards/clickety_split/leeloo/keymaps/default/rules.mk deleted file mode 100644 index 4da205a168..0000000000 --- a/keyboards/clickety_split/leeloo/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -LTO_ENABLE = yes diff --git a/keyboards/clickety_split/leeloo/leeloo.c b/keyboards/clickety_split/leeloo/leeloo.c index 864f31cbb7..3edfd9b328 100644 --- a/keyboards/clickety_split/leeloo/leeloo.c +++ b/keyboards/clickety_split/leeloo/leeloo.c @@ -1,5 +1,4 @@ -/* Copyright 2022 Clickety Split Ltd. - * https://clicketysplit.ca +/* Copyright 2023 Clickety Split Ltd. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -48,9 +47,20 @@ static void render_mod_status(uint8_t modifiers) { static void render_secondary_oled(void) { // Version Information - oled_write_P(PSTR("Leeloo\n\n"), false); +#if defined(KEYBOARD_clickety_split_leeloo_rev1) + oled_write_P(PSTR("Leeloo v1\n\n"), false); +#else + oled_write_P(PSTR("Leeloo v2\n\n"), false); +#endif + oled_write_P(PSTR("Firmware: "), false); - oled_write_P(PSTR("v1.0"), false); + +#if defined(KEYBOARD_clickety_split_leeloo_rev1) + oled_write_P(PSTR("v1.13"), false); +#else + oled_write_P(PSTR("v2.13"), false); +#endif + oled_write_P(PSTR("\n"), false); oled_write_P(PSTR("Clickety Split Ltd."), false); } @@ -58,7 +68,7 @@ static void render_secondary_oled(void) { static void render_status(void) { // Host Keyboard Layer Status switch (get_highest_layer(default_layer_state)) { - case _BASE: + case 0: oled_write_P(PSTR("QWERTY | "), false); break; } @@ -69,15 +79,15 @@ static void render_status(void) { oled_write_P(PSTR("Base \n"), false); break; - case _LOWER: + case 1: oled_write_P(PSTR("Lower \n"), false); break; - case _RAISE: + case 2: oled_write_P(PSTR("Raise \n"), false); break; - case _ADJUST: + case 3: oled_write_P(PSTR("Adjust \n"), false); break; @@ -128,4 +138,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } return true; } -#endif +#endif // ENCODER_ENABLE diff --git a/keyboards/clickety_split/leeloo/readme.md b/keyboards/clickety_split/leeloo/readme.md index f672294e14..3d42e04231 100644 --- a/keyboards/clickety_split/leeloo/readme.md +++ b/keyboards/clickety_split/leeloo/readme.md @@ -1,16 +1,25 @@ -# Leeloo +# Clickety Split | Leeloo v2 -![Leeloo](https://cdn.shopify.com/s/files/1/0599/3460/5491/files/Leeloo-rev1.0-w.jpg?v=1646798726) +![Leeloo v2](https://i.imgur.com/swPHS0Bh.jpg) -Leeloo is a 4x6x5m ortholinear split keyboard kit made and sold by Clickety Split Ltd. +Leeloo v2 is the evolution of Leeloo, which is a 4x6x5m ortholinear split keyboard designed, created, and sold by Clickety Split Ltd. * Keyboard Maintainer: [Clickety Split](https://github.com/ClicketySplit) -* Hardware Supported: Leeloo PCB rev1, Pro Micro, Elite-C -* Hardware Availability: [clicketysplit.ca](https://clicketysplit.ca/pages/leeloo) +* Hardware Supported: Leeloo PCB rev1/rev2, Pro Micro, Elite-C +* Hardware Availability: [clicketysplit.ca/pages/leeloo](https://clicketysplit.ca/pages/leeloo) -Make example, after setting up build environment: +# Leeloo + +![Leeloo](https://i.imgur.com/x1ew17Dh.jpg) + +The original design and release of Leeloo. + +# Sample Build Commands for Leeloo v1 and v2 + +Make example for this keyboard (after setting up your build environment): make clickety_split/leeloo/rev1:default + make clickety_split/leeloo/rev2: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). +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). \ No newline at end of file diff --git a/keyboards/clickety_split/leeloo/rev1/info.json b/keyboards/clickety_split/leeloo/rev1/info.json new file mode 100644 index 0000000000..e9396f3f81 --- /dev/null +++ b/keyboards/clickety_split/leeloo/rev1/info.json @@ -0,0 +1,6 @@ +{ + "keyboard_name": "Leeloo v1", + "usb": { + "device_version": "0.1.3" + } +} diff --git a/keyboards/clickety_split/leeloo/rev2/config.h b/keyboards/clickety_split/leeloo/rev2/config.h new file mode 100644 index 0000000000..2aa1acd972 --- /dev/null +++ b/keyboards/clickety_split/leeloo/rev2/config.h @@ -0,0 +1,22 @@ +/* Copyright 2023 Clickety Split Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +# define RGB_MATRIX_LED_COUNT 74 +# define RGB_MATRIX_SPLIT {37, 37} +# define RGB_DISABLE_WHEN_USB_SUSPENDED +# define SPLIT_TRANSPORT_MIRROR diff --git a/keyboards/clickety_split/leeloo/rev2/info.json b/keyboards/clickety_split/leeloo/rev2/info.json new file mode 100644 index 0000000000..7fc4792f21 --- /dev/null +++ b/keyboards/clickety_split/leeloo/rev2/info.json @@ -0,0 +1,102 @@ +{ + "keyboard_name": "Leeloo v2", + "usb": { + "device_version": "0.2.0" + }, + "features": { + "rgb_matrix": true + }, + "split": { + "transport": { + "sync_matrix_state": true + } + }, + "rgblight": { + "led_count": 74, + "split": true, + "split_count": [37, 37], + "max_brightness": 115 + }, + "ws2812": { + "pin": "D3" + }, + "rgb_matrix": { + "driver": "ws2812", + "layout": [ + {"flags": 2, "x": 86, "y": 8}, // L LU01 + {"flags": 2, "x": 52, "y": 8}, // L LU02 + {"flags": 2, "x": 17, "y": 8}, // L LU03 + {"flags": 2, "x": 0, "y": 24}, // L LU04 + {"flags": 2, "x": 0, "y": 40}, // L LU05 + {"flags": 2, "x": 17, "y": 56}, // L LU06 + {"flags": 2, "x": 52, "y": 56}, // L LU07 + {"flags": 2, "x": 86, "y": 56}, // L LU08 + {"flags": 4, "matrix": [4, 5], "x": 103, "y": 48}, // L LB09 | SW29 + {"flags": 4, "matrix": [4, 4], "x": 103, "y": 64}, // L LB10 | SW28 + {"flags": 4, "matrix": [4, 3], "x": 86, "y": 64}, // L LB11 | SW27 + {"flags": 4, "matrix": [3, 5], "x": 86, "y": 48}, // L LB12 | SW24 + {"flags": 4, "matrix": [2, 5], "x": 86, "y": 32}, // L LB13 | SW18 + {"flags": 4, "matrix": [1, 5], "x": 86, "y": 15}, // L LB14 | SW12 + {"flags": 4, "matrix": [0, 5], "x": 86, "y": 0}, // L LB15 | SW6 + {"flags": 4, "matrix": [0, 4], "x": 69, "y": 0}, // L LB16 | SW5 + {"flags": 4, "matrix": [1, 4], "x": 69, "y": 16}, // L LB17 | SW11 + {"flags": 4, "matrix": [2, 4], "x": 69, "y": 32}, // L LB18 | SW17 + {"flags": 4, "matrix": [3, 4], "x": 69, "y": 48}, // L LB19 | SW23 + {"flags": 4, "matrix": [4, 2], "x": 69, "y": 64}, // L LB20 | SW26 + {"flags": 4, "matrix": [4, 1], "x": 52, "y": 64}, // L LB21 | SW25 + {"flags": 4, "matrix": [3, 3], "x": 52, "y": 48}, // L LB22 | SW22 + {"flags": 4, "matrix": [2, 3], "x": 52, "y": 32}, // L LB23 | SW16 + {"flags": 4, "matrix": [1, 3], "x": 52, "y": 16}, // L LB24 | SW10 + {"flags": 4, "matrix": [0, 3], "x": 52, "y": 0}, // L LB25 | SW4 + {"flags": 4, "matrix": [0, 2], "x": 34, "y": 0}, // L LB26 | SW3 + {"flags": 4, "matrix": [1, 2], "x": 34, "y": 16}, // L LB27 | SW9 + {"flags": 4, "matrix": [2, 2], "x": 34, "y": 32}, // L LB28 | SW15 + {"flags": 4, "matrix": [3, 2], "x": 34, "y": 48}, // L LB29 | SW21 + {"flags": 4, "matrix": [3, 1], "x": 17, "y": 48}, // L LB30 | SW20 + {"flags": 4, "matrix": [2, 1], "x": 17, "y": 32}, // L LB31 | SW14 + {"flags": 4, "matrix": [1, 1], "x": 17, "y": 16}, // L LB32 | SW8 + {"flags": 4, "matrix": [0, 1], "x": 17, "y": 0}, // L LB33 | SW2 + {"flags": 4, "matrix": [0, 0], "x": 0, "y": 0}, // L LB34 | SW1 + {"flags": 4, "matrix": [1, 0], "x": 0, "y": 16}, // L LB35 | SW7 + {"flags": 4, "matrix": [2, 0], "x": 0, "y": 32}, // L LB36 | SW13 + {"flags": 4, "matrix": [3, 0], "x": 0, "y": 48}, // L LB37 | SW19 + {"flags": 2, "x": 137, "y": 8}, // R LU38 + {"flags": 2, "x": 172, "y": 8}, // R LU39 + {"flags": 2, "x": 206, "y": 8}, // R LU40 + {"flags": 2, "x": 224, "y": 24}, // R LU41 + {"flags": 2, "x": 224, "y": 40}, // R LU42 + {"flags": 2, "x": 206, "y": 56}, // R LU43 + {"flags": 2, "x": 172, "y": 56}, // R LU44 + {"flags": 2, "x": 137, "y": 56}, // R LU45 + {"flags": 4, "matrix": [9, 5], "x": 120, "y": 48}, // R LB46 | SW58 + {"flags": 4, "matrix": [9, 4], "x": 120, "y": 64}, // R LB47 | SW57 + {"flags": 4, "matrix": [9, 3], "x": 137, "y": 64}, // R LB48 | SW56 + {"flags": 4, "matrix": [8, 5], "x": 137, "y": 48}, // R LB49 | SW53 + {"flags": 4, "matrix": [7, 5], "x": 137, "y": 32}, // R LB50 | SW47 + {"flags": 4, "matrix": [6, 5], "x": 137, "y": 15}, // R LB51 | SW41 + {"flags": 4, "matrix": [5, 5], "x": 137, "y": 0}, // R LB52 | SW35 + {"flags": 4, "matrix": [5, 4], "x": 155, "y": 0}, // R LB53 | SW34 + {"flags": 4, "matrix": [6, 4], "x": 155, "y": 16}, // R LB54 | SW40 + {"flags": 4, "matrix": [7, 4], "x": 155, "y": 32}, // R LB55 | SW46 + {"flags": 4, "matrix": [8, 4], "x": 155, "y": 48}, // R LB56 | SW52 + {"flags": 4, "matrix": [9, 2], "x": 155, "y": 64}, // R LB57 | SW55 + {"flags": 4, "matrix": [9, 1], "x": 172, "y": 64}, // R LB58 | SW54 + {"flags": 4, "matrix": [8, 3], "x": 172, "y": 48}, // R LB59 | SW51 + {"flags": 4, "matrix": [7, 3], "x": 172, "y": 32}, // R LB60 | SW45 + {"flags": 4, "matrix": [6, 3], "x": 172, "y": 16}, // R LB61 | SW39 + {"flags": 4, "matrix": [5, 3], "x": 172, "y": 0}, // R LB62 | SW33 + {"flags": 4, "matrix": [5, 2], "x": 189, "y": 0}, // R LB63 | SW32 + {"flags": 4, "matrix": [6, 2], "x": 189, "y": 16}, // R LB64 | SW38 + {"flags": 4, "matrix": [7, 2], "x": 189, "y": 32}, // R LB65 | SW44 + {"flags": 4, "matrix": [8, 2], "x": 189, "y": 48}, // R LB66 | SW50 + {"flags": 4, "matrix": [8, 1], "x": 206, "y": 48}, // R LB67 | SW49 + {"flags": 4, "matrix": [7, 1], "x": 206, "y": 32}, // R LB68 | SW43 + {"flags": 4, "matrix": [6, 1], "x": 206, "y": 16}, // R LB69 | SW37 + {"flags": 4, "matrix": [5, 1], "x": 206, "y": 0}, // R LB70 | SW31 + {"flags": 4, "matrix": [5, 0], "x": 224, "y": 0}, // R LB71 | SW30 + {"flags": 4, "matrix": [6, 0], "x": 224, "y": 16}, // R LB72 | SW36 + {"flags": 4, "matrix": [7, 0], "x": 224, "y": 32}, // R LB73 | SW42 + {"flags": 4, "matrix": [8, 0], "x": 224, "y": 48} // R LB74 | SW48 + ] + } + } diff --git a/keyboards/clickety_split/leeloo/rev2/rules.mk b/keyboards/clickety_split/leeloo/rev2/rules.mk new file mode 100644 index 0000000000..80a6663b9c --- /dev/null +++ b/keyboards/clickety_split/leeloo/rev2/rules.mk @@ -0,0 +1 @@ +# Intentionally left blank. diff --git a/keyboards/clickety_split/leeloo/rules.mk b/keyboards/clickety_split/leeloo/rules.mk index e99b3e15ed..e9c33bc130 100644 --- a/keyboards/clickety_split/leeloo/rules.mk +++ b/keyboards/clickety_split/leeloo/rules.mk @@ -1,15 +1,2 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = no # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -SPLIT_KEYBOARD = yes - -DEFAULT_FOLDER = clickety_split/leeloo/rev1 +# Default Folder +DEFAULT_FOLDER = clickety_split/leeloo/rev2 From 9f317832493357c2838eb53856770002995df997 Mon Sep 17 00:00:00 2001 From: xia0 <307671+xia0@users.noreply.github.com> Date: Thu, 5 Oct 2023 15:45:27 +1100 Subject: [PATCH 236/496] Added 3dp660 oled keyboard (#20591) Co-authored-by: Drashna Jaelre Co-authored-by: Duncan Sutherland Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: xia0 --- keyboards/handwired/3dp660_oled/3dp660_oled.c | 121 +++++++++ keyboards/handwired/3dp660_oled/info.json | 251 ++++++++++++++++++ .../3dp660_oled/keymaps/default/keymap.c | 24 ++ .../3dp660_oled/keymaps/via/keymap.c | 15 ++ .../3dp660_oled/keymaps/via/rules.mk | 1 + keyboards/handwired/3dp660_oled/readme.md | 28 ++ keyboards/handwired/3dp660_oled/rules.mk | 1 + 7 files changed, 441 insertions(+) create mode 100644 keyboards/handwired/3dp660_oled/3dp660_oled.c create mode 100644 keyboards/handwired/3dp660_oled/info.json create mode 100644 keyboards/handwired/3dp660_oled/keymaps/default/keymap.c create mode 100644 keyboards/handwired/3dp660_oled/keymaps/via/keymap.c create mode 100644 keyboards/handwired/3dp660_oled/keymaps/via/rules.mk create mode 100644 keyboards/handwired/3dp660_oled/readme.md create mode 100644 keyboards/handwired/3dp660_oled/rules.mk diff --git a/keyboards/handwired/3dp660_oled/3dp660_oled.c b/keyboards/handwired/3dp660_oled/3dp660_oled.c new file mode 100644 index 0000000000..cc98d235f4 --- /dev/null +++ b/keyboards/handwired/3dp660_oled/3dp660_oled.c @@ -0,0 +1,121 @@ +// Copyright 2023 xia0 (@xia0) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#if defined (OLED_ENABLE) + + +// WPM responsiveness +#define IDLE_FRAMES 5 +#define IDLE_SPEED 20 // Speed at which animation goes into idle +#define TAP_FRAMES 2 +#define TAP_SPEED 40 // WPM to trigger Bongo +#define ANIM_FRAME_DURATION 200 // Frame MS +#define ANIM_SIZE 636 // Number of bytes in array, max 1024 + + + +static void render_animation(void) { + + static uint32_t anim_timer = 0; + static uint32_t anim_sleep = 0; + static uint8_t current_idle_frame = 0; + static uint8_t current_tap_frame = 0; + + static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x82, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x01, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x34, 0xc4, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0d, 0x31, 0xc1, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; + static const char PROGMEM prep[][ANIM_SIZE] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; + static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = { + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x98, 0xc0, 0x88, 0x88, 0x8c, 0x9c, 0x1c, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x0f, 0x07, 0x03, 0x03, 0x61, 0xf0, 0xf8, 0xfc, 0x60, 0x01, 0x01, 0x01, 0x3c, 0x78, 0xf8, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + }; + + void animation_phase(void) { + if (get_current_wpm() <= IDLE_SPEED) { + current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES; + oled_write_raw_P(idle[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIM_SIZE); + } + + if (get_current_wpm() > IDLE_SPEED && get_current_wpm() < TAP_SPEED) { + oled_write_raw_P(prep[0], ANIM_SIZE); + } + + if (get_current_wpm() >= TAP_SPEED) { + current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; + oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE); + } + } + if (get_current_wpm() != 000) { + oled_on(); // Enables OLED on any alpha keypress + + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + + anim_sleep = timer_read32(); + } else { + if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { + oled_off(); + } else { + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + } + } +} + + + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + + // Render Bongo Cat + render_animation(); + + // WPM text + oled_set_cursor(0, 0); + oled_write(get_u8_str(get_current_wpm(), '0'), false); + + // Caps lock text + led_t led_state = host_keyboard_led_state(); + oled_set_cursor(0, 3); + if (led_state.caps_lock) { + oled_write_P(PSTR("CAPS"), false); + } + + return true; +} + +#endif diff --git a/keyboards/handwired/3dp660_oled/info.json b/keyboards/handwired/3dp660_oled/info.json new file mode 100644 index 0000000000..a43aca3464 --- /dev/null +++ b/keyboards/handwired/3dp660_oled/info.json @@ -0,0 +1,251 @@ +{ + "manufacturer": "xia0", + "keyboard_name": "handwired/3dp660_oled", + "maintainer": "xia0", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": true, + "extrakey": true, + "mousekey": true, + "oled": true, + "nkro": true, + "wpm": true + }, + "build": { + "lto": true + }, + "matrix_pins": { + "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6"], + "rows": ["D5", "B0", "B5", "B4", "E6", "D7", "C6", "D4", "D2", "D3"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x3661", + "vid": "0x6662" + }, + "layouts": { + "LAYOUT_66_ansi": { + "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": { + "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": { + "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 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/handwired/3dp660_oled/keymaps/default/keymap.c b/keyboards/handwired/3dp660_oled/keymaps/default/keymap.c new file mode 100644 index 0000000000..79e23eaabc --- /dev/null +++ b/keyboards/handwired/3dp660_oled/keymaps/default/keymap.c @@ -0,0 +1,24 @@ +// Copyright 2023 xia0 (@xia0) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( KC_ESC , 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_INS, + 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_DEL, + 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_INT1, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_INT5, KC_SPC , KC_SPC , KC_INT4, KC_RALT, MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT_all( 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_DEL , KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_MUTE, KC_VOLD, + _______, _______, MO(2) , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END), + + [2] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) +}; diff --git a/keyboards/handwired/3dp660_oled/keymaps/via/keymap.c b/keyboards/handwired/3dp660_oled/keymaps/via/keymap.c new file mode 100644 index 0000000000..74d17bf0ed --- /dev/null +++ b/keyboards/handwired/3dp660_oled/keymaps/via/keymap.c @@ -0,0 +1,15 @@ +// Copyright 2023 xia0 (@xia0) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( KC_ESC, 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_INS, + 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_DEL, + 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_INT1, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_INT5, KC_SPC, KC_SPC, KC_INT4, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + [1] = LAYOUT_all( 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, _______, 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, _______, KC_TRNS, KC_HOME, KC_PGDN, KC_END), +}; diff --git a/keyboards/handwired/3dp660_oled/keymaps/via/rules.mk b/keyboards/handwired/3dp660_oled/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/handwired/3dp660_oled/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/handwired/3dp660_oled/readme.md b/keyboards/handwired/3dp660_oled/readme.md new file mode 100644 index 0000000000..408fa4770a --- /dev/null +++ b/keyboards/handwired/3dp660_oled/readme.md @@ -0,0 +1,28 @@ +# handwired/3dp660_oled + +![handwired/3dp660_oled](https://i.imgur.com/AQ6VQfgh.jpg) + +*A handwired FC660 layout with OLED display support.* + +* Keyboard Maintainer: [xia0](https://github.com/xia0) +* Hardware Supported: ATmega32U4 e.g. Arduino Pro Micro or Teensy 2.0 + * Note: If using a Pro Micro, pins B0 and D5 are required. [Click for details](https://golem.hu/guide/pro-micro-upgrade/). +* Hardware Availability: [Printables](https://www.printables.com/model/464322-3dp-fc660-v3-oled-hand-wired-mechanical-keyboard) + +Make example for this keyboard (after setting up your build environment): + + make handwired/3dp660_oled:default + +Flashing example for this keyboard: + + make handwired/3dp660_oled:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the MCU or short RST to GND. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/3dp660_oled/rules.mk b/keyboards/handwired/3dp660_oled/rules.mk new file mode 100644 index 0000000000..c80812f6e0 --- /dev/null +++ b/keyboards/handwired/3dp660_oled/rules.mk @@ -0,0 +1 @@ +# This file is intentionally blank From aaebb0a231efc4343d5bfbdf00cc9e0ccedd2e99 Mon Sep 17 00:00:00 2001 From: Etienne Collin Date: Thu, 5 Oct 2023 00:47:34 -0400 Subject: [PATCH 237/496] Add Wave keyboard (#22054) Co-authored-by: Joel Challis Co-authored-by: Drashna Jaelre --- keyboards/etiennecollin/wave/info.json | 104 ++++++++++ .../wave/keymaps/default/config.h | 34 ++++ .../wave/keymaps/default/keymap.json | 27 +++ .../wave/keymaps/default/readme.md | 6 + .../wave/keymaps/feature/config.h | 42 ++++ .../wave/keymaps/feature/keymap.c | 191 ++++++++++++++++++ .../wave/keymaps/feature/readme.md | 11 + .../wave/keymaps/feature/rules.mk | 2 + .../wave/keymaps/test/keymap.json | 22 ++ .../etiennecollin/wave/keymaps/test/readme.md | 4 + keyboards/etiennecollin/wave/readme.md | 37 ++++ keyboards/etiennecollin/wave/rules.mk | 1 + 12 files changed, 481 insertions(+) create mode 100644 keyboards/etiennecollin/wave/info.json create mode 100644 keyboards/etiennecollin/wave/keymaps/default/config.h create mode 100644 keyboards/etiennecollin/wave/keymaps/default/keymap.json create mode 100644 keyboards/etiennecollin/wave/keymaps/default/readme.md create mode 100644 keyboards/etiennecollin/wave/keymaps/feature/config.h create mode 100644 keyboards/etiennecollin/wave/keymaps/feature/keymap.c create mode 100644 keyboards/etiennecollin/wave/keymaps/feature/readme.md create mode 100644 keyboards/etiennecollin/wave/keymaps/feature/rules.mk create mode 100644 keyboards/etiennecollin/wave/keymaps/test/keymap.json create mode 100644 keyboards/etiennecollin/wave/keymaps/test/readme.md create mode 100644 keyboards/etiennecollin/wave/readme.md create mode 100644 keyboards/etiennecollin/wave/rules.mk diff --git a/keyboards/etiennecollin/wave/info.json b/keyboards/etiennecollin/wave/info.json new file mode 100644 index 0000000000..5e31a1ca2a --- /dev/null +++ b/keyboards/etiennecollin/wave/info.json @@ -0,0 +1,104 @@ +{ + "keyboard_name": "Wave", + "maintainer": "etiennecollin", + "manufacturer": "Etienne Collin", + "url": "https://github.com/etiennecollin/wave", + "bootloader_instructions": "Press the button marked RESET on the PCB or bridge the pins marked RST and GND on the Elite-C", + "tags": ["ortho", "split"], + + "build": { + "lto": true + }, + "development_board": "elite_c", + "pin_compatible": "elite_c", + "usb": { + "device_version": "0.0.1", + "vid": "0x6967", + "pid": "0x0000" + }, + + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + + "matrix_pins": { + "direct": [ + ["C6", "D4", "D0", "D1", "D3"], + ["B6", "B5", "B4", "E6", "D7"], + ["F6", "F7", "B1", "B3", "B2"], + ["NO_PIN", "NO_PIN", "F5", "F4", "B0"] + ] + }, + "community_layouts": ["split_3x5_3"], + "split": { + "enabled": true, + "soft_serial_pin": "D2", + "usb_detect": { + "enabled": true + }, + "matrix_pins": { + "right": { + "direct": [ + ["D3", "D1", "D0", "D4", "C6"], + ["D7", "E6", "B4", "B5", "B6"], + ["B2", "B3", "B1", "F7", "F6"], + ["B0", "F4", "F5", "NO_PIN", "NO_PIN"] + ] + } + } + }, + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0.93 }, + { "matrix": [0, 1], "x": 1, "y": 0.31 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0.28 }, + { "matrix": [0, 4], "x": 4, "y": 0.42 }, + + { "matrix": [4, 0], "x": 7, "y": 0.42 }, + { "matrix": [4, 1], "x": 8, "y": 0.28 }, + { "matrix": [4, 2], "x": 9, "y": 0 }, + { "matrix": [4, 3], "x": 10, "y": 0.31 }, + { "matrix": [4, 4], "x": 11, "y": 0.93 }, + + { "matrix": [1, 0], "x": 0, "y": 1.93 }, + { "matrix": [1, 1], "x": 1, "y": 1.31 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1.28 }, + { "matrix": [1, 4], "x": 4, "y": 1.42 }, + + { "matrix": [5, 0], "x": 7, "y": 1.42 }, + { "matrix": [5, 1], "x": 8, "y": 1.28 }, + { "matrix": [5, 2], "x": 9, "y": 1 }, + { "matrix": [5, 3], "x": 10, "y": 1.31 }, + { "matrix": [5, 4], "x": 11, "y": 1.93 }, + + { "matrix": [2, 0], "x": 0, "y": 2.93 }, + { "matrix": [2, 1], "x": 1, "y": 2.31 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2.28 }, + { "matrix": [2, 4], "x": 4, "y": 2.42 }, + + { "matrix": [6, 0], "x": 7, "y": 2.42 }, + { "matrix": [6, 1], "x": 8, "y": 2.28 }, + { "matrix": [6, 2], "x": 9, "y": 2 }, + { "matrix": [6, 3], "x": 10, "y": 2.31 }, + { "matrix": [6, 4], "x": 11, "y": 2.93 }, + + { "matrix": [3, 2], "x": 2.8, "y": 3.5 }, + { "matrix": [3, 3], "x": 3.8, "y": 3.75 }, + { "matrix": [3, 4], "x": 4.8, "y": 3.5, "h": 1.5 }, + + { "matrix": [7, 0], "x": 6.2, "y": 3.5, "h": 1.5 }, + { "matrix": [7, 1], "x": 7.2, "y": 3.75 }, + { "matrix": [7, 2], "x": 8.2, "y": 3.5 } + ] + } + } +} diff --git a/keyboards/etiennecollin/wave/keymaps/default/config.h b/keyboards/etiennecollin/wave/keymaps/default/config.h new file mode 100644 index 0000000000..8d60295560 --- /dev/null +++ b/keyboards/etiennecollin/wave/keymaps/default/config.h @@ -0,0 +1,34 @@ +/* Copyright 2023 Etienne Collin (@etiennecollin) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// Activate caps word by pressing Left Shift + Right Shift +#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD + +// Enable rapid switch from tap to hold, disables double tap hold auto-repeat +#define QUICK_TAP_TERM 0 + +// Maximum time between taps of tap dances +#define TAPPING_TERM 175 + +// Perform hold action if pressing a dual-role key, tapping another key and +// releasing the dual-role key withing tapping term +#define PERMISSIVE_HOLD + +// Perform hold action if pressing a dual-role key, pressing another key, +// releasing the dual-role key and releasing the other key withing tapping term +#define HOLD_ON_OTHER_KEY_PRESS \ No newline at end of file diff --git a/keyboards/etiennecollin/wave/keymaps/default/keymap.json b/keyboards/etiennecollin/wave/keymaps/default/keymap.json new file mode 100644 index 0000000000..993a1b854c --- /dev/null +++ b/keyboards/etiennecollin/wave/keymaps/default/keymap.json @@ -0,0 +1,27 @@ +{ + "version": 1, + "author": "etiennecollin", + "keyboard": "etiennecollin/wave", + "notes": "This is a keymap file for etiennecollin/wave", + "keymap": "default", + "layout": "LAYOUT_split_3x5_3", + "config": { + "features": { + "caps_word": true + } + }, + "layers": [ + [ + "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", + "LGUI_T(KC_A)", "LALT_T(KC_S)", "LCTL_T(KC_D)", "LSFT_T(KC_F)", "KC_G", "KC_H", "LSFT_T(KC_J)", "LCTL_T(KC_K)", "LALT_T(KC_L)", "LGUI_T(KC_SCLN)", + "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", + "KC_ESC", "KC_SPC", "KC_TAB", "KC_ENT", "KC_BSPC", "MO(1)" + ], + [ + "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", + "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "_______" + ] + ] +} \ No newline at end of file diff --git a/keyboards/etiennecollin/wave/keymaps/default/readme.md b/keyboards/etiennecollin/wave/keymaps/default/readme.md new file mode 100644 index 0000000000..16586cc1f7 --- /dev/null +++ b/keyboards/etiennecollin/wave/keymaps/default/readme.md @@ -0,0 +1,6 @@ +# Default keymap + +This is a really simple QWERTY keymap with a single number/symbol layer. +It uses home row modifiers and the caps word feature because of the limited number of keys. + +For a more complete layout, see the `feature` layout. diff --git a/keyboards/etiennecollin/wave/keymaps/feature/config.h b/keyboards/etiennecollin/wave/keymaps/feature/config.h new file mode 100644 index 0000000000..42421b33d3 --- /dev/null +++ b/keyboards/etiennecollin/wave/keymaps/feature/config.h @@ -0,0 +1,42 @@ +/* Copyright 2023 Etienne Collin (@etiennecollin) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// Activate caps word by pressing Left Shift + Right Shift +#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD + +// Maximum time between taps of tap dances +#define TAPPING_TERM 175 + +// Max time between taps to prevent hold function and hold auto-repeat +#define QUICK_TAP_TERM 100 + +// Perform hold action if pressing a dual-role key, tapping another key and +// releasing the dual-role key withing tapping term +#define PERMISSIVE_HOLD + +// Mouse key speed and acceleration. +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_INTERVAL 16 +#define MOUSEKEY_WHEEL_DELAY 0 +#define MOUSEKEY_MAX_SPEED 6 +#define MOUSEKEY_TIME_TO_MAX 64 + +// Thumb Combos +#define COMBO_COUNT 2 +#define COMBO_TERM 200 +#define EXTRA_SHORT_COMBOS diff --git a/keyboards/etiennecollin/wave/keymaps/feature/keymap.c b/keyboards/etiennecollin/wave/keymaps/feature/keymap.c new file mode 100644 index 0000000000..24bc85d5b4 --- /dev/null +++ b/keyboards/etiennecollin/wave/keymaps/feature/keymap.c @@ -0,0 +1,191 @@ +/* Copyright 2023 Etienne Collin (@etiennecollin) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum custom_layers { + COL, + QWE, + GAM, + MED, + NAV, + MOS, + SYM, + NUM, + FUN, + SYS, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [COL] = LAYOUT_split_3x5_3( + // ----------------------------------------- ----------------------------------------- + // | q | w | f | p | b | | j | l | u | y | ' | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | a | r | s | t | g | | m | n | e | i | o | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | z | x | c | d | v | | k | h | , | . | / | + // --------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | esc | spc | tab | | ent | bsp | del | + // --------+-------+-------- --------+-------+-------- + KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, + LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_M, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), + KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, + LT(MED, KC_ESC), LT(NAV, KC_SPC), LT(MOS, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL) + ), + [QWE] = LAYOUT_split_3x5_3( + // ----------------------------------------- ----------------------------------------- + // | q | w | e | r | t | | y | u | i | o | p | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | a | s | d | f | g | | h | j | k | l | ' | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | z | x | c | v | b | | n | m | , | . | / | + // --------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | esc | spc | tab | | ent | bsp | del | + // --------+-------+-------- --------+-------+-------- + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT), + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + LT(MED, KC_ESC), LT(NAV, KC_SPC), LT(MOS, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL) + ), + [GAM] = LAYOUT_split_3x5_3( + // ----------------------------------------- ----------------------------------------- + // | tab | q | w | e | r | | t | y | u | i | o | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | sht | a | s | d | f | | g | h | j | k | l | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | ctl | z | x | c | v | | b | n | m | , | . | + // --------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | alt | cps | spc | | ent | bsp | esc | + // --------+-------+-------- --------+-------+-------- + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, + KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, + KC_LALT, KC_CAPS, KC_SPC, LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_ESC) + ), + [MED] = LAYOUT_split_3x5_3( + // ----------------------------------------- ----------------------------------------- + // | | | | | | | | | | | | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | gui | alt | ctl | sht | | | | prev | vol - | vol + | next | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | | | | | | | | | | | | + // --------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | ___ | | | | stop | pause | mute | + // --------+-------+-------- --------+-------+-------- + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MRWD, XXXXXXX, XXXXXXX, KC_MFFD, + _______, XXXXXXX, XXXXXXX, KC_MSTP, KC_MPLY, KC_MUTE + ), + [NAV] = LAYOUT_split_3x5_3( + // ----------------------------------------- ----------------------------------------- + // | | | | | | | | | | | | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | gui | alt | ctl | sht | | | cps | ← | ↓ | ↑ | → | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | | | | | | | insrt | home | pageu | paged | end | + // --------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | | ___ | | | ent | bsp | del | + // --------+-------+-------- --------+-------+-------- + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, + XXXXXXX, _______, XXXXXXX, KC_ENT, KC_BSPC, KC_DEL + ), + [MOS] = LAYOUT_split_3x5_3( + // ----------------------------------------- ----------------------------------------- + // | | | | | | | | acc0 | acc1 | acc2 | | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | gui | alt | ctl | sht | | | | ← | ↓ | ↑ | → | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | | | | | | | | w← | w↓ | w↑ | w→ | + // --------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | | | ___ | | left | right | mid | + // --------+-------+-------- --------+-------+-------- + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, + KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, + XXXXXXX, XXXXXXX, _______, KC_BTN1, KC_BTN2, KC_BTN3 + ), + [SYM] = LAYOUT_split_3x5_3( + // ----------------------------------------- ----------------------------------------- + // | { | & | * | ( | } | | | | | | | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | : | $ | % | ^ | + | | | sht | ctl | alt | gui | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | ~ | ! | @ | # | | | | | | | | | + // --------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | ( | ) | _ | | ___ | | | + // --------+-------+-------- --------+-------+-------- + KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_COLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS, XXXXXXX, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_LPRN, KC_RPRN, KC_UNDS, _______, XXXXXXX, XXXXXXX + ), + [NUM] = LAYOUT_split_3x5_3( + // ----------------------------------------- ----------------------------------------- + // | [ { | 7 & | 8 * | 9 ( | ] } | | | | | | | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | ; : | 4 $ | 5 % | 6 ^ | = + | | | sht | ctl | alt | gui | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | ` ~ | 1 ! | 2 @ | 3 # | \ | | | | | | | | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | . > | 0 ) | - _ | | | ___ | | + // --------+-------+-------- --------+-------+-------- + KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, XXXXXXX, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, + KC_GRV, KC_1, KC_2, KC_3, KC_BSLS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_DOT, KC_0, KC_MINS, XXXXXXX, _______, XXXXXXX + ), + [FUN] = LAYOUT_split_3x5_3( + // ----------------------------------------- ----------------------------------------- + // | F12 | F 7 | F 8 | F 9 | PrScr | | | | | | | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | F11 | F 4 | F 5 | F 6 | pause | | | sht | ctl | alt | gui | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | F10 | F 1 | F 2 | F 3 | scrlk | | | | | | | + // --------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | app | spc | tab | | | | ___ | + // --------+-------+-------- --------+-------+-------- + KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_F11, KC_F4, KC_F5, KC_F6, KC_PAUS, XXXXXXX, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, + KC_F10, KC_F1, KC_F2, KC_F3, KC_SCRL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_APP, KC_SPC, KC_TAB, XXXXXXX, XXXXXXX, _______ + ), + [SYS] = LAYOUT_split_3x5_3( + // ----------------------------------------- ----------------------------------------- + // | BOOT | | GAME | QWERT | COLMK | | COLMK | QWERT | GAME | | BOOT | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | | | | | | | | | | | | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | | | | | | | | | | | | + // --------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | | | | | | | | + // --------+-------+-------- --------+-------+-------- + QK_BOOT, XXXXXXX, DF(GAM), DF(QWE), DF(COL), DF(COL), DF(QWE), DF(GAM), XXXXXXX, QK_BOOT, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______ + ) +}; + +const uint16_t PROGMEM combo_sys[] = {LT(MED, KC_ESC), LT(FUN, KC_DEL), COMBO_END}; +const uint16_t PROGMEM combo_sys_gam[] = {KC_LALT, LT(FUN, KC_ESC), COMBO_END}; + +combo_t key_combos[] = { + COMBO(combo_sys, MO(SYS)), + COMBO(combo_sys_gam, MO(SYS)) +}; diff --git a/keyboards/etiennecollin/wave/keymaps/feature/readme.md b/keyboards/etiennecollin/wave/keymaps/feature/readme.md new file mode 100644 index 0000000000..d9971b352b --- /dev/null +++ b/keyboards/etiennecollin/wave/keymaps/feature/readme.md @@ -0,0 +1,11 @@ +# Feature keymap + +This keymap is heavily inspired by the [miryoku](https://github.com/manna-harbour/miryoku) layout. + +It defaults to a [COLEMAK mod dh](https://colemakmods.github.io/mod-dh/) layer, but a QWERTY and a gaming layer are available from the `sys` layer. + +It uses the following features: + +- Home row modifiers +- Usual special layers (`media`, `navigation`, `mouse`, `symbols`, `numbers`, `functions`, `system`) +- Combos (to access the `sys` layer by pressing both external thumb keys) diff --git a/keyboards/etiennecollin/wave/keymaps/feature/rules.mk b/keyboards/etiennecollin/wave/keymaps/feature/rules.mk new file mode 100644 index 0000000000..96093b8201 --- /dev/null +++ b/keyboards/etiennecollin/wave/keymaps/feature/rules.mk @@ -0,0 +1,2 @@ +CAPS_WORD_ENABLE = yes +COMBO_ENABLE = yes diff --git a/keyboards/etiennecollin/wave/keymaps/test/keymap.json b/keyboards/etiennecollin/wave/keymaps/test/keymap.json new file mode 100644 index 0000000000..e73c867273 --- /dev/null +++ b/keyboards/etiennecollin/wave/keymaps/test/keymap.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "author": "etiennecollin", + "keyboard": "etiennecollin/wave", + "notes": "This is a keymap file for etiennecollin/wave", + "keymap": "test", + "layout": "LAYOUT_split_3x5_3", + "config": { + "features": { + "console": true, + "debug": true + } + }, + "layers": [ + [ + "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", + "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", + "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", + "KC_ESC", "KC_SPC", "KC_TAB", "KC_ENT", "KC_BSPC", "KC_DEL" + ] + ] +} \ No newline at end of file diff --git a/keyboards/etiennecollin/wave/keymaps/test/readme.md b/keyboards/etiennecollin/wave/keymaps/test/readme.md new file mode 100644 index 0000000000..3d3400b8f6 --- /dev/null +++ b/keyboards/etiennecollin/wave/keymaps/test/readme.md @@ -0,0 +1,4 @@ +# Test keymap + +Inspired by the [ferris sweep test keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/ferris/keymaps/test). +A simple QWERTY keymap used to test the keyboard. As such, it should not be used for other purposes than testing. diff --git a/keyboards/etiennecollin/wave/readme.md b/keyboards/etiennecollin/wave/readme.md new file mode 100644 index 0000000000..a66c6f71d3 --- /dev/null +++ b/keyboards/etiennecollin/wave/readme.md @@ -0,0 +1,37 @@ +# Wave + +![Wave pcb](https://i.imgur.com/oWF1Fnr.png) + +_The Wave is a small, reversible keyboard inspired by the [Ferris](https://github.com/pierrechevalier83/ferris), the [Ferris Sweep](https://github.com/davidphilipbarr/Sweep), the [Swoop](https://github.com/jimmerricks/swoop) and the [Sweep36](https://github.com/sadekbaroudi/sweep36). It aims to solve a few issues I found with the keyboards._ + +- Keyboard Maintainer: [Etienne Collin](https://github.com/etiennecollin) +- Hardware Supported: [Wave](https://github.com/etiennecollin/wave) +- Hardware Availability: Print the PCB with gerber files from [latest release in the repository](https://github.com/etiennecollin/wave/releases/latest) + +Make example for this keyboard (after setting up your build environment): + + make etiennecollin/wave:default + +Flashing example for this keyboard: + + make etiennecollin/wave:default:flash + +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). + +## Recommended Keymap + +For an everyday keyboard, it is recommended to use the `feature` keymap, as the default keymap is extremely barebone. Here is a make example: + + make etiennecollin/wave:feature + +Flashing example: + + make etiennecollin/wave:feature:flash + +## Bootloader + +Enter the bootloader in 3 ways: + +- **Bootmagic reset**: Hold down the top left key of the left half of the keyboard and plug in the keyboard +- **Physical reset button**: Briefly press the reset button on the front of the PCB or short the GND and RST pins on the controller +- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/etiennecollin/wave/rules.mk b/keyboards/etiennecollin/wave/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/etiennecollin/wave/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From 8f757eece8260d4b5e266bc0f07da508c06499c8 Mon Sep 17 00:00:00 2001 From: lalalademaxiya1 <66767061+lalalademaxiya1@users.noreply.github.com> Date: Thu, 5 Oct 2023 12:51:16 +0800 Subject: [PATCH 238/496] Add Keychron Q1 Version 2 (#20416) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: adophoxia <100170946+adophoxia@users.noreply.github.com> Co-authored-by: Adophoxia --- keyboards/keychron/q1v2/ansi/ansi.c | 117 ++++++++++ keyboards/keychron/q1v2/ansi/config.h | 25 +++ keyboards/keychron/q1v2/ansi/info.json | 190 ++++++++++++++++ .../q1v2/ansi/keymaps/default/keymap.c | 63 ++++++ .../q1v2/ansi/keymaps/keychron/keymap.c | 74 +++++++ .../q1v2/ansi/keymaps/keychron/rules.mk | 4 + .../keychron/q1v2/ansi/keymaps/via/keymap.c | 63 ++++++ .../keychron/q1v2/ansi/keymaps/via/rules.mk | 1 + keyboards/keychron/q1v2/ansi/rules.mk | 1 + .../keychron/q1v2/ansi_encoder/ansi_encoder.c | 117 ++++++++++ keyboards/keychron/q1v2/ansi_encoder/config.h | 28 +++ .../keychron/q1v2/ansi_encoder/info.json | 199 +++++++++++++++++ .../ansi_encoder/keymaps/default/keymap.c | 72 ++++++ .../ansi_encoder/keymaps/default/rules.mk | 1 + .../ansi_encoder/keymaps/keychron/keymap.c | 83 +++++++ .../ansi_encoder/keymaps/keychron/rules.mk | 5 + .../q1v2/ansi_encoder/keymaps/via/keymap.c | 74 +++++++ .../q1v2/ansi_encoder/keymaps/via/rules.mk | 2 + keyboards/keychron/q1v2/ansi_encoder/rules.mk | 1 + keyboards/keychron/q1v2/config.h | 59 +++++ keyboards/keychron/q1v2/halconf.h | 21 ++ keyboards/keychron/q1v2/info.json | 58 +++++ keyboards/keychron/q1v2/iso/config.h | 25 +++ keyboards/keychron/q1v2/iso/info.json | 192 ++++++++++++++++ keyboards/keychron/q1v2/iso/iso.c | 118 ++++++++++ .../q1v2/iso/keymaps/default/keymap.c | 63 ++++++ .../q1v2/iso/keymaps/keychron/keymap.c | 74 +++++++ .../q1v2/iso/keymaps/keychron/rules.mk | 4 + .../keychron/q1v2/iso/keymaps/via/keymap.c | 63 ++++++ .../keychron/q1v2/iso/keymaps/via/rules.mk | 1 + keyboards/keychron/q1v2/iso/rules.mk | 1 + keyboards/keychron/q1v2/iso_encoder/config.h | 28 +++ keyboards/keychron/q1v2/iso_encoder/info.json | 201 +++++++++++++++++ .../keychron/q1v2/iso_encoder/iso_encoder.c | 118 ++++++++++ .../q1v2/iso_encoder/keymaps/default/keymap.c | 72 ++++++ .../q1v2/iso_encoder/keymaps/default/rules.mk | 1 + .../iso_encoder/keymaps/keychron/keymap.c | 85 +++++++ .../iso_encoder/keymaps/keychron/rules.mk | 5 + .../q1v2/iso_encoder/keymaps/via/keymap.c | 72 ++++++ .../q1v2/iso_encoder/keymaps/via/rules.mk | 2 + keyboards/keychron/q1v2/iso_encoder/rules.mk | 1 + keyboards/keychron/q1v2/jis/config.h | 25 +++ keyboards/keychron/q1v2/jis/info.json | 198 +++++++++++++++++ keyboards/keychron/q1v2/jis/jis.c | 121 ++++++++++ .../q1v2/jis/keymaps/default/keymap.c | 63 ++++++ .../q1v2/jis/keymaps/keychron/keymap.c | 74 +++++++ .../q1v2/jis/keymaps/keychron/rules.mk | 4 + .../keychron/q1v2/jis/keymaps/via/keymap.c | 63 ++++++ .../keychron/q1v2/jis/keymaps/via/rules.mk | 1 + keyboards/keychron/q1v2/jis/rules.mk | 1 + keyboards/keychron/q1v2/jis_encoder/config.h | 28 +++ keyboards/keychron/q1v2/jis_encoder/info.json | 207 ++++++++++++++++++ .../keychron/q1v2/jis_encoder/jis_encoder.c | 121 ++++++++++ .../q1v2/jis_encoder/keymaps/default/keymap.c | 72 ++++++ .../q1v2/jis_encoder/keymaps/default/rules.mk | 1 + .../jis_encoder/keymaps/keychron/keymap.c | 83 +++++++ .../jis_encoder/keymaps/keychron/rules.mk | 5 + .../q1v2/jis_encoder/keymaps/via/keymap.c | 72 ++++++ .../q1v2/jis_encoder/keymaps/via/rules.mk | 2 + keyboards/keychron/q1v2/jis_encoder/rules.mk | 1 + keyboards/keychron/q1v2/matrix.c | 205 +++++++++++++++++ keyboards/keychron/q1v2/mcuconf.h | 22 ++ keyboards/keychron/q1v2/q1v2.c | 86 ++++++++ keyboards/keychron/q1v2/readme.md | 31 +++ 64 files changed, 3870 insertions(+) create mode 100644 keyboards/keychron/q1v2/ansi/ansi.c create mode 100644 keyboards/keychron/q1v2/ansi/config.h create mode 100644 keyboards/keychron/q1v2/ansi/info.json create mode 100644 keyboards/keychron/q1v2/ansi/keymaps/default/keymap.c create mode 100644 keyboards/keychron/q1v2/ansi/keymaps/keychron/keymap.c create mode 100644 keyboards/keychron/q1v2/ansi/keymaps/keychron/rules.mk create mode 100644 keyboards/keychron/q1v2/ansi/keymaps/via/keymap.c create mode 100644 keyboards/keychron/q1v2/ansi/keymaps/via/rules.mk create mode 100644 keyboards/keychron/q1v2/ansi/rules.mk create mode 100644 keyboards/keychron/q1v2/ansi_encoder/ansi_encoder.c create mode 100644 keyboards/keychron/q1v2/ansi_encoder/config.h create mode 100644 keyboards/keychron/q1v2/ansi_encoder/info.json create mode 100644 keyboards/keychron/q1v2/ansi_encoder/keymaps/default/keymap.c create mode 100644 keyboards/keychron/q1v2/ansi_encoder/keymaps/default/rules.mk create mode 100644 keyboards/keychron/q1v2/ansi_encoder/keymaps/keychron/keymap.c create mode 100644 keyboards/keychron/q1v2/ansi_encoder/keymaps/keychron/rules.mk create mode 100644 keyboards/keychron/q1v2/ansi_encoder/keymaps/via/keymap.c create mode 100644 keyboards/keychron/q1v2/ansi_encoder/keymaps/via/rules.mk create mode 100644 keyboards/keychron/q1v2/ansi_encoder/rules.mk create mode 100644 keyboards/keychron/q1v2/config.h create mode 100644 keyboards/keychron/q1v2/halconf.h create mode 100644 keyboards/keychron/q1v2/info.json create mode 100644 keyboards/keychron/q1v2/iso/config.h create mode 100644 keyboards/keychron/q1v2/iso/info.json create mode 100644 keyboards/keychron/q1v2/iso/iso.c create mode 100644 keyboards/keychron/q1v2/iso/keymaps/default/keymap.c create mode 100644 keyboards/keychron/q1v2/iso/keymaps/keychron/keymap.c create mode 100644 keyboards/keychron/q1v2/iso/keymaps/keychron/rules.mk create mode 100644 keyboards/keychron/q1v2/iso/keymaps/via/keymap.c create mode 100644 keyboards/keychron/q1v2/iso/keymaps/via/rules.mk create mode 100644 keyboards/keychron/q1v2/iso/rules.mk create mode 100644 keyboards/keychron/q1v2/iso_encoder/config.h create mode 100644 keyboards/keychron/q1v2/iso_encoder/info.json create mode 100644 keyboards/keychron/q1v2/iso_encoder/iso_encoder.c create mode 100644 keyboards/keychron/q1v2/iso_encoder/keymaps/default/keymap.c create mode 100644 keyboards/keychron/q1v2/iso_encoder/keymaps/default/rules.mk create mode 100644 keyboards/keychron/q1v2/iso_encoder/keymaps/keychron/keymap.c create mode 100644 keyboards/keychron/q1v2/iso_encoder/keymaps/keychron/rules.mk create mode 100644 keyboards/keychron/q1v2/iso_encoder/keymaps/via/keymap.c create mode 100644 keyboards/keychron/q1v2/iso_encoder/keymaps/via/rules.mk create mode 100644 keyboards/keychron/q1v2/iso_encoder/rules.mk create mode 100644 keyboards/keychron/q1v2/jis/config.h create mode 100644 keyboards/keychron/q1v2/jis/info.json create mode 100644 keyboards/keychron/q1v2/jis/jis.c create mode 100644 keyboards/keychron/q1v2/jis/keymaps/default/keymap.c create mode 100644 keyboards/keychron/q1v2/jis/keymaps/keychron/keymap.c create mode 100644 keyboards/keychron/q1v2/jis/keymaps/keychron/rules.mk create mode 100644 keyboards/keychron/q1v2/jis/keymaps/via/keymap.c create mode 100644 keyboards/keychron/q1v2/jis/keymaps/via/rules.mk create mode 100644 keyboards/keychron/q1v2/jis/rules.mk create mode 100644 keyboards/keychron/q1v2/jis_encoder/config.h create mode 100644 keyboards/keychron/q1v2/jis_encoder/info.json create mode 100644 keyboards/keychron/q1v2/jis_encoder/jis_encoder.c create mode 100644 keyboards/keychron/q1v2/jis_encoder/keymaps/default/keymap.c create mode 100644 keyboards/keychron/q1v2/jis_encoder/keymaps/default/rules.mk create mode 100644 keyboards/keychron/q1v2/jis_encoder/keymaps/keychron/keymap.c create mode 100644 keyboards/keychron/q1v2/jis_encoder/keymaps/keychron/rules.mk create mode 100644 keyboards/keychron/q1v2/jis_encoder/keymaps/via/keymap.c create mode 100644 keyboards/keychron/q1v2/jis_encoder/keymaps/via/rules.mk create mode 100644 keyboards/keychron/q1v2/jis_encoder/rules.mk create mode 100644 keyboards/keychron/q1v2/matrix.c create mode 100644 keyboards/keychron/q1v2/mcuconf.h create mode 100644 keyboards/keychron/q1v2/q1v2.c create mode 100644 keyboards/keychron/q1v2/readme.md diff --git a/keyboards/keychron/q1v2/ansi/ansi.c b/keyboards/keychron/q1v2/ansi/ansi.c new file mode 100644 index 0000000000..ea6c6278d1 --- /dev/null +++ b/keyboards/keychron/q1v2/ansi/ansi.c @@ -0,0 +1,117 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE + +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to CKLED2001 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C_1, A_1, B_1}, + {0, C_2, A_2, B_2}, + {0, C_3, A_3, B_3}, + {0, C_4, A_4, B_4}, + {0, C_5, A_5, B_5}, + {0, C_6, A_6, B_6}, + {0, C_7, A_7, B_7}, + {0, C_8, A_8, B_8}, + {0, C_9, A_9, B_9}, + {0, C_10, A_10, B_10}, + {0, C_11, A_11, B_11}, + {0, C_12, A_12, B_12}, + {0, C_13, A_13, B_13}, + {0, C_14, A_14, B_14}, + {0, C_16, A_16, B_16}, + + {0, I_1, G_1, H_1}, + {0, I_2, G_2, H_2}, + {0, I_3, G_3, H_3}, + {0, I_4, G_4, H_4}, + {0, I_5, G_5, H_5}, + {0, I_6, G_6, H_6}, + {0, I_7, G_7, H_7}, + {0, I_8, G_8, H_8}, + {0, I_9, G_9, H_9}, + {0, I_10, G_10, H_10}, + {0, I_11, G_11, H_11}, + {0, I_12, G_12, H_12}, + {0, I_13, G_13, H_13}, + {0, I_14, G_14, H_14}, + {0, I_16, G_16, H_16}, + + {0, F_1, D_1, E_1}, + {0, F_2, D_2, E_2}, + {0, F_3, D_3, E_3}, + {0, F_4, D_4, E_4}, + {0, F_5, D_5, E_5}, + {0, F_6, D_6, E_6}, + {0, F_7, D_7, E_7}, + {0, F_8, D_8, E_8}, + {0, F_9, D_9, E_9}, + {0, F_10, D_10, E_10}, + {0, F_11, D_11, E_11}, + {0, F_12, D_12, E_12}, + {0, F_13, D_13, E_13}, + {0, F_14, D_14, E_14}, + {0, F_16, D_16, E_16}, + + {1, I_1, G_1, H_1}, + {1, I_2, G_2, H_2}, + {1, I_3, G_3, H_3}, + {1, I_4, G_4, H_4}, + {1, I_5, G_5, H_5}, + {1, I_6, G_6, H_6}, + {1, I_7, G_7, H_7}, + {1, I_8, G_8, H_8}, + {1, I_9, G_9, H_9}, + {1, I_10, G_10, H_10}, + {1, I_11, G_11, H_11}, + {1, I_12, G_12, H_12}, + {1, I_14, G_14, H_14}, + {1, I_16, G_16, H_16}, + + {1, F_1, D_1, E_1}, + {1, F_3, D_3, E_3}, + {1, F_4, D_4, E_4}, + {1, F_5, D_5, E_5}, + {1, F_6, D_6, E_6}, + {1, F_7, D_7, E_7}, + {1, F_8, D_8, E_8}, + {1, F_9, D_9, E_9}, + {1, F_10, D_10, E_10}, + {1, F_11, D_11, E_11}, + {1, F_12, D_12, E_12}, + {1, F_14, D_14, E_14}, + {1, F_15, D_15, E_15}, + + {1, C_1, A_1, B_1}, + {1, C_2, A_2, B_2}, + {1, C_3, A_3, B_3}, + {1, C_7, A_7, B_7}, + {1, C_11, A_11, B_11}, + {1, C_12, A_12, B_12}, + {1, C_13, A_13, B_13}, + {1, C_14, A_14, B_14}, + {1, C_15, A_15, B_15}, + {1, C_16, A_16, B_16}, +}; + +#endif diff --git a/keyboards/keychron/q1v2/ansi/config.h b/keyboards/keychron/q1v2/ansi/config.h new file mode 100644 index 0000000000..05ace31778 --- /dev/null +++ b/keyboards/keychron/q1v2/ansi/config.h @@ -0,0 +1,25 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* RGB Matrix Configuration */ +#define DRIVER_1_LED_TOTAL 45 +#define DRIVER_2_LED_TOTAL 37 +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) + +/* Enable caps-lock LED */ +#define CAPS_LOCK_LED_INDEX 45 diff --git a/keyboards/keychron/q1v2/ansi/info.json b/keyboards/keychron/q1v2/ansi/info.json new file mode 100644 index 0000000000..a72d202d81 --- /dev/null +++ b/keyboards/keychron/q1v2/ansi/info.json @@ -0,0 +1,190 @@ +{ + "usb": { + "pid": "0x0106", + "device_version": "2.0.0" + }, + "layouts": { + "LAYOUT_ansi_82": { + "layout": [ + {"matrix":[0,0], "x":0, "y":0}, + {"matrix":[0,1], "x":1.25, "y":0}, + {"matrix":[0,2], "x":2.25, "y":0}, + {"matrix":[0,3], "x":3.25, "y":0}, + {"matrix":[0,4], "x":4.25, "y":0}, + {"matrix":[0,5], "x":5.5, "y":0}, + {"matrix":[0,6], "x":6.5, "y":0}, + {"matrix":[0,7], "x":7.5, "y":0}, + {"matrix":[0,8], "x":8.5, "y":0}, + {"matrix":[0,9], "x":9.75, "y":0}, + {"matrix":[0,10], "x":10.75, "y":0}, + {"matrix":[0,11], "x":11.75, "y":0}, + {"matrix":[0,12], "x":12.75, "y":0}, + {"matrix":[0,13], "x":14, "y":0}, + {"matrix":[0,15], "x":15.25, "y":0}, + + {"matrix":[1,0], "x":0, "y":1.25}, + {"matrix":[1,1], "x":1, "y":1.25}, + {"matrix":[1,2], "x":2, "y":1.25}, + {"matrix":[1,3], "x":3, "y":1.25}, + {"matrix":[1,4], "x":4, "y":1.25}, + {"matrix":[1,5], "x":5, "y":1.25}, + {"matrix":[1,6], "x":6, "y":1.25}, + {"matrix":[1,7], "x":7, "y":1.25}, + {"matrix":[1,8], "x":8, "y":1.25}, + {"matrix":[1,9], "x":9, "y":1.25}, + {"matrix":[1,10], "x":10, "y":1.25}, + {"matrix":[1,11], "x":11, "y":1.25}, + {"matrix":[1,12], "x":12, "y":1.25}, + {"matrix":[1,13], "x":13, "y":1.25, "w":2}, + {"matrix":[1,15], "x":15.25, "y":1.25}, + + {"matrix":[2,0], "x":0, "y":2.25, "w":1.5}, + {"matrix":[2,1], "x":1.5, "y":2.25}, + {"matrix":[2,2], "x":2.5, "y":2.25}, + {"matrix":[2,3], "x":3.5, "y":2.25}, + {"matrix":[2,4], "x":4.5, "y":2.25}, + {"matrix":[2,5], "x":5.5, "y":2.25}, + {"matrix":[2,6], "x":6.5, "y":2.25}, + {"matrix":[2,7], "x":7.5, "y":2.25}, + {"matrix":[2,8], "x":8.5, "y":2.25}, + {"matrix":[2,9], "x":9.5, "y":2.25}, + {"matrix":[2,10], "x":10.5, "y":2.25}, + {"matrix":[2,11], "x":11.5, "y":2.25}, + {"matrix":[2,12], "x":12.5, "y":2.25}, + {"matrix":[2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix":[2,15], "x":15.25, "y":2.25}, + + {"matrix":[3,0], "x":0, "y":3.25, "w":1.75}, + {"matrix":[3,1], "x":1.75, "y":3.25}, + {"matrix":[3,2], "x":2.75, "y":3.25}, + {"matrix":[3,3], "x":3.75, "y":3.25}, + {"matrix":[3,4], "x":4.75, "y":3.25}, + {"matrix":[3,5], "x":5.75, "y":3.25}, + {"matrix":[3,6], "x":6.75, "y":3.25}, + {"matrix":[3,7], "x":7.75, "y":3.25}, + {"matrix":[3,8], "x":8.75, "y":3.25}, + {"matrix":[3,9], "x":9.75, "y":3.25}, + {"matrix":[3,10], "x":10.75, "y":3.25}, + {"matrix":[3,11], "x":11.75, "y":3.25}, + {"matrix":[3,13], "x":12.75, "y":3.25, "w":2.25}, + {"matrix":[3,15], "x":15.25, "y":3.25}, + + {"matrix":[4,0], "x":0, "y":4.25, "w":2.25}, + {"matrix":[4,2], "x":2.25, "y":4.25}, + {"matrix":[4,3], "x":3.25, "y":4.25}, + {"matrix":[4,4], "x":4.25, "y":4.25}, + {"matrix":[4,5], "x":5.25, "y":4.25}, + {"matrix":[4,6], "x":6.25, "y":4.25}, + {"matrix":[4,7], "x":7.25, "y":4.25}, + {"matrix":[4,8], "x":8.25, "y":4.25}, + {"matrix":[4,9], "x":9.25, "y":4.25}, + {"matrix":[4,10], "x":10.25, "y":4.25}, + {"matrix":[4,11], "x":11.25, "y":4.25}, + {"matrix":[4,13], "x":12.25, "y":4.25, "w":1.75}, + {"matrix":[4,14], "x":14.25, "y":4.5}, + + {"matrix":[5,0], "x":0, "y":5.25, "w":1.25}, + {"matrix":[5,1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix":[5,2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix":[5,6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix":[5,10], "x":10, "y":5.25}, + {"matrix":[5,11], "x":11, "y":5.25}, + {"matrix":[5,12], "x":12, "y":5.25}, + {"matrix":[5,13], "x":13.25, "y":5.5}, + {"matrix":[5,14], "x":14.25, "y":5.5}, + {"matrix":[5,15], "x":15.25, "y":5.5} + ] + } + }, + "rgb_matrix": { + "layout": [ + {"matrix":[0, 0], "flags":1, "x":0, "y":0}, + {"matrix":[0, 1], "flags":1, "x":18, "y":0}, + {"matrix":[0, 2], "flags":1, "x":33, "y":0}, + {"matrix":[0, 3], "flags":1, "x":48, "y":0}, + {"matrix":[0, 4], "flags":1, "x":62, "y":0}, + {"matrix":[0, 5], "flags":1, "x":81, "y":0}, + {"matrix":[0, 6], "flags":1, "x":95, "y":0}, + {"matrix":[0, 7], "flags":1, "x":110, "y":0}, + {"matrix":[0, 8], "flags":1, "x":125, "y":0}, + {"matrix":[0, 9], "flags":1, "x":143, "y":0}, + {"matrix":[0, 10], "flags":1, "x":158, "y":0}, + {"matrix":[0, 11], "flags":1, "x":173, "y":0}, + {"matrix":[0, 12], "flags":1, "x":187, "y":0}, + {"matrix":[0, 13], "flags":1, "x":206, "y":0}, + {"matrix":[0, 15], "flags":1, "x":224, "y":0}, + + {"matrix":[1, 0], "flags":1, "x":0, "y":15}, + {"matrix":[1, 1], "flags":4, "x":15, "y":15}, + {"matrix":[1, 2], "flags":4, "x":29, "y":15}, + {"matrix":[1, 3], "flags":4, "x":44, "y":15}, + {"matrix":[1, 4], "flags":4, "x":59, "y":15}, + {"matrix":[1, 5], "flags":4, "x":73, "y":15}, + {"matrix":[1, 6], "flags":4, "x":88, "y":15}, + {"matrix":[1, 7], "flags":4, "x":103, "y":15}, + {"matrix":[1, 8], "flags":4, "x":118, "y":15}, + {"matrix":[1, 9], "flags":4, "x":132, "y":15}, + {"matrix":[1, 10], "flags":4, "x":147, "y":15}, + {"matrix":[1, 11], "flags":4, "x":162, "y":15}, + {"matrix":[1, 12], "flags":4, "x":176, "y":15}, + {"matrix":[1, 13], "flags":1, "x":198, "y":15}, + {"matrix":[1, 15], "flags":1, "x":224, "y":15}, + + {"matrix":[2, 0], "flags":1, "x":4, "y":26}, + {"matrix":[2, 1], "flags":4, "x":22, "y":26}, + {"matrix":[2, 2], "flags":4, "x":37, "y":26}, + {"matrix":[2, 3], "flags":4, "x":51, "y":26}, + {"matrix":[2, 4], "flags":4, "x":66, "y":26}, + {"matrix":[2, 5], "flags":4, "x":81, "y":26}, + {"matrix":[2, 6], "flags":4, "x":95, "y":26}, + {"matrix":[2, 7], "flags":4, "x":110, "y":26}, + {"matrix":[2, 8], "flags":4, "x":125, "y":26}, + {"matrix":[2, 9], "flags":4, "x":140, "y":26}, + {"matrix":[2, 10], "flags":4, "x":154, "y":26}, + {"matrix":[2, 11], "flags":4, "x":169, "y":26}, + {"matrix":[2, 12], "flags":4, "x":184, "y":26}, + {"matrix":[2, 13], "flags":4, "x":202, "y":26}, + {"matrix":[2, 15], "flags":1, "x":224, "y":26}, + + {"matrix":[3, 0], "flags":9, "x":6, "y":38}, + {"matrix":[3, 1], "flags":4, "x":26, "y":38}, + {"matrix":[3, 2], "flags":4, "x":40, "y":38}, + {"matrix":[3, 3], "flags":4, "x":55, "y":38}, + {"matrix":[3, 4], "flags":4, "x":70, "y":38}, + {"matrix":[3, 5], "flags":4, "x":84, "y":38}, + {"matrix":[3, 6], "flags":4, "x":99, "y":38}, + {"matrix":[3, 7], "flags":4, "x":114, "y":38}, + {"matrix":[3, 8], "flags":4, "x":129, "y":38}, + {"matrix":[3, 9], "flags":4, "x":143, "y":38}, + {"matrix":[3, 10], "flags":4, "x":158, "y":38}, + {"matrix":[3, 11], "flags":4, "x":173, "y":38}, + {"matrix":[3, 13], "flags":1, "x":196, "y":38}, + {"matrix":[3, 15], "flags":1, "x":224, "y":38}, + + {"matrix":[4, 0], "flags":1, "x":9, "y":49}, + {"matrix":[4, 2], "flags":4, "x":33, "y":49}, + {"matrix":[4, 3], "flags":4, "x":48, "y":49}, + {"matrix":[4, 4], "flags":4, "x":62, "y":49}, + {"matrix":[4, 5], "flags":4, "x":77, "y":49}, + {"matrix":[4, 6], "flags":4, "x":92, "y":49}, + {"matrix":[4, 7], "flags":4, "x":106, "y":49}, + {"matrix":[4, 8], "flags":4, "x":121, "y":49}, + {"matrix":[4, 9], "flags":4, "x":136, "y":49}, + {"matrix":[4, 10], "flags":4, "x":151, "y":49}, + {"matrix":[4, 11], "flags":4, "x":165, "y":49}, + {"matrix":[4, 13], "flags":1, "x":185, "y":49}, + {"matrix":[4, 14], "flags":1, "x":209, "y":52}, + + {"matrix":[5, 0], "flags":1, "x":2, "y":61}, + {"matrix":[5, 1], "flags":1, "x":20, "y":61}, + {"matrix":[5, 2], "flags":1, "x":39, "y":61}, + {"matrix":[5, 6], "flags":4, "x":94, "y":61}, + {"matrix":[5, 10], "flags":1, "x":147, "y":61}, + {"matrix":[5, 11], "flags":1, "x":162, "y":61}, + {"matrix":[5, 12], "flags":1, "x":176, "y":61}, + {"matrix":[5, 13], "flags":1, "x":195, "y":64}, + {"matrix":[5, 14], "flags":1, "x":209, "y":64}, + {"matrix":[5, 15], "flags":1, "x":224, "y":64} + ] + } +} diff --git a/keyboards/keychron/q1v2/ansi/keymaps/default/keymap.c b/keyboards/keychron/q1v2/ansi/keymaps/default/keymap.c new file mode 100644 index 0000000000..383a43cdb2 --- /dev/null +++ b/keyboards/keychron/q1v2/ansi/keymaps/default/keymap.c @@ -0,0 +1,63 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN, +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_ansi_82( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, + KC_GRV, 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_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_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_ansi_82( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_ansi_82( + KC_ESC, 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_DEL, KC_INS, + KC_GRV, 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_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_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_ansi_82( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/keychron/q1v2/ansi/keymaps/keychron/keymap.c b/keyboards/keychron/q1v2/ansi/keymaps/keychron/keymap.c new file mode 100644 index 0000000000..3a6676196f --- /dev/null +++ b/keyboards/keychron/q1v2/ansi/keymaps/keychron/keymap.c @@ -0,0 +1,74 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "keychron_common.h" + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_ansi_82( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, + KC_GRV, 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_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_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_ansi_82( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_ansi_82( + KC_ESC, 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_DEL, KC_INS, + KC_GRV, 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_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_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_ansi_82( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +// clang-format on + +void housekeeping_task_user(void) { + housekeeping_task_keychron(); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_record_keychron(keycode, record)) { + return false; + } + return true; +} diff --git a/keyboards/keychron/q1v2/ansi/keymaps/keychron/rules.mk b/keyboards/keychron/q1v2/ansi/keymaps/keychron/rules.mk new file mode 100644 index 0000000000..495e8907b4 --- /dev/null +++ b/keyboards/keychron/q1v2/ansi/keymaps/keychron/rules.mk @@ -0,0 +1,4 @@ +VIA_ENABLE = yes + +VPATH += keyboards/keychron/common +SRC += keychron_common.c diff --git a/keyboards/keychron/q1v2/ansi/keymaps/via/keymap.c b/keyboards/keychron/q1v2/ansi/keymaps/via/keymap.c new file mode 100644 index 0000000000..ad35cfb78e --- /dev/null +++ b/keyboards/keychron/q1v2/ansi/keymaps/via/keymap.c @@ -0,0 +1,63 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_ansi_82( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, + KC_GRV, 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_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_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_ansi_82( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_ansi_82( + KC_ESC, 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_DEL, KC_INS, + KC_GRV, 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_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_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_ansi_82( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/keychron/q1v2/ansi/keymaps/via/rules.mk b/keyboards/keychron/q1v2/ansi/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/keychron/q1v2/ansi/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/keychron/q1v2/ansi/rules.mk b/keyboards/keychron/q1v2/ansi/rules.mk new file mode 100644 index 0000000000..36ee49ccb0 --- /dev/null +++ b/keyboards/keychron/q1v2/ansi/rules.mk @@ -0,0 +1 @@ +SRC += matrix.c diff --git a/keyboards/keychron/q1v2/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q1v2/ansi_encoder/ansi_encoder.c new file mode 100644 index 0000000000..ea6c6278d1 --- /dev/null +++ b/keyboards/keychron/q1v2/ansi_encoder/ansi_encoder.c @@ -0,0 +1,117 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE + +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to CKLED2001 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C_1, A_1, B_1}, + {0, C_2, A_2, B_2}, + {0, C_3, A_3, B_3}, + {0, C_4, A_4, B_4}, + {0, C_5, A_5, B_5}, + {0, C_6, A_6, B_6}, + {0, C_7, A_7, B_7}, + {0, C_8, A_8, B_8}, + {0, C_9, A_9, B_9}, + {0, C_10, A_10, B_10}, + {0, C_11, A_11, B_11}, + {0, C_12, A_12, B_12}, + {0, C_13, A_13, B_13}, + {0, C_14, A_14, B_14}, + {0, C_16, A_16, B_16}, + + {0, I_1, G_1, H_1}, + {0, I_2, G_2, H_2}, + {0, I_3, G_3, H_3}, + {0, I_4, G_4, H_4}, + {0, I_5, G_5, H_5}, + {0, I_6, G_6, H_6}, + {0, I_7, G_7, H_7}, + {0, I_8, G_8, H_8}, + {0, I_9, G_9, H_9}, + {0, I_10, G_10, H_10}, + {0, I_11, G_11, H_11}, + {0, I_12, G_12, H_12}, + {0, I_13, G_13, H_13}, + {0, I_14, G_14, H_14}, + {0, I_16, G_16, H_16}, + + {0, F_1, D_1, E_1}, + {0, F_2, D_2, E_2}, + {0, F_3, D_3, E_3}, + {0, F_4, D_4, E_4}, + {0, F_5, D_5, E_5}, + {0, F_6, D_6, E_6}, + {0, F_7, D_7, E_7}, + {0, F_8, D_8, E_8}, + {0, F_9, D_9, E_9}, + {0, F_10, D_10, E_10}, + {0, F_11, D_11, E_11}, + {0, F_12, D_12, E_12}, + {0, F_13, D_13, E_13}, + {0, F_14, D_14, E_14}, + {0, F_16, D_16, E_16}, + + {1, I_1, G_1, H_1}, + {1, I_2, G_2, H_2}, + {1, I_3, G_3, H_3}, + {1, I_4, G_4, H_4}, + {1, I_5, G_5, H_5}, + {1, I_6, G_6, H_6}, + {1, I_7, G_7, H_7}, + {1, I_8, G_8, H_8}, + {1, I_9, G_9, H_9}, + {1, I_10, G_10, H_10}, + {1, I_11, G_11, H_11}, + {1, I_12, G_12, H_12}, + {1, I_14, G_14, H_14}, + {1, I_16, G_16, H_16}, + + {1, F_1, D_1, E_1}, + {1, F_3, D_3, E_3}, + {1, F_4, D_4, E_4}, + {1, F_5, D_5, E_5}, + {1, F_6, D_6, E_6}, + {1, F_7, D_7, E_7}, + {1, F_8, D_8, E_8}, + {1, F_9, D_9, E_9}, + {1, F_10, D_10, E_10}, + {1, F_11, D_11, E_11}, + {1, F_12, D_12, E_12}, + {1, F_14, D_14, E_14}, + {1, F_15, D_15, E_15}, + + {1, C_1, A_1, B_1}, + {1, C_2, A_2, B_2}, + {1, C_3, A_3, B_3}, + {1, C_7, A_7, B_7}, + {1, C_11, A_11, B_11}, + {1, C_12, A_12, B_12}, + {1, C_13, A_13, B_13}, + {1, C_14, A_14, B_14}, + {1, C_15, A_15, B_15}, + {1, C_16, A_16, B_16}, +}; + +#endif diff --git a/keyboards/keychron/q1v2/ansi_encoder/config.h b/keyboards/keychron/q1v2/ansi_encoder/config.h new file mode 100644 index 0000000000..0dce301c3c --- /dev/null +++ b/keyboards/keychron/q1v2/ansi_encoder/config.h @@ -0,0 +1,28 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* RGB Matrix Configuration */ +#define DRIVER_1_LED_TOTAL 45 +#define DRIVER_2_LED_TOTAL 37 +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) + +/* Encoder Configuration */ +#define ENCODER_DEFAULT_POS 0x3 + +/* Enable caps-lock LED */ +#define CAPS_LOCK_LED_INDEX 45 diff --git a/keyboards/keychron/q1v2/ansi_encoder/info.json b/keyboards/keychron/q1v2/ansi_encoder/info.json new file mode 100644 index 0000000000..616c444891 --- /dev/null +++ b/keyboards/keychron/q1v2/ansi_encoder/info.json @@ -0,0 +1,199 @@ +{ + "usb": { + "pid": "0x0107", + "device_version": "2.0.0" + }, + "features": { + "encoder": true + }, + "encoder": { + "enabled": true, + "rotary": [ + {"pin_a": "A10", "pin_b": "A8", "resolution": 4} + ] + }, + "layouts": { + "LAYOUT_ansi_82": { + "layout": [ + {"matrix":[0,0], "x":0, "y":0}, + {"matrix":[0,1], "x":1.25, "y":0}, + {"matrix":[0,2], "x":2.25, "y":0}, + {"matrix":[0,3], "x":3.25, "y":0}, + {"matrix":[0,4], "x":4.25, "y":0}, + {"matrix":[0,5], "x":5.5, "y":0}, + {"matrix":[0,6], "x":6.5, "y":0}, + {"matrix":[0,7], "x":7.5, "y":0}, + {"matrix":[0,8], "x":8.5, "y":0}, + {"matrix":[0,9], "x":9.75, "y":0}, + {"matrix":[0,10], "x":10.75, "y":0}, + {"matrix":[0,11], "x":11.75, "y":0}, + {"matrix":[0,12], "x":12.75, "y":0}, + {"matrix":[0,13], "x":14, "y":0}, + {"matrix":[0,15], "x":15.25, "y":0}, + + {"matrix":[1,0], "x":0, "y":1.25}, + {"matrix":[1,1], "x":1, "y":1.25}, + {"matrix":[1,2], "x":2, "y":1.25}, + {"matrix":[1,3], "x":3, "y":1.25}, + {"matrix":[1,4], "x":4, "y":1.25}, + {"matrix":[1,5], "x":5, "y":1.25}, + {"matrix":[1,6], "x":6, "y":1.25}, + {"matrix":[1,7], "x":7, "y":1.25}, + {"matrix":[1,8], "x":8, "y":1.25}, + {"matrix":[1,9], "x":9, "y":1.25}, + {"matrix":[1,10], "x":10, "y":1.25}, + {"matrix":[1,11], "x":11, "y":1.25}, + {"matrix":[1,12], "x":12, "y":1.25}, + {"matrix":[1,13], "x":13, "y":1.25, "w":2}, + {"matrix":[1,15], "x":15.25, "y":1.25}, + + {"matrix":[2,0], "x":0, "y":2.25, "w":1.5}, + {"matrix":[2,1], "x":1.5, "y":2.25}, + {"matrix":[2,2], "x":2.5, "y":2.25}, + {"matrix":[2,3], "x":3.5, "y":2.25}, + {"matrix":[2,4], "x":4.5, "y":2.25}, + {"matrix":[2,5], "x":5.5, "y":2.25}, + {"matrix":[2,6], "x":6.5, "y":2.25}, + {"matrix":[2,7], "x":7.5, "y":2.25}, + {"matrix":[2,8], "x":8.5, "y":2.25}, + {"matrix":[2,9], "x":9.5, "y":2.25}, + {"matrix":[2,10], "x":10.5, "y":2.25}, + {"matrix":[2,11], "x":11.5, "y":2.25}, + {"matrix":[2,12], "x":12.5, "y":2.25}, + {"matrix":[2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix":[2,15], "x":15.25, "y":2.25}, + + {"matrix":[3,0], "x":0, "y":3.25, "w":1.75}, + {"matrix":[3,1], "x":1.75, "y":3.25}, + {"matrix":[3,2], "x":2.75, "y":3.25}, + {"matrix":[3,3], "x":3.75, "y":3.25}, + {"matrix":[3,4], "x":4.75, "y":3.25}, + {"matrix":[3,5], "x":5.75, "y":3.25}, + {"matrix":[3,6], "x":6.75, "y":3.25}, + {"matrix":[3,7], "x":7.75, "y":3.25}, + {"matrix":[3,8], "x":8.75, "y":3.25}, + {"matrix":[3,9], "x":9.75, "y":3.25}, + {"matrix":[3,10], "x":10.75, "y":3.25}, + {"matrix":[3,11], "x":11.75, "y":3.25}, + {"matrix":[3,13], "x":12.75, "y":3.25, "w":2.25}, + {"matrix":[3,15], "x":15.25, "y":3.25}, + + {"matrix":[4,0], "x":0, "y":4.25, "w":2.25}, + {"matrix":[4,2], "x":2.25, "y":4.25}, + {"matrix":[4,3], "x":3.25, "y":4.25}, + {"matrix":[4,4], "x":4.25, "y":4.25}, + {"matrix":[4,5], "x":5.25, "y":4.25}, + {"matrix":[4,6], "x":6.25, "y":4.25}, + {"matrix":[4,7], "x":7.25, "y":4.25}, + {"matrix":[4,8], "x":8.25, "y":4.25}, + {"matrix":[4,9], "x":9.25, "y":4.25}, + {"matrix":[4,10], "x":10.25, "y":4.25}, + {"matrix":[4,11], "x":11.25, "y":4.25}, + {"matrix":[4,13], "x":12.25, "y":4.25, "w":1.75}, + {"matrix":[4,14], "x":14.25, "y":4.5}, + + {"matrix":[5,0], "x":0, "y":5.25, "w":1.25}, + {"matrix":[5,1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix":[5,2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix":[5,6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix":[5,10], "x":10, "y":5.25}, + {"matrix":[5,11], "x":11, "y":5.25}, + {"matrix":[5,12], "x":12, "y":5.25}, + {"matrix":[5,13], "x":13.25, "y":5.5}, + {"matrix":[5,14], "x":14.25, "y":5.5}, + {"matrix":[5,15], "x":15.25, "y":5.5} + ] + } + }, + "rgb_matrix": { + "layout": [ + {"matrix":[0, 0], "flags":1, "x":0, "y":0}, + {"matrix":[0, 1], "flags":1, "x":18, "y":0}, + {"matrix":[0, 2], "flags":1, "x":33, "y":0}, + {"matrix":[0, 3], "flags":1, "x":48, "y":0}, + {"matrix":[0, 4], "flags":1, "x":62, "y":0}, + {"matrix":[0, 5], "flags":1, "x":81, "y":0}, + {"matrix":[0, 6], "flags":1, "x":95, "y":0}, + {"matrix":[0, 7], "flags":1, "x":110, "y":0}, + {"matrix":[0, 8], "flags":1, "x":125, "y":0}, + {"matrix":[0, 9], "flags":1, "x":143, "y":0}, + {"matrix":[0, 10], "flags":1, "x":158, "y":0}, + {"matrix":[0, 11], "flags":1, "x":173, "y":0}, + {"matrix":[0, 12], "flags":1, "x":187, "y":0}, + {"matrix":[0, 13], "flags":1, "x":206, "y":0}, + {"matrix":[0, 15], "flags":1, "x":224, "y":0}, + + {"matrix":[1, 0], "flags":1, "x":0, "y":15}, + {"matrix":[1, 1], "flags":4, "x":15, "y":15}, + {"matrix":[1, 2], "flags":4, "x":29, "y":15}, + {"matrix":[1, 3], "flags":4, "x":44, "y":15}, + {"matrix":[1, 4], "flags":4, "x":59, "y":15}, + {"matrix":[1, 5], "flags":4, "x":73, "y":15}, + {"matrix":[1, 6], "flags":4, "x":88, "y":15}, + {"matrix":[1, 7], "flags":4, "x":103, "y":15}, + {"matrix":[1, 8], "flags":4, "x":118, "y":15}, + {"matrix":[1, 9], "flags":4, "x":132, "y":15}, + {"matrix":[1, 10], "flags":4, "x":147, "y":15}, + {"matrix":[1, 11], "flags":4, "x":162, "y":15}, + {"matrix":[1, 12], "flags":4, "x":176, "y":15}, + {"matrix":[1, 13], "flags":1, "x":198, "y":15}, + {"matrix":[1, 15], "flags":1, "x":224, "y":15}, + + {"matrix":[2, 0], "flags":1, "x":4, "y":26}, + {"matrix":[2, 1], "flags":4, "x":22, "y":26}, + {"matrix":[2, 2], "flags":4, "x":37, "y":26}, + {"matrix":[2, 3], "flags":4, "x":51, "y":26}, + {"matrix":[2, 4], "flags":4, "x":66, "y":26}, + {"matrix":[2, 5], "flags":4, "x":81, "y":26}, + {"matrix":[2, 6], "flags":4, "x":95, "y":26}, + {"matrix":[2, 7], "flags":4, "x":110, "y":26}, + {"matrix":[2, 8], "flags":4, "x":125, "y":26}, + {"matrix":[2, 9], "flags":4, "x":140, "y":26}, + {"matrix":[2, 10], "flags":4, "x":154, "y":26}, + {"matrix":[2, 11], "flags":4, "x":169, "y":26}, + {"matrix":[2, 12], "flags":4, "x":184, "y":26}, + {"matrix":[2, 13], "flags":4, "x":202, "y":26}, + {"matrix":[2, 15], "flags":1, "x":224, "y":26}, + + {"matrix":[3, 0], "flags":9, "x":6, "y":38}, + {"matrix":[3, 1], "flags":4, "x":26, "y":38}, + {"matrix":[3, 2], "flags":4, "x":40, "y":38}, + {"matrix":[3, 3], "flags":4, "x":55, "y":38}, + {"matrix":[3, 4], "flags":4, "x":70, "y":38}, + {"matrix":[3, 5], "flags":4, "x":84, "y":38}, + {"matrix":[3, 6], "flags":4, "x":99, "y":38}, + {"matrix":[3, 7], "flags":4, "x":114, "y":38}, + {"matrix":[3, 8], "flags":4, "x":129, "y":38}, + {"matrix":[3, 9], "flags":4, "x":143, "y":38}, + {"matrix":[3, 10], "flags":4, "x":158, "y":38}, + {"matrix":[3, 11], "flags":4, "x":173, "y":38}, + {"matrix":[3, 13], "flags":1, "x":196, "y":38}, + {"matrix":[3, 15], "flags":1, "x":224, "y":38}, + + {"matrix":[4, 0], "flags":1, "x":9, "y":49}, + {"matrix":[4, 2], "flags":4, "x":33, "y":49}, + {"matrix":[4, 3], "flags":4, "x":48, "y":49}, + {"matrix":[4, 4], "flags":4, "x":62, "y":49}, + {"matrix":[4, 5], "flags":4, "x":77, "y":49}, + {"matrix":[4, 6], "flags":4, "x":92, "y":49}, + {"matrix":[4, 7], "flags":4, "x":106, "y":49}, + {"matrix":[4, 8], "flags":4, "x":121, "y":49}, + {"matrix":[4, 9], "flags":4, "x":136, "y":49}, + {"matrix":[4, 10], "flags":4, "x":151, "y":49}, + {"matrix":[4, 11], "flags":4, "x":165, "y":49}, + {"matrix":[4, 13], "flags":1, "x":185, "y":49}, + {"matrix":[4, 14], "flags":1, "x":209, "y":52}, + + {"matrix":[5, 0], "flags":1, "x":2, "y":61}, + {"matrix":[5, 1], "flags":1, "x":20, "y":61}, + {"matrix":[5, 2], "flags":1, "x":39, "y":61}, + {"matrix":[5, 6], "flags":4, "x":94, "y":61}, + {"matrix":[5, 10], "flags":1, "x":147, "y":61}, + {"matrix":[5, 11], "flags":1, "x":162, "y":61}, + {"matrix":[5, 12], "flags":1, "x":176, "y":61}, + {"matrix":[5, 13], "flags":1, "x":195, "y":64}, + {"matrix":[5, 14], "flags":1, "x":209, "y":64}, + {"matrix":[5, 15], "flags":1, "x":224, "y":64} + ] + } +} diff --git a/keyboards/keychron/q1v2/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/q1v2/ansi_encoder/keymaps/default/keymap.c new file mode 100644 index 0000000000..d442412524 --- /dev/null +++ b/keyboards/keychron/q1v2/ansi_encoder/keymaps/default/keymap.c @@ -0,0 +1,72 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_ansi_82( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, + KC_GRV, 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_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_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_ansi_82( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_ansi_82( + KC_ESC, 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_DEL, KC_MUTE, + KC_GRV, 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_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_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LCMD, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_ansi_82( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)} +}; +#endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q1v2/ansi_encoder/keymaps/default/rules.mk b/keyboards/keychron/q1v2/ansi_encoder/keymaps/default/rules.mk new file mode 100644 index 0000000000..a40474b4d5 --- /dev/null +++ b/keyboards/keychron/q1v2/ansi_encoder/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/keychron/q1v2/ansi_encoder/keymaps/keychron/keymap.c b/keyboards/keychron/q1v2/ansi_encoder/keymaps/keychron/keymap.c new file mode 100644 index 0000000000..9de2b88de9 --- /dev/null +++ b/keyboards/keychron/q1v2/ansi_encoder/keymaps/keychron/keymap.c @@ -0,0 +1,83 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "keychron_common.h" + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_ansi_82( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, + KC_GRV, 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_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_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_ansi_82( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_ansi_82( + KC_ESC, 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_DEL, KC_MUTE, + KC_GRV, 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_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_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_ansi_82( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)} +}; +#endif // ENCODER_MAP_ENABLE + +// clang-format on + +void housekeeping_task_user(void) { + housekeeping_task_keychron(); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_record_keychron(keycode, record)) { + return false; + } + return true; +} diff --git a/keyboards/keychron/q1v2/ansi_encoder/keymaps/keychron/rules.mk b/keyboards/keychron/q1v2/ansi_encoder/keymaps/keychron/rules.mk new file mode 100644 index 0000000000..9cf1a9b56c --- /dev/null +++ b/keyboards/keychron/q1v2/ansi_encoder/keymaps/keychron/rules.mk @@ -0,0 +1,5 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes + +VPATH += keyboards/keychron/common +SRC += keychron_common.c diff --git a/keyboards/keychron/q1v2/ansi_encoder/keymaps/via/keymap.c b/keyboards/keychron/q1v2/ansi_encoder/keymaps/via/keymap.c new file mode 100644 index 0000000000..e299e1c96b --- /dev/null +++ b/keyboards/keychron/q1v2/ansi_encoder/keymaps/via/keymap.c @@ -0,0 +1,74 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_ansi_82( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, + KC_GRV, 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_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_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_ansi_82( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_ansi_82( + KC_ESC, 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_DEL, KC_MUTE, + KC_GRV, 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_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_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LCMD, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_ansi_82( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +// clang-format on + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)} +}; +#endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q1v2/ansi_encoder/keymaps/via/rules.mk b/keyboards/keychron/q1v2/ansi_encoder/keymaps/via/rules.mk new file mode 100644 index 0000000000..f1adcab005 --- /dev/null +++ b/keyboards/keychron/q1v2/ansi_encoder/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/q1v2/ansi_encoder/rules.mk b/keyboards/keychron/q1v2/ansi_encoder/rules.mk new file mode 100644 index 0000000000..36ee49ccb0 --- /dev/null +++ b/keyboards/keychron/q1v2/ansi_encoder/rules.mk @@ -0,0 +1 @@ +SRC += matrix.c diff --git a/keyboards/keychron/q1v2/config.h b/keyboards/keychron/q1v2/config.h new file mode 100644 index 0000000000..e2d331c1ac --- /dev/null +++ b/keyboards/keychron/q1v2/config.h @@ -0,0 +1,59 @@ +/* Copyright 2023 @ Keychron(https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* RGB Matrix Driver Configuration */ +#define DRIVER_COUNT 2 +#define DRIVER_ADDR_1 0b1110111 +#define DRIVER_ADDR_2 0b1110100 + +/* Increase I2C speed to 1000 KHz */ +#define I2C1_TIMINGR_PRESC 0U +#define I2C1_TIMINGR_SCLDEL 3U +#define I2C1_TIMINGR_SDADEL 0U +#define I2C1_TIMINGR_SCLH 15U +#define I2C1_TIMINGR_SCLL 51U + +/* DIP switch */ +#define DIP_SWITCH_MATRIX_GRID \ + { \ + { 5, 4 } \ + } + +/* Disable DIP switch in matrix data */ +#define MATRIX_MASKED + +/* Disable RGB lighting when PC is in suspend */ +#define RGB_DISABLE_WHEN_USB_SUSPENDED + +/* EEPROM Driver Configuration */ +#define WEAR_LEVELING_LOGICAL_SIZE 2048 +#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) + +/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ +#define PHASE_CHANNEL MSKPHASE_9CHANNEL +/* Set LED driver current */ +#define CKLED2001_CURRENT_TUNE \ + { 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50 } + +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES + +#define HOLD_ON_OTHER_KEY_PRESS // Old default behavior of mod-taps diff --git a/keyboards/keychron/q1v2/halconf.h b/keyboards/keychron/q1v2/halconf.h new file mode 100644 index 0000000000..41bddcb279 --- /dev/null +++ b/keyboards/keychron/q1v2/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/keychron/q1v2/info.json b/keyboards/keychron/q1v2/info.json new file mode 100644 index 0000000000..c4a75f0283 --- /dev/null +++ b/keyboards/keychron/q1v2/info.json @@ -0,0 +1,58 @@ +{ + "manufacturer": "Keychron", + "keyboard_name": "Keychron Q1", + "url": "https://github.com/Keychron", + "maintainer": "keychron-contrib", + "processor": "STM32L432", + "bootloader": "stm32-dfu", + "usb": { + "vid": "0x3434" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true, + "dip_switch": true + }, + "matrix_pins": { + "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", null, null, null, null, null, null, null, null], + "rows": ["B5", "B4", "B3", "A15", "A14", "A13"], + "custom": true, + "custom_lite": true + }, + "matrix_size": { + "cols": 16, + "rows": 6 + }, + "diode_direction": "ROW2COL", + "rgb_matrix": { + "driver": "ckled2001", + "animations": { + "band_spiral_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "jellybean_raindrops": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive_multiwide": true, + "solid_reactive_multinexus": true, + "splash": true, + "solid_splash": true + } + } +} diff --git a/keyboards/keychron/q1v2/iso/config.h b/keyboards/keychron/q1v2/iso/config.h new file mode 100644 index 0000000000..d9e596e2c5 --- /dev/null +++ b/keyboards/keychron/q1v2/iso/config.h @@ -0,0 +1,25 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* RGB Matrix Configuration */ +#define DRIVER_1_LED_TOTAL 45 +#define DRIVER_2_LED_TOTAL 38 +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) + +/* Enable caps-lock LED */ +#define CAPS_LOCK_LED_INDEX 44 diff --git a/keyboards/keychron/q1v2/iso/info.json b/keyboards/keychron/q1v2/iso/info.json new file mode 100644 index 0000000000..ed16a3a820 --- /dev/null +++ b/keyboards/keychron/q1v2/iso/info.json @@ -0,0 +1,192 @@ +{ + "usb": { + "pid": "0x0108", + "device_version": "2.0.0" + }, + "layouts": { + "LAYOUT_iso_83": { + "layout": [ + {"matrix":[0, 0], "x":0, "y":0}, + {"matrix":[0, 1], "x":1.25, "y":0}, + {"matrix":[0, 2], "x":2.25, "y":0}, + {"matrix":[0, 3], "x":3.25, "y":0}, + {"matrix":[0, 4], "x":4.25, "y":0}, + {"matrix":[0, 5], "x":5.5, "y":0}, + {"matrix":[0, 6], "x":6.5, "y":0}, + {"matrix":[0, 7], "x":7.5, "y":0}, + {"matrix":[0, 8], "x":8.5, "y":0}, + {"matrix":[0, 9], "x":9.75, "y":0}, + {"matrix":[0,10], "x":10.75, "y":0}, + {"matrix":[0,11], "x":11.75, "y":0}, + {"matrix":[0,12], "x":12.75, "y":0}, + {"matrix":[0,13], "x":14, "y":0}, + {"matrix":[0,15], "x":15.25, "y":0}, + + {"matrix":[1, 0], "x":0, "y":1.25}, + {"matrix":[1, 1], "x":1, "y":1.25}, + {"matrix":[1, 2], "x":2, "y":1.25}, + {"matrix":[1, 3], "x":3, "y":1.25}, + {"matrix":[1, 4], "x":4, "y":1.25}, + {"matrix":[1, 5], "x":5, "y":1.25}, + {"matrix":[1, 6], "x":6, "y":1.25}, + {"matrix":[1, 7], "x":7, "y":1.25}, + {"matrix":[1, 8], "x":8, "y":1.25}, + {"matrix":[1, 9], "x":9, "y":1.25}, + {"matrix":[1,10], "x":10, "y":1.25}, + {"matrix":[1,11], "x":11, "y":1.25}, + {"matrix":[1,12], "x":12, "y":1.25}, + {"matrix":[1,13], "x":13, "y":1.25, "w":2}, + {"matrix":[1,15], "x":15.25, "y":1.25}, + + {"matrix":[2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix":[2, 1], "x":1.5, "y":2.25}, + {"matrix":[2, 2], "x":2.5, "y":2.25}, + {"matrix":[2, 3], "x":3.5, "y":2.25}, + {"matrix":[2, 4], "x":4.5, "y":2.25}, + {"matrix":[2, 5], "x":5.5, "y":2.25}, + {"matrix":[2, 6], "x":6.5, "y":2.25}, + {"matrix":[2, 7], "x":7.5, "y":2.25}, + {"matrix":[2, 8], "x":8.5, "y":2.25}, + {"matrix":[2, 9], "x":9.5, "y":2.25}, + {"matrix":[2,10], "x":10.5, "y":2.25}, + {"matrix":[2,11], "x":11.5, "y":2.25}, + {"matrix":[2,12], "x":12.5, "y":2.25}, + {"matrix":[2,15], "x":15.25, "y":2.25}, + + {"matrix":[3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix":[3, 1], "x":1.75, "y":3.25}, + {"matrix":[3, 2], "x":2.75, "y":3.25}, + {"matrix":[3, 3], "x":3.75, "y":3.25}, + {"matrix":[3, 4], "x":4.75, "y":3.25}, + {"matrix":[3, 5], "x":5.75, "y":3.25}, + {"matrix":[3, 6], "x":6.75, "y":3.25}, + {"matrix":[3, 7], "x":7.75, "y":3.25}, + {"matrix":[3, 8], "x":8.75, "y":3.25}, + {"matrix":[3, 9], "x":9.75, "y":3.25}, + {"matrix":[3,10], "x":10.75, "y":3.25}, + {"matrix":[3,11], "x":11.75, "y":3.25}, + {"matrix":[3,13], "x":12.75, "y":3.25}, + {"matrix":[2,13], "x":13.75, "y":2.25, "w":1.25, "h":2}, + {"matrix":[3,15], "x":15.25, "y":3.25}, + + {"matrix":[4, 0], "x":0, "y":4.25, "w":1.25}, + {"matrix":[4, 1], "x":1.25, "y":4.25}, + {"matrix":[4, 2], "x":2.25, "y":4.25}, + {"matrix":[4, 3], "x":3.25, "y":4.25}, + {"matrix":[4, 4], "x":4.25, "y":4.25}, + {"matrix":[4, 5], "x":5.25, "y":4.25}, + {"matrix":[4, 6], "x":6.25, "y":4.25}, + {"matrix":[4, 7], "x":7.25, "y":4.25}, + {"matrix":[4, 8], "x":8.25, "y":4.25}, + {"matrix":[4, 9], "x":9.25, "y":4.25}, + {"matrix":[4,10], "x":10.25, "y":4.25}, + {"matrix":[4,11], "x":11.25, "y":4.25}, + {"matrix":[4,13], "x":12.25, "y":4.25, "w":1.75}, + {"matrix":[4,14], "x":14.25, "y":4.5}, + + {"matrix":[5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix":[5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix":[5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix":[5, 6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix":[5,10], "x":10, "y":5.25}, + {"matrix":[5,11], "x":11, "y":5.25}, + {"matrix":[5,12], "x":12, "y":5.25}, + {"matrix":[5,13], "x":13.25, "y":5.5}, + {"matrix":[5,14], "x":14.25, "y":5.5}, + {"matrix":[5,15], "x":15.25, "y":5.5} + ] + } + }, + "rgb_matrix": { + "layout": [ + {"matrix":[0, 0], "flags":1, "x":0, "y":0}, + {"matrix":[0, 1], "flags":1, "x":18, "y":0}, + {"matrix":[0, 2], "flags":1, "x":33, "y":0}, + {"matrix":[0, 3], "flags":1, "x":48, "y":0}, + {"matrix":[0, 4], "flags":1, "x":62, "y":0}, + {"matrix":[0, 5], "flags":1, "x":81, "y":0}, + {"matrix":[0, 6], "flags":1, "x":95, "y":0}, + {"matrix":[0, 7], "flags":1, "x":110, "y":0}, + {"matrix":[0, 8], "flags":1, "x":125, "y":0}, + {"matrix":[0, 9], "flags":1, "x":143, "y":0}, + {"matrix":[0, 10], "flags":1, "x":158, "y":0}, + {"matrix":[0, 11], "flags":1, "x":173, "y":0}, + {"matrix":[0, 12], "flags":1, "x":187, "y":0}, + {"matrix":[0, 13], "flags":1, "x":206, "y":0}, + {"matrix":[0, 15], "flags":1, "x":224, "y":0}, + + {"matrix":[1, 0], "flags":1, "x":0, "y":15}, + {"matrix":[1, 1], "flags":4, "x":15, "y":15}, + {"matrix":[1, 2], "flags":4, "x":29, "y":15}, + {"matrix":[1, 3], "flags":4, "x":44, "y":15}, + {"matrix":[1, 4], "flags":4, "x":59, "y":15}, + {"matrix":[1, 5], "flags":4, "x":73, "y":15}, + {"matrix":[1, 6], "flags":4, "x":88, "y":15}, + {"matrix":[1, 7], "flags":4, "x":103, "y":15}, + {"matrix":[1, 8], "flags":4, "x":118, "y":15}, + {"matrix":[1, 9], "flags":4, "x":132, "y":15}, + {"matrix":[1, 10], "flags":4, "x":147, "y":15}, + {"matrix":[1, 11], "flags":4, "x":162, "y":15}, + {"matrix":[1, 12], "flags":4, "x":176, "y":15}, + {"matrix":[1, 13], "flags":1, "x":198, "y":15}, + {"matrix":[1, 15], "flags":1, "x":224, "y":15}, + + {"matrix":[2, 0], "flags":1, "x":4, "y":26}, + {"matrix":[2, 1], "flags":4, "x":22, "y":26}, + {"matrix":[2, 2], "flags":4, "x":37, "y":26}, + {"matrix":[2, 3], "flags":4, "x":51, "y":26}, + {"matrix":[2, 4], "flags":4, "x":66, "y":26}, + {"matrix":[2, 5], "flags":4, "x":81, "y":26}, + {"matrix":[2, 6], "flags":4, "x":95, "y":26}, + {"matrix":[2, 7], "flags":4, "x":110, "y":26}, + {"matrix":[2, 8], "flags":4, "x":125, "y":26}, + {"matrix":[2, 9], "flags":4, "x":140, "y":26}, + {"matrix":[2, 10], "flags":4, "x":154, "y":26}, + {"matrix":[2, 11], "flags":4, "x":169, "y":26}, + {"matrix":[2, 12], "flags":4, "x":184, "y":26}, + {"matrix":[2, 15], "flags":1, "x":224, "y":26}, + + {"matrix":[3, 0], "flags":9, "x":6, "y":38}, + {"matrix":[3, 1], "flags":4, "x":26, "y":38}, + {"matrix":[3, 2], "flags":4, "x":40, "y":38}, + {"matrix":[3, 3], "flags":4, "x":55, "y":38}, + {"matrix":[3, 4], "flags":4, "x":70, "y":38}, + {"matrix":[3, 5], "flags":4, "x":84, "y":38}, + {"matrix":[3, 6], "flags":4, "x":99, "y":38}, + {"matrix":[3, 7], "flags":4, "x":114, "y":38}, + {"matrix":[3, 8], "flags":4, "x":129, "y":38}, + {"matrix":[3, 9], "flags":4, "x":143, "y":38}, + {"matrix":[3, 10], "flags":4, "x":158, "y":38}, + {"matrix":[3, 11], "flags":4, "x":173, "y":38}, + {"matrix":[3, 13], "flags":1, "x":187, "y":38}, + {"matrix":[2, 13], "flags":4, "x":203, "y":32}, + {"matrix":[3, 15], "flags":1, "x":224, "y":38}, + + {"matrix":[4, 0], "flags":1, "x":2, "y":49}, + {"matrix":[4, 1], "flags":4, "x":18, "y":49}, + {"matrix":[4, 2], "flags":4, "x":33, "y":49}, + {"matrix":[4, 3], "flags":4, "x":48, "y":49}, + {"matrix":[4, 4], "flags":4, "x":62, "y":49}, + {"matrix":[4, 5], "flags":4, "x":77, "y":49}, + {"matrix":[4, 6], "flags":4, "x":92, "y":49}, + {"matrix":[4, 7], "flags":4, "x":106, "y":49}, + {"matrix":[4, 8], "flags":4, "x":121, "y":49}, + {"matrix":[4, 9], "flags":4, "x":136, "y":49}, + {"matrix":[4, 10], "flags":4, "x":151, "y":49}, + {"matrix":[4, 11], "flags":4, "x":165, "y":49}, + {"matrix":[4, 13], "flags":1, "x":185, "y":49}, + {"matrix":[4, 14], "flags":1, "x":209, "y":52}, + + {"matrix":[5, 0], "flags":1, "x":2, "y":61}, + {"matrix":[5, 1], "flags":1, "x":20, "y":61}, + {"matrix":[5, 2], "flags":1, "x":39, "y":61}, + {"matrix":[5, 6], "flags":4, "x":94, "y":61}, + {"matrix":[5, 10], "flags":1, "x":147, "y":61}, + {"matrix":[5, 11], "flags":1, "x":162, "y":61}, + {"matrix":[5, 12], "flags":1, "x":176, "y":61}, + {"matrix":[5, 13], "flags":1, "x":195, "y":64}, + {"matrix":[5, 14], "flags":1, "x":209, "y":64}, + {"matrix":[5, 15], "flags":1, "x":224, "y":64} + ] + } +} diff --git a/keyboards/keychron/q1v2/iso/iso.c b/keyboards/keychron/q1v2/iso/iso.c new file mode 100644 index 0000000000..eae39c8d61 --- /dev/null +++ b/keyboards/keychron/q1v2/iso/iso.c @@ -0,0 +1,118 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE + +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to CKLED2001 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C_1, A_1, B_1}, + {0, C_2, A_2, B_2}, + {0, C_3, A_3, B_3}, + {0, C_4, A_4, B_4}, + {0, C_5, A_5, B_5}, + {0, C_6, A_6, B_6}, + {0, C_7, A_7, B_7}, + {0, C_8, A_8, B_8}, + {0, C_9, A_9, B_9}, + {0, C_10, A_10, B_10}, + {0, C_11, A_11, B_11}, + {0, C_12, A_12, B_12}, + {0, C_13, A_13, B_13}, + {0, C_14, A_14, B_14}, + {0, C_16, A_16, B_16}, + + {0, I_1, G_1, H_1}, + {0, I_2, G_2, H_2}, + {0, I_3, G_3, H_3}, + {0, I_4, G_4, H_4}, + {0, I_5, G_5, H_5}, + {0, I_6, G_6, H_6}, + {0, I_7, G_7, H_7}, + {0, I_8, G_8, H_8}, + {0, I_9, G_9, H_9}, + {0, I_10, G_10, H_10}, + {0, I_11, G_11, H_11}, + {0, I_12, G_12, H_12}, + {0, I_13, G_13, H_13}, + {0, I_14, G_14, H_14}, + {0, I_16, G_16, H_16}, + + {0, F_1, D_1, E_1}, + {0, F_2, D_2, E_2}, + {0, F_3, D_3, E_3}, + {0, F_4, D_4, E_4}, + {0, F_5, D_5, E_5}, + {0, F_6, D_6, E_6}, + {0, F_7, D_7, E_7}, + {0, F_8, D_8, E_8}, + {0, F_9, D_9, E_9}, + {0, F_10, D_10, E_10}, + {0, F_11, D_11, E_11}, + {0, F_12, D_12, E_12}, + {0, F_13, D_13, E_13}, + {0, F_16, D_16, E_16}, + + {1, I_1, G_1, H_1}, + {1, I_2, G_2, H_2}, + {1, I_3, G_3, H_3}, + {1, I_4, G_4, H_4}, + {1, I_5, G_5, H_5}, + {1, I_6, G_6, H_6}, + {1, I_7, G_7, H_7}, + {1, I_8, G_8, H_8}, + {1, I_9, G_9, H_9}, + {1, I_10, G_10, H_10}, + {1, I_11, G_11, H_11}, + {1, I_12, G_12, H_12}, + {1, I_14, G_14, H_14}, + {0, F_14, D_14, E_14}, + {1, I_16, G_16, H_16}, + + {1, F_1, D_1, E_1}, + {1, F_2, D_2, E_2}, + {1, F_3, D_3, E_3}, + {1, F_4, D_4, E_4}, + {1, F_5, D_5, E_5}, + {1, F_6, D_6, E_6}, + {1, F_7, D_7, E_7}, + {1, F_8, D_8, E_8}, + {1, F_9, D_9, E_9}, + {1, F_10, D_10, E_10}, + {1, F_11, D_11, E_11}, + {1, F_12, D_12, E_12}, + {1, F_14, D_14, E_14}, + {1, F_15, D_15, E_15}, + + {1, C_1, A_1, B_1}, + {1, C_2, A_2, B_2}, + {1, C_3, A_3, B_3}, + {1, C_7, A_7, B_7}, + {1, C_11, A_11, B_11}, + {1, C_12, A_12, B_12}, + {1, C_13, A_13, B_13}, + {1, C_14, A_14, B_14}, + {1, C_15, A_15, B_15}, + {1, C_16, A_16, B_16}, +}; + +#endif diff --git a/keyboards/keychron/q1v2/iso/keymaps/default/keymap.c b/keyboards/keychron/q1v2/iso/keymaps/default/keymap.c new file mode 100644 index 0000000000..f97a595ea6 --- /dev/null +++ b/keyboards/keychron/q1v2/iso/keymaps/default/keymap.c @@ -0,0 +1,63 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers { + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_iso_83( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, + KC_GRV, 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_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_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_HOME, + 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_RSFT, KC_UP, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_iso_83( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_iso_83( + KC_ESC, 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_DEL, KC_INS, + KC_GRV, 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_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_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_HOME, + 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_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_iso_83( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) +}; diff --git a/keyboards/keychron/q1v2/iso/keymaps/keychron/keymap.c b/keyboards/keychron/q1v2/iso/keymaps/keychron/keymap.c new file mode 100644 index 0000000000..30e1ef18bb --- /dev/null +++ b/keyboards/keychron/q1v2/iso/keymaps/keychron/keymap.c @@ -0,0 +1,74 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "keychron_common.h" + +// clang-format off + +enum layers { + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_iso_83( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, + KC_GRV, 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_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_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_HOME, + 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_RSFT, KC_UP, + KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_iso_83( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_iso_83( + KC_ESC, 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_DEL, KC_INS, + KC_GRV, 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_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_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_HOME, + 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_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_iso_83( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) +}; + +// clang-format on + +void housekeeping_task_user(void) { + housekeeping_task_keychron(); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_record_keychron(keycode, record)) { + return false; + } + return true; +} diff --git a/keyboards/keychron/q1v2/iso/keymaps/keychron/rules.mk b/keyboards/keychron/q1v2/iso/keymaps/keychron/rules.mk new file mode 100644 index 0000000000..495e8907b4 --- /dev/null +++ b/keyboards/keychron/q1v2/iso/keymaps/keychron/rules.mk @@ -0,0 +1,4 @@ +VIA_ENABLE = yes + +VPATH += keyboards/keychron/common +SRC += keychron_common.c diff --git a/keyboards/keychron/q1v2/iso/keymaps/via/keymap.c b/keyboards/keychron/q1v2/iso/keymaps/via/keymap.c new file mode 100644 index 0000000000..f97a595ea6 --- /dev/null +++ b/keyboards/keychron/q1v2/iso/keymaps/via/keymap.c @@ -0,0 +1,63 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers { + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_iso_83( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, + KC_GRV, 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_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_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_HOME, + 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_RSFT, KC_UP, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_iso_83( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_iso_83( + KC_ESC, 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_DEL, KC_INS, + KC_GRV, 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_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_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_HOME, + 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_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_iso_83( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) +}; diff --git a/keyboards/keychron/q1v2/iso/keymaps/via/rules.mk b/keyboards/keychron/q1v2/iso/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/keychron/q1v2/iso/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/keychron/q1v2/iso/rules.mk b/keyboards/keychron/q1v2/iso/rules.mk new file mode 100644 index 0000000000..36ee49ccb0 --- /dev/null +++ b/keyboards/keychron/q1v2/iso/rules.mk @@ -0,0 +1 @@ +SRC += matrix.c diff --git a/keyboards/keychron/q1v2/iso_encoder/config.h b/keyboards/keychron/q1v2/iso_encoder/config.h new file mode 100644 index 0000000000..ab9be499d9 --- /dev/null +++ b/keyboards/keychron/q1v2/iso_encoder/config.h @@ -0,0 +1,28 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* RGB Matrix Configuration */ +#define DRIVER_1_LED_TOTAL 45 +#define DRIVER_2_LED_TOTAL 38 +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) + +/* Encoder Configuration */ +#define ENCODER_DEFAULT_POS 0x3 + +/* Enable caps-lock LED */ +#define CAPS_LOCK_LED_INDEX 44 diff --git a/keyboards/keychron/q1v2/iso_encoder/info.json b/keyboards/keychron/q1v2/iso_encoder/info.json new file mode 100644 index 0000000000..38e34176b8 --- /dev/null +++ b/keyboards/keychron/q1v2/iso_encoder/info.json @@ -0,0 +1,201 @@ +{ + "usb": { + "pid": "0x0109", + "device_version": "2.0.0" + }, + "features": { + "encoder": true + }, + "encoder": { + "enabled": true, + "rotary": [ + {"pin_a": "A10", "pin_b": "A8", "resolution": 4} + ] + }, + "layouts": { + "LAYOUT_iso_83": { + "layout": [ + {"matrix":[0, 0], "x":0, "y":0}, + {"matrix":[0, 1], "x":1.25, "y":0}, + {"matrix":[0, 2], "x":2.25, "y":0}, + {"matrix":[0, 3], "x":3.25, "y":0}, + {"matrix":[0, 4], "x":4.25, "y":0}, + {"matrix":[0, 5], "x":5.5, "y":0}, + {"matrix":[0, 6], "x":6.5, "y":0}, + {"matrix":[0, 7], "x":7.5, "y":0}, + {"matrix":[0, 8], "x":8.5, "y":0}, + {"matrix":[0, 9], "x":9.75, "y":0}, + {"matrix":[0,10], "x":10.75, "y":0}, + {"matrix":[0,11], "x":11.75, "y":0}, + {"matrix":[0,12], "x":12.75, "y":0}, + {"matrix":[0,13], "x":14, "y":0}, + {"matrix":[0,15], "x":15.25, "y":0}, + + {"matrix":[1, 0], "x":0, "y":1.25}, + {"matrix":[1, 1], "x":1, "y":1.25}, + {"matrix":[1, 2], "x":2, "y":1.25}, + {"matrix":[1, 3], "x":3, "y":1.25}, + {"matrix":[1, 4], "x":4, "y":1.25}, + {"matrix":[1, 5], "x":5, "y":1.25}, + {"matrix":[1, 6], "x":6, "y":1.25}, + {"matrix":[1, 7], "x":7, "y":1.25}, + {"matrix":[1, 8], "x":8, "y":1.25}, + {"matrix":[1, 9], "x":9, "y":1.25}, + {"matrix":[1,10], "x":10, "y":1.25}, + {"matrix":[1,11], "x":11, "y":1.25}, + {"matrix":[1,12], "x":12, "y":1.25}, + {"matrix":[1,13], "x":13, "y":1.25, "w":2}, + {"matrix":[1,15], "x":15.25, "y":1.25}, + + {"matrix":[2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix":[2, 1], "x":1.5, "y":2.25}, + {"matrix":[2, 2], "x":2.5, "y":2.25}, + {"matrix":[2, 3], "x":3.5, "y":2.25}, + {"matrix":[2, 4], "x":4.5, "y":2.25}, + {"matrix":[2, 5], "x":5.5, "y":2.25}, + {"matrix":[2, 6], "x":6.5, "y":2.25}, + {"matrix":[2, 7], "x":7.5, "y":2.25}, + {"matrix":[2, 8], "x":8.5, "y":2.25}, + {"matrix":[2, 9], "x":9.5, "y":2.25}, + {"matrix":[2,10], "x":10.5, "y":2.25}, + {"matrix":[2,11], "x":11.5, "y":2.25}, + {"matrix":[2,12], "x":12.5, "y":2.25}, + {"matrix":[2,15], "x":15.25, "y":2.25}, + + {"matrix":[3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix":[3, 1], "x":1.75, "y":3.25}, + {"matrix":[3, 2], "x":2.75, "y":3.25}, + {"matrix":[3, 3], "x":3.75, "y":3.25}, + {"matrix":[3, 4], "x":4.75, "y":3.25}, + {"matrix":[3, 5], "x":5.75, "y":3.25}, + {"matrix":[3, 6], "x":6.75, "y":3.25}, + {"matrix":[3, 7], "x":7.75, "y":3.25}, + {"matrix":[3, 8], "x":8.75, "y":3.25}, + {"matrix":[3, 9], "x":9.75, "y":3.25}, + {"matrix":[3,10], "x":10.75, "y":3.25}, + {"matrix":[3,11], "x":11.75, "y":3.25}, + {"matrix":[3,13], "x":12.75, "y":3.25}, + {"matrix":[2,13], "x":13.75, "y":2.25, "w":1.25, "h":2}, + {"matrix":[3,15], "x":15.25, "y":3.25}, + + {"matrix":[4, 0], "x":0, "y":4.25, "w":1.25}, + {"matrix":[4, 1], "x":1.25, "y":4.25}, + {"matrix":[4, 2], "x":2.25, "y":4.25}, + {"matrix":[4, 3], "x":3.25, "y":4.25}, + {"matrix":[4, 4], "x":4.25, "y":4.25}, + {"matrix":[4, 5], "x":5.25, "y":4.25}, + {"matrix":[4, 6], "x":6.25, "y":4.25}, + {"matrix":[4, 7], "x":7.25, "y":4.25}, + {"matrix":[4, 8], "x":8.25, "y":4.25}, + {"matrix":[4, 9], "x":9.25, "y":4.25}, + {"matrix":[4,10], "x":10.25, "y":4.25}, + {"matrix":[4,11], "x":11.25, "y":4.25}, + {"matrix":[4,13], "x":12.25, "y":4.25, "w":1.75}, + {"matrix":[4,14], "x":14.25, "y":4.5}, + + {"matrix":[5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix":[5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix":[5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix":[5, 6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix":[5,10], "x":10, "y":5.25}, + {"matrix":[5,11], "x":11, "y":5.25}, + {"matrix":[5,12], "x":12, "y":5.25}, + {"matrix":[5,13], "x":13.25, "y":5.5}, + {"matrix":[5,14], "x":14.25, "y":5.5}, + {"matrix":[5,15], "x":15.25, "y":5.5} + ] + } + }, + "rgb_matrix": { + "layout": [ + {"matrix":[0, 0], "flags":1, "x":0, "y":0}, + {"matrix":[0, 1], "flags":1, "x":18, "y":0}, + {"matrix":[0, 2], "flags":1, "x":33, "y":0}, + {"matrix":[0, 3], "flags":1, "x":48, "y":0}, + {"matrix":[0, 4], "flags":1, "x":62, "y":0}, + {"matrix":[0, 5], "flags":1, "x":81, "y":0}, + {"matrix":[0, 6], "flags":1, "x":95, "y":0}, + {"matrix":[0, 7], "flags":1, "x":110, "y":0}, + {"matrix":[0, 8], "flags":1, "x":125, "y":0}, + {"matrix":[0, 9], "flags":1, "x":143, "y":0}, + {"matrix":[0, 10], "flags":1, "x":158, "y":0}, + {"matrix":[0, 11], "flags":1, "x":173, "y":0}, + {"matrix":[0, 12], "flags":1, "x":187, "y":0}, + {"matrix":[0, 13], "flags":1, "x":206, "y":0}, + {"matrix":[0, 15], "flags":1, "x":224, "y":0}, + + {"matrix":[1, 0], "flags":1, "x":0, "y":15}, + {"matrix":[1, 1], "flags":4, "x":15, "y":15}, + {"matrix":[1, 2], "flags":4, "x":29, "y":15}, + {"matrix":[1, 3], "flags":4, "x":44, "y":15}, + {"matrix":[1, 4], "flags":4, "x":59, "y":15}, + {"matrix":[1, 5], "flags":4, "x":73, "y":15}, + {"matrix":[1, 6], "flags":4, "x":88, "y":15}, + {"matrix":[1, 7], "flags":4, "x":103, "y":15}, + {"matrix":[1, 8], "flags":4, "x":118, "y":15}, + {"matrix":[1, 9], "flags":4, "x":132, "y":15}, + {"matrix":[1, 10], "flags":4, "x":147, "y":15}, + {"matrix":[1, 11], "flags":4, "x":162, "y":15}, + {"matrix":[1, 12], "flags":4, "x":176, "y":15}, + {"matrix":[1, 13], "flags":1, "x":198, "y":15}, + {"matrix":[1, 15], "flags":1, "x":224, "y":15}, + + {"matrix":[2, 0], "flags":1, "x":4, "y":26}, + {"matrix":[2, 1], "flags":4, "x":22, "y":26}, + {"matrix":[2, 2], "flags":4, "x":37, "y":26}, + {"matrix":[2, 3], "flags":4, "x":51, "y":26}, + {"matrix":[2, 4], "flags":4, "x":66, "y":26}, + {"matrix":[2, 5], "flags":4, "x":81, "y":26}, + {"matrix":[2, 6], "flags":4, "x":95, "y":26}, + {"matrix":[2, 7], "flags":4, "x":110, "y":26}, + {"matrix":[2, 8], "flags":4, "x":125, "y":26}, + {"matrix":[2, 9], "flags":4, "x":140, "y":26}, + {"matrix":[2, 10], "flags":4, "x":154, "y":26}, + {"matrix":[2, 11], "flags":4, "x":169, "y":26}, + {"matrix":[2, 12], "flags":4, "x":184, "y":26}, + {"matrix":[2, 15], "flags":1, "x":224, "y":26}, + + {"matrix":[3, 0], "flags":9, "x":6, "y":38}, + {"matrix":[3, 1], "flags":4, "x":26, "y":38}, + {"matrix":[3, 2], "flags":4, "x":40, "y":38}, + {"matrix":[3, 3], "flags":4, "x":55, "y":38}, + {"matrix":[3, 4], "flags":4, "x":70, "y":38}, + {"matrix":[3, 5], "flags":4, "x":84, "y":38}, + {"matrix":[3, 6], "flags":4, "x":99, "y":38}, + {"matrix":[3, 7], "flags":4, "x":114, "y":38}, + {"matrix":[3, 8], "flags":4, "x":129, "y":38}, + {"matrix":[3, 9], "flags":4, "x":143, "y":38}, + {"matrix":[3, 10], "flags":4, "x":158, "y":38}, + {"matrix":[3, 11], "flags":4, "x":173, "y":38}, + {"matrix":[3, 13], "flags":1, "x":187, "y":38}, + {"matrix":[2, 13], "flags":4, "x":203, "y":32}, + {"matrix":[3, 15], "flags":1, "x":224, "y":38}, + + {"matrix":[4, 0], "flags":1, "x":2, "y":49}, + {"matrix":[4, 1], "flags":4, "x":18, "y":49}, + {"matrix":[4, 2], "flags":4, "x":33, "y":49}, + {"matrix":[4, 3], "flags":4, "x":48, "y":49}, + {"matrix":[4, 4], "flags":4, "x":62, "y":49}, + {"matrix":[4, 5], "flags":4, "x":77, "y":49}, + {"matrix":[4, 6], "flags":4, "x":92, "y":49}, + {"matrix":[4, 7], "flags":4, "x":106, "y":49}, + {"matrix":[4, 8], "flags":4, "x":121, "y":49}, + {"matrix":[4, 9], "flags":4, "x":136, "y":49}, + {"matrix":[4, 10], "flags":4, "x":151, "y":49}, + {"matrix":[4, 11], "flags":4, "x":165, "y":49}, + {"matrix":[4, 13], "flags":1, "x":185, "y":49}, + {"matrix":[4, 14], "flags":1, "x":209, "y":52}, + + {"matrix":[5, 0], "flags":1, "x":2, "y":61}, + {"matrix":[5, 1], "flags":1, "x":20, "y":61}, + {"matrix":[5, 2], "flags":1, "x":39, "y":61}, + {"matrix":[5, 6], "flags":4, "x":94, "y":61}, + {"matrix":[5, 10], "flags":1, "x":147, "y":61}, + {"matrix":[5, 11], "flags":1, "x":162, "y":61}, + {"matrix":[5, 12], "flags":1, "x":176, "y":61}, + {"matrix":[5, 13], "flags":1, "x":195, "y":64}, + {"matrix":[5, 14], "flags":1, "x":209, "y":64}, + {"matrix":[5, 15], "flags":1, "x":224, "y":64} + ] + } +} diff --git a/keyboards/keychron/q1v2/iso_encoder/iso_encoder.c b/keyboards/keychron/q1v2/iso_encoder/iso_encoder.c new file mode 100644 index 0000000000..eae39c8d61 --- /dev/null +++ b/keyboards/keychron/q1v2/iso_encoder/iso_encoder.c @@ -0,0 +1,118 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE + +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to CKLED2001 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C_1, A_1, B_1}, + {0, C_2, A_2, B_2}, + {0, C_3, A_3, B_3}, + {0, C_4, A_4, B_4}, + {0, C_5, A_5, B_5}, + {0, C_6, A_6, B_6}, + {0, C_7, A_7, B_7}, + {0, C_8, A_8, B_8}, + {0, C_9, A_9, B_9}, + {0, C_10, A_10, B_10}, + {0, C_11, A_11, B_11}, + {0, C_12, A_12, B_12}, + {0, C_13, A_13, B_13}, + {0, C_14, A_14, B_14}, + {0, C_16, A_16, B_16}, + + {0, I_1, G_1, H_1}, + {0, I_2, G_2, H_2}, + {0, I_3, G_3, H_3}, + {0, I_4, G_4, H_4}, + {0, I_5, G_5, H_5}, + {0, I_6, G_6, H_6}, + {0, I_7, G_7, H_7}, + {0, I_8, G_8, H_8}, + {0, I_9, G_9, H_9}, + {0, I_10, G_10, H_10}, + {0, I_11, G_11, H_11}, + {0, I_12, G_12, H_12}, + {0, I_13, G_13, H_13}, + {0, I_14, G_14, H_14}, + {0, I_16, G_16, H_16}, + + {0, F_1, D_1, E_1}, + {0, F_2, D_2, E_2}, + {0, F_3, D_3, E_3}, + {0, F_4, D_4, E_4}, + {0, F_5, D_5, E_5}, + {0, F_6, D_6, E_6}, + {0, F_7, D_7, E_7}, + {0, F_8, D_8, E_8}, + {0, F_9, D_9, E_9}, + {0, F_10, D_10, E_10}, + {0, F_11, D_11, E_11}, + {0, F_12, D_12, E_12}, + {0, F_13, D_13, E_13}, + {0, F_16, D_16, E_16}, + + {1, I_1, G_1, H_1}, + {1, I_2, G_2, H_2}, + {1, I_3, G_3, H_3}, + {1, I_4, G_4, H_4}, + {1, I_5, G_5, H_5}, + {1, I_6, G_6, H_6}, + {1, I_7, G_7, H_7}, + {1, I_8, G_8, H_8}, + {1, I_9, G_9, H_9}, + {1, I_10, G_10, H_10}, + {1, I_11, G_11, H_11}, + {1, I_12, G_12, H_12}, + {1, I_14, G_14, H_14}, + {0, F_14, D_14, E_14}, + {1, I_16, G_16, H_16}, + + {1, F_1, D_1, E_1}, + {1, F_2, D_2, E_2}, + {1, F_3, D_3, E_3}, + {1, F_4, D_4, E_4}, + {1, F_5, D_5, E_5}, + {1, F_6, D_6, E_6}, + {1, F_7, D_7, E_7}, + {1, F_8, D_8, E_8}, + {1, F_9, D_9, E_9}, + {1, F_10, D_10, E_10}, + {1, F_11, D_11, E_11}, + {1, F_12, D_12, E_12}, + {1, F_14, D_14, E_14}, + {1, F_15, D_15, E_15}, + + {1, C_1, A_1, B_1}, + {1, C_2, A_2, B_2}, + {1, C_3, A_3, B_3}, + {1, C_7, A_7, B_7}, + {1, C_11, A_11, B_11}, + {1, C_12, A_12, B_12}, + {1, C_13, A_13, B_13}, + {1, C_14, A_14, B_14}, + {1, C_15, A_15, B_15}, + {1, C_16, A_16, B_16}, +}; + +#endif diff --git a/keyboards/keychron/q1v2/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/q1v2/iso_encoder/keymaps/default/keymap.c new file mode 100644 index 0000000000..74aa487f95 --- /dev/null +++ b/keyboards/keychron/q1v2/iso_encoder/keymaps/default/keymap.c @@ -0,0 +1,72 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_iso_83( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, + KC_GRV, 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_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_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_HOME, + 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_RSFT, KC_UP, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_iso_83( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_iso_83( + KC_ESC, 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_DEL, KC_MUTE, + KC_GRV, 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_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_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_HOME, + 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_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_iso_83( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)} +}; +#endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q1v2/iso_encoder/keymaps/default/rules.mk b/keyboards/keychron/q1v2/iso_encoder/keymaps/default/rules.mk new file mode 100644 index 0000000000..a40474b4d5 --- /dev/null +++ b/keyboards/keychron/q1v2/iso_encoder/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/keychron/q1v2/iso_encoder/keymaps/keychron/keymap.c b/keyboards/keychron/q1v2/iso_encoder/keymaps/keychron/keymap.c new file mode 100644 index 0000000000..3b1e8b68ec --- /dev/null +++ b/keyboards/keychron/q1v2/iso_encoder/keymaps/keychron/keymap.c @@ -0,0 +1,85 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "keychron_common.h" + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_iso_83( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, + KC_GRV, 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_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_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_HOME, + 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_RSFT, KC_UP, + KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_iso_83( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_iso_83( + KC_ESC, 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_DEL, KC_MUTE, + KC_GRV, 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_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_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_HOME, + 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_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_iso_83( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) +}; + +// clang-format on + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)} +}; +#endif // ENCODER_MAP_ENABLE + +// clang-format on + +void housekeeping_task_user(void) { + housekeeping_task_keychron(); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_record_keychron(keycode, record)) { + return false; + } + return true; +} diff --git a/keyboards/keychron/q1v2/iso_encoder/keymaps/keychron/rules.mk b/keyboards/keychron/q1v2/iso_encoder/keymaps/keychron/rules.mk new file mode 100644 index 0000000000..9cf1a9b56c --- /dev/null +++ b/keyboards/keychron/q1v2/iso_encoder/keymaps/keychron/rules.mk @@ -0,0 +1,5 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes + +VPATH += keyboards/keychron/common +SRC += keychron_common.c diff --git a/keyboards/keychron/q1v2/iso_encoder/keymaps/via/keymap.c b/keyboards/keychron/q1v2/iso_encoder/keymaps/via/keymap.c new file mode 100644 index 0000000000..74aa487f95 --- /dev/null +++ b/keyboards/keychron/q1v2/iso_encoder/keymaps/via/keymap.c @@ -0,0 +1,72 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_iso_83( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, + KC_GRV, 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_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_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_HOME, + 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_RSFT, KC_UP, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_iso_83( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_iso_83( + KC_ESC, 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_DEL, KC_MUTE, + KC_GRV, 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_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_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_HOME, + 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_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_iso_83( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)} +}; +#endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q1v2/iso_encoder/keymaps/via/rules.mk b/keyboards/keychron/q1v2/iso_encoder/keymaps/via/rules.mk new file mode 100644 index 0000000000..f1adcab005 --- /dev/null +++ b/keyboards/keychron/q1v2/iso_encoder/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/q1v2/iso_encoder/rules.mk b/keyboards/keychron/q1v2/iso_encoder/rules.mk new file mode 100644 index 0000000000..36ee49ccb0 --- /dev/null +++ b/keyboards/keychron/q1v2/iso_encoder/rules.mk @@ -0,0 +1 @@ +SRC += matrix.c diff --git a/keyboards/keychron/q1v2/jis/config.h b/keyboards/keychron/q1v2/jis/config.h new file mode 100644 index 0000000000..2e3db213b0 --- /dev/null +++ b/keyboards/keychron/q1v2/jis/config.h @@ -0,0 +1,25 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* RGB Matrix Configuration */ +#define DRIVER_1_LED_TOTAL 46 +#define DRIVER_2_LED_TOTAL 40 +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) + +/* Enable caps-lock LED */ +#define CAPS_LOCK_LED_INDEX 45 diff --git a/keyboards/keychron/q1v2/jis/info.json b/keyboards/keychron/q1v2/jis/info.json new file mode 100644 index 0000000000..e704624a66 --- /dev/null +++ b/keyboards/keychron/q1v2/jis/info.json @@ -0,0 +1,198 @@ +{ + "usb": { + "pid": "0x010A", + "device_version": "2.0.0" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix":[0, 0], "x":0, "y":0}, + {"matrix":[0, 1], "x":1.25, "y":0}, + {"matrix":[0, 2], "x":2.25, "y":0}, + {"matrix":[0, 3], "x":3.25, "y":0}, + {"matrix":[0, 4], "x":4.25, "y":0}, + {"matrix":[0, 5], "x":5.5, "y":0}, + {"matrix":[0, 6], "x":6.5, "y":0}, + {"matrix":[0, 7], "x":7.5, "y":0}, + {"matrix":[0, 8], "x":8.5, "y":0}, + {"matrix":[0, 9], "x":9.75, "y":0}, + {"matrix":[0,10], "x":10.75, "y":0}, + {"matrix":[0,11], "x":11.75, "y":0}, + {"matrix":[0,12], "x":12.75, "y":0}, + {"matrix":[0,13], "x":14, "y":0}, + {"matrix":[0,15], "x":15.25, "y":0}, + + {"matrix":[1, 0], "x":0, "y":1.25}, + {"matrix":[1, 1], "x":1, "y":1.25}, + {"matrix":[1, 2], "x":2, "y":1.25}, + {"matrix":[1, 3], "x":3, "y":1.25}, + {"matrix":[1, 4], "x":4, "y":1.251}, + {"matrix":[1, 5], "x":5, "y":1.25}, + {"matrix":[1, 6], "x":6, "y":1.25}, + {"matrix":[1, 7], "x":7, "y":1.25}, + {"matrix":[1, 8], "x":8, "y":1.25}, + {"matrix":[1, 9], "x":9, "y":1.25}, + {"matrix":[1,10], "x":10, "y":1.25}, + {"matrix":[1,11], "x":11, "y":1.25}, + {"matrix":[1,12], "x":12, "y":1.25}, + {"matrix":[1,13], "x":13, "y":1.25}, + {"matrix":[1,14], "x":14, "y":1.25}, + {"matrix":[1,15], "x":15.25, "y":1.25}, + + {"matrix":[2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix":[2, 1], "x":1.5, "y":2.25}, + {"matrix":[2, 2], "x":2.5, "y":2.25}, + {"matrix":[2, 3], "x":3.5, "y":2.25}, + {"matrix":[2, 4], "x":4.5, "y":2.25}, + {"matrix":[2, 5], "x":5.5, "y":2.25}, + {"matrix":[2, 6], "x":6.5, "y":2.25}, + {"matrix":[2, 7], "x":7.5, "y":2.25}, + {"matrix":[2, 8], "x":8.5, "y":2.25}, + {"matrix":[2, 9], "x":9.5, "y":2.25}, + {"matrix":[2,10], "x":10.5, "y":2.25}, + {"matrix":[2,11], "x":11.5, "y":2.25}, + {"matrix":[2,12], "x":12.5, "y":2.25}, + {"matrix":[2,15], "x":15.25, "y":2.25}, + + {"matrix":[3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix":[3, 1], "x":1.75, "y":3.25}, + {"matrix":[3, 2], "x":2.75, "y":3.25}, + {"matrix":[3, 3], "x":3.75, "y":3.25}, + {"matrix":[3, 4], "x":4.75, "y":3.25}, + {"matrix":[3, 5], "x":5.75, "y":3.25}, + {"matrix":[3, 6], "x":6.75, "y":3.25}, + {"matrix":[3, 7], "x":7.75, "y":3.25}, + {"matrix":[3, 8], "x":8.75, "y":3.25}, + {"matrix":[3, 9], "x":9.75, "y":3.25}, + {"matrix":[3,10], "x":10.75, "y":3.25}, + {"matrix":[3,11], "x":11.75, "y":3.25}, + {"matrix":[3,13], "x":12.75, "y":3.25}, + {"matrix":[2,13], "x":13.75, "y":2.25, "w":1.25, "h":2}, + {"matrix":[3,15], "x":15.25, "y":3.25}, + + {"matrix":[4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix":[4, 2], "x":2.25, "y":4.25}, + {"matrix":[4, 3], "x":3.25, "y":4.25}, + {"matrix":[4, 4], "x":4.25, "y":4.25}, + {"matrix":[4, 5], "x":5.25, "y":4.25}, + {"matrix":[4, 6], "x":6.25, "y":4.25}, + {"matrix":[4, 7], "x":7.25, "y":4.25}, + {"matrix":[4, 8], "x":8.25, "y":4.25}, + {"matrix":[4, 9], "x":9.25, "y":4.25}, + {"matrix":[4,10], "x":10.25, "y":4.25}, + {"matrix":[4,11], "x":11.25, "y":4.25}, + {"matrix":[4,12], "x":12.25, "y":4.25}, + {"matrix":[4,13], "x":13.25, "y":4.25}, + {"matrix":[4,14], "x":14.25, "y":4.5}, + + {"matrix":[5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix":[5, 1], "x":1.25, "y":5.25}, + {"matrix":[5, 2], "x":2.25, "y":5.25, "w":1.25}, + {"matrix":[5, 3], "x":3.5, "y":5.25}, + {"matrix":[5, 6], "x":4.5, "y":5.25, "w":4.5}, + {"matrix":[5, 9], "x":9, "y":5.25, "w":1.25}, + {"matrix":[5,10], "x":10.25, "y":5.25}, + {"matrix":[5,11], "x":11.25, "y":5.25}, + {"matrix":[5,12], "x":12.25, "y":5.25}, + {"matrix":[5,13], "x":13.25, "y":5.25}, + {"matrix":[5,14], "x":14.25, "y":5.25}, + {"matrix":[5,15], "x":15.25, "y":5.25} + ] + } + }, + "rgb_matrix": { + "layout": [ + {"matrix":[0, 0], "flags":1, "x":0, "y":0}, + {"matrix":[0, 1], "flags":1, "x":18, "y":0}, + {"matrix":[0, 2], "flags":1, "x":33, "y":0}, + {"matrix":[0, 3], "flags":1, "x":48, "y":0}, + {"matrix":[0, 4], "flags":1, "x":62, "y":0}, + {"matrix":[0, 5], "flags":1, "x":81, "y":0}, + {"matrix":[0, 6], "flags":1, "x":95, "y":0}, + {"matrix":[0, 7], "flags":1, "x":110, "y":0}, + {"matrix":[0, 8], "flags":1, "x":125, "y":0}, + {"matrix":[0, 9], "flags":1, "x":143, "y":0}, + {"matrix":[0, 10], "flags":1, "x":158, "y":0}, + {"matrix":[0, 11], "flags":1, "x":173, "y":0}, + {"matrix":[0, 12], "flags":1, "x":187, "y":0}, + {"matrix":[0, 13], "flags":1, "x":205, "y":0}, + {"matrix":[0, 15], "flags":1, "x":224, "y":0}, + + {"matrix":[1, 0], "flags":1, "x":0, "y":15}, + {"matrix":[1, 1], "flags":4, "x":15, "y":15}, + {"matrix":[1, 2], "flags":4, "x":29, "y":15}, + {"matrix":[1, 3], "flags":4, "x":44, "y":15}, + {"matrix":[1, 4], "flags":4, "x":59, "y":15}, + {"matrix":[1, 5], "flags":4, "x":73, "y":15}, + {"matrix":[1, 6], "flags":4, "x":88, "y":15}, + {"matrix":[1, 7], "flags":4, "x":103, "y":15}, + {"matrix":[1, 8], "flags":4, "x":117, "y":15}, + {"matrix":[1, 9], "flags":4, "x":132, "y":15}, + {"matrix":[1, 10], "flags":4, "x":147, "y":15}, + {"matrix":[1, 11], "flags":4, "x":161, "y":15}, + {"matrix":[1, 12], "flags":4, "x":176, "y":15}, + {"matrix":[1, 13], "flags":4, "x":191, "y":15}, + {"matrix":[1, 14], "flags":1, "x":205, "y":15}, + {"matrix":[1, 15], "flags":1, "x":224, "y":15}, + + {"matrix":[2, 0], "flags":1, "x":4, "y":28}, + {"matrix":[2, 1], "flags":4, "x":22, "y":28}, + {"matrix":[2, 2], "flags":4, "x":37, "y":28}, + {"matrix":[2, 3], "flags":4, "x":51, "y":28}, + {"matrix":[2, 4], "flags":4, "x":66, "y":28}, + {"matrix":[2, 5], "flags":4, "x":81, "y":28}, + {"matrix":[2, 6], "flags":4, "x":95, "y":28}, + {"matrix":[2, 7], "flags":4, "x":110, "y":28}, + {"matrix":[2, 8], "flags":4, "x":125, "y":28}, + {"matrix":[2, 9], "flags":4, "x":139, "y":28}, + {"matrix":[2, 10], "flags":4, "x":154, "y":28}, + {"matrix":[2, 11], "flags":4, "x":169, "y":28}, + {"matrix":[2, 12], "flags":4, "x":183, "y":28}, + {"matrix":[2, 15], "flags":1, "x":224, "y":28}, + + {"matrix":[3, 0], "flags":9, "x":6, "y":40}, + {"matrix":[3, 1], "flags":4, "x":26, "y":40}, + {"matrix":[3, 2], "flags":4, "x":40, "y":40}, + {"matrix":[3, 3], "flags":4, "x":55, "y":40}, + {"matrix":[3, 4], "flags":4, "x":70, "y":40}, + {"matrix":[3, 5], "flags":4, "x":84, "y":40}, + {"matrix":[3, 6], "flags":4, "x":99, "y":40}, + {"matrix":[3, 7], "flags":4, "x":114, "y":40}, + {"matrix":[3, 8], "flags":4, "x":128, "y":40}, + {"matrix":[3, 9], "flags":4, "x":143, "y":40}, + {"matrix":[3, 10], "flags":4, "x":158, "y":40}, + {"matrix":[3, 11], "flags":4, "x":172, "y":40}, + {"matrix":[3, 13], "flags":4, "x":187, "y":40}, + {"matrix":[2, 13], "flags":1, "x":207, "y":36}, + {"matrix":[3, 15], "flags":1, "x":224, "y":40}, + + {"matrix":[4, 0], "flags":1, "x":9, "y":52}, + {"matrix":[4, 2], "flags":4, "x":33, "y":52}, + {"matrix":[4, 3], "flags":4, "x":48, "y":52}, + {"matrix":[4, 4], "flags":4, "x":62, "y":52}, + {"matrix":[4, 5], "flags":4, "x":77, "y":52}, + {"matrix":[4, 6], "flags":4, "x":92, "y":52}, + {"matrix":[4, 7], "flags":4, "x":106, "y":52}, + {"matrix":[4, 8], "flags":4, "x":121, "y":52}, + {"matrix":[4, 9], "flags":4, "x":136, "y":52}, + {"matrix":[4, 10], "flags":4, "x":150, "y":52}, + {"matrix":[4, 11], "flags":4, "x":165, "y":52}, + {"matrix":[4, 12], "flags":4, "x":180, "y":52}, + {"matrix":[4, 13], "flags":1, "x":194, "y":52}, + {"matrix":[4, 14], "flags":1, "x":209, "y":52}, + + {"matrix":[5, 0], "flags":1, "x":2, "y":64}, + {"matrix":[5, 1], "flags":1, "x":18, "y":64}, + {"matrix":[5, 2], "flags":1, "x":35, "y":64}, + {"matrix":[5, 3], "flags":1, "x":51, "y":64}, + {"matrix":[5, 6], "flags":4, "x":92, "y":64}, + {"matrix":[5, 9], "flags":1, "x":134, "y":64}, + {"matrix":[5, 10], "flags":1, "x":150, "y":64}, + {"matrix":[5, 11], "flags":1, "x":165, "y":64}, + {"matrix":[5, 12], "flags":1, "x":180, "y":64}, + {"matrix":[5, 13], "flags":1, "x":194, "y":64}, + {"matrix":[5, 14], "flags":1, "x":209, "y":64}, + {"matrix":[5, 15], "flags":1, "x":224, "y":64} + ] + } +} diff --git a/keyboards/keychron/q1v2/jis/jis.c b/keyboards/keychron/q1v2/jis/jis.c new file mode 100644 index 0000000000..6bfcbad3e4 --- /dev/null +++ b/keyboards/keychron/q1v2/jis/jis.c @@ -0,0 +1,121 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE + +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to CKLED2001 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C_1, A_1, B_1}, + {0, C_2, A_2, B_2}, + {0, C_3, A_3, B_3}, + {0, C_4, A_4, B_4}, + {0, C_5, A_5, B_5}, + {0, C_6, A_6, B_6}, + {0, C_7, A_7, B_7}, + {0, C_8, A_8, B_8}, + {0, C_9, A_9, B_9}, + {0, C_10, A_10, B_10}, + {0, C_11, A_11, B_11}, + {0, C_12, A_12, B_12}, + {0, C_13, A_13, B_13}, + {0, C_14, A_14, B_14}, + {0, C_16, A_16, B_16}, + + {0, I_1, G_1, H_1}, + {0, I_2, G_2, H_2}, + {0, I_3, G_3, H_3}, + {0, I_4, G_4, H_4}, + {0, I_5, G_5, H_5}, + {0, I_6, G_6, H_6}, + {0, I_7, G_7, H_7}, + {0, I_8, G_8, H_8}, + {0, I_9, G_9, H_9}, + {0, I_10, G_10, H_10}, + {0, I_11, G_11, H_11}, + {0, I_12, G_12, H_12}, + {0, I_13, G_13, H_13}, + {0, I_14, G_14, H_14}, + {0, I_15, G_15, H_15}, + {0, I_16, G_16, H_16}, + + {0, F_1, D_1, E_1}, + {0, F_2, D_2, E_2}, + {0, F_3, D_3, E_3}, + {0, F_4, D_4, E_4}, + {0, F_5, D_5, E_5}, + {0, F_6, D_6, E_6}, + {0, F_7, D_7, E_7}, + {0, F_8, D_8, E_8}, + {0, F_9, D_9, E_9}, + {0, F_10, D_10, E_10}, + {0, F_11, D_11, E_11}, + {0, F_12, D_12, E_12}, + {0, F_13, D_13, E_13}, + {0, F_16, D_16, E_16}, + + {1, I_1, G_1, H_1}, + {1, I_2, G_2, H_2}, + {1, I_3, G_3, H_3}, + {1, I_4, G_4, H_4}, + {1, I_5, G_5, H_5}, + {1, I_6, G_6, H_6}, + {1, I_7, G_7, H_7}, + {1, I_8, G_8, H_8}, + {1, I_9, G_9, H_9}, + {1, I_10, G_10, H_10}, + {1, I_11, G_11, H_11}, + {1, I_12, G_12, H_12}, + {1, I_14, G_14, H_14}, + {0, F_14, D_14, E_14}, + {1, I_16, G_16, H_16}, + + {1, F_1, D_1, E_1}, + {1, F_3, D_3, E_3}, + {1, F_4, D_4, E_4}, + {1, F_5, D_5, E_5}, + {1, F_6, D_6, E_6}, + {1, F_7, D_7, E_7}, + {1, F_8, D_8, E_8}, + {1, F_9, D_9, E_9}, + {1, F_10, D_10, E_10}, + {1, F_11, D_11, E_11}, + {1, F_12, D_12, E_12}, + {1, F_13, D_13, E_13}, + {1, F_14, D_14, E_14}, + {1, F_15, D_15, E_15}, + + {1, C_1, A_1, B_1}, + {1, C_2, A_2, B_2}, + {1, C_3, A_3, B_3}, + {1, C_4, A_4, B_4}, + {1, C_7, A_7, B_7}, + {1, C_10, A_10, B_10}, + {1, C_11, A_11, B_11}, + {1, C_12, A_12, B_12}, + {1, C_13, A_13, B_13}, + {1, C_14, A_14, B_14}, + {1, C_15, A_15, B_15}, + {1, C_16, A_16, B_16}, +}; + +#endif diff --git a/keyboards/keychron/q1v2/jis/keymaps/default/keymap.c b/keyboards/keychron/q1v2/jis/keymaps/default/keymap.c new file mode 100644 index 0000000000..14af11a77c --- /dev/null +++ b/keyboards/keychron/q1v2/jis/keymaps/default/keymap.c @@ -0,0 +1,63 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, + KC_GRV, 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_INT3, 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_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_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP, + KC_LCTL, KC_LOPT, KC_LCMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT( + KC_ESC, 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_DEL, KC_INS, + KC_GRV, 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_INT3, 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_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_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/keychron/q1v2/jis/keymaps/keychron/keymap.c b/keyboards/keychron/q1v2/jis/keymaps/keychron/keymap.c new file mode 100644 index 0000000000..b783b93078 --- /dev/null +++ b/keyboards/keychron/q1v2/jis/keymaps/keychron/keymap.c @@ -0,0 +1,74 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "keychron_common.h" + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, + KC_GRV, 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_INT3, 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_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_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP, + KC_LCTL, KC_LOPTN, KC_LCMMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT( + KC_ESC, 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_DEL, KC_INS, + KC_GRV, 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_INT3, 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_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_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +// clang-format on + +void housekeeping_task_user(void) { + housekeeping_task_keychron(); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_record_keychron(keycode, record)) { + return false; + } + return true; +} diff --git a/keyboards/keychron/q1v2/jis/keymaps/keychron/rules.mk b/keyboards/keychron/q1v2/jis/keymaps/keychron/rules.mk new file mode 100644 index 0000000000..495e8907b4 --- /dev/null +++ b/keyboards/keychron/q1v2/jis/keymaps/keychron/rules.mk @@ -0,0 +1,4 @@ +VIA_ENABLE = yes + +VPATH += keyboards/keychron/common +SRC += keychron_common.c diff --git a/keyboards/keychron/q1v2/jis/keymaps/via/keymap.c b/keyboards/keychron/q1v2/jis/keymaps/via/keymap.c new file mode 100644 index 0000000000..14af11a77c --- /dev/null +++ b/keyboards/keychron/q1v2/jis/keymaps/via/keymap.c @@ -0,0 +1,63 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS, + KC_GRV, 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_INT3, 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_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_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP, + KC_LCTL, KC_LOPT, KC_LCMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT( + KC_ESC, 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_DEL, KC_INS, + KC_GRV, 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_INT3, 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_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_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/keychron/q1v2/jis/keymaps/via/rules.mk b/keyboards/keychron/q1v2/jis/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/keychron/q1v2/jis/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/keychron/q1v2/jis/rules.mk b/keyboards/keychron/q1v2/jis/rules.mk new file mode 100644 index 0000000000..36ee49ccb0 --- /dev/null +++ b/keyboards/keychron/q1v2/jis/rules.mk @@ -0,0 +1 @@ +SRC += matrix.c diff --git a/keyboards/keychron/q1v2/jis_encoder/config.h b/keyboards/keychron/q1v2/jis_encoder/config.h new file mode 100644 index 0000000000..c80c4238f5 --- /dev/null +++ b/keyboards/keychron/q1v2/jis_encoder/config.h @@ -0,0 +1,28 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* RGB Matrix Configuration */ +#define DRIVER_1_LED_TOTAL 46 +#define DRIVER_2_LED_TOTAL 40 +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) + +/* Encoder Configuration */ +#define ENCODER_DEFAULT_POS 0x3 + +/* Enable caps-lock LED */ +#define CAPS_LOCK_LED_INDEX 45 diff --git a/keyboards/keychron/q1v2/jis_encoder/info.json b/keyboards/keychron/q1v2/jis_encoder/info.json new file mode 100644 index 0000000000..544958f24f --- /dev/null +++ b/keyboards/keychron/q1v2/jis_encoder/info.json @@ -0,0 +1,207 @@ +{ + "usb": { + "pid": "0x010B", + "device_version": "2.0.0" + }, + "features": { + "encoder": true + }, + "encoder": { + "enabled": true, + "rotary": [ + {"pin_a": "A10", "pin_b": "A8", "resolution": 4} + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix":[0, 0], "x":0, "y":0}, + {"matrix":[0, 1], "x":1.25, "y":0}, + {"matrix":[0, 2], "x":2.25, "y":0}, + {"matrix":[0, 3], "x":3.25, "y":0}, + {"matrix":[0, 4], "x":4.25, "y":0}, + {"matrix":[0, 5], "x":5.5, "y":0}, + {"matrix":[0, 6], "x":6.5, "y":0}, + {"matrix":[0, 7], "x":7.5, "y":0}, + {"matrix":[0, 8], "x":8.5, "y":0}, + {"matrix":[0, 9], "x":9.75, "y":0}, + {"matrix":[0,10], "x":10.75, "y":0}, + {"matrix":[0,11], "x":11.75, "y":0}, + {"matrix":[0,12], "x":12.75, "y":0}, + {"matrix":[0,13], "x":14, "y":0}, + {"matrix":[0,15], "x":15.25, "y":0}, + + {"matrix":[1, 0], "x":0, "y":1.25}, + {"matrix":[1, 1], "x":1, "y":1.25}, + {"matrix":[1, 2], "x":2, "y":1.25}, + {"matrix":[1, 3], "x":3, "y":1.25}, + {"matrix":[1, 4], "x":4, "y":1.251}, + {"matrix":[1, 5], "x":5, "y":1.25}, + {"matrix":[1, 6], "x":6, "y":1.25}, + {"matrix":[1, 7], "x":7, "y":1.25}, + {"matrix":[1, 8], "x":8, "y":1.25}, + {"matrix":[1, 9], "x":9, "y":1.25}, + {"matrix":[1,10], "x":10, "y":1.25}, + {"matrix":[1,11], "x":11, "y":1.25}, + {"matrix":[1,12], "x":12, "y":1.25}, + {"matrix":[1,13], "x":13, "y":1.25}, + {"matrix":[1,14], "x":14, "y":1.25}, + {"matrix":[1,15], "x":15.25, "y":1.25}, + + {"matrix":[2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix":[2, 1], "x":1.5, "y":2.25}, + {"matrix":[2, 2], "x":2.5, "y":2.25}, + {"matrix":[2, 3], "x":3.5, "y":2.25}, + {"matrix":[2, 4], "x":4.5, "y":2.25}, + {"matrix":[2, 5], "x":5.5, "y":2.25}, + {"matrix":[2, 6], "x":6.5, "y":2.25}, + {"matrix":[2, 7], "x":7.5, "y":2.25}, + {"matrix":[2, 8], "x":8.5, "y":2.25}, + {"matrix":[2, 9], "x":9.5, "y":2.25}, + {"matrix":[2,10], "x":10.5, "y":2.25}, + {"matrix":[2,11], "x":11.5, "y":2.25}, + {"matrix":[2,12], "x":12.5, "y":2.25}, + {"matrix":[2,15], "x":15.25, "y":2.25}, + + {"matrix":[3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix":[3, 1], "x":1.75, "y":3.25}, + {"matrix":[3, 2], "x":2.75, "y":3.25}, + {"matrix":[3, 3], "x":3.75, "y":3.25}, + {"matrix":[3, 4], "x":4.75, "y":3.25}, + {"matrix":[3, 5], "x":5.75, "y":3.25}, + {"matrix":[3, 6], "x":6.75, "y":3.25}, + {"matrix":[3, 7], "x":7.75, "y":3.25}, + {"matrix":[3, 8], "x":8.75, "y":3.25}, + {"matrix":[3, 9], "x":9.75, "y":3.25}, + {"matrix":[3,10], "x":10.75, "y":3.25}, + {"matrix":[3,11], "x":11.75, "y":3.25}, + {"matrix":[3,13], "x":12.75, "y":3.25}, + {"matrix":[2,13], "x":13.75, "y":2.25, "w":1.25, "h":2}, + {"matrix":[3,15], "x":15.25, "y":3.25}, + + {"matrix":[4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix":[4, 2], "x":2.25, "y":4.25}, + {"matrix":[4, 3], "x":3.25, "y":4.25}, + {"matrix":[4, 4], "x":4.25, "y":4.25}, + {"matrix":[4, 5], "x":5.25, "y":4.25}, + {"matrix":[4, 6], "x":6.25, "y":4.25}, + {"matrix":[4, 7], "x":7.25, "y":4.25}, + {"matrix":[4, 8], "x":8.25, "y":4.25}, + {"matrix":[4, 9], "x":9.25, "y":4.25}, + {"matrix":[4,10], "x":10.25, "y":4.25}, + {"matrix":[4,11], "x":11.25, "y":4.25}, + {"matrix":[4,12], "x":12.25, "y":4.25}, + {"matrix":[4,13], "x":13.25, "y":4.25}, + {"matrix":[4,14], "x":14.25, "y":4.5}, + + {"matrix":[5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix":[5, 1], "x":1.25, "y":5.25}, + {"matrix":[5, 2], "x":2.25, "y":5.25, "w":1.25}, + {"matrix":[5, 3], "x":3.5, "y":5.25}, + {"matrix":[5, 6], "x":4.5, "y":5.25, "w":4.5}, + {"matrix":[5, 9], "x":9, "y":5.25, "w":1.25}, + {"matrix":[5,10], "x":10.25, "y":5.25}, + {"matrix":[5,11], "x":11.25, "y":5.25}, + {"matrix":[5,12], "x":12.25, "y":5.25}, + {"matrix":[5,13], "x":13.25, "y":5.25}, + {"matrix":[5,14], "x":14.25, "y":5.25}, + {"matrix":[5,15], "x":15.25, "y":5.25} + ] + } + }, + "rgb_matrix": { + "layout": [ + {"matrix":[0, 0], "flags":1, "x":0, "y":0}, + {"matrix":[0, 1], "flags":1, "x":18, "y":0}, + {"matrix":[0, 2], "flags":1, "x":33, "y":0}, + {"matrix":[0, 3], "flags":1, "x":48, "y":0}, + {"matrix":[0, 4], "flags":1, "x":62, "y":0}, + {"matrix":[0, 5], "flags":1, "x":81, "y":0}, + {"matrix":[0, 6], "flags":1, "x":95, "y":0}, + {"matrix":[0, 7], "flags":1, "x":110, "y":0}, + {"matrix":[0, 8], "flags":1, "x":125, "y":0}, + {"matrix":[0, 9], "flags":1, "x":143, "y":0}, + {"matrix":[0, 10], "flags":1, "x":158, "y":0}, + {"matrix":[0, 11], "flags":1, "x":173, "y":0}, + {"matrix":[0, 12], "flags":1, "x":187, "y":0}, + {"matrix":[0, 13], "flags":1, "x":205, "y":0}, + {"matrix":[0, 15], "flags":1, "x":224, "y":0}, + + {"matrix":[1, 0], "flags":1, "x":0, "y":15}, + {"matrix":[1, 1], "flags":4, "x":15, "y":15}, + {"matrix":[1, 2], "flags":4, "x":29, "y":15}, + {"matrix":[1, 3], "flags":4, "x":44, "y":15}, + {"matrix":[1, 4], "flags":4, "x":59, "y":15}, + {"matrix":[1, 5], "flags":4, "x":73, "y":15}, + {"matrix":[1, 6], "flags":4, "x":88, "y":15}, + {"matrix":[1, 7], "flags":4, "x":103, "y":15}, + {"matrix":[1, 8], "flags":4, "x":117, "y":15}, + {"matrix":[1, 9], "flags":4, "x":132, "y":15}, + {"matrix":[1, 10], "flags":4, "x":147, "y":15}, + {"matrix":[1, 11], "flags":4, "x":161, "y":15}, + {"matrix":[1, 12], "flags":4, "x":176, "y":15}, + {"matrix":[1, 13], "flags":4, "x":191, "y":15}, + {"matrix":[1, 14], "flags":1, "x":205, "y":15}, + {"matrix":[1, 15], "flags":1, "x":224, "y":15}, + + {"matrix":[2, 0], "flags":1, "x":4, "y":28}, + {"matrix":[2, 1], "flags":4, "x":22, "y":28}, + {"matrix":[2, 2], "flags":4, "x":37, "y":28}, + {"matrix":[2, 3], "flags":4, "x":51, "y":28}, + {"matrix":[2, 4], "flags":4, "x":66, "y":28}, + {"matrix":[2, 5], "flags":4, "x":81, "y":28}, + {"matrix":[2, 6], "flags":4, "x":95, "y":28}, + {"matrix":[2, 7], "flags":4, "x":110, "y":28}, + {"matrix":[2, 8], "flags":4, "x":125, "y":28}, + {"matrix":[2, 9], "flags":4, "x":139, "y":28}, + {"matrix":[2, 10], "flags":4, "x":154, "y":28}, + {"matrix":[2, 11], "flags":4, "x":169, "y":28}, + {"matrix":[2, 12], "flags":4, "x":183, "y":28}, + {"matrix":[2, 15], "flags":1, "x":224, "y":28}, + + {"matrix":[3, 0], "flags":9, "x":6, "y":40}, + {"matrix":[3, 1], "flags":4, "x":26, "y":40}, + {"matrix":[3, 2], "flags":4, "x":40, "y":40}, + {"matrix":[3, 3], "flags":4, "x":55, "y":40}, + {"matrix":[3, 4], "flags":4, "x":70, "y":40}, + {"matrix":[3, 5], "flags":4, "x":84, "y":40}, + {"matrix":[3, 6], "flags":4, "x":99, "y":40}, + {"matrix":[3, 7], "flags":4, "x":114, "y":40}, + {"matrix":[3, 8], "flags":4, "x":128, "y":40}, + {"matrix":[3, 9], "flags":4, "x":143, "y":40}, + {"matrix":[3, 10], "flags":4, "x":158, "y":40}, + {"matrix":[3, 11], "flags":4, "x":172, "y":40}, + {"matrix":[3, 13], "flags":4, "x":187, "y":40}, + {"matrix":[2, 13], "flags":1, "x":207, "y":36}, + {"matrix":[3, 15], "flags":1, "x":224, "y":40}, + + {"matrix":[4, 0], "flags":1, "x":9, "y":52}, + {"matrix":[4, 2], "flags":4, "x":33, "y":52}, + {"matrix":[4, 3], "flags":4, "x":48, "y":52}, + {"matrix":[4, 4], "flags":4, "x":62, "y":52}, + {"matrix":[4, 5], "flags":4, "x":77, "y":52}, + {"matrix":[4, 6], "flags":4, "x":92, "y":52}, + {"matrix":[4, 7], "flags":4, "x":106, "y":52}, + {"matrix":[4, 8], "flags":4, "x":121, "y":52}, + {"matrix":[4, 9], "flags":4, "x":136, "y":52}, + {"matrix":[4, 10], "flags":4, "x":150, "y":52}, + {"matrix":[4, 11], "flags":4, "x":165, "y":52}, + {"matrix":[4, 12], "flags":4, "x":180, "y":52}, + {"matrix":[4, 13], "flags":1, "x":194, "y":52}, + {"matrix":[4, 14], "flags":1, "x":209, "y":52}, + + {"matrix":[5, 0], "flags":1, "x":2, "y":64}, + {"matrix":[5, 1], "flags":1, "x":18, "y":64}, + {"matrix":[5, 2], "flags":1, "x":35, "y":64}, + {"matrix":[5, 3], "flags":1, "x":51, "y":64}, + {"matrix":[5, 6], "flags":4, "x":92, "y":64}, + {"matrix":[5, 9], "flags":1, "x":134, "y":64}, + {"matrix":[5, 10], "flags":1, "x":150, "y":64}, + {"matrix":[5, 11], "flags":1, "x":165, "y":64}, + {"matrix":[5, 12], "flags":1, "x":180, "y":64}, + {"matrix":[5, 13], "flags":1, "x":194, "y":64}, + {"matrix":[5, 14], "flags":1, "x":209, "y":64}, + {"matrix":[5, 15], "flags":1, "x":224, "y":64} + ] + } +} diff --git a/keyboards/keychron/q1v2/jis_encoder/jis_encoder.c b/keyboards/keychron/q1v2/jis_encoder/jis_encoder.c new file mode 100644 index 0000000000..6bfcbad3e4 --- /dev/null +++ b/keyboards/keychron/q1v2/jis_encoder/jis_encoder.c @@ -0,0 +1,121 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE + +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to CKLED2001 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C_1, A_1, B_1}, + {0, C_2, A_2, B_2}, + {0, C_3, A_3, B_3}, + {0, C_4, A_4, B_4}, + {0, C_5, A_5, B_5}, + {0, C_6, A_6, B_6}, + {0, C_7, A_7, B_7}, + {0, C_8, A_8, B_8}, + {0, C_9, A_9, B_9}, + {0, C_10, A_10, B_10}, + {0, C_11, A_11, B_11}, + {0, C_12, A_12, B_12}, + {0, C_13, A_13, B_13}, + {0, C_14, A_14, B_14}, + {0, C_16, A_16, B_16}, + + {0, I_1, G_1, H_1}, + {0, I_2, G_2, H_2}, + {0, I_3, G_3, H_3}, + {0, I_4, G_4, H_4}, + {0, I_5, G_5, H_5}, + {0, I_6, G_6, H_6}, + {0, I_7, G_7, H_7}, + {0, I_8, G_8, H_8}, + {0, I_9, G_9, H_9}, + {0, I_10, G_10, H_10}, + {0, I_11, G_11, H_11}, + {0, I_12, G_12, H_12}, + {0, I_13, G_13, H_13}, + {0, I_14, G_14, H_14}, + {0, I_15, G_15, H_15}, + {0, I_16, G_16, H_16}, + + {0, F_1, D_1, E_1}, + {0, F_2, D_2, E_2}, + {0, F_3, D_3, E_3}, + {0, F_4, D_4, E_4}, + {0, F_5, D_5, E_5}, + {0, F_6, D_6, E_6}, + {0, F_7, D_7, E_7}, + {0, F_8, D_8, E_8}, + {0, F_9, D_9, E_9}, + {0, F_10, D_10, E_10}, + {0, F_11, D_11, E_11}, + {0, F_12, D_12, E_12}, + {0, F_13, D_13, E_13}, + {0, F_16, D_16, E_16}, + + {1, I_1, G_1, H_1}, + {1, I_2, G_2, H_2}, + {1, I_3, G_3, H_3}, + {1, I_4, G_4, H_4}, + {1, I_5, G_5, H_5}, + {1, I_6, G_6, H_6}, + {1, I_7, G_7, H_7}, + {1, I_8, G_8, H_8}, + {1, I_9, G_9, H_9}, + {1, I_10, G_10, H_10}, + {1, I_11, G_11, H_11}, + {1, I_12, G_12, H_12}, + {1, I_14, G_14, H_14}, + {0, F_14, D_14, E_14}, + {1, I_16, G_16, H_16}, + + {1, F_1, D_1, E_1}, + {1, F_3, D_3, E_3}, + {1, F_4, D_4, E_4}, + {1, F_5, D_5, E_5}, + {1, F_6, D_6, E_6}, + {1, F_7, D_7, E_7}, + {1, F_8, D_8, E_8}, + {1, F_9, D_9, E_9}, + {1, F_10, D_10, E_10}, + {1, F_11, D_11, E_11}, + {1, F_12, D_12, E_12}, + {1, F_13, D_13, E_13}, + {1, F_14, D_14, E_14}, + {1, F_15, D_15, E_15}, + + {1, C_1, A_1, B_1}, + {1, C_2, A_2, B_2}, + {1, C_3, A_3, B_3}, + {1, C_4, A_4, B_4}, + {1, C_7, A_7, B_7}, + {1, C_10, A_10, B_10}, + {1, C_11, A_11, B_11}, + {1, C_12, A_12, B_12}, + {1, C_13, A_13, B_13}, + {1, C_14, A_14, B_14}, + {1, C_15, A_15, B_15}, + {1, C_16, A_16, B_16}, +}; + +#endif diff --git a/keyboards/keychron/q1v2/jis_encoder/keymaps/default/keymap.c b/keyboards/keychron/q1v2/jis_encoder/keymaps/default/keymap.c new file mode 100644 index 0000000000..def0cba27f --- /dev/null +++ b/keyboards/keychron/q1v2/jis_encoder/keymaps/default/keymap.c @@ -0,0 +1,72 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, + KC_GRV, 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_INT3, 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_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_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP, + KC_LCTL, KC_LOPT, KC_LCMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT( + KC_ESC, 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_DEL, KC_MUTE, + KC_GRV, 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_INT3, 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_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_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)} +}; +#endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q1v2/jis_encoder/keymaps/default/rules.mk b/keyboards/keychron/q1v2/jis_encoder/keymaps/default/rules.mk new file mode 100644 index 0000000000..a40474b4d5 --- /dev/null +++ b/keyboards/keychron/q1v2/jis_encoder/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/keychron/q1v2/jis_encoder/keymaps/keychron/keymap.c b/keyboards/keychron/q1v2/jis_encoder/keymaps/keychron/keymap.c new file mode 100644 index 0000000000..5aa1ab9471 --- /dev/null +++ b/keyboards/keychron/q1v2/jis_encoder/keymaps/keychron/keymap.c @@ -0,0 +1,83 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "keychron_common.h" + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, + KC_GRV, 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_INT3, 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_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_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP, + KC_LCTL, KC_LOPTN, KC_LCMMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT( + KC_ESC, 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_DEL, KC_MUTE, + KC_GRV, 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_INT3, 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_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_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)} +}; +#endif // ENCODER_MAP_ENABLE + +// clang-format on + +void housekeeping_task_user(void) { + housekeeping_task_keychron(); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_record_keychron(keycode, record)) { + return false; + } + return true; +} diff --git a/keyboards/keychron/q1v2/jis_encoder/keymaps/keychron/rules.mk b/keyboards/keychron/q1v2/jis_encoder/keymaps/keychron/rules.mk new file mode 100644 index 0000000000..9cf1a9b56c --- /dev/null +++ b/keyboards/keychron/q1v2/jis_encoder/keymaps/keychron/rules.mk @@ -0,0 +1,5 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes + +VPATH += keyboards/keychron/common +SRC += keychron_common.c diff --git a/keyboards/keychron/q1v2/jis_encoder/keymaps/via/keymap.c b/keyboards/keychron/q1v2/jis_encoder/keymaps/via/keymap.c new file mode 100644 index 0000000000..def0cba27f --- /dev/null +++ b/keyboards/keychron/q1v2/jis_encoder/keymaps/via/keymap.c @@ -0,0 +1,72 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, + KC_GRV, 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_INT3, 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_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_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP, + KC_LCTL, KC_LOPT, KC_LCMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMD, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT( + KC_ESC, 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_DEL, KC_MUTE, + KC_GRV, 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_INT3, 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_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_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)} +}; +#endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q1v2/jis_encoder/keymaps/via/rules.mk b/keyboards/keychron/q1v2/jis_encoder/keymaps/via/rules.mk new file mode 100644 index 0000000000..f1adcab005 --- /dev/null +++ b/keyboards/keychron/q1v2/jis_encoder/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/q1v2/jis_encoder/rules.mk b/keyboards/keychron/q1v2/jis_encoder/rules.mk new file mode 100644 index 0000000000..36ee49ccb0 --- /dev/null +++ b/keyboards/keychron/q1v2/jis_encoder/rules.mk @@ -0,0 +1 @@ +SRC += matrix.c diff --git a/keyboards/keychron/q1v2/matrix.c b/keyboards/keychron/q1v2/matrix.c new file mode 100644 index 0000000000..d008a79384 --- /dev/null +++ b/keyboards/keychron/q1v2/matrix.c @@ -0,0 +1,205 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +// Pin connected to DS of 74HC595 +#define DATA_PIN A7 +// Pin connected to SH_CP of 74HC595 +#define CLOCK_PIN B1 +// Pin connected to ST_CP of 74HC595 +#define LATCH_PIN B0 + +#ifdef MATRIX_ROW_PINS +static pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; +#endif // MATRIX_ROW_PINS +#ifdef MATRIX_COL_PINS +static pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; +#endif // MATRIX_COL_PINS + +#define ROWS_PER_HAND (MATRIX_ROWS) + +static inline void setPinOutput_writeLow(pin_t pin) { + ATOMIC_BLOCK_FORCEON { + setPinOutput(pin); + writePinLow(pin); + } +} + +static inline void setPinOutput_writeHigh(pin_t pin) { + ATOMIC_BLOCK_FORCEON { + setPinOutput(pin); + writePinHigh(pin); + } +} + +static inline void setPinInputHigh_atomic(pin_t pin) { + ATOMIC_BLOCK_FORCEON { + setPinInputHigh(pin); + } +} + +static inline uint8_t readMatrixPin(pin_t pin) { + if (pin != NO_PIN) { + return readPin(pin); + } else { + return 1; + } +} + +static void shiftOut(uint8_t dataOut) { + for (uint8_t i = 0; i < 8; i++) { + if (dataOut & 0x1) { + setPinOutput_writeHigh(DATA_PIN); + } else { + setPinOutput_writeLow(DATA_PIN); + } + dataOut = dataOut >> 1; + setPinOutput_writeHigh(CLOCK_PIN); + setPinOutput_writeLow(CLOCK_PIN); + } + setPinOutput_writeHigh(LATCH_PIN); + setPinOutput_writeLow(LATCH_PIN); +} + +static void shiftout_single(uint8_t data) { + if (data & 0x1) { + setPinOutput_writeHigh(DATA_PIN); + } else { + setPinOutput_writeLow(DATA_PIN); + } + + setPinOutput_writeHigh(CLOCK_PIN); + setPinOutput_writeLow(CLOCK_PIN); + + setPinOutput_writeHigh(LATCH_PIN); + setPinOutput_writeLow(LATCH_PIN); +} + +static bool select_col(uint8_t col) { + pin_t pin = col_pins[col]; + + if (pin != NO_PIN) { + setPinOutput_writeLow(pin); + return true; + } else { + if (col == 8) { + shiftout_single(0x00); + } else { + shiftout_single(0x01); + } + return true; + } + return false; +} + +static void unselect_col(uint8_t col) { + pin_t pin = col_pins[col]; + + if (pin != NO_PIN) { +#ifdef MATRIX_UNSELECT_DRIVE_HIGH + setPinOutput_writeHigh(pin); +#else + setPinInputHigh_atomic(pin); +#endif + } else { + if (col == (MATRIX_COLS - 1)) shiftout_single(0x01); + } +} + +static void unselect_cols(void) { + // unselect column pins + for (uint8_t x = 0; x < MATRIX_COLS; x++) { + pin_t pin = col_pins[x]; + + if (pin != NO_PIN) { +#ifdef MATRIX_UNSELECT_DRIVE_HIGH + setPinOutput_writeHigh(pin); +#else + setPinInputHigh_atomic(pin); +#endif + } + if (x == (MATRIX_COLS - 1)) + // unselect Shift Register + shiftOut(0xFF); + } +} + +static void matrix_init_pins(void) { + unselect_cols(); + for (uint8_t x = 0; x < MATRIX_ROWS; x++) { + if (row_pins[x] != NO_PIN) { + setPinInputHigh_atomic(row_pins[x]); + } + } +} + +static void matrix_read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col, matrix_row_t row_shifter) { + bool key_pressed = false; + + // Select col + if (!select_col(current_col)) { // select col + return; // skip NO_PIN col + } + + if (current_col < 8) { + matrix_output_select_delay(); + } else { + for (int8_t cycle = 4; cycle > 0; cycle--) { + matrix_output_select_delay(); // 0.25us + matrix_output_select_delay(); + matrix_output_select_delay(); + matrix_output_select_delay(); + } + } + + // For each row... + for (uint8_t row_index = 0; row_index < ROWS_PER_HAND; row_index++) { + // Check row pin state + if (readMatrixPin(row_pins[row_index]) == 0) { + // Pin LO, set col bit + current_matrix[row_index] |= row_shifter; + key_pressed = true; + } else { + // Pin HI, clear col bit + current_matrix[row_index] &= ~row_shifter; + } + } + + // Unselect col + unselect_col(current_col); + matrix_output_unselect_delay(current_col, key_pressed); // wait for all Row signals to go HIGH +} + +void matrix_init_custom(void) { + // initialize key pins + matrix_init_pins(); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + matrix_row_t curr_matrix[MATRIX_ROWS] = {0}; + + // Set col, read rows + matrix_row_t row_shifter = MATRIX_ROW_SHIFTER; + for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++, row_shifter <<= 1) { + matrix_read_rows_on_col(curr_matrix, current_col, row_shifter); + } + + bool changed = memcmp(current_matrix, curr_matrix, sizeof(curr_matrix)) != 0; + if (changed) memcpy(current_matrix, curr_matrix, sizeof(curr_matrix)); + + return changed; +} diff --git a/keyboards/keychron/q1v2/mcuconf.h b/keyboards/keychron/q1v2/mcuconf.h new file mode 100644 index 0000000000..0ca8c64850 --- /dev/null +++ b/keyboards/keychron/q1v2/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/keychron/q1v2/q1v2.c b/keyboards/keychron/q1v2/q1v2.c new file mode 100644 index 0000000000..4f83a760d3 --- /dev/null +++ b/keyboards/keychron/q1v2/q1v2.c @@ -0,0 +1,86 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +const matrix_row_t matrix_mask[] = { + 0b1111111111111111, + 0b1111111111111111, + 0b1111111111111111, + 0b1111111111111111, + 0b1111111111111111, + 0b1111111111101111, +}; + +#ifdef DIP_SWITCH_ENABLE +bool dip_switch_update_kb(uint8_t index, bool active) { + if (!dip_switch_update_user(index, active)) { + return false; + } + if (index == 0) { + default_layer_set(1UL << (active ? 2 : 0)); + } + return true; +} +#endif + +#if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + switch (keycode) { +# ifdef RGB_MATRIX_ENABLE + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + } break; + } + } + if (!rgb_matrix_is_enabled()) { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable(); + } + return false; +# endif + } + return true; +} + +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } + // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); + + if (host_keyboard_led_state().caps_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 255, 255, 255); + } else { + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 0, 0, 0); + } + } + return true; +} + +#endif diff --git a/keyboards/keychron/q1v2/readme.md b/keyboards/keychron/q1v2/readme.md new file mode 100644 index 0000000000..8efb51e60f --- /dev/null +++ b/keyboards/keychron/q1v2/readme.md @@ -0,0 +1,31 @@ +# Keychron Q1 Version 2 + +![Keychron Q1V2](https://i.imgur.com/BbJNGLYh.jpg) + +A customizable 75% keyboard. + +* Keyboard Maintainer: [Keychron](https://github.com/keychron) +* Hardware Supported: Keychron Q1 Version 2 +* Hardware Availability: [Keychron Q1 QMK Custom Mechanical Keyboard](https://www.keychron.com/products/keychron-q1) + +Make example for this keyboard (after setting up your build environment): + + make keychron/q1v2/ansi:default + make keychron/q1v2/ansi_encoder:default + make keychron/q1v2/iso:default + make keychron/q1v2/iso_encoder:default + make keychron/q1v2/jis:default + make keychron/q1v2/jis_encoder:default + +Flashing example for this keyboard: + + make keychron/q1v2/ansi:default:flash + make keychron/q1v2/ansi_encoder:default:flash + make keychron/q1v2/iso:default:flash + make keychron/q1v2/iso_encoder:default:flash + make keychron/q1v2/jis:default:flash + make keychron/q1v2/jis_encoder:default:flash + +**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. + +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). From 2a8b3a809d8a6ca4f9dd23bc4cef1cbc23443539 Mon Sep 17 00:00:00 2001 From: studiokestra <74369928+studiokestra@users.noreply.github.com> Date: Wed, 4 Oct 2023 22:53:41 -0600 Subject: [PATCH 239/496] Add Line TKL keyboard (#22172) Co-authored-by: Duncan Sutherland --- keyboards/studiokestra/line_tkl/config.h | 9 + keyboards/studiokestra/line_tkl/info.json | 219 ++++++++++++++++++ .../line_tkl/keymaps/default/keymap.c | 39 ++++ .../line_tkl/keymaps/split_bs_rshift/keymap.c | 39 ++++ .../line_tkl/keymaps/via/keymap.c | 39 ++++ .../line_tkl/keymaps/via/rules.mk | 1 + keyboards/studiokestra/line_tkl/readme.md | 27 +++ keyboards/studiokestra/line_tkl/rules.mk | 1 + 8 files changed, 374 insertions(+) create mode 100644 keyboards/studiokestra/line_tkl/config.h create mode 100644 keyboards/studiokestra/line_tkl/info.json create mode 100644 keyboards/studiokestra/line_tkl/keymaps/default/keymap.c create mode 100644 keyboards/studiokestra/line_tkl/keymaps/split_bs_rshift/keymap.c create mode 100644 keyboards/studiokestra/line_tkl/keymaps/via/keymap.c create mode 100644 keyboards/studiokestra/line_tkl/keymaps/via/rules.mk create mode 100644 keyboards/studiokestra/line_tkl/readme.md create mode 100644 keyboards/studiokestra/line_tkl/rules.mk diff --git a/keyboards/studiokestra/line_tkl/config.h b/keyboards/studiokestra/line_tkl/config.h new file mode 100644 index 0000000000..c37d8a5ad2 --- /dev/null +++ b/keyboards/studiokestra/line_tkl/config.h @@ -0,0 +1,9 @@ +// Copyright 2023 studiokestra (@studiokestra) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/studiokestra/line_tkl/info.json b/keyboards/studiokestra/line_tkl/info.json new file mode 100644 index 0000000000..312dd6e5cf --- /dev/null +++ b/keyboards/studiokestra/line_tkl/info.json @@ -0,0 +1,219 @@ +{ + "manufacturer": "Studio Kestra", + "keyboard_name": "Line TKL", + "maintainer": "studiokestra", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "B5", "D5", "D3"], + "rows": ["D0", "D1", "B0", "B7", "B3", "E6", "C7", "C6", "B4", "D7", "D6", "D4"] + }, + "processor": "atmega32u4", + "url": "https://minokeys.com/collections/line-friends", + "usb": { + "device_version": "1.0.0", + "pid": "0x8704", + "vid": "0x7C10" + }, + "indicators": { + "caps_lock": "B6", + "scroll_lock": "D2", + "on_state": 1 + }, + "community_layouts": [ + "tkl_ansi_tsangan", + "tkl_ansi_tsangan_split_bs_rshift" + ], + "layouts": { + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + { "matrix": [0,0], "x":0, "y":0}, + { "matrix": [0,1], "x":2.25, "y":0}, + { "matrix": [0,2], "x":3.25, "y":0}, + { "matrix": [1,2], "x":4.25, "y":0}, + { "matrix": [0,3], "x":5.5, "y":0}, + { "matrix": [1,3], "x":6.5, "y":0}, + { "matrix": [0,4], "x":7.5, "y":0}, + { "matrix": [1,4], "x":8.5, "y":0}, + { "matrix": [0,5], "x":9.75, "y":0}, + { "matrix": [1,5], "x":10.75, "y":0}, + { "matrix": [0,6], "x":11.75, "y":0}, + { "matrix": [1,6], "x":12.75, "y":0}, + { "matrix": [0,7], "x":14, "y":0}, + { "matrix": [1,7], "x":15.25, "y":0}, + { "matrix": [0,8], "x":16.25, "y":0}, + { "matrix": [1,8], "x":17.25, "y":0}, + { "matrix": [2,0], "x":0, "y":1.25}, + { "matrix": [3,0], "x":1, "y":1.25}, + { "matrix": [2,1], "x":2, "y":1.25}, + { "matrix": [3,1], "x":3, "y":1.25}, + { "matrix": [2,2], "x":4, "y":1.25}, + { "matrix": [3,2], "x":5, "y":1.25}, + { "matrix": [2,3], "x":6, "y":1.25}, + { "matrix": [3,3], "x":7, "y":1.25}, + { "matrix": [2,4], "x":8, "y":1.25}, + { "matrix": [3,4], "x":9, "y":1.25}, + { "matrix": [2,5], "x":10, "y":1.25}, + { "matrix": [3,5], "x":11, "y":1.25}, + { "matrix": [2,6], "x":12, "y":1.25}, + { "matrix": [3,6], "x":13, "y":1.25}, + { "matrix": [3,7], "x":15.25, "y":1.25}, + { "matrix": [2,8], "x":16.25, "y":1.25}, + { "matrix": [3,8], "x":17.25, "y":1.25}, + { "matrix": [4,0], "x":0, "y":2.25, "w":1.5}, + { "matrix": [5,0], "x":1.5, "y":2.25}, + { "matrix": [4,1], "x":2.5, "y":2.25}, + { "matrix": [5,1], "x":3.5, "y":2.25}, + { "matrix": [4,2], "x":4.5, "y":2.25}, + { "matrix": [5,2], "x":5.5, "y":2.25}, + { "matrix": [4,3], "x":6.5, "y":2.25}, + { "matrix": [5,3], "x":7.5, "y":2.25}, + { "matrix": [4,4], "x":8.5, "y":2.25}, + { "matrix": [5,4], "x":9.5, "y":2.25}, + { "matrix": [4,5], "x":10.5, "y":2.25}, + { "matrix": [5,5], "x":11.5, "y":2.25}, + { "matrix": [4,6], "x":12.5, "y":2.25}, + { "matrix": [4,7], "x":13.5, "y":2.25, "w":1.5}, + { "matrix": [5,7], "x":15.25, "y":2.25}, + { "matrix": [4,8], "x":16.25, "y":2.25}, + { "matrix": [5,8], "x":17.25, "y":2.25}, + { "matrix": [6,0], "x":0, "y":3.25, "w":1.75}, + { "matrix": [7,0], "x":1.75, "y":3.25}, + { "matrix": [6,1], "x":2.75, "y":3.25}, + { "matrix": [7,1], "x":3.75, "y":3.25}, + { "matrix": [6,2], "x":4.75, "y":3.25}, + { "matrix": [7,2], "x":5.75, "y":3.25}, + { "matrix": [6,3], "x":6.75, "y":3.25}, + { "matrix": [7,3], "x":7.75, "y":3.25}, + { "matrix": [6,4], "x":8.75, "y":3.25}, + { "matrix": [7,4], "x":9.75, "y":3.25}, + { "matrix": [6,5], "x":10.75, "y":3.25}, + { "matrix": [7,5], "x":11.75, "y":3.25}, + { "matrix": [6,6], "x":12.75, "y":3.25, "w":2.25}, + { "matrix": [8,0], "x":0, "y":4.25, "w":1.25}, + { "matrix": [8,1], "x":2.25, "y":4.25}, + { "matrix": [9,1], "x":3.25, "y":4.25}, + { "matrix": [8,2], "x":4.25, "y":4.25}, + { "matrix": [9,2], "x":5.25, "y":4.25}, + { "matrix": [8,3], "x":6.25, "y":4.25}, + { "matrix": [9,3], "x":7.25, "y":4.25}, + { "matrix": [8,4], "x":8.25, "y":4.25}, + { "matrix": [9,4], "x":9.25, "y":4.25}, + { "matrix": [8,5], "x":10.25, "y":4.25}, + { "matrix": [9,5], "x":11.25, "y":4.25}, + { "matrix": [8,6], "x":12.25, "y":4.25, "w":1.75}, + { "matrix": [9,8], "x":16.25, "y":4.25}, + { "matrix": [10,0], "x":0, "y":5.25, "w":1.5}, + { "matrix": [11,0], "x":1.5,"y":5.25}, + { "matrix": [10,1], "x":2.5,"y":5.25,"w":1.5}, + { "matrix": [10,3], "x":4,"y":5.25,"w":7}, + { "matrix": [11,5], "x":11,"y":5.25,"w":1.5}, + { "matrix": [10,6], "x":12.5,"y":5.25}, + { "matrix": [10,7], "x":13.5,"y":5.25,"w":1.5}, + { "matrix": [11,7], "x":15.25, "y":5.25}, + { "matrix": [10,8], "x":16.25, "y":5.25}, + { "matrix": [11,8], "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { + "layout": [ + { "matrix": [0,0], "x":0, "y":0}, + { "matrix": [0,1], "x":2.25, "y":0}, + { "matrix": [0,2], "x":3.25, "y":0}, + { "matrix": [1,2], "x":4.25, "y":0}, + { "matrix": [0,3], "x":5.5, "y":0}, + { "matrix": [1,3], "x":6.5, "y":0}, + { "matrix": [0,4], "x":7.5, "y":0}, + { "matrix": [1,4], "x":8.5, "y":0}, + { "matrix": [0,5], "x":9.75, "y":0}, + { "matrix": [1,5], "x":10.75, "y":0}, + { "matrix": [0,6], "x":11.75, "y":0}, + { "matrix": [1,6], "x":12.75, "y":0}, + { "matrix": [0,7], "x":14, "y":0}, + { "matrix": [1,7], "x":15.25, "y":0}, + { "matrix": [0,8], "x":16.25, "y":0}, + { "matrix": [1,8], "x":17.25, "y":0}, + { "matrix": [2,0], "x":0, "y":1.25}, + { "matrix": [3,0], "x":1, "y":1.25}, + { "matrix": [2,1], "x":2, "y":1.25}, + { "matrix": [3,1], "x":3, "y":1.25}, + { "matrix": [2,2], "x":4, "y":1.25}, + { "matrix": [3,2], "x":5, "y":1.25}, + { "matrix": [2,3], "x":6, "y":1.25}, + { "matrix": [3,3], "x":7, "y":1.25}, + { "matrix": [2,4], "x":8, "y":1.25}, + { "matrix": [3,4], "x":9, "y":1.25}, + { "matrix": [2,5], "x":10, "y":1.25}, + { "matrix": [3,5], "x":11, "y":1.25}, + { "matrix": [2,6], "x":12, "y":1.25}, + { "matrix": [3,6], "x":13, "y":1.25}, + { "matrix": [2,7], "x":14, "y":1.25}, + { "matrix": [3,7], "x":15.25, "y":1.25}, + { "matrix": [2,8], "x":16.25, "y":1.25}, + { "matrix": [3,8], "x":17.25, "y":1.25}, + { "matrix": [4,0], "x":0, "y":2.25, "w":1.5}, + { "matrix": [5,0], "x":1.5, "y":2.25}, + { "matrix": [4,1], "x":2.5, "y":2.25}, + { "matrix": [5,1], "x":3.5, "y":2.25}, + { "matrix": [4,2], "x":4.5, "y":2.25}, + { "matrix": [5,2], "x":5.5, "y":2.25}, + { "matrix": [4,3], "x":6.5, "y":2.25}, + { "matrix": [5,3], "x":7.5, "y":2.25}, + { "matrix": [4,4], "x":8.5, "y":2.25}, + { "matrix": [5,4], "x":9.5, "y":2.25}, + { "matrix": [4,5], "x":10.5, "y":2.25}, + { "matrix": [5,5], "x":11.5, "y":2.25}, + { "matrix": [4,6], "x":12.5, "y":2.25}, + { "matrix": [4,7], "x":13.5, "y":2.25, "w":1.5}, + { "matrix": [5,7], "x":15.25, "y":2.25}, + { "matrix": [4,8], "x":16.25, "y":2.25}, + { "matrix": [5,8], "x":17.25, "y":2.25}, + { "matrix": [6,0], "x":0, "y":3.25, "w":1.75}, + { "matrix": [7,0], "x":1.75, "y":3.25}, + { "matrix": [6,1], "x":2.75, "y":3.25}, + { "matrix": [7,1], "x":3.75, "y":3.25}, + { "matrix": [6,2], "x":4.75, "y":3.25}, + { "matrix": [7,2], "x":5.75, "y":3.25}, + { "matrix": [6,3], "x":6.75, "y":3.25}, + { "matrix": [7,3], "x":7.75, "y":3.25}, + { "matrix": [6,4], "x":8.75, "y":3.25}, + { "matrix": [7,4], "x":9.75, "y":3.25}, + { "matrix": [6,5], "x":10.75, "y":3.25}, + { "matrix": [7,5], "x":11.75, "y":3.25}, + { "matrix": [6,6], "x":12.75, "y":3.25, "w":2.25}, + { "matrix": [8,0], "x":0, "y":4.25, "w":1.25}, + { "matrix": [8,1], "x":2.25, "y":4.25}, + { "matrix": [9,1], "x":3.25, "y":4.25}, + { "matrix": [8,2], "x":4.25, "y":4.25}, + { "matrix": [9,2], "x":5.25, "y":4.25}, + { "matrix": [8,3], "x":6.25, "y":4.25}, + { "matrix": [9,3], "x":7.25, "y":4.25}, + { "matrix": [8,4], "x":8.25, "y":4.25}, + { "matrix": [9,4], "x":9.25, "y":4.25}, + { "matrix": [8,5], "x":10.25, "y":4.25}, + { "matrix": [9,5], "x":11.25, "y":4.25}, + { "matrix": [8,6], "x":12.25, "y":4.25, "w":1.75}, + { "matrix": [9,6], "x":14, "y":4.25}, + { "matrix": [9,8], "x":16.25, "y":4.25}, + { "matrix": [10,0], "x":0, "y":5.25, "w":1.5}, + { "matrix": [11,0], "x":1.5,"y":5.25}, + { "matrix": [10,1], "x":2.5,"y":5.25,"w":1.5}, + { "matrix": [10,3], "x":4,"y":5.25,"w":7}, + { "matrix": [11,5], "x":11,"y":5.25,"w":1.5}, + { "matrix": [10,6], "x":12.5,"y":5.25}, + { "matrix": [10,7], "x":13.5,"y":5.25,"w":1.5}, + { "matrix": [11,7], "x":15.25, "y":5.25}, + { "matrix": [10,8], "x":16.25, "y":5.25}, + { "matrix": [11,8], "x":17.25, "y":5.25} + ] + } + } +} diff --git a/keyboards/studiokestra/line_tkl/keymaps/default/keymap.c b/keyboards/studiokestra/line_tkl/keymaps/default/keymap.c new file mode 100644 index 0000000000..a8dc54ee87 --- /dev/null +++ b/keyboards/studiokestra/line_tkl/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +// Copyright 2023 studiokestra (@studiokestra) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Bcksp │ │Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐ + * │Ctrl │GUI│Alt │ │ Alt│GUI│ Ctrl│ │ ← │ ↓ │ → │ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + */ + + [0] = LAYOUT_tkl_ansi_tsangan( + KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT ), + + [1] = LAYOUT_tkl_ansi_tsangan( + QK_BOOT, 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_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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), +}; diff --git a/keyboards/studiokestra/line_tkl/keymaps/split_bs_rshift/keymap.c b/keyboards/studiokestra/line_tkl/keymaps/split_bs_rshift/keymap.c new file mode 100644 index 0000000000..595ed5d03c --- /dev/null +++ b/keyboards/studiokestra/line_tkl/keymaps/split_bs_rshift/keymap.c @@ -0,0 +1,39 @@ +// Copyright 2023 studiokestra (@studiokestra) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │LBk│RBk│ │Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Mo1│ │ ↑ │ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + * │Ctrl │GUI│Alt │ │ Alt│GUI│ Ctrl│ │ ← │ ↓ │ → │ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + */ + + [0] = LAYOUT_tkl_ansi_tsangan_split_bs_rshift( + KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT ), + + [1] = LAYOUT_tkl_ansi_tsangan_split_bs_rshift( + QK_BOOT, 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_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_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_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), +}; diff --git a/keyboards/studiokestra/line_tkl/keymaps/via/keymap.c b/keyboards/studiokestra/line_tkl/keymaps/via/keymap.c new file mode 100644 index 0000000000..595ed5d03c --- /dev/null +++ b/keyboards/studiokestra/line_tkl/keymaps/via/keymap.c @@ -0,0 +1,39 @@ +// Copyright 2023 studiokestra (@studiokestra) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │LBk│RBk│ │Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Mo1│ │ ↑ │ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + * │Ctrl │GUI│Alt │ │ Alt│GUI│ Ctrl│ │ ← │ ↓ │ → │ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + */ + + [0] = LAYOUT_tkl_ansi_tsangan_split_bs_rshift( + KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT ), + + [1] = LAYOUT_tkl_ansi_tsangan_split_bs_rshift( + QK_BOOT, 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_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_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_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), +}; diff --git a/keyboards/studiokestra/line_tkl/keymaps/via/rules.mk b/keyboards/studiokestra/line_tkl/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/studiokestra/line_tkl/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/studiokestra/line_tkl/readme.md b/keyboards/studiokestra/line_tkl/readme.md new file mode 100644 index 0000000000..a5d7ae0c41 --- /dev/null +++ b/keyboards/studiokestra/line_tkl/readme.md @@ -0,0 +1,27 @@ +# studiokestra/line_tkl + +![studiokestra/line_tkl](https://i.imgur.com/3MmRQkh.png) + +PCB developed for Mino Keys in collaboration with Line Friends (C). + +* Keyboard Maintainer: [Studio Kestra](https://github.com/studiokestra/) +* Hardware Supported: Line TKL +* Hardware Availability: https://minokeys.com/collections/line-friends + +Make example for this keyboard (after setting up your build environment): + + make studiokestra/line_tkl:default + +Flashing example for this keyboard: + + make studiokestra/line_tkl:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/studiokestra/line_tkl/rules.mk b/keyboards/studiokestra/line_tkl/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/studiokestra/line_tkl/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From 92873cc14f1ef66ae3c856dc6b5298c75e66f8d2 Mon Sep 17 00:00:00 2001 From: noahbei <123449614+noahbei@users.noreply.github.com> Date: Wed, 4 Oct 2023 21:55:49 -0700 Subject: [PATCH 240/496] Add printedpad keyboard (#21202) Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Drashna Jaelre --- keyboards/printedpad/config.h | 15 + keyboards/printedpad/halconf.h | 8 + keyboards/printedpad/info.json | 46 + keyboards/printedpad/keymaps/default/keymap.c | 45 + keyboards/printedpad/keymaps/via/keymap.c | 45 + keyboards/printedpad/keymaps/via/rules.mk | 1 + keyboards/printedpad/mcuconf.h | 9 + keyboards/printedpad/oled.c | 1420 +++++++++++++++++ keyboards/printedpad/printedpad.c | 57 + keyboards/printedpad/printedpad.h | 16 + keyboards/printedpad/readme.md | 25 + keyboards/printedpad/rules.mk | 1 + 12 files changed, 1688 insertions(+) create mode 100644 keyboards/printedpad/config.h create mode 100644 keyboards/printedpad/halconf.h create mode 100644 keyboards/printedpad/info.json create mode 100644 keyboards/printedpad/keymaps/default/keymap.c create mode 100644 keyboards/printedpad/keymaps/via/keymap.c create mode 100644 keyboards/printedpad/keymaps/via/rules.mk create mode 100644 keyboards/printedpad/mcuconf.h create mode 100644 keyboards/printedpad/oled.c create mode 100644 keyboards/printedpad/printedpad.c create mode 100644 keyboards/printedpad/printedpad.h create mode 100644 keyboards/printedpad/readme.md create mode 100644 keyboards/printedpad/rules.mk diff --git a/keyboards/printedpad/config.h b/keyboards/printedpad/config.h new file mode 100644 index 0000000000..58bf9c6ffe --- /dev/null +++ b/keyboards/printedpad/config.h @@ -0,0 +1,15 @@ +// Copyright 2023 Noah Beidelman (@noahbei) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define I2C_DRIVER I2CD1 +#define I2C1_SCL_PAL_MODE 1 +#define I2C1_SDA_PAL_MODE 1 +#define I2C1_TIMINGR_PRESC 0x00U +#define I2C1_TIMINGR_SCLDEL 0x03U +#define I2C1_TIMINGR_SDADEL 0x01U +#define I2C1_TIMINGR_SCLH 0x03U +#define I2C1_TIMINGR_SCLL 0x09U + +#define OLED_TIMEOUT 300000 diff --git a/keyboards/printedpad/halconf.h b/keyboards/printedpad/halconf.h new file mode 100644 index 0000000000..0534f72da2 --- /dev/null +++ b/keyboards/printedpad/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2023 Noah Beidelman (@noahbei) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next \ No newline at end of file diff --git a/keyboards/printedpad/info.json b/keyboards/printedpad/info.json new file mode 100644 index 0000000000..8ced02141b --- /dev/null +++ b/keyboards/printedpad/info.json @@ -0,0 +1,46 @@ +{ + "manufacturer": "Prota Designs", + "keyboard_name": "Printed Pad", + "maintainer": "noahbei", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "oled": true + }, + "matrix_pins": { + "cols": ["B2", "B1", "B0"], + "rows": ["A10", "C9", "A8", "A9"] + }, + "processor": "STM32F072", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0001", + "vid": "0x5044" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + + { "matrix": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/printedpad/keymaps/default/keymap.c b/keyboards/printedpad/keymaps/default/keymap.c new file mode 100644 index 0000000000..2126dc593f --- /dev/null +++ b/keyboards/printedpad/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +// Copyright 2023 Noah Beidelman (@noahbei) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐ + * │Tog│ + * ├───┼───┬───┐ + * │ 7 │ 8 │ 9 │ + * ├───┼───┼───┤ + * │ 4 │ 5 │ 6 │ + * ├───┼───┼───┤ + * │ 1 │ 2 │ 3 │ + * └───┴───┴───┘ + */ + [0] = LAYOUT( + LT(0, KC_NO), + KC_7, KC_8, KC_9, + KC_4, KC_5, KC_6, + KC_1, KC_2, KC_3 + ), + + [1] = LAYOUT( + LT(0, KC_NO), + KC_A, KC_B, KC_C, + KC_D, KC_E, KC_F, + KC_G, KC_H, KC_I + ), + + [2] = LAYOUT( + LT(0, KC_NO), + KC_J, KC_K, KC_L, + KC_M, KC_N, KC_O, + KC_P, KC_Q, KC_R + ), + + [3] = LAYOUT( + LT(0, KC_NO), + KC_S, KC_T, KC_U, + KC_V, KC_W, KC_X, + KC_Y, KC_Z, KC_ENT + ) +}; \ No newline at end of file diff --git a/keyboards/printedpad/keymaps/via/keymap.c b/keyboards/printedpad/keymaps/via/keymap.c new file mode 100644 index 0000000000..2126dc593f --- /dev/null +++ b/keyboards/printedpad/keymaps/via/keymap.c @@ -0,0 +1,45 @@ +// Copyright 2023 Noah Beidelman (@noahbei) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐ + * │Tog│ + * ├───┼───┬───┐ + * │ 7 │ 8 │ 9 │ + * ├───┼───┼───┤ + * │ 4 │ 5 │ 6 │ + * ├───┼───┼───┤ + * │ 1 │ 2 │ 3 │ + * └───┴───┴───┘ + */ + [0] = LAYOUT( + LT(0, KC_NO), + KC_7, KC_8, KC_9, + KC_4, KC_5, KC_6, + KC_1, KC_2, KC_3 + ), + + [1] = LAYOUT( + LT(0, KC_NO), + KC_A, KC_B, KC_C, + KC_D, KC_E, KC_F, + KC_G, KC_H, KC_I + ), + + [2] = LAYOUT( + LT(0, KC_NO), + KC_J, KC_K, KC_L, + KC_M, KC_N, KC_O, + KC_P, KC_Q, KC_R + ), + + [3] = LAYOUT( + LT(0, KC_NO), + KC_S, KC_T, KC_U, + KC_V, KC_W, KC_X, + KC_Y, KC_Z, KC_ENT + ) +}; \ No newline at end of file diff --git a/keyboards/printedpad/keymaps/via/rules.mk b/keyboards/printedpad/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/printedpad/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/printedpad/mcuconf.h b/keyboards/printedpad/mcuconf.h new file mode 100644 index 0000000000..af97c1c992 --- /dev/null +++ b/keyboards/printedpad/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2023 Noah Beidelman (@noahbei) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/printedpad/oled.c b/keyboards/printedpad/oled.c new file mode 100644 index 0000000000..a41fad7767 --- /dev/null +++ b/keyboards/printedpad/oled.c @@ -0,0 +1,1420 @@ +// Copyright 2023 Noah Beidelman (@noahbei) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "printedpad.h" + +#ifdef OLED_ENABLE +static void flash_current_layer(void); + +#define FRAME_DURATION 200 + +uint32_t animation_timer = 0; +uint8_t current_frame = 0; + +static void render_animation(void) { + // 'monkeylong26', 128x32px + static const char epd_bitmap_monkeylong26[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x20, 0xb0, 0xf8, 0xf8, 0x7c, 0x3c, 0x3c, 0x3c, 0x3c, 0x38, 0x18, 0x10, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, + 0x90, 0x90, 0x63, 0xc4, 0x3f, 0x1f, 0x3b, 0xf0, 0xe0, 0xc8, 0xd3, 0x50, 0x50, 0xc3, 0xa0, 0xa1, + 0x72, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x02, 0x04, 0x74, 0xf4, 0xe5, 0xaf, 0xcf, 0x1f, 0x11, 0x10, 0x10, 0x10, 0x70, 0xe8, 0xef, 0xd0, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'monkeylong25', 128x32px + static const char epd_bitmap_monkeylong25[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, + 0xb0, 0xf8, 0xf8, 0x7c, 0x3c, 0x3c, 0x3c, 0x3c, 0x38, 0x18, 0x10, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x20, 0x20, 0xc3, 0xc4, + 0x3f, 0x1f, 0x3b, 0xf0, 0xe0, 0xc8, 0xd3, 0x50, 0x50, 0xc3, 0xa0, 0xa1, 0x72, 0x0c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x05, 0x05, 0x74, 0xf4, + 0xe5, 0xaf, 0xcf, 0x1f, 0x11, 0x10, 0x10, 0xf0, 0xf0, 0xe8, 0xaf, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'monkeylong24', 128x32px + static const char epd_bitmap_monkeylong24[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0xb0, 0xf8, 0xf8, 0x7c, + 0x3c, 0x3c, 0x3c, 0x3c, 0x38, 0x18, 0x10, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x83, 0x04, 0x9f, 0x7f, 0x3b, 0x70, + 0xe0, 0xc8, 0xd3, 0x50, 0x50, 0xc3, 0xe0, 0x21, 0x32, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x0a, 0x0a, 0x09, 0x74, 0xf5, 0xee, 0xae, 0xde, + 0x11, 0x10, 0xf0, 0xf0, 0xf0, 0xa8, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'monkeylong23', 128x32px + static const char epd_bitmap_monkeylong23[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0xb0, 0xf8, 0xf8, 0x7c, 0x3c, 0x3c, 0x3c, 0x3c, + 0x38, 0x18, 0x10, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x03, 0x04, 0x1f, 0x3f, 0xfb, 0xf0, 0x60, 0x28, 0x53, 0xd0, + 0x50, 0xc3, 0x20, 0x21, 0x32, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x06, 0x09, 0x10, 0x14, 0x14, 0x13, 0x08, 0x04, 0xef, 0xef, 0xff, 0xf2, 0xf2, 0xf2, 0xb1, + 0xd0, 0x08, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'monkeylong22', 128x32px + static const char epd_bitmap_monkeylong22[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x20, 0xb0, 0xf8, 0xf8, 0x7c, 0x3c, 0x3c, 0x3c, 0x3c, 0x38, 0x18, 0x10, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, + 0x40, 0x40, 0x83, 0x04, 0x1f, 0xff, 0xfb, 0xf0, 0xe0, 0xc8, 0xd3, 0x50, 0x30, 0x43, 0xe0, 0x21, + 0x32, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, + 0x0a, 0x0a, 0x09, 0x04, 0xe4, 0xef, 0xef, 0xbf, 0xd1, 0x10, 0xf1, 0xf2, 0xf2, 0xaa, 0xcf, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'monkeylong21', 128x32px + static const char epd_bitmap_monkeylong21[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, + 0xb0, 0xf8, 0xf8, 0x7c, 0x3c, 0x3c, 0x3c, 0x3c, 0x38, 0x18, 0x10, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x20, 0x20, 0xc3, 0x04, + 0xdf, 0x3f, 0xfb, 0xf0, 0xe0, 0xc8, 0xd3, 0x50, 0xd0, 0x43, 0x20, 0x61, 0xf2, 0x0c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x74, + 0xf4, 0xef, 0xaf, 0xdf, 0x11, 0x10, 0x10, 0xf0, 0xf1, 0xea, 0xae, 0xc2, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'monkeylong20', 128x32px + static const char epd_bitmap_monkeylong20[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0xb0, 0xf8, 0xf8, 0x7c, + 0x3c, 0x3c, 0x3c, 0x3c, 0x38, 0x18, 0x10, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x90, 0x90, 0x63, 0x64, 0x9f, 0xbf, 0xfb, 0xf0, + 0xe0, 0xca, 0xd2, 0x50, 0x52, 0xc2, 0x20, 0x11, 0x32, 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x04, 0x74, 0xf4, 0xe4, 0xaf, 0xcf, 0x1f, + 0x11, 0x10, 0x10, 0xf0, 0xf0, 0xe8, 0xaf, 0xc1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'monkeylong19', 128x32px + static const char epd_bitmap_monkeylong19[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0xb0, 0xf8, 0xf8, 0x7c, 0x3c, 0x3c, 0x3c, 0x3c, + 0x38, 0x18, 0x10, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x20, 0x10, 0x90, 0x90, 0x63, 0x64, 0x9f, 0xbf, 0xfb, 0xf0, 0xe0, 0xc8, 0xd3, 0x50, + 0x50, 0xc3, 0x20, 0x11, 0x32, 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x02, 0x04, 0x74, 0xf4, 0xe4, 0xaf, 0xcf, 0x1f, 0x11, 0x10, 0x10, 0x10, + 0x70, 0xe8, 0xef, 0xd1, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'monkeylong18', 128x32px + static const char epd_bitmap_monkeylong18[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x20, 0xb0, 0xf8, 0xf8, 0x7c, 0x3c, 0x3c, 0x3c, 0x3c, 0x38, 0x18, 0x10, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, + 0x20, 0x20, 0xc3, 0x64, 0x9f, 0xbf, 0xfb, 0xf0, 0xe0, 0xc8, 0xd3, 0x50, 0x50, 0xc3, 0x20, 0x11, + 0x32, 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, + 0x05, 0x05, 0x74, 0xf4, 0xe4, 0xaf, 0xcf, 0x1f, 0x11, 0x10, 0x10, 0x10, 0x70, 0xe8, 0xef, 0xd1, + 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'monkeylong17', 128x32px + static const char epd_bitmap_monkeylong17[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, + 0xb0, 0xf8, 0xf8, 0x7c, 0x3c, 0x3c, 0x3c, 0x3c, 0x38, 0x18, 0x10, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x83, 0x04, + 0xdf, 0x3f, 0xfb, 0xf0, 0xe0, 0xc8, 0xd3, 0x50, 0xd0, 0x43, 0x20, 0x61, 0xf2, 0x0c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x0a, 0x0a, 0x09, 0x74, + 0xf4, 0xef, 0xaf, 0xdf, 0x11, 0x10, 0x10, 0xf0, 0xf1, 0xea, 0xae, 0xc2, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'monkeylong16', 128x32px + static const char epd_bitmap_monkeylong16[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0xb0, 0xf8, 0xf8, 0x7c, + 0x3c, 0x3c, 0x3c, 0x3c, 0x38, 0x18, 0x10, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x03, 0x04, 0x1f, 0xff, 0xfb, 0xf0, + 0xe0, 0xc8, 0xd3, 0x50, 0x30, 0x43, 0xe0, 0x21, 0x32, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x09, 0x10, 0x14, 0x14, 0x13, 0x08, 0x04, 0xef, 0xef, 0xff, + 0xb1, 0xd0, 0xf1, 0xf2, 0xf2, 0xaa, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'monkeylong15', 128x32px + static const char epd_bitmap_monkeylong15[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0xb0, 0xf8, 0xf8, 0x7c, 0x3c, 0x3c, 0x3c, 0x3c, + 0x38, 0x18, 0x10, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x83, 0x04, 0x1f, 0x3f, 0xfb, 0xf0, 0x60, 0x28, 0x53, 0xd0, + 0x50, 0xc3, 0x20, 0x21, 0x32, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x04, 0x08, 0x0a, 0x0a, 0x09, 0x04, 0x04, 0x0f, 0x0f, 0xff, 0xf2, 0xf2, 0xb2, 0xf1, + 0xb0, 0xc8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'monkeylong14', 128x32px + static const char epd_bitmap_monkeylong14[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x20, 0xb0, 0xf8, 0xf8, 0x7c, 0x3c, 0x3c, 0x3c, 0x3c, 0x38, 0x18, 0x10, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, + 0x20, 0x20, 0xc3, 0x04, 0x9f, 0x7f, 0x3b, 0x70, 0xe0, 0xc8, 0xd3, 0x50, 0x50, 0xc3, 0xe0, 0x21, + 0x32, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, + 0x05, 0x05, 0x04, 0x04, 0xe5, 0xee, 0xee, 0xbe, 0xd1, 0x10, 0xf0, 0xf0, 0xf0, 0xa8, 0xcf, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + + // 'monkeylong13', 128x32px + static const char epd_bitmap_monkeylong13[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x10, 0x18, 0x38, 0x3c, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xb0, 0x20, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x72, + 0xa1, 0xa0, 0xc3, 0x50, 0x50, 0xd3, 0xc8, 0xe0, 0xf0, 0x3b, 0x1f, 0x3f, 0xc4, 0x63, 0x90, 0x90, + 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, + 0xd0, 0xef, 0xe8, 0x70, 0x10, 0x10, 0x10, 0x11, 0x1f, 0xcf, 0xaf, 0xe5, 0xf4, 0x74, 0x04, 0x02, + 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'monkeylong12', 128x32px + static const char epd_bitmap_monkeylong12[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x18, 0x38, 0x3c, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xb0, + 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x72, 0xa1, 0xa0, 0xc3, 0x50, 0x50, 0xd3, 0xc8, 0xe0, 0xf0, 0x3b, 0x1f, 0x3f, + 0xc4, 0xc3, 0x20, 0x20, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xaf, 0xe8, 0xf0, 0xf0, 0x10, 0x10, 0x11, 0x1f, 0xcf, 0xaf, 0xe5, + 0xf4, 0x74, 0x05, 0x05, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'monkeylong11', 128x32px + static const char epd_bitmap_monkeylong11[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x18, 0x38, 0x3c, 0x3c, 0x3c, 0x3c, + 0x7c, 0xf8, 0xf8, 0xb0, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x32, 0x21, 0xe0, 0xc3, 0x50, 0x50, 0xd3, 0xc8, 0xe0, + 0x70, 0x3b, 0x7f, 0x9f, 0x04, 0x83, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0xa8, 0xf0, 0xf0, 0xf0, 0x10, 0x11, + 0xde, 0xae, 0xee, 0xf5, 0x74, 0x09, 0x0a, 0x0a, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'monkeylong9', 128x32px + static const char epd_bitmap_monkeylong9[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x10, 0x18, 0x38, 0x3c, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xb0, 0x20, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x32, + 0x21, 0xe0, 0x43, 0x30, 0x50, 0xd3, 0xc8, 0xe0, 0xf0, 0xfb, 0xff, 0x1f, 0x04, 0x83, 0x40, 0x40, + 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xcf, 0xaa, 0xf2, 0xf2, 0xf1, 0x10, 0xd1, 0xbf, 0xef, 0xef, 0xe4, 0x04, 0x09, 0x0a, 0x0a, + 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'monkeylong10', 128x32px + static const char epd_bitmap_monkeylong10[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x18, 0x38, + 0x3c, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xb0, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x32, 0x21, 0x20, 0xc3, 0x50, + 0xd0, 0x53, 0x28, 0x60, 0xf0, 0xfb, 0x3f, 0x1f, 0x04, 0x03, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x08, 0xd0, + 0xb1, 0xf2, 0xf2, 0xf2, 0xff, 0xef, 0xef, 0x04, 0x08, 0x13, 0x14, 0x14, 0x10, 0x09, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'monkeylong8', 128x32px + static const char epd_bitmap_monkeylong8[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x18, 0x38, 0x3c, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xb0, + 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0xf2, 0x61, 0x20, 0x43, 0xd0, 0x50, 0xd3, 0xc8, 0xe0, 0xf0, 0xfb, 0x3f, 0xdf, + 0x04, 0xc3, 0x20, 0x20, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0xc2, 0xae, 0xea, 0xf1, 0xf0, 0x10, 0x10, 0x11, 0xdf, 0xaf, 0xef, 0xf4, + 0x74, 0x04, 0x05, 0x05, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'monkeylong7', 128x32px + static const char epd_bitmap_monkeylong7[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x18, 0x38, 0x3c, 0x3c, 0x3c, 0x3c, + 0x7c, 0xf8, 0xf8, 0xb0, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x32, 0x11, 0x20, 0xc2, 0x52, 0x50, 0xd2, 0xca, 0xe0, + 0xf0, 0xfb, 0xbf, 0x9f, 0x64, 0x63, 0x90, 0x90, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc1, 0xaf, 0xe8, 0xf0, 0xf0, 0x10, 0x10, 0x11, + 0x1f, 0xcf, 0xaf, 0xe4, 0xf4, 0x74, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'monkeylong6', 128x32px + static const char epd_bitmap_monkeylong6[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x18, 0x38, + 0x3c, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xb0, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x32, 0x11, 0x20, 0xc3, 0x50, + 0x50, 0xd3, 0xc8, 0xe0, 0xf0, 0xfb, 0xbf, 0x9f, 0x64, 0x63, 0x90, 0x90, 0x10, 0x20, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0xd1, 0xef, 0xe8, 0x70, + 0x10, 0x10, 0x10, 0x11, 0x1f, 0xcf, 0xaf, 0xe4, 0xf4, 0x74, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'monkeylong5', 128x32px + static const char epd_bitmap_monkeylong5[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x10, 0x18, 0x38, 0x3c, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xb0, 0x20, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x32, + 0x11, 0x20, 0xc3, 0x50, 0x50, 0xd3, 0xc8, 0xe0, 0xf0, 0xfb, 0xbf, 0x9f, 0x64, 0xc3, 0x20, 0x20, + 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, + 0xd1, 0xef, 0xe8, 0x70, 0x10, 0x10, 0x10, 0x11, 0x1f, 0xcf, 0xaf, 0xe4, 0xf4, 0x74, 0x05, 0x05, + 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'monkeylong4', 128x32px + static const char epd_bitmap_monkeylong4[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x18, 0x38, 0x3c, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xb0, + 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0xf2, 0x61, 0x20, 0x43, 0xd0, 0x50, 0xd3, 0xc8, 0xe0, 0xf0, 0xfb, 0x3f, 0xdf, + 0x04, 0x83, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0xc2, 0xae, 0xea, 0xf1, 0xf0, 0x10, 0x10, 0x11, 0xdf, 0xaf, 0xef, 0xf4, + 0x74, 0x09, 0x0a, 0x0a, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'monkeylong3', 128x32px + static const char epd_bitmap_monkeylong3[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x18, 0x38, 0x3c, 0x3c, 0x3c, 0x3c, + 0x7c, 0xf8, 0xf8, 0xb0, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x32, 0x21, 0xe0, 0x43, 0x30, 0x50, 0xd3, 0xc8, 0xe0, + 0xf0, 0xfb, 0xff, 0x1f, 0x04, 0x03, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0xaa, 0xf2, 0xf2, 0xf1, 0xd0, 0xb1, + 0xff, 0xef, 0xef, 0x04, 0x08, 0x13, 0x14, 0x14, 0x10, 0x09, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'monkeylong2', 128x32px + static const char epd_bitmap_monkeylong2[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x18, 0x38, + 0x3c, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xb0, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x32, 0x21, 0x20, 0xc3, 0x50, + 0xd0, 0x53, 0x28, 0x60, 0xf0, 0xfb, 0x3f, 0x1f, 0x04, 0x83, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xc8, 0xb0, + 0xf1, 0xb2, 0xf2, 0xf2, 0xff, 0x0f, 0x0f, 0x04, 0x04, 0x09, 0x0a, 0x0a, 0x08, 0x04, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'monkeylong1', 128x32px + static const char epd_bitmap_monkeylong1[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x10, 0x18, 0x38, 0x3c, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xb0, 0x20, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x32, + 0x21, 0xe0, 0xc3, 0x50, 0x50, 0xd3, 0xc8, 0xe0, 0x70, 0x3b, 0x7f, 0x9f, 0x04, 0xc3, 0x20, 0x20, + 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xcf, 0xa8, 0xf0, 0xf0, 0xf0, 0x10, 0xd1, 0xbe, 0xee, 0xee, 0xe5, 0x04, 0x04, 0x05, 0x05, + 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + + // Array of all bitmaps for convenience. (Total bytes used to store images = 13728) + static const char* const epd_bitmap_allArray[26] = { + epd_bitmap_monkeylong1, + epd_bitmap_monkeylong2, + epd_bitmap_monkeylong3, + epd_bitmap_monkeylong4, + epd_bitmap_monkeylong5, + epd_bitmap_monkeylong6, + epd_bitmap_monkeylong7, + epd_bitmap_monkeylong8, + epd_bitmap_monkeylong9, + epd_bitmap_monkeylong10, + epd_bitmap_monkeylong11, + epd_bitmap_monkeylong12, + epd_bitmap_monkeylong13, + epd_bitmap_monkeylong14, + epd_bitmap_monkeylong15, + epd_bitmap_monkeylong16, + epd_bitmap_monkeylong17, + epd_bitmap_monkeylong18, + epd_bitmap_monkeylong19, + epd_bitmap_monkeylong20, + epd_bitmap_monkeylong21, + epd_bitmap_monkeylong22, + epd_bitmap_monkeylong23, + epd_bitmap_monkeylong24, + epd_bitmap_monkeylong25, + epd_bitmap_monkeylong26 + }; + + uint16_t frame_size = sizeof(epd_bitmap_monkeylong1); + + if (layer_changed) // flash_current_layer will change layer_changed to flase after a short time, resuming the animation + flash_current_layer(); + + else if (timer_elapsed(animation_timer) > FRAME_DURATION) { + // Set animation_timer to updated time + animation_timer = timer_read(); + + // Increment frame + current_frame = (current_frame + 1) % (sizeof(epd_bitmap_allArray) / sizeof(epd_bitmap_allArray[0])); + + // Draw frame to OLED + oled_write_raw_P(epd_bitmap_allArray[current_frame], frame_size); + } +} + +static void render_layers(void) { + static const char pop[][525] = { + { + // 'Pop1', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, + 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x03, 0x01, 0xe0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, + 0x01, 0x03, 0x07, 0xff, 0xff, 0xc7, 0xc3, 0xe1, 0xf0, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe0, 0xc0, 0x80, 0x0f, 0x1f, 0x3f, 0x3f, 0x1f, 0x0f, + 0x80, 0xc0, 0xe0, 0xff, 0xff, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1f, 0x1f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x03, + 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, + 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, + 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, + 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, + 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, + 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00 + }, + { + // 'Pop2', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, + 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x03, 0x01, 0xe0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0x01, + 0x03, 0x07, 0xff, 0xff, 0xe3, 0xe1, 0xf0, 0xf8, 0xf8, 0x78, 0x30, 0x01, 0x03, 0x87, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe0, 0xc0, 0x80, 0x0f, 0x1f, 0x3f, 0x3f, 0x1f, 0x0f, 0x80, + 0xc0, 0xe0, 0xff, 0x1f, 0x0f, 0x07, 0x03, 0x21, 0x30, 0x38, 0x3c, 0x3e, 0x3f, 0x3f, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, + 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1f, 0x1f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x03, 0x00, + 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, + 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, + 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, + 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00 + }, + { + // 'Pop3', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, + 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x07, 0x03, 0x01, 0xe0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0x01, 0x03, 0x07, + 0xff, 0xff, 0xf3, 0xf1, 0xf0, 0x78, 0x78, 0x78, 0x38, 0x00, 0x01, 0x83, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xe0, 0xc0, 0x80, 0x0f, 0x1f, 0x3f, 0x3f, 0x1f, 0x0f, 0x80, 0xc0, 0xe0, + 0xff, 0xff, 0xcf, 0x8f, 0x0f, 0x1e, 0x3e, 0x3e, 0x3e, 0x1c, 0x00, 0x80, 0xc3, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, + 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, + 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, + 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, + 0x00, 0x00, 0x03, 0x0f, 0x1f, 0x1f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x03, 0x00, 0x00, + 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, + 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00 + }, + { + // 'Pop4', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, + 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x07, 0x03, 0x01, 0xe0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0x01, 0x03, 0x07, 0xff, + 0xff, 0xff, 0x3f, 0x1f, 0x0f, 0x83, 0xc1, 0xe0, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xe0, 0xc0, 0x80, 0x0f, 0x1f, 0x3f, 0x3f, 0x1f, 0x0f, 0x80, 0xc0, 0xe0, 0xff, + 0xe3, 0xe0, 0xe0, 0xe0, 0xe2, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, + 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, + 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, + 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, + 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, + 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, + 0x00, 0x03, 0x0f, 0x1f, 0x1f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x03, 0x00, 0x00, 0x00 + } + }; + + oled_write_raw_P(pop[get_highest_layer(layer_state)], sizeof(pop[0])); +} + +static void render_button_pressed(void) { + static const char pressed[] = { + // 'pressed', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x08, 0x08, 0x08, 0x90, 0x00, 0xf8, + 0x00, 0x00, 0x00, 0x00, 0x08, 0xf8, 0x08, 0x00, 0xf0, 0x08, 0x08, 0x08, 0x90, 0x00, 0xf8, 0x20, + 0xd0, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x38, 0x08, 0x0c, 0x0c, 0x1e, 0x1e, + 0x1e, 0x1e, 0x0e, 0x0e, 0x0e, 0x0e, 0x1e, 0x3c, 0xf8, 0xf8, 0xd8, 0x10, 0xf0, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, + 0x01, 0x01, 0xc1, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xc0, 0x01, 0x00, + 0x00, 0x01, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x3c, 0x42, 0x81, 0x00, 0x02, 0x01, 0x21, 0x41, 0x42, + 0x40, 0x42, 0x41, 0x21, 0x01, 0x02, 0x00, 0x00, 0x01, 0x8f, 0xff, 0x3e, 0x07, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x41, 0x22, 0x10, 0x10, 0x10, 0x10, 0x10, + 0x10, 0x10, 0x11, 0x12, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x12, 0x11, 0x10, 0x10, + 0x10, 0x18, 0x2a, 0x45, 0xc4, 0x42, 0x42, 0x22, 0x21, 0x11, 0x12, 0xfe, 0x02, 0x02, 0x02, 0x02, + 0x7a, 0x84, 0x84, 0x4c, 0x3c, 0xfc, 0xfe, 0x87, 0x83, 0x99, 0xa4, 0xa2, 0x92, 0x44, 0x38, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, + 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, + 0x42, 0x42, 0x42, 0x42, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x42, 0x43, 0x42, 0x44, 0x3c, 0x04, + 0x0c, 0x08, 0x08, 0x08, 0x3c, 0x46, 0x43, 0x43, 0x42, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + + static const char not_pressed[] = { + // 'not_pressed', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x38, 0x08, 0x0c, 0x0c, 0x1e, 0x1e, + 0x1e, 0x1e, 0x0e, 0x0e, 0x0e, 0x0e, 0x1e, 0x3c, 0xf8, 0xf8, 0xd8, 0x10, 0xf0, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x10, 0x10, 0x10, 0x3c, 0x42, 0x81, 0x00, 0x02, 0x01, 0x21, 0x41, 0x42, + 0x40, 0x42, 0x41, 0x21, 0x01, 0x02, 0x00, 0x00, 0x01, 0x8f, 0xff, 0x3e, 0x07, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x48, 0xc4, 0x42, 0x42, 0x42, 0x42, 0x42, + 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, + 0x42, 0x42, 0xc4, 0x48, 0x71, 0x02, 0x04, 0x04, 0x08, 0x09, 0x12, 0xfe, 0x02, 0x02, 0x02, 0x02, + 0x7a, 0x84, 0x84, 0x4c, 0x3c, 0xfc, 0xfe, 0x87, 0x83, 0x99, 0xa4, 0xa2, 0x92, 0x44, 0x38, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x42, 0x43, 0x42, 0x42, 0x42, 0x42, 0x42, + 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, + 0x42, 0x42, 0x43, 0x42, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x42, 0x43, 0x42, 0x44, 0x3c, 0x04, + 0x0c, 0x08, 0x08, 0x08, 0x3c, 0x46, 0x43, 0x43, 0x42, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + + if (layer_changed) + flash_current_layer(); + + else if (key_pressed) + oled_write_raw_P(pressed, sizeof(pressed)); + else + oled_write_raw_P(not_pressed, sizeof(not_pressed)); +} + +static void flash_current_layer(void) { + // will flash for 500 ms + if (timer_elapsed(flash_timer) > 500) + layer_changed = false; + + static const char flash[][525] = { + { + // 'flash1', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, + 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x03, 0x01, 0xe0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0x01, 0x03, + 0x07, 0xff, 0xff, 0xc7, 0xc3, 0xe1, 0xf0, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xe0, 0xc0, 0x80, 0x0f, 0x1f, 0x3f, 0x3f, 0x1f, 0x0f, 0x80, 0xc0, + 0xe0, 0xff, 0xff, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1f, 0x1f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + // 'flash2', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, + 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x03, 0x01, 0xe0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0x01, 0x03, + 0x07, 0xff, 0xff, 0xe3, 0xe1, 0xf0, 0xf8, 0xf8, 0x78, 0x30, 0x01, 0x03, 0x87, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xe0, 0xc0, 0x80, 0x0f, 0x1f, 0x3f, 0x3f, 0x1f, 0x0f, 0x80, 0xc0, + 0xe0, 0xff, 0x1f, 0x0f, 0x07, 0x03, 0x21, 0x30, 0x38, 0x3c, 0x3e, 0x3f, 0x3f, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1f, 0x1f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + // 'flash3', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, + 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x03, 0x01, 0xe0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0x01, 0x03, + 0x07, 0xff, 0xff, 0xf3, 0xf1, 0xf0, 0x78, 0x78, 0x78, 0x38, 0x00, 0x01, 0x83, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xe0, 0xc0, 0x80, 0x0f, 0x1f, 0x3f, 0x3f, 0x1f, 0x0f, 0x80, 0xc0, + 0xe0, 0xff, 0xff, 0xcf, 0x8f, 0x0f, 0x1e, 0x3e, 0x3e, 0x3e, 0x1c, 0x00, 0x80, 0xc3, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1f, 0x1f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + // 'flash4', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, + 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x03, 0x01, 0xe0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0x01, 0x03, + 0x07, 0xff, 0xff, 0xff, 0x3f, 0x1f, 0x0f, 0x83, 0xe1, 0xf0, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xe0, 0xc0, 0x80, 0x0f, 0x1f, 0x3f, 0x3f, 0x1f, 0x0f, 0x80, 0xc0, + 0xe0, 0xff, 0xe3, 0xe0, 0xe0, 0xe0, 0xe2, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0xe3, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1f, 0x1f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + } + }; + + oled_write_raw_P(flash[get_highest_layer(layer_state)], sizeof(flash[0])); +} + +static void render_logo(void) { + static const char prota[] = { + // 'Prota_flash', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, + 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, + 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, + 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0xc3, 0xff, 0xff, 0xff, 0x7f, 0x3e, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0xc3, 0xff, + 0xff, 0xff, 0x7f, 0x3f, 0x00, 0x00, 0xf8, 0xfe, 0xff, 0xff, 0x1f, 0x07, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x1f, 0xff, 0xff, 0xfe, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xf8, 0xfe, 0xff, 0x3f, 0x07, 0x07, 0x3f, 0xff, 0xfe, 0xf8, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07, 0xff, + 0xff, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x1f, 0x7f, 0xff, 0xff, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xff, 0xff, 0x7f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, + 0xff, 0xff, 0xff, 0x3f, 0x1d, 0x1c, 0x1c, 0x1c, 0x1c, 0x1d, 0x3f, 0xff, 0xff, 0xff, 0xf0, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x07, 0x07, 0x07, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x07, 0x07, 0x07, 0x06, + 0x06, 0x06, 0x07, 0x07, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x07, 0x07, + 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x07, 0x07, 0x07, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + + oled_write_raw_P(prota, sizeof(prota)); +} + +bool logo_rendered = false; + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + if (!logo_rendered) { + render_logo(); + if (timer_read() > 2500) + logo_rendered = true; + } + else { + switch(current_display_mode) { + case 0: + render_layers(); + break; + case 1: + render_animation(); + break; + case 2: + render_button_pressed(); + break; + } + } + return false; +} +#endif diff --git a/keyboards/printedpad/printedpad.c b/keyboards/printedpad/printedpad.c new file mode 100644 index 0000000000..4e3354c028 --- /dev/null +++ b/keyboards/printedpad/printedpad.c @@ -0,0 +1,57 @@ +// Copyright 2023 Noah Beidelman (@noahbei) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +#include "printedpad.h" + +void board_init(void) { + SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP; +} + +const uint8_t max_layer = 3; +uint8_t current_display_mode = 0; + +bool key_pressed = false; + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } +#ifdef OLED_ENABLE + key_pressed = record->event.pressed; +#endif + switch(keycode) { + case LT(0, KC_NO): + if (record->event.pressed) { + // on tap + if (record->tap.count) { + if (get_highest_layer(layer_state) >= max_layer) { + layer_clear(); + } else { + layer_move(get_highest_layer(layer_state) + 1); + } + } +#ifdef OLED_ENABLE + // on hold + else { + current_display_mode = (current_display_mode + 1) % 3; + } +#endif + } + return false; + } + return true; +} + +#ifdef OLED_ENABLE +uint32_t flash_timer = 0; +bool layer_changed = false; + +// when the layer is changed, flash the layer number on the screen +layer_state_t layer_state_set_kb(layer_state_t state) { + flash_timer = timer_read(); + layer_changed = true; + + return layer_state_set_user(state); +} +#endif \ No newline at end of file diff --git a/keyboards/printedpad/printedpad.h b/keyboards/printedpad/printedpad.h new file mode 100644 index 0000000000..17c23be69b --- /dev/null +++ b/keyboards/printedpad/printedpad.h @@ -0,0 +1,16 @@ +// Copyright 2023 Noah Beidelman (@noahbei) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +//for oled key press +extern bool key_pressed; + +// for changing oled display mode +extern uint8_t current_display_mode; + +//for determining when the layer is changed and having a timer for how long we flash the layer +extern uint32_t flash_timer; +extern bool layer_changed; diff --git a/keyboards/printedpad/readme.md b/keyboards/printedpad/readme.md new file mode 100644 index 0000000000..bbddd29116 --- /dev/null +++ b/keyboards/printedpad/readme.md @@ -0,0 +1,25 @@ +# Printed Pad + +![magtray4x3](https://i.imgur.com/TBpZzIoh.jpeg) + +* Keyboard Maintainer: [noahbei](https://github.com/noahbei) +* Hardware Supported: STM32F072RBT6 +* Hardware Availability: https://protadesigns.com/products/printed-pad + +Make example for this keyboard (after setting up your build environment): + + make printedpad:default + +Flashing example for this keyboard: + + make printedpad:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/printedpad/rules.mk b/keyboards/printedpad/rules.mk new file mode 100644 index 0000000000..5ab52a55a0 --- /dev/null +++ b/keyboards/printedpad/rules.mk @@ -0,0 +1 @@ +SRC += oled.c \ No newline at end of file From 5f33a251b32677cc2cbc71adf47b1e1969d15598 Mon Sep 17 00:00:00 2001 From: adophoxia <100170946+adophoxia@users.noreply.github.com> Date: Wed, 4 Oct 2023 21:59:06 -0700 Subject: [PATCH 241/496] Update Keychron Q0 (#22068) Co-authored-by: Ryan Co-authored-by: Duncan Sutherland --- data/mappings/keyboard_aliases.hjson | 3 ++ .../q0/{rev_0130/rev_0130.c => base/base.c} | 0 .../keychron/q0/{rev_0130 => base}/config.h | 3 +- .../keychron/q0/{rev_0130 => base}/info.json | 47 +---------------- .../keymaps/default/keymap.c | 0 .../keymaps/keychron/keymap.c | 0 .../keymaps/keychron/rules.mk | 0 .../{rev_0130 => base}/keymaps/via/keymap.c | 0 .../{rev_0130 => base}/keymaps/via/rules.mk | 0 .../keychron/q0/{rev_0130 => base}/readme.md | 0 keyboards/keychron/q0/base/rules.mk | 1 + keyboards/keychron/q0/config.h | 4 -- keyboards/keychron/q0/info.json | 52 +++++++++++++++++++ .../keychron/q0/{rev_0131 => plus}/config.h | 9 ++-- .../keychron/q0/{rev_0131 => plus}/info.json | 49 ++--------------- .../keymaps/default/keymap.c | 0 .../keymaps/default/rules.mk | 0 .../keymaps/keychron/keymap.c | 0 .../keymaps/keychron/rules.mk | 0 .../{rev_0131 => plus}/keymaps/via/keymap.c | 0 .../{rev_0131 => plus}/keymaps/via/rules.mk | 0 .../q0/{rev_0131/rev_0131.c => plus/plus.c} | 0 keyboards/keychron/q0/plus/readme.md | 12 +++++ keyboards/keychron/q0/plus/rules.mk | 1 + keyboards/keychron/q0/readme.md | 10 ++-- keyboards/keychron/q0/rev_0130/rules.mk | 1 - keyboards/keychron/q0/rev_0131/readme.md | 6 --- keyboards/keychron/q0/rev_0131/rules.mk | 1 - 28 files changed, 86 insertions(+), 113 deletions(-) rename keyboards/keychron/q0/{rev_0130/rev_0130.c => base/base.c} (100%) rename keyboards/keychron/q0/{rev_0130 => base}/config.h (92%) rename keyboards/keychron/q0/{rev_0130 => base}/info.json (66%) rename keyboards/keychron/q0/{rev_0130 => base}/keymaps/default/keymap.c (100%) rename keyboards/keychron/q0/{rev_0130 => base}/keymaps/keychron/keymap.c (100%) rename keyboards/keychron/q0/{rev_0130 => base}/keymaps/keychron/rules.mk (100%) rename keyboards/keychron/q0/{rev_0130 => base}/keymaps/via/keymap.c (100%) rename keyboards/keychron/q0/{rev_0130 => base}/keymaps/via/rules.mk (100%) rename keyboards/keychron/q0/{rev_0130 => base}/readme.md (100%) create mode 100644 keyboards/keychron/q0/base/rules.mk create mode 100644 keyboards/keychron/q0/info.json rename keyboards/keychron/q0/{rev_0131 => plus}/config.h (90%) rename keyboards/keychron/q0/{rev_0131 => plus}/info.json (72%) rename keyboards/keychron/q0/{rev_0131 => plus}/keymaps/default/keymap.c (100%) rename keyboards/keychron/q0/{rev_0131 => plus}/keymaps/default/rules.mk (100%) rename keyboards/keychron/q0/{rev_0131 => plus}/keymaps/keychron/keymap.c (100%) rename keyboards/keychron/q0/{rev_0131 => plus}/keymaps/keychron/rules.mk (100%) rename keyboards/keychron/q0/{rev_0131 => plus}/keymaps/via/keymap.c (100%) rename keyboards/keychron/q0/{rev_0131 => plus}/keymaps/via/rules.mk (100%) rename keyboards/keychron/q0/{rev_0131/rev_0131.c => plus/plus.c} (100%) create mode 100644 keyboards/keychron/q0/plus/readme.md create mode 100644 keyboards/keychron/q0/plus/rules.mk delete mode 100644 keyboards/keychron/q0/rev_0130/rules.mk delete mode 100644 keyboards/keychron/q0/rev_0131/readme.md delete mode 100644 keyboards/keychron/q0/rev_0131/rules.mk diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 626c3eb2f0..c870d76d79 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -890,6 +890,9 @@ "kelowna/rgb64": { "target": "weirdo/kelowna/rgb64" }, + "keychron/q0": { + "target": "keychron/q0/base" + }, "keychron/q1": { "target": "keychron/q1v1" } diff --git a/keyboards/keychron/q0/rev_0130/rev_0130.c b/keyboards/keychron/q0/base/base.c similarity index 100% rename from keyboards/keychron/q0/rev_0130/rev_0130.c rename to keyboards/keychron/q0/base/base.c diff --git a/keyboards/keychron/q0/rev_0130/config.h b/keyboards/keychron/q0/base/config.h similarity index 92% rename from keyboards/keychron/q0/rev_0130/config.h rename to keyboards/keychron/q0/base/config.h index 8b14e05a29..566f808762 100644 --- a/keyboards/keychron/q0/rev_0130/config.h +++ b/keyboards/keychron/q0/base/config.h @@ -21,8 +21,7 @@ #define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND /* RGB Matrix Configuration */ -#define DRIVER_1_LED_TOTAL 21 -#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL +#define RGB_MATRIX_LED_COUNT 21 /* Enable num-lock LED */ #define NUM_LOCK_LED_INDEX 4 diff --git a/keyboards/keychron/q0/rev_0130/info.json b/keyboards/keychron/q0/base/info.json similarity index 66% rename from keyboards/keychron/q0/rev_0130/info.json rename to keyboards/keychron/q0/base/info.json index 6b5a29d7ea..ad89cf84da 100644 --- a/keyboards/keychron/q0/rev_0130/info.json +++ b/keyboards/keychron/q0/base/info.json @@ -1,58 +1,14 @@ { "keyboard_name": "Q0", - "manufacturer": "Keychron", - "url": "https://github.com/Keychron", - "maintainer": "lalalademaxiya1", "usb": { - "vid": "0x3434", "pid": "0x0130", - "device_version": "1.0.2", - "force_nkro": true + "device_version": "1.0.2" }, "matrix_pins": { "cols": ["A5", "A6", "A7", "B0"], "rows": ["B5", "B4", "B3", "A15", "A14", "A13"] }, - "features": { - "audio": false, - "backlight": false, - "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true, - "rgblight": false - }, - "diode_direction": "ROW2COL", - "processor": "STM32L432", - "bootloader": "stm32-dfu", "rgb_matrix": { - "driver": "snled27351", - "animations": { - "band_spiral_val": true, - "breathing": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "rainbow_moving_chevron": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, - "rainbow_beacon": true, - "jellybean_raindrops": true, - "pixel_rain": true, - "typing_heatmap": true, - "digital_rain": true, - "solid_reactive_simple": true, - "solid_reactive_multiwide": true, - "solid_reactive_multinexus": true, - "splash": true, - "solid_splash": true - }, "center_point": [56, 16], "layout": [ {"flags": 1, "matrix": [0, 0], "x": 0, "y": 0}, @@ -83,6 +39,7 @@ {"flags": 1, "matrix": [4, 3], "x": 112, "y": 29} ] }, + "community_layouts": ["numpad_6x4"], "layouts": { "LAYOUT_numpad_6x4": { "layout": [ diff --git a/keyboards/keychron/q0/rev_0130/keymaps/default/keymap.c b/keyboards/keychron/q0/base/keymaps/default/keymap.c similarity index 100% rename from keyboards/keychron/q0/rev_0130/keymaps/default/keymap.c rename to keyboards/keychron/q0/base/keymaps/default/keymap.c diff --git a/keyboards/keychron/q0/rev_0130/keymaps/keychron/keymap.c b/keyboards/keychron/q0/base/keymaps/keychron/keymap.c similarity index 100% rename from keyboards/keychron/q0/rev_0130/keymaps/keychron/keymap.c rename to keyboards/keychron/q0/base/keymaps/keychron/keymap.c diff --git a/keyboards/keychron/q0/rev_0130/keymaps/keychron/rules.mk b/keyboards/keychron/q0/base/keymaps/keychron/rules.mk similarity index 100% rename from keyboards/keychron/q0/rev_0130/keymaps/keychron/rules.mk rename to keyboards/keychron/q0/base/keymaps/keychron/rules.mk diff --git a/keyboards/keychron/q0/rev_0130/keymaps/via/keymap.c b/keyboards/keychron/q0/base/keymaps/via/keymap.c similarity index 100% rename from keyboards/keychron/q0/rev_0130/keymaps/via/keymap.c rename to keyboards/keychron/q0/base/keymaps/via/keymap.c diff --git a/keyboards/keychron/q0/rev_0130/keymaps/via/rules.mk b/keyboards/keychron/q0/base/keymaps/via/rules.mk similarity index 100% rename from keyboards/keychron/q0/rev_0130/keymaps/via/rules.mk rename to keyboards/keychron/q0/base/keymaps/via/rules.mk diff --git a/keyboards/keychron/q0/rev_0130/readme.md b/keyboards/keychron/q0/base/readme.md similarity index 100% rename from keyboards/keychron/q0/rev_0130/readme.md rename to keyboards/keychron/q0/base/readme.md diff --git a/keyboards/keychron/q0/base/rules.mk b/keyboards/keychron/q0/base/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/keychron/q0/base/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/keychron/q0/config.h b/keyboards/keychron/q0/config.h index f4ec417043..24b629a520 100644 --- a/keyboards/keychron/q0/config.h +++ b/keyboards/keychron/q0/config.h @@ -21,9 +21,5 @@ /* turn off effects when suspended */ #define RGB_DISABLE_WHEN_USB_SUSPENDED -/* EEPROM Driver Configuration */ -#define WEAR_LEVELING_LOGICAL_SIZE 2048 -#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) - #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS \ No newline at end of file diff --git a/keyboards/keychron/q0/info.json b/keyboards/keychron/q0/info.json new file mode 100644 index 0000000000..70a726c520 --- /dev/null +++ b/keyboards/keychron/q0/info.json @@ -0,0 +1,52 @@ +{ + "manufacturer": "Keychron", + "maintainer": "lalalademaxiya1", + "bootloader": "stm32-dfu", + "diode_direction": "ROW2COL", + "eeprom": { + "wear_leveling": { + "backing_size": 4096 + } + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "processor": "STM32L432", + "rgb_matrix": { + "animations": { + "band_spiral_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "jellybean_raindrops": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_simple": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "driver": "snled27351" + }, + "url": "https://github.com/Keychron", + "usb": { + "force_nkro": true, + "vid": "0x3434" + } +} \ No newline at end of file diff --git a/keyboards/keychron/q0/rev_0131/config.h b/keyboards/keychron/q0/plus/config.h similarity index 90% rename from keyboards/keychron/q0/rev_0131/config.h rename to keyboards/keychron/q0/plus/config.h index f3187704a7..1c47234f12 100644 --- a/keyboards/keychron/q0/rev_0131/config.h +++ b/keyboards/keychron/q0/plus/config.h @@ -21,13 +21,12 @@ #define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO /* RGB Matrix Configuration */ -#define DRIVER_1_LED_TOTAL 26 -#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL +#define RGB_MATRIX_LED_COUNT 26 #define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +/* Encoder Configuration*/ +#define ENCODER_DEFAULT_POS 0x3 + /* Enable num-lock LED */ #define NUM_LOCK_LED_INDEX 5 - -/* Encoder Configuration */ -#define ENCODER_DEFAULT_POS 0x3 diff --git a/keyboards/keychron/q0/rev_0131/info.json b/keyboards/keychron/q0/plus/info.json similarity index 72% rename from keyboards/keychron/q0/rev_0131/info.json rename to keyboards/keychron/q0/plus/info.json index 24d2a0488a..b187a79139 100644 --- a/keyboards/keychron/q0/rev_0131/info.json +++ b/keyboards/keychron/q0/plus/info.json @@ -1,33 +1,15 @@ { "keyboard_name": "Keychron Q0 Plus", - "manufacturer": "Keychron", - "url": "https://github.com/Keychron", - "maintainer": "lalalademaxiya1", "usb": { - "vid": "0x3434", "pid": "0x0131", - "device_version": "1.0.0", - "force_nkro": true + "device_version": "1.0.0" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2"], "rows": ["B5", "B4", "B3", "A15", "A14", "A13"] }, - "features": { - "audio": false, - "backlight": false, - "bootmagic": true, - "command": false, - "console": false, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": true, - "rgblight": false - }, - "diode_direction": "ROW2COL", "encoder": { + "enabled": true, "rotary": [ {"pin_a": "A3", "pin_b": "A4"} ] @@ -35,33 +17,7 @@ "bootmagic": { "matrix": [0, 1] }, - "processor": "STM32L432", - "bootloader": "stm32-dfu", "rgb_matrix": { - "driver": "snled27351", - "animations": { - "band_spiral_val": true, - "breathing": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "rainbow_moving_chevron": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, - "rainbow_beacon": true, - "jellybean_raindrops": true, - "pixel_rain": true, - "typing_heatmap": true, - "digital_rain": true, - "solid_reactive_simple": true, - "solid_reactive_multiwide": true, - "solid_reactive_multinexus": true, - "splash": true, - "solid_splash": true - }, "layout": [ {"flags": 1, "matrix": [0, 1], "x": 56, "y": 0}, {"flags": 1, "matrix": [0, 2], "x": 112, "y": 0}, @@ -96,6 +52,7 @@ {"flags": 1, "matrix": [5, 3], "x": 168, "y": 64} ] }, + "community_layouts": ["numpad_6x5"], "layouts": { "LAYOUT_numpad_6x5": { "layout": [ diff --git a/keyboards/keychron/q0/rev_0131/keymaps/default/keymap.c b/keyboards/keychron/q0/plus/keymaps/default/keymap.c similarity index 100% rename from keyboards/keychron/q0/rev_0131/keymaps/default/keymap.c rename to keyboards/keychron/q0/plus/keymaps/default/keymap.c diff --git a/keyboards/keychron/q0/rev_0131/keymaps/default/rules.mk b/keyboards/keychron/q0/plus/keymaps/default/rules.mk similarity index 100% rename from keyboards/keychron/q0/rev_0131/keymaps/default/rules.mk rename to keyboards/keychron/q0/plus/keymaps/default/rules.mk diff --git a/keyboards/keychron/q0/rev_0131/keymaps/keychron/keymap.c b/keyboards/keychron/q0/plus/keymaps/keychron/keymap.c similarity index 100% rename from keyboards/keychron/q0/rev_0131/keymaps/keychron/keymap.c rename to keyboards/keychron/q0/plus/keymaps/keychron/keymap.c diff --git a/keyboards/keychron/q0/rev_0131/keymaps/keychron/rules.mk b/keyboards/keychron/q0/plus/keymaps/keychron/rules.mk similarity index 100% rename from keyboards/keychron/q0/rev_0131/keymaps/keychron/rules.mk rename to keyboards/keychron/q0/plus/keymaps/keychron/rules.mk diff --git a/keyboards/keychron/q0/rev_0131/keymaps/via/keymap.c b/keyboards/keychron/q0/plus/keymaps/via/keymap.c similarity index 100% rename from keyboards/keychron/q0/rev_0131/keymaps/via/keymap.c rename to keyboards/keychron/q0/plus/keymaps/via/keymap.c diff --git a/keyboards/keychron/q0/rev_0131/keymaps/via/rules.mk b/keyboards/keychron/q0/plus/keymaps/via/rules.mk similarity index 100% rename from keyboards/keychron/q0/rev_0131/keymaps/via/rules.mk rename to keyboards/keychron/q0/plus/keymaps/via/rules.mk diff --git a/keyboards/keychron/q0/rev_0131/rev_0131.c b/keyboards/keychron/q0/plus/plus.c similarity index 100% rename from keyboards/keychron/q0/rev_0131/rev_0131.c rename to keyboards/keychron/q0/plus/plus.c diff --git a/keyboards/keychron/q0/plus/readme.md b/keyboards/keychron/q0/plus/readme.md new file mode 100644 index 0000000000..6cc6e263f4 --- /dev/null +++ b/keyboards/keychron/q0/plus/readme.md @@ -0,0 +1,12 @@ +# Keychron Q0 Plus + +![Keychron Q0 Plus](https://i.imgur.com/EDbfVVOh.jpg) + +* Keyboard Maintainer: [Keychron](https://github.com/keychron) +* Hardware Supported: Keychron Q0 Plus +* Hardware Availability: [Keychron Q0 Plus QMK Custom Number Pad](https://www.keychron.com/products/keychron-q0-plus-qmk-custom-number-pad) + +1. The name of this keyboard is "Keychron Q0 Plus" +2. Enables EC11 rotary encoder + - Turn clockwise to increase volume and turn anti-clockwise to decrease volume + - Press the knob button to mute diff --git a/keyboards/keychron/q0/plus/rules.mk b/keyboards/keychron/q0/plus/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/keychron/q0/plus/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/keychron/q0/readme.md b/keyboards/keychron/q0/readme.md index d0180d386e..aa6d109a29 100644 --- a/keyboards/keychron/q0/readme.md +++ b/keyboards/keychron/q0/readme.md @@ -1,18 +1,22 @@ # Keychron Q0 +![Keychron Q0](https://i.imgur.com/cLbEiZ0h.jpg) + A customizable number keypad. * Keyboard Maintainer: [Keychron](https://github.com/keychron) * Hardware Supported: Keychron Q0 -* Hardware Availability: [Keychron](https://www.keychron.com) +* Hardware Availability: [Keychron Q0 QMK Custom Number Pad](https://www.keychron.com/products/keychron-q0-qmk-custom-number-pad) Make example for this keyboard (after setting up your build environment): - make keychron/q0/rev_0130:default + make keychron/q0/base:default + make keychron/q0/plus:default Flashing example for this keyboard: - make keychron/q0/rev_0130:default:flash + make keychron/q0/base:default:flash + make keychron/q0/plus:default:flash **Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. diff --git a/keyboards/keychron/q0/rev_0130/rules.mk b/keyboards/keychron/q0/rev_0130/rules.mk deleted file mode 100644 index 6e7633bfe0..0000000000 --- a/keyboards/keychron/q0/rev_0130/rules.mk +++ /dev/null @@ -1 +0,0 @@ -# This file intentionally left blank diff --git a/keyboards/keychron/q0/rev_0131/readme.md b/keyboards/keychron/q0/rev_0131/readme.md deleted file mode 100644 index df07c40e49..0000000000 --- a/keyboards/keychron/q0/rev_0131/readme.md +++ /dev/null @@ -1,6 +0,0 @@ -# The enhanced version with encoder of the Keychron Q0 - -- The name of this keyboard is "Q0 Plus" -- Enable EC11 rotary encoder -- Turn clockwise to increase volume and turn anti-clockwise to decrease volume -- Press the knob button to mute diff --git a/keyboards/keychron/q0/rev_0131/rules.mk b/keyboards/keychron/q0/rev_0131/rules.mk deleted file mode 100644 index 6e7633bfe0..0000000000 --- a/keyboards/keychron/q0/rev_0131/rules.mk +++ /dev/null @@ -1 +0,0 @@ -# This file intentionally left blank From a7406a429eb726731fe2a69e284282994dc9cd0c Mon Sep 17 00:00:00 2001 From: adophoxia <100170946+adophoxia@users.noreply.github.com> Date: Wed, 4 Oct 2023 21:59:24 -0700 Subject: [PATCH 242/496] Update Keychron Q4 (#21996) --- data/mappings/keyboard_aliases.hjson | 3 + keyboards/keychron/q4/ansi/config.h | 20 +++ keyboards/keychron/q4/ansi/info.json | 147 ++++++++++++++++++ .../keymaps/default/keymap.c | 0 .../keymaps/keychron/keymap.c | 0 .../keymaps/keychron/rules.mk | 0 .../q4/{ansi_v1 => ansi}/keymaps/via/keymap.c | 0 .../q4/{ansi_v1 => ansi}/keymaps/via/rules.mk | 0 .../keychron/q4/{ansi_v1 => ansi}/readme.md | 0 .../keychron/q4/{ansi_v1 => ansi/v1}/config.h | 10 +- keyboards/keychron/q4/ansi/v1/rules.mk | 1 + .../q4/{ansi_v1/ansi_v1.c => ansi/v1/v1.c} | 29 ---- .../keychron/q4/{ansi_v2 => ansi/v2}/config.h | 9 +- keyboards/keychron/q4/ansi/v2/rules.mk | 1 + .../q4/{ansi_v2/ansi_v2.c => ansi/v2/v2.c} | 29 ---- keyboards/keychron/q4/ansi_v1/info.json | 92 ----------- keyboards/keychron/q4/ansi_v1/rules.mk | 15 -- keyboards/keychron/q4/ansi_v2/info.json | 92 ----------- .../q4/ansi_v2/keymaps/default/keymap.c | 66 -------- .../q4/ansi_v2/keymaps/keychron/keymap.c | 75 --------- .../q4/ansi_v2/keymaps/keychron/rules.mk | 4 - .../keychron/q4/ansi_v2/keymaps/via/keymap.c | 66 -------- .../keychron/q4/ansi_v2/keymaps/via/rules.mk | 1 - keyboards/keychron/q4/ansi_v2/readme.md | 1 - keyboards/keychron/q4/ansi_v2/rules.mk | 15 -- keyboards/keychron/q4/config.h | 56 +------ keyboards/keychron/q4/info.json | 62 ++++++++ keyboards/keychron/q4/iso/config.h | 6 +- keyboards/keychron/q4/iso/info.json | 81 ++++++++-- keyboards/keychron/q4/iso/iso.c | 29 ---- keyboards/keychron/q4/iso/rules.mk | 16 +- keyboards/keychron/q4/readme.md | 14 +- 32 files changed, 320 insertions(+), 620 deletions(-) create mode 100644 keyboards/keychron/q4/ansi/config.h create mode 100644 keyboards/keychron/q4/ansi/info.json rename keyboards/keychron/q4/{ansi_v1 => ansi}/keymaps/default/keymap.c (100%) rename keyboards/keychron/q4/{ansi_v1 => ansi}/keymaps/keychron/keymap.c (100%) rename keyboards/keychron/q4/{ansi_v1 => ansi}/keymaps/keychron/rules.mk (100%) rename keyboards/keychron/q4/{ansi_v1 => ansi}/keymaps/via/keymap.c (100%) rename keyboards/keychron/q4/{ansi_v1 => ansi}/keymaps/via/rules.mk (100%) rename keyboards/keychron/q4/{ansi_v1 => ansi}/readme.md (100%) rename keyboards/keychron/q4/{ansi_v1 => ansi/v1}/config.h (76%) create mode 100644 keyboards/keychron/q4/ansi/v1/rules.mk rename keyboards/keychron/q4/{ansi_v1/ansi_v1.c => ansi/v1/v1.c} (65%) rename keyboards/keychron/q4/{ansi_v2 => ansi/v2}/config.h (77%) create mode 100644 keyboards/keychron/q4/ansi/v2/rules.mk rename keyboards/keychron/q4/{ansi_v2/ansi_v2.c => ansi/v2/v2.c} (65%) delete mode 100644 keyboards/keychron/q4/ansi_v1/info.json delete mode 100644 keyboards/keychron/q4/ansi_v1/rules.mk delete mode 100644 keyboards/keychron/q4/ansi_v2/info.json delete mode 100644 keyboards/keychron/q4/ansi_v2/keymaps/default/keymap.c delete mode 100644 keyboards/keychron/q4/ansi_v2/keymaps/keychron/keymap.c delete mode 100644 keyboards/keychron/q4/ansi_v2/keymaps/keychron/rules.mk delete mode 100644 keyboards/keychron/q4/ansi_v2/keymaps/via/keymap.c delete mode 100644 keyboards/keychron/q4/ansi_v2/keymaps/via/rules.mk delete mode 100644 keyboards/keychron/q4/ansi_v2/readme.md delete mode 100644 keyboards/keychron/q4/ansi_v2/rules.mk create mode 100644 keyboards/keychron/q4/info.json diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index c870d76d79..8fc5e59925 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -896,6 +896,9 @@ "keychron/q1": { "target": "keychron/q1v1" } + "keychron/q4": { + "target": "keychron/q4/ansi" + } "kprepublic/bm40hsrgb": { "target": "kprepublic/bm40hsrgb/rev1" }, diff --git a/keyboards/keychron/q4/ansi/config.h b/keyboards/keychron/q4/ansi/config.h new file mode 100644 index 0000000000..c05e8f73a0 --- /dev/null +++ b/keyboards/keychron/q4/ansi/config.h @@ -0,0 +1,20 @@ +/* Copyright 2022 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Enable CapsLcok LED*/ +#define CAPS_LOCK_LED_INDEX 28 diff --git a/keyboards/keychron/q4/ansi/info.json b/keyboards/keychron/q4/ansi/info.json new file mode 100644 index 0000000000..392ef8fc45 --- /dev/null +++ b/keyboards/keychron/q4/ansi/info.json @@ -0,0 +1,147 @@ +{ + "usb": { + "pid": "0x0140", + "device_version": "1.0.6" + }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 113, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 129, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 145, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 161, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 177, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 193, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 218, "y": 0, "flags": 1}, + + {"matrix": [1, 0], "x": 4,"y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 24,"y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40,"y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56,"y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 73,"y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 89,"y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 105,"y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 121,"y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 137,"y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 153,"y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 169,"y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 185,"y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 202,"y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 222,"y": 16, "flags": 4}, + + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 8}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 77, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 93, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 109, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 125, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 141, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 157, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 173, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 189, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 216, "y": 32, "flags": 1}, + + {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 85, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 101, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 117, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 133, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 149, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 165, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 181, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 212, "y": 48, "flags": 1}, + + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 103, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 164, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 184, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 204, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1} + + ] + }, + "layouts": { + "LAYOUT_ansi_61": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/keychron/q4/ansi_v1/keymaps/default/keymap.c b/keyboards/keychron/q4/ansi/keymaps/default/keymap.c similarity index 100% rename from keyboards/keychron/q4/ansi_v1/keymaps/default/keymap.c rename to keyboards/keychron/q4/ansi/keymaps/default/keymap.c diff --git a/keyboards/keychron/q4/ansi_v1/keymaps/keychron/keymap.c b/keyboards/keychron/q4/ansi/keymaps/keychron/keymap.c similarity index 100% rename from keyboards/keychron/q4/ansi_v1/keymaps/keychron/keymap.c rename to keyboards/keychron/q4/ansi/keymaps/keychron/keymap.c diff --git a/keyboards/keychron/q4/ansi_v1/keymaps/keychron/rules.mk b/keyboards/keychron/q4/ansi/keymaps/keychron/rules.mk similarity index 100% rename from keyboards/keychron/q4/ansi_v1/keymaps/keychron/rules.mk rename to keyboards/keychron/q4/ansi/keymaps/keychron/rules.mk diff --git a/keyboards/keychron/q4/ansi_v1/keymaps/via/keymap.c b/keyboards/keychron/q4/ansi/keymaps/via/keymap.c similarity index 100% rename from keyboards/keychron/q4/ansi_v1/keymaps/via/keymap.c rename to keyboards/keychron/q4/ansi/keymaps/via/keymap.c diff --git a/keyboards/keychron/q4/ansi_v1/keymaps/via/rules.mk b/keyboards/keychron/q4/ansi/keymaps/via/rules.mk similarity index 100% rename from keyboards/keychron/q4/ansi_v1/keymaps/via/rules.mk rename to keyboards/keychron/q4/ansi/keymaps/via/rules.mk diff --git a/keyboards/keychron/q4/ansi_v1/readme.md b/keyboards/keychron/q4/ansi/readme.md similarity index 100% rename from keyboards/keychron/q4/ansi_v1/readme.md rename to keyboards/keychron/q4/ansi/readme.md diff --git a/keyboards/keychron/q4/ansi_v1/config.h b/keyboards/keychron/q4/ansi/v1/config.h similarity index 76% rename from keyboards/keychron/q4/ansi_v1/config.h rename to keyboards/keychron/q4/ansi/v1/config.h index 1bd02e42a6..2d19c55a66 100644 --- a/keyboards/keychron/q4/ansi_v1/config.h +++ b/keyboards/keychron/q4/ansi/v1/config.h @@ -22,13 +22,7 @@ #define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* RGB Matrix Configuration */ -#define DRIVER_1_LED_TOTAL 31 -#define DRIVER_2_LED_TOTAL 30 -#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT 61 +/* Scan phase of led driver set as SNLED27351_MSKPHASE_9CHANNEL(defined as 0x03 in SNLED27351.h) */ #define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL -#define SNLED27351_CURRENT_TUNE \ - { 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60 } - -/* Enable CapsLcok LED*/ -#define CAPS_LOCK_LED_INDEX 28 diff --git a/keyboards/keychron/q4/ansi/v1/rules.mk b/keyboards/keychron/q4/ansi/v1/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/keychron/q4/ansi/v1/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/keychron/q4/ansi_v1/ansi_v1.c b/keyboards/keychron/q4/ansi/v1/v1.c similarity index 65% rename from keyboards/keychron/q4/ansi_v1/ansi_v1.c rename to keyboards/keychron/q4/ansi/v1/v1.c index 953da2df8b..6c1fecefec 100644 --- a/keyboards/keychron/q4/ansi_v1/ansi_v1.c +++ b/keyboards/keychron/q4/ansi/v1/v1.c @@ -92,33 +92,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { {1, F_14, D_14, E_14}, }; -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, __, 40 }, - { 41, __, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, __, 52 }, - { 53, 54, 55, __, __, __, 56, __, __, __, 57, 58, 59, 60 }, - }, - { - // LED Index to Physical Position - {0,0}, {16,0}, {32,0}, {48,0}, {64,0}, {81,0}, {97,0}, {113,0}, {129,0}, {145,0}, {161,0}, {177,0}, {193,0}, {218,0}, - {4,16}, {24,16}, {40,16}, {56,16}, {73,16}, {89,16}, {105,16}, {121,16}, {137,16}, {153,16}, {169,16}, {185,16}, {202,16}, {222,16}, - {6,32}, {28,32}, {44,32}, {60,32}, {77,32}, {93,32}, {109,32}, {125,32}, {141,32}, {157,32}, {173,32}, {189,32}, {216,32}, - {10,48}, {36,48}, {52,48}, {69,48}, {85,48}, {101,48}, {117,48}, {133,48}, {149,48}, {165,48}, {181,48}, {212,48}, - {2,64}, {22,64}, {42,64}, {103,64}, {164,64}, {184,64}, {204,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, - } -}; - #endif diff --git a/keyboards/keychron/q4/ansi_v2/config.h b/keyboards/keychron/q4/ansi/v2/config.h similarity index 77% rename from keyboards/keychron/q4/ansi_v2/config.h rename to keyboards/keychron/q4/ansi/v2/config.h index ea9b45607e..87b8eb401f 100644 --- a/keyboards/keychron/q4/ansi_v2/config.h +++ b/keyboards/keychron/q4/ansi/v2/config.h @@ -21,11 +21,4 @@ #define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND /* RGB Matrix Configuration */ -#define DRIVER_1_LED_TOTAL 61 -#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL - -#define SNLED27351_CURRENT_TUNE \ - { 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60 } - -/* Enable CapsLcok LED*/ -#define CAPS_LOCK_LED_INDEX 28 +#define RGB_MATRIX_LED_COUNT 61 diff --git a/keyboards/keychron/q4/ansi/v2/rules.mk b/keyboards/keychron/q4/ansi/v2/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/keychron/q4/ansi/v2/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/keychron/q4/ansi_v2/ansi_v2.c b/keyboards/keychron/q4/ansi/v2/v2.c similarity index 65% rename from keyboards/keychron/q4/ansi_v2/ansi_v2.c rename to keyboards/keychron/q4/ansi/v2/v2.c index b09fb7810a..468a87af41 100644 --- a/keyboards/keychron/q4/ansi_v2/ansi_v2.c +++ b/keyboards/keychron/q4/ansi/v2/v2.c @@ -92,33 +92,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { {0, F_16, D_16, E_16}, }; -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, __, 40 }, - { 41, __, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, __, 52 }, - { 53, 54, 55, __, __, __, 56, __, __, __, 57, 58, 59, 60 }, - }, - { - // LED Index to Physical Position - {0,0}, {16,0}, {32,0}, {48,0}, {64,0}, {81,0}, {97,0}, {113,0}, {129,0}, {145,0}, {161,0}, {177,0}, {193,0}, {218,0}, - {4,16}, {24,16}, {40,16}, {56,16}, {73,16}, {89,16}, {105,16}, {121,16}, {137,16}, {153,16}, {169,16}, {185,16}, {202,16}, {222,16}, - {6,32}, {28,32}, {44,32}, {60,32}, {77,32}, {93,32}, {109,32}, {125,32}, {141,32}, {157,32}, {173,32}, {189,32}, {216,32}, - {10,48}, {36,48}, {52,48}, {69,48}, {85,48}, {101,48}, {117,48}, {133,48}, {149,48}, {165,48}, {181,48}, {212,48}, - {2,64}, {22,64}, {42,64}, {103,64}, {164,64}, {184,64}, {204,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, - } -}; - #endif diff --git a/keyboards/keychron/q4/ansi_v1/info.json b/keyboards/keychron/q4/ansi_v1/info.json deleted file mode 100644 index 78226e1985..0000000000 --- a/keyboards/keychron/q4/ansi_v1/info.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "keyboard_name": "Keychron Q4", - "manufacturer": "Keychron", - "url": "https://github.com/Keychron", - "maintainer": "lalalademaxiya1", - "usb": { - "vid": "0x3434", - "pid": "0x0140", - "device_version": "1.0.0" - }, - "rgb_matrix": { - "driver": "snled27351" - }, - "matrix_pins": { - "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"], - "rows": ["B4", "B3", "A15", "A14", "A13"] - }, - "diode_direction": "ROW2COL", - "processor": "STM32L432", - "bootloader": "stm32-dfu", - "layouts": { - "LAYOUT_ansi_61": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - } - } -} diff --git a/keyboards/keychron/q4/ansi_v1/rules.mk b/keyboards/keychron/q4/ansi_v1/rules.mk deleted file mode 100644 index 04fb3f58a3..0000000000 --- a/keyboards/keychron/q4/ansi_v1/rules.mk +++ /dev/null @@ -1,15 +0,0 @@ -# Build Options -# change yes to no to disable. -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable USB N-key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -DIP_SWITCH_ENABLE = yes -RGB_MATRIX_ENABLE = yes -LTO_ENABLE = no diff --git a/keyboards/keychron/q4/ansi_v2/info.json b/keyboards/keychron/q4/ansi_v2/info.json deleted file mode 100644 index 78226e1985..0000000000 --- a/keyboards/keychron/q4/ansi_v2/info.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "keyboard_name": "Keychron Q4", - "manufacturer": "Keychron", - "url": "https://github.com/Keychron", - "maintainer": "lalalademaxiya1", - "usb": { - "vid": "0x3434", - "pid": "0x0140", - "device_version": "1.0.0" - }, - "rgb_matrix": { - "driver": "snled27351" - }, - "matrix_pins": { - "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"], - "rows": ["B4", "B3", "A15", "A14", "A13"] - }, - "diode_direction": "ROW2COL", - "processor": "STM32L432", - "bootloader": "stm32-dfu", - "layouts": { - "LAYOUT_ansi_61": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - } - } -} diff --git a/keyboards/keychron/q4/ansi_v2/keymaps/default/keymap.c b/keyboards/keychron/q4/ansi_v2/keymaps/default/keymap.c deleted file mode 100644 index dd8669c3fb..0000000000 --- a/keyboards/keychron/q4/ansi_v2/keymaps/default/keymap.c +++ /dev/null @@ -1,66 +0,0 @@ -/* Copyright 2022 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -// clang-format off - -enum layers { - MAC_BASE, - WIN_BASE, - _FN1, - _FN2, - _FN3 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [MAC_BASE] = LAYOUT_ansi_61( - KC_ESC, 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_BSPC, - 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(_FN1), MO(_FN3), KC_RCTL), - - [WIN_BASE] = LAYOUT_ansi_61( - KC_ESC, 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_BSPC, - 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_RCTL), - - [_FN1] = LAYOUT_ansi_61( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, - RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______, - _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_NO, KC_PGDN, KC_END, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, - _______, _______, _______, _______, _______, _______, _______, _______), - - [_FN2] = LAYOUT_ansi_61( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, - RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, _______, - _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, - _______, _______, _______, _______, _______, _______, _______, _______), - - [_FN3] = LAYOUT_ansi_61( - KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, - RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______) -}; - -// clang-format on \ No newline at end of file diff --git a/keyboards/keychron/q4/ansi_v2/keymaps/keychron/keymap.c b/keyboards/keychron/q4/ansi_v2/keymaps/keychron/keymap.c deleted file mode 100644 index d58af0f244..0000000000 --- a/keyboards/keychron/q4/ansi_v2/keymaps/keychron/keymap.c +++ /dev/null @@ -1,75 +0,0 @@ -/* Copyright 2022 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H -#include "keychron_common.h" - -// clang-format off - -enum layers { - MAC_BASE, - WIN_BASE, - _FN1, - _FN2, - _FN3 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [MAC_BASE] = LAYOUT_ansi_61( - KC_ESC, 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_BSPC, - 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(_FN1), MO(_FN3), KC_RCTL), - - [WIN_BASE] = LAYOUT_ansi_61( - KC_ESC, 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_BSPC, - 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_RCTL), - - [_FN1] = LAYOUT_ansi_61( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, - RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______, - _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_NO, KC_PGDN, KC_END, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, - _______, _______, _______, _______, _______, _______, _______, _______), - - [_FN2] = LAYOUT_ansi_61( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, - RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, _______, - _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, - _______, _______, _______, _______, _______, _______, _______, _______), - - [_FN3] = LAYOUT_ansi_61( - KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, - RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______) -}; - -// clang-format on - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (!process_record_keychron(keycode, record)) { - return false; - } - - return true; -} \ No newline at end of file diff --git a/keyboards/keychron/q4/ansi_v2/keymaps/keychron/rules.mk b/keyboards/keychron/q4/ansi_v2/keymaps/keychron/rules.mk deleted file mode 100644 index 1f273de340..0000000000 --- a/keyboards/keychron/q4/ansi_v2/keymaps/keychron/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -VIA_ENABLE = yes - -VPATH += keyboards/keychron/common -SRC += keychron_common.c \ No newline at end of file diff --git a/keyboards/keychron/q4/ansi_v2/keymaps/via/keymap.c b/keyboards/keychron/q4/ansi_v2/keymaps/via/keymap.c deleted file mode 100644 index dd8669c3fb..0000000000 --- a/keyboards/keychron/q4/ansi_v2/keymaps/via/keymap.c +++ /dev/null @@ -1,66 +0,0 @@ -/* Copyright 2022 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -// clang-format off - -enum layers { - MAC_BASE, - WIN_BASE, - _FN1, - _FN2, - _FN3 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [MAC_BASE] = LAYOUT_ansi_61( - KC_ESC, 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_BSPC, - 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(_FN1), MO(_FN3), KC_RCTL), - - [WIN_BASE] = LAYOUT_ansi_61( - KC_ESC, 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_BSPC, - 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_RCTL), - - [_FN1] = LAYOUT_ansi_61( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, - RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______, - _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_NO, KC_PGDN, KC_END, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, - _______, _______, _______, _______, _______, _______, _______, _______), - - [_FN2] = LAYOUT_ansi_61( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, - RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, _______, - _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______, - _______, _______, _______, _______, _______, _______, _______, _______), - - [_FN3] = LAYOUT_ansi_61( - KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, - RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______) -}; - -// clang-format on \ No newline at end of file diff --git a/keyboards/keychron/q4/ansi_v2/keymaps/via/rules.mk b/keyboards/keychron/q4/ansi_v2/keymaps/via/rules.mk deleted file mode 100644 index 036bd6d1c3..0000000000 --- a/keyboards/keychron/q4/ansi_v2/keymaps/via/rules.mk +++ /dev/null @@ -1 +0,0 @@ -VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/keychron/q4/ansi_v2/readme.md b/keyboards/keychron/q4/ansi_v2/readme.md deleted file mode 100644 index bd2f3fd8a8..0000000000 --- a/keyboards/keychron/q4/ansi_v2/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The ANSI variant of the Keychron Q4 diff --git a/keyboards/keychron/q4/ansi_v2/rules.mk b/keyboards/keychron/q4/ansi_v2/rules.mk deleted file mode 100644 index 04fb3f58a3..0000000000 --- a/keyboards/keychron/q4/ansi_v2/rules.mk +++ /dev/null @@ -1,15 +0,0 @@ -# Build Options -# change yes to no to disable. -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable USB N-key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -DIP_SWITCH_ENABLE = yes -RGB_MATRIX_ENABLE = yes -LTO_ENABLE = no diff --git a/keyboards/keychron/q4/config.h b/keyboards/keychron/q4/config.h index 940ee44e77..62f8294966 100644 --- a/keyboards/keychron/q4/config.h +++ b/keyboards/keychron/q4/config.h @@ -25,60 +25,8 @@ /* turn off effects when suspended */ #define RGB_DISABLE_WHEN_USB_SUSPENDED -#define DYNAMIC_KEYMAP_LAYER_COUNT 5 - -/* EEPROM Driver Configuration */ -#define WEAR_LEVELING_LOGICAL_SIZE 2048 -#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) - -// RGB Matrix Animation modes. Explicitly enabled -// For full list of effects, see: -// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects -// #define ENABLE_RGB_MATRIX_ALPHAS_MODS -// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN -// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT -#define ENABLE_RGB_MATRIX_BREATHING -// #define ENABLE_RGB_MATRIX_BAND_SAT -// #define ENABLE_RGB_MATRIX_BAND_VAL -// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT -// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL -// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT -#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL -#define ENABLE_RGB_MATRIX_CYCLE_ALL -#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT -#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN -#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN -#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL -#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL -#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL -#define ENABLE_RGB_MATRIX_DUAL_BEACON -#define ENABLE_RGB_MATRIX_RAINBOW_BEACON -// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS -// #define ENABLE_RGB_MATRIX_RAINDROPS -#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS -// #define ENABLE_RGB_MATRIX_HUE_BREATHING -// #define ENABLE_RGB_MATRIX_HUE_PENDULUM -// #define ENABLE_RGB_MATRIX_HUE_WAVE -#define ENABLE_RGB_MATRIX_PIXEL_RAIN -// #define ENABLE_RGB_MATRIX_PIXEL_FLOW -// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL -// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined -#define ENABLE_RGB_MATRIX_TYPING_HEATMAP -#define ENABLE_RGB_MATRIX_DIGITAL_RAIN -// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE -// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -#define ENABLE_RGB_MATRIX_SPLASH -// #define ENABLE_RGB_MATRIX_MULTISPLASH -#define ENABLE_RGB_MATRIX_SOLID_SPLASH -// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +#define SNLED27351_CURRENT_TUNE \ + { 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60 } #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS \ No newline at end of file diff --git a/keyboards/keychron/q4/info.json b/keyboards/keychron/q4/info.json new file mode 100644 index 0000000000..0a9dcf4957 --- /dev/null +++ b/keyboards/keychron/q4/info.json @@ -0,0 +1,62 @@ +{ + "manufacturer": "Keychron", + "keyboard_name": "Keychron Q4", + "maintainer": "lalalademaxiya1", + "bootloader": "stm32-dfu", + "diode_direction": "ROW2COL", + "dynamic_keymap": { + "layer_count": 5 + }, + "eeprom": { + "wear_leveling": { + "backing_size": 4096 + } + }, + "features": { + "audio": false, + "backlight": false, + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true, + "rgblight": false + }, + "matrix_pins": { + "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"], + "rows": ["B4", "B3", "A15", "A14", "A13"] + }, + "processor": "STM32L432", + "rgb_matrix": { + "animations": { + "band_spiral_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "jellybean_raindrops": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_simple": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "driver": "snled27351" + }, + "url": "https://github.com/Keychron", + "usb": { + "vid": "0x3434" + } +} \ No newline at end of file diff --git a/keyboards/keychron/q4/iso/config.h b/keyboards/keychron/q4/iso/config.h index e8aed1af0f..da84fed852 100644 --- a/keyboards/keychron/q4/iso/config.h +++ b/keyboards/keychron/q4/iso/config.h @@ -21,11 +21,7 @@ #define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND /* RGB Matrix Configuration */ -#define DRIVER_1_LED_TOTAL 62 -#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL - -#define SNLED27351_CURRENT_TUNE \ - { 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60 } +#define RGB_MATRIX_LED_COUNT 62 /* Enable CapsLcok LED*/ #define CAPS_LOCK_LED_INDEX 27 diff --git a/keyboards/keychron/q4/iso/info.json b/keyboards/keychron/q4/iso/info.json index 7143fba9b1..13b25f74e0 100644 --- a/keyboards/keychron/q4/iso/info.json +++ b/keyboards/keychron/q4/iso/info.json @@ -1,23 +1,78 @@ { - "keyboard_name": "Keychron Q4", - "manufacturer": "Keychron", - "url": "https://github.com/Keychron", - "maintainer": "lalalademaxiya1", "usb": { - "vid": "0x3434", "pid": "0x0142", "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "snled27351" + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 113, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 129, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 145, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 161, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 177, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 193, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 218, "y": 0, "flags": 1}, + + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 73, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 89, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 105, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 121, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 137, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 153, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 169, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 185, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 202, "y": 16, "flags": 4}, + + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 8}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 77, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 93, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 109, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 125, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 141, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 157, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 173, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 189, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 206, "y": 32, "flags": 4}, + {"matrix": [1, 13], "x": 224, "y": 24, "flags": 1}, + + {"matrix": [3, 0], "x": 2, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 20, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 85, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 101, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 117, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 133, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 149, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 165, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 181, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 212, "y": 48, "flags": 1}, + + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 103, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 164, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 184, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 204, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1} + ] }, - "matrix_pins": { - "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"], - "rows": ["B4", "B3", "A15", "A14", "A13"] - }, - "diode_direction": "ROW2COL", - "processor": "STM32L432", - "bootloader": "stm32-dfu", "layouts": { "LAYOUT_iso_62": { "layout": [ diff --git a/keyboards/keychron/q4/iso/iso.c b/keyboards/keychron/q4/iso/iso.c index a7c42914d2..a808c3ad74 100644 --- a/keyboards/keychron/q4/iso/iso.c +++ b/keyboards/keychron/q4/iso/iso.c @@ -93,33 +93,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { {0, F_16, D_16, E_16}, }; -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 40 }, - { 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, __, 39 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, __, 53 }, - { 54, 55, 56, __, __, __, 57, __, __, __, 58, 59, 60, 61 }, - }, - { - // LED Index to Physical Position - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {81, 0}, { 97, 0}, {113, 0}, {129, 0}, {145, 0}, {161, 0}, {177, 0}, {193, 0}, {218, 0}, - {4,16}, {24,16}, {40,16}, {56,16}, {73,16}, {89,16}, {105,16}, {121,16}, {137,16}, {153,16}, {169,16}, {185,16}, {202,16}, - {6,32}, {28,32}, {44,32}, {60,32}, {77,32}, {93,32}, {109,32}, {125,32}, {141,32}, {157,32}, {173,32}, {189,32}, {206,32}, {224,24}, - {2,48}, {20,48}, {36,48}, {52,48}, {69,48}, {85,48}, {101,48}, {117,48}, {133,48}, {149,48}, {165,48}, {181,48}, {212,48}, - {2,64}, {22,64}, {42,64}, {103,64}, {164,64}, {184,64}, {204,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, - } -}; - #endif diff --git a/keyboards/keychron/q4/iso/rules.mk b/keyboards/keychron/q4/iso/rules.mk index 04fb3f58a3..7ff128fa69 100644 --- a/keyboards/keychron/q4/iso/rules.mk +++ b/keyboards/keychron/q4/iso/rules.mk @@ -1,15 +1 @@ -# Build Options -# change yes to no to disable. -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable USB N-key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -DIP_SWITCH_ENABLE = yes -RGB_MATRIX_ENABLE = yes -LTO_ENABLE = no +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/keychron/q4/readme.md b/keyboards/keychron/q4/readme.md index 2c3d9c8572..711eeadbb4 100644 --- a/keyboards/keychron/q4/readme.md +++ b/keyboards/keychron/q4/readme.md @@ -1,18 +1,26 @@ # Keychron Q4 +![Keychron Q4](https://i.imgur.com/daIVjVGh.jpg) + A customizable 60% keyboard. +Q4 Version 1 uses only 2 ICs for CKLED2001 and Q4 Version 2 uses only one IC. + * Keyboard Maintainer: [Keychron](https://github.com/keychron) * Hardware Supported: Keychron Q4 -* Hardware Availability: [Keychron](https://www.keychron.com) +* Hardware Availability: [Keychron Q4 QMK Custom Mechanical Keyboard](https://www.keychron.com/products/keychron-q4-qmk-via-custom-mechanical-keyboard) Make example for this keyboard (after setting up your build environment): - make keychron/q4/ansi_v2:default + make keychron/q4/ansi/v1:default + make keychron/q4/ansi/v2:default + make keychron/q4/iso:default Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) - make keychron/q4/ansi_v2:default:flash + make keychron/q4/ansi/v1:default:flash + make keychron/q4/ansi/v2:default:flash + make keychron/q4/iso:default:flash **Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. From 127560ae223255d0e081b932e902d2da242abf06 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Fri, 6 Oct 2023 10:34:23 +1100 Subject: [PATCH 243/496] Add `qmk ci-validate-aliases` (#22205) --- .github/workflows/lint.yml | 25 +-------- data/mappings/keyboard_aliases.hjson | 64 +++++++++++++---------- lib/python/qmk/cli/__init__.py | 1 + lib/python/qmk/cli/ci/__init__.py | 0 lib/python/qmk/cli/ci/validate_aliases.py | 46 ++++++++++++++++ lib/python/qmk/commands.py | 11 ++-- lib/python/qmk/keyboard.py | 5 +- 7 files changed, 97 insertions(+), 55 deletions(-) create mode 100644 lib/python/qmk/cli/ci/__init__.py create mode 100644 lib/python/qmk/cli/ci/validate_aliases.py diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 9862ff502c..19dd7c70a9 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -74,31 +74,10 @@ jobs: fi exit $exit_code - - name: Verify at most one added keyboard + - name: Verify keyboard aliases if: always() shell: 'bash {0}' run: | git reset --hard git clean -xfd - - # Get the keyboard list and count for the target branch - git checkout -f ${{ github.base_ref }} - git pull --ff-only - QMK_KEYBOARDS_BASE=$(qmk list-keyboards) - QMK_KEYBOARDS_BASE_COUNT=$(qmk list-keyboards | wc -l) - - # Get the keyboard list and count for the PR - git checkout -f ${{ github.head_ref }} - git merge --no-commit --squash ${{ github.base_ref }} - QMK_KEYBOARDS_PR=$(qmk list-keyboards) - QMK_KEYBOARDS_PR_COUNT=$(qmk list-keyboards | wc -l) - - echo "::group::Keyboards changes in this PR" - diff -d -U 0 <(echo "$QMK_KEYBOARDS_BASE") <(echo "$QMK_KEYBOARDS_PR") | grep -vE '^(---|\+\+\+|@@)' | sed -e 's@^-@Removed: @g' -e 's@^+@ Added: @g' - echo "::endgroup::" - - if [[ $QMK_KEYBOARDS_PR_COUNT -gt $(($QMK_KEYBOARDS_BASE_COUNT + 1)) ]]; then - echo "More than one keyboard added in this PR -- see the PR Checklist." - echo "::error::More than one keyboard added in this PR -- see the PR Checklist." - exit 1 - fi + qmk ci-validate-aliases diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 60c5deaad5..8e4265dc01 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -4,6 +4,13 @@ // "target": "" // } // + + /* This list of aliases is for testing purposes -- ensures "linked list" recursive traversal works correctly. */ + "_test_a": { "target": "_test_b" }, + "_test_b": { "target": "_test_c" }, + "_test_c": { "target": "planck/rev6" }, + + /* The main list of aliases for moved keyboards within QMK. */ "2_milk": { "target": "spaceman/2_milk" }, @@ -35,7 +42,7 @@ "target": "amjkeyboard/amjpad" }, "angel64": { - "target": "angel64/alpha" + "target": "kakunpc/angel64/alpha" }, "ashpil/modelm_usbc": { "target": "ibm/model_m/ashpil_usbc" @@ -47,10 +54,10 @@ "target": "viktus/at101_bh" }, "atom47/rev2": { - "target": "maartenwut/atom47/rev2" + "target": "evyd13/atom47/rev2" }, "atom47/rev3": { - "target": "maartenwut/atom47/rev3" + "target": "evyd13/atom47/rev3" }, "bakeneko60": { "target": "kkatano/bakeneko60" @@ -65,7 +72,7 @@ "target": "bear_face/v1" }, "bm16a": { - "target": "kprepublic/bm16a" + "target": "kprepublic/bm16a/v1" }, "bm16s": { "target": "kprepublic/bm16s" @@ -77,16 +84,16 @@ "target": "kprepublic/bm43a" }, "bm60poker": { - "target": "kprepublic/bm60poker" + "target": "kprepublic/bm60hsrgb_poker/rev1" }, "bm60rgb": { - "target": "kprepublic/bm60rgb" + "target": "kprepublic/bm60hsrgb/rev1" }, "bm60rgb_iso": { - "target": "kprepublic/bm60rgb_iso" + "target": "kprepublic/bm60hsrgb_iso/rev1" }, "bm68rgb": { - "target": "kprepublic/bm68rgb" + "target": "kprepublic/bm68hsrgb/rev1" }, "bpiphany/pegasushoof": { "target": "bpiphany/pegasushoof/2013" @@ -140,7 +147,10 @@ "target": "jagdpietr/drakon" }, "durgod/k320": { - "target": "durgod/k3x0/k320" + "target": "durgod/k320/base" + }, + "durgod/k3x0/k320": { + "target": "durgod/k320/base" }, "durgod/hades": { "target": "durgod/dgk6x/hades_ansi" @@ -269,7 +279,7 @@ "target": "idb/idb_60" }, "idobo": { - "target": "idobao/id75" + "target": "idobao/id75/v1" }, "jacky_studio/piggy60": { "target": "jacky_studio/piggy60/rev1" @@ -401,7 +411,7 @@ "target": "mechlovin/adelais/rgb_led/rev1" }, "mechlovin/adelais/standard_led": { - "target": "mechlovin/adelais/standard_led/rev2" + "target": "mechlovin/adelais/standard_led/arm/rev2" }, "mechlovin/delphine": { "target": "mechlovin/delphine/mono_led" @@ -455,10 +465,10 @@ "target": "pabile/p20/ver1" }, "pancake/feather": { - "target": "spaceman/pancake/feather" + "target": "spaceman/pancake/rev1/feather" }, "pancake/promicro": { - "target": "spaceman/pancake/promicro" + "target": "spaceman/pancake/rev1/promicro" }, "peiorisboards/ixora": { "target": "coarse/ixora" @@ -467,7 +477,7 @@ "target": "dm9records/plaid" }, "plain60": { - "target": "maartenwut/plain60" + "target": "evyd13/plain60" }, "ploopyco/trackball": { "target": "ploopyco/trackball/rev1_005" @@ -503,10 +513,10 @@ "target": "wilba_tech/rama_works_u80_a" }, "ramonimbao/herringbone": { - "target": "ramonimbao/herringbone/v1" + "target": "rmi_kb/herringbone/v1" }, "ramonimbao/mona": { - "target": "ramonimbao/mona/v1" + "target": "rmi_kb/mona/v1" }, "rgbkb/pan": { "target": "rgbkb/pan/rev1/32a" @@ -542,10 +552,10 @@ "target": "tkw/stoutgat/v1" }, "suihankey": { - "target": "suihankey/split/alpha" + "target": "kakunpc/suihankey/split/alpha" }, "ta65": { - "target": "maartenwut/ta65" + "target": "evyd13/ta65" }, "tartan": { "target": "dm9records/tartan" @@ -563,13 +573,13 @@ "target": "matthewdias/txuu" }, "underscore33": { - "target": "underscore33/rev1" + "target": "tominabox1/underscore33/rev1" }, "vinta": { "target": "coarse/vinta" }, "wasdat": { - "target": "maartenwut/wasdat" + "target": "evyd13/wasdat" }, "westfoxtrot/cypher": { "target": "westfoxtrot/cypher/rev1" @@ -581,10 +591,10 @@ "target": "xiudi/xd002" }, "xd004": { - "target": "xiudi/xd004" + "target": "xiudi/xd004/v1" }, "xd60": { - "target": "xiudi/xd60" + "target": "xiudi/xd60/rev2" }, "xd68": { "target": "xiudi/xd68" @@ -831,7 +841,7 @@ "target": "kagizaraya/halberd" }, "handwired/hillside/0_1": { - "target": "handwired/hillside/48" + "target": "hillside/48/0_1" }, "hecomi/alpha": { "target": "takashiski/hecomi/alpha" @@ -843,10 +853,10 @@ "target": "bpiphany/hid_liber" }, "id67/default_rgb": { - "target": "idobao/id67/default_rgb" + "target": "idobao/id67" }, "id67/rgb": { - "target": "idobao/id67/rgb" + "target": "idobao/id67" }, "id80": { "target": "idobao/id80/v2/ansi" @@ -1236,7 +1246,7 @@ "target": "marksard/treadstone48/rev2" }, "tronguylabs/m122_3270": { - "target": "ibm/model_m_122/m122_3270" + "target": "ibm/model_m_122/m122_3270/teensy" }, "ua62": { "target": "nacly/ua62" @@ -1290,7 +1300,7 @@ "target": "ydkb/yd68" }, "ymd75": { - "target": "ymdk/ymd75" + "target": "ymdk/ymd75/rev1" }, "ymd96": { "target": "ymdk/ymd96" diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py index 9c3decf4f7..b8bc99aa0d 100644 --- a/lib/python/qmk/cli/__init__.py +++ b/lib/python/qmk/cli/__init__.py @@ -31,6 +31,7 @@ safe_commands = [ ] subcommands = [ + 'qmk.cli.ci.validate_aliases', 'qmk.cli.bux', 'qmk.cli.c2json', 'qmk.cli.cd', diff --git a/lib/python/qmk/cli/ci/__init__.py b/lib/python/qmk/cli/ci/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/lib/python/qmk/cli/ci/validate_aliases.py b/lib/python/qmk/cli/ci/validate_aliases.py new file mode 100644 index 0000000000..a205d03cff --- /dev/null +++ b/lib/python/qmk/cli/ci/validate_aliases.py @@ -0,0 +1,46 @@ +"""Validates the list of keyboard aliases. +""" +from pathlib import Path + +from milc import cli + +from qmk.json_schema import json_load +from qmk.keyboard import resolve_keyboard, keyboard_folder + + +def _safe_keyboard_folder(target): + try: + return keyboard_folder(target) # throws ValueError if it's invalid + except Exception: + return None + + +def _target_keyboard_exists(target): + # If there's no target, then we can't build it. + if not target: + return False + + # If the target directory existed but there was no rules.mk or rules.mk was incorrectly parsed, then we can't build it. + if not resolve_keyboard(target): + return False + + # If the target directory exists but it itself has an invalid alias or invalid rules.mk, then we can't build it either. + if not _safe_keyboard_folder(target): + return False + + # As far as we can tell, we can build it! + return True + + +@cli.subcommand('Validates the list of keyboard aliases.', hidden=True) +def ci_validate_aliases(cli): + aliases = json_load(Path('data/mappings/keyboard_aliases.hjson')) + + success = True + for alias in aliases.keys(): + target = aliases[alias].get('target', None) + if not _target_keyboard_exists(target): + cli.log.error(f'Keyboard alias {alias} has a target that doesn\'t exist: {target}') + success = False + + return success diff --git a/lib/python/qmk/commands.py b/lib/python/qmk/commands.py index 660b2ff72e..34696e3793 100644 --- a/lib/python/qmk/commands.py +++ b/lib/python/qmk/commands.py @@ -212,13 +212,16 @@ def parse_configurator_json(configurator_file): cli.log.error(f'Invalid JSON keymap: {configurator_file} : {e.message}') exit(1) - orig_keyboard = user_keymap['keyboard'] + keyboard = user_keymap['keyboard'] aliases = json_load(Path('data/mappings/keyboard_aliases.hjson')) - if orig_keyboard in aliases: - if 'target' in aliases[orig_keyboard]: - user_keymap['keyboard'] = aliases[orig_keyboard]['target'] + while keyboard in aliases: + last_keyboard = keyboard + keyboard = aliases[keyboard].get('target', keyboard) + if keyboard == last_keyboard: + break + user_keymap['keyboard'] = keyboard return user_keymap diff --git a/lib/python/qmk/keyboard.py b/lib/python/qmk/keyboard.py index 18ca5a9534..9826f3f887 100644 --- a/lib/python/qmk/keyboard.py +++ b/lib/python/qmk/keyboard.py @@ -92,8 +92,11 @@ def keyboard_folder(keyboard): """ aliases = json_load(Path('data/mappings/keyboard_aliases.hjson')) - if keyboard in aliases: + while keyboard in aliases: + last_keyboard = keyboard keyboard = aliases[keyboard].get('target', keyboard) + if keyboard == last_keyboard: + break rules_mk_file = Path(base_path, keyboard, 'rules.mk') From 63b48f5096c2af87c27ea67ff68df44c7aaea809 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 5 Oct 2023 17:34:14 -0700 Subject: [PATCH 244/496] Move orphaned Yugo-M files (#22211) Moves files that were left behind by #14996. [bugfix] --- .../model_m/yugo_m}/keymaps/an_achronism_106/keymap.c | 0 .../model_m/yugo_m}/keymaps/an_achronism_106/readme.md | 0 .../model_m_101 => ibm/model_m/yugo_m}/keymaps/via/keymap.c | 0 .../model_m_101 => ibm/model_m/yugo_m}/keymaps/via/rules.mk | 0 .../{yugo_m/model_m_101 => ibm/model_m/yugo_m}/matrix_diagram.md | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename keyboards/{yugo_m/model_m_101 => ibm/model_m/yugo_m}/keymaps/an_achronism_106/keymap.c (100%) rename keyboards/{yugo_m/model_m_101 => ibm/model_m/yugo_m}/keymaps/an_achronism_106/readme.md (100%) rename keyboards/{yugo_m/model_m_101 => ibm/model_m/yugo_m}/keymaps/via/keymap.c (100%) rename keyboards/{yugo_m/model_m_101 => ibm/model_m/yugo_m}/keymaps/via/rules.mk (100%) rename keyboards/{yugo_m/model_m_101 => ibm/model_m/yugo_m}/matrix_diagram.md (100%) diff --git a/keyboards/yugo_m/model_m_101/keymaps/an_achronism_106/keymap.c b/keyboards/ibm/model_m/yugo_m/keymaps/an_achronism_106/keymap.c similarity index 100% rename from keyboards/yugo_m/model_m_101/keymaps/an_achronism_106/keymap.c rename to keyboards/ibm/model_m/yugo_m/keymaps/an_achronism_106/keymap.c diff --git a/keyboards/yugo_m/model_m_101/keymaps/an_achronism_106/readme.md b/keyboards/ibm/model_m/yugo_m/keymaps/an_achronism_106/readme.md similarity index 100% rename from keyboards/yugo_m/model_m_101/keymaps/an_achronism_106/readme.md rename to keyboards/ibm/model_m/yugo_m/keymaps/an_achronism_106/readme.md diff --git a/keyboards/yugo_m/model_m_101/keymaps/via/keymap.c b/keyboards/ibm/model_m/yugo_m/keymaps/via/keymap.c similarity index 100% rename from keyboards/yugo_m/model_m_101/keymaps/via/keymap.c rename to keyboards/ibm/model_m/yugo_m/keymaps/via/keymap.c diff --git a/keyboards/yugo_m/model_m_101/keymaps/via/rules.mk b/keyboards/ibm/model_m/yugo_m/keymaps/via/rules.mk similarity index 100% rename from keyboards/yugo_m/model_m_101/keymaps/via/rules.mk rename to keyboards/ibm/model_m/yugo_m/keymaps/via/rules.mk diff --git a/keyboards/yugo_m/model_m_101/matrix_diagram.md b/keyboards/ibm/model_m/yugo_m/matrix_diagram.md similarity index 100% rename from keyboards/yugo_m/model_m_101/matrix_diagram.md rename to keyboards/ibm/model_m/yugo_m/matrix_diagram.md From 69c1790dce1cedb8f3bdfdcc17cf71845d50ef14 Mon Sep 17 00:00:00 2001 From: era <73109780+eerraa@users.noreply.github.com> Date: Sat, 7 Oct 2023 09:31:08 +0900 Subject: [PATCH 245/496] Klein_HS PCB support (#22203) --- keyboards/era/sirind/klein_hs/config.h | 21 + keyboards/era/sirind/klein_hs/halconf.h | 21 + keyboards/era/sirind/klein_hs/info.json | 467 ++++++++++++++++++ .../sirind/klein_hs/keymaps/default/keymap.c | 23 + .../era/sirind/klein_hs/keymaps/via/keymap.c | 23 + .../era/sirind/klein_hs/keymaps/via/rules.mk | 1 + keyboards/era/sirind/klein_hs/mcuconf.h | 22 + keyboards/era/sirind/klein_hs/readme.md | 23 + keyboards/era/sirind/klein_hs/rules.mk | 0 9 files changed, 601 insertions(+) create mode 100644 keyboards/era/sirind/klein_hs/config.h create mode 100644 keyboards/era/sirind/klein_hs/halconf.h create mode 100644 keyboards/era/sirind/klein_hs/info.json create mode 100644 keyboards/era/sirind/klein_hs/keymaps/default/keymap.c create mode 100644 keyboards/era/sirind/klein_hs/keymaps/via/keymap.c create mode 100644 keyboards/era/sirind/klein_hs/keymaps/via/rules.mk create mode 100644 keyboards/era/sirind/klein_hs/mcuconf.h create mode 100644 keyboards/era/sirind/klein_hs/readme.md create mode 100644 keyboards/era/sirind/klein_hs/rules.mk diff --git a/keyboards/era/sirind/klein_hs/config.h b/keyboards/era/sirind/klein_hs/config.h new file mode 100644 index 0000000000..bbd4387363 --- /dev/null +++ b/keyboards/era/sirind/klein_hs/config.h @@ -0,0 +1,21 @@ +/* Copyright 2023 eerraa + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* BACKLIGHT PWM */ +#define BACKLIGHT_PWM_DRIVER PWMD7 +#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_B \ No newline at end of file diff --git a/keyboards/era/sirind/klein_hs/halconf.h b/keyboards/era/sirind/klein_hs/halconf.h new file mode 100644 index 0000000000..f57e86df01 --- /dev/null +++ b/keyboards/era/sirind/klein_hs/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2023 eerraa + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next \ No newline at end of file diff --git a/keyboards/era/sirind/klein_hs/info.json b/keyboards/era/sirind/klein_hs/info.json new file mode 100644 index 0000000000..6d677f6748 --- /dev/null +++ b/keyboards/era/sirind/klein_hs/info.json @@ -0,0 +1,467 @@ +{ + "manufacturer": "SIRIND", + "keyboard_name": "Klein_HS", + "maintainer": "eerraa", + "backlight": { + "levels": 5, + "pin": "GP15" + }, + "bootloader": "rp2040", + "build": { + "debounce_type": "sym_defer_pk" + }, + "diode_direction": "COL2ROW", + "features": { + "backlight": true, + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + }, + "indicators": { + "caps_lock": "GP16", + "on_state": 0, + "scroll_lock": "GP17" + }, + "matrix_pins": { + "cols": ["GP22", "GP23", "GP24", "GP25", "GP26", "GP27", "GP28", "GP29", "GP11", "GP10", "GP9", "GP8", "GP7", "GP1", "GP2", "GP3"], + "rows": ["GP18", "GP19", "GP20", "GP21", "GP14", "GP5", "GP6", "GP4", "GP13", "GP12"] + }, + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0004", + "vid": "0x4552" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [5, 8], "x": 10.75, "y": 0}, + {"matrix": [5, 9], "x": 11.75, "y": 0}, + {"matrix": [5, 10], "x": 12.75, "y": 0}, + {"matrix": [5, 11], "x": 13.75, "y": 0}, + {"matrix": [5, 12], "x": 14.75, "y": 0}, + {"matrix": [5, 13], "x": 15.75, "y": 0}, + {"matrix": [5, 14], "x": 16.75, "y": 0}, + {"matrix": [5, 15], "x": 17.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 3, "y": 1}, + {"matrix": [1, 3], "x": 4, "y": 1}, + {"matrix": [1, 4], "x": 5, "y": 1}, + {"matrix": [1, 5], "x": 6, "y": 1}, + {"matrix": [1, 6], "x": 7, "y": 1}, + {"matrix": [1, 7], "x": 8, "y": 1}, + {"matrix": [6, 8], "x": 10.25, "y": 1}, + {"matrix": [6, 9], "x": 11.25, "y": 1}, + {"matrix": [6, 10], "x": 12.25, "y": 1}, + {"matrix": [6, 11], "x": 13.25, "y": 1}, + {"matrix": [6, 12], "x": 14.25, "y": 1}, + {"matrix": [6, 13], "x": 15.25, "y": 1}, + {"matrix": [6, 14], "x": 16.25, "y": 1}, + {"matrix": [6, 15], "x": 17.25, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [7, 8], "x": 10.5, "y": 2}, + {"matrix": [7, 9], "x": 11.5, "y": 2}, + {"matrix": [7, 10], "x": 12.5, "y": 2}, + {"matrix": [7, 11], "x": 13.5, "y": 2}, + {"matrix": [7, 12], "x": 14.5, "y": 2}, + {"matrix": [7, 13], "x": 15.5, "y": 2}, + {"matrix": [7, 15], "x": 16.5, "y": 2, "w": 2.25}, + {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.75, "y": 3}, + {"matrix": [3, 3], "x": 4.75, "y": 3}, + {"matrix": [3, 4], "x": 5.75, "y": 3}, + {"matrix": [3, 5], "x": 6.75, "y": 3}, + {"matrix": [3, 6], "x": 7.75, "y": 3}, + {"matrix": [8, 8], "x": 10, "y": 3}, + {"matrix": [8, 9], "x": 11, "y": 3}, + {"matrix": [8, 10], "x": 12, "y": 3}, + {"matrix": [8, 11], "x": 13, "y": 3}, + {"matrix": [8, 12], "x": 14, "y": 3}, + {"matrix": [8, 13], "x": 15, "y": 3}, + {"matrix": [8, 14], "x": 16, "y": 3, "w": 1.75}, + {"matrix": [8, 15], "x": 17.75, "y": 3}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "x": 4.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 6, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 8.25, "y": 4}, + {"matrix": [9, 9], "x": 10, "y": 4, "w": 2.75}, + {"matrix": [9, 11], "x": 12.75, "y": 4, "w": 1.5}, + {"matrix": [9, 13], "x": 15, "y": 4}, + {"matrix": [9, 14], "x": 16, "y": 4}, + {"matrix": [9, 15], "x": 17, "y": 4} + ] + }, + "LAYOUT_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [5, 8], "x": 10.75, "y": 0}, + {"matrix": [5, 9], "x": 11.75, "y": 0}, + {"matrix": [5, 10], "x": 12.75, "y": 0}, + {"matrix": [5, 11], "x": 13.75, "y": 0}, + {"matrix": [5, 12], "x": 14.75, "y": 0}, + {"matrix": [5, 13], "x": 15.75, "y": 0}, + {"matrix": [5, 15], "x": 16.75, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 3, "y": 1}, + {"matrix": [1, 3], "x": 4, "y": 1}, + {"matrix": [1, 4], "x": 5, "y": 1}, + {"matrix": [1, 5], "x": 6, "y": 1}, + {"matrix": [1, 6], "x": 7, "y": 1}, + {"matrix": [1, 7], "x": 8, "y": 1}, + {"matrix": [6, 8], "x": 10.25, "y": 1}, + {"matrix": [6, 9], "x": 11.25, "y": 1}, + {"matrix": [6, 10], "x": 12.25, "y": 1}, + {"matrix": [6, 11], "x": 13.25, "y": 1}, + {"matrix": [6, 12], "x": 14.25, "y": 1}, + {"matrix": [6, 13], "x": 15.25, "y": 1}, + {"matrix": [6, 14], "x": 16.25, "y": 1}, + {"matrix": [6, 15], "x": 17.25, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [7, 8], "x": 10.5, "y": 2}, + {"matrix": [7, 9], "x": 11.5, "y": 2}, + {"matrix": [7, 10], "x": 12.5, "y": 2}, + {"matrix": [7, 11], "x": 13.5, "y": 2}, + {"matrix": [7, 12], "x": 14.5, "y": 2}, + {"matrix": [7, 13], "x": 15.5, "y": 2}, + {"matrix": [7, 15], "x": 16.5, "y": 2, "w": 2.25}, + {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.75, "y": 3}, + {"matrix": [3, 3], "x": 4.75, "y": 3}, + {"matrix": [3, 4], "x": 5.75, "y": 3}, + {"matrix": [3, 5], "x": 6.75, "y": 3}, + {"matrix": [3, 6], "x": 7.75, "y": 3}, + {"matrix": [8, 8], "x": 10, "y": 3}, + {"matrix": [8, 9], "x": 11, "y": 3}, + {"matrix": [8, 10], "x": 12, "y": 3}, + {"matrix": [8, 11], "x": 13, "y": 3}, + {"matrix": [8, 12], "x": 14, "y": 3}, + {"matrix": [8, 13], "x": 15, "y": 3}, + {"matrix": [8, 14], "x": 16, "y": 3, "w": 2.75}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "x": 4.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 6, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 8.25, "y": 4}, + {"matrix": [9, 9], "x": 10, "y": 4, "w": 2.75}, + {"matrix": [9, 11], "x": 12.75, "y": 4, "w": 1.5}, + {"matrix": [9, 15], "x": 17.25, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_ansi_arrow": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [5, 8], "x": 10.75, "y": 0}, + {"matrix": [5, 9], "x": 11.75, "y": 0}, + {"matrix": [5, 10], "x": 12.75, "y": 0}, + {"matrix": [5, 11], "x": 13.75, "y": 0}, + {"matrix": [5, 12], "x": 14.75, "y": 0}, + {"matrix": [5, 13], "x": 15.75, "y": 0}, + {"matrix": [5, 15], "x": 16.75, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 3, "y": 1}, + {"matrix": [1, 3], "x": 4, "y": 1}, + {"matrix": [1, 4], "x": 5, "y": 1}, + {"matrix": [1, 5], "x": 6, "y": 1}, + {"matrix": [1, 6], "x": 7, "y": 1}, + {"matrix": [1, 7], "x": 8, "y": 1}, + {"matrix": [6, 8], "x": 10.25, "y": 1}, + {"matrix": [6, 9], "x": 11.25, "y": 1}, + {"matrix": [6, 10], "x": 12.25, "y": 1}, + {"matrix": [6, 11], "x": 13.25, "y": 1}, + {"matrix": [6, 12], "x": 14.25, "y": 1}, + {"matrix": [6, 13], "x": 15.25, "y": 1}, + {"matrix": [6, 14], "x": 16.25, "y": 1}, + {"matrix": [6, 15], "x": 17.25, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [7, 8], "x": 10.5, "y": 2}, + {"matrix": [7, 9], "x": 11.5, "y": 2}, + {"matrix": [7, 10], "x": 12.5, "y": 2}, + {"matrix": [7, 11], "x": 13.5, "y": 2}, + {"matrix": [7, 12], "x": 14.5, "y": 2}, + {"matrix": [7, 13], "x": 15.5, "y": 2}, + {"matrix": [7, 15], "x": 16.5, "y": 2, "w": 2.25}, + {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.75, "y": 3}, + {"matrix": [3, 3], "x": 4.75, "y": 3}, + {"matrix": [3, 4], "x": 5.75, "y": 3}, + {"matrix": [3, 5], "x": 6.75, "y": 3}, + {"matrix": [3, 6], "x": 7.75, "y": 3}, + {"matrix": [8, 8], "x": 10, "y": 3}, + {"matrix": [8, 9], "x": 11, "y": 3}, + {"matrix": [8, 10], "x": 12, "y": 3}, + {"matrix": [8, 11], "x": 13, "y": 3}, + {"matrix": [8, 12], "x": 14, "y": 3}, + {"matrix": [8, 13], "x": 15, "y": 3}, + {"matrix": [8, 14], "x": 16, "y": 3}, + {"matrix": [8, 15], "x": 17, "y": 3, "w": 1.75}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "x": 4.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 6, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 8.25, "y": 4}, + {"matrix": [9, 9], "x": 10, "y": 4, "w": 2.75}, + {"matrix": [9, 11], "x": 12.75, "y": 4, "w": 1.5}, + {"matrix": [9, 13], "x": 15, "y": 4}, + {"matrix": [9, 14], "x": 16, "y": 4}, + {"matrix": [9, 15], "x": 17, "y": 4} + ] + }, + "LAYOUT_ansi_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [5, 8], "x": 10.75, "y": 0}, + {"matrix": [5, 9], "x": 11.75, "y": 0}, + {"matrix": [5, 10], "x": 12.75, "y": 0}, + {"matrix": [5, 11], "x": 13.75, "y": 0}, + {"matrix": [5, 12], "x": 14.75, "y": 0}, + {"matrix": [5, 13], "x": 15.75, "y": 0}, + {"matrix": [5, 14], "x": 16.75, "y": 0}, + {"matrix": [5, 15], "x": 17.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 3, "y": 1}, + {"matrix": [1, 3], "x": 4, "y": 1}, + {"matrix": [1, 4], "x": 5, "y": 1}, + {"matrix": [1, 5], "x": 6, "y": 1}, + {"matrix": [1, 6], "x": 7, "y": 1}, + {"matrix": [1, 7], "x": 8, "y": 1}, + {"matrix": [6, 8], "x": 10.25, "y": 1}, + {"matrix": [6, 9], "x": 11.25, "y": 1}, + {"matrix": [6, 10], "x": 12.25, "y": 1}, + {"matrix": [6, 11], "x": 13.25, "y": 1}, + {"matrix": [6, 12], "x": 14.25, "y": 1}, + {"matrix": [6, 13], "x": 15.25, "y": 1}, + {"matrix": [6, 14], "x": 16.25, "y": 1}, + {"matrix": [6, 15], "x": 17.25, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [7, 8], "x": 10.5, "y": 2}, + {"matrix": [7, 9], "x": 11.5, "y": 2}, + {"matrix": [7, 10], "x": 12.5, "y": 2}, + {"matrix": [7, 11], "x": 13.5, "y": 2}, + {"matrix": [7, 12], "x": 14.5, "y": 2}, + {"matrix": [7, 13], "x": 15.5, "y": 2}, + {"matrix": [7, 15], "x": 16.5, "y": 2, "w": 2.25}, + {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.75, "y": 3}, + {"matrix": [3, 3], "x": 4.75, "y": 3}, + {"matrix": [3, 4], "x": 5.75, "y": 3}, + {"matrix": [3, 5], "x": 6.75, "y": 3}, + {"matrix": [3, 6], "x": 7.75, "y": 3}, + {"matrix": [8, 8], "x": 10, "y": 3}, + {"matrix": [8, 9], "x": 11, "y": 3}, + {"matrix": [8, 10], "x": 12, "y": 3}, + {"matrix": [8, 11], "x": 13, "y": 3}, + {"matrix": [8, 12], "x": 14, "y": 3}, + {"matrix": [8, 13], "x": 15, "y": 3}, + {"matrix": [8, 14], "x": 16, "y": 3, "w": 2.75}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "x": 4.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 6, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 8.25, "y": 4}, + {"matrix": [9, 9], "x": 10, "y": 4, "w": 2.75}, + {"matrix": [9, 11], "x": 12.75, "y": 4, "w": 1.5}, + {"matrix": [9, 15], "x": 17.25, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_ansi_split_bs_rsft": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [5, 8], "x": 10.75, "y": 0}, + {"matrix": [5, 9], "x": 11.75, "y": 0}, + {"matrix": [5, 10], "x": 12.75, "y": 0}, + {"matrix": [5, 11], "x": 13.75, "y": 0}, + {"matrix": [5, 12], "x": 14.75, "y": 0}, + {"matrix": [5, 13], "x": 15.75, "y": 0}, + {"matrix": [5, 14], "x": 16.75, "y": 0}, + {"matrix": [5, 15], "x": 17.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 3, "y": 1}, + {"matrix": [1, 3], "x": 4, "y": 1}, + {"matrix": [1, 4], "x": 5, "y": 1}, + {"matrix": [1, 5], "x": 6, "y": 1}, + {"matrix": [1, 6], "x": 7, "y": 1}, + {"matrix": [1, 7], "x": 8, "y": 1}, + {"matrix": [6, 8], "x": 10.25, "y": 1}, + {"matrix": [6, 9], "x": 11.25, "y": 1}, + {"matrix": [6, 10], "x": 12.25, "y": 1}, + {"matrix": [6, 11], "x": 13.25, "y": 1}, + {"matrix": [6, 12], "x": 14.25, "y": 1}, + {"matrix": [6, 13], "x": 15.25, "y": 1}, + {"matrix": [6, 14], "x": 16.25, "y": 1}, + {"matrix": [6, 15], "x": 17.25, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [7, 8], "x": 10.5, "y": 2}, + {"matrix": [7, 9], "x": 11.5, "y": 2}, + {"matrix": [7, 10], "x": 12.5, "y": 2}, + {"matrix": [7, 11], "x": 13.5, "y": 2}, + {"matrix": [7, 12], "x": 14.5, "y": 2}, + {"matrix": [7, 13], "x": 15.5, "y": 2}, + {"matrix": [7, 15], "x": 16.5, "y": 2, "w": 2.25}, + {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.75, "y": 3}, + {"matrix": [3, 3], "x": 4.75, "y": 3}, + {"matrix": [3, 4], "x": 5.75, "y": 3}, + {"matrix": [3, 5], "x": 6.75, "y": 3}, + {"matrix": [3, 6], "x": 7.75, "y": 3}, + {"matrix": [8, 8], "x": 10, "y": 3}, + {"matrix": [8, 9], "x": 11, "y": 3}, + {"matrix": [8, 10], "x": 12, "y": 3}, + {"matrix": [8, 11], "x": 13, "y": 3}, + {"matrix": [8, 12], "x": 14, "y": 3}, + {"matrix": [8, 13], "x": 15, "y": 3}, + {"matrix": [8, 14], "x": 16, "y": 3, "w": 1.75}, + {"matrix": [8, 15], "x": 17.75, "y": 3}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "x": 4.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 6, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 8.25, "y": 4}, + {"matrix": [9, 9], "x": 10, "y": 4, "w": 2.75}, + {"matrix": [9, 11], "x": 12.75, "y": 4, "w": 1.5}, + {"matrix": [9, 15], "x": 17.25, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_arrow_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [5, 8], "x": 10.75, "y": 0}, + {"matrix": [5, 9], "x": 11.75, "y": 0}, + {"matrix": [5, 10], "x": 12.75, "y": 0}, + {"matrix": [5, 11], "x": 13.75, "y": 0}, + {"matrix": [5, 12], "x": 14.75, "y": 0}, + {"matrix": [5, 13], "x": 15.75, "y": 0}, + {"matrix": [5, 14], "x": 16.75, "y": 0}, + {"matrix": [5, 15], "x": 17.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 3, "y": 1}, + {"matrix": [1, 3], "x": 4, "y": 1}, + {"matrix": [1, 4], "x": 5, "y": 1}, + {"matrix": [1, 5], "x": 6, "y": 1}, + {"matrix": [1, 6], "x": 7, "y": 1}, + {"matrix": [1, 7], "x": 8, "y": 1}, + {"matrix": [6, 8], "x": 10.25, "y": 1}, + {"matrix": [6, 9], "x": 11.25, "y": 1}, + {"matrix": [6, 10], "x": 12.25, "y": 1}, + {"matrix": [6, 11], "x": 13.25, "y": 1}, + {"matrix": [6, 12], "x": 14.25, "y": 1}, + {"matrix": [6, 13], "x": 15.25, "y": 1}, + {"matrix": [6, 14], "x": 16.25, "y": 1}, + {"matrix": [6, 15], "x": 17.25, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [7, 8], "x": 10.5, "y": 2}, + {"matrix": [7, 9], "x": 11.5, "y": 2}, + {"matrix": [7, 10], "x": 12.5, "y": 2}, + {"matrix": [7, 11], "x": 13.5, "y": 2}, + {"matrix": [7, 12], "x": 14.5, "y": 2}, + {"matrix": [7, 13], "x": 15.5, "y": 2}, + {"matrix": [7, 15], "x": 16.5, "y": 2, "w": 2.25}, + {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.75, "y": 3}, + {"matrix": [3, 3], "x": 4.75, "y": 3}, + {"matrix": [3, 4], "x": 5.75, "y": 3}, + {"matrix": [3, 5], "x": 6.75, "y": 3}, + {"matrix": [3, 6], "x": 7.75, "y": 3}, + {"matrix": [8, 8], "x": 10, "y": 3}, + {"matrix": [8, 9], "x": 11, "y": 3}, + {"matrix": [8, 10], "x": 12, "y": 3}, + {"matrix": [8, 11], "x": 13, "y": 3}, + {"matrix": [8, 12], "x": 14, "y": 3}, + {"matrix": [8, 13], "x": 15, "y": 3}, + {"matrix": [8, 14], "x": 16, "y": 3}, + {"matrix": [8, 15], "x": 17, "y": 3, "w": 1.75}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "x": 4.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 6, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 8.25, "y": 4}, + {"matrix": [9, 9], "x": 10, "y": 4, "w": 2.75}, + {"matrix": [9, 11], "x": 12.75, "y": 4, "w": 1.5}, + {"matrix": [9, 13], "x": 15, "y": 4}, + {"matrix": [9, 14], "x": 16, "y": 4}, + {"matrix": [9, 15], "x": 17, "y": 4} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/era/sirind/klein_hs/keymaps/default/keymap.c b/keyboards/era/sirind/klein_hs/keymaps/default/keymap.c new file mode 100644 index 0000000000..88878bbcd9 --- /dev/null +++ b/keyboards/era/sirind/klein_hs/keymaps/default/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2018-2022 QMK (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_GRV, 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_BSPC, KC_BSPC, + KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RCTL + ), + + [1] = LAYOUT( + KC_TRNS, KC_TRNS, 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_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_PSCR, KC_SCRL, KC_PAUS, 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_LSFT, 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 + ) +}; \ No newline at end of file diff --git a/keyboards/era/sirind/klein_hs/keymaps/via/keymap.c b/keyboards/era/sirind/klein_hs/keymaps/via/keymap.c new file mode 100644 index 0000000000..88878bbcd9 --- /dev/null +++ b/keyboards/era/sirind/klein_hs/keymaps/via/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2018-2022 QMK (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_GRV, 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_BSPC, KC_BSPC, + KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RCTL + ), + + [1] = LAYOUT( + KC_TRNS, KC_TRNS, 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_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_PSCR, KC_SCRL, KC_PAUS, 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_LSFT, 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 + ) +}; \ No newline at end of file diff --git a/keyboards/era/sirind/klein_hs/keymaps/via/rules.mk b/keyboards/era/sirind/klein_hs/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/era/sirind/klein_hs/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/era/sirind/klein_hs/mcuconf.h b/keyboards/era/sirind/klein_hs/mcuconf.h new file mode 100644 index 0000000000..b82cc49d7d --- /dev/null +++ b/keyboards/era/sirind/klein_hs/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2023 eerraa + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef RP_PWM_USE_PWM7 +#define RP_PWM_USE_PWM7 TRUE \ No newline at end of file diff --git a/keyboards/era/sirind/klein_hs/readme.md b/keyboards/era/sirind/klein_hs/readme.md new file mode 100644 index 0000000000..86343271bb --- /dev/null +++ b/keyboards/era/sirind/klein_hs/readme.md @@ -0,0 +1,23 @@ +# Mont Cervin Klein + +* Keyboard Maintainer: [ERA](https://github.com/eerraa) +* Hardware supported: SIRIND Klein_HS +* Hardware availability: [Syryan](https://srind.mysoho.com/) + +Make example for this keyboard (after setting up your build environment): + + make era/sirind/klein_hs:default + +Flashing example for this keyboard: + + make era/sirind/klein_hs:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at ESC(0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly short the `RESET` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/era/sirind/klein_hs/rules.mk b/keyboards/era/sirind/klein_hs/rules.mk new file mode 100644 index 0000000000..e69de29bb2 From b768d74b2bec974e7dc3282769f753ac9e800b9d Mon Sep 17 00:00:00 2001 From: noahbei <123449614+noahbei@users.noreply.github.com> Date: Sat, 7 Oct 2023 07:00:46 -0700 Subject: [PATCH 246/496] Update vid for printedpad (#22215) --- keyboards/printedpad/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/printedpad/info.json b/keyboards/printedpad/info.json index 8ced02141b..90a42c7313 100644 --- a/keyboards/printedpad/info.json +++ b/keyboards/printedpad/info.json @@ -22,7 +22,7 @@ "usb": { "device_version": "1.0.0", "pid": "0x0001", - "vid": "0x5044" + "vid": "0x5064" }, "layouts": { "LAYOUT": { From 06d123de6200f5f7f9401c08366f597059f21b1a Mon Sep 17 00:00:00 2001 From: Brian Date: Sat, 7 Oct 2023 07:36:05 -0700 Subject: [PATCH 247/496] Adding BriianPowell Discipline Keyboard Layout Updates (#21474) --- .../discipline/keymaps/briianpowell/keymap.c | 78 +++++-------------- 1 file changed, 19 insertions(+), 59 deletions(-) diff --git a/keyboards/coseyfannitutti/discipline/keymaps/briianpowell/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/briianpowell/keymap.c index ed49188c5e..0dc219facc 100644 --- a/keyboards/coseyfannitutti/discipline/keymaps/briianpowell/keymap.c +++ b/keyboards/coseyfannitutti/discipline/keymaps/briianpowell/keymap.c @@ -30,68 +30,28 @@ enum discpline_keycodes { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* QWERTY: Default Layer - * ,--------------------------------------------------------------. - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backs| `~| - * |---------------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|Del| - * |---------------------------------------------------------------| - * |Fn/CL | A| S| D| F| G| H| J| K| L| ;| '| Enter|PgU| - * |---------------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD| - * |---------------------------------------------------------------| - * |Ctrl|Gui |Alt | Space |Gui |Alt |Ctrl| |Lef|Dow|Rig| - * `---------------------------------------------------------------' - */ - [_QWERTY] = LAYOUT_65_ansi( - KC_ESC, 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_BSPC, KC_GRV, - 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_DEL, - FN_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, KC_HOME, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT,KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL,KC_LEFT, KC_DOWN, KC_RGHT - ), - - /* Workman - * ,---------------------------------------------------------------. - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backs| `~| - * |---------------------------------------------------------------| - * |Tab | Q| D| R| W| B| J| F| U| P| ;| [| ]| \| Del| - * |---------------------------------------------------------------| - * |Fn/CL | A| S| H| T| G| Y| N| E| O| I| '| Enter| PgU| - * |---------------------------------------------------------------| - * |Shift | Z| X| M| C| V| K| L| ,| .| /|Shift |Up| PgD| - * |---------------------------------------------------------------| - * |Ctrl|Alt |Gui | Space |Gui |Alt |Ctrl| |Lef|Dow|Rig| - * `---------------------------------------------------------------' - */ - [_WORKMAN] = LAYOUT_65_ansi( - KC_ESC, 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_BSPC, KC_GRV, - KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, - FN_ESC, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT, KC_ENT, KC_HOME, - KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [_QWERTY] = LAYOUT_65_ansi( + KC_ESC, 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_BSPC, KC_GRV, + 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_DEL, + FN_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_WORKMAN] = LAYOUT_65_ansi( + KC_ESC, 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_BSPC, KC_GRV, + KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + FN_ESC, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT, KC_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - /* Function - * ,---------------------------------------------------------------. - * |RST| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | | - * |---------------------------------------------------------------| - * | | | | | | | | | | | | | | |INS| - * |---------------------------------------------------------------| - * | | | | | | | | | | | | | |HME| - * |---------------------------------------------------------------| - * | | | | | | | | | | | | | |VL+|END| - * |---------------------------------------------------------------| - * | | | | PLY/PS | | | | |PRV|VL-|NXT| - * `---------------------------------------------------------------' - */ [_FUNC] = LAYOUT_65_ansi( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,_______, QK_BOOT, - _______,KC_WH_U,KC_BTN1,KC_MS_U,KC_BTN2,_______,_______,AG_NORM,AG_SWAP,QWERTY,WORKMAN,_______,_______,_______, KC_INS, - _______,KC_WH_D,KC_MS_L,KC_MS_D,KC_MS_R,_______,_______,_______,_______,_______,_______,_______, _______, KC_PGUP, - _______,KC_WH_L,KC_BTN3,KC_WH_R,_______,_______,_______,_______,_______,_______,_______, _______,KC_VOLU, KC_PGDN, - _______,_______,_______, KC_MPLY, _______,_______,_______,KC_MPRV,KC_VOLD, KC_MNXT + KC_TRNS, 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, QK_BOOT, + KC_TRNS, KC_WH_U, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, AG_NORM, AG_SWAP, QWERTY, WORKMAN, KC_TRNS, KC_INS, + KC_TRNS, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, + KC_TRNS, KC_WH_L, KC_BTN3, KC_WH_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_PGDN, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT ), }; From 21389fbd8960c6ec08d0ff17473ace0f3633e3d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Mart=C3=ADnez?= <58857054+elpekenin@users.noreply.github.com> Date: Sun, 8 Oct 2023 01:29:27 +0200 Subject: [PATCH 248/496] [Bugfix] `qp_ellipse` overflow (#19005) --- quantum/painter/qp_draw_ellipse.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/quantum/painter/qp_draw_ellipse.c b/quantum/painter/qp_draw_ellipse.c index e912a3e91f..9e77bca8b0 100644 --- a/quantum/painter/qp_draw_ellipse.c +++ b/quantum/painter/qp_draw_ellipse.c @@ -67,10 +67,10 @@ bool qp_ellipse(painter_device_t device, uint16_t x, uint16_t y, uint16_t sizex, return false; } - int16_t aa = ((int16_t)sizex) * ((int16_t)sizex); - int16_t bb = ((int16_t)sizey) * ((int16_t)sizey); - int16_t fa = 4 * ((int16_t)aa); - int16_t fb = 4 * ((int16_t)bb); + int32_t aa = ((int32_t)sizex) * ((int32_t)sizex); + int32_t bb = ((int32_t)sizey) * ((int32_t)sizey); + int32_t fa = 4 * aa; + int32_t fb = 4 * bb; int16_t dx = 0; int16_t dy = ((int16_t)sizey); @@ -83,7 +83,7 @@ bool qp_ellipse(painter_device_t device, uint16_t x, uint16_t y, uint16_t sizex, } bool ret = true; - for (int16_t delta = (2 * bb) + (aa * (1 - (2 * sizey))); bb * dx <= aa * dy; dx++) { + for (int32_t delta = (2 * bb) + (aa * (1 - (2 * sizey))); bb * dx <= aa * dy; dx++) { if (!qp_ellipse_helper_impl(device, x, y, dx, dy, filled)) { ret = false; break; @@ -98,7 +98,7 @@ bool qp_ellipse(painter_device_t device, uint16_t x, uint16_t y, uint16_t sizex, dx = sizex; dy = 0; - for (int16_t delta = (2 * aa) + (bb * (1 - (2 * sizex))); aa * dy <= bb * dx; dy++) { + for (int32_t delta = (2 * aa) + (bb * (1 - (2 * sizex))); aa * dy <= bb * dx; dy++) { if (!qp_ellipse_helper_impl(device, x, y, dx, dy, filled)) { ret = false; break; From 99b545843eb9f354cf391fab4341deaa3f11fba3 Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Sun, 8 Oct 2023 09:38:30 +0100 Subject: [PATCH 249/496] partially modernize `dactyl_minidox` (#21576) * modernize `dactyl_minidox` * Update config.h revert RGB_MATRIX conditional --- keyboards/handwired/dactyl_minidox/info.json | 8 ++++++++ keyboards/handwired/dactyl_minidox/rules.mk | 13 +------------ 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/keyboards/handwired/dactyl_minidox/info.json b/keyboards/handwired/dactyl_minidox/info.json index a0bb416ce4..a94f517b52 100644 --- a/keyboards/handwired/dactyl_minidox/info.json +++ b/keyboards/handwired/dactyl_minidox/info.json @@ -8,6 +8,14 @@ "pid": "0x3536", "device_version": "0.0.3" }, + "features": { + "bootmagic": true, + "console": false, + "command": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/handwired/dactyl_minidox/rules.mk b/keyboards/handwired/dactyl_minidox/rules.mk index e22ac7f3ff..6e7633bfe0 100644 --- a/keyboards/handwired/dactyl_minidox/rules.mk +++ b/keyboards/handwired/dactyl_minidox/rules.mk @@ -1,12 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -# AUDIO_ENABLE = yes # Audio output +# This file intentionally left blank From 7ca652ce6d6582ca682f7e7beeb1ad1908087985 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 8 Oct 2023 12:45:13 +0100 Subject: [PATCH 250/496] Flag vial keymaps in 'qmk lint' (#22227) --- .gitignore | 3 ++- lib/python/qmk/cli/lint.py | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index e9e7b27e6c..f6401d9f83 100644 --- a/.gitignore +++ b/.gitignore @@ -108,5 +108,6 @@ compile_commands.json .clangd/ .cache/ -# VIA(L) json files that don't belong in QMK repo +# VIA(L) files that don't belong in QMK repo via*.json +/keyboards/**/keymaps/vial/* diff --git a/lib/python/qmk/cli/lint.py b/lib/python/qmk/cli/lint.py index 897a6c4c0d..a7c85b5643 100644 --- a/lib/python/qmk/cli/lint.py +++ b/lib/python/qmk/cli/lint.py @@ -20,6 +20,9 @@ def _list_defaultish_keymaps(kb): """ defaultish = ['ansi', 'iso', 'via'] + # This is only here to flag it as "testable", so it doesn't fly under the radar during PR + defaultish.append('vial') + keymaps = set() for x in list_keymaps(kb): if x in defaultish or x.startswith('default'): From 4345d34cf2083b1cfbe9487762f077e5d3feea83 Mon Sep 17 00:00:00 2001 From: ikorihn <16367098+ikorihn@users.noreply.github.com> Date: Mon, 9 Oct 2023 03:43:09 +0900 Subject: [PATCH 251/496] Fix build error when Automatic Mouse Layer is enabled (#22229) --- quantum/pointing_device/pointing_device_auto_mouse.c | 1 + 1 file changed, 1 insertion(+) diff --git a/quantum/pointing_device/pointing_device_auto_mouse.c b/quantum/pointing_device/pointing_device_auto_mouse.c index fc3106e37e..3135b9e531 100644 --- a/quantum/pointing_device/pointing_device_auto_mouse.c +++ b/quantum/pointing_device/pointing_device_auto_mouse.c @@ -17,6 +17,7 @@ #ifdef POINTING_DEVICE_AUTO_MOUSE_ENABLE +# include # include "pointing_device_auto_mouse.h" # include "debug.h" # include "action_util.h" From e1630edef4c59568cf2057717aa7fcd4a6f286ae Mon Sep 17 00:00:00 2001 From: vinhcatba Date: Mon, 9 Oct 2023 13:35:51 +0700 Subject: [PATCH 252/496] [Keyboard] vinhcatba/uncertainty (#21142) * vinh: test fw for uncertainty (deprecated) * v0.1: update base firmware with 2 layers, use bongo cat animation for oled * v0.1: change directory * v0.1: cleanup * v0.2: update layers * v0.3: add VIA support * v0.3: add VIA support (continue) * vinh: test fw for uncertainty (deprecated) * v0.1: update base firmware with 2 layers, use bongo cat animation for oled * v0.1: change directory * v0.1: cleanup * v0.2: update layers * v0.3: add VIA support * v0.3: add VIA support (continue) * v0.3: change keyboard name, remove eeprom config save in VIA keymap * cleanup for PR * update readme * vinh: test fw for uncertainty (deprecated) * v0.1: update base firmware with 2 layers, use bongo cat animation for oled * v0.1: change directory * v0.1: cleanup * v0.2: update layers * v0.3: add VIA support * v0.3: add VIA support (continue) * vinh: test fw for uncertainty (deprecated) * v0.1: update base firmware with 2 layers, use bongo cat animation for oled * v0.1: change directory * v0.1: cleanup * v0.3: change keyboard name, remove eeprom config save in VIA keymap * cleanup for PR * update readme * add license to header files, update ws2812 driver and DI_PIN to info.json * resovle PR suggestion for config.h, halconf.h, mcuconf.h * update info.json regarding PR comment * update bongo.h regarding PR comment * add oled mode toggle * update readme.md, rules.mk regarding PR comment * add submodule update * move oled handle to keyboard level * Update keyboards/vinhcatba/uncertainty/uncertainty.c forgot user-level proces_record * now using bongo as source file * Apply suggestions from code review remove default value codes * move WPM_ENABLE and ENCODER_MAP_ENABLE to keymap level * Apply suggestions from code review * Apply suggestions from code review * Update keyboards/vinhcatba/uncertainty/config.h --- keyboards/vinhcatba/uncertainty/bongo.c | 506 ++++++++++++++++++ keyboards/vinhcatba/uncertainty/bongo.h | 6 + keyboards/vinhcatba/uncertainty/config.h | 30 ++ keyboards/vinhcatba/uncertainty/halconf.h | 11 + keyboards/vinhcatba/uncertainty/info.json | 170 ++++++ .../uncertainty/keymaps/default/keymap.c | 89 +++ .../uncertainty/keymaps/default/rules.mk | 1 + .../uncertainty/keymaps/via/keymap.c | 88 +++ .../uncertainty/keymaps/via/rules.mk | 2 + keyboards/vinhcatba/uncertainty/mcuconf.h | 10 + keyboards/vinhcatba/uncertainty/readme.md | 26 + keyboards/vinhcatba/uncertainty/rules.mk | 3 + keyboards/vinhcatba/uncertainty/uncertainty.c | 32 ++ keyboards/vinhcatba/uncertainty/uncertainty.h | 10 + 14 files changed, 984 insertions(+) create mode 100644 keyboards/vinhcatba/uncertainty/bongo.c create mode 100644 keyboards/vinhcatba/uncertainty/bongo.h create mode 100644 keyboards/vinhcatba/uncertainty/config.h create mode 100644 keyboards/vinhcatba/uncertainty/halconf.h create mode 100644 keyboards/vinhcatba/uncertainty/info.json create mode 100644 keyboards/vinhcatba/uncertainty/keymaps/default/keymap.c create mode 100644 keyboards/vinhcatba/uncertainty/keymaps/default/rules.mk create mode 100644 keyboards/vinhcatba/uncertainty/keymaps/via/keymap.c create mode 100644 keyboards/vinhcatba/uncertainty/keymaps/via/rules.mk create mode 100644 keyboards/vinhcatba/uncertainty/mcuconf.h create mode 100644 keyboards/vinhcatba/uncertainty/readme.md create mode 100644 keyboards/vinhcatba/uncertainty/rules.mk create mode 100644 keyboards/vinhcatba/uncertainty/uncertainty.c create mode 100644 keyboards/vinhcatba/uncertainty/uncertainty.h diff --git a/keyboards/vinhcatba/uncertainty/bongo.c b/keyboards/vinhcatba/uncertainty/bongo.c new file mode 100644 index 0000000000..707955ee88 --- /dev/null +++ b/keyboards/vinhcatba/uncertainty/bongo.c @@ -0,0 +1,506 @@ +// Copyright 2022 Parker Levin (@pedker) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#define ANIM_FRAME_DURATION 75 // how long each frame lasts in ms +#define ANIM_SIZE 636 // number of bytes in array, minimize for adequate firmware size, max is 1024 +#define IDLE_FRAMES 5 +#define IDLE_TIMEOUT 750 // the amount of time it takes to return to idle +#define TAP_FRAMES 2 +#define KEYS_SIZE 104 // the number of keys stored in the array that tracks keypresses; how many keys are on the board? + +enum anim_states +{ + Idle, + Prep, + Tap +}; +uint8_t anim_state = Idle; +uint32_t idle_timeout_timer = 0; +uint32_t anim_timer = 0; +uint8_t current_idle_frame = 0; +uint8_t current_tap_frame = 0; + +struct pair_int_int +{ + uint8_t first; + uint8_t second; +}; +struct pair_int_int pressed_keys[KEYS_SIZE]; +struct pair_int_int pressed_keys_prev[KEYS_SIZE]; +uint8_t pressed_keys_index = 0; + +bool key_down = 0; +char wpm[42]; + +static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = +{ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x82, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x01, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x34, 0xc4, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0d, 0x31, 0xc1, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + } +}; + +static const char PROGMEM idle_minimal[IDLE_FRAMES][ANIM_SIZE] = +{ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, + 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, + 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, + 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, + 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, + 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, + 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, + 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, + 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, + 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, + 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, + 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, + 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, + 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, + 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x82, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x08, + 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x01, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, + 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, + 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, + 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, + 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, + 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x34, 0xc4, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, + 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x08, + 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, + 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, + 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, + 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, + 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0d, 0x31, 0xc1, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, + 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, + 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, + 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, + 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, + 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, + 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, +}; + +static const char PROGMEM prep[][ANIM_SIZE] = +{ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + } +}; + +static const char PROGMEM prep_minimal[][ANIM_SIZE] = +{ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, + 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, + 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, + 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, + 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, + 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, + 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + } +}; + +static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = +{ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x98, 0xc0, 0x88, 0x88, 0x8c, 0x9c, 0x1c, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x0f, 0x07, 0x03, 0x03, 0x61, 0xf0, 0xf8, 0xfc, 0x60, 0x01, 0x01, 0x01, 0x3c, 0x78, 0xf8, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + } +}; + +static const char PROGMEM tap_minimal[TAP_FRAMES][ANIM_SIZE] = +{ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, + 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, + 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, + 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, + 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, + 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, + 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x98, 0xc0, 0x88, 0x88, 0x8c, 0x9c, 0x1c, 0x1e, + 0x0e, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, + 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, + 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, + 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, + 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, + 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, + 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, + 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x0f, 0x07, 0x03, 0x03, 0x61, 0xf0, 0xf8, + 0xfc, 0x60, 0x01, 0x01, 0x01, 0x3c, 0x78, 0xf8, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + } +}; + +bool detect_key_down(void) +{ + // store the previous cycle's cache + for (uint8_t i = 0; i < KEYS_SIZE; ++i) + { + pressed_keys_prev[i].first = pressed_keys[i].first; + pressed_keys_prev[i].second = pressed_keys[i].second; + } + + // fill cache with currently pressed keys + pressed_keys_index = 0; + for (uint8_t x = 0; x < MATRIX_ROWS; x++) + { + for (uint8_t y = 0; y < MATRIX_COLS; y++) + { + // is this key is currently down? + if (((matrix_get_row(x) & (1 << y)) > 0)) + { + pressed_keys[pressed_keys_index].first = x+1; // adding 1 to the row/col so that we can use 0 as a null-check + pressed_keys[pressed_keys_index].second = y+1; + } + else + { + pressed_keys[pressed_keys_index].first = 0; + pressed_keys[pressed_keys_index].second = 0; + } + pressed_keys_index++; + } + } + + // check for a new key down compared to last cycle + for (uint8_t i = 0; i < KEYS_SIZE; ++i) + { + if (pressed_keys[i].first && pressed_keys[i].second && !pressed_keys_prev[i].first && !pressed_keys_prev[i].second) + { + return true; + } + } + return false; +} + +void eval_anim_state(void) +{ + key_down = detect_key_down(); + + switch (anim_state) + { + case Idle: + if (key_down) // Idle to Tap + { + anim_state = Tap; + } + break; + + case Prep: + if (key_down) // Prep to Tap + { + anim_state = Tap; + } + else if (timer_elapsed32(idle_timeout_timer) >= IDLE_TIMEOUT) // Prep to Idle + { + anim_state = Idle; + current_idle_frame = 0; + } + break; + + case Tap: + if (!key_down) // Tap to Prep + { + anim_state = Prep; + idle_timeout_timer = timer_read32(); + } + break; + + default: + break; + } +} + +void draw_bongo(bool minimal) +{ + eval_anim_state(); + + oled_set_cursor(0, 0); + + switch (anim_state) + { + case Idle: + if (minimal) + oled_write_raw_P(idle_minimal[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIM_SIZE); + else + oled_write_raw_P(idle[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIM_SIZE); + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) + { + current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES; + anim_timer = timer_read32(); + } + break; + + case Prep: + if (minimal) + oled_write_raw_P(prep_minimal[0], ANIM_SIZE); + else + oled_write_raw_P(prep[0], ANIM_SIZE); + break; + + case Tap: + if (minimal) + oled_write_raw_P(tap_minimal[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE); + else + oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE); + current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; + break; + + default: + break; + } + + if (!minimal) + { + // print wpm + oled_set_cursor(0, 0); + oled_write("WPM:", false); + oled_write(get_u8_str(get_current_wpm(),'0'), false); + } +} diff --git a/keyboards/vinhcatba/uncertainty/bongo.h b/keyboards/vinhcatba/uncertainty/bongo.h new file mode 100644 index 0000000000..d1cecbc619 --- /dev/null +++ b/keyboards/vinhcatba/uncertainty/bongo.h @@ -0,0 +1,6 @@ +// Copyright 2022 Parker Levin (@pedker) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +void draw_bongo(bool minimal); diff --git a/keyboards/vinhcatba/uncertainty/config.h b/keyboards/vinhcatba/uncertainty/config.h new file mode 100644 index 0000000000..288f1d81a9 --- /dev/null +++ b/keyboards/vinhcatba/uncertainty/config.h @@ -0,0 +1,30 @@ +// Copyright 2023 Vinh Le (@vinhcatba) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* WS2812 driver config specifically for STM32F401 */ +// DI pin = PB1, which is AF02, TIM3_CH4 (table 9 in datasheet) +#define RGBLIGHT_LED_MAP { 2, 3, 4, 5, 6, 0, 1, 7, 8, 9, 10, 11, 12, 13} // index 5 = CAPS; index 6 = NUM + +#define WS2812_PWM_DRIVER PWMD3 // TIM3 +#define WS2812_PWM_CHANNEL 4 // CH4 +#define WS2812_PWM_PAL_MODE 2 // AF2 + +#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 // DMA1 Stream 2 for TIM3_UP (table 28 in reference manual) +#define WS2812_DMA_CHANNEL 5 // DMA Channel 5 for TIM3_UP (table 28 in reference manual) + + +#define I2C1_CLOCK_SPEED 400000 +#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_16_9 + +/* eeprom i2c driver config */ +#define EXTERNAL_EEPROM_I2C_BASE_ADDRESS 0b10100000 +#define EXTERNAL_EEPROM_BYTE_COUNT 4096 +#define EXTERNAL_EEPROM_PAGE_SIZE 32 +#define EXTERNAL_EEPROM_WRITE_TIME 10 +//#define EEPROM_I2C_24LC32 + +/* OLED config */ +#define OLED_UPDATE_INTERVAL 100 +#define OLED_BRIGHTNESS 200 diff --git a/keyboards/vinhcatba/uncertainty/halconf.h b/keyboards/vinhcatba/uncertainty/halconf.h new file mode 100644 index 0000000000..0b105e29b8 --- /dev/null +++ b/keyboards/vinhcatba/uncertainty/halconf.h @@ -0,0 +1,11 @@ +// Copyright 2023 Vinh Le (@vinhcatba) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#undef HAL_USE_PWM +#define HAL_USE_PWM TRUE + +#undef HAL_USE_I2C +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/vinhcatba/uncertainty/info.json b/keyboards/vinhcatba/uncertainty/info.json new file mode 100644 index 0000000000..fc0e69ad19 --- /dev/null +++ b/keyboards/vinhcatba/uncertainty/info.json @@ -0,0 +1,170 @@ +{ + "manufacturer": "Vinh Le", + "keyboard_name": "Uncertainty", + "maintainer": "vinhcatba", + "development_board": "blackpill_f401", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "A13", "pin_b": "A14"} + ] + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "wpm": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true, + "oled": true + }, + "matrix_pins": { + "cols": ["A15", "B3", "B4", "B5", "B8", "B9", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14", "C13"], + "rows": ["B12", "B13", "B14", "B15", "A8", "A10"] + }, + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "brightness_steps": 10, + "layers": { + "enabled": true, + "override_rgb": true + }, + "led_count": 14, + "max_brightness": 255, + "sleep": true + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0x564C" + }, + "ws2812": { + "driver": "pwm", + "pin": "B1" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "0,0", "matrix": [0, 0], "x": 1.25, "y": 0}, + {"label": "0,1", "matrix": [0, 1], "x": 2.25, "y": 0}, + {"label": "0,2", "matrix": [0, 2], "x": 3.25, "y": 0}, + {"label": "0,3", "matrix": [0, 3], "x": 4.25, "y": 0}, + {"label": "0,4", "matrix": [0, 4], "x": 5.25, "y": 0}, + {"label": "0,5", "matrix": [0, 5], "x": 6.25, "y": 0}, + {"label": "0,6", "matrix": [0, 6], "x": 7.25, "y": 0}, + {"label": "0,7", "matrix": [0, 7], "x": 8.25, "y": 0}, + {"label": "0,8", "matrix": [0, 8], "x": 9.25, "y": 0}, + {"label": "0,9", "matrix": [0, 9], "x": 10.25, "y": 0}, + {"label": "0,10", "matrix": [0, 10], "x": 11.25, "y": 0}, + {"label": "0,11", "matrix": [0, 11], "x": 12.25, "y": 0}, + {"label": "0,12", "matrix": [0, 12], "x": 13.25, "y": 0}, + {"label": "0,13", "matrix": [0, 13], "x": 14.25, "y": 0}, + {"label": "0,14", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "0,15", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "0,16", "matrix": [0, 16], "x": 17.25, "y": 0}, + {"label": "0,17", "matrix": [0, 17], "x": 18.25, "y": 0}, + {"label": "1,17", "matrix": [1, 17], "x": 19.25, "y": 0}, + {"label": "1,0", "matrix": [1, 0], "x": 1.25, "y": 1}, + {"label": "1,1", "matrix": [1, 1], "x": 2.25, "y": 1}, + {"label": "1,2", "matrix": [1, 2], "x": 3.25, "y": 1}, + {"label": "1,3", "matrix": [1, 3], "x": 4.25, "y": 1}, + {"label": "1,4", "matrix": [1, 4], "x": 5.25, "y": 1}, + {"label": "1,5", "matrix": [1, 5], "x": 6.25, "y": 1}, + {"label": "1,6", "matrix": [1, 6], "x": 7.25, "y": 1}, + {"label": "1,7", "matrix": [1, 7], "x": 8.25, "y": 1}, + {"label": "1,8", "matrix": [1, 8], "x": 9.25, "y": 1}, + {"label": "1,9", "matrix": [1, 9], "x": 10.25, "y": 1}, + {"label": "1,10", "matrix": [1, 10], "x": 11.25, "y": 1}, + {"label": "1,11", "matrix": [1, 11], "x": 12.25, "y": 1}, + {"label": "1,12", "matrix": [1, 12], "x": 13.25, "y": 1}, + {"label": "1,13", "matrix": [1, 13], "x": 14.25, "y": 1, "w": 2}, + {"label": "1,14", "matrix": [1, 14], "x": 16.25, "y": 1}, + {"label": "1,15", "matrix": [1, 15], "x": 17.25, "y": 1}, + {"label": "1,16", "matrix": [1, 16], "x": 18.25, "y": 1}, + {"label": "3,17", "matrix": [3, 17], "x": 19.25, "y": 1}, + {"label": "2,0", "matrix": [2, 0], "x": 0, "y": 1.75}, + {"label": "2,1", "matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.5}, + {"label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "2,12", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "2,13", "matrix": [2, 13], "x": 13.75, "y": 2}, + {"label": "2,14", "matrix": [2, 14], "x": 14.75, "y": 2, "w": 1.5}, + {"label": "2,15", "matrix": [2, 15], "x": 16.25, "y": 2}, + {"label": "2,16", "matrix": [2, 16], "x": 17.25, "y": 2}, + {"label": "2,17", "matrix": [2, 17], "x": 18.25, "y": 2}, + {"label": "4,17", "matrix": [4, 17], "x": 19.25, "y": 2, "h": 2}, + {"label": "3,0", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "3,1", "matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.75}, + {"label": "3,2", "matrix": [3, 2], "x": 3, "y": 3}, + {"label": "3,3", "matrix": [3, 3], "x": 4, "y": 3}, + {"label": "3,4", "matrix": [3, 4], "x": 5, "y": 3}, + {"label": "3,5", "matrix": [3, 5], "x": 6, "y": 3}, + {"label": "3,6", "matrix": [3, 6], "x": 7, "y": 3}, + {"label": "3,7", "matrix": [3, 7], "x": 8, "y": 3}, + {"label": "3,8", "matrix": [3, 8], "x": 9, "y": 3}, + {"label": "3,9", "matrix": [3, 9], "x": 10, "y": 3}, + {"label": "3,10", "matrix": [3, 10], "x": 11, "y": 3}, + {"label": "3,11", "matrix": [3, 11], "x": 12, "y": 3}, + {"label": "3,12", "matrix": [3, 12], "x": 13, "y": 3}, + {"label": "3,13", "matrix": [3, 13], "x": 14, "y": 3, "w": 2.25}, + {"label": "3,14", "matrix": [3, 14], "x": 16.25, "y": 3}, + {"label": "3,15", "matrix": [3, 15], "x": 17.25, "y": 3}, + {"label": "3,16", "matrix": [3, 16], "x": 18.25, "y": 3}, + {"label": "4,0", "matrix": [4, 0], "x": 0, "y": 4}, + {"label": "4,1", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 2.25}, + {"label": "4,2", "matrix": [4, 2], "x": 3.5, "y": 4}, + {"label": "4,3", "matrix": [4, 3], "x": 4.5, "y": 4}, + {"label": "4,4", "matrix": [4, 4], "x": 5.5, "y": 4}, + {"label": "4,5", "matrix": [4, 5], "x": 6.5, "y": 4}, + {"label": "4,6", "matrix": [4, 6], "x": 7.5, "y": 4}, + {"label": "4,7", "matrix": [4, 7], "x": 8.5, "y": 4}, + {"label": "4,8", "matrix": [4, 8], "x": 9.5, "y": 4}, + {"label": "4,9", "matrix": [4, 9], "x": 10.5, "y": 4}, + {"label": "4,10", "matrix": [4, 10], "x": 11.5, "y": 4}, + {"label": "4,11", "matrix": [4, 11], "x": 12.5, "y": 4}, + {"label": "4,12", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.75}, + {"label": "4,13", "matrix": [4, 13], "x": 15.25, "y": 4}, + {"label": "4,14", "matrix": [4, 14], "x": 16.25, "y": 4}, + {"label": "4,15", "matrix": [4, 15], "x": 17.25, "y": 4}, + {"label": "4,16", "matrix": [4, 16], "x": 18.25, "y": 4}, + {"label": "5,17", "matrix": [5, 17], "x": 19.25, "y": 4, "h": 2}, + {"label": "5,0", "matrix": [5, 0], "x": 0, "y": 5}, + {"label": "5,1", "matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"label": "5,2", "matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"label": "5,3", "matrix": [5, 3], "x": 3.75, "y": 5, "w": 1.25}, + {"label": "5,6", "matrix": [5, 6], "x": 5, "y": 5, "w": 6.25}, + {"label": "5,7", "matrix": [5, 7], "x": 11.25, "y": 5}, + {"label": "5,10", "matrix": [5, 10], "x": 12.25, "y": 5}, + {"label": "5,11", "matrix": [5, 11], "x": 13.25, "y": 5}, + {"label": "5,12", "matrix": [5, 12], "x": 14.25, "y": 5}, + {"label": "5,13", "matrix": [5, 13], "x": 15.25, "y": 5}, + {"label": "5,14", "matrix": [5, 14], "x": 16.25, "y": 5}, + {"label": "5,15", "matrix": [5, 15], "x": 17.25, "y": 5}, + {"label": "5,16", "matrix": [5, 16], "x": 18.25, "y": 5} + ] + } + } +} diff --git a/keyboards/vinhcatba/uncertainty/keymaps/default/keymap.c b/keyboards/vinhcatba/uncertainty/keymaps/default/keymap.c new file mode 100644 index 0000000000..910453e76d --- /dev/null +++ b/keyboards/vinhcatba/uncertainty/keymaps/default/keymap.c @@ -0,0 +1,89 @@ +// Copyright 2023 Vinh Le (@vinhcatba) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* 0 + * ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + * │ Esc │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │PrtScn│ Del │ Home │ End │ PgUp │ PgDn │ + * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┴──────┼──────┼──────┼──────┼──────┤ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Bksp │ # Lk │ / │ * │ - │ + * ┌──────┼──────┴───┬──┴───┬──┴───┬──┴───┬──┴───┬──┴───┬──┴───┬──┴───┬──┴───┬──┴───┬──┴───┬──┴───┬──┴───┬─────────┼──────┼──────┼──────┼──────┤ + * │ Mute │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ 7 │ 8 │ 9 │ │ + * ├──────┼──────────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─────────┼──────┼──────┼──────┤ + | + * │ Null │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ 4 │ 5 │ 6 │ | + * ├──────┼────────────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴───────┬──────┼──────┤──────┼──────┼──────┤ + * │ Null │ Shft │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shft │ Up │ 1 │ 2 │ 3 │ │ + * ├──────┼───────┬──────┴┬─────┴─┬────┴──────┴──────┴──────┴──────┴──────┴─────┬┴─────┬┴─────┬┴─────┬──────┼──────┼──────┼──────┼──────┤ Entr | + * │ Null │ Ctrl │ Gui │ Alt │ Space │ Alt │ Fn │ Ctrl │ Left │ Down │ Right│ 0 │ . │ │ + * └──────┴───────┴───────┴───────┴─────────────────────────────────────────────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘ + */ + [0] = LAYOUT( + KC_ESC, 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_PSCR, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, + KC_GRV, 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_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_MUTE, 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_P7, KC_P8, KC_P9, KC_PPLS, + KC_CALC, 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_ENT, KC_P4, KC_P5, KC_P6, + C(KC_V), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + C(KC_C), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + [1] = LAYOUT( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS , KC_SCRL, _______, _______, EE_CLR , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + OLED_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, _______, _______, _______, _______ , _______, _______, _______,RGB_RMOD, RGB_VAD, RGB_MOD, _______, _______ + ) +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) } +}; +#endif // endif ENCODER_MAP_ENABLE + +#ifdef RGBLIGHT_ENABLE +# define HSV_PASTEL_BLUE 150, 155, 51 + +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_PASTEL_BLUE} // Light 1 LED, starting with LED 0 +); + +const rgblight_segment_t PROGMEM my_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {1, 1, HSV_PASTEL_BLUE} // Light 1 LED, starting with LED 1 +); + +const rgblight_segment_t PROGMEM indicators_off_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 2, HSV_OFF} // Turn off 2 LEDs, starting with LED 0 +); + +// Now define the array of layers. Later layers take precedence +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + indicators_off_layer, + my_capslock_layer, + my_numlock_layer +); + +bool led_update_user(led_t led_state) { + rgblight_set_layer_state(1, led_state.caps_lock); + rgblight_set_layer_state(2, led_state.num_lock); + return true; +} + +void keyboard_post_init_user(void) { + // debug_enable=true; + // debug_matrix=true; + + // Enable the LED layers + rgblight_layers = my_rgb_layers; + rgblight_set_layer_state(0, 1); + rgblight_set_effect_range(2, 12); + rgblight_enable(); +} +#endif // endif RGBLIGHT_ENABLE + + diff --git a/keyboards/vinhcatba/uncertainty/keymaps/default/rules.mk b/keyboards/vinhcatba/uncertainty/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/vinhcatba/uncertainty/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/vinhcatba/uncertainty/keymaps/via/keymap.c b/keyboards/vinhcatba/uncertainty/keymaps/via/keymap.c new file mode 100644 index 0000000000..2427393be7 --- /dev/null +++ b/keyboards/vinhcatba/uncertainty/keymaps/via/keymap.c @@ -0,0 +1,88 @@ +// Copyright 2023 Vinh Le (@vinhcatba) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* 0 + * ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ + * │ Esc │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │PrtScn│ Del │ Home │ End │ PgUp │ PgDn │ + * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┴──────┼──────┼──────┼──────┼──────┤ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Bksp │ # Lk │ / │ * │ - │ + * ┌──────┼──────┴───┬──┴───┬──┴───┬──┴───┬──┴───┬──┴───┬──┴───┬──┴───┬──┴───┬──┴───┬──┴───┬──┴───┬──┴───┬─────────┼──────┼──────┼──────┼──────┤ + * │ Mute │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ 7 │ 8 │ 9 │ │ + * ├──────┼──────────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─────────┼──────┼──────┼──────┤ + | + * │ Null │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ 4 │ 5 │ 6 │ | + * ├──────┼────────────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴─┬────┴───────┬──────┼──────┤──────┼──────┼──────┤ + * │ Null │ Shft │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shft │ Up │ 1 │ 2 │ 3 │ │ + * ├──────┼───────┬──────┴┬─────┴─┬────┴──────┴──────┴──────┴──────┴──────┴─────┬┴─────┬┴─────┬┴─────┬──────┼──────┼──────┼──────┼──────┤ Entr | + * │ Null │ Ctrl │ Gui │ Alt │ Space │ Alt │ Fn │ Ctrl │ Left │ Down │ Right│ 0 │ . │ │ + * └──────┴───────┴───────┴───────┴─────────────────────────────────────────────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘ + */ + [0] = LAYOUT( + KC_ESC, 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_PSCR, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, + KC_GRV, 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_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_MUTE, 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_P7, KC_P8, KC_P9, KC_PPLS, + KC_CALC, 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_ENT, KC_P4, KC_P5, KC_P6, + C(KC_V), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + C(KC_C), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + [1] = LAYOUT( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS , KC_SCRL, _______, _______, EE_CLR , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + OLED_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, _______, _______, _______, _______ , _______, _______, _______,RGB_RMOD, RGB_VAD, RGB_MOD, _______, _______ + ) +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) } +}; +#endif // endif ENCODER_MAP_ENABLE + +#ifdef RGBLIGHT_ENABLE +#define HSV_PASTEL_BLUE 150, 155, 51 + +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_PASTEL_BLUE} // Light 1 LED, starting with LED 0 +); + +const rgblight_segment_t PROGMEM my_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {1, 1, HSV_PASTEL_BLUE} // Light 1 LED, starting with LED 1 +); + +const rgblight_segment_t PROGMEM indicators_off_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 2, HSV_OFF} // Turn off 2 LEDs, starting with LED 0 +); + +// Now define the array of layers. Later layers take precedence +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + indicators_off_layer, + my_capslock_layer, + my_numlock_layer +); + +bool led_update_user(led_t led_state) { + rgblight_set_layer_state(1, led_state.caps_lock); + rgblight_set_layer_state(2, led_state.num_lock); + return true; +} + +void keyboard_post_init_user(void) { + // debug_enable=true; + // debug_matrix=true; + + // Enable the LED layers + rgblight_layers = my_rgb_layers; + rgblight_set_layer_state(0, 1); + rgblight_set_effect_range(2, 12); + rgblight_enable(); +} +#endif // endif RGBLIGHT_ENABLE + diff --git a/keyboards/vinhcatba/uncertainty/keymaps/via/rules.mk b/keyboards/vinhcatba/uncertainty/keymaps/via/rules.mk new file mode 100644 index 0000000000..f1adcab005 --- /dev/null +++ b/keyboards/vinhcatba/uncertainty/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/vinhcatba/uncertainty/mcuconf.h b/keyboards/vinhcatba/uncertainty/mcuconf.h new file mode 100644 index 0000000000..313f8dd06a --- /dev/null +++ b/keyboards/vinhcatba/uncertainty/mcuconf.h @@ -0,0 +1,10 @@ +// Copyright 2023 Vinh Le (@vinhcatba) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once +#include_next + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/vinhcatba/uncertainty/readme.md b/keyboards/vinhcatba/uncertainty/readme.md new file mode 100644 index 0000000000..ead5d17c54 --- /dev/null +++ b/keyboards/vinhcatba/uncertainty/readme.md @@ -0,0 +1,26 @@ +# uncertainty + +![uncertainty](https://i.imgur.com/IKrn37Bh.jpeg) + +*This is an open source keyboard with exposed-component design. It has 96% (1800) layout with extra 3 keys on the left for custom macro (default are Copy, Paste and open Calculator). It features OLED screen, RGB Backlight, Encoder and VIA-supported. Powered by a STM32F401 Blackpill.* + +* Keyboard Maintainer: [Vinh Le](https://github.com/vinhcatba) +* Hardware Supported: The PCB is [here](https://github.com/vinhcatba/uncertainty), controller supported: STM32F401 Blackpill, SSD1306 128x32 OLED, WS2812B RGB, External EEPROM, Rotary Encoder. +* Hardware Availability: [Open-source hardware](https://github.com/vinhcatba/uncertainty) + +Make example for this keyboard (after setting up your build environment): + + make vinhcatba/uncertainty:default + +Flashing example for this keyboard: + + make vinhcatba/uncertainty:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard. This will also clear EEPROM, so it is a good first step if the keyboard is misbehaving. +* **Physical reset button**: On Blackpill board: Hold `NRST` and `BOOT0` -> Release `NRST` first and **quickly** release `BOOT0` right after. +* **Keycode in layout**: `QK_BOOT` is on the second layer, replacing Escape (top left key). diff --git a/keyboards/vinhcatba/uncertainty/rules.mk b/keyboards/vinhcatba/uncertainty/rules.mk new file mode 100644 index 0000000000..6255f65294 --- /dev/null +++ b/keyboards/vinhcatba/uncertainty/rules.mk @@ -0,0 +1,3 @@ +SRC += bongo.c +# using external i2c eeprom +EEPROM_DRIVER = i2c diff --git a/keyboards/vinhcatba/uncertainty/uncertainty.c b/keyboards/vinhcatba/uncertainty/uncertainty.c new file mode 100644 index 0000000000..19e5a5cfd5 --- /dev/null +++ b/keyboards/vinhcatba/uncertainty/uncertainty.c @@ -0,0 +1,32 @@ +// Copyright 2023 Vinh Le (@vinhcatba) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +#include "quantum.h" + +#ifdef OLED_ENABLE +#include "bongo.h" +// Used to draw on to the oled screen +bool oled_minimal = true; +bool oled_task_kb(void) { + if(!oled_task_user()) { return false; } + draw_bongo(oled_minimal); + return false; +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + + switch (keycode) { + case OLED_TOG: + if (record->event.pressed) { + oled_minimal = !oled_minimal; + } + return false; + default: + return true; + } +} +#endif // endif OLED_ENABLE diff --git a/keyboards/vinhcatba/uncertainty/uncertainty.h b/keyboards/vinhcatba/uncertainty/uncertainty.h new file mode 100644 index 0000000000..91a3500b08 --- /dev/null +++ b/keyboards/vinhcatba/uncertainty/uncertainty.h @@ -0,0 +1,10 @@ +// Copyright 2023 Vinh Le (@vinhcatba) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once +#include "quantum.h" + +enum my_keycodes { + OLED_TOG = QK_KB +}; + From ad14a27cd3607c87c95036dcb77e02107fccb611 Mon Sep 17 00:00:00 2001 From: Cloud Chagnon Date: Mon, 9 Oct 2023 01:06:00 -0600 Subject: [PATCH 253/496] [Keyboard] Split-Cloud Handwired (#21327) * Added new handwired, the Split-Cloud * Minor changes to make clang-format happy * Alligned files with project standard. Trimmed midi out of the default layout, modified the readme, and removed unnecessary files. * Simplified default keymap further, changes to info.json * Moved image to imgur, simplified, and removed the unneeded rules.mk file * Update keyboards/handwired/split_cloud/readme.md Changed image in readme to Huge Thumbnail instead of Original. * Removed unneeded tri layer custom keycodes Now using the built-in functionality! * Update keyboards/handwired/split_cloud/readme.md Accidentally reverted this when making other changes --- keyboards/handwired/split_cloud/config.h | 42 ++++ keyboards/handwired/split_cloud/info.json | 118 +++++++++ .../split_cloud/keymaps/default/config.h | 24 ++ .../split_cloud/keymaps/default/keymap.c | 226 ++++++++++++++++++ .../split_cloud/keymaps/default/rules.mk | 1 + keyboards/handwired/split_cloud/readme.md | 22 ++ keyboards/handwired/split_cloud/rules.mk | 0 7 files changed, 433 insertions(+) create mode 100644 keyboards/handwired/split_cloud/config.h create mode 100644 keyboards/handwired/split_cloud/info.json create mode 100644 keyboards/handwired/split_cloud/keymaps/default/config.h create mode 100644 keyboards/handwired/split_cloud/keymaps/default/keymap.c create mode 100644 keyboards/handwired/split_cloud/keymaps/default/rules.mk create mode 100644 keyboards/handwired/split_cloud/readme.md create mode 100644 keyboards/handwired/split_cloud/rules.mk diff --git a/keyboards/handwired/split_cloud/config.h b/keyboards/handwired/split_cloud/config.h new file mode 100644 index 0000000000..faa2750caf --- /dev/null +++ b/keyboards/handwired/split_cloud/config.h @@ -0,0 +1,42 @@ +/* +Copyright 2023 Cloud Chagnon + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +/* left/right via compilation flag */ +#define EE_HANDS + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronztize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +// #define NO_ACTION_LAYER +// #define NO_ACTION_TAPPING +// #define NO_ACTION_ONESHOT diff --git a/keyboards/handwired/split_cloud/info.json b/keyboards/handwired/split_cloud/info.json new file mode 100644 index 0000000000..6d28728f69 --- /dev/null +++ b/keyboards/handwired/split_cloud/info.json @@ -0,0 +1,118 @@ +{ + "keyboard_name": "Split-Cloud", + "manufacturer": "coolsa", + "maintainer": "Cloud Chagnon", + "url": "https://github.com/coolsa/cloud_keyboard", + "usb": { + "vid": "0xCC43", + "pid": "0x0001", + "device_version": "0.0.1", + "force_nkro": true + }, + "diode_direction": "ROW2COL", + "matrix_pins": { + "cols": ["B6", "B2", "B3", "B1", "F7", "F6"], + "rows": ["C6", "D7", "E6", "B4", "B5"] + }, + "bootmagic": { + "enabled": true + }, + "features": { + "extrakey": true, + "nkro": true + }, + "split": { + "enabled": true, + "soft_serial_pin": "D3", + "matrix_pins": { + "right": { + "cols": ["D4", "C6", "D7", "E6", "B4", "B5"], + "rows": ["F7", "B1", "B3", "B2", "B6"] + } + }, + "bootmagic": { + "matrix": [5, 5] + } + }, + "stenography": { + "enabled": true, + "protocol": "all" + } + "development_board": "promicro", + "community_layouts": ["ortho_5x12"], + "layouts": { + "LAYOUT_ortho_5x12": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [5, 5], "x": 7, "y": 0}, + {"matrix": [5, 4], "x": 8, "y": 0}, + {"matrix": [5, 3], "x": 9, "y": 0}, + {"matrix": [5, 2], "x": 10, "y": 0}, + {"matrix": [5, 1], "x": 11, "y": 0}, + {"matrix": [5, 0], "x": 12, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + + {"matrix": [6, 5], "x": 7, "y": 1}, + {"matrix": [6, 4], "x": 8, "y": 1}, + {"matrix": [6, 3], "x": 9, "y": 1}, + {"matrix": [6, 2], "x": 10, "y": 1}, + {"matrix": [6, 1], "x": 11, "y": 1}, + {"matrix": [6, 0], "x": 12, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + + {"matrix": [7, 5], "x": 7, "y": 2}, + {"matrix": [7, 4], "x": 8, "y": 2}, + {"matrix": [7, 3], "x": 9, "y": 2}, + {"matrix": [7, 2], "x": 10, "y": 2}, + {"matrix": [7, 1], "x": 11, "y": 2}, + {"matrix": [7, 0], "x": 12, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + + {"matrix": [8, 5], "x": 7, "y": 3}, + {"matrix": [8, 4], "x": 8, "y": 3}, + {"matrix": [8, 3], "x": 9, "y": 3}, + {"matrix": [8, 2], "x": 10, "y": 3}, + {"matrix": [8, 1], "x": 11, "y": 3}, + {"matrix": [8, 0], "x": 12, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4}, + {"matrix": [4, 4], "x": 4, "y": 4}, + {"matrix": [4, 5], "x": 5, "y": 4}, + + {"matrix": [9, 5], "x": 7, "y": 4}, + {"matrix": [9, 4], "x": 8, "y": 4}, + {"matrix": [9, 3], "x": 9, "y": 4}, + {"matrix": [9, 2], "x": 10, "y": 4}, + {"matrix": [9, 1], "x": 11, "y": 4}, + {"matrix": [9, 0], "x": 12, "y": 4} + ] + } + } +} diff --git a/keyboards/handwired/split_cloud/keymaps/default/config.h b/keyboards/handwired/split_cloud/keymaps/default/config.h new file mode 100644 index 0000000000..7a6ba5e656 --- /dev/null +++ b/keyboards/handwired/split_cloud/keymaps/default/config.h @@ -0,0 +1,24 @@ +/* +Copyright 2023 Cloud Chagnon + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +/* The defaults are different for the Tri Layers */ +#define TRI_LAYER_LOWER_LAYER 3 +#define TRI_LAYER_UPPER_LAYER 4 +#define TRI_LAYER_ADJUST_LAYER 6 + diff --git a/keyboards/handwired/split_cloud/keymaps/default/keymap.c b/keyboards/handwired/split_cloud/keymaps/default/keymap.c new file mode 100644 index 0000000000..f94a112c07 --- /dev/null +++ b/keyboards/handwired/split_cloud/keymaps/default/keymap.c @@ -0,0 +1,226 @@ +/* Copyright 2023 Cloud Chagnon + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +#include "keymap_steno.h" + +// clang-format off + +enum layer_names { + _QWERTY, + _COLEMAK, + _DVORAK, + _LOWER, + _RAISE, + _PLOVER, + _ADJUST +}; + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + PLOVER, + EXT_PLV +}; + +#define ST_BOLT QK_STENO_BOLT +#define ST_GEM QK_STENO_GEMINI + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt |RCtrl |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_QWERTY] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL , + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + KC_LCTL, KC_LGUI, KC_LALT, KC_RCTL, TL_LOWR, KC_SPC, KC_SPC, TL_UPPR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Colemak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt |RCtrl |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_COLEMAK] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL , + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + KC_LCTL, KC_LGUI, KC_LALT, KC_RCTL, TL_LOWR, KC_SPC, KC_SPC, TL_UPPR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Dvorak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | " | , | . | P | Y | F | G | C | R | L | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt |RCtrl |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_DVORAK] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL, + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_RCTL, TL_LOWR, KC_SPC, KC_SPC, TL_UPPR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT_ortho_5x12( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL , + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | Pg Up| Pg Dn| | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL , + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | FN | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | A | O | | | E | U | PWR | RES1 | RES2 | + * `-----------------------------------------------------------------------------------' + */ + + [_PLOVER] = LAYOUT_ortho_5x12( + STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC , + STN_FN, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR , + XXXXXXX, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR , + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + EXT_PLV, XXXXXXX, XXXXXXX, XXXXXXX, STN_A, STN_O, STN_E, STN_U, XXXXXXX, STN_PWR, STN_RE1, STN_RE2 + ), + + /* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Reset| Debug| | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | |Aud cy|Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | |TXBOLT|GEM RP| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_ADJUST] = LAYOUT_ortho_5x12( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 , + _______, QK_BOOT, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , + _______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, PLOVER, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ST_BOLT, ST_GEM , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; + +// clang-format on + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + case PLOVER: + if (!record->event.pressed) { + layer_on(_PLOVER); + } + return false; + case EXT_PLV: + if (record->event.pressed) { + layer_off(_PLOVER); + } + return false; + } + return true; +}; diff --git a/keyboards/handwired/split_cloud/keymaps/default/rules.mk b/keyboards/handwired/split_cloud/keymaps/default/rules.mk new file mode 100644 index 0000000000..7c9bf212a6 --- /dev/null +++ b/keyboards/handwired/split_cloud/keymaps/default/rules.mk @@ -0,0 +1 @@ +TRI_LAYER_ENABLE = yes diff --git a/keyboards/handwired/split_cloud/readme.md b/keyboards/handwired/split_cloud/readme.md new file mode 100644 index 0000000000..1d27317275 --- /dev/null +++ b/keyboards/handwired/split_cloud/readme.md @@ -0,0 +1,22 @@ +# Split-Cloud handwired keyboard + +The Split-Cloud is a split ortholinear 5x12 layout, forked from the Preonic and Nyquist keyboard models. The default layout adds extra options for some added game compatibility, two control keys for QEmu, and adds a steno layer based on the Planck example. + +![Split-Cloud](https://i.imgur.com/QoHAFeXh.jpg) + +* Keyboard Maintainer: [Cloud Chagnon](https://github.com/coolsa) +* Hardware Supported: Pro Micro +* Hardware Availability: [Repository](https://github.com/coolsa/split-cloud) + +Make example for this keyboard: + + make handwired/split_cloud:default + +This keyboard uses [Handedness by EEPROM](https://docs.qmk.fm/#/feature_split_keyboard?id=handedness-by-eeprom) as default, and must be configured once on each side. The make commands are: + + make handwired/split_cloud:default:avrdude-split-left + make handwired/split_cloud:default:avrdude-split-right + +[QMK Toolbox](http://qmk.fm/toolbox) can also be used to set EEPROM handedness. Place the controller in bootloader mode and select menu option Tools -> EEPROM -> Set Left/Right Hand + +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). diff --git a/keyboards/handwired/split_cloud/rules.mk b/keyboards/handwired/split_cloud/rules.mk new file mode 100644 index 0000000000..e69de29bb2 From 6e6fff866e1179b69f78602e5a791fb1a9e029f4 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon, 9 Oct 2023 01:37:21 -0700 Subject: [PATCH 254/496] Fix typo in `docs/feature_tri_layer.md` (#22232) `Stes` -> `Sets` --- docs/feature_tri_layer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/feature_tri_layer.md b/docs/feature_tri_layer.md index aa6c87719c..ade0040cc7 100644 --- a/docs/feature_tri_layer.md +++ b/docs/feature_tri_layer.md @@ -40,7 +40,7 @@ Eg, if you wanted to set the "Adjust" layer to be layer 5, you'd add this to you | `set_tri_layer_lower_layer(layer)` | Changes the "lower" layer*. | | `set_tri_layer_upper_layer(layer)` | Changes the "upper" layer*. | | `set_tri_layer_adjust_layer(layer)` | Changes the "adjust" layer*. | -| `set_tri_layer_layers(lower, upper, adjust)` | Stes the "lower", "upper" and "adjust" layers*. | +| `set_tri_layer_layers(lower, upper, adjust)` | Sets the "lower", "upper" and "adjust" layers*. | | `get_tri_layer_lower_layer()` | Gets the current "lower" layer. | | `get_tri_layer_upper_layer()` | Gets the current "upper" layer. | | `get_tri_layer_adjust_layer()` | Gets the current "adjust" layer. | From fa1c1cbbeeb6d7af76eaeb6b282daf6c93983d13 Mon Sep 17 00:00:00 2001 From: Dominik Date: Mon, 9 Oct 2023 18:41:00 +0200 Subject: [PATCH 255/496] avrdude: Version 7.2 changes the text output (#22235) from "could not find USB device with" to "cannot find USB device with" This should fix issue #22234 Co-authored-by: Dominik Loidolt --- platforms/avr/flash.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platforms/avr/flash.mk b/platforms/avr/flash.mk index 9c2ab72410..51731f0aa8 100644 --- a/platforms/avr/flash.mk +++ b/platforms/avr/flash.mk @@ -130,10 +130,10 @@ avrdude-split-right: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware $(call EXEC_AVRDUDE,eeprom-righthand.eep) define EXEC_USBASP - if $(AVRDUDE_PROGRAMMER) -p $(AVRDUDE_MCU) -c usbasp 2>&1 | grep -q "could not find USB device with"; then \ + if $(AVRDUDE_PROGRAMMER) -p $(AVRDUDE_MCU) -c usbasp 2>&1 | grep -q "\(could not\|cannot\) find USB device with"; then \ printf "$(MSG_BOOTLOADER_NOT_FOUND_QUICK_RETRY)" ;\ sleep $(BOOTLOADER_RETRY_TIME) ;\ - until $(AVRDUDE_PROGRAMMER) -p $(AVRDUDE_MCU) -c usbasp 2>&1 | (! grep -q "could not find USB device with"); do\ + until $(AVRDUDE_PROGRAMMER) -p $(AVRDUDE_MCU) -c usbasp 2>&1 | (! grep -q "\(could not\|cannot\) find USB device with"); do\ printf "." ;\ sleep $(BOOTLOADER_RETRY_TIME) ;\ done ;\ From 3665ae04410c064a7ab8e9f8aa5f58b7105e16b8 Mon Sep 17 00:00:00 2001 From: HorrorTroll Date: Tue, 10 Oct 2023 02:50:33 +0700 Subject: [PATCH 256/496] [Keyboard] HorrorTroll Nyx (#21143) * Added support keyboard Nyx * Resolved zvarc suggested and lint error * Delete FORCE_NKRO due to problem with BIOS on mainboard * Resolved dunk2k suggested and limit more brightness, disable some RGB Effect * Resolved drashna suggested * Delete flower blooming effect and move to rev1 folder --- keyboards/horrortroll/nyx/rev1/config.h | 23 ++ keyboards/horrortroll/nyx/rev1/info.json | 222 ++++++++++++++++++ .../nyx/rev1/keymaps/default/keymap.c | 85 +++++++ .../horrortroll/nyx/rev1/keymaps/via/keymap.c | 85 +++++++ .../horrortroll/nyx/rev1/keymaps/via/rules.mk | 1 + .../nyx/rev1/lib/startup_swirl_anim.h | 133 +++++++++++ keyboards/horrortroll/nyx/rev1/nyx.c | 89 +++++++ keyboards/horrortroll/nyx/rev1/readme.md | 27 +++ .../horrortroll/nyx/rev1/rgb_matrix_kb.inc | 7 + keyboards/horrortroll/nyx/rev1/rules.mk | 1 + keyboards/horrortroll/readme.md | 19 +- 11 files changed, 683 insertions(+), 9 deletions(-) create mode 100644 keyboards/horrortroll/nyx/rev1/config.h create mode 100644 keyboards/horrortroll/nyx/rev1/info.json create mode 100644 keyboards/horrortroll/nyx/rev1/keymaps/default/keymap.c create mode 100644 keyboards/horrortroll/nyx/rev1/keymaps/via/keymap.c create mode 100644 keyboards/horrortroll/nyx/rev1/keymaps/via/rules.mk create mode 100644 keyboards/horrortroll/nyx/rev1/lib/startup_swirl_anim.h create mode 100644 keyboards/horrortroll/nyx/rev1/nyx.c create mode 100644 keyboards/horrortroll/nyx/rev1/readme.md create mode 100644 keyboards/horrortroll/nyx/rev1/rgb_matrix_kb.inc create mode 100644 keyboards/horrortroll/nyx/rev1/rules.mk diff --git a/keyboards/horrortroll/nyx/rev1/config.h b/keyboards/horrortroll/nyx/rev1/config.h new file mode 100644 index 0000000000..9d891b2ff4 --- /dev/null +++ b/keyboards/horrortroll/nyx/rev1/config.h @@ -0,0 +1,23 @@ +/* Copyright 2023 HorrorTroll + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* RGB Matrix config */ +#define RGB_MATRIX_LED_COUNT 67 +#define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/horrortroll/nyx/rev1/info.json b/keyboards/horrortroll/nyx/rev1/info.json new file mode 100644 index 0000000000..f3b859de0a --- /dev/null +++ b/keyboards/horrortroll/nyx/rev1/info.json @@ -0,0 +1,222 @@ +{ + "keyboard_name": "Nyx", + "manufacturer": "HorrorTroll", + "maintainer": "HorrorTroll", + "usb": { + "vid": "0x7516", + "pid": "0x5005", + "device_version": "0.0.1" + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP3", "GP23", "GP2", "GP1", "GP0", "GP4", "GP17", "GP11", "GP10", "GP19", "GP9", "GP8", "GP13", "GP15", "GP14"], + "rows": ["GP24", "GP25", "GP18", "GP12", "GP16"] + }, + "processor": "RP2040", + "bootloader": "rp2040", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "rgb_matrix": true + }, + "ws2812": { + "driver": "vendor", + "pin": "GP22" + }, + "rgb_matrix": { + "driver": "ws2812", + "max_brightness": 75, + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_val": true, + "band_pinwheel_val": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "typing_heatmap": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 119, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 134, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 149, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 164, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 179, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 205, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 8}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 175, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 200, "y": 32, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 209, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 189, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 168, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 153, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 138, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 123, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 108, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 93, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 78, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 63, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 95, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 151, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 170, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 194, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 209, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4} + ] + }, + "community_layouts": ["65_ansi_blocker"], + "layouts": { + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "w": 2, "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "w": 1.5, "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1}, + {"matrix": [1, 14], "x": 15, "y": 1}, + + {"matrix": [2, 0], "w": 1.75, "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2}, + {"matrix": [2, 14], "x": 15, "y": 2}, + + {"matrix": [3, 0], "w": 2.25, "x": 0, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "w": 1.25, "x": 0, "y": 4}, + {"matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4}, + {"matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4}, + {"matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4}, + {"matrix": [4, 9], "w": 1.25, "x": 10, "y": 4}, + {"matrix": [4, 10], "w": 1.25, "x": 11.25, "y": 4}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/horrortroll/nyx/rev1/keymaps/default/keymap.c b/keyboards/horrortroll/nyx/rev1/keymaps/default/keymap.c new file mode 100644 index 0000000000..d678f19b46 --- /dev/null +++ b/keyboards/horrortroll/nyx/rev1/keymaps/default/keymap.c @@ -0,0 +1,85 @@ +/* Copyright 2023 HorrorTroll + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. + +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│Ins│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + │ Tab │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] │ \ │Del│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + │ Caps │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ Enter │PgU│ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + │ LShift │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RSft │ ↑ │PgD│ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + │LCrl│GUI │LAlt│ Space │ Fn │RCrl│ │ ← │ ↓ │ → │ + └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + │ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │ │ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ | │ │ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ │ │ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + │ LShift │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ RSft │ │ │ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + │ │ │ │ │ │ │ │ │ │ │ + └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ + [_BASE] = LAYOUT_65_ansi_blocker( + KC_ESC, 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_BSPC, KC_INS, + 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_DEL, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + +/* + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │Tog│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + │Reset│ │MsU│ │ │ │ │ │ │Sad│Sai│Spd│Spi│ │Mod│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + │ │MsL│MsD│MsR│ │ │ │ │ │ │ │ │ │ │ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + │ │ │ │Cal│ │ │NKO│ │VoD│VoU│Mut│ │Vai│ │ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + │ │ │ │ │ │ │ │Hud│Vad│Hui│ + └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ + [_FN] = LAYOUT_65_ansi_blocker( + 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, _______, RGB_TOG, + QK_BOOT, _______, KC_MS_U, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, RGB_SPD, RGB_SPI, _______, RGB_MOD, + _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_CALC, _______, _______, NK_TOGG, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, RGB_VAI, _______, + _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_VAD, RGB_HUI + ) +}; diff --git a/keyboards/horrortroll/nyx/rev1/keymaps/via/keymap.c b/keyboards/horrortroll/nyx/rev1/keymaps/via/keymap.c new file mode 100644 index 0000000000..d678f19b46 --- /dev/null +++ b/keyboards/horrortroll/nyx/rev1/keymaps/via/keymap.c @@ -0,0 +1,85 @@ +/* Copyright 2023 HorrorTroll + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. + +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│Ins│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + │ Tab │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] │ \ │Del│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + │ Caps │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ Enter │PgU│ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + │ LShift │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RSft │ ↑ │PgD│ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + │LCrl│GUI │LAlt│ Space │ Fn │RCrl│ │ ← │ ↓ │ → │ + └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + │ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │ │ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ | │ │ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ │ │ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + │ LShift │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ RSft │ │ │ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + │ │ │ │ │ │ │ │ │ │ │ + └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ + [_BASE] = LAYOUT_65_ansi_blocker( + KC_ESC, 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_BSPC, KC_INS, + 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_DEL, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + +/* + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │Tog│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + │Reset│ │MsU│ │ │ │ │ │ │Sad│Sai│Spd│Spi│ │Mod│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + │ │MsL│MsD│MsR│ │ │ │ │ │ │ │ │ │ │ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + │ │ │ │Cal│ │ │NKO│ │VoD│VoU│Mut│ │Vai│ │ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + │ │ │ │ │ │ │ │Hud│Vad│Hui│ + └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ + [_FN] = LAYOUT_65_ansi_blocker( + 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, _______, RGB_TOG, + QK_BOOT, _______, KC_MS_U, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, RGB_SPD, RGB_SPI, _______, RGB_MOD, + _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_CALC, _______, _______, NK_TOGG, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, RGB_VAI, _______, + _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_VAD, RGB_HUI + ) +}; diff --git a/keyboards/horrortroll/nyx/rev1/keymaps/via/rules.mk b/keyboards/horrortroll/nyx/rev1/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/horrortroll/nyx/rev1/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/horrortroll/nyx/rev1/lib/startup_swirl_anim.h b/keyboards/horrortroll/nyx/rev1/lib/startup_swirl_anim.h new file mode 100644 index 0000000000..0cd0a54a8b --- /dev/null +++ b/keyboards/horrortroll/nyx/rev1/lib/startup_swirl_anim.h @@ -0,0 +1,133 @@ +/* Copyright 2022 Jpe230 + * Copyright 2023 HorrorTroll + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include +#include + +#define LED_TRAIL 10 + +static int8_t top = 0; +static int8_t bottom = MATRIX_ROWS - 1; +static int8_t left = 0; +static int8_t right = MATRIX_COLS - 1; +static int8_t dir = 1; + +static int8_t i = 0; +static int8_t j = 0; + +static bool traverse = true; + +static uint8_t v_values[RGB_MATRIX_LED_COUNT] = {0}; + +static void traverse_matrix(void) { + if (dir == 1) { + // moving left->right + i++; + // Since we have traversed the whole first + // row, move down to the next row. + if (i > right) { + ++top; + dir = 2; + j = top; + i -= 1; + } + } else if (dir == 2) { + // moving top->bottom + j++; + // Since we have traversed the whole last + // column, move left to the previous column. + if (j > bottom) { + --right; + dir = 3; + i = right; + j -= 1; + } + } else if (dir == 3) { + // moving right->left + i--; + // Since we have traversed the whole last + // row, move up to the previous row. + if (i < left) { + --bottom; + dir = 4; + j = bottom; + i += 1; + } + } else if (dir == 4) { + // moving bottom->up + j--; + // Since we have traversed the whole first + // col, move right to the next column. + if (j < top) { + ++left; + dir = 1; + i = left; + j += 1; + } + } +} + +static void swirl_set_color(HSV hsv) { + uint8_t index = g_led_config.matrix_co[j][i]; + + if(index != NO_LED){ + v_values[index] = 75; + } + + for(uint8_t v = 0; v < RGB_MATRIX_LED_COUNT; v++) + { + if(index != v) { + if(v_values[v] >= 20) + v_values[v] -= 20; + else + v_values[v] = 0; + } + hsv.v = v_values[v]; + RGB rgb = hsv_to_rgb(hsv); + rgb_matrix_set_color(v, rgb.r, rgb.g, rgb.b); + } + + traverse_matrix(); + + if (!(top <= bottom && left <= right)) { + eeprom_read_block(&rgb_matrix_config, EECONFIG_RGB_MATRIX, sizeof(rgb_matrix_config)); + rgb_matrix_mode_noeeprom(rgb_matrix_config.mode); + return; + } +} + +static bool STARTUP_SWIRL_ANIM(effect_params_t* params) { + HSV hsv = rgb_matrix_config.hsv; + uint8_t time = scale16by8(g_rgb_timer, qadd8(24, 1)); + hsv.h = time; + RGB rgb = hsv_to_rgb(hsv); + + if (traverse) { + swirl_set_color(hsv); + } + traverse = !traverse; + return false; + + RGB_MATRIX_USE_LIMITS(led_min, led_max); + + for (int i = led_min; i < led_max; i++) { + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); // Clear matrix just in case + } + + return rgb_matrix_check_finished_leds(led_max); +} diff --git a/keyboards/horrortroll/nyx/rev1/nyx.c b/keyboards/horrortroll/nyx/rev1/nyx.c new file mode 100644 index 0000000000..fb4ce3183b --- /dev/null +++ b/keyboards/horrortroll/nyx/rev1/nyx.c @@ -0,0 +1,89 @@ +/* Copyright 2023 HorrorTroll + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + } + break; + } + } + return false; + case RGB_MOD: + if (record->event.pressed) { + switch (rgb_matrix_get_mode()) { + case RGB_MATRIX_SOLID_MULTISPLASH: + rgb_matrix_mode(RGB_MATRIX_SOLID_COLOR); + return false; + default: + rgb_matrix_step(); + return false; + } + } + return false; + case RGB_RMOD: + if (record->event.pressed) { + switch (rgb_matrix_get_mode()) { + case RGB_MATRIX_SOLID_COLOR: + rgb_matrix_mode(RGB_MATRIX_SOLID_MULTISPLASH); + return false; + default: + rgb_matrix_step_reverse(); + return false; + } + } + return false; + } + + return process_record_user(keycode, record); +} + +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(30, 0, 75, 75); + } else if (!(rgb_matrix_get_flags() & LED_FLAG_INDICATOR)) { + rgb_matrix_set_color(30, RGB_OFF); + } + return true; +} + +void keyboard_post_init_kb(void) { + if (!(rgb_matrix_get_flags() & LED_FLAG_ALL)) { + rgb_matrix_set_color_all(0, 0, 0); + } else { + rgb_matrix_mode_noeeprom(RGB_MATRIX_CUSTOM_STARTUP_SWIRL_ANIM); + } + + keyboard_post_init_user(); +} +#endif diff --git a/keyboards/horrortroll/nyx/rev1/readme.md b/keyboards/horrortroll/nyx/rev1/readme.md new file mode 100644 index 0000000000..7fdbd0ed8f --- /dev/null +++ b/keyboards/horrortroll/nyx/rev1/readme.md @@ -0,0 +1,27 @@ +# Nyx + +![Nyx](https://i.imgur.com/I202xevh.png) + +A 65% keyboard, which controlled by an RP2040 chipset. The keyboard feature RGB Matrix. + +* Keyboard Maintainer: [HorrorTroll](https://github.com/HorrorTroll) +* Hardware Supported: RP2040 +* Hardware Availability: Private prototype (only 5 PCB available) + +Make example for this keyboard (after setting up your build environment): + + make horrortroll/nyx/rev1:default + +Flashing example for this keyboard: + + make horrortroll/nyx/rev1:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (Esc key) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/horrortroll/nyx/rev1/rgb_matrix_kb.inc b/keyboards/horrortroll/nyx/rev1/rgb_matrix_kb.inc new file mode 100644 index 0000000000..0912e3d956 --- /dev/null +++ b/keyboards/horrortroll/nyx/rev1/rgb_matrix_kb.inc @@ -0,0 +1,7 @@ +RGB_MATRIX_EFFECT(STARTUP_SWIRL_ANIM) + +#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS + +#include "lib/startup_swirl_anim.h" + +#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS diff --git a/keyboards/horrortroll/nyx/rev1/rules.mk b/keyboards/horrortroll/nyx/rev1/rules.mk new file mode 100644 index 0000000000..942ef4c5db --- /dev/null +++ b/keyboards/horrortroll/nyx/rev1/rules.mk @@ -0,0 +1 @@ +RGB_MATRIX_CUSTOM_KB = yes diff --git a/keyboards/horrortroll/readme.md b/keyboards/horrortroll/readme.md index 67347a3c16..64bcdf0c65 100644 --- a/keyboards/horrortroll/readme.md +++ b/keyboards/horrortroll/readme.md @@ -1,17 +1,18 @@ # Welcome to my Keyboard Firmwares ## Keyboards Released by me: - | Keyboard name | MCU | Layout | Vendor ID | Product ID | Features | - | ---------------- | ------------- | ------------ | --------- | ---------- | -------------------------------------------- | - | Handwired K552 | STM32F103RCT6 | TKL | 0x7516 | 0x5000 | Hotswap, RGB Underglow, OLED 128x32 | - | Paws 60 | ATMEGA32U4 | 60% | 0x7516 | 0x5001 | Hotswap | + | Keyboard name | MCU | Layout | Vendor ID | Product ID | Features | + | -------------- | ------------- | ------ | --------- | ---------- | ----------------------------------- | + | Handwired K552 | STM32F103RCT6 | TKL | 0x7516 | 0x5000 | Hotswap, RGB Underglow, OLED 128x32 | + | Paws 60 | ATMEGA32U4 | 60% | 0x7516 | 0x5001 | Hotswap | + | Nyx | RP2040 | 65% | 0x7516 | 0x5005 | Hotswap, RGB Matrix | ## Keyboards Completed has Collaboration with me: - | Keyboard name | MCU | Layout | Vendor ID | Product ID | Features | - | ------------------ | ------------- | ------------ | --------- | ---------- | ---------------------------------- | - | Lemon40 | ATMEGA32U4 | 40% Alice | 0x7516 | 0x6000 | Solder, RGB Underglow, OLED 128x32 | - | Caticorn (Solder) | RP2040 | TKL | 0x7516 | 0x6001 | Solder | - | Caticorn (Hotswap) | RP2040 | TKL | 0x7516 | 0x6002 | Hotswap | + | Keyboard name | MCU | Layout | Vendor ID | Product ID | Features | + | ------------------ | ---------- | --------- | --------- | ---------- | ---------------------------------- | + | Lemon40 | ATMEGA32U4 | 40% Alice | 0x7516 | 0x6000 | Solder, RGB Underglow, OLED 128x32 | + | Caticorn (Solder) | RP2040 | TKL | 0x7516 | 0x6001 | Solder | + | Caticorn (Hotswap) | RP2040 | TKL | 0x7516 | 0x6002 | Hotswap | ## Keyboard Rewrited by me: | Keyboard name | MCU | Layout | Vendor ID | Product ID | Features | From 20eb93e05cecb54add24ad5b69cdb1b85bb6b9e6 Mon Sep 17 00:00:00 2001 From: Dasky <32983009+daskygit@users.noreply.github.com> Date: Mon, 9 Oct 2023 23:16:21 +0100 Subject: [PATCH 257/496] Yampad add missing includes for CONVERT_TO (#22237) --- keyboards/yampad/keymaps/default/keymap.c | 1 + keyboards/yampad/keymaps/via/keymap.c | 1 + keyboards/yampad/yampad.c | 1 + 3 files changed, 3 insertions(+) diff --git a/keyboards/yampad/keymaps/default/keymap.c b/keyboards/yampad/keymaps/default/keymap.c index f54d4f33b0..61e6d8ff74 100644 --- a/keyboards/yampad/keymaps/default/keymap.c +++ b/keyboards/yampad/keymaps/default/keymap.c @@ -22,6 +22,7 @@ SOFTWARE. */ #include QMK_KEYBOARD_H +#include // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. diff --git a/keyboards/yampad/keymaps/via/keymap.c b/keyboards/yampad/keymaps/via/keymap.c index f54d4f33b0..61e6d8ff74 100644 --- a/keyboards/yampad/keymaps/via/keymap.c +++ b/keyboards/yampad/keymaps/via/keymap.c @@ -22,6 +22,7 @@ SOFTWARE. */ #include QMK_KEYBOARD_H +#include // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. diff --git a/keyboards/yampad/yampad.c b/keyboards/yampad/yampad.c index 45b0c42484..94eac85089 100644 --- a/keyboards/yampad/yampad.c +++ b/keyboards/yampad/yampad.c @@ -15,6 +15,7 @@ * along with this program. If not, see . */ #include "quantum.h" +#include #if defined(OLED_ENABLE) oled_rotation_t oled_init_kb(oled_rotation_t rotation) { From 509a2b40b798fd79a9d78b65e4daeb78cecf17ea Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 9 Oct 2023 23:16:54 +0100 Subject: [PATCH 259/496] Fix old usage of UNICODE_MODE_MAC (#22238) --- docs/feature_unicode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/feature_unicode.md b/docs/feature_unicode.md index 341084f926..2c6d2ef002 100644 --- a/docs/feature_unicode.md +++ b/docs/feature_unicode.md @@ -140,7 +140,7 @@ To set the list of enabled input modes, add the `UNICODE_SELECTED_MODES` define ```c #define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX // or -#define UNICODE_SELECTED_MODES UNICODE_MODE_MAC, UNICODE_MODE_WINCOMPOSE +#define UNICODE_SELECTED_MODES UNICODE_MODE_MACOS, UNICODE_MODE_WINCOMPOSE ``` These modes can then be cycled through using the `UC_NEXT` and `UC_PREV` keycodes. You can also switch to any input mode, even if it is not specified in `UNICODE_SELECTED_MODES`, using their respective keycodes. @@ -151,7 +151,7 @@ If your keyboard has working EEPROM, it will remember the last used input mode a ### ** macOS ** -**Mode Name:** `UNICODE_MODE_MAC` +**Mode Name:** `UNICODE_MODE_MACOS` macOS has built-in support for Unicode input as its own input source. It supports all possible code points by way of surrogate pairs for code points above `U+FFFF`. From 81d69a5798e4cebf75f7c6b5ab16c5ecb19f2ae2 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 9 Oct 2023 23:17:05 +0100 Subject: [PATCH 260/496] Resolve invalid keyboard alias targets (#22239) --- data/mappings/keyboard_aliases.hjson | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 992564702b..4e602b6856 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -904,10 +904,10 @@ "target": "keychron/q0/base" }, "keychron/q1": { - "target": "keychron/q1v1" + "target": "keychron/q1v1/ansi" } "keychron/q4": { - "target": "keychron/q4/ansi" + "target": "keychron/q4/ansi/v1" } "kprepublic/bm40hsrgb": { "target": "kprepublic/bm40hsrgb/rev1" From 6dafcac71399d1d4a4af1b6bfb36d73c6c9155ce Mon Sep 17 00:00:00 2001 From: Arthur <37627147+ArthurCyy@users.noreply.github.com> Date: Tue, 10 Oct 2023 08:41:40 +0800 Subject: [PATCH 261/496] [Keyboard] Add MIIIW BlackIO83 (#21970) * Add MIIIW BlackIO83 * Improve the code * Updated instructions for entering the bootloader * Update keyboards/miiiw/blackio83/rev_0100/config.h * Update keyboards/miiiw/blackio83/rev_0100/config.h * Update keyboards/miiiw/blackio83/config.h * Update config.h --- keyboards/miiiw/blackio83/blackio83.c | 189 +++++++++++++++ keyboards/miiiw/blackio83/blackio83.h | 30 +++ keyboards/miiiw/blackio83/config.h | 56 +++++ keyboards/miiiw/blackio83/halconf.h | 32 +++ keyboards/miiiw/blackio83/info.json | 216 ++++++++++++++++++ .../miiiw/blackio83/keymaps/default/keymap.c | 71 ++++++ .../miiiw/blackio83/keymaps/via/keymap.c | 71 ++++++ .../miiiw/blackio83/keymaps/via/rules.mk | 2 + keyboards/miiiw/blackio83/matrix.c | 139 +++++++++++ keyboards/miiiw/blackio83/mcuconf.h | 33 +++ keyboards/miiiw/blackio83/readme.md | 30 +++ keyboards/miiiw/blackio83/rev_0100/config.h | 70 ++++++ keyboards/miiiw/blackio83/rev_0100/rev_0100.c | 17 ++ keyboards/miiiw/blackio83/rev_0100/rules.mk | 7 + keyboards/miiiw/common/shift_register.c | 90 ++++++++ keyboards/miiiw/common/shift_register.h | 34 +++ 16 files changed, 1087 insertions(+) create mode 100644 keyboards/miiiw/blackio83/blackio83.c create mode 100644 keyboards/miiiw/blackio83/blackio83.h create mode 100644 keyboards/miiiw/blackio83/config.h create mode 100644 keyboards/miiiw/blackio83/halconf.h create mode 100644 keyboards/miiiw/blackio83/info.json create mode 100644 keyboards/miiiw/blackio83/keymaps/default/keymap.c create mode 100644 keyboards/miiiw/blackio83/keymaps/via/keymap.c create mode 100644 keyboards/miiiw/blackio83/keymaps/via/rules.mk create mode 100644 keyboards/miiiw/blackio83/matrix.c create mode 100644 keyboards/miiiw/blackio83/mcuconf.h create mode 100644 keyboards/miiiw/blackio83/readme.md create mode 100644 keyboards/miiiw/blackio83/rev_0100/config.h create mode 100644 keyboards/miiiw/blackio83/rev_0100/rev_0100.c create mode 100644 keyboards/miiiw/blackio83/rev_0100/rules.mk create mode 100644 keyboards/miiiw/common/shift_register.c create mode 100644 keyboards/miiiw/common/shift_register.h diff --git a/keyboards/miiiw/blackio83/blackio83.c b/keyboards/miiiw/blackio83/blackio83.c new file mode 100644 index 0000000000..0d8412624e --- /dev/null +++ b/keyboards/miiiw/blackio83/blackio83.c @@ -0,0 +1,189 @@ +/* Copyright 2023 ArthurCyy + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "blackio83.h" +#include "usb_main.h" +#include "usb_util.h" + +#define LOOP_10HZ_PERIOD 100 +deferred_token loop10hz_token = INVALID_DEFERRED_TOKEN; +uint32_t loop_10Hz(uint32_t trigger_time, void *cb_arg); + +static const SerialConfig mwproto_uart_config = { + .speed = MWPROTO_BITRATE, +}; + +static void POWER_EnterSleep(void) { + /* Clear Wake-up flag */ + PWR->CR |= PWR_CR_CWUF | PWR_CR_CSBF; + /* Select Sleep mode */ + /* PWR->CR |= PWR_CR_PDDS | PWR_CR_LPDS; */ + /* Set SLEEPDEEP bit of Cortex System Control Register */ + SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk; + /* Request Wait For Interrupt */ + __WFI(); + /* Reset SLEEPDEEP bit of Cortex System Control Register */ + SCB->SCR &= ~SCB_SCR_SLEEPDEEP_Msk; + NVIC_SystemReset(); +} + +extern void ws2812_poweron(void); +extern void ws2812_poweroff(void); + +static bool p_setup = false; +static bool s_init = false; +void ws2812_poweron(void) { + if(p_setup) return; + p_setup = true; + s_init = false; + setPinOutput(RGB_EN_PIN); + writePinHigh(RGB_EN_PIN); +} + +void ws2812_poweroff(void) { + if(!p_setup) return; + p_setup = false; + setPinInputLow(WS2812_DI_PIN); + writePinLow(RGB_EN_PIN); +} + +void keyboard_pre_init_kb() { + keyboard_pre_init_user(); + + setPinInputLow(MWPROTO_STATUS_PIN); + setPinOutput(MWPROTO_WAKEUP_PIN); + writePinLow(MWPROTO_WAKEUP_PIN); + wait_ms(2); + writePinHigh(MWPROTO_WAKEUP_PIN); + + palSetLineMode(MWPROTO_TX_PIN, PAL_MODE_ALTERNATE(MWPROTO_TX_PAL_MODE) | PAL_OUTPUT_TYPE_OPENDRAIN); + sdStart(&MWPROTO_DRIVER, &mwproto_uart_config); +} + +void keyboard_post_init_kb(void) { + keyboard_post_init_user(); + + print(/* clang-format off */ + "\n<--QMK Keyboard-->\n" + "Vendor: " STR(MANUFACTURER) "(" STR(VENDOR_ID) ")\n" + "Product: " STR(PRODUCT) " (" STR(PRODUCT_ID) ")\n" + "Version: " STR(DEVICE_VER) "\n" + "BUILD: " __DATE__ "\n" + ); /* clang-format on */ + + writePinLow(MWPROTO_WAKEUP_PIN); + wait_ms(50); + sdPutI(&MWPROTO_DRIVER, 0xA5); + sdPutI(&MWPROTO_DRIVER, 0x12); + sdPutI(&MWPROTO_DRIVER, 0x01); + sdPutI(&MWPROTO_DRIVER, 0x02); + sdPutI(&MWPROTO_DRIVER, 0xB4); + writePinHigh(MWPROTO_WAKEUP_PIN); + + ws2812_poweron(); + loop10hz_token = defer_exec(LOOP_10HZ_PERIOD, loop_10Hz, NULL); +} + +__attribute__((weak)) void shutdown_user(void) { +#ifdef RGB_MATRIX_ENABLE + rgb_matrix_set_suspend_state(true); +#endif // RGB_MATRIX_ENABLE + wait_ms(10); + ws2812_poweroff(); +} + +#ifdef DIP_SWITCH_ENABLE +bool dip_switch_update_mask_kb(uint32_t state) { + if (!dip_switch_update_mask_user(state)) { return false; } + + if(state & 0x01) { + led_suspend(); + usbDisconnectBus(&USB_DRIVER); + usbStop(&USB_DRIVER); + shutdown_user(); + setPinInputHigh(POWER_SWITCH_PIN); + palEnableLineEvent(POWER_SWITCH_PIN, PAL_EVENT_MODE_RISING_EDGE); + POWER_EnterSleep(); + } + + return true; +} +#endif + +uint32_t loop_10Hz(uint32_t trigger_time, void *cb_arg) { + + if(last_input_activity_elapsed() > 1000) { + static uint32_t pmu_timer = 0; + if(timer_elapsed32(pmu_timer) > 3000) { + pmu_timer = timer_read32(); + writePinLow(MWPROTO_WAKEUP_PIN); + if(readPin(MWPROTO_STATUS_PIN)) + wait_us(500); + else + wait_us(1500); + sdPutI(&MWPROTO_DRIVER, 0xA5); + sdPutI(&MWPROTO_DRIVER, 0x28); + sdPutI(&MWPROTO_DRIVER, 0x00); + sdPutI(&MWPROTO_DRIVER, 0x8D); + writePinHigh(MWPROTO_WAKEUP_PIN); + } + } + + extern matrix_row_t matrix[MATRIX_ROWS]; + static uint32_t restore_tick = 0; + if(matrix[0] == 0x4000 && matrix[1] == 0 && + matrix[2] == 0 && matrix[3] == 0 && matrix[4] == 0 && matrix[5] == 0x201) { + if(restore_tick++ > 50) { + restore_tick = 0; + writePinLow(MWPROTO_WAKEUP_PIN); + if(readPin(MWPROTO_STATUS_PIN)) + wait_us(500); + else + wait_us(1500); + sdPutI(&MWPROTO_DRIVER, 0xA5); + sdPutI(&MWPROTO_DRIVER, 0x1F); + sdPutI(&MWPROTO_DRIVER, 0x01); + sdPutI(&MWPROTO_DRIVER, 0x0F); + sdPutI(&MWPROTO_DRIVER, 0xB4); + writePinHigh(MWPROTO_WAKEUP_PIN); + wait_ms(50); + eeconfig_init(); + #ifdef RGB_MATRIX_ENABLE + extern void rgb_matrix_update_pwm_buffers(void); + for(int i = 0; i < 5; i++) { + rgb_matrix_set_color_all(RGB_WHITE); + rgb_matrix_update_pwm_buffers(); + wait_ms(500); + rgb_matrix_set_color_all(RGB_OFF); + rgb_matrix_update_pwm_buffers(); + wait_ms(500); + } + #endif + wait_ms(500); + soft_reset_keyboard(); + } + } else { + restore_tick = 0; + } + + static uint32_t debug_tick = 0; + if (debug_tick++ > 9 ) { + dprintf("trigger %d\n", trigger_time); + debug_tick = 0; + } + + return LOOP_10HZ_PERIOD; +} diff --git a/keyboards/miiiw/blackio83/blackio83.h b/keyboards/miiiw/blackio83/blackio83.h new file mode 100644 index 0000000000..ea371443e3 --- /dev/null +++ b/keyboards/miiiw/blackio83/blackio83.h @@ -0,0 +1,30 @@ +/* Copyright 2023 ArthurCyy + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +enum custom_keycodes { + DEV_BT1 = QK_KB, + DEV_BT2, + DEV_BT3, + DEV_RF24, + ALT_TAB, + RGB_RST, +}; \ No newline at end of file diff --git a/keyboards/miiiw/blackio83/config.h b/keyboards/miiiw/blackio83/config.h new file mode 100644 index 0000000000..73c98722e9 --- /dev/null +++ b/keyboards/miiiw/blackio83/config.h @@ -0,0 +1,56 @@ +/* Copyright 2023 ArthurCyy + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// EEPROM i2c chip +#define EEPROM_I2C_24LC256 + +/* Disable the animations you don't want/need. You will need to disable a good number of these * + * because they take up a lot of space. Disable until you can successfully compile your firmware. */ +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +// # define ENABLE_RGB_MATRIX_ALPHAS_MODS +# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_BREATHING +# define ENABLE_RGB_MATRIX_BAND_SAT +# define ENABLE_RGB_MATRIX_BAND_VAL +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +# define ENABLE_RGB_MATRIX_CYCLE_ALL +# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +# define ENABLE_RGB_MATRIX_DUAL_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +# define ENABLE_RGB_MATRIX_RAINDROPS +# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +# define ENABLE_RGB_MATRIX_HUE_BREATHING +# define ENABLE_RGB_MATRIX_HUE_PENDULUM +# define ENABLE_RGB_MATRIX_HUE_WAVE +# define ENABLE_RGB_MATRIX_PIXEL_RAIN +# define ENABLE_RGB_MATRIX_PIXEL_FLOW +# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR diff --git a/keyboards/miiiw/blackio83/halconf.h b/keyboards/miiiw/blackio83/halconf.h new file mode 100644 index 0000000000..037108a392 --- /dev/null +++ b/keyboards/miiiw/blackio83/halconf.h @@ -0,0 +1,32 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/geekboards/macropad_v2/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_SERIAL TRUE + +#define HAL_USE_I2C TRUE + +// This enables interrupt-driven mode +#define PAL_USE_WAIT TRUE +#define USB_USE_WAIT TRUE + +#include_next diff --git a/keyboards/miiiw/blackio83/info.json b/keyboards/miiiw/blackio83/info.json new file mode 100644 index 0000000000..40fc6b7d89 --- /dev/null +++ b/keyboards/miiiw/blackio83/info.json @@ -0,0 +1,216 @@ +{ + "manufacturer": "MIIIW", + "keyboard_name": "MIIIW BlackIO 83", + "maintainer": "ArthurCyy", + "bootloader": "stm32-dfu", + "debounce": 3, + "diode_direction": "COL2ROW", + "features": { + "backlight": false, + "bootmagic": true, + "command": false, + "console": false, + "deferred_exec": true, + "dip_switch": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true, + "rgblight": false + }, + "indicators": { + "caps_lock": "B2", + "num_lock": "B14" + }, + "matrix_pins": { + "cols": ["H0", "H1", "H2", "H3", "H4", "H5", "H6", "H7", "H8", "H9", "H10", "H11", "H12", "H13", "H14", "H15"], + "rows": ["A7", "A6", "A5", "A4", "A3", "A2"] + }, + "processor": "STM32F072", + "rgb_matrix": { + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 10, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 18, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 26, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 34, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 44, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 52, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 68, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 78, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 86, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 94, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 102, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 124, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 124, "y": 20, "flags": 4}, + {"matrix": [1, 1], "x": 108, "y": 20, "flags": 4}, + {"matrix": [1, 2], "x": 96, "y": 20, "flags": 4}, + {"matrix": [1, 3], "x": 88, "y": 20, "flags": 4}, + {"matrix": [1, 4], "x": 80, "y": 20, "flags": 4}, + {"matrix": [1, 5], "x": 72, "y": 20, "flags": 4}, + {"matrix": [1, 6], "x": 64, "y": 20, "flags": 4}, + {"matrix": [1, 7], "x": 56, "y": 20, "flags": 4}, + {"matrix": [1, 8], "x": 48, "y": 20, "flags": 4}, + {"matrix": [1, 9], "x": 40, "y": 20, "flags": 4}, + {"matrix": [1, 10], "x": 32, "y": 20, "flags": 4}, + {"matrix": [1, 11], "x": 24, "y": 20, "flags": 4}, + {"matrix": [1, 12], "x": 16, "y": 20, "flags": 4}, + {"matrix": [1, 13], "x": 8, "y": 20, "flags": 4}, + {"matrix": [1, 15], "x": 0, "y": 20, "flags": 4}, + {"matrix": [2, 0], "x": 2, "y": 36, "flags": 4}, + {"matrix": [2, 1], "x": 12, "y": 36, "flags": 4}, + {"matrix": [2, 2], "x": 20, "y": 36, "flags": 4}, + {"matrix": [2, 3], "x": 28, "y": 36, "flags": 4}, + {"matrix": [2, 4], "x": 36, "y": 36, "flags": 4}, + {"matrix": [2, 5], "x": 44, "y": 36, "flags": 4}, + {"matrix": [2, 6], "x": 52, "y": 36, "flags": 4}, + {"matrix": [2, 7], "x": 60, "y": 36, "flags": 4}, + {"matrix": [2, 8], "x": 68, "y": 36, "flags": 4}, + {"matrix": [2, 9], "x": 76, "y": 36, "flags": 4}, + {"matrix": [2, 10], "x": 84, "y": 36, "flags": 4}, + {"matrix": [2, 11], "x": 92, "y": 36, "flags": 4}, + {"matrix": [2, 12], "x": 100, "y": 36, "flags": 4}, + {"matrix": [2, 13], "x": 110, "y": 36, "flags": 4}, + {"matrix": [2, 15], "x": 124, "y": 36, "flags": 4}, + {"matrix": [3, 0], "x": 124, "y": 52, "flags": 4}, + {"matrix": [3, 1], "x": 107, "y": 52, "flags": 4}, + {"matrix": [3, 2], "x": 94, "y": 52, "flags": 4}, + {"matrix": [3, 3], "x": 86, "y": 52, "flags": 4}, + {"matrix": [3, 4], "x": 78, "y": 52, "flags": 4}, + {"matrix": [3, 5], "x": 70, "y": 52, "flags": 4}, + {"matrix": [3, 6], "x": 62, "y": 52, "flags": 4}, + {"matrix": [3, 7], "x": 54, "y": 52, "flags": 4}, + {"matrix": [3, 8], "x": 46, "y": 52, "flags": 4}, + {"matrix": [3, 9], "x": 38, "y": 52, "flags": 4}, + {"matrix": [3, 10], "x": 30, "y": 52, "flags": 4}, + {"matrix": [3, 11], "x": 22, "y": 52, "flags": 4}, + {"matrix": [3, 12], "x": 14, "y": 52, "flags": 4}, + {"matrix": [3, 15], "x": 3, "y": 52, "flags": 4}, + {"matrix": [4, 0], "x": 5, "y": 68, "flags": 4}, + {"matrix": [4, 1], "x": 18, "y": 68, "flags": 4}, + {"matrix": [4, 2], "x": 26, "y": 68, "flags": 4}, + {"matrix": [4, 3], "x": 34, "y": 68, "flags": 4}, + {"matrix": [4, 4], "x": 42, "y": 68, "flags": 4}, + {"matrix": [4, 5], "x": 50, "y": 68, "flags": 4}, + {"matrix": [4, 6], "x": 58, "y": 68, "flags": 4}, + {"matrix": [4, 7], "x": 66, "y": 68, "flags": 4}, + {"matrix": [4, 8], "x": 74, "y": 68, "flags": 4}, + {"matrix": [4, 9], "x": 82, "y": 68, "flags": 4}, + {"matrix": [4, 10], "x": 90, "y": 68, "flags": 4}, + {"matrix": [4, 11], "x": 104, "y": 68, "flags": 4}, + {"matrix": [4, 13], "x": 114, "y": 68, "flags": 4}, + {"matrix": [4, 15], "x": 124, "y": 68, "flags": 4}, + {"matrix": [5, 0], "x": 122, "y": 84, "flags": 4}, + {"matrix": [5, 1], "x": 114, "y": 84, "flags": 4}, + {"matrix": [5, 2], "x": 106, "y": 84, "flags": 4}, + {"matrix": [5, 5], "x": 96, "y": 84, "flags": 4}, + {"matrix": [5, 8], "x": 88, "y": 84, "flags": 4}, + {"matrix": [5, 9], "x": 80, "y": 84, "flags": 4}, + {"matrix": [5, 10], "x": 50, "y": 84, "flags": 4}, + {"matrix": [5, 12], "x": 20, "y": 88, "flags": 4}, + {"matrix": [5, 13], "x": 10, "y": 88, "flags": 4}, + {"matrix": [5, 14], "x": 1, "y": 88, "flags": 4} + ] + }, + "url": "https://github.com/ArthurCyy", + "usb": { + "device_version": "0.0.1", + "pid": "0x83A1", + "vid": "0x3044" + }, + "ws2812": { + "pin": "B15" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.25, "y": 0}, + {"matrix": [0, 3], "x": 2.25, "y": 0}, + {"matrix": [0, 4], "x": 3.25, "y": 0}, + {"matrix": [0, 5], "x": 4.25, "y": 0}, + {"matrix": [0, 6], "x": 5.5, "y": 0}, + {"matrix": [0, 7], "x": 6.5, "y": 0}, + {"matrix": [0, 8], "x": 7.5, "y": 0}, + {"matrix": [0, 9], "x": 8.5, "y": 0}, + {"matrix": [0, 10], "x": 9.75, "y": 0}, + {"matrix": [0, 11], "x": 10.75, "y": 0}, + {"matrix": [0, 12], "x": 11.75, "y": 0}, + {"matrix": [0, 13], "x": 12.75, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [2, 15], "x": 15.25, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 12], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [3, 15], "x": 15.25, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [4, 1], "x": 2.25, "y": 4}, + {"matrix": [4, 2], "x": 3.25, "y": 4}, + {"matrix": [4, 3], "x": 4.25, "y": 4}, + {"matrix": [4, 4], "x": 5.25, "y": 4}, + {"matrix": [4, 5], "x": 6.25, "y": 4}, + {"matrix": [4, 6], "x": 7.25, "y": 4}, + {"matrix": [4, 7], "x": 8.25, "y": 4}, + {"matrix": [4, 8], "x": 9.25, "y": 4}, + {"matrix": [4, 9], "x": 10.25, "y": 4}, + {"matrix": [4, 10], "x": 11.25, "y": 4}, + {"matrix": [4, 11], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 13], "x": 14.25, "y": 4.5}, + {"matrix": [4, 15], "x": 15.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 8], "x": 10, "y": 5}, + {"matrix": [5, 9], "x": 11, "y": 5}, + {"matrix": [5, 10], "x": 12, "y": 5}, + {"matrix": [5, 12], "x": 13.25, "y": 5.5}, + {"matrix": [5, 13], "x": 14.25, "y": 5.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/miiiw/blackio83/keymaps/default/keymap.c b/keyboards/miiiw/blackio83/keymaps/default/keymap.c new file mode 100644 index 0000000000..dc906f7e2c --- /dev/null +++ b/keyboards/miiiw/blackio83/keymaps/default/keymap.c @@ -0,0 +1,71 @@ +/* Copyright 2023 ArthurCyy + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum keymap_layers { + WIN_BL, + WIN_FL, + MAC_BL, + MAC_FL, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap WIN_BL: Win Base Layer (Default Layer) + */ + [WIN_BL] = LAYOUT( + KC_ESC, 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_DEL, KC_PSCR, + KC_GRV, 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_BSPC, KC_HOME, + 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_END, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Keymap WIN_FL: Win Function Layer + */ + [WIN_FL] = LAYOUT( + RGB_RST, KC_BRID, KC_BRIU, ALT_TAB, G(KC_D), KC_WBAK, KC_WSCH, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD + ), + + /* Keymap MAC_BL: Mac Base Layer + */ + [MAC_BL] = LAYOUT( + KC_ESC, KC_BRID, KC_BRIU,C(KC_UP),C(KC_DOWN),KC_F11,G(KC_SPC),KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_PSCR, + KC_GRV, 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_BSPC, KC_HOME, + 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_END, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FL), KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Keymap MAC_FL: Mac Function Layer + */ + [MAC_FL] = LAYOUT( + RGB_RST, 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_DEL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD + ), +}; diff --git a/keyboards/miiiw/blackio83/keymaps/via/keymap.c b/keyboards/miiiw/blackio83/keymaps/via/keymap.c new file mode 100644 index 0000000000..dc906f7e2c --- /dev/null +++ b/keyboards/miiiw/blackio83/keymaps/via/keymap.c @@ -0,0 +1,71 @@ +/* Copyright 2023 ArthurCyy + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum keymap_layers { + WIN_BL, + WIN_FL, + MAC_BL, + MAC_FL, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap WIN_BL: Win Base Layer (Default Layer) + */ + [WIN_BL] = LAYOUT( + KC_ESC, 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_DEL, KC_PSCR, + KC_GRV, 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_BSPC, KC_HOME, + 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_END, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Keymap WIN_FL: Win Function Layer + */ + [WIN_FL] = LAYOUT( + RGB_RST, KC_BRID, KC_BRIU, ALT_TAB, G(KC_D), KC_WBAK, KC_WSCH, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD + ), + + /* Keymap MAC_BL: Mac Base Layer + */ + [MAC_BL] = LAYOUT( + KC_ESC, KC_BRID, KC_BRIU,C(KC_UP),C(KC_DOWN),KC_F11,G(KC_SPC),KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_PSCR, + KC_GRV, 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_BSPC, KC_HOME, + 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_END, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FL), KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Keymap MAC_FL: Mac Function Layer + */ + [MAC_FL] = LAYOUT( + RGB_RST, 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_DEL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD + ), +}; diff --git a/keyboards/miiiw/blackio83/keymaps/via/rules.mk b/keyboards/miiiw/blackio83/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/miiiw/blackio83/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/miiiw/blackio83/matrix.c b/keyboards/miiiw/blackio83/matrix.c new file mode 100644 index 0000000000..841ff3c16e --- /dev/null +++ b/keyboards/miiiw/blackio83/matrix.c @@ -0,0 +1,139 @@ +/* Copyright 2023 ArthurCyy + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" +#include "matrix.h" +#include "common/shift_register.h" + +static uint8_t read_rows(void); +static void init_cols(void); +static void select_col(uint8_t col); +static void unselect_col(uint8_t col); +static void unselect_cols(void); + +static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; +static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; + +#ifdef DIP_SWITCH_PINS +# define NUMBER_OF_DIP_SWITCHES (sizeof(dip_switch_pad) / sizeof(pin_t)) +static pin_t dip_switch_pad[] = DIP_SWITCH_PINS; +#endif + +void matrix_init_custom(void) { + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + setPinInputLow(row_pins[row]); + } + + shift_init(); + init_cols(); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + bool changed = false; + + for (uint8_t col = 0; col < MATRIX_COLS; col++) { + select_col(col); + waitInputPinDelay(); + uint8_t rows = read_rows(); + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + bool prev_bit = ((uint32_t)(current_matrix[row]) & (matrix_row_t)(1UL << col)) ? 1 : 0; + bool curr_bit = ((uint32_t)rows & (uint32_t)(1UL << row)) ? 1 : 0; + if (prev_bit != curr_bit) { + current_matrix[row] = (uint32_t)(current_matrix[row]) ^ (uint32_t)(1UL << col); + changed = true; + } + } + unselect_col(col); + } + + return changed; +} + +void matrix_power_up(void) { + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + palDisableLineEvent(row_pins[row]); + setPinInputLow(row_pins[row]); + } + init_cols(); +#ifdef DIP_SWITCH_PINS + for (uint8_t i = 1; i < NUMBER_OF_DIP_SWITCHES; i++) { + setPinInputHigh(dip_switch_pad[i]); + } +#endif +} + +void matrix_power_down(void) { + unselect_cols(); + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + setPinInputLow(row_pins[row]); + palEnableLineEvent(row_pins[row], PAL_EVENT_MODE_RISING_EDGE); + } +#ifdef DIP_SWITCH_PINS + for (uint8_t i = 1; i < NUMBER_OF_DIP_SWITCHES; i++) { + setPinInputLow(dip_switch_pad[i]); + } +#endif +} + +static uint8_t read_rows(void) { + uint8_t row_value = 0; + for(uint8_t row = 0; row < MATRIX_ROWS; row++) { + row_value |= (readPin(row_pins[row]) << row); + } + return row_value; +} + +static void init_cols(void) { + shift_writeAll(0); + for(uint8_t col = 0; col < MATRIX_COLS; col++) { + if(col_pins[col] < H0) { + setPinOutput(col_pins[col]); + writePinLow(col_pins[col]); + } + } +} + +static void select_col(uint8_t col) { + if(col_pins[col] < H0){ + writePinHigh(col_pins[col]); + waitInputPinDelay(); + waitInputPinDelay(); + waitInputPinDelay(); + waitInputPinDelay(); + waitInputPinDelay(); + waitInputPinDelay(); + }else{ + shift_writePin(col_pins[col], 1); + } +} + +static void unselect_col(uint8_t col) { + if(col_pins[col] < H0){ + writePinLow(col_pins[col]); + }else{ + shift_writePin(col_pins[col], 0); + } +} + +static void unselect_cols(void) { + shift_writeAll(1); + for(uint8_t col = 0; col < MATRIX_COLS; col++) { + if(col_pins[col] < H0) { + setPinOutput(col_pins[col]); + writePinHigh(col_pins[col]); + } + } +} diff --git a/keyboards/miiiw/blackio83/mcuconf.h b/keyboards/miiiw/blackio83/mcuconf.h new file mode 100644 index 0000000000..89038eba82 --- /dev/null +++ b/keyboards/miiiw/blackio83/mcuconf.h @@ -0,0 +1,33 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/geekboards/macropad_v2/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_SERIAL_USE_USART1 +#define STM32_SERIAL_USE_USART1 TRUE + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +#undef STM32_I2C_USE_DMA +#define STM32_I2C_USE_DMA FALSE diff --git a/keyboards/miiiw/blackio83/readme.md b/keyboards/miiiw/blackio83/readme.md new file mode 100644 index 0000000000..ecb42fac26 --- /dev/null +++ b/keyboards/miiiw/blackio83/readme.md @@ -0,0 +1,30 @@ +# MIIIW BlackIO83 + +![BlackIO83](https://i.imgur.com/jZ7HrTCh.jpg) +![BlackIO83](https://i.imgur.com/AnlUIfph.jpg) + +A customizable 75% keyboard. + +* Keyboard Maintainer: [ArthurCyy](https://github.com/ArthurCyy) +* Hardware Supported: BlackIO83 rev_0100 +* Hardware Availability: [MIIIW](https://www.miiiw.com/) + +Make example for this keyboard (after setting up your build environment): + + make miiiw/blackio83/rev_0100:default + +Flashing example for this keyboard: + + make miiiw/blackio83/rev_0100:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: With the power switch off, hold down the key at (0,0) in the matrix (Escape) and plug in the keyboard. +* **Physical button**: With the power switch off, hold the small metal button on the right side under the spacebar keycap and plug in the keyboard. +* **Keycode in layout**: + * (Official firmware only) With the power switch on, press and hold the left Shift+ Fn+ upper right DEL. + * (Unofficial firmware) With the power switch on, press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/miiiw/blackio83/rev_0100/config.h b/keyboards/miiiw/blackio83/rev_0100/config.h new file mode 100644 index 0000000000..803c8a8a3b --- /dev/null +++ b/keyboards/miiiw/blackio83/rev_0100/config.h @@ -0,0 +1,70 @@ +/* Copyright 2023 ArthurCyy + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ + +/* Dip Switch */ +#define POWER_SWITCH_PIN B0 +#define DIP_SWITCH_PINS { B0, B1, B8, B12 } + +/* 16 with dummy columns for shift registers */ +#define SHR_SERIES_NUM 2 +#define SHR_CLOCK_PIN A0 +#define SHR_DATA_PIN A1 +#define SHR_LATCH_PIN C15 + +/* MIIIW Protocol Driver */ +#define MWPROTO_BITRATE 256000 +#define MWPROTO_DRIVER SD1 +#define MWPROTO_TX_PIN A9 +#define MWPROTO_TX_PAL_MODE 1 +#define MWPROTO_RX_PIN A10 +#define MWPROTO_RX_PAL_MODE 1 +#define MWPROTO_WAKEUP_PIN A15 +#define MWPROTO_STATUS_PIN C13 + +/* RGB Matrix config */ +#define RGB_EN_PIN A8 +#define RGBLED_NUM 83 +#define RGB_MATRIX_LED_COUNT 83 +#define RGB_MATRIX_CENTER { 62, 42 } + +// PWM RGB Underglow Defines +#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_GRB +#define WS2812_TRST_US 200 + +// I2C config +#define I2C_DRIVER I2CD1 +#define I2C1_SCL_PIN B6 +#define I2C1_SDA_PIN B7 +#define I2C1_SCL_PAL_MODE 1 +#define I2C1_SDA_PAL_MODE 1 +#define I2C1_TIMINGR_PRESC 0x00U +#define I2C1_TIMINGR_SCLDEL 0x03U +#define I2C1_TIMINGR_SDADEL 0x01U +#define I2C1_TIMINGR_SCLH 0x03U +#define I2C1_TIMINGR_SCLL 0x09U diff --git a/keyboards/miiiw/blackio83/rev_0100/rev_0100.c b/keyboards/miiiw/blackio83/rev_0100/rev_0100.c new file mode 100644 index 0000000000..b28ac84acb --- /dev/null +++ b/keyboards/miiiw/blackio83/rev_0100/rev_0100.c @@ -0,0 +1,17 @@ +/* Copyright 2023 ArthurCyy + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "blackio83.h" diff --git a/keyboards/miiiw/blackio83/rev_0100/rules.mk b/keyboards/miiiw/blackio83/rev_0100/rules.mk new file mode 100644 index 0000000000..5558efa95d --- /dev/null +++ b/keyboards/miiiw/blackio83/rev_0100/rules.mk @@ -0,0 +1,7 @@ +CUSTOM_MATRIX = lite + +WS2812_DRIVER_REQUIRED := yes + +# Project specific files +SRC += matrix.c \ + common/shift_register.c diff --git a/keyboards/miiiw/common/shift_register.c b/keyboards/miiiw/common/shift_register.c new file mode 100644 index 0000000000..1f21c12468 --- /dev/null +++ b/keyboards/miiiw/common/shift_register.c @@ -0,0 +1,90 @@ +/* Copyright 2023 ArthurCyy + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" +#include "shift_register.h" + +static void shift_out(void); + +static uint8_t shift_values[SHR_SERIES_NUM] = {0}; + +void shift_init(void) { +#ifdef SHR_OE_PIN + setPinOutput(SHR_OE_PIN); + writePinHigh(SHR_OE_PIN); +#endif + setPinOutput(SHR_DATA_PIN); + setPinOutput(SHR_LATCH_PIN); + setPinOutput(SHR_CLOCK_PIN); +} + +void shift_enable(void) { +#ifdef SHR_OE_PIN + writePinLow(SHR_OE_PIN); +#endif + writePinLow(SHR_DATA_PIN); + writePinLow(SHR_LATCH_PIN); + writePinLow(SHR_CLOCK_PIN); +} + +void shift_disable(void) { +#ifdef SHR_OE_PIN + writePinHigh(SHR_OE_PIN); +#endif + writePinLow(SHR_DATA_PIN); + writePinLow(SHR_LATCH_PIN); + writePinLow(SHR_CLOCK_PIN); +} + +void shift_writePin(pin_t pin, int level) { + uint8_t group = (pin - H0) >> 3; + uint8_t bit = 0x01 << ((pin - H0)&0x07); + + if(group >= SHR_SERIES_NUM) + return; + + if(level) + shift_values[group] |= bit; + else + shift_values[group] &= ~bit; + shift_out(); +} + +void shift_writeGroup(int group, uint8_t value) { + if(group >= SHR_SERIES_NUM) + return; + + shift_values[group] = value; + shift_out(); +} + +void shift_writeAll(int level) { + memset(shift_values, level ? 0xFF : 0, sizeof(shift_values)); + shift_out(); +} + +static void shift_out(void) { + uint8_t n = SHR_SERIES_NUM; + writePinLow(SHR_LATCH_PIN); + while(n--){ + for (uint8_t i = 0; i < 8; i++) { + writePinLow(SHR_CLOCK_PIN); + writePin(SHR_DATA_PIN, shift_values[n] & (0x80 >> i)); + writePinHigh(SHR_CLOCK_PIN); + } + } + writePinHigh(SHR_LATCH_PIN); +} diff --git a/keyboards/miiiw/common/shift_register.h b/keyboards/miiiw/common/shift_register.h new file mode 100644 index 0000000000..f9895e63f8 --- /dev/null +++ b/keyboards/miiiw/common/shift_register.h @@ -0,0 +1,34 @@ +/* Copyright 2023 ArthurCyy + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "gpio.h" + +#ifndef GPIOH_BASE +# define GPIOH_BASE (0xFF595A00U) +#endif + +#ifndef SHR_SERIES_NUM +# define SHR_SERIES_NUM 1 +#endif + +extern void shift_init(void); +extern void shift_enable(void); +extern void shift_disable(void); +extern void shift_writePin(pin_t pin, int level); +extern void shift_writeGroup(int group, uint8_t value); +extern void shift_writeAll(int level); From 0650f783b55c90d3c5f994857daf0092495e4231 Mon Sep 17 00:00:00 2001 From: "jonylee@hfd" <108282809+jonylee1986@users.noreply.github.com> Date: Wed, 11 Oct 2023 05:07:59 +0800 Subject: [PATCH 262/496] [Keyboard] MonsGeek M3 (#20542) * Add keybord monsgeek m3. * Add keybord monsgeek m3. * Add keybord monsgeek m3. * updata rules.mk * add readme.md * delete monsgeek\m3\rgb_matrix_kb.inc * add DISABLE_M3_KEYCODES * user_config --> kb_config * Move code to info.json,and removed redundant features * Update keyboards/monsgeek/m3/info.json * Update keyboards/monsgeek/m3/info.json * Update readme.md * Update keyboards/monsgeek/m3/config.h * Update keyboards/monsgeek/m3/info.json * Update keyboards/monsgeek/m3/info.json * Update keyboards/monsgeek/m3/keymaps/default/keymap.c * Update keyboards/monsgeek/m3/keymaps/via/keymap.c * Update keyboards/monsgeek/m3/readme.md * Update m3.c * Update m3.c * Update info.json * Update keymap.c * Update keymap.c * Update config.h * Update keyboards/monsgeek/m3/readme.md * Update keyboards/monsgeek/m3/rules.mk * Update keyboards/monsgeek/m3/info.json * Update keyboards/monsgeek/m3/keymaps/default/keymap.c * Update keyboards/monsgeek/m3/keymaps/via/keymap.c * Update keyboards/monsgeek/m3/info.json * Update keyboards/monsgeek/m3/info.json * Update keyboards/monsgeek/m3/info.json * Update m3.c * Update keyboards/monsgeek/m3/info.json * Update keyboards/monsgeek/m3/m3.c * Update keymap.c replace the tabs with spaces * Update keymap.c replace the tabs with spaces --- keyboards/monsgeek/m3/config.h | 50 ++++ keyboards/monsgeek/m3/halconf.h | 23 ++ keyboards/monsgeek/m3/info.json | 249 ++++++++++++++++++ .../monsgeek/m3/keymaps/default/keymap.c | 79 ++++++ keyboards/monsgeek/m3/keymaps/via/keymap.c | 79 ++++++ keyboards/monsgeek/m3/keymaps/via/rules.mk | 1 + keyboards/monsgeek/m3/m3.c | 192 ++++++++++++++ keyboards/monsgeek/m3/mcuconf.h | 24 ++ keyboards/monsgeek/m3/readme.md | 24 ++ keyboards/monsgeek/m3/rules.mk | 2 + 10 files changed, 723 insertions(+) create mode 100644 keyboards/monsgeek/m3/config.h create mode 100644 keyboards/monsgeek/m3/halconf.h create mode 100644 keyboards/monsgeek/m3/info.json create mode 100644 keyboards/monsgeek/m3/keymaps/default/keymap.c create mode 100644 keyboards/monsgeek/m3/keymaps/via/keymap.c create mode 100644 keyboards/monsgeek/m3/keymaps/via/rules.mk create mode 100644 keyboards/monsgeek/m3/m3.c create mode 100644 keyboards/monsgeek/m3/mcuconf.h create mode 100644 keyboards/monsgeek/m3/readme.md create mode 100644 keyboards/monsgeek/m3/rules.mk diff --git a/keyboards/monsgeek/m3/config.h b/keyboards/monsgeek/m3/config.h new file mode 100644 index 0000000000..85eb5b8e99 --- /dev/null +++ b/keyboards/monsgeek/m3/config.h @@ -0,0 +1,50 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* LED Indicators */ +#define LED_MAC_OS_PIN C10 +#define LED_WIN_LOCK_PIN C11 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* SPI Config for spi flash*/ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN B3 +#define SPI_MOSI_PIN B5 +#define SPI_MISO_PIN B4 +#define SPI_MOSI_PAL_MODE 5 + +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 +#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) + +/* I2C Config for LED Driver */ +#define DRIVER_COUNT 2 +#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_2 0b1110111 +#define I2C1_OPMODE OPMODE_I2C +#define I2C1_CLOCK_SPEED 400000 /* 400000 */ + +#define RGB_MATRIX_LED_COUNT 87 + +#define RGB_TRIGGER_ON_KEYDOWN +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/monsgeek/m3/halconf.h b/keyboards/monsgeek/m3/halconf.h new file mode 100644 index 0000000000..55bfe5c977 --- /dev/null +++ b/keyboards/monsgeek/m3/halconf.h @@ -0,0 +1,23 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define HAL_USE_I2C TRUE +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/monsgeek/m3/info.json b/keyboards/monsgeek/m3/info.json new file mode 100644 index 0000000000..db646103f1 --- /dev/null +++ b/keyboards/monsgeek/m3/info.json @@ -0,0 +1,249 @@ +{ + "keyboard_name": "M3", + "manufacturer": "MonsGeek", + "maintainer": "jonylee@hfd", + "usb": { + "vid": "0xFFFE", + "pid": "0x0009", + "device_version": "1.0.5", + "suspend_wakeup_delay": 400, + "force_nkro": true + }, + "processor": "WB32FQ95", + "bootloader": "wb32-dfu", + "features": { + "bootmagic": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "rgb_matrix": true + }, + "dynamic_keymap": { + "layer_count": 6 + }, + "matrix_pins": { + "cols": ["C1", "C2", "C3", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "C4", "C5", "B0", "B1", "B2", "B10"], + "rows": ["B15", "C6", "C7", "C8", "C9", "A8"] + }, + "diode_direction": "ROW2COL", + "indicators": { + "caps_lock": "A15" + }, + "rgb_matrix": { + "driver": "ckled2001", + "max_brightness": 160, + "animations": { + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "raindrops": true, + "typing_heatmap": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "multisplash": true + }, + "layout":[ + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0}, + { "flags": 4, "matrix": [0, 1], "x": 24, "y": 0}, + { "flags": 4, "matrix": [0, 2], "x": 38, "y": 0}, + { "flags": 4, "matrix": [0, 3], "x": 52, "y": 0}, + { "flags": 4, "matrix": [0, 4], "x": 66, "y": 0}, + { "flags": 4, "matrix": [0, 5], "x": 82, "y": 0}, + { "flags": 4, "matrix": [0, 6], "x": 96, "y": 0}, + { "flags": 4, "matrix": [0, 7], "x":110, "y": 0}, + { "flags": 4, "matrix": [0, 8], "x":124, "y": 0}, + { "flags": 4, "matrix": [0, 9], "x":140, "y": 0}, + { "flags": 4, "matrix": [0, 10], "x":154, "y": 0}, + { "flags": 4, "matrix": [0, 11], "x":168, "y": 0}, + { "flags": 4, "matrix": [0, 12], "x":182, "y": 0}, + { "flags": 4, "matrix": [0, 14], "x":196, "y": 0}, + { "flags": 4, "matrix": [0, 15], "x":210, "y": 0}, + { "flags": 4, "matrix": [0, 16], "x":224, "y": 0}, + + { "flags": 4, "matrix": [1, 0], "x": 0, "y": 12}, + { "flags": 4, "matrix": [1, 1], "x": 13, "y": 12}, + { "flags": 4, "matrix": [1, 2], "x": 26, "y": 12}, + { "flags": 4, "matrix": [1, 3], "x": 39, "y": 12}, + { "flags": 4, "matrix": [1, 4], "x": 52, "y": 12}, + { "flags": 4, "matrix": [1, 5], "x": 65, "y": 12}, + { "flags": 4, "matrix": [1, 6], "x": 79, "y": 12}, + { "flags": 4, "matrix": [1, 7], "x": 92, "y": 12}, + { "flags": 4, "matrix": [1, 8], "x":105, "y": 12}, + { "flags": 4, "matrix": [1, 9], "x":118, "y": 12}, + { "flags": 4, "matrix": [1, 10], "x":131, "y": 12}, + { "flags": 4, "matrix": [1, 11], "x":144, "y": 12}, + { "flags": 4, "matrix": [1, 12], "x":158, "y": 12}, + { "flags": 4, "matrix": [1, 13], "x":171, "y": 12}, + { "flags": 4, "matrix": [1, 14], "x":184, "y": 12}, + { "flags": 4, "matrix": [1, 15], "x":197, "y": 12}, + { "flags": 4, "matrix": [1, 16], "x":210, "y": 12}, + + { "flags": 4, "matrix": [2, 0], "x": 0, "y": 26}, + { "flags": 4, "matrix": [2, 1], "x": 14, "y": 26}, + { "flags": 4, "matrix": [2, 2], "x": 28, "y": 26}, + { "flags": 4, "matrix": [2, 3], "x": 42, "y": 26}, + { "flags": 4, "matrix": [2, 4], "x": 56, "y": 26}, + { "flags": 4, "matrix": [2, 5], "x": 70, "y": 26}, + { "flags": 4, "matrix": [2, 6], "x": 84, "y": 26}, + { "flags": 4, "matrix": [2, 7], "x": 98, "y": 26}, + { "flags": 4, "matrix": [2, 8], "x":112, "y": 26}, + { "flags": 4, "matrix": [2, 9], "x":126, "y": 26}, + { "flags": 4, "matrix": [2, 10], "x":140, "y": 26}, + { "flags": 4, "matrix": [2, 11], "x":154, "y": 26}, + { "flags": 4, "matrix": [2, 12], "x":168, "y": 26}, + { "flags": 4, "matrix": [2, 13], "x":182, "y": 26}, + { "flags": 4, "matrix": [2, 14], "x":196, "y": 26}, + { "flags": 4, "matrix": [2, 15], "x":210, "y": 26}, + { "flags": 4, "matrix": [2, 16], "x":224, "y": 26}, + + { "flags": 4, "matrix": [3, 0], "x": 0, "y": 38}, + { "flags": 4, "matrix": [3, 1], "x": 14, "y": 38}, + { "flags": 4, "matrix": [3, 2], "x": 28, "y": 38}, + { "flags": 4, "matrix": [3, 3], "x": 42, "y": 38}, + { "flags": 4, "matrix": [3, 4], "x": 56, "y": 38}, + { "flags": 4, "matrix": [3, 5], "x": 70, "y": 38}, + { "flags": 4, "matrix": [3, 6], "x": 84, "y": 38}, + { "flags": 4, "matrix": [3, 7], "x": 98, "y": 38}, + { "flags": 4, "matrix": [3, 8], "x":112, "y": 38}, + { "flags": 4, "matrix": [3, 9], "x":126, "y": 38}, + { "flags": 4, "matrix": [3, 10], "x":140, "y": 38}, + { "flags": 4, "matrix": [3, 11], "x":154, "y": 38}, + { "flags": 4, "matrix": [3, 13], "x":182, "y": 38}, + + { "flags": 4, "matrix": [4, 0], "x": 0, "y": 51}, + { "flags": 4, "matrix": [4, 1], "x": 14, "y": 51}, + { "flags": 4, "matrix": [4, 2], "x": 28, "y": 51}, + { "flags": 4, "matrix": [4, 3], "x": 42, "y": 51}, + { "flags": 4, "matrix": [4, 4], "x": 56, "y": 51}, + { "flags": 4, "matrix": [4, 5], "x": 70, "y": 51}, + { "flags": 4, "matrix": [4, 6], "x": 84, "y": 51}, + { "flags": 4, "matrix": [4, 7], "x": 98, "y": 51}, + { "flags": 4, "matrix": [4, 8], "x":112, "y": 51}, + { "flags": 4, "matrix": [4, 9], "x":126, "y": 51}, + { "flags": 4, "matrix": [4, 10], "x":140, "y": 51}, + { "flags": 4, "matrix": [4, 13], "x":154, "y": 51}, + { "flags": 4, "matrix": [4, 15], "x":182, "y": 51}, + + { "flags": 4, "matrix": [5, 0], "x": 0, "y": 64}, + { "flags": 4, "matrix": [5, 1], "x": 14, "y": 64}, + { "flags": 4, "matrix": [5, 2], "x": 28, "y": 64}, + { "flags": 4, "matrix": [5, 5], "x": 70, "y": 64}, + { "flags": 4, "matrix": [5, 9], "x":126, "y": 64}, + { "flags": 4, "matrix": [5, 10], "x":140, "y": 64}, + { "flags": 4, "matrix": [5, 11], "x":154, "y": 64}, + { "flags": 4, "matrix": [5, 13], "x":182, "y": 64}, + { "flags": 4, "matrix": [5, 14], "x":196, "y": 64}, + { "flags": 4, "matrix": [5, 15], "x":210, "y": 64}, + { "flags": 4, "matrix": [5, 16], "x":224, "y": 64} + ] + }, + "community_layouts": ["tkl_ansi"], + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + { "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "F1", "matrix": [0, 1], "x": 2, "y": 0 }, + { "label": "F2", "matrix": [0, 2], "x": 3, "y": 0 }, + { "label": "F3", "matrix": [0, 3], "x": 4, "y": 0 }, + { "label": "F4", "matrix": [0, 4], "x": 5, "y": 0 }, + { "label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0 }, + { "label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0 }, + { "label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0 }, + { "label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0 }, + { "label": "F9", "matrix": [0, 9], "x": 11, "y": 0 }, + { "label": "F10", "matrix": [0, 10], "x": 12, "y": 0 }, + { "label": "F11", "matrix": [0, 11], "x": 13, "y": 0 }, + { "label": "F12", "matrix": [0, 12], "x": 14, "y": 0 }, + { "label": "PrtSc", "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "label": "ScrLk", "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0 }, + + { "label": "~", "matrix": [1, 0], "x": 0, "y": 1.25 }, + { "label": "!", "matrix": [1, 1], "x": 1, "y": 1.25 }, + { "label": "@", "matrix": [1, 2], "x": 2, "y": 1.25 }, + { "label": "#", "matrix": [1, 3], "x": 3, "y": 1.25 }, + { "label": "$", "matrix": [1, 4], "x": 4, "y": 1.25 }, + { "label": "%", "matrix": [1, 5], "x": 5, "y": 1.25 }, + { "label": "^", "matrix": [1, 6], "x": 6, "y": 1.25 }, + { "label": "&", "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "label": "*", "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "label": "(", "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "label": ")", "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "label": "_", "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "label": "+", "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2 }, + { "label": "Ins", "matrix": [1, 14], "x": 15.25, "y": 1.25 }, + { "label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25 }, + { "label": "PgUp", "matrix": [1, 16], "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25 }, + { "label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25 }, + { "label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25 }, + { "label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25 }, + { "label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25 }, + { "label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25 }, + { "label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25 }, + { "label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.25 }, + { "label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5 }, + { "label": "Del", "matrix": [2, 14], "x": 15.25, "y": 2.25 }, + { "label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25 }, + { "label": "PgDn", "matrix": [2, 16], "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25 }, + { "label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25 }, + { "label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25 }, + { "label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25 }, + { "label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "matrix": [4, 1], "x": 2.25, "y": 4.25 }, + { "label": "X", "matrix": [4, 2], "x": 3.25, "y": 4.25 }, + { "label": "C", "matrix": [4, 3], "x": 4.25, "y": 4.25 }, + { "label": "V", "matrix": [4, 4], "x": 5.25, "y": 4.25 }, + { "label": "B", "matrix": [4, 5], "x": 6.25, "y": 4.25 }, + { "label": "N", "matrix": [4, 6], "x": 7.25, "y": 4.25 }, + { "label": "M", "matrix": [4, 7], "x": 8.25, "y": 4.25 }, + { "label": "<", "matrix": [4, 8], "x": 9.25, "y": 4.25 }, + { "label": ">", "matrix": [4, 9], "x": 10.25, "y": 4.25 }, + { "label": "?", "matrix": [4, 10], "x": 11.25, "y": 4.25 }, + { "label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "Up", "matrix": [4, 15], "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25 }, + { "label": "Space", "matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25 }, + { "label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25 }, + { "label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25 } + ] + } + } +} diff --git a/keyboards/monsgeek/m3/keymaps/default/keymap.c b/keyboards/monsgeek/m3/keymaps/default/keymap.c new file mode 100644 index 0000000000..d075b6067f --- /dev/null +++ b/keyboards/monsgeek/m3/keymaps/default/keymap.c @@ -0,0 +1,79 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum __layers { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT_tkl_ansi( /* Base */ + KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_W] = LAYOUT_tkl_ansi( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, + _______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D), + + + [WIN_FN] = LAYOUT_tkl_ansi( /* FN */ + _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, + _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), + + [MAC_B] = LAYOUT_tkl_ansi( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_W] = LAYOUT_tkl_ansi( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, + _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D), + [MAC_FN] = LAYOUT_tkl_ansi( /* FN */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, + _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI) +}; +// clang-format on diff --git a/keyboards/monsgeek/m3/keymaps/via/keymap.c b/keyboards/monsgeek/m3/keymaps/via/keymap.c new file mode 100644 index 0000000000..d075b6067f --- /dev/null +++ b/keyboards/monsgeek/m3/keymaps/via/keymap.c @@ -0,0 +1,79 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum __layers { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT_tkl_ansi( /* Base */ + KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_W] = LAYOUT_tkl_ansi( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, + _______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D), + + + [WIN_FN] = LAYOUT_tkl_ansi( /* FN */ + _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, + _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), + + [MAC_B] = LAYOUT_tkl_ansi( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_W] = LAYOUT_tkl_ansi( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, + _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D), + [MAC_FN] = LAYOUT_tkl_ansi( /* FN */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, + _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI) +}; +// clang-format on diff --git a/keyboards/monsgeek/m3/keymaps/via/rules.mk b/keyboards/monsgeek/m3/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/monsgeek/m3/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/monsgeek/m3/m3.c b/keyboards/monsgeek/m3/m3.c new file mode 100644 index 0000000000..95bfb34789 --- /dev/null +++ b/keyboards/monsgeek/m3/m3.c @@ -0,0 +1,192 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" +// clang-format off +#ifdef RGB_MATRIX_ENABLE +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + /*row0*/ + {1, A_1, B_1, C_1}, + {1, A_2, B_2, C_2}, + {1, A_3, B_3, C_3}, + {1, A_4, B_4, C_4}, + {1, A_5, B_5, C_5}, + {1, A_6, B_6, C_6}, + {1, A_7, B_7, C_7}, + {1, A_8, B_8, C_8}, + {1, A_9, B_9, C_9}, + {1, A_10, B_10, C_10}, + {1, A_11, B_11, C_11}, + {1, A_12, B_12, C_12}, + {1, A_13, B_13, C_13}, + {1, A_14, B_14, C_14}, + {1, A_15, B_15, C_15}, + {1, A_16, B_16, C_16}, + + /*row1*/ + {0, A_1, B_1, C_1}, + {0, A_2, B_2, C_2}, + {0, A_3, B_3, C_3}, + {0, A_4, B_4, C_4}, + {0, A_5, B_5, C_5}, + {0, A_6, B_6, C_6}, + {0, A_7, B_7, C_7}, + {0, A_8, B_8, C_8}, + {0, A_9, B_9, C_9}, + {0, A_10, B_10, C_10}, + {0, A_11, B_11, C_11}, + {0, A_12, B_12, C_12}, + {0, A_13, B_13, C_13}, + {0, A_14, B_14, C_14}, + {1, D_1, E_1, F_1}, + {1, D_2, E_2, F_2}, + {1, D_3, E_3, F_3}, + + /*row2*/ + {0, D_1, E_1, F_1}, + {0, D_2, E_2, F_2}, + {0, D_3, E_3, F_3}, + {0, D_4, E_4, F_4}, + {0, D_5, E_5, F_5}, + {0, D_6, E_6, F_6}, + {0, D_7, E_7, F_7}, + {0, D_8, E_8, F_8}, + {0, D_9, E_9, F_9}, + {0, D_10, E_10, F_10}, + {0, D_11, E_11, F_11}, + {0, D_12, E_12, F_12}, + {0, D_13, E_13, F_13}, + {0, D_14, E_14, F_14}, + {1, G_1, H_1, I_1}, + {1, G_2, H_2, I_2}, + {1, G_3, H_3, I_3}, + + /*row3*/ + {0, G_1, H_1, I_1}, + {0, G_2, H_2, I_2}, + {0, G_3, H_3, I_3}, + {0, G_4, H_4, I_4}, + {0, G_5, H_5, I_5}, + {0, G_6, H_6, I_6}, + {0, G_7, H_7, I_7}, + {0, G_8, H_8, I_8}, + {0, G_9, H_9, I_9}, + {0, G_10, H_10, I_10}, + {0, G_11, H_11, I_11}, + {0, G_12, H_12, I_12}, + {0, G_13, H_13, I_13}, + + /*row4*/ + {0, J_1, K_1, L_1}, + {0, J_2, K_2, L_2}, + {0, J_3, K_3, L_3}, + {0, J_4, K_4, L_4}, + {0, J_5, K_5, L_5}, + {0, J_6, K_6, L_6}, + {0, J_7, K_7, L_7}, + {0, J_8, K_8, L_8}, + {0, J_9, K_9, L_9}, + {0, J_10, K_10, L_10}, + {0, J_11, K_11, L_11}, + {0, J_12, K_12, L_12}, + {1, J_4, K_4, L_4}, + + /*row5*/ + {0, J_13, K_13, L_13}, + {0, J_14, K_14, L_14}, + {0, J_15, K_15, L_15}, + {0, J_16, K_16, L_16}, + {0, G_14, H_14, I_14}, + {0, G_15, H_15, I_15}, + {0, G_16, H_16, I_16}, + {0, D_15, E_15, F_15}, + {1, J_1, K_1, L_1}, + {1, J_2, K_2, L_2}, + {1, J_3, K_3, L_3}, +}; +#endif // RGB_MATRIX_ENABLE + +// clang-format on +enum __layers { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN, +}; + +void matrix_init_kb(void) { + setPinOutput(LED_MAC_OS_PIN); // LDE2 MAC\WIN + writePinLow(LED_MAC_OS_PIN); + setPinOutput(LED_WIN_LOCK_PIN); // LED3 Win Lock + writePinLow(LED_WIN_LOCK_PIN); +} + +void housekeeping_task_kb(void){ + writePin(LED_MAC_OS_PIN, (get_highest_layer(default_layer_state) == 3)); + writePin(LED_WIN_LOCK_PIN, keymap_config.no_gui); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t* record) { + if (!process_record_user(keycode, record)) { + return false; + } + switch (keycode) { + case DF(WIN_B): + if (record->event.pressed) { + set_single_persistent_default_layer(WIN_B); + } + return false; + case DF(MAC_B): + if (record->event.pressed) { + set_single_persistent_default_layer(MAC_B); + keymap_config.no_gui = 0; + eeconfig_update_keymap(keymap_config.raw); + } + return false; + case GU_TOGG: + if (record->event.pressed) { + writePin(LED_WIN_LOCK_PIN, !keymap_config.no_gui); + } + return true; + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + } break; + } + } + if (!rgb_matrix_is_enabled()) { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable(); + } + return false; + default: + return true; + } +} diff --git a/keyboards/monsgeek/m3/mcuconf.h b/keyboards/monsgeek/m3/mcuconf.h new file mode 100644 index 0000000000..e2884f3828 --- /dev/null +++ b/keyboards/monsgeek/m3/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include_next + +#undef WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE + +#undef WB32_I2C_USE_I2C1 +#define WB32_I2C_USE_I2C1 TRUE diff --git a/keyboards/monsgeek/m3/readme.md b/keyboards/monsgeek/m3/readme.md new file mode 100644 index 0000000000..32e9112276 --- /dev/null +++ b/keyboards/monsgeek/m3/readme.md @@ -0,0 +1,24 @@ +# MonsGeek M3 + +A customizable 80% keyboard. + +* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986) +* Hardware Supported: MonsGeek M3 PCB +* Hardware Availability: [monsgeek](https://www.monsgeek.com/) + +Make example for this keyboard (after setting up your build environment): + + make monsgeek/m3:default + +Flashing example for this keyboard: + + make monsgeek/m3:default:flash + +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). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/monsgeek/m3/rules.mk b/keyboards/monsgeek/m3/rules.mk new file mode 100644 index 0000000000..24d5f6f52e --- /dev/null +++ b/keyboards/monsgeek/m3/rules.mk @@ -0,0 +1,2 @@ +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = spi_flash From 81e086b387814700e0f6419ccdd794286cb5246c Mon Sep 17 00:00:00 2001 From: Dasky <32983009+daskygit@users.noreply.github.com> Date: Wed, 11 Oct 2023 08:06:28 +0100 Subject: [PATCH 263/496] add missing gpio include for pointing motion pin (#22246) --- quantum/pointing_device/pointing_device.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/quantum/pointing_device/pointing_device.c b/quantum/pointing_device/pointing_device.c index abb3817b5f..17dc701a41 100644 --- a/quantum/pointing_device/pointing_device.c +++ b/quantum/pointing_device/pointing_device.c @@ -19,6 +19,8 @@ #include "pointing_device.h" #include #include "timer.h" +#include "gpio.h" + #ifdef MOUSEKEY_ENABLE # include "mousekey.h" #endif From db8b74f0162f42972b0eeef623ca0d5e5c073a3f Mon Sep 17 00:00:00 2001 From: Josh Hinnebusch Date: Wed, 11 Oct 2023 17:09:17 -0400 Subject: [PATCH 264/496] [Keyboard] Hineybush H101 (#22186) * initial h101 commit * update keymap and add via support * update doc stuff * readme typo * updates * add indicator LEDs, needs testing * update readme * update USB VID/PID to match VIA json * Update keyboards/hineybush/h101/readme.md * Update keyboards/hineybush/h101/keymaps/default/keymap.c * Update keyboards/hineybush/h101/readme.md * Update keyboards/hineybush/h101/keymaps/via/keymap.c * updates from PR comments * updates per PR comments * idk why the folder is acting weird * maybe this will fix it * update to hopefully fix everything weird * keycode fixes * keymap updates --- keyboards/hineybush/h101/info.json | 381 ++++++++++++++++++ .../hineybush/h101/keymaps/default/keymap.c | 23 ++ keyboards/hineybush/h101/keymaps/via/keymap.c | 46 +++ keyboards/hineybush/h101/keymaps/via/rules.mk | 1 + keyboards/hineybush/h101/readme.md | 27 ++ keyboards/hineybush/h101/rules.mk | 1 + 6 files changed, 479 insertions(+) create mode 100644 keyboards/hineybush/h101/info.json create mode 100644 keyboards/hineybush/h101/keymaps/default/keymap.c create mode 100644 keyboards/hineybush/h101/keymaps/via/keymap.c create mode 100644 keyboards/hineybush/h101/keymaps/via/rules.mk create mode 100644 keyboards/hineybush/h101/readme.md create mode 100644 keyboards/hineybush/h101/rules.mk diff --git a/keyboards/hineybush/h101/info.json b/keyboards/hineybush/h101/info.json new file mode 100644 index 0000000000..d1f8fa32a0 --- /dev/null +++ b/keyboards/hineybush/h101/info.json @@ -0,0 +1,381 @@ +{ + "manufacturer": "hiney", + "keyboard_name": "h101", + "maintainer": "hineybush", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B0", "B1", "B2", "B10", "B11", "B12", "A8", "A9", "A10", "A15", "B3", "B4", "B5", "B6", "B7", "B9", "A3", "F0", "F1", "A7", "A5", "A4"], + "rows": ["C13", "C14", "C15", "A0", "A1", "A2"] + }, + "processor": "STM32F072", + "url": "", + "usb": { + "device_version": "0.0.1", + "vid": "0x4069", + "pid": "0x0002" + }, + "indicators": { + "num_lock": "A6", + "caps_lock": "B14", + "scroll_lock": "B8", + "on_state": 0 + }, + "layouts": { + "LAYOUT_f13_tsangan": { + "layout": [ + {"matrix": [0,0], "label":"Esc", "x":0, "y":0}, + {"matrix": [0,1], "label":"F1", "x":1.25, "y":0}, + {"matrix": [0,2], "label":"F2", "x":2.25, "y":0}, + {"matrix": [0,3], "label":"F3", "x":3.25, "y":0}, + {"matrix": [0,4], "label":"F4", "x":4.25, "y":0}, + {"matrix": [0,5], "label":"F5", "x":5.5, "y":0}, + {"matrix": [0,6], "label":"F6", "x":6.5, "y":0}, + {"matrix": [0,7], "label":"F7", "x":7.5, "y":0}, + {"matrix": [0,8], "label":"F8", "x":8.5, "y":0}, + {"matrix": [0,9], "label":"F9", "x":9.75, "y":0}, + {"matrix": [0,11], "label":"F10", "x":10.75, "y":0}, + {"matrix": [0,12], "label":"F11", "x":11.75, "y":0}, + {"matrix": [0,13], "label":"F12", "x":12.75, "y":0}, + {"matrix": [0,14], "label":"F13", "x":14, "y":0}, + {"matrix": [0,15], "label":"PrtSc", "x":15.25, "y":0}, + {"matrix": [0,16], "label":"Scroll Lock", "x":16.25, "y":0}, + {"matrix": [0,17], "label":"Pause", "x":17.25, "y":0}, + {"matrix": [0,18], "label":"KP 1", "x":18.5, "y":0}, + {"matrix": [0,19], "label":"KP 2", "x":19.5, "y":0}, + {"matrix": [0,20], "label":"KP 3", "x":20.5, "y":0}, + {"matrix": [0,21], "label":"KP 4", "x":21.5, "y":0}, + {"matrix": [1,0], "label":"~", "x":0, "y":1.25}, + {"matrix": [1,1], "label":"!", "x":1, "y":1.25}, + {"matrix": [1,2], "label":"@", "x":2, "y":1.25}, + {"matrix": [1,3], "label":"#", "x":3, "y":1.25}, + {"matrix": [1,4], "label":"$", "x":4, "y":1.25}, + {"matrix": [1,5], "label":"%", "x":5, "y":1.25}, + {"matrix": [1,6], "label":"^", "x":6, "y":1.25}, + {"matrix": [1,7], "label":"&", "x":7, "y":1.25}, + {"matrix": [1,8], "label":"*", "x":8, "y":1.25}, + {"matrix": [1,9], "label":"(", "x":9, "y":1.25}, + {"matrix": [1,10], "label":")", "x":10, "y":1.25}, + {"matrix": [1,11], "label":"_", "x":11, "y":1.25}, + {"matrix": [1,12], "label":"+", "x":12, "y":1.25}, + {"matrix": [1,14], "label":"Backspace", "x":13, "y":1.25, "w":2}, + {"matrix": [1,15], "label":"Insert", "x":15.25, "y":1.25}, + {"matrix": [1,16], "label":"Home", "x":16.25, "y":1.25}, + {"matrix": [1,17], "label":"PgUp", "x":17.25, "y":1.25}, + {"matrix": [1,18], "label":"Num Lock", "x":18.5, "y":1.25}, + {"matrix": [1,19], "label":"/", "x":19.5, "y":1.25}, + {"matrix": [1,20], "label":"*", "x":20.5, "y":1.25}, + {"matrix": [1,21], "label":"-", "x":21.5, "y":1.25}, + {"matrix": [2,0], "label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"matrix": [2,1], "label":"Q", "x":1.5, "y":2.25}, + {"matrix": [2,2], "label":"W", "x":2.5, "y":2.25}, + {"matrix": [2,3], "label":"E", "x":3.5, "y":2.25}, + {"matrix": [2,4], "label":"R", "x":4.5, "y":2.25}, + {"matrix": [2,5], "label":"T", "x":5.5, "y":2.25}, + {"matrix": [2,6], "label":"Y", "x":6.5, "y":2.25}, + {"matrix": [2,7], "label":"U", "x":7.5, "y":2.25}, + {"matrix": [2,8], "label":"I", "x":8.5, "y":2.25}, + {"matrix": [2,9], "label":"O", "x":9.5, "y":2.25}, + {"matrix": [2,10], "label":"P", "x":10.5, "y":2.25}, + {"matrix": [2,11], "label":"{", "x":11.5, "y":2.25}, + {"matrix": [2,12], "label":"}", "x":12.5, "y":2.25}, + {"matrix": [2,13], "label":"|", "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2,15], "label":"Delete", "x":15.25, "y":2.25}, + {"matrix": [2,16], "label":"End", "x":16.25, "y":2.25}, + {"matrix": [2,17], "label":"PgDn", "x":17.25, "y":2.25}, + {"matrix": [2,18], "label":"7", "x":18.5, "y":2.25}, + {"matrix": [2,19], "label":"8", "x":19.5, "y":2.25}, + {"matrix": [2,20], "label":"9", "x":20.5, "y":2.25}, + {"matrix": [2,21], "label":"+", "x":21.5, "y":2.25, "h":2}, + {"matrix": [3,0], "label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"matrix": [3,1], "label":"A", "x":1.75, "y":3.25}, + {"matrix": [3,2], "label":"S", "x":2.75, "y":3.25}, + {"matrix": [3,3], "label":"D", "x":3.75, "y":3.25}, + {"matrix": [3,4], "label":"F", "x":4.75, "y":3.25}, + {"matrix": [3,5], "label":"G", "x":5.75, "y":3.25}, + {"matrix": [3,6], "label":"H", "x":6.75, "y":3.25}, + {"matrix": [3,7], "label":"J", "x":7.75, "y":3.25}, + {"matrix": [3,8], "label":"K", "x":8.75, "y":3.25}, + {"matrix": [3,9], "label":"L", "x":9.75, "y":3.25}, + {"matrix": [3,10], "label":":", "x":10.75, "y":3.25}, + {"matrix": [3,11], "label":"\"", "x":11.75, "y":3.25}, + {"matrix": [3,13], "label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + {"matrix": [3,18], "label":"4", "x":18.5, "y":3.25}, + {"matrix": [3,19], "label":"5", "x":19.5, "y":3.25}, + {"matrix": [3,20], "label":"6", "x":20.5, "y":3.25}, + {"matrix": [4,0], "label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"matrix": [4,2], "label":"Z", "x":2.25, "y":4.25}, + {"matrix": [4,3], "label":"X", "x":3.25, "y":4.25}, + {"matrix": [4,4], "label":"C", "x":4.25, "y":4.25}, + {"matrix": [4,5], "label":"V", "x":5.25, "y":4.25}, + {"matrix": [4,6], "label":"B", "x":6.25, "y":4.25}, + {"matrix": [4,7], "label":"N", "x":7.25, "y":4.25}, + {"matrix": [4,8], "label":"M", "x":8.25, "y":4.25}, + {"matrix": [4,9], "label":"<", "x":9.25, "y":4.25}, + {"matrix": [4,10], "label":">", "x":10.25, "y":4.25}, + {"matrix": [4,11], "label":"?", "x":11.25, "y":4.25}, + {"matrix": [4,12], "label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"matrix": [4,16], "label":"Up Arrow", "x":16.25, "y":4.25}, + {"matrix": [4,18], "label":"1", "x":18.5, "y":4.25}, + {"matrix": [4,19], "label":"2", "x":19.5, "y":4.25}, + {"matrix": [4,20], "label":"3", "x":20.5, "y":4.25}, + {"matrix": [4,21], "label":"Enter", "x":21.5, "y":4.25, "h":2}, + {"matrix": [5,0], "label":"Ctrl", "x":0, "y":5.25, "w":1.5}, + {"matrix": [5,1], "label":"Win", "x":1.5, "y":5.25}, + {"matrix": [5,2], "label":"Alt", "x":2.5, "y":5.25, "w":1.5}, + {"matrix": [5,7], "label":"Space", "x":4, "y":5.25, "w":7}, + {"matrix": [5,11], "label":"Alt", "x":11, "y":5.25, "w":1.5}, + {"matrix": [5,12], "label":"Win", "x":12.5, "y":5.25}, + {"matrix": [5,13], "label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, + {"matrix": [5,15], "label":"Left Arrow", "x":15.25, "y":5.25}, + {"matrix": [5,16], "label":"Down Arrow", "x":16.25, "y":5.25}, + {"matrix": [5,17], "label":"Right Arrow", "x":17.25, "y":5.25}, + {"matrix": [5,19], "label":"0", "x":18.5, "y":5.25, "w":2}, + {"matrix": [5,20], "label":".", "x":20.5, "y":5.25} + ] + }, + "LAYOUT_all": { + "layout": [ + {"matrix": [0,0], "label":"Esc", "x":0, "y":0}, + {"matrix": [0,1], "label":"F1", "x":1.25, "y":0}, + {"matrix": [0,2], "label":"F2", "x":2.25, "y":0}, + {"matrix": [0,3], "label":"F3", "x":3.25, "y":0}, + {"matrix": [0,4], "label":"F4", "x":4.25, "y":0}, + {"matrix": [0,5], "label":"F5", "x":5.5, "y":0}, + {"matrix": [0,6], "label":"F6", "x":6.5, "y":0}, + {"matrix": [0,7], "label":"F7", "x":7.5, "y":0}, + {"matrix": [0,8], "label":"F8", "x":8.5, "y":0}, + {"matrix": [0,9], "label":"F9", "x":9.75, "y":0}, + {"matrix": [0,11], "label":"F10", "x":10.75, "y":0}, + {"matrix": [0,12], "label":"F11", "x":11.75, "y":0}, + {"matrix": [0,13], "label":"F12", "x":12.75, "y":0}, + {"matrix": [0,14], "label":"F13", "x":14, "y":0}, + {"matrix": [0,15], "label":"PrtSc", "x":15.25, "y":0}, + {"matrix": [0,16], "label":"Scroll Lock", "x":16.25, "y":0}, + {"matrix": [0,17], "label":"Pause", "x":17.25, "y":0}, + {"matrix": [0,18], "label":"KP 1", "x":18.5, "y":0}, + {"matrix": [0,19], "label":"KP 2", "x":19.5, "y":0}, + {"matrix": [0,20], "label":"KP 3", "x":20.5, "y":0}, + {"matrix": [0,21], "label":"KP 4", "x":21.5, "y":0}, + {"matrix": [1,0], "label":"~", "x":0, "y":1.25}, + {"matrix": [1,1], "label":"!", "x":1, "y":1.25}, + {"matrix": [1,2], "label":"@", "x":2, "y":1.25}, + {"matrix": [1,3], "label":"#", "x":3, "y":1.25}, + {"matrix": [1,4], "label":"$", "x":4, "y":1.25}, + {"matrix": [1,5], "label":"%", "x":5, "y":1.25}, + {"matrix": [1,6], "label":"^", "x":6, "y":1.25}, + {"matrix": [1,7], "label":"&", "x":7, "y":1.25}, + {"matrix": [1,8], "label":"*", "x":8, "y":1.25}, + {"matrix": [1,9], "label":"(", "x":9, "y":1.25}, + {"matrix": [1,10], "label":")", "x":10, "y":1.25}, + {"matrix": [1,11], "label":"_", "x":11, "y":1.25}, + {"matrix": [1,12], "label":"+", "x":12, "y":1.25}, + {"matrix": [1,13], "label":"1U Split Bksp", "x":13, "y":1.25}, + {"matrix": [1,14], "label":"Backspace", "x":14, "y":1.25}, + {"matrix": [1,15], "label":"Insert", "x":15.25, "y":1.25}, + {"matrix": [1,16], "label":"Home", "x":16.25, "y":1.25}, + {"matrix": [1,17], "label":"PgUp", "x":17.25, "y":1.25}, + {"matrix": [1,18], "label":"Num Lock", "x":18.5, "y":1.25}, + {"matrix": [1,19], "label":"/", "x":19.5, "y":1.25}, + {"matrix": [1,20], "label":"*", "x":20.5, "y":1.25}, + {"matrix": [1,21], "label":"-", "x":21.5, "y":1.25}, + {"matrix": [2,0], "label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"matrix": [2,1], "label":"Q", "x":1.5, "y":2.25}, + {"matrix": [2,2], "label":"W", "x":2.5, "y":2.25}, + {"matrix": [2,3], "label":"E", "x":3.5, "y":2.25}, + {"matrix": [2,4], "label":"R", "x":4.5, "y":2.25}, + {"matrix": [2,5], "label":"T", "x":5.5, "y":2.25}, + {"matrix": [2,6], "label":"Y", "x":6.5, "y":2.25}, + {"matrix": [2,7], "label":"U", "x":7.5, "y":2.25}, + {"matrix": [2,8], "label":"I", "x":8.5, "y":2.25}, + {"matrix": [2,9], "label":"O", "x":9.5, "y":2.25}, + {"matrix": [2,10], "label":"P", "x":10.5, "y":2.25}, + {"matrix": [2,11], "label":"{", "x":11.5, "y":2.25}, + {"matrix": [2,12], "label":"}", "x":12.5, "y":2.25}, + {"matrix": [2,13], "label":"|", "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2,15], "label":"Delete", "x":15.25, "y":2.25}, + {"matrix": [2,16], "label":"End", "x":16.25, "y":2.25}, + {"matrix": [2,17], "label":"PgDn", "x":17.25, "y":2.25}, + {"matrix": [2,18], "label":"7", "x":18.5, "y":2.25}, + {"matrix": [2,19], "label":"8", "x":19.5, "y":2.25}, + {"matrix": [2,20], "label":"9", "x":20.5, "y":2.25}, + {"matrix": [2,21], "label":"+", "x":21.5, "y":2.25}, + {"matrix": [3,0], "label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"matrix": [3,1], "label":"A", "x":1.75, "y":3.25}, + {"matrix": [3,2], "label":"S", "x":2.75, "y":3.25}, + {"matrix": [3,3], "label":"D", "x":3.75, "y":3.25}, + {"matrix": [3,4], "label":"F", "x":4.75, "y":3.25}, + {"matrix": [3,5], "label":"G", "x":5.75, "y":3.25}, + {"matrix": [3,6], "label":"H", "x":6.75, "y":3.25}, + {"matrix": [3,7], "label":"J", "x":7.75, "y":3.25}, + {"matrix": [3,8], "label":"K", "x":8.75, "y":3.25}, + {"matrix": [3,9], "label":"L", "x":9.75, "y":3.25}, + {"matrix": [3,10], "label":":", "x":10.75, "y":3.25}, + {"matrix": [3,11], "label":"\"", "x":11.75, "y":3.25}, + {"matrix": [3,13], "label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + {"matrix": [3,18], "label":"4", "x":18.5, "y":3.25}, + {"matrix": [3,19], "label":"5", "x":19.5, "y":3.25}, + {"matrix": [3,20], "label":"6", "x":20.5, "y":3.25}, + {"matrix": [3,21], "label":"+", "x":21.5, "y":3.25}, + {"matrix": [4,0], "label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"matrix": [4,2], "label":"Z", "x":2.25, "y":4.25}, + {"matrix": [4,3], "label":"X", "x":3.25, "y":4.25}, + {"matrix": [4,4], "label":"C", "x":4.25, "y":4.25}, + {"matrix": [4,5], "label":"V", "x":5.25, "y":4.25}, + {"matrix": [4,6], "label":"B", "x":6.25, "y":4.25}, + {"matrix": [4,7], "label":"N", "x":7.25, "y":4.25}, + {"matrix": [4,8], "label":"M", "x":8.25, "y":4.25}, + {"matrix": [4,9], "label":"<", "x":9.25, "y":4.25}, + {"matrix": [4,10], "label":">", "x":10.25, "y":4.25}, + {"matrix": [4,11], "label":"?", "x":11.25, "y":4.25}, + {"matrix": [4,12], "label":"Shift", "x":12.25, "y":4.25, "w":1.75}, + {"matrix": [4,13], "label":"Fn", "x":14, "y":4.25}, + {"matrix": [4,16], "label":"Up Arrow", "x":16.25, "y":4.25}, + {"matrix": [4,18], "label":"1", "x":18.5, "y":4.25}, + {"matrix": [4,19], "label":"2", "x":19.5, "y":4.25}, + {"matrix": [4,20], "label":"3", "x":20.5, "y":4.25}, + {"matrix": [4,21], "label":"Enter", "x":21.5, "y":4.25}, + {"matrix": [5,0], "label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"matrix": [5,1], "label":"Win", "x":1.25, "y":5.25, "w":1.25}, + {"matrix": [5,2], "label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"matrix": [5,7], "label":"Space", "x":3.75, "y":5.25, "w":6.25}, + {"matrix": [5,10], "label":"Alt", "x":10, "y":5.25, "w":1.25}, + {"matrix": [5,11], "label":"Alt", "x":11.25, "y":5.25, "w":1.25}, + {"matrix": [5,12], "label":"Win", "x":12.5, "y":5.25, "w":1.25}, + {"matrix": [5,13], "label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, + {"matrix": [5,15], "label":"Left Arrow", "x":15.25, "y":5.25}, + {"matrix": [5,16], "label":"Down Arrow", "x":16.25, "y":5.25}, + {"matrix": [5,17], "label":"Right Arrow", "x":17.25, "y":5.25}, + {"matrix": [5,18], "label":"0", "x":18.5, "y":5.25}, + {"matrix": [5,19], "label":"0", "x":19.5, "y":5.25}, + {"matrix": [5,20], "label":".", "x":20.5, "y":5.25}, + {"matrix": [5,21], "label":"Enter", "x":21.5, "y":5.25} + ] + }, + "LAYOUT_f12_all": { + "layout": [ + {"matrix": [0,0], "label":"Esc", "x":0, "y":0}, + {"matrix": [0,1], "label":"F1", "x":1.25, "y":0}, + {"matrix": [0,2], "label":"F2", "x":2.25, "y":0}, + {"matrix": [0,3], "label":"F3", "x":3.25, "y":0}, + {"matrix": [0,4], "label":"F4", "x":4.25, "y":0}, + {"matrix": [0,5], "label":"F5", "x":5.5, "y":0}, + {"matrix": [0,6], "label":"F6", "x":6.5, "y":0}, + {"matrix": [0,7], "label":"F7", "x":7.5, "y":0}, + {"matrix": [0,8], "label":"F8", "x":8.5, "y":0}, + {"matrix": [0,9], "label":"F9", "x":9.75, "y":0}, + {"matrix": [0,11], "label":"F10", "x":10.75, "y":0}, + {"matrix": [0,12], "label":"F11", "x":11.75, "y":0}, + {"matrix": [0,13], "label":"F12", "x":12.75, "y":0}, + {"matrix": [0,15], "label":"PrtSc", "x":15.25, "y":0}, + {"matrix": [0,16], "label":"Scroll Lock", "x":16.25, "y":0}, + {"matrix": [0,17], "label":"Pause", "x":17.25, "y":0}, + {"matrix": [0,18], "label":"KP 1", "x":18.5, "y":0}, + {"matrix": [0,19], "label":"KP 2", "x":19.5, "y":0}, + {"matrix": [0,20], "label":"KP 3", "x":20.5, "y":0}, + {"matrix": [0,21], "label":"KP 4", "x":21.5, "y":0}, + {"matrix": [1,0], "label":"~", "x":0, "y":1.25}, + {"matrix": [1,1], "label":"!", "x":1, "y":1.25}, + {"matrix": [1,2], "label":"@", "x":2, "y":1.25}, + {"matrix": [1,3], "label":"#", "x":3, "y":1.25}, + {"matrix": [1,4], "label":"$", "x":4, "y":1.25}, + {"matrix": [1,5], "label":"%", "x":5, "y":1.25}, + {"matrix": [1,6], "label":"^", "x":6, "y":1.25}, + {"matrix": [1,7], "label":"&", "x":7, "y":1.25}, + {"matrix": [1,8], "label":"*", "x":8, "y":1.25}, + {"matrix": [1,9], "label":"(", "x":9, "y":1.25}, + {"matrix": [1,10], "label":")", "x":10, "y":1.25}, + {"matrix": [1,11], "label":"_", "x":11, "y":1.25}, + {"matrix": [1,12], "label":"+", "x":12, "y":1.25}, + {"matrix": [1,13], "label":"1U Split Bksp", "x":13, "y":1.25}, + {"matrix": [1,14], "label":"Backspace", "x":14, "y":1.25}, + {"matrix": [1,15], "label":"Insert", "x":15.25, "y":1.25}, + {"matrix": [1,16], "label":"Home", "x":16.25, "y":1.25}, + {"matrix": [1,17], "label":"PgUp", "x":17.25, "y":1.25}, + {"matrix": [1,18], "label":"Num Lock", "x":18.5, "y":1.25}, + {"matrix": [1,19], "label":"/", "x":19.5, "y":1.25}, + {"matrix": [1,20], "label":"*", "x":20.5, "y":1.25}, + {"matrix": [1,21], "label":"-", "x":21.5, "y":1.25}, + {"matrix": [2,0], "label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"matrix": [2,1], "label":"Q", "x":1.5, "y":2.25}, + {"matrix": [2,2], "label":"W", "x":2.5, "y":2.25}, + {"matrix": [2,3], "label":"E", "x":3.5, "y":2.25}, + {"matrix": [2,4], "label":"R", "x":4.5, "y":2.25}, + {"matrix": [2,5], "label":"T", "x":5.5, "y":2.25}, + {"matrix": [2,6], "label":"Y", "x":6.5, "y":2.25}, + {"matrix": [2,7], "label":"U", "x":7.5, "y":2.25}, + {"matrix": [2,8], "label":"I", "x":8.5, "y":2.25}, + {"matrix": [2,9], "label":"O", "x":9.5, "y":2.25}, + {"matrix": [2,10], "label":"P", "x":10.5, "y":2.25}, + {"matrix": [2,11], "label":"{", "x":11.5, "y":2.25}, + {"matrix": [2,12], "label":"}", "x":12.5, "y":2.25}, + {"matrix": [2,13], "label":"|", "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2,15], "label":"Delete", "x":15.25, "y":2.25}, + {"matrix": [2,16], "label":"End", "x":16.25, "y":2.25}, + {"matrix": [2,17], "label":"PgDn", "x":17.25, "y":2.25}, + {"matrix": [2,18], "label":"7", "x":18.5, "y":2.25}, + {"matrix": [2,19], "label":"8", "x":19.5, "y":2.25}, + {"matrix": [2,20], "label":"9", "x":20.5, "y":2.25}, + {"matrix": [2,21], "label":"+", "x":21.5, "y":2.25}, + {"matrix": [3,0], "label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"matrix": [3,1], "label":"A", "x":1.75, "y":3.25}, + {"matrix": [3,2], "label":"S", "x":2.75, "y":3.25}, + {"matrix": [3,3], "label":"D", "x":3.75, "y":3.25}, + {"matrix": [3,4], "label":"F", "x":4.75, "y":3.25}, + {"matrix": [3,5], "label":"G", "x":5.75, "y":3.25}, + {"matrix": [3,6], "label":"H", "x":6.75, "y":3.25}, + {"matrix": [3,7], "label":"J", "x":7.75, "y":3.25}, + {"matrix": [3,8], "label":"K", "x":8.75, "y":3.25}, + {"matrix": [3,9], "label":"L", "x":9.75, "y":3.25}, + {"matrix": [3,10], "label":":", "x":10.75, "y":3.25}, + {"matrix": [3,11], "label":"\"", "x":11.75, "y":3.25}, + {"matrix": [3,13], "label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + {"matrix": [3,18], "label":"4", "x":18.5, "y":3.25}, + {"matrix": [3,19], "label":"5", "x":19.5, "y":3.25}, + {"matrix": [3,20], "label":"6", "x":20.5, "y":3.25}, + {"matrix": [3,21], "label":"+", "x":21.5, "y":3.25}, + {"matrix": [4,0], "label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"matrix": [4,2], "label":"Z", "x":2.25, "y":4.25}, + {"matrix": [4,3], "label":"X", "x":3.25, "y":4.25}, + {"matrix": [4,4], "label":"C", "x":4.25, "y":4.25}, + {"matrix": [4,5], "label":"V", "x":5.25, "y":4.25}, + {"matrix": [4,6], "label":"B", "x":6.25, "y":4.25}, + {"matrix": [4,7], "label":"N", "x":7.25, "y":4.25}, + {"matrix": [4,8], "label":"M", "x":8.25, "y":4.25}, + {"matrix": [4,9], "label":"<", "x":9.25, "y":4.25}, + {"matrix": [4,10], "label":">", "x":10.25, "y":4.25}, + {"matrix": [4,11], "label":"?", "x":11.25, "y":4.25}, + {"matrix": [4,12], "label":"Shift", "x":12.25, "y":4.25, "w":1.75}, + {"matrix": [4,13], "label":"Fn", "x":14, "y":4.25}, + {"matrix": [4,16], "label":"Up Arrow", "x":16.25, "y":4.25}, + {"matrix": [4,18], "label":"1", "x":18.5, "y":4.25}, + {"matrix": [4,19], "label":"2", "x":19.5, "y":4.25}, + {"matrix": [4,20], "label":"3", "x":20.5, "y":4.25}, + {"matrix": [4,21], "label":"Enter", "x":21.5, "y":4.25}, + {"matrix": [5,0], "label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"matrix": [5,1], "label":"Win", "x":1.25, "y":5.25, "w":1.25}, + {"matrix": [5,2], "label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"matrix": [5,7], "label":"Space", "x":3.75, "y":5.25, "w":6.25}, + {"matrix": [5,10], "label":"Alt", "x":10, "y":5.25, "w":1.25}, + {"matrix": [5,11], "label":"Alt", "x":11.25, "y":5.25, "w":1.25}, + {"matrix": [5,12], "label":"Win", "x":12.5, "y":5.25, "w":1.25}, + {"matrix": [5,13], "label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, + {"matrix": [5,15], "label":"Left Arrow", "x":15.25, "y":5.25}, + {"matrix": [5,16], "label":"Down Arrow", "x":16.25, "y":5.25}, + {"matrix": [5,17], "label":"Right Arrow", "x":17.25, "y":5.25}, + {"matrix": [5,18], "label":"0", "x":18.5, "y":5.25}, + {"matrix": [5,19], "label":"0", "x":19.5, "y":5.25}, + {"matrix": [5,20], "label":".", "x":20.5, "y":5.25}, + {"matrix": [5,21], "label":"Enter", "x":21.5, "y":5.25} + ] + } + } +} diff --git a/keyboards/hineybush/h101/keymaps/default/keymap.c b/keyboards/hineybush/h101/keymaps/default/keymap.c new file mode 100644 index 0000000000..bc03520036 --- /dev/null +++ b/keyboards/hineybush/h101/keymaps/default/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2023 Josh Hinnebusch (@hineybush) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_f13_tsangan( + KC_ESC, 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_0, KC_PSCR, KC_SCRL, KC_PAUS, KC_MPLY, KC_MNXT, KC_VOLU, KC_VOLD, + KC_GRV, 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_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + 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_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), + + [1] = LAYOUT_f13_tsangan( + 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_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, QK_BOOT, 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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), + +}; diff --git a/keyboards/hineybush/h101/keymaps/via/keymap.c b/keyboards/hineybush/h101/keymaps/via/keymap.c new file mode 100644 index 0000000000..020042b13a --- /dev/null +++ b/keyboards/hineybush/h101/keymaps/via/keymap.c @@ -0,0 +1,46 @@ +// Copyright 2023 Josh Hinnebusch (@hineybush) +// SPDX-License-Identifier: GPL-2.0-or-later + +/* +┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ +│00 ││01 │02 │03 │04 ││05 │06 │07 │08 ││09 │0B │0C │0D ││0E │ │0F │0G │0H │ │0I │0J │0K │0L │ +└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ └───┴───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ │1F │1G │1H │ │1I │1J │1K │1L │ │1E │ 2u Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ └───────┘ ┌───┐ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │2F │2G │2H │ │2I │2J │2K │2L │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ├───┼───┼───┼───┤ │2L │ Numpad "+" +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │ │3I │3J │3K │3L │ │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ ├───┼───┼───┼───┤ ├───┤ +│40 │42 │43 │44 │45 │46 │47 │48 │49 │3A │3B │4C │4D │ │4G │ │4I │4J │4K │4L │ │ │ +├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐ ├───┼───┼───┼───┤ ┌───────┐ │4L │ Numpad Enter +│50 │51 │52 │57 │5A │5B │5C │5D │ │5F │5G │5H │ │5I │5J │5K │5L │ Numpad 0 │5J │ │ │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───┴───┴───┴───┘ └───────┘ └───┘ + ┌──────────┐ + 2.75u RShift │4C │ + └──────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│50 │51 │52 │57 │5B │5C │5D │ Tsangan/WKL +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_all( + KC_ESC, 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_0, KC_PSCR, KC_SCRL, KC_PAUS, KC_MPLY, KC_MNXT, KC_VOLU, KC_VOLD, + KC_GRV, 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_TRNS, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + 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_ENT, KC_P4, KC_P5, KC_P6, KC_TRNS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_P0, KC_PDOT, KC_TRNS), + + [1] = LAYOUT_all( + 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_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, QK_BOOT, 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_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_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), + +}; diff --git a/keyboards/hineybush/h101/keymaps/via/rules.mk b/keyboards/hineybush/h101/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/hineybush/h101/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/hineybush/h101/readme.md b/keyboards/hineybush/h101/readme.md new file mode 100644 index 0000000000..d28ce35074 --- /dev/null +++ b/keyboards/hineybush/h101/readme.md @@ -0,0 +1,27 @@ +# h101 + +![h101](https://i.imgur.com/LqmvjS1h.png) + +F13 full-size PCB with 1.25u function row Spacing. + +* Keyboard Maintainer: [hineybush](https://github.com/hineybush) +* Hardware Supported: h101 using STM32F072 +* Hardware Availability: Fossil by Carolina Mech + +Make example for this keyboard (after setting up your build environment): + + make hineybush/h101:default + +Flashing example for this keyboard: + + make hineybush/h101:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/hineybush/h101/rules.mk b/keyboards/hineybush/h101/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/hineybush/h101/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From ffcc54833d090670ea17c4054c4ad550d651f382 Mon Sep 17 00:00:00 2001 From: ClicketySplit <101202583+ClicketySplit@users.noreply.github.com> Date: Wed, 11 Oct 2023 15:33:38 -0600 Subject: [PATCH 265/496] Leeloo v2.1 revision 3 updates (#22236) --- keyboards/clickety_split/leeloo/leeloo.c | 8 +- keyboards/clickety_split/leeloo/readme.md | 18 ++-- keyboards/clickety_split/leeloo/rev3/config.h | 22 +++++ .../clickety_split/leeloo/rev3/info.json | 86 +++++++++++++++++++ keyboards/clickety_split/leeloo/rev3/rules.mk | 1 + keyboards/clickety_split/leeloo/rules.mk | 2 +- 6 files changed, 129 insertions(+), 8 deletions(-) create mode 100644 keyboards/clickety_split/leeloo/rev3/config.h create mode 100644 keyboards/clickety_split/leeloo/rev3/info.json create mode 100644 keyboards/clickety_split/leeloo/rev3/rules.mk diff --git a/keyboards/clickety_split/leeloo/leeloo.c b/keyboards/clickety_split/leeloo/leeloo.c index 3edfd9b328..3922556f5c 100644 --- a/keyboards/clickety_split/leeloo/leeloo.c +++ b/keyboards/clickety_split/leeloo/leeloo.c @@ -49,16 +49,20 @@ static void render_secondary_oled(void) { // Version Information #if defined(KEYBOARD_clickety_split_leeloo_rev1) oled_write_P(PSTR("Leeloo v1\n\n"), false); -#else +#elif defined(KEYBOARD_clickety_split_leeloo_rev2) oled_write_P(PSTR("Leeloo v2\n\n"), false); +#else + oled_write_P(PSTR("Leeloo v2.1\n\n"), false); #endif oled_write_P(PSTR("Firmware: "), false); #if defined(KEYBOARD_clickety_split_leeloo_rev1) oled_write_P(PSTR("v1.13"), false); -#else +#elif defined(KEYBOARD_clickety_split_leeloo_rev2) oled_write_P(PSTR("v2.13"), false); +#else + oled_write_P(PSTR("v2.14"), false); #endif oled_write_P(PSTR("\n"), false); diff --git a/keyboards/clickety_split/leeloo/readme.md b/keyboards/clickety_split/leeloo/readme.md index 3d42e04231..65f1069cdb 100644 --- a/keyboards/clickety_split/leeloo/readme.md +++ b/keyboards/clickety_split/leeloo/readme.md @@ -1,25 +1,33 @@ -# Clickety Split | Leeloo v2 +# Clickety Split | Leeloo v2.1 -![Leeloo v2](https://i.imgur.com/swPHS0Bh.jpg) +![Leeloo v2.1](https://i.imgur.com/swPHS0Bh.jpg) -Leeloo v2 is the evolution of Leeloo, which is a 4x6x5m ortholinear split keyboard designed, created, and sold by Clickety Split Ltd. +Leeloo v2.1 is a small evolution of Leeloo v2.0, which is a 4x6x5m ortholinear split keyboard designed, created, and sold by Clickety Split Ltd. * Keyboard Maintainer: [Clickety Split](https://github.com/ClicketySplit) -* Hardware Supported: Leeloo PCB rev1/rev2, Pro Micro, Elite-C +* Hardware Supported: Leeloo PCB rev1/rev2/rev3, Pro Micro, Elite-C * Hardware Availability: [clicketysplit.ca/pages/leeloo](https://clicketysplit.ca/pages/leeloo) + +## Differences between v2.1 and v2.0 +* Removed 8 RGB LEDs on each side, which served as backlighting. +* Added a solderable jumper to bypass circuitry used for wireless configurations with nice!nanos. +* Simplified socketing of nice!view and OLED Displays. + + # Leeloo ![Leeloo](https://i.imgur.com/x1ew17Dh.jpg) The original design and release of Leeloo. -# Sample Build Commands for Leeloo v1 and v2 +# Sample Build Commands for Leeloo v1, v2, and v2.1 Make example for this keyboard (after setting up your build environment): make clickety_split/leeloo/rev1:default make clickety_split/leeloo/rev2:default + make clickety_split/leeloo/rev3: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). \ No newline at end of file diff --git a/keyboards/clickety_split/leeloo/rev3/config.h b/keyboards/clickety_split/leeloo/rev3/config.h new file mode 100644 index 0000000000..ac93150221 --- /dev/null +++ b/keyboards/clickety_split/leeloo/rev3/config.h @@ -0,0 +1,22 @@ +/* Copyright 2023 Clickety Split Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +# define RGB_MATRIX_LED_COUNT 58 +# define RGB_MATRIX_SPLIT {29, 29} +# define RGB_DISABLE_WHEN_USB_SUSPENDED +# define SPLIT_TRANSPORT_MIRROR diff --git a/keyboards/clickety_split/leeloo/rev3/info.json b/keyboards/clickety_split/leeloo/rev3/info.json new file mode 100644 index 0000000000..9e6727a9e6 --- /dev/null +++ b/keyboards/clickety_split/leeloo/rev3/info.json @@ -0,0 +1,86 @@ +{ + "keyboard_name": "Leeloo v2.1", + "usb": { + "device_version": "0.2.1" + }, + "features": { + "rgb_matrix": true + }, + "split": { + "transport": { + "sync_matrix_state": true + } + }, + "rgblight": { + "led_count": 58, + "split": true, + "split_count": [29, 29], + "max_brightness": 115 + }, + "ws2812": { + "pin": "D3" + }, + "rgb_matrix": { + "driver": "ws2812", + "layout": [ + {"flags": 4, "matrix": [4, 5], "x": 103, "y": 48}, // L LB01 | SW29 + {"flags": 4, "matrix": [4, 4], "x": 103, "y": 64}, // L LB02 | SW28 + {"flags": 4, "matrix": [4, 3], "x": 86, "y": 64}, // L LB03 | SW27 + {"flags": 4, "matrix": [3, 5], "x": 86, "y": 48}, // L LB04 | SW24 + {"flags": 4, "matrix": [2, 5], "x": 86, "y": 32}, // L LB05 | SW18 + {"flags": 4, "matrix": [1, 5], "x": 86, "y": 15}, // L LB06 | SW12 + {"flags": 4, "matrix": [0, 5], "x": 86, "y": 0}, // L LB07 | SW6 + {"flags": 4, "matrix": [0, 4], "x": 69, "y": 0}, // L LB08 | SW5 + {"flags": 4, "matrix": [1, 4], "x": 69, "y": 16}, // L LB09 | SW11 + {"flags": 4, "matrix": [2, 4], "x": 69, "y": 32}, // L LB10 | SW17 + {"flags": 4, "matrix": [3, 4], "x": 69, "y": 48}, // L LB11 | SW23 + {"flags": 4, "matrix": [4, 2], "x": 69, "y": 64}, // L LB12 | SW26 + {"flags": 4, "matrix": [4, 1], "x": 52, "y": 64}, // L LB13 | SW25 + {"flags": 4, "matrix": [3, 3], "x": 52, "y": 48}, // L LB14 | SW22 + {"flags": 4, "matrix": [2, 3], "x": 52, "y": 32}, // L LB15 | SW16 + {"flags": 4, "matrix": [1, 3], "x": 52, "y": 16}, // L LB16 | SW10 + {"flags": 4, "matrix": [0, 3], "x": 52, "y": 0}, // L LB17 | SW4 + {"flags": 4, "matrix": [0, 2], "x": 34, "y": 0}, // L LB18 | SW3 + {"flags": 4, "matrix": [1, 2], "x": 34, "y": 16}, // L LB19 | SW9 + {"flags": 4, "matrix": [2, 2], "x": 34, "y": 32}, // L LB20 | SW15 + {"flags": 4, "matrix": [3, 2], "x": 34, "y": 48}, // L LB21 | SW21 + {"flags": 4, "matrix": [3, 1], "x": 17, "y": 48}, // L LB22 | SW20 + {"flags": 4, "matrix": [2, 1], "x": 17, "y": 32}, // L LB23 | SW14 + {"flags": 4, "matrix": [1, 1], "x": 17, "y": 16}, // L LB24 | SW8 + {"flags": 4, "matrix": [0, 1], "x": 17, "y": 0}, // L LB25 | SW2 + {"flags": 4, "matrix": [0, 0], "x": 0, "y": 0}, // L LB26 | SW1 + {"flags": 4, "matrix": [1, 0], "x": 0, "y": 16}, // L LB27 | SW7 + {"flags": 4, "matrix": [2, 0], "x": 0, "y": 32}, // L LB28 | SW13 + {"flags": 4, "matrix": [3, 0], "x": 0, "y": 48}, // L LB29 | SW19 + {"flags": 4, "matrix": [9, 5], "x": 120, "y": 48}, // R LB30 | SW58 + {"flags": 4, "matrix": [9, 4], "x": 120, "y": 64}, // R LB31 | SW57 + {"flags": 4, "matrix": [9, 3], "x": 137, "y": 64}, // R LB32 | SW56 + {"flags": 4, "matrix": [8, 5], "x": 137, "y": 48}, // R LB33 | SW53 + {"flags": 4, "matrix": [7, 5], "x": 137, "y": 32}, // R LB34 | SW47 + {"flags": 4, "matrix": [6, 5], "x": 137, "y": 15}, // R LB35 | SW41 + {"flags": 4, "matrix": [5, 5], "x": 137, "y": 0}, // R LB36 | SW35 + {"flags": 4, "matrix": [5, 4], "x": 155, "y": 0}, // R LB37 | SW34 + {"flags": 4, "matrix": [6, 4], "x": 155, "y": 16}, // R LB38 | SW40 + {"flags": 4, "matrix": [7, 4], "x": 155, "y": 32}, // R LB39 | SW46 + {"flags": 4, "matrix": [8, 4], "x": 155, "y": 48}, // R LB40 | SW52 + {"flags": 4, "matrix": [9, 2], "x": 155, "y": 64}, // R LB41 | SW55 + {"flags": 4, "matrix": [9, 1], "x": 172, "y": 64}, // R LB42 | SW54 + {"flags": 4, "matrix": [8, 3], "x": 172, "y": 48}, // R LB43 | SW51 + {"flags": 4, "matrix": [7, 3], "x": 172, "y": 32}, // R LB44 | SW45 + {"flags": 4, "matrix": [6, 3], "x": 172, "y": 16}, // R LB45 | SW39 + {"flags": 4, "matrix": [5, 3], "x": 172, "y": 0}, // R LB46 | SW33 + {"flags": 4, "matrix": [5, 2], "x": 189, "y": 0}, // R LB47 | SW32 + {"flags": 4, "matrix": [6, 2], "x": 189, "y": 16}, // R LB48 | SW38 + {"flags": 4, "matrix": [7, 2], "x": 189, "y": 32}, // R LB49 | SW44 + {"flags": 4, "matrix": [8, 2], "x": 189, "y": 48}, // R LB50 | SW50 + {"flags": 4, "matrix": [8, 1], "x": 206, "y": 48}, // R LB51 | SW49 + {"flags": 4, "matrix": [7, 1], "x": 206, "y": 32}, // R LB52 | SW43 + {"flags": 4, "matrix": [6, 1], "x": 206, "y": 16}, // R LB53 | SW37 + {"flags": 4, "matrix": [5, 1], "x": 206, "y": 0}, // R LB54 | SW31 + {"flags": 4, "matrix": [5, 0], "x": 224, "y": 0}, // R LB55 | SW30 + {"flags": 4, "matrix": [6, 0], "x": 224, "y": 16}, // R LB56 | SW36 + {"flags": 4, "matrix": [7, 0], "x": 224, "y": 32}, // R LB57 | SW42 + {"flags": 4, "matrix": [8, 0], "x": 224, "y": 48} // R LB58 | SW48 + ] + } + } diff --git a/keyboards/clickety_split/leeloo/rev3/rules.mk b/keyboards/clickety_split/leeloo/rev3/rules.mk new file mode 100644 index 0000000000..80a6663b9c --- /dev/null +++ b/keyboards/clickety_split/leeloo/rev3/rules.mk @@ -0,0 +1 @@ +# Intentionally left blank. diff --git a/keyboards/clickety_split/leeloo/rules.mk b/keyboards/clickety_split/leeloo/rules.mk index e9c33bc130..9d35960f7c 100644 --- a/keyboards/clickety_split/leeloo/rules.mk +++ b/keyboards/clickety_split/leeloo/rules.mk @@ -1,2 +1,2 @@ # Default Folder -DEFAULT_FOLDER = clickety_split/leeloo/rev2 +DEFAULT_FOLDER = clickety_split/leeloo/rev3 From 527790b000b4ffc45fe03a75421159fc690c205e Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Thu, 12 Oct 2023 04:23:50 +0100 Subject: [PATCH 266/496] add 60_(ansi|iso)_wkl* community layouts (#21811) * add 60_(ansi|iso)_tsangan_wkl* layouts * Update keymap.c * `tsangan_wkl` to `wkl` * update info.json * split backspace changes * Apply suggestions from code review --- .../60_ansi_wkl/default_60_ansi_wkl/keymap.c | 27 +++++++ layouts/default/60_ansi_wkl/info.json | 73 ++++++++++++++++++ layouts/default/60_ansi_wkl/layout.json | 5 ++ layouts/default/60_ansi_wkl/readme.md | 3 + .../keymap.c | 27 +++++++ .../60_ansi_wkl_split_bs_rshift/info.json | 75 ++++++++++++++++++ .../60_ansi_wkl_split_bs_rshift/layout.json | 5 ++ .../60_ansi_wkl_split_bs_rshift/readme.md | 3 + .../60_iso_wkl/default_60_iso_wkl/keymap.c | 27 +++++++ layouts/default/60_iso_wkl/info.json | 74 ++++++++++++++++++ layouts/default/60_iso_wkl/layout.json | 5 ++ layouts/default/60_iso_wkl/readme.md | 3 + .../keymap.c | 27 +++++++ .../60_iso_wkl_split_bs_rshift/info.json | 76 +++++++++++++++++++ .../60_iso_wkl_split_bs_rshift/layout.json | 5 ++ .../60_iso_wkl_split_bs_rshift/readme.md | 3 + layouts/default/readme.md | 60 +++++++++++++++ 17 files changed, 498 insertions(+) create mode 100644 layouts/default/60_ansi_wkl/default_60_ansi_wkl/keymap.c create mode 100644 layouts/default/60_ansi_wkl/info.json create mode 100644 layouts/default/60_ansi_wkl/layout.json create mode 100644 layouts/default/60_ansi_wkl/readme.md create mode 100644 layouts/default/60_ansi_wkl_split_bs_rshift/default_60_ansi_wkl_split_bs_rshift/keymap.c create mode 100644 layouts/default/60_ansi_wkl_split_bs_rshift/info.json create mode 100644 layouts/default/60_ansi_wkl_split_bs_rshift/layout.json create mode 100644 layouts/default/60_ansi_wkl_split_bs_rshift/readme.md create mode 100644 layouts/default/60_iso_wkl/default_60_iso_wkl/keymap.c create mode 100644 layouts/default/60_iso_wkl/info.json create mode 100644 layouts/default/60_iso_wkl/layout.json create mode 100644 layouts/default/60_iso_wkl/readme.md create mode 100644 layouts/default/60_iso_wkl_split_bs_rshift/default_60_iso_wkl_split_bs_rshift/keymap.c create mode 100644 layouts/default/60_iso_wkl_split_bs_rshift/info.json create mode 100644 layouts/default/60_iso_wkl_split_bs_rshift/layout.json create mode 100644 layouts/default/60_iso_wkl_split_bs_rshift/readme.md diff --git a/layouts/default/60_ansi_wkl/default_60_ansi_wkl/keymap.c b/layouts/default/60_ansi_wkl/default_60_ansi_wkl/keymap.c new file mode 100644 index 0000000000..1307ae1600 --- /dev/null +++ b/layouts/default/60_ansi_wkl/default_60_ansi_wkl/keymap.c @@ -0,0 +1,27 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ + * │Ctrl │ │ Alt │ │ Alt │ │ Ctrl│ + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ + */ + [0] = LAYOUT_60_ansi_wkl( + KC_GRV, 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_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL + ) +}; diff --git a/layouts/default/60_ansi_wkl/info.json b/layouts/default/60_ansi_wkl/info.json new file mode 100644 index 0000000000..9d502e4168 --- /dev/null +++ b/layouts/default/60_ansi_wkl/info.json @@ -0,0 +1,73 @@ +{ + "keyboard_name": "60% ANSI Winkeyless layout", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_60_ansi_wkl": { + "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":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":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.75}, + + {"x":0, "y":4, "w":1.5}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"x":11, "y":4, "w":1.5}, + {"x":13.5, "y":4, "w":1.5} + ] + } + } +} diff --git a/layouts/default/60_ansi_wkl/layout.json b/layouts/default/60_ansi_wkl/layout.json new file mode 100644 index 0000000000..19f5466dde --- /dev/null +++ b/layouts/default/60_ansi_wkl/layout.json @@ -0,0 +1,5 @@ +[{a:7},"","","","","","","","","","","","","",{w:2},""], +[{w:1.5},"","","","","","","","","","","","","",{w:1.5},""], +[{w:1.75},"","","","","","","","","","","","",{w:2.25},""], +[{w:2.25},"","","","","","","","","","","",{w:2.75},""], +[{w:1.5},"",{x:1,w:1.5},"",{w:7},"",{w:1.5},"",{x:1,w:1.5},""] diff --git a/layouts/default/60_ansi_wkl/readme.md b/layouts/default/60_ansi_wkl/readme.md new file mode 100644 index 0000000000..c4c7e5541f --- /dev/null +++ b/layouts/default/60_ansi_wkl/readme.md @@ -0,0 +1,3 @@ +# 60_ansi_wkl + + LAYOUT_60_ansi_wkl diff --git a/layouts/default/60_ansi_wkl_split_bs_rshift/default_60_ansi_wkl_split_bs_rshift/keymap.c b/layouts/default/60_ansi_wkl_split_bs_rshift/default_60_ansi_wkl_split_bs_rshift/keymap.c new file mode 100644 index 0000000000..4fddeeb4c5 --- /dev/null +++ b/layouts/default/60_ansi_wkl_split_bs_rshift/default_60_ansi_wkl_split_bs_rshift/keymap.c @@ -0,0 +1,27 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Del│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Sft│ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ + * │Ctrl │ │ Alt │ │ Alt │ │ Ctrl│ + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ + */ + [0] = LAYOUT_60_ansi_wkl_split_bs_rshift( + KC_GRV, 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_BSPC, KC_DEL, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL + ) +}; diff --git a/layouts/default/60_ansi_wkl_split_bs_rshift/info.json b/layouts/default/60_ansi_wkl_split_bs_rshift/info.json new file mode 100644 index 0000000000..8cc6257816 --- /dev/null +++ b/layouts/default/60_ansi_wkl_split_bs_rshift/info.json @@ -0,0 +1,75 @@ +{ + "keyboard_name": "60% ANSI Winkeyless layout with split Backspace and split Right Shift", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_60_ansi_wkl_split_bs_rshift": { + "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}, + {"x":14, "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":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":1.75}, + {"x":14, "y":3}, + + {"x":0, "y":4, "w":1.5}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"x":11, "y":4, "w":1.5}, + {"x":13.5, "y":4, "w":1.5} + ] + } + } +} diff --git a/layouts/default/60_ansi_wkl_split_bs_rshift/layout.json b/layouts/default/60_ansi_wkl_split_bs_rshift/layout.json new file mode 100644 index 0000000000..e333df5e0b --- /dev/null +++ b/layouts/default/60_ansi_wkl_split_bs_rshift/layout.json @@ -0,0 +1,5 @@ +[{a:7},"","","","","","","","","","","","","","",""], +[{w:1.5},"","","","","","","","","","","","","",{w:1.5},""], +[{w:1.75},"","","","","","","","","","","","",{w:2.25},""], +[{w:2.25},"","","","","","","","","","","",{w:1.75},"",""], +[{w:1.5},"",{x:1,w:1.5},"",{w:7},"",{w:1.5},"",{x:1,w:1.5},""] diff --git a/layouts/default/60_ansi_wkl_split_bs_rshift/readme.md b/layouts/default/60_ansi_wkl_split_bs_rshift/readme.md new file mode 100644 index 0000000000..c34c18a0ec --- /dev/null +++ b/layouts/default/60_ansi_wkl_split_bs_rshift/readme.md @@ -0,0 +1,3 @@ +# 60_ansi_wkl_split_bs_rshift + + LAYOUT_60_ansi_wkl_split_bs_rshift diff --git a/layouts/default/60_iso_wkl/default_60_iso_wkl/keymap.c b/layouts/default/60_iso_wkl/default_60_iso_wkl/keymap.c new file mode 100644 index 0000000000..a46aaf226c --- /dev/null +++ b/layouts/default/60_iso_wkl/default_60_iso_wkl/keymap.c @@ -0,0 +1,27 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ + * ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ + * │Ctrl │ │ Alt │ │ Alt │ │ Ctrl│ + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ + */ + [0] = LAYOUT_60_iso_wkl( + KC_GRV, 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_BSPC, + 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_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_RSFT, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL + ) +}; diff --git a/layouts/default/60_iso_wkl/info.json b/layouts/default/60_iso_wkl/info.json new file mode 100644 index 0000000000..2dab40bd81 --- /dev/null +++ b/layouts/default/60_iso_wkl/info.json @@ -0,0 +1,74 @@ +{ + "keyboard_name": "60% ISO Winkeyless layout", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_60_iso_wkl": { + "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":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":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}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + + {"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, "w":2.75}, + + {"x":0, "y":4, "w":1.5}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"x":11, "y":4, "w":1.5}, + {"x":13.5, "y":4, "w":1.5} + ] + } + } +} diff --git a/layouts/default/60_iso_wkl/layout.json b/layouts/default/60_iso_wkl/layout.json new file mode 100644 index 0000000000..84e7431988 --- /dev/null +++ b/layouts/default/60_iso_wkl/layout.json @@ -0,0 +1,5 @@ +[{a:7},"","","","","","","","","","","","","",{w:2},""], +[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},""], +[{w:1.75},"","","","","","","","","","","","",""], +[{w:1.25},"","","","","","","","","","","","",{w:2.75},""], +[{w:1.5},"",{x:1,w:1.5},"",{w:7},"",{w:1.5},"",{x:1,w:1.5},""] diff --git a/layouts/default/60_iso_wkl/readme.md b/layouts/default/60_iso_wkl/readme.md new file mode 100644 index 0000000000..f109450c9b --- /dev/null +++ b/layouts/default/60_iso_wkl/readme.md @@ -0,0 +1,3 @@ +# 60_iso_wkl + + LAYOUT_60_iso_wkl diff --git a/layouts/default/60_iso_wkl_split_bs_rshift/default_60_iso_wkl_split_bs_rshift/keymap.c b/layouts/default/60_iso_wkl_split_bs_rshift/default_60_iso_wkl_split_bs_rshift/keymap.c new file mode 100644 index 0000000000..b07d56ea20 --- /dev/null +++ b/layouts/default/60_iso_wkl_split_bs_rshift/default_60_iso_wkl_split_bs_rshift/keymap.c @@ -0,0 +1,27 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Del│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Sft│ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ + * │Ctrl │ │ Alt │ │ Alt │ │ Ctrl│ + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ + */ + [0] = LAYOUT_60_iso_wkl_split_bs_rshift( + KC_GRV, 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_BSPC, KC_DEL, + 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_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_RSFT, KC_RSFT, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL + ) +}; diff --git a/layouts/default/60_iso_wkl_split_bs_rshift/info.json b/layouts/default/60_iso_wkl_split_bs_rshift/info.json new file mode 100644 index 0000000000..b5a745dd45 --- /dev/null +++ b/layouts/default/60_iso_wkl_split_bs_rshift/info.json @@ -0,0 +1,76 @@ +{ + "keyboard_name": "60% ISO Winkeyless with split Backspace and split Right Shift", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_60_iso_wkl_split_bs_rshift": { + "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}, + {"x":14, "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":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}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + + {"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, "w":1.75}, + {"x":14, "y":3}, + + {"x":0, "y":4, "w":1.5}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"x":11, "y":4, "w":1.5}, + {"x":13.5, "y":4, "w":1.5} + ] + } + } +} diff --git a/layouts/default/60_iso_wkl_split_bs_rshift/layout.json b/layouts/default/60_iso_wkl_split_bs_rshift/layout.json new file mode 100644 index 0000000000..92837c330b --- /dev/null +++ b/layouts/default/60_iso_wkl_split_bs_rshift/layout.json @@ -0,0 +1,5 @@ +[{a:7},"","","","","","","","","","","","","","",""], +[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},""], +[{w:1.75},"","","","","","","","","","","","",""], +[{w:1.25},"","","","","","","","","","","","",{w:1.75},"",""], +[{w:1.5},"",{x:1,w:1.5},"",{w:7},"",{w:1.5},"",{x:1,w:1.5},""] diff --git a/layouts/default/60_iso_wkl_split_bs_rshift/readme.md b/layouts/default/60_iso_wkl_split_bs_rshift/readme.md new file mode 100644 index 0000000000..c1f4df013b --- /dev/null +++ b/layouts/default/60_iso_wkl_split_bs_rshift/readme.md @@ -0,0 +1,3 @@ +# 60_iso_wkl_split_bs_rshift + + LAYOUT_60_iso_wkl_split_bs_rshift diff --git a/layouts/default/readme.md b/layouts/default/readme.md index 439613911a..8065206c97 100644 --- a/layouts/default/readme.md +++ b/layouts/default/readme.md @@ -94,6 +94,36 @@ LAYOUT_60_ansi_tsangan └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ ``` +``` +LAYOUT_60_ansi_wkl +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ +│ │ │ │ │ │ │ │ +└─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ +``` + +``` +LAYOUT_60_ansi_wkl_split_bs_rshift +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ +│ │ │ │ │ │ │ │ +└─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ +``` + ``` LAYOUT_60_hhkb ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ @@ -154,6 +184,36 @@ LAYOUT_60_iso_tsangan └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ ``` +``` +LAYOUT_60_iso_wkl +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ +│ │ │ │ │ │ │ │ +└─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ +``` + +``` +LAYOUT_60_iso_wkl_split_bs_rshift +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ +│ │ │ │ │ │ │ │ +└─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ +``` + ``` LAYOUT_60_jis ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ From fa8940e5a66635e2b37e7df56b8d2c10e7e562a5 Mon Sep 17 00:00:00 2001 From: "Agent Blu, 006" Date: Wed, 11 Oct 2023 21:16:34 -0700 Subject: [PATCH 267/496] Keyboard change blu/vimclutch to hardware revision B. (#22247) Co-authored-by: Ryan --- keyboards/blu/vimclutch/info.json | 5 +++-- keyboards/blu/vimclutch/readme.md | 6 ++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/keyboards/blu/vimclutch/info.json b/keyboards/blu/vimclutch/info.json index bb9586b61f..cbee78735c 100644 --- a/keyboards/blu/vimclutch/info.json +++ b/keyboards/blu/vimclutch/info.json @@ -11,8 +11,9 @@ "development_board": "promicro", "diode_direction": "ROW2COL", "matrix_pins": { - "cols": ["B3", "B2", "B6"], - "rows": ["B5"] + "direct": [ + ["B3", "B2", "B6"] + ] }, "layouts": { "LAYOUT": { diff --git a/keyboards/blu/vimclutch/readme.md b/keyboards/blu/vimclutch/readme.md index bbc6b98260..94ebc18333 100644 --- a/keyboards/blu/vimclutch/readme.md +++ b/keyboards/blu/vimclutch/readme.md @@ -19,8 +19,6 @@ Here are some included keymaps and their modes to get you started: * vc_i: the same as default but using `i` instead of `a` * vim_ai: vim clutch only, selectable between `a` and `i` -Also includes a mode for single-keypress in case of "push to talk clutch" - Make example for this keyboard after setting up your development environment: make blu/vimclutch:default @@ -34,3 +32,7 @@ Flashing example for this keyboard: Reset button on the reverse side of the enclosure for initializing flashing. 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). + +## Hardware Revision Compatibility +This keyboard as-it-is in the QMK repository at the is only designed to work with Revision B (and possibly beyond!) + From ad4ecd6eb47dd3569cad8407fe85187362ffa9da Mon Sep 17 00:00:00 2001 From: 4pplet Date: Thu, 12 Oct 2023 06:43:47 +0200 Subject: [PATCH 268/496] Add Ratio60 PCB (#21609) Co-authored-by: Drashna Jaelre Co-authored-by: Duncan Sutherland Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Ryan Co-authored-by: 4pplet <4pplet@protonmail.com> Co-authored-by: 4pplet --- .../ratio60_hotswap/keymaps/default/keymap.c | 41 ++ .../ratio60_hotswap/keymaps/default/rules.mk | 1 + .../ratio60_hotswap/keymaps/via/keymap.c | 41 ++ .../ratio60_hotswap/keymaps/via/rules.mk | 2 + .../rationalist/ratio60_hotswap/readme.md | 24 ++ .../ratio60_hotswap/rev_a/config.h | 19 + .../ratio60_hotswap/rev_a/info.json | 377 ++++++++++++++++++ .../ratio60_hotswap/rev_a/rules.mk | 2 + 8 files changed, 507 insertions(+) create mode 100644 keyboards/rationalist/ratio60_hotswap/keymaps/default/keymap.c create mode 100644 keyboards/rationalist/ratio60_hotswap/keymaps/default/rules.mk create mode 100644 keyboards/rationalist/ratio60_hotswap/keymaps/via/keymap.c create mode 100644 keyboards/rationalist/ratio60_hotswap/keymaps/via/rules.mk create mode 100644 keyboards/rationalist/ratio60_hotswap/readme.md create mode 100644 keyboards/rationalist/ratio60_hotswap/rev_a/config.h create mode 100644 keyboards/rationalist/ratio60_hotswap/rev_a/info.json create mode 100644 keyboards/rationalist/ratio60_hotswap/rev_a/rules.mk diff --git a/keyboards/rationalist/ratio60_hotswap/keymaps/default/keymap.c b/keyboards/rationalist/ratio60_hotswap/keymaps/default/keymap.c new file mode 100644 index 0000000000..48d264064a --- /dev/null +++ b/keyboards/rationalist/ratio60_hotswap/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +/* +Copyright 2023 Stefan Sundin "4pplet" + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT_60_ansi_split_bs_rshift( + KC_ESC, 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_BSLS, KC_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)), + +[1] = LAYOUT_60_ansi_split_bs_rshift( + QK_BOOT, 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_DEL, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ ), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) } +}; +#endif diff --git a/keyboards/rationalist/ratio60_hotswap/keymaps/default/rules.mk b/keyboards/rationalist/ratio60_hotswap/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/rationalist/ratio60_hotswap/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/rationalist/ratio60_hotswap/keymaps/via/keymap.c b/keyboards/rationalist/ratio60_hotswap/keymaps/via/keymap.c new file mode 100644 index 0000000000..9fd68711a3 --- /dev/null +++ b/keyboards/rationalist/ratio60_hotswap/keymaps/via/keymap.c @@ -0,0 +1,41 @@ +/* +Copyright 2023 Stefan Sundin "4pplet" + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT_60_ansi_split_bs_rshift( + KC_ESC, 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_BSLS, KC_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)), + +[1] = LAYOUT_60_ansi_split_bs_rshift( + QK_BOOT, 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_DEL, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) } +}; +#endif diff --git a/keyboards/rationalist/ratio60_hotswap/keymaps/via/rules.mk b/keyboards/rationalist/ratio60_hotswap/keymaps/via/rules.mk new file mode 100644 index 0000000000..f1adcab005 --- /dev/null +++ b/keyboards/rationalist/ratio60_hotswap/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/rationalist/ratio60_hotswap/readme.md b/keyboards/rationalist/ratio60_hotswap/readme.md new file mode 100644 index 0000000000..7085b84843 --- /dev/null +++ b/keyboards/rationalist/ratio60_hotswap/readme.md @@ -0,0 +1,24 @@ +# Rati(o)60 + +A 60% hot swap PCB for both tray mount and o-ring mount + +* Keyboard Maintainer: [4pplet](https://github.com/4pplet) +* Hardware Supported: Rati(o)60 Rev A + +Make example for this keyboard (after setting up your build environment): + + make rationalist/ratio60_hotswap/rev_a:default + +Flashing example for this keyboard: + + make rationalist/ratio60_hotswap/rev_a:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down Escape and plug in the keyboard +* **Physical reset button**: Press and hold the button on the back of the PCB or short the reset header for about 3 seconds then release the buttom/remove the short +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/rationalist/ratio60_hotswap/rev_a/config.h b/keyboards/rationalist/ratio60_hotswap/rev_a/config.h new file mode 100644 index 0000000000..eb7d87e083 --- /dev/null +++ b/keyboards/rationalist/ratio60_hotswap/rev_a/config.h @@ -0,0 +1,19 @@ +/* +Copyright 2023 Stefan Sundin "4pplet" + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once + +#define WS2812_EXTERNAL_PULLUP diff --git a/keyboards/rationalist/ratio60_hotswap/rev_a/info.json b/keyboards/rationalist/ratio60_hotswap/rev_a/info.json new file mode 100644 index 0000000000..5d3763d52d --- /dev/null +++ b/keyboards/rationalist/ratio60_hotswap/rev_a/info.json @@ -0,0 +1,377 @@ +{ + "manufacturer": "Rationalist", + "keyboard_name": "Rati(o)60 Hotswap Rev A", + "maintainer": "4pplet", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "A1", "pin_b": "A0", "resolution": 2} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["B2", "A4", "A3", "A2", "F1", "F0", "C15", "C14", "C13", "B9", "B8", "B7", "A15", "B3"], + "rows": ["B14", "A9", "B6", "B5", "B4"] + }, + "processor": "STM32F072", + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "led_count": 16 + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x0003", + "vid": "0x4446" + }, + "ws2812": { + "pin": "A8" + }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_hhkb", "60_tsangan_hhkb"], + "layouts": { + "LAYOUT_60_ansi": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 8], "x": 10, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [1, 13], "x": 14, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 8], "x": 10, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [1, 13], "x": 14, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [1, 13], "x": 14, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/rationalist/ratio60_hotswap/rev_a/rules.mk b/keyboards/rationalist/ratio60_hotswap/rev_a/rules.mk new file mode 100644 index 0000000000..04fe1eba2a --- /dev/null +++ b/keyboards/rationalist/ratio60_hotswap/rev_a/rules.mk @@ -0,0 +1,2 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF From 007c0c1db4def95cc667d4220de79b54011e206d Mon Sep 17 00:00:00 2001 From: Alin Marin Elena Date: Thu, 12 Oct 2023 06:26:20 +0100 Subject: [PATCH 269/496] Updates to mlego m65 (#20220) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/mlego/m65/config.h | 21 -- keyboards/mlego/m65/info.json | 84 ----- keyboards/mlego/m65/keymaps/default/config.h | 18 +- keyboards/mlego/m65/keymaps/default/keymap.c | 94 +----- keyboards/mlego/m65/keymaps/default/rules.mk | 1 + keyboards/mlego/m65/keymaps/dk/config.h | 20 -- keyboards/mlego/m65/keymaps/dk/keymap.c | 121 -------- keyboards/mlego/m65/keymaps/dk/readme.md | 13 - keyboards/mlego/m65/keymaps/uk/config.h | 27 +- keyboards/mlego/m65/keymaps/uk/keymap.c | 308 +++++++------------ keyboards/mlego/m65/keymaps/uk/rules.mk | 1 + keyboards/mlego/m65/keymaps/via/config.h | 20 -- keyboards/mlego/m65/keymaps/via/keymap.c | 118 ------- keyboards/mlego/m65/keymaps/via/rules.mk | 1 - keyboards/mlego/m65/lib/glcdfont.c | 233 +------------- keyboards/mlego/m65/m65.c | 249 ++++++++------- keyboards/mlego/m65/m65.h | 169 +++------- keyboards/mlego/m65/readme.md | 2 +- keyboards/mlego/m65/rev1/config.h | 21 +- keyboards/mlego/m65/rev1/info.json | 132 ++++++-- keyboards/mlego/m65/rev1/mcuconf.h | 22 +- keyboards/mlego/m65/rev1/rules.mk | 14 +- keyboards/mlego/m65/rev2/board.h | 17 +- keyboards/mlego/m65/rev2/config.h | 21 +- keyboards/mlego/m65/rev2/info.json | 131 ++++++-- keyboards/mlego/m65/rev2/mcuconf.h | 22 +- keyboards/mlego/m65/rev2/rules.mk | 14 +- keyboards/mlego/m65/rev3/config.h | 21 +- keyboards/mlego/m65/rev3/halconf.h | 22 +- keyboards/mlego/m65/rev3/info.json | 133 ++++++-- keyboards/mlego/m65/rev3/mcuconf.h | 22 +- keyboards/mlego/m65/rev3/rules.mk | 14 +- keyboards/mlego/m65/rev4/config.h | 30 +- keyboards/mlego/m65/rev4/halconf.h | 22 +- keyboards/mlego/m65/rev4/info.json | 135 ++++++-- keyboards/mlego/m65/rev4/mcuconf.h | 22 +- keyboards/mlego/m65/rev4/rules.mk | 15 - 37 files changed, 822 insertions(+), 1508 deletions(-) delete mode 100644 keyboards/mlego/m65/config.h delete mode 100644 keyboards/mlego/m65/info.json create mode 100644 keyboards/mlego/m65/keymaps/default/rules.mk delete mode 100644 keyboards/mlego/m65/keymaps/dk/config.h delete mode 100644 keyboards/mlego/m65/keymaps/dk/keymap.c delete mode 100644 keyboards/mlego/m65/keymaps/dk/readme.md delete mode 100644 keyboards/mlego/m65/keymaps/via/config.h delete mode 100644 keyboards/mlego/m65/keymaps/via/keymap.c delete mode 100644 keyboards/mlego/m65/keymaps/via/rules.mk diff --git a/keyboards/mlego/m65/config.h b/keyboards/mlego/m65/config.h deleted file mode 100644 index bdb0c16621..0000000000 --- a/keyboards/mlego/m65/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2021-2022 Alin M Elena - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define LOCKING_SUPPORT_ENABLE -#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/mlego/m65/info.json b/keyboards/mlego/m65/info.json deleted file mode 100644 index c032cda3fe..0000000000 --- a/keyboards/mlego/m65/info.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "keyboard_name": "m65", - "manufacturer": "Alin Elena", - "url": "https://gitlab.com/m-lego/m65", - "maintainer": "alin elena", - "usb": { - "vid": "0xBABA" - }, - "layouts": { - "LAYOUT_ortho_5x13": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - {"matrix": [1, 11], "x": 11, "y": 1}, - {"matrix": [1, 12], "x": 12, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2}, - {"matrix": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [2, 8], "x": 8, "y": 2}, - {"matrix": [2, 9], "x": 9, "y": 2}, - {"matrix": [2, 10], "x": 10, "y": 2}, - {"matrix": [2, 11], "x": 11, "y": 2}, - {"matrix": [2, 12], "x": 12, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3}, - {"matrix": [3, 1], "x": 1, "y": 3}, - {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [3, 6], "x": 6, "y": 3}, - {"matrix": [3, 7], "x": 7, "y": 3}, - {"matrix": [3, 8], "x": 8, "y": 3}, - {"matrix": [3, 9], "x": 9, "y": 3}, - {"matrix": [3, 10], "x": 10, "y": 3}, - {"matrix": [3, 11], "x": 11, "y": 3}, - {"matrix": [3, 12], "x": 12, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 2], "x": 2, "y": 4}, - {"matrix": [4, 3], "x": 3, "y": 4}, - {"matrix": [4, 4], "x": 4, "y": 4}, - {"matrix": [4, 5], "x": 5, "y": 4}, - {"matrix": [4, 6], "x": 6, "y": 4}, - {"matrix": [4, 7], "x": 7, "y": 4}, - {"matrix": [4, 8], "x": 8, "y": 4}, - {"matrix": [4, 9], "x": 9, "y": 4}, - {"matrix": [4, 10], "x": 10, "y": 4}, - {"matrix": [4, 11], "x": 11, "y": 4}, - {"matrix": [4, 12], "x": 12, "y": 4} - ] - } - } -} diff --git a/keyboards/mlego/m65/keymaps/default/config.h b/keyboards/mlego/m65/keymaps/default/config.h index 637c0a8faf..dba9c658ae 100644 --- a/keyboards/mlego/m65/keymaps/default/config.h +++ b/keyboards/mlego/m65/keymaps/default/config.h @@ -1,19 +1,5 @@ -/* -Copyright 2021-2022 Alin M Elena - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ +// Copyright 2020-2023 alin m elena (@alinelena) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once diff --git a/keyboards/mlego/m65/keymaps/default/keymap.c b/keyboards/mlego/m65/keymaps/default/keymap.c index 00e144e221..d7421f659c 100644 --- a/keyboards/mlego/m65/keymaps/default/keymap.c +++ b/keyboards/mlego/m65/keymaps/default/keymap.c @@ -1,19 +1,5 @@ -/* -Copyright 2021-2022 Alin M Elena - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ +// Copyright 2020-2023 alin m elena (@alinelena) +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H @@ -51,69 +37,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; // clang-format on -bool led_update_user(led_t led_state) { - // Disable the default LED update code, so that lock LEDs could be reused to show layer status. - return false; -} - -void matrix_scan_user(void) { - - toggle_leds(); - -} - -bool process_record_user(uint16_t keycode, keyrecord_t* record) { - switch (keycode) { - case (TT(_LWR)): - if (!record->event.pressed && record->tap.count == TAPPING_TOGGLE) { - // This runs before the TT() handler toggles the layer state, so the current layer state is the opposite of the final one after toggle. - set_led_toggle(_LWR, !layer_state_is(_LWR)); - } - return true; - break; - case (TT(_RSE)): - if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) { - set_led_toggle(_RSE, !layer_state_is(_RSE)); - } - return true; - break; - default: - return true; - } -} - -layer_state_t layer_state_set_user(layer_state_t state) { - -#ifdef RGBLIGHT_ENABLE - - set_rgb_layers(state); - +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_QW] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, +#if defined(RGBLIGHT_ENABLE) + [_LWR] = {ENCODER_CCW_CW(RGB_HUD, RGB_HUI)}, + [_RSE] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [_ADJ] = {ENCODER_CCW_CW(RGB_RMOD, RGB_MOD)}, +# else + [_LWR] = {ENCODER_CCW_CW(KC_MNXT, KC_MPRV)}, + [_RSE] = {ENCODER_CCW_CW(KC_MFFD, KC_MRWD)}, + [_ADJ] = {ENCODER_CCW_CW(KC_PGDN, KC_PGUP)}, #endif - - return update_tri_layer_state(state, _LWR, _RSE, _ADJ); -} - -#ifdef RGBLIGHT_ENABLE - -layer_state_t default_layer_state_set_user(layer_state_t state) { - set_default_rgb_layers(state); - return state; -} - +}; #endif - -void keyboard_post_init_user(void) { - -#ifdef RGBLIGHT_ENABLE - - // Enable the LED layers - rgblight_layers = my_rgb(); - -#endif - -#ifdef OLED_ENABLE - - init_timer(); - -#endif -} diff --git a/keyboards/mlego/m65/keymaps/default/rules.mk b/keyboards/mlego/m65/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/mlego/m65/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mlego/m65/keymaps/dk/config.h b/keyboards/mlego/m65/keymaps/dk/config.h deleted file mode 100644 index 637c0a8faf..0000000000 --- a/keyboards/mlego/m65/keymaps/dk/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2021-2022 Alin M Elena - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define TAPPING_TOGGLE 2 diff --git a/keyboards/mlego/m65/keymaps/dk/keymap.c b/keyboards/mlego/m65/keymaps/dk/keymap.c deleted file mode 100644 index 2bf20bf2f6..0000000000 --- a/keyboards/mlego/m65/keymaps/dk/keymap.c +++ /dev/null @@ -1,121 +0,0 @@ -/* -Copyright 2021-2022 Alin M Elena - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H -#include "keymap_danish.h" - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_QW] = LAYOUT_ortho_5x13( - KC_ESC, DK_1 , DK_2 , DK_3 , DK_4 , DK_5 , DK_6 , DK_7 , DK_8 , DK_9 , DK_0 , DK_PLUS, KC_BSPC , - KC_TAB, DK_Q , DK_W , DK_E , DK_R , DK_T , DK_Y , DK_U , DK_I , DK_O , DK_P , DK_ARNG, DK_DIAE , - DK_QUOT, DK_A , DK_S , DK_D , DK_F , DK_G , DK_H , DK_J , DK_K , DK_L , DK_AE , DK_OSTR, KC_ENT , - SC_LSPO, DK_LABK, DK_Z , DK_X , DK_C , DK_V , DK_B , DK_N , DK_M , DK_COMM, DK_DOT , KC_UP , DK_MINS , - KC_LCTL, KC_LGUI, TT(_LWR), KC_LALT, TT(_RSE), KC_SPC, KC_SPC, KC_SPC, KC_RALT, SC_RSPC, KC_LEFT, KC_DOWN, KC_RGHT), - - [_LWR] = LAYOUT_ortho_5x13( - DK_HALF, KC_MUTE, KC_VOLU, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, G(KC_P), KC_SLEP, KC_WAKE, KC_PSCR, KC_DEL , DK_ACUT , - KC_BTN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - KC_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - _______, KC_BTN1, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_U, _______ , - _______, KC_BTN4, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R), - - [_RSE] = LAYOUT_ortho_5x13( - KC_ESC , 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_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_U, _______ , - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_R), - - [_ADJ] = LAYOUT_ortho_5x13( - RGB_MOD,RGB_RMOD, A(KC_F2), _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_T, RGB_M_SW , - RGB_HUI, RGB_HUD, RGB_M_P , _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, RGB_M_SN , - RGB_SAI, RGB_SAD, RGB_M_B , _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_K , - RGB_VAI, RGB_VAD, RGB_M_R , _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_X , - RGB_TOG, _______, _______ , _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_TW, RGB_M_G), - -}; -// clang-format on - -bool led_update_user(led_t led_state) { - // Disable the default LED update code, so that lock LEDs could be reused to show layer status. - return false; -} - -void matrix_scan_user(void) { - - toggle_leds(); - -} - -bool process_record_user(uint16_t keycode, keyrecord_t* record) { - switch (keycode) { - case (TT(_LWR)): - if (!record->event.pressed && record->tap.count == TAPPING_TOGGLE) { - // This runs before the TT() handler toggles the layer state, so the current layer state is the opposite of the final one after toggle. - set_led_toggle(_LWR, !layer_state_is(_LWR)); - } - return true; - break; - case (TT(_RSE)): - if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) { - set_led_toggle(_RSE, !layer_state_is(_RSE)); - } - return true; - break; - default: - return true; - } -} - -layer_state_t layer_state_set_user(layer_state_t state) { - -#ifdef RGBLIGHT_ENABLE - - set_rgb_layers(state); - -#endif - - return update_tri_layer_state(state, _LWR, _RSE, _ADJ); -} - -#ifdef RGBLIGHT_ENABLE - -layer_state_t default_layer_state_set_user(layer_state_t state) { - set_default_rgb_layers(state); - return state; -} - -#endif - -void keyboard_post_init_user(void) { - -#ifdef RGBLIGHT_ENABLE - - // Enable the LED layers - rgblight_layers = my_rgb(); - -#endif - -#ifdef OLED_ENABLE - - init_timer(); - -#endif - -} diff --git a/keyboards/mlego/m65/keymaps/dk/readme.md b/keyboards/mlego/m65/keymaps/dk/readme.md deleted file mode 100644 index 76ecd8c139..0000000000 --- a/keyboards/mlego/m65/keymaps/dk/readme.md +++ /dev/null @@ -1,13 +0,0 @@ -![M65 Layout Image](https://i.imgur.com/RQqsM4gh.png) - -# Default M65 Layout - -This is the Danish keymap for M65. For the most part it's a straightforward and easy to follow layout inspired by ISO with a DK -turn. The only unusual key is the key in the upper left, which sends Escape normally, but Grave when in layer 1 aka LWR. Similarly -number row in layer 1 give the usual audio KC_GRV, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_AUDIO_VOL_DOWN, KC_MEDIA_PREV_TRACK, -KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, M_EXTDISP, KC_SYSTEM_SLEEP, KC_SYSTEM_WAKE, KC_PRINT_SCREEN, KC_DEL, DK_ACUT in layer 2 aka -RSE one gets F1-F12 mouse emulation can be used in layer 1 and 2. - -flashing is done by LWR+RSE+r - -full layout below see in keymap.c diff --git a/keyboards/mlego/m65/keymaps/uk/config.h b/keyboards/mlego/m65/keymaps/uk/config.h index b0c6cfd639..c1f9816c99 100644 --- a/keyboards/mlego/m65/keymaps/uk/config.h +++ b/keyboards/mlego/m65/keymaps/uk/config.h @@ -1,29 +1,14 @@ -/* -Copyright 2021-2022 Alin M Elena - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ +// Copyright 2020-2023 alin m elena (@alinelena) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once #define TAPPING_TOGGLE 2 -#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX -//#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX, UNICODE_MODE_MACOS, UNICODE_MODE_WINCOMPOSE +#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX, UNICODE_MODE_MACOS, UNICODE_MODE_WINDOWS, UNICODE_MODE_WINCOMPOSE #ifdef WPM_ENABLE -#define WPM_SAMPLE_SECONDS 10 -#define WPM_SAMPLE_PERIODS 100 -#define WPM_ALLOW_COUNT_REGRESSION +# define WPM_SAMPLE_SECONDS 10 +# define WPM_SAMPLE_PERIODS 100 +# define WPM_ALLOW_COUNT_REGRESSION #endif diff --git a/keyboards/mlego/m65/keymaps/uk/keymap.c b/keyboards/mlego/m65/keymaps/uk/keymap.c index ee48872433..e021756cdd 100644 --- a/keyboards/mlego/m65/keymaps/uk/keymap.c +++ b/keyboards/mlego/m65/keymaps/uk/keymap.c @@ -1,106 +1,101 @@ -/* -Copyright 2021-2022 Alin M Elena - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ +// Copyright 2020-2023 alin m elena (@alinelena) +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H #include "keymap_uk.h" -#ifdef CONSOLE_ENABLE - -#include "print.h" - -#endif - const uint32_t unicode_map[] PROGMEM = { - [la] = 0x03B1 , // α - [lA] = 0x0391 , // Α - [lb] = 0x03B2 , // β - [lB] = 0x0392 , // Β - [lc] = 0x03C7 , // χ - [lC] = 0x0307 , // - [ld] = 0x03B4 , // δ - [lD] = 0x2202 , // ∂ - [le] = 0x03B5 , // ε - [lE] = 0x2107 , // ℇ - [lf] = 0x03C6 , // φ - [lF] = 0x03C8 , // ψ - [lg] = 0x03B3 , // γ - [lG] = 0x0393 , // Γ - [lh] = 0x210F , // ℏ - [lH] = 0x1D4D7, // 𝓗 - [li] = 0x222B , // ∫ - [lI] = 0x222E , // ∮ - [lj] = 0x2208 , // ∈ - [lJ] = 0x2209 , // ∉ - [lk] = 0x03F0 , // ϰ - [lK] = 0x2206 , // ∆ - [ll] = 0x03BB , // λ - [lL] = 0x039B , // Λ - [lm] = 0x03BC , // μ - [lM] = 0x2218 , // ∘ - [ln] = 0x03B7 , // η - [lN] = 0x222A , // ∪ - [lo] = 0x221E , // ∞ - [lO] = 0x2297 , // ⊗ - [lp] = 0x03C0 , // π - [lP] = 0x220F , // ∏ - [lq] = 0x03C3 , // σ - [lQ] = 0x03D5 , // ϕ - [lr] = 0x03C1 , // ρ - [lR] = 0x2207 , // ∇ - [ls] = 0x2211 , // ∑ - [lS] = 0x2A0B , // ⨋ - [lt] = 0x03D1 , // ϑ - [lT] = 0x03B8 , // θ - [lu] = 0x03C4 , // τ - [lU] = 0x2102 , // ℂ - [lv] = 0x03BD , // χ - [lV] = 0x039D , // Ν - [lw] = 0x03C9 , // ω - [lW] = 0x03A9 , // Ω - [lx] = 0x03BE , // ξ - [lX] = 0x039E , // Ξ - [ly] = 0x211d , // ℝ - [lY] = 0x2124 , // ℤ - [lz] = 0x03B6 , // ζ - [lZ] = 0x2221 , // ∡ - [lc1] = 0x224A , // ≊ - [lC1] = 0x2248 , // ≈ - [lp1] = 0x00B1 , // ± - [lP1] = 0x2213 , // ∓ - [lq1] = 0x00D7 , // × - [lQ1] = 0x22C5 , // ⋅ - [ll1] = 0x1D53C, // 𝔼 - [lL1] = 0x212b , // Å - [lk1] = 0x221D , // ∝ - [lK1] = 0x2112 , // ℒ - [ra] = 0x0103 , // ă - [rA] = 0x0102 , // Ă - [ra1] = 0x00E2 , // â - [rA1] = 0x00C2 , // Â - [rc] = 0x00E7 , // ç - [rC] = 0x00C7 , // Ç - [ri] = 0x00EE , // î - [rI] = 0x00CE , // Î - [rs] = 0x0219 , // ș - [rS] = 0x0218 , // Ș - [rt] = 0x021B , // ț - [rT] = 0x021A , // Ț + [la] = 0x03B1, // α + [lA] = 0x0307, // + [lb] = 0x03B2, // β + [lB] = 0x2229, // ∩ + [lc] = 0x03C7, // χ + [lC] = 0x2282, // ⊂ + [ld] = 0x03B4, // δ + [lD] = 0x2202, // ∂ + [le] = 0x03B5, // ε + [lE] = 0x2107, // ℇ + [lf] = 0x03C6, // φ + [lF] = 0x03C8, // ψ + [lg] = 0x03B3, // γ + [lG] = 0x0393, // Γ + [lh] = 0x210F, // ℏ + [lH] = 0x1D4D7, // 𝓗 + [li] = 0x222B, // ∫ + [lI] = 0x222E, // ∮ + [lj] = 0x2208, // ∈ + [lJ] = 0x2209, // ∉ + [lk] = 0x03F0, // ϰ + [lK] = 0x2206, // ∆ + [ll] = 0x03BB, // λ + [lL] = 0x039B, // Λ + [lm] = 0x03BC, // μ + [lM] = 0x2218, // ∘ + [ln] = 0x03B7, // η + [lN] = 0x222A, // ∪ + [lo] = 0x221E, // ∞ + [lO] = 0x2297, // ⊗ + [lp] = 0x03C0, // π + [lP] = 0x220F, // ∏ + [lq] = 0x03C3, // σ + [lQ] = 0x03D5, // ϕ + [lr] = 0x03C1, // ρ + [lR] = 0x2207, // ∇ + [ls] = 0x2211, // ∑ + [lS] = 0x2A0B, // ⨋ + [lt] = 0x03D1, // ϑ + [lT] = 0x03B8, // θ + [lu] = 0x03C4, // τ + [lU] = 0x2102, // ℂ + [lv] = 0x03BD, // χ + [lV] = 0x2283, // ⊃ + [lw] = 0x03C9, // ω + [lW] = 0x03A9, // Ω + [lx] = 0x03BE, // ξ + [lX] = 0x039E, // Ξ + [ly] = 0x211d, // ℝ + [lY] = 0x2124, // ℤ + [lz] = 0x03B6, // ζ + [lZ] = 0x2221, // ∡ + [lc1] = 0x2248, // ≈ + [lC1] = 0x2249, // ≉ + [lp1] = 0x00B1, // ± + [lP1] = 0x2213, // ∓ + [lq1] = 0x00D7, // × + [lQ1] = 0x22C5, // ⋅ + [ll1] = 0x1D53C, // 𝔼 + [lL1] = 0x212b, // Å + [lk1] = 0x221D, // ∝ + [lK1] = 0x2112, // ℒ + [lbo1] = 0x22DC, // ⋜ + [lbo2] = 0x2260, // ≠ + [lbc1] = 0x22DD, // ⋝ + [lbc2] = 0x2245, // ≅ + [ls1] = 0x2261, // ≡ + [ls2] = 0x2262, // ≢ + [ra] = 0x0103, // ă + [rA] = 0x0102, // Ă + [ra1] = 0x00E2, // â + [rA1] = 0x00C2, // Â + [rx] = 0x00E7, // ç + [rX] = 0x00C7, // Ç + [ri] = 0x00EE, // î + [rI] = 0x00CE, // Î + [rs] = 0x0219, // ș⊄ + [rS] = 0x0218, // Ș + [rt] = 0x021B, // ț + [rT] = 0x021A, // Ț + [rc] = 0x2284, // ⊄ + [rC] = 0x2286, // ⊆ + [rv] = 0x2285, // ⊅ + [rV] = 0x2287, // ⊇ + [rb] = 0x2227, // ∧ + [rB] = 0x22BC, // ⊼ + [rn] = 0x2228, // ∨ + [rN] = 0x22BB, // ⊻ }; + // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* @@ -161,29 +156,29 @@ altgr shift symbols KC_LCTL, KC_LGUI, TT(_LWR), KC_LALT, TT(_RSE), KC_SPC, KC_SPC, KC_SPC, KC_RALT, SC_RSPC, KC_LEFT, KC_DOWN, KC_RGHT), /* -lower layer +raise layer * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ * │ ` │MUT│Vup│Vdn│prv│ply│nxt│EXT│SLP│WAK│PSC│ ⌫ │ = │ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ - * │ │ σ │ ω │ ε │ ρ │ ϑ │ ℝ │ τ │ ∫ │ ∞ │ π │ [ │ ] │ + * │ │ σ │ ω │ ε │ ρ │ ϑ │ ℝ │ τ │ ∫ │ ∞ │ π │ ⋜ │ ⋝ │ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ * │ │ α │ ∑ │ δ │ φ │ γ │ ℏ │ ∈ │ ϰ │ λ │ 𝔼 │ ∝ │ ⏎ │ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ - * │ ⇧(│ │ ζ │ ξ │ χ │ ν │ β │ η │ μ │ ≊ │ ± │ │ × │ + * │ ⇧(│ ≡ │ ζ │ ξ │ χ │ ν │ β │ η │ μ │ ≈ │ ± │ │ × │ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ - * │ ⎈ │ │lwr│⎇ │rse│ │ │ │⎇ │ ⇧)│ │ │ │ + * │ │ │lwr│⎇ │rse│ │ │ │⎇ │ ⇧)│ │ │ │ * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ -lower layer shifted +raise layer shifted * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │ ¬ │ │ │ │ │ │ │ │ │ │ │ ⌫ │ = │ + * │ ¬ │ │ │ │ │ │ │ │ │ │ │ ⌫ │ + │ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ - * │MB3│ ϕ │ Ω │ ℇ │ ∇ │ θ │ ℤ │ ℂ │ ∮ │ ⊗ │ ∏ │ { │ } │ + * │MB3│ ϕ │ Ω │ ℇ │ ∇ │ θ │ ℤ │ ℂ │ ∮ │ ⊗ │ ∏ │ ≠ │ ≅ │ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ - * │MB2│ Α │ ⨋ │ ∂ │ ψ │ Γ │ 𝓗 │ ∉ │ ∆ │ Λ │ Å │ ℒ │ ⏎ │ + * │MB2│ ̇ │ ⨋ │ ∂ │ ψ │ Γ │ 𝓗 │ ∉ │ ∆ │ Λ │ Å │ ℒ │ ⏎ │ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ - * │ ⇧(│MB1│ ∡ │ Ξ │ ̇ │ Ν │ Β │ ∪ │ ∘ │ ≈ │ ∓ │MSU│ ⋅ │ + * │ ⇧(│ ≢ │ ∡ │ Ξ │ ⊂ │ ⊃ │ ∩ │ ∪ │ ∘ │ ≉ │ ∓ │MSU│ ⋅ │ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ - * │ ⎈ │MB4│lwr│⎇ │rse│ │ │ │⎇ │ ⇧)│MSL│MSD│MSR│ + * │MB1│MB4│lwr│⎇ │rse│ │ │ │⎇ │ ⇧)│MSL│MSD│MSR│ * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ MB - mouse buttons MS - mouse directions @@ -196,7 +191,7 @@ MS - mouse directions _______, KC_BTN4, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R), /* -raise layer +lower layer * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ * │ ⎋ │ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -204,7 +199,7 @@ raise layer * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ * │ ⇪ │ ă │ ș │ │ │ │ │ │ │ │ │ │ │ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ - * │ │ │ │ │ ç │ │ │ │ │ │ │MWU│ │ + * │ │ │ │ ç │ ⊄ │ ⊅ │ ∧ │ ∨ │ │ │ │MWU│ │ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ * │ │ │ │ │ │ │ │ │ │ │MWL│MWD│MWR│ * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ @@ -217,7 +212,7 @@ raise layer shifted * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ * │ │ Ă │ Ș │ │ │ │ │ │ │ │ │ │ │ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ - * │ │ │ │ │ Ç │ │ │ │ │ │ │ │ │ + * │ │ │ │ Ç │ ⊆ │ ⊇ │ ⊼ │ ⊻ │ │ │ │ │ │ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ * │ │ │ │ │ │ │ │ │ │ │ │ │ │ * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ @@ -245,90 +240,23 @@ adj layer [_ADJ] = LAYOUT_ortho_5x13( RGB_MOD, RGB_RMOD, A(KC_F2), _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_T , RGB_M_SW, RGB_HUI, RGB_HUD , RGB_M_P , _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______ , RGB_M_SN, - RGB_SAI, RGB_SAD , RGB_M_B , _______, _______, _______, _______, _______, _______, _______, _______, _______ , RGB_M_K , - RGB_VAI, RGB_VAD , RGB_M_R , _______, _______, _______, _______, _______, _______, _______, _______, _______ , RGB_M_X , + RGB_SAI, RGB_SAD , RGB_M_B , _______, UC_NEXT, _______, _______, _______, _______, _______, _______, _______ , RGB_M_K , + RGB_VAI, RGB_VAD , RGB_M_R , _______, UC_PREV, UC_LINX, UC_WIN, UC_WINC, UC_MAC, UC_EMAC, _______, _______ , RGB_M_X , RGB_TOG, _______ , _______ , _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_TW, RGB_M_G), }; // clang-format on -bool led_update_user(led_t led_state) { - // Disable the default LED update code, so that lock LEDs could be reused to show layer status. - return false; -} - -void matrix_scan_user(void) { - - toggle_leds(); - -} - -bool process_record_user(uint16_t keycode, keyrecord_t* record) { - -#ifdef CONSOLE_ENABLE - - uprintf("KL: kc: 0x%04X, col: %u, row: %u, pressed: %b, time: %u, interrupt: %b, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count); - +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_QW] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, +#if defined(RGBLIGHT_ENABLE) + [_LWR] = {ENCODER_CCW_CW(RGB_HUD, RGB_HUI)}, + [_RSE] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [_ADJ] = {ENCODER_CCW_CW(RGB_RMOD, RGB_MOD)}, +#else + [_LWR] = {ENCODER_CCW_CW(KC_MNXT, KC_MPRV)}, + [_RSE] = {ENCODER_CCW_CW(KC_MFFD, KC_MRWD)}, + [_ADJ] = {ENCODER_CCW_CW(KC_PGDN, KC_PGUP)}, #endif - - switch (keycode) { - case (TT(_LWR)): - if (!record->event.pressed && record->tap.count == TAPPING_TOGGLE) { - // This runs before the TT() handler toggles the layer state, so the current layer state is the opposite of the final one after toggle. - set_led_toggle(_LWR, !layer_state_is(_LWR)); - } - return true; - break; - case (TT(_RSE)): - if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) { - set_led_toggle(_RSE, !layer_state_is(_RSE)); - } - return true; - break; - default: - return true; - } -} - -layer_state_t layer_state_set_user(layer_state_t state) { - -#ifdef RGBLIGHT_ENABLE - - set_rgb_layers(state); - +}; #endif - - return update_tri_layer_state(state, _LWR, _RSE, _ADJ); -} - -#ifdef RGBLIGHT_ENABLE - -layer_state_t default_layer_state_set_user(layer_state_t state) { - - set_default_rgb_layers(state); - return state; -} - -#endif - -void keyboard_post_init_user(void) { -#ifdef RGBLIGHT_ENABLE - - // Enable the LED layers - rgblight_layers = my_rgb(); - -#endif - -#ifdef OLED_ENABLE - - init_timer(); - -#endif - -#ifdef CONSOLE_ENABLE - - debug_enable = true; - debug_matrix = true; - debug_keyboard = true; - -#endif -} diff --git a/keyboards/mlego/m65/keymaps/uk/rules.mk b/keyboards/mlego/m65/keymaps/uk/rules.mk index 502b2def76..846f3443f6 100644 --- a/keyboards/mlego/m65/keymaps/uk/rules.mk +++ b/keyboards/mlego/m65/keymaps/uk/rules.mk @@ -1 +1,2 @@ UNICODEMAP_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mlego/m65/keymaps/via/config.h b/keyboards/mlego/m65/keymaps/via/config.h deleted file mode 100644 index 637c0a8faf..0000000000 --- a/keyboards/mlego/m65/keymaps/via/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2021-2022 Alin M Elena - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define TAPPING_TOGGLE 2 diff --git a/keyboards/mlego/m65/keymaps/via/keymap.c b/keyboards/mlego/m65/keymaps/via/keymap.c deleted file mode 100644 index bfdcacc039..0000000000 --- a/keyboards/mlego/m65/keymaps/via/keymap.c +++ /dev/null @@ -1,118 +0,0 @@ -/* -Copyright 2021-2022 Alin M Elena - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_QW] = LAYOUT_ortho_5x13( - KC_ESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_BSPC , - 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_NUHS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , - SC_LSPO, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_UP , KC_SLSH , - KC_LCTL, KC_LGUI, TT(_LWR), KC_LALT, TT(_RSE), KC_SPC, KC_SPC, KC_SPC, KC_RALT, SC_RSPC, KC_LEFT, KC_DOWN, KC_RGHT), - - [_LWR] = LAYOUT_ortho_5x13( - KC_GRV , KC_MUTE, KC_VOLU, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, G(KC_P), KC_SLEP, KC_WAKE, KC_PSCR, KC_DEL , KC_EQL , - KC_BTN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - KC_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - _______, KC_BTN1, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_U, _______ , - _______, KC_BTN4, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R), - - [_RSE] = LAYOUT_ortho_5x13( - KC_ESC , 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_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_U, _______ , - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_R), - - [_ADJ] = LAYOUT_ortho_5x13( - RGB_MOD, RGB_RMOD, A(KC_F2), _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_T , RGB_M_SW, - RGB_HUI, RGB_HUD , RGB_M_P , _______, QK_BOOT , _______, _______, _______, _______, _______, _______, _______ , RGB_M_SN, - RGB_SAI, RGB_SAD , RGB_M_B , _______, _______, _______, _______, _______, _______, _______, _______, _______ , RGB_M_K , - RGB_VAI, RGB_VAD , RGB_M_R , _______, _______, _______, _______, _______, _______, _______, _______, _______ , RGB_M_X , - RGB_TOG, _______ , _______ , _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_TW, RGB_M_G), -}; -// clang-format on - -bool led_update_user(led_t led_state) { - // Disable the default LED update code, so that lock LEDs could be reused to show layer status. - return false; -} - -void matrix_scan_user(void) { - - toggle_leds(); - -} - -bool process_record_user(uint16_t keycode, keyrecord_t* record) { - switch (keycode) { - case (TT(_LWR)): - if (!record->event.pressed && record->tap.count == TAPPING_TOGGLE) { - // This runs before the TT() handler toggles the layer state, so the current layer state is the opposite of the final one after toggle. - set_led_toggle(_LWR, !layer_state_is(_LWR)); - } - return true; - break; - case (TT(_RSE)): - if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) { - set_led_toggle(_RSE, !layer_state_is(_RSE)); - } - return true; - break; - default: - return true; - } -} - -layer_state_t layer_state_set_user(layer_state_t state) { - -#ifdef RGBLIGHT_ENABLE - - set_rgb_layers(state); - -#endif - - return update_tri_layer_state(state, _LWR, _RSE, _ADJ); -} - -#ifdef RGBLIGHT_ENABLE - -layer_state_t default_layer_state_set_user(layer_state_t state) { - set_default_rgb_layers(state); - return state; -} - -#endif - -void keyboard_post_init_user(void) { - -#ifdef RGBLIGHT_ENABLE - - // Enable the LED layers - rgblight_layers = my_rgb(); - -#endif - -#ifdef OLED_ENABLE - - init_timer(); - -#endif -} diff --git a/keyboards/mlego/m65/keymaps/via/rules.mk b/keyboards/mlego/m65/keymaps/via/rules.mk deleted file mode 100644 index 1e5b99807c..0000000000 --- a/keyboards/mlego/m65/keymaps/via/rules.mk +++ /dev/null @@ -1 +0,0 @@ -VIA_ENABLE = yes diff --git a/keyboards/mlego/m65/lib/glcdfont.c b/keyboards/mlego/m65/lib/glcdfont.c index 4b354756b6..3f64f032cf 100644 --- a/keyboards/mlego/m65/lib/glcdfont.c +++ b/keyboards/mlego/m65/lib/glcdfont.c @@ -4,228 +4,13 @@ #include "progmem.h" static const unsigned char PROGMEM font[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, - 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, - 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, - 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, - 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, - 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, - 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, - 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, - 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, - 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, - 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, - 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, - 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, - 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, - 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, - 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, - 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, - 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, - 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, - 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, - 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, - 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, - 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, - 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, - 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, - 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, - 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, - 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, - 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, - 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, - 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, - 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, - 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, - 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, - 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, - 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, - 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, - 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, - 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, - 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, - 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, - 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, - 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, - 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, - 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, - 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, - 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, - 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, - 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, - 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, - 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, - 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, - 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, - 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, - 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, - 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, - 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, - 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, - 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, - 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, - 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, - 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, - 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, - 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, - 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, - 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, - 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, - 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, - 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, - 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, - 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, - 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, - 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, - 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, - 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, - 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, - 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, - 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, - 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, - 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, - 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, - 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, - 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, - 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, - 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, - 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, - 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, - 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, - 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, - 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, - 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, - 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, - 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, - 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, - 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, - 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, - 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, - 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, - 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, - 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, - 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, - 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, - 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xE0, 0x18, 0x02, - 0x00, 0x3C, 0x1E, 0x06, 0x0E, 0x0A, - 0x1A, 0x0E, 0x26, 0xFF, 0xBF, 0x0D, - 0x00, 0x80, 0x80, 0x81, 0xFF, 0xFE, - 0xF8, 0x01, 0x01, 0x03, 0x03, 0x03, - 0x03, 0x05, 0x05, 0x02, 0x02, 0x0A, - 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, - 0x0C, 0x04, 0x10, 0x18, 0x20, 0xC0, - 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xD0, 0x58, 0x78, - 0x68, 0x2C, 0x24, 0x34, 0xF4, 0xF4, - 0x3C, 0x3C, 0xFC, 0xF8, 0xF8, 0x70, - 0xF0, 0xE0, 0xE0, 0xC0, 0xC0, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xC0, 0x7C, 0x07, 0x80, 0xE0, - 0x60, 0x64, 0xE2, 0x60, 0x10, 0x10, - 0x20, 0x22, 0x12, 0x17, 0x3F, 0x0B, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, - 0x6F, 0xFC, 0xE0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, - 0x60, 0x60, 0x70, 0x70, 0xF0, 0xF0, - 0xD0, 0xD0, 0xD0, 0xD0, 0x50, 0x50, - 0x50, 0x70, 0x78, 0x78, 0x78, 0x7C, - 0x7F, 0x7D, 0x7C, 0x5E, 0x4F, 0x44, - 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x58, 0x46, 0x47, 0x41, - 0x41, 0x01, 0x01, 0x03, 0x03, 0x42, - 0x42, 0x42, 0x46, 0x46, 0x46, 0x46, - 0x42, 0x43, 0x43, 0x73, 0x77, 0x72, - 0x70, 0x60, 0x60, 0x60, 0x60, 0x60, - 0x60, 0x61, 0x67, 0x6F, 0x7E, 0x78, - 0x78, 0x70, 0x70, 0x70, 0x70, 0x70, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, - 0x40, 0x40, 0x40, 0x48, 0x58, 0x58, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, + 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, + 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, + 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, + 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x18, 0x02, 0x00, 0x3C, 0x1E, 0x06, 0x0E, 0x0A, 0x1A, 0x0E, 0x26, 0xFF, 0xBF, 0x0D, 0x00, 0x80, 0x80, 0x81, 0xFF, 0xFE, 0xF8, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x05, 0x05, 0x02, 0x02, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0C, 0x04, 0x10, 0x18, 0x20, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x58, 0x78, 0x68, 0x2C, 0x24, 0x34, 0xF4, 0xF4, 0x3C, 0x3C, 0xFC, 0xF8, 0xF8, 0x70, 0xF0, 0xE0, 0xE0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x7C, 0x07, 0x80, 0xE0, 0x60, 0x64, 0xE2, 0x60, 0x10, 0x10, 0x20, 0x22, 0x12, 0x17, 0x3F, 0x0B, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x6F, 0xFC, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x60, 0x70, 0x70, 0xF0, 0xF0, 0xD0, 0xD0, 0xD0, 0xD0, 0x50, 0x50, 0x50, 0x70, 0x78, 0x78, 0x78, 0x7C, 0x7F, 0x7D, 0x7C, 0x5E, 0x4F, 0x44, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x58, 0x46, 0x47, 0x41, 0x41, 0x01, 0x01, 0x03, 0x03, 0x42, 0x42, 0x42, 0x46, 0x46, 0x46, 0x46, 0x42, 0x43, 0x43, 0x73, 0x77, 0x72, 0x70, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x61, 0x67, 0x6F, 0x7E, 0x78, 0x78, 0x70, 0x70, 0x70, 0x70, 0x70, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x40, 0x40, 0x40, 0x48, 0x58, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/keyboards/mlego/m65/m65.c b/keyboards/mlego/m65/m65.c index 3f71a27790..12ea866f1e 100644 --- a/keyboards/mlego/m65/m65.c +++ b/keyboards/mlego/m65/m65.c @@ -1,139 +1,74 @@ -/* -Copyright 2021-2022 Alin M Elena +// Copyright 2020-2023 alin m elena (@alinelena) +// SPDX-License-Identifier: GPL-2.0-or-later -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "m65.h" +#include QMK_KEYBOARD_H // let us assume we start with both layers off static bool toggle_lwr = false; static bool toggle_rse = false; -#ifdef RGBLIGHT_ENABLE +#if defined(RGBLIGHT_ENABLE) -const rgblight_segment_t PROGMEM my_qwerty_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_PURPLE}); -const rgblight_segment_t PROGMEM my_lwr_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_CYAN}); -const rgblight_segment_t PROGMEM my_rse_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_RED}); -const rgblight_segment_t PROGMEM my_adj_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_GREEN}); +const rgblight_segment_t PROGMEM my_qwerty_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_OFF}); +const rgblight_segment_t PROGMEM my_lwr_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_AZURE}); +const rgblight_segment_t PROGMEM my_rse_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_CORAL}); +const rgblight_segment_t PROGMEM my_adj_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_RED}); const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(my_qwerty_layer, my_lwr_layer, my_rse_layer, my_adj_layer); #endif -#ifdef OLED_ENABLE - -static uint32_t oled_logo_timer = 0; -static bool clear_logo = true; -static const char PROGMEM m65_logo[] = { - 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, - 0}; - +#if defined(OLED_ENABLE) +static uint32_t oled_logo_timer = 0; +static bool clear_logo = true; +static const char PROGMEM m65_logo[] = {0x92, 0x92, 0x93, 0x94, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x92, 0x92, 0x93, 0x94, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB2, 0x92, 0xB3, 0xB4, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0}; #endif -#ifdef RGBLIGHT_ENABLE - -void set_rgb_layers(layer_state_t state){ +#if defined(RGBLIGHT_ENABLE) +void set_rgb_layers(layer_state_t state) { rgblight_set_layer_state(0, layer_state_cmp(state, _QW)); rgblight_set_layer_state(1, layer_state_cmp(state, _LWR)); rgblight_set_layer_state(2, layer_state_cmp(state, _RSE)); rgblight_set_layer_state(3, layer_state_cmp(state, _ADJ)); - } -void set_default_rgb_layers(layer_state_t state){ +void set_default_rgb_layers(layer_state_t state) { rgblight_set_layer_state(0, layer_state_cmp(state, _QW)); } -const rgblight_segment_t * const* my_rgb(void){ +const rgblight_segment_t* const* my_rgb(void) { return my_rgb_layers; } #endif -void set_led_toggle(const uint8_t layer, const bool state){ - +void set_led_toggle(const uint8_t layer, const bool state) { switch (layer) { case _LWR: - toggle_lwr = state; - break; + toggle_lwr = state; + break; case _RSE: - toggle_rse = state; - break; + toggle_rse = state; + break; default: - break; + break; } } -void toggle_leds(void){ - +void toggle_leds(const bool toggle_lwr, const bool toggle_rse) { led_lwr(toggle_lwr); led_rse(toggle_rse); - led_t led_state = host_keyboard_led_state(); - led_caps(led_state.caps_lock); if (layer_state_is(_ADJ)) { led_lwr(true); led_rse(true); } - } -#ifdef ENCODER_ENABLE +#if defined(OLED_ENABLE) -# define MEDIA_KEY_DELAY 10 - -void my_encoders(const uint8_t index, const bool clockwise) { - if (index == 0) { /* First encoder */ - if (IS_LAYER_ON(_LWR)) { - if (clockwise) { - rgblight_decrease_val_noeeprom(); - } else { - rgblight_increase_val_noeeprom(); - } - } else if (IS_LAYER_ON(_RSE)) { - if (clockwise) { - rgblight_decrease_hue_noeeprom(); - } else { - rgblight_increase_hue_noeeprom(); - } - - } else { - if (clockwise) { - tap_code_delay(KC_VOLD, MEDIA_KEY_DELAY); - } else { - tap_code_delay(KC_VOLU, MEDIA_KEY_DELAY); - } - } - } -} - -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { return false; } - my_encoders(index, clockwise); - return false; -} - -#endif - -#ifdef OLED_ENABLE - -void init_timer(void){ - oled_logo_timer = timer_read32(); +void init_timer(void) { + oled_logo_timer = timer_read32(); }; void user_oled_magic(void) { @@ -163,11 +98,38 @@ void user_oled_magic(void) { oled_write_P(led_state.num_lock ? PSTR("Lower ") : PSTR(" "), false); oled_write_P(led_state.scroll_lock ? PSTR("Raise ") : PSTR(" "), false); oled_write_P(led_state.caps_lock ? PSTR("CapsLock ") : PSTR(" "), false); -#ifdef WPM_ENABLE + +# if defined(UNICODE_COMMON_ENABLE) + oled_write_P(PSTR("\nunicode: "), false); + switch (get_unicode_input_mode()) { + case UNICODE_MODE_LINUX: + oled_write_P(PSTR("Linux"), false); + break; + case UNICODE_MODE_MACOS: + oled_write_P(PSTR("apple"), false); + break; + case UNICODE_MODE_WINDOWS: + oled_write_P(PSTR("windows"), false); + break; + case UNICODE_MODE_WINCOMPOSE: + oled_write_P(PSTR("windows c"), false); + break; + case UNICODE_MODE_BSD: + oled_write_P(PSTR("bsd"), false); + break; + case UNICODE_MODE_EMACS: + oled_write_P(PSTR("emacs"), false); + break; + default: + oled_write_ln_P(PSTR("not supported"), false); + } +# endif + +# if defined(WPM_ENABLE) oled_write_P(PSTR("\nwpm: "), false); uint8_t wpm = get_current_wpm(); - oled_write_P(wpm != 0 ? get_u8_str(wpm,' ') : PSTR(" "), false); -#endif + oled_write_P(wpm != 0 ? get_u8_str(wpm, ' ') : PSTR(" "), false); +# endif } void render_logo(void) { @@ -175,13 +137,13 @@ void render_logo(void) { } void clear_screen(void) { - if (clear_logo){ - for (uint8_t i = 0; i < OLED_DISPLAY_HEIGHT; ++i) { - for (uint8_t j = 0; j < OLED_DISPLAY_WIDTH; ++j) { - oled_write_raw_byte(0x0, i*OLED_DISPLAY_WIDTH + j); + if (clear_logo) { + for (uint8_t i = 0; i < OLED_DISPLAY_HEIGHT; ++i) { + for (uint8_t j = 0; j < OLED_DISPLAY_WIDTH; ++j) { + oled_write_raw_byte(0x0, i * OLED_DISPLAY_WIDTH + j); + } } - } - clear_logo = false; + clear_logo = false; } } @@ -191,14 +153,91 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) { # define SHOW_LOGO 5000 bool oled_task_kb(void) { - if (!oled_task_user()) { return false; } - if ((timer_elapsed32(oled_logo_timer) < SHOW_LOGO)){ + if (!oled_task_user()) { + return false; + } + if ((timer_elapsed32(oled_logo_timer) < SHOW_LOGO)) { render_logo(); - }else{ - clear_screen(); - user_oled_magic(); + } else { + clear_screen(); + user_oled_magic(); } return false; } #endif + +void matrix_scan_kb(void) { + matrix_scan_user(); + toggle_leds(toggle_lwr, toggle_rse); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t* record) { +#if defined(CONSOLE_ENABLE) + uprintf("KL: kc: 0x%04X, col: %2u, row: %2u, pressed: %u, time: %5u, int: %u, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count); +#endif + + switch (keycode) { + case (TT(_LWR)): + if (!record->event.pressed && record->tap.count == TAPPING_TOGGLE) { + // This runs before the TT() handler toggles the layer state, so the current layer state is the opposite of the final one after toggle. + set_led_toggle(_LWR, !layer_state_is(_LWR)); + } + return true; + break; + case (TT(_RSE)): + if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) { + set_led_toggle(_RSE, !layer_state_is(_RSE)); + } + return true; + break; + default: + return true; + } + return process_record_user(keycode, record); +} + +layer_state_t layer_state_set_kb(layer_state_t state) { + state = layer_state_set_user(state); + +#if defined(RGBLIGHT_ENABLE) + + set_rgb_layers(state); + +#endif + + return update_tri_layer_state(state, _LWR, _RSE, _ADJ); +} + +#if defined(RGBLIGHT_ENABLE) + +layer_state_t default_layer_state_set_kb(layer_state_t state) { + state = default_layer_state_set_user(state); + + set_default_rgb_layers(state); + + return state; +} + +#endif + +void keyboard_post_init_kb(void) { + init_lwr_rse_led(); + +#if defined(RGBLIGHT_ENABLE) + // Enable the LED layers + rgblight_layers = my_rgb(); +#endif + +#if defined(OLED_ENABLE) + init_timer(); +#endif + +#if defined(CONSOLE_ENABLE) + debug_enable = true; + debug_matrix = true; + debug_keyboard = true; +#endif + + keyboard_post_init_user(); +} diff --git a/keyboards/mlego/m65/m65.h b/keyboards/mlego/m65/m65.h index 0c3f3b5ba6..1c5589c111 100644 --- a/keyboards/mlego/m65/m65.h +++ b/keyboards/mlego/m65/m65.h @@ -1,154 +1,65 @@ -/* -Copyright 2021-2022 Alin M Elena - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ +// Copyright 2020-2023 alin m elena (@alinelena) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include "quantum.h" -enum unicode_names { - la = 0, - lA, - lb, - lB, - lc, - lC, - ld, - lD, - le, - lE, - lf, - lF, - lg, - lG, - lh, - lH, - li, - lI, - lj, - lJ, - lk, - lK, - ll, - lL, - lm, - lM, - ln, - lN, - lo, - lO, - lp, - lP, - lq, - lQ, - lr, - lR, - ls, - lS, - lt, - lT, - lu, - lU, - lv, - lV, - lw, - lW, - lx, - lX, - ly, - lY, - lz, - lZ, - lc1, - lC1, - lp1, - lP1, - lq1, - lQ1, - ll1, - lL1, - lk1, - lK1, - ra, - rA, - ra1, - rA1, - rc, - rC, - ri, - rI, - rs, - rS, - rt, - rT, - ro, - rO, - ra2, - rA2, - ra3, - rA3 -}; +#if defined(UNICODEMAP_ENABLE) +enum unicode_names { la = 0, lA, lb, lB, lc, lC, ld, lD, le, lE, lf, lF, lg, lG, lh, lH, li, lI, lj, lJ, lk, lK, ll, lL, lm, lM, ln, lN, lo, lO, lp, lP, lq, lQ, lr, lR, ls, lS, lt, lT, lu, lU, lv, lV, lw, lW, lx, lX, ly, lY, lz, lZ, lc1, lC1, lp1, lP1, lq1, lQ1, ll1, lL1, lk1, lK1, lbo1, lbo2, lbc1, lbc2, ls1, ls2, ra, rA, ra1, rA1, rc, rC, ri, rI, rs, rS, rt, rT, ro, rO, ra2, rA2, ra3, rA3, rx, rX, rv, rV, rb, rB, rn, rN }; +#endif + +enum layer_names { _QW = 0, _LWR, _RSE, _ADJ }; -enum layer_names { - _QW = 0, - _LWR, - _RSE, - _ADJ -}; - -#ifdef OLED_ENABLE +#if defined(OLED_ENABLE) void user_oled_magic(void); void render_logo(void); void clear_screen(void); void init_timer(void); #endif -#ifdef ENCODER_ENABLE -void my_encoders(const uint8_t, const bool); -bool encoder_update_user(uint8_t, bool); +#if defined(RGBLIGHT_ENABLE) +void set_rgb_layers(layer_state_t); +const rgblight_segment_t* const* my_rgb(void); +void set_default_rgb_layers(layer_state_t); #endif -#ifdef RGBLIGHT_ENABLE -void set_rgb_layers(layer_state_t); -const rgblight_segment_t * const* my_rgb(void); -void set_default_rgb_layers(layer_state_t); -#endif - - -void toggle_leds(void); +void toggle_leds(const bool, const bool); void set_led_toggle(const uint8_t, const bool); +static inline void init_lwr_rse_led(void) { +#if defined(LED_LWR_PIN) + setPinOutput(LED_LWR_PIN); + writePin(LED_LWR_PIN, false); + wait_ms(30); +#endif + +#if defined(LED_RSE_PIN) + setPinOutput(LED_RSE_PIN); + writePin(LED_RSE_PIN, false); + wait_ms(30); +#endif +} + static inline void led_lwr(const bool on) { -#ifdef LED_NUM_LOCK_PIN - writePin(LED_NUM_LOCK_PIN, on); +#if defined(LED_LWR_PIN) + if ((PRODUCT_ID == 0x6064) || (PRODUCT_ID == 0x6065) || + (PRODUCT_ID == 0x6066) || (PRODUCT_ID == 0x6067)) { + writePin(LED_LWR_PIN, !on); + }else{ + writePin(LED_LWR_PIN, on); + } #endif } static inline void led_rse(const bool on) { -#ifdef LED_SCROLL_LOCK_PIN - writePin(LED_SCROLL_LOCK_PIN, on); -#endif -} -static inline void led_caps(const bool on) { -#ifdef LED_CAPS_LOCK_PIN - if ((PRODUCT_ID == 0x6061) && (DEVICE_VER == 0x0002)) { - writePin(LED_CAPS_LOCK_PIN, on); - } else { - writePin(LED_CAPS_LOCK_PIN, !on); +#if defined(LED_RSE_PIN) + if ((PRODUCT_ID == 0x6064) || (PRODUCT_ID == 0x6065) || + (PRODUCT_ID == 0x6066) || (PRODUCT_ID == 0x6067)) { + writePin(LED_RSE_PIN, !on); + }else{ + writePin(LED_RSE_PIN, on); } #endif } diff --git a/keyboards/mlego/m65/readme.md b/keyboards/mlego/m65/readme.md index 8076697a2b..d53475fd57 100644 --- a/keyboards/mlego/m65/readme.md +++ b/keyboards/mlego/m65/readme.md @@ -7,7 +7,7 @@ A (13x5) ortholinear keyboard that can be hand wired or using a pcb. * Keyboard Maintainer: [Alin Elena](https://github.com/alinelena) ([@drFaustroll on GitLab](https://gitlab.com/drFaustroll)) * Hardware Supported: custom pcb [see](https://gitlab.com/m-lego/m65) STM/APM32F103C8T6, aka Black Pill (rev1), GD32F303CCT6 from we act aka Blue Pill Plus (rev2), STM32F401 from we act (rev3,rev4) STM32F411 can also be used just ask -* Hardware Availability: [custom how to](https://alin.elena.space/blog/keeblego/) +* Hardware Availability: [custom how to](https://mlego.elena.space/m65) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/mlego/m65/rev1/config.h b/keyboards/mlego/m65/rev1/config.h index 847dd11823..e832af8fee 100644 --- a/keyboards/mlego/m65/rev1/config.h +++ b/keyboards/mlego/m65/rev1/config.h @@ -1,20 +1,7 @@ -/* -Copyright 2021-2022 Alin M Elena - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ +// Copyright 2020-2023 alin m elena (@alinelena) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#define RGBLIGHT_LAYERS +#define LED_RSE_PIN B13 +#define LED_LWR_PIN B12 diff --git a/keyboards/mlego/m65/rev1/info.json b/keyboards/mlego/m65/rev1/info.json index 960b9325c8..d8bb91de30 100644 --- a/keyboards/mlego/m65/rev1/info.json +++ b/keyboards/mlego/m65/rev1/info.json @@ -1,42 +1,134 @@ { - "usb": { - "pid": "0x6061", - "device_version": "0.0.1" - }, - "matrix_pins": { - "cols": ["A10", "A15", "B3", "B4", "B5", "B9", "B8", "B7", "B6", "C15", "A0", "A7", "B10"], - "rows": ["B11", "B0", "B1", "A2", "A3"] - }, + "manufacturer": "Alin Elena", + "keyboard_name": "mlego/m65 rev1", + "maintainer": "alin elena", + "bootloader": "stm32duino", + "debounce": 5, "diode_direction": "COL2ROW", "encoder": { "rotary": [ {"pin_a": "A8", "pin_b": "A9"} ] }, + "features": { + "audio": false, + "backlight": false, + "bootmagic": true, + "command": false, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, "indicators": { "caps_lock": "C13", - "num_lock": "B12", - "scroll_lock": "B13" + "on_state": 0 }, + "matrix_pins": { + "cols": ["A10", "A15", "B3", "B4", "B5", "B9", "B8", "B7", "B6", "C15", "A0", "A7", "B10"], + "rows": ["B11", "B0", "B1", "A2", "A3"] + }, + "processor": "STM32F103", "rgblight": { - "saturation_steps": 8, - "led_count": 20, "animations": { + "alternating": true, "breathing": true, + "christmas": true, + "knight": true, "rainbow_mood": true, "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, "rgb_test": true, - "alternating": true, + "snake": true, + "static_gradient": true, "twinkle": true - } + }, + "hue_steps": 8, + "layers": { + "enabled": true + }, + "led_count": 20, + "saturation_steps": 8 + }, + "url": "https://gitlab.com/m-lego/m65", + "usb": { + "device_version": "0.0.1", + "pid": "0x6061", + "vid": "0xBABA" }, "ws2812": { "pin": "B15" }, - "processor": "STM32F103", - "bootloader": "stm32duino" + "layouts": { + "LAYOUT_ortho_5x13": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "Backspace", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "q", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "w", "matrix": [1, 2], "x": 2, "y": 1}, + {"label": "e", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "r", "matrix": [1, 4], "x": 4, "y": 1}, + {"label": "t", "matrix": [1, 5], "x": 5, "y": 1}, + {"label": "y", "matrix": [1, 6], "x": 6, "y": 1}, + {"label": "u", "matrix": [1, 7], "x": 7, "y": 1}, + {"label": "i", "matrix": [1, 8], "x": 8, "y": 1}, + {"label": "o", "matrix": [1, 9], "x": 9, "y": 1}, + {"label": "p", "matrix": [1, 10], "x": 10, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12, "y": 1}, + {"label": "#", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "a", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "s", "matrix": [2, 2], "x": 2, "y": 2}, + {"label": "d", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "f", "matrix": [2, 4], "x": 4, "y": 2}, + {"label": "g", "matrix": [2, 5], "x": 5, "y": 2}, + {"label": "h", "matrix": [2, 6], "x": 6, "y": 2}, + {"label": "j", "matrix": [2, 7], "x": 7, "y": 2}, + {"label": "k", "matrix": [2, 8], "x": 8, "y": 2}, + {"label": "l", "matrix": [2, 9], "x": 9, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12, "y": 2}, + {"label": "Left Shift", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "\\", "matrix": [3, 1], "x": 1, "y": 3}, + {"label": "z", "matrix": [3, 2], "x": 2, "y": 3}, + {"label": "x", "matrix": [3, 3], "x": 3, "y": 3}, + {"label": "c", "matrix": [3, 4], "x": 4, "y": 3}, + {"label": "v", "matrix": [3, 5], "x": 5, "y": 3}, + {"label": "b", "matrix": [3, 6], "x": 6, "y": 3}, + {"label": "n", "matrix": [3, 7], "x": 7, "y": 3}, + {"label": "m", "matrix": [3, 8], "x": 8, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10, "y": 3}, + {"label": "Up", "matrix": [3, 11], "x": 11, "y": 3}, + {"label": "/", "matrix": [3, 12], "x": 12, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4}, + {"label": "Menu", "matrix": [4, 1], "x": 1, "y": 4}, + {"label": "Lower", "matrix": [4, 2], "x": 2, "y": 4}, + {"label": "Alt", "matrix": [4, 3], "x": 3, "y": 4}, + {"label": "Raise", "matrix": [4, 4], "x": 4, "y": 4}, + {"label": "Space", "matrix": [4, 5], "x": 5, "y": 4}, + {"label": "Space", "matrix": [4, 6], "x": 6, "y": 4}, + {"label": "Space", "matrix": [4, 7], "x": 7, "y": 4}, + {"label": "Alt Gr", "matrix": [4, 8], "x": 8, "y": 4}, + {"label": "Right Shift", "matrix": [4, 9], "x": 9, "y": 4}, + {"label": "Left", "matrix": [4, 10], "x": 10, "y": 4}, + {"label": "Down", "matrix": [4, 11], "x": 11, "y": 4}, + {"label": "Right", "matrix": [4, 12], "x": 12, "y": 4} + ] + } + } } diff --git a/keyboards/mlego/m65/rev1/mcuconf.h b/keyboards/mlego/m65/rev1/mcuconf.h index 6ba4f72b40..a8e4fbb319 100644 --- a/keyboards/mlego/m65/rev1/mcuconf.h +++ b/keyboards/mlego/m65/rev1/mcuconf.h @@ -1,23 +1,5 @@ -/* Copyright 2021-2022 QMK - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -/* - * This file was auto-generated by: - * `qmk chibios-confmigrate -i keyboards/m65/rev1/mcuconf.h -r platforms/chibios/STM32_F103_STM32DUINO/configs/mcuconf.h` - */ +// Copyright 2020-2022 alin m elena (@alinelena) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once diff --git a/keyboards/mlego/m65/rev1/rules.mk b/keyboards/mlego/m65/rev1/rules.mk index fa351eadba..48c755b14e 100644 --- a/keyboards/mlego/m65/rev1/rules.mk +++ b/keyboards/mlego/m65/rev1/rules.mk @@ -1,13 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes # Enable encoder +#intentionally blanck diff --git a/keyboards/mlego/m65/rev2/board.h b/keyboards/mlego/m65/rev2/board.h index e0d0865776..15ec270599 100644 --- a/keyboards/mlego/m65/rev2/board.h +++ b/keyboards/mlego/m65/rev2/board.h @@ -1,18 +1,5 @@ -/* Copyright 2021-2022 Alin M Elena - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ +// Copyright 2020-2022 alin m elena (@alinelena) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include_next diff --git a/keyboards/mlego/m65/rev2/config.h b/keyboards/mlego/m65/rev2/config.h index 666d296ede..32f7b4eca3 100644 --- a/keyboards/mlego/m65/rev2/config.h +++ b/keyboards/mlego/m65/rev2/config.h @@ -1,23 +1,10 @@ -/* -Copyright 2021-2022 Alin M Elena - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ +// Copyright 2020-2023 alin m elena (@alinelena) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#define RGBLIGHT_LAYERS +#define LED_RSE_PIN B13 +#define LED_LWR_PIN B12 #define EEPROM_PAGE_SIZE #define FEE_PAGE_SIZE 0x800 diff --git a/keyboards/mlego/m65/rev2/info.json b/keyboards/mlego/m65/rev2/info.json index 8d822ae4e7..e8575e23e8 100644 --- a/keyboards/mlego/m65/rev2/info.json +++ b/keyboards/mlego/m65/rev2/info.json @@ -1,42 +1,133 @@ { - "usb": { - "pid": "0x6061", - "device_version": "0.0.2" - }, - "matrix_pins": { - "cols": ["A10", "A15", "B3", "B4", "B5", "B9", "B8", "B7", "B6", "C15", "A0", "A7", "B10"], - "rows": ["B11", "B0", "B1", "A2", "A3"] - }, + "manufacturer": "Alin Elena", + "keyboard_name": "mlego/m65 rev2", + "maintainer": "alin elena", + "bootloader": "stm32duino", "diode_direction": "COL2ROW", "encoder": { "rotary": [ {"pin_a": "A8", "pin_b": "A9"} ] }, + "features": { + "audio": false, + "backlight": false, + "bootmagic": true, + "command": true, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, "indicators": { "caps_lock": "B2", - "num_lock": "B12", - "scroll_lock": "B13" + "on_state": 0 }, + "matrix_pins": { + "cols": ["A10", "A15", "B3", "B4", "B5", "B9", "B8", "B7", "B6", "C15", "A0", "A7", "B10"], + "rows": ["B11", "B0", "B1", "A2", "A3"] + }, + "processor": "STM32F103", "rgblight": { - "saturation_steps": 8, - "led_count": 20, "animations": { + "alternating": true, "breathing": true, + "christmas": true, + "knight": true, "rainbow_mood": true, "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, "rgb_test": true, - "alternating": true, + "snake": true, + "static_gradient": true, "twinkle": true - } + }, + "hue_steps": 8, + "layers": { + "enabled": true + }, + "led_count": 20, + "saturation_steps": 8 + }, + "url": "https://gitlab.com/m-lego/m65", + "usb": { + "device_version": "0.0.2", + "pid": "0x6061", + "vid": "0xBABA" }, "ws2812": { "pin": "B15" }, - "processor": "STM32F103", // GD32F303CCT6 - "bootloader": "stm32duino" + "layouts": { + "LAYOUT_ortho_5x13": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "Backspace", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "q", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "w", "matrix": [1, 2], "x": 2, "y": 1}, + {"label": "e", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "r", "matrix": [1, 4], "x": 4, "y": 1}, + {"label": "t", "matrix": [1, 5], "x": 5, "y": 1}, + {"label": "y", "matrix": [1, 6], "x": 6, "y": 1}, + {"label": "u", "matrix": [1, 7], "x": 7, "y": 1}, + {"label": "i", "matrix": [1, 8], "x": 8, "y": 1}, + {"label": "o", "matrix": [1, 9], "x": 9, "y": 1}, + {"label": "p", "matrix": [1, 10], "x": 10, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12, "y": 1}, + {"label": "#", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "a", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "s", "matrix": [2, 2], "x": 2, "y": 2}, + {"label": "d", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "f", "matrix": [2, 4], "x": 4, "y": 2}, + {"label": "g", "matrix": [2, 5], "x": 5, "y": 2}, + {"label": "h", "matrix": [2, 6], "x": 6, "y": 2}, + {"label": "j", "matrix": [2, 7], "x": 7, "y": 2}, + {"label": "k", "matrix": [2, 8], "x": 8, "y": 2}, + {"label": "l", "matrix": [2, 9], "x": 9, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12, "y": 2}, + {"label": "Left Shift", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "\\", "matrix": [3, 1], "x": 1, "y": 3}, + {"label": "z", "matrix": [3, 2], "x": 2, "y": 3}, + {"label": "x", "matrix": [3, 3], "x": 3, "y": 3}, + {"label": "c", "matrix": [3, 4], "x": 4, "y": 3}, + {"label": "v", "matrix": [3, 5], "x": 5, "y": 3}, + {"label": "b", "matrix": [3, 6], "x": 6, "y": 3}, + {"label": "n", "matrix": [3, 7], "x": 7, "y": 3}, + {"label": "m", "matrix": [3, 8], "x": 8, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10, "y": 3}, + {"label": "Up", "matrix": [3, 11], "x": 11, "y": 3}, + {"label": "/", "matrix": [3, 12], "x": 12, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4}, + {"label": "Menu", "matrix": [4, 1], "x": 1, "y": 4}, + {"label": "Lower", "matrix": [4, 2], "x": 2, "y": 4}, + {"label": "Alt", "matrix": [4, 3], "x": 3, "y": 4}, + {"label": "Raise", "matrix": [4, 4], "x": 4, "y": 4}, + {"label": "Space", "matrix": [4, 5], "x": 5, "y": 4}, + {"label": "Space", "matrix": [4, 6], "x": 6, "y": 4}, + {"label": "Space", "matrix": [4, 7], "x": 7, "y": 4}, + {"label": "Alt Gr", "matrix": [4, 8], "x": 8, "y": 4}, + {"label": "Right Shift", "matrix": [4, 9], "x": 9, "y": 4}, + {"label": "Left", "matrix": [4, 10], "x": 10, "y": 4}, + {"label": "Down", "matrix": [4, 11], "x": 11, "y": 4}, + {"label": "Right", "matrix": [4, 12], "x": 12, "y": 4} + ] + } + } } diff --git a/keyboards/mlego/m65/rev2/mcuconf.h b/keyboards/mlego/m65/rev2/mcuconf.h index 6ba4f72b40..a8e4fbb319 100644 --- a/keyboards/mlego/m65/rev2/mcuconf.h +++ b/keyboards/mlego/m65/rev2/mcuconf.h @@ -1,23 +1,5 @@ -/* Copyright 2021-2022 QMK - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -/* - * This file was auto-generated by: - * `qmk chibios-confmigrate -i keyboards/m65/rev1/mcuconf.h -r platforms/chibios/STM32_F103_STM32DUINO/configs/mcuconf.h` - */ +// Copyright 2020-2022 alin m elena (@alinelena) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once diff --git a/keyboards/mlego/m65/rev2/rules.mk b/keyboards/mlego/m65/rev2/rules.mk index 51070f9718..9a795b953e 100644 --- a/keyboards/mlego/m65/rev2/rules.mk +++ b/keyboards/mlego/m65/rev2/rules.mk @@ -1,13 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes # Enable encoder +#blank purpose diff --git a/keyboards/mlego/m65/rev3/config.h b/keyboards/mlego/m65/rev3/config.h index 847dd11823..1b351c540a 100644 --- a/keyboards/mlego/m65/rev3/config.h +++ b/keyboards/mlego/m65/rev3/config.h @@ -1,20 +1,7 @@ -/* -Copyright 2021-2022 Alin M Elena - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ +// Copyright 2021-2023 alin m elena (@alinelena) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#define RGBLIGHT_LAYERS +#define LED_RSE_PIN B13 +#define LED_LWR_PIN B12 diff --git a/keyboards/mlego/m65/rev3/halconf.h b/keyboards/mlego/m65/rev3/halconf.h index 89815e23b7..decadcb011 100644 --- a/keyboards/mlego/m65/rev3/halconf.h +++ b/keyboards/mlego/m65/rev3/halconf.h @@ -1,23 +1,5 @@ -/* Copyright 2020 QMK - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -/* - * This file was auto-generated by: - * `qmk chibios-confmigrate -i keyboards/zvecr/zv48/f401/halconf.h -r platforms/chibios/common/configs/halconf.h` - */ +// Copyright 2020-2022 alin m elena (@alinelena) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once diff --git a/keyboards/mlego/m65/rev3/info.json b/keyboards/mlego/m65/rev3/info.json index 4f9b866565..d48d52d9d9 100644 --- a/keyboards/mlego/m65/rev3/info.json +++ b/keyboards/mlego/m65/rev3/info.json @@ -1,43 +1,134 @@ { - "usb": { - "pid": "0x6062", - "device_version": "0.0.1" - }, - "matrix_pins": { - "cols": ["A10", "A15", "B3", "B4", "B5", "B9", "B8", "B7", "A1", "A2", "A3", "A4", "B1"], - "rows": ["B10", "A5", "A6", "A7", "B0"] - }, + "manufacturer": "Alin Elena", + "keyboard_name": "mlego/m65 rev3", + "maintainer": "alin elena", + "board": "BLACKPILL_STM32_F401", + "bootloader": "tinyuf2", "diode_direction": "COL2ROW", "encoder": { "rotary": [ {"pin_a": "A0", "pin_b": "B6"} ] }, + "features": { + "audio": false, + "backlight": false, + "bootmagic": true, + "command": false, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, "indicators": { "caps_lock": "C13", - "num_lock": "B12", - "scroll_lock": "B13" + "on_state": 0 }, + "matrix_pins": { + "cols": ["A10", "A15", "B3", "B4", "B5", "B9", "B8", "B7", "A1", "A2", "A3", "A4", "B1"], + "rows": ["B10", "A5", "A6", "A7", "B0"] + }, + "processor": "STM32F401", "rgblight": { - "saturation_steps": 8, - "led_count": 20, "animations": { + "alternating": true, "breathing": true, + "christmas": true, + "knight": true, "rainbow_mood": true, "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, "rgb_test": true, - "alternating": true, + "snake": true, + "static_gradient": true, "twinkle": true - } + }, + "hue_steps": 8, + "layers": { + "enabled": true + }, + "led_count": 20, + "saturation_steps": 8 + }, + "url": "https://gitlab.com/m-lego/m65", + "usb": { + "device_version": "0.0.1", + "pid": "0x6062", + "vid": "0xBABA" }, "ws2812": { "pin": "B15" }, - "processor": "STM32F401", - "bootloader": "tinyuf2", - "board": "BLACKPILL_STM32_F401" + "layouts": { + "LAYOUT_ortho_5x13": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "Backspace", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "q", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "w", "matrix": [1, 2], "x": 2, "y": 1}, + {"label": "e", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "r", "matrix": [1, 4], "x": 4, "y": 1}, + {"label": "t", "matrix": [1, 5], "x": 5, "y": 1}, + {"label": "y", "matrix": [1, 6], "x": 6, "y": 1}, + {"label": "u", "matrix": [1, 7], "x": 7, "y": 1}, + {"label": "i", "matrix": [1, 8], "x": 8, "y": 1}, + {"label": "o", "matrix": [1, 9], "x": 9, "y": 1}, + {"label": "p", "matrix": [1, 10], "x": 10, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12, "y": 1}, + {"label": "#", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "a", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "s", "matrix": [2, 2], "x": 2, "y": 2}, + {"label": "d", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "f", "matrix": [2, 4], "x": 4, "y": 2}, + {"label": "g", "matrix": [2, 5], "x": 5, "y": 2}, + {"label": "h", "matrix": [2, 6], "x": 6, "y": 2}, + {"label": "j", "matrix": [2, 7], "x": 7, "y": 2}, + {"label": "k", "matrix": [2, 8], "x": 8, "y": 2}, + {"label": "l", "matrix": [2, 9], "x": 9, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12, "y": 2}, + {"label": "Left Shift", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "\\", "matrix": [3, 1], "x": 1, "y": 3}, + {"label": "z", "matrix": [3, 2], "x": 2, "y": 3}, + {"label": "x", "matrix": [3, 3], "x": 3, "y": 3}, + {"label": "c", "matrix": [3, 4], "x": 4, "y": 3}, + {"label": "v", "matrix": [3, 5], "x": 5, "y": 3}, + {"label": "b", "matrix": [3, 6], "x": 6, "y": 3}, + {"label": "n", "matrix": [3, 7], "x": 7, "y": 3}, + {"label": "m", "matrix": [3, 8], "x": 8, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10, "y": 3}, + {"label": "Up", "matrix": [3, 11], "x": 11, "y": 3}, + {"label": "/", "matrix": [3, 12], "x": 12, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4}, + {"label": "Menu", "matrix": [4, 1], "x": 1, "y": 4}, + {"label": "Lower", "matrix": [4, 2], "x": 2, "y": 4}, + {"label": "Alt", "matrix": [4, 3], "x": 3, "y": 4}, + {"label": "Raise", "matrix": [4, 4], "x": 4, "y": 4}, + {"label": "Space", "matrix": [4, 5], "x": 5, "y": 4}, + {"label": "Space", "matrix": [4, 6], "x": 6, "y": 4}, + {"label": "Space", "matrix": [4, 7], "x": 7, "y": 4}, + {"label": "Alt Gr", "matrix": [4, 8], "x": 8, "y": 4}, + {"label": "Right Shift", "matrix": [4, 9], "x": 9, "y": 4}, + {"label": "Left", "matrix": [4, 10], "x": 10, "y": 4}, + {"label": "Down", "matrix": [4, 11], "x": 11, "y": 4}, + {"label": "Right", "matrix": [4, 12], "x": 12, "y": 4} + ] + } + } } diff --git a/keyboards/mlego/m65/rev3/mcuconf.h b/keyboards/mlego/m65/rev3/mcuconf.h index 4d90ec07ea..05c6656170 100644 --- a/keyboards/mlego/m65/rev3/mcuconf.h +++ b/keyboards/mlego/m65/rev3/mcuconf.h @@ -1,23 +1,5 @@ -/* Copyright 2020 QMK - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -/* - * This file was auto-generated by: - * `qmk chibios-confmigrate -i keyboards/zvecr/zv48/f401/mcuconf.h -r platforms/chibios/BLACKPILL_STM32_F401/configs/mcuconf.h` - */ +// Copyright 2020-2022 alin m elena (@alinelena) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once diff --git a/keyboards/mlego/m65/rev3/rules.mk b/keyboards/mlego/m65/rev3/rules.mk index fa351eadba..8b4c953989 100644 --- a/keyboards/mlego/m65/rev3/rules.mk +++ b/keyboards/mlego/m65/rev3/rules.mk @@ -1,13 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes # Enable encoder +#blank on purpose diff --git a/keyboards/mlego/m65/rev4/config.h b/keyboards/mlego/m65/rev4/config.h index d0475aabaf..181ebc565a 100644 --- a/keyboards/mlego/m65/rev4/config.h +++ b/keyboards/mlego/m65/rev4/config.h @@ -1,28 +1,14 @@ -/* -Copyright 2021-2022 Alin M Elena - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ +// Copyright 2021-2023 alin m elena (@alinelena) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#define RGBLIGHT_LAYERS +#define LED_RSE_PIN B13 +#define LED_LWR_PIN B12 #ifdef OLED_ENABLE -# define OLED_DISPLAY_128X32 -#define I2C1_SCL_PIN B9 -#define I2C1_SDA_PIN B8 -#define OLED_BRIGHTNESS 128 -#define OLED_FONT_H "keyboards/mlego/m65/lib/glcdfont.c" +# define I2C1_SCL_PIN B9 +# define I2C1_SDA_PIN B8 +# define OLED_BRIGHTNESS 128 +# define OLED_FONT_H "keyboards/mlego/m65/lib/glcdfont.c" #endif diff --git a/keyboards/mlego/m65/rev4/halconf.h b/keyboards/mlego/m65/rev4/halconf.h index c1a060ad71..99f8ae4bf1 100644 --- a/keyboards/mlego/m65/rev4/halconf.h +++ b/keyboards/mlego/m65/rev4/halconf.h @@ -1,23 +1,5 @@ -/* Copyright 2020 QMK - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -/* - * This file was auto-generated by: - * `qmk chibios-confmigrate -i keyboards/zvecr/zv48/f401/halconf.h -r platforms/chibios/common/configs/halconf.h` - */ +// Copyright 2021-2022 alin m elena (@alinelena) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once diff --git a/keyboards/mlego/m65/rev4/info.json b/keyboards/mlego/m65/rev4/info.json index a97c734ff8..56fed15317 100644 --- a/keyboards/mlego/m65/rev4/info.json +++ b/keyboards/mlego/m65/rev4/info.json @@ -1,43 +1,136 @@ { - "usb": { - "pid": "0x6062", - "device_version": "0.0.2" - }, - "matrix_pins": { - "cols": ["B14", "A8", "A10", "A15", "B3", "B4", "B5", "B7", "A1", "A2", "A3", "A4", "B1"], - "rows": ["B10", "A5", "A6", "A7", "B0"] - }, + "manufacturer": "Alin Elena", + "keyboard_name": "mlego/m65 rev4", + "maintainer": "alin elena", + "board": "BLACKPILL_STM32_F401", + "bootloader": "tinyuf2", "diode_direction": "COL2ROW", "encoder": { "rotary": [ {"pin_a": "A0", "pin_b": "B6"} ] }, + "features": { + "audio": false, + "backlight": false, + "bootmagic": true, + "command": false, + "console": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "oled": true, + "rgblight": true, + "wpm": true + }, "indicators": { "caps_lock": "C13", - "num_lock": "B12", - "scroll_lock": "B13" + "on_state": 0 }, + "matrix_pins": { + "cols": ["B14", "A8", "A10", "A15", "B3", "B4", "B5", "B7", "A1", "A2", "A3", "A4", "B1"], + "rows": ["B10", "A5", "A6", "A7", "B0"] + }, + "processor": "STM32F401", "rgblight": { - "saturation_steps": 8, - "led_count": 20, "animations": { + "alternating": true, "breathing": true, + "christmas": true, + "knight": true, "rainbow_mood": true, "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, "rgb_test": true, - "alternating": true, + "snake": true, + "static_gradient": true, "twinkle": true - } + }, + "hue_steps": 8, + "layers": { + "enabled": true + }, + "led_count": 20, + "saturation_steps": 8 + }, + "url": "https://gitlab.com/m-lego/m65", + "usb": { + "device_version": "0.0.2", + "pid": "0x6062", + "vid": "0xBABA" }, "ws2812": { "pin": "B15" }, - "processor": "STM32F401", - "bootloader": "tinyuf2", - "board": "BLACKPILL_STM32_F401" + "layouts": { + "LAYOUT_ortho_5x13": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "Backspace", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "q", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "w", "matrix": [1, 2], "x": 2, "y": 1}, + {"label": "e", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "r", "matrix": [1, 4], "x": 4, "y": 1}, + {"label": "t", "matrix": [1, 5], "x": 5, "y": 1}, + {"label": "y", "matrix": [1, 6], "x": 6, "y": 1}, + {"label": "u", "matrix": [1, 7], "x": 7, "y": 1}, + {"label": "i", "matrix": [1, 8], "x": 8, "y": 1}, + {"label": "o", "matrix": [1, 9], "x": 9, "y": 1}, + {"label": "p", "matrix": [1, 10], "x": 10, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12, "y": 1}, + {"label": "#", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "a", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "s", "matrix": [2, 2], "x": 2, "y": 2}, + {"label": "d", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "f", "matrix": [2, 4], "x": 4, "y": 2}, + {"label": "g", "matrix": [2, 5], "x": 5, "y": 2}, + {"label": "h", "matrix": [2, 6], "x": 6, "y": 2}, + {"label": "j", "matrix": [2, 7], "x": 7, "y": 2}, + {"label": "k", "matrix": [2, 8], "x": 8, "y": 2}, + {"label": "l", "matrix": [2, 9], "x": 9, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12, "y": 2}, + {"label": "Left Shift", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "\\", "matrix": [3, 1], "x": 1, "y": 3}, + {"label": "z", "matrix": [3, 2], "x": 2, "y": 3}, + {"label": "x", "matrix": [3, 3], "x": 3, "y": 3}, + {"label": "c", "matrix": [3, 4], "x": 4, "y": 3}, + {"label": "v", "matrix": [3, 5], "x": 5, "y": 3}, + {"label": "b", "matrix": [3, 6], "x": 6, "y": 3}, + {"label": "n", "matrix": [3, 7], "x": 7, "y": 3}, + {"label": "m", "matrix": [3, 8], "x": 8, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10, "y": 3}, + {"label": "Up", "matrix": [3, 11], "x": 11, "y": 3}, + {"label": "/", "matrix": [3, 12], "x": 12, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4}, + {"label": "Menu", "matrix": [4, 1], "x": 1, "y": 4}, + {"label": "Lower", "matrix": [4, 2], "x": 2, "y": 4}, + {"label": "Alt", "matrix": [4, 3], "x": 3, "y": 4}, + {"label": "Raise", "matrix": [4, 4], "x": 4, "y": 4}, + {"label": "Space", "matrix": [4, 5], "x": 5, "y": 4}, + {"label": "Space", "matrix": [4, 6], "x": 6, "y": 4}, + {"label": "Space", "matrix": [4, 7], "x": 7, "y": 4}, + {"label": "Alt Gr", "matrix": [4, 8], "x": 8, "y": 4}, + {"label": "Right Shift", "matrix": [4, 9], "x": 9, "y": 4}, + {"label": "Left", "matrix": [4, 10], "x": 10, "y": 4}, + {"label": "Down", "matrix": [4, 11], "x": 11, "y": 4}, + {"label": "Right", "matrix": [4, 12], "x": 12, "y": 4} + ] + } + } } diff --git a/keyboards/mlego/m65/rev4/mcuconf.h b/keyboards/mlego/m65/rev4/mcuconf.h index ba1cd32fd3..abae5f94bd 100644 --- a/keyboards/mlego/m65/rev4/mcuconf.h +++ b/keyboards/mlego/m65/rev4/mcuconf.h @@ -1,23 +1,5 @@ -/* Copyright 2020 QMK - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -/* - * This file was auto-generated by: - * `qmk chibios-confmigrate -i keyboards/zvecr/zv48/f401/mcuconf.h -r platforms/chibios/BLACKPILL_STM32_F401/configs/mcuconf.h` - */ +// Copyright 2021-2022 alin m elena (@alinelena) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once diff --git a/keyboards/mlego/m65/rev4/rules.mk b/keyboards/mlego/m65/rev4/rules.mk index 3e44c80fe0..e69de29bb2 100644 --- a/keyboards/mlego/m65/rev4/rules.mk +++ b/keyboards/mlego/m65/rev4/rules.mk @@ -1,15 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes # Enable encoder -OLED_ENABLE = yes # Enable OLED -WPM_ENABLE = yes # Enable WPM Counter From f5366462353f0a14417dd9ee8feae6907f611bcc Mon Sep 17 00:00:00 2001 From: adam tombleson Date: Thu, 12 Oct 2023 08:37:28 +0300 Subject: [PATCH 270/496] Add 62 key Dactyl Manuform (#21394) Co-authored-by: Duncan Sutherland --- .../dactyl_manuform/4x6_4_3/info.json | 111 ++++++++++++++++++ .../4x6_4_3/keymaps/default/config.h | 23 ++++ .../4x6_4_3/keymaps/default/keymap.c | 43 +++++++ .../dactyl_manuform/4x6_4_3/readme.md | 9 ++ .../dactyl_manuform/4x6_4_3/rules.mk | 1 + 5 files changed, 187 insertions(+) create mode 100644 keyboards/handwired/dactyl_manuform/4x6_4_3/info.json create mode 100644 keyboards/handwired/dactyl_manuform/4x6_4_3/keymaps/default/config.h create mode 100644 keyboards/handwired/dactyl_manuform/4x6_4_3/keymaps/default/keymap.c create mode 100644 keyboards/handwired/dactyl_manuform/4x6_4_3/readme.md create mode 100644 keyboards/handwired/dactyl_manuform/4x6_4_3/rules.mk diff --git a/keyboards/handwired/dactyl_manuform/4x6_4_3/info.json b/keyboards/handwired/dactyl_manuform/4x6_4_3/info.json new file mode 100644 index 0000000000..60830dbf80 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/4x6_4_3/info.json @@ -0,0 +1,111 @@ +{ + "keyboard_name": "Dactyl-Manuform (4x6 + 4 and 3 for thumbs)", + "manufacturer": "joshreve", + "url": "https://github.com/joshreve/dactyl-keyboard", + "maintainer": "rek", + "usb": { + "vid": "0x444D", + "pid": "0x3536", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": false + }, + "ws2812": { + "pin": "D3" + }, + "matrix_pins": { + "cols": ["D4", "C6", "D7", "E6", "B4", "B5"], + "rows": ["F6", "F7", "B1", "B3", "B2", "B6"] + }, + "diode_direction": "COL2ROW", + "split": { + "enabled": true, + "soft_serial_pin": "D0" + }, + "development_board": "promicro", + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [6, 0], "x": 11, "y": 0}, + {"matrix": [6, 1], "x": 12, "y": 0}, + {"matrix": [6, 2], "x": 13, "y": 0}, + {"matrix": [6, 3], "x": 14, "y": 0}, + {"matrix": [6, 4], "x": 15, "y": 0}, + {"matrix": [6, 5], "x": 16, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + + {"matrix": [7, 0], "x": 11, "y": 1}, + {"matrix": [7, 1], "x": 12, "y": 1}, + {"matrix": [7, 2], "x": 13, "y": 1}, + {"matrix": [7, 3], "x": 14, "y": 1}, + {"matrix": [7, 4], "x": 15, "y": 1}, + {"matrix": [7, 5], "x": 16, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + + {"matrix": [8, 0], "x": 11, "y": 2}, + {"matrix": [8, 1], "x": 12, "y": 2}, + {"matrix": [8, 2], "x": 13, "y": 2}, + {"matrix": [8, 3], "x": 14, "y": 2}, + {"matrix": [8, 4], "x": 15, "y": 2}, + {"matrix": [8, 5], "x": 16, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + + {"matrix": [9, 0], "x": 11, "y": 3}, + {"matrix": [9, 1], "x": 12, "y": 3}, + {"matrix": [9, 2], "x": 13, "y": 3}, + {"matrix": [9, 3], "x": 14, "y": 3}, + {"matrix": [9, 4], "x": 15, "y": 3}, + {"matrix": [9, 5], "x": 16, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4}, + + {"matrix": [10, 2], "x": 11, "y": 4}, + {"matrix": [10, 3], "x": 12, "y": 4}, + {"matrix": [10, 4], "x": 13, "y": 4}, + {"matrix": [10, 5], "x": 14, "y": 4}, + + {"matrix": [5, 3], "x": 3, "y": 5}, + {"matrix": [5, 4], "x": 4, "y": 5}, + {"matrix": [5, 5], "x": 5, "y": 5}, + + {"matrix": [11, 0], "x": 14, "y": 5}, + {"matrix": [11, 1], "x": 15, "y": 5}, + {"matrix": [11, 2], "x": 16, "y": 5} + ] + } + } +} diff --git a/keyboards/handwired/dactyl_manuform/4x6_4_3/keymaps/default/config.h b/keyboards/handwired/dactyl_manuform/4x6_4_3/keymaps/default/config.h new file mode 100644 index 0000000000..4d83c191f3 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/4x6_4_3/keymaps/default/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define MASTER_LEFT +//#define MASTER_RIGHT + +//#define EE_HANDS diff --git a/keyboards/handwired/dactyl_manuform/4x6_4_3/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform/4x6_4_3/keymaps/default/keymap.c new file mode 100644 index 0000000000..d8fe94a59b --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/4x6_4_3/keymaps/default/keymap.c @@ -0,0 +1,43 @@ +// Copyright 2023 Adam Tombleson (@rekarnar) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +#define RAISE MO(_RAISE) +#define LOWER MO(_LOWER) + +enum layer_names { + _BASE, + _RAISE, + _LOWER +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_BSPC, + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS, + 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_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_BSLS, + KC_LCTL , KC_TAB , KC_LSFT, KC_LALT, KC_COMMA,KC_DOT , KC_LBRC , KC_RBRC , + LOWER, KC_SPC , KC_BSPC, RAISE , KC_ENT , KC_DEL + ), + + [_LOWER] = LAYOUT( + _______ , KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, KC_CIRC, KC_AMPR , KC_ASTR , KC_LPRN , KC_RPRN , KC_DEL, + QK_BOOT , _______, _______, _______, _______, _______, _______, _______ , _______ , _______ , KC_TILD , KC_PLUS, + _______ , KC_HOME, KC_PGUP, KC_PGDN, KC_END , _______, _______, KC_LEFT , KC_UP , KC_DOWN , KC_RGHT , KC_PIPE, + _______ , _______, _______, _______, _______, _______, _______, _______ , _______ , _______ , KC_EQL , KC_UNDS, + _______ , _______, _______, _______, KC_TILD, _______ , KC_LPRN , KC_RPRN , + _______, KC_LGUI, LALT(KC_PSCR), C(S(KC_LEFT)), KC_GRAVE, C(S(KC_RIGHT)) + + ), + + [_RAISE] = LAYOUT( + KC_F12 , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , + _______ , _______,_______ , _______, _______, _______, _______, _______ , _______ , _______ , _______ , _______, + _______ , _______,_______ , _______, _______, _______, _______, KC_HOME , KC_PGUP , KC_PGDN , KC_END , _______, + _______ , _______,_______ , _______, _______, _______, _______, _______ , _______ , _______ , _______ , _______, + _______ , _______,_______ , _______, _______, _______ , _______ , LALT(KC_TAB), + KC_VOLD, KC_MUTE, KC_VOLU, _______, _______ , _______ + ) +}; diff --git a/keyboards/handwired/dactyl_manuform/4x6_4_3/readme.md b/keyboards/handwired/dactyl_manuform/4x6_4_3/readme.md new file mode 100644 index 0000000000..c3574c52bb --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/4x6_4_3/readme.md @@ -0,0 +1,9 @@ +# Dactyl-Manuform (4x6 + 4 and 3 for thumbs) + +This is a 4x6 manuform with a 4 key bottom row and 3 key thumb clusters. + +The result is a 62 key layout. + +## Description + +* Keyboard Maintainer: https://github.com/joshreve/dactyl-keyboard diff --git a/keyboards/handwired/dactyl_manuform/4x6_4_3/rules.mk b/keyboards/handwired/dactyl_manuform/4x6_4_3/rules.mk new file mode 100644 index 0000000000..3bbd261429 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/4x6_4_3/rules.mk @@ -0,0 +1 @@ +# File intentionally blank From b5423b2e8365f2c63a0f902741fac9d9a940bc5d Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Thu, 12 Oct 2023 09:12:50 +0100 Subject: [PATCH 271/496] Add `60_iso_tsangan_split_bs_rshift` Community Layout (#21812) * add 60_(ansi|iso)_tsangan_split_bs_shift layouts * shift to rshift * remove 60_ansi_tsangan_split_bs_rshift * Update layouts/default/60_iso_tsangan_split_bs_rshift/info.json --- .../keymap.c | 27 +++++++ .../60_iso_tsangan_split_bs_rshift/info.json | 78 +++++++++++++++++++ .../layout.json | 5 ++ .../60_iso_tsangan_split_bs_rshift/readme.md | 3 + layouts/default/readme.md | 15 ++++ 5 files changed, 128 insertions(+) create mode 100644 layouts/default/60_iso_tsangan_split_bs_rshift/default_60_iso_tsangan_split_bs_rshift/keymap.c create mode 100644 layouts/default/60_iso_tsangan_split_bs_rshift/info.json create mode 100644 layouts/default/60_iso_tsangan_split_bs_rshift/layout.json create mode 100644 layouts/default/60_iso_tsangan_split_bs_rshift/readme.md diff --git a/layouts/default/60_iso_tsangan_split_bs_rshift/default_60_iso_tsangan_split_bs_rshift/keymap.c b/layouts/default/60_iso_tsangan_split_bs_rshift/default_60_iso_tsangan_split_bs_rshift/keymap.c new file mode 100644 index 0000000000..2f63749755 --- /dev/null +++ b/layouts/default/60_iso_tsangan_split_bs_rshift/default_60_iso_tsangan_split_bs_rshift/keymap.c @@ -0,0 +1,27 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Sft│ + * ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ + * │Ctrl │GUI│ Alt │ │ Alt │GUI│ Ctrl│ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ + */ + [0] = LAYOUT_60_iso_tsangan_split_bs_rshift( + KC_GRV, 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_BSPC, KC_BSPC, + 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_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_RSFT, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ) +}; diff --git a/layouts/default/60_iso_tsangan_split_bs_rshift/info.json b/layouts/default/60_iso_tsangan_split_bs_rshift/info.json new file mode 100644 index 0000000000..277afd9d5c --- /dev/null +++ b/layouts/default/60_iso_tsangan_split_bs_rshift/info.json @@ -0,0 +1,78 @@ +{ + "keyboard_name": "60% ISO layout with split Backspace, split Right Shift, and Tsangan Bottom Row", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_60_iso_tsangan_split_bs_rshift": { + "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}, + {"x":14, "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":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}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + + {"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, "w":1.75}, + {"x":14, "y":3}, + + {"x":0, "y":4, "w":1.5}, + {"x":1.5, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"x":11, "y":4, "w":1.5}, + {"x":12.5, "y":4}, + {"x":13.5, "y":4, "w":1.5} + ] + } + } +} diff --git a/layouts/default/60_iso_tsangan_split_bs_rshift/layout.json b/layouts/default/60_iso_tsangan_split_bs_rshift/layout.json new file mode 100644 index 0000000000..99f729bda1 --- /dev/null +++ b/layouts/default/60_iso_tsangan_split_bs_rshift/layout.json @@ -0,0 +1,5 @@ +[{a:7},"","","","","","","","","","","","","","",""], +[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},""], +[{w:1.75},"","","","","","","","","","","","",""], +[{w:1.25},"","","","","","","","","","","","",{w:1.75},"",""], +[{w:1.5},"","",{w:1.5},"",{w:7},"",{w:1.5},"","",{w:1.5},""] diff --git a/layouts/default/60_iso_tsangan_split_bs_rshift/readme.md b/layouts/default/60_iso_tsangan_split_bs_rshift/readme.md new file mode 100644 index 0000000000..4313926ca1 --- /dev/null +++ b/layouts/default/60_iso_tsangan_split_bs_rshift/readme.md @@ -0,0 +1,3 @@ +# 60_iso_tsangan_split_bs_rshift + + LAYOUT_60_iso_tsangan_split_bs_rshift diff --git a/layouts/default/readme.md b/layouts/default/readme.md index 8065206c97..361fa86792 100644 --- a/layouts/default/readme.md +++ b/layouts/default/readme.md @@ -184,6 +184,21 @@ LAYOUT_60_iso_tsangan └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ ``` +``` +LAYOUT_60_iso_tsangan_split_bs_rshift +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ +│ │ │ │ │ │ │ │ +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` + ``` LAYOUT_60_iso_wkl ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ From 999e7213122bd37702e4c501995b81104bc07984 Mon Sep 17 00:00:00 2001 From: kisakey-luxury <143060353+kisakey-luxury@users.noreply.github.com> Date: Thu, 12 Oct 2023 11:21:30 -0700 Subject: [PATCH 272/496] Kisakey (#22217) Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Ryan --- keyboards/kisakeyluxury/qtz/config.h | 23 +++++++ keyboards/kisakeyluxury/qtz/info.json | 69 +++++++++++++++++++ .../qtz/keymaps/default/config.h | 20 ++++++ .../qtz/keymaps/default/keymap.c | 43 ++++++++++++ .../qtz/keymaps/default/rules.mk | 1 + keyboards/kisakeyluxury/qtz/readme.md | 24 +++++++ keyboards/kisakeyluxury/qtz/rules.mk | 1 + 7 files changed, 181 insertions(+) create mode 100644 keyboards/kisakeyluxury/qtz/config.h create mode 100644 keyboards/kisakeyluxury/qtz/info.json create mode 100644 keyboards/kisakeyluxury/qtz/keymaps/default/config.h create mode 100644 keyboards/kisakeyluxury/qtz/keymaps/default/keymap.c create mode 100644 keyboards/kisakeyluxury/qtz/keymaps/default/rules.mk create mode 100644 keyboards/kisakeyluxury/qtz/readme.md create mode 100644 keyboards/kisakeyluxury/qtz/rules.mk diff --git a/keyboards/kisakeyluxury/qtz/config.h b/keyboards/kisakeyluxury/qtz/config.h new file mode 100644 index 0000000000..7660e3d7e9 --- /dev/null +++ b/keyboards/kisakeyluxury/qtz/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2023 kisakeyluxury + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/kisakeyluxury/qtz/info.json b/keyboards/kisakeyluxury/qtz/info.json new file mode 100644 index 0000000000..ba79fc31a2 --- /dev/null +++ b/keyboards/kisakeyluxury/qtz/info.json @@ -0,0 +1,69 @@ +{ + "keyboard_name": "fraserqaz", + "manufacturer": "iceage", + "maintainer": "kisakey-luxury", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["D0", "D1", "D2", "D3", "F7", "F6", "F5", "F4", "F1", "F0"], + "rows": ["D5", "D4", "D6", "C6"] + }, + "diode_direction": "COL2ROW", + "development_board": "promicro", + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0, "w": 1.25}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.25}, + {"matrix": [1, 1], "x": 1.25, "y": 1}, + {"matrix": [1, 2], "x": 2.25, "y": 1}, + {"matrix": [1, 3], "x": 3.25, "y": 1}, + {"matrix": [1, 4], "x": 4.25, "y": 1}, + {"matrix": [1, 5], "x": 5.25, "y": 1}, + {"matrix": [1, 6], "x": 6.25, "y": 1}, + {"matrix": [1, 7], "x": 7.25, "y": 1}, + {"matrix": [1, 8], "x": 8.25, "y": 1}, + {"matrix": [1, 9], "x": 9.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2, "w": 1.5}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 4], "x": 3, "y": 3}, + {"matrix": [3, 5], "x": 4, "y": 3, "w": 2.25}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + ] + } + } +} diff --git a/keyboards/kisakeyluxury/qtz/keymaps/default/config.h b/keyboards/kisakeyluxury/qtz/keymaps/default/config.h new file mode 100644 index 0000000000..7d03c4ddb8 --- /dev/null +++ b/keyboards/kisakeyluxury/qtz/keymaps/default/config.h @@ -0,0 +1,20 @@ +/* +Copyright 2023 kisakeyluxury + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define COMBO_TERM 200 diff --git a/keyboards/kisakeyluxury/qtz/keymaps/default/keymap.c b/keyboards/kisakeyluxury/qtz/keymaps/default/keymap.c new file mode 100644 index 0000000000..d5b0a8d2af --- /dev/null +++ b/keyboards/kisakeyluxury/qtz/keymaps/default/keymap.c @@ -0,0 +1,43 @@ +/* +Copyright 2023 kisakeyluxury + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +enum layers{ + _BASE +}; + +enum combo_events { + COMBO_ESC +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, + KC_1, KC_2, KC_3, KC_4, KC_SPACE, KC_4, KC_3, KC_2, QK_BOOT + ) +}; + +#ifdef COMBO_ENABLE +const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END}; + +combo_t key_combos[] = { + [COMBO_ESC] = COMBO(combo_esc,KC_ESC), +}; +#endif diff --git a/keyboards/kisakeyluxury/qtz/keymaps/default/rules.mk b/keyboards/kisakeyluxury/qtz/keymaps/default/rules.mk new file mode 100644 index 0000000000..ab1e438182 --- /dev/null +++ b/keyboards/kisakeyluxury/qtz/keymaps/default/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/kisakeyluxury/qtz/readme.md b/keyboards/kisakeyluxury/qtz/readme.md new file mode 100644 index 0000000000..813bf10a32 --- /dev/null +++ b/keyboards/kisakeyluxury/qtz/readme.md @@ -0,0 +1,24 @@ +# qtz + +35% keyboard designed by Iceage + +![pcb image](https://i.imgur.com/D2OmIkUh.png) + +* Keyboard Maintainer: [kisakey-luxury](https://github.com/kisakey-luxury) +* Hardware Supported: *not released yet* +* Hardware Availability: *not released yet* + +Make example for this keyboard (after setting up your build environment): + + make kisakeyluxury/qtz:default + +Flashing example for this keyboard: + + make kisakeyluxury/qtz:default:flash + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Physical reset button**: Briefly press the button on the back of the PCB under the "Z" key +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available (default is bottom-right most key) \ No newline at end of file diff --git a/keyboards/kisakeyluxury/qtz/rules.mk b/keyboards/kisakeyluxury/qtz/rules.mk new file mode 100644 index 0000000000..0d24fc2857 --- /dev/null +++ b/keyboards/kisakeyluxury/qtz/rules.mk @@ -0,0 +1 @@ +# intentionally left blank \ No newline at end of file From b630df1aa739c285f290333ff2cf7de024b4693e Mon Sep 17 00:00:00 2001 From: Wilhelm Schuster Date: Thu, 12 Oct 2023 21:46:28 +0200 Subject: [PATCH 273/496] Reword mention of personal keymaps from PR checklist (#22258) --- docs/pr_checklist.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pr_checklist.md b/docs/pr_checklist.md index 9bf1b8d005..38c2683694 100644 --- a/docs/pr_checklist.md +++ b/docs/pr_checklist.md @@ -138,7 +138,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard - standard layouts preferred in these keymaps, if possible - should use [encoder map feature](https://docs.qmk.fm/#/feature_encoders?id=encoder-map), rather than `encoder_update_user()` - default keymap should not enable VIA -- the VIA integration documentation requires a keymap called `via` -- submitters can have a personal (or bells-and-whistles) keymap showcasing capabilities in the same PR but it shouldn't be embedded in the 'default' keymap +- submitters can add an example (or bells-and-whistles) keymap showcasing capabilities in the same PR but it shouldn't be embedded in the 'default' keymap - submitters can also have a "manufacturer-matching" keymap that mirrors existing functionality of the commercial product, if porting an existing board - Do not include VIA json files in the PR. These do not belong in the QMK repository as they are not used by QMK firmware -- they belong in the [VIA Keyboard Repo](https://github.com/the-via/keyboards) - Do not include KLE json files in the PR. These have no use within QMK. From c67c9f1d98d23b35c468d7d3af10f4ced677ddc2 Mon Sep 17 00:00:00 2001 From: Felipe Curty Date: Thu, 12 Oct 2023 17:31:41 -0300 Subject: [PATCH 274/496] Add support for CSTC40 keyboard (#22154) Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: lesshonor and waffle87 Co-authored-by: Drashna Jaelre Co-authored-by: lesshonor Co-authored-by: itsvar <120035196+itsvar8@users.noreply.github.com> --- keyboards/kprepublic/cstc40/config.h | 59 ++++++++ .../cstc40/daughterboard/daughterboard.c | 71 ++++++++++ .../kprepublic/cstc40/daughterboard/info.json | 6 + .../kprepublic/cstc40/daughterboard/rules.mk | 1 + keyboards/kprepublic/cstc40/halconf.h | 20 +++ keyboards/kprepublic/cstc40/info.json | 130 ++++++++++++++++++ .../cstc40/keymaps/default/keymap.c | 94 +++++++++++++ .../cstc40/keymaps/default/rules.mk | 1 + .../kprepublic/cstc40/keymaps/via/keymap.c | 94 +++++++++++++ .../kprepublic/cstc40/keymaps/via/rules.mk | 1 + keyboards/kprepublic/cstc40/mcuconf.h | 21 +++ keyboards/kprepublic/cstc40/readme.md | 26 ++++ .../kprepublic/cstc40/single_pcb/info.json | 6 + .../kprepublic/cstc40/single_pcb/rules.mk | 1 + .../kprepublic/cstc40/single_pcb/single_pcb.c | 71 ++++++++++ 15 files changed, 602 insertions(+) create mode 100644 keyboards/kprepublic/cstc40/config.h create mode 100644 keyboards/kprepublic/cstc40/daughterboard/daughterboard.c create mode 100644 keyboards/kprepublic/cstc40/daughterboard/info.json create mode 100644 keyboards/kprepublic/cstc40/daughterboard/rules.mk create mode 100644 keyboards/kprepublic/cstc40/halconf.h create mode 100644 keyboards/kprepublic/cstc40/info.json create mode 100644 keyboards/kprepublic/cstc40/keymaps/default/keymap.c create mode 100644 keyboards/kprepublic/cstc40/keymaps/default/rules.mk create mode 100644 keyboards/kprepublic/cstc40/keymaps/via/keymap.c create mode 100644 keyboards/kprepublic/cstc40/keymaps/via/rules.mk create mode 100644 keyboards/kprepublic/cstc40/mcuconf.h create mode 100644 keyboards/kprepublic/cstc40/readme.md create mode 100644 keyboards/kprepublic/cstc40/single_pcb/info.json create mode 100644 keyboards/kprepublic/cstc40/single_pcb/rules.mk create mode 100644 keyboards/kprepublic/cstc40/single_pcb/single_pcb.c diff --git a/keyboards/kprepublic/cstc40/config.h b/keyboards/kprepublic/cstc40/config.h new file mode 100644 index 0000000000..c430986895 --- /dev/null +++ b/keyboards/kprepublic/cstc40/config.h @@ -0,0 +1,59 @@ +// Copyright 2022 Var (@itsvar8) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define I2C1_SDA_PIN B9 +#define I2C1_SCL_PIN B8 +#define DRIVER_ADDR_1 0b1010000 +#define DRIVER_COUNT 1 +#define RGB_MATRIX_LED_COUNT 47 + +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES + +#define ENABLE_RGB_MATRIX_ALPHAS_MODS +#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +#define ENABLE_RGB_MATRIX_BAND_SAT +#define ENABLE_RGB_MATRIX_BAND_VAL +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define ENABLE_RGB_MATRIX_CYCLE_ALL +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +#define ENABLE_RGB_MATRIX_DUAL_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +#define ENABLE_RGB_MATRIX_RAINDROPS +#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +#define ENABLE_RGB_MATRIX_HUE_BREATHING +#define ENABLE_RGB_MATRIX_HUE_PENDULUM +#define ENABLE_RGB_MATRIX_HUE_WAVE +#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +#define ENABLE_RGB_MATRIX_PIXEL_FLOW +#define ENABLE_RGB_MATRIX_PIXEL_RAIN +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_RAIN +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#define ENABLE_RGB_MATRIX_SPLASH +#define ENABLE_RGB_MATRIX_MULTISPLASH +#define ENABLE_RGB_MATRIX_SOLID_SPLASH +#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH + +#define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/kprepublic/cstc40/daughterboard/daughterboard.c b/keyboards/kprepublic/cstc40/daughterboard/daughterboard.c new file mode 100644 index 0000000000..39d3d7ff52 --- /dev/null +++ b/keyboards/kprepublic/cstc40/daughterboard/daughterboard.c @@ -0,0 +1,71 @@ +/* Copyright 2022 bdtc123 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { + { 0, L_1, K_1, J_1 }, + { 0, L_2, K_2, J_2 }, + { 0, L_3, K_3, J_3 }, + { 0, L_4, K_4, J_4 }, + { 0, L_5, K_5, J_5 }, + { 0, L_6, K_6, J_6 }, + { 0, L_7, K_7, J_7 }, + { 0, L_8, K_8, J_8 }, + { 0, L_9, K_9, J_9 }, + { 0, L_10, K_10, J_10 }, + { 0, L_11, K_11, J_11 }, + { 0, L_12, K_12, J_12 }, + + { 0, I_1, H_1, G_1 }, + { 0, I_2, H_2, G_2 }, + { 0, I_3, H_3, G_3 }, + { 0, I_4, H_4, G_4 }, + { 0, I_5, H_5, G_5 }, + { 0, I_6, H_6, G_6 }, + { 0, I_7, H_7, G_7 }, + { 0, I_8, H_8, G_8 }, + { 0, I_9, H_9, G_9 }, + { 0, I_10, H_10, G_10 }, + { 0, I_11, H_11, G_11 }, + { 0, I_12, H_12, G_12 }, + + { 0, F_1, E_1, D_1 }, + { 0, F_2, E_2, D_2 }, + { 0, F_3, E_3, D_3 }, + { 0, F_4, E_4, D_4 }, + { 0, F_5, E_5, D_5 }, + { 0, F_6, E_6, D_6 }, + { 0, F_7, E_7, D_7 }, + { 0, F_8, E_8, D_8 }, + { 0, F_9, E_9, D_9 }, + { 0, F_10, E_10, D_10 }, + { 0, F_11, E_11, D_11 }, + { 0, F_12, E_12, D_12 }, + + { 0, C_1, B_1, A_1 }, + { 0, C_2, B_2, A_2 }, + { 0, C_3, B_3, A_3 }, + { 0, C_4, B_4, A_4 }, + { 0, C_5, B_5, A_5 }, + { 0, C_6, B_6, A_6 }, + { 0, C_8, B_8, A_8 }, + { 0, C_9, B_9, A_9 }, + { 0, C_10, B_10, A_10 }, + { 0, C_11, B_11, A_11 }, + { 0, C_12, B_12, A_12 } +}; +#endif \ No newline at end of file diff --git a/keyboards/kprepublic/cstc40/daughterboard/info.json b/keyboards/kprepublic/cstc40/daughterboard/info.json new file mode 100644 index 0000000000..cdba7942df --- /dev/null +++ b/keyboards/kprepublic/cstc40/daughterboard/info.json @@ -0,0 +1,6 @@ +{ + "matrix_pins": { + "cols": ["B15", "B14", "B13", "B10", "B12", "A5", "C4", "A7", "A15", "C10", "C11", "C0"], + "rows": ["B1", "B0", "C5", "A6"] + } +} \ No newline at end of file diff --git a/keyboards/kprepublic/cstc40/daughterboard/rules.mk b/keyboards/kprepublic/cstc40/daughterboard/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/kprepublic/cstc40/daughterboard/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/kprepublic/cstc40/halconf.h b/keyboards/kprepublic/cstc40/halconf.h new file mode 100644 index 0000000000..0f279040aa --- /dev/null +++ b/keyboards/kprepublic/cstc40/halconf.h @@ -0,0 +1,20 @@ +/* Copyright 2020 Nick Brassel (tzarc) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next \ No newline at end of file diff --git a/keyboards/kprepublic/cstc40/info.json b/keyboards/kprepublic/cstc40/info.json new file mode 100644 index 0000000000..4ccd8389e8 --- /dev/null +++ b/keyboards/kprepublic/cstc40/info.json @@ -0,0 +1,130 @@ +{ + "manufacturer": "kprepublic", + "keyboard_name": "cstc40", + "maintainer": "itsvar8", + "bootloader": "stm32-dfu", + "diode_direction": "ROW2COL", + "debounce": 2, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "processor": "STM32F401", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0040", + "vid": "0x586A" + }, + "layouts": { + "LAYOUT_planck_mit": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [1, 6], "x": 6, "y": 1 }, + { "matrix": [1, 7], "x": 7, "y": 1 }, + { "matrix": [1, 8], "x": 8, "y": 1 }, + { "matrix": [1, 9], "x": 9, "y": 1 }, + { "matrix": [1, 10], "x": 10, "y": 1 }, + { "matrix": [1, 11], "x": 11, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 7], "x": 7, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2 }, + { "matrix": [2, 9], "x": 9, "y": 2 }, + { "matrix": [2, 10], "x": 10, "y": 2 }, + { "matrix": [2, 11], "x": 11, "y": 2 }, + { "matrix": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3 }, + { "matrix": [3, 4], "x": 4, "y": 3 }, + { "matrix": [3, 5], "w": 2, "x": 5, "y": 3 }, + { "matrix": [3, 7], "x": 7, "y": 3 }, + { "matrix": [3, 8], "x": 8, "y": 3 }, + { "matrix": [3, 9], "x": 9, "y": 3 }, + { "matrix": [3, 10], "x": 10, "y": 3 }, + { "matrix": [3, 11], "x": 11, "y": 3 } + ] + } + }, + "rgb_matrix": { + "driver": "is31fl3733", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 101, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 122, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 142, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1}, + {"matrix": [1, 1], "x": 20, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 81, "y": 21, "flags": 4}, + {"matrix": [1, 5], "x": 101, "y": 21, "flags": 4}, + {"matrix": [1, 6], "x": 122, "y": 21, "flags": 4}, + {"matrix": [1, 7], "x": 142, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 162, "y": 21, "flags": 4}, + {"matrix": [1, 9], "x": 183, "y": 21, "flags": 4}, + {"matrix": [1, 10], "x": 203, "y": 21, "flags": 4}, + {"matrix": [1, 11], "x": 224, "y": 21, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 42, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 42, "flags": 4}, + {"matrix": [2, 3], "x": 61, "y": 42, "flags": 4}, + {"matrix": [2, 4], "x": 81, "y": 42, "flags": 4}, + {"matrix": [2, 5], "x": 101, "y": 42, "flags": 4}, + {"matrix": [2, 6], "x": 122, "y": 42, "flags": 4}, + {"matrix": [2, 7], "x": 142, "y": 42, "flags": 4}, + {"matrix": [2, 8], "x": 162, "y": 42, "flags": 4}, + {"matrix": [2, 9], "x": 183, "y": 42, "flags": 4}, + {"matrix": [2, 10], "x": 203, "y": 42, "flags": 4}, + {"matrix": [2, 11], "x": 224, "y": 42, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [3, 1], "x": 20, "y": 64, "flags": 1}, + {"matrix": [3, 2], "x": 40, "y": 64, "flags": 1}, + {"matrix": [3, 3], "x": 61, "y": 64, "flags": 1}, + {"matrix": [3, 4], "x": 81, "y": 64, "flags": 1}, + {"matrix": [3, 5], "x": 111, "y": 64, "flags": 1}, + {"matrix": [3, 7], "x": 142, "y": 64, "flags": 1}, + {"matrix": [3, 8], "x": 162, "y": 64, "flags": 1}, + {"matrix": [3, 9], "x": 183, "y": 64, "flags": 1}, + {"matrix": [3, 10], "x": 203, "y": 64, "flags": 1}, + {"matrix": [3, 11], "x": 224, "y": 64, "flags": 1} + ], + "max_brightness": 200 + } +} \ No newline at end of file diff --git a/keyboards/kprepublic/cstc40/keymaps/default/keymap.c b/keyboards/kprepublic/cstc40/keymaps/default/keymap.c new file mode 100644 index 0000000000..e47ff226a9 --- /dev/null +++ b/keyboards/kprepublic/cstc40/keymaps/default/keymap.c @@ -0,0 +1,94 @@ +/* Copyright 2023 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | BLTog| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[0] = LAYOUT_planck_mit( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, TL_LOWR, KC_SPC, TL_UPPR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[1] = LAYOUT_planck_mit( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[2] = LAYOUT_planck_mit( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Adjust (Lower + Raise) + * v------------------------RGB CONTROL--------------------v + * ,-----------------------------------------------------------------------------------. + * | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[3] = LAYOUT_planck_mit( + _______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + +}; diff --git a/keyboards/kprepublic/cstc40/keymaps/default/rules.mk b/keyboards/kprepublic/cstc40/keymaps/default/rules.mk new file mode 100644 index 0000000000..7c9bf212a6 --- /dev/null +++ b/keyboards/kprepublic/cstc40/keymaps/default/rules.mk @@ -0,0 +1 @@ +TRI_LAYER_ENABLE = yes diff --git a/keyboards/kprepublic/cstc40/keymaps/via/keymap.c b/keyboards/kprepublic/cstc40/keymaps/via/keymap.c new file mode 100644 index 0000000000..e47ff226a9 --- /dev/null +++ b/keyboards/kprepublic/cstc40/keymaps/via/keymap.c @@ -0,0 +1,94 @@ +/* Copyright 2023 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | BLTog| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[0] = LAYOUT_planck_mit( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, TL_LOWR, KC_SPC, TL_UPPR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[1] = LAYOUT_planck_mit( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[2] = LAYOUT_planck_mit( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Adjust (Lower + Raise) + * v------------------------RGB CONTROL--------------------v + * ,-----------------------------------------------------------------------------------. + * | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[3] = LAYOUT_planck_mit( + _______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + +}; diff --git a/keyboards/kprepublic/cstc40/keymaps/via/rules.mk b/keyboards/kprepublic/cstc40/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/kprepublic/cstc40/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/kprepublic/cstc40/mcuconf.h b/keyboards/kprepublic/cstc40/mcuconf.h new file mode 100644 index 0000000000..a56e52fb8d --- /dev/null +++ b/keyboards/kprepublic/cstc40/mcuconf.h @@ -0,0 +1,21 @@ +/* Copyright 2020 Nick Brassel (tzarc) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE \ No newline at end of file diff --git a/keyboards/kprepublic/cstc40/readme.md b/keyboards/kprepublic/cstc40/readme.md new file mode 100644 index 0000000000..211c078cc2 --- /dev/null +++ b/keyboards/kprepublic/cstc40/readme.md @@ -0,0 +1,26 @@ +# cstc40 + +A 40% hotswap ortholinear RGB keyboard from KP Republic. + +* Keyboard Maintainer: [Var](https://github.com/itsvar8) +* Hardware Supported: CSTC40 +* Hardware Availability: kprepublic.com + +The differences between the two versions are just the rows and columns pins and the additional small pcb for the daughterboard version. + +Make example for this keyboard (after setting up your build environment): + + for daughterboard version: make kprepublic/cstc40/daughterboard:default + for single pcb version: make kprepublic/cstc40/single_pcb: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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + +The single_pcb uses pin A10, which apparently is a design flaw that prevent the bootloader to start every time - https://docs.qmk.fm/#/platformdev_blackpill_f4x1?id=pins-to-be-avoided. There is a simple workaround that works most of the time - press the pin key (generally the letter R) during the boot. diff --git a/keyboards/kprepublic/cstc40/single_pcb/info.json b/keyboards/kprepublic/cstc40/single_pcb/info.json new file mode 100644 index 0000000000..330ada7bac --- /dev/null +++ b/keyboards/kprepublic/cstc40/single_pcb/info.json @@ -0,0 +1,6 @@ +{ + "matrix_pins": { + "cols": ["C7", "C8", "C9", "A8", "A10", "B10", "A15", "C13", "B6", "B5", "B4", "B3"], + "rows": ["C12", "C10", "C11", "B0"] + } +} \ No newline at end of file diff --git a/keyboards/kprepublic/cstc40/single_pcb/rules.mk b/keyboards/kprepublic/cstc40/single_pcb/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/kprepublic/cstc40/single_pcb/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/kprepublic/cstc40/single_pcb/single_pcb.c b/keyboards/kprepublic/cstc40/single_pcb/single_pcb.c new file mode 100644 index 0000000000..39d3d7ff52 --- /dev/null +++ b/keyboards/kprepublic/cstc40/single_pcb/single_pcb.c @@ -0,0 +1,71 @@ +/* Copyright 2022 bdtc123 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { + { 0, L_1, K_1, J_1 }, + { 0, L_2, K_2, J_2 }, + { 0, L_3, K_3, J_3 }, + { 0, L_4, K_4, J_4 }, + { 0, L_5, K_5, J_5 }, + { 0, L_6, K_6, J_6 }, + { 0, L_7, K_7, J_7 }, + { 0, L_8, K_8, J_8 }, + { 0, L_9, K_9, J_9 }, + { 0, L_10, K_10, J_10 }, + { 0, L_11, K_11, J_11 }, + { 0, L_12, K_12, J_12 }, + + { 0, I_1, H_1, G_1 }, + { 0, I_2, H_2, G_2 }, + { 0, I_3, H_3, G_3 }, + { 0, I_4, H_4, G_4 }, + { 0, I_5, H_5, G_5 }, + { 0, I_6, H_6, G_6 }, + { 0, I_7, H_7, G_7 }, + { 0, I_8, H_8, G_8 }, + { 0, I_9, H_9, G_9 }, + { 0, I_10, H_10, G_10 }, + { 0, I_11, H_11, G_11 }, + { 0, I_12, H_12, G_12 }, + + { 0, F_1, E_1, D_1 }, + { 0, F_2, E_2, D_2 }, + { 0, F_3, E_3, D_3 }, + { 0, F_4, E_4, D_4 }, + { 0, F_5, E_5, D_5 }, + { 0, F_6, E_6, D_6 }, + { 0, F_7, E_7, D_7 }, + { 0, F_8, E_8, D_8 }, + { 0, F_9, E_9, D_9 }, + { 0, F_10, E_10, D_10 }, + { 0, F_11, E_11, D_11 }, + { 0, F_12, E_12, D_12 }, + + { 0, C_1, B_1, A_1 }, + { 0, C_2, B_2, A_2 }, + { 0, C_3, B_3, A_3 }, + { 0, C_4, B_4, A_4 }, + { 0, C_5, B_5, A_5 }, + { 0, C_6, B_6, A_6 }, + { 0, C_8, B_8, A_8 }, + { 0, C_9, B_9, A_9 }, + { 0, C_10, B_10, A_10 }, + { 0, C_11, B_11, A_11 }, + { 0, C_12, B_12, A_12 } +}; +#endif \ No newline at end of file From 391c0428c982b0fa35c27a8519f56652ffd672d9 Mon Sep 17 00:00:00 2001 From: EnviousData Date: Thu, 12 Oct 2023 22:07:42 +0100 Subject: [PATCH 275/496] [Keyboard] Add support for EnviousDesign keyboards (#17544) * Add support for Envious.Design Keyboards Add various RP2040 keyboards I've designed. * Fixed missing newlines at EOF. * Ran CLANG-FORMAT and sorted out any potential issues. * Gave keyboards all unique product IDs * Made requested changes. * removed all VIAL related code * sorted out license on all *.h or *.h files * removed outdated RESET Keycode * missed some VIAL bits * Made suggested changes * Made Suggested Changes * missed one file to change. * Attempted fix of CI issues * Update .gitmodules * Revert "Update .gitmodules" This reverts commit f4bace51621ed0c5bd40c729fa1c6339f665f0b7. * hopefully fixed all CI and QMK lint issues * resolve more CI errors and a couple typos * fixed last remaining issue as of now * made requested changes * further more on suggested change * Delete README.md * derpy workaround to change case of readme * finished up 65M firmware via does not work, I will investigate another time. * re-did a lot of 65M firmware bits, also fixed via for this board * corrected mistake in firmware * made suggested change to info.json for 65m/60F * finished 65M non via keymap and re-sorted via keymap * Update keyboards/enviousdesign/tkl/rgb/keymaps/default/keymap.c * Update keyboards/enviousdesign/tkl/rgb/keymaps/default/keymap.c * Apply suggestions from code review Verified updated Info.json works for aforementioned keyboards, * Follow-up commit with aforementioned suggested changes * Apply suggestions from code review correction to a couple typos pointed out. * follow-up removed some un-needed Readmes and corrected a mistake in 60F via keymap * Apply suggestions from code review * Added images of PCB to each Keyboard README * Apply suggestions from code review * Update keyboards/enviousdesign/60f/readme.md * Added missing aspects of info.json and corrected RGB_DI_PIN to WS2812_DI_PIN in RGB keyboard * made requested changes * Update config.h * used QMK migrate to update info.json * Apply suggestions from code review * Update keyboards/enviousdesign/65m/info.json * renamed named keyboards as suggested and added commission keyboard to repo * renamed file to hopefully please lint * renamed things to be all lower case since lint doesn't appear to look for upper case * updated keymap.c and removed unnecessary file * fixed readme and a couple other bits * converted various aspects to json information * attempt fix for lint error * fix some issues I overlooked * Apply suggestions from code review * moved some folders about as suggested * Made suggested changes * Apply suggestions from code review * removed outdated config.h * fixed errors in 65M and mini1800 * Apply suggestions from code review * Update keyboards/enviousdesign/delirium/rev1/info.json * Update keyboards/enviousdesign/65m/info.json * Apply suggestions from code review --- keyboards/enviousdesign/60f/info.json | 227 ++++++++++ .../60f/keymaps/default/keymap.c | 36 ++ .../enviousdesign/60f/keymaps/via/keymap.c | 36 ++ .../enviousdesign/60f/keymaps/via/rules.mk | 1 + keyboards/enviousdesign/60f/readme.md | 31 ++ keyboards/enviousdesign/60f/rules.mk | 1 + keyboards/enviousdesign/65m/info.json | 393 ++++++++++++++++++ .../65m/keymaps/default/keymap.c | 21 + .../enviousdesign/65m/keymaps/via/keymap.c | 21 + .../enviousdesign/65m/keymaps/via/rules.mk | 1 + keyboards/enviousdesign/65m/readme.md | 30 ++ keyboards/enviousdesign/65m/rules.mk | 1 + .../commissions/mini1800/info.json | 110 +++++ .../mini1800/keymaps/default/keymap.c | 31 ++ .../commissions/mini1800/keymaps/via/keymap.c | 31 ++ .../commissions/mini1800/keymaps/via/rules.mk | 1 + .../commissions/mini1800/mini1800.c | 23 + .../commissions/mini1800/readme.md | 27 ++ .../commissions/mini1800/rules.mk | 1 + keyboards/enviousdesign/delirium/readme.md | 32 ++ .../enviousdesign/delirium/rev0/info.json | 121 ++++++ .../delirium/rev0/keymaps/default/keymap.c | 38 ++ .../enviousdesign/delirium/rev0/rules.mk | 1 + .../enviousdesign/delirium/rev1/info.json | 305 ++++++++++++++ .../delirium/rev1/keymaps/default/keymap.c | 39 ++ .../delirium/rev1/keymaps/via/keymap.c | 39 ++ .../delirium/rev1/keymaps/via/rules.mk | 1 + .../enviousdesign/delirium/rev1/rules.mk | 1 + .../enviousdesign/delirium/rgb/info.json | 239 +++++++++++ .../delirium/rgb/keymaps/default/keymap.c | 40 ++ keyboards/enviousdesign/delirium/rgb/rgb.c | 35 ++ keyboards/enviousdesign/delirium/rgb/rules.mk | 1 + keyboards/enviousdesign/mcro/readme.md | 30 ++ keyboards/enviousdesign/mcro/rev1/info.json | 44 ++ .../mcro/rev1/keymaps/default/keymap.c | 28 ++ .../mcro/rev1/keymaps/via/keymap.c | 27 ++ .../mcro/rev1/keymaps/via/rules.mk | 1 + keyboards/enviousdesign/mcro/rev1/rules.mk | 1 + 38 files changed, 2046 insertions(+) create mode 100644 keyboards/enviousdesign/60f/info.json create mode 100644 keyboards/enviousdesign/60f/keymaps/default/keymap.c create mode 100644 keyboards/enviousdesign/60f/keymaps/via/keymap.c create mode 100644 keyboards/enviousdesign/60f/keymaps/via/rules.mk create mode 100644 keyboards/enviousdesign/60f/readme.md create mode 100644 keyboards/enviousdesign/60f/rules.mk create mode 100644 keyboards/enviousdesign/65m/info.json create mode 100644 keyboards/enviousdesign/65m/keymaps/default/keymap.c create mode 100644 keyboards/enviousdesign/65m/keymaps/via/keymap.c create mode 100644 keyboards/enviousdesign/65m/keymaps/via/rules.mk create mode 100644 keyboards/enviousdesign/65m/readme.md create mode 100644 keyboards/enviousdesign/65m/rules.mk create mode 100644 keyboards/enviousdesign/commissions/mini1800/info.json create mode 100644 keyboards/enviousdesign/commissions/mini1800/keymaps/default/keymap.c create mode 100644 keyboards/enviousdesign/commissions/mini1800/keymaps/via/keymap.c create mode 100644 keyboards/enviousdesign/commissions/mini1800/keymaps/via/rules.mk create mode 100644 keyboards/enviousdesign/commissions/mini1800/mini1800.c create mode 100644 keyboards/enviousdesign/commissions/mini1800/readme.md create mode 100644 keyboards/enviousdesign/commissions/mini1800/rules.mk create mode 100644 keyboards/enviousdesign/delirium/readme.md create mode 100644 keyboards/enviousdesign/delirium/rev0/info.json create mode 100644 keyboards/enviousdesign/delirium/rev0/keymaps/default/keymap.c create mode 100644 keyboards/enviousdesign/delirium/rev0/rules.mk create mode 100644 keyboards/enviousdesign/delirium/rev1/info.json create mode 100644 keyboards/enviousdesign/delirium/rev1/keymaps/default/keymap.c create mode 100644 keyboards/enviousdesign/delirium/rev1/keymaps/via/keymap.c create mode 100644 keyboards/enviousdesign/delirium/rev1/keymaps/via/rules.mk create mode 100644 keyboards/enviousdesign/delirium/rev1/rules.mk create mode 100644 keyboards/enviousdesign/delirium/rgb/info.json create mode 100644 keyboards/enviousdesign/delirium/rgb/keymaps/default/keymap.c create mode 100644 keyboards/enviousdesign/delirium/rgb/rgb.c create mode 100644 keyboards/enviousdesign/delirium/rgb/rules.mk create mode 100644 keyboards/enviousdesign/mcro/readme.md create mode 100644 keyboards/enviousdesign/mcro/rev1/info.json create mode 100644 keyboards/enviousdesign/mcro/rev1/keymaps/default/keymap.c create mode 100644 keyboards/enviousdesign/mcro/rev1/keymaps/via/keymap.c create mode 100644 keyboards/enviousdesign/mcro/rev1/keymaps/via/rules.mk create mode 100644 keyboards/enviousdesign/mcro/rev1/rules.mk diff --git a/keyboards/enviousdesign/60f/info.json b/keyboards/enviousdesign/60f/info.json new file mode 100644 index 0000000000..20876aa0b8 --- /dev/null +++ b/keyboards/enviousdesign/60f/info.json @@ -0,0 +1,227 @@ +{ + "manufacturer": "Envious.Design", + "keyboard_name": "EnvKB 60F V1", + "maintainer": "Envious.Design", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP10", "GP9", "GP8", "GP7", "GP6", "GP5", "GP16", "GP17", "GP18", "GP19", "GP20", "GP21", "GP22", "GP26", "GP27"], + "rows": ["GP11", "GP12", "GP13", "GP14", "GP15"] + }, + "processor": "RP2040", + "url": "http://envious.design", + "usb": { + "device_version": "1.0.0", + "pid": "0xA400", + "vid": "0xE739" + }, + "community_layouts": ["60_ansi", "60_iso"], + "layouts": { + "LAYOUT_60_ansi": { + "layout": [ + {"label": "0,0", "matrix": [0, 0], "x": 2.5, "y": 0}, + {"label": "0,1", "matrix": [0, 1], "x": 3.5, "y": 0}, + {"label": "0,2", "matrix": [0, 2], "x": 4.5, "y": 0}, + {"label": "0,3", "matrix": [0, 3], "x": 5.5, "y": 0}, + {"label": "0,4", "matrix": [0, 4], "x": 6.5, "y": 0}, + {"label": "0,5", "matrix": [0, 5], "x": 7.5, "y": 0}, + {"label": "0,6", "matrix": [0, 6], "x": 8.5, "y": 0}, + {"label": "0,7", "matrix": [0, 7], "x": 9.5, "y": 0}, + {"label": "0,8", "matrix": [0, 8], "x": 10.5, "y": 0}, + {"label": "0,9", "matrix": [0, 9], "x": 11.5, "y": 0}, + {"label": "0,10", "matrix": [0, 10], "x": 12.5, "y": 0}, + {"label": "0,11", "matrix": [0, 11], "x": 13.5, "y": 0}, + {"label": "0,12", "matrix": [0, 12], "x": 14.5, "y": 0}, + {"label": "0,14", "matrix": [0, 14], "x": 15.5, "y": 0, "w": 2}, + {"label": "1,0", "matrix": [1, 0], "x": 2.5, "y": 1, "w": 1.5}, + {"label": "1,2", "matrix": [1, 2], "x": 4, "y": 1}, + {"label": "1,3", "matrix": [1, 3], "x": 5, "y": 1}, + {"label": "1,4", "matrix": [1, 4], "x": 6, "y": 1}, + {"label": "1,5", "matrix": [1, 5], "x": 7, "y": 1}, + {"label": "1,6", "matrix": [1, 6], "x": 8, "y": 1}, + {"label": "1,7", "matrix": [1, 7], "x": 9, "y": 1}, + {"label": "1,8", "matrix": [1, 8], "x": 10, "y": 1}, + {"label": "1,9", "matrix": [1, 9], "x": 11, "y": 1}, + {"label": "1,10", "matrix": [1, 10], "x": 12, "y": 1}, + {"label": "1,11", "matrix": [1, 11], "x": 13, "y": 1}, + {"label": "1,12", "matrix": [1, 12], "x": 14, "y": 1}, + {"label": "1,13", "matrix": [1, 13], "x": 15, "y": 1}, + {"label": "1,14", "matrix": [1, 14], "x": 16, "y": 1, "w": 1.5}, + {"label": "2,0", "matrix": [2, 0], "x": 2.5, "y": 2, "w": 1.75}, + {"label": "2,2", "matrix": [2, 2], "x": 4.25, "y": 2}, + {"label": "2,3", "matrix": [2, 3], "x": 5.25, "y": 2}, + {"label": "2,4", "matrix": [2, 4], "x": 6.25, "y": 2}, + {"label": "2,5", "matrix": [2, 5], "x": 7.25, "y": 2}, + {"label": "2,6", "matrix": [2, 6], "x": 8.25, "y": 2}, + {"label": "2,7", "matrix": [2, 7], "x": 9.25, "y": 2}, + {"label": "2,8", "matrix": [2, 8], "x": 10.25, "y": 2}, + {"label": "2,9", "matrix": [2, 9], "x": 11.25, "y": 2}, + {"label": "2,10", "matrix": [2, 10], "x": 12.25, "y": 2}, + {"label": "2,11", "matrix": [2, 11], "x": 13.25, "y": 2}, + {"label": "2,12", "matrix": [2, 12], "x": 14.25, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 15.25, "y": 2, "w": 2.25}, + {"label": "3,0", "matrix": [3, 0], "x": 2.5, "y": 3, "w": 2.25}, + {"label": "3,2", "matrix": [3, 2], "x": 4.75, "y": 3}, + {"label": "3,3", "matrix": [3, 3], "x": 5.75, "y": 3}, + {"label": "3,4", "matrix": [3, 4], "x": 6.75, "y": 3}, + {"label": "3,5", "matrix": [3, 5], "x": 7.75, "y": 3}, + {"label": "3,6", "matrix": [3, 6], "x": 8.75, "y": 3}, + {"label": "3,7", "matrix": [3, 7], "x": 9.75, "y": 3}, + {"label": "3,8", "matrix": [3, 8], "x": 10.75, "y": 3}, + {"label": "3,9", "matrix": [3, 9], "x": 11.75, "y": 3}, + {"label": "3,10", "matrix": [3, 10], "x": 12.75, "y": 3}, + {"label": "3,11", "matrix": [3, 11], "x": 13.75, "y": 3}, + {"label": "3,13", "matrix": [3, 13], "x": 14.75, "y": 3, "w": 2.75}, + {"label": "4,0", "matrix": [4, 0], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "4,1", "matrix": [4, 1], "x": 3.75, "y": 4, "w": 1.25}, + {"label": "4,3", "matrix": [4, 3], "x": 5, "y": 4, "w": 1.25}, + {"label": "4,6", "matrix": [4, 6], "x": 6.25, "y": 4, "w": 6.25}, + {"label": "4,10", "matrix": [4, 10], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "4,11", "matrix": [4, 11], "x": 13.75, "y": 4, "w": 1.25}, + {"label": "4,13", "matrix": [4, 13], "x": 15, "y": 4, "w": 1.25}, + {"label": "4,14", "matrix": [4, 14], "x": 16.25, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso": { + "layout": [ + {"label": "0,0", "matrix": [0, 0], "x": 2.5, "y": 0}, + {"label": "0,1", "matrix": [0, 1], "x": 3.5, "y": 0}, + {"label": "0,2", "matrix": [0, 2], "x": 4.5, "y": 0}, + {"label": "0,3", "matrix": [0, 3], "x": 5.5, "y": 0}, + {"label": "0,4", "matrix": [0, 4], "x": 6.5, "y": 0}, + {"label": "0,5", "matrix": [0, 5], "x": 7.5, "y": 0}, + {"label": "0,6", "matrix": [0, 6], "x": 8.5, "y": 0}, + {"label": "0,7", "matrix": [0, 7], "x": 9.5, "y": 0}, + {"label": "0,8", "matrix": [0, 8], "x": 10.5, "y": 0}, + {"label": "0,9", "matrix": [0, 9], "x": 11.5, "y": 0}, + {"label": "0,10", "matrix": [0, 10], "x": 12.5, "y": 0}, + {"label": "0,11", "matrix": [0, 11], "x": 13.5, "y": 0}, + {"label": "0,12", "matrix": [0, 12], "x": 14.5, "y": 0}, + {"label": "0,14", "matrix": [0, 14], "x": 15.5, "y": 0, "w": 2}, + {"label": "1,0", "matrix": [1, 0], "x": 2.5, "y": 1, "w": 1.5}, + {"label": "1,2", "matrix": [1, 2], "x": 4, "y": 1}, + {"label": "1,3", "matrix": [1, 3], "x": 5, "y": 1}, + {"label": "1,4", "matrix": [1, 4], "x": 6, "y": 1}, + {"label": "1,5", "matrix": [1, 5], "x": 7, "y": 1}, + {"label": "1,6", "matrix": [1, 6], "x": 8, "y": 1}, + {"label": "1,7", "matrix": [1, 7], "x": 9, "y": 1}, + {"label": "1,8", "matrix": [1, 8], "x": 10, "y": 1}, + {"label": "1,9", "matrix": [1, 9], "x": 11, "y": 1}, + {"label": "1,10", "matrix": [1, 10], "x": 12, "y": 1}, + {"label": "1,11", "matrix": [1, 11], "x": 13, "y": 1}, + {"label": "1,12", "matrix": [1, 12], "x": 14, "y": 1}, + {"label": "1,13", "matrix": [1, 13], "x": 15, "y": 1}, + {"label": "2,0", "matrix": [2, 0], "x": 2.5, "y": 2, "w": 1.75}, + {"label": "2,2", "matrix": [2, 2], "x": 4.25, "y": 2}, + {"label": "2,3", "matrix": [2, 3], "x": 5.25, "y": 2}, + {"label": "2,4", "matrix": [2, 4], "x": 6.25, "y": 2}, + {"label": "2,5", "matrix": [2, 5], "x": 7.25, "y": 2}, + {"label": "2,6", "matrix": [2, 6], "x": 8.25, "y": 2}, + {"label": "2,7", "matrix": [2, 7], "x": 9.25, "y": 2}, + {"label": "2,8", "matrix": [2, 8], "x": 10.25, "y": 2}, + {"label": "2,9", "matrix": [2, 9], "x": 11.25, "y": 2}, + {"label": "2,10", "matrix": [2, 10], "x": 12.25, "y": 2}, + {"label": "2,11", "matrix": [2, 11], "x": 13.25, "y": 2}, + {"label": "2,12", "matrix": [2, 12], "x": 14.25, "y": 2}, + {"label": "2,13", "matrix": [2, 13], "x": 15.25, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 16.25, "y": 1, "w": 1.25, "h": 2}, + {"label": "3,0", "matrix": [3, 0], "x": 2.5, "y": 3, "w": 1.25}, + {"label": "3,1", "matrix": [3, 1], "x": 3.75, "y": 3}, + {"label": "3,2", "matrix": [3, 2], "x": 4.75, "y": 3}, + {"label": "3,3", "matrix": [3, 3], "x": 5.75, "y": 3}, + {"label": "3,4", "matrix": [3, 4], "x": 6.75, "y": 3}, + {"label": "3,5", "matrix": [3, 5], "x": 7.75, "y": 3}, + {"label": "3,6", "matrix": [3, 6], "x": 8.75, "y": 3}, + {"label": "3,7", "matrix": [3, 7], "x": 9.75, "y": 3}, + {"label": "3,8", "matrix": [3, 8], "x": 10.75, "y": 3}, + {"label": "3,9", "matrix": [3, 9], "x": 11.75, "y": 3}, + {"label": "3,10", "matrix": [3, 10], "x": 12.75, "y": 3}, + {"label": "3,11", "matrix": [3, 11], "x": 13.75, "y": 3}, + {"label": "3,13", "matrix": [3, 13], "x": 14.75, "y": 3, "w": 2.75}, + {"label": "4,0", "matrix": [4, 0], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "4,1", "matrix": [4, 1], "x": 3.75, "y": 4, "w": 1.25}, + {"label": "4,3", "matrix": [4, 3], "x": 5, "y": 4, "w": 1.25}, + {"label": "4,6", "matrix": [4, 6], "x": 6.25, "y": 4, "w": 6.25}, + {"label": "4,10", "matrix": [4, 10], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "4,11", "matrix": [4, 11], "x": 13.75, "y": 4, "w": 1.25}, + {"label": "4,13", "matrix": [4, 13], "x": 15, "y": 4, "w": 1.25}, + {"label": "4,14", "matrix": [4, 14], "x": 16.25, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_all": { + "layout": [ + {"label": "0,0", "matrix": [0, 0], "x": 2.5, "y": 0}, + {"label": "0,1", "matrix": [0, 1], "x": 3.5, "y": 0}, + {"label": "0,2", "matrix": [0, 2], "x": 4.5, "y": 0}, + {"label": "0,3", "matrix": [0, 3], "x": 5.5, "y": 0}, + {"label": "0,4", "matrix": [0, 4], "x": 6.5, "y": 0}, + {"label": "0,5", "matrix": [0, 5], "x": 7.5, "y": 0}, + {"label": "0,6", "matrix": [0, 6], "x": 8.5, "y": 0}, + {"label": "0,7", "matrix": [0, 7], "x": 9.5, "y": 0}, + {"label": "0,8", "matrix": [0, 8], "x": 10.5, "y": 0}, + {"label": "0,9", "matrix": [0, 9], "x": 11.5, "y": 0}, + {"label": "0,10", "matrix": [0, 10], "x": 12.5, "y": 0}, + {"label": "0,11", "matrix": [0, 11], "x": 13.5, "y": 0}, + {"label": "0,12", "matrix": [0, 12], "x": 14.5, "y": 0}, + {"label": "0,14", "matrix": [0, 14], "x": 15.5, "y": 0, "w": 2}, + {"label": "1,0", "matrix": [1, 0], "x": 2.5, "y": 1, "w": 1.5}, + {"label": "1,2", "matrix": [1, 2], "x": 4, "y": 1}, + {"label": "1,3", "matrix": [1, 3], "x": 5, "y": 1}, + {"label": "1,4", "matrix": [1, 4], "x": 6, "y": 1}, + {"label": "1,5", "matrix": [1, 5], "x": 7, "y": 1}, + {"label": "1,6", "matrix": [1, 6], "x": 8, "y": 1}, + {"label": "1,7", "matrix": [1, 7], "x": 9, "y": 1}, + {"label": "1,8", "matrix": [1, 8], "x": 10, "y": 1}, + {"label": "1,9", "matrix": [1, 9], "x": 11, "y": 1}, + {"label": "1,10", "matrix": [1, 10], "x": 12, "y": 1}, + {"label": "1,11", "matrix": [1, 11], "x": 13, "y": 1}, + {"label": "1,12", "matrix": [1, 12], "x": 14, "y": 1}, + {"label": "1,13", "matrix": [1, 13], "x": 15, "y": 1}, + {"label": "1,14", "matrix": [1, 14], "x": 16, "y": 1, "w": 1.5}, + {"label": "2,0", "matrix": [2, 0], "x": 2.5, "y": 2, "w": 1.75}, + {"label": "2,2", "matrix": [2, 2], "x": 4.25, "y": 2}, + {"label": "2,3", "matrix": [2, 3], "x": 5.25, "y": 2}, + {"label": "2,4", "matrix": [2, 4], "x": 6.25, "y": 2}, + {"label": "2,5", "matrix": [2, 5], "x": 7.25, "y": 2}, + {"label": "2,6", "matrix": [2, 6], "x": 8.25, "y": 2}, + {"label": "2,7", "matrix": [2, 7], "x": 9.25, "y": 2}, + {"label": "2,8", "matrix": [2, 8], "x": 10.25, "y": 2}, + {"label": "2,9", "matrix": [2, 9], "x": 11.25, "y": 2}, + {"label": "2,10", "matrix": [2, 10], "x": 12.25, "y": 2}, + {"label": "2,11", "matrix": [2, 11], "x": 13.25, "y": 2}, + {"label": "2,12", "matrix": [2, 12], "x": 14.25, "y": 2}, + {"label": "2,13", "matrix": [2, 13], "x": 15.25, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 16.25, "y": 2, "w": 1.25}, + {"label": "3,0", "matrix": [3, 0], "x": 2.5, "y": 3, "w": 1.25}, + {"label": "3,1", "matrix": [3, 1], "x": 3.75, "y": 3}, + {"label": "3,2", "matrix": [3, 2], "x": 4.75, "y": 3}, + {"label": "3,3", "matrix": [3, 3], "x": 5.75, "y": 3}, + {"label": "3,4", "matrix": [3, 4], "x": 6.75, "y": 3}, + {"label": "3,5", "matrix": [3, 5], "x": 7.75, "y": 3}, + {"label": "3,6", "matrix": [3, 6], "x": 8.75, "y": 3}, + {"label": "3,7", "matrix": [3, 7], "x": 9.75, "y": 3}, + {"label": "3,8", "matrix": [3, 8], "x": 10.75, "y": 3}, + {"label": "3,9", "matrix": [3, 9], "x": 11.75, "y": 3}, + {"label": "3,10", "matrix": [3, 10], "x": 12.75, "y": 3}, + {"label": "3,11", "matrix": [3, 11], "x": 13.75, "y": 3}, + {"label": "3,13", "matrix": [3, 13], "x": 14.75, "y": 3, "w": 2.75}, + {"label": "4,0", "matrix": [4, 0], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "4,1", "matrix": [4, 1], "x": 3.75, "y": 4, "w": 1.25}, + {"label": "4,3", "matrix": [4, 3], "x": 5, "y": 4, "w": 1.25}, + {"label": "4,6", "matrix": [4, 6], "x": 6.25, "y": 4, "w": 6.25}, + {"label": "4,10", "matrix": [4, 10], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "4,11", "matrix": [4, 11], "x": 13.75, "y": 4, "w": 1.25}, + {"label": "4,13", "matrix": [4, 13], "x": 15, "y": 4, "w": 1.25}, + {"label": "4,14", "matrix": [4, 14], "x": 16.25, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/enviousdesign/60f/keymaps/default/keymap.c b/keyboards/enviousdesign/60f/keymaps/default/keymap.c new file mode 100644 index 0000000000..42f84afed7 --- /dev/null +++ b/keyboards/enviousdesign/60f/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2022 Adam K (@Envious-Data) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_all( + KC_GRV, 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_BSPC, + 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_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_RSFT, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(1), KC_RCTL + ), + [1] = LAYOUT_all( + KC_ESC, 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_PSCR, + QK_BOOT, KC_VOLU, KC_UP, KC_MYCM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INSERT,KC_HOME,KC_PGUP, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_TRNS, + KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS, KC_CALCULATOR,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_APP, KC_TRNS, KC_TRNS + ) +}; + diff --git a/keyboards/enviousdesign/60f/keymaps/via/keymap.c b/keyboards/enviousdesign/60f/keymaps/via/keymap.c new file mode 100644 index 0000000000..42f84afed7 --- /dev/null +++ b/keyboards/enviousdesign/60f/keymaps/via/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2022 Adam K (@Envious-Data) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_all( + KC_GRV, 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_BSPC, + 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_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_RSFT, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(1), KC_RCTL + ), + [1] = LAYOUT_all( + KC_ESC, 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_PSCR, + QK_BOOT, KC_VOLU, KC_UP, KC_MYCM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INSERT,KC_HOME,KC_PGUP, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_TRNS, + KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS, KC_CALCULATOR,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_APP, KC_TRNS, KC_TRNS + ) +}; + diff --git a/keyboards/enviousdesign/60f/keymaps/via/rules.mk b/keyboards/enviousdesign/60f/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/enviousdesign/60f/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/enviousdesign/60f/readme.md b/keyboards/enviousdesign/60f/readme.md new file mode 100644 index 0000000000..5098f22327 --- /dev/null +++ b/keyboards/enviousdesign/60f/readme.md @@ -0,0 +1,31 @@ +# EnvKB 60F + +![Image of the EnvKB 60F PCB](https://i.imgur.com/c5xMEg0h.png) + + +A low cost Standard 60% Design which takes inspiration from the CFTKB Mysterium. + +* Keyboard Maintainer: [Envious-Data](https://github.com/envious-data) +* Hardware Supported: EnvKB 60F (Pi Pico) +* Hardware Availability: [GitHub](https://github.com/Envious-Data/Env-KB60F) + +Make example for this keyboard (after setting up your build environment): + + make enviousdesign/60f:default + +Flashing example for this keyboard: + + make enviousdesign/60f:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard. This will also clear the emulated EEPROM, so it is a good first step if the keyboard is misbehaving. +* **Physical reset**: Hold down the `BOOTSEL` button on the Pi Pico, then either plug the board in or press the `RESET` button. +* **Keycode in layout**: Press the key mapped to `QK_BOOT`. In the pre-supplied keymaps it is on the second layer, replacing the Tab key. + +After entering the bootloader through one of the three methods above, the keyboard will appear as a USB mass storage device named `RPI-RP2`. If the CLI is unable to find this device, the compiled `.uf2` file can be manually copied to it. The keyboard will reboot on completion with the new firmware loaded. + diff --git a/keyboards/enviousdesign/60f/rules.mk b/keyboards/enviousdesign/60f/rules.mk new file mode 100644 index 0000000000..837f4bffb5 --- /dev/null +++ b/keyboards/enviousdesign/60f/rules.mk @@ -0,0 +1 @@ +# This file is intentionally left blank diff --git a/keyboards/enviousdesign/65m/info.json b/keyboards/enviousdesign/65m/info.json new file mode 100644 index 0000000000..2328932462 --- /dev/null +++ b/keyboards/enviousdesign/65m/info.json @@ -0,0 +1,393 @@ +{ + "manufacturer": "Envious.Design", + "keyboard_name": "EnvKB 65M", + "maintainer": "Envious.Design", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP16"], + "rows": ["GP21", "GP20", "GP19", "GP18", "GP17"] + }, + "processor": "RP2040", + "url": "http://envious.design", + "usb": { + "device_version": "0.0.1", + "pid": "0xA279", + "vid": "0xE739" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 1.5, "y": 1}, + {"matrix": [1, 3], "x": 2.5, "y": 1}, + {"matrix": [1, 4], "x": 3.5, "y": 1}, + {"matrix": [1, 5], "x": 4.5, "y": 1}, + {"matrix": [1, 6], "x": 5.5, "y": 1}, + {"matrix": [1, 7], "x": 6.5, "y": 1}, + {"matrix": [1, 8], "x": 7.5, "y": 1}, + {"matrix": [1, 9], "x": 8.5, "y": 1}, + {"matrix": [1, 10], "x": 9.5, "y": 1}, + {"matrix": [1, 11], "x": 10.5, "y": 1}, + {"matrix": [1, 12], "x": 11.5, "y": 1}, + {"matrix": [1, 13], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 14], "x": 13.75, "y": 2, "w": 1.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [3, 16], "x": 16, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 4], "x": 3.75, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 6, "y": 4, "w": 1.75}, + {"matrix": [4, 8], "x": 7.75, "y": 4, "w": 2.25}, + {"matrix": [4, 10], "x": 10, "y": 4}, + {"matrix": [4, 11], "x": 11, "y": 4}, + {"matrix": [4, 12], "x": 12, "y": 4}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + {"matrix": [4, 16], "x": 16, "y": 4} + ] + }, + "LAYOUT_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 1.5, "y": 1}, + {"matrix": [1, 3], "x": 2.5, "y": 1}, + {"matrix": [1, 4], "x": 3.5, "y": 1}, + {"matrix": [1, 5], "x": 4.5, "y": 1}, + {"matrix": [1, 6], "x": 5.5, "y": 1}, + {"matrix": [1, 7], "x": 6.5, "y": 1}, + {"matrix": [1, 8], "x": 7.5, "y": 1}, + {"matrix": [1, 9], "x": 8.5, "y": 1}, + {"matrix": [1, 10], "x": 9.5, "y": 1}, + {"matrix": [1, 11], "x": 10.5, "y": 1}, + {"matrix": [1, 12], "x": 11.5, "y": 1}, + {"matrix": [1, 13], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [3, 16], "x": 16, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4}, + {"matrix": [4, 11], "x": 11, "y": 4}, + {"matrix": [4, 12], "x": 12, "y": 4}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + {"matrix": [4, 16], "x": 16, "y": 4} + ] + }, + "LAYOUT_ansi_split_space": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 1.5, "y": 1}, + {"matrix": [1, 3], "x": 2.5, "y": 1}, + {"matrix": [1, 4], "x": 3.5, "y": 1}, + {"matrix": [1, 5], "x": 4.5, "y": 1}, + {"matrix": [1, 6], "x": 5.5, "y": 1}, + {"matrix": [1, 7], "x": 6.5, "y": 1}, + {"matrix": [1, 8], "x": 7.5, "y": 1}, + {"matrix": [1, 9], "x": 8.5, "y": 1}, + {"matrix": [1, 10], "x": 9.5, "y": 1}, + {"matrix": [1, 11], "x": 10.5, "y": 1}, + {"matrix": [1, 12], "x": 11.5, "y": 1}, + {"matrix": [1, 13], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [3, 16], "x": 16, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 4], "x": 3.75, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 6, "y": 4, "w": 1.75}, + {"matrix": [4, 8], "x": 7.75, "y": 4, "w": 2.25}, + {"matrix": [4, 10], "x": 10, "y": 4}, + {"matrix": [4, 11], "x": 11, "y": 4}, + {"matrix": [4, 12], "x": 12, "y": 4}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + {"matrix": [4, 16], "x": 16, "y": 4} + ] + }, + "LAYOUT_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 1.5, "y": 1}, + {"matrix": [1, 3], "x": 2.5, "y": 1}, + {"matrix": [1, 4], "x": 3.5, "y": 1}, + {"matrix": [1, 5], "x": 4.5, "y": 1}, + {"matrix": [1, 6], "x": 5.5, "y": 1}, + {"matrix": [1, 7], "x": 6.5, "y": 1}, + {"matrix": [1, 8], "x": 7.5, "y": 1}, + {"matrix": [1, 9], "x": 8.5, "y": 1}, + {"matrix": [1, 10], "x": 9.5, "y": 1}, + {"matrix": [1, 11], "x": 10.5, "y": 1}, + {"matrix": [1, 12], "x": 11.5, "y": 1}, + {"matrix": [1, 13], "x": 12.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [3, 16], "x": 16, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4}, + {"matrix": [4, 11], "x": 11, "y": 4}, + {"matrix": [4, 12], "x": 12, "y": 4}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + {"matrix": [4, 16], "x": 16, "y": 4} + ] + }, + "LAYOUT_iso_split_space": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 1.5, "y": 1}, + {"matrix": [1, 3], "x": 2.5, "y": 1}, + {"matrix": [1, 4], "x": 3.5, "y": 1}, + {"matrix": [1, 5], "x": 4.5, "y": 1}, + {"matrix": [1, 6], "x": 5.5, "y": 1}, + {"matrix": [1, 7], "x": 6.5, "y": 1}, + {"matrix": [1, 8], "x": 7.5, "y": 1}, + {"matrix": [1, 9], "x": 8.5, "y": 1}, + {"matrix": [1, 10], "x": 9.5, "y": 1}, + {"matrix": [1, 11], "x": 10.5, "y": 1}, + {"matrix": [1, 12], "x": 11.5, "y": 1}, + {"matrix": [1, 13], "x": 12.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [3, 16], "x": 16, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 4], "x": 3.75, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 6, "y": 4, "w": 1.75}, + {"matrix": [4, 8], "x": 7.75, "y": 4, "w": 2.25}, + {"matrix": [4, 10], "x": 10, "y": 4}, + {"matrix": [4, 11], "x": 11, "y": 4}, + {"matrix": [4, 12], "x": 12, "y": 4}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + {"matrix": [4, 16], "x": 16, "y": 4} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/enviousdesign/65m/keymaps/default/keymap.c b/keyboards/enviousdesign/65m/keymaps/default/keymap.c new file mode 100644 index 0000000000..4efa8abf92 --- /dev/null +++ b/keyboards/enviousdesign/65m/keymaps/default/keymap.c @@ -0,0 +1,21 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_GRV, 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_BSPC, + 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_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_RSFT, KC_UP, KC_HOME, KC_PGUP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(2), MO(1), KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN + ), + [1] = LAYOUT_all( + KC_ESC, 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_TRNS, KC_TRNS, KC_TRNS, KC_MYCM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, 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_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_END, KC_INS, + QK_BOOTLOADER, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS, KC_DEL + ) +}; + diff --git a/keyboards/enviousdesign/65m/keymaps/via/keymap.c b/keyboards/enviousdesign/65m/keymaps/via/keymap.c new file mode 100644 index 0000000000..4efa8abf92 --- /dev/null +++ b/keyboards/enviousdesign/65m/keymaps/via/keymap.c @@ -0,0 +1,21 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_GRV, 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_BSPC, + 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_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_RSFT, KC_UP, KC_HOME, KC_PGUP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(2), MO(1), KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN + ), + [1] = LAYOUT_all( + KC_ESC, 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_TRNS, KC_TRNS, KC_TRNS, KC_MYCM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, 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_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_END, KC_INS, + QK_BOOTLOADER, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS, KC_DEL + ) +}; + diff --git a/keyboards/enviousdesign/65m/keymaps/via/rules.mk b/keyboards/enviousdesign/65m/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/enviousdesign/65m/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/enviousdesign/65m/readme.md b/keyboards/enviousdesign/65m/readme.md new file mode 100644 index 0000000000..76180843f3 --- /dev/null +++ b/keyboards/enviousdesign/65m/readme.md @@ -0,0 +1,30 @@ +# EnvKB 65M + +![image of EnvKB 65M PCB](https://i.imgur.com/3d76sz9h.png) + +A low cost 65% kit featuring split space and an attempt at fitting a standard keycap set. + +* Keyboard Maintainer: [Envious-Data](https://github.com/envious-data) +* Hardware Supported: EnvKB 65M (Pi Pico) +* Hardware Availability: [Mechboards](https://mechboards.co.uk/products/envkb-65-kit), [GitHub](https://github.com/Envious-Data/Env-KB65M) + +Make example for this keyboard (after setting up your build environment): + + make enviousdesign/65m:default + +Flashing example for this keyboard: + + make enviousdesign/65m:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard. This will also clear the emulated EEPROM, so it is a good first step if the keyboard is misbehaving. +* **Physical reset**: Hold down the `BOOTSEL` button on the Pi Pico, then either plug the board in or press the `RESET` button. +* **Keycode in layout**: Press the key mapped to `QK_BOOT`. In the pre-supplied keymaps it is on the second layer, replacing the Control key in the bottom-left. + +After entering the bootloader through one of the three methods above, the keyboard will appear as a USB mass storage device named `RPI-RP2`. If the CLI is unable to find this device, the compiled `.uf2` file can be manually copied to it. The keyboard will reboot on completion with the new firmware loaded. + diff --git a/keyboards/enviousdesign/65m/rules.mk b/keyboards/enviousdesign/65m/rules.mk new file mode 100644 index 0000000000..837f4bffb5 --- /dev/null +++ b/keyboards/enviousdesign/65m/rules.mk @@ -0,0 +1 @@ +# This file is intentionally left blank diff --git a/keyboards/enviousdesign/commissions/mini1800/info.json b/keyboards/enviousdesign/commissions/mini1800/info.json new file mode 100644 index 0000000000..9303e7af23 --- /dev/null +++ b/keyboards/enviousdesign/commissions/mini1800/info.json @@ -0,0 +1,110 @@ +{ + "manufacturer": "Envious.Design", + "keyboard_name": "Mini1800", + "maintainer": "Envious.Design", + "processor": "RP2040", + "bootloader": "rp2040", + "usb": { + "vid": "0xE739", + "pid": "0xC001", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "num_lock": "GP8", + "caps_lock": "GP10", + } + "diode_direction": "ROW2COL", + "matrix_pins": { + "rows": ["GP4", "GP3", "GP2", "GP1", "GP0"], + "cols": ["GP26", "GP25", "GP24", "GP23", "GP22", "GP21", "GP20", "GP19", "GP18", "GP17", "GP16", "GP15", "GP27", "GP28", "GP5", "GP6", "GP7"] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "x": 13, "y": 0 }, + { "matrix": [0, 14], "x": 14.5, "y": 0 }, + { "matrix": [0, 15], "x": 15.5, "y": 0 }, + { "matrix": [0, 16], "x": 16.5, "y": 0 }, + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "matrix": [1, 12], "w": 1.5, "x": 12.5, "y": 1 }, + { "matrix": [1, 14], "x": 14.5, "y": 1 }, + { "matrix": [1, 15], "x": 15.5, "y": 1 }, + { "matrix": [1, 16], "x": 16.5, "y": 1 }, + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "matrix": [2, 11], "w": 1.75, "x": 11.75, "y": 2 }, + { "matrix": [2, 14], "x": 14.5, "y": 2 }, + { "matrix": [2, 15], "x": 15.5, "y": 2 }, + { "matrix": [2, 16], "x": 16.5, "y": 2 }, + { "matrix": [3, 0], "w": 2, "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 2, "y": 3 }, + { "matrix": [3, 2], "x": 3, "y": 3 }, + { "matrix": [3, 3], "x": 4, "y": 3 }, + { "matrix": [3, 4], "x": 5, "y": 3 }, + { "matrix": [3, 5], "x": 6, "y": 3 }, + { "matrix": [3, 6], "x": 7, "y": 3 }, + { "matrix": [3, 7], "x": 8, "y": 3 }, + { "matrix": [3, 8], "x": 9, "y": 3 }, + { "matrix": [3, 9], "x": 10, "y": 3 }, + { "matrix": [3, 11], "w": 1.75, "x": 11, "y": 3 }, + { "matrix": [3, 12], "x": 13, "y": 3.25 }, + { "matrix": [3, 14], "x": 14.5, "y": 3 }, + { "matrix": [3, 15], "x": 15.5, "y": 3 }, + { "matrix": [3, 16], "x": 16.5, "y": 3 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 4], "w": 2.75, "x": 3.75, "y": 4 }, + { "matrix": [4, 6], "w": 2.75, "x": 6.5, "y": 4 }, + { "matrix": [4, 8], "w": 1.25, "x": 9.25, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10.5, "y": 4 }, + { "matrix": [4, 11], "x": 12, "y": 4.25 }, + { "matrix": [4, 12], "x": 13, "y": 4.25 }, + { "matrix": [4, 13], "x": 14, "y": 4.25 }, + { "matrix": [4, 15], "x": 15.5, "y": 4 }, + { "matrix": [4, 16], "x": 16.5, "y": 4 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/enviousdesign/commissions/mini1800/keymaps/default/keymap.c b/keyboards/enviousdesign/commissions/mini1800/keymaps/default/keymap.c new file mode 100644 index 0000000000..c095531fe6 --- /dev/null +++ b/keyboards/enviousdesign/commissions/mini1800/keymaps/default/keymap.c @@ -0,0 +1,31 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + QK_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_BSLS, KC_PGUP, KC_PGDN, KC_DEL, + 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_BSPC, KC_7, KC_8, KC_9, + MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, KC_4, KC_5, KC_6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_SLSH, KC_RSFT, KC_UP, KC_1, KC_2, KC_3, + KC_LCTL, KC_LGUI, KC_LALT, LT(1,KC_SPC), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_0, LT(1,KC_DOT) + ), + + [1] = LAYOUT( + KC_PWR, 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_MUTE, KC_HOME, KC_END, KC_MSTP, + KC_CAPS, MO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_PAUS, KC_PSCR, KC_RBRC, KC_SLEP, KC_P7, KC_P8, KC_P9, + KC_TRNS, KC_TRNS, KC_SCRL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_P4, KC_P5, KC_P6, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NUM, KC_TRNS, KC_TRNS, KC_DOT, KC_TRNS, KC_VOLU, KC_P1, KC_P2, KC_P3, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT, KC_P0, KC_PDOT + ), + + [2] = LAYOUT( + 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, QK_BOOT, + 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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + diff --git a/keyboards/enviousdesign/commissions/mini1800/keymaps/via/keymap.c b/keyboards/enviousdesign/commissions/mini1800/keymaps/via/keymap.c new file mode 100644 index 0000000000..c095531fe6 --- /dev/null +++ b/keyboards/enviousdesign/commissions/mini1800/keymaps/via/keymap.c @@ -0,0 +1,31 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + QK_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_BSLS, KC_PGUP, KC_PGDN, KC_DEL, + 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_BSPC, KC_7, KC_8, KC_9, + MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, KC_4, KC_5, KC_6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_SLSH, KC_RSFT, KC_UP, KC_1, KC_2, KC_3, + KC_LCTL, KC_LGUI, KC_LALT, LT(1,KC_SPC), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_0, LT(1,KC_DOT) + ), + + [1] = LAYOUT( + KC_PWR, 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_MUTE, KC_HOME, KC_END, KC_MSTP, + KC_CAPS, MO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_PAUS, KC_PSCR, KC_RBRC, KC_SLEP, KC_P7, KC_P8, KC_P9, + KC_TRNS, KC_TRNS, KC_SCRL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_P4, KC_P5, KC_P6, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NUM, KC_TRNS, KC_TRNS, KC_DOT, KC_TRNS, KC_VOLU, KC_P1, KC_P2, KC_P3, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT, KC_P0, KC_PDOT + ), + + [2] = LAYOUT( + 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, QK_BOOT, + 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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + diff --git a/keyboards/enviousdesign/commissions/mini1800/keymaps/via/rules.mk b/keyboards/enviousdesign/commissions/mini1800/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/enviousdesign/commissions/mini1800/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/enviousdesign/commissions/mini1800/mini1800.c b/keyboards/enviousdesign/commissions/mini1800/mini1800.c new file mode 100644 index 0000000000..f35be22d13 --- /dev/null +++ b/keyboards/enviousdesign/commissions/mini1800/mini1800.c @@ -0,0 +1,23 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include "quantum.h" + +void matrix_init_user(void) { + setPinOutput(GP9); //init gpio + writePinLow(GP9); + setPinOutput(GP11); //init and turn off inverted power led + writePinHigh(GP11); +} + +//layer, capslock and numlock +layer_state_t layer_state_set_user(layer_state_t state) { + writePin(GP9, layer_state_cmp(state, 1)); + return state; +} + +bool led_update_user(led_t led_state) { + led_state.num_lock = !led_state.num_lock; + led_update_ports(led_state); + return false; +} + diff --git a/keyboards/enviousdesign/commissions/mini1800/readme.md b/keyboards/enviousdesign/commissions/mini1800/readme.md new file mode 100644 index 0000000000..874cbcec60 --- /dev/null +++ b/keyboards/enviousdesign/commissions/mini1800/readme.md @@ -0,0 +1,27 @@ +# mini1800 + +![mini1800](https://i.imgur.com/t55hjq8.jpeg) + +*A mini1800 layout commission keyboard for LASERman71 utilising the RP2040 MCU* + +* Keyboard Maintainer: [Adam](https://github.com/envious-data) +* Hardware Supported: *Onboard RP2040 MCU* +* Hardware Availability: *None Yet* + +Make example for this keyboard (after setting up your build environment): + + make enviousdesign/commissions/mini1800:default + +Flashing example for this keyboard: + + make enviousdesign/commissions/mini1800:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/enviousdesign/commissions/mini1800/rules.mk b/keyboards/enviousdesign/commissions/mini1800/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/enviousdesign/commissions/mini1800/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/enviousdesign/delirium/readme.md b/keyboards/enviousdesign/delirium/readme.md new file mode 100644 index 0000000000..157a960303 --- /dev/null +++ b/keyboards/enviousdesign/delirium/readme.md @@ -0,0 +1,32 @@ +# EnvKB DELIRIUM + +![Image of EnvKB TKL PCB](https://i.imgur.com/a7UaS4mh.png) + +A low cost standard TKL design which takes inspiration from the CFTKB Mysterium. All versions are designed for reference Pi Picos. + +* Keyboard Maintainer: [Envious-Data](https://github.com/envious-data) +* Hardware Supported: + * Delirium Prototype (`tkl/rev0`) + * Delirium (`tkl/rev1`) + * Delirium RGB (`tkl/rgb`) +* Hardware Availability: [Mechboards](https://mechboards.co.uk/products/envkb-delirium-tkl-kit), [GitHub](https://github.com/Envious-Data/Env-KB) + +Make example for this keyboard (after setting up your build environment): + + make enviousdesign/tkl/rgb:default + +Flashing example for this keyboard: + + make enviousdesign/tkl/rgb:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard. This will also clear the emulated EEPROM, so it is a good first step if the keyboard is misbehaving. +* **Physical reset**: Hold down the `BOOTSEL` button on the Pi Pico, then either plug the board in or press the `RESET` button. +* **Keycode in layout**: Press the key mapped to `QK_BOOT`. In the pre-supplied keymaps it is on the second layer, replacing the Esc key. + +After entering the bootloader through one of the three methods above, the keyboard will appear as a USB mass storage device named `RPI-RP2`. If the CLI is unable to find this device, the compiled `.uf2` file can be manually copied to it. The keyboard will reboot on completion with the new firmware loaded. diff --git a/keyboards/enviousdesign/delirium/rev0/info.json b/keyboards/enviousdesign/delirium/rev0/info.json new file mode 100644 index 0000000000..f1eb3dc59b --- /dev/null +++ b/keyboards/enviousdesign/delirium/rev0/info.json @@ -0,0 +1,121 @@ +{ + "manufacturer": "Envious.Design", + "keyboard_name": "Delirium Prototype", + "maintainer": "Envious.Design", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP19", "GP18", "GP17", "GP16"], + "rows": ["GP20", "GP21", "GP22", "GP26", "GP27", "GP28"] + }, + "processor": "RP2040", + "url": "http://envious.design", + "usb": { + "device_version": "0.0.1", + "pid": "0xA100", + "vid": "0xE739" + }, + "community_layouts": ["tkl_iso"], + "layouts": { + "LAYOUT_tkl_iso": { + "layout": [ + {"label": "0,0", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "0,2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "0,3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "0,4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "0,5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "0,7", "matrix": [0, 7], "x": 6.5, "y": 0}, + {"label": "0,8", "matrix": [0, 8], "x": 7.5, "y": 0}, + {"label": "0,9", "matrix": [0, 9], "x": 8.5, "y": 0}, + {"label": "0,10", "matrix": [0, 10], "x": 9.5, "y": 0}, + {"label": "0,11", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "0,12", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "0,13", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "0,14", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "0,15", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "0,16", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "0,17", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "1,0", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "1,1", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "1,2", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "1,3", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "1,4", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "1,5", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "1,6", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "1,7", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "1,8", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "1,9", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": "1,10", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "1,11", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "1,12", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "1,14", "matrix": [1, 14], "x": 13, "y": 1.5, "w": 2}, + {"label": "1,15", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "1,16", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "1,17", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "2,0", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "2,2", "matrix": [2, 2], "x": 1.5, "y": 2.5}, + {"label": "2,3", "matrix": [2, 3], "x": 2.5, "y": 2.5}, + {"label": "2,4", "matrix": [2, 4], "x": 3.5, "y": 2.5}, + {"label": "2,5", "matrix": [2, 5], "x": 4.5, "y": 2.5}, + {"label": "2,6", "matrix": [2, 6], "x": 5.5, "y": 2.5}, + {"label": "2,7", "matrix": [2, 7], "x": 6.5, "y": 2.5}, + {"label": "2,8", "matrix": [2, 8], "x": 7.5, "y": 2.5}, + {"label": "2,9", "matrix": [2, 9], "x": 8.5, "y": 2.5}, + {"label": "2,10", "matrix": [2, 10], "x": 9.5, "y": 2.5}, + {"label": "2,11", "matrix": [2, 11], "x": 10.5, "y": 2.5}, + {"label": "2,12", "matrix": [2, 12], "x": 11.5, "y": 2.5}, + {"label": "2,13", "matrix": [2, 13], "x": 12.5, "y": 2.5}, + {"label": "2,15", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "2,16", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "2,17", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "3,0", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "3,2", "matrix": [3, 2], "x": 1.75, "y": 3.5}, + {"label": "3,3", "matrix": [3, 3], "x": 2.75, "y": 3.5}, + {"label": "3,4", "matrix": [3, 4], "x": 3.75, "y": 3.5}, + {"label": "3,5", "matrix": [3, 5], "x": 4.75, "y": 3.5}, + {"label": "3,6", "matrix": [3, 6], "x": 5.75, "y": 3.5}, + {"label": "3,7", "matrix": [3, 7], "x": 6.75, "y": 3.5}, + {"label": "3,8", "matrix": [3, 8], "x": 7.75, "y": 3.5}, + {"label": "3,9", "matrix": [3, 9], "x": 8.75, "y": 3.5}, + {"label": "3,10", "matrix": [3, 10], "x": 9.75, "y": 3.5}, + {"label": "3,11", "matrix": [3, 11], "x": 10.75, "y": 3.5}, + {"label": "3,12", "matrix": [3, 12], "x": 11.75, "y": 3.5}, + {"label": "3,13", "matrix": [3, 13], "x": 12.75, "y": 3.5}, + {"label": "3,14", "matrix": [2, 14], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"label": "4,0", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "4,1", "matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"label": "4,2", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "4,3", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "4,4", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "4,5", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "4,6", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "4,7", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "4,8", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "4,9", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": "4,10", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "4,11", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "4,13", "matrix": [4, 13], "x": 12.25, "y": 4.5, "w": 2.75}, + {"label": "4,16", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "5,0", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"label": "5,1", "matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"label": "5,3", "matrix": [5, 3], "x": 2.5, "y": 5.5, "w": 1.25}, + {"label": "5,6", "matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"label": "5,10", "matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.25}, + {"label": "5,11", "matrix": [5, 11], "x": 11.25, "y": 5.5, "w": 1.25}, + {"label": "5,13", "matrix": [5, 13], "x": 12.5, "y": 5.5, "w": 1.25}, + {"label": "5,14", "matrix": [5, 14], "x": 13.75, "y": 5.5, "w": 1.25}, + {"label": "5,15", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "5,16", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "5,17", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/enviousdesign/delirium/rev0/keymaps/default/keymap.c b/keyboards/enviousdesign/delirium/rev0/keymaps/default/keymap.c new file mode 100644 index 0000000000..1e0e273fa4 --- /dev/null +++ b/keyboards/enviousdesign/delirium/rev0/keymaps/default/keymap.c @@ -0,0 +1,38 @@ +/* Copyright 2022 Adam K (@Envious-Data) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_tkl_iso( + KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_iso( + QK_BOOTLOADER, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, KC_VOLD, KC_VOLU, + 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_MYCM, 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, 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 + ) +}; + diff --git a/keyboards/enviousdesign/delirium/rev0/rules.mk b/keyboards/enviousdesign/delirium/rev0/rules.mk new file mode 100644 index 0000000000..837f4bffb5 --- /dev/null +++ b/keyboards/enviousdesign/delirium/rev0/rules.mk @@ -0,0 +1 @@ +# This file is intentionally left blank diff --git a/keyboards/enviousdesign/delirium/rev1/info.json b/keyboards/enviousdesign/delirium/rev1/info.json new file mode 100644 index 0000000000..e548d02814 --- /dev/null +++ b/keyboards/enviousdesign/delirium/rev1/info.json @@ -0,0 +1,305 @@ +{ + "manufacturer": "Envious.Design", + "keyboard_name": "Delirium", + "maintainer": "Envious.Design", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP19", "GP18", "GP17", "GP16"], + "rows": ["GP20", "GP21", "GP22", "GP26", "GP27", "GP28"] + }, + "processor": "RP2040", + "url": "http://envious.design", + "usb": { + "device_version": "1.0.0", + "pid": "0xA500", + "vid": "0xE739" + }, + "community_layouts": ["tkl_ansi", "tkl_iso"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 7], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 8], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 9], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 10], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "\u00ac", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "\"", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "\u00a3", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "Backspace", "matrix": [1, 14], "x": 13, "y": 1.5, "w": 2}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 2], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 3], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 4], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 5], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 6], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 7], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 8], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 9], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 10], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 11], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 12], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 13], "x": 12.5, "y": 2.5}, + {"label": "|", "matrix": [2, 14], "x": 13.5, "y": 2.5, "w": 1.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 2], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 3], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 4], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 5], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 6], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 7], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 8], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 9], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 10], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 11], "x": 10.75, "y": 3.5}, + {"label": "@", "matrix": [3, 12], "x": 11.75, "y": 3.5}, + {"label": "~", "matrix": [3, 13], "x": 12.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 14], "x": 13.75, "y": 3.5, "w": 1.25}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "|", "matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.5, "w": 2.75}, + {"label": "\u2191", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"label": "Alt", "matrix": [5, 3], "x": 2.5, "y": 5.5, "w": 1.25}, + {"label": "Space", "matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"label": "AltGr", "matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [5, 11], "x": 11.25, "y": 5.5, "w": 1.25}, + {"label": "Menu", "matrix": [5, 13], "x": 12.5, "y": 5.5, "w": 1.25}, + {"label": "Ctrl", "matrix": [5, 14], "x": 13.75, "y": 5.5, "w": 1.25}, + {"label": "\u2190", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "\u2193", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "\u2192", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_ansi": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 7], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 8], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 9], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 10], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "\u00ac", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "\"", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "\u00a3", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "Backspace", "matrix": [1, 14], "x": 13, "y": 1.5, "w": 2}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 2], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 3], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 4], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 5], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 6], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 7], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 8], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 9], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 10], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 11], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 12], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 13], "x": 12.5, "y": 2.5}, + {"label": "|", "matrix": [2, 14], "x": 13.5, "y": 2.5, "w": 1.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 2], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 3], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 4], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 5], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 6], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 7], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 8], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 9], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 10], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 11], "x": 10.75, "y": 3.5}, + {"label": "@", "matrix": [3, 12], "x": 11.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 14], "x": 12.75, "y": 3.5, "w": 2.25}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.5, "w": 2.75}, + {"label": "\u2191", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"label": "Alt", "matrix": [5, 3], "x": 2.5, "y": 5.5, "w": 1.25}, + {"label": "Space", "matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"label": "AltGr", "matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [5, 11], "x": 11.25, "y": 5.5, "w": 1.25}, + {"label": "Menu", "matrix": [5, 13], "x": 12.5, "y": 5.5, "w": 1.25}, + {"label": "Ctrl", "matrix": [5, 14], "x": 13.75, "y": 5.5, "w": 1.25}, + {"label": "\u2190", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "\u2193", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "\u2192", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_iso": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 7], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 8], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 9], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 10], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "\u00ac", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "\"", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "\u00a3", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "Backspace", "matrix": [1, 14], "x": 13, "y": 1.5, "w": 2}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 2], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 3], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 4], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 5], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 6], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 7], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 8], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 9], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 10], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 11], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 12], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 13], "x": 12.5, "y": 2.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 2], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 3], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 4], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 5], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 6], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 7], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 8], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 9], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 10], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 11], "x": 10.75, "y": 3.5}, + {"label": "@", "matrix": [3, 12], "x": 11.75, "y": 3.5}, + {"label": "~", "matrix": [3, 13], "x": 12.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 14], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "|", "matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.5, "w": 2.75}, + {"label": "\u2191", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"label": "Alt", "matrix": [5, 3], "x": 2.5, "y": 5.5, "w": 1.25}, + {"label": "Space", "matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"label": "AltGr", "matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [5, 11], "x": 11.25, "y": 5.5, "w": 1.25}, + {"label": "Menu", "matrix": [5, 13], "x": 12.5, "y": 5.5, "w": 1.25}, + {"label": "Ctrl", "matrix": [5, 14], "x": 13.75, "y": 5.5, "w": 1.25}, + {"label": "\u2190", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "\u2193", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "\u2192", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/enviousdesign/delirium/rev1/keymaps/default/keymap.c b/keyboards/enviousdesign/delirium/rev1/keymaps/default/keymap.c new file mode 100644 index 0000000000..02a2b616ef --- /dev/null +++ b/keyboards/enviousdesign/delirium/rev1/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2022 Adam K (@Envious-Data) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_all( + KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, + + KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + QK_BOOTLOADER, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, KC_VOLD, KC_VOLU, + + 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_MYCM, 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_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, 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_APP, KC_TRNS, KC_EXEC, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/enviousdesign/delirium/rev1/keymaps/via/keymap.c b/keyboards/enviousdesign/delirium/rev1/keymaps/via/keymap.c new file mode 100644 index 0000000000..02a2b616ef --- /dev/null +++ b/keyboards/enviousdesign/delirium/rev1/keymaps/via/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2022 Adam K (@Envious-Data) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_all( + KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, + + KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + QK_BOOTLOADER, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, KC_VOLD, KC_VOLU, + + 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_MYCM, 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_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, 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_APP, KC_TRNS, KC_EXEC, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/enviousdesign/delirium/rev1/keymaps/via/rules.mk b/keyboards/enviousdesign/delirium/rev1/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/enviousdesign/delirium/rev1/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/enviousdesign/delirium/rev1/rules.mk b/keyboards/enviousdesign/delirium/rev1/rules.mk new file mode 100644 index 0000000000..837f4bffb5 --- /dev/null +++ b/keyboards/enviousdesign/delirium/rev1/rules.mk @@ -0,0 +1 @@ +# This file is intentionally left blank diff --git a/keyboards/enviousdesign/delirium/rgb/info.json b/keyboards/enviousdesign/delirium/rgb/info.json new file mode 100644 index 0000000000..ad7d45d3cf --- /dev/null +++ b/keyboards/enviousdesign/delirium/rgb/info.json @@ -0,0 +1,239 @@ +{ + "manufacturer": "Envious.Design", + "keyboard_name": "Delirium RGB", + "maintainer": "Envious.Design", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP19", "GP18", "GP17", "GP16"], + "rows": ["GP20", "GP21", "GP22", "GP26", "GP27", "GP28"] + }, + "processor": "RP2040", + "rgb_matrix": { + "driver": "ws2812", + "max_brightness": 64, + "animations": { + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "raindrops": true, + "typing_heatmap": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "multisplash": true + }, + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 26, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 39, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 52, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 65, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 97, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 110, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 123, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 143, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 156, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 169, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 182, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 198, "y": 0, "flags": 4}, + {"matrix": [0, 16], "x": 211, "y": 0, "flags": 4}, + {"matrix": [0, 17], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 17, "flags": 4}, + {"matrix": [1, 1], "x": 13, "y": 17, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 17, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 17, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 17, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 17, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 17, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 17, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 17, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 17, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 17, "flags": 4}, + {"matrix": [1, 12], "x": 156, "y": 17, "flags": 4}, + {"matrix": [1, 14], "x": 175, "y": 17, "flags": 4}, + {"matrix": [1, 15], "x": 198, "y": 17, "flags": 4}, + {"matrix": [1, 16], "x": 211, "y": 17, "flags": 4}, + {"matrix": [1, 17], "x": 224, "y": 17, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 29, "flags": 4}, + {"matrix": [2, 2], "x": 19, "y": 29, "flags": 4}, + {"matrix": [2, 3], "x": 32, "y": 29, "flags": 4}, + {"matrix": [2, 4], "x": 45, "y": 29, "flags": 4}, + {"matrix": [2, 5], "x": 58, "y": 29, "flags": 4}, + {"matrix": [2, 6], "x": 71, "y": 29, "flags": 4}, + {"matrix": [2, 7], "x": 84, "y": 29, "flags": 4}, + {"matrix": [2, 8], "x": 97, "y": 29, "flags": 4}, + {"matrix": [2, 9], "x": 110, "y": 29, "flags": 4}, + {"matrix": [2, 10], "x": 123, "y": 29, "flags": 4}, + {"matrix": [2, 11], "x": 136, "y": 29, "flags": 4}, + {"matrix": [2, 12], "x": 149, "y": 29, "flags": 4}, + {"matrix": [2, 13], "x": 162, "y": 29, "flags": 4}, + {"matrix": [3, 14], "x": 175, "y": 29, "flags": 4}, + {"matrix": [2, 15], "x": 198, "y": 29, "flags": 4}, + {"matrix": [2, 16], "x": 211, "y": 29, "flags": 4}, + {"matrix": [2, 17], "x": 224, "y": 29, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 41, "flags": 8}, + {"matrix": [3, 2], "x": 23, "y": 41, "flags": 4}, + {"matrix": [3, 3], "x": 36, "y": 41, "flags": 4}, + {"matrix": [3, 4], "x": 49, "y": 41, "flags": 4}, + {"matrix": [3, 5], "x": 62, "y": 41, "flags": 4}, + {"matrix": [3, 6], "x": 75, "y": 41, "flags": 4}, + {"matrix": [3, 7], "x": 88, "y": 41, "flags": 4}, + {"matrix": [3, 8], "x": 101, "y": 41, "flags": 4}, + {"matrix": [3, 9], "x": 114, "y": 41, "flags": 4}, + {"matrix": [3, 10], "x": 127, "y": 41, "flags": 4}, + {"matrix": [3, 11], "x": 140, "y": 41, "flags": 4}, + {"matrix": [3, 12], "x": 153, "y": 41, "flags": 4}, + {"matrix": [3, 13], "x": 166, "y": 41, "flags": 4}, + {"matrix": [4, 0], "x": 2, "y": 52, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 170, "y": 52, "flags": 4}, + {"matrix": [4, 16], "x": 211, "y": 52, "flags": 4}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 4}, + {"matrix": [5, 3], "x": 34, "y": 64, "flags": 4}, + {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 131, "y": 64, "flags": 4}, + {"matrix": [5, 11], "x": 148, "y": 64, "flags": 4}, + {"matrix": [5, 13], "x": 164, "y": 64, "flags": 4}, + {"matrix": [5, 14], "x": 180, "y": 64, "flags": 4}, + {"matrix": [5, 15], "x": 198, "y": 64, "flags": 4}, + {"matrix": [5, 16], "x": 211, "y": 64, "flags": 4}, + {"matrix": [5, 17], "x": 224, "y": 64, "flags": 4} + ] + }, + "url": "http://envious.design", + "usb": { + "device_version": "1.0.0", + "pid": "0xA400", + "vid": "0xE739" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP0" + }, + "community_layouts": ["tkl_iso"], + "layouts": { + "LAYOUT_tkl_iso": { + "layout": [ + {"label": "0,0", "matrix": [0, 0], "x": 0, "y": 0, "w": 1}, + {"label": "0,2", "matrix": [0, 2], "x": 2, "y": 0, "w": 1}, + {"label": "0,3", "matrix": [0, 3], "x": 3, "y": 0, "w": 1}, + {"label": "0,4", "matrix": [0, 4], "x": 4, "y": 0, "w": 1}, + {"label": "0,5", "matrix": [0, 5], "x": 5, "y": 0, "w": 1}, + {"label": "0,7", "matrix": [0, 7], "x": 6.5, "y": 0, "w": 1}, + {"label": "0,8", "matrix": [0, 8], "x": 7.5, "y": 0, "w": 1}, + {"label": "0,9", "matrix": [0, 9], "x": 8.5, "y": 0, "w": 1}, + {"label": "0,10", "matrix": [0, 10], "x": 9.5, "y": 0, "w": 1}, + {"label": "0,11", "matrix": [0, 11], "x": 11, "y": 0, "w": 1}, + {"label": "0,12", "matrix": [0, 12], "x": 12, "y": 0, "w": 1}, + {"label": "0,13", "matrix": [0, 13], "x": 13, "y": 0, "w": 1}, + {"label": "0,14", "matrix": [0, 14], "x": 14, "y": 0, "w": 1}, + {"label": "0,15", "matrix": [0, 15], "x": 15.25, "y": 0, "w": 1}, + {"label": "0,16", "matrix": [0, 16], "x": 16.25, "y": 0, "w": 1}, + {"label": "0,17", "matrix": [0, 17], "x": 17.25, "y": 0, "w": 1}, + {"label": "1,0", "matrix": [1, 0], "x": 0, "y": 1.5, "w": 1}, + {"label": "1,1", "matrix": [1, 1], "x": 1, "y": 1.5, "w": 1}, + {"label": "1,2", "matrix": [1, 2], "x": 2, "y": 1.5, "w": 1}, + {"label": "1,3", "matrix": [1, 3], "x": 3, "y": 1.5, "w": 1}, + {"label": "1,4", "matrix": [1, 4], "x": 4, "y": 1.5, "w": 1}, + {"label": "1,5", "matrix": [1, 5], "x": 5, "y": 1.5, "w": 1}, + {"label": "1,6", "matrix": [1, 6], "x": 6, "y": 1.5, "w": 1}, + {"label": "1,7", "matrix": [1, 7], "x": 7, "y": 1.5, "w": 1}, + {"label": "1,8", "matrix": [1, 8], "x": 8, "y": 1.5, "w": 1}, + {"label": "1,9", "matrix": [1, 9], "x": 9, "y": 1.5, "w": 1}, + {"label": "1,10", "matrix": [1, 10], "x": 10, "y": 1.5, "w": 1}, + {"label": "1,11", "matrix": [1, 11], "x": 11, "y": 1.5, "w": 1}, + {"label": "1,12", "matrix": [1, 12], "x": 12, "y": 1.5, "w": 1}, + {"label": "1,14", "matrix": [1, 14], "x": 13, "y": 1.5, "w": 2}, + {"label": "1,15", "matrix": [1, 15], "x": 15.25, "y": 1.5, "w": 1}, + {"label": "1,16", "matrix": [1, 16], "x": 16.25, "y": 1.5, "w": 1}, + {"label": "1,17", "matrix": [1, 17], "x": 17.25, "y": 1.5, "w": 1}, + {"label": "2,0", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "2,2", "matrix": [2, 2], "x": 1.5, "y": 2.5, "w": 1}, + {"label": "2,3", "matrix": [2, 3], "x": 2.5, "y": 2.5, "w": 1}, + {"label": "2,4", "matrix": [2, 4], "x": 3.5, "y": 2.5, "w": 1}, + {"label": "2,5", "matrix": [2, 5], "x": 4.5, "y": 2.5, "w": 1}, + {"label": "2,6", "matrix": [2, 6], "x": 5.5, "y": 2.5, "w": 1}, + {"label": "2,7", "matrix": [2, 7], "x": 6.5, "y": 2.5, "w": 1}, + {"label": "2,8", "matrix": [2, 8], "x": 7.5, "y": 2.5, "w": 1}, + {"label": "2,9", "matrix": [2, 9], "x": 8.5, "y": 2.5, "w": 1}, + {"label": "2,10", "matrix": [2, 10], "x": 9.5, "y": 2.5, "w": 1}, + {"label": "2,11", "matrix": [2, 11], "x": 10.5, "y": 2.5, "w": 1}, + {"label": "2,12", "matrix": [2, 12], "x": 11.5, "y": 2.5, "w": 1}, + {"label": "2,13", "matrix": [2, 13], "x": 12.5, "y": 2.5, "w": 1}, + {"label": "2,15", "matrix": [2, 15], "x": 15.25, "y": 2.5, "w": 1}, + {"label": "2,16", "matrix": [2, 16], "x": 16.25, "y": 2.5, "w": 1}, + {"label": "2,17", "matrix": [2, 17], "x": 17.25, "y": 2.5, "w": 1}, + {"label": "3,0", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "3,2", "matrix": [3, 2], "x": 1.75, "y": 3.5, "w": 1}, + {"label": "3,3", "matrix": [3, 3], "x": 2.75, "y": 3.5, "w": 1}, + {"label": "3,4", "matrix": [3, 4], "x": 3.75, "y": 3.5, "w": 1}, + {"label": "3,5", "matrix": [3, 5], "x": 4.75, "y": 3.5, "w": 1}, + {"label": "3,6", "matrix": [3, 6], "x": 5.75, "y": 3.5, "w": 1}, + {"label": "3,7", "matrix": [3, 7], "x": 6.75, "y": 3.5, "w": 1}, + {"label": "3,8", "matrix": [3, 8], "x": 7.75, "y": 3.5, "w": 1}, + {"label": "3,9", "matrix": [3, 9], "x": 8.75, "y": 3.5, "w": 1}, + {"label": "3,10", "matrix": [3, 10], "x": 9.75, "y": 3.5, "w": 1}, + {"label": "3,11", "matrix": [3, 11], "x": 10.75, "y": 3.5, "w": 1}, + {"label": "3,12", "matrix": [3, 12], "x": 11.75, "y": 3.5, "w": 1}, + {"label": "3,13", "matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 1}, + {"label": "3,14", "matrix": [3, 14], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"label": "4,0", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "4,1", "matrix": [4, 1], "x": 1.25, "y": 4.5, "w": 1}, + {"label": "4,2", "matrix": [4, 2], "x": 2.25, "y": 4.5, "w": 1}, + {"label": "4,3", "matrix": [4, 3], "x": 3.25, "y": 4.5, "w": 1}, + {"label": "4,4", "matrix": [4, 4], "x": 4.25, "y": 4.5, "w": 1}, + {"label": "4,5", "matrix": [4, 5], "x": 5.25, "y": 4.5, "w": 1}, + {"label": "4,6", "matrix": [4, 6], "x": 6.25, "y": 4.5, "w": 1}, + {"label": "4,7", "matrix": [4, 7], "x": 7.25, "y": 4.5, "w": 1}, + {"label": "4,8", "matrix": [4, 8], "x": 8.25, "y": 4.5, "w": 1}, + {"label": "4,9", "matrix": [4, 9], "x": 9.25, "y": 4.5, "w": 1}, + {"label": "4,10", "matrix": [4, 10], "x": 10.25, "y": 4.5, "w": 1}, + {"label": "4,11", "matrix": [4, 11], "x": 11.25, "y": 4.5, "w": 1}, + {"label": "4,13", "matrix": [4, 13], "x": 12.25, "y": 4.5, "w": 2.75}, + {"label": "4,16", "matrix": [4, 16], "x": 16.25, "y": 4.5, "w": 1}, + {"label": "5,0", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"label": "5,1", "matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"label": "5,3", "matrix": [5, 3], "x": 2.5, "y": 5.5, "w": 1.25}, + {"label": "5,6", "matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"label": "5,10", "matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.25}, + {"label": "5,11", "matrix": [5, 11], "x": 11.25, "y": 5.5, "w": 1.25}, + {"label": "5,13", "matrix": [5, 13], "x": 12.5, "y": 5.5, "w": 1.25}, + {"label": "5,14", "matrix": [5, 14], "x": 13.75, "y": 5.5, "w": 1.25}, + {"label": "5,15", "matrix": [5, 15], "x": 15.25, "y": 5.5, "w": 1}, + {"label": "5,16", "matrix": [5, 16], "x": 16.25, "y": 5.5, "w": 1}, + {"label": "5,17", "matrix": [5, 17], "x": 17.25, "y": 5.5, "w": 1} + ] + } + } +} diff --git a/keyboards/enviousdesign/delirium/rgb/keymaps/default/keymap.c b/keyboards/enviousdesign/delirium/rgb/keymaps/default/keymap.c new file mode 100644 index 0000000000..d791874aff --- /dev/null +++ b/keyboards/enviousdesign/delirium/rgb/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +/* Copyright 2022 Adam K (@Envious-Data) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_tkl_iso( + KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, + + KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_iso( + QK_BOOTLOADER, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, KC_VOLD, KC_VOLU, + + 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, RGB_MOD, RGB_SAI, RGB_VAI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MYCM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_SAD, RGB_VAD, + 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_TOG, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SPD, RGB_HUD + ) +}; + diff --git a/keyboards/enviousdesign/delirium/rgb/rgb.c b/keyboards/enviousdesign/delirium/rgb/rgb.c new file mode 100644 index 0000000000..e6a3354b29 --- /dev/null +++ b/keyboards/enviousdesign/delirium/rgb/rgb.c @@ -0,0 +1,35 @@ +/* Copyright 2022 Adam K (@Envious-Data) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } + if (host_keyboard_led_state().caps_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(50, 16, 16, 16); // assuming caps lock is at led #50 + } + if (host_keyboard_led_state().scroll_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(14, 16, 16, 16); // assuming scroll lock is at led #14 + } + if (get_highest_layer(layer_state) == 1) { + RGB_MATRIX_INDICATOR_SET_COLOR(83, 16, 16 ,16); + } + return true; +} +#endif \ No newline at end of file diff --git a/keyboards/enviousdesign/delirium/rgb/rules.mk b/keyboards/enviousdesign/delirium/rgb/rules.mk new file mode 100644 index 0000000000..837f4bffb5 --- /dev/null +++ b/keyboards/enviousdesign/delirium/rgb/rules.mk @@ -0,0 +1 @@ +# This file is intentionally left blank diff --git a/keyboards/enviousdesign/mcro/readme.md b/keyboards/enviousdesign/mcro/readme.md new file mode 100644 index 0000000000..378fab8c3e --- /dev/null +++ b/keyboards/enviousdesign/mcro/readme.md @@ -0,0 +1,30 @@ +# EnvKB MCRO + +![Image of EnvKB MCRO PCB](https://i.imgur.com/QnANWnBh.png) + +A small 12 Key macro pad for various uses + +* Keyboard Maintainer: [Envious-Data](https://github.com/envious-data) +* Hardware Supported: EnvKB MCRO (Pi Pico) +* Hardware Availability: [GitHub](https://github.com/Envious-Data/Env-MCRO) + +Make example for this keyboard (after setting up your build environment): + + make enviousdesign/mcro:default + +Flashing example for this keyboard: + + make enviousdesign/mcro:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard. This will also clear the emulated EEPROM, so it is a good first step if the keyboard is misbehaving. +* **Physical reset**: Hold down the `BOOTSEL` button on the Pi Pico, then either plug the board in or press the `RESET` button. +* **Keycode in layout**: There is no key mapped to `QK_BOOT` in the pre-created keymaps, but you may assign this key in any keymaps you create. + +After entering the bootloader through one of the three methods above, the keyboard will appear as a USB mass storage device named `RPI-RP2`. If the CLI is unable to find this device, the compiled `.uf2` file can be manually copied to it. The keyboard will reboot on completion with the new firmware loaded. + diff --git a/keyboards/enviousdesign/mcro/rev1/info.json b/keyboards/enviousdesign/mcro/rev1/info.json new file mode 100644 index 0000000000..fe6a4ffe77 --- /dev/null +++ b/keyboards/enviousdesign/mcro/rev1/info.json @@ -0,0 +1,44 @@ +{ + "manufacturer": "Envious.Design", + "keyboard_name": "MCRO", + "maintainer": "Envious.Design", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP18", "GP19", "GP20", "GP21"], + "rows": ["GP4", "GP11", "GP15"] + }, + "processor": "RP2040", + "url": "http://envious.design", + "usb": { + "device_version": "1.0.0", + "pid": "0xA300", + "vid": "0xE739" + }, + "layouts": { + "LAYOUT_ortho_3x4": { + "layout": [ + {"label": "F13", "matrix": [0, 0], "x": 0, "y": 0, "w": 1}, + {"label": "F14", "matrix": [0, 1], "x": 1, "y": 0, "w": 1}, + {"label": "F15", "matrix": [0, 2], "x": 2, "y": 0, "w": 1}, + {"label": "F16", "matrix": [0, 3], "x": 3, "y": 0, "w": 1}, + {"label": "F17", "matrix": [1, 0], "x": 0, "y": 1.25, "w": 1}, + {"label": "F18", "matrix": [1, 1], "x": 1, "y": 1.25, "w": 1}, + {"label": "F19", "matrix": [1, 2], "x": 2, "y": 1.25, "w": 1}, + {"label": "F20", "matrix": [1, 3], "x": 3, "y": 1.25, "w": 1}, + {"label": "F21", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1}, + {"label": "F22", "matrix": [2, 1], "x": 1, "y": 2.5, "w": 1}, + {"label": "F23", "matrix": [2, 2], "x": 2, "y": 2.5, "w": 1}, + {"label": "F24", "matrix": [2, 3], "x": 3, "y": 2.5, "w": 1} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/enviousdesign/mcro/rev1/keymaps/default/keymap.c b/keyboards/enviousdesign/mcro/rev1/keymaps/default/keymap.c new file mode 100644 index 0000000000..e9def4a38f --- /dev/null +++ b/keyboards/enviousdesign/mcro/rev1/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2022 Adam K (@Envious-Data) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_ortho_3x4( + KC_F13, KC_F14, KC_F15, KC_F16, + KC_F17, KC_F18, KC_F19, KC_F20, + KC_F21, KC_F22, KC_F23, KC_F24 + ) +}; + diff --git a/keyboards/enviousdesign/mcro/rev1/keymaps/via/keymap.c b/keyboards/enviousdesign/mcro/rev1/keymaps/via/keymap.c new file mode 100644 index 0000000000..35b46697c1 --- /dev/null +++ b/keyboards/enviousdesign/mcro/rev1/keymaps/via/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2022 Adam K (@Envious-Data) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_ortho_3x4( + KC_F13, KC_F14, KC_F15, KC_F16, + KC_F17, KC_F18, KC_F19, KC_F20, + KC_F21, KC_F22, KC_F23, KC_F24 + ) +}; + diff --git a/keyboards/enviousdesign/mcro/rev1/keymaps/via/rules.mk b/keyboards/enviousdesign/mcro/rev1/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/enviousdesign/mcro/rev1/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/enviousdesign/mcro/rev1/rules.mk b/keyboards/enviousdesign/mcro/rev1/rules.mk new file mode 100644 index 0000000000..837f4bffb5 --- /dev/null +++ b/keyboards/enviousdesign/mcro/rev1/rules.mk @@ -0,0 +1 @@ +# This file is intentionally left blank From ed78c13b5f33c9143ad83d0a1695f63f92163b92 Mon Sep 17 00:00:00 2001 From: skyloong <92424712+JZ-Skyloong@users.noreply.github.com> Date: Fri, 13 Oct 2023 05:22:36 +0800 Subject: [PATCH 276/496] [Keyboard] Skyloong GK61 PRO (#21450) * Add GK61 PRO keyboard * Update info.json regarding to dunk2k suggestion * Update keymap files regarding to dunk2k suggestion * Update keyboards/skyloong/gk61/pro/config.h OK, thanks for your suggestion. * Update keyboards/skyloong/gk61/pro/keymaps/default/keymap.c OK, thanks. * Update keyboards/skyloong/gk61/pro/keymaps/via/keymap.c OK, thanks. * Update keyboards/skyloong/gk61/pro/rules.mk OK, thank you for your suggestion. * Update keyboards/skyloong/gk61/pro/info.json OK,thanks. * Update keyboards/skyloong/gk61/pro/keymaps/default/keymap.c OK, thanks. * Update keyboards/skyloong/gk61/pro/info.json I see , thanks for your guidance. * Update keyboards/skyloong/gk61/pro/config.h OK, thank you. * Update keyboards/skyloong/gk61/pro/info.json OK, thank you for your suggestion. * Update keyboards/skyloong/gk61/pro/info.json I see, thank you. * Update keyboards/skyloong/gk61/pro/config.h OK, thank you for your suggestion. * Update keyboards/skyloong/gk61/pro/pro.c I see , thank you. * Correct PCB feature description in readme. * Update keyboards/skyloong/gk61/pro/config.h It doesn't seem to be a problem to compile without defining DRIVER_COUNT. Thank you for your rigor and seriousness. * Update keyboards/skyloong/gk61/pro/keymaps/default/keymap.c OK, thank you. * update config.h to define __flash. * Update keyboards/skyloong/gk61/pro/config.h I see, thanks for your suggestion. * add hardware availabilty international website * update via/rules.mk for encoder map * Revert "update via/rules.mk for encoder map" This reverts commit 66601242af3df8aecc747e790d7649970c12a443. * Update keyboards/skyloong/gk61/pro/config.h OK, thanks. * Update rules.mk Enable the encoder map. * 1.update readme to correct mcu type ; 2. update pro.c to improve indicator function. * update pro.c and config.h to save power when USB suspend. * update info.json * Update RGB animations---delete rainbow_beacon and rainbow_pinwheels * Update keymap.c and layer indication. * Enable I2C DMA * Update keyboards/skyloong/gk61/pro/info.json OK,Thank you for your suggestion. * Update keyboards/skyloong/gk61/pro/info.json OK,Thanks. * enable encoder map in default keymaps * Update keyboards/skyloong/gk61/pro/info.json OK. Thank you for your suggestion. --- keyboards/skyloong/gk61/pro/config.h | 21 ++ keyboards/skyloong/gk61/pro/halconf.h | 7 + keyboards/skyloong/gk61/pro/info.json | 338 ++++++++++++++++++ .../gk61/pro/keymaps/default/keymap.c | 44 +++ .../gk61/pro/keymaps/default/rules.mk | 1 + .../skyloong/gk61/pro/keymaps/via/keymap.c | 67 ++++ .../skyloong/gk61/pro/keymaps/via/rules.mk | 2 + keyboards/skyloong/gk61/pro/mcuconf.h | 11 + keyboards/skyloong/gk61/pro/pro.c | 235 ++++++++++++ keyboards/skyloong/gk61/pro/readme.md | 33 ++ keyboards/skyloong/gk61/pro/rules.mk | 1 + 11 files changed, 760 insertions(+) create mode 100644 keyboards/skyloong/gk61/pro/config.h create mode 100644 keyboards/skyloong/gk61/pro/halconf.h create mode 100644 keyboards/skyloong/gk61/pro/info.json create mode 100644 keyboards/skyloong/gk61/pro/keymaps/default/keymap.c create mode 100644 keyboards/skyloong/gk61/pro/keymaps/default/rules.mk create mode 100644 keyboards/skyloong/gk61/pro/keymaps/via/keymap.c create mode 100644 keyboards/skyloong/gk61/pro/keymaps/via/rules.mk create mode 100644 keyboards/skyloong/gk61/pro/mcuconf.h create mode 100644 keyboards/skyloong/gk61/pro/pro.c create mode 100644 keyboards/skyloong/gk61/pro/readme.md create mode 100644 keyboards/skyloong/gk61/pro/rules.mk diff --git a/keyboards/skyloong/gk61/pro/config.h b/keyboards/skyloong/gk61/pro/config.h new file mode 100644 index 0000000000..4d180bb662 --- /dev/null +++ b/keyboards/skyloong/gk61/pro/config.h @@ -0,0 +1,21 @@ +// Copyright 2023 linlin012 (@linlin012) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + + +#define DRIVER_COUNT 1 +#define RGB_MATRIX_LED_COUNT 64 +#define CAPS_LOCK_INDEX 28 +#define WIN_MOD_INDEX 16 +#define MAC_MOD_INDEX 17 +#define WIN_LOCK_INDEX 54 +#define SDB C1 //RGB matrix Power control PIN + +/* RGB Matrix Animation modes. Explicitly enabled + * For full list of effects, see: + * https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects + */ + +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/skyloong/gk61/pro/halconf.h b/keyboards/skyloong/gk61/pro/halconf.h new file mode 100644 index 0000000000..5ac56913fc --- /dev/null +++ b/keyboards/skyloong/gk61/pro/halconf.h @@ -0,0 +1,7 @@ +// Copyright 2023 linlin012 (@linlin012) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/skyloong/gk61/pro/info.json b/keyboards/skyloong/gk61/pro/info.json new file mode 100644 index 0000000000..7d507f1e8c --- /dev/null +++ b/keyboards/skyloong/gk61/pro/info.json @@ -0,0 +1,338 @@ +{ + "manufacturer": "skyloong", + "keyboard_name": "gk61 pro", + "maintainer": "linlin012", + "bootloader": "stm32duino", + + "diode_direction": "ROW2COL", + "encoder": { + "rotary": [ + {"pin_a": "C5", "pin_b": "C4", "resolution": 2} + ] + }, + "features": { + "bootmagic": true, + "command": true, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, + "matrix_pins": { + "cols": ["B11", "C6", "C7", "B12", "B13", "B14", "B15", "B10", "B1", "B0", "D2", "B3", "B4", "B5"], + "rows": ["A15", "C10", "C11", "C12", "A3"] + }, + "processor": "STM32F103", + "rgb_matrix": { + "animations": { + "breathing": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "raindrops": true, + "jellybean_raindrops": true, + "pixel_rain": true, + "typing_heatmap":true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive_multiwide": true, + "solid_reactive_multinexus": true, + "splash": true, + "solid_splash": true + }, + "driver": "is31fl3743a", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 49, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 65, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 113, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 129, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 145, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 178, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 194, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 218, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 13, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 13, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 13, "flags": 4}, + {"matrix": [1, 3], "x": 57, "y": 13, "flags": 4}, + {"matrix": [1, 4], "x": 73, "y": 13, "flags": 4}, + {"matrix": [1, 5], "x": 89, "y": 13, "flags": 4}, + {"matrix": [1, 6], "x": 105, "y": 13, "flags": 4}, + {"matrix": [1, 7], "x": 121, "y": 13, "flags": 4}, + {"matrix": [1, 8], "x": 137, "y": 13, "flags": 4}, + {"matrix": [1, 9], "x": 153, "y": 13, "flags": 4}, + {"matrix": [1, 10], "x": 170, "y": 13, "flags": 4}, + {"matrix": [1, 11], "x": 186, "y": 13, "flags": 4}, + {"matrix": [1, 12], "x": 202, "y": 13, "flags": 4}, + {"matrix": [1, 13], "x": 222, "y": 13, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 26, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 61, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 77, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 93, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 109, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 125, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 141, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 157, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 174, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 190, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 216, "y": 26, "flags": 4}, + {"matrix": [3, 0], "x": 10, "y": 51, "flags": 4}, + {"matrix": [3, 1], "x": 36, "y": 51, "flags": 4}, + {"matrix": [3, 2], "x": 53, "y": 51, "flags": 4}, + {"matrix": [3, 3], "x": 69, "y": 51, "flags": 4}, + {"matrix": [3, 4], "x": 85, "y": 51, "flags": 4}, + {"matrix": [3, 5], "x": 101, "y": 51, "flags": 4}, + {"matrix": [3, 6], "x": 117, "y": 51, "flags": 4}, + {"matrix": [3, 7], "x": 133, "y": 51, "flags": 4}, + {"matrix": [3, 8], "x": 149, "y": 51, "flags": 4}, + {"matrix": [3, 9], "x": 166, "y": 51, "flags": 4}, + {"matrix": [3, 10], "x": 182, "y": 51, "flags": 4}, + {"matrix": [3, 12], "x": 212, "y": 51, "flags": 4}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 75, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 103, "y": 64, "flags": 4}, + {"matrix": [4, 6], "x": 103, "y": 64, "flags": 4}, + {"matrix": [4, 8], "x": 131, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 163, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 184, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 204, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4} + ], + "max_brightness": 200, + "hue_steps": 20, + "sat_steps": 20, + "speed_steps": 20, + "val_steps": 20 + }, + "url": "https://github.com/JZ-Skyloong", + "usb": { + "device_version": "1.0.0", + "pid": "0x6A61", + "vid": "0x1EA7", + "max_power": 380 + }, + "community_layouts": ["60_ansi"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 4], "x": 3.75, "y": 4.5, "h": 0.5, "w": 2.5}, + {"matrix": [4, 5], "x": 3.75, "y": 4, "h": 0.5, "w":6.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5, "h": 0.5, "w":1.25}, + {"matrix": [4, 8], "x": 7.5, "y": 4.5, "h": 0.5, "w": 2.5}, + {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_split_space": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 4], "x": 3.75, "y": 4, "w": 2.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4, "w": 1.25}, + {"matrix": [4, 8], "x": 7.5, "y": 4, "w": 2.5}, + {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/skyloong/gk61/pro/keymaps/default/keymap.c b/keyboards/skyloong/gk61/pro/keymaps/default/keymap.c new file mode 100644 index 0000000000..9534f25d80 --- /dev/null +++ b/keyboards/skyloong/gk61/pro/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +// Copyright 2021 JZ-Skyloong (@JZ-Skyloong) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Tab│ Q │ W │ E | R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Cap│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ |Ent│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Sft│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ |Sft| │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Ctl│GUI│Alt│ │Spc│Mut│ │ |Spc|Alt│App│Ctl│ │Mo1| + * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ + */ + [0] = LAYOUT_all( + KC_ESC, 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_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_MUTE, KC_SPC, KC_RALT, KC_APP, KC_RCTL, MO(1) + ), + + [1] = LAYOUT_all( + 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, _______, + _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) } +}; +#endif + diff --git a/keyboards/skyloong/gk61/pro/keymaps/default/rules.mk b/keyboards/skyloong/gk61/pro/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/skyloong/gk61/pro/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/skyloong/gk61/pro/keymaps/via/keymap.c b/keyboards/skyloong/gk61/pro/keymaps/via/keymap.c new file mode 100644 index 0000000000..e16bcc7105 --- /dev/null +++ b/keyboards/skyloong/gk61/pro/keymaps/via/keymap.c @@ -0,0 +1,67 @@ +// Copyright 2021 JZ-Skyloong (@JZ-Skyloong) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_names { + _WIN, + _MAC, + _WIN_INDEX, + _MAC_INDEX +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Tab│ Q │ W │ E | R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Cap│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ |Ent│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Sft│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ |Sft| │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Ctl│GUI│Alt│ │Spc│Spc│Mut│ |Spc|Alt│App│Ctl│ │Mo3| + * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ + */ + [_WIN] = LAYOUT_all( + KC_ESC, 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_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_MUTE, KC_SPC, KC_RALT, KC_APP, KC_RCTL, MO(_WIN_INDEX) + ), + + [_MAC] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LALT, KC_LGUI, _______, _______, _______, _______, KC_RGUI, KC_RALT, _______, MO(_MAC_INDEX) + ), + + [_WIN_INDEX] = LAYOUT_all( + 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_DEL, + _______, _______, TO(0), TO(1), _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_RMOD, RGB_RMOD, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, KC_UP, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______ + ), + + [_MAC_INDEX] = LAYOUT_all( + KC_GRV , KC_F14, KC_F15, C(KC_UP), G(KC_D), G(KC_SPC), LSG(KC_4), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, + _______, _______, TO(0), TO(1), _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_RMOD, RGB_RMOD, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, KC_UP, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______ + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_WIN] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_MAC] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_WIN_INDEX] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) }, + [_MAC_INDEX] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) } +}; +#endif diff --git a/keyboards/skyloong/gk61/pro/keymaps/via/rules.mk b/keyboards/skyloong/gk61/pro/keymaps/via/rules.mk new file mode 100644 index 0000000000..f1adcab005 --- /dev/null +++ b/keyboards/skyloong/gk61/pro/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/skyloong/gk61/pro/mcuconf.h b/keyboards/skyloong/gk61/pro/mcuconf.h new file mode 100644 index 0000000000..91dde6cc42 --- /dev/null +++ b/keyboards/skyloong/gk61/pro/mcuconf.h @@ -0,0 +1,11 @@ +// Copyright 2023 linlin012 (@linlin012) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +#undef STM32_I2C_USE_DMA +#define STM32_I2C_USE_DMA TRUE diff --git a/keyboards/skyloong/gk61/pro/pro.c b/keyboards/skyloong/gk61/pro/pro.c new file mode 100644 index 0000000000..1936964b32 --- /dev/null +++ b/keyboards/skyloong/gk61/pro/pro.c @@ -0,0 +1,235 @@ +// Copyright 2023 linlin012 (@linlin012) +// SPDX-License-Identifier: GPL-2.0-or-later +#include "quantum.h" +int FN_WIN = 0; +int FN_MAC = 0; +int L_WIN = 0; +int L_MAC = 0; + +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, CS1_SW1, CS2_SW1, CS3_SW1}, + {0, CS1_SW2, CS2_SW2, CS3_SW2}, + {0, CS1_SW3, CS2_SW3, CS3_SW3}, + {0, CS1_SW4, CS2_SW4, CS3_SW4}, + {0, CS1_SW5, CS2_SW5, CS3_SW5}, + {0, CS1_SW6, CS2_SW6, CS3_SW6}, + {0, CS1_SW7, CS2_SW7, CS3_SW7}, + {0, CS1_SW8, CS2_SW8, CS3_SW8}, + {0, CS1_SW9, CS2_SW9, CS3_SW9}, + {0, CS1_SW10, CS2_SW10, CS3_SW10}, + {0, CS1_SW11, CS2_SW11, CS3_SW11}, + {0, CS16_SW1, CS17_SW1, CS18_SW1}, + {0, CS16_SW2, CS17_SW2, CS18_SW2}, + {0, CS16_SW3, CS17_SW3, CS18_SW3}, + + {0, CS4_SW1, CS5_SW1, CS6_SW1}, + {0, CS4_SW2, CS5_SW2, CS6_SW2}, + {0, CS4_SW3, CS5_SW3, CS6_SW3}, + {0, CS4_SW4, CS5_SW4, CS6_SW4}, + {0, CS4_SW5, CS5_SW5, CS6_SW5}, + {0, CS4_SW6, CS5_SW6, CS6_SW6}, + {0, CS4_SW7, CS5_SW7, CS6_SW7}, + {0, CS4_SW8, CS5_SW8, CS6_SW8}, + {0, CS4_SW9, CS5_SW9, CS6_SW9}, + {0, CS4_SW10, CS5_SW10, CS6_SW10}, + {0, CS4_SW11, CS5_SW11, CS6_SW11}, + {0, CS16_SW4, CS17_SW4, CS18_SW4}, + {0, CS16_SW5, CS17_SW5, CS18_SW5}, + {0, CS16_SW6, CS17_SW6, CS18_SW6}, + + {0, CS7_SW1, CS8_SW1, CS9_SW1}, + {0, CS7_SW2, CS8_SW2, CS9_SW2}, + {0, CS7_SW3, CS8_SW3, CS9_SW3}, + {0, CS7_SW4, CS8_SW4, CS9_SW4}, + {0, CS7_SW5, CS8_SW5, CS9_SW5}, + {0, CS7_SW6, CS8_SW6, CS9_SW6}, + {0, CS7_SW7, CS8_SW7, CS9_SW7}, + {0, CS7_SW8, CS8_SW8, CS9_SW8}, + {0, CS7_SW9, CS8_SW9, CS9_SW9}, + {0, CS7_SW10, CS8_SW10, CS9_SW10}, + {0, CS7_SW11, CS8_SW11, CS9_SW11}, + {0, CS16_SW7, CS17_SW7, CS18_SW7}, + {0, CS16_SW8, CS17_SW8, CS18_SW8}, + + {0, CS10_SW1, CS11_SW1, CS12_SW1}, + {0, CS10_SW2, CS11_SW2, CS12_SW2}, + {0, CS10_SW3, CS11_SW3, CS12_SW3}, + {0, CS10_SW4, CS11_SW4, CS12_SW4}, + {0, CS10_SW5, CS11_SW5, CS12_SW5}, + {0, CS10_SW6, CS11_SW6, CS12_SW6}, + {0, CS10_SW7, CS11_SW7, CS12_SW7}, + {0, CS10_SW8, CS11_SW8, CS12_SW8}, + {0, CS10_SW9, CS11_SW9, CS12_SW9}, + {0, CS10_SW10, CS11_SW10, CS12_SW10}, + {0, CS10_SW11, CS11_SW11, CS12_SW11}, + {0, CS16_SW9, CS17_SW9, CS18_SW9}, + + {0, CS13_SW1, CS14_SW1, CS15_SW1}, + {0, CS13_SW2, CS14_SW2, CS15_SW2}, + {0, CS13_SW3, CS14_SW3, CS15_SW3}, + {0, CS13_SW4, CS14_SW4, CS15_SW4}, + {0, CS13_SW5, CS14_SW5, CS15_SW5}, + {0, CS13_SW5, CS14_SW5, CS15_SW5}, + {0, CS13_SW6, CS14_SW6, CS15_SW6}, + {0, CS13_SW7, CS14_SW7, CS15_SW7}, + {0, CS13_SW8, CS14_SW8, CS15_SW8}, + {0, CS13_SW9, CS14_SW9, CS15_SW9}, + {0, CS13_SW10, CS14_SW10, CS15_SW10} +}; + +#if defined(RGB_MATRIX_ENABLE) /*&& defined(CAPS_LOCK_INDEX)*/ + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + switch (keycode) { +# ifdef RGB_MATRIX_ENABLE + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + } break; + } + } + return false; +# endif + case TO(0): + if (record->event.pressed) { + L_WIN = 1; + set_single_persistent_default_layer(0); // Save default layer 0 to eeprom + } else { + L_WIN = 0; + } + return true; // continue all further processing of this key + + case MO(2): + if (record->event.pressed) { + FN_WIN = 1; + } else { + FN_WIN = 0; + } + return true; // continue all further processing of this key + + case TO(1): + if (record->event.pressed) { + L_MAC = 1; + set_single_persistent_default_layer(1); //Save default layer 1 to eeprom + } else { + L_MAC = 0; + } + return true; // continue all further processing of this key + + case MO(3): + if (record->event.pressed) { + FN_MAC = 1; + } else { + FN_MAC = 0; + } + return true; // continue all further processing of this key + default: + return true; + } + +} + +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } + + if (host_keyboard_led_state().caps_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_INDEX, 255, 255, 255); + } else { + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_INDEX, 0, 0, 0); + } + } + + switch (get_highest_layer(layer_state)) { + case 0:{ + if (L_WIN) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 255, 255, 255); + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0); + } + }else{ + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0); + } + } + } break; + + case 1:{ + if (L_MAC) { + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 255, 255, 255); + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0); + } + }else{ + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0); + } + } + } break; + + + case 2:{ + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 255, 255, 255); + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0); + } + } break; + + case 3:{ + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 255, 255, 255); + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0); + } + } break; + + default:{ + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0); + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0); + } + } + } + return false; +} + +#endif + +void suspend_power_down_kb() { +# ifdef RGB_MATRIX_ENABLE + writePinLow(SDB); +# endif + suspend_power_down_user(); +} + +void suspend_wakeup_init_kb() { +# ifdef RGB_MATRIX_ENABLE + writePinHigh(SDB); +# endif + suspend_wakeup_init_user(); +} + +void board_init(void) { + // JTAG-DP Disabled and SW-DP Disabled + AFIO->MAPR = (AFIO->MAPR & ~AFIO_MAPR_SWJ_CFG_Msk) | AFIO_MAPR_SWJ_CFG_DISABLE; +# ifdef RGB_MATRIX_ENABLE + setPinOutput(SDB); + writePinHigh(SDB); +# endif +} diff --git a/keyboards/skyloong/gk61/pro/readme.md b/keyboards/skyloong/gk61/pro/readme.md new file mode 100644 index 0000000000..529f6f32c4 --- /dev/null +++ b/keyboards/skyloong/gk61/pro/readme.md @@ -0,0 +1,33 @@ +# GK61 PRO + +![GK61 PRO](https://i.imgur.com/DTetyVLh.jpg) + +## The PCB features: +* QMK & VIA compatibility +* RGB Matrix backlight +* The space bar position switch can be interchanged with encoder module. + + +The following is the QMK Firmware for the Destop 60% keylayout - designed in Dongguan Jizhi Electronic Technology Co., Ltd + +* Keyboard Maintainer: [linlin012](https://github.com/linlin012) +* Hardware Supported: DestopPCB for Skyloong keylayout 60%, STM32F103R8T6 +* Hardware Availability: http://www.skyloong.com.cn https://skyloong.vip + +Make example for this keyboard (after setting up your build environment): + + make skyloong/gk61/pro:default + +Flashing example for this keyboard: + + make skyloong/gk61/pro:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/skyloong/gk61/pro/rules.mk b/keyboards/skyloong/gk61/pro/rules.mk new file mode 100644 index 0000000000..3bbd261429 --- /dev/null +++ b/keyboards/skyloong/gk61/pro/rules.mk @@ -0,0 +1 @@ +# File intentionally blank From e22cb99bc4712909b9328ba651a0e78504d55d7d Mon Sep 17 00:00:00 2001 From: "jonylee@hfd" <108282809+jonylee1986@users.noreply.github.com> Date: Fri, 13 Oct 2023 05:35:39 +0800 Subject: [PATCH 277/496] [Keyboard] Inland V83P (#21725) * [Keyboard]add v83p keyboard. * Update keymap.c * Update keyboards/inland/v83p/keymaps/via/keymap.c * Update keyboards/inland/v83p/keymaps/default/keymap.c * Update keyboards/inland/v83p/config.h * Update keyboards/inland/v83p/info.json * Update info.json * Update keymap.c * Update keyboards/inland/v83p/mcuconf.h * Update keyboards/inland/v83p/halconf.h * Update keyboards/inland/v83p/info.json * Update keyboards/inland/v83p/v83p.c * Update keymap.c replace the tabs with spaces * Update keymap.c replace the tabs with spaces * Update keyboards/inland/v83p/info.json --- keyboards/inland/v83p/config.h | 36 +++ keyboards/inland/v83p/halconf.h | 11 + keyboards/inland/v83p/info.json | 253 ++++++++++++++++++ .../inland/v83p/keymaps/default/keymap.c | 55 ++++ .../inland/v83p/keymaps/default/rules.mk | 1 + keyboards/inland/v83p/keymaps/via/keymap.c | 76 ++++++ keyboards/inland/v83p/keymaps/via/rules.mk | 2 + keyboards/inland/v83p/mcuconf.h | 12 + keyboards/inland/v83p/readme.md | 26 ++ keyboards/inland/v83p/rules.mk | 2 + keyboards/inland/v83p/v83p.c | 119 ++++++++ 11 files changed, 593 insertions(+) create mode 100644 keyboards/inland/v83p/config.h create mode 100644 keyboards/inland/v83p/halconf.h create mode 100644 keyboards/inland/v83p/info.json create mode 100644 keyboards/inland/v83p/keymaps/default/keymap.c create mode 100644 keyboards/inland/v83p/keymaps/default/rules.mk create mode 100644 keyboards/inland/v83p/keymaps/via/keymap.c create mode 100644 keyboards/inland/v83p/keymaps/via/rules.mk create mode 100644 keyboards/inland/v83p/mcuconf.h create mode 100644 keyboards/inland/v83p/readme.md create mode 100644 keyboards/inland/v83p/rules.mk create mode 100644 keyboards/inland/v83p/v83p.c diff --git a/keyboards/inland/v83p/config.h b/keyboards/inland/v83p/config.h new file mode 100644 index 0000000000..c433b568dd --- /dev/null +++ b/keyboards/inland/v83p/config.h @@ -0,0 +1,36 @@ +// Copyright 2023 jonylee@hfd (@jonylee1986) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define ENCODER_DEFAULT_POS 0x3 + +/* DIP switch */ +#define DIP_SWITCH_PINS \ + { C11 } + +/* I2C Config for LED Driver */ +#define DRIVER_COUNT 2 +#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_2 0b1110111 +#define I2C1_SDA_PIN B7 +#define I2C1_SCL_PIN B6 +#define I2C1_SCL_PAL_MODE 4 +#define I2C1_OPMODE OPMODE_I2C +#define I2C1_CLOCK_SPEED 400000 + +#define RGB_MATRIX_LED_COUNT 92 +#define RGB_DISABLE_WHEN_USB_SUSPENDED + +/* SPI Config for spi flash*/ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN B3 +#define SPI_MOSI_PIN B5 +#define SPI_MISO_PIN B4 +#define SPI_MOSI_PAL_MODE 5 + +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 +#define WEAR_LEVELING_BACKING_SIZE (4 * 1024) + +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_KEYRELEASES diff --git a/keyboards/inland/v83p/halconf.h b/keyboards/inland/v83p/halconf.h new file mode 100644 index 0000000000..fcd8b7216a --- /dev/null +++ b/keyboards/inland/v83p/halconf.h @@ -0,0 +1,11 @@ +// Copyright 2023 jonylee@hfd (@jonylee1986) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_I2C TRUE +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/inland/v83p/info.json b/keyboards/inland/v83p/info.json new file mode 100644 index 0000000000..d7a418bccf --- /dev/null +++ b/keyboards/inland/v83p/info.json @@ -0,0 +1,253 @@ +{ + "manufacturer": "Inland", + "keyboard_name": "V83P", + "maintainer": "jonylee@hfd", + "processor": "WB32FQ95", + "bootloader": "wb32-dfu", + "usb": { + "vid": "0xFFFE", + "pid": "0x001B", + "device_version": "1.0.3", + "force_nkro": true, + "suspend_wakeup_delay": 1000 + }, + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true, + "encoder": true, + "dip_switch":true + }, + "matrix_pins": { + "cols": ["C1","C2","C3","A0","A1","A2","A3","A4","A5","A6","A7","C4","C5","B0","B1","B2"], + "rows": ["B15", "C6", "C7", "C8", "C9", "B14"] + }, + "encoder": { + "rotary": [ + { "pin_a": "A8", "pin_b": "B13" } + ] + }, + "rgb_matrix": { + "driver": "ckled2001", + "max_brightness": 180, + "animations": { + "solid_color": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "raindrops": true, + "typing_heatmap": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "multisplash": true + }, + "layout": [ + { "flags": 4, "matrix": [0,0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0,1], "x": 14, "y": 0 }, + { "flags": 4, "matrix": [0,2], "x": 29, "y": 0 }, + { "flags": 4, "matrix": [0,3], "x": 44, "y": 0 }, + { "flags": 4, "matrix": [0,4], "x": 59, "y": 0 }, + { "flags": 4, "matrix": [0,5], "x": 74, "y": 0 }, + { "flags": 4, "matrix": [0,6], "x": 89, "y": 0 }, + { "flags": 4, "matrix": [0,7], "x": 104, "y": 0 }, + { "flags": 4, "matrix": [0,8], "x": 119, "y": 0 }, + { "flags": 4, "matrix": [0,9], "x": 134, "y": 0 }, + { "flags": 4, "matrix": [0,10], "x": 149, "y": 0 }, + { "flags": 4, "matrix": [0,11], "x": 164, "y": 0 }, + { "flags": 4, "matrix": [0,12], "x": 179, "y": 0 }, + { "flags": 4, "matrix": [0,13], "x": 194, "y": 0 }, + + { "flags": 4, "matrix": [1,0], "x": 0, "y": 13}, + { "flags": 4, "matrix": [1,1], "x": 14, "y": 13}, + { "flags": 4, "matrix": [1,2], "x": 28, "y": 13}, + { "flags": 4, "matrix": [1,3], "x": 42, "y": 13}, + { "flags": 4, "matrix": [1,4], "x": 56, "y": 13}, + { "flags": 4, "matrix": [1,5], "x": 70, "y": 13}, + { "flags": 4, "matrix": [1,6], "x": 84, "y": 13}, + { "flags": 4, "matrix": [1,7], "x": 98, "y": 13}, + { "flags": 4, "matrix": [1,8], "x": 112, "y": 13}, + { "flags": 4, "matrix": [1,9], "x": 126, "y": 13}, + { "flags": 4, "matrix": [1,10], "x": 140, "y": 13}, + { "flags": 4, "matrix": [1,11], "x": 154, "y": 13}, + { "flags": 4, "matrix": [1,12], "x": 168, "y": 13}, + { "flags": 4, "matrix": [1,13], "x": 182, "y": 13}, + { "flags": 4, "matrix": [1,15], "x": 224, "y": 13}, + + { "flags": 4, "matrix": [2,0], "x": 0, "y": 26}, + { "flags": 4, "matrix": [2,1], "x": 14, "y": 26}, + { "flags": 4, "matrix": [2,2], "x": 28, "y": 26}, + { "flags": 4, "matrix": [2,3], "x": 42, "y": 26}, + { "flags": 4, "matrix": [2,4], "x": 56, "y": 26}, + { "flags": 4, "matrix": [2,5], "x": 70, "y": 26}, + { "flags": 4, "matrix": [2,6], "x": 84, "y": 26}, + { "flags": 4, "matrix": [2,7], "x": 98, "y": 26}, + { "flags": 4, "matrix": [2,8], "x": 112, "y": 26}, + { "flags": 4, "matrix": [2,9], "x": 126, "y": 26}, + { "flags": 4, "matrix": [2,10], "x": 140, "y": 26}, + { "flags": 4, "matrix": [2,11], "x": 154, "y": 26}, + { "flags": 4, "matrix": [2,12], "x": 168, "y": 26}, + { "flags": 4, "matrix": [2,13], "x": 182, "y": 26}, + { "flags": 4, "matrix": [2,15], "x": 224, "y": 26}, + + { "flags": 1, "matrix": [3,0], "x": 0, "y": 38}, + { "flags": 4, "matrix": [3,1], "x": 28, "y": 38}, + { "flags": 4, "matrix": [3,2], "x": 42, "y": 38}, + { "flags": 4, "matrix": [3,3], "x": 56, "y": 38}, + { "flags": 4, "matrix": [3,4], "x": 70, "y": 38}, + { "flags": 4, "matrix": [3,5], "x": 84, "y": 38}, + { "flags": 4, "matrix": [3,6], "x": 98, "y": 38}, + { "flags": 4, "matrix": [3,7], "x": 112, "y": 38}, + { "flags": 4, "matrix": [3,8], "x": 126, "y": 38}, + { "flags": 4, "matrix": [3,9], "x": 140, "y": 38}, + { "flags": 4, "matrix": [3,10], "x": 154, "y": 38}, + { "flags": 4, "matrix": [3,11], "x": 168, "y": 38}, + { "flags": 1, "matrix": [3,13], "x": 182, "y": 38}, + { "flags": 4, "matrix": [3,15], "x": 224, "y": 38}, + + { "flags": 1, "matrix": [4,0], "x": 0, "y": 51}, + { "flags": 4, "matrix": [4,1], "x": 18, "y": 51}, + { "flags": 4, "matrix": [4,2], "x": 37, "y": 51}, + { "flags": 4, "matrix": [4,3], "x": 56, "y": 51}, + { "flags": 4, "matrix": [4,4], "x": 74, "y": 51}, + { "flags": 4, "matrix": [4,5], "x": 93, "y": 51}, + { "flags": 4, "matrix": [4,6], "x": 112, "y": 51}, + { "flags": 4, "matrix": [4,7], "x": 130, "y": 51}, + { "flags": 4, "matrix": [4,8], "x": 149, "y": 51}, + { "flags": 4, "matrix": [4,9], "x": 168, "y": 51}, + { "flags": 4, "matrix": [4,10], "x": 186, "y": 51}, + { "flags": 1, "matrix": [4,13], "x": 200, "y": 51}, + { "flags": 1, "matrix": [4,14], "x": 214, "y": 51}, + { "flags": 1, "matrix": [4,15], "x": 224, "y": 51}, + + { "flags": 1, "matrix": [5,0], "x": 0, "y": 64}, + { "flags": 1, "matrix": [5,1], "x": 18, "y": 64}, + { "flags": 1, "matrix": [5,2], "x": 37, "y": 64}, + { "flags": 4, "matrix": [5,5], "x": 92, "y": 64}, + { "flags": 1, "matrix": [5,9], "x": 140, "y": 64}, + { "flags": 1, "matrix": [5,10], "x": 154, "y": 64}, + { "flags": 1, "matrix": [5,11], "x": 168, "y": 64}, + { "flags": 1, "matrix": [5,13], "x": 196, "y": 64}, + { "flags": 1, "matrix": [5,14], "x": 210, "y": 64}, + { "flags": 1, "matrix": [5,15], "x": 224, "y": 64}, + + { "flags": 2, "x": 0, "y": 0 }, + { "flags": 2, "x": 0, "y": 16}, + { "flags": 2, "x": 0, "y": 32}, + { "flags": 2, "x": 0, "y": 48}, + { "flags": 2, "x": 0, "y": 64}, + + { "flags": 2, "x": 224, "y": 0 }, + { "flags": 2, "x": 224, "y": 16}, + { "flags": 2, "x": 224, "y": 32}, + { "flags": 2, "x": 224, "y": 48}, + { "flags": 2, "x": 224, "y": 64} + ] + }, + "layouts": { + "LAYOUT_ansi": { + "layout": [ + { "matrix": [0,0], "x": 0, "y": 0 }, + { "matrix": [0,1], "x": 1.25, "y": 0 }, + { "matrix": [0,2], "x": 2.25, "y": 0 }, + { "matrix": [0,3], "x": 3.25, "y": 0 }, + { "matrix": [0,4], "x": 4.25, "y": 0 }, + { "matrix": [0,5], "x": 5.5, "y": 0 }, + { "matrix": [0,6], "x": 6.5, "y": 0 }, + { "matrix": [0,7], "x": 7.5, "y": 0 }, + { "matrix": [0,8], "x": 8.5, "y": 0 }, + { "matrix": [0,9], "x": 9.75, "y": 0 }, + { "matrix": [0,10], "x": 10.75, "y": 0 }, + { "matrix": [0,11], "x": 11.75, "y": 0 }, + { "matrix": [0,12], "x": 12.75, "y": 0 }, + { "matrix": [0,13], "x": 14, "y": 0 }, + { "matrix": [0,15], "x": 15.5, "y": 0 }, + + { "matrix": [1,0], "x": 0, "y": 1 }, + { "matrix": [1,1], "x": 1, "y": 1 }, + { "matrix": [1,2], "x": 2, "y": 1 }, + { "matrix": [1,3], "x": 3, "y": 1 }, + { "matrix": [1,4], "x": 4, "y": 1 }, + { "matrix": [1,5], "x": 5, "y": 1 }, + { "matrix": [1,6], "x": 6, "y": 1 }, + { "matrix": [1,7], "x": 7, "y": 1 }, + { "matrix": [1,8], "x": 8, "y": 1 }, + { "matrix": [1,9], "x": 9, "y": 1 }, + { "matrix": [1,10], "x": 10, "y": 1 }, + { "matrix": [1,11], "x": 11, "y": 1 }, + { "matrix": [1,12], "x": 12, "y": 1 }, + { "matrix": [1,13], "w": 2, "x": 13, "y": 1 }, + { "matrix": [1,15], "x": 15.5, "y": 1 }, + + { "matrix": [2,0], "w": 1.5, "x": 0, "y": 2 }, + { "matrix": [2,1], "x": 1.5, "y": 2 }, + { "matrix": [2,2], "x": 2.5, "y": 2 }, + { "matrix": [2,3], "x": 3.5, "y": 2 }, + { "matrix": [2,4], "x": 4.5, "y": 2 }, + { "matrix": [2,5], "x": 5.5, "y": 2 }, + { "matrix": [2,6], "x": 6.5, "y": 2 }, + { "matrix": [2,7], "x": 7.5, "y": 2 }, + { "matrix": [2,8], "x": 8.5, "y": 2 }, + { "matrix": [2,9], "x": 9.5, "y": 2 }, + { "matrix": [2,10], "x": 10.5, "y": 2 }, + { "matrix": [2,11], "x": 11.5, "y": 2 }, + { "matrix": [2,12], "x": 12.5, "y": 2 }, + { "matrix": [2,13], "w": 1.5, "x": 13.5, "y": 2 }, + { "matrix": [2,15], "x": 15.5, "y": 2 }, + + { "matrix": [3,0], "w": 1.75, "x": 0, "y": 3 }, + { "matrix": [3,1], "x": 1.75, "y": 3 }, + { "matrix": [3,2], "x": 2.75, "y": 3 }, + { "matrix": [3,3], "x": 3.75, "y": 3 }, + { "matrix": [3,4], "x": 4.75, "y": 3 }, + { "matrix": [3,5], "x": 5.75, "y": 3 }, + { "matrix": [3,6], "x": 6.75, "y": 3 }, + { "matrix": [3,7], "x": 7.75, "y": 3 }, + { "matrix": [3,8], "x": 8.75, "y": 3 }, + { "matrix": [3,9], "x": 9.75, "y": 3 }, + { "matrix": [3,10], "x": 10.75, "y": 3 }, + { "matrix": [3,11], "x": 11.75, "y": 3 }, + { "matrix": [3,13], "w": 2.25, "x": 12.75, "y": 3 }, + { "matrix": [3,15], "x": 15.5, "y": 3 }, + + { "matrix": [4,0], "w": 2.25, "x": 0, "y": 4 }, + { "matrix": [4,1], "x": 2.25, "y": 4 }, + { "matrix": [4,2], "x": 3.25, "y": 4 }, + { "matrix": [4,3], "x": 4.25, "y": 4 }, + { "matrix": [4,4], "x": 5.25, "y": 4 }, + { "matrix": [4,5], "x": 6.25, "y": 4 }, + { "matrix": [4,6], "x": 7.25, "y": 4 }, + { "matrix": [4,7], "x": 8.25, "y": 4 }, + { "matrix": [4,8], "x": 9.25, "y": 4 }, + { "matrix": [4,9], "x": 10.25, "y": 4 }, + { "matrix": [4,10], "x": 11.25, "y": 4 }, + { "matrix": [4,13], "w": 1.75, "x": 12.25, "y": 4 }, + { "matrix": [4,14], "x": 14.25, "y": 4.25 }, + { "matrix": [4,15], "x": 15.5, "y": 4 }, + + { "matrix": [5,0], "w": 1.25, "x": 0, "y": 5 }, + { "matrix": [5,1], "w": 1.25, "x": 1.25, "y": 5 }, + { "matrix": [5,2], "w": 1.25, "x": 2.5, "y": 5 }, + { "matrix": [5,5], "w": 6.25, "x": 3.75, "y": 5 }, + { "matrix": [5,9], "x": 10, "y": 5 }, + { "matrix": [5,10], "x": 11, "y": 5 }, + { "matrix": [5,11], "x": 12, "y": 5 }, + { "matrix": [5,13], "x": 13.25, "y": 5.25 }, + { "matrix": [5,14], "x": 14.25, "y": 5.25 }, + { "matrix": [5,15], "x": 15.25, "y": 5.25 } + ] + } + } +} diff --git a/keyboards/inland/v83p/keymaps/default/keymap.c b/keyboards/inland/v83p/keymaps/default/keymap.c new file mode 100644 index 0000000000..359939a015 --- /dev/null +++ b/keyboards/inland/v83p/keymaps/default/keymap.c @@ -0,0 +1,55 @@ +// Copyright 2023 jonylee@hfd (@jonylee1986) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +// clang-format off +enum __layers { + WIN_B, + WIN_FN, + MAC_B, + MAC_FN +}; +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT_ansi( /* Base */ + KC_ESC, 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_DEL, KC_MUTE, + KC_GRV, 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_BSPC, KC_HOME, + 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_END, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_ansi( /* FN */ + EE_CLR, KC_BRID, KC_BRIU, KC_MAIL, KC_WSCH, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, RGB_HUD, + _______, GU_TOGG, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI), + + [MAC_B] = LAYOUT_ansi( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_F3, KC_F4, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, + KC_GRV, 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_BSPC, KC_HOME, + 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_END, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_ansi( /* FN */ + EE_CLR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, RGB_HUD, + _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [WIN_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [WIN_FN] = { ENCODER_CCW_CW(RGB_SAI, RGB_SAD) }, + [MAC_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [MAC_FN] = { ENCODER_CCW_CW(RGB_SAI, RGB_SAD) }, +}; +#endif + diff --git a/keyboards/inland/v83p/keymaps/default/rules.mk b/keyboards/inland/v83p/keymaps/default/rules.mk new file mode 100644 index 0000000000..a40474b4d5 --- /dev/null +++ b/keyboards/inland/v83p/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/inland/v83p/keymaps/via/keymap.c b/keyboards/inland/v83p/keymaps/via/keymap.c new file mode 100644 index 0000000000..56b44997d0 --- /dev/null +++ b/keyboards/inland/v83p/keymaps/via/keymap.c @@ -0,0 +1,76 @@ +// Copyright 2023 jonylee@hfd (@jonylee1986) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +// clang-format off +enum __layers { + WIN_B, + WIN_FN, + MAC_B, + MAC_FN +}; +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT_ansi( /* Base */ + KC_ESC, 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_DEL, KC_MUTE, + KC_GRV, 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_BSPC, KC_HOME, + 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_END, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_ansi( /* FN */ + EE_CLR, KC_BRID, KC_BRIU, KC_MAIL, KC_WSCH, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, RGB_HUD, + _______, GU_TOGG, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI), + + [MAC_B] = LAYOUT_ansi( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_F3, KC_F4, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, + KC_GRV, 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_BSPC, KC_HOME, + 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_END, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_ansi( /* FN */ + EE_CLR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, RGB_HUD, + _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [WIN_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [WIN_FN] = { ENCODER_CCW_CW(RGB_SAI, RGB_SAD) }, + [MAC_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [MAC_FN] = { ENCODER_CCW_CW(RGB_SAI, RGB_SAD) }, +}; +#endif +// clang-format on + +bool dip_switch_update_user(uint8_t index, bool active) { + if (index == 0) { + default_layer_set(1UL << (active ? 2 : 0)); + } + if (active) { + keymap_config.no_gui = 0; + } + return true; +} +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + // caps lock red + if ((host_keyboard_led_state().caps_lock)) { + RGB_MATRIX_INDICATOR_SET_COLOR(44, 128, 0, 0); + } + // GUI lock red + if (keymap_config.no_gui) { + RGB_MATRIX_INDICATOR_SET_COLOR(73, 128, 0, 0); + } + return true; +} diff --git a/keyboards/inland/v83p/keymaps/via/rules.mk b/keyboards/inland/v83p/keymaps/via/rules.mk new file mode 100644 index 0000000000..4253f570f0 --- /dev/null +++ b/keyboards/inland/v83p/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/inland/v83p/mcuconf.h b/keyboards/inland/v83p/mcuconf.h new file mode 100644 index 0000000000..aa27265563 --- /dev/null +++ b/keyboards/inland/v83p/mcuconf.h @@ -0,0 +1,12 @@ +// Copyright 2023 jonylee@hfd (@jonylee1986) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE + +#undef WB32_I2C_USE_I2C1 +#define WB32_I2C_USE_I2C1 TRUE diff --git a/keyboards/inland/v83p/readme.md b/keyboards/inland/v83p/readme.md new file mode 100644 index 0000000000..000e960d63 --- /dev/null +++ b/keyboards/inland/v83p/readme.md @@ -0,0 +1,26 @@ +# v83p + +A customizable 75% encoder keyboard. + +* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986) +* Hardware Supported: v83p +* Hardware Availability: [inland](https://www.microcenter.com/search/search_results.aspx?N=4294961018+4294822437) + +Make example for this keyboard (after setting up your build environment): + + make inland/v83p:default + +Flashing example for this keyboard: + + make inland/v83p:default:flash + + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top left key) and plug in the keyboard +* **Physical BOOT contact**: Short circuit the BOOT contact located below the spacebar of the PCB and plug in the keyboard diff --git a/keyboards/inland/v83p/rules.mk b/keyboards/inland/v83p/rules.mk new file mode 100644 index 0000000000..24d5f6f52e --- /dev/null +++ b/keyboards/inland/v83p/rules.mk @@ -0,0 +1,2 @@ +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = spi_flash diff --git a/keyboards/inland/v83p/v83p.c b/keyboards/inland/v83p/v83p.c new file mode 100644 index 0000000000..26ab62784a --- /dev/null +++ b/keyboards/inland/v83p/v83p.c @@ -0,0 +1,119 @@ +// Copyright 2023 JoyLee (@itarze) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +// clang-format off + +#ifdef RGB_MATRIX_ENABLE +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {1, A_1, B_1, C_1}, + {1, A_2, B_2, C_2}, + {1, A_3, B_3, C_3}, + {1, A_4, B_4, C_4}, + {1, A_5, B_5, C_5}, + {1, A_6, B_6, C_6}, + {1, A_7, B_7, C_7}, + {1, A_8, B_8, C_8}, + {1, A_9, B_9, C_9}, + {1, A_10, B_10, C_10}, + {1, A_11, B_11, C_11}, + {1, A_12, B_12, C_12}, + {1, A_13, B_13, C_13}, + {1, A_14, B_14, C_14}, + + {0, A_1, B_1, C_1}, + {0, A_2, B_2, C_2}, + {0, A_3, B_3, C_3}, + {0, A_4, B_4, C_4}, + {0, A_5, B_5, C_5}, + {0, A_6, B_6, C_6}, + {0, A_7, B_7, C_7}, + {0, A_8, B_8, C_8}, + {0, A_9, B_9, C_9}, + {0, A_10, B_10, C_10}, + {0, A_11, B_11, C_11}, + {0, A_12, B_12, C_12}, + {0, A_13, B_13, C_13}, + {0, A_14, B_14, C_14}, + {1, D_1, E_1, F_1}, + + {0, D_1, E_1, F_1}, + {0, D_2, E_2, F_2}, + {0, D_3, E_3, F_3}, + {0, D_4, E_4, F_4}, + {0, D_5, E_5, F_5}, + {0, D_6, E_6, F_6}, + {0, D_7, E_7, F_7}, + {0, D_8, E_8, F_8}, + {0, D_9, E_9, F_9}, + {0, D_10, E_10, F_10}, + {0, D_11, E_11, F_11}, + {0, D_12, E_12, F_12}, + {0, D_13, E_13, F_13}, + {0, D_14, E_14, F_14}, + {1, D_2, E_2, F_2}, + + {0, G_1, H_1, I_1}, + {0, G_2, H_2, I_2}, + {0, G_3, H_3, I_3}, + {0, G_4, H_4, I_4}, + {0, G_5, H_5, I_5}, + {0, G_6, H_6, I_6}, + {0, G_7, H_7, I_7}, + {0, G_8, H_8, I_8}, + {0, G_9, H_9, I_9}, + {0, G_10, H_10, I_10}, + {0, G_11, H_11, I_11}, + {0, G_12, H_12, I_12}, + {0, G_13, H_13, I_13}, + {1, D_3, E_3, F_3}, + + {0, J_1, K_1, L_1}, + {0, J_2, K_2, L_2}, + {0, J_3, K_3, L_3}, + {0, J_4, K_4, L_4}, + {0, J_5, K_5, L_5}, + {0, J_6, K_6, L_6}, + {0, J_7, K_7, L_7}, + {0, J_8, K_8, L_8}, + {0, J_9, K_9, L_9}, + {0, J_10, K_10, L_10}, + {0, J_11, K_11, L_11}, + {0, J_12, K_12, L_12}, + {1, D_7, E_7, F_7}, + {1, D_4, E_4, F_4}, + + {0, J_13, K_13, L_13}, + {0, J_14, K_14, L_14}, + {0, J_15, K_15, L_15}, + {0, J_16, K_16, L_16}, + + {0, G_14, H_14, I_14}, + {0, G_15, H_15, I_15}, + {0, G_16, H_16, I_16}, + + {0, D_15, E_15, F_15}, + {1, D_6, E_6, F_6}, + {1, D_5, E_5, F_5}, + + {1, G_1, H_1, I_1}, + {1, G_2, H_2, I_2}, + {1, G_3, H_3, I_3}, + {1, G_4, H_4, I_4}, + {1, G_5, H_5, I_5}, + + {1, J_1, K_1, L_1}, + {1, J_2, K_2, L_2}, + {1, J_3, K_3, L_3}, + {1, J_4, K_4, L_4}, + {1, J_5, K_5, L_5}, +}; +#endif + + From 04771601091734454bb7d9734553abb1198a7ede Mon Sep 17 00:00:00 2001 From: lendunistus <53618962+lendunistus@users.noreply.github.com> Date: Fri, 13 Oct 2023 00:56:01 +0300 Subject: [PATCH 278/496] [Keyboard] RPNeko65 by lendunistus (#21747) * initialise rpneko65, info.json * force NKRO * define WS2812 stuff and capitalise RPNeko65 * use RGBlight, add ANSI to keymap.c also remove _ADC suffixes from pins * basic readme plus making it so the info.json RGB values are actually recognised as integers * update repository URL * fix info.json formatting * caps lock LED implementation "borrowed" from waffling60 * put RGBLIGHT_ENABLE in json also remove "pin" from the rgblight option * add actually correct keymaps also reformat info.json * move to designer folder, add image to README * move keyboard to separate revision folder and remove erroneous tag from config.h * remove brightness/hue/saturation steps * change device version to 1.0 * move quantum.h include to top * actually, let's try a new image I also forgot to save the info.json file beforehand oops * Remove comma in info.json * Community layouts in info.json * Delete rpneko65/readme.md * Apply suggested changes to readme * Suggested code changes * Suggested imgur link * rename code file this was the issue all along sigh * Correct layer matching this time * Move Enter in info.json * README/info.json change * Another batch of suggestions --- keyboards/lendunistus/rpneko65/rev1/config.h | 6 + keyboards/lendunistus/rpneko65/rev1/info.json | 766 ++++++++++++++++++ .../rpneko65/rev1/keymaps/default/keymap.c | 23 + .../rpneko65/rev1/keymaps/via/keymap.c | 23 + .../rpneko65/rev1/keymaps/via/rules.mk | 1 + keyboards/lendunistus/rpneko65/rev1/readme.md | 24 + keyboards/lendunistus/rpneko65/rev1/rev1.c | 34 + keyboards/lendunistus/rpneko65/rev1/rules.mk | 1 + 8 files changed, 878 insertions(+) create mode 100644 keyboards/lendunistus/rpneko65/rev1/config.h create mode 100644 keyboards/lendunistus/rpneko65/rev1/info.json create mode 100644 keyboards/lendunistus/rpneko65/rev1/keymaps/default/keymap.c create mode 100644 keyboards/lendunistus/rpneko65/rev1/keymaps/via/keymap.c create mode 100644 keyboards/lendunistus/rpneko65/rev1/keymaps/via/rules.mk create mode 100644 keyboards/lendunistus/rpneko65/rev1/readme.md create mode 100644 keyboards/lendunistus/rpneko65/rev1/rev1.c create mode 100644 keyboards/lendunistus/rpneko65/rev1/rules.mk diff --git a/keyboards/lendunistus/rpneko65/rev1/config.h b/keyboards/lendunistus/rpneko65/rev1/config.h new file mode 100644 index 0000000000..6786155fbf --- /dev/null +++ b/keyboards/lendunistus/rpneko65/rev1/config.h @@ -0,0 +1,6 @@ +// Copyright 2023 lendunistus +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define CAPS_LOCK_ENABLE true diff --git a/keyboards/lendunistus/rpneko65/rev1/info.json b/keyboards/lendunistus/rpneko65/rev1/info.json new file mode 100644 index 0000000000..29682cf2a7 --- /dev/null +++ b/keyboards/lendunistus/rpneko65/rev1/info.json @@ -0,0 +1,766 @@ +{ + "manufacturer": "lendunistus", + "keyboard_name": "RPNeko65", + "maintainer": "lendunistus", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["GP29", "GP15", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP8", "GP6", "GP5", "GP4", "GP3", "GP2", "GP0", "GP1"], + "rows": ["GP28", "GP27", "GP26", "GP25", "GP24"] + }, + "processor": "RP2040", + "rgblight": { + "led_count": 1 + }, + "url": "https://github.com/lendunistus/rpneko65", + "usb": { + "device_version": "1.0.0", + "force_nkro": true, + "pid": "0x0001", + "vid": "0x6C75" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP18" + }, + "community_layouts": [ + "65_ansi_blocker", + "65_ansi_blocker_split_bs", + "65_ansi_blocker_tsangan", + "65_ansi_blocker_tsangan_split_bs", + "65_iso_blocker", + "65_iso_blocker_split_bs", + "65_iso_blocker_tsangan", + "65_iso_blocker_tsangan_split_bs" + ], + "layouts": { + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_split_space": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 4, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4, "w": 2}, + {"matrix": [4, 7], "x": 8.25, "y": 4, "w": 2.75}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 4, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4, "w": 2}, + {"matrix": [4, 7], "x": 8.25, "y": 4, "w": 1.75}, + {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/lendunistus/rpneko65/rev1/keymaps/default/keymap.c b/keyboards/lendunistus/rpneko65/rev1/keymaps/default/keymap.c new file mode 100644 index 0000000000..5b52fa2038 --- /dev/null +++ b/keyboards/lendunistus/rpneko65/rev1/keymaps/default/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2023 lendunistus +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // Main layer + [0] = LAYOUT_all( + KC_ESC, 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_BSPC, KC_BSPC, KC_HOME, + 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_NUHS, KC_PGUP, + 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_ENT, KC_PGDN, + 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_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + // Function layer + [1] = LAYOUT_all( + 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_DEL, KC_DEL, _______, + _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_SCRL, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUS, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/lendunistus/rpneko65/rev1/keymaps/via/keymap.c b/keyboards/lendunistus/rpneko65/rev1/keymaps/via/keymap.c new file mode 100644 index 0000000000..5b52fa2038 --- /dev/null +++ b/keyboards/lendunistus/rpneko65/rev1/keymaps/via/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2023 lendunistus +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // Main layer + [0] = LAYOUT_all( + KC_ESC, 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_BSPC, KC_BSPC, KC_HOME, + 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_NUHS, KC_PGUP, + 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_ENT, KC_PGDN, + 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_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + // Function layer + [1] = LAYOUT_all( + 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_DEL, KC_DEL, _______, + _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_SCRL, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUS, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/lendunistus/rpneko65/rev1/keymaps/via/rules.mk b/keyboards/lendunistus/rpneko65/rev1/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/lendunistus/rpneko65/rev1/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/lendunistus/rpneko65/rev1/readme.md b/keyboards/lendunistus/rpneko65/rev1/readme.md new file mode 100644 index 0000000000..d41fe19c8a --- /dev/null +++ b/keyboards/lendunistus/rpneko65/rev1/readme.md @@ -0,0 +1,24 @@ +# rpneko65 + +![rpneko65](https://i.imgur.com/QUIUSqJh.png)\ +*PCB rear side* + +A multi-layout PCB designed to fit the Bakeneko65 case by kkatano. + +* Keyboard Maintainer: [lendunistus](https://github.com/lendunistus) +* Hardware Supported: RPNeko65 PCB; [Bakeneko65 V3 Case](https://github.com/kkatano/bakeneko-65) +* Hardware Availability: [Open source on GitHub](https://github.com/lendunistus/rpneko65) + +Make example for this keyboard (after setting up your build environment): + + make lendunistus/rpneko65/rev1:default + +Flashing example for this keyboard: + + make lendunistus/rpneko65/rev1:default:flash + +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). + +## Bootloader + +Plug in the keyboard while holding down either the ESC key or the button on the back of the PCB labelled "USB Boot". diff --git a/keyboards/lendunistus/rpneko65/rev1/rev1.c b/keyboards/lendunistus/rpneko65/rev1/rev1.c new file mode 100644 index 0000000000..2cb9cf07f8 --- /dev/null +++ b/keyboards/lendunistus/rpneko65/rev1/rev1.c @@ -0,0 +1,34 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include "quantum.h" + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if (CAPS_LOCK_ENABLE && res) { + if(led_state.caps_lock) { + #ifdef CAPS_LOCK_COLOR + rgblight_sethsv_at(CAPS_LOCK_COLOR, 0); + #else + rgblight_sethsv_at(rgblight_get_hue(),rgblight_get_sat(),rgblight_get_val(), 0); + #endif + } + else{ + rgblight_sethsv_at(HSV_BLACK, 0); + } + } + return res; +} diff --git a/keyboards/lendunistus/rpneko65/rev1/rules.mk b/keyboards/lendunistus/rpneko65/rev1/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/lendunistus/rpneko65/rev1/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From f150258e5ab6bf04c2e724389465f7a8ef5759ef Mon Sep 17 00:00:00 2001 From: skyloong <92424712+JZ-Skyloong@users.noreply.github.com> Date: Fri, 13 Oct 2023 12:59:10 +0800 Subject: [PATCH 279/496] [Keyboard] Skyloong GK61 Pro 48 (#21654) * Create GK61 PRO_48 Keyboard. * update pro.c and config.h to save power when USB suspend. * Update keyboards/skyloong/gk61/pro_48/info.json OK,thank you. * update info.json * update layer indicator * Update RGB animations---delete rainbow_beacon and rainbo_pinwheels. * Cancel force_nkro * Add caps lock indicator in rgb matrix. * Update keyboards/skyloong/gk61/pro_48/pro_48.c OK, thank you for your suggestion. * Enable I2C DMA; Modified pro_48.c * Update keyboards/skyloong/gk61/pro_48/info.json OK, thank you for your suggestion. * Update keyboards/skyloong/gk61/pro_48/info.json OK, thanks. * enable encoder map in default keymap. * define g_suspend_state --- keyboards/skyloong/gk61/pro_48/config.h | 18 + keyboards/skyloong/gk61/pro_48/halconf.h | 7 + keyboards/skyloong/gk61/pro_48/info.json | 338 ++++++++++++++++++ .../gk61/pro_48/keymaps/default/keymap.c | 44 +++ .../gk61/pro_48/keymaps/default/rules.mk | 1 + .../skyloong/gk61/pro_48/keymaps/via/keymap.c | 68 ++++ .../skyloong/gk61/pro_48/keymaps/via/rules.mk | 2 + keyboards/skyloong/gk61/pro_48/mcuconf.h | 11 + keyboards/skyloong/gk61/pro_48/pro_48.c | 227 ++++++++++++ keyboards/skyloong/gk61/pro_48/readme.md | 33 ++ keyboards/skyloong/gk61/pro_48/rules.mk | 1 + 11 files changed, 750 insertions(+) create mode 100644 keyboards/skyloong/gk61/pro_48/config.h create mode 100644 keyboards/skyloong/gk61/pro_48/halconf.h create mode 100644 keyboards/skyloong/gk61/pro_48/info.json create mode 100644 keyboards/skyloong/gk61/pro_48/keymaps/default/keymap.c create mode 100644 keyboards/skyloong/gk61/pro_48/keymaps/default/rules.mk create mode 100644 keyboards/skyloong/gk61/pro_48/keymaps/via/keymap.c create mode 100644 keyboards/skyloong/gk61/pro_48/keymaps/via/rules.mk create mode 100644 keyboards/skyloong/gk61/pro_48/mcuconf.h create mode 100644 keyboards/skyloong/gk61/pro_48/pro_48.c create mode 100644 keyboards/skyloong/gk61/pro_48/readme.md create mode 100644 keyboards/skyloong/gk61/pro_48/rules.mk diff --git a/keyboards/skyloong/gk61/pro_48/config.h b/keyboards/skyloong/gk61/pro_48/config.h new file mode 100644 index 0000000000..dc31521627 --- /dev/null +++ b/keyboards/skyloong/gk61/pro_48/config.h @@ -0,0 +1,18 @@ +// Copyright 2023 linlin012 (@linlin012) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + + +#define DRIVER_COUNT 1 +#define RGB_MATRIX_LED_COUNT 64 +#define CAPS_LOCK_INDEX 28 +#define WIN_MOD_INDEX 16 +#define MAC_MOD_INDEX 17 +#define SDB A4 + +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS + +#define g_suspend_state rgb_matrix_get_suspend_state() diff --git a/keyboards/skyloong/gk61/pro_48/halconf.h b/keyboards/skyloong/gk61/pro_48/halconf.h new file mode 100644 index 0000000000..5ac56913fc --- /dev/null +++ b/keyboards/skyloong/gk61/pro_48/halconf.h @@ -0,0 +1,7 @@ +// Copyright 2023 linlin012 (@linlin012) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/skyloong/gk61/pro_48/info.json b/keyboards/skyloong/gk61/pro_48/info.json new file mode 100644 index 0000000000..0e49e005aa --- /dev/null +++ b/keyboards/skyloong/gk61/pro_48/info.json @@ -0,0 +1,338 @@ +{ + "manufacturer": "skyloong", + "keyboard_name": "gk61 pro 48", + "maintainer": "NaturalZh", + "bootloader": "stm32duino", + + "diode_direction": "ROW2COL", + "encoder": { + "rotary": [ + {"pin_a": "A2", "pin_b": "A3", "resolution": 2} + ] + }, + "features": { + "bootmagic": true, + "command": true, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, + "matrix_pins": { + "cols": ["B13", "A0", "A1", "B14", "B15", "A8", "A9", "A10", "A15", "B3", "B4", "B5", "B8", "B9"], + "rows": ["B10", "B1", "B0", "A7", "A6"] + }, + "processor": "STM32F103", + "rgb_matrix": { + "animations": { + "breathing": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "raindrops": true, + "jellybean_raindrops": true, + "pixel_rain": true, + "typing_heatmap":true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive_multiwide": true, + "solid_reactive_multinexus": true, + "splash": true, + "solid_splash": true + }, + "driver": "is31fl3743a", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 49, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 65, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 113, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 129, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 145, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 178, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 194, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 218, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 13, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 13, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 13, "flags": 4}, + {"matrix": [1, 3], "x": 57, "y": 13, "flags": 4}, + {"matrix": [1, 4], "x": 73, "y": 13, "flags": 4}, + {"matrix": [1, 5], "x": 89, "y": 13, "flags": 4}, + {"matrix": [1, 6], "x": 105, "y": 13, "flags": 4}, + {"matrix": [1, 7], "x": 121, "y": 13, "flags": 4}, + {"matrix": [1, 8], "x": 137, "y": 13, "flags": 4}, + {"matrix": [1, 9], "x": 153, "y": 13, "flags": 4}, + {"matrix": [1, 10], "x": 170, "y": 13, "flags": 4}, + {"matrix": [1, 11], "x": 186, "y": 13, "flags": 4}, + {"matrix": [1, 12], "x": 202, "y": 13, "flags": 4}, + {"matrix": [1, 13], "x": 222, "y": 13, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 26, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 61, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 77, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 93, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 109, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 125, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 141, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 157, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 174, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 190, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 216, "y": 26, "flags": 4}, + {"matrix": [3, 0], "x": 10, "y": 51, "flags": 4}, + {"matrix": [3, 1], "x": 36, "y": 51, "flags": 4}, + {"matrix": [3, 2], "x": 53, "y": 51, "flags": 4}, + {"matrix": [3, 3], "x": 69, "y": 51, "flags": 4}, + {"matrix": [3, 4], "x": 85, "y": 51, "flags": 4}, + {"matrix": [3, 5], "x": 101, "y": 51, "flags": 4}, + {"matrix": [3, 6], "x": 117, "y": 51, "flags": 4}, + {"matrix": [3, 7], "x": 133, "y": 51, "flags": 4}, + {"matrix": [3, 8], "x": 149, "y": 51, "flags": 4}, + {"matrix": [3, 9], "x": 166, "y": 51, "flags": 4}, + {"matrix": [3, 10], "x": 182, "y": 51, "flags": 4}, + {"matrix": [3, 12], "x": 212, "y": 51, "flags": 4}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 75, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 103, "y": 64, "flags": 4}, + {"matrix": [4, 6], "x": 103, "y": 64, "flags": 4}, + {"matrix": [4, 8], "x": 131, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 163, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 184, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 204, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4} + ], + "max_brightness": 200, + "hue_steps": 20, + "sat_steps": 20, + "speed_steps": 20, + "val_steps": 20 + }, + "url": "https://github.com/JZ-Skyloong", + "usb": { + "device_version": "1.0.0", + "pid": "0x6A62", + "vid": "0x1EA7", + "max_power": 380 + }, + "community_layouts": ["60_ansi"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 4], "x": 3.75, "y": 4.5, "w": 2.5, "h": 0.5}, + {"matrix": [4, 5], "x": 3.75, "y": 4, "h": 0.5, "w":6.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5, "h": 0.5, "w":1.25}, + {"matrix": [4, 8], "x": 7.5, "y": 4.5, "w": 2.5, "h": 0.5}, + {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_split_space": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 4], "x": 3.75, "y": 4, "w": 2.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4, "w": 1.25}, + {"matrix": [4, 8], "x": 7.5, "y": 4, "w": 2.5}, + {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/skyloong/gk61/pro_48/keymaps/default/keymap.c b/keyboards/skyloong/gk61/pro_48/keymaps/default/keymap.c new file mode 100644 index 0000000000..9534f25d80 --- /dev/null +++ b/keyboards/skyloong/gk61/pro_48/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +// Copyright 2021 JZ-Skyloong (@JZ-Skyloong) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Tab│ Q │ W │ E | R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Cap│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ |Ent│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Sft│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ |Sft| │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Ctl│GUI│Alt│ │Spc│Mut│ │ |Spc|Alt│App│Ctl│ │Mo1| + * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ + */ + [0] = LAYOUT_all( + KC_ESC, 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_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_MUTE, KC_SPC, KC_RALT, KC_APP, KC_RCTL, MO(1) + ), + + [1] = LAYOUT_all( + 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, _______, + _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) } +}; +#endif + diff --git a/keyboards/skyloong/gk61/pro_48/keymaps/default/rules.mk b/keyboards/skyloong/gk61/pro_48/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/skyloong/gk61/pro_48/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/skyloong/gk61/pro_48/keymaps/via/keymap.c b/keyboards/skyloong/gk61/pro_48/keymaps/via/keymap.c new file mode 100644 index 0000000000..e63830f519 --- /dev/null +++ b/keyboards/skyloong/gk61/pro_48/keymaps/via/keymap.c @@ -0,0 +1,68 @@ +// Copyright 2021 JZ-Skyloong (@JZ-Skyloong) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_names { + _WIN, + _MAC, + _WIN_INDEX, + _MAC_INDEX +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Tab│ Q │ W │ E | R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Cap│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ |Ent│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Sft│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ |Sft| │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Ctl│GUI│Alt│ │Spc│Spc│Mut│ |Spc|Alt│App│Ctl│ │Mox| + * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ + */ + [_WIN] = LAYOUT_all( + KC_ESC, 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_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_MUTE, KC_SPC, KC_RALT, KC_APP, KC_RCTL, MO(_WIN_INDEX) + ), + + [_MAC] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LALT, KC_LGUI, _______, _______, _______, _______, KC_RGUI, KC_RALT, _______, MO(_MAC_INDEX) + ), + + [_WIN_INDEX] = LAYOUT_all( + 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_DEL, + _______, _______, TO(0), TO(1), _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_RMOD, RGB_RMOD, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, KC_UP, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______ + ), + + [_MAC_INDEX] = LAYOUT_all( + KC_GRV , KC_F14, KC_F15, C(KC_UP), G(KC_D), G(KC_SPC), LSG(KC_4), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, + _______, _______, TO(0), TO(1), _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_RMOD, RGB_RMOD, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, KC_UP, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______ + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_WIN] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_MAC] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_WIN_INDEX] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) }, + [_MAC_INDEX] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) } +}; +#endif + diff --git a/keyboards/skyloong/gk61/pro_48/keymaps/via/rules.mk b/keyboards/skyloong/gk61/pro_48/keymaps/via/rules.mk new file mode 100644 index 0000000000..f1adcab005 --- /dev/null +++ b/keyboards/skyloong/gk61/pro_48/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/skyloong/gk61/pro_48/mcuconf.h b/keyboards/skyloong/gk61/pro_48/mcuconf.h new file mode 100644 index 0000000000..91dde6cc42 --- /dev/null +++ b/keyboards/skyloong/gk61/pro_48/mcuconf.h @@ -0,0 +1,11 @@ +// Copyright 2023 linlin012 (@linlin012) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +#undef STM32_I2C_USE_DMA +#define STM32_I2C_USE_DMA TRUE diff --git a/keyboards/skyloong/gk61/pro_48/pro_48.c b/keyboards/skyloong/gk61/pro_48/pro_48.c new file mode 100644 index 0000000000..e4f64c022f --- /dev/null +++ b/keyboards/skyloong/gk61/pro_48/pro_48.c @@ -0,0 +1,227 @@ +// Copyright 2023 linlin012 (@linlin012) +// SPDX-License-Identifier: GPL-2.0-or-later +#include "quantum.h" +_Bool FN_WIN = 0; +_Bool FN_MAC = 0; +_Bool L_WIN = 0; +_Bool L_MAC = 0; + +#if defined(RGB_MATRIX_ENABLE) /*&& defined(CAPS_LOCK_INDEX)*/ +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, CS1_SW1, CS2_SW1, CS3_SW1}, + {0, CS1_SW2, CS2_SW2, CS3_SW2}, + {0, CS1_SW3, CS2_SW3, CS3_SW3}, + {0, CS1_SW4, CS2_SW4, CS3_SW4}, + {0, CS1_SW5, CS2_SW5, CS3_SW5}, + {0, CS1_SW6, CS2_SW6, CS3_SW6}, + {0, CS1_SW7, CS2_SW7, CS3_SW7}, + {0, CS1_SW8, CS2_SW8, CS3_SW8}, + {0, CS1_SW9, CS2_SW9, CS3_SW9}, + {0, CS1_SW10, CS2_SW10, CS3_SW10}, + {0, CS1_SW11, CS2_SW11, CS3_SW11}, + {0, CS16_SW1, CS17_SW1, CS18_SW1}, + {0, CS16_SW2, CS17_SW2, CS18_SW2}, + {0, CS16_SW3, CS17_SW3, CS18_SW3}, + + {0, CS4_SW1, CS5_SW1, CS6_SW1}, + {0, CS4_SW2, CS5_SW2, CS6_SW2}, + {0, CS4_SW3, CS5_SW3, CS6_SW3}, + {0, CS4_SW4, CS5_SW4, CS6_SW4}, + {0, CS4_SW5, CS5_SW5, CS6_SW5}, + {0, CS4_SW6, CS5_SW6, CS6_SW6}, + {0, CS4_SW7, CS5_SW7, CS6_SW7}, + {0, CS4_SW8, CS5_SW8, CS6_SW8}, + {0, CS4_SW9, CS5_SW9, CS6_SW9}, + {0, CS4_SW10, CS5_SW10, CS6_SW10}, + {0, CS4_SW11, CS5_SW11, CS6_SW11}, + {0, CS16_SW4, CS17_SW4, CS18_SW4}, + {0, CS16_SW5, CS17_SW5, CS18_SW5}, + {0, CS16_SW6, CS17_SW6, CS18_SW6}, + + {0, CS7_SW1, CS8_SW1, CS9_SW1}, + {0, CS7_SW2, CS8_SW2, CS9_SW2}, + {0, CS7_SW3, CS8_SW3, CS9_SW3}, + {0, CS7_SW4, CS8_SW4, CS9_SW4}, + {0, CS7_SW5, CS8_SW5, CS9_SW5}, + {0, CS7_SW6, CS8_SW6, CS9_SW6}, + {0, CS7_SW7, CS8_SW7, CS9_SW7}, + {0, CS7_SW8, CS8_SW8, CS9_SW8}, + {0, CS7_SW9, CS8_SW9, CS9_SW9}, + {0, CS7_SW10, CS8_SW10, CS9_SW10}, + {0, CS7_SW11, CS8_SW11, CS9_SW11}, + {0, CS16_SW7, CS17_SW7, CS18_SW7}, + {0, CS16_SW8, CS17_SW8, CS18_SW8}, + + {0, CS10_SW1, CS11_SW1, CS12_SW1}, + {0, CS10_SW2, CS11_SW2, CS12_SW2}, + {0, CS10_SW3, CS11_SW3, CS12_SW3}, + {0, CS10_SW4, CS11_SW4, CS12_SW4}, + {0, CS10_SW5, CS11_SW5, CS12_SW5}, + {0, CS10_SW6, CS11_SW6, CS12_SW6}, + {0, CS10_SW7, CS11_SW7, CS12_SW7}, + {0, CS10_SW8, CS11_SW8, CS12_SW8}, + {0, CS10_SW9, CS11_SW9, CS12_SW9}, + {0, CS10_SW10, CS11_SW10, CS12_SW10}, + {0, CS10_SW11, CS11_SW11, CS12_SW11}, + {0, CS16_SW9, CS17_SW9, CS18_SW9}, + + {0, CS13_SW1, CS14_SW1, CS15_SW1}, + {0, CS13_SW2, CS14_SW2, CS15_SW2}, + {0, CS13_SW3, CS14_SW3, CS15_SW3}, + {0, CS13_SW4, CS14_SW4, CS15_SW4}, + {0, CS13_SW5, CS14_SW5, CS15_SW5}, + {0, CS13_SW5, CS14_SW5, CS15_SW5}, + {0, CS13_SW6, CS14_SW6, CS15_SW6}, + {0, CS13_SW7, CS14_SW7, CS15_SW7}, + {0, CS13_SW8, CS14_SW8, CS15_SW8}, + {0, CS13_SW9, CS14_SW9, CS15_SW9}, + {0, CS13_SW10, CS14_SW10, CS15_SW10} +}; + +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } + + if (host_keyboard_led_state().caps_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_INDEX, 255, 255, 255); + } else { + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_INDEX, 0, 0, 0); + } + } + + switch (get_highest_layer(layer_state)) { + case 2:{ + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 255, 255, 255); + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0); + } + } break; + case 3:{ + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 255, 255, 255); + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0); + } + } break; + + case 0:{ + if (L_WIN) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 255, 255, 255); + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0); + } + }else{ + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0); + } + } + } break; + + case 1:{ + if (L_MAC) { + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 255, 255, 255); + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0); + } + }else{ + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0); + } + } + } break; + + default:{ + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0); + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0); + } + } + } + return false; +} + + +void suspend_power_down_kb(void) { + writePinLow(SDB); + suspend_power_down_user(); +} + +void suspend_wakeup_init_kb(void) { + writePinHigh(SDB); + suspend_wakeup_init_user(); +} +#endif + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + switch (keycode) { +# ifdef RGB_MATRIX_ENABLE + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + } break; + } + } + return false; +# endif + case TO(0): + if (record->event.pressed) { + L_WIN = 1; + set_single_persistent_default_layer(0); // Save default layer 0 to eeprom + } else { + L_WIN = 0; + } + return true; // continue all further processing of this key + + case MO(2): + if (record->event.pressed) { + FN_WIN = 1; + } else { + FN_WIN = 0; + } + return true; // continue all further processing of this key + + case TO(1): + if (record->event.pressed) { + L_MAC = 1; + set_single_persistent_default_layer(1); //Save default layer 1 to eeprom + } else { + L_MAC = 0; + } + return true; // continue all further processing of this key + + case MO(3): + if (record->event.pressed) { + FN_MAC = 1; + } else { + FN_MAC = 0; + } + return true; // continue all further processing of this key + default: + return true; + } +} + +void board_init(void) { + // JTAG-DP Disabled and SW-DP Disabled + AFIO->MAPR = (AFIO->MAPR & ~AFIO_MAPR_SWJ_CFG_Msk) | AFIO_MAPR_SWJ_CFG_DISABLE; +# ifdef RGB_MATRIX_ENABLE + setPinOutput(SDB); + writePinHigh(SDB); +# endif +} diff --git a/keyboards/skyloong/gk61/pro_48/readme.md b/keyboards/skyloong/gk61/pro_48/readme.md new file mode 100644 index 0000000000..babfec4a3b --- /dev/null +++ b/keyboards/skyloong/gk61/pro_48/readme.md @@ -0,0 +1,33 @@ +# GK61 PRO 48 + +![GK61 PRO](https://i.imgur.com/DTetyVLh.jpg) + +## The PCB features: +* QMK & VIA compatibility +* RGB Matrix backlight +* The space bar position switch can be interchanged with encoder module. + + +The following is the QMK Firmware for the Destop 60% keylayout - designed in Dongguan Jizhi Electronic Technology Co., Ltd + +* Keyboard Maintainer: [NaturalZh](https://github.com/NaturalZh) +* Hardware Supported: DestopPCB for Skyloong keylayout 60%, STM32F103C8T6 +* Hardware Availability: http://www.skyloong.com.cn https://skyloong.vip + +Make example for this keyboard (after setting up your build environment): + + make skyloong/gk61/pro_48:default + +Flashing example for this keyboard: + + make skyloong/gk61/pro_48:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/skyloong/gk61/pro_48/rules.mk b/keyboards/skyloong/gk61/pro_48/rules.mk new file mode 100644 index 0000000000..3bbd261429 --- /dev/null +++ b/keyboards/skyloong/gk61/pro_48/rules.mk @@ -0,0 +1 @@ +# File intentionally blank From c157c19b81fbd8b516de0eb5e854d278669cff1a Mon Sep 17 00:00:00 2001 From: Ryan Date: Fri, 13 Oct 2023 17:25:32 +1100 Subject: [PATCH 280/496] Dedupe I2C, SPI, UART driver inclusions (#22253) --- builddefs/common_features.mk | 185 +++++++++--------- docs/i2c_driver.md | 12 ++ docs/spi_driver.md | 12 ++ docs/uart_driver.md | 12 ++ keyboards/3w6/rev1/rules.mk | 2 +- keyboards/3w6/rev2/rules.mk | 2 +- keyboards/40percentclub/ut47/rules.mk | 2 +- keyboards/aeboards/satellite/rev1/rules.mk | 2 +- keyboards/anavi/knob1/rules.mk | 2 - keyboards/anavi/knobs3/rules.mk | 2 - keyboards/bajjak/rules.mk | 2 +- keyboards/barleycorn_smd/rules.mk | 2 +- keyboards/bioi/g60/rules.mk | 2 +- keyboards/bioi/g60ble/rules.mk | 2 +- keyboards/bioi/morgan65/rules.mk | 2 +- keyboards/centromere/rules.mk | 2 +- keyboards/clueboard/2x1800/2021/rules.mk | 3 +- keyboards/converter/palm_usb/rules.mk | 2 +- keyboards/converter/sun_usb/rules.mk | 2 +- keyboards/dc01/left/rules.mk | 4 +- keyboards/dichotomy/rules.mk | 2 +- keyboards/ergodox_ez/rules.mk | 2 +- keyboards/ergodox_stm32/rules.mk | 2 +- keyboards/fallacy/rules.mk | 2 +- keyboards/fc660c/rules.mk | 2 +- keyboards/fc980c/rules.mk | 2 +- keyboards/ferris/0_1/rules.mk | 2 +- keyboards/ferris/0_2/rules.mk | 2 +- keyboards/frobiac/blackbowl/rules.mk | 2 +- keyboards/gboards/ergotaco/rules.mk | 3 +- keyboards/gboards/georgi/rules.mk | 3 +- .../gboards/gergo/keymaps/colemak/rules.mk | 3 +- .../gboards/gergo/keymaps/default/rules.mk | 3 +- keyboards/gboards/gergo/keymaps/germ/rules.mk | 3 +- .../gboards/gergo/keymaps/gotham/rules.mk | 3 +- keyboards/gboards/gergo/rules.mk | 2 +- keyboards/gboards/gergoplex/rules.mk | 2 +- keyboards/geistmaschine/macropod/rules.mk | 2 +- keyboards/glenpickle/chimera_ergo/rules.mk | 2 +- keyboards/glenpickle/chimera_ls/rules.mk | 2 +- keyboards/glenpickle/chimera_ortho/rules.mk | 2 +- .../glenpickle/chimera_ortho_plus/rules.mk | 2 +- keyboards/handwired/dactyl/rules.mk | 2 +- keyboards/handwired/dqz11n1g/rules.mk | 2 +- keyboards/handwired/dygma/raise/rules.mk | 2 +- keyboards/handwired/frenchdev/rules.mk | 4 +- keyboards/handwired/lagrange/rules.mk | 3 +- keyboards/handwired/onekey/kb2040/rules.mk | 2 - .../onekey/keymaps/i2c_scanner/rules.mk | 2 +- keyboards/handwired/pterodactyl/rules.mk | 2 +- keyboards/hazel/bad_wings/rules.mk | 2 +- keyboards/hotdox/rules.mk | 2 +- keyboards/hs60/v2/ansi/rules.mk | 4 +- keyboards/hs60/v2/hhkb/rules.mk | 4 +- keyboards/hs60/v2/iso/rules.mk | 4 +- keyboards/ibm/model_m/mschwingen/rules.mk | 4 +- keyboards/ingrained/rules.mk | 2 +- keyboards/kagizaraya/chidori/rules.mk | 2 +- keyboards/keebwerk/mega/ansi/rules.mk | 2 +- keyboards/keyboardio/model01/rules.mk | 2 +- keyboards/keyhive/honeycomb/rules.mk | 2 +- keyboards/kprepublic/bm60hsrgb/rev2/rules.mk | 2 +- .../kprepublic/bm60hsrgb_iso/rev2/rules.mk | 2 +- .../kprepublic/bm60hsrgb_poker/rev2/rules.mk | 2 +- keyboards/ktec/ergodone/rules.mk | 2 +- keyboards/matrix/abelx/rules.mk | 2 +- keyboards/matrix/m20add/rules.mk | 2 +- keyboards/mechwild/sugarglider/rules.mk | 2 +- keyboards/mitosis/rules.mk | 2 +- keyboards/molecule/rules.mk | 2 +- keyboards/moon/rules.mk | 2 +- keyboards/moonlander/rules.mk | 2 +- keyboards/mt/split75/rules.mk | 2 +- keyboards/neson_design/700e/rules.mk | 3 +- keyboards/neson_design/n6/rules.mk | 3 +- keyboards/novelkeys/nk65/rules.mk | 4 +- keyboards/novelkeys/nk87/rules.mk | 4 +- keyboards/nullbitsco/nibble/rules.mk | 2 +- keyboards/nullbitsco/snap/rules.mk | 4 +- keyboards/nullbitsco/tidbit/rules.mk | 4 +- keyboards/oddforge/vea/rules.mk | 2 +- keyboards/phoenix/config.h | 1 - keyboards/phoenix/halconf.h | 2 + keyboards/redox_w/rules.mk | 2 +- keyboards/rgbkb/mun/rules.mk | 2 +- keyboards/rgbkb/sol3/rules.mk | 2 +- keyboards/satt/comet46/rules.mk | 2 +- keyboards/sirius/uni660/rev1/rules.mk | 2 +- keyboards/sirius/uni660/rev2/rules.mk | 2 +- keyboards/spaceholdings/nebula12/rules.mk | 2 +- keyboards/spaceholdings/nebula68/rules.mk | 2 +- keyboards/spiderisland/split78/rules.mk | 2 +- keyboards/switchplate/southpaw_65/rules.mk | 2 +- keyboards/sx60/rules.mk | 2 +- keyboards/system76/launch_1/rules.mk | 2 +- keyboards/telophase/rules.mk | 2 +- keyboards/tkc/portico/rules.mk | 2 +- keyboards/tkc/portico75/keymaps/via/rules.mk | 2 +- keyboards/torn/rules.mk | 2 +- keyboards/touchpad/rules.mk | 3 +- keyboards/viktus/sp111/rules.mk | 2 +- keyboards/wilba_tech/rama_works_kara/rules.mk | 4 +- keyboards/wilba_tech/rama_works_koyu/rules.mk | 4 +- .../wilba_tech/rama_works_m10_c/rules.mk | 4 +- .../wilba_tech/rama_works_m50_a/rules.mk | 4 +- .../wilba_tech/rama_works_m60_a/rules.mk | 4 +- .../wilba_tech/rama_works_m65_b/rules.mk | 4 +- .../wilba_tech/rama_works_m65_bx/rules.mk | 4 +- keyboards/wilba_tech/rama_works_m6_b/rules.mk | 4 +- .../wilba_tech/rama_works_u80_a/rules.mk | 4 +- keyboards/wilba_tech/wt60_a/rules.mk | 2 +- keyboards/wilba_tech/wt60_b/rules.mk | 4 +- keyboards/wilba_tech/wt60_bx/rules.mk | 4 +- keyboards/wilba_tech/wt60_c/rules.mk | 4 +- keyboards/wilba_tech/wt65_a/rules.mk | 2 +- keyboards/wilba_tech/wt65_b/rules.mk | 2 +- keyboards/wilba_tech/wt75_a/rules.mk | 2 +- keyboards/wilba_tech/wt75_b/rules.mk | 2 +- keyboards/wilba_tech/wt75_c/rules.mk | 2 +- keyboards/wilba_tech/wt80_a/rules.mk | 2 +- keyboards/wilba_tech/zeal60/rules.mk | 4 +- keyboards/wilba_tech/zeal65/rules.mk | 4 +- keyboards/xelus/dawn60/rev1/rules.mk | 2 +- keyboards/xelus/dawn60/rev1_qmk/rules.mk | 2 +- keyboards/xiudi/xd84/rules.mk | 2 +- keyboards/xiudi/xd96/rules.mk | 2 +- keyboards/yiancardesigns/barleycorn/rules.mk | 2 +- keyboards/yiancardesigns/gingham/rules.mk | 4 +- keyboards/yiancardesigns/seigaiha/rules.mk | 2 +- keyboards/ymdk/sp64/rules.mk | 2 +- 130 files changed, 284 insertions(+), 249 deletions(-) diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index d08b3751fc..84a0300579 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -151,30 +151,25 @@ ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes) endif OPT_DEFS += -DPOINTING_DEVICE_DRIVER_$(strip $(POINTING_DEVICE_DRIVER)) ifeq ($(strip $(POINTING_DEVICE_DRIVER)), adns9800) - OPT_DEFS += -DSTM32_SPI -DHAL_USE_SPI=TRUE - QUANTUM_LIB_SRC += spi_master.c + SPI_DRIVER_REQUIRED = yes else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), analog_joystick) OPT_DEFS += -DSTM32_ADC -DHAL_USE_ADC=TRUE LIB_SRC += analog.c else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), cirque_pinnacle_i2c) - OPT_DEFS += -DSTM32_I2C -DHAL_USE_I2C=TRUE + I2C_DRIVER_REQUIRED = yes SRC += drivers/sensors/cirque_pinnacle.c SRC += drivers/sensors/cirque_pinnacle_gestures.c SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_gestures.c - QUANTUM_LIB_SRC += i2c_master.c else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), cirque_pinnacle_spi) - OPT_DEFS += -DSTM32_SPI -DHAL_USE_SPI=TRUE + SPI_DRIVER_REQUIRED = yes SRC += drivers/sensors/cirque_pinnacle.c SRC += drivers/sensors/cirque_pinnacle_gestures.c SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_gestures.c - QUANTUM_LIB_SRC += spi_master.c else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), pimoroni_trackball) - OPT_DEFS += -DSTM32_SPI -DHAL_USE_I2C=TRUE - QUANTUM_LIB_SRC += i2c_master.c + I2C_DRIVER_REQUIRED = yes else ifneq ($(filter $(strip $(POINTING_DEVICE_DRIVER)),pmw3360 pmw3389),) - OPT_DEFS += -DSTM32_SPI -DHAL_USE_SPI=TRUE + SPI_DRIVER_REQUIRED = yes SRC += drivers/sensors/pmw33xx_common.c - QUANTUM_LIB_SRC += spi_master.c endif endif endif @@ -204,12 +199,12 @@ else else ifeq ($(strip $(EEPROM_DRIVER)), i2c) # External I2C EEPROM implementation OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_I2C - QUANTUM_LIB_SRC += i2c_master.c + I2C_DRIVER_REQUIRED = yes SRC += eeprom_driver.c eeprom_i2c.c else ifeq ($(strip $(EEPROM_DRIVER)), spi) # External SPI EEPROM implementation OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_SPI - QUANTUM_LIB_SRC += spi_master.c + SPI_DRIVER_REQUIRED = yes SRC += eeprom_driver.c eeprom_spi.c else ifeq ($(strip $(EEPROM_DRIVER)), legacy_stm32_flash) # STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated) @@ -308,10 +303,10 @@ ifneq ($(strip $(FLASH_DRIVER)), none) else OPT_DEFS += -DFLASH_ENABLE ifeq ($(strip $(FLASH_DRIVER)),spi) + SPI_DRIVER_REQUIRED = yes OPT_DEFS += -DFLASH_DRIVER -DFLASH_SPI COMMON_VPATH += $(DRIVER_PATH)/flash SRC += flash_spi.c - QUANTUM_LIB_SRC += spi_master.c endif endif endif @@ -380,80 +375,73 @@ endif CIE1931_CURVE := yes ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3218) - OPT_DEFS += -DHAL_USE_I2C=TRUE + I2C_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3218-simple.c - QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3731) - OPT_DEFS += -DHAL_USE_I2C=TRUE + I2C_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3731-simple.c - QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3733) - OPT_DEFS += -DHAL_USE_I2C=TRUE + I2C_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3733-simple.c - QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3736) - OPT_DEFS += -DHAL_USE_I2C=TRUE + I2C_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3736-simple.c - QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3737) - OPT_DEFS += -DHAL_USE_I2C=TRUE + I2C_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3737-simple.c - QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3741) - OPT_DEFS += -DHAL_USE_I2C=TRUE + I2C_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3741-simple.c - QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3742a) - OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE + OPT_DEFS += -DIS31FLCOMMON + I2C_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c - QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3743a) - OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE + OPT_DEFS += -DIS31FLCOMMON + I2C_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c - QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3745) - OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE + OPT_DEFS += -DIS31FLCOMMON + I2C_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c - QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3746a) - OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE + OPT_DEFS += -DIS31FLCOMMON + I2C_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c - QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(LED_MATRIX_DRIVER)), snled27351) - OPT_DEFS += -DHAL_USE_I2C=TRUE + I2C_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/led SRC += snled27351-simple.c - QUANTUM_LIB_SRC += i2c_master.c endif endif @@ -491,87 +479,79 @@ endif RGB_KEYCODES_ENABLE := yes ifeq ($(strip $(RGB_MATRIX_DRIVER)), aw20216s) - OPT_DEFS += -DHAL_USE_SPI=TRUE + SPI_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/led SRC += aw20216s.c - QUANTUM_LIB_SRC += spi_master.c endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3218) - OPT_DEFS += -DHAL_USE_I2C=TRUE + I2C_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3218.c - QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3731) - OPT_DEFS += -DHAL_USE_I2C=TRUE + I2C_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3731.c - QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3733) - OPT_DEFS += -DHAL_USE_I2C=TRUE + I2C_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3733.c - QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3736) - OPT_DEFS += -DHAL_USE_I2C=TRUE + I2C_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3736.c - QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3737) - OPT_DEFS += -DHAL_USE_I2C=TRUE + I2C_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3737.c - QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3741) - OPT_DEFS += -DHAL_USE_I2C=TRUE + I2C_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3741.c - QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3742a) - OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE + OPT_DEFS += -DIS31FLCOMMON + I2C_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c - QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3743a) - OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE + OPT_DEFS += -DIS31FLCOMMON + I2C_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c - QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3745) - OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE + OPT_DEFS += -DIS31FLCOMMON + I2C_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c - QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3746a) - OPT_DEFS += -DIS31FLCOMMON -DHAL_USE_I2C=TRUE + OPT_DEFS += -DIS31FLCOMMON + I2C_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31flcommon.c - QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), snled27351) - OPT_DEFS += -DHAL_USE_I2C=TRUE + I2C_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/led SRC += snled27351.c - QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), ws2812) @@ -638,35 +618,6 @@ ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) endif endif -VALID_WS2812_DRIVER_TYPES := bitbang custom i2c pwm spi vendor - -WS2812_DRIVER ?= bitbang -ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes) - ifeq ($(filter $(WS2812_DRIVER),$(VALID_WS2812_DRIVER_TYPES)),) - $(call CATASTROPHIC_ERROR,Invalid WS2812_DRIVER,WS2812_DRIVER="$(WS2812_DRIVER)" is not a valid WS2812 driver) - endif - - OPT_DEFS += -DWS2812_$(strip $(shell echo $(WS2812_DRIVER) | tr '[:lower:]' '[:upper:]')) - - SRC += ws2812_$(strip $(WS2812_DRIVER)).c - - ifeq ($(strip $(PLATFORM)), CHIBIOS) - ifeq ($(strip $(WS2812_DRIVER)), pwm) - OPT_DEFS += -DSTM32_DMA_REQUIRED=TRUE - endif - endif - - # add extra deps - ifeq ($(strip $(WS2812_DRIVER)), i2c) - QUANTUM_LIB_SRC += i2c_master.c - endif -endif - -ifeq ($(strip $(APA102_DRIVER_REQUIRED)), yes) - COMMON_VPATH += $(DRIVER_PATH)/led - SRC += apa102.c -endif - ifeq ($(strip $(CIE1931_CURVE)), yes) OPT_DEFS += -DUSE_CIE1931_CURVE LED_TABLES := yes @@ -787,8 +738,8 @@ ifeq ($(strip $(HAPTIC_ENABLE)),yes) COMMON_VPATH += $(DRIVER_PATH)/haptic ifeq ($(strip $(HAPTIC_DRIVER)), drv2605l) + I2C_DRIVER_REQUIRED = yes SRC += drv2605l.c - QUANTUM_LIB_SRC += i2c_master.c endif ifeq ($(strip $(HAPTIC_DRIVER)), solenoid) @@ -823,10 +774,10 @@ ifeq ($(strip $(OLED_ENABLE)), yes) OPT_DEFS += -DOLED_TRANSPORT_$(strip $(shell echo $(OLED_TRANSPORT) | tr '[:lower:]' '[:upper:]')) ifeq ($(strip $(OLED_TRANSPORT)), i2c) - QUANTUM_LIB_SRC += i2c_master.c + I2C_DRIVER_REQUIRED = yes endif ifeq ($(strip $(OLED_TRANSPORT)), spi) - QUANTUM_LIB_SRC += spi_master.c + SPI_DRIVER_REQUIRED = yes endif endif endif @@ -834,9 +785,9 @@ endif ifeq ($(strip $(ST7565_ENABLE)), yes) OPT_DEFS += -DST7565_ENABLE + SPI_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/oled # For glcdfont.h COMMON_VPATH += $(DRIVER_PATH)/lcd - QUANTUM_LIB_SRC += spi_master.c SRC += st7565.c endif @@ -974,18 +925,16 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) SRC += outputselect.c ifeq ($(strip $(BLUETOOTH_DRIVER)), bluefruit_le) - OPT_DEFS += -DHAL_USE_SPI=TRUE + SPI_DRIVER_REQUIRED = yes SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c SRC += $(DRIVER_PATH)/bluetooth/bluefruit_le.cpp QUANTUM_LIB_SRC += analog.c - QUANTUM_LIB_SRC += spi_master.c endif ifeq ($(strip $(BLUETOOTH_DRIVER)), rn42) - OPT_DEFS += -DHAL_USE_SERIAL=TRUE + UART_DRIVER_REQUIRED = yes SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c SRC += $(DRIVER_PATH)/bluetooth/rn42.c - QUANTUM_LIB_SRC += uart.c endif endif @@ -1004,3 +953,47 @@ ifeq ($(strip $(OS_DETECTION_ENABLE)), yes) OPT_DEFS += -DOS_DETECTION_DEBUG_ENABLE endif endif + +VALID_WS2812_DRIVER_TYPES := bitbang custom i2c pwm spi vendor + +WS2812_DRIVER ?= bitbang +ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes) + ifeq ($(filter $(WS2812_DRIVER),$(VALID_WS2812_DRIVER_TYPES)),) + $(call CATASTROPHIC_ERROR,Invalid WS2812_DRIVER,WS2812_DRIVER="$(WS2812_DRIVER)" is not a valid WS2812 driver) + endif + + OPT_DEFS += -DWS2812_$(strip $(shell echo $(WS2812_DRIVER) | tr '[:lower:]' '[:upper:]')) + + SRC += ws2812_$(strip $(WS2812_DRIVER)).c + + ifeq ($(strip $(PLATFORM)), CHIBIOS) + ifeq ($(strip $(WS2812_DRIVER)), pwm) + OPT_DEFS += -DSTM32_DMA_REQUIRED=TRUE + endif + endif + + # add extra deps + ifeq ($(strip $(WS2812_DRIVER)), i2c) + I2C_DRIVER_REQUIRED = yes + endif +endif + +ifeq ($(strip $(APA102_DRIVER_REQUIRED)), yes) + COMMON_VPATH += $(DRIVER_PATH)/led + SRC += apa102.c +endif + +ifeq ($(strip $(I2C_DRIVER_REQUIRED)), yes) + OPT_DEFS += -DHAL_USE_I2C=TRUE + QUANTUM_LIB_SRC += i2c_master.c +endif + +ifeq ($(strip $(SPI_DRIVER_REQUIRED)), yes) + OPT_DEFS += -DHAL_USE_SPI=TRUE + QUANTUM_LIB_SRC += spi_master.c +endif + +ifeq ($(strip $(UART_DRIVER_REQUIRED)), yes) + OPT_DEFS += -DHAL_USE_SERIAL=TRUE + QUANTUM_LIB_SRC += uart.c +endif diff --git a/docs/i2c_driver.md b/docs/i2c_driver.md index 92b666b5e3..faff0a1d7b 100644 --- a/docs/i2c_driver.md +++ b/docs/i2c_driver.md @@ -2,6 +2,18 @@ The I2C Master drivers used in QMK have a set of common functions to allow portability between MCUs. +## Usage :id=usage + +In most cases, the I2C Master driver code is automatically included if you are using a feature or driver which requires it, such as [OLED](feature_oled_driver.md). + +However, if you need to use the driver standalone, add the following to your `rules.mk`: + +```make +I2C_DRIVER_REQUIRED = yes +``` + +You can then call the I2C API by including `i2c_master.h` in your code. + ## I2C Addressing :id=note-on-i2c-addresses All of the addresses expected by this driver should be pushed to the upper 7 bits of the address byte. Setting diff --git a/docs/spi_driver.md b/docs/spi_driver.md index 1faa9f0773..569a19f1db 100644 --- a/docs/spi_driver.md +++ b/docs/spi_driver.md @@ -2,6 +2,18 @@ The SPI Master drivers used in QMK have a set of common functions to allow portability between MCUs. +## Usage :id=usage + +In most cases, the SPI Master driver code is automatically included if you are using a feature or driver which requires it, such as [OLED](feature_oled_driver.md). + +However, if you need to use the driver standalone, add the following to your `rules.mk`: + +```make +SPI_DRIVER_REQUIRED = yes +``` + +You can then call the SPI API by including `spi_master.h` in your code. + ## AVR Configuration :id=avr-configuration No special setup is required - just connect the `SS`, `SCK`, `MOSI` and `MISO` pins of your SPI devices to the matching pins on the MCU: diff --git a/docs/uart_driver.md b/docs/uart_driver.md index a44f2c28d9..a88278d543 100644 --- a/docs/uart_driver.md +++ b/docs/uart_driver.md @@ -4,6 +4,18 @@ The UART drivers used in QMK have a set of common functions to allow portability Currently, this driver does not support enabling hardware flow control (the `RTS` and `CTS` pins) if available, but may do so in future. +## Usage :id=usage + +In most cases, the UART driver code is automatically included if you are using a feature or driver which requires it. + +However, if you need to use the driver standalone, add the following to your `rules.mk`: + +```make +UART_DRIVER_REQUIRED = yes +``` + +You can then call the UART API by including `uart.h` in your code. + ## AVR Configuration :id=avr-configuration No special setup is required - just connect the `RX` and `TX` pins of your UART device to the opposite pins on the MCU: diff --git a/keyboards/3w6/rev1/rules.mk b/keyboards/3w6/rev1/rules.mk index 2194870d6b..b7988ce4f5 100644 --- a/keyboards/3w6/rev1/rules.mk +++ b/keyboards/3w6/rev1/rules.mk @@ -16,4 +16,4 @@ NO_USB_STARTUP_CHECK = yes LTO_ENABLE = no SRC += matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/3w6/rev2/rules.mk b/keyboards/3w6/rev2/rules.mk index 2194870d6b..b7988ce4f5 100644 --- a/keyboards/3w6/rev2/rules.mk +++ b/keyboards/3w6/rev2/rules.mk @@ -16,4 +16,4 @@ NO_USB_STARTUP_CHECK = yes LTO_ENABLE = no SRC += matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/40percentclub/ut47/rules.mk b/keyboards/40percentclub/ut47/rules.mk index 3b1b719e14..6ba6aa5f6f 100644 --- a/keyboards/40percentclub/ut47/rules.mk +++ b/keyboards/40percentclub/ut47/rules.mk @@ -13,4 +13,4 @@ AUDIO_ENABLE = no # Audio output # custom matrix setup CUSTOM_MATRIX = yes SRC += matrix.c -QUANTUM_LIB_SRC += uart.c +UART_DRIVER_REQUIRED = yes diff --git a/keyboards/aeboards/satellite/rev1/rules.mk b/keyboards/aeboards/satellite/rev1/rules.mk index 1a4657b08c..f95b0f015d 100644 --- a/keyboards/aeboards/satellite/rev1/rules.mk +++ b/keyboards/aeboards/satellite/rev1/rules.mk @@ -18,4 +18,4 @@ COMMON_VPATH += $(DRIVER_PATH)/issi # project specific files SRC += drivers/led/issi/is31fl3731.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/anavi/knob1/rules.mk b/keyboards/anavi/knob1/rules.mk index 0e5631b02b..dd68e9d3b0 100644 --- a/keyboards/anavi/knob1/rules.mk +++ b/keyboards/anavi/knob1/rules.mk @@ -1,3 +1 @@ OLED_ENABLE = yes - -OPT_DEFS += -DHAL_USE_I2C=TRUE diff --git a/keyboards/anavi/knobs3/rules.mk b/keyboards/anavi/knobs3/rules.mk index 0e5631b02b..dd68e9d3b0 100644 --- a/keyboards/anavi/knobs3/rules.mk +++ b/keyboards/anavi/knobs3/rules.mk @@ -1,3 +1 @@ OLED_ENABLE = yes - -OPT_DEFS += -DHAL_USE_I2C=TRUE diff --git a/keyboards/bajjak/rules.mk b/keyboards/bajjak/rules.mk index 13148ecb04..21db4112e0 100644 --- a/keyboards/bajjak/rules.mk +++ b/keyboards/bajjak/rules.mk @@ -26,4 +26,4 @@ AUDIO_SUPPORTED = no # project specific files SRC += matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/barleycorn_smd/rules.mk b/keyboards/barleycorn_smd/rules.mk index 173368a047..69ecebae2a 100644 --- a/keyboards/barleycorn_smd/rules.mk +++ b/keyboards/barleycorn_smd/rules.mk @@ -14,4 +14,4 @@ AUDIO_ENABLE = no # Audio output CUSTOM_MATRIX = lite SRC += matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/bioi/g60/rules.mk b/keyboards/bioi/g60/rules.mk index f4532628ae..375cb52732 100644 --- a/keyboards/bioi/g60/rules.mk +++ b/keyboards/bioi/g60/rules.mk @@ -18,5 +18,5 @@ BLUETOOTH_ENABLE = yes VIA_ENABLE = yes # VIA support should be enabled here due to the main() loop will be compiled first. -QUANTUM_LIB_SRC += uart.c +UART_DRIVER_REQUIRED = yes SRC += bluetooth_custom.c diff --git a/keyboards/bioi/g60ble/rules.mk b/keyboards/bioi/g60ble/rules.mk index 2e79ce77a5..6bfcc62d7e 100644 --- a/keyboards/bioi/g60ble/rules.mk +++ b/keyboards/bioi/g60ble/rules.mk @@ -15,5 +15,5 @@ LTO_ENABLE = yes BLUETOOTH_ENABLE = yes -QUANTUM_LIB_SRC += uart.c +UART_DRIVER_REQUIRED = yes SRC += bluetooth_custom.c diff --git a/keyboards/bioi/morgan65/rules.mk b/keyboards/bioi/morgan65/rules.mk index f4532628ae..375cb52732 100644 --- a/keyboards/bioi/morgan65/rules.mk +++ b/keyboards/bioi/morgan65/rules.mk @@ -18,5 +18,5 @@ BLUETOOTH_ENABLE = yes VIA_ENABLE = yes # VIA support should be enabled here due to the main() loop will be compiled first. -QUANTUM_LIB_SRC += uart.c +UART_DRIVER_REQUIRED = yes SRC += bluetooth_custom.c diff --git a/keyboards/centromere/rules.mk b/keyboards/centromere/rules.mk index 2171d801e5..26081e4132 100644 --- a/keyboards/centromere/rules.mk +++ b/keyboards/centromere/rules.mk @@ -18,4 +18,4 @@ CUSTOM_MATRIX = lite # project specific files SRC += matrix.c -QUANTUM_LIB_SRC += uart.c +UART_DRIVER_REQUIRED = yes diff --git a/keyboards/clueboard/2x1800/2021/rules.mk b/keyboards/clueboard/2x1800/2021/rules.mk index e9f44d7bd2..19c7eb2946 100644 --- a/keyboards/clueboard/2x1800/2021/rules.mk +++ b/keyboards/clueboard/2x1800/2021/rules.mk @@ -1 +1,2 @@ -QUANTUM_LIB_SRC += max7219.c spi_master.c +SPI_DRIVER_REQUIRED = yes +QUANTUM_LIB_SRC += max7219.c diff --git a/keyboards/converter/palm_usb/rules.mk b/keyboards/converter/palm_usb/rules.mk index e02b683d3b..72d9daf6d9 100644 --- a/keyboards/converter/palm_usb/rules.mk +++ b/keyboards/converter/palm_usb/rules.mk @@ -14,6 +14,6 @@ RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. CUSTOM_MATRIX = yes SRC += matrix.c -QUANTUM_LIB_SRC += uart.c +UART_DRIVER_REQUIRED = yes DEFAULT_FOLDER = converter/palm_usb/stowaway diff --git a/keyboards/converter/sun_usb/rules.mk b/keyboards/converter/sun_usb/rules.mk index ee54c6cf11..ae20f51b37 100644 --- a/keyboards/converter/sun_usb/rules.mk +++ b/keyboards/converter/sun_usb/rules.mk @@ -14,6 +14,6 @@ RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. CUSTOM_MATRIX = yes SRC += matrix.c led.c -QUANTUM_LIB_SRC += uart.c +UART_DRIVER_REQUIRED = yes DEFAULT_FOLDER = converter/sun_usb/type5 diff --git a/keyboards/dc01/left/rules.mk b/keyboards/dc01/left/rules.mk index 72485a3dd6..3a9422733c 100644 --- a/keyboards/dc01/left/rules.mk +++ b/keyboards/dc01/left/rules.mk @@ -11,5 +11,5 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output CUSTOM_MATRIX = yes # Use custom matrix -SRC += matrix.c \ - i2c_master.c +SRC += matrix.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/dichotomy/rules.mk b/keyboards/dichotomy/rules.mk index 040710a460..bfa5252a03 100755 --- a/keyboards/dichotomy/rules.mk +++ b/keyboards/dichotomy/rules.mk @@ -14,4 +14,4 @@ NKRO_ENABLE = yes # Enable N-Key Rollover # # project specific files SRC += matrix.c -QUANTUM_LIB_SRC += uart.c +UART_DRIVER_REQUIRED = yes diff --git a/keyboards/ergodox_ez/rules.mk b/keyboards/ergodox_ez/rules.mk index dc72f6385c..bba3bd86ae 100644 --- a/keyboards/ergodox_ez/rules.mk +++ b/keyboards/ergodox_ez/rules.mk @@ -21,7 +21,7 @@ RGB_MATRIX_ENABLE = no # enable later # project specific files SRC += matrix.c \ led_i2c.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes # Disable unsupported hardware AUDIO_SUPPORTED = no diff --git a/keyboards/ergodox_stm32/rules.mk b/keyboards/ergodox_stm32/rules.mk index 5b86324f9a..5481eef1a2 100644 --- a/keyboards/ergodox_stm32/rules.mk +++ b/keyboards/ergodox_stm32/rules.mk @@ -16,4 +16,4 @@ CUSTOM_MATRIX = yes # Custom matrix file UNICODE_ENABLE = yes # Unicode SRC += matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/fallacy/rules.mk b/keyboards/fallacy/rules.mk index 704204983c..7fa230bae2 100755 --- a/keyboards/fallacy/rules.mk +++ b/keyboards/fallacy/rules.mk @@ -14,4 +14,4 @@ AUDIO_ENABLE = no # Audio output # project specific files SRC += indicators.c \ drivers/led/issi/is31fl3731-simple.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/fc660c/rules.mk b/keyboards/fc660c/rules.mk index 52f4ce803d..03a674d668 100644 --- a/keyboards/fc660c/rules.mk +++ b/keyboards/fc660c/rules.mk @@ -11,7 +11,7 @@ NKRO_ENABLE = yes # Enable N-Key Rollover # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes CUSTOM_MATRIX = yes SRC += matrix.c ad5258.c diff --git a/keyboards/fc980c/rules.mk b/keyboards/fc980c/rules.mk index 52f4ce803d..03a674d668 100644 --- a/keyboards/fc980c/rules.mk +++ b/keyboards/fc980c/rules.mk @@ -11,7 +11,7 @@ NKRO_ENABLE = yes # Enable N-Key Rollover # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes CUSTOM_MATRIX = yes SRC += matrix.c ad5258.c diff --git a/keyboards/ferris/0_1/rules.mk b/keyboards/ferris/0_1/rules.mk index 487375928e..f971aa9a48 100644 --- a/keyboards/ferris/0_1/rules.mk +++ b/keyboards/ferris/0_1/rules.mk @@ -16,4 +16,4 @@ NO_USB_STARTUP_CHECK = yes LTO_ENABLE = yes SRC += matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/ferris/0_2/rules.mk b/keyboards/ferris/0_2/rules.mk index f3760b7b62..6f67e3dece 100644 --- a/keyboards/ferris/0_2/rules.mk +++ b/keyboards/ferris/0_2/rules.mk @@ -16,6 +16,6 @@ NO_USB_STARTUP_CHECK = yes LTO_ENABLE = no SRC += matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes DEFAULT_FOLDER = ferris/0_2/base diff --git a/keyboards/frobiac/blackbowl/rules.mk b/keyboards/frobiac/blackbowl/rules.mk index 6004c37f9e..4e81c7280c 100644 --- a/keyboards/frobiac/blackbowl/rules.mk +++ b/keyboards/frobiac/blackbowl/rules.mk @@ -1,7 +1,7 @@ CUSTOM_MATRIX = lite # project specific files -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes SRC += matrix.c PS2_MOUSE_ENABLE = yes diff --git a/keyboards/gboards/ergotaco/rules.mk b/keyboards/gboards/ergotaco/rules.mk index 2df8900c2d..6fbefbd22d 100644 --- a/keyboards/gboards/ergotaco/rules.mk +++ b/keyboards/gboards/ergotaco/rules.mk @@ -7,4 +7,5 @@ COMMAND_ENABLE = yes # know what you're doing. # # No touchy, capiche? -SRC += matrix.c i2c_master.c +SRC += matrix.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/gboards/georgi/rules.mk b/keyboards/gboards/georgi/rules.mk index 5980342669..5b63e269fa 100644 --- a/keyboards/gboards/georgi/rules.mk +++ b/keyboards/gboards/georgi/rules.mk @@ -14,4 +14,5 @@ CUSTOM_MATRIX = yes STENO_ENABLE = yes LTO_ENABLE = yes -SRC += matrix.c i2c_master.c +SRC += matrix.c +I2C_DRIVER_REQUIRED = yes \ No newline at end of file diff --git a/keyboards/gboards/gergo/keymaps/colemak/rules.mk b/keyboards/gboards/gergo/keymaps/colemak/rules.mk index 3b81fdfa1b..db8d965292 100644 --- a/keyboards/gboards/gergo/keymaps/colemak/rules.mk +++ b/keyboards/gboards/gergo/keymaps/colemak/rules.mk @@ -18,7 +18,8 @@ DEBUG_MATRIX = no # know what you're doing. # # No touchy, capiche? -SRC += matrix.c i2c_master.c +SRC += matrix.c +I2C_DRIVER_REQUIRED = yes ifneq ($(strip $(BALLSTEP)),) OPT_DEFS += -DTRKSTEP=$(strip $(BALLSTEP)) endif diff --git a/keyboards/gboards/gergo/keymaps/default/rules.mk b/keyboards/gboards/gergo/keymaps/default/rules.mk index bc2b3cf43b..6f203da1bd 100644 --- a/keyboards/gboards/gergo/keymaps/default/rules.mk +++ b/keyboards/gboards/gergo/keymaps/default/rules.mk @@ -18,7 +18,8 @@ DEBUG_MATRIX = yes # know what you're doing. # # No touchy, capiche? -SRC += matrix.c i2c_master.c +SRC += matrix.c +I2C_DRIVER_REQUIRED = yes ifneq ($(strip $(BALLSTEP)),) OPT_DEFS += -DTRKSTEP=$(strip $(BALLSTEP)) endif diff --git a/keyboards/gboards/gergo/keymaps/germ/rules.mk b/keyboards/gboards/gergo/keymaps/germ/rules.mk index 0fd941bb53..c100f8ab64 100644 --- a/keyboards/gboards/gergo/keymaps/germ/rules.mk +++ b/keyboards/gboards/gergo/keymaps/germ/rules.mk @@ -18,7 +18,8 @@ DEBUG_MATRIX = no # know what you're doing. # # No touchy, capiche? -SRC += matrix.c i2c_master.c +SRC += matrix.c +I2C_DRIVER_REQUIRED = yes ifneq ($(strip $(BALLSTEP)),) OPT_DEFS += -DTRKSTEP=$(strip $(BALLSTEP)) endif diff --git a/keyboards/gboards/gergo/keymaps/gotham/rules.mk b/keyboards/gboards/gergo/keymaps/gotham/rules.mk index bc2b3cf43b..6f203da1bd 100644 --- a/keyboards/gboards/gergo/keymaps/gotham/rules.mk +++ b/keyboards/gboards/gergo/keymaps/gotham/rules.mk @@ -18,7 +18,8 @@ DEBUG_MATRIX = yes # know what you're doing. # # No touchy, capiche? -SRC += matrix.c i2c_master.c +SRC += matrix.c +I2C_DRIVER_REQUIRED = yes ifneq ($(strip $(BALLSTEP)),) OPT_DEFS += -DTRKSTEP=$(strip $(BALLSTEP)) endif diff --git a/keyboards/gboards/gergo/rules.mk b/keyboards/gboards/gergo/rules.mk index 195915e431..d789b349da 100644 --- a/keyboards/gboards/gergo/rules.mk +++ b/keyboards/gboards/gergo/rules.mk @@ -8,4 +8,4 @@ COMMAND_ENABLE = yes BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite SRC += matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/gboards/gergoplex/rules.mk b/keyboards/gboards/gergoplex/rules.mk index adf5cfd2e7..9846c64771 100644 --- a/keyboards/gboards/gergoplex/rules.mk +++ b/keyboards/gboards/gergoplex/rules.mk @@ -13,4 +13,4 @@ AUDIO_ENABLE = no # Audio output CUSTOM_MATRIX = yes SRC += matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/geistmaschine/macropod/rules.mk b/keyboards/geistmaschine/macropod/rules.mk index cf2b38601e..53d35b5bc6 100644 --- a/keyboards/geistmaschine/macropod/rules.mk +++ b/keyboards/geistmaschine/macropod/rules.mk @@ -2,4 +2,4 @@ CUSTOM_MATRIX = lite VPATH += drivers/gpio SRC += pca9555.c matrix.c -QUANTUM_LIB_SRC += i2c_master.c \ No newline at end of file +I2C_DRIVER_REQUIRED = yes \ No newline at end of file diff --git a/keyboards/glenpickle/chimera_ergo/rules.mk b/keyboards/glenpickle/chimera_ergo/rules.mk index 32eca4db31..f543b5fd9a 100644 --- a/keyboards/glenpickle/chimera_ergo/rules.mk +++ b/keyboards/glenpickle/chimera_ergo/rules.mk @@ -14,4 +14,4 @@ CUSTOM_MATRIX = lite # project specific files SRC += matrix.c -QUANTUM_LIB_SRC += uart.c +UART_DRIVER_REQUIRED = yes diff --git a/keyboards/glenpickle/chimera_ls/rules.mk b/keyboards/glenpickle/chimera_ls/rules.mk index 1ee3fc58f9..706d610653 100644 --- a/keyboards/glenpickle/chimera_ls/rules.mk +++ b/keyboards/glenpickle/chimera_ls/rules.mk @@ -14,7 +14,7 @@ CUSTOM_MATRIX = lite # project specific files SRC += matrix.c -QUANTUM_LIB_SRC += uart.c +UART_DRIVER_REQUIRED = yes # Disable unsupported hardware RGBLIGHT_SUPPORTED = no diff --git a/keyboards/glenpickle/chimera_ortho/rules.mk b/keyboards/glenpickle/chimera_ortho/rules.mk index 32eca4db31..f543b5fd9a 100644 --- a/keyboards/glenpickle/chimera_ortho/rules.mk +++ b/keyboards/glenpickle/chimera_ortho/rules.mk @@ -14,4 +14,4 @@ CUSTOM_MATRIX = lite # project specific files SRC += matrix.c -QUANTUM_LIB_SRC += uart.c +UART_DRIVER_REQUIRED = yes diff --git a/keyboards/glenpickle/chimera_ortho_plus/rules.mk b/keyboards/glenpickle/chimera_ortho_plus/rules.mk index 6b1876f87c..539a2d1004 100644 --- a/keyboards/glenpickle/chimera_ortho_plus/rules.mk +++ b/keyboards/glenpickle/chimera_ortho_plus/rules.mk @@ -15,4 +15,4 @@ CUSTOM_MATRIX = lite # project specific files SRC += matrix.c -QUANTUM_LIB_SRC += uart.c +UART_DRIVER_REQUIRED = yes diff --git a/keyboards/handwired/dactyl/rules.mk b/keyboards/handwired/dactyl/rules.mk index 830812f79a..bffd901b04 100644 --- a/keyboards/handwired/dactyl/rules.mk +++ b/keyboards/handwired/dactyl/rules.mk @@ -14,5 +14,5 @@ SWAP_HANDS_ENABLE = yes # Allow swapping hands of keyboard RGBLIGHT_ENABLE = no # project specific files -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes SRC += matrix.c diff --git a/keyboards/handwired/dqz11n1g/rules.mk b/keyboards/handwired/dqz11n1g/rules.mk index 23f6b89cc2..220e353ab7 100644 --- a/keyboards/handwired/dqz11n1g/rules.mk +++ b/keyboards/handwired/dqz11n1g/rules.mk @@ -1,7 +1,7 @@ # Keyboard matrix uses shift-registers read via SPI CUSTOM_MATRIX = lite SRC += matrix.c -QUANTUM_LIB_SRC += spi_master.c +SPI_DRIVER_REQUIRED = yes # Build Options # change yes to no to disable diff --git a/keyboards/handwired/dygma/raise/rules.mk b/keyboards/handwired/dygma/raise/rules.mk index 761e075500..ecf156629a 100644 --- a/keyboards/handwired/dygma/raise/rules.mk +++ b/keyboards/handwired/dygma/raise/rules.mk @@ -19,7 +19,7 @@ CUSTOM_MATRIX = lite # alternate usb endpoints. RAW_ENABLE = yes -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes SRC += matrix.c DEFAULT_FOLDER = handwired/dygma/raise/ansi diff --git a/keyboards/handwired/frenchdev/rules.mk b/keyboards/handwired/frenchdev/rules.mk index c310966f1d..e226d0b517 100644 --- a/keyboards/handwired/frenchdev/rules.mk +++ b/keyboards/handwired/frenchdev/rules.mk @@ -13,5 +13,5 @@ AUDIO_ENABLE = no # Audio output RGBLIGHT_ENABLE = no # project specific files -SRC = i2c_master.c \ - matrix.c +SRC = matrix.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/handwired/lagrange/rules.mk b/keyboards/handwired/lagrange/rules.mk index 61bfdfa4d3..f4af87851c 100644 --- a/keyboards/handwired/lagrange/rules.mk +++ b/keyboards/handwired/lagrange/rules.mk @@ -14,4 +14,5 @@ UNICODE_ENABLE = yes SPLIT_KEYBOARD = yes SPLIT_TRANSPORT = custom -SRC += transport.c spi_master.c +SRC += transport.c +SPI_DRIVER_REQUIRED = yes diff --git a/keyboards/handwired/onekey/kb2040/rules.mk b/keyboards/handwired/onekey/kb2040/rules.mk index 0e5631b02b..dd68e9d3b0 100644 --- a/keyboards/handwired/onekey/kb2040/rules.mk +++ b/keyboards/handwired/onekey/kb2040/rules.mk @@ -1,3 +1 @@ OLED_ENABLE = yes - -OPT_DEFS += -DHAL_USE_I2C=TRUE diff --git a/keyboards/handwired/onekey/keymaps/i2c_scanner/rules.mk b/keyboards/handwired/onekey/keymaps/i2c_scanner/rules.mk index 04498a8831..3dec5cef29 100644 --- a/keyboards/handwired/onekey/keymaps/i2c_scanner/rules.mk +++ b/keyboards/handwired/onekey/keymaps/i2c_scanner/rules.mk @@ -1,3 +1,3 @@ CONSOLE_ENABLE = yes -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/handwired/pterodactyl/rules.mk b/keyboards/handwired/pterodactyl/rules.mk index 9f0cabc750..108e1498a8 100644 --- a/keyboards/handwired/pterodactyl/rules.mk +++ b/keyboards/handwired/pterodactyl/rules.mk @@ -18,4 +18,4 @@ CUSTOM_MATRIX = yes BLUETOOTH_ENABLE = yes SRC += matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/hazel/bad_wings/rules.mk b/keyboards/hazel/bad_wings/rules.mk index 1001af0186..47a188155f 100644 --- a/keyboards/hazel/bad_wings/rules.mk +++ b/keyboards/hazel/bad_wings/rules.mk @@ -3,7 +3,7 @@ CAPS_WORD_ENABLE = yes SRC += matrix.c -QUANTUM_LIB_SRC += spi_master.c +SPI_DRIVER_REQUIRED = yes CUSTOM_MATRIX = lite POINTING_DEVICE_DRIVER = cirque_pinnacle_spi diff --git a/keyboards/hotdox/rules.mk b/keyboards/hotdox/rules.mk index 1088cbc14b..8e11eeabe0 100644 --- a/keyboards/hotdox/rules.mk +++ b/keyboards/hotdox/rules.mk @@ -15,5 +15,5 @@ RGBLIGHT_ENABLE = no # project specific files SRC = matrix.c \ - i2c_master.c \ left.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/hs60/v2/ansi/rules.mk b/keyboards/hs60/v2/ansi/rules.mk index a231765dff..bc8cb00131 100644 --- a/keyboards/hs60/v2/ansi/rules.mk +++ b/keyboards/hs60/v2/ansi/rules.mk @@ -22,5 +22,5 @@ CIE1931_CURVE = yes SRC = keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ drivers/led/issi/is31fl3733.c \ - quantum/color.c \ - i2c_master.c + quantum/color.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/hs60/v2/hhkb/rules.mk b/keyboards/hs60/v2/hhkb/rules.mk index a231765dff..bc8cb00131 100644 --- a/keyboards/hs60/v2/hhkb/rules.mk +++ b/keyboards/hs60/v2/hhkb/rules.mk @@ -22,5 +22,5 @@ CIE1931_CURVE = yes SRC = keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ drivers/led/issi/is31fl3733.c \ - quantum/color.c \ - i2c_master.c + quantum/color.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/hs60/v2/iso/rules.mk b/keyboards/hs60/v2/iso/rules.mk index a231765dff..bc8cb00131 100644 --- a/keyboards/hs60/v2/iso/rules.mk +++ b/keyboards/hs60/v2/iso/rules.mk @@ -22,5 +22,5 @@ CIE1931_CURVE = yes SRC = keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ drivers/led/issi/is31fl3733.c \ - quantum/color.c \ - i2c_master.c + quantum/color.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/ibm/model_m/mschwingen/rules.mk b/keyboards/ibm/model_m/mschwingen/rules.mk index 5ccab87d9b..7d81ffe326 100644 --- a/keyboards/ibm/model_m/mschwingen/rules.mk +++ b/keyboards/ibm/model_m/mschwingen/rules.mk @@ -19,8 +19,8 @@ DYNAMIC_MACRO_ENABLE = yes UART_DEBUG = no SRC += matrix.c -QUANTUM_LIB_SRC += uart.c \ - spi_master.c +UART_DRIVER_REQUIRED = yes +SPI_DRIVER_REQUIRED = yes OPT_DEFS += -DSLEEP_LED_ENABLE # we need our own sleep callbacks to turn of WS2812 LEDs diff --git a/keyboards/ingrained/rules.mk b/keyboards/ingrained/rules.mk index 8dd9805257..e9a8002f90 100644 --- a/keyboards/ingrained/rules.mk +++ b/keyboards/ingrained/rules.mk @@ -16,4 +16,4 @@ NO_USB_STARTUP_CHECK = yes LTO_ENABLE = yes SRC += matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/kagizaraya/chidori/rules.mk b/keyboards/kagizaraya/chidori/rules.mk index cbec27a8cb..f94317cf22 100644 --- a/keyboards/kagizaraya/chidori/rules.mk +++ b/keyboards/kagizaraya/chidori/rules.mk @@ -16,4 +16,4 @@ CUSTOM_MATRIX = lite # project specific files SRC += matrix.c SRC += board.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/keebwerk/mega/ansi/rules.mk b/keyboards/keebwerk/mega/ansi/rules.mk index 5546dc18d4..e257f3063f 100755 --- a/keyboards/keebwerk/mega/ansi/rules.mk +++ b/keyboards/keebwerk/mega/ansi/rules.mk @@ -24,4 +24,4 @@ SRC += keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ drivers/led/issi/is31fl3733.c \ quantum/color.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/keyboardio/model01/rules.mk b/keyboards/keyboardio/model01/rules.mk index e653ec5f73..29e1f4fea8 100644 --- a/keyboards/keyboardio/model01/rules.mk +++ b/keyboards/keyboardio/model01/rules.mk @@ -9,7 +9,7 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = no # Enable N-Key Rollover CUSTOM_MATRIX = yes -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes SRC += leds.c \ matrix.c diff --git a/keyboards/keyhive/honeycomb/rules.mk b/keyboards/keyhive/honeycomb/rules.mk index 040710a460..bfa5252a03 100755 --- a/keyboards/keyhive/honeycomb/rules.mk +++ b/keyboards/keyhive/honeycomb/rules.mk @@ -14,4 +14,4 @@ NKRO_ENABLE = yes # Enable N-Key Rollover # # project specific files SRC += matrix.c -QUANTUM_LIB_SRC += uart.c +UART_DRIVER_REQUIRED = yes diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/rules.mk b/keyboards/kprepublic/bm60hsrgb/rev2/rules.mk index 534a21dbf3..805593ed5b 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/rules.mk +++ b/keyboards/kprepublic/bm60hsrgb/rev2/rules.mk @@ -17,4 +17,4 @@ WS2812_DRIVER_REQUIRED = yes COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3733.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rules.mk b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rules.mk index b6b9ff1110..d84cbc0bf1 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rules.mk +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rules.mk @@ -20,5 +20,5 @@ RGB_MATRIX_ENABLE = yes # here manually. COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3733.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes WS2812_DRIVER_REQUIRED = yes diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rules.mk b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rules.mk index 5db18e7cfa..92b33edc1f 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rules.mk +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rules.mk @@ -19,5 +19,5 @@ RGB_MATRIX_ENABLE = yes # here manually. COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3733.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes WS2812_DRIVER_REQUIRED = yes diff --git a/keyboards/ktec/ergodone/rules.mk b/keyboards/ktec/ergodone/rules.mk index 3ec1a7cf43..d9b0148499 100644 --- a/keyboards/ktec/ergodone/rules.mk +++ b/keyboards/ktec/ergodone/rules.mk @@ -3,4 +3,4 @@ CUSTOM_MATRIX = lite VPATH += drivers/gpio SRC += mcp23018.c matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/matrix/abelx/rules.mk b/keyboards/matrix/abelx/rules.mk index 7a5d01e5cb..1c2fc05ffe 100644 --- a/keyboards/matrix/abelx/rules.mk +++ b/keyboards/matrix/abelx/rules.mk @@ -45,4 +45,4 @@ NO_USB_STARTUP_CHECK = yes # Disable initialization only when usb is plugged in CUSTOM_MATRIX = lite # project specific files SRC += matrix.c tca6424.c aw9523b.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/matrix/m20add/rules.mk b/keyboards/matrix/m20add/rules.mk index 86bd6b9371..1b005b8c17 100644 --- a/keyboards/matrix/m20add/rules.mk +++ b/keyboards/matrix/m20add/rules.mk @@ -29,4 +29,4 @@ RGBLIGHT_ENABLE = yes CUSTOM_MATRIX = lite # project specific files SRC += matrix.c tca6424.c rgb_ring.c drivers/led/issi/is31fl3731.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/mechwild/sugarglider/rules.mk b/keyboards/mechwild/sugarglider/rules.mk index 9cfa6b7797..6fd0836a73 100644 --- a/keyboards/mechwild/sugarglider/rules.mk +++ b/keyboards/mechwild/sugarglider/rules.mk @@ -13,7 +13,7 @@ CUSTOM_MATRIX = lite VPATH += drivers/gpio SRC += mcp23018.c matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes DEFAULT_FOLDER = mechwild/sugarglider/wide_oled diff --git a/keyboards/mitosis/rules.mk b/keyboards/mitosis/rules.mk index 6b1876f87c..539a2d1004 100644 --- a/keyboards/mitosis/rules.mk +++ b/keyboards/mitosis/rules.mk @@ -15,4 +15,4 @@ CUSTOM_MATRIX = lite # project specific files SRC += matrix.c -QUANTUM_LIB_SRC += uart.c +UART_DRIVER_REQUIRED = yes diff --git a/keyboards/molecule/rules.mk b/keyboards/molecule/rules.mk index 35280e22e3..06a8f490ee 100755 --- a/keyboards/molecule/rules.mk +++ b/keyboards/molecule/rules.mk @@ -15,4 +15,4 @@ AUDIO_ENABLE = no # Audio output POINTING_DEVICE_ENABLE = yes POINTING_DEVICE_DRIVER = custom SRC += adns.c -QUANTUM_LIB_SRC += spi_master.c +SPI_DRIVER_REQUIRED = yes diff --git a/keyboards/moon/rules.mk b/keyboards/moon/rules.mk index 804580d1f9..676f0971a2 100644 --- a/keyboards/moon/rules.mk +++ b/keyboards/moon/rules.mk @@ -16,4 +16,4 @@ CUSTOM_MATRIX = yes VPATH += drivers/gpio SRC += pca9555.c matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/moonlander/rules.mk b/keyboards/moonlander/rules.mk index a96d00f2f1..204c5940e4 100644 --- a/keyboards/moonlander/rules.mk +++ b/keyboards/moonlander/rules.mk @@ -17,6 +17,6 @@ RGB_MATRIX_ENABLE = yes #project specific files SRC += matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes MOUSE_SHARED_EP = no diff --git a/keyboards/mt/split75/rules.mk b/keyboards/mt/split75/rules.mk index f616b9400e..b0c02543b1 100644 --- a/keyboards/mt/split75/rules.mk +++ b/keyboards/mt/split75/rules.mk @@ -12,4 +12,4 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow # custom matrix setup CUSTOM_MATRIX = lite SRC = matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/neson_design/700e/rules.mk b/keyboards/neson_design/700e/rules.mk index 6e1439f1f5..5650ed1fee 100644 --- a/keyboards/neson_design/700e/rules.mk +++ b/keyboards/neson_design/700e/rules.mk @@ -11,4 +11,5 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow NO_USB_STARTUP_CHECK = yes -QUANTUM_LIB_SRC += i2c_master.c drivers/led/issi/is31fl3731.c +QUANTUM_LIB_SRC += drivers/led/issi/is31fl3731.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/neson_design/n6/rules.mk b/keyboards/neson_design/n6/rules.mk index 5d8397653e..a3e4abe6cd 100644 --- a/keyboards/neson_design/n6/rules.mk +++ b/keyboards/neson_design/n6/rules.mk @@ -10,4 +10,5 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -QUANTUM_LIB_SRC += i2c_master.c drivers/led/issi/is31fl3731.c +QUANTUM_LIB_SRC += drivers/led/issi/is31fl3731.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/novelkeys/nk65/rules.mk b/keyboards/novelkeys/nk65/rules.mk index e9036ebb61..d71d9a6c4e 100755 --- a/keyboards/novelkeys/nk65/rules.mk +++ b/keyboards/novelkeys/nk65/rules.mk @@ -22,7 +22,7 @@ CIE1931_CURVE = yes SRC = keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ drivers/led/issi/is31fl3733.c \ - quantum/color.c \ - i2c_master.c + quantum/color.c +I2C_DRIVER_REQUIRED = yes DEFAULT_FOLDER = novelkeys/nk65/base diff --git a/keyboards/novelkeys/nk87/rules.mk b/keyboards/novelkeys/nk87/rules.mk index 288d802054..a0a09c1dab 100755 --- a/keyboards/novelkeys/nk87/rules.mk +++ b/keyboards/novelkeys/nk87/rules.mk @@ -22,5 +22,5 @@ CIE1931_CURVE = yes SRC = keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ drivers/led/issi/is31fl3733.c \ - quantum/color.c \ - i2c_master.c + quantum/color.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/nullbitsco/nibble/rules.mk b/keyboards/nullbitsco/nibble/rules.mk index 0d5d3e2aac..5a1714cc9d 100644 --- a/keyboards/nullbitsco/nibble/rules.mk +++ b/keyboards/nullbitsco/nibble/rules.mk @@ -19,4 +19,4 @@ SRC += matrix.c \ common/bitc_led.c \ big_led.c \ common/remote_kb.c -QUANTUM_LIB_SRC += uart.c +UART_DRIVER_REQUIRED = yes diff --git a/keyboards/nullbitsco/snap/rules.mk b/keyboards/nullbitsco/snap/rules.mk index 79ba7d6eb6..2ad88b97c0 100644 --- a/keyboards/nullbitsco/snap/rules.mk +++ b/keyboards/nullbitsco/snap/rules.mk @@ -19,5 +19,5 @@ CUSTOM_MATRIX = lite # Split custom matrix # Project specific files SRC += common/bitc_led.c \ common/remote_kb.c \ - matrix.c \ - uart.c + matrix.c +UART_DRIVER_REQUIRED = yes diff --git a/keyboards/nullbitsco/tidbit/rules.mk b/keyboards/nullbitsco/tidbit/rules.mk index 3b7ff078bb..b4a06216bb 100644 --- a/keyboards/nullbitsco/tidbit/rules.mk +++ b/keyboards/nullbitsco/tidbit/rules.mk @@ -16,5 +16,5 @@ LTO_ENABLE = yes # Project specific files SRC += common/bitc_led.c \ common/remote_kb.c -QUANTUM_LIB_SRC += i2c_master.c \ - uart.c +I2C_DRIVER_REQUIRED = yes +UART_DRIVER_REQUIRED = yes diff --git a/keyboards/oddforge/vea/rules.mk b/keyboards/oddforge/vea/rules.mk index f616b9400e..b0c02543b1 100644 --- a/keyboards/oddforge/vea/rules.mk +++ b/keyboards/oddforge/vea/rules.mk @@ -12,4 +12,4 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow # custom matrix setup CUSTOM_MATRIX = lite SRC = matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/phoenix/config.h b/keyboards/phoenix/config.h index 76ac0edf2c..9241950731 100644 --- a/keyboards/phoenix/config.h +++ b/keyboards/phoenix/config.h @@ -26,7 +26,6 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define HAL_USE_SERIAL TRUE #define SPLIT_HAND_PIN B9 #define SERIAL_USART_DRIVER SD1 #define SERIAL_USART_TX_PAL_MODE 7 diff --git a/keyboards/phoenix/halconf.h b/keyboards/phoenix/halconf.h index 2527d38940..95bd6c565f 100644 --- a/keyboards/phoenix/halconf.h +++ b/keyboards/phoenix/halconf.h @@ -21,6 +21,8 @@ #pragma once +#define HAL_USE_SERIAL TRUE + #define SERIAL_USB_BUFFERS_SIZE 256 #include_next diff --git a/keyboards/redox_w/rules.mk b/keyboards/redox_w/rules.mk index 32eca4db31..f543b5fd9a 100644 --- a/keyboards/redox_w/rules.mk +++ b/keyboards/redox_w/rules.mk @@ -14,4 +14,4 @@ CUSTOM_MATRIX = lite # project specific files SRC += matrix.c -QUANTUM_LIB_SRC += uart.c +UART_DRIVER_REQUIRED = yes diff --git a/keyboards/rgbkb/mun/rules.mk b/keyboards/rgbkb/mun/rules.mk index 18dfc8edf7..4269e3b0a1 100644 --- a/keyboards/rgbkb/mun/rules.mk +++ b/keyboards/rgbkb/mun/rules.mk @@ -2,7 +2,7 @@ VPATH += keyboards/rgbkb/common SRC += touch_encoder.c SRC += common_oled.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes # Build Options # change yes to no to disable diff --git a/keyboards/rgbkb/sol3/rules.mk b/keyboards/rgbkb/sol3/rules.mk index 9cb54cfa15..227219e302 100644 --- a/keyboards/rgbkb/sol3/rules.mk +++ b/keyboards/rgbkb/sol3/rules.mk @@ -2,7 +2,7 @@ VPATH += keyboards/rgbkb/common SRC += touch_encoder.c SRC += common_oled.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes # Build Options # change yes to no to disable diff --git a/keyboards/satt/comet46/rules.mk b/keyboards/satt/comet46/rules.mk index fe692cc5c3..0db5166ffa 100644 --- a/keyboards/satt/comet46/rules.mk +++ b/keyboards/satt/comet46/rules.mk @@ -14,4 +14,4 @@ CUSTOM_MATRIX = lite # project specific files SRC += matrix.c -QUANTUM_LIB_SRC += uart.c +UART_DRIVER_REQUIRED = yes diff --git a/keyboards/sirius/uni660/rev1/rules.mk b/keyboards/sirius/uni660/rev1/rules.mk index d44567105e..7ac7507269 100644 --- a/keyboards/sirius/uni660/rev1/rules.mk +++ b/keyboards/sirius/uni660/rev1/rules.mk @@ -15,4 +15,4 @@ CUSTOM_MATRIX = lite # project specific files SRC += matrix.c -QUANTUM_LIB_SRC += uart.c +UART_DRIVER_REQUIRED = yes diff --git a/keyboards/sirius/uni660/rev2/rules.mk b/keyboards/sirius/uni660/rev2/rules.mk index b41206636d..791fa054c8 100644 --- a/keyboards/sirius/uni660/rev2/rules.mk +++ b/keyboards/sirius/uni660/rev2/rules.mk @@ -15,6 +15,6 @@ CUSTOM_MATRIX = lite # project specific files SRC += matrix.c -QUANTUM_LIB_SRC += uart.c +UART_DRIVER_REQUIRED = yes DEFAULT_FOLDER = sirius/uni660/rev2/ansi diff --git a/keyboards/spaceholdings/nebula12/rules.mk b/keyboards/spaceholdings/nebula12/rules.mk index 1c8b41fea7..191a1c0a1b 100755 --- a/keyboards/spaceholdings/nebula12/rules.mk +++ b/keyboards/spaceholdings/nebula12/rules.mk @@ -24,4 +24,4 @@ SRC += keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ drivers/led/issi/is31fl3731.c \ quantum/color.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/spaceholdings/nebula68/rules.mk b/keyboards/spaceholdings/nebula68/rules.mk index 7880744fff..627f82784e 100755 --- a/keyboards/spaceholdings/nebula68/rules.mk +++ b/keyboards/spaceholdings/nebula68/rules.mk @@ -24,4 +24,4 @@ SRC += keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ drivers/led/issi/is31fl3733.c \ quantum/color.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/spiderisland/split78/rules.mk b/keyboards/spiderisland/split78/rules.mk index edddf67abc..db8262a763 100644 --- a/keyboards/spiderisland/split78/rules.mk +++ b/keyboards/spiderisland/split78/rules.mk @@ -12,4 +12,4 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow # custom matrix setup CUSTOM_MATRIX = lite SRC += matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/switchplate/southpaw_65/rules.mk b/keyboards/switchplate/southpaw_65/rules.mk index c6c7f4ef93..89d05c5487 100644 --- a/keyboards/switchplate/southpaw_65/rules.mk +++ b/keyboards/switchplate/southpaw_65/rules.mk @@ -17,4 +17,4 @@ CUSTOM_MATRIX = lite VPATH += drivers/gpio SRC += pca9555.c matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/sx60/rules.mk b/keyboards/sx60/rules.mk index a18361a0cd..2f0d22e49f 100755 --- a/keyboards/sx60/rules.mk +++ b/keyboards/sx60/rules.mk @@ -13,5 +13,5 @@ RGBLIGHT_ENABLE = no CUSTOM_MATRIX = yes # project specific files -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes SRC += matrix.c diff --git a/keyboards/system76/launch_1/rules.mk b/keyboards/system76/launch_1/rules.mk index 7dbc07ced0..181976b2dd 100644 --- a/keyboards/system76/launch_1/rules.mk +++ b/keyboards/system76/launch_1/rules.mk @@ -23,4 +23,4 @@ LTO_ENABLE = yes # Link-time optimization for smaller binary # Add System76 EC command interface as well as I2C and USB mux drivers SRC += system76_ec.c usb_mux.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/telophase/rules.mk b/keyboards/telophase/rules.mk index 1ee3fc58f9..706d610653 100644 --- a/keyboards/telophase/rules.mk +++ b/keyboards/telophase/rules.mk @@ -14,7 +14,7 @@ CUSTOM_MATRIX = lite # project specific files SRC += matrix.c -QUANTUM_LIB_SRC += uart.c +UART_DRIVER_REQUIRED = yes # Disable unsupported hardware RGBLIGHT_SUPPORTED = no diff --git a/keyboards/tkc/portico/rules.mk b/keyboards/tkc/portico/rules.mk index 4e382541f4..6bc05372af 100644 --- a/keyboards/tkc/portico/rules.mk +++ b/keyboards/tkc/portico/rules.mk @@ -19,4 +19,4 @@ SRC += keyboards/wilba_tech/wt_main.c \ quantum/color.c \ drivers/led/issi/is31fl3731.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/tkc/portico75/keymaps/via/rules.mk b/keyboards/tkc/portico75/keymaps/via/rules.mk index 3e4e4a229d..1706771222 100644 --- a/keyboards/tkc/portico75/keymaps/via/rules.mk +++ b/keyboards/tkc/portico75/keymaps/via/rules.mk @@ -9,4 +9,4 @@ SRC += keyboards/wilba_tech/wt_main.c \ quantum/color.c \ drivers/led/issi/is31fl3741.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/torn/rules.mk b/keyboards/torn/rules.mk index d2ec5cf6d4..f855a651a5 100644 --- a/keyboards/torn/rules.mk +++ b/keyboards/torn/rules.mk @@ -18,4 +18,4 @@ SRC += matrix.c \ mcp23018.c \ torn_encoder.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/touchpad/rules.mk b/keyboards/touchpad/rules.mk index c22f3a2da5..b9fb83c48c 100644 --- a/keyboards/touchpad/rules.mk +++ b/keyboards/touchpad/rules.mk @@ -12,4 +12,5 @@ AUDIO_ENABLE = no # Audio output RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. CUSTOM_MATRIX = yes -SRC += matrix.c i2c_master.c +SRC += matrix.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/viktus/sp111/rules.mk b/keyboards/viktus/sp111/rules.mk index 0b9b8490de..1be8c7ad68 100644 --- a/keyboards/viktus/sp111/rules.mk +++ b/keyboards/viktus/sp111/rules.mk @@ -18,4 +18,4 @@ CUSTOM_MATRIX = lite VPATH += drivers/gpio SRC += mcp23018.c matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/rama_works_kara/rules.mk b/keyboards/wilba_tech/rama_works_kara/rules.mk index 465bc65d9e..b49711824a 100644 --- a/keyboards/wilba_tech/rama_works_kara/rules.mk +++ b/keyboards/wilba_tech/rama_works_kara/rules.mk @@ -22,5 +22,5 @@ CIE1931_CURVE = yes SRC = keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ quantum/color.c \ - drivers/led/issi/is31fl3731.c \ - i2c_master.c + drivers/led/issi/is31fl3731.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/rama_works_koyu/rules.mk b/keyboards/wilba_tech/rama_works_koyu/rules.mk index be907583a2..c921fc5c18 100644 --- a/keyboards/wilba_tech/rama_works_koyu/rules.mk +++ b/keyboards/wilba_tech/rama_works_koyu/rules.mk @@ -22,5 +22,5 @@ CIE1931_CURVE = yes SRC = keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ quantum/color.c \ - drivers/led/issi/is31fl3731.c \ - i2c_master.c + drivers/led/issi/is31fl3731.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/rama_works_m10_c/rules.mk b/keyboards/wilba_tech/rama_works_m10_c/rules.mk index 89e17a01b4..d8a2bae455 100644 --- a/keyboards/wilba_tech/rama_works_m10_c/rules.mk +++ b/keyboards/wilba_tech/rama_works_m10_c/rules.mk @@ -21,5 +21,5 @@ OPT_DEFS += -DNO_SUSPEND_POWER_DOWN SRC = keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ quantum/color.c \ - drivers/led/issi/is31fl3731.c \ - i2c_master.c + drivers/led/issi/is31fl3731.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/rama_works_m50_a/rules.mk b/keyboards/wilba_tech/rama_works_m50_a/rules.mk index 89e17a01b4..d8a2bae455 100644 --- a/keyboards/wilba_tech/rama_works_m50_a/rules.mk +++ b/keyboards/wilba_tech/rama_works_m50_a/rules.mk @@ -21,5 +21,5 @@ OPT_DEFS += -DNO_SUSPEND_POWER_DOWN SRC = keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ quantum/color.c \ - drivers/led/issi/is31fl3731.c \ - i2c_master.c + drivers/led/issi/is31fl3731.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/rama_works_m60_a/rules.mk b/keyboards/wilba_tech/rama_works_m60_a/rules.mk index be907583a2..c921fc5c18 100644 --- a/keyboards/wilba_tech/rama_works_m60_a/rules.mk +++ b/keyboards/wilba_tech/rama_works_m60_a/rules.mk @@ -22,5 +22,5 @@ CIE1931_CURVE = yes SRC = keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ quantum/color.c \ - drivers/led/issi/is31fl3731.c \ - i2c_master.c + drivers/led/issi/is31fl3731.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/rama_works_m65_b/rules.mk b/keyboards/wilba_tech/rama_works_m65_b/rules.mk index 89e17a01b4..d8a2bae455 100644 --- a/keyboards/wilba_tech/rama_works_m65_b/rules.mk +++ b/keyboards/wilba_tech/rama_works_m65_b/rules.mk @@ -21,5 +21,5 @@ OPT_DEFS += -DNO_SUSPEND_POWER_DOWN SRC = keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ quantum/color.c \ - drivers/led/issi/is31fl3731.c \ - i2c_master.c + drivers/led/issi/is31fl3731.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/rama_works_m65_bx/rules.mk b/keyboards/wilba_tech/rama_works_m65_bx/rules.mk index 89e17a01b4..d8a2bae455 100644 --- a/keyboards/wilba_tech/rama_works_m65_bx/rules.mk +++ b/keyboards/wilba_tech/rama_works_m65_bx/rules.mk @@ -21,5 +21,5 @@ OPT_DEFS += -DNO_SUSPEND_POWER_DOWN SRC = keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ quantum/color.c \ - drivers/led/issi/is31fl3731.c \ - i2c_master.c + drivers/led/issi/is31fl3731.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/rama_works_m6_b/rules.mk b/keyboards/wilba_tech/rama_works_m6_b/rules.mk index 04a197576f..eff0605d90 100644 --- a/keyboards/wilba_tech/rama_works_m6_b/rules.mk +++ b/keyboards/wilba_tech/rama_works_m6_b/rules.mk @@ -22,5 +22,5 @@ CIE1931_CURVE = yes SRC = keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ quantum/color.c \ - drivers/led/issi/is31fl3218.c \ - i2c_master.c + drivers/led/issi/is31fl3218.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/rama_works_u80_a/rules.mk b/keyboards/wilba_tech/rama_works_u80_a/rules.mk index 3e1eda9d5e..b262985880 100644 --- a/keyboards/wilba_tech/rama_works_u80_a/rules.mk +++ b/keyboards/wilba_tech/rama_works_u80_a/rules.mk @@ -15,5 +15,5 @@ CIE1931_CURVE = yes SRC = keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ quantum/color.c \ - drivers/led/issi/is31fl3731.c \ - i2c_master.c + drivers/led/issi/is31fl3731.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/wt60_a/rules.mk b/keyboards/wilba_tech/wt60_a/rules.mk index 3a552128d8..9ca8e8f973 100644 --- a/keyboards/wilba_tech/wt60_a/rules.mk +++ b/keyboards/wilba_tech/wt60_a/rules.mk @@ -12,7 +12,7 @@ AUDIO_ENABLE = no # Audio output # project specific files SRC = drivers/led/issi/is31fl3736-simple.c \ - i2c_master.c \ quantum/color.c \ keyboards/wilba_tech/wt_mono_backlight.c \ keyboards/wilba_tech/wt_main.c +I2C_DRIVER_REQUIRED = yes \ No newline at end of file diff --git a/keyboards/wilba_tech/wt60_b/rules.mk b/keyboards/wilba_tech/wt60_b/rules.mk index a9fcf043e2..397643d372 100644 --- a/keyboards/wilba_tech/wt60_b/rules.mk +++ b/keyboards/wilba_tech/wt60_b/rules.mk @@ -22,5 +22,5 @@ CIE1931_CURVE = yes SRC = keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ quantum/color.c \ - drivers/led/issi/is31fl3731.c \ - i2c_master.c + drivers/led/issi/is31fl3731.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/wt60_bx/rules.mk b/keyboards/wilba_tech/wt60_bx/rules.mk index a9fcf043e2..397643d372 100644 --- a/keyboards/wilba_tech/wt60_bx/rules.mk +++ b/keyboards/wilba_tech/wt60_bx/rules.mk @@ -22,5 +22,5 @@ CIE1931_CURVE = yes SRC = keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ quantum/color.c \ - drivers/led/issi/is31fl3731.c \ - i2c_master.c + drivers/led/issi/is31fl3731.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/wt60_c/rules.mk b/keyboards/wilba_tech/wt60_c/rules.mk index a9fcf043e2..397643d372 100644 --- a/keyboards/wilba_tech/wt60_c/rules.mk +++ b/keyboards/wilba_tech/wt60_c/rules.mk @@ -22,5 +22,5 @@ CIE1931_CURVE = yes SRC = keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ quantum/color.c \ - drivers/led/issi/is31fl3731.c \ - i2c_master.c + drivers/led/issi/is31fl3731.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/wt65_a/rules.mk b/keyboards/wilba_tech/wt65_a/rules.mk index 3a552128d8..9ca8e8f973 100644 --- a/keyboards/wilba_tech/wt65_a/rules.mk +++ b/keyboards/wilba_tech/wt65_a/rules.mk @@ -12,7 +12,7 @@ AUDIO_ENABLE = no # Audio output # project specific files SRC = drivers/led/issi/is31fl3736-simple.c \ - i2c_master.c \ quantum/color.c \ keyboards/wilba_tech/wt_mono_backlight.c \ keyboards/wilba_tech/wt_main.c +I2C_DRIVER_REQUIRED = yes \ No newline at end of file diff --git a/keyboards/wilba_tech/wt65_b/rules.mk b/keyboards/wilba_tech/wt65_b/rules.mk index 3a552128d8..9ca8e8f973 100644 --- a/keyboards/wilba_tech/wt65_b/rules.mk +++ b/keyboards/wilba_tech/wt65_b/rules.mk @@ -12,7 +12,7 @@ AUDIO_ENABLE = no # Audio output # project specific files SRC = drivers/led/issi/is31fl3736-simple.c \ - i2c_master.c \ quantum/color.c \ keyboards/wilba_tech/wt_mono_backlight.c \ keyboards/wilba_tech/wt_main.c +I2C_DRIVER_REQUIRED = yes \ No newline at end of file diff --git a/keyboards/wilba_tech/wt75_a/rules.mk b/keyboards/wilba_tech/wt75_a/rules.mk index 3a552128d8..9ca8e8f973 100644 --- a/keyboards/wilba_tech/wt75_a/rules.mk +++ b/keyboards/wilba_tech/wt75_a/rules.mk @@ -12,7 +12,7 @@ AUDIO_ENABLE = no # Audio output # project specific files SRC = drivers/led/issi/is31fl3736-simple.c \ - i2c_master.c \ quantum/color.c \ keyboards/wilba_tech/wt_mono_backlight.c \ keyboards/wilba_tech/wt_main.c +I2C_DRIVER_REQUIRED = yes \ No newline at end of file diff --git a/keyboards/wilba_tech/wt75_b/rules.mk b/keyboards/wilba_tech/wt75_b/rules.mk index 3a552128d8..9ca8e8f973 100644 --- a/keyboards/wilba_tech/wt75_b/rules.mk +++ b/keyboards/wilba_tech/wt75_b/rules.mk @@ -12,7 +12,7 @@ AUDIO_ENABLE = no # Audio output # project specific files SRC = drivers/led/issi/is31fl3736-simple.c \ - i2c_master.c \ quantum/color.c \ keyboards/wilba_tech/wt_mono_backlight.c \ keyboards/wilba_tech/wt_main.c +I2C_DRIVER_REQUIRED = yes \ No newline at end of file diff --git a/keyboards/wilba_tech/wt75_c/rules.mk b/keyboards/wilba_tech/wt75_c/rules.mk index 3a552128d8..9ca8e8f973 100644 --- a/keyboards/wilba_tech/wt75_c/rules.mk +++ b/keyboards/wilba_tech/wt75_c/rules.mk @@ -12,7 +12,7 @@ AUDIO_ENABLE = no # Audio output # project specific files SRC = drivers/led/issi/is31fl3736-simple.c \ - i2c_master.c \ quantum/color.c \ keyboards/wilba_tech/wt_mono_backlight.c \ keyboards/wilba_tech/wt_main.c +I2C_DRIVER_REQUIRED = yes \ No newline at end of file diff --git a/keyboards/wilba_tech/wt80_a/rules.mk b/keyboards/wilba_tech/wt80_a/rules.mk index 3a552128d8..9ca8e8f973 100644 --- a/keyboards/wilba_tech/wt80_a/rules.mk +++ b/keyboards/wilba_tech/wt80_a/rules.mk @@ -12,7 +12,7 @@ AUDIO_ENABLE = no # Audio output # project specific files SRC = drivers/led/issi/is31fl3736-simple.c \ - i2c_master.c \ quantum/color.c \ keyboards/wilba_tech/wt_mono_backlight.c \ keyboards/wilba_tech/wt_main.c +I2C_DRIVER_REQUIRED = yes \ No newline at end of file diff --git a/keyboards/wilba_tech/zeal60/rules.mk b/keyboards/wilba_tech/zeal60/rules.mk index 4f810f3d32..d1ce11b473 100644 --- a/keyboards/wilba_tech/zeal60/rules.mk +++ b/keyboards/wilba_tech/zeal60/rules.mk @@ -22,5 +22,5 @@ CIE1931_CURVE = yes SRC = keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ quantum/color.c \ - drivers/led/issi/is31fl3731.c \ - i2c_master.c + drivers/led/issi/is31fl3731.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/zeal65/rules.mk b/keyboards/wilba_tech/zeal65/rules.mk index 4f810f3d32..d1ce11b473 100644 --- a/keyboards/wilba_tech/zeal65/rules.mk +++ b/keyboards/wilba_tech/zeal65/rules.mk @@ -22,5 +22,5 @@ CIE1931_CURVE = yes SRC = keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ quantum/color.c \ - drivers/led/issi/is31fl3731.c \ - i2c_master.c + drivers/led/issi/is31fl3731.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/xelus/dawn60/rev1/rules.mk b/keyboards/xelus/dawn60/rev1/rules.mk index d4e70bfbec..0a72a60eca 100644 --- a/keyboards/xelus/dawn60/rev1/rules.mk +++ b/keyboards/xelus/dawn60/rev1/rules.mk @@ -26,4 +26,4 @@ SRC += keyboards/wilba_tech/wt_main.c \ quantum/color.c \ drivers/led/issi/is31fl3731.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/xelus/dawn60/rev1_qmk/rules.mk b/keyboards/xelus/dawn60/rev1_qmk/rules.mk index 4a799710d2..edb15fa760 100644 --- a/keyboards/xelus/dawn60/rev1_qmk/rules.mk +++ b/keyboards/xelus/dawn60/rev1_qmk/rules.mk @@ -25,6 +25,6 @@ COMMON_VPATH += $(DRIVER_PATH)/issi # project specific files SRC += drivers/led/issi/is31fl3731.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes LTO_ENABLE = yes diff --git a/keyboards/xiudi/xd84/rules.mk b/keyboards/xiudi/xd84/rules.mk index c6c7f4ef93..89d05c5487 100644 --- a/keyboards/xiudi/xd84/rules.mk +++ b/keyboards/xiudi/xd84/rules.mk @@ -17,4 +17,4 @@ CUSTOM_MATRIX = lite VPATH += drivers/gpio SRC += pca9555.c matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/xiudi/xd96/rules.mk b/keyboards/xiudi/xd96/rules.mk index c6c7f4ef93..89d05c5487 100644 --- a/keyboards/xiudi/xd96/rules.mk +++ b/keyboards/xiudi/xd96/rules.mk @@ -17,4 +17,4 @@ CUSTOM_MATRIX = lite VPATH += drivers/gpio SRC += pca9555.c matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/yiancardesigns/barleycorn/rules.mk b/keyboards/yiancardesigns/barleycorn/rules.mk index b56efe3ef9..3808b0d3f2 100644 --- a/keyboards/yiancardesigns/barleycorn/rules.mk +++ b/keyboards/yiancardesigns/barleycorn/rules.mk @@ -14,4 +14,4 @@ AUDIO_ENABLE = no # Audio output CUSTOM_MATRIX = lite SRC += matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/yiancardesigns/gingham/rules.mk b/keyboards/yiancardesigns/gingham/rules.mk index 2fce424de8..cd47b89aed 100644 --- a/keyboards/yiancardesigns/gingham/rules.mk +++ b/keyboards/yiancardesigns/gingham/rules.mk @@ -1,5 +1,5 @@ -SRC = matrix.c \ - i2c_master.c +SRC = matrix.c +I2C_DRIVER_REQUIRED = yes # Build Options # change yes to no to disable diff --git a/keyboards/yiancardesigns/seigaiha/rules.mk b/keyboards/yiancardesigns/seigaiha/rules.mk index b56efe3ef9..3808b0d3f2 100644 --- a/keyboards/yiancardesigns/seigaiha/rules.mk +++ b/keyboards/yiancardesigns/seigaiha/rules.mk @@ -14,4 +14,4 @@ AUDIO_ENABLE = no # Audio output CUSTOM_MATRIX = lite SRC += matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/ymdk/sp64/rules.mk b/keyboards/ymdk/sp64/rules.mk index df9380f361..56da806510 100644 --- a/keyboards/ymdk/sp64/rules.mk +++ b/keyboards/ymdk/sp64/rules.mk @@ -14,4 +14,4 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow CUSTOM_MATRIX = yes SRC += matrix.c -QUANTUM_LIB_SRC += i2c_master.c +I2C_DRIVER_REQUIRED = yes From 032b039d0bf96e4fea0b87e0d2f6cd0fb34b7298 Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Fri, 13 Oct 2023 08:07:16 +0100 Subject: [PATCH 281/496] amend alice* community_layouts in keyboards (#21846) * add alice* to keyboards * add seigaiha * additions * Update info.json * revert wanderland * add tgr/alice * add matrix diagram.md --- keyboards/kapcave/arya/info.json | 79 +++++- keyboards/kapcave/arya/matrix_diagram.md | 24 ++ keyboards/linworks/dolice/info.json | 5 +- keyboards/linworks/dolice/matrix_diagram.md | 24 ++ keyboards/tgr/alice/info.json | 81 +++++- keyboards/westm/westmergo/info.json | 1 + keyboards/xelus/valor/rev1/info.json | 82 +++++- keyboards/xelus/valor/rev1/matrix_diagram.md | 24 ++ keyboards/xelus/valor/rev2/info.json | 81 +++++- keyboards/xelus/valor/rev2/matrix_diagram.md | 21 ++ keyboards/yiancardesigns/seigaiha/info.json | 241 +++++++++++++++++- .../yiancardesigns/seigaiha/matrix_diagram.md | 21 ++ 12 files changed, 677 insertions(+), 7 deletions(-) create mode 100644 keyboards/kapcave/arya/matrix_diagram.md create mode 100644 keyboards/linworks/dolice/matrix_diagram.md create mode 100644 keyboards/xelus/valor/rev1/matrix_diagram.md create mode 100644 keyboards/xelus/valor/rev2/matrix_diagram.md create mode 100644 keyboards/yiancardesigns/seigaiha/matrix_diagram.md diff --git a/keyboards/kapcave/arya/info.json b/keyboards/kapcave/arya/info.json index 34246609e5..ebcb700150 100644 --- a/keyboards/kapcave/arya/info.json +++ b/keyboards/kapcave/arya/info.json @@ -25,8 +25,85 @@ }, "processor": "STM32F072", "bootloader": "stm32-dfu", - "community_layouts": ["alice_split_bs"], + "community_layouts": ["alice", "alice_split_bs"], "layouts": { + "LAYOUT_alice": { + "layout": [ + {"matrix": [8, 1], "x": 0.4, "y": 0}, + {"matrix": [3, 6], "x": 1.55, "y": 0.1}, + {"matrix": [3, 7], "x": 2.55, "y": 0.1}, + {"matrix": [4, 6], "x": 3.55, "y": 0}, + {"matrix": [4, 7], "x": 4.55, "y": 0.1}, + {"matrix": [5, 6], "x": 5.55, "y": 0.1}, + {"matrix": [5, 7], "x": 6.55, "y": 0.1}, + {"matrix": [6, 6], "x": 7.55, "y": 0.1}, + + {"matrix": [6, 7], "x": 9.75, "y": 0.1}, + {"matrix": [7, 6], "x": 10.75, "y": 0.1}, + {"matrix": [7, 7], "x": 11.75, "y": 0.1}, + {"matrix": [0, 6], "x": 12.75, "y": 0.1}, + {"matrix": [0, 7], "x": 13.75, "y": 0}, + {"matrix": [1, 7], "x": 14.75, "y": 0.1}, + {"matrix": [2, 7], "x": 15.75, "y": 0.1, "w": 2}, + + {"matrix": [8, 0], "x": 0.2, "y": 1}, + {"matrix": [3, 4], "x": 1.35, "y": 1.1, "w": 1.5}, + {"matrix": [3, 5], "x": 2.85, "y": 1.1}, + {"matrix": [4, 4], "x": 3.85, "y": 1.1}, + {"matrix": [4, 5], "x": 4.85, "y": 1.1}, + {"matrix": [5, 4], "x": 5.85, "y": 1.1}, + {"matrix": [5, 5], "x": 6.85, "y": 1.1}, + + {"matrix": [6, 4], "x": 9.45, "y": 1.1}, + {"matrix": [6, 5], "x": 10.45, "y": 1.1}, + {"matrix": [7, 5], "x": 11.45, "y": 1.1}, + {"matrix": [0, 5], "x": 12.45, "y": 1.1}, + {"matrix": [1, 5], "x": 13.45, "y": 1.1}, + {"matrix": [1, 6], "x": 14.45, "y": 1.1}, + {"matrix": [2, 5], "x": 15.45, "y": 1.1}, + {"matrix": [2, 4], "x": 16.45, "y": 1.1, "w": 1.5}, + + {"matrix": [8, 2], "x": 0, "y": 2}, + {"matrix": [3, 2], "x": 1.15, "y": 2.1, "w": 1.75}, + {"matrix": [3, 3], "x": 2.9, "y": 2.1}, + {"matrix": [4, 3], "x": 3.9, "y": 2.1}, + {"matrix": [5, 2], "x": 4.9, "y": 2.1}, + {"matrix": [5, 3], "x": 5.9, "y": 2.1}, + {"matrix": [6, 3], "x": 6.9, "y": 2.1}, + + {"matrix": [7, 3], "x": 9.9, "y": 2.1}, + {"matrix": [7, 4], "x": 10.9, "y": 2.1}, + {"matrix": [0, 3], "x": 11.9, "y": 2.1}, + {"matrix": [0, 4], "x": 12.9, "y": 2.1}, + {"matrix": [1, 3], "x": 13.9, "y": 2.1}, + {"matrix": [1, 4], "x": 14.9, "y": 2.1}, + {"matrix": [2, 3], "x": 15.9, "y": 2.1, "w": 2.25}, + + {"matrix": [3, 1], "x": 0.95, "y": 3.1, "w": 2.25}, + {"matrix": [4, 1], "x": 3.2, "y": 3.1}, + {"matrix": [4, 2], "x": 4.2, "y": 3.1}, + {"matrix": [5, 1], "x": 5.2, "y": 3.1}, + {"matrix": [6, 1], "x": 6.2, "y": 3.1}, + {"matrix": [6, 2], "x": 7.2, "y": 3.1}, + + {"matrix": [7, 1], "x": 9.6, "y": 3.1}, + {"matrix": [7, 2], "x": 10.6, "y": 3.1}, + {"matrix": [0, 1], "x": 11.6, "y": 3.1}, + {"matrix": [0, 2], "x": 12.6, "y": 3.1}, + {"matrix": [1, 1], "x": 13.6, "y": 3.1}, + {"matrix": [1, 2], "x": 14.6, "y": 3.1}, + {"matrix": [2, 1], "x": 15.6, "y": 3.1, "w": 1.75}, + {"matrix": [2, 2], "x": 17.35, "y": 3.1}, + + {"matrix": [3, 0], "x": 0.95, "y": 4.1, "w": 1.5}, + {"matrix": [4, 0], "x": 3.85, "y": 4.1, "w": 1.5}, + {"matrix": [5, 0], "x": 5.35, "y": 4.1, "w": 2}, + {"matrix": [6, 0], "x": 7.35, "y": 4.1, "w": 1.25}, + {"matrix": [0, 0], "x": 9.6, "y": 4.1, "w": 2.75}, + {"matrix": [1, 0], "x": 12.35, "y": 4.1, "w": 1.5}, + {"matrix": [2, 0], "x": 16.65, "y": 4.1, "w": 1.5} + ] + }, "LAYOUT_alice_split_bs": { "layout": [ {"matrix": [8, 1], "x": 0.4, "y": 0}, diff --git a/keyboards/kapcave/arya/matrix_diagram.md b/keyboards/kapcave/arya/matrix_diagram.md new file mode 100644 index 0000000000..245cb9a079 --- /dev/null +++ b/keyboards/kapcave/arya/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for Kapcave Arya + +``` + ┌───────┐ + 2u Backspace │27 │ + └───────┘ + ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┐ + │81 │ │36 │37 │46 │47 │56 │57 │66 │ │67 │76 │77 │06 │07 │17 │26 │27 │ + ┌┴──┬┘ ┌┴───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┐ + │80 │ │34 │35 │44 │45 │54 │55 │ │64 │65 │75 │05 │15 │16 │25 │24 │ +┌┴──┬┘ ┌┴─────┼───┼───┼───┼───┼───┤ └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴──────┴┐ +│82 │ │32 │33 │43 │52 │53 │63 │ │73 │74 │03 │04 │13 │14 │23 │ +└───┘ ┌┴──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┬──┴┐ + │31 │41 │42 │51 │61 │62 │ │71 │72 │01 │02 │11 │12 │21 │22 │ + ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴──┐ ├───┴───┴──┬┴───┴┬──┴───┴──────┬──┴──┬┘ + │30 │ │40 │50 │60 │ │00 │10 │ │20 │ + └─────┘ └─────┴───────┴─────┘ └──────────┴─────┘ └─────┘ + ┌────────────┐ + 2.75u RShift │21 │ + └────────────┘ + ┌─────────┬───┐ + │50 │60 │ 2.25u-1u Left Space + └─────────┴───┘ +``` diff --git a/keyboards/linworks/dolice/info.json b/keyboards/linworks/dolice/info.json index 9b4af12305..23fb708cf6 100644 --- a/keyboards/linworks/dolice/info.json +++ b/keyboards/linworks/dolice/info.json @@ -25,9 +25,10 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", - "layout_aliases": { - "LAYOUT_all": "LAYOUT_alice_split_bs" + "layout_aliases": { + "LAYOUT_all": "LAYOUT_alice_split_bs" }, + "community_layouts": ["alice", "alice_split_bs"], "layouts": { "LAYOUT_alice": { "layout": [ diff --git a/keyboards/linworks/dolice/matrix_diagram.md b/keyboards/linworks/dolice/matrix_diagram.md new file mode 100644 index 0000000000..c89f8f8222 --- /dev/null +++ b/keyboards/linworks/dolice/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for Linworks Dolice + +``` + ┌───────┐ + 2u Backspace │17 │ + └───────┘ + ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┐ + │00 │ │10 │01 │11 │02 │12 │03 │13 │ │14 │05 │15 │06 │16 │07 │17 │57 │ + ┌┴──┬┘ ┌┴───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┐ + │20 │ │30 │21 │22 │32 │23 │33 │ │24 │34 │25 │35 │26 │36 │27 │37 │ +┌┴──┬┘ ┌┴─────┼───┼───┼───┼───┼───┤ └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴──────┴┐ +│40 │ │50 │41 │42 │52 │43 │53 │ │44 │54 │45 │55 │46 │56 │47 │ +└───┘ ┌┴──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┬──┴┐ + │70 │61 │62 │72 │63 │73 │ │64 │74 │65 │75 │66 │76 │67 │77 │ + ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴──┐ ├───┴───┴──┬┴───┴┬──┴───┴──────┬──┴──┬┘ + │80 │ │81 │82 │83 │ │84 │85 │ │87 │ + └─────┘ └─────┴───────┴─────┘ └──────────┴─────┘ └─────┘ + ┌────────────┐ + 2.75u RShift │67 │ + └────────────┘ + ┌─────────┬───┐ + │82 │83 │ 2.25u-1u Left Space + └─────────┴───┘ +``` diff --git a/keyboards/tgr/alice/info.json b/keyboards/tgr/alice/info.json index 21932cebc6..722de6251a 100644 --- a/keyboards/tgr/alice/info.json +++ b/keyboards/tgr/alice/info.json @@ -41,11 +41,90 @@ }, "processor": "atmega32a", "bootloader": "bootloadhid", - "community_layouts": ["alice_split_bs"], + "community_layouts": ["alice", "alice_split_bs"], "layout_aliases": { "LAYOUT": "LAYOUT_alice_split_bs" }, "layouts": { + "LAYOUT_alice": { + "layout": [ + {"matrix": [5, 0], "x": 0, "y": 0}, + + {"matrix": [0, 0], "x": 1.25, "y": 0}, + {"matrix": [0, 1], "x": 2.25, "y": 0}, + {"matrix": [0, 2], "x": 3.25, "y": 0}, + {"matrix": [0, 3], "x": 4.25, "y": 0}, + {"matrix": [0, 4], "x": 5.25, "y": 0}, + {"matrix": [0, 5], "x": 6.25, "y": 0}, + {"matrix": [0, 6], "x": 7.25, "y": 0}, + + {"matrix": [0, 7], "x": 10.25, "y": 0}, + {"matrix": [0, 8], "x": 11.25, "y": 0}, + {"matrix": [0, 9], "x": 12.25, "y": 0}, + {"matrix": [0, 10], "x": 13.25, "y": 0}, + {"matrix": [0, 11], "x": 14.25, "y": 0}, + {"matrix": [0, 12], "x": 15.25, "y": 0}, + {"matrix": [0, 13], "x": 16.25, "y": 0, "w": 2}, + + {"matrix": [5, 1], "x": 0, "y": 1}, + + {"matrix": [1, 0], "x": 1.25, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 2.75, "y": 1}, + {"matrix": [1, 2], "x": 3.75, "y": 1}, + {"matrix": [1, 3], "x": 4.75, "y": 1}, + {"matrix": [1, 4], "x": 5.75, "y": 1}, + {"matrix": [1, 5], "x": 6.75, "y": 1}, + + {"matrix": [1, 6], "x": 9.75, "y": 1}, + {"matrix": [1, 7], "x": 10.75, "y": 1}, + {"matrix": [1, 8], "x": 11.75, "y": 1}, + {"matrix": [1, 9], "x": 12.75, "y": 1}, + {"matrix": [1, 10], "x": 13.75, "y": 1}, + {"matrix": [1, 11], "x": 14.75, "y": 1}, + {"matrix": [1, 12], "x": 15.75, "y": 1}, + {"matrix": [1, 13], "x": 16.75, "y": 1, "w": 1.5}, + + {"matrix": [5, 2], "x": 0, "y": 2}, + {"matrix": [2, 0], "x": 1.25, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 3, "y": 2}, + {"matrix": [2, 2], "x": 4, "y": 2}, + {"matrix": [2, 3], "x": 5, "y": 2}, + {"matrix": [2, 4], "x": 6, "y": 2}, + {"matrix": [2, 5], "x": 7, "y": 2}, + + {"matrix": [2, 6], "x": 10, "y": 2}, + {"matrix": [2, 7], "x": 11, "y": 2}, + {"matrix": [2, 8], "x": 12, "y": 2}, + {"matrix": [2, 9], "x": 13, "y": 2}, + {"matrix": [2, 10], "x": 14, "y": 2}, + {"matrix": [2, 11], "x": 15, "y": 2}, + {"matrix": [2, 12], "x": 16, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 1.25, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 3.5, "y": 3}, + {"matrix": [3, 2], "x": 4.5, "y": 3}, + {"matrix": [3, 3], "x": 5.5, "y": 3}, + {"matrix": [3, 4], "x": 6.5, "y": 3}, + {"matrix": [3, 5], "x": 7.5, "y": 3}, + + {"matrix": [3, 6], "x": 9.5, "y": 3}, + {"matrix": [3, 7], "x": 10.5, "y": 3}, + {"matrix": [3, 8], "x": 11.5, "y": 3}, + {"matrix": [3, 9], "x": 12.5, "y": 3}, + {"matrix": [3, 10], "x": 13.5, "y": 3}, + {"matrix": [3, 11], "x": 14.5, "y": 3}, + {"matrix": [3, 12], "x": 15.5, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 17.25, "y": 3}, + + {"matrix": [4, 0], "x": 1.25, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 4.25, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 5.75, "y": 4, "w": 2}, + {"matrix": [4, 3], "x": 7.75, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 9.5, "y": 4, "w": 2.75}, + {"matrix": [4, 7], "x": 12.25, "y": 4, "w": 1.5}, + {"matrix": [4, 8], "x": 16.75, "y": 4, "w": 1.5} + ] + }, "LAYOUT_alice_split_bs": { "layout": [ {"matrix": [5, 0], "x": 0, "y": 0}, diff --git a/keyboards/westm/westmergo/info.json b/keyboards/westm/westmergo/info.json index 6c2a87df22..de733b988a 100644 --- a/keyboards/westm/westmergo/info.json +++ b/keyboards/westm/westmergo/info.json @@ -33,6 +33,7 @@ "diode_direction": "COL2ROW", "processor": "STM32F072", "bootloader": "stm32-dfu", + "community_layouts": ["alice"], "layouts": { "LAYOUT_alice": { "layout": [ diff --git a/keyboards/xelus/valor/rev1/info.json b/keyboards/xelus/valor/rev1/info.json index 324a57d180..a07e426978 100644 --- a/keyboards/xelus/valor/rev1/info.json +++ b/keyboards/xelus/valor/rev1/info.json @@ -34,11 +34,91 @@ "diode_direction": "COL2ROW", "processor": "atmega32u4", "bootloader": "atmel-dfu", - "community_layouts": ["alice_split_bs"], + "community_layouts": ["alice", "alice_split_bs"], "layout_aliases": { "LAYOUT_all": "LAYOUT_alice_split_bs" }, "layouts": { + "LAYOUT_alice": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.25, "y": 0}, + {"matrix": [0, 6], "x": 6.25, "y": 0}, + {"matrix": [0, 7], "x": 7.25, "y": 0}, + + {"matrix": [0, 8], "x": 10.25, "y": 0}, + {"matrix": [0, 9], "x": 11.25, "y": 0}, + {"matrix": [0, 10], "x": 12.25, "y": 0}, + {"matrix": [0, 11], "x": 13.25, "y": 0}, + {"matrix": [0, 12], "x": 14.25, "y": 0}, + {"matrix": [0, 13], "x": 15.25, "y": 0}, + {"matrix": [0, 14], "x": 16.25, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + + {"matrix": [1, 1], "x": 1.25, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 2.75, "y": 1}, + {"matrix": [1, 3], "x": 3.75, "y": 1}, + {"matrix": [1, 4], "x": 4.75, "y": 1}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + + {"matrix": [1, 7], "x": 9.75, "y": 1}, + {"matrix": [1, 8], "x": 10.75, "y": 1}, + {"matrix": [1, 9], "x": 11.75, "y": 1}, + {"matrix": [1, 10], "x": 12.75, "y": 1}, + {"matrix": [1, 11], "x": 13.75, "y": 1}, + {"matrix": [1, 12], "x": 14.75, "y": 1}, + {"matrix": [1, 13], "x": 15.75, "y": 1}, + {"matrix": [1, 14], "x": 16.75, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + + {"matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3, "y": 2}, + {"matrix": [2, 3], "x": 4, "y": 2}, + {"matrix": [2, 4], "x": 5, "y": 2}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + + {"matrix": [2, 7], "x": 10, "y": 2}, + {"matrix": [2, 8], "x": 11, "y": 2}, + {"matrix": [2, 9], "x": 12, "y": 2}, + {"matrix": [2, 10], "x": 13, "y": 2}, + {"matrix": [2, 11], "x": 14, "y": 2}, + {"matrix": [2, 12], "x": 15, "y": 2}, + {"matrix": [2, 13], "x": 16, "y": 2, "w": 2.25}, + + {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.5, "y": 3}, + {"matrix": [3, 3], "x": 4.5, "y": 3}, + {"matrix": [3, 4], "x": 5.5, "y": 3}, + {"matrix": [3, 5], "x": 6.5, "y": 3}, + {"matrix": [3, 6], "x": 7.5, "y": 3}, + + {"matrix": [3, 7], "x": 9.5, "y": 3}, + {"matrix": [3, 8], "x": 10.5, "y": 3}, + {"matrix": [3, 9], "x": 11.5, "y": 3}, + {"matrix": [3, 10], "x": 12.5, "y": 3}, + {"matrix": [3, 11], "x": 13.5, "y": 3}, + {"matrix": [3, 12], "x": 14.5, "y": 3}, + {"matrix": [3, 13], "x": 15.5, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 17.25, "y": 3}, + + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5}, + {"matrix": [4, 3], "x": 4.25, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 5.75, "y": 4, "w": 2}, + {"matrix": [4, 6], "x": 7.75, "y": 4, "w": 1.25}, + {"matrix": [4, 8], "x": 9.5, "y": 4, "w": 2.75}, + {"matrix": [4, 10], "x": 12.25, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 16.75, "y": 4, "w": 1.5} + ] + }, "LAYOUT_alice_split_bs": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, diff --git a/keyboards/xelus/valor/rev1/matrix_diagram.md b/keyboards/xelus/valor/rev1/matrix_diagram.md new file mode 100644 index 0000000000..2c4e53a40b --- /dev/null +++ b/keyboards/xelus/valor/rev1/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for Xelus Valor Rev. 1 + +``` + ┌───────┐ + 2u Backspace │0E │ + └───────┘ + ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┐ + │00 │ │01 │02 │03 │04 │05 │06 │07 │ │08 │09 │0A │0B │0C │0D │0E │2E │ + ┌┴──┬┘ ┌┴───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┐ + │10 │ │11 │12 │13 │14 │15 │16 │ │17 │18 │19 │1A │1B │1C │1D │1E │ +┌┴──┬┘ ┌┴─────┼───┼───┼───┼───┼───┤ └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴──────┴┐ +│20 │ │21 │22 │23 │24 │25 │26 │ │27 │28 │29 │2A │2B │2C │2D │ +└───┘ ┌┴──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┬──┴┐ + │31 │32 │33 │34 │35 │36 │ │37 │38 │39 │3A │3B │3C │3D │3E │ + ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴──┐ ├───┴───┴──┬┴───┴┬──┴───┴──────┬──┴──┬┘ + │41 │ │43 │45 │46 │ │48 │4A │ │4D │ + └─────┘ └─────┴───────┴─────┘ └──────────┴─────┘ └─────┘ + ┌────────────┐ + 2.75u RShift │3D │ + └────────────┘ + ┌─────────┬───┐ + │45 │46 │ 2.25u-1u Left Space + └─────────┴───┘ +``` diff --git a/keyboards/xelus/valor/rev2/info.json b/keyboards/xelus/valor/rev2/info.json index a8068eff89..cdb3bb9947 100644 --- a/keyboards/xelus/valor/rev2/info.json +++ b/keyboards/xelus/valor/rev2/info.json @@ -22,11 +22,90 @@ "diode_direction": "COL2ROW", "processor": "STM32L422", "bootloader": "stm32-dfu", - "community_layouts": ["alice_split_bs"], + "community_layouts": ["alice", "alice_split_bs"], "layout_aliases": { "LAYOUT_all": "LAYOUT_alice_split_bs" }, "layouts": { + "LAYOUT_alice": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.25, "y": 0}, + {"matrix": [0, 6], "x": 6.25, "y": 0}, + {"matrix": [0, 7], "x": 7.25, "y": 0}, + + {"matrix": [0, 8], "x": 10.25, "y": 0}, + {"matrix": [0, 9], "x": 11.25, "y": 0}, + {"matrix": [0, 10], "x": 12.25, "y": 0}, + {"matrix": [0, 11], "x": 13.25, "y": 0}, + {"matrix": [0, 12], "x": 14.25, "y": 0}, + {"matrix": [0, 13], "x": 15.25, "y": 0}, + {"matrix": [0, 14], "x": 16.25, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + + {"matrix": [1, 1], "x": 1.25, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 2.75, "y": 1}, + {"matrix": [1, 3], "x": 3.75, "y": 1}, + {"matrix": [1, 4], "x": 4.75, "y": 1}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + + {"matrix": [1, 7], "x": 9.75, "y": 1}, + {"matrix": [1, 8], "x": 10.75, "y": 1}, + {"matrix": [1, 9], "x": 11.75, "y": 1}, + {"matrix": [1, 10], "x": 12.75, "y": 1}, + {"matrix": [1, 11], "x": 13.75, "y": 1}, + {"matrix": [1, 12], "x": 14.75, "y": 1}, + {"matrix": [1, 13], "x": 15.75, "y": 1}, + {"matrix": [1, 14], "x": 16.75, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3, "y": 2}, + {"matrix": [2, 3], "x": 4, "y": 2}, + {"matrix": [2, 4], "x": 5, "y": 2}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + + {"matrix": [2, 7], "x": 10, "y": 2}, + {"matrix": [2, 8], "x": 11, "y": 2}, + {"matrix": [2, 9], "x": 12, "y": 2}, + {"matrix": [2, 10], "x": 13, "y": 2}, + {"matrix": [2, 11], "x": 14, "y": 2}, + {"matrix": [2, 12], "x": 15, "y": 2}, + {"matrix": [2, 13], "x": 16, "y": 2, "w": 2.25}, + + {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.5, "y": 3}, + {"matrix": [3, 3], "x": 4.5, "y": 3}, + {"matrix": [3, 4], "x": 5.5, "y": 3}, + {"matrix": [3, 5], "x": 6.5, "y": 3}, + {"matrix": [3, 6], "x": 7.5, "y": 3}, + + {"matrix": [3, 7], "x": 9.5, "y": 3}, + {"matrix": [3, 8], "x": 10.5, "y": 3}, + {"matrix": [3, 9], "x": 11.5, "y": 3}, + {"matrix": [3, 10], "x": 12.5, "y": 3}, + {"matrix": [3, 11], "x": 13.5, "y": 3}, + {"matrix": [3, 12], "x": 14.5, "y": 3}, + {"matrix": [3, 13], "x": 15.5, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 17.25, "y": 3}, + + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5}, + {"matrix": [4, 3], "x": 4.25, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 5.75, "y": 4, "w": 2}, + {"matrix": [4, 6], "x": 7.75, "y": 4, "w": 1.25}, + {"matrix": [4, 8], "x": 9.5, "y": 4, "w": 2.75}, + {"matrix": [4, 10], "x": 12.25, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 16.75, "y": 4, "w": 1.5} + ] + }, "LAYOUT_alice_split_bs": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, diff --git a/keyboards/xelus/valor/rev2/matrix_diagram.md b/keyboards/xelus/valor/rev2/matrix_diagram.md new file mode 100644 index 0000000000..b8a071af53 --- /dev/null +++ b/keyboards/xelus/valor/rev2/matrix_diagram.md @@ -0,0 +1,21 @@ +# Matrix Diagram for Xelus Valor Rev. 2 + +``` + ┌───────┐ + 2u Backspace │0E │ + └───────┘ + ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┐ + │00 │ │01 │02 │03 │04 │05 │06 │07 │ │08 │09 │0A │0B │0C │0D │0E │2E │ + ┌┴──┬┘ ┌┴───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┐ + │10 │ │11 │12 │13 │14 │15 │16 │ │17 │18 │19 │1A │1B │1C │1D │1E │ +┌┴──┬┘ ┌┴─────┼───┼───┼───┼───┼───┤ └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴──────┴┐ +│20 │ │21 │22 │23 │24 │25 │26 │ │27 │28 │29 │2A │2B │2C │2D │ +└───┘ ┌┴──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┬──┴┐ + │31 │32 │33 │34 │35 │36 │ │37 │38 │39 │3A │3B │3C │3D │3E │ + ├─────┬──┴──┬┴───┴┬──┴───┴──┬┴──┐ ├───┴───┴──┬┴───┴┬──┴───┴──────┬──┴──┬┘ + │41 │ │43 │45 │46 │ │48 │4A │ │4D │ + └─────┘ └─────┴─────────┴───┘ └──────────┴─────┘ └─────┘ + ┌────────────┐ + 2.75u RShift │3D │ + └────────────┘ +``` diff --git a/keyboards/yiancardesigns/seigaiha/info.json b/keyboards/yiancardesigns/seigaiha/info.json index 26ab6ab528..91a0529e88 100644 --- a/keyboards/yiancardesigns/seigaiha/info.json +++ b/keyboards/yiancardesigns/seigaiha/info.json @@ -14,8 +14,247 @@ }, "processor": "atmega328p", "bootloader": "usbasploader", - "community_layouts": ["alice_split_bs"], + "community_layouts": ["alice", "alice_split_bs"], "layouts": { + "LAYOUT_alice": { + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 0}, + + {"matrix": [0, 0], "x": 1.25, "y": 0}, + {"matrix": [0, 1], "x": 2.25, "y": 0}, + {"matrix": [0, 2], "x": 3.25, "y": 0}, + {"matrix": [0, 3], "x": 4.25, "y": 0}, + {"matrix": [0, 4], "x": 5.25, "y": 0}, + {"matrix": [0, 5], "x": 6.25, "y": 0}, + {"matrix": [0, 6], "x": 7.25, "y": 0}, + + {"matrix": [0, 7], "x": 10.25, "y": 0}, + {"matrix": [0, 8], "x": 11.25, "y": 0}, + {"matrix": [0, 9], "x": 12.25, "y": 0}, + {"matrix": [0, 10], "x": 13.25, "y": 0}, + {"matrix": [0, 11], "x": 14.25, "y": 0}, + {"matrix": [0, 12], "x": 15.25, "y": 0}, + {"matrix": [0, 14], "x": 16.25, "y": 0, "w": 2}, + + {"matrix": [2, 0], "x": 0, "y": 1}, + + {"matrix": [1, 1], "x": 1.25, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 2.75, "y": 1}, + {"matrix": [1, 3], "x": 3.75, "y": 1}, + {"matrix": [1, 4], "x": 4.75, "y": 1}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + + {"matrix": [1, 7], "x": 9.75, "y": 1}, + {"matrix": [1, 8], "x": 10.75, "y": 1}, + {"matrix": [1, 9], "x": 11.75, "y": 1}, + {"matrix": [1, 10], "x": 12.75, "y": 1}, + {"matrix": [1, 11], "x": 13.75, "y": 1}, + {"matrix": [1, 12], "x": 14.75, "y": 1}, + {"matrix": [1, 13], "x": 15.75, "y": 1}, + {"matrix": [1, 14], "x": 16.75, "y": 1, "w": 1.5}, + + {"matrix": [3, 0], "x": 0, "y": 2}, + + {"matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3, "y": 2}, + {"matrix": [2, 3], "x": 4, "y": 2}, + {"matrix": [2, 4], "x": 5, "y": 2}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + + {"matrix": [2, 7], "x": 10, "y": 2}, + {"matrix": [2, 8], "x": 11, "y": 2}, + {"matrix": [2, 9], "x": 12, "y": 2}, + {"matrix": [2, 10], "x": 13, "y": 2}, + {"matrix": [2, 11], "x": 14, "y": 2}, + {"matrix": [2, 12], "x": 15, "y": 2}, + {"matrix": [2, 14], "x": 16, "y": 2, "w": 2.25}, + + {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.5, "y": 3}, + {"matrix": [3, 3], "x": 4.5, "y": 3}, + {"matrix": [3, 4], "x": 5.5, "y": 3}, + {"matrix": [3, 5], "x": 6.5, "y": 3}, + {"matrix": [3, 6], "x": 7.5, "y": 3}, + + {"matrix": [3, 7], "x": 9.5, "y": 3}, + {"matrix": [3, 8], "x": 10.5, "y": 3}, + {"matrix": [3, 9], "x": 11.5, "y": 3}, + {"matrix": [3, 10], "x": 12.5, "y": 3}, + {"matrix": [3, 11], "x": 13.5, "y": 3}, + {"matrix": [3, 12], "x": 14.5, "y": 3}, + {"matrix": [3, 13], "x": 15.5, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 17.25, "y": 3}, + + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5}, + {"matrix": [4, 3], "x": 4.25, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 5.75, "y": 4, "w": 2}, + {"matrix": [4, 6], "x": 7.75, "y": 4, "w": 1.25}, + {"matrix": [4, 8], "x": 9.5, "y": 4, "w": 2.75}, + {"matrix": [4, 10], "x": 12.25, "y": 4, "w": 1.5}, + {"matrix": [4, 14], "x": 16.75, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_alice_rshift": { + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 0}, + + {"matrix": [0, 0], "x": 1.25, "y": 0}, + {"matrix": [0, 1], "x": 2.25, "y": 0}, + {"matrix": [0, 2], "x": 3.25, "y": 0}, + {"matrix": [0, 3], "x": 4.25, "y": 0}, + {"matrix": [0, 4], "x": 5.25, "y": 0}, + {"matrix": [0, 5], "x": 6.25, "y": 0}, + {"matrix": [0, 6], "x": 7.25, "y": 0}, + + {"matrix": [0, 7], "x": 10.25, "y": 0}, + {"matrix": [0, 8], "x": 11.25, "y": 0}, + {"matrix": [0, 9], "x": 12.25, "y": 0}, + {"matrix": [0, 10], "x": 13.25, "y": 0}, + {"matrix": [0, 11], "x": 14.25, "y": 0}, + {"matrix": [0, 12], "x": 15.25, "y": 0}, + {"matrix": [0, 14], "x": 16.25, "y": 0, "w": 2}, + + {"matrix": [2, 0], "x": 0, "y": 1}, + + {"matrix": [1, 1], "x": 1.25, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 2.75, "y": 1}, + {"matrix": [1, 3], "x": 3.75, "y": 1}, + {"matrix": [1, 4], "x": 4.75, "y": 1}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + + {"matrix": [1, 7], "x": 9.75, "y": 1}, + {"matrix": [1, 8], "x": 10.75, "y": 1}, + {"matrix": [1, 9], "x": 11.75, "y": 1}, + {"matrix": [1, 10], "x": 12.75, "y": 1}, + {"matrix": [1, 11], "x": 13.75, "y": 1}, + {"matrix": [1, 12], "x": 14.75, "y": 1}, + {"matrix": [1, 13], "x": 15.75, "y": 1}, + {"matrix": [1, 14], "x": 16.75, "y": 1, "w": 1.5}, + + {"matrix": [3, 0], "x": 0, "y": 2}, + + {"matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3, "y": 2}, + {"matrix": [2, 3], "x": 4, "y": 2}, + {"matrix": [2, 4], "x": 5, "y": 2}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + + {"matrix": [2, 7], "x": 10, "y": 2}, + {"matrix": [2, 8], "x": 11, "y": 2}, + {"matrix": [2, 9], "x": 12, "y": 2}, + {"matrix": [2, 10], "x": 13, "y": 2}, + {"matrix": [2, 11], "x": 14, "y": 2}, + {"matrix": [2, 12], "x": 15, "y": 2}, + {"matrix": [2, 14], "x": 16, "y": 2, "w": 2.25}, + + {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.5, "y": 3}, + {"matrix": [3, 3], "x": 4.5, "y": 3}, + {"matrix": [3, 4], "x": 5.5, "y": 3}, + {"matrix": [3, 5], "x": 6.5, "y": 3}, + {"matrix": [3, 6], "x": 7.5, "y": 3}, + + {"matrix": [3, 7], "x": 9.5, "y": 3}, + {"matrix": [3, 8], "x": 10.5, "y": 3}, + {"matrix": [3, 9], "x": 11.5, "y": 3}, + {"matrix": [3, 10], "x": 12.5, "y": 3}, + {"matrix": [3, 11], "x": 13.5, "y": 3}, + {"matrix": [3, 12], "x": 14.5, "y": 3}, + {"matrix": [3, 13], "x": 15.5, "y": 3, "w": 2.75}, + + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5}, + {"matrix": [4, 3], "x": 4.25, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 5.75, "y": 4, "w": 2}, + {"matrix": [4, 6], "x": 7.75, "y": 4, "w": 1.25}, + {"matrix": [4, 8], "x": 9.5, "y": 4, "w": 2.75}, + {"matrix": [4, 10], "x": 12.25, "y": 4, "w": 1.5}, + {"matrix": [4, 14], "x": 16.75, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_alice_rshift_split_bs": { + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 0}, + + {"matrix": [0, 0], "x": 1.25, "y": 0}, + {"matrix": [0, 1], "x": 2.25, "y": 0}, + {"matrix": [0, 2], "x": 3.25, "y": 0}, + {"matrix": [0, 3], "x": 4.25, "y": 0}, + {"matrix": [0, 4], "x": 5.25, "y": 0}, + {"matrix": [0, 5], "x": 6.25, "y": 0}, + {"matrix": [0, 6], "x": 7.25, "y": 0}, + + {"matrix": [0, 7], "x": 10.25, "y": 0}, + {"matrix": [0, 8], "x": 11.25, "y": 0}, + {"matrix": [0, 9], "x": 12.25, "y": 0}, + {"matrix": [0, 10], "x": 13.25, "y": 0}, + {"matrix": [0, 11], "x": 14.25, "y": 0}, + {"matrix": [0, 12], "x": 15.25, "y": 0}, + {"matrix": [0, 13], "x": 16.25, "y": 0}, + {"matrix": [0, 14], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1}, + + {"matrix": [1, 1], "x": 1.25, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 2.75, "y": 1}, + {"matrix": [1, 3], "x": 3.75, "y": 1}, + {"matrix": [1, 4], "x": 4.75, "y": 1}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + + {"matrix": [1, 7], "x": 9.75, "y": 1}, + {"matrix": [1, 8], "x": 10.75, "y": 1}, + {"matrix": [1, 9], "x": 11.75, "y": 1}, + {"matrix": [1, 10], "x": 12.75, "y": 1}, + {"matrix": [1, 11], "x": 13.75, "y": 1}, + {"matrix": [1, 12], "x": 14.75, "y": 1}, + {"matrix": [1, 13], "x": 15.75, "y": 1}, + {"matrix": [1, 14], "x": 16.75, "y": 1, "w": 1.5}, + + {"matrix": [3, 0], "x": 0, "y": 2}, + + {"matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3, "y": 2}, + {"matrix": [2, 3], "x": 4, "y": 2}, + {"matrix": [2, 4], "x": 5, "y": 2}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + + {"matrix": [2, 7], "x": 10, "y": 2}, + {"matrix": [2, 8], "x": 11, "y": 2}, + {"matrix": [2, 9], "x": 12, "y": 2}, + {"matrix": [2, 10], "x": 13, "y": 2}, + {"matrix": [2, 11], "x": 14, "y": 2}, + {"matrix": [2, 12], "x": 15, "y": 2}, + {"matrix": [2, 14], "x": 16, "y": 2, "w": 2.25}, + + {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.5, "y": 3}, + {"matrix": [3, 3], "x": 4.5, "y": 3}, + {"matrix": [3, 4], "x": 5.5, "y": 3}, + {"matrix": [3, 5], "x": 6.5, "y": 3}, + {"matrix": [3, 6], "x": 7.5, "y": 3}, + + {"matrix": [3, 7], "x": 9.5, "y": 3}, + {"matrix": [3, 8], "x": 10.5, "y": 3}, + {"matrix": [3, 9], "x": 11.5, "y": 3}, + {"matrix": [3, 10], "x": 12.5, "y": 3}, + {"matrix": [3, 11], "x": 13.5, "y": 3}, + {"matrix": [3, 12], "x": 14.5, "y": 3}, + {"matrix": [3, 13], "x": 15.5, "y": 3, "w": 2.75}, + + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5}, + {"matrix": [4, 3], "x": 4.25, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 5.75, "y": 4, "w": 2}, + {"matrix": [4, 6], "x": 7.75, "y": 4, "w": 1.25}, + {"matrix": [4, 8], "x": 9.5, "y": 4, "w": 2.75}, + {"matrix": [4, 10], "x": 12.25, "y": 4, "w": 1.5}, + {"matrix": [4, 14], "x": 16.75, "y": 4, "w": 1.5} + ] + }, "LAYOUT_alice_split_bs": { "layout": [ {"matrix": [1, 0], "x": 0, "y": 0}, diff --git a/keyboards/yiancardesigns/seigaiha/matrix_diagram.md b/keyboards/yiancardesigns/seigaiha/matrix_diagram.md new file mode 100644 index 0000000000..7ab40f87f0 --- /dev/null +++ b/keyboards/yiancardesigns/seigaiha/matrix_diagram.md @@ -0,0 +1,21 @@ +# Matrix Diagram for Yiancar-Designs Seigaiha + +``` + ┌───────┐ + 2u Backspace │0E │ + └───────┘ + ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┐ + │10 │ │00 │01 │02 │03 │04 │05 │06 │ │07 │08 │09 │0A │0B │0C │0D │0E │ + ┌┴──┬┘ ┌┴───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┐ + │20 │ │11 │12 │13 │14 │15 │16 │ │17 │18 │19 │1A │1B │1C │1D │1E │ +┌┴──┬┘ ┌┴─────┼───┼───┼───┼───┼───┤ └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴──────┴┐ +│30 │ │21 │22 │23 │24 │25 │26 │ │27 │28 │29 │2A │2B │2C │2E │ +└───┘ ┌┴──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┬──┴┐ + │31 │32 │33 │34 │35 │36 │ │37 │38 │39 │3A │3B │3C │3D │3E │ + ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴──┐ ├───┴───┴──┬┴───┴┬──┴───┴──────┬──┴──┬┘ + │41 │ │43 │45 │46 │ │48 │4A │ │4E │ + └─────┘ └─────┴───────┴─────┘ └──────────┴─────┘ └─────┘ + ┌────────────┐ + 2.75u RShift │3D │ + └────────────┘ +``` From 62ff02a101d0f69214754d4edeb583dddf14dd20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=E1=BA=AFn?= <59417802+MaiTheSan@users.noreply.github.com> Date: Fri, 13 Oct 2023 14:53:12 +0700 Subject: [PATCH 282/496] [Keyboard] Add Okayu (#22077) Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Duncan Sutherland Co-authored-by: Drashna Jaelre --- keyboards/sawnsprojects/okayu/halconf.h | 9 + keyboards/sawnsprojects/okayu/info.json | 766 ++++++++++++++++++ .../okayu/keymaps/default/keymap.c | 42 + .../sawnsprojects/okayu/keymaps/via/keymap.c | 42 + .../sawnsprojects/okayu/keymaps/via/rules.mk | 1 + keyboards/sawnsprojects/okayu/readme.md | 27 + keyboards/sawnsprojects/okayu/rules.mk | 1 + .../sawnsprojects/okayu/stm32f072/config.h | 8 + .../sawnsprojects/okayu/stm32f072/info.json | 4 + .../sawnsprojects/okayu/stm32f072/mcuconf.h | 8 + .../sawnsprojects/okayu/stm32f072/rules.mk | 0 .../sawnsprojects/okayu/stm32f103/config.h | 8 + .../sawnsprojects/okayu/stm32f103/info.json | 3 + .../sawnsprojects/okayu/stm32f103/mcuconf.h | 8 + .../sawnsprojects/okayu/stm32f103/rules.mk | 0 .../sawnsprojects/okayu/stm32f303/config.h | 8 + .../sawnsprojects/okayu/stm32f303/info.json | 4 + .../sawnsprojects/okayu/stm32f303/mcuconf.h | 8 + .../sawnsprojects/okayu/stm32f303/rules.mk | 0 19 files changed, 947 insertions(+) create mode 100644 keyboards/sawnsprojects/okayu/halconf.h create mode 100644 keyboards/sawnsprojects/okayu/info.json create mode 100644 keyboards/sawnsprojects/okayu/keymaps/default/keymap.c create mode 100644 keyboards/sawnsprojects/okayu/keymaps/via/keymap.c create mode 100644 keyboards/sawnsprojects/okayu/keymaps/via/rules.mk create mode 100644 keyboards/sawnsprojects/okayu/readme.md create mode 100644 keyboards/sawnsprojects/okayu/rules.mk create mode 100644 keyboards/sawnsprojects/okayu/stm32f072/config.h create mode 100644 keyboards/sawnsprojects/okayu/stm32f072/info.json create mode 100644 keyboards/sawnsprojects/okayu/stm32f072/mcuconf.h create mode 100644 keyboards/sawnsprojects/okayu/stm32f072/rules.mk create mode 100644 keyboards/sawnsprojects/okayu/stm32f103/config.h create mode 100644 keyboards/sawnsprojects/okayu/stm32f103/info.json create mode 100644 keyboards/sawnsprojects/okayu/stm32f103/mcuconf.h create mode 100644 keyboards/sawnsprojects/okayu/stm32f103/rules.mk create mode 100644 keyboards/sawnsprojects/okayu/stm32f303/config.h create mode 100644 keyboards/sawnsprojects/okayu/stm32f303/info.json create mode 100644 keyboards/sawnsprojects/okayu/stm32f303/mcuconf.h create mode 100644 keyboards/sawnsprojects/okayu/stm32f303/rules.mk diff --git a/keyboards/sawnsprojects/okayu/halconf.h b/keyboards/sawnsprojects/okayu/halconf.h new file mode 100644 index 0000000000..eb4e81c9ac --- /dev/null +++ b/keyboards/sawnsprojects/okayu/halconf.h @@ -0,0 +1,9 @@ +// Copyright 2023 MaiTheSan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD +#include_next diff --git a/keyboards/sawnsprojects/okayu/info.json b/keyboards/sawnsprojects/okayu/info.json new file mode 100644 index 0000000000..8974359036 --- /dev/null +++ b/keyboards/sawnsprojects/okayu/info.json @@ -0,0 +1,766 @@ +{ + "keyboard_name": "Okayu", + "manufacturer": "Salane", + "url": "", + "maintainer": "Mai The San", + "usb": { + "vid": "0x5350", + "pid": "0x00A1", + "device_version": "1.0.0", + "force_nkro": true + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": false, + "nkro": true, + "rgblight": true + }, + "community_layouts": [ + "60_ansi", + "60_ansi_split_bs_rshift", + "60_ansi_tsangan", + "60_tsangan_hhkb", + "60_hhkb", + "60_iso", + "60_iso_split_bs_rshift", + "60_iso_tsangan" + ], + "matrix_pins": { + "cols": ["A9", "A0", "A8", "C13", "A1", "A2", "B11", "B10", "B1", "B0", "A7", "A6", "A5", "A4"], + "rows": ["B3", "A15", "A3", "A10", "B14"] + }, + "diode_direction": "COL2ROW", + "indicators": { + "caps_lock": "B12", + "on_state": 0 + }, + "ws2812": { + "pin": "B15", + "driver": "spi" + }, + "rgblight": { + "led_count": 24, + "sleep": true, + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + } + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K01", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "K05", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "K09", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "K2D", "matrix": [2, 13], "x": 14, "y": 0}, + + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "K11", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "K12", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "K13", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "K14", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "K15", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "K16", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "K17", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "K18", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "K19", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "K1A", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "K1B", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "K1C", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "K1D", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "K21", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "K22", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "K23", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "K24", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "K25", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "K26", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "K27", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K28", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "K29", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "K2A", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "K2B", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "K2C", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "K31", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "K32", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "K33", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "K34", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "K35", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "K36", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "K37", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "K38", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "K39", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": "K3A", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "K3B", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "K3C", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "K3D", "matrix": [3, 13], "x": 14, "y": 3}, + + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "K41", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "K42", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "K46", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "K4A", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "K4C", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "K4D", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K01", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "K05", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "K09", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "K11", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "K12", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "K13", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "K14", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "K15", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "K16", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "K17", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "K18", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "K19", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "K1A", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "K1B", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "K1C", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "K1D", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "K21", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "K22", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "K23", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "K24", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "K25", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "K26", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "K27", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K28", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "K29", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "K2A", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "K2B", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "K2C", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "K32", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "K33", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "K34", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "K35", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "K36", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "K37", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "K38", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "K39", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": "K3A", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "K3B", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "K3C", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "K41", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "K42", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "K46", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "K4A", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "K4C", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "K4D", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K01", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "K05", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "K09", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "K2D", "matrix": [2, 13], "x": 14, "y": 0}, + + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "K11", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "K12", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "K13", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "K14", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "K15", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "K16", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "K17", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "K18", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "K19", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "K1A", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "K1B", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "K1C", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "K1D", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "K21", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "K22", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "K23", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "K24", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "K25", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "K26", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "K27", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K28", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "K29", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "K2A", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "K2B", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "K2C", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "K32", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "K33", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "K34", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "K35", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "K36", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "K37", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "K38", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "K39", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": "K3A", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "K3B", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "K3C", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "K3D", "matrix": [3, 13], "x": 14, "y": 3}, + + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "K41", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "K42", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "K46", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "K4A", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "K4C", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "K4D", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K01", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "K05", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "K09", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "K11", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "K12", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "K13", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "K14", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "K15", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "K16", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "K17", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "K18", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "K19", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "K1A", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "K1B", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "K1C", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "K1D", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "K21", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "K22", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "K23", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "K24", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "K25", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "K26", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "K27", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K28", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "K29", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "K2A", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "K2B", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "K2C", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "K32", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "K33", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "K34", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "K35", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "K36", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "K37", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "K38", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "K39", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": "K3A", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "K3B", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "K3C", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "K41", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "K42", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "K46", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "K4B", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "K4C", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "K4D", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K01", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "K05", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "K09", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "K2D", "matrix": [2, 13], "x": 14, "y": 0}, + + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "K11", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "K12", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "K13", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "K14", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "K15", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "K16", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "K17", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "K18", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "K19", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "K1A", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "K1B", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "K1C", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "K1D", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "K21", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "K22", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "K23", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "K24", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "K25", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "K26", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "K27", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K28", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "K29", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "K2A", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "K2B", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "K2C", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "K32", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "K33", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "K34", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "K35", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "K36", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "K37", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "K38", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "K39", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": "K3A", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "K3B", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "K3C", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "K3D", "matrix": [3, 13], "x": 14, "y": 3}, + + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "K41", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "K42", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "K46", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "K4B", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "K4C", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "K4D", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K01", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "K05", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "K09", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "K2D", "matrix": [2, 13], "x": 14, "y": 0}, + + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "K11", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "K12", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "K13", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "K14", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "K15", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "K16", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "K17", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "K18", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "K19", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "K1A", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "K1B", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "K1C", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "K1D", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "K21", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "K22", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "K23", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "K24", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "K25", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "K26", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "K27", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K28", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "K29", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "K2A", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "K2B", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "K2C", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "K32", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "K33", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "K34", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "K35", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "K36", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "K37", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "K38", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "K39", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": "K3A", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "K3B", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "K3C", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "K3D", "matrix": [3, 13], "x": 14, "y": 3}, + + {"label": "K41", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "K42", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "K46", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "K4B", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "K4C", "matrix": [4, 12], "x": 12.5, "y": 4} + ] + }, + "LAYOUT_60_iso": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K01", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "K05", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "K09", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "K11", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "K12", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "K13", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "K14", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "K15", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "K16", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "K17", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "K18", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "K19", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "K1A", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "K1B", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "K1C", "matrix": [1, 12], "x": 12.5, "y": 1}, + + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "K21", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "K22", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "K23", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "K24", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "K25", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "K26", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "K27", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K28", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "K29", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "K2A", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "K2B", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "K1D", "matrix": [1, 13], "x": 12.75, "y": 2}, + + {"label": "K2C", "matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "K31", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "K32", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "K33", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "K34", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "K35", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "K36", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "K37", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "K38", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "K39", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": "K3A", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "K3B", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "K3C", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "K41", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "K42", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "K46", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "K4A", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "K4C", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "K4D", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K01", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "K05", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "K09", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "K2D", "matrix": [2, 13], "x": 14, "y": 0}, + + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "K11", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "K12", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "K13", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "K14", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "K15", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "K16", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "K17", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "K18", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "K19", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "K1A", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "K1B", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "K1C", "matrix": [1, 12], "x": 12.5, "y": 1}, + + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "K21", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "K22", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "K23", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "K24", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "K25", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "K26", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "K27", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K28", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "K29", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "K2A", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "K2B", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "K1D", "matrix": [1, 13], "x": 12.75, "y": 2}, + + {"label": "K2C", "matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "K31", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "K32", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "K33", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "K34", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "K35", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "K36", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "K37", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "K38", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "K39", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": "K3A", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "K3B", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "K3C", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "K3D", "matrix": [3, 13], "x": 14, "y": 3}, + + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "K41", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "K42", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "K46", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "K4A", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "K4C", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "K4D", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_tsangan": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K01", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "K05", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "K09", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "K11", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "K12", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "K13", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "K14", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "K15", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "K16", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "K17", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "K18", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "K19", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "K1A", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "K1B", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "K1C", "matrix": [1, 12], "x": 12.5, "y": 1}, + + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "K21", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "K22", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "K23", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "K24", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "K25", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "K26", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "K27", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K28", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "K29", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "K2A", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "K2B", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "K1D", "matrix": [1, 13], "x": 12.75, "y": 2}, + + {"label": "K2C", "matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "K31", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "K32", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "K33", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "K34", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "K35", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "K36", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "K37", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "K38", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "K39", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": "K3A", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "K3B", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "K3C", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "K41", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "K42", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "K46", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "K4B", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "K4C", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "K4D", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_tsangan_split_bs_rshift": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K01", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "K05", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "K09", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "K2D", "matrix": [2, 13], "x": 14, "y": 0}, + + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "K11", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "K12", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "K13", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "K14", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "K15", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "K16", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "K17", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "K18", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "K19", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "K1A", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "K1B", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "K1C", "matrix": [1, 12], "x": 12.5, "y": 1}, + + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "K21", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "K22", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "K23", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "K24", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "K25", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "K26", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "K27", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K28", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "K29", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "K2A", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "K2B", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "K1D", "matrix": [1, 13], "x": 12.75, "y": 2}, + + {"label": "K2C", "matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "K31", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "K32", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "K33", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "K34", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "K35", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "K36", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "K37", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "K38", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "K39", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": "K3A", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "K3B", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "K3C", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "K3D", "matrix": [3, 13], "x": 14, "y": 3}, + + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "K41", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "K42", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "K46", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "K4B", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "K4C", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "K4D", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/sawnsprojects/okayu/keymaps/default/keymap.c b/keyboards/sawnsprojects/okayu/keymaps/default/keymap.c new file mode 100644 index 0000000000..f5290a5006 --- /dev/null +++ b/keyboards/sawnsprojects/okayu/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +// Copyright 2023 MaiTheSan (@maithesan) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum { + _BL, + _FL, + _AL, + _CL, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_BL] = LAYOUT_all( + QK_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_BSPC, KC_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TG(_AL), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(_FL), KC_RALT, KC_RGUI, KC_RCTL), + +[_FL] = LAYOUT_all( + 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_DEL, KC_DEL, + BL_TOGG, BL_UP, BL_DOWN, BL_STEP, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, + VK_TOGG, _______, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, + _______, _______, _______, MO(_CL), _______, _______, _______, _______), + +[_AL] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, + _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT), + +[_CL] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, EE_CLR, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______) + + }; diff --git a/keyboards/sawnsprojects/okayu/keymaps/via/keymap.c b/keyboards/sawnsprojects/okayu/keymaps/via/keymap.c new file mode 100644 index 0000000000..f5290a5006 --- /dev/null +++ b/keyboards/sawnsprojects/okayu/keymaps/via/keymap.c @@ -0,0 +1,42 @@ +// Copyright 2023 MaiTheSan (@maithesan) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum { + _BL, + _FL, + _AL, + _CL, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_BL] = LAYOUT_all( + QK_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_BSPC, KC_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TG(_AL), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(_FL), KC_RALT, KC_RGUI, KC_RCTL), + +[_FL] = LAYOUT_all( + 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_DEL, KC_DEL, + BL_TOGG, BL_UP, BL_DOWN, BL_STEP, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, + VK_TOGG, _______, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, + _______, _______, _______, MO(_CL), _______, _______, _______, _______), + +[_AL] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, + _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT), + +[_CL] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, EE_CLR, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______) + + }; diff --git a/keyboards/sawnsprojects/okayu/keymaps/via/rules.mk b/keyboards/sawnsprojects/okayu/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/sawnsprojects/okayu/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/sawnsprojects/okayu/readme.md b/keyboards/sawnsprojects/okayu/readme.md new file mode 100644 index 0000000000..d49415865b --- /dev/null +++ b/keyboards/sawnsprojects/okayu/readme.md @@ -0,0 +1,27 @@ +# Okayu + +![Okayu](https://i.imgur.com/pRnRHl8h.png) + +A Wibu 60% keyboard PCB Design by inspire of Nekomata Okayu and can fit many keyboard case + +* Keyboard Maintainer: [Mai The San](https://github.com/maithesan) +* Hardware Supported: Several 60% keyboard (RE60, Krush60, Unikorn, Tinyneko, Bakeneko60...) +* Hardware Availability: NuxrosKB, Salane Discord + +Make example for this keyboard (after setting up your build environment): + + make sawnsprojects/okayu:default + +Flashing example for this keyboard: + + make sawnsprojects/okayu:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/sawnsprojects/okayu/rules.mk b/keyboards/sawnsprojects/okayu/rules.mk new file mode 100644 index 0000000000..59655554eb --- /dev/null +++ b/keyboards/sawnsprojects/okayu/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = sawnsprojects/okayu/stm32f072 \ No newline at end of file diff --git a/keyboards/sawnsprojects/okayu/stm32f072/config.h b/keyboards/sawnsprojects/okayu/stm32f072/config.h new file mode 100644 index 0000000000..c47f1928c8 --- /dev/null +++ b/keyboards/sawnsprojects/okayu/stm32f072/config.h @@ -0,0 +1,8 @@ +// Copyright 2023 MaiTheSan +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define WS2812_SPI SPID1 +#define WS2812_SPI_MOSI_PAL_MODE 5 +#define WS2812_SPI_SCK_PIN B13 +#define WS2812_SPI_SCK_PAL_MODE 5 \ No newline at end of file diff --git a/keyboards/sawnsprojects/okayu/stm32f072/info.json b/keyboards/sawnsprojects/okayu/stm32f072/info.json new file mode 100644 index 0000000000..b5d728b1cd --- /dev/null +++ b/keyboards/sawnsprojects/okayu/stm32f072/info.json @@ -0,0 +1,4 @@ +{ + "processor": "STM32F072", + "bootloader": "stm32-dfu", +} diff --git a/keyboards/sawnsprojects/okayu/stm32f072/mcuconf.h b/keyboards/sawnsprojects/okayu/stm32f072/mcuconf.h new file mode 100644 index 0000000000..7cd72d9a86 --- /dev/null +++ b/keyboards/sawnsprojects/okayu/stm32f072/mcuconf.h @@ -0,0 +1,8 @@ +// Copyright 2023 MaiTheSan +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE diff --git a/keyboards/sawnsprojects/okayu/stm32f072/rules.mk b/keyboards/sawnsprojects/okayu/stm32f072/rules.mk new file mode 100644 index 0000000000..e69de29bb2 diff --git a/keyboards/sawnsprojects/okayu/stm32f103/config.h b/keyboards/sawnsprojects/okayu/stm32f103/config.h new file mode 100644 index 0000000000..eff3605470 --- /dev/null +++ b/keyboards/sawnsprojects/okayu/stm32f103/config.h @@ -0,0 +1,8 @@ +// Copyright 2023 MaiTheSan +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define WS2812_SPI SPID2 +#define WS2812_SPI_MOSI_PAL_MODE 5 +#define WS2812_SPI_SCK_PIN B13 +#define WS2812_SPI_SCK_PAL_MODE 5 \ No newline at end of file diff --git a/keyboards/sawnsprojects/okayu/stm32f103/info.json b/keyboards/sawnsprojects/okayu/stm32f103/info.json new file mode 100644 index 0000000000..31fd483f66 --- /dev/null +++ b/keyboards/sawnsprojects/okayu/stm32f103/info.json @@ -0,0 +1,3 @@ +{ + "development_board": "bluepill" +} diff --git a/keyboards/sawnsprojects/okayu/stm32f103/mcuconf.h b/keyboards/sawnsprojects/okayu/stm32f103/mcuconf.h new file mode 100644 index 0000000000..8ab476c663 --- /dev/null +++ b/keyboards/sawnsprojects/okayu/stm32f103/mcuconf.h @@ -0,0 +1,8 @@ +// Copyright 2023 MaiTheSan +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/sawnsprojects/okayu/stm32f103/rules.mk b/keyboards/sawnsprojects/okayu/stm32f103/rules.mk new file mode 100644 index 0000000000..e69de29bb2 diff --git a/keyboards/sawnsprojects/okayu/stm32f303/config.h b/keyboards/sawnsprojects/okayu/stm32f303/config.h new file mode 100644 index 0000000000..c47f1928c8 --- /dev/null +++ b/keyboards/sawnsprojects/okayu/stm32f303/config.h @@ -0,0 +1,8 @@ +// Copyright 2023 MaiTheSan +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define WS2812_SPI SPID1 +#define WS2812_SPI_MOSI_PAL_MODE 5 +#define WS2812_SPI_SCK_PIN B13 +#define WS2812_SPI_SCK_PAL_MODE 5 \ No newline at end of file diff --git a/keyboards/sawnsprojects/okayu/stm32f303/info.json b/keyboards/sawnsprojects/okayu/stm32f303/info.json new file mode 100644 index 0000000000..84661311fd --- /dev/null +++ b/keyboards/sawnsprojects/okayu/stm32f303/info.json @@ -0,0 +1,4 @@ +{ + "processor": "STM32F303", + "bootloader": "stm32-dfu" +} \ No newline at end of file diff --git a/keyboards/sawnsprojects/okayu/stm32f303/mcuconf.h b/keyboards/sawnsprojects/okayu/stm32f303/mcuconf.h new file mode 100644 index 0000000000..7cd72d9a86 --- /dev/null +++ b/keyboards/sawnsprojects/okayu/stm32f303/mcuconf.h @@ -0,0 +1,8 @@ +// Copyright 2023 MaiTheSan +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE diff --git a/keyboards/sawnsprojects/okayu/stm32f303/rules.mk b/keyboards/sawnsprojects/okayu/stm32f303/rules.mk new file mode 100644 index 0000000000..e69de29bb2 From 539c8e3b721c82372c39bc49306647f65968fcb9 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 14 Oct 2023 07:02:44 +1100 Subject: [PATCH 283/496] jian/rev1: convert to DIP Switch (#22248) --- keyboards/jian/keymaps/advanced/config.h | 2 + keyboards/jian/keymaps/advanced/keymap.c | 141 +++++++++++------------ keyboards/jian/rev1/config.h | 6 +- keyboards/jian/rev1/info.json | 17 --- keyboards/jian/rev1/rules.mk | 1 + 5 files changed, 77 insertions(+), 90 deletions(-) diff --git a/keyboards/jian/keymaps/advanced/config.h b/keyboards/jian/keymaps/advanced/config.h index 1a033d8311..edeab03fb1 100644 --- a/keyboards/jian/keymaps/advanced/config.h +++ b/keyboards/jian/keymaps/advanced/config.h @@ -24,3 +24,5 @@ along with this program. If not, see . //#define AUTO_SHIFT_MODIFIERS #define ALT_LAYOUTS_ENABLE //#define TRAINING_HALFES_LOCK + +#define LAYER_STATE_32BIT diff --git a/keyboards/jian/keymaps/advanced/keymap.c b/keyboards/jian/keymaps/advanced/keymap.c index a825e061b5..4a6fdec063 100644 --- a/keyboards/jian/keymaps/advanced/keymap.c +++ b/keyboards/jian/keymaps/advanced/keymap.c @@ -86,9 +86,6 @@ enum jian_layers { _LEFT, _RIGHT, #endif //TRAINING_HALFES_LOCK -#ifdef DIPS_ENABLE - _DIPS, -#endif // DIPS_ENABLE #ifdef STENO_ENABLE _PLOVER #endif // STENO_ENABLE @@ -107,7 +104,7 @@ enum jian_keycodes { CH_QWE, CH_DVK, //endif // ALT_LAYOUTS_ENABLE -#ifdef DIPS_ENABLE +#ifdef DIP_SWITCH_ENABLE LAYOUT0, LAYOUT1, LAYOUT2, @@ -120,18 +117,18 @@ enum jian_keycodes { DIP9, DIP10, DIP11, -#endif // DIPS_ENABLE +#endif // DIP_SWITCH_ENABLE }; #ifdef TRAINING_HALFES_LOCK static uint8_t lock_timeout = 1; static uint8_t lock_cooldown = 0; #endif //TRAINING_HALFES_LOCK -#ifdef DIPS_ENABLE +#ifdef DIP_SWITCH_ENABLE #ifdef ALT_LAYOUTS_ENABLE static uint8_t layout_conversion_dip_state = 0; #endif // ALT_LAYOUTS_ENABLE -#endif // DIPS_ENABLE +#endif // DIP_SWITCH_ENABLE #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) @@ -190,13 +187,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT_base_wrapper(QWERTY_base), -#ifdef DIPS_ENABLE -[_DIPS] = LAYOUT_dips( - LAYOUT0, LAYOUT1, LAYOUT2, LAYOUT3, DIP_ISO, FLIP_TH, - LAYOUT0, LAYOUT1, LAYOUT2, LAYOUT3, DIP_ISO, FLIP_TH -), -#endif // DIPS_ENABLE - [_LOWER] = LAYOUT( _______, KC_UNDS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, F12_RGU, EQL_LCT, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, MIN_RCT, @@ -282,7 +272,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } -#ifdef DIPS_ENABLE +#ifdef DIP_SWITCH_ENABLE #ifdef ALT_LAYOUTS_ENABLE void layout_convert(uint8_t statuses) { switch (0b1111 & statuses) { @@ -337,13 +327,7 @@ void layout_convert(uint8_t statuses) { } } #endif // ALT_LAYOUTS_ENABLE -#endif // DIPS_ENABLE - -void matrix_init_user(void) { -#ifdef DIPS_ENABLE - layer_on(_DIPS); -#endif // DIPS_ENABLE -} +#endif // DIP_SWITCH_ENABLE void keyboard_post_init_user(void) { user_config.raw = eeconfig_read_user(); @@ -515,56 +499,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; #endif // ALT_LAYOUTS_ENABLE -#ifdef DIPS_ENABLE -#ifdef ALT_LAYOUTS_ENABLE - case LAYOUT0: - if (record->event.pressed) { - layout_conversion_dip_state |= 1 << 0; - } else { - layout_conversion_dip_state &= ~(1 << 0); - } - layout_convert(layout_conversion_dip_state); - return false; - case LAYOUT1: - if (record->event.pressed) { - layout_conversion_dip_state |= 1 << 1; - } else { - layout_conversion_dip_state &= ~(1 << 1); - } - layout_convert(layout_conversion_dip_state); - return false; - case LAYOUT2: - if (record->event.pressed) { - layout_conversion_dip_state |= 1 << 2; - } else { - layout_conversion_dip_state &= ~(1 << 2); - } - layout_convert(layout_conversion_dip_state); - return false; - case LAYOUT3: - if (record->event.pressed) { - layout_conversion_dip_state |= 1 << 3; - } else { - layout_conversion_dip_state &= ~(1 << 3); - } - layout_convert(layout_conversion_dip_state); - return false; -#endif // ALT_LAYOUTS_ENABLE - case DIP_ISO: - if (record->event.pressed) { - layer_on(_ISO); - } else { - layer_off(_ISO); - } - return false; - case FLIP_TH: - if (record->event.pressed) { - layer_on(_THUMB_ALT); - } else { - layer_off(_THUMB_ALT); - } - return false; -#endif // DIPS_ENABLE case THUMB_ALT: if (record->event.pressed) { layer_invert(_THUMB_ALT); @@ -582,3 +516,66 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } + +#if defined(DIP_SWITCH_ENABLE) +bool dip_switch_update_user(uint8_t index, bool active) { + switch (index) { +# if defined(ALT_LAYOUTS_ENABLE) + case 0: // LAYOUT0 + case 6: + if (active) { + layout_conversion_dip_state |= 1 << 0; + } else { + layout_conversion_dip_state &= ~(1 << 0); + } + layout_convert(layout_conversion_dip_state); + break; + case 1: // LAYOUT1 + case 7: + if (active) { + layout_conversion_dip_state |= 1 << 1; + } else { + layout_conversion_dip_state &= ~(1 << 1); + } + layout_convert(layout_conversion_dip_state); + break; + case 2: // LAYOUT2 + case 8: + if (active) { + layout_conversion_dip_state |= 1 << 2; + } else { + layout_conversion_dip_state &= ~(1 << 2); + } + layout_convert(layout_conversion_dip_state); + break; + case 3: // LAYOUT3 + case 9: + if (active) { + layout_conversion_dip_state |= 1 << 3; + } else { + layout_conversion_dip_state &= ~(1 << 3); + } + layout_convert(layout_conversion_dip_state); + break; + case 4: // DIP_ISO + case 10: + if (active) { + layer_on(_ISO); + } else { + layer_off(_ISO); + } + break; + case 5: // FLIP_TH + case 11: + if (active) { + layer_on(_THUMB_ALT); + } else { + layer_off(_THUMB_ALT); + } + break; +# endif + } + + return true; +} +#endif diff --git a/keyboards/jian/rev1/config.h b/keyboards/jian/rev1/config.h index 8f1a34c2ff..980f27c7cc 100644 --- a/keyboards/jian/rev1/config.h +++ b/keyboards/jian/rev1/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define EE_HANDS // different Jian configs -#define DIPS_ENABLE #define PHYSICAL_LEDS_ENABLE #define NUM_LOCK_LED_PIN C6 #define CAPS_LOCK_LED_PIN D7 @@ -79,3 +78,8 @@ along with this program. If not, see . // iOS device need lessthan 100 #define USB_MAX_POWER_CONSUMPTION 100 #endif + +#define DIP_SWITCH_MATRIX_GRID { \ + {1, 0}, {2, 0}, {3, 0}, {3, 1}, {3, 2}, {3, 3}, \ + {7, 3}, {7, 2}, {7, 1}, {7, 0}, {6, 0}, {5, 0} \ +} diff --git a/keyboards/jian/rev1/info.json b/keyboards/jian/rev1/info.json index 27c5c957a6..879b85a9c1 100644 --- a/keyboards/jian/rev1/info.json +++ b/keyboards/jian/rev1/info.json @@ -90,23 +90,6 @@ {"matrix": [7, 5], "x": 10, "y": 3.375}, {"matrix": [7, 4], "x": 11, "y": 3.25} ] - }, - "LAYOUT_dips": { - "layout": [ - {"matrix": [1, 0], "x": 0, "y": 0}, - {"matrix": [2, 0], "x": 1, "y": 0}, - {"matrix": [3, 0], "x": 2, "y": 0}, - {"matrix": [3, 1], "x": 3, "y": 0}, - {"matrix": [3, 2], "x": 4, "y": 0}, - {"matrix": [3, 3], "x": 5, "y": 0}, - - {"matrix": [7, 3], "x": 6, "y": 0}, - {"matrix": [7, 2], "x": 7, "y": 0}, - {"matrix": [7, 1], "x": 8, "y": 0}, - {"matrix": [7, 0], "x": 9, "y": 0}, - {"matrix": [6, 0], "x": 10, "y": 0}, - {"matrix": [5, 0], "x": 11, "y": 0} - ] } } } diff --git a/keyboards/jian/rev1/rules.mk b/keyboards/jian/rev1/rules.mk index 8e6da2d84f..33588c1755 100644 --- a/keyboards/jian/rev1/rules.mk +++ b/keyboards/jian/rev1/rules.mk @@ -5,3 +5,4 @@ CONSOLE_ENABLE = no SPLIT_KEYBOARD = yes BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes +DIP_SWITCH_ENABLE = yes From a46c7abd01adb941f889d5edd2fc7dd33f8412d6 Mon Sep 17 00:00:00 2001 From: MakotoKurauchi Date: Sat, 14 Oct 2023 13:30:25 +0900 Subject: [PATCH 284/496] Enable encoder map on navpad1.0 (#22266) --- .../yushakobo/navpad/10/keymaps/via/keymap.c | 18 +++++++----------- .../yushakobo/navpad/10/keymaps/via/rules.mk | 3 ++- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/keyboards/yushakobo/navpad/10/keymaps/via/keymap.c b/keyboards/yushakobo/navpad/10/keymaps/via/keymap.c index 790ac9dd83..0f9065a634 100644 --- a/keyboards/yushakobo/navpad/10/keymaps/via/keymap.c +++ b/keyboards/yushakobo/navpad/10/keymaps/via/keymap.c @@ -53,17 +53,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { /* First encoder */ - if (clockwise) { - tap_code16(KC_WH_U); - } else { - tap_code16(KC_WH_D); - } - } - return false; -} +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_BASE] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) }, + [_FN1] = { ENCODER_CCW_CW(KC_NO, KC_NO) }, + [_FN2] = { ENCODER_CCW_CW(KC_NO, KC_NO) }, + [_FN3] = { ENCODER_CCW_CW(KC_NO, KC_NO) }, +}; #endif #ifdef RGBLIGHT_LAYERS diff --git a/keyboards/yushakobo/navpad/10/keymaps/via/rules.mk b/keyboards/yushakobo/navpad/10/keymaps/via/rules.mk index 036bd6d1c3..715838ecc5 100644 --- a/keyboards/yushakobo/navpad/10/keymaps/via/rules.mk +++ b/keyboards/yushakobo/navpad/10/keymaps/via/rules.mk @@ -1 +1,2 @@ -VIA_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes +VIA_ENABLE = yes From 23a8f7f03b9a56f09af800e8eb4a8837037484ea Mon Sep 17 00:00:00 2001 From: jukaie <131839249+jukaie@users.noreply.github.com> Date: Sat, 14 Oct 2023 15:03:29 +0800 Subject: [PATCH 285/496] [Keyboard] jukaie/jk01 (#20573) * ADD Keyboard * Resolved requested changes * update keymap.c file * resolved requested changes * updated info.json file * Updated requested changes * Delete JK01.h file * Resolved requested changes * Delete readme.md * add rules.mk to default folder * Upload default/keymap.c * Add via/keymap.c * Updated info.Json file * Change VID in info.json * Resolved requested changes * Resolved requested changes. * Resolved requested changes * Updated changes --------- Co-authored-by: gksygithub --- keyboards/jukaie/jk01/config.h | 44 +++ keyboards/jukaie/jk01/halconf.h | 23 ++ keyboards/jukaie/jk01/info.json | 270 ++++++++++++++++++ keyboards/jukaie/jk01/jk01.c | 173 +++++++++++ keyboards/jukaie/jk01/jk01.h | 22 ++ .../jukaie/jk01/keymaps/default/keymap.c | 78 +++++ .../jukaie/jk01/keymaps/default/rules.mk | 1 + keyboards/jukaie/jk01/keymaps/via/keymap.c | 78 +++++ keyboards/jukaie/jk01/keymaps/via/rules.mk | 2 + keyboards/jukaie/jk01/mcuconf.h | 25 ++ keyboards/jukaie/jk01/readme.md | 23 ++ keyboards/jukaie/jk01/rules.mk | 1 + 12 files changed, 740 insertions(+) create mode 100644 keyboards/jukaie/jk01/config.h create mode 100644 keyboards/jukaie/jk01/halconf.h create mode 100644 keyboards/jukaie/jk01/info.json create mode 100644 keyboards/jukaie/jk01/jk01.c create mode 100644 keyboards/jukaie/jk01/jk01.h create mode 100644 keyboards/jukaie/jk01/keymaps/default/keymap.c create mode 100644 keyboards/jukaie/jk01/keymaps/default/rules.mk create mode 100644 keyboards/jukaie/jk01/keymaps/via/keymap.c create mode 100644 keyboards/jukaie/jk01/keymaps/via/rules.mk create mode 100644 keyboards/jukaie/jk01/mcuconf.h create mode 100644 keyboards/jukaie/jk01/readme.md create mode 100644 keyboards/jukaie/jk01/rules.mk diff --git a/keyboards/jukaie/jk01/config.h b/keyboards/jukaie/jk01/config.h new file mode 100644 index 0000000000..8a7ea71db4 --- /dev/null +++ b/keyboards/jukaie/jk01/config.h @@ -0,0 +1,44 @@ +/* Copyright 2023 JUKAIE + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define RGB_DISABLE_WHEN_USB_SUSPENDED + +/* External spi flash */ +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B14 +#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) + +/* SPI Config for LED Driver */ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN A5 +#define SPI_MOSI_PIN A7 +#define SPI_MISO_PIN A6 + +#define DRIVER_1_CS A15 +#define DRIVER_2_CS B15 +#define DRIVER_1_EN C13 +#define DRIVER_2_EN C13 + +#define DRIVER_COUNT 2 +#define DRIVER_1_LED_TOTAL 66 +#define DRIVER_2_LED_TOTAL 19 +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/jukaie/jk01/halconf.h b/keyboards/jukaie/jk01/halconf.h new file mode 100644 index 0000000000..64a184eb92 --- /dev/null +++ b/keyboards/jukaie/jk01/halconf.h @@ -0,0 +1,23 @@ +/* Copyright (C) 2023 Westberry Technology (ChangZhou) Corp., Ltd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/jukaie/jk01/info.json b/keyboards/jukaie/jk01/info.json new file mode 100644 index 0000000000..87c787158c --- /dev/null +++ b/keyboards/jukaie/jk01/info.json @@ -0,0 +1,270 @@ +{ + "manufacturer": "Jukaie", + "keyboard_name": "JK01", + "maintainer": "Jukaie", + "bootloader": "wb32-dfu", + "bootmagic": { + "matrix": [1, 3] + }, + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "C2", "pin_b": "C3"} + ] + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "indicators": { + "caps_lock": "C14" + }, + "matrix_pins": { + "cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"], + "rows": ["B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", "B12"] + }, + "processor": "WB32FQ95", + "qmk": { + "tap_keycode_delay": 10 + }, + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "center_point": [76, 25], + "driver": "aw20216", + "layout": [ + { "flags": 4, "matrix": [1, 3], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [2, 6], "x": 20, "y": 0 }, + { "flags": 4, "matrix": [3, 6], "x": 30, "y": 0 }, + { "flags": 4, "matrix": [3, 1], "x": 40, "y": 0 }, + { "flags": 4, "matrix": [3, 3], "x": 50, "y": 0 }, + { "flags": 4, "matrix": [0, 7], "x": 60, "y": 0 }, + { "flags": 4, "matrix": [6, 3], "x": 70, "y": 0 }, + { "flags": 4, "matrix": [7, 1], "x": 80, "y": 0 }, + { "flags": 4, "matrix": [7, 6], "x": 90, "y": 0 }, + { "flags": 4, "matrix": [10, 6], "x": 100, "y": 0 }, + { "flags": 4, "matrix": [10, 7], "x": 110, "y": 0 }, + { "flags": 4, "matrix": [10, 3], "x": 120, "y": 0 }, + { "flags": 4, "matrix": [10, 5], "x": 130, "y": 0 }, + { "flags": 4, "matrix": [9, 7], "x": 140, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 150, "y": 0 }, + { "flags": 4, "matrix": [1, 6], "x": 0, "y": 10 }, + { "flags": 4, "matrix": [1, 7], "x": 10, "y": 10 }, + { "flags": 4, "matrix": [2, 7], "x": 20, "y": 10 }, + { "flags": 4, "matrix": [3, 7], "x": 30, "y": 10 }, + { "flags": 4, "matrix": [4, 7], "x": 40, "y": 10 }, + { "flags": 4, "matrix": [4, 6], "x": 50, "y": 10 }, + { "flags": 4, "matrix": [5, 6], "x": 60, "y": 10 }, + { "flags": 4, "matrix": [5, 7], "x": 70, "y": 10 }, + { "flags": 4, "matrix": [6, 7], "x": 80, "y": 10 }, + { "flags": 4, "matrix": [7, 7], "x": 90, "y": 10 }, + { "flags": 4, "matrix": [8, 7], "x": 100, "y": 10 }, + { "flags": 4, "matrix": [8, 6], "x": 110, "y": 10 }, + { "flags": 4, "matrix": [6, 6], "x": 120, "y": 10 }, + { "flags": 4, "matrix": [10, 1], "x": 130, "y": 10 }, + { "flags": 4, "matrix": [11, 6], "x": 150, "y": 10 }, + { "flags": 4, "matrix": [1, 1], "x": 0, "y": 20 }, + { "flags": 4, "matrix": [1, 0], "x": 15, "y": 20 }, + { "flags": 4, "matrix": [2, 0], "x": 25, "y": 20 }, + { "flags": 4, "matrix": [3, 0], "x": 35, "y": 20 }, + { "flags": 4, "matrix": [4, 0], "x": 45, "y": 20 }, + { "flags": 4, "matrix": [4, 1], "x": 55, "y": 20 }, + { "flags": 4, "matrix": [5, 1], "x": 65, "y": 20 }, + { "flags": 4, "matrix": [5, 0], "x": 75, "y": 20 }, + { "flags": 4, "matrix": [6, 0], "x": 85, "y": 20 }, + { "flags": 4, "matrix": [7, 0], "x": 95, "y": 20 }, + { "flags": 4, "matrix": [8, 0], "x": 105, "y": 20 }, + { "flags": 4, "matrix": [8, 1], "x": 115, "y": 20 }, + { "flags": 4, "matrix": [6, 1], "x": 125, "y": 20 }, + { "flags": 4, "matrix": [10, 2], "x": 135, "y": 20 }, + { "flags": 4, "matrix": [6, 5], "x": 150, "y": 20 }, + { "flags": 4, "matrix": [2, 1], "x": 0, "y": 30 }, + { "flags": 4, "matrix": [1, 2], "x": 17, "y": 30 }, + { "flags": 8, "matrix": [2, 2], "x": 27, "y": 30 }, + { "flags": 4, "matrix": [3, 2], "x": 37, "y": 30 }, + { "flags": 4, "matrix": [4, 2], "x": 47, "y": 30 }, + { "flags": 4, "matrix": [4, 3], "x": 57, "y": 30 }, + { "flags": 4, "matrix": [5, 3], "x": 67, "y": 30 }, + { "flags": 4, "matrix": [5, 2], "x": 77, "y": 30 }, + { "flags": 4, "matrix": [6, 2], "x": 87, "y": 30 }, + { "flags": 4, "matrix": [7, 2], "x": 97, "y": 30 }, + { "flags": 4, "matrix": [8, 2], "x": 107, "y": 30 }, + { "flags": 4, "matrix": [8, 3], "x": 117, "y": 30 }, + { "flags": 4, "matrix": [10, 4], "x": 127, "y": 30 }, + { "flags": 4, "matrix": [1, 5], "x": 150, "y": 30 }, + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 40 }, + { "flags": 4, "matrix": [1, 4], "x": 22, "y": 40 }, + { "flags": 4, "matrix": [2, 4], "x": 32, "y": 40 }, + { "flags": 4, "matrix": [3, 4], "x": 42, "y": 40 }, + { "flags": 4, "matrix": [4, 4], "x": 52, "y": 40 }, + { "flags": 4, "matrix": [4, 5], "x": 62, "y": 40 }, + { "flags": 4, "matrix": [5, 5], "x": 72, "y": 40 }, + { "flags": 4, "matrix": [5, 4], "x": 82, "y": 40 }, + { "flags": 4, "matrix": [6, 4], "x": 92, "y": 40 }, + { "flags": 4, "matrix": [7, 4], "x": 102, "y": 40 }, + { "flags": 4, "matrix": [8, 5], "x": 112, "y": 40 }, + { "flags": 4, "matrix": [9, 1], "x": 122, "y": 40 }, + { "flags": 4, "matrix": [3, 5], "x": 140, "y": 40 }, + { "flags": 4, "matrix": [2, 5], "x": 150, "y": 40 }, + { "flags": 4, "matrix": [0, 6], "x": 0, "y": 50 }, + { "flags": 4, "matrix": [9, 0], "x": 12, "y": 50 }, + { "flags": 4, "matrix": [9, 3], "x": 25, "y": 50 }, + { "flags": 4, "matrix": [9, 4], "x": 37, "y": 50 }, + { "flags": 4, "matrix": [9, 5], "x": 100, "y": 50 }, + { "flags": 4, "matrix": [9, 2], "x": 110, "y": 50 }, + { "flags": 4, "matrix": [0, 4], "x": 120, "y": 50 }, + { "flags": 4, "matrix": [0, 3], "x": 130, "y": 50 }, + { "flags": 4, "matrix": [7, 3], "x": 140, "y": 50 }, + { "flags": 4, "matrix": [0, 5], "x": 150, "y": 50 }, + { "flags": 4, "matrix": [11, 0], "x": 0, "y": 1 }, + { "flags": 4, "matrix": [11, 1], "x": 0, "y": 2 } + ] + }, + "url": "", + "usb": { + "device_version": "0.0.2", + "pid": "0x0002", + "vid": "0x4141" + }, + "eeprom": { + "driver": "wear_leveling" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "ESC", "matrix": [1, 3], "x": 0, "y": 0 }, + { "label": "F1", "matrix": [2, 6], "x": 2, "y": 0 }, + { "label": "F2", "matrix": [3, 6], "x": 3, "y": 0 }, + { "label": "F3", "matrix": [3, 1], "x": 4, "y": 0 }, + { "label": "F4", "matrix": [3, 3], "x": 5, "y": 0 }, + { "label": "F5", "matrix": [0, 7], "x": 6, "y": 0 }, + { "label": "F6", "matrix": [6, 3], "x": 7, "y": 0 }, + { "label": "F7", "matrix": [7, 1], "x": 8, "y": 0 }, + { "label": "F8", "matrix": [7, 6], "x": 9, "y": 0 }, + { "label": "F9", "matrix": [10, 6], "x": 10, "y": 0 }, + { "label": "F10", "matrix": [10, 7], "x": 11, "y": 0 }, + { "label": "F11", "matrix": [10, 3], "x": 12, "y": 0 }, + { "label": "F12", "matrix": [10, 5], "x": 13, "y": 0 }, + { "label": "Printscreen", "matrix": [9, 7], "x": 14, "y": 0 }, + { "label": "Del", "matrix": [0, 2], "x": 15, "y": 0 }, + { "label": "`", "matrix": [1, 6], "x": 0, "y": 1 }, + { "label": "1", "matrix": [1, 7], "x": 1, "y": 1 }, + { "label": "2", "matrix": [2, 7], "x": 2, "y": 1 }, + { "label": "3", "matrix": [3, 7], "x": 3, "y": 1 }, + { "label": "4", "matrix": [4, 7], "x": 4, "y": 1 }, + { "label": "5", "matrix": [4, 6], "x": 5, "y": 1 }, + { "label": "6", "matrix": [5, 6], "x": 6, "y": 1 }, + { "label": "7", "matrix": [5, 7], "x": 7, "y": 1 }, + { "label": "8", "matrix": [6, 7], "x": 8, "y": 1 }, + { "label": "9", "matrix": [7, 7], "x": 9, "y": 1 }, + { "label": "0", "matrix": [8, 7], "x": 10, "y": 1 }, + { "label": "-", "matrix": [8, 6], "x": 11, "y": 1 }, + { "label": "=", "matrix": [6, 6], "x": 12, "y": 1 }, + { "label": "Backspace", "matrix": [10, 1], "w": 2, "x": 13, "y": 1 }, + { "label": "Home", "matrix": [11, 6], "x": 15, "y": 1 }, + { "label": "Tab", "matrix": [1, 1], "w": 1.5, "x": 0, "y": 2 }, + { "label": "Q", "matrix": [1, 0], "x": 1.5, "y": 2 }, + { "label": "W", "matrix": [2, 0], "x": 2.5, "y": 2 }, + { "label": "E", "matrix": [3, 0], "x": 3.5, "y": 2 }, + { "label": "R", "matrix": [4, 0], "x": 4.5, "y": 2 }, + { "label": "T", "matrix": [4, 1], "x": 5.5, "y": 2 }, + { "label": "Y", "matrix": [5, 1], "x": 6.5, "y": 2 }, + { "label": "U", "matrix": [5, 0], "x": 7.5, "y": 2 }, + { "label": "I", "matrix": [6, 0], "x": 8.5, "y": 2 }, + { "label": "O", "matrix": [7, 0], "x": 9.5, "y": 2 }, + { "label": "P", "matrix": [8, 0], "x": 10.5, "y": 2 }, + { "label": "[", "matrix": [8, 1], "x": 11.5, "y": 2 }, + { "label": "]", "matrix": [6, 1], "x": 12.5, "y": 2 }, + { "label": "\\", "matrix": [10, 2], "w": 1.5, "x": 13.5, "y": 2 }, + { "label": "End", "matrix": [6, 5], "x": 15, "y": 2 }, + { "label": "Caps Lock", "matrix": [2, 1], "w": 1.75, "x": 0, "y": 3 }, + { "label": "A", "matrix": [1, 2], "x": 1.75, "y": 3 }, + { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 3 }, + { "label": "D", "matrix": [3, 2], "x": 3.75, "y": 3 }, + { "label": "F", "matrix": [4, 2], "x": 4.75, "y": 3 }, + { "label": "G", "matrix": [4, 3], "x": 5.75, "y": 3 }, + { "label": "H", "matrix": [5, 3], "x": 6.75, "y": 3 }, + { "label": "J", "matrix": [5, 2], "x": 7.75, "y": 3 }, + { "label": "K", "matrix": [6, 2], "x": 8.75, "y": 3 }, + { "label": "L", "matrix": [7, 2], "x": 9.75, "y": 3 }, + { "label": ";", "matrix": [8, 2], "x": 10.75, "y": 3 }, + { "label": "'", "matrix": [8, 3], "x": 11.75, "y": 3 }, + { "label": "Enter", "matrix": [10, 4], "w": 2.25, "x": 12.75, "y": 3 }, + { "label": "PgUp", "matrix": [1, 5], "x": 15, "y": 3 }, + { "label": "Shift", "matrix": [0, 0], "w": 2.25, "x": 0, "y": 4 }, + { "label": "Z", "matrix": [1, 4], "x": 2.25, "y": 4 }, + { "label": "X", "matrix": [2, 4], "x": 3.25, "y": 4 }, + { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 4 }, + { "label": "V", "matrix": [4, 4], "x": 5.25, "y": 4 }, + { "label": "B", "matrix": [4, 5], "x": 6.25, "y": 4 }, + { "label": "N", "matrix": [5, 5], "x": 7.25, "y": 4 }, + { "label": "M", "matrix": [5, 4], "x": 8.25, "y": 4 }, + { "label": ",", "matrix": [6, 4], "x": 9.25, "y": 4 }, + { "label": ".", "matrix": [7, 4], "x": 10.25, "y": 4 }, + { "label": "/", "matrix": [8, 5], "x": 11.25, "y": 4 }, + { "label": "Shift", "matrix": [9, 1], "w": 1.75, "x": 12.25, "y": 4 }, + { "label": "Up", "matrix": [3, 5], "x": 14, "y": 4 }, + { "label": "PgDn", "matrix": [2, 5], "x": 15, "y": 4 }, + { "label": "Ctrl", "matrix": [0, 6], "w": 1.25, "x": 0, "y": 5 }, + { "label": "Win", "matrix": [9, 0], "w": 1.25, "x": 1.25, "y": 5 }, + { "label": "Alt", "matrix": [9, 3], "w": 1.25, "x": 2.5, "y": 5 }, + { "label": "Space", "matrix": [9, 4], "w": 6.25, "x": 3.75, "y": 5 }, + { "label": "Alt", "matrix": [9, 5], "x": 10, "y": 5 }, + { "label": "FN", "matrix": [9, 2], "x": 11, "y": 5 }, + { "label": "Ctrl", "matrix": [0, 4], "x": 12, "y": 5 }, + { "label": "Left", "matrix": [0, 3], "x": 13, "y": 5 }, + { "label": "Down", "matrix": [7, 3], "x": 14, "y": 5 }, + { "label": "Right", "matrix": [0, 5], "x": 15, "y": 5 } + ] + } + } +} diff --git a/keyboards/jukaie/jk01/jk01.c b/keyboards/jukaie/jk01/jk01.c new file mode 100644 index 0000000000..8f69419476 --- /dev/null +++ b/keyboards/jukaie/jk01/jk01.c @@ -0,0 +1,173 @@ +/* Copyright 2023 JUKAIE + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "jk01.h" + +#ifdef RGB_MATRIX_ENABLE + +const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + //{0, CS1_SW4, CS2_SW4, CS3_SW4}, // 0, k00, Esc + + {0, CS1_SW1, CS2_SW1, CS3_SW1}, // 1, k13, Esc + {0, CS1_SW2, CS2_SW2, CS3_SW2}, // 2, k26, F1 + {0, CS1_SW3, CS2_SW3, CS3_SW3}, // 3, k36, F2 + {0, CS1_SW4, CS2_SW4, CS3_SW4}, // 4, k31, F3 + {0, CS1_SW5, CS2_SW5, CS3_SW5}, // 5, k33, F4 + {0, CS1_SW6, CS2_SW6, CS3_SW6}, // 6, k07, F5 + {0, CS1_SW7, CS2_SW7, CS3_SW7}, // 7, k63, F6 + {0, CS1_SW8, CS2_SW8, CS3_SW8}, // 8, k71, F7 + {0, CS1_SW9, CS2_SW9, CS3_SW9}, // 9, k76, F8 + {0, CS1_SW10, CS2_SW10, CS3_SW10}, // 10, ka6, F9 + {0, CS1_SW11, CS2_SW11, CS3_SW11}, // 11, ka7, F10 + {0, CS1_SW12, CS2_SW12, CS3_SW12}, // 12, ka3, F11 + {1, CS1_SW1, CS2_SW1, CS3_SW1}, // 13, ka5, F12 + {1, CS4_SW2, CS5_SW2, CS6_SW2}, // 14, k97, Printscreen + {1, CS4_SW5, CS5_SW5, CS6_SW5}, // 15, k02, Del + + {0, CS4_SW1, CS5_SW1, CS6_SW1}, // 16, k16, ` + {0, CS4_SW2, CS5_SW2, CS6_SW2}, // 17, k17, 1 + {0, CS4_SW3, CS5_SW3, CS6_SW3}, // 18, k27, 2 + {0, CS4_SW4, CS5_SW4, CS6_SW4}, // 19, k37, 3 + {0, CS4_SW5, CS5_SW5, CS6_SW5}, // 20, k47, 4 + {0, CS4_SW6, CS5_SW6, CS6_SW6}, // 21, k46, 5 + {0, CS4_SW7, CS5_SW7, CS6_SW7}, // 22, k56, 6 + {0, CS4_SW8, CS5_SW8, CS6_SW8}, // 23, k57, 7 + {0, CS4_SW9, CS5_SW9, CS6_SW9}, // 24, k67, 8 + {0, CS4_SW10, CS5_SW10, CS6_SW10}, // 25, k77, 9 + {0, CS4_SW11, CS5_SW11, CS6_SW11}, // 26, k87, 0 + {0, CS4_SW12, CS5_SW12, CS6_SW12}, // 27, k86, - + {1, CS1_SW5, CS2_SW5, CS3_SW5}, // 28, k66, = + {1, CS1_SW7, CS2_SW7, CS3_SW7}, // 29, ka1, Backspace + {1, CS1_SW2, CS2_SW2, CS3_SW2}, // 30, kc6, Home + + {0, CS7_SW1, CS8_SW1, CS9_SW1}, // 31, k11, Tab + {0, CS7_SW2, CS8_SW2, CS9_SW2}, // 32, k10, Q + {0, CS7_SW3, CS8_SW3, CS9_SW3}, // 33, k20, W + {0, CS7_SW4, CS8_SW4, CS9_SW4}, // 34, k30, E + {0, CS7_SW5, CS8_SW5, CS9_SW5}, // 35, k40, R + {0, CS7_SW6, CS8_SW6, CS9_SW6}, // 36, k41, T + {0, CS7_SW7, CS8_SW7, CS9_SW7}, // 37, k51, Y + {0, CS7_SW8, CS8_SW8, CS9_SW8}, // 38, k50, U + {0, CS7_SW9, CS8_SW9, CS9_SW9}, // 39, k60, I + {0, CS7_SW10, CS8_SW10, CS9_SW10}, // 40, k70, O + {0, CS7_SW11, CS8_SW11, CS9_SW11}, // 41, k80, P + {0, CS7_SW12, CS8_SW12, CS9_SW12}, // 42, k81, [ + {1, CS1_SW8, CS2_SW8, CS3_SW8}, // 43, k61, ] + {1, CS1_SW9, CS2_SW9, CS3_SW9}, // 44, ka2, "\\" + {1, CS4_SW3, CS5_SW3, CS6_SW3}, // 45, k65, End + + {0, CS10_SW1, CS11_SW1, CS12_SW1}, // 46, k21, Caps Lock + {0, CS10_SW2, CS11_SW2, CS12_SW2}, // 47, k12, A + {0, CS10_SW3, CS11_SW3, CS12_SW3}, // 48, k22, S + {0, CS10_SW4, CS11_SW4, CS12_SW4}, // 49, k32, D + {0, CS10_SW5, CS11_SW5, CS12_SW5}, // 50, k42, F + {0, CS10_SW6, CS11_SW6, CS12_SW6}, // 51, k43, G + {0, CS10_SW7, CS11_SW7, CS12_SW7}, // 52, k53, H + {0, CS10_SW8, CS11_SW8, CS12_SW8}, // 53, k52, J + {0, CS10_SW9, CS11_SW9, CS12_SW9}, // 54, k62, K + {0, CS10_SW10, CS11_SW10, CS12_SW10}, // 55, k72, L + {0, CS10_SW11, CS11_SW11, CS12_SW11}, // 56, k82, ; + {0, CS10_SW12, CS11_SW12, CS12_SW12}, // 57, k83, ' + {1, CS1_SW11, CS2_SW11, CS3_SW11}, // 58, ka4, Enter + {1, CS4_SW4, CS5_SW4, CS6_SW4}, // 59, k15, PgUp + + {0, CS13_SW1, CS14_SW1, CS15_SW1}, // 60, k00, Shift_L + {0, CS13_SW2, CS14_SW2, CS15_SW2}, // 61, k14, Z + {0, CS13_SW3, CS14_SW3, CS15_SW3}, // 62, k24, X + {0, CS13_SW4, CS14_SW4, CS15_SW4}, // 63, k34, C + {0, CS13_SW5, CS14_SW5, CS15_SW5}, // 64, k44, V + {0, CS13_SW6, CS14_SW6, CS15_SW6}, // 65, k45, B + {0, CS13_SW7, CS14_SW7, CS15_SW7}, // 66, k55, N + {0, CS13_SW8, CS14_SW8, CS15_SW8}, // 67, k54, M + {0, CS13_SW9, CS14_SW9, CS15_SW9}, // 68, k64, , + {0, CS13_SW10, CS14_SW10, CS15_SW10}, // 69, k74, . + {0, CS13_SW11, CS14_SW11, CS15_SW11}, // 70, k85, / + {1, CS4_SW8, CS5_SW8, CS6_SW8}, // 71, k91, Shift_R + {1, CS4_SW9, CS5_SW9, CS6_SW9}, // 72, k35, Up + {1, CS4_SW7, CS5_SW7, CS6_SW7}, // 73, k25, PgDn + + {0, CS16_SW1, CS17_SW1, CS18_SW1}, // 74, k06, Ctrl_L + {0, CS16_SW2, CS17_SW2, CS18_SW2}, // 75, k90, Win_L + {0, CS16_SW3, CS17_SW3, CS18_SW3}, // 76, k93, Alt_L + {0, CS16_SW6, CS17_SW6, CS18_SW6}, // 77, k94, Space + {0, CS16_SW9, CS17_SW9, CS18_SW9}, // 78, k95, Alt_R + {0, CS16_SW10, CS17_SW10, CS18_SW10}, // 79, k92, FN + {0, CS16_SW12, CS17_SW12, CS18_SW12}, // 80, k04, Ctrl_R + {1, CS4_SW10, CS5_SW10, CS6_SW10}, // 81, k03, Left + {1, CS4_SW11, CS5_SW11, CS6_SW11}, // 82, k73, Down + {1, CS10_SW5, CS11_SW5, CS12_SW5}, // 83, k05, Right + + {1, CS10_SW10, CS11_SW10, CS12_SW10}, // 84, kb0, Z1 + {1, CS10_SW11, CS11_SW11, CS12_SW11}, // 85, kb1, Z2 +}; + +#endif + +#ifdef EEPROM_ENABLE + +#include "spi_master.h" + +void spi_init(void) { + static bool is_initialised = false; + if (!is_initialised) { + is_initialised = true; + + // Try releasing special pins for a short time + setPinInput(SPI_SCK_PIN); + setPinInput(SPI_MOSI_PIN); + setPinInput(SPI_MISO_PIN); + + chThdSleepMilliseconds(10); + + palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_ALTERNATE(SPI_SCK_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST | PAL_WB32_CURRENT_LEVEL3); + palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_ALTERNATE(SPI_MOSI_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST); + palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_ALTERNATE(SPI_MISO_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST); + } +} + +#endif + +void keyboard_pre_init_kb(void) { + setPinOutput(C0); + setPinOutput(C15); + keyboard_pre_init_user(); +}; +void housekeeping_task_kb(void) { + writePin(C15, keymap_config.no_gui); +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + switch (keycode) { + + case KC_SIRI: + if (record->event.pressed) { + host_consumer_send(0xCF); + } else { + host_consumer_send(0); + } + return false; /* Skip all further processing of this key */ + + default: + return true; /* Process all other keycodes normally */ + } +}; \ No newline at end of file diff --git a/keyboards/jukaie/jk01/jk01.h b/keyboards/jukaie/jk01/jk01.h new file mode 100644 index 0000000000..d4bf805c12 --- /dev/null +++ b/keyboards/jukaie/jk01/jk01.h @@ -0,0 +1,22 @@ +/* Copyright 2022 GSKY + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +enum keyboard_keycodes { + KC_SIRI = QK_KB +}; diff --git a/keyboards/jukaie/jk01/keymaps/default/keymap.c b/keyboards/jukaie/jk01/keymaps/default/keymap.c new file mode 100644 index 0000000000..bdf509a8e8 --- /dev/null +++ b/keyboards/jukaie/jk01/keymaps/default/keymap.c @@ -0,0 +1,78 @@ +/* Copyright 2023 JUKAIE + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. + +enum custom_layers { + Win, + Mac, + Winfn, + Macfn, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: Base Layer (Default Layer) + */ +[Win] = LAYOUT( + KC_ESC, 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_PSCR, KC_DEL, + KC_GRV, 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_BSPC, KC_HOME, + 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_END, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(Winfn),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[Mac] = LAYOUT( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_SIRI, KC_F5, KC_F6, KC_MRWD, KC_MPLY, KC_MFFD, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_DEL, + KC_GRV, 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_BSPC, KC_HOME, + 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_END, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(Macfn),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[Winfn] = LAYOUT( + QK_BOOT, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RGB_MOD, + 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, RGB_HUI, + KC_TRNS, KC_TRNS, TO(Win), 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, + KC_TRNS, GUI_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), + +[Macfn] = LAYOUT( + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RGB_MOD, + 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, RGB_HUI, + KC_TRNS, KC_TRNS, TO(Win), 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), + +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif + +layer_state_t layer_state_set_user(layer_state_t state) { + writePin(C0, layer_state_cmp(state, 1)); + return state; +}; diff --git a/keyboards/jukaie/jk01/keymaps/default/rules.mk b/keyboards/jukaie/jk01/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/jukaie/jk01/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/jukaie/jk01/keymaps/via/keymap.c b/keyboards/jukaie/jk01/keymaps/via/keymap.c new file mode 100644 index 0000000000..bdf509a8e8 --- /dev/null +++ b/keyboards/jukaie/jk01/keymaps/via/keymap.c @@ -0,0 +1,78 @@ +/* Copyright 2023 JUKAIE + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. + +enum custom_layers { + Win, + Mac, + Winfn, + Macfn, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: Base Layer (Default Layer) + */ +[Win] = LAYOUT( + KC_ESC, 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_PSCR, KC_DEL, + KC_GRV, 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_BSPC, KC_HOME, + 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_END, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(Winfn),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[Mac] = LAYOUT( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_SIRI, KC_F5, KC_F6, KC_MRWD, KC_MPLY, KC_MFFD, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_DEL, + KC_GRV, 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_BSPC, KC_HOME, + 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_END, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(Macfn),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[Winfn] = LAYOUT( + QK_BOOT, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RGB_MOD, + 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, RGB_HUI, + KC_TRNS, KC_TRNS, TO(Win), 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, + KC_TRNS, GUI_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), + +[Macfn] = LAYOUT( + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RGB_MOD, + 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, RGB_HUI, + KC_TRNS, KC_TRNS, TO(Win), 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), + +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif + +layer_state_t layer_state_set_user(layer_state_t state) { + writePin(C0, layer_state_cmp(state, 1)); + return state; +}; diff --git a/keyboards/jukaie/jk01/keymaps/via/rules.mk b/keyboards/jukaie/jk01/keymaps/via/rules.mk new file mode 100644 index 0000000000..f1adcab005 --- /dev/null +++ b/keyboards/jukaie/jk01/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/jukaie/jk01/mcuconf.h b/keyboards/jukaie/jk01/mcuconf.h new file mode 100644 index 0000000000..e4b8d1f973 --- /dev/null +++ b/keyboards/jukaie/jk01/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright (C) 2023 Westberry Technology (ChangZhou) Corp., Ltd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE + +#undef WB32_SPI_USE_SPIM2 +#define WB32_SPI_USE_SPIM2 TRUE diff --git a/keyboards/jukaie/jk01/readme.md b/keyboards/jukaie/jk01/readme.md new file mode 100644 index 0000000000..a9dbac18ac --- /dev/null +++ b/keyboards/jukaie/jk01/readme.md @@ -0,0 +1,23 @@ +# jk01 + +An 83 keys keyboard, Equipped with the WestBerry Q95 microcontroller. + +* Keyboard Maintainer: [JUKAIE](https://github.com/jukaie) +* Hardware Supported: JK01 +* Hardware Availability: [JUKAIE](https://github.com/jukaie/keyboard1) + +Make example for this keyboard (after setting up your build environment): + + make jukaie/jk01:default + +Flashing example for this keyboard: + + make jukaie/jk01:default:flash + +To reset the board into bootloader mode, do one of the following: + +* Hold the Reset switch mounted on the surface of the PCB back side after the USB cable is connected +* Hold the Escape key while connecting the USB cable (also erases persistent settings) +* Fn+ESC will reset the board to bootloader mode + +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). diff --git a/keyboards/jukaie/jk01/rules.mk b/keyboards/jukaie/jk01/rules.mk new file mode 100644 index 0000000000..002458405e --- /dev/null +++ b/keyboards/jukaie/jk01/rules.mk @@ -0,0 +1 @@ +WEAR_LEVELING_DRIVER = spi_flash From 1bff37781bda1d0c285aa5aa7102d6941ad64e7d Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 14 Oct 2023 22:21:20 +1100 Subject: [PATCH 286/496] Prep work for NKRO report separation (#22268) * Clean up some keyboard/userspace code * Rename `KEYBOARD_REPORT_BITS` -> `NKRO_REPORT_BITS` * Add some missing includes * Use `PACKED` define for report types * Fix incorrect function signatures for FlexRAM EEPROM driver --- keyboards/annepro2/annepro2_ble.c | 2 +- keyboards/bioi/bluetooth_custom.c | 13 ++++++------- .../sawnsprojects/okayu/stm32f072/config.h | 2 +- .../sawnsprojects/okayu/stm32f103/config.h | 2 +- .../sawnsprojects/okayu/stm32f303/config.h | 2 +- .../drivers/eeprom/eeprom_kinetis_flexram.c | 8 ++++---- quantum/eeconfig.h | 1 + quantum/quantum.h | 2 ++ tmk_core/protocol/report.c | 8 ++++---- tmk_core/protocol/report.h | 19 ++++++++++--------- tmk_core/protocol/usb_descriptor.c | 4 ++-- users/brandonschlack/brandonschlack.c | 8 ++------ 12 files changed, 35 insertions(+), 36 deletions(-) diff --git a/keyboards/annepro2/annepro2_ble.c b/keyboards/annepro2/annepro2_ble.c index 375f551cc2..b04929e958 100644 --- a/keyboards/annepro2/annepro2_ble.c +++ b/keyboards/annepro2/annepro2_ble.c @@ -167,5 +167,5 @@ static void ap2_ble_extra(report_extra_t *report) { static void ap2_ble_keyboard(report_keyboard_t *report) { sdPut(&SD1, 0x0); sdWrite(&SD1, ble_mcu_send_report, sizeof(ble_mcu_send_report)); - sdWrite(&SD1, &report->raw[0], KEYBOARD_REPORT_SIZE); + sdWrite(&SD1, (uint8_t *)report, KEYBOARD_REPORT_SIZE); } diff --git a/keyboards/bioi/bluetooth_custom.c b/keyboards/bioi/bluetooth_custom.c index 7d88a837d1..4ea277f731 100644 --- a/keyboards/bioi/bluetooth_custom.c +++ b/keyboards/bioi/bluetooth_custom.c @@ -86,13 +86,12 @@ void bluetooth_send_keyboard(report_keyboard_t *report) send_str(PSTR("AT+BLEKEYBOARDCODE=")); - for (uint8_t i = 0; i < KEYBOARD_EPSIZE; i++) - { - send_bytes(report->raw[i]); - if (i < (KEYBOARD_EPSIZE - 1)) - { - send_str(PSTR("-")); - } + send_bytes(report->mods); + send_str(PSTR("-")); + send_bytes(0); + for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) { + send_str(PSTR("-")); + send_bytes(report->keys[i]); } send_str(PSTR("\r\n")); diff --git a/keyboards/sawnsprojects/okayu/stm32f072/config.h b/keyboards/sawnsprojects/okayu/stm32f072/config.h index c47f1928c8..41bb0d1fdb 100644 --- a/keyboards/sawnsprojects/okayu/stm32f072/config.h +++ b/keyboards/sawnsprojects/okayu/stm32f072/config.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#define WS2812_SPI SPID1 +#define WS2812_SPI_DRIVER SPID1 #define WS2812_SPI_MOSI_PAL_MODE 5 #define WS2812_SPI_SCK_PIN B13 #define WS2812_SPI_SCK_PAL_MODE 5 \ No newline at end of file diff --git a/keyboards/sawnsprojects/okayu/stm32f103/config.h b/keyboards/sawnsprojects/okayu/stm32f103/config.h index eff3605470..9024616477 100644 --- a/keyboards/sawnsprojects/okayu/stm32f103/config.h +++ b/keyboards/sawnsprojects/okayu/stm32f103/config.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#define WS2812_SPI SPID2 +#define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 5 #define WS2812_SPI_SCK_PIN B13 #define WS2812_SPI_SCK_PAL_MODE 5 \ No newline at end of file diff --git a/keyboards/sawnsprojects/okayu/stm32f303/config.h b/keyboards/sawnsprojects/okayu/stm32f303/config.h index c47f1928c8..41bb0d1fdb 100644 --- a/keyboards/sawnsprojects/okayu/stm32f303/config.h +++ b/keyboards/sawnsprojects/okayu/stm32f303/config.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#define WS2812_SPI SPID1 +#define WS2812_SPI_DRIVER SPID1 #define WS2812_SPI_MOSI_PAL_MODE 5 #define WS2812_SPI_SCK_PIN B13 #define WS2812_SPI_SCK_PAL_MODE 5 \ No newline at end of file diff --git a/platforms/chibios/drivers/eeprom/eeprom_kinetis_flexram.c b/platforms/chibios/drivers/eeprom/eeprom_kinetis_flexram.c index 6468cbf3fa..9cf956b2f7 100644 --- a/platforms/chibios/drivers/eeprom/eeprom_kinetis_flexram.c +++ b/platforms/chibios/drivers/eeprom/eeprom_kinetis_flexram.c @@ -146,7 +146,7 @@ uint32_t eeprom_read_dword(const uint32_t *addr) { * * FIXME: needs doc */ -void eeprom_read_block(void *buf, const void *addr, uint32_t len) { +void eeprom_read_block(void *buf, const void *addr, size_t len) { uint32_t offset = (uint32_t)addr; uint8_t *dest = (uint8_t *)buf; uint32_t end = offset + len; @@ -271,7 +271,7 @@ void eeprom_write_dword(uint32_t *addr, uint32_t value) { * * FIXME: needs doc */ -void eeprom_write_block(const void *buf, void *addr, uint32_t len) { +void eeprom_write_block(const void *buf, void *addr, size_t len) { uint32_t offset = (uint32_t)addr; const uint8_t *src = (const uint8_t *)buf; @@ -480,7 +480,7 @@ uint32_t eeprom_read_dword(const uint32_t *addr) { return eeprom_read_byte(p) | (eeprom_read_byte(p + 1) << 8) | (eeprom_read_byte(p + 2) << 16) | (eeprom_read_byte(p + 3) << 24); } -void eeprom_read_block(void *buf, const void *addr, uint32_t len) { +void eeprom_read_block(void *buf, const void *addr, size_t len) { const uint8_t *p = (const uint8_t *)addr; uint8_t * dest = (uint8_t *)buf; while (len--) { @@ -506,7 +506,7 @@ void eeprom_write_dword(uint32_t *addr, uint32_t value) { eeprom_write_byte(p, value >> 24); } -void eeprom_write_block(const void *buf, void *addr, uint32_t len) { +void eeprom_write_block(const void *buf, void *addr, size_t len) { uint8_t * p = (uint8_t *)addr; const uint8_t *src = (const uint8_t *)buf; while (len--) { diff --git a/quantum/eeconfig.h b/quantum/eeconfig.h index 34d85cb91e..d7cce166bd 100644 --- a/quantum/eeconfig.h +++ b/quantum/eeconfig.h @@ -19,6 +19,7 @@ along with this program. If not, see . #include #include +#include "eeprom.h" #ifndef EECONFIG_MAGIC_NUMBER # define EECONFIG_MAGIC_NUMBER (uint16_t)0xFEE6 // When changing, decrement this value to avoid future re-init issues diff --git a/quantum/quantum.h b/quantum/quantum.h index 66e4569991..e41542e4af 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -56,6 +56,8 @@ #include "suspend.h" #include #include +#include +#include #ifdef DEFERRED_EXEC_ENABLE # include "deferred_exec.h" diff --git a/tmk_core/protocol/report.c b/tmk_core/protocol/report.c index 1ba3be4604..27d267abae 100644 --- a/tmk_core/protocol/report.c +++ b/tmk_core/protocol/report.c @@ -59,7 +59,7 @@ uint8_t get_first_key(report_keyboard_t* keyboard_report) { #ifdef NKRO_ENABLE if (keyboard_protocol && keymap_config.nkro) { uint8_t i = 0; - for (; i < KEYBOARD_REPORT_BITS && !keyboard_report->nkro.bits[i]; i++) + for (; i < NKRO_REPORT_BITS && !keyboard_report->nkro.bits[i]; i++) ; return i << 3 | biton(keyboard_report->nkro.bits[i]); } @@ -89,7 +89,7 @@ bool is_key_pressed(report_keyboard_t* keyboard_report, uint8_t key) { } #ifdef NKRO_ENABLE if (keyboard_protocol && keymap_config.nkro) { - if ((key >> 3) < KEYBOARD_REPORT_BITS) { + if ((key >> 3) < NKRO_REPORT_BITS) { return keyboard_report->nkro.bits[key >> 3] & 1 << (key & 7); } else { return false; @@ -216,7 +216,7 @@ void del_key_byte(report_keyboard_t* keyboard_report, uint8_t code) { * FIXME: Needs doc */ void add_key_bit(report_keyboard_t* keyboard_report, uint8_t code) { - if ((code >> 3) < KEYBOARD_REPORT_BITS) { + if ((code >> 3) < NKRO_REPORT_BITS) { keyboard_report->nkro.bits[code >> 3] |= 1 << (code & 7); } else { dprintf("add_key_bit: can't add: %02X\n", code); @@ -228,7 +228,7 @@ void add_key_bit(report_keyboard_t* keyboard_report, uint8_t code) { * FIXME: Needs doc */ void del_key_bit(report_keyboard_t* keyboard_report, uint8_t code) { - if ((code >> 3) < KEYBOARD_REPORT_BITS) { + if ((code >> 3) < NKRO_REPORT_BITS) { keyboard_report->nkro.bits[code >> 3] &= ~(1 << (code & 7)); } else { dprintf("del_key_bit: can't del: %02X\n", code); diff --git a/tmk_core/protocol/report.h b/tmk_core/protocol/report.h index 9d415a3bfd..dd3cee3df0 100644 --- a/tmk_core/protocol/report.h +++ b/tmk_core/protocol/report.h @@ -20,6 +20,7 @@ along with this program. If not, see . #include #include #include "keycode.h" +#include "util.h" // clang-format off @@ -129,10 +130,10 @@ enum desktop_usages { #if defined(NKRO_ENABLE) # if defined(PROTOCOL_LUFA) || defined(PROTOCOL_CHIBIOS) # include "protocol/usb_descriptor.h" -# define KEYBOARD_REPORT_BITS (SHARED_EPSIZE - 2) +# define NKRO_REPORT_BITS (SHARED_EPSIZE - 2) # elif defined(PROTOCOL_ARM_ATSAM) # include "protocol/arm_atsam/usb/udi_device_epsize.h" -# define KEYBOARD_REPORT_BITS (NKRO_EPSIZE - 1) +# define NKRO_REPORT_BITS (NKRO_EPSIZE - 1) # undef NKRO_SHARED_EP # undef MOUSE_SHARED_EP # else @@ -188,20 +189,20 @@ typedef union { uint8_t report_id; # endif uint8_t mods; - uint8_t bits[KEYBOARD_REPORT_BITS]; + uint8_t bits[NKRO_REPORT_BITS]; } nkro; #endif -} __attribute__((packed)) report_keyboard_t; +} PACKED report_keyboard_t; typedef struct { uint8_t report_id; uint16_t usage; -} __attribute__((packed)) report_extra_t; +} PACKED report_extra_t; typedef struct { uint8_t report_id; uint32_t usage; -} __attribute__((packed)) report_programmable_button_t; +} PACKED report_programmable_button_t; #ifdef MOUSE_EXTENDED_REPORT typedef int16_t mouse_xy_report_t; @@ -222,7 +223,7 @@ typedef struct { mouse_xy_report_t y; int8_t v; int8_t h; -} __attribute__((packed)) report_mouse_t; +} PACKED report_mouse_t; typedef struct { #ifdef DIGITIZER_SHARED_EP @@ -234,7 +235,7 @@ typedef struct { uint8_t reserved : 5; uint16_t x; uint16_t y; -} __attribute__((packed)) report_digitizer_t; +} PACKED report_digitizer_t; typedef struct { #ifdef JOYSTICK_SHARED_EP @@ -251,7 +252,7 @@ typedef struct { #if JOYSTICK_BUTTON_COUNT > 0 uint8_t buttons[(JOYSTICK_BUTTON_COUNT - 1) / 8 + 1]; #endif -} __attribute__((packed)) report_joystick_t; +} PACKED report_joystick_t; /* keycode to system usage */ static inline uint16_t KEYCODE2SYSTEM(uint8_t key) { diff --git a/tmk_core/protocol/usb_descriptor.c b/tmk_core/protocol/usb_descriptor.c index e215c90900..eb214c0492 100644 --- a/tmk_core/protocol/usb_descriptor.c +++ b/tmk_core/protocol/usb_descriptor.c @@ -359,10 +359,10 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM SharedReport[] = { // Keycodes HID_RI_USAGE_PAGE(8, 0x07), // Keyboard/Keypad HID_RI_USAGE_MINIMUM(8, 0x00), - HID_RI_USAGE_MAXIMUM(8, KEYBOARD_REPORT_BITS * 8 - 1), + HID_RI_USAGE_MAXIMUM(8, NKRO_REPORT_BITS * 8 - 1), HID_RI_LOGICAL_MINIMUM(8, 0x00), HID_RI_LOGICAL_MAXIMUM(8, 0x01), - HID_RI_REPORT_COUNT(8, KEYBOARD_REPORT_BITS * 8), + HID_RI_REPORT_COUNT(8, NKRO_REPORT_BITS * 8), HID_RI_REPORT_SIZE(8, 0x01), HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), diff --git a/users/brandonschlack/brandonschlack.c b/users/brandonschlack/brandonschlack.c index 1e52bd6452..6a9c04a73d 100644 --- a/users/brandonschlack/brandonschlack.c +++ b/users/brandonschlack/brandonschlack.c @@ -88,9 +88,7 @@ void suspend_power_down_keymap(void) {} */ void suspend_power_down_user(void) { #ifdef RGB_MATRIX_ENABLE - if (!g_suspend_state) { - rgb_matrix_set_suspend_state(true); - } + rgb_matrix_set_suspend_state(true); #endif //RGB_MATRIX_ENABLE suspend_power_down_keymap(); } @@ -103,9 +101,7 @@ void suspend_wakeup_init_keymap(void) {} */ void suspend_wakeup_init_user(void) { #ifdef RGB_MATRIX_ENABLE - if (g_suspend_state) { - rgb_matrix_set_suspend_state(false); - } + rgb_matrix_set_suspend_state(false); #endif //RGB_MATRIX_ENABLE suspend_wakeup_init_keymap(); } From 81a3aa025cda52732e847af8db256cb132605ce0 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sat, 14 Oct 2023 23:10:55 +1100 Subject: [PATCH 287/496] Fix typo in keychron v6 encoder map enable (#22272) --- keyboards/keychron/v6/ansi_encoder/keymaps/via/rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/keychron/v6/ansi_encoder/keymaps/via/rules.mk b/keyboards/keychron/v6/ansi_encoder/keymaps/via/rules.mk index c09b247576..f1adcab005 100644 --- a/keyboards/keychron/v6/ansi_encoder/keymaps/via/rules.mk +++ b/keyboards/keychron/v6/ansi_encoder/keymaps/via/rules.mk @@ -1,2 +1,2 @@ VIA_ENABLE = yes -EMCODER_MAP_ENABLE = yes +ENCODER_MAP_ENABLE = yes From f6c70c40af502923594e76bf079f602ed88a2341 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Tue, 17 Oct 2023 09:43:50 +1100 Subject: [PATCH 288/496] Allow for disabling of parallel processing of qmk find and `qmk mass-compile`. (#22160) Co-authored-by: Duncan Sutherland --- lib/python/qmk/cli/find.py | 2 +- lib/python/qmk/cli/mass_compile.py | 4 +-- lib/python/qmk/search.py | 30 ++++++++-------- lib/python/qmk/util.py | 56 ++++++++++++++++++++++++++++++ 4 files changed, 73 insertions(+), 19 deletions(-) create mode 100644 lib/python/qmk/util.py diff --git a/lib/python/qmk/cli/find.py b/lib/python/qmk/cli/find.py index 2836eb8a54..f2135bbc16 100644 --- a/lib/python/qmk/cli/find.py +++ b/lib/python/qmk/cli/find.py @@ -23,7 +23,7 @@ def find(cli): if len(cli.args.filter) == 0 and len(cli.args.print) > 0: cli.log.warning('No filters supplied -- keymaps not parsed, unable to print requested values.') - targets = search_keymap_targets(cli.args.keymap, cli.args.filter, cli.args.print) + targets = search_keymap_targets([('all', cli.config.find.keymap)], cli.args.filter, cli.args.print) for keyboard, keymap, print_vals in targets: print(f'{keyboard}:{keymap}') diff --git a/lib/python/qmk/cli/mass_compile.py b/lib/python/qmk/cli/mass_compile.py index 1227f435e7..06e6e411a7 100755 --- a/lib/python/qmk/cli/mass_compile.py +++ b/lib/python/qmk/cli/mass_compile.py @@ -97,6 +97,6 @@ def mass_compile(cli): if len(cli.args.builds) > 0: targets = search_make_targets(cli.args.builds, cli.args.filter) else: - targets = search_keymap_targets(cli.args.keymap, cli.args.filter) + targets = search_keymap_targets([('all', cli.config.mass_compile.keymap)], cli.args.filter) - return mass_compile_targets(targets, cli.args.clean, cli.args.dry_run, cli.args.no_temp, cli.args.parallel, cli.args.env) + return mass_compile_targets(targets, cli.args.clean, cli.args.dry_run, cli.config.mass_compile.no_temp, cli.config.mass_compile.parallel, cli.args.env) diff --git a/lib/python/qmk/search.py b/lib/python/qmk/search.py index 0b5d489218..a74450ca87 100644 --- a/lib/python/qmk/search.py +++ b/lib/python/qmk/search.py @@ -4,12 +4,12 @@ import contextlib import functools import fnmatch import logging -import multiprocessing import re from typing import List, Tuple from dotty_dict import dotty from milc import cli +from qmk.util import parallel_map from qmk.info import keymap_json import qmk.keyboard import qmk.keymap @@ -78,17 +78,16 @@ def _expand_keymap_target(keyboard: str, keymap: str, all_keyboards: List[str] = all_keyboards = qmk.keyboard.list_keyboards() if keyboard == 'all': - with multiprocessing.Pool() as pool: - if keymap == 'all': - cli.log.info('Retrieving list of all keyboards and keymaps...') - targets = [] - for kb in pool.imap_unordered(_all_keymaps, all_keyboards): - targets.extend(kb) - return targets - else: - cli.log.info(f'Retrieving list of keyboards with keymap "{keymap}"...') - keyboard_filter = functools.partial(_keymap_exists, keymap=keymap) - return [(kb, keymap) for kb in filter(lambda e: e is not None, pool.imap_unordered(keyboard_filter, all_keyboards))] + if keymap == 'all': + cli.log.info('Retrieving list of all keyboards and keymaps...') + targets = [] + for kb in parallel_map(_all_keymaps, all_keyboards): + targets.extend(kb) + return targets + else: + cli.log.info(f'Retrieving list of keyboards with keymap "{keymap}"...') + keyboard_filter = functools.partial(_keymap_exists, keymap=keymap) + return [(kb, keymap) for kb in filter(lambda e: e is not None, parallel_map(keyboard_filter, all_keyboards))] else: if keymap == 'all': keyboard = qmk.keyboard.resolve_keyboard(keyboard) @@ -117,8 +116,7 @@ def _filter_keymap_targets(target_list: List[Tuple[str, str]], filters: List[str targets = [(kb, km, {}) for kb, km in target_list] else: cli.log.info('Parsing data for all matching keyboard/keymap combinations...') - with multiprocessing.Pool() as pool: - valid_keymaps = [(e[0], e[1], dotty(e[2])) for e in pool.imap_unordered(_load_keymap_info, target_list)] + valid_keymaps = [(e[0], e[1], dotty(e[2])) for e in parallel_map(_load_keymap_info, target_list)] function_re = re.compile(r'^(?P[a-zA-Z]+)\((?P[a-zA-Z0-9_\.]+)(,\s*(?P[^#]+))?\)$') equals_re = re.compile(r'^(?P[a-zA-Z0-9_\.]+)\s*=\s*(?P[^#]+)$') @@ -179,10 +177,10 @@ def _filter_keymap_targets(target_list: List[Tuple[str, str]], filters: List[str return targets -def search_keymap_targets(keymap='default', filters: List[str] = [], print_vals: List[str] = []) -> List[Tuple[str, str, List[Tuple[str, str]]]]: +def search_keymap_targets(targets: List[Tuple[str, str]] = [('all', 'default')], filters: List[str] = [], print_vals: List[str] = []) -> List[Tuple[str, str, List[Tuple[str, str]]]]: """Search for build targets matching the supplied criteria. """ - return list(sorted(_filter_keymap_targets(expand_keymap_targets([('all', keymap)]), filters, print_vals), key=lambda e: (e[0], e[1]))) + return list(sorted(_filter_keymap_targets(expand_keymap_targets(targets), filters, print_vals), key=lambda e: (e[0], e[1]))) def search_make_targets(targets: List[str], filters: List[str] = [], print_vals: List[str] = []) -> List[Tuple[str, str, List[Tuple[str, str]]]]: diff --git a/lib/python/qmk/util.py b/lib/python/qmk/util.py new file mode 100644 index 0000000000..db7debd578 --- /dev/null +++ b/lib/python/qmk/util.py @@ -0,0 +1,56 @@ +"""Utility functions. +""" +import contextlib +import multiprocessing + +from milc import cli + + +@contextlib.contextmanager +def parallelize(): + """Returns a function that can be used in place of a map() call. + + Attempts to use `mpire`, falling back to `multiprocessing` if it's not + available. If parallelization is not requested, returns the original map() + function. + """ + + # Work out if we've already got a config value for parallel searching + if cli.config.user.parallel_search is None: + parallel_search = True + else: + parallel_search = cli.config.user.parallel_search + + # Non-parallel searches use `map()` + if not parallel_search: + yield map + return + + # Prefer mpire's `WorkerPool` if it's available + with contextlib.suppress(ImportError): + from mpire import WorkerPool + from mpire.utils import make_single_arguments + with WorkerPool() as pool: + + def _worker(func, *args): + # Ensure we don't unpack tuples -- mpire's `WorkerPool` tries to do so normally so we tell it not to. + for r in pool.imap_unordered(func, make_single_arguments(*args, generator=False), progress_bar=True): + yield r + + yield _worker + return + + # Otherwise fall back to multiprocessing's `Pool` + with multiprocessing.Pool() as pool: + yield pool.imap_unordered + + +def parallel_map(*args, **kwargs): + """Effectively runs `map()` but executes it in parallel if necessary. + """ + with parallelize() as map_fn: + # This needs to be enclosed in a `list()` as some implementations return + # a generator function, which means the scope of the pool is closed off + # before the results are returned. Returning a list ensures results are + # materialised before any worker pool is shut down. + return list(map_fn(*args, **kwargs)) From e4c54a9612318ea03accfb688c8440b62c5706e1 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 21 Oct 2023 01:48:05 +0100 Subject: [PATCH 289/496] Support additional split sync items for info.json (#22193) --- data/mappings/info_config.hjson | 12 +++++++++-- data/schemas/keyboard.jsonschema | 28 +++++++++++++++++++++--- docs/reference_info_json.md | 37 ++++++++++++++++++++++++++------ lib/python/qmk/info.py | 9 ++++++++ 4 files changed, 75 insertions(+), 11 deletions(-) diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index e68a4439d0..4cebe906b4 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -146,13 +146,21 @@ // Split Keyboard "SOFT_SERIAL_PIN": {"info_key": "split.soft_serial_pin"}, "SOFT_SERIAL_SPEED": {"info_key": "split.soft_serial_speed"}, - "SPLIT_MODS_ENABLE": {"info_key": "split.transport.sync_modifiers", "value_type": "bool"}, - "SPLIT_TRANSPORT_MIRROR": {"info_key": "split.transport.sync_matrix_state", "value_type": "bool"}, "SPLIT_USB_DETECT": {"info_key": "split.usb_detect.enabled", "value_type": "bool"}, "SPLIT_USB_TIMEOUT": {"info_key": "split.usb_detect.timeout", "value_type": "int"}, "SPLIT_USB_TIMEOUT_POLL": {"info_key": "split.usb_detect.polling_interval", "value_type": "int"}, "SPLIT_WATCHDOG_ENABLE": {"info_key": "split.transport.watchdog", "value_type": "bool"}, "SPLIT_WATCHDOG_TIMEOUT": {"info_key": "split.transport.watchdog_timeout", "value_type": "int"}, + "SPLIT_ACTIVITY_ENABLE": {"info_key": "split.transport.sync.activity", "value_type": "bool"}, + "SPLIT_DETECTED_OS_ENABLE": {"info_key": "split.transport.sync.detected_os", "value_type": "bool"}, + "SPLIT_HAPTIC_ENABLE": {"info_key": "split.transport.sync.haptic", "value_type": "bool"}, + "SPLIT_LAYER_STATE_ENABLE": {"info_key": "split.transport.sync.layer_state", "value_type": "bool"}, + "SPLIT_LED_STATE_ENABLE": {"info_key": "split.transport.sync.indicators", "value_type": "bool"}, + "SPLIT_TRANSPORT_MIRROR": {"info_key": "split.transport.sync.matrix_state", "value_type": "bool"}, + "SPLIT_MODS_ENABLE": {"info_key": "split.transport.sync.modifiers", "value_type": "bool"}, + "SPLIT_OLED_ENABLE": {"info_key": "split.transport.sync.oled", "value_type": "bool"}, + "SPLIT_ST7565_ENABLE": {"info_key": "split.transport.sync.st7565", "value_type": "bool"}, + "SPLIT_WPM_ENABLE": {"info_key": "split.transport.sync.wpm", "value_type": "bool"}, // Tapping "HOLD_ON_OTHER_KEY_PRESS": {"info_key": "tapping.hold_on_other_key_press", "value_type": "bool"}, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index e0be8f5b97..8ff94fb9f2 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -663,10 +663,32 @@ "type": "string", "enum": ["custom", "i2c", "serial", "serial_usart"] }, - "sync_matrix_state": {"type": "boolean"}, - "sync_modifiers": {"type": "boolean"}, + "sync": { + "type": "object", + "additionalProperties": false, + "properties": { + "activity": {"type": "boolean"}, + "detected_os": {"type": "boolean"}, + "haptic": {"type": "boolean"}, + "layer_state": {"type": "boolean"}, + "indicators": {"type": "boolean"}, + "matrix_state": {"type": "boolean"}, + "modifiers": {"type": "boolean"}, + "oled": {"type": "boolean"}, + "st7565": {"type": "boolean"}, + "wpm": {"type": "boolean"} + } + } "watchdog": {"type": "boolean"}, - "watchdog_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"} + "watchdog_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "sync_matrix_state": { + "type": "boolean", + "$comment": "Deprecated: use sync.matrix_state instead" + }, + "sync_modifiers": { + "type": "boolean", + "$comment": "Deprecated: use sync.modifiers instead" + } } }, "usb_detect": { diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index f31d3c4a2f..e05b09c6cd 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -633,12 +633,37 @@ Configures the [Split Keyboard](feature_split_keyboard.md) feature. * `transport` * `protocol` * The split transport protocol to use. Must be one of `custom`, `i2c`, `serial`, `serial_usart`. - * `sync_matrix_state` - * Mirror the main/primary half's matrix state to the secondary half. - * Default: `false` - * `sync_modifiers` - * Mirror the modifier state to the secondary half. - * Default: `false` + * `sync` + * `activity` + * Mirror the activity timestamps to the secondary half. + * Default: `false` + * `detected_os` + * Mirror the [detected OS](feature_os_detection.md) to the secondary half. + * Default: `false` + * `haptic` + * Mirror the haptic state and process haptic feedback to the secondary half. + * Default: `false` + * `layer_state` + * Mirror the layer state to the secondary half. + * Default: `false` + * `indicators` + * Mirror the indicator state to the secondary half. + * Default: `false` + * `matrix_state` + * Mirror the main/primary half's matrix state to the secondary half. + * Default: `false` + * `modifiers` + * Mirror the modifier state to the secondary half. + * Default: `false` + * `oled` + * Mirror the OLED on/off status to the secondary half. + * Default: `false` + * `st7565` + * Mirror the ST7565 on/off status to the secondary half. + * Default: `false` + * `wpm` + * Mirror the current WPM value to the secondary half. + * Default: `false` * `watchdog` * Reboot the secondary half if it loses connection. * Default: `false` diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index 4806add67a..265e6a645f 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -428,6 +428,15 @@ def _extract_split_transport(info_data, config_c): if 'protocol' not in info_data['split']['transport']: info_data['split']['transport']['protocol'] = 'serial' + # Migrate + transport = info_data.get('split', {}).get('transport', {}) + if 'sync_matrix_state' in transport: + transport['sync'] = transport.get('sync', {}) + transport['sync']['matrix_state'] = transport.pop('sync_matrix_state') + if 'sync_modifiers' in transport: + transport['sync'] = transport.get('sync', {}) + transport['sync']['modifiers'] = transport.pop('sync_modifiers') + def _extract_split_right_pins(info_data, config_c): # Figure out the right half matrix pins From 2b8d9f31938fb8e78500a88c5b9933a22f6d6727 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 21 Oct 2023 13:02:03 +1000 Subject: [PATCH 290/496] ChibiOS pin defs: use only vendor if present (#22297) --- platforms/chibios/_pin_defs.h | 527 +++++++++++++++++----------------- 1 file changed, 264 insertions(+), 263 deletions(-) diff --git a/platforms/chibios/_pin_defs.h b/platforms/chibios/_pin_defs.h index 414c9e3d11..e144ef9b0a 100644 --- a/platforms/chibios/_pin_defs.h +++ b/platforms/chibios/_pin_defs.h @@ -24,271 +24,272 @@ /* Include the vendor specific pin defs */ #if __has_include_next("_pin_defs.h") # include_next "_pin_defs.h" -#endif +#else +# define A0 PAL_LINE(GPIOA, 0) +# define A1 PAL_LINE(GPIOA, 1) +# define A2 PAL_LINE(GPIOA, 2) +# define A3 PAL_LINE(GPIOA, 3) +# define A4 PAL_LINE(GPIOA, 4) +# define A5 PAL_LINE(GPIOA, 5) +# define A6 PAL_LINE(GPIOA, 6) +# define A7 PAL_LINE(GPIOA, 7) +# define A8 PAL_LINE(GPIOA, 8) +# define A9 PAL_LINE(GPIOA, 9) +# define A10 PAL_LINE(GPIOA, 10) +# define A11 PAL_LINE(GPIOA, 11) +# define A12 PAL_LINE(GPIOA, 12) +# define A13 PAL_LINE(GPIOA, 13) +# define A14 PAL_LINE(GPIOA, 14) +# define A15 PAL_LINE(GPIOA, 15) +# define A16 PAL_LINE(GPIOA, 16) +# define A17 PAL_LINE(GPIOA, 17) +# define A18 PAL_LINE(GPIOA, 18) +# define A19 PAL_LINE(GPIOA, 19) +# define A20 PAL_LINE(GPIOA, 20) +# define A21 PAL_LINE(GPIOA, 21) +# define A22 PAL_LINE(GPIOA, 22) +# define A23 PAL_LINE(GPIOA, 23) +# define A24 PAL_LINE(GPIOA, 24) +# define A25 PAL_LINE(GPIOA, 25) +# define A26 PAL_LINE(GPIOA, 26) +# define A27 PAL_LINE(GPIOA, 27) +# define A28 PAL_LINE(GPIOA, 28) +# define A29 PAL_LINE(GPIOA, 29) +# define A30 PAL_LINE(GPIOA, 30) +# define A31 PAL_LINE(GPIOA, 31) +# define A32 PAL_LINE(GPIOA, 32) +# define B0 PAL_LINE(GPIOB, 0) +# define B1 PAL_LINE(GPIOB, 1) +# define B2 PAL_LINE(GPIOB, 2) +# define B3 PAL_LINE(GPIOB, 3) +# define B4 PAL_LINE(GPIOB, 4) +# define B5 PAL_LINE(GPIOB, 5) +# define B6 PAL_LINE(GPIOB, 6) +# define B7 PAL_LINE(GPIOB, 7) +# define B8 PAL_LINE(GPIOB, 8) +# define B9 PAL_LINE(GPIOB, 9) +# define B10 PAL_LINE(GPIOB, 10) +# define B11 PAL_LINE(GPIOB, 11) +# define B12 PAL_LINE(GPIOB, 12) +# define B13 PAL_LINE(GPIOB, 13) +# define B14 PAL_LINE(GPIOB, 14) +# define B15 PAL_LINE(GPIOB, 15) +# define B16 PAL_LINE(GPIOB, 16) +# define B17 PAL_LINE(GPIOB, 17) +# define B18 PAL_LINE(GPIOB, 18) +# define B19 PAL_LINE(GPIOB, 19) +# define B20 PAL_LINE(GPIOB, 20) +# define B21 PAL_LINE(GPIOB, 21) +# define B22 PAL_LINE(GPIOB, 22) +# define B23 PAL_LINE(GPIOB, 23) +# define B24 PAL_LINE(GPIOB, 24) +# define B25 PAL_LINE(GPIOB, 25) +# define B26 PAL_LINE(GPIOB, 26) +# define B27 PAL_LINE(GPIOB, 27) +# define B28 PAL_LINE(GPIOB, 28) +# define B29 PAL_LINE(GPIOB, 29) +# define B30 PAL_LINE(GPIOB, 30) +# define B31 PAL_LINE(GPIOB, 31) +# define B32 PAL_LINE(GPIOB, 32) +# define C0 PAL_LINE(GPIOC, 0) +# define C1 PAL_LINE(GPIOC, 1) +# define C2 PAL_LINE(GPIOC, 2) +# define C3 PAL_LINE(GPIOC, 3) +# define C4 PAL_LINE(GPIOC, 4) +# define C5 PAL_LINE(GPIOC, 5) +# define C6 PAL_LINE(GPIOC, 6) +# define C7 PAL_LINE(GPIOC, 7) +# define C8 PAL_LINE(GPIOC, 8) +# define C9 PAL_LINE(GPIOC, 9) +# define C10 PAL_LINE(GPIOC, 10) +# define C11 PAL_LINE(GPIOC, 11) +# define C12 PAL_LINE(GPIOC, 12) +# define C13 PAL_LINE(GPIOC, 13) +# define C14 PAL_LINE(GPIOC, 14) +# define C15 PAL_LINE(GPIOC, 15) +# define C16 PAL_LINE(GPIOC, 16) +# define C17 PAL_LINE(GPIOC, 17) +# define C18 PAL_LINE(GPIOC, 18) +# define C19 PAL_LINE(GPIOC, 19) +# define C20 PAL_LINE(GPIOC, 20) +# define C21 PAL_LINE(GPIOC, 21) +# define C22 PAL_LINE(GPIOC, 22) +# define C23 PAL_LINE(GPIOC, 23) +# define C24 PAL_LINE(GPIOC, 24) +# define C25 PAL_LINE(GPIOC, 25) +# define C26 PAL_LINE(GPIOC, 26) +# define C27 PAL_LINE(GPIOC, 27) +# define C28 PAL_LINE(GPIOC, 28) +# define C29 PAL_LINE(GPIOC, 29) +# define C30 PAL_LINE(GPIOC, 30) +# define C31 PAL_LINE(GPIOC, 31) +# define C32 PAL_LINE(GPIOC, 32) +# define D0 PAL_LINE(GPIOD, 0) +# define D1 PAL_LINE(GPIOD, 1) +# define D2 PAL_LINE(GPIOD, 2) +# define D3 PAL_LINE(GPIOD, 3) +# define D4 PAL_LINE(GPIOD, 4) +# define D5 PAL_LINE(GPIOD, 5) +# define D6 PAL_LINE(GPIOD, 6) +# define D7 PAL_LINE(GPIOD, 7) +# define D8 PAL_LINE(GPIOD, 8) +# define D9 PAL_LINE(GPIOD, 9) +# define D10 PAL_LINE(GPIOD, 10) +# define D11 PAL_LINE(GPIOD, 11) +# define D12 PAL_LINE(GPIOD, 12) +# define D13 PAL_LINE(GPIOD, 13) +# define D14 PAL_LINE(GPIOD, 14) +# define D15 PAL_LINE(GPIOD, 15) +# define D16 PAL_LINE(GPIOD, 16) +# define D17 PAL_LINE(GPIOD, 17) +# define D18 PAL_LINE(GPIOD, 18) +# define D19 PAL_LINE(GPIOD, 19) +# define D20 PAL_LINE(GPIOD, 20) +# define D21 PAL_LINE(GPIOD, 21) +# define D22 PAL_LINE(GPIOD, 22) +# define D23 PAL_LINE(GPIOD, 23) +# define D24 PAL_LINE(GPIOD, 24) +# define D25 PAL_LINE(GPIOD, 25) +# define D26 PAL_LINE(GPIOD, 26) +# define D27 PAL_LINE(GPIOD, 27) +# define D28 PAL_LINE(GPIOD, 28) +# define D29 PAL_LINE(GPIOD, 29) +# define D30 PAL_LINE(GPIOD, 30) +# define D31 PAL_LINE(GPIOD, 31) +# define D32 PAL_LINE(GPIOD, 32) +# define E0 PAL_LINE(GPIOE, 0) +# define E1 PAL_LINE(GPIOE, 1) +# define E2 PAL_LINE(GPIOE, 2) +# define E3 PAL_LINE(GPIOE, 3) +# define E4 PAL_LINE(GPIOE, 4) +# define E5 PAL_LINE(GPIOE, 5) +# define E6 PAL_LINE(GPIOE, 6) +# define E7 PAL_LINE(GPIOE, 7) +# define E8 PAL_LINE(GPIOE, 8) +# define E9 PAL_LINE(GPIOE, 9) +# define E10 PAL_LINE(GPIOE, 10) +# define E11 PAL_LINE(GPIOE, 11) +# define E12 PAL_LINE(GPIOE, 12) +# define E13 PAL_LINE(GPIOE, 13) +# define E14 PAL_LINE(GPIOE, 14) +# define E15 PAL_LINE(GPIOE, 15) +# define E16 PAL_LINE(GPIOE, 16) +# define E17 PAL_LINE(GPIOE, 17) +# define E18 PAL_LINE(GPIOE, 18) +# define E19 PAL_LINE(GPIOE, 19) +# define E20 PAL_LINE(GPIOE, 20) +# define E21 PAL_LINE(GPIOE, 21) +# define E22 PAL_LINE(GPIOE, 22) +# define E23 PAL_LINE(GPIOE, 23) +# define E24 PAL_LINE(GPIOE, 24) +# define E25 PAL_LINE(GPIOE, 25) +# define E26 PAL_LINE(GPIOE, 26) +# define E27 PAL_LINE(GPIOE, 27) +# define E28 PAL_LINE(GPIOE, 28) +# define E29 PAL_LINE(GPIOE, 29) +# define E30 PAL_LINE(GPIOE, 30) +# define E31 PAL_LINE(GPIOE, 31) +# define E32 PAL_LINE(GPIOE, 32) +# define F0 PAL_LINE(GPIOF, 0) +# define F1 PAL_LINE(GPIOF, 1) +# define F2 PAL_LINE(GPIOF, 2) +# define F3 PAL_LINE(GPIOF, 3) +# define F4 PAL_LINE(GPIOF, 4) +# define F5 PAL_LINE(GPIOF, 5) +# define F6 PAL_LINE(GPIOF, 6) +# define F7 PAL_LINE(GPIOF, 7) +# define F8 PAL_LINE(GPIOF, 8) +# define F9 PAL_LINE(GPIOF, 9) +# define F10 PAL_LINE(GPIOF, 10) +# define F11 PAL_LINE(GPIOF, 11) +# define F12 PAL_LINE(GPIOF, 12) +# define F13 PAL_LINE(GPIOF, 13) +# define F14 PAL_LINE(GPIOF, 14) +# define F15 PAL_LINE(GPIOF, 15) +# define G0 PAL_LINE(GPIOG, 0) +# define G1 PAL_LINE(GPIOG, 1) +# define G2 PAL_LINE(GPIOG, 2) +# define G3 PAL_LINE(GPIOG, 3) +# define G4 PAL_LINE(GPIOG, 4) +# define G5 PAL_LINE(GPIOG, 5) +# define G6 PAL_LINE(GPIOG, 6) +# define G7 PAL_LINE(GPIOG, 7) +# define G8 PAL_LINE(GPIOG, 8) +# define G9 PAL_LINE(GPIOG, 9) +# define G10 PAL_LINE(GPIOG, 10) +# define G11 PAL_LINE(GPIOG, 11) +# define G12 PAL_LINE(GPIOG, 12) +# define G13 PAL_LINE(GPIOG, 13) +# define G14 PAL_LINE(GPIOG, 14) +# define G15 PAL_LINE(GPIOG, 15) +# define H0 PAL_LINE(GPIOH, 0) +# define H1 PAL_LINE(GPIOH, 1) +# define H2 PAL_LINE(GPIOH, 2) +# define H3 PAL_LINE(GPIOH, 3) +# define H4 PAL_LINE(GPIOH, 4) +# define H5 PAL_LINE(GPIOH, 5) +# define H6 PAL_LINE(GPIOH, 6) +# define H7 PAL_LINE(GPIOH, 7) +# define H8 PAL_LINE(GPIOH, 8) +# define H9 PAL_LINE(GPIOH, 9) +# define H10 PAL_LINE(GPIOH, 10) +# define H11 PAL_LINE(GPIOH, 11) +# define H12 PAL_LINE(GPIOH, 12) +# define H13 PAL_LINE(GPIOH, 13) +# define H14 PAL_LINE(GPIOH, 14) +# define H15 PAL_LINE(GPIOH, 15) +# define I0 PAL_LINE(GPIOI, 0) +# define I1 PAL_LINE(GPIOI, 1) +# define I2 PAL_LINE(GPIOI, 2) +# define I3 PAL_LINE(GPIOI, 3) +# define I4 PAL_LINE(GPIOI, 4) +# define I5 PAL_LINE(GPIOI, 5) +# define I6 PAL_LINE(GPIOI, 6) +# define I7 PAL_LINE(GPIOI, 7) +# define I8 PAL_LINE(GPIOI, 8) +# define I9 PAL_LINE(GPIOI, 9) +# define I10 PAL_LINE(GPIOI, 10) +# define I11 PAL_LINE(GPIOI, 11) +# define I12 PAL_LINE(GPIOI, 12) +# define I13 PAL_LINE(GPIOI, 13) +# define I14 PAL_LINE(GPIOI, 14) +# define I15 PAL_LINE(GPIOI, 15) +# define J0 PAL_LINE(GPIOJ, 0) +# define J1 PAL_LINE(GPIOJ, 1) +# define J2 PAL_LINE(GPIOJ, 2) +# define J3 PAL_LINE(GPIOJ, 3) +# define J4 PAL_LINE(GPIOJ, 4) +# define J5 PAL_LINE(GPIOJ, 5) +# define J6 PAL_LINE(GPIOJ, 6) +# define J7 PAL_LINE(GPIOJ, 7) +# define J8 PAL_LINE(GPIOJ, 8) +# define J9 PAL_LINE(GPIOJ, 9) +# define J10 PAL_LINE(GPIOJ, 10) +# define J11 PAL_LINE(GPIOJ, 11) +# define J12 PAL_LINE(GPIOJ, 12) +# define J13 PAL_LINE(GPIOJ, 13) +# define J14 PAL_LINE(GPIOJ, 14) +# define J15 PAL_LINE(GPIOJ, 15) -#define A0 PAL_LINE(GPIOA, 0) -#define A1 PAL_LINE(GPIOA, 1) -#define A2 PAL_LINE(GPIOA, 2) -#define A3 PAL_LINE(GPIOA, 3) -#define A4 PAL_LINE(GPIOA, 4) -#define A5 PAL_LINE(GPIOA, 5) -#define A6 PAL_LINE(GPIOA, 6) -#define A7 PAL_LINE(GPIOA, 7) -#define A8 PAL_LINE(GPIOA, 8) -#define A9 PAL_LINE(GPIOA, 9) -#define A10 PAL_LINE(GPIOA, 10) -#define A11 PAL_LINE(GPIOA, 11) -#define A12 PAL_LINE(GPIOA, 12) -#define A13 PAL_LINE(GPIOA, 13) -#define A14 PAL_LINE(GPIOA, 14) -#define A15 PAL_LINE(GPIOA, 15) -#define A16 PAL_LINE(GPIOA, 16) -#define A17 PAL_LINE(GPIOA, 17) -#define A18 PAL_LINE(GPIOA, 18) -#define A19 PAL_LINE(GPIOA, 19) -#define A20 PAL_LINE(GPIOA, 20) -#define A21 PAL_LINE(GPIOA, 21) -#define A22 PAL_LINE(GPIOA, 22) -#define A23 PAL_LINE(GPIOA, 23) -#define A24 PAL_LINE(GPIOA, 24) -#define A25 PAL_LINE(GPIOA, 25) -#define A26 PAL_LINE(GPIOA, 26) -#define A27 PAL_LINE(GPIOA, 27) -#define A28 PAL_LINE(GPIOA, 28) -#define A29 PAL_LINE(GPIOA, 29) -#define A30 PAL_LINE(GPIOA, 30) -#define A31 PAL_LINE(GPIOA, 31) -#define A32 PAL_LINE(GPIOA, 32) -#define B0 PAL_LINE(GPIOB, 0) -#define B1 PAL_LINE(GPIOB, 1) -#define B2 PAL_LINE(GPIOB, 2) -#define B3 PAL_LINE(GPIOB, 3) -#define B4 PAL_LINE(GPIOB, 4) -#define B5 PAL_LINE(GPIOB, 5) -#define B6 PAL_LINE(GPIOB, 6) -#define B7 PAL_LINE(GPIOB, 7) -#define B8 PAL_LINE(GPIOB, 8) -#define B9 PAL_LINE(GPIOB, 9) -#define B10 PAL_LINE(GPIOB, 10) -#define B11 PAL_LINE(GPIOB, 11) -#define B12 PAL_LINE(GPIOB, 12) -#define B13 PAL_LINE(GPIOB, 13) -#define B14 PAL_LINE(GPIOB, 14) -#define B15 PAL_LINE(GPIOB, 15) -#define B16 PAL_LINE(GPIOB, 16) -#define B17 PAL_LINE(GPIOB, 17) -#define B18 PAL_LINE(GPIOB, 18) -#define B19 PAL_LINE(GPIOB, 19) -#define B20 PAL_LINE(GPIOB, 20) -#define B21 PAL_LINE(GPIOB, 21) -#define B22 PAL_LINE(GPIOB, 22) -#define B23 PAL_LINE(GPIOB, 23) -#define B24 PAL_LINE(GPIOB, 24) -#define B25 PAL_LINE(GPIOB, 25) -#define B26 PAL_LINE(GPIOB, 26) -#define B27 PAL_LINE(GPIOB, 27) -#define B28 PAL_LINE(GPIOB, 28) -#define B29 PAL_LINE(GPIOB, 29) -#define B30 PAL_LINE(GPIOB, 30) -#define B31 PAL_LINE(GPIOB, 31) -#define B32 PAL_LINE(GPIOB, 32) -#define C0 PAL_LINE(GPIOC, 0) -#define C1 PAL_LINE(GPIOC, 1) -#define C2 PAL_LINE(GPIOC, 2) -#define C3 PAL_LINE(GPIOC, 3) -#define C4 PAL_LINE(GPIOC, 4) -#define C5 PAL_LINE(GPIOC, 5) -#define C6 PAL_LINE(GPIOC, 6) -#define C7 PAL_LINE(GPIOC, 7) -#define C8 PAL_LINE(GPIOC, 8) -#define C9 PAL_LINE(GPIOC, 9) -#define C10 PAL_LINE(GPIOC, 10) -#define C11 PAL_LINE(GPIOC, 11) -#define C12 PAL_LINE(GPIOC, 12) -#define C13 PAL_LINE(GPIOC, 13) -#define C14 PAL_LINE(GPIOC, 14) -#define C15 PAL_LINE(GPIOC, 15) -#define C16 PAL_LINE(GPIOC, 16) -#define C17 PAL_LINE(GPIOC, 17) -#define C18 PAL_LINE(GPIOC, 18) -#define C19 PAL_LINE(GPIOC, 19) -#define C20 PAL_LINE(GPIOC, 20) -#define C21 PAL_LINE(GPIOC, 21) -#define C22 PAL_LINE(GPIOC, 22) -#define C23 PAL_LINE(GPIOC, 23) -#define C24 PAL_LINE(GPIOC, 24) -#define C25 PAL_LINE(GPIOC, 25) -#define C26 PAL_LINE(GPIOC, 26) -#define C27 PAL_LINE(GPIOC, 27) -#define C28 PAL_LINE(GPIOC, 28) -#define C29 PAL_LINE(GPIOC, 29) -#define C30 PAL_LINE(GPIOC, 30) -#define C31 PAL_LINE(GPIOC, 31) -#define C32 PAL_LINE(GPIOC, 32) -#define D0 PAL_LINE(GPIOD, 0) -#define D1 PAL_LINE(GPIOD, 1) -#define D2 PAL_LINE(GPIOD, 2) -#define D3 PAL_LINE(GPIOD, 3) -#define D4 PAL_LINE(GPIOD, 4) -#define D5 PAL_LINE(GPIOD, 5) -#define D6 PAL_LINE(GPIOD, 6) -#define D7 PAL_LINE(GPIOD, 7) -#define D8 PAL_LINE(GPIOD, 8) -#define D9 PAL_LINE(GPIOD, 9) -#define D10 PAL_LINE(GPIOD, 10) -#define D11 PAL_LINE(GPIOD, 11) -#define D12 PAL_LINE(GPIOD, 12) -#define D13 PAL_LINE(GPIOD, 13) -#define D14 PAL_LINE(GPIOD, 14) -#define D15 PAL_LINE(GPIOD, 15) -#define D16 PAL_LINE(GPIOD, 16) -#define D17 PAL_LINE(GPIOD, 17) -#define D18 PAL_LINE(GPIOD, 18) -#define D19 PAL_LINE(GPIOD, 19) -#define D20 PAL_LINE(GPIOD, 20) -#define D21 PAL_LINE(GPIOD, 21) -#define D22 PAL_LINE(GPIOD, 22) -#define D23 PAL_LINE(GPIOD, 23) -#define D24 PAL_LINE(GPIOD, 24) -#define D25 PAL_LINE(GPIOD, 25) -#define D26 PAL_LINE(GPIOD, 26) -#define D27 PAL_LINE(GPIOD, 27) -#define D28 PAL_LINE(GPIOD, 28) -#define D29 PAL_LINE(GPIOD, 29) -#define D30 PAL_LINE(GPIOD, 30) -#define D31 PAL_LINE(GPIOD, 31) -#define D32 PAL_LINE(GPIOD, 32) -#define E0 PAL_LINE(GPIOE, 0) -#define E1 PAL_LINE(GPIOE, 1) -#define E2 PAL_LINE(GPIOE, 2) -#define E3 PAL_LINE(GPIOE, 3) -#define E4 PAL_LINE(GPIOE, 4) -#define E5 PAL_LINE(GPIOE, 5) -#define E6 PAL_LINE(GPIOE, 6) -#define E7 PAL_LINE(GPIOE, 7) -#define E8 PAL_LINE(GPIOE, 8) -#define E9 PAL_LINE(GPIOE, 9) -#define E10 PAL_LINE(GPIOE, 10) -#define E11 PAL_LINE(GPIOE, 11) -#define E12 PAL_LINE(GPIOE, 12) -#define E13 PAL_LINE(GPIOE, 13) -#define E14 PAL_LINE(GPIOE, 14) -#define E15 PAL_LINE(GPIOE, 15) -#define E16 PAL_LINE(GPIOE, 16) -#define E17 PAL_LINE(GPIOE, 17) -#define E18 PAL_LINE(GPIOE, 18) -#define E19 PAL_LINE(GPIOE, 19) -#define E20 PAL_LINE(GPIOE, 20) -#define E21 PAL_LINE(GPIOE, 21) -#define E22 PAL_LINE(GPIOE, 22) -#define E23 PAL_LINE(GPIOE, 23) -#define E24 PAL_LINE(GPIOE, 24) -#define E25 PAL_LINE(GPIOE, 25) -#define E26 PAL_LINE(GPIOE, 26) -#define E27 PAL_LINE(GPIOE, 27) -#define E28 PAL_LINE(GPIOE, 28) -#define E29 PAL_LINE(GPIOE, 29) -#define E30 PAL_LINE(GPIOE, 30) -#define E31 PAL_LINE(GPIOE, 31) -#define E32 PAL_LINE(GPIOE, 32) -#define F0 PAL_LINE(GPIOF, 0) -#define F1 PAL_LINE(GPIOF, 1) -#define F2 PAL_LINE(GPIOF, 2) -#define F3 PAL_LINE(GPIOF, 3) -#define F4 PAL_LINE(GPIOF, 4) -#define F5 PAL_LINE(GPIOF, 5) -#define F6 PAL_LINE(GPIOF, 6) -#define F7 PAL_LINE(GPIOF, 7) -#define F8 PAL_LINE(GPIOF, 8) -#define F9 PAL_LINE(GPIOF, 9) -#define F10 PAL_LINE(GPIOF, 10) -#define F11 PAL_LINE(GPIOF, 11) -#define F12 PAL_LINE(GPIOF, 12) -#define F13 PAL_LINE(GPIOF, 13) -#define F14 PAL_LINE(GPIOF, 14) -#define F15 PAL_LINE(GPIOF, 15) -#define G0 PAL_LINE(GPIOG, 0) -#define G1 PAL_LINE(GPIOG, 1) -#define G2 PAL_LINE(GPIOG, 2) -#define G3 PAL_LINE(GPIOG, 3) -#define G4 PAL_LINE(GPIOG, 4) -#define G5 PAL_LINE(GPIOG, 5) -#define G6 PAL_LINE(GPIOG, 6) -#define G7 PAL_LINE(GPIOG, 7) -#define G8 PAL_LINE(GPIOG, 8) -#define G9 PAL_LINE(GPIOG, 9) -#define G10 PAL_LINE(GPIOG, 10) -#define G11 PAL_LINE(GPIOG, 11) -#define G12 PAL_LINE(GPIOG, 12) -#define G13 PAL_LINE(GPIOG, 13) -#define G14 PAL_LINE(GPIOG, 14) -#define G15 PAL_LINE(GPIOG, 15) -#define H0 PAL_LINE(GPIOH, 0) -#define H1 PAL_LINE(GPIOH, 1) -#define H2 PAL_LINE(GPIOH, 2) -#define H3 PAL_LINE(GPIOH, 3) -#define H4 PAL_LINE(GPIOH, 4) -#define H5 PAL_LINE(GPIOH, 5) -#define H6 PAL_LINE(GPIOH, 6) -#define H7 PAL_LINE(GPIOH, 7) -#define H8 PAL_LINE(GPIOH, 8) -#define H9 PAL_LINE(GPIOH, 9) -#define H10 PAL_LINE(GPIOH, 10) -#define H11 PAL_LINE(GPIOH, 11) -#define H12 PAL_LINE(GPIOH, 12) -#define H13 PAL_LINE(GPIOH, 13) -#define H14 PAL_LINE(GPIOH, 14) -#define H15 PAL_LINE(GPIOH, 15) -#define I0 PAL_LINE(GPIOI, 0) -#define I1 PAL_LINE(GPIOI, 1) -#define I2 PAL_LINE(GPIOI, 2) -#define I3 PAL_LINE(GPIOI, 3) -#define I4 PAL_LINE(GPIOI, 4) -#define I5 PAL_LINE(GPIOI, 5) -#define I6 PAL_LINE(GPIOI, 6) -#define I7 PAL_LINE(GPIOI, 7) -#define I8 PAL_LINE(GPIOI, 8) -#define I9 PAL_LINE(GPIOI, 9) -#define I10 PAL_LINE(GPIOI, 10) -#define I11 PAL_LINE(GPIOI, 11) -#define I12 PAL_LINE(GPIOI, 12) -#define I13 PAL_LINE(GPIOI, 13) -#define I14 PAL_LINE(GPIOI, 14) -#define I15 PAL_LINE(GPIOI, 15) -#define J0 PAL_LINE(GPIOJ, 0) -#define J1 PAL_LINE(GPIOJ, 1) -#define J2 PAL_LINE(GPIOJ, 2) -#define J3 PAL_LINE(GPIOJ, 3) -#define J4 PAL_LINE(GPIOJ, 4) -#define J5 PAL_LINE(GPIOJ, 5) -#define J6 PAL_LINE(GPIOJ, 6) -#define J7 PAL_LINE(GPIOJ, 7) -#define J8 PAL_LINE(GPIOJ, 8) -#define J9 PAL_LINE(GPIOJ, 9) -#define J10 PAL_LINE(GPIOJ, 10) -#define J11 PAL_LINE(GPIOJ, 11) -#define J12 PAL_LINE(GPIOJ, 12) -#define J13 PAL_LINE(GPIOJ, 13) -#define J14 PAL_LINE(GPIOJ, 14) -#define J15 PAL_LINE(GPIOJ, 15) // Keyboards can `#define KEYBOARD_REQUIRES_GPIOK` if they need to access GPIO-K pins. These conflict with a whole // bunch of layout definitions, so it's intentionally left out unless absolutely required -- in that case, the // keyboard designer should use a different symbol when defining their layout macros. -#ifdef KEYBOARD_REQUIRES_GPIOK -# define K0 PAL_LINE(GPIOK, 0) -# define K1 PAL_LINE(GPIOK, 1) -# define K2 PAL_LINE(GPIOK, 2) -# define K3 PAL_LINE(GPIOK, 3) -# define K4 PAL_LINE(GPIOK, 4) -# define K5 PAL_LINE(GPIOK, 5) -# define K6 PAL_LINE(GPIOK, 6) -# define K7 PAL_LINE(GPIOK, 7) -# define K8 PAL_LINE(GPIOK, 8) -# define K9 PAL_LINE(GPIOK, 9) -# define K10 PAL_LINE(GPIOK, 10) -# define K11 PAL_LINE(GPIOK, 11) -# define K12 PAL_LINE(GPIOK, 12) -# define K13 PAL_LINE(GPIOK, 13) -# define K14 PAL_LINE(GPIOK, 14) -# define K15 PAL_LINE(GPIOK, 15) +# ifdef KEYBOARD_REQUIRES_GPIOK +# define K0 PAL_LINE(GPIOK, 0) +# define K1 PAL_LINE(GPIOK, 1) +# define K2 PAL_LINE(GPIOK, 2) +# define K3 PAL_LINE(GPIOK, 3) +# define K4 PAL_LINE(GPIOK, 4) +# define K5 PAL_LINE(GPIOK, 5) +# define K6 PAL_LINE(GPIOK, 6) +# define K7 PAL_LINE(GPIOK, 7) +# define K8 PAL_LINE(GPIOK, 8) +# define K9 PAL_LINE(GPIOK, 9) +# define K10 PAL_LINE(GPIOK, 10) +# define K11 PAL_LINE(GPIOK, 11) +# define K12 PAL_LINE(GPIOK, 12) +# define K13 PAL_LINE(GPIOK, 13) +# define K14 PAL_LINE(GPIOK, 14) +# define K15 PAL_LINE(GPIOK, 15) +# endif #endif From 0e6d47e1e441def99d75f12ac753ac7c565f0102 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sat, 21 Oct 2023 21:31:23 +1100 Subject: [PATCH 291/496] Fixup symbol sizing listing. (#22307) --- builddefs/build_keyboard.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk index e93ab97cc1..6ae6bc686b 100644 --- a/builddefs/build_keyboard.mk +++ b/builddefs/build_keyboard.mk @@ -495,10 +495,10 @@ check-size: top-symbols top-symbols: build echo "###########################################" echo "# Highest flash usage:" - $(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep -i ' [t] ' | head -n$(NUM_TOP_SYMBOLS) | sed -e 's#^0000000# #g' -e 's#^000000# #g' -e 's#^00000# #g' -e 's#^0000# #g' -e 's#^000# #g' -e 's#^00# #g' -e 's#^0# #g' + $(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep ' [RrTt] ' | head -n$(NUM_TOP_SYMBOLS) | sed -e 's#^0000000# #g' -e 's#^000000# #g' -e 's#^00000# #g' -e 's#^0000# #g' -e 's#^000# #g' -e 's#^00# #g' -e 's#^0# #g' echo "###########################################" echo "# Highest RAM usage:" - $(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep -i ' [dbv] ' | head -n$(NUM_TOP_SYMBOLS) | sed -e 's#^0000000# #g' -e 's#^000000# #g' -e 's#^00000# #g' -e 's#^0000# #g' -e 's#^000# #g' -e 's#^00# #g' -e 's#^0# #g' + $(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep ' [BbCDdGgSs] ' | head -n$(NUM_TOP_SYMBOLS) | sed -e 's#^0000000# #g' -e 's#^000000# #g' -e 's#^00000# #g' -e 's#^0000# #g' -e 's#^000# #g' -e 's#^00# #g' -e 's#^0# #g' echo "###########################################" endif From 3f1b3a512532b8e6ebd2f73df5222ae146b1f490 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 21 Oct 2023 12:21:23 +0100 Subject: [PATCH 292/496] Migrate recently introduced sync items (#22305) --- keyboards/ai03/orbit/config.h | 3 --- keyboards/ai03/orbit/info.json | 6 ++++++ keyboards/boardsource/unicorne/config.h | 2 -- keyboards/boardsource/unicorne/info.json | 7 ++++++- keyboards/buzzard/rev1/config.h | 1 - keyboards/buzzard/rev1/info.json | 7 ++++++- keyboards/clickety_split/leeloo/rev2/info.json | 4 +++- keyboards/clickety_split/leeloo/rev3/info.json | 6 ++++-- keyboards/controllerworks/mini36/config.h | 5 ----- keyboards/controllerworks/mini36/info.json | 8 +++++++- keyboards/controllerworks/mini42/config.h | 5 ----- keyboards/controllerworks/mini42/info.json | 8 +++++++- keyboards/handwired/tsubasa/config.h | 3 --- keyboards/handwired/tsubasa/info.json | 6 ++++++ keyboards/helix/rev2/config.h | 3 --- keyboards/helix/rev2/info.json | 8 +++++++- keyboards/hotdox76v2/config.h | 5 ----- keyboards/hotdox76v2/info.json | 11 ++++++++++- keyboards/jorne/rev1/config.h | 2 -- keyboards/jorne/rev1/info.json | 8 +++++++- keyboards/kapl/rev1/config.h | 4 ---- keyboards/kapl/rev1/info.json | 9 ++++++++- keyboards/keebio/iris/rev8/info.json | 4 +++- keyboards/keebio/nyquist/rev4/info.json | 4 +++- keyboards/keebio/sinc/rev1/config.h | 2 -- keyboards/keebio/sinc/rev1/info.json | 5 ++++- keyboards/keebio/sinc/rev2/config.h | 2 -- keyboards/keebio/sinc/rev2/info.json | 5 ++++- keyboards/keychron/q11/info.json | 4 +++- keyboards/lime/rev1/config.h | 5 ----- keyboards/lime/rev1/info.json | 5 +++++ keyboards/mechwild/mokulua/mirrored/config.h | 4 ---- keyboards/mechwild/mokulua/mirrored/info.json | 10 +++++++++- keyboards/mechwild/mokulua/standard/config.h | 4 ---- keyboards/mechwild/mokulua/standard/info.json | 10 +++++++++- keyboards/mlego/m60_split/rev1/config.h | 4 ---- keyboards/mlego/m60_split/rev1/info.json | 6 ++++++ keyboards/mlego/m60_split/rev2/config.h | 4 ---- keyboards/mlego/m60_split/rev2/info.json | 6 ++++++ keyboards/nullbitsco/snap/config.h | 3 --- keyboards/nullbitsco/snap/info.json | 5 +++++ keyboards/rgbkb/mun/config.h | 3 --- keyboards/rgbkb/mun/rev1/info.json | 9 ++++++++- keyboards/rgbkb/sol3/config.h | 3 --- keyboards/rgbkb/sol3/rev1/info.json | 7 +++++++ keyboards/sofle/keyhive/config.h | 4 ---- keyboards/sofle/keyhive/info.json | 7 +++++++ keyboards/spleeb/config.h | 4 ---- keyboards/spleeb/info.json | 7 +++++++ keyboards/stront/config.h | 2 -- keyboards/stront/info.json | 8 +++++++- keyboards/tweetydabird/lotus58/config.h | 3 --- keyboards/tweetydabird/lotus58/info.json | 9 +++++++-- keyboards/tzarc/djinn/config.h | 6 ------ keyboards/tzarc/djinn/info.json | 10 ++++++++++ keyboards/waterfowl/config.h | 3 +-- keyboards/waterfowl/info.json | 8 +++++++- 57 files changed, 195 insertions(+), 111 deletions(-) diff --git a/keyboards/ai03/orbit/config.h b/keyboards/ai03/orbit/config.h index f4157a1729..53a057875f 100644 --- a/keyboards/ai03/orbit/config.h +++ b/keyboards/ai03/orbit/config.h @@ -19,9 +19,6 @@ along with this program. If not, see . #define SELECT_SOFT_SERIAL_SPEED 1 -#define SPLIT_LED_STATE_ENABLE -#define SPLIT_LAYER_STATE_ENABLE - #define SPLIT_HAND_PIN D5 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ diff --git a/keyboards/ai03/orbit/info.json b/keyboards/ai03/orbit/info.json index 4c5cd1ee51..d7ff0b786c 100644 --- a/keyboards/ai03/orbit/info.json +++ b/keyboards/ai03/orbit/info.json @@ -23,6 +23,12 @@ "cols": ["D4", "D6", "F1", "F0", "F4", "F5", "C6"], "rows": ["B6", "B5", "B4", "D7", "E6"] } + }, + "transport":{ + "sync" :{ + "indicators": true, + "layer_state": true + } } }, "processor": "atmega32u4", diff --git a/keyboards/boardsource/unicorne/config.h b/keyboards/boardsource/unicorne/config.h index d0d466bb54..5843a0c847 100644 --- a/keyboards/boardsource/unicorne/config.h +++ b/keyboards/boardsource/unicorne/config.h @@ -8,8 +8,6 @@ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define SPLIT_LAYER_STATE_ENABLE - #define I2C_DRIVER I2CD1 #define I2C1_SDA_PIN GP22 #define I2C1_SCL_PIN GP23 diff --git a/keyboards/boardsource/unicorne/info.json b/keyboards/boardsource/unicorne/info.json index aeeb348125..4184c870fe 100644 --- a/keyboards/boardsource/unicorne/info.json +++ b/keyboards/boardsource/unicorne/info.json @@ -20,7 +20,12 @@ }, "split": { "enabled": true, - "soft_serial_pin": "GP0" + "soft_serial_pin": "GP0", + "transport": { + "sync": { + "layer_state": true + } + } }, "usb": { "device_version": "1.0.0", diff --git a/keyboards/buzzard/rev1/config.h b/keyboards/buzzard/rev1/config.h index f29441fac8..36313a1c6a 100644 --- a/keyboards/buzzard/rev1/config.h +++ b/keyboards/buzzard/rev1/config.h @@ -10,7 +10,6 @@ #ifdef OLED_ENABLE #define OLED_DISPLAY_128X32 -#define SPLIT_OLED_ENABLE #endif #ifdef PS2_DRIVER_INTERRUPT diff --git a/keyboards/buzzard/rev1/info.json b/keyboards/buzzard/rev1/info.json index d0fa9603f7..0e7d246ae3 100644 --- a/keyboards/buzzard/rev1/info.json +++ b/keyboards/buzzard/rev1/info.json @@ -14,7 +14,12 @@ }, "diode_direction": "COL2ROW", "split": { - "soft_serial_pin": "D2" + "soft_serial_pin": "D2", + "transport": { + "sync": { + "oled": true + } + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/clickety_split/leeloo/rev2/info.json b/keyboards/clickety_split/leeloo/rev2/info.json index 7fc4792f21..6db77714a4 100644 --- a/keyboards/clickety_split/leeloo/rev2/info.json +++ b/keyboards/clickety_split/leeloo/rev2/info.json @@ -8,7 +8,9 @@ }, "split": { "transport": { - "sync_matrix_state": true + "sync" :{ + "matrix_state": true + } } }, "rgblight": { diff --git a/keyboards/clickety_split/leeloo/rev3/info.json b/keyboards/clickety_split/leeloo/rev3/info.json index 9e6727a9e6..2c92f5226e 100644 --- a/keyboards/clickety_split/leeloo/rev3/info.json +++ b/keyboards/clickety_split/leeloo/rev3/info.json @@ -7,9 +7,11 @@ "rgb_matrix": true }, "split": { - "transport": { - "sync_matrix_state": true + "transport": { + "sync" :{ + "matrix_state": true } + } }, "rgblight": { "led_count": 58, diff --git a/keyboards/controllerworks/mini36/config.h b/keyboards/controllerworks/mini36/config.h index 3a094c2fd1..4a0c48b1b0 100644 --- a/keyboards/controllerworks/mini36/config.h +++ b/keyboards/controllerworks/mini36/config.h @@ -22,11 +22,6 @@ #define RGB_MATRIX_SPLIT \ { 24, 24 } -#define SPLIT_TRANSPORT_MIRROR -#define SPLIT_LAYER_STATE_ENABLE -#define SPLIT_LED_STATE_ENABLE -#define SPLIT_MODS_ENABLE - #define I2C_DRIVER I2CD0 #define I2C1_SCL_PIN GP25 #define I2C1_SDA_PIN GP24 diff --git a/keyboards/controllerworks/mini36/info.json b/keyboards/controllerworks/mini36/info.json index 534dee94f1..3a49b210ac 100644 --- a/keyboards/controllerworks/mini36/info.json +++ b/keyboards/controllerworks/mini36/info.json @@ -41,7 +41,13 @@ }, "soft_serial_pin": "GP1", "transport": { - "protocol": "serial" + "protocol": "serial", + "sync": { + "indicators": true, + "layer_state": true, + "matrix_state": true, + "modifiers": true + } } }, "features": { diff --git a/keyboards/controllerworks/mini42/config.h b/keyboards/controllerworks/mini42/config.h index e7fc529592..20b6bbac8d 100644 --- a/keyboards/controllerworks/mini42/config.h +++ b/keyboards/controllerworks/mini42/config.h @@ -20,11 +20,6 @@ #define WS2812_PIO_USE_PIO1 #define RGB_MATRIX_LED_COUNT 54 -#define SPLIT_TRANSPORT_MIRROR -#define SPLIT_LAYER_STATE_ENABLE -#define SPLIT_LED_STATE_ENABLE -#define SPLIT_MODS_ENABLE - #undef I2C_DRIVER #define I2C_DRIVER I2CD0 #undef I2C1_SCL_PIN diff --git a/keyboards/controllerworks/mini42/info.json b/keyboards/controllerworks/mini42/info.json index ae70408a9f..c8c436c08f 100644 --- a/keyboards/controllerworks/mini42/info.json +++ b/keyboards/controllerworks/mini42/info.json @@ -42,7 +42,13 @@ }, "soft_serial_pin": "GP1", "transport": { - "protocol": "serial" + "protocol": "serial", + "sync": { + "indicators": true, + "layer_state": true, + "matrix_state": true, + "modifiers": true + } } }, "features": { diff --git a/keyboards/handwired/tsubasa/config.h b/keyboards/handwired/tsubasa/config.h index 52b64de9f6..a2cd2dafe6 100644 --- a/keyboards/handwired/tsubasa/config.h +++ b/keyboards/handwired/tsubasa/config.h @@ -17,6 +17,3 @@ along with this program. If not, see . #pragma once #define MASTER_RIGHT - -#define SPLIT_WPM_ENABLE -#define SPLIT_LAYER_STATE_ENABLE diff --git a/keyboards/handwired/tsubasa/info.json b/keyboards/handwired/tsubasa/info.json index 245afe30cc..62c418c995 100644 --- a/keyboards/handwired/tsubasa/info.json +++ b/keyboards/handwired/tsubasa/info.json @@ -38,6 +38,12 @@ {"pin_a": "F4", "pin_b": "F5"} ] } + }, + "transport": { + "sync": { + "layer_state": true, + "wpm": true + } } }, "layouts": { diff --git a/keyboards/helix/rev2/config.h b/keyboards/helix/rev2/config.h index 212d0e1e38..7ab494522a 100644 --- a/keyboards/helix/rev2/config.h +++ b/keyboards/helix/rev2/config.h @@ -21,9 +21,6 @@ along with this program. If not, see . #define QUICK_TAP_TERM 0 -#define SPLIT_LAYER_STATE_ENABLE -#define SPLIT_LED_STATE_ENABLE - /* Select hand configuration */ #define MASTER_LEFT // #define MASTER_RIGHT diff --git a/keyboards/helix/rev2/info.json b/keyboards/helix/rev2/info.json index 0056ba90b1..aac3cc9dbb 100644 --- a/keyboards/helix/rev2/info.json +++ b/keyboards/helix/rev2/info.json @@ -14,7 +14,13 @@ }, "diode_direction": "COL2ROW", "split": { - "soft_serial_pin": "D2" + "soft_serial_pin": "D2", + "transport": { + "sync": { + "indicators": true, + "layer_state": true + } + } }, "tapping": { "term": 100 diff --git a/keyboards/hotdox76v2/config.h b/keyboards/hotdox76v2/config.h index f469aa475f..3d80775073 100644 --- a/keyboards/hotdox76v2/config.h +++ b/keyboards/hotdox76v2/config.h @@ -30,11 +30,6 @@ #define RGB_MATRIX_CENTER \ { 112, 32 } -#define SPLIT_TRANSPORT_MIRROR -#define SPLIT_MODS_ENABLE -#define SPLIT_LAYER_STATE_ENABLE -#define SPLIT_LED_STATE_ENABLE -#define SPLIT_OLED_ENABLE #define SPLIT_TRANSACTION_IDS_KB KEYBOARD_CURRENT_ALPA_SYNC #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN diff --git a/keyboards/hotdox76v2/info.json b/keyboards/hotdox76v2/info.json index c66bd5eb8a..a42bdb3a79 100644 --- a/keyboards/hotdox76v2/info.json +++ b/keyboards/hotdox76v2/info.json @@ -27,7 +27,16 @@ }, "split": { "enabled": true, - "soft_serial_pin": "D2" + "soft_serial_pin": "D2", + "transport": { + "sync": { + "indicators": true, + "layer_state": true, + "matrix_state": true, + "modifiers": true, + "oled": true + } + } }, "ws2812": { "pin": "D3" diff --git a/keyboards/jorne/rev1/config.h b/keyboards/jorne/rev1/config.h index 623aaf149c..3b854d3afc 100644 --- a/keyboards/jorne/rev1/config.h +++ b/keyboards/jorne/rev1/config.h @@ -7,5 +7,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define SPLIT_LAYER_STATE_ENABLE -#define SPLIT_LED_STATE_ENABLE diff --git a/keyboards/jorne/rev1/info.json b/keyboards/jorne/rev1/info.json index 1b1f156fa5..f76b9c0e7d 100644 --- a/keyboards/jorne/rev1/info.json +++ b/keyboards/jorne/rev1/info.json @@ -14,7 +14,13 @@ }, "diode_direction": "COL2ROW", "split": { - "soft_serial_pin": "D2" + "soft_serial_pin": "D2", + "transport": { + "sync": { + "indicators": true, + "layer_state": true + } + } }, "rgblight": { "led_count": 56, diff --git a/keyboards/kapl/rev1/config.h b/keyboards/kapl/rev1/config.h index c5c9ada22b..db7eaaee49 100644 --- a/keyboards/kapl/rev1/config.h +++ b/keyboards/kapl/rev1/config.h @@ -8,7 +8,6 @@ #define RGB_MATRIX_LED_COUNT 88 #define RGB_MATRIX_SPLIT { 44, 44 } #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. -#define SPLIT_TRANSPORT_MIRROR #ifdef RGB_MATRIX_ENABLE // EFFECTS @@ -41,6 +40,3 @@ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -#define SPLIT_LAYER_STATE_ENABLE -#define SPLIT_LED_STATE_ENABLE diff --git a/keyboards/kapl/rev1/info.json b/keyboards/kapl/rev1/info.json index 5ef44ccaaa..b649c055ac 100644 --- a/keyboards/kapl/rev1/info.json +++ b/keyboards/kapl/rev1/info.json @@ -36,7 +36,14 @@ }, "diode_direction": "COL2ROW", "split": { - "soft_serial_pin": "D2" + "soft_serial_pin": "D2", + "transport": { + "sync": { + "indicators": true, + "layer_state": true, + "matrix_state": true + } + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/keebio/iris/rev8/info.json b/keyboards/keebio/iris/rev8/info.json index 7d75640801..998cde201d 100644 --- a/keyboards/keebio/iris/rev8/info.json +++ b/keyboards/keebio/iris/rev8/info.json @@ -31,7 +31,9 @@ } }, "transport": { - "sync_matrix_state": true + "sync" :{ + "matrix_state": true + } } }, "processor": "RP2040", diff --git a/keyboards/keebio/nyquist/rev4/info.json b/keyboards/keebio/nyquist/rev4/info.json index d18af71952..043bb02f01 100644 --- a/keyboards/keebio/nyquist/rev4/info.json +++ b/keyboards/keebio/nyquist/rev4/info.json @@ -28,7 +28,9 @@ } }, "transport": { - "sync_matrix_state": true + "sync" :{ + "matrix_state": true + } } }, "matrix_pins": { diff --git a/keyboards/keebio/sinc/rev1/config.h b/keyboards/keebio/sinc/rev1/config.h index 8894354d43..2d2c772422 100644 --- a/keyboards/keebio/sinc/rev1/config.h +++ b/keyboards/keebio/sinc/rev1/config.h @@ -23,8 +23,6 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Synchronize Caps Lock LED across halves */ -#define SPLIT_LED_STATE_ENABLE #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/sinc/rev1/info.json b/keyboards/keebio/sinc/rev1/info.json index 5ddb54ee60..0829cae6e7 100644 --- a/keyboards/keebio/sinc/rev1/info.json +++ b/keyboards/keebio/sinc/rev1/info.json @@ -18,7 +18,10 @@ "enabled": true, "soft_serial_pin": "D0", "transport": { - "protocol": "serial" + "protocol": "serial", + "sync" :{ + "indicators": true + } }, "encoder": { "right": { diff --git a/keyboards/keebio/sinc/rev2/config.h b/keyboards/keebio/sinc/rev2/config.h index 8894354d43..2d2c772422 100644 --- a/keyboards/keebio/sinc/rev2/config.h +++ b/keyboards/keebio/sinc/rev2/config.h @@ -23,8 +23,6 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Synchronize Caps Lock LED across halves */ -#define SPLIT_LED_STATE_ENABLE #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/sinc/rev2/info.json b/keyboards/keebio/sinc/rev2/info.json index 0c86727abe..5b74d17b1a 100644 --- a/keyboards/keebio/sinc/rev2/info.json +++ b/keyboards/keebio/sinc/rev2/info.json @@ -18,7 +18,10 @@ "enabled": true, "soft_serial_pin": "D0", "transport": { - "protocol": "serial" + "protocol": "serial", + "sync" :{ + "indicators": true + } }, "encoder": { "right": { diff --git a/keyboards/keychron/q11/info.json b/keyboards/keychron/q11/info.json index 7a56725324..f240c70801 100755 --- a/keyboards/keychron/q11/info.json +++ b/keyboards/keychron/q11/info.json @@ -44,7 +44,9 @@ }, "transport": { "protocol": "serial_usart", - "sync_matrix_state": true + "sync" :{ + "matrix_state": true + } }, "bootmagic": { "matrix": [6, 7] diff --git a/keyboards/lime/rev1/config.h b/keyboards/lime/rev1/config.h index ef4f99076d..ec2c061372 100644 --- a/keyboards/lime/rev1/config.h +++ b/keyboards/lime/rev1/config.h @@ -24,8 +24,3 @@ #endif #define SPLIT_USB_DETECT - -#ifdef WPM_ENABLE -# define SPLIT_WPM_ENABLE -#endif - diff --git a/keyboards/lime/rev1/info.json b/keyboards/lime/rev1/info.json index 13caf33841..19ac7dfda2 100644 --- a/keyboards/lime/rev1/info.json +++ b/keyboards/lime/rev1/info.json @@ -26,6 +26,11 @@ {"pin_a": "F4", "pin_b": "F5", "resolution": 2} ] } + }, + "transport": { + "sync": { + "wpm": true + } } }, "tapping": { diff --git a/keyboards/mechwild/mokulua/mirrored/config.h b/keyboards/mechwild/mokulua/mirrored/config.h index 219a4ec7b0..d62d7b49f0 100644 --- a/keyboards/mechwild/mokulua/mirrored/config.h +++ b/keyboards/mechwild/mokulua/mirrored/config.h @@ -7,10 +7,6 @@ #define MASTER_LEFT //#define MASTER_RIGHT -#define SPLIT_LAYER_STATE_ENABLE -#define SPLIT_LED_STATE_ENABLE -#define SPLIT_MODS_ENABLE -#define SPLIT_OLED_ENABLE /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/mechwild/mokulua/mirrored/info.json b/keyboards/mechwild/mokulua/mirrored/info.json index 5221238784..7289147e6b 100644 --- a/keyboards/mechwild/mokulua/mirrored/info.json +++ b/keyboards/mechwild/mokulua/mirrored/info.json @@ -22,7 +22,15 @@ "tap_keycode_delay": 10 }, "split": { - "soft_serial_pin": "D3" + "soft_serial_pin": "D3", + "transport": { + "sync": { + "indicators": true, + "layer_state": true, + "modifiers": true, + "oled": true + } + } }, "rgblight": { "saturation_steps": 8, diff --git a/keyboards/mechwild/mokulua/standard/config.h b/keyboards/mechwild/mokulua/standard/config.h index f13e1e582a..953e53c236 100644 --- a/keyboards/mechwild/mokulua/standard/config.h +++ b/keyboards/mechwild/mokulua/standard/config.h @@ -7,10 +7,6 @@ #define MASTER_LEFT //#define MASTER_RIGHT -#define SPLIT_LAYER_STATE_ENABLE -#define SPLIT_LED_STATE_ENABLE -#define SPLIT_MODS_ENABLE -#define SPLIT_OLED_ENABLE /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/mechwild/mokulua/standard/info.json b/keyboards/mechwild/mokulua/standard/info.json index 05ca6775df..da82447980 100644 --- a/keyboards/mechwild/mokulua/standard/info.json +++ b/keyboards/mechwild/mokulua/standard/info.json @@ -22,7 +22,15 @@ "tap_keycode_delay": 10 }, "split": { - "soft_serial_pin": "D3" + "soft_serial_pin": "D3", + "transport": { + "sync": { + "indicators": true, + "layer_state": true, + "modifiers": true, + "oled": true + } + } }, "rgblight": { "saturation_steps": 8, diff --git a/keyboards/mlego/m60_split/rev1/config.h b/keyboards/mlego/m60_split/rev1/config.h index b351e66d2c..90ea0bd56c 100644 --- a/keyboards/mlego/m60_split/rev1/config.h +++ b/keyboards/mlego/m60_split/rev1/config.h @@ -15,10 +15,6 @@ */ #pragma once -#define SPLIT_LAYER_STATE_ENABLE -#define SPLIT_LED_STATE_ENABLE - - #define SPLIT_HAND_PIN B9 #define SERIAL_USART_TX_PIN B6 #define SERIAL_USART_SPEED 921600 diff --git a/keyboards/mlego/m60_split/rev1/info.json b/keyboards/mlego/m60_split/rev1/info.json index 3d66633ac9..89744c8b86 100644 --- a/keyboards/mlego/m60_split/rev1/info.json +++ b/keyboards/mlego/m60_split/rev1/info.json @@ -47,6 +47,12 @@ "cols": ["B0", "A3", "A2", "A1", "B7", "B5"], "rows": ["B1", "A4", "A5", "A6", "A7"] } + }, + "transport": { + "sync": { + "indicators": true, + "layer_state": true + } } }, "processor": "STM32F401", diff --git a/keyboards/mlego/m60_split/rev2/config.h b/keyboards/mlego/m60_split/rev2/config.h index bf60a6966c..82ea1b37e3 100644 --- a/keyboards/mlego/m60_split/rev2/config.h +++ b/keyboards/mlego/m60_split/rev2/config.h @@ -15,10 +15,6 @@ */ #pragma once -#define SPLIT_LAYER_STATE_ENABLE -#define SPLIT_LED_STATE_ENABLE - - #define SPLIT_HAND_PIN B9 #define SERIAL_USART_TX_PIN B6 diff --git a/keyboards/mlego/m60_split/rev2/info.json b/keyboards/mlego/m60_split/rev2/info.json index 1ba28e0a52..4ba6442443 100644 --- a/keyboards/mlego/m60_split/rev2/info.json +++ b/keyboards/mlego/m60_split/rev2/info.json @@ -46,6 +46,12 @@ "cols": ["B0", "A3", "A2", "A1", "B7", "B5"], "rows": ["B1", "A4", "A5", "A6", "A7"] } + }, + "transport": { + "sync": { + "indicators": true, + "layer_state": true + } } }, "processor": "STM32F411", diff --git a/keyboards/nullbitsco/snap/config.h b/keyboards/nullbitsco/snap/config.h index d9fe16e285..9559a34352 100644 --- a/keyboards/nullbitsco/snap/config.h +++ b/keyboards/nullbitsco/snap/config.h @@ -59,6 +59,3 @@ /* Optional speaker pin */ #define AUDIO_PIN B6 - -/* Optional split transactions */ -#define SPLIT_OLED_ENABLE diff --git a/keyboards/nullbitsco/snap/info.json b/keyboards/nullbitsco/snap/info.json index f235fce511..65cd463708 100644 --- a/keyboards/nullbitsco/snap/info.json +++ b/keyboards/nullbitsco/snap/info.json @@ -37,6 +37,11 @@ {"pin_a": "B4", "pin_b": "B5"} ] } + }, + "transport": { + "sync": { + "oled": true + } } }, "ws2812": { diff --git a/keyboards/rgbkb/mun/config.h b/keyboards/rgbkb/mun/config.h index baf495b534..87a7fe1319 100644 --- a/keyboards/rgbkb/mun/config.h +++ b/keyboards/rgbkb/mun/config.h @@ -41,9 +41,6 @@ #endif /* Split Transport Features */ -#define SPLIT_TRANSPORT_MIRROR -#define SPLIT_LAYER_STATE_ENABLE -#define SPLIT_LED_STATE_ENABLE #define SPLIT_TRANSACTION_IDS_KB TOUCH_ENCODER_SYNC, RGB_MENU_SYNC #define RGB_MATRIX_LED_COUNT 98 diff --git a/keyboards/rgbkb/mun/rev1/info.json b/keyboards/rgbkb/mun/rev1/info.json index 91b60e76c3..96d1a18e81 100644 --- a/keyboards/rgbkb/mun/rev1/info.json +++ b/keyboards/rgbkb/mun/rev1/info.json @@ -52,7 +52,14 @@ "tap_keycode_delay": 5 }, "split": { - "soft_serial_pin": "A9" + "soft_serial_pin": "A9", + "transport": { + "sync": { + "indicators": true, + "layer_state": true, + "matrix_state": true + } + } }, "processor": "STM32F303", "bootloader": "stm32-dfu", diff --git a/keyboards/rgbkb/sol3/config.h b/keyboards/rgbkb/sol3/config.h index 575e5bcd95..4ce1c60343 100644 --- a/keyboards/rgbkb/sol3/config.h +++ b/keyboards/rgbkb/sol3/config.h @@ -41,9 +41,6 @@ #endif /* Split Transport Features */ -#define SPLIT_TRANSPORT_MIRROR -#define SPLIT_LAYER_STATE_ENABLE -#define SPLIT_LED_STATE_ENABLE #define SPLIT_TRANSACTION_IDS_KB TOUCH_ENCODER_SYNC, RGB_MENU_SYNC /* LED Turbo DIP Switch */ diff --git a/keyboards/rgbkb/sol3/rev1/info.json b/keyboards/rgbkb/sol3/rev1/info.json index 7d3db933a8..19e5719cd6 100644 --- a/keyboards/rgbkb/sol3/rev1/info.json +++ b/keyboards/rgbkb/sol3/rev1/info.json @@ -65,6 +65,13 @@ "cols": ["B9", "B8", "B4", "A6", "A3", "B10", "B12", "B11"], "rows": ["B15", "B14", "A8", "A13", "A7", null] } + }, + "transport": { + "sync": { + "indicators": true, + "layer_state": true, + "matrix_state": true + } } }, "qmk": { diff --git a/keyboards/sofle/keyhive/config.h b/keyboards/sofle/keyhive/config.h index 1e90cbab48..cda0be789e 100755 --- a/keyboards/sofle/keyhive/config.h +++ b/keyboards/sofle/keyhive/config.h @@ -21,7 +21,3 @@ // OLED settings #define OLED_TIMEOUT 80000 #define OLED_BRIGHTNESS 90 - -#define SPLIT_WPM_ENABLE -#define SPLIT_OLED_ENABLE -#define SPLIT_TRANSPORT_MIRROR diff --git a/keyboards/sofle/keyhive/info.json b/keyboards/sofle/keyhive/info.json index 1f7ae8b209..ae7c4a1935 100644 --- a/keyboards/sofle/keyhive/info.json +++ b/keyboards/sofle/keyhive/info.json @@ -41,6 +41,13 @@ "cols": ["F6", "F7", "B1", "B3", "B2", "B6", null], "rows": ["C6", "D7", "E6", "B4", "B5"] } + }, + "transport": { + "sync": { + "matrix_state": true, + "oled": true, + "wpm": true + } } }, "qmk": { diff --git a/keyboards/spleeb/config.h b/keyboards/spleeb/config.h index 8a6fb13c4e..64a1fb09ba 100644 --- a/keyboards/spleeb/config.h +++ b/keyboards/spleeb/config.h @@ -7,10 +7,6 @@ // the touch sensor to be on the master side #define MASTER_RIGHT -// Sync later, led, and mod state for use on OLED on slave side -#define SPLIT_LAYER_STATE_ENABLE -#define SPLIT_LED_STATE_ENABLE -#define SPLIT_MODS_ENABLE // Transport dpi and enc mode for display on oled #define SPLIT_TRANSACTION_IDS_KB RPC_ID_KB_CONFIG_SYNC diff --git a/keyboards/spleeb/info.json b/keyboards/spleeb/info.json index e03faa7c3e..7b92316de2 100644 --- a/keyboards/spleeb/info.json +++ b/keyboards/spleeb/info.json @@ -36,6 +36,13 @@ {"pin_a": "GP21", "pin_b": "GP4"} ] } + }, + "transport": { + "sync": { + "indicators": true, + "layer_state": true, + "modifiers": true + } } }, "url": "https://github.com/chrishoage/spleeb", diff --git a/keyboards/stront/config.h b/keyboards/stront/config.h index 4c88e411ac..13c76a80e2 100644 --- a/keyboards/stront/config.h +++ b/keyboards/stront/config.h @@ -13,8 +13,6 @@ /* any side can be master by default, enable split sync to support it */ #define EE_HANDS -#define SPLIT_LED_STATE_ENABLE -#define SPLIT_MODS_ENABLE #define SPLIT_POINTING_ENABLE /* SPI config for display/touchpad */ diff --git a/keyboards/stront/info.json b/keyboards/stront/info.json index cd418aa246..40be364688 100644 --- a/keyboards/stront/info.json +++ b/keyboards/stront/info.json @@ -61,7 +61,13 @@ "rows": ["GP28", "GP27", "GP26", "GP15"] }, "split": { - "enabled": true + "enabled": true, + "transport": { + "sync": { + "indicators": true, + "modifiers": true + } + } }, "encoder": { "rotary": [ diff --git a/keyboards/tweetydabird/lotus58/config.h b/keyboards/tweetydabird/lotus58/config.h index de32af4284..4175568d40 100644 --- a/keyboards/tweetydabird/lotus58/config.h +++ b/keyboards/tweetydabird/lotus58/config.h @@ -7,6 +7,3 @@ #define RGBLIGHT_DEFAULT_VAL 87 #define SPLIT_HAND_PIN B5 -#define SPLIT_LAYER_STATE_ENABLE -#define SPLIT_LED_STATE_ENABLE -#define SPLIT_OLED_ENABLE diff --git a/keyboards/tweetydabird/lotus58/info.json b/keyboards/tweetydabird/lotus58/info.json index a222dec8de..4e41fcc7bd 100644 --- a/keyboards/tweetydabird/lotus58/info.json +++ b/keyboards/tweetydabird/lotus58/info.json @@ -56,8 +56,13 @@ "soft_serial_pin": "D2", "transport": { "protocol": "serial", - "sync_matrix_state": true, - "sync_modifiers": true + "sync": { + "indicators": true, + "layer_state": true, + "matrix_state": true, + "modifiers": true, + "oled": true + } }, "usb_detect": { "enabled": true diff --git a/keyboards/tzarc/djinn/config.h b/keyboards/tzarc/djinn/config.h index af98f887db..74bb00edc2 100644 --- a/keyboards/tzarc/djinn/config.h +++ b/keyboards/tzarc/djinn/config.h @@ -11,12 +11,6 @@ // Split configuration #define SPLIT_TRANSACTION_IDS_KB RPC_ID_SYNC_STATE_KB -#define SPLIT_TRANSPORT_MIRROR -#define SPLIT_LAYER_STATE_ENABLE -#define SPLIT_LED_STATE_ENABLE -#define SPLIT_MODS_ENABLE -#define SPLIT_WPM_ENABLE -#define SPLIT_ACTIVITY_ENABLE // SPI Configuration #define SPI_DRIVER SPID3 diff --git a/keyboards/tzarc/djinn/info.json b/keyboards/tzarc/djinn/info.json index 8f47f35027..1546369307 100644 --- a/keyboards/tzarc/djinn/info.json +++ b/keyboards/tzarc/djinn/info.json @@ -52,6 +52,16 @@ {"pin_a": "C15", "pin_b": "C14", "resolution": 2} ] } + }, + "transport": { + "sync": { + "activity": true, + "indicators": true, + "layer_state": true, + "matrix_state": true, + "modifiers": true, + "wpm": true + } } }, "encoder": { diff --git a/keyboards/waterfowl/config.h b/keyboards/waterfowl/config.h index 2ddc7228d4..bba96732cb 100644 --- a/keyboards/waterfowl/config.h +++ b/keyboards/waterfowl/config.h @@ -17,6 +17,5 @@ #pragma once #define OLED_DISPLAY_128X64 -#define SPLIT_MODS_ENABLE -#define SPLIT_WPM_ENABLE + #define SPLIT_USB_DETECT diff --git a/keyboards/waterfowl/info.json b/keyboards/waterfowl/info.json index ff8af90fb3..159773a1c9 100644 --- a/keyboards/waterfowl/info.json +++ b/keyboards/waterfowl/info.json @@ -20,7 +20,13 @@ ] }, "split": { - "soft_serial_pin": "D2" + "soft_serial_pin": "D2", + "transport": { + "sync": { + "modifiers": true, + "wpm": true + } + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu", From d56ee70c524b4fc4d1638e5e8c4bdeb89e752993 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 21 Oct 2023 21:41:59 +1000 Subject: [PATCH 293/496] Rename `DRIVER_ADDR_n` defines (#22200) Co-authored-by: Nick Brassel --- docs/feature_led_matrix.md | 14 +- docs/feature_rgb_matrix.md | 74 ++--- drivers/led/aw20216s.h | 8 +- drivers/led/issi/is31fl3731-simple.h | 12 + drivers/led/issi/is31fl3731.h | 12 + drivers/led/issi/is31fl3733.h | 24 ++ drivers/led/issi/is31fl3736.h | 12 + drivers/led/issi/is31fl3737.h | 12 + drivers/led/issi/is31fl3741.h | 12 + keyboards/4pplet/perk60_iso/rev_a/config.h | 2 +- keyboards/abko/ak84bt/config.h | 4 +- keyboards/acheron/apollo/87h/gamma/config.h | 2 +- keyboards/aeboards/satellite/rev1/config.h | 4 +- keyboards/aeboards/satellite/rev1/rev1.c | 12 +- keyboards/akko/5108/config.h | 4 +- keyboards/akko/acr87/config.h | 6 +- keyboards/akko/top40/config.h | 4 +- keyboards/axolstudio/yeti/hotswap/config.h | 2 +- keyboards/canary/canary60rgb/v1/config.h | 2 +- keyboards/chosfox/cf81/config.h | 4 +- keyboards/clueboard/66_hotswap/gen1/config.h | 2 +- keyboards/dp60/config.h | 4 +- keyboards/drop/alt/v2/config.h | 4 +- keyboards/drop/cstm80/config.h | 4 +- keyboards/drop/ctrl/v2/config.h | 4 +- keyboards/drop/sense75/config.h | 4 +- keyboards/drop/shift/v2/config.h | 6 +- keyboards/durgod/dgk6x/config.h | 4 +- keyboards/dztech/dz60rgb/v1/config.h | 2 +- keyboards/dztech/dz60rgb/v2/config.h | 2 +- keyboards/dztech/dz60rgb/v2_1/config.h | 2 +- keyboards/dztech/dz60rgb_ansi/v1/config.h | 2 +- keyboards/dztech/dz60rgb_ansi/v2/config.h | 2 +- keyboards/dztech/dz60rgb_ansi/v2_1/config.h | 2 +- keyboards/dztech/dz60rgb_wkl/v1/config.h | 2 +- keyboards/dztech/dz60rgb_wkl/v2/config.h | 2 +- keyboards/dztech/dz60rgb_wkl/v2_1/config.h | 2 +- keyboards/dztech/dz64rgb/config.h | 2 +- keyboards/dztech/dz65rgb/v1/config.h | 4 +- keyboards/dztech/dz65rgb/v2/config.h | 4 +- keyboards/dztech/dz65rgb/v3/config.h | 2 +- keyboards/dztech/tofu/ii/v1/config.h | 4 +- keyboards/dztech/tofu/jr/v1/config.h | 4 +- keyboards/ergodox_ez/config.h | 4 +- keyboards/evyd13/atom47/rev5/config.h | 2 +- keyboards/exclusive/e6_rgb/config.h | 2 +- keyboards/fallacy/config.h | 2 +- keyboards/fallacy/indicators.c | 6 +- keyboards/feker/ik75/config.h | 4 +- keyboards/ferris/0_2/bling/config.h | 4 +- keyboards/flashquark/horizon_z/config.h | 2 +- keyboards/frooastboard/walnut/config.h | 2 +- keyboards/geekboards/tester/config.h | 4 +- keyboards/gizmo_engineering/gk6/config.h | 4 +- keyboards/gmmk/gmmk2/p65/config.h | 8 +- keyboards/gmmk/gmmk2/p96/config.h | 8 +- keyboards/gmmk/numpad/config.h | 6 +- keyboards/gmmk/numpad/numpad.c | 6 +- keyboards/gmmk/pro/config.h | 8 +- keyboards/handwired/orbweaver/config.h | 2 +- keyboards/hs60/v1/config.h | 4 +- keyboards/ilumkb/simpler61/config.h | 2 +- keyboards/ilumkb/simpler64/config.h | 2 +- keyboards/inett_studio/sqx/hotswap/config.h | 4 +- keyboards/inett_studio/sqx/universal/config.h | 4 +- keyboards/inland/kb83/config.h | 4 +- keyboards/inland/mk47/config.h | 2 +- .../input_club/ergodox_infinity/config.h | 2 +- keyboards/input_club/infinity60/led/config.h | 2 +- keyboards/input_club/k_type/config.h | 4 +- .../input_club/k_type/k_type-rgbdriver.c | 12 +- keyboards/input_club/whitefox/config.h | 2 +- keyboards/kbdcraft/adam64/config.h | 2 +- keyboards/kbdfans/bella/rgb/config.h | 2 +- keyboards/kbdfans/bella/rgb_iso/config.h | 2 +- keyboards/kbdfans/boop65/rgb/config.h | 2 +- keyboards/kbdfans/kbd67/mkiirgb/v1/config.h | 4 +- keyboards/kbdfans/kbd67/mkiirgb/v2/config.h | 4 +- keyboards/kbdfans/kbd67/mkiirgb/v3/config.h | 2 +- keyboards/kbdfans/kbdmini/config.h | 2 +- keyboards/kbdfans/maja/config.h | 4 +- keyboards/keychron/c1_pro/ansi/rgb/config.h | 4 +- keyboards/keychron/c1_pro/ansi/white/config.h | 2 +- keyboards/keychron/c2_pro/ansi/rgb/config.h | 4 +- keyboards/keychron/c2_pro/ansi/white/config.h | 2 +- keyboards/keychron/q0/base/config.h | 2 +- keyboards/keychron/q0/plus/config.h | 2 +- keyboards/keychron/q10/config.h | 4 +- keyboards/keychron/q11/config.h | 2 +- keyboards/keychron/q12/config.h | 4 +- keyboards/keychron/q1v1/config.h | 4 +- keyboards/keychron/q1v2/ansi/ansi.c | 4 +- .../keychron/q1v2/ansi_encoder/ansi_encoder.c | 4 +- keyboards/keychron/q1v2/config.h | 11 +- keyboards/keychron/q1v2/info.json | 2 +- keyboards/keychron/q1v2/iso/iso.c | 4 +- .../keychron/q1v2/iso_encoder/iso_encoder.c | 4 +- keyboards/keychron/q1v2/jis/jis.c | 4 +- .../keychron/q1v2/jis_encoder/jis_encoder.c | 4 +- keyboards/keychron/q2/config.h | 4 +- keyboards/keychron/q3/config.h | 4 +- keyboards/keychron/q4/ansi/v1/config.h | 4 +- keyboards/keychron/q4/ansi/v2/config.h | 2 +- keyboards/keychron/q4/iso/config.h | 2 +- keyboards/keychron/q5/config.h | 4 +- keyboards/keychron/q6/config.h | 4 +- keyboards/keychron/q60/config.h | 2 +- keyboards/keychron/q65/config.h | 4 +- keyboards/keychron/q7/config.h | 4 +- keyboards/keychron/q8/config.h | 4 +- keyboards/keychron/q9/config.h | 2 +- keyboards/keychron/q9_plus/config.h | 2 +- keyboards/keychron/s1/ansi/rgb/config.h | 4 +- keyboards/keychron/s1/ansi/white/config.h | 2 +- keyboards/keychron/v1/config.h | 4 +- keyboards/keychron/v10/config.h | 4 +- keyboards/keychron/v2/config.h | 4 +- keyboards/keychron/v3/config.h | 4 +- keyboards/keychron/v4/config.h | 2 +- keyboards/keychron/v5/config.h | 4 +- keyboards/keychron/v6/config.h | 4 +- keyboards/keychron/v7/config.h | 4 +- keyboards/keychron/v8/config.h | 4 +- keyboards/kprepublic/bm40hsrgb/rev2/config.h | 4 +- keyboards/kprepublic/bm60hsrgb/rev2/config.h | 2 +- keyboards/kprepublic/bm60hsrgb/rev2/rev2.c | 6 +- .../kprepublic/bm60hsrgb_ec/rev2/config.h | 2 +- .../kprepublic/bm60hsrgb_iso/rev2/config.h | 2 +- .../kprepublic/bm60hsrgb_iso/rev2/rev2.c | 6 +- .../kprepublic/bm60hsrgb_poker/rev2/config.h | 2 +- .../kprepublic/bm60hsrgb_poker/rev2/rev2.c | 6 +- keyboards/kprepublic/bm68hsrgb/rev2/config.h | 2 +- keyboards/kprepublic/bm80v2/config.h | 2 +- keyboards/kprepublic/bm80v2_iso/config.h | 2 +- keyboards/latincompass/latin17rgb/config.h | 4 +- keyboards/latincompass/latin60rgb/config.h | 2 +- keyboards/latincompass/latin6rgb/config.h | 2 +- keyboards/matrix/m20add/config.h | 2 +- keyboards/matrix/m20add/rgb_ring.c | 6 +- keyboards/matrix/noah/config.h | 4 +- .../mechlovin/adelais/rgb_led/rev2/config.h | 4 +- .../mechlovin/adelais/rgb_led/rev3/config.h | 2 +- keyboards/mechlovin/delphine/rgb_led/config.h | 2 +- keyboards/mechlovin/hannah60rgb/rev2/config.h | 4 +- .../mechlovin/infinity87/rgb_rev1/config.h | 2 +- keyboards/mechlovin/olly/octagon/config.h | 2 +- keyboards/mechlovin/zed65/mono_led/config.h | 2 +- keyboards/melgeek/mach80/config.h | 2 +- keyboards/melgeek/mach80/rev1/rev1.c | 2 +- keyboards/melgeek/mach80/rev2/rev2.c | 2 +- keyboards/melgeek/mj61/config.h | 2 +- keyboards/melgeek/mj63/config.h | 2 +- keyboards/melgeek/mj64/config.h | 2 +- keyboards/melgeek/mj65/config.h | 2 +- keyboards/melgeek/mojo68/config.h | 2 +- keyboards/melgeek/mojo68/rev1/rev1.c | 2 +- keyboards/melgeek/mojo75/config.h | 2 +- keyboards/melgeek/tegic/config.h | 2 +- keyboards/melgeek/z70ultra/config.h | 2 +- keyboards/melgeek/z70ultra/z70ultra.c | 2 +- keyboards/miller/gm862/config.h | 2 +- keyboards/monsgeek/m1/config.h | 4 +- keyboards/monsgeek/m5/config.h | 4 +- keyboards/monsgeek/m6/config.h | 4 +- keyboards/moonlander/config.h | 4 +- keyboards/mt/mt64rgb/config.h | 2 +- keyboards/mt/mt84/config.h | 4 +- keyboards/neson_design/700e/700e.c | 24 +- keyboards/neson_design/700e/config.h | 4 +- keyboards/neson_design/n6/config.h | 4 +- keyboards/neson_design/n6/n6.c | 24 +- keyboards/opendeck/32/rev1/config.h | 2 +- keyboards/owlab/voice65/hotswap/config.h | 2 +- keyboards/owlab/voice65/soldered/config.h | 2 +- keyboards/planck/ez/config.h | 2 +- keyboards/planck/light/config.h | 4 +- keyboards/playkbtw/pk64rgb/config.h | 2 +- .../projectd/65/projectd_65_ansi/config.h | 8 +- keyboards/redragon/k667/config.h | 4 +- keyboards/skyloong/gk61/v1/config.h | 2 +- keyboards/smallkeyboard/config.h | 2 +- keyboards/teleport/native/config.h | 4 +- keyboards/terrazzo/config.h | 2 +- keyboards/tkc/portico/config.h | 4 +- keyboards/tkc/portico68v2/config.h | 2 +- keyboards/tkc/portico75/config.h | 2 +- keyboards/wilba_tech/wt60_a/config.h | 1 + keyboards/wilba_tech/wt65_a/config.h | 1 + keyboards/wilba_tech/wt65_b/config.h | 1 + keyboards/wilba_tech/wt75_a/config.h | 1 + keyboards/wilba_tech/wt75_b/config.h | 1 + keyboards/wilba_tech/wt75_c/config.h | 1 + keyboards/wilba_tech/wt80_a/config.h | 1 + keyboards/wilba_tech/wt_mono_backlight.c | 18 +- keyboards/xbows/knight/config.h | 6 +- keyboards/xbows/knight_plus/config.h | 6 +- keyboards/xbows/nature/config.h | 6 +- keyboards/xbows/numpad/config.h | 2 +- keyboards/xbows/ranger/config.h | 6 +- keyboards/xbows/woody/config.h | 4 +- keyboards/xelus/dawn60/rev1_qmk/config.h | 4 +- keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c | 12 +- keyboards/xelus/pachi/rgb/rev1/config.h | 2 +- keyboards/xelus/pachi/rgb/rev1/rev1.c | 6 +- keyboards/xelus/pachi/rgb/rev2/config.h | 2 +- keyboards/xelus/pachi/rgb/rev2/rev2.c | 6 +- quantum/led_matrix/led_matrix_drivers.c | 269 ++++++++-------- quantum/rgb_matrix/rgb_matrix_drivers.c | 287 +++++++++--------- 208 files changed, 768 insertions(+), 686 deletions(-) diff --git a/docs/feature_led_matrix.md b/docs/feature_led_matrix.md index 87f4f36f1d..7dd2e71d61 100644 --- a/docs/feature_led_matrix.md +++ b/docs/feature_led_matrix.md @@ -23,10 +23,10 @@ You can use between 1 and 4 IS31FL3731 IC's. Do not specify `LED_DRIVER_ADDR_ | `IS31FL3731_I2C_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | | `IS31FL3731_DRIVER_COUNT` | (Required) How many LED driver IC's are present | | | `LED_MATRIX_LED_COUNT` | (Required) How many LED lights are present across all drivers | | -| `LED_DRIVER_ADDR_1` | (Required) Address for the first LED driver | | -| `LED_DRIVER_ADDR_2` | (Optional) Address for the second LED driver | | -| `LED_DRIVER_ADDR_3` | (Optional) Address for the third LED driver | | -| `LED_DRIVER_ADDR_4` | (Optional) Address for the fourth LED driver | | +| `IS31FL3731_I2C_ADDRESS_1` | (Required) Address for the first LED driver | | +| `IS31FL3731_I2C_ADDRESS_2` | (Optional) Address for the second LED driver | | +| `IS31FL3731_I2C_ADDRESS_3` | (Optional) Address for the third LED driver | | +| `IS31FL3731_I2C_ADDRESS_4` | (Optional) Address for the fourth LED driver | | Here is an example using 2 drivers. @@ -40,8 +40,8 @@ Here is an example using 2 drivers. // 11 AD <-> VCC // ADDR represents A1:A0 of the 7-bit address. // The result is: 0b11101(ADDR) -#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define LED_DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define LED_DRIVER_1_LED_TOTAL 25 @@ -51,7 +51,7 @@ Here is an example using 2 drivers. !> Note the parentheses, this is so when `LED_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL)` will give very different results than `rand() % LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL`. -For split keyboards using `LED_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `DRIVER_ADDR_1` for one and `DRIVER_ADDR_2` for the other one. Then, in `g_is31fl3731_leds`, fill out the correct driver index (0 or 1). If using one address, use `DRIVER_ADDR_1` for both, and use index 0 for `g_is31fl3731_leds`. +For split keyboards using `LED_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `IS31FL3731_I2C_ADDRESS_1` for one and `IS31FL3731_I2C_ADDRESS_2` for the other one. Then, in `g_is31fl3731_leds`, fill out the correct driver index (0 or 1). If using one address, use `IS31FL3731_I2C_ADDRESS_1` for both, and use index 0 for `g_is31fl3731_leds`. Define these arrays listing all the LEDs in your `.c`: diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index 82b45583ec..f068058093 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -24,10 +24,10 @@ You can use between 1 and 4 IS31FL3731 IC's. Do not specify `DRIVER_ADDR_` de | `IS31FL3731_DEGHOST` | (Optional) Set this define to enable de-ghosting by halving Vcc during blanking time | | | `IS31FL3731_DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | | `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | | -| `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | | -| `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | | -| `DRIVER_ADDR_3` | (Optional) Address for the third RGB driver | | -| `DRIVER_ADDR_4` | (Optional) Address for the fourth RGB driver | | +| `IS31FL3731_I2C_ADDRESS_1` | (Required) Address for the first RGB driver | | +| `IS31FL3731_I2C_ADDRESS_2` | (Optional) Address for the second RGB driver | | +| `IS31FL3731_I2C_ADDRESS_3` | (Optional) Address for the third RGB driver | | +| `IS31FL3731_I2C_ADDRESS_4` | (Optional) Address for the fourth RGB driver | | Here is an example using 2 drivers. @@ -41,8 +41,8 @@ Here is an example using 2 drivers. // 11 AD <-> VCC // ADDR represents A1:A0 of the 7-bit address. // The result is: 0b11101(ADDR) -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 25 @@ -52,7 +52,7 @@ Here is an example using 2 drivers. !> Note the parentheses, this is so when `RGB_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`. -For split keyboards using `RGB_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `DRIVER_ADDR_1` for one and `DRIVER_ADDR_2` for the other one. Then, in `g_is31fl3731_leds`, fill out the correct driver index (0 or 1). If using one address, use `DRIVER_ADDR_1` for both, and use index 0 for `g_is31fl3731_leds`. +For split keyboards using `RGB_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `IS31FL3731_I2C_ADDRESS_1` for one and `IS31FL3731_I2C_ADDRESS_2` for the other one. Then, in `g_is31fl3731_leds`, fill out the correct driver index (0 or 1). If using one address, use `IS31FL3731_I2C_ADDRESS_1` for both, and use index 0 for `g_is31fl3731_leds`. Define these arrays listing all the LEDs in your `.c`: @@ -93,14 +93,14 @@ You can use between 1 and 4 IS31FL3733 IC's. Do not specify `DRIVER_ADDR_` de | `IS31FL3733_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | | `IS31FL3733_DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | | `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | | -| `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | | -| `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | | -| `DRIVER_ADDR_3` | (Optional) Address for the third RGB driver | | -| `DRIVER_ADDR_4` | (Optional) Address for the fourth RGB driver | | -| `DRIVER_SYNC_1` | (Optional) Sync configuration for the first RGB driver | 0 | -| `DRIVER_SYNC_2` | (Optional) Sync configuration for the second RGB driver | 0 | -| `DRIVER_SYNC_3` | (Optional) Sync configuration for the third RGB driver | 0 | -| `DRIVER_SYNC_4` | (Optional) Sync configuration for the fourth RGB driver | 0 | +| `IS31FL3733_I2C_ADDRESS_1` | (Required) Address for the first RGB driver | | +| `IS31FL3733_I2C_ADDRESS_2` | (Optional) Address for the second RGB driver | | +| `IS31FL3733_I2C_ADDRESS_3` | (Optional) Address for the third RGB driver | | +| `IS31FL3733_I2C_ADDRESS_4` | (Optional) Address for the fourth RGB driver | | +| `IS31FL3733_SYNC_1` | (Optional) Sync configuration for the first RGB driver | 0 | +| `IS31FL3733_SYNC_2` | (Optional) Sync configuration for the second RGB driver | 0 | +| `IS31FL3733_SYNC_3` | (Optional) Sync configuration for the third RGB driver | 0 | +| `IS31FL3733_SYNC_4` | (Optional) Sync configuration for the fourth RGB driver | 0 | The IS31FL3733 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`IS31FL3733_SWPULLUP`/`IS31FL3733_CSPULLUP` are given the value of `IS31FL3733_PUR_0R`), the values that can be set to enable de-ghosting are as follows: @@ -127,8 +127,8 @@ Here is an example using 2 drivers. // ADDR1 represents A1:A0 of the 7-bit address. // ADDR2 represents A3:A2 of the 7-bit address. // The result is: 0b101(ADDR2)(ADDR1) -#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND -#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_VCC +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC #define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 58 @@ -180,10 +180,10 @@ Configure the hardware via your `config.h`: | `IS31FL3736_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | | `IS31FL3736_DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | | `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | | -| `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | | -| `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | | -| `DRIVER_ADDR_3` | (Optional) Address for the third RGB driver | | -| `DRIVER_ADDR_4` | (Optional) Address for the fourth RGB driver | | +| `IS31FL3736_I2C_ADDRESS_1` | (Required) Address for the first RGB driver | | +| `IS31FL3736_I2C_ADDRESS_2` | (Optional) Address for the second RGB driver | | +| `IS31FL3736_I2C_ADDRESS_3` | (Optional) Address for the third RGB driver | | +| `IS31FL3736_I2C_ADDRESS_4` | (Optional) Address for the fourth RGB driver | | The IS31FL3736 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`IS31FL3736_SWPULLUP`/`IS31FL3736_CSPULLUP` are given the value of `IS31FL3736_PUR_0R`), the values that can be set to enable de-ghosting are as follows: @@ -211,8 +211,8 @@ Here is an example using 2 drivers. // ADDR1 represents A1:A0 of the 7-bit address. // ADDR2 represents A3:A2 of the 7-bit address. // The result is: 0b101(ADDR2)(ADDR1) -#define DRIVER_ADDR_1 IS31FL3736_I2C_ADDRESS_GND_GND -#define DRIVER_ADDR_2 IS31FL3736_I2C_ADDRESS_GND_SCL +#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND +#define IS31FL3736_I2C_ADDRESS_2 IS31FL3736_I2C_ADDRESS_GND_SCL #define IS31FL3736_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 30 @@ -257,10 +257,10 @@ Configure the hardware via your `config.h`: | `IS31FL3737_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | | `IS31FL3737_DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | | `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | | -| `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | | -| `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | | -| `DRIVER_ADDR_3` | (Optional) Address for the third RGB driver | | -| `DRIVER_ADDR_4` | (Optional) Address for the fourth RGB driver | | +| `IS31FL3737_I2C_ADDRESS_1` | (Required) Address for the first RGB driver | | +| `IS31FL3737_I2C_ADDRESS_2` | (Optional) Address for the second RGB driver | | +| `IS31FL3737_I2C_ADDRESS_3` | (Optional) Address for the third RGB driver | | +| `IS31FL3737_I2C_ADDRESS_4` | (Optional) Address for the fourth RGB driver | | The IS31FL3737 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`IS31FL3737_SWPULLUP`/`IS31FL3737_CSPULLUP` are given the value of `IS31FL3737_PUR_0R`), the values that can be set to enable de-ghosting are as follows: @@ -287,8 +287,8 @@ Here is an example using 2 drivers. // 1111 ADDR <-> VCC // ADDR represents A3:A0 of the 7-bit address. // The result is: 0b101(ADDR) -#define DRIVER_ADDR_1 IS31FL3737_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 IS31FL3737_I2C_ADDRESS_SCL +#define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND +#define IS31FL3737_I2C_ADDRESS_2 IS31FL3737_I2C_ADDRESS_SCL #define IS31FL3737_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 30 @@ -480,10 +480,10 @@ You can use up to 2 AW20216S IC's. Do not specify `DRIVER__xxx` defines for I | Variable | Description | Default | |----------|-------------|---------| -| `AW20216S_DRIVER_1_CS` | (Required) MCU pin connected to first RGB driver chip select line | B13 | -| `AW20216S_DRIVER_2_CS` | (Optional) MCU pin connected to second RGB driver chip select line | | -| `AW20216S_DRIVER_1_EN` | (Required) MCU pin connected to first RGB driver hardware enable line | C13 | -| `AW20216S_DRIVER_2_EN` | (Optional) MCU pin connected to second RGB driver hardware enable line | | +| `AW20216S_CS_PIN_1` | (Required) MCU pin connected to first RGB driver chip select line | B13 | +| `AW20216S_CS_PIN_2` | (Optional) MCU pin connected to second RGB driver chip select line | | +| `AW20216S_EN_PIN_1` | (Required) MCU pin connected to first RGB driver hardware enable line | C13 | +| `AW20216S_EN_PIN_2` | (Optional) MCU pin connected to second RGB driver hardware enable line | | | `DRIVER_1_LED_TOTAL` | (Required) How many RGB lights are connected to first RGB driver | | | `DRIVER_2_LED_TOTAL` | (Optional) How many RGB lights are connected to second RGB driver | | | `AW20216S_DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | @@ -496,11 +496,11 @@ You can use up to 2 AW20216S IC's. Do not specify `DRIVER__xxx` defines for I Here is an example using 2 drivers. ```c -#define AW20216S_DRIVER_1_CS B13 -#define AW20216S_DRIVER_2_CS B14 +#define AW20216S_CS_PIN_1 B13 +#define AW20216S_CS_PIN_2 B14 // Hardware enable lines may be connected to the same pin -#define AW20216S_DRIVER_1_EN C13 -#define AW20216S_DRIVER_2_EN C13 +#define AW20216S_EN_PIN_1 C13 +#define AW20216S_EN_PIN_2 C13 #define AW20216S_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 66 diff --git a/drivers/led/aw20216s.h b/drivers/led/aw20216s.h index e8f1e0344f..f8c0efcc6f 100644 --- a/drivers/led/aw20216s.h +++ b/drivers/led/aw20216s.h @@ -38,16 +38,16 @@ # define AW20216S_SPI_DIVISOR AW_SPI_DIVISOR #endif #ifdef DRIVER_1_CS -# define AW20216S_DRIVER_1_CS DRIVER_1_CS +# define AW20216S_CS_PIN_1 DRIVER_1_CS #endif #ifdef DRIVER_2_CS -# define AW20216S_DRIVER_2_CS DRIVER_2_CS +# define AW20216S_CS_PIN_2 DRIVER_2_CS #endif #ifdef DRIVER_1_EN -# define AW20216S_DRIVER_1_EN DRIVER_1_EN +# define AW20216S_EN_PIN_1 DRIVER_1_EN #endif #ifdef DRIVER_2_EN -# define AW20216S_DRIVER_2_EN DRIVER_2_EN +# define AW20216S_EN_PIN_2 DRIVER_2_EN #endif #define aw_led aw20216s_led_t diff --git a/drivers/led/issi/is31fl3731-simple.h b/drivers/led/issi/is31fl3731-simple.h index 940ad413d8..3233fdc0d7 100644 --- a/drivers/led/issi/is31fl3731-simple.h +++ b/drivers/led/issi/is31fl3731-simple.h @@ -23,6 +23,18 @@ #include "progmem.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef LED_DRIVER_ADDR_1 +# define IS31FL3731_I2C_ADDRESS_1 LED_DRIVER_ADDR_1 +#endif +#ifdef LED_DRIVER_ADDR_2 +# define IS31FL3731_I2C_ADDRESS_2 LED_DRIVER_ADDR_2 +#endif +#ifdef LED_DRIVER_ADDR_3 +# define IS31FL3731_I2C_ADDRESS_3 LED_DRIVER_ADDR_3 +#endif +#ifdef LED_DRIVER_ADDR_4 +# define IS31FL3731_I2C_ADDRESS_4 LED_DRIVER_ADDR_4 +#endif #ifdef LED_DRIVER_COUNT # define IS31FL3731_DRIVER_COUNT LED_DRIVER_COUNT #endif diff --git a/drivers/led/issi/is31fl3731.h b/drivers/led/issi/is31fl3731.h index 1e70eb276f..fff91bfdbf 100644 --- a/drivers/led/issi/is31fl3731.h +++ b/drivers/led/issi/is31fl3731.h @@ -22,6 +22,18 @@ #include "progmem.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_ADDR_1 +# define IS31FL3731_I2C_ADDRESS_1 DRIVER_ADDR_1 +#endif +#ifdef DRIVER_ADDR_2 +# define IS31FL3731_I2C_ADDRESS_2 DRIVER_ADDR_2 +#endif +#ifdef DRIVER_ADDR_3 +# define IS31FL3731_I2C_ADDRESS_3 DRIVER_ADDR_3 +#endif +#ifdef DRIVER_ADDR_4 +# define IS31FL3731_I2C_ADDRESS_4 DRIVER_ADDR_4 +#endif #ifdef DRIVER_COUNT # define IS31FL3731_DRIVER_COUNT DRIVER_COUNT #endif diff --git a/drivers/led/issi/is31fl3733.h b/drivers/led/issi/is31fl3733.h index be80e9e32c..e56d04f66f 100644 --- a/drivers/led/issi/is31fl3733.h +++ b/drivers/led/issi/is31fl3733.h @@ -24,6 +24,30 @@ #include "progmem.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_ADDR_1 +# define IS31FL3733_I2C_ADDRESS_1 DRIVER_ADDR_1 +#endif +#ifdef DRIVER_ADDR_2 +# define IS31FL3733_I2C_ADDRESS_2 DRIVER_ADDR_2 +#endif +#ifdef DRIVER_ADDR_3 +# define IS31FL3733_I2C_ADDRESS_3 DRIVER_ADDR_3 +#endif +#ifdef DRIVER_ADDR_4 +# define IS31FL3733_I2C_ADDRESS_4 DRIVER_ADDR_4 +#endif +#ifdef DRIVER_SYNC_1 +# define IS31FL3733_SYNC_1 DRIVER_SYNC_1 +#endif +#ifdef DRIVER_ADDR_2 +# define IS31FL3733_SYNC_2 DRIVER_SYNC_2 +#endif +#ifdef DRIVER_ADDR_3 +# define IS31FL3733_SYNC_3 DRIVER_SYNC_3 +#endif +#ifdef DRIVER_ADDR_4 +# define IS31FL3733_SYNC_4 DRIVER_SYNC_4 +#endif #ifdef DRIVER_COUNT # define IS31FL3733_DRIVER_COUNT DRIVER_COUNT #endif diff --git a/drivers/led/issi/is31fl3736.h b/drivers/led/issi/is31fl3736.h index 37031134e9..91312384ae 100644 --- a/drivers/led/issi/is31fl3736.h +++ b/drivers/led/issi/is31fl3736.h @@ -22,6 +22,18 @@ #include "progmem.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_ADDR_1 +# define IS31FL3736_I2C_ADDRESS_1 DRIVER_ADDR_1 +#endif +#ifdef DRIVER_ADDR_2 +# define IS31FL3736_I2C_ADDRESS_2 DRIVER_ADDR_2 +#endif +#ifdef DRIVER_ADDR_3 +# define IS31FL3736_I2C_ADDRESS_3 DRIVER_ADDR_3 +#endif +#ifdef DRIVER_ADDR_4 +# define IS31FL3736_I2C_ADDRESS_4 DRIVER_ADDR_4 +#endif #ifdef DRIVER_COUNT # define IS31FL3736_DRIVER_COUNT DRIVER_COUNT #endif diff --git a/drivers/led/issi/is31fl3737.h b/drivers/led/issi/is31fl3737.h index 84ed95f793..a2a81640f6 100644 --- a/drivers/led/issi/is31fl3737.h +++ b/drivers/led/issi/is31fl3737.h @@ -24,6 +24,18 @@ #include "progmem.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_ADDR_1 +# define IS31FL3737_I2C_ADDRESS_1 DRIVER_ADDR_1 +#endif +#ifdef DRIVER_ADDR_2 +# define IS31FL3737_I2C_ADDRESS_2 DRIVER_ADDR_2 +#endif +#ifdef DRIVER_ADDR_3 +# define IS31FL3737_I2C_ADDRESS_3 DRIVER_ADDR_3 +#endif +#ifdef DRIVER_ADDR_4 +# define IS31FL3737_I2C_ADDRESS_4 DRIVER_ADDR_4 +#endif #ifdef DRIVER_COUNT # define IS31FL3737_DRIVER_COUNT DRIVER_COUNT #endif diff --git a/drivers/led/issi/is31fl3741.h b/drivers/led/issi/is31fl3741.h index ff16624009..30fab248bc 100644 --- a/drivers/led/issi/is31fl3741.h +++ b/drivers/led/issi/is31fl3741.h @@ -24,6 +24,18 @@ #include "progmem.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_ADDR_1 +# define IS31FL3741_I2C_ADDRESS_1 DRIVER_ADDR_1 +#endif +#ifdef DRIVER_ADDR_2 +# define IS31FL3741_I2C_ADDRESS_2 DRIVER_ADDR_2 +#endif +#ifdef DRIVER_ADDR_3 +# define IS31FL3741_I2C_ADDRESS_3 DRIVER_ADDR_3 +#endif +#ifdef DRIVER_ADDR_4 +# define IS31FL3741_I2C_ADDRESS_4 DRIVER_ADDR_4 +#endif #ifdef DRIVER_COUNT # define IS31FL3741_DRIVER_COUNT DRIVER_COUNT #endif diff --git a/keyboards/4pplet/perk60_iso/rev_a/config.h b/keyboards/4pplet/perk60_iso/rev_a/config.h index 53919dd7ab..c017363651 100644 --- a/keyboards/4pplet/perk60_iso/rev_a/config.h +++ b/keyboards/4pplet/perk60_iso/rev_a/config.h @@ -21,7 +21,7 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 62 #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ diff --git a/keyboards/abko/ak84bt/config.h b/keyboards/abko/ak84bt/config.h index 24c16eccf0..c599c8ca90 100644 --- a/keyboards/abko/ak84bt/config.h +++ b/keyboards/abko/ak84bt/config.h @@ -17,8 +17,8 @@ #pragma once -#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND -#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_VCC +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC #define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 45 diff --git a/keyboards/acheron/apollo/87h/gamma/config.h b/keyboards/acheron/apollo/87h/gamma/config.h index f7cad264d2..e8600a18f1 100644 --- a/keyboards/acheron/apollo/87h/gamma/config.h +++ b/keyboards/acheron/apollo/87h/gamma/config.h @@ -25,7 +25,7 @@ along with this program. If not, see . #define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE // RGB Matrix defines -#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 87 diff --git a/keyboards/aeboards/satellite/rev1/config.h b/keyboards/aeboards/satellite/rev1/config.h index 5eb44a5f53..fcf3105f0f 100644 --- a/keyboards/aeboards/satellite/rev1/config.h +++ b/keyboards/aeboards/satellite/rev1/config.h @@ -17,8 +17,8 @@ #pragma once //RGB Matrix defines -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 diff --git a/keyboards/aeboards/satellite/rev1/rev1.c b/keyboards/aeboards/satellite/rev1/rev1.c index 7260bdc67b..8e4b5f4166 100644 --- a/keyboards/aeboards/satellite/rev1/rev1.c +++ b/keyboards/aeboards/satellite/rev1/rev1.c @@ -145,8 +145,8 @@ led_config_t g_led_config = { { // Custom Driver static void init(void) { i2c_init(); - is31fl3731_init(DRIVER_ADDR_1); - is31fl3731_init(DRIVER_ADDR_2); + is31fl3731_init(IS31FL3731_I2C_ADDRESS_1); + is31fl3731_init(IS31FL3731_I2C_ADDRESS_2); for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) { bool enabled = !( ( index == 18+5) || //B5 ( index == 36+17) || //C17 @@ -154,13 +154,13 @@ static void init(void) { ); is31fl3731_set_led_control_register(index, enabled, enabled, enabled); } - is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0); - is31fl3731_update_led_control_registers(DRIVER_ADDR_2, 1); + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0); + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_2, 1); } static void flush(void) { - is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0); - is31fl3731_update_pwm_buffers(DRIVER_ADDR_2, 1); + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0); + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_2, 1); } static void set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { diff --git a/keyboards/akko/5108/config.h b/keyboards/akko/5108/config.h index 73c7c27939..b86387cba6 100644 --- a/keyboards/akko/5108/config.h +++ b/keyboards/akko/5108/config.h @@ -35,8 +35,8 @@ /* I2C Config for LED Driver */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_SCL_PAL_MODE 4 #define I2C1_OPMODE OPMODE_I2C #define I2C1_CLOCK_SPEED 400000 /* 400000 */ diff --git a/keyboards/akko/acr87/config.h b/keyboards/akko/acr87/config.h index 1ff3380d6a..af35a5aa24 100644 --- a/keyboards/akko/acr87/config.h +++ b/keyboards/akko/acr87/config.h @@ -32,9 +32,9 @@ /* I2C Config for LED Driver */ #define SNLED27351_DRIVER_COUNT 3 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_3 SNLED27351_I2C_ADDRESS_SDA +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_3 SNLED27351_I2C_ADDRESS_SDA #define I2C1_SCL_PAL_MODE 4 #define I2C1_OPMODE OPMODE_I2C diff --git a/keyboards/akko/top40/config.h b/keyboards/akko/top40/config.h index fd10534ce7..b19641348c 100644 --- a/keyboards/akko/top40/config.h +++ b/keyboards/akko/top40/config.h @@ -32,8 +32,8 @@ /* I2C Config for LED Driver */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_SCL_PAL_MODE 4 #define I2C1_OPMODE OPMODE_I2C #define I2C1_CLOCK_SPEED 400000 /* 400000 */ diff --git a/keyboards/axolstudio/yeti/hotswap/config.h b/keyboards/axolstudio/yeti/hotswap/config.h index 66599c89f0..51be648900 100644 --- a/keyboards/axolstudio/yeti/hotswap/config.h +++ b/keyboards/axolstudio/yeti/hotswap/config.h @@ -61,7 +61,7 @@ along with this program. If not, see . # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // 16 is equivalent to limiting to 60fps # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended -# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 64 #endif diff --git a/keyboards/canary/canary60rgb/v1/config.h b/keyboards/canary/canary60rgb/v1/config.h index ca20d9c0f2..ebedfd6688 100644 --- a/keyboards/canary/canary60rgb/v1/config.h +++ b/keyboards/canary/canary60rgb/v1/config.h @@ -33,7 +33,7 @@ # define DISABLE_RGB_MATRIX_MULTISPLASH # define DISABLE_RGB_MATRIX_SOLID_SPLASH # define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 63 #endif diff --git a/keyboards/chosfox/cf81/config.h b/keyboards/chosfox/cf81/config.h index 5895d60903..d6d0c8b252 100644 --- a/keyboards/chosfox/cf81/config.h +++ b/keyboards/chosfox/cf81/config.h @@ -32,8 +32,8 @@ /* I2C Config for LED Driver */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_OPMODE OPMODE_I2C #define I2C1_CLOCK_SPEED 400000 /* 400000 */ diff --git a/keyboards/clueboard/66_hotswap/gen1/config.h b/keyboards/clueboard/66_hotswap/gen1/config.h index ff4863266a..1165fe79ac 100644 --- a/keyboards/clueboard/66_hotswap/gen1/config.h +++ b/keyboards/clueboard/66_hotswap/gen1/config.h @@ -33,7 +33,7 @@ //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT -#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define I2C1_SCL_PIN B8 #define I2C1_SDA_PIN B9 diff --git a/keyboards/dp60/config.h b/keyboards/dp60/config.h index 48c232b8e7..7d5288b9e6 100644 --- a/keyboards/dp60/config.h +++ b/keyboards/dp60/config.h @@ -33,8 +33,8 @@ //#define NO_PRINT //rgb matrix setting -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 #define DRIVER_2_LED_TOTAL 36 diff --git a/keyboards/drop/alt/v2/config.h b/keyboards/drop/alt/v2/config.h index 2d8fa2b36f..1ab3584355 100644 --- a/keyboards/drop/alt/v2/config.h +++ b/keyboards/drop/alt/v2/config.h @@ -14,8 +14,8 @@ #define EXTERNAL_EEPROM_WP_PIN B5 #define EEPROM_I2C_24LC256 -#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_VCC -#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_VCC_VCC +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_VCC +#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC #define IS31FL3733_DRIVER_COUNT 2 #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ diff --git a/keyboards/drop/cstm80/config.h b/keyboards/drop/cstm80/config.h index 73f5287f09..0f92c88855 100644 --- a/keyboards/drop/cstm80/config.h +++ b/keyboards/drop/cstm80/config.h @@ -9,8 +9,8 @@ #define EXTERNAL_EEPROM_WP_PIN B7 #define EEPROM_I2C_24LC256 -#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND -#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_VCC_VCC +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC #define IS31FL3733_DRIVER_COUNT 2 #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ diff --git a/keyboards/drop/ctrl/v2/config.h b/keyboards/drop/ctrl/v2/config.h index b1b2f5b396..e3e6a55b46 100644 --- a/keyboards/drop/ctrl/v2/config.h +++ b/keyboards/drop/ctrl/v2/config.h @@ -14,8 +14,8 @@ #define EXTERNAL_EEPROM_WP_PIN B5 #define EEPROM_I2C_24LC256 -#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_VCC -#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_VCC_VCC +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_VCC +#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC #define IS31FL3733_DRIVER_COUNT 2 #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ diff --git a/keyboards/drop/sense75/config.h b/keyboards/drop/sense75/config.h index a9c604f2ac..1bb878a441 100644 --- a/keyboards/drop/sense75/config.h +++ b/keyboards/drop/sense75/config.h @@ -9,8 +9,8 @@ #define EXTERNAL_EEPROM_WP_PIN B7 #define EEPROM_I2C_24LC256 -#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND -#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_VCC_VCC +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC #define IS31FL3733_DRIVER_COUNT 2 #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ diff --git a/keyboards/drop/shift/v2/config.h b/keyboards/drop/shift/v2/config.h index 088ccada62..50d6ab5403 100644 --- a/keyboards/drop/shift/v2/config.h +++ b/keyboards/drop/shift/v2/config.h @@ -14,9 +14,9 @@ #define EXTERNAL_EEPROM_WP_PIN B5 #define EEPROM_I2C_24LC256 -#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_VCC -#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_VCC_VCC -#define DRIVER_ADDR_3 IS31FL3733_I2C_ADDRESS_GND_GND +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_VCC +#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC +#define IS31FL3733_I2C_ADDRESS_3 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_DRIVER_COUNT 3 #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ diff --git a/keyboards/durgod/dgk6x/config.h b/keyboards/durgod/dgk6x/config.h index 542c6a231c..6af420589c 100644 --- a/keyboards/durgod/dgk6x/config.h +++ b/keyboards/durgod/dgk6x/config.h @@ -34,8 +34,8 @@ #define LED_MR_LOCK_PIN LED_SCROLL_LOCK_PIN #ifdef RGB_MATRIX_ENABLE -#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND -#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_VCC +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC #define IS31FL3733_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/dztech/dz60rgb/v1/config.h b/keyboards/dztech/dz60rgb/v1/config.h index 52ae406b98..56eb23e52b 100644 --- a/keyboards/dztech/dz60rgb/v1/config.h +++ b/keyboards/dztech/dz60rgb/v1/config.h @@ -55,7 +55,7 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 63 #endif diff --git a/keyboards/dztech/dz60rgb/v2/config.h b/keyboards/dztech/dz60rgb/v2/config.h index 733e8f4966..6af87a6826 100644 --- a/keyboards/dztech/dz60rgb/v2/config.h +++ b/keyboards/dztech/dz60rgb/v2/config.h @@ -53,7 +53,7 @@ // # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 63 #endif diff --git a/keyboards/dztech/dz60rgb/v2_1/config.h b/keyboards/dztech/dz60rgb/v2_1/config.h index 406b1141af..47f4a73e2a 100644 --- a/keyboards/dztech/dz60rgb/v2_1/config.h +++ b/keyboards/dztech/dz60rgb/v2_1/config.h @@ -69,7 +69,7 @@ // # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 63 #endif diff --git a/keyboards/dztech/dz60rgb_ansi/v1/config.h b/keyboards/dztech/dz60rgb_ansi/v1/config.h index 59a680615f..7b9ecc6532 100644 --- a/keyboards/dztech/dz60rgb_ansi/v1/config.h +++ b/keyboards/dztech/dz60rgb_ansi/v1/config.h @@ -55,7 +55,7 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 61 #endif diff --git a/keyboards/dztech/dz60rgb_ansi/v2/config.h b/keyboards/dztech/dz60rgb_ansi/v2/config.h index 819b98e36a..bda53e59bd 100644 --- a/keyboards/dztech/dz60rgb_ansi/v2/config.h +++ b/keyboards/dztech/dz60rgb_ansi/v2/config.h @@ -53,7 +53,7 @@ # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 61 #endif diff --git a/keyboards/dztech/dz60rgb_ansi/v2_1/config.h b/keyboards/dztech/dz60rgb_ansi/v2_1/config.h index a186cd82c3..e5261408d4 100644 --- a/keyboards/dztech/dz60rgb_ansi/v2_1/config.h +++ b/keyboards/dztech/dz60rgb_ansi/v2_1/config.h @@ -69,7 +69,7 @@ // # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 61 #endif diff --git a/keyboards/dztech/dz60rgb_wkl/v1/config.h b/keyboards/dztech/dz60rgb_wkl/v1/config.h index 850ecae481..c4fa73ef30 100644 --- a/keyboards/dztech/dz60rgb_wkl/v1/config.h +++ b/keyboards/dztech/dz60rgb_wkl/v1/config.h @@ -55,7 +55,7 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 62 #endif diff --git a/keyboards/dztech/dz60rgb_wkl/v2/config.h b/keyboards/dztech/dz60rgb_wkl/v2/config.h index 1496a0cbe8..fb6463f2d8 100644 --- a/keyboards/dztech/dz60rgb_wkl/v2/config.h +++ b/keyboards/dztech/dz60rgb_wkl/v2/config.h @@ -50,7 +50,7 @@ # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 62 #endif diff --git a/keyboards/dztech/dz60rgb_wkl/v2_1/config.h b/keyboards/dztech/dz60rgb_wkl/v2_1/config.h index 1c036310dc..e69fcae0aa 100644 --- a/keyboards/dztech/dz60rgb_wkl/v2_1/config.h +++ b/keyboards/dztech/dz60rgb_wkl/v2_1/config.h @@ -69,7 +69,7 @@ # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 62 #endif diff --git a/keyboards/dztech/dz64rgb/config.h b/keyboards/dztech/dz64rgb/config.h index f7dd035eb8..25e7e110fd 100644 --- a/keyboards/dztech/dz64rgb/config.h +++ b/keyboards/dztech/dz64rgb/config.h @@ -48,7 +48,7 @@ #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL #define ENABLE_RGB_MATRIX_TYPING_HEATMAP #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 #endif diff --git a/keyboards/dztech/dz65rgb/v1/config.h b/keyboards/dztech/dz65rgb/v1/config.h index ac462043ac..d8d255ff5c 100644 --- a/keyboards/dztech/dz65rgb/v1/config.h +++ b/keyboards/dztech/dz65rgb/v1/config.h @@ -70,8 +70,8 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -# define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -# define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC +# define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +# define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC # define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 35 # define DRIVER_2_LED_TOTAL 33 diff --git a/keyboards/dztech/dz65rgb/v2/config.h b/keyboards/dztech/dz65rgb/v2/config.h index 2c849c9691..f24beacd80 100644 --- a/keyboards/dztech/dz65rgb/v2/config.h +++ b/keyboards/dztech/dz65rgb/v2/config.h @@ -70,8 +70,8 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -# define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -# define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC +# define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +# define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC # define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 35 # define DRIVER_2_LED_TOTAL 33 diff --git a/keyboards/dztech/dz65rgb/v3/config.h b/keyboards/dztech/dz65rgb/v3/config.h index f99315e0ed..5d75a7f2da 100755 --- a/keyboards/dztech/dz65rgb/v3/config.h +++ b/keyboards/dztech/dz65rgb/v3/config.h @@ -72,7 +72,7 @@ # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -# define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +# define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND # define IS31FL3741_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 68 # define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/dztech/tofu/ii/v1/config.h b/keyboards/dztech/tofu/ii/v1/config.h index e416297239..3eefdf7cb2 100644 --- a/keyboards/dztech/tofu/ii/v1/config.h +++ b/keyboards/dztech/tofu/ii/v1/config.h @@ -79,8 +79,8 @@ # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -# define DRIVER_ADDR_1 IS31FL3737_I2C_ADDRESS_GND -# define DRIVER_ADDR_2 IS31FL3737_I2C_ADDRESS_VCC +# define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND +# define IS31FL3737_I2C_ADDRESS_2 IS31FL3737_I2C_ADDRESS_VCC # define IS31FL3737_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 46 # define DRIVER_2_LED_TOTAL 20 diff --git a/keyboards/dztech/tofu/jr/v1/config.h b/keyboards/dztech/tofu/jr/v1/config.h index 21de51ccfc..f3a16eeefe 100644 --- a/keyboards/dztech/tofu/jr/v1/config.h +++ b/keyboards/dztech/tofu/jr/v1/config.h @@ -79,8 +79,8 @@ # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -# define DRIVER_ADDR_1 IS31FL3737_I2C_ADDRESS_GND -# define DRIVER_ADDR_2 IS31FL3737_I2C_ADDRESS_VCC +# define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND +# define IS31FL3737_I2C_ADDRESS_2 IS31FL3737_I2C_ADDRESS_VCC # define IS31FL3737_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 48 # define DRIVER_2_LED_TOTAL 20 diff --git a/keyboards/ergodox_ez/config.h b/keyboards/ergodox_ez/config.h index b4385af15d..3266c9db0e 100644 --- a/keyboards/ergodox_ez/config.h +++ b/keyboards/ergodox_ez/config.h @@ -91,8 +91,8 @@ along with this program. If not, see . // RGB backlight -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 24 #define DRIVER_2_LED_TOTAL 24 diff --git a/keyboards/evyd13/atom47/rev5/config.h b/keyboards/evyd13/atom47/rev5/config.h index 5f9fda9bbf..37e267acf1 100644 --- a/keyboards/evyd13/atom47/rev5/config.h +++ b/keyboards/evyd13/atom47/rev5/config.h @@ -38,7 +38,7 @@ along with this program. If not, see . //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT -#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 diff --git a/keyboards/exclusive/e6_rgb/config.h b/keyboards/exclusive/e6_rgb/config.h index 37a251b3f0..1f98a327a8 100644 --- a/keyboards/exclusive/e6_rgb/config.h +++ b/keyboards/exclusive/e6_rgb/config.h @@ -4,7 +4,7 @@ */ #pragma once -#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 63 diff --git a/keyboards/fallacy/config.h b/keyboards/fallacy/config.h index eff0cc4f50..254f809c34 100755 --- a/keyboards/fallacy/config.h +++ b/keyboards/fallacy/config.h @@ -18,7 +18,7 @@ /* IS31FL3731 driver address (for status LEDs) * Using the default defines here, but using a custom implementation */ -#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 3 diff --git a/keyboards/fallacy/indicators.c b/keyboards/fallacy/indicators.c index 607be8cd85..ae4f796ecc 100755 --- a/keyboards/fallacy/indicators.c +++ b/keyboards/fallacy/indicators.c @@ -23,20 +23,20 @@ */ void init_fallacy_leds(void) { i2c_init(); - is31fl3731_init(LED_DRIVER_ADDR_1); + is31fl3731_init(IS31FL3731_I2C_ADDRESS_1); for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { is31fl3731_set_led_control_register(i, true); } - is31fl3731_update_led_control_registers(LED_DRIVER_ADDR_1, 0); + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0); } /* update the buffer */ void update_fallacy_leds(void) { - is31fl3731_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0); } diff --git a/keyboards/feker/ik75/config.h b/keyboards/feker/ik75/config.h index c266bf757e..41056f09d6 100644 --- a/keyboards/feker/ik75/config.h +++ b/keyboards/feker/ik75/config.h @@ -25,8 +25,8 @@ #define RGB_MATRIX_FRAMEBUFFER_EFFECTS /* RGB Matrix config */ - #define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_VCC_VCC - #define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_GND + #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_VCC_VCC + #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 63 #define DRIVER_2_LED_TOTAL 64 diff --git a/keyboards/ferris/0_2/bling/config.h b/keyboards/ferris/0_2/bling/config.h index 382c4c1e00..021c5750e2 100644 --- a/keyboards/ferris/0_2/bling/config.h +++ b/keyboards/ferris/0_2/bling/config.h @@ -18,8 +18,8 @@ along with this program. If not, see . #pragma once /* LED Drivers */ -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SCL +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SCL #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 7 #define DRIVER_2_LED_TOTAL 7 diff --git a/keyboards/flashquark/horizon_z/config.h b/keyboards/flashquark/horizon_z/config.h index f087af93c2..07a827bbf6 100755 --- a/keyboards/flashquark/horizon_z/config.h +++ b/keyboards/flashquark/horizon_z/config.h @@ -72,7 +72,7 @@ // # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 62 #endif diff --git a/keyboards/frooastboard/walnut/config.h b/keyboards/frooastboard/walnut/config.h index f60c57dec5..08dfd3d842 100644 --- a/keyboards/frooastboard/walnut/config.h +++ b/keyboards/frooastboard/walnut/config.h @@ -6,7 +6,7 @@ #define IS31FL3737_PWM_FREQUENCY IS31FL3737_PWM_FREQUENCY_26K7_HZ #define IS31FL3737_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 48 -#define DRIVER_ADDR_1 IS31FL3737_I2C_ADDRESS_GND +#define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 191 diff --git a/keyboards/geekboards/tester/config.h b/keyboards/geekboards/tester/config.h index 5933471b8c..440384949e 100644 --- a/keyboards/geekboards/tester/config.h +++ b/keyboards/geekboards/tester/config.h @@ -55,8 +55,8 @@ // # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -# define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SCL +# define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +# define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SCL # define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 8 # define DRIVER_2_LED_TOTAL 0 diff --git a/keyboards/gizmo_engineering/gk6/config.h b/keyboards/gizmo_engineering/gk6/config.h index dfd9f0c703..a6bf747adf 100755 --- a/keyboards/gizmo_engineering/gk6/config.h +++ b/keyboards/gizmo_engineering/gk6/config.h @@ -18,8 +18,8 @@ along with this program. If not, see . #pragma once // RGB Matrix -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 32 diff --git a/keyboards/gmmk/gmmk2/p65/config.h b/keyboards/gmmk/gmmk2/p65/config.h index 37cf430a56..66986293cb 100644 --- a/keyboards/gmmk/gmmk2/p65/config.h +++ b/keyboards/gmmk/gmmk2/p65/config.h @@ -29,10 +29,10 @@ #define SPI_MOSI_PIN B15 #define SPI_MISO_PIN B14 -#define AW20216S_DRIVER_1_CS A15 -#define AW20216S_DRIVER_2_CS B9 -#define AW20216S_DRIVER_1_EN C13 -#define AW20216S_DRIVER_2_EN C13 +#define AW20216S_CS_PIN_1 A15 +#define AW20216S_CS_PIN_2 B9 +#define AW20216S_EN_PIN_1 C13 +#define AW20216S_EN_PIN_2 C13 #define AW20216S_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 54 diff --git a/keyboards/gmmk/gmmk2/p96/config.h b/keyboards/gmmk/gmmk2/p96/config.h index 9a5a2bf8a4..03e37f3088 100644 --- a/keyboards/gmmk/gmmk2/p96/config.h +++ b/keyboards/gmmk/gmmk2/p96/config.h @@ -32,10 +32,10 @@ #define SPI_MOSI_PIN A7 #define SPI_MISO_PIN A6 -#define AW20216S_DRIVER_1_CS A15 -#define AW20216S_DRIVER_2_CS B15 -#define AW20216S_DRIVER_1_EN C13 -#define AW20216S_DRIVER_2_EN C13 +#define AW20216S_CS_PIN_1 A15 +#define AW20216S_CS_PIN_2 B15 +#define AW20216S_EN_PIN_1 C13 +#define AW20216S_EN_PIN_2 C13 #define AW20216S_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 66 diff --git a/keyboards/gmmk/numpad/config.h b/keyboards/gmmk/numpad/config.h index 24a7a24a3f..d263ff4abf 100644 --- a/keyboards/gmmk/numpad/config.h +++ b/keyboards/gmmk/numpad/config.h @@ -28,9 +28,9 @@ #define SPI_MOSI_PIN B5 #define SPI_MISO_PIN B4 -#define AW20216S_DRIVER_1_CS B12 -#define AW20216S_DRIVER_1_EN A15 -#define AW20216S_DRIVER_1_PW_EN B13 +#define AW20216S_CS_PIN_1 B12 +#define AW20216S_EN_PIN_1 A15 +#define AW20216S_PW_EN_PIN_1 B13 #define AW20216S_DRIVER_COUNT 1 diff --git a/keyboards/gmmk/numpad/numpad.c b/keyboards/gmmk/numpad/numpad.c index e3fe8e063d..5cdb34c7bd 100644 --- a/keyboards/gmmk/numpad/numpad.c +++ b/keyboards/gmmk/numpad/numpad.c @@ -107,12 +107,12 @@ led_config_t g_led_config = {{ 2, 2, 2, 2, 2, 2, 2 } }; -# ifdef AW20216S_DRIVER_1_PW_EN +# ifdef AW20216S_PW_EN_PIN_1 void keyboard_pre_init_user(void) { wait_ms(2000); - setPinOutput(AW20216S_DRIVER_1_PW_EN); - writePinHigh(AW20216S_DRIVER_1_PW_EN); + setPinOutput(AW20216S_PW_EN_PIN_1); + writePinHigh(AW20216S_PW_EN_PIN_1); } # endif diff --git a/keyboards/gmmk/pro/config.h b/keyboards/gmmk/pro/config.h index 6b62241839..c1772fec85 100644 --- a/keyboards/gmmk/pro/config.h +++ b/keyboards/gmmk/pro/config.h @@ -26,10 +26,10 @@ #define SPI_MOSI_PIN A6 #define SPI_MISO_PIN A7 -#define AW20216S_DRIVER_1_CS B13 -#define AW20216S_DRIVER_2_CS B14 -#define AW20216S_DRIVER_1_EN C13 -#define AW20216S_DRIVER_2_EN C13 +#define AW20216S_CS_PIN_1 B13 +#define AW20216S_CS_PIN_2 B14 +#define AW20216S_EN_PIN_1 C13 +#define AW20216S_EN_PIN_2 C13 #define AW20216S_DRIVER_COUNT 2 diff --git a/keyboards/handwired/orbweaver/config.h b/keyboards/handwired/orbweaver/config.h index a264089c71..0004beb63b 100644 --- a/keyboards/handwired/orbweaver/config.h +++ b/keyboards/handwired/orbweaver/config.h @@ -18,7 +18,7 @@ #pragma once #define IS31FL3731_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define RGB_MATRIX_LED_COUNT 20 #define I2C1_CLOCK_SPEED 100000 #define RGB_MATRIX_CENTER { 40, 30 } diff --git a/keyboards/hs60/v1/config.h b/keyboards/hs60/v1/config.h index c7eac09b17..b1b7669d4d 100644 --- a/keyboards/hs60/v1/config.h +++ b/keyboards/hs60/v1/config.h @@ -41,8 +41,8 @@ along with this program. If not, see . // #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 215 -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SCL +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SCL #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 30 diff --git a/keyboards/ilumkb/simpler61/config.h b/keyboards/ilumkb/simpler61/config.h index 5a9b4df785..e1b701dffe 100644 --- a/keyboards/ilumkb/simpler61/config.h +++ b/keyboards/ilumkb/simpler61/config.h @@ -21,7 +21,7 @@ #define RGB_MATRIX_LED_PROCESS_LIMIT 4 #define RGB_MATRIX_LED_FLUSH_LIMIT 26 #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 61 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/ilumkb/simpler64/config.h b/keyboards/ilumkb/simpler64/config.h index ab1265fe1c..95611e3f49 100644 --- a/keyboards/ilumkb/simpler64/config.h +++ b/keyboards/ilumkb/simpler64/config.h @@ -21,7 +21,7 @@ #define RGB_MATRIX_LED_PROCESS_LIMIT 4 #define RGB_MATRIX_LED_FLUSH_LIMIT 26 #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 64 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/inett_studio/sqx/hotswap/config.h b/keyboards/inett_studio/sqx/hotswap/config.h index 66a6a8a611..dc1df2c2f6 100644 --- a/keyboards/inett_studio/sqx/hotswap/config.h +++ b/keyboards/inett_studio/sqx/hotswap/config.h @@ -32,8 +32,8 @@ //rgb matrix setting #define DRIVER_1_LED_TOTAL 33 #define DRIVER_2_LED_TOTAL 31 -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC #define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/inett_studio/sqx/universal/config.h b/keyboards/inett_studio/sqx/universal/config.h index 73bda58206..620811025b 100644 --- a/keyboards/inett_studio/sqx/universal/config.h +++ b/keyboards/inett_studio/sqx/universal/config.h @@ -32,8 +32,8 @@ //rgb matrix setting #define DRIVER_1_LED_TOTAL 36 #define DRIVER_2_LED_TOTAL 36 -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC #define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/inland/kb83/config.h b/keyboards/inland/kb83/config.h index efa076c915..bc2ca9071b 100644 --- a/keyboards/inland/kb83/config.h +++ b/keyboards/inland/kb83/config.h @@ -39,8 +39,8 @@ /* I2C Config for LED Driver */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_SDA_PIN B7 #define I2C1_SCL_PIN B6 #define I2C1_SCL_PAL_MODE 4 diff --git a/keyboards/inland/mk47/config.h b/keyboards/inland/mk47/config.h index 7e0115f7f0..e163747e31 100644 --- a/keyboards/inland/mk47/config.h +++ b/keyboards/inland/mk47/config.h @@ -26,7 +26,7 @@ /* I2C Config for LED Driver */ #define SNLED27351_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND /* WB32 MCU has no default definition */ #define I2C1_OPMODE OPMODE_I2C diff --git a/keyboards/input_club/ergodox_infinity/config.h b/keyboards/input_club/ergodox_infinity/config.h index 7c35ccc784..0f9b239466 100644 --- a/keyboards/input_club/ergodox_infinity/config.h +++ b/keyboards/input_club/ergodox_infinity/config.h @@ -43,7 +43,7 @@ along with this program. If not, see . #define LED_BRIGHTNESS_HI 255 /* LED matrix driver */ -#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 76 #define LED_MATRIX_SPLIT { 38, 38 } diff --git a/keyboards/input_club/infinity60/led/config.h b/keyboards/input_club/infinity60/led/config.h index 035cce88e9..b783ce0287 100644 --- a/keyboards/input_club/infinity60/led/config.h +++ b/keyboards/input_club/infinity60/led/config.h @@ -6,7 +6,7 @@ #define LED_MATRIX_LED_COUNT 63 #define IS31FL3731_DRIVER_COUNT 1 -#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define I2C1_CLOCK_SPEED 400000 #define I2C1_SCL_PIN B0 diff --git a/keyboards/input_club/k_type/config.h b/keyboards/input_club/k_type/config.h index b3365bd0af..d6abd39a83 100644 --- a/keyboards/input_club/k_type/config.h +++ b/keyboards/input_club/k_type/config.h @@ -103,8 +103,8 @@ along with this program. If not, see . # define I2C2_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2 # define I2C2_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2 -# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND -# define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_GND +# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND +# define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 64 # define DRIVER_2_LED_TOTAL 55 diff --git a/keyboards/input_club/k_type/k_type-rgbdriver.c b/keyboards/input_club/k_type/k_type-rgbdriver.c index 18cdb3cda3..be16179ce2 100644 --- a/keyboards/input_club/k_type/k_type-rgbdriver.c +++ b/keyboards/input_club/k_type/k_type-rgbdriver.c @@ -22,26 +22,26 @@ static void init(void) { i2c_init(&I2CD1, I2C1_SCL_PIN, I2C1_SDA_PIN); - is31fl3733_init(0, DRIVER_ADDR_1, 0); + is31fl3733_init(0, IS31FL3733_I2C_ADDRESS_1, 0); # ifdef USE_I2C2 i2c_init(&I2CD2, I2C2_SCL_PIN, I2C2_SDA_PIN); - is31fl3733_init(1, DRIVER_ADDR_2, 0); + is31fl3733_init(1, IS31FL3733_I2C_ADDRESS_2, 0); # endif for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) { bool enabled = true; // This only caches it for later is31fl3733_set_led_control_register(index, enabled, enabled, enabled); } - is31fl3733_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_1, 0); # ifdef USE_I2C2 - is31fl3733_update_led_control_registers(DRIVER_ADDR_2, 1); + is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_2, 1); # endif } static void flush(void) { - is31fl3733_update_pwm_buffers(DRIVER_ADDR_1, 0); + is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_1, 0); # ifdef USE_I2C2 - is31fl3733_update_pwm_buffers(DRIVER_ADDR_2, 1); + is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_2, 1); # endif } diff --git a/keyboards/input_club/whitefox/config.h b/keyboards/input_club/whitefox/config.h index aa8277d4ca..8993c2c760 100644 --- a/keyboards/input_club/whitefox/config.h +++ b/keyboards/input_club/whitefox/config.h @@ -21,7 +21,7 @@ along with this program. If not, see . #define LED_BRIGHTNESS_HI 255 /* LED matrix driver */ -#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 71 #define LED_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/kbdcraft/adam64/config.h b/keyboards/kbdcraft/adam64/config.h index b2c0cca3d1..11ddc53a6f 100644 --- a/keyboards/kbdcraft/adam64/config.h +++ b/keyboards/kbdcraft/adam64/config.h @@ -24,7 +24,7 @@ #define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_16_9 #define IS31FL3741_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND #define RGB_MATRIX_LED_COUNT 64 /* turn off effects when suspended */ diff --git a/keyboards/kbdfans/bella/rgb/config.h b/keyboards/kbdfans/bella/rgb/config.h index c3c7e423f3..c2ddea45eb 100644 --- a/keyboards/kbdfans/bella/rgb/config.h +++ b/keyboards/kbdfans/bella/rgb/config.h @@ -71,7 +71,7 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 108 #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/kbdfans/bella/rgb_iso/config.h b/keyboards/kbdfans/bella/rgb_iso/config.h index dc3f987bbe..08d386d609 100644 --- a/keyboards/kbdfans/bella/rgb_iso/config.h +++ b/keyboards/kbdfans/bella/rgb_iso/config.h @@ -71,7 +71,7 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 109 #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/kbdfans/boop65/rgb/config.h b/keyboards/kbdfans/boop65/rgb/config.h index 89375078d7..1e94d13d63 100644 --- a/keyboards/kbdfans/boop65/rgb/config.h +++ b/keyboards/kbdfans/boop65/rgb/config.h @@ -26,7 +26,7 @@ # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 # define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -# define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +# define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND # define IS31FL3741_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 83 # define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h index b836410d60..af73108f23 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h @@ -55,8 +55,8 @@ #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 35 #define DRIVER_2_LED_TOTAL 32 diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h index 0dad3d6767..28b533a35d 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h @@ -55,8 +55,8 @@ // #define ENABLE_RGB_MATRIX_SOLID_SPLASH // #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 -# define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -# define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC +# define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +# define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC # define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 35 # define DRIVER_2_LED_TOTAL 32 diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h index 971ed5c866..1b54895354 100755 --- a/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h @@ -72,7 +72,7 @@ #define RGB_MATRIX_LED_PROCESS_LIMIT 4 #define RGB_MATRIX_LED_FLUSH_LIMIT 26 #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 67 #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/kbdfans/kbdmini/config.h b/keyboards/kbdfans/kbdmini/config.h index 243693d57e..768799c27a 100644 --- a/keyboards/kbdfans/kbdmini/config.h +++ b/keyboards/kbdfans/kbdmini/config.h @@ -53,7 +53,7 @@ // #define ENABLE_RGB_MATRIX_SOLID_SPLASH // #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 52 #endif diff --git a/keyboards/kbdfans/maja/config.h b/keyboards/kbdfans/maja/config.h index b7f75f982a..f996b4eb70 100755 --- a/keyboards/kbdfans/maja/config.h +++ b/keyboards/kbdfans/maja/config.h @@ -54,8 +54,8 @@ // #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 #define DRIVER_2_LED_TOTAL 31 diff --git a/keyboards/keychron/c1_pro/ansi/rgb/config.h b/keyboards/keychron/c1_pro/ansi/rgb/config.h index f2779f2bb9..ce9d46cad2 100644 --- a/keyboards/keychron/c1_pro/ansi/rgb/config.h +++ b/keyboards/keychron/c1_pro/ansi/rgb/config.h @@ -21,8 +21,8 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 49 diff --git a/keyboards/keychron/c1_pro/ansi/white/config.h b/keyboards/keychron/c1_pro/ansi/white/config.h index 430cb68a8e..17c415153b 100644 --- a/keyboards/keychron/c1_pro/ansi/white/config.h +++ b/keyboards/keychron/c1_pro/ansi/white/config.h @@ -21,7 +21,7 @@ /* LED Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND /* LED Matrix Configuration */ #define LED_MATRIX_LED_COUNT 90 diff --git a/keyboards/keychron/c2_pro/ansi/rgb/config.h b/keyboards/keychron/c2_pro/ansi/rgb/config.h index 673e8e438e..25be9ae686 100644 --- a/keyboards/keychron/c2_pro/ansi/rgb/config.h +++ b/keyboards/keychron/c2_pro/ansi/rgb/config.h @@ -18,8 +18,8 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND /* Set LED driver current */ #define SNLED27351_CURRENT_TUNE \ diff --git a/keyboards/keychron/c2_pro/ansi/white/config.h b/keyboards/keychron/c2_pro/ansi/white/config.h index 9945901527..9e09bf40ea 100644 --- a/keyboards/keychron/c2_pro/ansi/white/config.h +++ b/keyboards/keychron/c2_pro/ansi/white/config.h @@ -18,7 +18,7 @@ /* LED Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND /* Set LED driver current */ #define SNLED27351_CURRENT_TUNE \ diff --git a/keyboards/keychron/q0/base/config.h b/keyboards/keychron/q0/base/config.h index 566f808762..82dd796660 100644 --- a/keyboards/keychron/q0/base/config.h +++ b/keyboards/keychron/q0/base/config.h @@ -18,7 +18,7 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND /* RGB Matrix Configuration */ #define RGB_MATRIX_LED_COUNT 21 diff --git a/keyboards/keychron/q0/plus/config.h b/keyboards/keychron/q0/plus/config.h index 1c47234f12..a27ec9cfa6 100644 --- a/keyboards/keychron/q0/plus/config.h +++ b/keyboards/keychron/q0/plus/config.h @@ -18,7 +18,7 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO /* RGB Matrix Configuration */ #define RGB_MATRIX_LED_COUNT 26 diff --git a/keyboards/keychron/q10/config.h b/keyboards/keychron/q10/config.h index b31322464e..645eb054d4 100644 --- a/keyboards/keychron/q10/config.h +++ b/keyboards/keychron/q10/config.h @@ -31,8 +31,8 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/q11/config.h b/keyboards/keychron/q11/config.h index 6880ee7c2d..47a0d1ab2e 100755 --- a/keyboards/keychron/q11/config.h +++ b/keyboards/keychron/q11/config.h @@ -28,7 +28,7 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/q12/config.h b/keyboards/keychron/q12/config.h index 1114c966aa..dde7268405 100644 --- a/keyboards/keychron/q12/config.h +++ b/keyboards/keychron/q12/config.h @@ -27,8 +27,8 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/q1v1/config.h b/keyboards/keychron/q1v1/config.h index 93452f86fd..b758d438ff 100644 --- a/keyboards/keychron/q1v1/config.h +++ b/keyboards/keychron/q1v1/config.h @@ -18,8 +18,8 @@ /* RGB Matrix Driver Configuration */ #define IS31FL3733_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND -#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_VCC +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC /* DIP switch */ #define DIP_SWITCH_MATRIX_GRID { {0,1} } diff --git a/keyboards/keychron/q1v2/ansi/ansi.c b/keyboards/keychron/q1v2/ansi/ansi.c index ea6c6278d1..3b80c9d5c4 100644 --- a/keyboards/keychron/q1v2/ansi/ansi.c +++ b/keyboards/keychron/q1v2/ansi/ansi.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED2001 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q1v2/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q1v2/ansi_encoder/ansi_encoder.c index ea6c6278d1..3b80c9d5c4 100644 --- a/keyboards/keychron/q1v2/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q1v2/ansi_encoder/ansi_encoder.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED2001 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q1v2/config.h b/keyboards/keychron/q1v2/config.h index e2d331c1ac..d66e78b030 100644 --- a/keyboards/keychron/q1v2/config.h +++ b/keyboards/keychron/q1v2/config.h @@ -17,9 +17,9 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110111 -#define DRIVER_ADDR_2 0b1110100 +#define SNLED27351_DRIVER_COUNT 2 +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -44,10 +44,9 @@ #define WEAR_LEVELING_LOGICAL_SIZE 2048 #define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) -/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ -#define PHASE_CHANNEL MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL /* Set LED driver current */ -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50 } // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/keychron/q1v2/info.json b/keyboards/keychron/q1v2/info.json index c4a75f0283..b40c41c760 100644 --- a/keyboards/keychron/q1v2/info.json +++ b/keyboards/keychron/q1v2/info.json @@ -30,7 +30,7 @@ }, "diode_direction": "ROW2COL", "rgb_matrix": { - "driver": "ckled2001", + "driver": "snled27351", "animations": { "band_spiral_val": true, "breathing": true, diff --git a/keyboards/keychron/q1v2/iso/iso.c b/keyboards/keychron/q1v2/iso/iso.c index eae39c8d61..d879e55083 100644 --- a/keyboards/keychron/q1v2/iso/iso.c +++ b/keyboards/keychron/q1v2/iso/iso.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED2001 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q1v2/iso_encoder/iso_encoder.c b/keyboards/keychron/q1v2/iso_encoder/iso_encoder.c index eae39c8d61..d879e55083 100644 --- a/keyboards/keychron/q1v2/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q1v2/iso_encoder/iso_encoder.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED2001 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q1v2/jis/jis.c b/keyboards/keychron/q1v2/jis/jis.c index 6bfcbad3e4..e8c0112649 100644 --- a/keyboards/keychron/q1v2/jis/jis.c +++ b/keyboards/keychron/q1v2/jis/jis.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED2001 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q1v2/jis_encoder/jis_encoder.c b/keyboards/keychron/q1v2/jis_encoder/jis_encoder.c index 6bfcbad3e4..e8c0112649 100644 --- a/keyboards/keychron/q1v2/jis_encoder/jis_encoder.c +++ b/keyboards/keychron/q1v2/jis_encoder/jis_encoder.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED2001 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | R location * | | G location diff --git a/keyboards/keychron/q2/config.h b/keyboards/keychron/q2/config.h index 9b17851400..e6bb40fedf 100644 --- a/keyboards/keychron/q2/config.h +++ b/keyboards/keychron/q2/config.h @@ -23,8 +23,8 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND #define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL diff --git a/keyboards/keychron/q3/config.h b/keyboards/keychron/q3/config.h index 035aea2bb3..a3cf5eafb7 100644 --- a/keyboards/keychron/q3/config.h +++ b/keyboards/keychron/q3/config.h @@ -18,8 +18,8 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/q4/ansi/v1/config.h b/keyboards/keychron/q4/ansi/v1/config.h index 2d19c55a66..4c3df271dd 100644 --- a/keyboards/keychron/q4/ansi/v1/config.h +++ b/keyboards/keychron/q4/ansi/v1/config.h @@ -18,8 +18,8 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND /* RGB Matrix Configuration */ #define RGB_MATRIX_LED_COUNT 61 diff --git a/keyboards/keychron/q4/ansi/v2/config.h b/keyboards/keychron/q4/ansi/v2/config.h index 87b8eb401f..82b534c699 100644 --- a/keyboards/keychron/q4/ansi/v2/config.h +++ b/keyboards/keychron/q4/ansi/v2/config.h @@ -18,7 +18,7 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND /* RGB Matrix Configuration */ #define RGB_MATRIX_LED_COUNT 61 diff --git a/keyboards/keychron/q4/iso/config.h b/keyboards/keychron/q4/iso/config.h index da84fed852..3f3b6f653d 100644 --- a/keyboards/keychron/q4/iso/config.h +++ b/keyboards/keychron/q4/iso/config.h @@ -18,7 +18,7 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND /* RGB Matrix Configuration */ #define RGB_MATRIX_LED_COUNT 62 diff --git a/keyboards/keychron/q5/config.h b/keyboards/keychron/q5/config.h index 49216fba1f..89513dcaf8 100644 --- a/keyboards/keychron/q5/config.h +++ b/keyboards/keychron/q5/config.h @@ -31,8 +31,8 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND #define SNLED27351_CURRENT_TUNE \ { 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56 } diff --git a/keyboards/keychron/q6/config.h b/keyboards/keychron/q6/config.h index 8b26545724..bf35a5a0f2 100644 --- a/keyboards/keychron/q6/config.h +++ b/keyboards/keychron/q6/config.h @@ -25,8 +25,8 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND #define SNLED27351_CURRENT_TUNE \ { 0xA4, 0xA4, 0x52, 0xA4, 0xA4, 0x52, 0xA4, 0xA4, 0x52, 0xA4, 0xA4, 0x52 } diff --git a/keyboards/keychron/q60/config.h b/keyboards/keychron/q60/config.h index 9816ff3479..fe44486803 100644 --- a/keyboards/keychron/q60/config.h +++ b/keyboards/keychron/q60/config.h @@ -18,7 +18,7 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/q65/config.h b/keyboards/keychron/q65/config.h index 43b7ef9b04..7ff53820d9 100644 --- a/keyboards/keychron/q65/config.h +++ b/keyboards/keychron/q65/config.h @@ -27,8 +27,8 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/q7/config.h b/keyboards/keychron/q7/config.h index 9593196149..688f057d31 100644 --- a/keyboards/keychron/q7/config.h +++ b/keyboards/keychron/q7/config.h @@ -18,8 +18,8 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/q8/config.h b/keyboards/keychron/q8/config.h index 7b23723f99..eb746a2083 100644 --- a/keyboards/keychron/q8/config.h +++ b/keyboards/keychron/q8/config.h @@ -21,8 +21,8 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/q9/config.h b/keyboards/keychron/q9/config.h index e423d962e0..24ce821942 100644 --- a/keyboards/keychron/q9/config.h +++ b/keyboards/keychron/q9/config.h @@ -24,7 +24,7 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/q9_plus/config.h b/keyboards/keychron/q9_plus/config.h index 8416de0d6a..37599e6fdb 100755 --- a/keyboards/keychron/q9_plus/config.h +++ b/keyboards/keychron/q9_plus/config.h @@ -24,7 +24,7 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/s1/ansi/rgb/config.h b/keyboards/keychron/s1/ansi/rgb/config.h index 21569bd07c..1fa0623ac4 100644 --- a/keyboards/keychron/s1/ansi/rgb/config.h +++ b/keyboards/keychron/s1/ansi/rgb/config.h @@ -18,8 +18,8 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND #define DRIVER_1_LED_TOTAL 46 #define DRIVER_2_LED_TOTAL 38 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/keychron/s1/ansi/white/config.h b/keyboards/keychron/s1/ansi/white/config.h index 0ee5470f69..ad612700b0 100644 --- a/keyboards/keychron/s1/ansi/white/config.h +++ b/keyboards/keychron/s1/ansi/white/config.h @@ -18,7 +18,7 @@ /* LED Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND #define DRIVER_1_LED_TOTAL 84 #define LED_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/keychron/v1/config.h b/keyboards/keychron/v1/config.h index e08a27f1c3..713ca1157e 100644 --- a/keyboards/keychron/v1/config.h +++ b/keyboards/keychron/v1/config.h @@ -33,8 +33,8 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/v10/config.h b/keyboards/keychron/v10/config.h index e711b753dd..2848f2ce8f 100644 --- a/keyboards/keychron/v10/config.h +++ b/keyboards/keychron/v10/config.h @@ -32,8 +32,8 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/v2/config.h b/keyboards/keychron/v2/config.h index 8ac0bea5f0..fa3c794edc 100644 --- a/keyboards/keychron/v2/config.h +++ b/keyboards/keychron/v2/config.h @@ -21,8 +21,8 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/v3/config.h b/keyboards/keychron/v3/config.h index a6a6394ffd..53f81c87fb 100644 --- a/keyboards/keychron/v3/config.h +++ b/keyboards/keychron/v3/config.h @@ -21,8 +21,8 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/v4/config.h b/keyboards/keychron/v4/config.h index fb0b2cd276..02bf981e4d 100644 --- a/keyboards/keychron/v4/config.h +++ b/keyboards/keychron/v4/config.h @@ -18,7 +18,7 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/v5/config.h b/keyboards/keychron/v5/config.h index bca7f6d1cf..0ffc314144 100644 --- a/keyboards/keychron/v5/config.h +++ b/keyboards/keychron/v5/config.h @@ -27,8 +27,8 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/v6/config.h b/keyboards/keychron/v6/config.h index 2ff53f2a67..420b36a8c9 100644 --- a/keyboards/keychron/v6/config.h +++ b/keyboards/keychron/v6/config.h @@ -21,8 +21,8 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/v7/config.h b/keyboards/keychron/v7/config.h index e66866a33c..dd0ce2f3c4 100644 --- a/keyboards/keychron/v7/config.h +++ b/keyboards/keychron/v7/config.h @@ -18,8 +18,8 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/keychron/v8/config.h b/keyboards/keychron/v8/config.h index ed4d98799a..ae0c8ead05 100644 --- a/keyboards/keychron/v8/config.h +++ b/keyboards/keychron/v8/config.h @@ -21,8 +21,8 @@ /* RGB Matrix Driver Configuration */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U diff --git a/keyboards/kprepublic/bm40hsrgb/rev2/config.h b/keyboards/kprepublic/bm40hsrgb/rev2/config.h index 84df5017b6..5924f37691 100755 --- a/keyboards/kprepublic/bm40hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm40hsrgb/rev2/config.h @@ -15,8 +15,8 @@ */ #pragma once -#define DRIVER_COUNT 1 -#define DRIVER_ADDR_1 0b1010000 +#define IS31FL3733_DRIVER_COUNT 1 +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define RGB_MATRIX_LED_COUNT 47 #define RGB_MATRIX_KEYPRESSES #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/config.h b/keyboards/kprepublic/bm60hsrgb/rev2/config.h index e3f763567c..618473d5a4 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb/rev2/config.h @@ -18,7 +18,7 @@ #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD #define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended -#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define RGB_MATRIX_KEYPRESSES // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c index a55c88c97b..8b786d7cfb 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c @@ -153,16 +153,16 @@ rgb_led_t rgb_matrix_ws2812_array[WS2812_LED_TOTAL]; static void rgb_matrix_driver_init(void) { i2c_init(); - is31fl3733_init(DRIVER_ADDR_1, 0); + is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, 0); for (uint8_t index = 0; index < ISSI_LED_TOTAL; index++) { bool enabled = true; is31fl3733_set_led_control_register(index, enabled, enabled, enabled); } - is31fl3733_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_1, 0); } static void rgb_matrix_driver_flush(void) { - is31fl3733_update_pwm_buffers(DRIVER_ADDR_1, 0); + is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_1, 0); # if WS2812_LED_TOTAL > 0 ws2812_setleds(rgb_matrix_ws2812_array, WS2812_LED_TOTAL); # endif diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h index 0b83af45f5..096018e911 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h @@ -18,7 +18,7 @@ #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD # define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended -# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 63 # define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h index 3e049824a7..acd30f0659 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h @@ -26,7 +26,7 @@ # define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT # define DISABLE_RGB_MATRIX_RAINDROPS # define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS -# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define DRIVER_1_LED_TOTAL 64 diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c index 4ca2ab8de1..02dd4ab6ce 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c @@ -153,16 +153,16 @@ rgb_led_t rgb_matrix_ws2812_array[WS2812_LED_TOTAL]; static void rgb_matrix_driver_init(void) { i2c_init(); - is31fl3733_init(DRIVER_ADDR_1, 0); + is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, 0); for (uint8_t index = 0; index < ISSI_LED_TOTAL; index++) { bool enabled = true; is31fl3733_set_led_control_register(index, enabled, enabled, enabled); } - is31fl3733_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_1, 0); } static void rgb_matrix_driver_flush(void) { - is31fl3733_update_pwm_buffers(DRIVER_ADDR_1, 0); + is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_1, 0); # if WS2812_LED_TOTAL > 0 ws2812_setleds(rgb_matrix_ws2812_array, WS2812_LED_TOTAL); # endif diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h index d3222d703e..7fd7575148 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h @@ -78,7 +78,7 @@ // Configure the IS31FL3733 driver for per-key RGB LEDs #define IS31FL3733_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define DRIVER_1_LED_TOTAL 61 #define ISSI_LED_TOTAL DRIVER_1_LED_TOTAL diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c index 1f291a85dd..f76c45e6c5 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c @@ -149,16 +149,16 @@ rgb_led_t rgb_matrix_ws2812_array[WS2812_LED_TOTAL]; static void rgb_matrix_driver_init(void) { i2c_init(); - is31fl3733_init(DRIVER_ADDR_1, 0); + is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, 0); for (uint8_t index = 0; index < ISSI_LED_TOTAL; index++) { bool enabled = true; is31fl3733_set_led_control_register(index, enabled, enabled, enabled); } - is31fl3733_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_1, 0); } static void rgb_matrix_driver_flush(void) { - is31fl3733_update_pwm_buffers(DRIVER_ADDR_1, 0); + is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_1, 0); # if WS2812_LED_TOTAL > 0 ws2812_setleds(rgb_matrix_ws2812_array, WS2812_LED_TOTAL); # endif diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/config.h b/keyboards/kprepublic/bm68hsrgb/rev2/config.h index b3b1abf137..2528a71033 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm68hsrgb/rev2/config.h @@ -18,7 +18,7 @@ #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD -#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 68 diff --git a/keyboards/kprepublic/bm80v2/config.h b/keyboards/kprepublic/bm80v2/config.h index 3678c64202..0872ba2050 100644 --- a/keyboards/kprepublic/bm80v2/config.h +++ b/keyboards/kprepublic/bm80v2/config.h @@ -53,7 +53,7 @@ #define ENABLE_RGB_MATRIX_MULTISPLASH #define ENABLE_RGB_MATRIX_SOLID_SPLASH #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 87 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/kprepublic/bm80v2_iso/config.h b/keyboards/kprepublic/bm80v2_iso/config.h index a8fac74218..6410490e4e 100644 --- a/keyboards/kprepublic/bm80v2_iso/config.h +++ b/keyboards/kprepublic/bm80v2_iso/config.h @@ -54,7 +54,7 @@ #define ENABLE_RGB_MATRIX_MULTISPLASH #define ENABLE_RGB_MATRIX_SOLID_SPLASH #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 88 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/latincompass/latin17rgb/config.h b/keyboards/latincompass/latin17rgb/config.h index 0ce80e584e..338581a2c2 100644 --- a/keyboards/latincompass/latin17rgb/config.h +++ b/keyboards/latincompass/latin17rgb/config.h @@ -69,8 +69,8 @@ // # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -# define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA +# define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +# define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA # define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 25 diff --git a/keyboards/latincompass/latin60rgb/config.h b/keyboards/latincompass/latin60rgb/config.h index 23cfdf24ee..8f25223853 100644 --- a/keyboards/latincompass/latin60rgb/config.h +++ b/keyboards/latincompass/latin60rgb/config.h @@ -67,7 +67,7 @@ // # define ENABLE_RGB_MATRIX_MULTISPLASH // # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 60 #endif diff --git a/keyboards/latincompass/latin6rgb/config.h b/keyboards/latincompass/latin6rgb/config.h index 424dcd5bef..dc164fd8a2 100644 --- a/keyboards/latincompass/latin6rgb/config.h +++ b/keyboards/latincompass/latin6rgb/config.h @@ -70,7 +70,7 @@ // # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 6 diff --git a/keyboards/matrix/m20add/config.h b/keyboards/matrix/m20add/config.h index 048796c793..aba2357357 100644 --- a/keyboards/matrix/m20add/config.h +++ b/keyboards/matrix/m20add/config.h @@ -78,6 +78,6 @@ #define I2C1_CLOCK_SPEED 400000 #define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 20 diff --git a/keyboards/matrix/m20add/rgb_ring.c b/keyboards/matrix/m20add/rgb_ring.c index 81bd5e5407..c56ee931ee 100644 --- a/keyboards/matrix/m20add/rgb_ring.c +++ b/keyboards/matrix/m20add/rgb_ring.c @@ -372,12 +372,12 @@ void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds) void rgb_ring_init(void) { i2c_init(); - is31fl3731_init(DRIVER_ADDR_1); + is31fl3731_init(IS31FL3731_I2C_ADDRESS_1); for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) { bool enabled = true; is31fl3731_set_led_control_register(index, enabled, enabled, enabled); } - is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0); } void rgb_ring_task(void) @@ -396,7 +396,7 @@ void rgb_ring_task(void) break; }; - is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0); + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0); } bool process_record_kb(uint16_t keycode, keyrecord_t *record) diff --git a/keyboards/matrix/noah/config.h b/keyboards/matrix/noah/config.h index 428fe98d2e..8829345322 100644 --- a/keyboards/matrix/noah/config.h +++ b/keyboards/matrix/noah/config.h @@ -19,8 +19,8 @@ #define PAL_MODE_STM32_ALTERNATE_OPENDRAIN (PAL_MODE_ALTERNATE(4) | PAL_STM32_OTYPE_OPENDRAIN) // rgb matrix setting -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 #define DRIVER_2_LED_TOTAL 36 diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/config.h b/keyboards/mechlovin/adelais/rgb_led/rev2/config.h index 7e1bd43012..ec29cdc48e 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev2/config.h +++ b/keyboards/mechlovin/adelais/rgb_led/rev2/config.h @@ -1,8 +1,8 @@ #pragma once //rgb matrix setting -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 32 #define DRIVER_2_LED_TOTAL 36 diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/config.h b/keyboards/mechlovin/adelais/rgb_led/rev3/config.h index 039f3ffe81..48f585e765 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev3/config.h +++ b/keyboards/mechlovin/adelais/rgb_led/rev3/config.h @@ -22,7 +22,7 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE //rgb matrix setting -#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_SDA +#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_SDA #define IS31FL3741_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 66 diff --git a/keyboards/mechlovin/delphine/rgb_led/config.h b/keyboards/mechlovin/delphine/rgb_led/config.h index 66455e1158..23a5042458 100644 --- a/keyboards/mechlovin/delphine/rgb_led/config.h +++ b/keyboards/mechlovin/delphine/rgb_led/config.h @@ -1,7 +1,7 @@ #pragma once //rgb matrix setting -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_SDA +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 25 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses diff --git a/keyboards/mechlovin/hannah60rgb/rev2/config.h b/keyboards/mechlovin/hannah60rgb/rev2/config.h index 5c7bb7abfe..362acc114e 100644 --- a/keyboards/mechlovin/hannah60rgb/rev2/config.h +++ b/keyboards/mechlovin/hannah60rgb/rev2/config.h @@ -1,8 +1,8 @@ #pragma once //rgb matrix setting -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 44 #define DRIVER_2_LED_TOTAL 34 diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/config.h b/keyboards/mechlovin/infinity87/rgb_rev1/config.h index 9777e290bb..5f994b3a71 100644 --- a/keyboards/mechlovin/infinity87/rgb_rev1/config.h +++ b/keyboards/mechlovin/infinity87/rgb_rev1/config.h @@ -73,7 +73,7 @@ //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_REACTIVE_SIMPLE -#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_SDA +#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_SDA #define IS31FL3741_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 91 #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/mechlovin/olly/octagon/config.h b/keyboards/mechlovin/olly/octagon/config.h index 573a11f88f..9481d8f193 100644 --- a/keyboards/mechlovin/olly/octagon/config.h +++ b/keyboards/mechlovin/olly/octagon/config.h @@ -18,7 +18,7 @@ along with this program. If not, see . #pragma once #ifdef LED_MATRIX_ENABLE -#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_SDA +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_SDA #define I2C_DRIVER I2CD2 #define I2C1_SCL_PIN B10 #define I2C1_SDA_PIN B11 diff --git a/keyboards/mechlovin/zed65/mono_led/config.h b/keyboards/mechlovin/zed65/mono_led/config.h index 65f9ba2a94..b5d737641b 100644 --- a/keyboards/mechlovin/zed65/mono_led/config.h +++ b/keyboards/mechlovin/zed65/mono_led/config.h @@ -18,7 +18,7 @@ along with this program. If not, see . #pragma once #ifdef LED_MATRIX_ENABLE -#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_SDA +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_SDA #define I2C_DRIVER I2CD2 #define I2C1_SCL_PIN B10 #define I2C1_SDA_PIN B11 diff --git a/keyboards/melgeek/mach80/config.h b/keyboards/melgeek/mach80/config.h index 000b81eef9..41369e503d 100755 --- a/keyboards/melgeek/mach80/config.h +++ b/keyboards/melgeek/mach80/config.h @@ -25,7 +25,7 @@ #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define ENABLE_RGB_MATRIX_ALPHAS_MODS diff --git a/keyboards/melgeek/mach80/rev1/rev1.c b/keyboards/melgeek/mach80/rev1/rev1.c index 19075b7605..9e5c2d8b81 100755 --- a/keyboards/melgeek/mach80/rev1/rev1.c +++ b/keyboards/melgeek/mach80/rev1/rev1.c @@ -179,7 +179,7 @@ void matrix_init_kb(void) { is31fl3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF); } - is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0); matrix_init_user(); } diff --git a/keyboards/melgeek/mach80/rev2/rev2.c b/keyboards/melgeek/mach80/rev2/rev2.c index 38b23955c6..e9fdc2517f 100755 --- a/keyboards/melgeek/mach80/rev2/rev2.c +++ b/keyboards/melgeek/mach80/rev2/rev2.c @@ -177,7 +177,7 @@ void matrix_init_kb(void) { is31fl3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF); } - is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0); matrix_init_user(); } diff --git a/keyboards/melgeek/mj61/config.h b/keyboards/melgeek/mj61/config.h index e07d2078cd..2033876e00 100644 --- a/keyboards/melgeek/mj61/config.h +++ b/keyboards/melgeek/mj61/config.h @@ -70,5 +70,5 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 diff --git a/keyboards/melgeek/mj63/config.h b/keyboards/melgeek/mj63/config.h index e07d2078cd..2033876e00 100644 --- a/keyboards/melgeek/mj63/config.h +++ b/keyboards/melgeek/mj63/config.h @@ -70,5 +70,5 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 diff --git a/keyboards/melgeek/mj64/config.h b/keyboards/melgeek/mj64/config.h index e07d2078cd..2033876e00 100644 --- a/keyboards/melgeek/mj64/config.h +++ b/keyboards/melgeek/mj64/config.h @@ -70,5 +70,5 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 diff --git a/keyboards/melgeek/mj65/config.h b/keyboards/melgeek/mj65/config.h index e07d2078cd..2033876e00 100644 --- a/keyboards/melgeek/mj65/config.h +++ b/keyboards/melgeek/mj65/config.h @@ -70,5 +70,5 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 diff --git a/keyboards/melgeek/mojo68/config.h b/keyboards/melgeek/mojo68/config.h index b7bcb36c2d..cd721cb342 100755 --- a/keyboards/melgeek/mojo68/config.h +++ b/keyboards/melgeek/mojo68/config.h @@ -69,5 +69,5 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 diff --git a/keyboards/melgeek/mojo68/rev1/rev1.c b/keyboards/melgeek/mojo68/rev1/rev1.c index bf4dad659b..cd6d4ec413 100755 --- a/keyboards/melgeek/mojo68/rev1/rev1.c +++ b/keyboards/melgeek/mojo68/rev1/rev1.c @@ -147,7 +147,7 @@ void matrix_init_kb(void) { is31fl3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF); } - is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0); matrix_init_user(); } diff --git a/keyboards/melgeek/mojo75/config.h b/keyboards/melgeek/mojo75/config.h index 77d27fe2c3..8ec9906bcc 100644 --- a/keyboards/melgeek/mojo75/config.h +++ b/keyboards/melgeek/mojo75/config.h @@ -71,5 +71,5 @@ //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_REACTIVE_SIMPLE -#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 diff --git a/keyboards/melgeek/tegic/config.h b/keyboards/melgeek/tegic/config.h index 5e4087dcc5..f1cc7fcc4b 100755 --- a/keyboards/melgeek/tegic/config.h +++ b/keyboards/melgeek/tegic/config.h @@ -22,7 +22,7 @@ #define RGB_MATRIX_LED_FLUSH_LIMIT 26 //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define ENABLE_RGB_MATRIX_ALPHAS_MODS diff --git a/keyboards/melgeek/z70ultra/config.h b/keyboards/melgeek/z70ultra/config.h index 3ae466044c..6fb7ad6bf2 100644 --- a/keyboards/melgeek/z70ultra/config.h +++ b/keyboards/melgeek/z70ultra/config.h @@ -70,7 +70,7 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 69 #define DRIVER_INDICATOR_LED_TOTAL 6 diff --git a/keyboards/melgeek/z70ultra/z70ultra.c b/keyboards/melgeek/z70ultra/z70ultra.c index 4afe7376b9..f978edea92 100644 --- a/keyboards/melgeek/z70ultra/z70ultra.c +++ b/keyboards/melgeek/z70ultra/z70ultra.c @@ -161,7 +161,7 @@ void matrix_init_kb(void) { is31fl3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF); } - is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0); matrix_init_user(); } diff --git a/keyboards/miller/gm862/config.h b/keyboards/miller/gm862/config.h index 7378c18290..002ba4fe11 100644 --- a/keyboards/miller/gm862/config.h +++ b/keyboards/miller/gm862/config.h @@ -53,7 +53,7 @@ // # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 62 #endif diff --git a/keyboards/monsgeek/m1/config.h b/keyboards/monsgeek/m1/config.h index 9c25c9f21c..9ef10dac14 100644 --- a/keyboards/monsgeek/m1/config.h +++ b/keyboards/monsgeek/m1/config.h @@ -34,8 +34,8 @@ /* I2C Config for LED Driver */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_OPMODE OPMODE_I2C #define I2C1_CLOCK_SPEED 400000 /* 400000 */ diff --git a/keyboards/monsgeek/m5/config.h b/keyboards/monsgeek/m5/config.h index ddb700870b..b60db6aff7 100644 --- a/keyboards/monsgeek/m5/config.h +++ b/keyboards/monsgeek/m5/config.h @@ -35,8 +35,8 @@ /* I2C Config for LED Driver */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_OPMODE OPMODE_I2C #define I2C1_CLOCK_SPEED 400000 /* 400000 */ #define I2C1_SCL_PAL_MODE 4 diff --git a/keyboards/monsgeek/m6/config.h b/keyboards/monsgeek/m6/config.h index b10220db17..e2b3e995a3 100644 --- a/keyboards/monsgeek/m6/config.h +++ b/keyboards/monsgeek/m6/config.h @@ -32,8 +32,8 @@ /* I2C Config for LED Driver */ #define SNLED27351_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_SCL_PAL_MODE 4 #define I2C1_OPMODE OPMODE_I2C #define I2C1_CLOCK_SPEED 400000 /* 400000 */ diff --git a/keyboards/moonlander/config.h b/keyboards/moonlander/config.h index 7c20260162..45f03da963 100644 --- a/keyboards/moonlander/config.h +++ b/keyboards/moonlander/config.h @@ -65,8 +65,8 @@ //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 diff --git a/keyboards/mt/mt64rgb/config.h b/keyboards/mt/mt64rgb/config.h index d13942461f..2d6bfa06d9 100644 --- a/keyboards/mt/mt64rgb/config.h +++ b/keyboards/mt/mt64rgb/config.h @@ -22,7 +22,7 @@ #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 160 #define RGB_MATRIX_LED_PROCESS_LIMIT 20 #define RGB_MATRIX_LED_FLUSH_LIMIT 26 -#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 diff --git a/keyboards/mt/mt84/config.h b/keyboards/mt/mt84/config.h index d76fdd262e..e07ec1a6d0 100644 --- a/keyboards/mt/mt84/config.h +++ b/keyboards/mt/mt84/config.h @@ -22,8 +22,8 @@ #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define RGB_MATRIX_LED_PROCESS_LIMIT 20 #define RGB_MATRIX_LED_FLUSH_LIMIT 26 - #define DRIVER_ADDR_1 IS31FL3737_I2C_ADDRESS_GND - #define DRIVER_ADDR_2 IS31FL3737_I2C_ADDRESS_VCC + #define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND + #define IS31FL3737_I2C_ADDRESS_2 IS31FL3737_I2C_ADDRESS_VCC diff --git a/keyboards/neson_design/700e/700e.c b/keyboards/neson_design/700e/700e.c index 7d28dba2bb..395ae4759a 100644 --- a/keyboards/neson_design/700e/700e.c +++ b/keyboards/neson_design/700e/700e.c @@ -48,18 +48,18 @@ enum { // led index #define ST_LEFT_BEGIN 0 -#ifdef DRIVER_ADDR_2 +#ifdef IS31FL3731_I2C_ADDRESS_2 #define ST_LEFT_SIZE 4 #else #define ST_LEFT_SIZE 2 #endif #define ST_LEFT_END (ST_LEFT_BEGIN+ST_LEFT_SIZE-1) -#ifdef DRIVER_ADDR_2 +#ifdef IS31FL3731_I2C_ADDRESS_2 #define ST_RIGHT_BEGIN 60 #else #define ST_RIGHT_BEGIN 30 #endif -#ifdef DRIVER_ADDR_2 +#ifdef IS31FL3731_I2C_ADDRESS_2 #define ST_RIGHT_SIZE 4 #else #define ST_RIGHT_SIZE 2 @@ -295,16 +295,16 @@ void matrix_init_kb(void) writePinLow(LED_CAPS_LOCK_PIN); i2c_init(); - is31fl3731_init(DRIVER_ADDR_1); -#ifdef DRIVER_ADDR_2 - is31fl3731_init(DRIVER_ADDR_2); + is31fl3731_init(IS31FL3731_I2C_ADDRESS_1); +#ifdef IS31FL3731_I2C_ADDRESS_2 + is31fl3731_init(IS31FL3731_I2C_ADDRESS_2); #endif for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) { is31fl3731_set_led_control_register(index, true, true, true); } - is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0); -#ifdef DRIVER_ADDR_2 - is31fl3731_update_led_control_registers(DRIVER_ADDR_2, 1); + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0); +#ifdef IS31FL3731_I2C_ADDRESS_2 + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_2, 1); #endif update_ticks(); matrix_init_user(); @@ -341,9 +341,9 @@ void housekeeping_task_kb(void) } } - is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0); -#ifdef DRIVER_ADDR_2 - is31fl3731_update_pwm_buffers(DRIVER_ADDR_2, 1); + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0); +#ifdef IS31FL3731_I2C_ADDRESS_2 + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_2, 1); #endif housekeeping_task_user(); diff --git a/keyboards/neson_design/700e/config.h b/keyboards/neson_design/700e/config.h index 64af470bac..bd1d9888ec 100644 --- a/keyboards/neson_design/700e/config.h +++ b/keyboards/neson_design/700e/config.h @@ -32,8 +32,8 @@ #define DRIVER_1_LED_TOTAL 32 #define DRIVER_2_LED_TOTAL 32 -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC #define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL) diff --git a/keyboards/neson_design/n6/config.h b/keyboards/neson_design/n6/config.h index 50eda4e586..22a25a0d92 100644 --- a/keyboards/neson_design/n6/config.h +++ b/keyboards/neson_design/n6/config.h @@ -32,7 +32,7 @@ #define DRIVER_1_LED_TOTAL 32 #define DRIVER_2_LED_TOTAL 32 -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC #define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL) diff --git a/keyboards/neson_design/n6/n6.c b/keyboards/neson_design/n6/n6.c index 4d655453cb..e6531bc2c4 100644 --- a/keyboards/neson_design/n6/n6.c +++ b/keyboards/neson_design/n6/n6.c @@ -48,18 +48,18 @@ enum { // led index #define ST_LEFT_BEGIN 0 -#ifdef DRIVER_ADDR_2 +#ifdef IS31FL3731_I2C_ADDRESS_2 #define ST_LEFT_SIZE 4 #else #define ST_LEFT_SIZE 2 #endif #define ST_LEFT_END (ST_LEFT_BEGIN+ST_LEFT_SIZE-1) -#ifdef DRIVER_ADDR_2 +#ifdef IS31FL3731_I2C_ADDRESS_2 #define ST_RIGHT_BEGIN 60 #else #define ST_RIGHT_BEGIN 30 #endif -#ifdef DRIVER_ADDR_2 +#ifdef IS31FL3731_I2C_ADDRESS_2 #define ST_RIGHT_SIZE 4 #else #define ST_RIGHT_SIZE 2 @@ -299,16 +299,16 @@ void matrix_init_kb(void) writePinLow(LED_CAPS_LOCK_PIN); i2c_init(); - is31fl3731_init(DRIVER_ADDR_1); -#ifdef DRIVER_ADDR_2 - is31fl3731_init(DRIVER_ADDR_2); + is31fl3731_init(IS31FL3731_I2C_ADDRESS_1); +#ifdef IS31FL3731_I2C_ADDRESS_2 + is31fl3731_init(IS31FL3731_I2C_ADDRESS_2); #endif for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) { is31fl3731_set_led_control_register(index, true, true, true); } - is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0); -#ifdef DRIVER_ADDR_2 - is31fl3731_update_led_control_registers(DRIVER_ADDR_2, 1); + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0); +#ifdef IS31FL3731_I2C_ADDRESS_2 + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_2, 1); #endif update_ticks(); matrix_init_user(); @@ -343,9 +343,9 @@ void housekeeping_task_kb(void) } } - is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0); -#ifdef DRIVER_ADDR_2 - is31fl3731_update_pwm_buffers(DRIVER_ADDR_2, 1); + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0); +#ifdef IS31FL3731_I2C_ADDRESS_2 + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_2, 1); #endif housekeeping_task_user(); diff --git a/keyboards/opendeck/32/rev1/config.h b/keyboards/opendeck/32/rev1/config.h index 2857ef04b1..1a84624b76 100644 --- a/keyboards/opendeck/32/rev1/config.h +++ b/keyboards/opendeck/32/rev1/config.h @@ -16,7 +16,7 @@ #pragma once // RGB matrix -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT (4 * 8 * 3) #define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/owlab/voice65/hotswap/config.h b/keyboards/owlab/voice65/hotswap/config.h index 50876e8302..d274892453 100644 --- a/keyboards/owlab/voice65/hotswap/config.h +++ b/keyboards/owlab/voice65/hotswap/config.h @@ -29,7 +29,7 @@ along with this program. If not, see . # define RGB_MATRIX_LED_FLUSH_LIMIT 26 # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 # define RGB_MATRIX_DEFAULT_VAL 128 -# define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +# define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND # define IS31FL3741_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 67 // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/owlab/voice65/soldered/config.h b/keyboards/owlab/voice65/soldered/config.h index ab66f4368d..679463d515 100644 --- a/keyboards/owlab/voice65/soldered/config.h +++ b/keyboards/owlab/voice65/soldered/config.h @@ -29,7 +29,7 @@ along with this program. If not, see . # define RGB_MATRIX_LED_FLUSH_LIMIT 26 # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 # define RGB_MATRIX_DEFAULT_VAL 128 -# define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +# define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND # define IS31FL3741_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 71 diff --git a/keyboards/planck/ez/config.h b/keyboards/planck/ez/config.h index f4998282e6..f8804c4d6e 100644 --- a/keyboards/planck/ez/config.h +++ b/keyboards/planck/ez/config.h @@ -50,7 +50,7 @@ //#define WS2812_DMA_CHANNEL 7 // DMA channel for TIMx_UP //#define WS2812_EXTERNAL_PULLUP -#define DRIVER_ADDR_1 IS31FL3737_I2C_ADDRESS_GND +#define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND #define IS31FL3737_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 47 diff --git a/keyboards/planck/light/config.h b/keyboards/planck/light/config.h index 20c729ec51..1b8fecc8a3 100644 --- a/keyboards/planck/light/config.h +++ b/keyboards/planck/light/config.h @@ -7,8 +7,8 @@ #define PLANCK_MIT_LAYOUT -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 25 diff --git a/keyboards/playkbtw/pk64rgb/config.h b/keyboards/playkbtw/pk64rgb/config.h index bd4d53d0b5..59c3f6ab1d 100644 --- a/keyboards/playkbtw/pk64rgb/config.h +++ b/keyboards/playkbtw/pk64rgb/config.h @@ -23,7 +23,7 @@ #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 160 #define RGB_MATRIX_LED_PROCESS_LIMIT 20 #define RGB_MATRIX_LED_FLUSH_LIMIT 26 - #define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND + #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 diff --git a/keyboards/projectd/65/projectd_65_ansi/config.h b/keyboards/projectd/65/projectd_65_ansi/config.h index 4d1dc100d8..fb86e2c781 100644 --- a/keyboards/projectd/65/projectd_65_ansi/config.h +++ b/keyboards/projectd/65/projectd_65_ansi/config.h @@ -32,10 +32,10 @@ #define SPI_MOSI_PIN A7 #define SPI_MISO_PIN A6 -#define AW20216S_DRIVER_1_CS A15 -#define AW20216S_DRIVER_2_CS B15 -#define AW20216S_DRIVER_1_EN C13 -#define AW20216S_DRIVER_2_EN C13 +#define AW20216S_CS_PIN_1 A15 +#define AW20216S_CS_PIN_2 B15 +#define AW20216S_EN_PIN_1 C13 +#define AW20216S_EN_PIN_2 C13 #define AW20216S_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 71 diff --git a/keyboards/redragon/k667/config.h b/keyboards/redragon/k667/config.h index 938befa8fc..7fec873187 100644 --- a/keyboards/redragon/k667/config.h +++ b/keyboards/redragon/k667/config.h @@ -17,8 +17,8 @@ #pragma once -#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND -#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_VCC +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC #define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 45 diff --git a/keyboards/skyloong/gk61/v1/config.h b/keyboards/skyloong/gk61/v1/config.h index 153bd8d0eb..c274ffa1fb 100644 --- a/keyboards/skyloong/gk61/v1/config.h +++ b/keyboards/skyloong/gk61/v1/config.h @@ -15,7 +15,7 @@ */ #pragma once -#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND #define SNLED27351_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 diff --git a/keyboards/smallkeyboard/config.h b/keyboards/smallkeyboard/config.h index 784aece469..71868ee7ed 100644 --- a/keyboards/smallkeyboard/config.h +++ b/keyboards/smallkeyboard/config.h @@ -66,7 +66,7 @@ // #define ENABLE_RGB_MATRIX_SOLID_SPLASH // #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 6 diff --git a/keyboards/teleport/native/config.h b/keyboards/teleport/native/config.h index c607aa0afe..d9f3b8a303 100644 --- a/keyboards/teleport/native/config.h +++ b/keyboards/teleport/native/config.h @@ -30,8 +30,8 @@ along with this program. If not, see . /* RGB Matrix driver config */ #define IS31FL3733_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND -#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_VCC +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC #define DRIVER_1_LED_TOTAL 46 #define DRIVER_2_LED_TOTAL 39 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/terrazzo/config.h b/keyboards/terrazzo/config.h index 6ad8c363a3..a1062de020 100644 --- a/keyboards/terrazzo/config.h +++ b/keyboards/terrazzo/config.h @@ -17,7 +17,7 @@ #ifdef LED_MATRIX_ENABLE -#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 105 #define LED_MATRIX_ROWS 15 diff --git a/keyboards/tkc/portico/config.h b/keyboards/tkc/portico/config.h index 442a0900b2..9a8e19171f 100644 --- a/keyboards/tkc/portico/config.h +++ b/keyboards/tkc/portico/config.h @@ -39,8 +39,8 @@ along with this program. If not, see . # undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # undef ENABLE_RGB_MATRIX_DIGITAL_RAIN # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 -# define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -# define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC +# define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +# define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC # define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 31 diff --git a/keyboards/tkc/portico68v2/config.h b/keyboards/tkc/portico68v2/config.h index f350af712b..fdd38e3133 100644 --- a/keyboards/tkc/portico68v2/config.h +++ b/keyboards/tkc/portico68v2/config.h @@ -17,7 +17,7 @@ along with this program. If not, see . #pragma once -#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 82 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/tkc/portico75/config.h b/keyboards/tkc/portico75/config.h index d512608f9c..d5b401704b 100644 --- a/keyboards/tkc/portico75/config.h +++ b/keyboards/tkc/portico75/config.h @@ -72,7 +72,7 @@ along with this program. If not, see . // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 -# define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +# define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND # define IS31FL3741_DRIVER_COUNT 1 # define DRIVER_1_LED_TOTAL 98 # define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/wilba_tech/wt60_a/config.h b/keyboards/wilba_tech/wt60_a/config.h index ec3f1abf30..c9d448fbb8 100644 --- a/keyboards/wilba_tech/wt60_a/config.h +++ b/keyboards/wilba_tech/wt60_a/config.h @@ -62,5 +62,6 @@ // dynamic keymaps start after this. #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 +#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND #define IS31FL3736_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt65_a/config.h b/keyboards/wilba_tech/wt65_a/config.h index bddeb8397c..04d607e77a 100644 --- a/keyboards/wilba_tech/wt65_a/config.h +++ b/keyboards/wilba_tech/wt65_a/config.h @@ -62,5 +62,6 @@ // dynamic keymaps start after this. #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 +#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND #define IS31FL3736_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt65_b/config.h b/keyboards/wilba_tech/wt65_b/config.h index f0aec12b06..780b3c80c4 100644 --- a/keyboards/wilba_tech/wt65_b/config.h +++ b/keyboards/wilba_tech/wt65_b/config.h @@ -62,5 +62,6 @@ // dynamic keymaps start after this. #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 +#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND #define IS31FL3736_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt75_a/config.h b/keyboards/wilba_tech/wt75_a/config.h index b2d20e3351..29399e148a 100644 --- a/keyboards/wilba_tech/wt75_a/config.h +++ b/keyboards/wilba_tech/wt75_a/config.h @@ -62,5 +62,6 @@ // dynamic keymaps start after this. #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 +#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND #define IS31FL3736_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt75_b/config.h b/keyboards/wilba_tech/wt75_b/config.h index cd6aa96577..71ca6891ca 100644 --- a/keyboards/wilba_tech/wt75_b/config.h +++ b/keyboards/wilba_tech/wt75_b/config.h @@ -62,5 +62,6 @@ // dynamic keymaps start after this. #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 +#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND #define IS31FL3736_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt75_c/config.h b/keyboards/wilba_tech/wt75_c/config.h index f2cebdc7aa..b404dccfbb 100644 --- a/keyboards/wilba_tech/wt75_c/config.h +++ b/keyboards/wilba_tech/wt75_c/config.h @@ -62,5 +62,6 @@ // dynamic keymaps start after this. #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 +#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND #define IS31FL3736_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt80_a/config.h b/keyboards/wilba_tech/wt80_a/config.h index 6b424a649f..a1f8fbdef6 100644 --- a/keyboards/wilba_tech/wt80_a/config.h +++ b/keyboards/wilba_tech/wt80_a/config.h @@ -62,5 +62,6 @@ // dynamic keymaps start after this. #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 +#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND #define IS31FL3736_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt_mono_backlight.c b/keyboards/wilba_tech/wt_mono_backlight.c index a1545a668b..acb2c3aec7 100644 --- a/keyboards/wilba_tech/wt_mono_backlight.c +++ b/keyboards/wilba_tech/wt_mono_backlight.c @@ -35,8 +35,6 @@ #include "drivers/led/issi/is31fl3736-simple.h" -#define ISSI_ADDR_DEFAULT 0x50 - #define BACKLIGHT_EFFECT_MAX 3 #ifndef MONO_BACKLIGHT_COLOR_1 @@ -172,14 +170,14 @@ uint32_t g_any_key_hit = 0; void backlight_init_drivers(void) { - // Initialize I2C - i2c_init(); - is31fl3736_init( ISSI_ADDR_DEFAULT ); + // Initialize I2C + i2c_init(); + is31fl3736_init( IS31FL3736_I2C_ADDRESS_1 ); - for ( uint8_t index = 0; index < 96; index++ ) { - is31fl3736_set_led_control_register( index, true ); - } - is31fl3736_update_led_control_registers( ISSI_ADDR_DEFAULT, 0 ); + for ( uint8_t index = 0; index < 96; index++ ) { + is31fl3736_set_led_control_register( index, true ); + } + is31fl3736_update_led_control_registers( IS31FL3736_I2C_ADDRESS_1, 0 ); } void backlight_set_key_hit(uint8_t row, uint8_t column) @@ -471,7 +469,7 @@ void backlight_config_save(void) void backlight_update_pwm_buffers(void) { - is31fl3736_update_pwm_buffers(ISSI_ADDR_DEFAULT, 0); + is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_1, 0); } bool process_record_backlight(uint16_t keycode, keyrecord_t *record) diff --git a/keyboards/xbows/knight/config.h b/keyboards/xbows/knight/config.h index c38628fef1..21b3ff6946 100644 --- a/keyboards/xbows/knight/config.h +++ b/keyboards/xbows/knight/config.h @@ -47,9 +47,9 @@ # define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out -# define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -# define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA -# define DRIVER_ADDR_3 IS31FL3731_I2C_ADDRESS_SCL +# define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +# define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA +# define IS31FL3731_I2C_ADDRESS_3 IS31FL3731_I2C_ADDRESS_SCL # define IS31FL3731_DRIVER_COUNT 3 # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 35 diff --git a/keyboards/xbows/knight_plus/config.h b/keyboards/xbows/knight_plus/config.h index 7a26ca9944..91d69d9408 100644 --- a/keyboards/xbows/knight_plus/config.h +++ b/keyboards/xbows/knight_plus/config.h @@ -47,9 +47,9 @@ # define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out -# define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -# define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA -# define DRIVER_ADDR_3 IS31FL3731_I2C_ADDRESS_SCL +# define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +# define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA +# define IS31FL3731_I2C_ADDRESS_3 IS31FL3731_I2C_ADDRESS_SCL # define IS31FL3731_DRIVER_COUNT 3 # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 35 diff --git a/keyboards/xbows/nature/config.h b/keyboards/xbows/nature/config.h index f408d62699..4e8270ea89 100644 --- a/keyboards/xbows/nature/config.h +++ b/keyboards/xbows/nature/config.h @@ -49,9 +49,9 @@ # define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out -# define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -# define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA -# define DRIVER_ADDR_3 IS31FL3731_I2C_ADDRESS_SCL +# define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +# define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA +# define IS31FL3731_I2C_ADDRESS_3 IS31FL3731_I2C_ADDRESS_SCL # define IS31FL3731_DRIVER_COUNT 3 # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 36 diff --git a/keyboards/xbows/numpad/config.h b/keyboards/xbows/numpad/config.h index d0c5d88491..5beb35aa1b 100644 --- a/keyboards/xbows/numpad/config.h +++ b/keyboards/xbows/numpad/config.h @@ -47,7 +47,7 @@ # define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out -# define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_VCC +# define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_VCC # define IS31FL3731_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 22 #endif diff --git a/keyboards/xbows/ranger/config.h b/keyboards/xbows/ranger/config.h index 81d9737449..49d889b920 100644 --- a/keyboards/xbows/ranger/config.h +++ b/keyboards/xbows/ranger/config.h @@ -46,9 +46,9 @@ # define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out -# define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -# define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SCL -# define DRIVER_ADDR_3 IS31FL3731_I2C_ADDRESS_SDA +# define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +# define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SCL +# define IS31FL3731_I2C_ADDRESS_3 IS31FL3731_I2C_ADDRESS_SDA # define IS31FL3731_DRIVER_COUNT 3 # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 36 diff --git a/keyboards/xbows/woody/config.h b/keyboards/xbows/woody/config.h index 4b6ea9f70a..dc86093694 100644 --- a/keyboards/xbows/woody/config.h +++ b/keyboards/xbows/woody/config.h @@ -56,8 +56,8 @@ // # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -# define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA +# define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +# define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA # define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 35 # define DRIVER_2_LED_TOTAL 32 diff --git a/keyboards/xelus/dawn60/rev1_qmk/config.h b/keyboards/xelus/dawn60/rev1_qmk/config.h index 9958f8c2bb..33629a8ef3 100644 --- a/keyboards/xelus/dawn60/rev1_qmk/config.h +++ b/keyboards/xelus/dawn60/rev1_qmk/config.h @@ -24,8 +24,8 @@ #define WS2812_LED_TOTAL 20 //RGB Matrix defines -#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 32 diff --git a/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c b/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c index 0c6e0c12e3..da83d358b9 100644 --- a/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c +++ b/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c @@ -167,22 +167,22 @@ led_config_t g_led_config = { { //Custom Driver static void init(void) { i2c_init(); - is31fl3731_init(DRIVER_ADDR_1); - is31fl3731_init(DRIVER_ADDR_2); + is31fl3731_init(IS31FL3731_I2C_ADDRESS_1); + is31fl3731_init(IS31FL3731_I2C_ADDRESS_2); for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) { bool enabled = true; is31fl3731_set_led_control_register(index, enabled, enabled, enabled); } - is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0); - is31fl3731_update_led_control_registers(DRIVER_ADDR_2, 1); + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0); + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_2, 1); //RGB Underglow ws2812 } static void flush(void) { - is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0); - is31fl3731_update_pwm_buffers(DRIVER_ADDR_2, 1); + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0); + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_2, 1); ws2812_setleds(rgb_matrix_ws2812_array, WS2812_LED_TOTAL); } diff --git a/keyboards/xelus/pachi/rgb/rev1/config.h b/keyboards/xelus/pachi/rgb/rev1/config.h index 882f2a7e36..baa15eaa49 100644 --- a/keyboards/xelus/pachi/rgb/rev1/config.h +++ b/keyboards/xelus/pachi/rgb/rev1/config.h @@ -40,7 +40,7 @@ #define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191 // RGB Matrix defines -#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 117 diff --git a/keyboards/xelus/pachi/rgb/rev1/rev1.c b/keyboards/xelus/pachi/rgb/rev1/rev1.c index a59d085f25..b54b2a0a1d 100644 --- a/keyboards/xelus/pachi/rgb/rev1/rev1.c +++ b/keyboards/xelus/pachi/rgb/rev1/rev1.c @@ -188,7 +188,7 @@ led_config_t g_led_config = { { static void init(void) { i2c_init(); - is31fl3741_init(DRIVER_ADDR_1); + is31fl3741_init(IS31FL3741_I2C_ADDRESS_1); for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) { bool enabled = !( ( index == -1+0+13) || //A13 ( index == -1+13+3) || //B3 @@ -223,11 +223,11 @@ static void init(void) { ); is31fl3741_set_led_control_register(index, enabled, enabled, enabled); } - is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0); } static void flush(void) { - is31fl3741_update_pwm_buffers(DRIVER_ADDR_1, 0); + is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_1, 0); } const rgb_matrix_driver_t rgb_matrix_driver = { diff --git a/keyboards/xelus/pachi/rgb/rev2/config.h b/keyboards/xelus/pachi/rgb/rev2/config.h index 826e8f869e..da989e16a2 100644 --- a/keyboards/xelus/pachi/rgb/rev2/config.h +++ b/keyboards/xelus/pachi/rgb/rev2/config.h @@ -37,7 +37,7 @@ #define EEPROM_I2C_24LC64 // RGB Matrix defines -#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND +#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND #define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 117 diff --git a/keyboards/xelus/pachi/rgb/rev2/rev2.c b/keyboards/xelus/pachi/rgb/rev2/rev2.c index 7ca3c6f9f6..744e7838b1 100644 --- a/keyboards/xelus/pachi/rgb/rev2/rev2.c +++ b/keyboards/xelus/pachi/rgb/rev2/rev2.c @@ -194,7 +194,7 @@ led_config_t g_led_config = { { static void init(void) { i2c_init(); - is31fl3741_init(DRIVER_ADDR_1); + is31fl3741_init(IS31FL3741_I2C_ADDRESS_1); for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) { bool enabled = !( ( index == -1+0+13) || //A13 ( index == -1+13+3) || //B3 @@ -229,11 +229,11 @@ static void init(void) { ); is31fl3741_set_led_control_register(index, enabled, enabled, enabled); } - is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0); + is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0); } static void flush(void) { - is31fl3741_update_pwm_buffers(DRIVER_ADDR_1, 0); + is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_1, 0); } const rgb_matrix_driver_t rgb_matrix_driver = { diff --git a/quantum/led_matrix/led_matrix_drivers.c b/quantum/led_matrix/led_matrix_drivers.c index f52870aea5..42594d2e16 100644 --- a/quantum/led_matrix/led_matrix_drivers.c +++ b/quantum/led_matrix/led_matrix_drivers.c @@ -35,73 +35,73 @@ static void init(void) { is31fl3218_init(); # elif defined(LED_MATRIX_IS31FL3731) - is31fl3731_init(LED_DRIVER_ADDR_1); -# if defined(LED_DRIVER_ADDR_2) - is31fl3731_init(LED_DRIVER_ADDR_2); -# if defined(LED_DRIVER_ADDR_3) - is31fl3731_init(LED_DRIVER_ADDR_3); -# if defined(LED_DRIVER_ADDR_4) - is31fl3731_init(LED_DRIVER_ADDR_4); + is31fl3731_init(IS31FL3731_I2C_ADDRESS_1); +# if defined(IS31FL3731_I2C_ADDRESS_2) + is31fl3731_init(IS31FL3731_I2C_ADDRESS_2); +# if defined(IS31FL3731_I2C_ADDRESS_3) + is31fl3731_init(IS31FL3731_I2C_ADDRESS_3); +# if defined(IS31FL3731_I2C_ADDRESS_4) + is31fl3731_init(IS31FL3731_I2C_ADDRESS_4); # endif # endif # endif # elif defined(LED_MATRIX_IS31FL3733) -# if !defined(LED_DRIVER_SYNC_1) -# define LED_DRIVER_SYNC_1 0 +# if !defined(IS31FL3733_SYNC_1) +# define IS31FL3733_SYNC_1 0 # endif - is31fl3733_init(LED_DRIVER_ADDR_1, LED_DRIVER_SYNC_1); -# if defined(LED_DRIVER_ADDR_2) -# if !defined(LED_DRIVER_SYNC_2) -# define LED_DRIVER_SYNC_2 0 + is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_1); +# if defined(IS31FL3733_I2C_ADDRESS_2) +# if !defined(IS31FL3733_SYNC_2) +# define IS31FL3733_SYNC_2 0 # endif - is31fl3733_init(LED_DRIVER_ADDR_2, LED_DRIVER_SYNC_2); -# if defined(LED_DRIVER_ADDR_3) -# if !defined(LED_DRIVER_SYNC_3) -# define LED_DRIVER_SYNC_3 0 + is31fl3733_init(IS31FL3733_I2C_ADDRESS_2, IS31FL3733_SYNC_2); +# if defined(IS31FL3733_I2C_ADDRESS_3) +# if !defined(IS31FL3733_SYNC_3) +# define IS31FL3733_SYNC_3 0 # endif - is31fl3733_init(LED_DRIVER_ADDR_3, LED_DRIVER_SYNC_3); -# if defined(LED_DRIVER_ADDR_4) -# if !defined(LED_DRIVER_SYNC_4) -# define LED_DRIVER_SYNC_4 0 + is31fl3733_init(IS31FL3733_I2C_ADDRESS_3, IS31FL3733_SYNC_3); +# if defined(IS31FL3733_I2C_ADDRESS_4) +# if !defined(IS31FL3733_SYNC_4) +# define IS31FL3733_SYNC_4 0 # endif - is31fl3733_init(LED_DRIVER_ADDR_4, LED_DRIVER_SYNC_4); + is31fl3733_init(IS31FL3733_I2C_ADDRESS_4, IS31FL3733_SYNC_4); # endif # endif # endif # elif defined(LED_MATRIX_IS31FL3736) - is31fl3736_init(LED_DRIVER_ADDR_1); -# if defined(LED_DRIVER_ADDR_2) - is31fl3736_init(LED_DRIVER_ADDR_2); -# if defined(LED_DRIVER_ADDR_3) - is31fl3736_init(LED_DRIVER_ADDR_3); -# if defined(LED_DRIVER_ADDR_4) - is31fl3736_init(LED_DRIVER_ADDR_4); + is31fl3736_init(IS31FL3736_I2C_ADDRESS_1); +# if defined(IS31FL3736_I2C_ADDRESS_2) + is31fl3736_init(IS31FL3736_I2C_ADDRESS_2); +# if defined(IS31FL3736_I2C_ADDRESS_3) + is31fl3736_init(IS31FL3736_I2C_ADDRESS_3); +# if defined(IS31FL3736_I2C_ADDRESS_4) + is31fl3736_init(IS31FL3736_I2C_ADDRESS_4); # endif # endif # endif # elif defined(LED_MATRIX_IS31FL3737) - is31fl3737_init(LED_DRIVER_ADDR_1); -# if defined(LED_DRIVER_ADDR_2) - is31fl3737_init(LED_DRIVER_ADDR_2); -# if defined(LED_DRIVER_ADDR_3) - is31fl3737_init(LED_DRIVER_ADDR_3); -# if defined(LED_DRIVER_ADDR_4) - is31fl3737_init(LED_DRIVER_ADDR_4); + is31fl3737_init(IS31FL3737_I2C_ADDRESS_1); +# if defined(IS31FL3737_I2C_ADDRESS_2) + is31fl3737_init(IS31FL3737_I2C_ADDRESS_2); +# if defined(IS31FL3737_I2C_ADDRESS_3) + is31fl3737_init(IS31FL3737_I2C_ADDRESS_3); +# if defined(IS31FL3737_I2C_ADDRESS_4) + is31fl3737_init(IS31FL3737_I2C_ADDRESS_4); # endif # endif # endif # elif defined(LED_MATRIX_IS31FL3741) - is31fl3741_init(LED_DRIVER_ADDR_1); -# if defined(LED_DRIVER_ADDR_2) - is31fl3741_init(LED_DRIVER_ADDR_2); -# if defined(LED_DRIVER_ADDR_3) - is31fl3741_init(LED_DRIVER_ADDR_3); -# if defined(LED_DRIVER_ADDR_4) - is31fl3741_init(LED_DRIVER_ADDR_4); + is31fl3741_init(IS31FL3741_I2C_ADDRESS_1); +# if defined(IS31FL3741_I2C_ADDRESS_2) + is31fl3741_init(IS31FL3741_I2C_ADDRESS_2); +# if defined(IS31FL3741_I2C_ADDRESS_3) + is31fl3741_init(IS31FL3741_I2C_ADDRESS_3); +# if defined(IS31FL3741_I2C_ADDRESS_4) + is31fl3741_init(IS31FL3741_I2C_ADDRESS_4); # endif # endif # endif @@ -123,13 +123,13 @@ static void init(void) { writePinHigh(LED_DRIVER_SHUTDOWN_PIN); # endif - snled27351_init(DRIVER_ADDR_1); -# if defined(DRIVER_ADDR_2) - snled27351_init(DRIVER_ADDR_2); -# if defined(DRIVER_ADDR_3) - snled27351_init(DRIVER_ADDR_3); -# if defined(DRIVER_ADDR_4) - snled27351_init(DRIVER_ADDR_4); + snled27351_init(SNLED27351_I2C_ADDRESS_1); +# if defined(SNLED27351_I2C_ADDRESS_2) + snled27351_init(SNLED27351_I2C_ADDRESS_2); +# if defined(SNLED27351_I2C_ADDRESS_3) + snled27351_init(SNLED27351_I2C_ADDRESS_3); +# if defined(SNLED27351_I2C_ADDRESS_4) + snled27351_init(SNLED27351_I2C_ADDRESS_4); # endif # endif # endif @@ -160,61 +160,61 @@ static void init(void) { is31fl3218_update_led_control_registers(); # elif defined(LED_MATRIX_IS31FL3731) - is31fl3731_update_led_control_registers(LED_DRIVER_ADDR_1, 0); -# if defined(LED_DRIVER_ADDR_2) - is31fl3731_update_led_control_registers(LED_DRIVER_ADDR_2, 1); -# if defined(LED_DRIVER_ADDR_3) - is31fl3731_update_led_control_registers(LED_DRIVER_ADDR_3, 2); -# if defined(LED_DRIVER_ADDR_4) - is31fl3731_update_led_control_registers(LED_DRIVER_ADDR_4, 3); + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0); +# if defined(IS31FL3731_I2C_ADDRESS_2) + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_2, 1); +# if defined(IS31FL3731_I2C_ADDRESS_3) + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_3, 2); +# if defined(IS31FL3731_I2C_ADDRESS_4) + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_4, 3); # endif # endif # endif # elif defined(LED_MATRIX_IS31FL3733) - is31fl3733_update_led_control_registers(LED_DRIVER_ADDR_1, 0); -# if defined(LED_DRIVER_ADDR_2) - is31fl3733_update_led_control_registers(LED_DRIVER_ADDR_2, 1); -# if defined(LED_DRIVER_ADDR_3) - is31fl3733_update_led_control_registers(LED_DRIVER_ADDR_3, 2); -# if defined(LED_DRIVER_ADDR_4) - is31fl3733_update_led_control_registers(LED_DRIVER_ADDR_4, 3); + is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_1, 0); +# if defined(IS31FL3733_I2C_ADDRESS_2) + is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_2, 1); +# if defined(IS31FL3733_I2C_ADDRESS_3) + is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_3, 2); +# if defined(IS31FL3733_I2C_ADDRESS_4) + is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_4, 3); # endif # endif # endif # elif defined(LED_MATRIX_IS31FL3736) - is31fl3736_update_led_control_registers(LED_DRIVER_ADDR_1, 0); -# if defined(LED_DRIVER_ADDR_2) - is31fl3736_update_led_control_registers(LED_DRIVER_ADDR_2, 1); -# if defined(LED_DRIVER_ADDR_3) - is31fl3736_update_led_control_registers(LED_DRIVER_ADDR_3, 2); -# if defined(LED_DRIVER_ADDR_4) - is31fl3736_update_led_control_registers(LED_DRIVER_ADDR_4, 3); + is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_1, 0); +# if defined(IS31FL3736_I2C_ADDRESS_2) + is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_2, 1); +# if defined(IS31FL3736_I2C_ADDRESS_3) + is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_3, 2); +# if defined(IS31FL3736_I2C_ADDRESS_4) + is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_4, 3); # endif # endif # endif # elif defined(LED_MATRIX_IS31FL3737) - is31fl3737_update_led_control_registers(LED_DRIVER_ADDR_1, 0); -# if defined(LED_DRIVER_ADDR_2) - is31fl3737_update_led_control_registers(LED_DRIVER_ADDR_2, 1); -# if defined(LED_DRIVER_ADDR_3) - is31fl3737_update_led_control_registers(LED_DRIVER_ADDR_3, 2); -# if defined(LED_DRIVER_ADDR_4) - is31fl3737_update_led_control_registers(LED_DRIVER_ADDR_4, 3); + is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_1, 0); +# if defined(IS31FL3737_I2C_ADDRESS_2) + is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_2, 1); +# if defined(IS31FL3737_I2C_ADDRESS_3) + is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_3, 2); +# if defined(IS31FL3737_I2C_ADDRESS_4) + is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_4, 3); # endif # endif # endif # elif defined(LED_MATRIX_IS31FL3741) - is31fl3741_update_led_control_registers(LED_DRIVER_ADDR_1, 0); -# if defined(LED_DRIVER_ADDR_2) - is31fl3741_update_led_control_registers(LED_DRIVER_ADDR_2, 1); -# if defined(LED_DRIVER_ADDR_3) - is31fl3741_update_led_control_registers(LED_DRIVER_ADDR_3, 2); -# if defined(LED_DRIVER_ADDR_4) - is31fl3741_update_led_control_registers(LED_DRIVER_ADDR_4, 3); + is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0); +# if defined(IS31FL3741_I2C_ADDRESS_2) + is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_2, 1); +# if defined(IS31FL3741_I2C_ADDRESS_3) + is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_3, 2); +# if defined(IS31FL3741_I2C_ADDRESS_4) + is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_4, 3); # endif # endif # endif @@ -233,14 +233,15 @@ static void init(void) { # endif # endif # endif + # elif defined(LED_MATRIX_SNLED27351) - snled27351_update_led_control_registers(DRIVER_ADDR_1, 0); -# if defined(DRIVER_ADDR_2) - snled27351_update_led_control_registers(DRIVER_ADDR_2, 1); -# if defined(DRIVER_ADDR_3) - snled27351_update_led_control_registers(DRIVER_ADDR_3, 2); -# if defined(DRIVER_ADDR_4) - snled27351_update_led_control_registers(DRIVER_ADDR_4, 3); + snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_1, 0); +# if defined(SNLED27351_I2C_ADDRESS_2) + snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_2, 1); +# if defined(SNLED27351_I2C_ADDRESS_3) + snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_3, 2); +# if defined(SNLED27351_I2C_ADDRESS_4) + snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_4, 3); # endif # endif # endif @@ -261,13 +262,13 @@ const led_matrix_driver_t led_matrix_driver = { # elif defined(LED_MATRIX_IS31FL3731) static void flush(void) { - is31fl3731_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); -# if defined(LED_DRIVER_ADDR_2) - is31fl3731_update_pwm_buffers(LED_DRIVER_ADDR_2, 1); -# if defined(LED_DRIVER_ADDR_3) - is31fl3731_update_pwm_buffers(LED_DRIVER_ADDR_3, 2); -# if defined(LED_DRIVER_ADDR_4) - is31fl3731_update_pwm_buffers(LED_DRIVER_ADDR_4, 3); + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0); +# if defined(IS31FL3731_I2C_ADDRESS_2) + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_2, 1); +# if defined(IS31FL3731_I2C_ADDRESS_3) + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_3, 2); +# if defined(IS31FL3731_I2C_ADDRESS_4) + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_4, 3); # endif # endif # endif @@ -282,13 +283,13 @@ const led_matrix_driver_t led_matrix_driver = { # elif defined(LED_MATRIX_IS31FL3733) static void flush(void) { - is31fl3733_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); -# if defined(LED_DRIVER_ADDR_2) - is31fl3733_update_pwm_buffers(LED_DRIVER_ADDR_2, 1); -# if defined(LED_DRIVER_ADDR_3) - is31fl3733_update_pwm_buffers(LED_DRIVER_ADDR_3, 2); -# if defined(LED_DRIVER_ADDR_4) - is31fl3733_update_pwm_buffers(LED_DRIVER_ADDR_4, 3); + is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_1, 0); +# if defined(IS31FL3733_I2C_ADDRESS_2) + is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_2, 1); +# if defined(IS31FL3733_I2C_ADDRESS_3) + is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_3, 2); +# if defined(IS31FL3733_I2C_ADDRESS_4) + is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_4, 3); # endif # endif # endif @@ -303,13 +304,13 @@ const led_matrix_driver_t led_matrix_driver = { # elif defined(LED_MATRIX_IS31FL3736) static void flush(void) { - is31fl3736_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); -# if defined(LED_DRIVER_ADDR_2) - is31fl3736_update_pwm_buffers(LED_DRIVER_ADDR_2, 1); -# if defined(LED_DRIVER_ADDR_3) - is31fl3736_update_pwm_buffers(LED_DRIVER_ADDR_3, 2); -# if defined(LED_DRIVER_ADDR_4) - is31fl3736_update_pwm_buffers(LED_DRIVER_ADDR_4, 3); + is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_1, 0); +# if defined(IS31FL3736_I2C_ADDRESS_2) + is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_2, 1); +# if defined(IS31FL3736_I2C_ADDRESS_3) + is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_3, 2); +# if defined(IS31FL3736_I2C_ADDRESS_4) + is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_4, 3); # endif # endif # endif @@ -324,13 +325,13 @@ const led_matrix_driver_t led_matrix_driver = { # elif defined(LED_MATRIX_IS31FL3737) static void flush(void) { - is31fl3737_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); -# if defined(LED_DRIVER_ADDR_2) - is31fl3737_update_pwm_buffers(LED_DRIVER_ADDR_2, 1); -# if defined(LED_DRIVER_ADDR_3) - is31fl3737_update_pwm_buffers(LED_DRIVER_ADDR_3, 2); -# if defined(LED_DRIVER_ADDR_4) - is31fl3737_update_pwm_buffers(LED_DRIVER_ADDR_4, 3); + is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_1, 0); +# if defined(IS31FL3737_I2C_ADDRESS_2) + is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_2, 1); +# if defined(IS31FL3737_I2C_ADDRESS_3) + is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_3, 2); +# if defined(IS31FL3737_I2C_ADDRESS_4) + is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_4, 3); # endif # endif # endif @@ -345,13 +346,13 @@ const led_matrix_driver_t led_matrix_driver = { # elif defined(LED_MATRIX_IS31FL3741) static void flush(void) { - is31fl3741_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); -# if defined(LED_DRIVER_ADDR_2) - is31fl3741_update_pwm_buffers(LED_DRIVER_ADDR_2, 1); -# if defined(LED_DRIVER_ADDR_3) - is31fl3741_update_pwm_buffers(LED_DRIVER_ADDR_3, 2); -# if defined(LED_DRIVER_ADDR_4) - is31fl3741_update_pwm_buffers(LED_DRIVER_ADDR_4, 3); + is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_1, 0); +# if defined(IS31FL3741_I2C_ADDRESS_2) + is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_2, 1); +# if defined(IS31FL3741_I2C_ADDRESS_3) + is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_3, 2); +# if defined(IS31FL3741_I2C_ADDRESS_4) + is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_4, 3); # endif # endif # endif @@ -386,13 +387,13 @@ const led_matrix_driver_t led_matrix_driver = { }; # elif defined(LED_MATRIX_SNLED27351) static void flush(void) { - snled27351_update_pwm_buffers(DRIVER_ADDR_1, 0); -# if defined(DRIVER_ADDR_2) - snled27351_update_pwm_buffers(DRIVER_ADDR_2, 1); -# if defined(DRIVER_ADDR_3) - snled27351_update_pwm_buffers(DRIVER_ADDR_3, 2); -# if defined(DRIVER_ADDR_4) - snled27351_update_pwm_buffers(DRIVER_ADDR_4, 3); + snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_1, 0); +# if defined(SNLED27351_I2C_ADDRESS_2) + snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_2, 1); +# if defined(SNLED27351_I2C_ADDRESS_3) + snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_3, 2); +# if defined(SNLED27351_I2C_ADDRESS_4) + snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_4, 3); # endif # endif # endif diff --git a/quantum/rgb_matrix/rgb_matrix_drivers.c b/quantum/rgb_matrix/rgb_matrix_drivers.c index 06d82b9c69..555e750e50 100644 --- a/quantum/rgb_matrix/rgb_matrix_drivers.c +++ b/quantum/rgb_matrix/rgb_matrix_drivers.c @@ -27,13 +27,6 @@ #if defined(RGB_MATRIX_IS31FL3218) || defined(RGB_MATRIX_IS31FL3731) || defined(RGB_MATRIX_IS31FL3733) || defined(RGB_MATRIX_IS31FL3736) || defined(RGB_MATRIX_IS31FL3737) || defined(RGB_MATRIX_IS31FL3741) || defined(IS31FLCOMMON) || defined(RGB_MATRIX_SNLED27351) # include "i2c_master.h" -// TODO: Remove this at some later date -# if defined(DRIVER_ADDR_1) && defined(DRIVER_ADDR_2) -# if DRIVER_ADDR_1 == DRIVER_ADDR_2 -# error "Setting DRIVER_ADDR_2 == DRIVER_ADDR_1 is obsolete. If you are only using one ISSI driver, set DRIVER_COUNT to 1 and remove DRIVER_ADDR_2" -# endif -# endif - static void init(void) { i2c_init(); @@ -41,73 +34,73 @@ static void init(void) { is31fl3218_init(); # elif defined(RGB_MATRIX_IS31FL3731) - is31fl3731_init(DRIVER_ADDR_1); -# if defined(DRIVER_ADDR_2) - is31fl3731_init(DRIVER_ADDR_2); -# if defined(DRIVER_ADDR_3) - is31fl3731_init(DRIVER_ADDR_3); -# if defined(DRIVER_ADDR_4) - is31fl3731_init(DRIVER_ADDR_4); + is31fl3731_init(IS31FL3731_I2C_ADDRESS_1); +# if defined(IS31FL3731_I2C_ADDRESS_2) + is31fl3731_init(IS31FL3731_I2C_ADDRESS_2); +# if defined(IS31FL3731_I2C_ADDRESS_3) + is31fl3731_init(IS31FL3731_I2C_ADDRESS_3); +# if defined(IS31FL3731_I2C_ADDRESS_4) + is31fl3731_init(IS31FL3731_I2C_ADDRESS_4); # endif # endif # endif # elif defined(RGB_MATRIX_IS31FL3733) -# if !defined(DRIVER_SYNC_1) -# define DRIVER_SYNC_1 0 +# if !defined(IS31FL3733_SYNC_1) +# define IS31FL3733_SYNC_1 0 # endif - is31fl3733_init(DRIVER_ADDR_1, DRIVER_SYNC_1); -# if defined(DRIVER_ADDR_2) -# if !defined(DRIVER_SYNC_2) -# define DRIVER_SYNC_2 0 + is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_1); +# if defined(IS31FL3733_I2C_ADDRESS_2) +# if !defined(IS31FL3733_SYNC_2) +# define IS31FL3733_SYNC_2 0 # endif - is31fl3733_init(DRIVER_ADDR_2, DRIVER_SYNC_2); -# if defined(DRIVER_ADDR_3) -# if !defined(DRIVER_SYNC_3) -# define DRIVER_SYNC_3 0 + is31fl3733_init(IS31FL3733_I2C_ADDRESS_2, IS31FL3733_SYNC_2); +# if defined(IS31FL3733_I2C_ADDRESS_3) +# if !defined(IS31FL3733_SYNC_3) +# define IS31FL3733_SYNC_3 0 # endif - is31fl3733_init(DRIVER_ADDR_3, DRIVER_SYNC_3); -# if defined(DRIVER_ADDR_4) -# if !defined(DRIVER_SYNC_4) -# define DRIVER_SYNC_4 0 + is31fl3733_init(IS31FL3733_I2C_ADDRESS_3, IS31FL3733_SYNC_3); +# if defined(IS31FL3733_I2C_ADDRESS_4) +# if !defined(IS31FL3733_SYNC_4) +# define IS31FL3733_SYNC_4 0 # endif - is31fl3733_init(DRIVER_ADDR_4, DRIVER_SYNC_4); + is31fl3733_init(IS31FL3733_I2C_ADDRESS_4, IS31FL3733_SYNC_4); # endif # endif # endif # elif defined(RGB_MATRIX_IS31FL3736) - is31fl3736_init(DRIVER_ADDR_1); -# if defined(DRIVER_ADDR_2) - is31fl3736_init(DRIVER_ADDR_2); -# if defined(DRIVER_ADDR_3) - is31fl3736_init(DRIVER_ADDR_3); -# if defined(DRIVER_ADDR_4) - is31fl3736_init(DRIVER_ADDR_4); + is31fl3736_init(IS31FL3736_I2C_ADDRESS_1); +# if defined(IS31FL3736_I2C_ADDRESS_2) + is31fl3736_init(IS31FL3736_I2C_ADDRESS_2); +# if defined(IS31FL3736_I2C_ADDRESS_3) + is31fl3736_init(IS31FL3736_I2C_ADDRESS_3); +# if defined(IS31FL3736_I2C_ADDRESS_4) + is31fl3736_init(IS31FL3736_I2C_ADDRESS_4); # endif # endif # endif # elif defined(RGB_MATRIX_IS31FL3737) - is31fl3737_init(DRIVER_ADDR_1); -# if defined(DRIVER_ADDR_2) - is31fl3737_init(DRIVER_ADDR_2); -# if defined(DRIVER_ADDR_3) - is31fl3737_init(DRIVER_ADDR_3); -# if defined(DRIVER_ADDR_4) - is31fl3737_init(DRIVER_ADDR_4); + is31fl3737_init(IS31FL3737_I2C_ADDRESS_1); +# if defined(IS31FL3737_I2C_ADDRESS_2) + is31fl3737_init(IS31FL3737_I2C_ADDRESS_2); +# if defined(IS31FL3737_I2C_ADDRESS_3) + is31fl3737_init(IS31FL3737_I2C_ADDRESS_3); +# if defined(IS31FL3737_I2C_ADDRESS_4) + is31fl3737_init(IS31FL3737_I2C_ADDRESS_4); # endif # endif # endif # elif defined(RGB_MATRIX_IS31FL3741) - is31fl3741_init(DRIVER_ADDR_1); -# if defined(DRIVER_ADDR_2) - is31fl3741_init(DRIVER_ADDR_2); -# if defined(DRIVER_ADDR_3) - is31fl3741_init(DRIVER_ADDR_3); -# if defined(DRIVER_ADDR_4) - is31fl3741_init(DRIVER_ADDR_4); + is31fl3741_init(IS31FL3741_I2C_ADDRESS_1); +# if defined(IS31FL3741_I2C_ADDRESS_2) + is31fl3741_init(IS31FL3741_I2C_ADDRESS_2); +# if defined(IS31FL3741_I2C_ADDRESS_3) + is31fl3741_init(IS31FL3741_I2C_ADDRESS_3); +# if defined(IS31FL3741_I2C_ADDRESS_4) + is31fl3741_init(IS31FL3741_I2C_ADDRESS_4); # endif # endif # endif @@ -125,13 +118,13 @@ static void init(void) { # endif # elif defined(RGB_MATRIX_SNLED27351) - snled27351_init(DRIVER_ADDR_1); -# if defined(DRIVER_ADDR_2) - snled27351_init(DRIVER_ADDR_2); -# if defined(DRIVER_ADDR_3) - snled27351_init(DRIVER_ADDR_3); -# if defined(DRIVER_ADDR_4) - snled27351_init(DRIVER_ADDR_4); + snled27351_init(SNLED27351_I2C_ADDRESS_1); +# if defined(SNLED27351_I2C_ADDRESS_2) + snled27351_init(SNLED27351_I2C_ADDRESS_2); +# if defined(SNLED27351_I2C_ADDRESS_3) + snled27351_init(SNLED27351_I2C_ADDRESS_3); +# if defined(SNLED27351_I2C_ADDRESS_4) + snled27351_init(SNLED27351_I2C_ADDRESS_4); # endif # endif # endif @@ -165,61 +158,61 @@ static void init(void) { is31fl3218_update_led_control_registers(); # elif defined(RGB_MATRIX_IS31FL3731) - is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0); -# if defined(DRIVER_ADDR_2) - is31fl3731_update_led_control_registers(DRIVER_ADDR_2, 1); -# if defined(DRIVER_ADDR_3) - is31fl3731_update_led_control_registers(DRIVER_ADDR_3, 2); -# if defined(DRIVER_ADDR_4) - is31fl3731_update_led_control_registers(DRIVER_ADDR_4, 3); + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0); +# if defined(IS31FL3731_I2C_ADDRESS_2) + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_2, 1); +# if defined(IS31FL3731_I2C_ADDRESS_3) + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_3, 2); +# if defined(IS31FL3731_I2C_ADDRESS_4) + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_4, 3); # endif # endif # endif # elif defined(RGB_MATRIX_IS31FL3733) - is31fl3733_update_led_control_registers(DRIVER_ADDR_1, 0); -# if defined(DRIVER_ADDR_2) - is31fl3733_update_led_control_registers(DRIVER_ADDR_2, 1); -# if defined(DRIVER_ADDR_3) - is31fl3733_update_led_control_registers(DRIVER_ADDR_3, 2); -# if defined(DRIVER_ADDR_4) - is31fl3733_update_led_control_registers(DRIVER_ADDR_4, 3); + is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_1, 0); +# if defined(IS31FL3733_I2C_ADDRESS_2) + is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_2, 1); +# if defined(IS31FL3733_I2C_ADDRESS_3) + is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_3, 2); +# if defined(IS31FL3733_I2C_ADDRESS_4) + is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_4, 3); # endif # endif # endif # elif defined(RGB_MATRIX_IS31FL3736) - is31fl3736_update_led_control_registers(DRIVER_ADDR_1, 0); -# if defined(DRIVER_ADDR_2) - is31fl3736_update_led_control_registers(DRIVER_ADDR_2, 1); -# if defined(DRIVER_ADDR_3) - is31fl3736_update_led_control_registers(DRIVER_ADDR_3, 2); -# if defined(DRIVER_ADDR_4) - is31fl3736_update_led_control_registers(DRIVER_ADDR_4, 3); + is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_1, 0); +# if defined(IS31FL3736_I2C_ADDRESS_2) + is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_2, 1); +# if defined(IS31FL3736_I2C_ADDRESS_3) + is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_3, 2); +# if defined(IS31FL3736_I2C_ADDRESS_4) + is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_4, 3); # endif # endif # endif # elif defined(RGB_MATRIX_IS31FL3737) - is31fl3737_update_led_control_registers(DRIVER_ADDR_1, 0); -# if defined(DRIVER_ADDR_2) - is31fl3737_update_led_control_registers(DRIVER_ADDR_2, 1); -# if defined(DRIVER_ADDR_3) - is31fl3737_update_led_control_registers(DRIVER_ADDR_3, 2); -# if defined(DRIVER_ADDR_4) - is31fl3737_update_led_control_registers(DRIVER_ADDR_4, 3); + is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_1, 0); +# if defined(IS31FL3737_I2C_ADDRESS_2) + is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_2, 1); +# if defined(IS31FL3737_I2C_ADDRESS_3) + is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_3, 2); +# if defined(IS31FL3737_I2C_ADDRESS_4) + is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_4, 3); # endif # endif # endif # elif defined(RGB_MATRIX_IS31FL3741) - is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0); -# if defined(DRIVER_ADDR_2) - is31fl3741_update_led_control_registers(DRIVER_ADDR_2, 1); -# if defined(DRIVER_ADDR_3) - is31fl3741_update_led_control_registers(DRIVER_ADDR_3, 2); -# if defined(DRIVER_ADDR_4) - is31fl3741_update_led_control_registers(DRIVER_ADDR_4, 3); + is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0); +# if defined(IS31FL3741_I2C_ADDRESS_2) + is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_2, 1); +# if defined(IS31FL3741_I2C_ADDRESS_3) + is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_3, 2); +# if defined(IS31FL3741_I2C_ADDRESS_4) + is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_4, 3); # endif # endif # endif @@ -240,13 +233,13 @@ static void init(void) { # endif # elif defined(RGB_MATRIX_SNLED27351) - snled27351_update_led_control_registers(DRIVER_ADDR_1, 0); -# if defined(DRIVER_ADDR_2) - snled27351_update_led_control_registers(DRIVER_ADDR_2, 1); -# if defined(DRIVER_ADDR_3) - snled27351_update_led_control_registers(DRIVER_ADDR_3, 2); -# if defined(DRIVER_ADDR_4) - snled27351_update_led_control_registers(DRIVER_ADDR_4, 3); + snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_1, 0); +# if defined(SNLED27351_I2C_ADDRESS_2) + snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_2, 1); +# if defined(SNLED27351_I2C_ADDRESS_3) + snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_3, 2); +# if defined(SNLED27351_I2C_ADDRESS_4) + snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_4, 3); # endif # endif # endif @@ -267,13 +260,13 @@ const rgb_matrix_driver_t rgb_matrix_driver = { # elif defined(RGB_MATRIX_IS31FL3731) static void flush(void) { - is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0); -# if defined(DRIVER_ADDR_2) - is31fl3731_update_pwm_buffers(DRIVER_ADDR_2, 1); -# if defined(DRIVER_ADDR_3) - is31fl3731_update_pwm_buffers(DRIVER_ADDR_3, 2); -# if defined(DRIVER_ADDR_4) - is31fl3731_update_pwm_buffers(DRIVER_ADDR_4, 3); + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0); +# if defined(IS31FL3731_I2C_ADDRESS_2) + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_2, 1); +# if defined(IS31FL3731_I2C_ADDRESS_3) + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_3, 2); +# if defined(IS31FL3731_I2C_ADDRESS_4) + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_4, 3); # endif # endif # endif @@ -288,13 +281,13 @@ const rgb_matrix_driver_t rgb_matrix_driver = { # elif defined(RGB_MATRIX_IS31FL3733) static void flush(void) { - is31fl3733_update_pwm_buffers(DRIVER_ADDR_1, 0); -# if defined(DRIVER_ADDR_2) - is31fl3733_update_pwm_buffers(DRIVER_ADDR_2, 1); -# if defined(DRIVER_ADDR_3) - is31fl3733_update_pwm_buffers(DRIVER_ADDR_3, 2); -# if defined(DRIVER_ADDR_4) - is31fl3733_update_pwm_buffers(DRIVER_ADDR_4, 3); + is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_1, 0); +# if defined(IS31FL3733_I2C_ADDRESS_2) + is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_2, 1); +# if defined(IS31FL3733_I2C_ADDRESS_3) + is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_3, 2); +# if defined(IS31FL3733_I2C_ADDRESS_4) + is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_4, 3); # endif # endif # endif @@ -309,13 +302,13 @@ const rgb_matrix_driver_t rgb_matrix_driver = { # elif defined(RGB_MATRIX_IS31FL3736) static void flush(void) { - is31fl3736_update_pwm_buffers(DRIVER_ADDR_1, 0); -# if defined(DRIVER_ADDR_2) - is31fl3736_update_pwm_buffers(DRIVER_ADDR_2, 1); -# if defined(DRIVER_ADDR_3) - is31fl3736_update_pwm_buffers(DRIVER_ADDR_3, 2); -# if defined(DRIVER_ADDR_4) - is31fl3736_update_pwm_buffers(DRIVER_ADDR_4, 3); + is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_1, 0); +# if defined(IS31FL3736_I2C_ADDRESS_2) + is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_2, 1); +# if defined(IS31FL3736_I2C_ADDRESS_3) + is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_3, 2); +# if defined(IS31FL3736_I2C_ADDRESS_4) + is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_4, 3); # endif # endif # endif @@ -330,13 +323,13 @@ const rgb_matrix_driver_t rgb_matrix_driver = { # elif defined(RGB_MATRIX_IS31FL3737) static void flush(void) { - is31fl3737_update_pwm_buffers(DRIVER_ADDR_1, 0); -# if defined(DRIVER_ADDR_2) - is31fl3737_update_pwm_buffers(DRIVER_ADDR_2, 1); -# if defined(DRIVER_ADDR_3) - is31fl3737_update_pwm_buffers(DRIVER_ADDR_3, 2); -# if defined(DRIVER_ADDR_4) - is31fl3737_update_pwm_buffers(DRIVER_ADDR_4, 3); + is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_1, 0); +# if defined(IS31FL3737_I2C_ADDRESS_2) + is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_2, 1); +# if defined(IS31FL3737_I2C_ADDRESS_3) + is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_3, 2); +# if defined(IS31FL3737_I2C_ADDRESS_4) + is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_4, 3); # endif # endif # endif @@ -351,13 +344,13 @@ const rgb_matrix_driver_t rgb_matrix_driver = { # elif defined(RGB_MATRIX_IS31FL3741) static void flush(void) { - is31fl3741_update_pwm_buffers(DRIVER_ADDR_1, 0); -# if defined(DRIVER_ADDR_2) - is31fl3741_update_pwm_buffers(DRIVER_ADDR_2, 1); -# if defined(DRIVER_ADDR_3) - is31fl3741_update_pwm_buffers(DRIVER_ADDR_3, 2); -# if defined(DRIVER_ADDR_4) - is31fl3741_update_pwm_buffers(DRIVER_ADDR_4, 3); + is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_1, 0); +# if defined(IS31FL3741_I2C_ADDRESS_2) + is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_2, 1); +# if defined(IS31FL3741_I2C_ADDRESS_3) + is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_3, 2); +# if defined(IS31FL3741_I2C_ADDRESS_4) + is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_4, 3); # endif # endif # endif @@ -393,13 +386,13 @@ const rgb_matrix_driver_t rgb_matrix_driver = { # elif defined(RGB_MATRIX_SNLED27351) static void flush(void) { - snled27351_update_pwm_buffers(DRIVER_ADDR_1, 0); -# if defined(DRIVER_ADDR_2) - snled27351_update_pwm_buffers(DRIVER_ADDR_2, 1); -# if defined(DRIVER_ADDR_3) - snled27351_update_pwm_buffers(DRIVER_ADDR_3, 2); -# if defined(DRIVER_ADDR_4) - snled27351_update_pwm_buffers(DRIVER_ADDR_4, 3); + snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_1, 0); +# if defined(SNLED27351_I2C_ADDRESS_2) + snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_2, 1); +# if defined(SNLED27351_I2C_ADDRESS_3) + snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_3, 2); +# if defined(SNLED27351_I2C_ADDRESS_4) + snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_4, 3); # endif # endif # endif @@ -419,16 +412,16 @@ const rgb_matrix_driver_t rgb_matrix_driver = { static void init(void) { spi_init(); - aw20216s_init(AW20216S_DRIVER_1_CS, AW20216S_DRIVER_1_EN); -# if defined(AW20216S_DRIVER_2_CS) - aw20216s_init(AW20216S_DRIVER_2_CS, AW20216S_DRIVER_2_EN); + aw20216s_init(AW20216S_CS_PIN_1, AW20216S_EN_PIN_1); +# if defined(AW20216S_CS_PIN_2) + aw20216s_init(AW20216S_CS_PIN_2, AW20216S_EN_PIN_2); # endif } static void flush(void) { - aw20216s_update_pwm_buffers(AW20216S_DRIVER_1_CS, 0); -# if defined(AW20216S_DRIVER_2_CS) - aw20216s_update_pwm_buffers(AW20216S_DRIVER_2_CS, 1); + aw20216s_update_pwm_buffers(AW20216S_CS_PIN_1, 0); +# if defined(AW20216S_CS_PIN_2) + aw20216s_update_pwm_buffers(AW20216S_CS_PIN_2, 1); # endif } From 48d9140cfc197d6f4c54bf8022902d28fac37624 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 22 Oct 2023 00:47:37 +0100 Subject: [PATCH 294/496] Fix invalid LED driver config (#22312) --- drivers/led/snled27351.h | 12 ++++++++++++ keyboards/kprepublic/bm60hsrgb/rev2/config.h | 2 +- keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h | 2 +- keyboards/projectd/65/projectd_65_ansi/config.h | 2 -- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/drivers/led/snled27351.h b/drivers/led/snled27351.h index 770becdba1..67047c8921 100644 --- a/drivers/led/snled27351.h +++ b/drivers/led/snled27351.h @@ -24,6 +24,18 @@ #ifdef DRIVER_COUNT # define SNLED27351_DRIVER_COUNT DRIVER_COUNT #endif +#ifdef DRIVER_ADDR_1 +# define SNLED27351_I2C_ADDRESS_1 DRIVER_ADDR_1 +#endif +#ifdef DRIVER_ADDR_2 +# define SNLED27351_I2C_ADDRESS_2 DRIVER_ADDR_2 +#endif +#ifdef DRIVER_ADDR_3 +# define SNLED27351_I2C_ADDRESS_3 DRIVER_ADDR_3 +#endif +#ifdef DRIVER_ADDR_4 +# define SNLED27351_I2C_ADDRESS_4 DRIVER_ADDR_4 +#endif #ifdef CKLED2001_TIMEOUT # define SNLED27351_I2C_TIMEOUT CKLED2001_TIMEOUT #endif diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/config.h b/keyboards/kprepublic/bm60hsrgb/rev2/config.h index 618473d5a4..9349838622 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb/rev2/config.h @@ -64,7 +64,7 @@ #define ENABLE_RGB_MATRIX_SOLID_SPLASH #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -#define IS31FL3733_DRIVER_COUNT 2 +#define IS31FL3733_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 63 //#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h index 096018e911..53ef0bc53f 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h @@ -19,7 +19,7 @@ # define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended # define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -# define IS31FL3733_DRIVER_COUNT 2 +# define IS31FL3733_DRIVER_COUNT 1 # define DRIVER_1_LED_TOTAL 63 # define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/projectd/65/projectd_65_ansi/config.h b/keyboards/projectd/65/projectd_65_ansi/config.h index fb86e2c781..23540640ad 100644 --- a/keyboards/projectd/65/projectd_65_ansi/config.h +++ b/keyboards/projectd/65/projectd_65_ansi/config.h @@ -33,9 +33,7 @@ #define SPI_MISO_PIN A6 #define AW20216S_CS_PIN_1 A15 -#define AW20216S_CS_PIN_2 B15 #define AW20216S_EN_PIN_1 C13 -#define AW20216S_EN_PIN_2 C13 #define AW20216S_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 71 From 8e614250b4b44a14a6a8c93bea3a6d1fd02790cf Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sun, 22 Oct 2023 13:27:31 +1100 Subject: [PATCH 295/496] [QP] Add support for OLED, variable framebuffer bpp (#19997) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Pablo Martínez <58857054+elpekenin@users.noreply.github.com> Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com> Fixup delta frame coordinates after #20296. --- builddefs/build_keyboard.mk | 1 + docs/quantum_painter.md | 166 ++++++---- drivers/painter/comms/qp_comms_dummy.c | 34 +++ drivers/painter/comms/qp_comms_dummy.h | 11 + drivers/painter/comms/qp_comms_i2c.c | 94 ++++++ drivers/painter/comms/qp_comms_i2c.h | 28 ++ drivers/painter/comms/qp_comms_spi.c | 10 +- drivers/painter/comms/qp_comms_spi.h | 2 +- drivers/painter/gc9a01/qp_gc9a01.c | 16 +- drivers/painter/gc9a01/qp_gc9a01.h | 1 - drivers/painter/gc9a01/qp_gc9a01_opcodes.h | 1 - drivers/painter/generic/qp_rgb565_surface.c | 284 ------------------ drivers/painter/generic/qp_rgb565_surface.h | 42 --- drivers/painter/generic/qp_surface.h | 67 +++++ drivers/painter/generic/qp_surface_common.c | 141 +++++++++ drivers/painter/generic/qp_surface_internal.h | 119 ++++++++ drivers/painter/generic/qp_surface_mono1bpp.c | 113 +++++++ drivers/painter/generic/qp_surface_rgb565.c | 145 +++++++++ drivers/painter/ili9xxx/qp_ili9163.c | 15 +- drivers/painter/ili9xxx/qp_ili9163.h | 1 - drivers/painter/ili9xxx/qp_ili9341.c | 15 +- drivers/painter/ili9xxx/qp_ili9341.h | 1 - drivers/painter/ili9xxx/qp_ili9488.c | 15 +- drivers/painter/ili9xxx/qp_ili9488.h | 1 - drivers/painter/oled_panel/qp_oled_panel.c | 195 ++++++++++++ drivers/painter/oled_panel/qp_oled_panel.h | 68 +++++ drivers/painter/sh1106/qp_sh1106.c | 206 +++++++++++++ drivers/painter/sh1106/qp_sh1106.h | 66 ++++ drivers/painter/sh1106/qp_sh1106_opcodes.h | 26 ++ drivers/painter/ssd1351/qp_ssd1351.c | 15 +- drivers/painter/ssd1351/qp_ssd1351.h | 1 - drivers/painter/ssd1351/qp_ssd1351_opcodes.h | 1 - drivers/painter/st77xx/qp_st7735.c | 15 +- drivers/painter/st77xx/qp_st7735.h | 3 +- drivers/painter/st77xx/qp_st7735_opcodes.h | 1 - drivers/painter/st77xx/qp_st7789.c | 15 +- drivers/painter/st77xx/qp_st7789.h | 1 - drivers/painter/st77xx/qp_st7789_opcodes.h | 1 - drivers/painter/st77xx/qp_st77xx_opcodes.h | 1 - drivers/painter/tft_panel/qp_tft_panel.h | 1 + quantum/painter/qff.c | 8 +- quantum/painter/qff.h | 2 +- quantum/painter/qgf.c | 39 +-- quantum/painter/qgf.h | 6 +- quantum/painter/qp.c | 4 +- quantum/painter/qp.h | 6 + quantum/painter/qp_draw_image.c | 9 +- quantum/painter/qp_draw_text.c | 3 +- quantum/painter/qp_internal.c | 1 + quantum/painter/qp_internal_formats.h | 4 +- quantum/painter/rules.mk | 86 +++++- 51 files changed, 1610 insertions(+), 497 deletions(-) create mode 100644 drivers/painter/comms/qp_comms_dummy.c create mode 100644 drivers/painter/comms/qp_comms_dummy.h create mode 100644 drivers/painter/comms/qp_comms_i2c.c create mode 100644 drivers/painter/comms/qp_comms_i2c.h delete mode 100644 drivers/painter/generic/qp_rgb565_surface.c delete mode 100644 drivers/painter/generic/qp_rgb565_surface.h create mode 100644 drivers/painter/generic/qp_surface.h create mode 100644 drivers/painter/generic/qp_surface_common.c create mode 100644 drivers/painter/generic/qp_surface_internal.h create mode 100644 drivers/painter/generic/qp_surface_mono1bpp.c create mode 100644 drivers/painter/generic/qp_surface_rgb565.c create mode 100644 drivers/painter/oled_panel/qp_oled_panel.c create mode 100644 drivers/painter/oled_panel/qp_oled_panel.h create mode 100644 drivers/painter/sh1106/qp_sh1106.c create mode 100644 drivers/painter/sh1106/qp_sh1106.h create mode 100644 drivers/painter/sh1106/qp_sh1106_opcodes.h diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk index a1c1d5b976..12a8c5b67b 100644 --- a/builddefs/build_keyboard.mk +++ b/builddefs/build_keyboard.mk @@ -455,6 +455,7 @@ $(eval $(call add_qmk_prefix_defs,MCU_PORT_NAME,MCU_PORT_NAME)) $(eval $(call add_qmk_prefix_defs,MCU_FAMILY,MCU_FAMILY)) $(eval $(call add_qmk_prefix_defs,MCU_SERIES,MCU_SERIES)) $(eval $(call add_qmk_prefix_defs,BOARD,BOARD)) +$(eval $(call add_qmk_prefix_defs,OPT,OPT)) # Control whether intermediate file listings are generated # e.g.: diff --git a/docs/quantum_painter.md b/docs/quantum_painter.md index 8acf6aeb36..e8fa1bdece 100644 --- a/docs/quantum_painter.md +++ b/docs/quantum_painter.md @@ -13,22 +13,24 @@ QUANTUM_PAINTER_DRIVERS += ...... You will also likely need to select an appropriate driver in `rules.mk`, which is listed below. -!> Quantum Painter is not currently integrated with system-level operations such as disabling displays after a configurable timeout, or when the keyboard goes into suspend. Users will need to handle this manually at the current time. +!> Quantum Painter is not currently integrated with system-level operations such as when the keyboard goes into suspend. Users will need to handle this manually at the current time. The QMK CLI can be used to convert from normal images such as PNG files or animated GIFs, as well as fonts from TTF files. Supported devices: -| Display Panel | Panel Type | Size | Comms Transport | Driver | -|----------------|--------------------|------------------|-----------------|---------------------------------------------| -| GC9A01 | RGB LCD (circular) | 240x240 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += gc9a01_spi` | -| ILI9163 | RGB LCD | 128x128 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ili9163_spi` | -| ILI9341 | RGB LCD | 240x320 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ili9341_spi` | -| ILI9488 | RGB LCD | 320x480 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ili9488_spi` | -| SSD1351 | RGB OLED | 128x128 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ssd1351_spi` | -| ST7735 | RGB LCD | 132x162, 80x160 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += st7735_spi` | -| ST7789 | RGB LCD | 240x320, 240x240 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += st7789_spi` | -| RGB565 Surface | Virtual | User-defined | None | `QUANTUM_PAINTER_DRIVERS += rgb565_surface` | +| Display Panel | Panel Type | Size | Comms Transport | Driver | +|---------------|--------------------|------------------|-----------------|------------------------------------------| +| GC9A01 | RGB LCD (circular) | 240x240 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += gc9a01_spi` | +| ILI9163 | RGB LCD | 128x128 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ili9163_spi` | +| ILI9341 | RGB LCD | 240x320 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ili9341_spi` | +| ILI9488 | RGB LCD | 320x480 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ili9488_spi` | +| SSD1351 | RGB OLED | 128x128 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ssd1351_spi` | +| ST7735 | RGB LCD | 132x162, 80x160 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += st7735_spi` | +| ST7789 | RGB LCD | 240x320, 240x240 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += st7789_spi` | +| SH1106 (SPI) | Monochrome OLED | 128x64 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += sh1106_spi` | +| SH1106 (I2C) | Monochrome OLED | 128x64 | I2C | `QUANTUM_PAINTER_DRIVERS += sh1106_i2c` | +| Surface | Virtual | User-defined | None | `QUANTUM_PAINTER_DRIVERS += surface` | ## Quantum Painter Configuration :id=quantum-painter-config @@ -188,7 +190,8 @@ Writing /home/qmk/qmk_firmware/keyboards/my_keeb/generated/noto11.qff.c... -### ** Common: Standard TFT (SPI + D/C + RST) ** + +### ** LCD ** Most TFT display panels use a 5-pin interface -- SPI SCK, SPI MOSI, SPI CS, D/C, and RST pins. @@ -302,32 +305,6 @@ The maximum number of displays can be configured by changing the following in yo Native color format rgb888 is compatible with ILI9488 -#### ** SSD1351 ** - -Enabling support for the SSD1351 in Quantum Painter is done by adding the following to `rules.mk`: - -```make -QUANTUM_PAINTER_ENABLE = yes -QUANTUM_PAINTER_DRIVERS += ssd1351_spi -``` - -Creating a SSD1351 device in firmware can then be done with the following API: - -```c -painter_device_t qp_ssd1351_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode); -``` - -The device handle returned from the `qp_ssd1351_make_spi_device` function can be used to perform all other drawing operations. - -The maximum number of displays can be configured by changing the following in your `config.h` (default is 1): - -```c -// 3 displays: -#define SSD1351_NUM_DEVICES 3 -``` - -Native color format rgb565 is compatible with SSD1351 - #### ** ST7735 ** Enabling support for the ST7735 in Quantum Painter is done by adding the following to `rules.mk`: @@ -386,62 +363,139 @@ Native color format rgb565 is compatible with ST7789 -### ** Common: Surfaces ** +### ** OLED ** -Quantum Painter has surface drivers which are able to target a buffer in RAM. In general, surfaces keep track of the "dirty" region -- the area that has been drawn to since the last flush -- so that when transferring to the display they can transfer the minimal amount of data to achieve the end result. +OLED displays tend to use 5-pin SPI when at larger resolutions, or when using color -- SPI SCK, SPI MOSI, SPI CS, D/C, and RST pins. Smaller OLEDs may use I2C instead. -!> These generally require significant amounts of RAM, so at large sizes and/or higher bit depths, they may not be usable on all MCUs. +When using these displays, either `spi_master` or `i2c_master` must already be correctly configured for both the platform and panel you're building for. + +For SPI, the pin assignments for SPI CS, D/C, and RST are specified during device construction -- for I2C the panel's address is specified instead. -#### ** RGB565 Surface ** +#### ** SSD1351 ** -Enabling support for RGB565 surfaces in Quantum Painter is done by adding the following to `rules.mk`: +Enabling support for the SSD1351 in Quantum Painter is done by adding the following to `rules.mk`: ```make QUANTUM_PAINTER_ENABLE = yes -QUANTUM_PAINTER_DRIVERS += rgb565_surface +QUANTUM_PAINTER_DRIVERS += ssd1351_spi ``` -Creating a RGB565 surface in firmware can then be done with the following API: +Creating a SSD1351 device in firmware can then be done with the following API: ```c -painter_device_t qp_rgb565_make_surface(uint16_t panel_width, uint16_t panel_height, void *buffer); +painter_device_t qp_ssd1351_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode); ``` -The `buffer` is a user-supplied area of memory, and is assumed to be of the size `sizeof(uint16_t) * panel_width * panel_height`. +The device handle returned from the `qp_ssd1351_make_spi_device` function can be used to perform all other drawing operations. -The device handle returned from the `qp_rgb565_make_surface` function can be used to perform all other drawing operations. +The maximum number of displays can be configured by changing the following in your `config.h` (default is 1): + +```c +// 3 displays: +#define SSD1351_NUM_DEVICES 3 +``` + +Native color format rgb565 is compatible with SSD1351 + +#### ** SH1106 ** + +Enabling support for the SH1106 in Quantum Painter is done by adding the following to `rules.mk`: + +```make +QUANTUM_PAINTER_ENABLE = yes +# For SPI: +QUANTUM_PAINTER_DRIVERS += sh1106_spi +# For I2C: +QUANTUM_PAINTER_DRIVERS += sh1106_i2c +``` + +Creating a SH1106 device in firmware can then be done with the following APIs: + +```c +// SPI-based SH1106: +painter_device_t qp_sh1106_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode); +// I2C-based SH1106: +painter_device_t qp_sh1106_make_i2c_device(uint16_t panel_width, uint16_t panel_height, uint8_t i2c_address); +``` + +The device handle returned from the `qp_sh1106_make_???_device` function can be used to perform all other drawing operations. + +The maximum number of displays of each type can be configured by changing the following in your `config.h` (default is 1): + +```c +// 3 SPI displays: +#define SH1106_NUM_SPI_DEVICES 3 +// 3 I2C displays: +#define SH1106_NUM_I2C_DEVICES 3 +``` + +Native color format mono2 is compatible with SH1106 + + + +### ** Surface ** + +Quantum Painter has a surface driver which is able to target a buffer in RAM. In general, surfaces keep track of the "dirty" region -- the area that has been drawn to since the last flush -- so that when transferring to the display they can transfer the minimal amount of data to achieve the end result. + +!> These generally require significant amounts of RAM, so at large sizes and/or higher bit depths, they may not be usable on all MCUs. + +Enabling support for surfaces in Quantum Painter is done by adding the following to `rules.mk`: + +```make +QUANTUM_PAINTER_ENABLE = yes +QUANTUM_PAINTER_DRIVERS += surface +``` + +Creating a surface in firmware can then be done with the following APIs: + +```c +// 16bpp RGB565 surface: +painter_device_t qp_make_rgb565_surface(uint16_t panel_width, uint16_t panel_height, void *buffer); +// 1bpp monochrome surface: +painter_device_t qp_make_mono1bpp_surface(uint16_t panel_width, uint16_t panel_height, void *buffer); +``` + +The `buffer` is a user-supplied area of memory, which can be statically allocated using `SURFACE_REQUIRED_BUFFER_BYTE_SIZE`: + +```c +// Buffer required for a 240x80 16bpp surface: +uint8_t framebuffer[SURFACE_REQUIRED_BUFFER_BYTE_SIZE(240, 80, 16)]; +``` + +The device handle returned from the `qp_make_?????_surface` function can be used to perform all other drawing operations. Example: ```c static painter_device_t my_surface; -static uint16_t my_framebuffer[320 * 240]; // Allocate a buffer for a 320x240 RGB565 display +static uint8_t my_framebuffer[SURFACE_REQUIRED_BUFFER_BYTE_SIZE(240, 80, 16)]; // Allocate a buffer for a 16bpp 240x80 RGB565 display void keyboard_post_init_kb(void) { - my_surface = qp_rgb565_make_surface(320, 240, my_framebuffer); + my_surface = qp_rgb565_make_surface(240, 80, my_framebuffer); qp_init(my_surface, QP_ROTATION_0); + keyboard_post_init_user(); } ``` -The maximum number of RGB565 surfaces can be configured by changing the following in your `config.h` (default is 1): +The maximum number of surfaces can be configured by changing the following in your `config.h` (default is 1): ```c // 3 surfaces: -#define RGB565_SURFACE_NUM_DEVICES 3 +#define SURFACE_NUM_DEVICES 3 ``` -To transfer the contents of the RGB565 surface to another display, the following API can be invoked: +To transfer the contents of the surface to another display of the same pixel format, the following API can be invoked: ```c -bool qp_rgb565_surface_draw(painter_device_t surface, painter_device_t display, uint16_t x, uint16_t y); +bool qp_surface_draw(painter_device_t surface, painter_device_t display, uint16_t x, uint16_t y); ``` The `surface` is the surface to copy out from. The `display` is the target display to draw into. `x` and `y` are the target location to draw the surface pixel data. Under normal circumstances, the location should be consistent, as the dirty region is calculated with respect to the `x` and `y` coordinates -- changing those will result in partial, overlapping draws. -?> Calling `qp_flush()` on the surface resets its dirty region. Copying the surface contents to the display also automatically resets the dirty region. +!> The surface and display panel must have the same native pixel format. - +?> Calling `qp_flush()` on the surface resets its dirty region. Copying the surface contents to the display also automatically resets the dirty region. diff --git a/drivers/painter/comms/qp_comms_dummy.c b/drivers/painter/comms/qp_comms_dummy.c new file mode 100644 index 0000000000..2ed49d2232 --- /dev/null +++ b/drivers/painter/comms/qp_comms_dummy.c @@ -0,0 +1,34 @@ +// Copyright 2023 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later + +#ifdef QUANTUM_PAINTER_DUMMY_COMMS_ENABLE + +# include "qp_comms_dummy.h" + +static bool dummy_comms_init(painter_device_t device) { + // No-op. + return true; +} + +static bool dummy_comms_start(painter_device_t device) { + // No-op. + return true; +} + +static void dummy_comms_stop(painter_device_t device) { + // No-op. +} + +uint32_t dummy_comms_send(painter_device_t device, const void *data, uint32_t byte_count) { + // No-op. + return byte_count; +} + +painter_comms_vtable_t dummy_comms_vtable = { + // These are all effective no-op's because they're not actually needed. + .comms_init = dummy_comms_init, + .comms_start = dummy_comms_start, + .comms_stop = dummy_comms_stop, + .comms_send = dummy_comms_send}; + +#endif // QUANTUM_PAINTER_DUMMY_COMMS_ENABLE diff --git a/drivers/painter/comms/qp_comms_dummy.h b/drivers/painter/comms/qp_comms_dummy.h new file mode 100644 index 0000000000..b2d5d6eea5 --- /dev/null +++ b/drivers/painter/comms/qp_comms_dummy.h @@ -0,0 +1,11 @@ +// Copyright 2023 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#ifdef QUANTUM_PAINTER_DUMMY_COMMS_ENABLE + +# include "qp_internal.h" + +extern painter_comms_vtable_t dummy_comms_vtable; + +#endif // QUANTUM_PAINTER_DUMMY_COMMS_ENABLE diff --git a/drivers/painter/comms/qp_comms_i2c.c b/drivers/painter/comms/qp_comms_i2c.c new file mode 100644 index 0000000000..ec45ddfb3b --- /dev/null +++ b/drivers/painter/comms/qp_comms_i2c.c @@ -0,0 +1,94 @@ +// Copyright 2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later + +#ifdef QUANTUM_PAINTER_I2C_ENABLE + +# include "i2c_master.h" +# include "qp_comms_i2c.h" + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Helpers + +static uint32_t qp_comms_i2c_send_raw(painter_device_t device, const void *data, uint32_t byte_count) { + painter_driver_t * driver = (painter_driver_t *)device; + qp_comms_i2c_config_t *comms_config = (qp_comms_i2c_config_t *)driver->comms_config; + i2c_status_t res = i2c_transmit(comms_config->chip_address << 1, data, byte_count, I2C_TIMEOUT); + if (res < 0) { + return 0; + } + return byte_count; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Base I2C support + +bool qp_comms_i2c_init(painter_device_t device) { + i2c_init(); + return true; +} + +bool qp_comms_i2c_start(painter_device_t device) { + painter_driver_t * driver = (painter_driver_t *)device; + qp_comms_i2c_config_t *comms_config = (qp_comms_i2c_config_t *)driver->comms_config; + return i2c_start(comms_config->chip_address << 1) == I2C_STATUS_SUCCESS; +} + +uint32_t qp_comms_i2c_send_data(painter_device_t device, const void *data, uint32_t byte_count) { + return qp_comms_i2c_send_raw(device, data, byte_count); +} + +void qp_comms_i2c_stop(painter_device_t device) { + i2c_stop(); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Command+Data I2C support + +static const uint8_t cmd_byte = 0x00; +static const uint8_t data_byte = 0x40; + +void qp_comms_i2c_cmddata_send_command(painter_device_t device, uint8_t cmd) { + uint8_t buf[2] = {cmd_byte, cmd}; + qp_comms_i2c_send_raw(device, &buf, 2); +} + +uint32_t qp_comms_i2c_cmddata_send_data(painter_device_t device, const void *data, uint32_t byte_count) { + uint8_t buf[1 + byte_count]; + buf[0] = data_byte; + memcpy(&buf[1], data, byte_count); + if (qp_comms_i2c_send_raw(device, buf, sizeof(buf)) != sizeof(buf)) { + return 0; + } + return byte_count; +} + +void qp_comms_i2c_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) { + uint8_t buf[32]; + for (size_t i = 0; i < sequence_len;) { + uint8_t command = sequence[i]; + uint8_t delay = sequence[i + 1]; + uint8_t num_bytes = sequence[i + 2]; + buf[0] = cmd_byte; + buf[1] = command; + memcpy(&buf[2], &sequence[i + 3], num_bytes); + qp_comms_i2c_send_raw(device, buf, num_bytes + 2); + if (delay > 0) { + wait_ms(delay); + } + i += (3 + num_bytes); + } +} + +const painter_comms_with_command_vtable_t i2c_comms_cmddata_vtable = { + .base = + { + .comms_init = qp_comms_i2c_init, + .comms_start = qp_comms_i2c_start, + .comms_send = qp_comms_i2c_cmddata_send_data, + .comms_stop = qp_comms_i2c_stop, + }, + .send_command = qp_comms_i2c_cmddata_send_command, + .bulk_command_sequence = qp_comms_i2c_bulk_command_sequence, +}; + +#endif // QUANTUM_PAINTER_I2C_ENABLE diff --git a/drivers/painter/comms/qp_comms_i2c.h b/drivers/painter/comms/qp_comms_i2c.h new file mode 100644 index 0000000000..70083d6526 --- /dev/null +++ b/drivers/painter/comms/qp_comms_i2c.h @@ -0,0 +1,28 @@ +// Copyright 2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#ifdef QUANTUM_PAINTER_I2C_ENABLE + +# include + +# include "gpio.h" +# include "qp_internal.h" + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Base I2C support + +typedef struct qp_comms_i2c_config_t { + uint8_t chip_address; +} qp_comms_i2c_config_t; + +bool qp_comms_i2c_init(painter_device_t device); +bool qp_comms_i2c_start(painter_device_t device); +uint32_t qp_comms_i2c_send_data(painter_device_t device, const void* data, uint32_t byte_count); +void qp_comms_i2c_stop(painter_device_t device); + +extern const painter_comms_with_command_vtable_t i2c_comms_cmddata_vtable; + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +#endif // QUANTUM_PAINTER_I2C_ENABLE diff --git a/drivers/painter/comms/qp_comms_spi.c b/drivers/painter/comms/qp_comms_spi.c index 7534e844d8..9f52bc7d1f 100644 --- a/drivers/painter/comms/qp_comms_spi.c +++ b/drivers/painter/comms/qp_comms_spi.c @@ -105,13 +105,21 @@ void qp_comms_spi_dc_reset_send_command(painter_device_t device, uint8_t cmd) { } void qp_comms_spi_dc_reset_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) { + painter_driver_t * driver = (painter_driver_t *)device; + qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config; for (size_t i = 0; i < sequence_len;) { uint8_t command = sequence[i]; uint8_t delay = sequence[i + 1]; uint8_t num_bytes = sequence[i + 2]; qp_comms_spi_dc_reset_send_command(device, command); if (num_bytes > 0) { - qp_comms_spi_dc_reset_send_data(device, &sequence[i + 3], num_bytes); + if (comms_config->command_params_uses_command_pin) { + for (uint8_t j = 0; j < num_bytes; j++) { + qp_comms_spi_dc_reset_send_command(device, sequence[i + 3 + j]); + } + } else { + qp_comms_spi_dc_reset_send_data(device, &sequence[i + 3], num_bytes); + } } if (delay > 0) { wait_ms(delay); diff --git a/drivers/painter/comms/qp_comms_spi.h b/drivers/painter/comms/qp_comms_spi.h index b3da86d573..ff323c3c10 100644 --- a/drivers/painter/comms/qp_comms_spi.h +++ b/drivers/painter/comms/qp_comms_spi.h @@ -1,6 +1,5 @@ // Copyright 2021 Nick Brassel (@tzarc) // SPDX-License-Identifier: GPL-2.0-or-later - #pragma once #ifdef QUANTUM_PAINTER_SPI_ENABLE @@ -36,6 +35,7 @@ typedef struct qp_comms_spi_dc_reset_config_t { qp_comms_spi_config_t spi_config; pin_t dc_pin; pin_t reset_pin; + bool command_params_uses_command_pin; // keep D/C held low when sending command sequences for data bytes } qp_comms_spi_dc_reset_config_t; void qp_comms_spi_dc_reset_send_command(painter_device_t device, uint8_t cmd); diff --git a/drivers/painter/gc9a01/qp_gc9a01.c b/drivers/painter/gc9a01/qp_gc9a01.c index a2eb2cf57c..fe6fa7a9d0 100644 --- a/drivers/painter/gc9a01/qp_gc9a01.c +++ b/drivers/painter/gc9a01/qp_gc9a01.c @@ -2,7 +2,6 @@ // Copyright 2023 Nick Brassel (@tzarc) // SPDX-License-Identifier: GPL-2.0-or-later -#include #include "qp_internal.h" #include "qp_comms.h" #include "qp_gc9a01.h" @@ -135,13 +134,14 @@ painter_device_t qp_gc9a01_make_spi_device(uint16_t panel_width, uint16_t panel_ driver->base.offset_y = 0; // SPI and other pin configuration - driver->base.comms_config = &driver->spi_dc_reset_config; - driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin; - driver->spi_dc_reset_config.spi_config.divisor = spi_divisor; - driver->spi_dc_reset_config.spi_config.lsb_first = false; - driver->spi_dc_reset_config.spi_config.mode = spi_mode; - driver->spi_dc_reset_config.dc_pin = dc_pin; - driver->spi_dc_reset_config.reset_pin = reset_pin; + driver->base.comms_config = &driver->spi_dc_reset_config; + driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin; + driver->spi_dc_reset_config.spi_config.divisor = spi_divisor; + driver->spi_dc_reset_config.spi_config.lsb_first = false; + driver->spi_dc_reset_config.spi_config.mode = spi_mode; + driver->spi_dc_reset_config.dc_pin = dc_pin; + driver->spi_dc_reset_config.reset_pin = reset_pin; + driver->spi_dc_reset_config.command_params_uses_command_pin = false; if (!qp_internal_register_device((painter_device_t)driver)) { memset(driver, 0, sizeof(tft_panel_dc_reset_painter_device_t)); diff --git a/drivers/painter/gc9a01/qp_gc9a01.h b/drivers/painter/gc9a01/qp_gc9a01.h index e2b1939564..31a3804b50 100644 --- a/drivers/painter/gc9a01/qp_gc9a01.h +++ b/drivers/painter/gc9a01/qp_gc9a01.h @@ -1,6 +1,5 @@ // Copyright 2021 Paul Cotter (@gr1mr3aver) // SPDX-License-Identifier: GPL-2.0-or-later - #pragma once #include "gpio.h" diff --git a/drivers/painter/gc9a01/qp_gc9a01_opcodes.h b/drivers/painter/gc9a01/qp_gc9a01_opcodes.h index 6ff4efe7a8..828e42752b 100644 --- a/drivers/painter/gc9a01/qp_gc9a01_opcodes.h +++ b/drivers/painter/gc9a01/qp_gc9a01_opcodes.h @@ -1,6 +1,5 @@ // Copyright 2021 Paul Cotter (@gr1mr3aver) // SPDX-License-Identifier: GPL-2.0-or-later - #pragma once //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/drivers/painter/generic/qp_rgb565_surface.c b/drivers/painter/generic/qp_rgb565_surface.c deleted file mode 100644 index 9c283e0687..0000000000 --- a/drivers/painter/generic/qp_rgb565_surface.c +++ /dev/null @@ -1,284 +0,0 @@ -// Copyright 2022 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#include "color.h" -#include "qp_rgb565_surface.h" -#include "qp_draw.h" - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Common - -// Device definition -typedef struct rgb565_surface_painter_device_t { - painter_driver_t base; // must be first, so it can be cast to/from the painter_device_t* type - - // The target buffer - uint16_t *buffer; - - // Manually manage the viewport for streaming pixel data to the display - uint16_t viewport_l; - uint16_t viewport_t; - uint16_t viewport_r; - uint16_t viewport_b; - - // Current write location to the display when streaming pixel data - uint16_t pixdata_x; - uint16_t pixdata_y; - - // Maintain a dirty region so we can stream only what we need - bool is_dirty; - uint16_t dirty_l; - uint16_t dirty_t; - uint16_t dirty_r; - uint16_t dirty_b; - -} rgb565_surface_painter_device_t; - -// Driver storage -rgb565_surface_painter_device_t surface_drivers[RGB565_SURFACE_NUM_DEVICES] = {0}; - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Helpers - -static inline void increment_pixdata_location(rgb565_surface_painter_device_t *surface) { - // Increment the X-position - surface->pixdata_x++; - - // If the x-coord has gone past the right-side edge, loop it back around and increment the y-coord - if (surface->pixdata_x > surface->viewport_r) { - surface->pixdata_x = surface->viewport_l; - surface->pixdata_y++; - } - - // If the y-coord has gone past the bottom, loop it back to the top - if (surface->pixdata_y > surface->viewport_b) { - surface->pixdata_y = surface->viewport_t; - } -} - -static inline void setpixel(rgb565_surface_painter_device_t *surface, uint16_t x, uint16_t y, uint16_t rgb565) { - // Skip messing with the dirty info if the original value already matches - if (surface->buffer[y * surface->base.panel_width + x] != rgb565) { - // Maintain dirty region - if (surface->dirty_l > x) { - surface->dirty_l = x; - } - if (surface->dirty_r < x) { - surface->dirty_r = x; - } - if (surface->dirty_t > y) { - surface->dirty_t = y; - } - if (surface->dirty_b < y) { - surface->dirty_b = y; - } - - // Always dirty after a setpixel - surface->is_dirty = true; - - // Update the pixel data in the buffer - surface->buffer[y * surface->base.panel_width + x] = rgb565; - } -} - -static inline void append_pixel(rgb565_surface_painter_device_t *surface, uint16_t rgb565) { - setpixel(surface, surface->pixdata_x, surface->pixdata_y, rgb565); - increment_pixdata_location(surface); -} - -static inline void stream_pixdata(rgb565_surface_painter_device_t *surface, const uint16_t *data, uint32_t native_pixel_count) { - for (uint32_t pixel_counter = 0; pixel_counter < native_pixel_count; ++pixel_counter) { - append_pixel(surface, data[pixel_counter]); - } -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Driver vtable - -static bool qp_rgb565_surface_init(painter_device_t device, painter_rotation_t rotation) { - painter_driver_t * driver = (painter_driver_t *)device; - rgb565_surface_painter_device_t *surface = (rgb565_surface_painter_device_t *)driver; - memset(surface->buffer, 0, driver->panel_width * driver->panel_height * driver->native_bits_per_pixel / 8); - return true; -} - -static bool qp_rgb565_surface_power(painter_device_t device, bool power_on) { - // No-op. - return true; -} - -static bool qp_rgb565_surface_clear(painter_device_t device) { - painter_driver_t *driver = (painter_driver_t *)device; - driver->driver_vtable->init(device, driver->rotation); // Re-init the surface - return true; -} - -static bool qp_rgb565_surface_flush(painter_device_t device) { - painter_driver_t * driver = (painter_driver_t *)device; - rgb565_surface_painter_device_t *surface = (rgb565_surface_painter_device_t *)driver; - surface->dirty_l = surface->dirty_t = UINT16_MAX; - surface->dirty_r = surface->dirty_b = 0; - surface->is_dirty = false; - return true; -} - -static bool qp_rgb565_surface_viewport(painter_device_t device, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) { - painter_driver_t * driver = (painter_driver_t *)device; - rgb565_surface_painter_device_t *surface = (rgb565_surface_painter_device_t *)driver; - - // Set the viewport locations - surface->viewport_l = left; - surface->viewport_t = top; - surface->viewport_r = right; - surface->viewport_b = bottom; - - // Reset the write location to the top left - surface->pixdata_x = left; - surface->pixdata_y = top; - return true; -} - -// Stream pixel data to the current write position in GRAM -static bool qp_rgb565_surface_pixdata(painter_device_t device, const void *pixel_data, uint32_t native_pixel_count) { - painter_driver_t * driver = (painter_driver_t *)device; - rgb565_surface_painter_device_t *surface = (rgb565_surface_painter_device_t *)driver; - stream_pixdata(surface, (const uint16_t *)pixel_data, native_pixel_count); - return true; -} - -// Pixel colour conversion -static bool qp_rgb565_surface_palette_convert_rgb565_swapped(painter_device_t device, int16_t palette_size, qp_pixel_t *palette) { - for (int16_t i = 0; i < palette_size; ++i) { - RGB rgb = hsv_to_rgb_nocie((HSV){palette[i].hsv888.h, palette[i].hsv888.s, palette[i].hsv888.v}); - uint16_t rgb565 = (((uint16_t)rgb.r) >> 3) << 11 | (((uint16_t)rgb.g) >> 2) << 5 | (((uint16_t)rgb.b) >> 3); - palette[i].rgb565 = __builtin_bswap16(rgb565); - } - return true; -} - -// Append pixels to the target location, keyed by the pixel index -static bool qp_rgb565_surface_append_pixels_rgb565(painter_device_t device, uint8_t *target_buffer, qp_pixel_t *palette, uint32_t pixel_offset, uint32_t pixel_count, uint8_t *palette_indices) { - uint16_t *buf = (uint16_t *)target_buffer; - for (uint32_t i = 0; i < pixel_count; ++i) { - buf[pixel_offset + i] = palette[palette_indices[i]].rgb565; - } - return true; -} - -// Append data to the target location -static bool qp_rgb565_surface_append_pixdata(painter_device_t device, uint8_t *target_buffer, uint32_t pixdata_offset, uint8_t pixdata_byte) { - target_buffer[pixdata_offset] = pixdata_byte; - return true; -} - -const painter_driver_vtable_t rgb565_surface_driver_vtable = { - .init = qp_rgb565_surface_init, - .power = qp_rgb565_surface_power, - .clear = qp_rgb565_surface_clear, - .flush = qp_rgb565_surface_flush, - .pixdata = qp_rgb565_surface_pixdata, - .viewport = qp_rgb565_surface_viewport, - .palette_convert = qp_rgb565_surface_palette_convert_rgb565_swapped, - .append_pixels = qp_rgb565_surface_append_pixels_rgb565, - .append_pixdata = qp_rgb565_surface_append_pixdata, -}; - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Comms vtable - -static bool qp_rgb565_surface_comms_init(painter_device_t device) { - // No-op. - return true; -} -static bool qp_rgb565_surface_comms_start(painter_device_t device) { - // No-op. - return true; -} -static void qp_rgb565_surface_comms_stop(painter_device_t device) { - // No-op. -} -uint32_t qp_rgb565_surface_comms_send(painter_device_t device, const void *data, uint32_t byte_count) { - // No-op. - return byte_count; -} - -painter_comms_vtable_t rgb565_surface_driver_comms_vtable = { - // These are all effective no-op's because they're not actually needed. - .comms_init = qp_rgb565_surface_comms_init, - .comms_start = qp_rgb565_surface_comms_start, - .comms_stop = qp_rgb565_surface_comms_stop, - .comms_send = qp_rgb565_surface_comms_send}; - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Factory function for creating a handle to an rgb565 surface - -painter_device_t qp_rgb565_make_surface(uint16_t panel_width, uint16_t panel_height, void *buffer) { - for (uint32_t i = 0; i < RGB565_SURFACE_NUM_DEVICES; ++i) { - rgb565_surface_painter_device_t *driver = &surface_drivers[i]; - if (!driver->base.driver_vtable) { - driver->base.driver_vtable = &rgb565_surface_driver_vtable; - driver->base.comms_vtable = &rgb565_surface_driver_comms_vtable; - driver->base.native_bits_per_pixel = 16; // RGB565 - driver->base.panel_width = panel_width; - driver->base.panel_height = panel_height; - driver->base.rotation = QP_ROTATION_0; - driver->base.offset_x = 0; - driver->base.offset_y = 0; - driver->buffer = (uint16_t *)buffer; - return (painter_device_t)driver; - } - } - return NULL; -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Drawing routine to copy out the dirty region and send it to another device - -bool qp_rgb565_surface_draw(painter_device_t surface, painter_device_t display, uint16_t x, uint16_t y) { - painter_driver_t * surface_driver = (painter_driver_t *)surface; - rgb565_surface_painter_device_t *surface_handle = (rgb565_surface_painter_device_t *)surface_driver; - - // If we're not dirty... we're done. - if (!surface_handle->is_dirty) { - return true; - } - - // Set the target drawing area - bool ok = qp_viewport(display, x + surface_handle->dirty_l, y + surface_handle->dirty_t, x + surface_handle->dirty_r, y + surface_handle->dirty_b); - if (!ok) { - return false; - } - - // Housekeeping of the amount of pixels to transfer - uint32_t total_pixel_count = QUANTUM_PAINTER_PIXDATA_BUFFER_SIZE / sizeof(uint16_t); - uint32_t pixel_counter = 0; - uint16_t *target_buffer = (uint16_t *)qp_internal_global_pixdata_buffer; - - // Fill the global pixdata area so that we can start transferring to the panel - for (uint16_t y = surface_handle->dirty_t; y <= surface_handle->dirty_b; ++y) { - for (uint16_t x = surface_handle->dirty_l; x <= surface_handle->dirty_r; ++x) { - // Update the target buffer - target_buffer[pixel_counter++] = surface_handle->buffer[y * surface_handle->base.panel_width + x]; - - // If we've accumulated enough data, send it - if (pixel_counter == total_pixel_count) { - ok = qp_pixdata(display, qp_internal_global_pixdata_buffer, pixel_counter); - if (!ok) { - return false; - } - // Reset the counter - pixel_counter = 0; - } - } - } - - // If there's any leftover data, send it - if (pixel_counter > 0) { - ok = qp_pixdata(display, qp_internal_global_pixdata_buffer, pixel_counter); - if (!ok) { - return false; - } - } - - // Clear the dirty info for the surface - return qp_flush(surface); -} diff --git a/drivers/painter/generic/qp_rgb565_surface.h b/drivers/painter/generic/qp_rgb565_surface.h deleted file mode 100644 index 19e919bb91..0000000000 --- a/drivers/painter/generic/qp_rgb565_surface.h +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2022 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#include "qp_internal.h" - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Quantum Painter RGB565 surface configurables (add to your keyboard's config.h) - -#ifndef RGB565_SURFACE_NUM_DEVICES -/** - * @def This controls the maximum number of surface devices that Quantum Painter can use at any one time. - * Increasing this number allows for multiple framebuffers to be used. Each requires its own RAM allocation. - */ -# define RGB565_SURFACE_NUM_DEVICES 1 -#endif - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Forward declarations - -#ifdef QUANTUM_PAINTER_RGB565_SURFACE_ENABLE -/** - * Factory method for an RGB565 surface (aka framebuffer). - * - * @param panel_width[in] the width of the display panel - * @param panel_height[in] the height of the display panel - * @param buffer[in] pointer to a preallocated buffer of size `(sizeof(uint16_t) * panel_width * panel_height)` - * @return the device handle used with all drawing routines in Quantum Painter - */ -painter_device_t qp_rgb565_make_surface(uint16_t panel_width, uint16_t panel_height, void *buffer); - -/** - * Helper method to draw the dirty contents of the framebuffer to the target device. - * - * After successful completion, the dirty area is reset. - * - * @param surface[in] the surface to copy from - * @param display[in] the display to copy into - * @param x[in] the x-location of the original position of the framebuffer - * @param y[in] the y-location of the original position of the framebuffer - * @return whether the draw operation completed successfully - */ -bool qp_rgb565_surface_draw(painter_device_t surface, painter_device_t display, uint16_t x, uint16_t y); -#endif // QUANTUM_PAINTER_RGB565_SURFACE_ENABLE diff --git a/drivers/painter/generic/qp_surface.h b/drivers/painter/generic/qp_surface.h new file mode 100644 index 0000000000..a291793649 --- /dev/null +++ b/drivers/painter/generic/qp_surface.h @@ -0,0 +1,67 @@ +// Copyright 2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include "qp_internal.h" + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Quantum Painter surface helpers + +// Helper for determining buffer size required for a surface +#define SURFACE_REQUIRED_BUFFER_BYTE_SIZE(w, h, bpp) ((((w) * (h) * (bpp)) + 7) / 8) + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Quantum Painter surface configurables (add to your keyboard's config.h) + +#ifndef SURFACE_NUM_DEVICES +/** + * @def This controls the maximum number of surface devices that Quantum Painter can use at any one time. + * Increasing this number allows for multiple framebuffers to be used. Each requires its own RAM allocation. + */ +# define SURFACE_NUM_DEVICES 1 +#endif + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Forward declarations + +#ifdef QUANTUM_PAINTER_SURFACE_ENABLE + +// Surface struct +struct surface_painter_device_t; +typedef struct surface_painter_device_t surface_painter_device_t; + +/** + * Factory method for an RGB565 surface (aka framebuffer). + * + * @param panel_width[in] the width of the display panel + * @param panel_height[in] the height of the display panel + * @param buffer[in] pointer to a preallocated uint8_t buffer of size `SURFACE_REQUIRED_BUFFER_BYTE_SIZE(panel_width, panel_height, 16)` + * @return the device handle used with all drawing routines in Quantum Painter + */ +painter_device_t qp_make_rgb565_surface(uint16_t panel_width, uint16_t panel_height, void *buffer); + +/** + * Factory method for a 1bpp monochrome surface (aka framebuffer). + * + * @param panel_width[in] the width of the display panel + * @param panel_height[in] the height of the display panel + * @param buffer[in] pointer to a preallocated uint8_t buffer of size `SURFACE_REQUIRED_BUFFER_BYTE_SIZE(panel_width, panel_height, 1)` + * @return the device handle used with all drawing routines in Quantum Painter + */ +painter_device_t qp_make_mono1bpp_surface(uint16_t panel_width, uint16_t panel_height, void *buffer); + +/** + * Helper method to draw the contents of the framebuffer to the target device. + * + * After successful completion, the dirty area is reset. + * + * @param surface[in] the surface to copy from + * @param target[in] the target device to copy into + * @param x[in] the x-location of the original position of the framebuffer + * @param y[in] the y-location of the original position of the framebuffer + * @param entire_surface[in] whether the entire surface should be drawn, instead of just the dirty region + * @return whether the draw operation completed successfully + */ +bool qp_surface_draw(painter_device_t surface, painter_device_t target, uint16_t x, uint16_t y, bool entire_surface); + +#endif // QUANTUM_PAINTER_SURFACE_ENABLE diff --git a/drivers/painter/generic/qp_surface_common.c b/drivers/painter/generic/qp_surface_common.c new file mode 100644 index 0000000000..2da96c73ac --- /dev/null +++ b/drivers/painter/generic/qp_surface_common.c @@ -0,0 +1,141 @@ +// Copyright 2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "color.h" +#include "qp_draw.h" +#include "qp_surface_internal.h" + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Driver storage + +surface_painter_device_t surface_drivers[SURFACE_NUM_DEVICES] = {0}; + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Helpers + +void qp_surface_increment_pixdata_location(surface_viewport_data_t *viewport) { + // Increment the X-position + viewport->pixdata_x++; + + // If the x-coord has gone past the right-side edge, loop it back around and increment the y-coord + if (viewport->pixdata_x > viewport->viewport_r) { + viewport->pixdata_x = viewport->viewport_l; + viewport->pixdata_y++; + } + + // If the y-coord has gone past the bottom, loop it back to the top + if (viewport->pixdata_y > viewport->viewport_b) { + viewport->pixdata_y = viewport->viewport_t; + } +} + +void qp_surface_update_dirty(surface_dirty_data_t *dirty, uint16_t x, uint16_t y) { + // Maintain dirty region + if (dirty->l > x) { + dirty->l = x; + dirty->is_dirty = true; + } + if (dirty->r < x) { + dirty->r = x; + dirty->is_dirty = true; + } + if (dirty->t > y) { + dirty->t = y; + dirty->is_dirty = true; + } + if (dirty->b < y) { + dirty->b = y; + dirty->is_dirty = true; + } +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Driver vtable + +bool qp_surface_init(painter_device_t device, painter_rotation_t rotation) { + painter_driver_t * driver = (painter_driver_t *)device; + surface_painter_device_t *surface = (surface_painter_device_t *)driver; + memset(surface->buffer, 0, SURFACE_REQUIRED_BUFFER_BYTE_SIZE(driver->panel_width, driver->panel_height, driver->native_bits_per_pixel)); + + surface->dirty.l = 0; + surface->dirty.t = 0; + surface->dirty.r = surface->base.panel_width - 1; + surface->dirty.b = surface->base.panel_height - 1; + surface->dirty.is_dirty = true; + + return true; +} + +bool qp_surface_power(painter_device_t device, bool power_on) { + // No-op. + return true; +} + +bool qp_surface_clear(painter_device_t device) { + painter_driver_t *driver = (painter_driver_t *)device; + driver->driver_vtable->init(device, driver->rotation); // Re-init the surface + return true; +} + +bool qp_surface_flush(painter_device_t device) { + painter_driver_t * driver = (painter_driver_t *)device; + surface_painter_device_t *surface = (surface_painter_device_t *)driver; + surface->dirty.l = surface->dirty.t = UINT16_MAX; + surface->dirty.r = surface->dirty.b = 0; + surface->dirty.is_dirty = false; + return true; +} + +bool qp_surface_viewport(painter_device_t device, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) { + painter_driver_t * driver = (painter_driver_t *)device; + surface_painter_device_t *surface = (surface_painter_device_t *)driver; + + // Set the viewport locations + surface->viewport.viewport_l = left; + surface->viewport.viewport_t = top; + surface->viewport.viewport_r = right; + surface->viewport.viewport_b = bottom; + + // Reset the write location to the top left + surface->viewport.pixdata_x = left; + surface->viewport.pixdata_y = top; + return true; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Drawing routine to copy out the dirty region and send it to another device + +bool qp_surface_draw(painter_device_t surface, painter_device_t target, uint16_t x, uint16_t y, bool entire_surface) { + painter_driver_t * surface_driver = (painter_driver_t *)surface; + surface_painter_device_t *surface_handle = (surface_painter_device_t *)surface_driver; + painter_driver_t * target_driver = (painter_driver_t *)target; + + // If we're not dirty... we're done. + if (!surface_handle->dirty.is_dirty) { + qp_dprintf("qp_surface_draw: ok (not dirty, skipping)\n"); + return true; + } + + // If we have incompatible bit depths, drop out + if (surface_driver->native_bits_per_pixel != target_driver->native_bits_per_pixel) { + qp_dprintf("qp_surface_draw: fail (incompatible bpp: surface=%d, target=%d)\n", (int)surface_driver->native_bits_per_pixel, (int)target_driver->native_bits_per_pixel); + return false; + } + + // Offload to the pixdata transfer function + surface_painter_driver_vtable_t *vtable = (surface_painter_driver_vtable_t *)surface_driver->driver_vtable; + bool ok = vtable->target_pixdata_transfer(surface_driver, target_driver, x, y, entire_surface); + if (!ok) { + qp_dprintf("qp_surface_draw: fail (could not transfer pixel data)\n"); + return false; + } + + // Clear the dirty info for the surface + ok = qp_flush(surface); + if (!ok) { + qp_dprintf("qp_surface_draw: fail (could not flush)\n"); + return false; + } + qp_dprintf("qp_surface_draw: ok\n"); + return true; +} diff --git a/drivers/painter/generic/qp_surface_internal.h b/drivers/painter/generic/qp_surface_internal.h new file mode 100644 index 0000000000..71f82e924d --- /dev/null +++ b/drivers/painter/generic/qp_surface_internal.h @@ -0,0 +1,119 @@ +// Copyright 2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#ifdef QUANTUM_PAINTER_SURFACE_ENABLE + +# include "qp_surface.h" + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Internal declarations + +// Surface vtable +typedef struct surface_painter_driver_vtable_t { + painter_driver_vtable_t base; // must be first, so it can be cast to/from the painter_driver_vtable_t* type + + bool (*target_pixdata_transfer)(painter_driver_t *surface_driver, painter_driver_t *target_driver, uint16_t x, uint16_t y, bool entire_surface); +} surface_painter_driver_vtable_t; + +typedef struct surface_dirty_data_t { + bool is_dirty; + uint16_t l; + uint16_t t; + uint16_t r; + uint16_t b; +} surface_dirty_data_t; + +typedef struct surface_viewport_data_t { + // Manually manage the viewport for streaming pixel data to the display + uint16_t viewport_l; + uint16_t viewport_t; + uint16_t viewport_r; + uint16_t viewport_b; + + // Current write location to the display when streaming pixel data + uint16_t pixdata_x; + uint16_t pixdata_y; +} surface_viewport_data_t; + +// Surface struct +typedef struct surface_painter_device_t { + painter_driver_t base; // must be first, so it can be cast to/from the painter_device_t* type + + // The target buffer + union { + void * buffer; + uint8_t * u8buffer; + uint16_t *u16buffer; + }; + + // Manually manage the viewport for streaming pixel data to the display + surface_viewport_data_t viewport; + + // Maintain a dirty region so we can stream only what we need + surface_dirty_data_t dirty; +} surface_painter_device_t; + +/** + * Factory method for an RGB565 surface (aka framebuffer). Accepts an external device table. + * + * @param device_table[in] the table of devices to use for instantiation + * @param device_table_len[in] the length of the table of devices + * @param panel_width[in] the width of the display panel + * @param panel_height[in] the height of the display panel + * @param buffer[in] pointer to a preallocated uint8_t buffer of size `SURFACE_REQUIRED_BUFFER_BYTE_SIZE(panel_width, panel_height, 16)` + * @return the device handle used with all drawing routines in Quantum Painter + */ +painter_device_t qp_make_rgb565_surface_advanced(surface_painter_device_t *device_table, size_t device_table_len, uint16_t panel_width, uint16_t panel_height, void *buffer); + +/** + * Factory method for a 1bpp monochrome surface (aka framebuffer). + * + * @param device_table[in] the table of devices to use for instantiation + * @param device_table_len[in] the length of the table of devices + * @param panel_width[in] the width of the display panel + * @param panel_height[in] the height of the display panel + * @param buffer[in] pointer to a preallocated uint8_t buffer of size `SURFACE_REQUIRED_BUFFER_BYTE_SIZE(panel_width, panel_height, 16)` + * @return the device handle used with all drawing routines in Quantum Painter + */ +painter_device_t qp_make_mono1bpp_surface_advanced(surface_painter_device_t *device_table, size_t device_table_len, uint16_t panel_width, uint16_t panel_height, void *buffer); + +// Driver storage +extern surface_painter_device_t surface_drivers[SURFACE_NUM_DEVICES]; + +// Surface common APIs +bool qp_surface_init(painter_device_t device, painter_rotation_t rotation); +bool qp_surface_power(painter_device_t device, bool power_on); +bool qp_surface_clear(painter_device_t device); +bool qp_surface_flush(painter_device_t device); +bool qp_surface_viewport(painter_device_t device, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom); +void qp_surface_increment_pixdata_location(surface_viewport_data_t *viewport); +void qp_surface_update_dirty(surface_dirty_data_t *dirty, uint16_t x, uint16_t y); + +#endif // QUANTUM_PAINTER_SURFACE_ENABLE + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Factory functions for creating a handle to a surface + +#define SURFACE_FACTORY_FUNCTION_IMPL(function_name, vtable, bpp) \ + painter_device_t(function_name##_advanced)(surface_painter_device_t * device_table, size_t device_table_len, uint16_t panel_width, uint16_t panel_height, void *buffer) { \ + for (uint32_t i = 0; i < device_table_len; ++i) { \ + surface_painter_device_t *driver = &device_table[i]; \ + if (!driver->base.driver_vtable) { \ + driver->base.driver_vtable = (painter_driver_vtable_t *)&(vtable); \ + driver->base.native_bits_per_pixel = (bpp); \ + driver->base.comms_vtable = &dummy_comms_vtable; \ + driver->base.panel_width = panel_width; \ + driver->base.panel_height = panel_height; \ + driver->base.rotation = QP_ROTATION_0; \ + driver->base.offset_x = 0; \ + driver->base.offset_y = 0; \ + driver->buffer = buffer; \ + return (painter_device_t)driver; \ + } \ + } \ + return NULL; \ + } \ + painter_device_t(function_name)(uint16_t panel_width, uint16_t panel_height, void *buffer) { \ + return (function_name##_advanced)(surface_drivers, SURFACE_NUM_DEVICES, panel_width, panel_height, buffer); \ + } diff --git a/drivers/painter/generic/qp_surface_mono1bpp.c b/drivers/painter/generic/qp_surface_mono1bpp.c new file mode 100644 index 0000000000..c66b56519d --- /dev/null +++ b/drivers/painter/generic/qp_surface_mono1bpp.c @@ -0,0 +1,113 @@ +// Copyright 2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later + +#ifdef QUANTUM_PAINTER_SURFACE_ENABLE + +# include "color.h" +# include "qp_draw.h" +# include "qp_surface_internal.h" +# include "qp_comms_dummy.h" + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Surface driver impl: mono1bpp + +static inline void setpixel_mono1bpp(surface_painter_device_t *surface, uint16_t x, uint16_t y, bool mono_pixel) { + uint16_t w = surface->base.panel_width; + uint16_t h = surface->base.panel_height; + + // Drop out if it's off-screen + if (x >= w || y >= h) { + return; + } + + // Figure out which location needs to be updated + uint32_t pixel_num = y * w + x; + uint32_t byte_offset = pixel_num / 8; + uint8_t bit_offset = pixel_num % 8; + bool curr_val = (surface->u8buffer[byte_offset] & (1 << bit_offset)) ? true : false; + + // Skip messing with the dirty info if the original value already matches + if (curr_val != mono_pixel) { + // Update the dirty region + qp_surface_update_dirty(&surface->dirty, x, y); + + // Update the pixel data in the buffer + if (mono_pixel) { + surface->u8buffer[byte_offset] |= (1 << bit_offset); + } else { + surface->u8buffer[byte_offset] &= ~(1 << bit_offset); + } + } +} + +static inline void append_pixel_mono1bpp(surface_painter_device_t *surface, bool mono_pixel) { + setpixel_mono1bpp(surface, surface->viewport.pixdata_x, surface->viewport.pixdata_y, mono_pixel); + qp_surface_increment_pixdata_location(&surface->viewport); +} + +static inline void stream_pixdata_mono1bpp(surface_painter_device_t *surface, const uint8_t *data, uint32_t native_pixel_count) { + for (uint32_t pixel_counter = 0; pixel_counter < native_pixel_count; ++pixel_counter) { + uint32_t byte_offset = pixel_counter / 8; + uint8_t bit_offset = pixel_counter % 8; + append_pixel_mono1bpp(surface, (data[byte_offset] & (1 << bit_offset)) ? true : false); + } +} + +// Stream pixel data to the current write position in GRAM +static bool qp_surface_pixdata_mono1bpp(painter_device_t device, const void *pixel_data, uint32_t native_pixel_count) { + painter_driver_t * driver = (painter_driver_t *)device; + surface_painter_device_t *surface = (surface_painter_device_t *)driver; + stream_pixdata_mono1bpp(surface, (const uint8_t *)pixel_data, native_pixel_count); + return true; +} + +// Pixel colour conversion +static bool qp_surface_palette_convert_mono1bpp(painter_device_t device, int16_t palette_size, qp_pixel_t *palette) { + for (int16_t i = 0; i < palette_size; ++i) { + palette[i].mono = (palette[i].hsv888.v > 127) ? 1 : 0; + } + return true; +} + +// Append pixels to the target location, keyed by the pixel index +static bool qp_surface_append_pixels_mono1bpp(painter_device_t device, uint8_t *target_buffer, qp_pixel_t *palette, uint32_t pixel_offset, uint32_t pixel_count, uint8_t *palette_indices) { + for (uint32_t i = 0; i < pixel_count; ++i) { + uint32_t pixel_num = pixel_offset + i; + uint32_t byte_offset = pixel_num / 8; + uint8_t bit_offset = pixel_num % 8; + if (palette[palette_indices[i]].mono) { + target_buffer[byte_offset] |= (1 << bit_offset); + } else { + target_buffer[byte_offset] &= ~(1 << bit_offset); + } + } + return true; +} + +static bool mono1bpp_target_pixdata_transfer(painter_driver_t *surface_driver, painter_driver_t *target_driver, uint16_t x, uint16_t y, bool entire_surface) { + return false; // Not yet supported. +} + +static bool qp_surface_append_pixdata_mono1bpp(painter_device_t device, uint8_t *target_buffer, uint32_t pixdata_offset, uint8_t pixdata_byte) { + return false; // Just use 1bpp images. +} + +const surface_painter_driver_vtable_t mono1bpp_surface_driver_vtable = { + .base = + { + .init = qp_surface_init, + .power = qp_surface_power, + .clear = qp_surface_clear, + .flush = qp_surface_flush, + .pixdata = qp_surface_pixdata_mono1bpp, + .viewport = qp_surface_viewport, + .palette_convert = qp_surface_palette_convert_mono1bpp, + .append_pixels = qp_surface_append_pixels_mono1bpp, + .append_pixdata = qp_surface_append_pixdata_mono1bpp, + }, + .target_pixdata_transfer = mono1bpp_target_pixdata_transfer, +}; + +SURFACE_FACTORY_FUNCTION_IMPL(qp_make_mono1bpp_surface, mono1bpp_surface_driver_vtable, 1); + +#endif // QUANTUM_PAINTER_SURFACE_ENABLE diff --git a/drivers/painter/generic/qp_surface_rgb565.c b/drivers/painter/generic/qp_surface_rgb565.c new file mode 100644 index 0000000000..8883ed541d --- /dev/null +++ b/drivers/painter/generic/qp_surface_rgb565.c @@ -0,0 +1,145 @@ +// Copyright 2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later + +#ifdef QUANTUM_PAINTER_SURFACE_ENABLE + +# include "color.h" +# include "qp_draw.h" +# include "qp_surface_internal.h" +# include "qp_comms_dummy.h" + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Surface driver impl: rgb565 + +static inline void setpixel_rgb565(surface_painter_device_t *surface, uint16_t x, uint16_t y, uint16_t rgb565) { + uint16_t w = surface->base.panel_width; + uint16_t h = surface->base.panel_height; + + // Drop out if it's off-screen + if (x >= w || y >= h) { + return; + } + + // Skip messing with the dirty info if the original value already matches + if (surface->u16buffer[y * w + x] != rgb565) { + // Update the dirty region + qp_surface_update_dirty(&surface->dirty, x, y); + + // Update the pixel data in the buffer + surface->u16buffer[y * w + x] = rgb565; + } +} + +static inline void append_pixel_rgb565(surface_painter_device_t *surface, uint16_t rgb565) { + setpixel_rgb565(surface, surface->viewport.pixdata_x, surface->viewport.pixdata_y, rgb565); + qp_surface_increment_pixdata_location(&surface->viewport); +} + +static inline void stream_pixdata_rgb565(surface_painter_device_t *surface, const uint16_t *data, uint32_t native_pixel_count) { + for (uint32_t pixel_counter = 0; pixel_counter < native_pixel_count; ++pixel_counter) { + append_pixel_rgb565(surface, data[pixel_counter]); + } +} + +// Stream pixel data to the current write position in GRAM +static bool qp_surface_pixdata_rgb565(painter_device_t device, const void *pixel_data, uint32_t native_pixel_count) { + painter_driver_t * driver = (painter_driver_t *)device; + surface_painter_device_t *surface = (surface_painter_device_t *)driver; + stream_pixdata_rgb565(surface, (const uint16_t *)pixel_data, native_pixel_count); + return true; +} + +// Pixel colour conversion +static bool qp_surface_palette_convert_rgb565_swapped(painter_device_t device, int16_t palette_size, qp_pixel_t *palette) { + for (int16_t i = 0; i < palette_size; ++i) { + RGB rgb = hsv_to_rgb_nocie((HSV){palette[i].hsv888.h, palette[i].hsv888.s, palette[i].hsv888.v}); + uint16_t rgb565 = (((uint16_t)rgb.r) >> 3) << 11 | (((uint16_t)rgb.g) >> 2) << 5 | (((uint16_t)rgb.b) >> 3); + palette[i].rgb565 = __builtin_bswap16(rgb565); + } + return true; +} + +// Append pixels to the target location, keyed by the pixel index +static bool qp_surface_append_pixels_rgb565(painter_device_t device, uint8_t *target_buffer, qp_pixel_t *palette, uint32_t pixel_offset, uint32_t pixel_count, uint8_t *palette_indices) { + uint16_t *buf = (uint16_t *)target_buffer; + for (uint32_t i = 0; i < pixel_count; ++i) { + buf[pixel_offset + i] = palette[palette_indices[i]].rgb565; + } + return true; +} + +static bool rgb565_target_pixdata_transfer(painter_driver_t *surface_driver, painter_driver_t *target_driver, uint16_t x, uint16_t y, bool entire_surface) { + surface_painter_device_t *surface_handle = (surface_painter_device_t *)surface_driver; + + uint16_t l = entire_surface ? 0 : surface_handle->dirty.l; + uint16_t t = entire_surface ? 0 : surface_handle->dirty.t; + uint16_t r = entire_surface ? (surface_handle->base.panel_width - 1) : surface_handle->dirty.r; + uint16_t b = entire_surface ? (surface_handle->base.panel_height - 1) : surface_handle->dirty.b; + + // Set the target drawing area + bool ok = qp_viewport((painter_device_t)target_driver, x + l, y + t, x + r, y + b); + if (!ok) { + qp_dprintf("rgb565_target_pixdata_transfer: fail (could not set target viewport)\n"); + return false; + } + + // Housekeeping of the amount of pixels to transfer + uint32_t total_pixel_count = (8 * QUANTUM_PAINTER_PIXDATA_BUFFER_SIZE) / surface_driver->native_bits_per_pixel; + uint32_t pixel_counter = 0; + uint16_t *target_buffer = (uint16_t *)qp_internal_global_pixdata_buffer; + + // Fill the global pixdata area so that we can start transferring to the panel + for (uint16_t y = t; y <= b; ++y) { + for (uint16_t x = l; x <= r; ++x) { + // Update the target buffer + target_buffer[pixel_counter++] = surface_handle->u16buffer[y * surface_handle->base.panel_width + x]; + + // If we've accumulated enough data, send it + if (pixel_counter == total_pixel_count) { + ok = qp_pixdata((painter_device_t)target_driver, qp_internal_global_pixdata_buffer, pixel_counter); + if (!ok) { + qp_dprintf("rgb565_target_pixdata_transfer: fail (could not stream pixdata to target)\n"); + return false; + } + // Reset the counter + pixel_counter = 0; + } + } + } + + // If there's any leftover data, send it + if (pixel_counter > 0) { + ok = qp_pixdata((painter_device_t)target_driver, qp_internal_global_pixdata_buffer, pixel_counter); + if (!ok) { + qp_dprintf("rgb565_target_pixdata_transfer: fail (could not stream pixdata to target)\n"); + return false; + } + } + + return true; +} + +static bool qp_surface_append_pixdata_rgb565(painter_device_t device, uint8_t *target_buffer, uint32_t pixdata_offset, uint8_t pixdata_byte) { + target_buffer[pixdata_offset] = pixdata_byte; + return true; +} + +const surface_painter_driver_vtable_t rgb565_surface_driver_vtable = { + .base = + { + .init = qp_surface_init, + .power = qp_surface_power, + .clear = qp_surface_clear, + .flush = qp_surface_flush, + .pixdata = qp_surface_pixdata_rgb565, + .viewport = qp_surface_viewport, + .palette_convert = qp_surface_palette_convert_rgb565_swapped, + .append_pixels = qp_surface_append_pixels_rgb565, + .append_pixdata = qp_surface_append_pixdata_rgb565, + }, + .target_pixdata_transfer = rgb565_target_pixdata_transfer, +}; + +SURFACE_FACTORY_FUNCTION_IMPL(qp_make_rgb565_surface, rgb565_surface_driver_vtable, 16); + +#endif // QUANTUM_PAINTER_SURFACE_ENABLE diff --git a/drivers/painter/ili9xxx/qp_ili9163.c b/drivers/painter/ili9xxx/qp_ili9163.c index a75be57904..7f439dc317 100644 --- a/drivers/painter/ili9xxx/qp_ili9163.c +++ b/drivers/painter/ili9xxx/qp_ili9163.c @@ -103,13 +103,14 @@ painter_device_t qp_ili9163_make_spi_device(uint16_t panel_width, uint16_t panel driver->base.native_bits_per_pixel = 16; // RGB565 // SPI and other pin configuration - driver->base.comms_config = &driver->spi_dc_reset_config; - driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin; - driver->spi_dc_reset_config.spi_config.divisor = spi_divisor; - driver->spi_dc_reset_config.spi_config.lsb_first = false; - driver->spi_dc_reset_config.spi_config.mode = spi_mode; - driver->spi_dc_reset_config.dc_pin = dc_pin; - driver->spi_dc_reset_config.reset_pin = reset_pin; + driver->base.comms_config = &driver->spi_dc_reset_config; + driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin; + driver->spi_dc_reset_config.spi_config.divisor = spi_divisor; + driver->spi_dc_reset_config.spi_config.lsb_first = false; + driver->spi_dc_reset_config.spi_config.mode = spi_mode; + driver->spi_dc_reset_config.dc_pin = dc_pin; + driver->spi_dc_reset_config.reset_pin = reset_pin; + driver->spi_dc_reset_config.command_params_uses_command_pin = false; if (!qp_internal_register_device((painter_device_t)driver)) { memset(driver, 0, sizeof(tft_panel_dc_reset_painter_device_t)); diff --git a/drivers/painter/ili9xxx/qp_ili9163.h b/drivers/painter/ili9xxx/qp_ili9163.h index 88d23629a9..a9b3befd48 100644 --- a/drivers/painter/ili9xxx/qp_ili9163.h +++ b/drivers/painter/ili9xxx/qp_ili9163.h @@ -1,6 +1,5 @@ // Copyright 2021 Nick Brassel (@tzarc) // SPDX-License-Identifier: GPL-2.0-or-later - #pragma once #include "gpio.h" diff --git a/drivers/painter/ili9xxx/qp_ili9341.c b/drivers/painter/ili9xxx/qp_ili9341.c index 4130271f71..a101b292aa 100644 --- a/drivers/painter/ili9xxx/qp_ili9341.c +++ b/drivers/painter/ili9xxx/qp_ili9341.c @@ -110,13 +110,14 @@ painter_device_t qp_ili9341_make_spi_device(uint16_t panel_width, uint16_t panel driver->base.offset_y = 0; // SPI and other pin configuration - driver->base.comms_config = &driver->spi_dc_reset_config; - driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin; - driver->spi_dc_reset_config.spi_config.divisor = spi_divisor; - driver->spi_dc_reset_config.spi_config.lsb_first = false; - driver->spi_dc_reset_config.spi_config.mode = spi_mode; - driver->spi_dc_reset_config.dc_pin = dc_pin; - driver->spi_dc_reset_config.reset_pin = reset_pin; + driver->base.comms_config = &driver->spi_dc_reset_config; + driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin; + driver->spi_dc_reset_config.spi_config.divisor = spi_divisor; + driver->spi_dc_reset_config.spi_config.lsb_first = false; + driver->spi_dc_reset_config.spi_config.mode = spi_mode; + driver->spi_dc_reset_config.dc_pin = dc_pin; + driver->spi_dc_reset_config.reset_pin = reset_pin; + driver->spi_dc_reset_config.command_params_uses_command_pin = false; if (!qp_internal_register_device((painter_device_t)driver)) { memset(driver, 0, sizeof(tft_panel_dc_reset_painter_device_t)); diff --git a/drivers/painter/ili9xxx/qp_ili9341.h b/drivers/painter/ili9xxx/qp_ili9341.h index 28b0152a84..d850aba114 100644 --- a/drivers/painter/ili9xxx/qp_ili9341.h +++ b/drivers/painter/ili9xxx/qp_ili9341.h @@ -1,6 +1,5 @@ // Copyright 2021 Nick Brassel (@tzarc) // SPDX-License-Identifier: GPL-2.0-or-later - #pragma once #include "gpio.h" diff --git a/drivers/painter/ili9xxx/qp_ili9488.c b/drivers/painter/ili9xxx/qp_ili9488.c index a8da52132e..63deaf5f2e 100644 --- a/drivers/painter/ili9xxx/qp_ili9488.c +++ b/drivers/painter/ili9xxx/qp_ili9488.c @@ -103,13 +103,14 @@ painter_device_t qp_ili9488_make_spi_device(uint16_t panel_width, uint16_t panel driver->base.offset_y = 0; // SPI and other pin configuration - driver->base.comms_config = &driver->spi_dc_reset_config; - driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin; - driver->spi_dc_reset_config.spi_config.divisor = spi_divisor; - driver->spi_dc_reset_config.spi_config.lsb_first = false; - driver->spi_dc_reset_config.spi_config.mode = spi_mode; - driver->spi_dc_reset_config.dc_pin = dc_pin; - driver->spi_dc_reset_config.reset_pin = reset_pin; + driver->base.comms_config = &driver->spi_dc_reset_config; + driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin; + driver->spi_dc_reset_config.spi_config.divisor = spi_divisor; + driver->spi_dc_reset_config.spi_config.lsb_first = false; + driver->spi_dc_reset_config.spi_config.mode = spi_mode; + driver->spi_dc_reset_config.dc_pin = dc_pin; + driver->spi_dc_reset_config.reset_pin = reset_pin; + driver->spi_dc_reset_config.command_params_uses_command_pin = false; if (!qp_internal_register_device((painter_device_t)driver)) { memset(driver, 0, sizeof(tft_panel_dc_reset_painter_device_t)); diff --git a/drivers/painter/ili9xxx/qp_ili9488.h b/drivers/painter/ili9xxx/qp_ili9488.h index 21b8f03322..da56f1090f 100644 --- a/drivers/painter/ili9xxx/qp_ili9488.h +++ b/drivers/painter/ili9xxx/qp_ili9488.h @@ -1,6 +1,5 @@ // Copyright 2021 Nick Brassel (@tzarc) // SPDX-License-Identifier: GPL-2.0-or-later - #pragma once #include "gpio.h" diff --git a/drivers/painter/oled_panel/qp_oled_panel.c b/drivers/painter/oled_panel/qp_oled_panel.c new file mode 100644 index 0000000000..eefee3f13f --- /dev/null +++ b/drivers/painter/oled_panel/qp_oled_panel.c @@ -0,0 +1,195 @@ +// Copyright 2023 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "color.h" +#include "qp_internal.h" +#include "qp_comms.h" +#include "qp_draw.h" +#include "qp_oled_panel.h" + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Quantum Painter API implementations + +// Power control +bool qp_oled_panel_power(painter_device_t device, bool power_on) { + painter_driver_t * driver = (painter_driver_t *)device; + oled_panel_painter_driver_vtable_t *vtable = (oled_panel_painter_driver_vtable_t *)driver->driver_vtable; + qp_comms_command(device, power_on ? vtable->opcodes.display_on : vtable->opcodes.display_off); + return true; +} + +// Screen clear +bool qp_oled_panel_clear(painter_device_t device) { + painter_driver_t *driver = (painter_driver_t *)device; + driver->driver_vtable->init(device, driver->rotation); // Re-init the display + return true; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Surface passthru +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +bool qp_oled_panel_passthru_pixdata(painter_device_t device, const void *pixel_data, uint32_t native_pixel_count) { + oled_panel_painter_device_t *driver = (oled_panel_painter_device_t *)device; + return driver->surface.base.validate_ok && driver->surface.base.driver_vtable->pixdata(&driver->surface.base, pixel_data, native_pixel_count); +} + +bool qp_oled_panel_passthru_viewport(painter_device_t device, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) { + oled_panel_painter_device_t *driver = (oled_panel_painter_device_t *)device; + return driver->surface.base.validate_ok && driver->surface.base.driver_vtable->viewport(&driver->surface.base, left, top, right, bottom); +} + +bool qp_oled_panel_passthru_palette_convert(painter_device_t device, int16_t palette_size, qp_pixel_t *palette) { + oled_panel_painter_device_t *driver = (oled_panel_painter_device_t *)device; + return driver->surface.base.validate_ok && driver->surface.base.driver_vtable->palette_convert(&driver->surface.base, palette_size, palette); +} + +bool qp_oled_panel_passthru_append_pixels(painter_device_t device, uint8_t *target_buffer, qp_pixel_t *palette, uint32_t pixel_offset, uint32_t pixel_count, uint8_t *palette_indices) { + oled_panel_painter_device_t *driver = (oled_panel_painter_device_t *)device; + return driver->surface.base.validate_ok && driver->surface.base.driver_vtable->append_pixels(&driver->surface.base, target_buffer, palette, pixel_offset, pixel_count, palette_indices); +} + +bool qp_oled_panel_passthru_append_pixdata(painter_device_t device, uint8_t *target_buffer, uint32_t pixdata_offset, uint8_t pixdata_byte) { + oled_panel_painter_device_t *driver = (oled_panel_painter_device_t *)device; + return driver->surface.base.validate_ok && driver->surface.base.driver_vtable->append_pixdata(&driver->surface.base, target_buffer, pixdata_offset, pixdata_byte); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Flush helpers +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +void qp_oled_panel_page_column_flush_rot0(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer) { + painter_driver_t * driver = (painter_driver_t *)device; + oled_panel_painter_driver_vtable_t *vtable = (oled_panel_painter_driver_vtable_t *)driver->driver_vtable; + + // TODO: account for offset_x/y in base driver + int min_page = dirty->t / 8; + int max_page = dirty->b / 8; + int min_column = dirty->l; + int max_column = dirty->r; + + for (int page = min_page; page <= max_page; ++page) { + int cols_required = max_column - min_column + 1; + uint8_t column_data[cols_required]; + memset(column_data, 0, cols_required); + for (int x = min_column; x <= max_column; ++x) { + uint16_t data_offset = x - min_column; + for (int y = 0; y < 8; ++y) { + uint32_t pixel_num = ((page * 8) + y) * driver->panel_width + x; + uint32_t byte_offset = pixel_num / 8; + uint8_t bit_offset = pixel_num % 8; + column_data[data_offset] |= ((framebuffer[byte_offset] & (1 << bit_offset)) >> bit_offset) << y; + } + } + + int actual_page = page; + int start_column = min_column; + qp_comms_command(device, vtable->opcodes.set_page | actual_page); + qp_comms_command(device, vtable->opcodes.set_column_lsb | (start_column & 0x0F)); + qp_comms_command(device, vtable->opcodes.set_column_msb | (start_column & 0xF0) >> 4); + qp_comms_send(device, column_data, cols_required); + } +} + +void qp_oled_panel_page_column_flush_rot90(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer) { + painter_driver_t * driver = (painter_driver_t *)device; + oled_panel_painter_driver_vtable_t *vtable = (oled_panel_painter_driver_vtable_t *)driver->driver_vtable; + + // TODO: account for offset_x/y in base driver + int num_columns = driver->panel_width; + int min_page = dirty->l / 8; + int max_page = dirty->r / 8; + int min_column = dirty->t; + int max_column = dirty->b; + + for (int page = min_page; page <= max_page; ++page) { + int cols_required = max_column - min_column + 1; + uint8_t column_data[cols_required]; + memset(column_data, 0, cols_required); + for (int y = min_column; y <= max_column; ++y) { + uint16_t data_offset = cols_required - 1 - (y - min_column); + for (int x = 0; x < 8; ++x) { + uint32_t pixel_num = y * driver->panel_height + ((page * 8) + x); + uint32_t byte_offset = pixel_num / 8; + uint8_t bit_offset = pixel_num % 8; + column_data[data_offset] |= ((framebuffer[byte_offset] & (1 << bit_offset)) >> bit_offset) << x; + } + } + + int actual_page = page; + int start_column = num_columns - 1 - max_column; + qp_comms_command(device, vtable->opcodes.set_page | actual_page); + qp_comms_command(device, vtable->opcodes.set_column_lsb | (start_column & 0x0F)); + qp_comms_command(device, vtable->opcodes.set_column_msb | (start_column & 0xF0) >> 4); + qp_comms_send(device, column_data, cols_required); + } +} + +void qp_oled_panel_page_column_flush_rot180(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer) { + painter_driver_t * driver = (painter_driver_t *)device; + oled_panel_painter_driver_vtable_t *vtable = (oled_panel_painter_driver_vtable_t *)driver->driver_vtable; + + // TODO: account for offset_x/y in base driver + int num_pages = driver->panel_height / 8; + int num_columns = driver->panel_width; + int min_page = dirty->t / 8; + int max_page = dirty->b / 8; + int min_column = dirty->l; + int max_column = dirty->r; + + for (int page = min_page; page <= max_page; ++page) { + int cols_required = max_column - min_column + 1; + uint8_t column_data[cols_required]; + memset(column_data, 0, cols_required); + for (int x = min_column; x <= max_column; ++x) { + uint16_t data_offset = cols_required - 1 - (x - min_column); + for (int y = 0; y < 8; ++y) { + uint32_t pixel_num = ((page * 8) + y) * driver->panel_width + x; + uint32_t byte_offset = pixel_num / 8; + uint8_t bit_offset = pixel_num % 8; + column_data[data_offset] |= ((framebuffer[byte_offset] & (1 << bit_offset)) >> bit_offset) << (7 - y); + } + } + + int actual_page = num_pages - 1 - page; + int start_column = num_columns - 1 - max_column; + qp_comms_command(device, vtable->opcodes.set_page | actual_page); + qp_comms_command(device, vtable->opcodes.set_column_lsb | (start_column & 0x0F)); + qp_comms_command(device, vtable->opcodes.set_column_msb | (start_column & 0xF0) >> 4); + qp_comms_send(device, column_data, cols_required); + } +} + +void qp_oled_panel_page_column_flush_rot270(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer) { + painter_driver_t * driver = (painter_driver_t *)device; + oled_panel_painter_driver_vtable_t *vtable = (oled_panel_painter_driver_vtable_t *)driver->driver_vtable; + + // TODO: account for offset_x/y in base driver + int num_pages = driver->panel_height / 8; + int min_page = dirty->l / 8; + int max_page = dirty->r / 8; + int min_column = dirty->t; + int max_column = dirty->b; + + for (int page = min_page; page <= max_page; ++page) { + int cols_required = max_column - min_column + 1; + uint8_t column_data[cols_required]; + memset(column_data, 0, cols_required); + for (int y = min_column; y <= max_column; ++y) { + uint16_t data_offset = y - min_column; + for (int x = 0; x < 8; ++x) { + uint32_t pixel_num = y * driver->panel_height + ((page * 8) + x); + uint32_t byte_offset = pixel_num / 8; + uint8_t bit_offset = pixel_num % 8; + column_data[data_offset] |= ((framebuffer[byte_offset] & (1 << bit_offset)) >> bit_offset) << (7 - x); + } + } + + int actual_page = num_pages - 1 - page; + int start_column = min_column; + qp_comms_command(device, vtable->opcodes.set_page | actual_page); + qp_comms_command(device, vtable->opcodes.set_column_lsb | (start_column & 0x0F)); + qp_comms_command(device, vtable->opcodes.set_column_msb | (start_column & 0xF0) >> 4); + qp_comms_send(device, column_data, cols_required); + } +} diff --git a/drivers/painter/oled_panel/qp_oled_panel.h b/drivers/painter/oled_panel/qp_oled_panel.h new file mode 100644 index 0000000000..ccc7ab9204 --- /dev/null +++ b/drivers/painter/oled_panel/qp_oled_panel.h @@ -0,0 +1,68 @@ +// Copyright 2023 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include "color.h" +#include "qp_internal.h" +#include "qp_surface_internal.h" + +#ifdef QUANTUM_PAINTER_SPI_ENABLE +# include "qp_comms_spi.h" +#endif // QUANTUM_PAINTER_SPI_ENABLE + +#ifdef QUANTUM_PAINTER_I2C_ENABLE +# include "qp_comms_i2c.h" +#endif // QUANTUM_PAINTER_I2C_ENABLE + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Common OLED panel implementation + +// Driver vtable with extras +typedef struct oled_panel_painter_driver_vtable_t { + painter_driver_vtable_t base; // must be first, so it can be cast to/from the painter_driver_vtable_t* type + + // Opcodes for normal display operation + struct { + uint8_t display_on; + uint8_t display_off; + uint8_t set_page; + uint8_t set_column_lsb; + uint8_t set_column_msb; + } opcodes; +} oled_panel_painter_driver_vtable_t; + +// Device definition +typedef struct oled_panel_painter_device_t { + painter_driver_t base; // must be first, so it can be cast to/from the painter_device_t* type + + union { +#ifdef QUANTUM_PAINTER_SPI_ENABLE + // SPI-based configurables + qp_comms_spi_dc_reset_config_t spi_dc_reset_config; +#endif // QUANTUM_PAINTER_SPI_ENABLE +#ifdef QUANTUM_PAINTER_I2C_ENABLE + // I2C-based configurables + qp_comms_i2c_config_t i2c_config; +#endif // QUANTUM_PAINTER_I2C_ENABLE + }; + + surface_painter_device_t surface; +} oled_panel_painter_device_t; + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Forward declarations for injecting into concrete driver vtables + +bool qp_oled_panel_power(painter_device_t device, bool power_on); +bool qp_oled_panel_clear(painter_device_t device); + +bool qp_oled_panel_passthru_pixdata(painter_device_t device, const void *pixel_data, uint32_t native_pixel_count); +bool qp_oled_panel_passthru_viewport(painter_device_t device, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom); +bool qp_oled_panel_passthru_palette_convert(painter_device_t device, int16_t palette_size, qp_pixel_t *palette); +bool qp_oled_panel_passthru_append_pixels(painter_device_t device, uint8_t *target_buffer, qp_pixel_t *palette, uint32_t pixel_offset, uint32_t pixel_count, uint8_t *palette_indices); +bool qp_oled_panel_passthru_append_pixdata(painter_device_t device, uint8_t *target_buffer, uint32_t pixdata_offset, uint8_t pixdata_byte); + +// Helpers for flushing data from the dirty region to the correct location on the OLED +void qp_oled_panel_page_column_flush_rot0(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer); +void qp_oled_panel_page_column_flush_rot90(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer); +void qp_oled_panel_page_column_flush_rot180(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer); +void qp_oled_panel_page_column_flush_rot270(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer); diff --git a/drivers/painter/sh1106/qp_sh1106.c b/drivers/painter/sh1106/qp_sh1106.c new file mode 100644 index 0000000000..7cb6e398fa --- /dev/null +++ b/drivers/painter/sh1106/qp_sh1106.c @@ -0,0 +1,206 @@ +// Copyright 2023 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "qp_internal.h" +#include "qp_comms.h" +#include "qp_oled_panel.h" +#include "qp_sh1106.h" +#include "qp_sh1106_opcodes.h" +#include "qp_surface.h" +#include "qp_surface_internal.h" + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Driver storage +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +typedef struct sh1106_device_t { + oled_panel_painter_device_t oled; + + uint8_t framebuffer[SURFACE_REQUIRED_BUFFER_BYTE_SIZE(128, 64, 1)]; +} sh1106_device_t; + +static sh1106_device_t sh1106_drivers[SH1106_NUM_DEVICES] = {0}; + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Quantum Painter API implementations + +// Initialisation +__attribute__((weak)) bool qp_sh1106_init(painter_device_t device, painter_rotation_t rotation) { + sh1106_device_t *driver = (sh1106_device_t *)device; + + // Change the surface geometry based on the panel rotation + if (rotation == QP_ROTATION_90 || rotation == QP_ROTATION_270) { + driver->oled.surface.base.panel_width = driver->oled.base.panel_height; + driver->oled.surface.base.panel_height = driver->oled.base.panel_width; + } else { + driver->oled.surface.base.panel_width = driver->oled.base.panel_width; + driver->oled.surface.base.panel_height = driver->oled.base.panel_height; + } + + // Init the internal surface + if (!qp_init(&driver->oled.surface.base, QP_ROTATION_0)) { + qp_dprintf("Failed to init internal surface in qp_sh1106_init\n"); + return false; + } + + // clang-format off + const uint8_t sh1106_init_sequence[] = { + // Command, Delay, N, Data[N] + SH1106_SET_MUX_RATIO, 0, 1, 0x3F, + SH1106_DISPLAY_OFFSET, 0, 1, 0x00, + SH1106_DISPLAY_START_LINE, 0, 0, + SH1106_SET_SEGMENT_REMAP_INV, 0, 0, + SH1106_COM_SCAN_DIR_DEC, 0, 0, + SH1106_COM_PADS_HW_CFG, 0, 1, 0x12, + SH1106_SET_CONTRAST, 0, 1, 0x7F, + SH1106_ALL_ON_RESUME, 0, 0, + SH1106_NON_INVERTING_DISPLAY, 0, 0, + SH1106_SET_OSC_DIVFREQ, 0, 1, 0x80, + SH1106_SET_CHARGE_PUMP, 0, 1, 0x14, + SH1106_DISPLAY_ON, 0, 0, + }; + // clang-format on + + qp_comms_bulk_command_sequence(device, sh1106_init_sequence, sizeof(sh1106_init_sequence)); + return true; +} + +// Screen flush +bool qp_sh1106_flush(painter_device_t device) { + sh1106_device_t *driver = (sh1106_device_t *)device; + + if (!driver->oled.surface.dirty.is_dirty) { + return true; + } + + switch (driver->oled.base.rotation) { + default: + case QP_ROTATION_0: + qp_oled_panel_page_column_flush_rot0(device, &driver->oled.surface.dirty, driver->framebuffer); + break; + case QP_ROTATION_90: + qp_oled_panel_page_column_flush_rot90(device, &driver->oled.surface.dirty, driver->framebuffer); + break; + case QP_ROTATION_180: + qp_oled_panel_page_column_flush_rot180(device, &driver->oled.surface.dirty, driver->framebuffer); + break; + case QP_ROTATION_270: + qp_oled_panel_page_column_flush_rot270(device, &driver->oled.surface.dirty, driver->framebuffer); + break; + } + + // Clear the dirty area + qp_flush(&driver->oled.surface); + + return true; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Driver vtable +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +const oled_panel_painter_driver_vtable_t sh1106_driver_vtable = { + .base = + { + .init = qp_sh1106_init, + .power = qp_oled_panel_power, + .clear = qp_oled_panel_clear, + .flush = qp_sh1106_flush, + .pixdata = qp_oled_panel_passthru_pixdata, + .viewport = qp_oled_panel_passthru_viewport, + .palette_convert = qp_oled_panel_passthru_palette_convert, + .append_pixels = qp_oled_panel_passthru_append_pixels, + .append_pixdata = qp_oled_panel_passthru_append_pixdata, + }, + .opcodes = + { + .display_on = SH1106_DISPLAY_ON, + .display_off = SH1106_DISPLAY_OFF, + .set_page = SH1106_PAGE_ADDR, + .set_column_lsb = SH1106_SETCOLUMN_LSB, + .set_column_msb = SH1106_SETCOLUMN_MSB, + }, +}; + +#ifdef QUANTUM_PAINTER_SH1106_SPI_ENABLE +// Factory function for creating a handle to the SH1106 device +painter_device_t qp_sh1106_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode) { + for (uint32_t i = 0; i < SH1106_NUM_DEVICES; ++i) { + sh1106_device_t *driver = &sh1106_drivers[i]; + if (!driver->oled.base.driver_vtable) { + painter_device_t surface = qp_make_mono1bpp_surface_advanced(&driver->oled.surface, 1, panel_width, panel_height, driver->framebuffer); + if (!surface) { + return NULL; + } + + // Setup the OLED device + driver->oled.base.driver_vtable = (const painter_driver_vtable_t *)&sh1106_driver_vtable; + driver->oled.base.comms_vtable = (const painter_comms_vtable_t *)&spi_comms_with_dc_vtable; + driver->oled.base.native_bits_per_pixel = 1; // 1bpp mono + driver->oled.base.panel_width = panel_width; + driver->oled.base.panel_height = panel_height; + driver->oled.base.rotation = QP_ROTATION_0; + driver->oled.base.offset_x = 0; + driver->oled.base.offset_y = 0; + + // SPI and other pin configuration + driver->oled.base.comms_config = &driver->oled.spi_dc_reset_config; + driver->oled.spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin; + driver->oled.spi_dc_reset_config.spi_config.divisor = spi_divisor; + driver->oled.spi_dc_reset_config.spi_config.lsb_first = false; + driver->oled.spi_dc_reset_config.spi_config.mode = spi_mode; + driver->oled.spi_dc_reset_config.dc_pin = dc_pin; + driver->oled.spi_dc_reset_config.reset_pin = reset_pin; + driver->oled.spi_dc_reset_config.command_params_uses_command_pin = true; + + if (!qp_internal_register_device((painter_device_t)driver)) { + memset(driver, 0, sizeof(sh1106_device_t)); + return NULL; + } + + return (painter_device_t)driver; + } + } + return NULL; +} + +#endif // QUANTUM_PAINTER_SH1106_SPI_ENABLE + +#ifdef QUANTUM_PAINTER_SH1106_I2C_ENABLE +// Factory function for creating a handle to the SH1106 device +painter_device_t qp_sh1106_make_i2c_device(uint16_t panel_width, uint16_t panel_height, uint8_t i2c_address) { + for (uint32_t i = 0; i < SH1106_NUM_DEVICES; ++i) { + sh1106_device_t *driver = &sh1106_drivers[i]; + if (!driver->oled.base.driver_vtable) { + // Instantiate the surface, intentional swap of width/high due to transpose + painter_device_t surface = qp_make_mono1bpp_surface_advanced(&driver->oled.surface, 1, panel_width, panel_height, driver->framebuffer); + if (!surface) { + return NULL; + } + + // Setup the OLED device + driver->oled.base.driver_vtable = (const painter_driver_vtable_t *)&sh1106_driver_vtable; + driver->oled.base.comms_vtable = (const painter_comms_vtable_t *)&i2c_comms_cmddata_vtable; + driver->oled.base.native_bits_per_pixel = 1; // 1bpp mono + driver->oled.base.panel_width = panel_width; + driver->oled.base.panel_height = panel_height; + driver->oled.base.rotation = QP_ROTATION_0; + driver->oled.base.offset_x = 0; + driver->oled.base.offset_y = 0; + + // I2C configuration + driver->oled.base.comms_config = &driver->oled.i2c_config; + driver->oled.i2c_config.chip_address = i2c_address; + + if (!qp_internal_register_device((painter_device_t)driver)) { + memset(driver, 0, sizeof(sh1106_device_t)); + return NULL; + } + + return (painter_device_t)driver; + } + } + return NULL; +} + +#endif // QUANTUM_PAINTER_SH1106_SPI_ENABLE diff --git a/drivers/painter/sh1106/qp_sh1106.h b/drivers/painter/sh1106/qp_sh1106.h new file mode 100644 index 0000000000..6c325dba4b --- /dev/null +++ b/drivers/painter/sh1106/qp_sh1106.h @@ -0,0 +1,66 @@ +// Copyright 2023 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include "gpio.h" +#include "qp_internal.h" + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Quantum Painter SH1106 configurables (add to your keyboard's config.h) + +#if defined(QUANTUM_PAINTER_SH1106_SPI_ENABLE) && !defined(SH1106_NUM_SPI_DEVICES) +/** + * @def This controls the maximum number of SPI SH1106 devices that Quantum Painter can communicate with at any one time. + * Increasing this number allows for multiple displays to be used. + */ +# define SH1106_NUM_SPI_DEVICES 1 +#else +# define SH1106_NUM_SPI_DEVICES 0 +#endif + +#if defined(QUANTUM_PAINTER_SH1106_I2C_ENABLE) && !defined(SH1106_NUM_I2C_DEVICES) +/** + * @def This controls the maximum number of I2C SH1106 devices that Quantum Painter can communicate with at any one time. + * Increasing this number allows for multiple displays to be used. + */ +# define SH1106_NUM_I2C_DEVICES 1 +#else +# define SH1106_NUM_I2C_DEVICES 0 +#endif + +#define SH1106_NUM_DEVICES ((SH1106_NUM_SPI_DEVICES) + (SH1106_NUM_I2C_DEVICES)) + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Quantum Painter SH1106 device factories + +#ifdef QUANTUM_PAINTER_SH1106_SPI_ENABLE + +/** + * Factory method for an SH1106 SPI LCD device. + * + * @param panel_width[in] the width of the display in pixels (usually 128) + * @param panel_height[in] the height of the display in pixels (usually 64) + * @param chip_select_pin[in] the GPIO pin used for SPI chip select + * @param dc_pin[in] the GPIO pin used for D/C control + * @param reset_pin[in] the GPIO pin used for RST + * @param spi_divisor[in] the SPI divisor to use when communicating with the display + * @param spi_mode[in] the SPI mode to use when communicating with the display + * @return the device handle used with all drawing routines in Quantum Painter + */ +painter_device_t qp_sh1106_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode); + +#endif // QUANTUM_PAINTER_SH1106_SPI_ENABLE + +#ifdef QUANTUM_PAINTER_SH1106_I2C_ENABLE + +/** + * Factory method for an SH1106 I2C LCD device. + * + * @param panel_width[in] the width of the display in pixels (usually 128) + * @param panel_height[in] the height of the display in pixels (usually 64) + * @param i2c_address[in] the I2C address to use + * @return the device handle used with all drawing routines in Quantum Painter + */ +painter_device_t qp_sh1106_make_i2c_device(uint16_t panel_width, uint16_t panel_height, uint8_t i2c_address); + +#endif // QUANTUM_PAINTER_SH1106_I2C_ENABLE diff --git a/drivers/painter/sh1106/qp_sh1106_opcodes.h b/drivers/painter/sh1106/qp_sh1106_opcodes.h new file mode 100644 index 0000000000..a2e100d770 --- /dev/null +++ b/drivers/painter/sh1106/qp_sh1106_opcodes.h @@ -0,0 +1,26 @@ +// Copyright 2023 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define SH1106_DISPLAY_ON 0xAF +#define SH1106_DISPLAY_OFF 0xAE +#define SH1106_SET_OSC_DIVFREQ 0xD5 +#define SH1106_SET_MUX_RATIO 0xA8 +#define SH1106_DISPLAY_OFFSET 0xD3 +#define SH1106_DISPLAY_START_LINE 0x40 +#define SH1106_SET_CHARGE_PUMP 0x8D +#define SH1106_SET_SEGMENT_REMAP_NORMAL 0xA0 +#define SH1106_SET_SEGMENT_REMAP_INV 0xA1 +#define SH1106_COM_SCAN_DIR_INC 0xC0 +#define SH1106_COM_SCAN_DIR_DEC 0xC8 +#define SH1106_COM_PADS_HW_CFG 0xDA +#define SH1106_SET_CONTRAST 0x81 +#define SH1106_SET_PRECHARGE_PERIOD 0xD9 +#define SH1106_VCOM_DETECT 0xDB +#define SH1106_ALL_ON_RESUME 0xA4 +#define SH1106_NON_INVERTING_DISPLAY 0xA6 +#define SH1106_DEACTIVATE_SCROLL 0x2E + +#define SH1106_SETCOLUMN_LSB 0x00 +#define SH1106_SETCOLUMN_MSB 0x10 +#define SH1106_PAGE_ADDR 0xB0 diff --git a/drivers/painter/ssd1351/qp_ssd1351.c b/drivers/painter/ssd1351/qp_ssd1351.c index 434b7f0327..3270a362c2 100644 --- a/drivers/painter/ssd1351/qp_ssd1351.c +++ b/drivers/painter/ssd1351/qp_ssd1351.c @@ -107,13 +107,14 @@ painter_device_t qp_ssd1351_make_spi_device(uint16_t panel_width, uint16_t panel driver->base.native_bits_per_pixel = 16; // RGB565 // SPI and other pin configuration - driver->base.comms_config = &driver->spi_dc_reset_config; - driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin; - driver->spi_dc_reset_config.spi_config.divisor = spi_divisor; - driver->spi_dc_reset_config.spi_config.lsb_first = false; - driver->spi_dc_reset_config.spi_config.mode = spi_mode; - driver->spi_dc_reset_config.dc_pin = dc_pin; - driver->spi_dc_reset_config.reset_pin = reset_pin; + driver->base.comms_config = &driver->spi_dc_reset_config; + driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin; + driver->spi_dc_reset_config.spi_config.divisor = spi_divisor; + driver->spi_dc_reset_config.spi_config.lsb_first = false; + driver->spi_dc_reset_config.spi_config.mode = spi_mode; + driver->spi_dc_reset_config.dc_pin = dc_pin; + driver->spi_dc_reset_config.reset_pin = reset_pin; + driver->spi_dc_reset_config.command_params_uses_command_pin = false; if (!qp_internal_register_device((painter_device_t)driver)) { memset(driver, 0, sizeof(tft_panel_dc_reset_painter_device_t)); diff --git a/drivers/painter/ssd1351/qp_ssd1351.h b/drivers/painter/ssd1351/qp_ssd1351.h index 0df34f204d..0045c4926b 100644 --- a/drivers/painter/ssd1351/qp_ssd1351.h +++ b/drivers/painter/ssd1351/qp_ssd1351.h @@ -1,6 +1,5 @@ // Copyright 2021 Nick Brassel (@tzarc) // SPDX-License-Identifier: GPL-2.0-or-later - #pragma once #include "gpio.h" diff --git a/drivers/painter/ssd1351/qp_ssd1351_opcodes.h b/drivers/painter/ssd1351/qp_ssd1351_opcodes.h index 48ed2a3a7c..ca8e2bf77e 100644 --- a/drivers/painter/ssd1351/qp_ssd1351_opcodes.h +++ b/drivers/painter/ssd1351/qp_ssd1351_opcodes.h @@ -1,6 +1,5 @@ // Copyright 2021 Nick Brassel (@tzarc) // SPDX-License-Identifier: GPL-2.0-or-later - #pragma once //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/drivers/painter/st77xx/qp_st7735.c b/drivers/painter/st77xx/qp_st7735.c index 98baf400ab..6d00c95bb1 100644 --- a/drivers/painter/st77xx/qp_st7735.c +++ b/drivers/painter/st77xx/qp_st7735.c @@ -127,13 +127,14 @@ painter_device_t qp_st7735_make_spi_device(uint16_t panel_width, uint16_t panel_ driver->base.native_bits_per_pixel = 16; // RGB565 // SPI and other pin configuration - driver->base.comms_config = &driver->spi_dc_reset_config; - driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin; - driver->spi_dc_reset_config.spi_config.divisor = spi_divisor; - driver->spi_dc_reset_config.spi_config.lsb_first = false; - driver->spi_dc_reset_config.spi_config.mode = spi_mode; - driver->spi_dc_reset_config.dc_pin = dc_pin; - driver->spi_dc_reset_config.reset_pin = reset_pin; + driver->base.comms_config = &driver->spi_dc_reset_config; + driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin; + driver->spi_dc_reset_config.spi_config.divisor = spi_divisor; + driver->spi_dc_reset_config.spi_config.lsb_first = false; + driver->spi_dc_reset_config.spi_config.mode = spi_mode; + driver->spi_dc_reset_config.dc_pin = dc_pin; + driver->spi_dc_reset_config.reset_pin = reset_pin; + driver->spi_dc_reset_config.command_params_uses_command_pin = false; if (!qp_internal_register_device((painter_device_t)driver)) { memset(driver, 0, sizeof(tft_panel_dc_reset_painter_device_t)); diff --git a/drivers/painter/st77xx/qp_st7735.h b/drivers/painter/st77xx/qp_st7735.h index a9ce16bef1..e65b7ca706 100644 --- a/drivers/painter/st77xx/qp_st7735.h +++ b/drivers/painter/st77xx/qp_st7735.h @@ -2,7 +2,6 @@ // Copyright 2021 Nick Brassel (@tzarc) // Copyright 2022 David Hoelscher (@customMK) // SPDX-License-Identifier: GPL-2.0-or-later - #pragma once #include "gpio.h" @@ -42,4 +41,4 @@ * @return the device handle used with all drawing routines in Quantum Painter */ painter_device_t qp_st7735_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode); -#endif // QUANTUM_PAINTER_ST7735_SPI_ENABLE \ No newline at end of file +#endif // QUANTUM_PAINTER_ST7735_SPI_ENABLE diff --git a/drivers/painter/st77xx/qp_st7735_opcodes.h b/drivers/painter/st77xx/qp_st7735_opcodes.h index 816e32f3d7..f390d113c5 100644 --- a/drivers/painter/st77xx/qp_st7735_opcodes.h +++ b/drivers/painter/st77xx/qp_st7735_opcodes.h @@ -1,6 +1,5 @@ // Copyright 2022 David Hoelscher (@customMK) // SPDX-License-Identifier: GPL-2.0-or-later - #pragma once //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/drivers/painter/st77xx/qp_st7789.c b/drivers/painter/st77xx/qp_st7789.c index f9065f5178..855a9cc0c8 100644 --- a/drivers/painter/st77xx/qp_st7789.c +++ b/drivers/painter/st77xx/qp_st7789.c @@ -126,13 +126,14 @@ painter_device_t qp_st7789_make_spi_device(uint16_t panel_width, uint16_t panel_ driver->base.native_bits_per_pixel = 16; // RGB565 // SPI and other pin configuration - driver->base.comms_config = &driver->spi_dc_reset_config; - driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin; - driver->spi_dc_reset_config.spi_config.divisor = spi_divisor; - driver->spi_dc_reset_config.spi_config.lsb_first = false; - driver->spi_dc_reset_config.spi_config.mode = spi_mode; - driver->spi_dc_reset_config.dc_pin = dc_pin; - driver->spi_dc_reset_config.reset_pin = reset_pin; + driver->base.comms_config = &driver->spi_dc_reset_config; + driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin; + driver->spi_dc_reset_config.spi_config.divisor = spi_divisor; + driver->spi_dc_reset_config.spi_config.lsb_first = false; + driver->spi_dc_reset_config.spi_config.mode = spi_mode; + driver->spi_dc_reset_config.dc_pin = dc_pin; + driver->spi_dc_reset_config.reset_pin = reset_pin; + driver->spi_dc_reset_config.command_params_uses_command_pin = false; if (!qp_internal_register_device((painter_device_t)driver)) { memset(driver, 0, sizeof(tft_panel_dc_reset_painter_device_t)); diff --git a/drivers/painter/st77xx/qp_st7789.h b/drivers/painter/st77xx/qp_st7789.h index ec61f5d70b..03d618cae4 100644 --- a/drivers/painter/st77xx/qp_st7789.h +++ b/drivers/painter/st77xx/qp_st7789.h @@ -1,7 +1,6 @@ // Copyright 2021 Paul Cotter (@gr1mr3aver) // Copyright 2021 Nick Brassel (@tzarc) // SPDX-License-Identifier: GPL-2.0-or-later - #pragma once #include "gpio.h" diff --git a/drivers/painter/st77xx/qp_st7789_opcodes.h b/drivers/painter/st77xx/qp_st7789_opcodes.h index b5baba7184..4b46f994b4 100644 --- a/drivers/painter/st77xx/qp_st7789_opcodes.h +++ b/drivers/painter/st77xx/qp_st7789_opcodes.h @@ -1,6 +1,5 @@ // Copyright 2021 Paul Cotter (@gr1mr3aver) // SPDX-License-Identifier: GPL-2.0-or-later - #pragma once //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/drivers/painter/st77xx/qp_st77xx_opcodes.h b/drivers/painter/st77xx/qp_st77xx_opcodes.h index 131378d832..c01e2b21e6 100644 --- a/drivers/painter/st77xx/qp_st77xx_opcodes.h +++ b/drivers/painter/st77xx/qp_st77xx_opcodes.h @@ -1,6 +1,5 @@ // Copyright 2021 Paul Cotter (@gr1mr3aver) // SPDX-License-Identifier: GPL-2.0-or-later - #pragma once //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/drivers/painter/tft_panel/qp_tft_panel.h b/drivers/painter/tft_panel/qp_tft_panel.h index 67168645b7..3b184f2eba 100644 --- a/drivers/painter/tft_panel/qp_tft_panel.h +++ b/drivers/painter/tft_panel/qp_tft_panel.h @@ -1,5 +1,6 @@ // Copyright 2021 Nick Brassel (@tzarc) // SPDX-License-Identifier: GPL-2.0-or-later +#pragma once #include "color.h" #include "qp_internal.h" diff --git a/quantum/painter/qff.c b/quantum/painter/qff.c index cd6af788f9..8590f5b400 100644 --- a/quantum/painter/qff.c +++ b/quantum/painter/qff.c @@ -10,7 +10,7 @@ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // QFF API -bool qff_read_font_descriptor(qp_stream_t *stream, uint8_t *line_height, bool *has_ascii_table, uint16_t *num_unicode_glyphs, uint8_t *bpp, bool *has_palette, painter_compression_t *compression_scheme, uint32_t *total_bytes) { +bool qff_read_font_descriptor(qp_stream_t *stream, uint8_t *line_height, bool *has_ascii_table, uint16_t *num_unicode_glyphs, uint8_t *bpp, bool *has_palette, bool *is_panel_native, painter_compression_t *compression_scheme, uint32_t *total_bytes) { // Seek to the start qp_stream_setpos(stream, 0); @@ -49,7 +49,7 @@ bool qff_read_font_descriptor(qp_stream_t *stream, uint8_t *line_height, bool *h *num_unicode_glyphs = font_descriptor.num_unicode_glyphs; } if (bpp || has_palette) { - if (!qgf_parse_format(font_descriptor.format, bpp, has_palette)) { + if (!qgf_parse_format(font_descriptor.format, bpp, has_palette, is_panel_native)) { return false; } } @@ -102,7 +102,7 @@ bool qff_validate_stream(qp_stream_t *stream) { bool has_ascii_table; uint16_t num_unicode_glyphs; - if (!qff_read_font_descriptor(stream, NULL, &has_ascii_table, &num_unicode_glyphs, NULL, NULL, NULL, NULL)) { + if (!qff_read_font_descriptor(stream, NULL, &has_ascii_table, &num_unicode_glyphs, NULL, NULL, NULL, NULL, NULL)) { return false; } @@ -127,7 +127,7 @@ uint32_t qff_get_total_size(qp_stream_t *stream) { // Read the font descriptor, grabbing the size uint32_t total_size; - if (!qff_read_font_descriptor(stream, NULL, NULL, NULL, NULL, NULL, NULL, &total_size)) { + if (!qff_read_font_descriptor(stream, NULL, NULL, NULL, NULL, NULL, NULL, NULL, &total_size)) { return false; } diff --git a/quantum/painter/qff.h b/quantum/painter/qff.h index d1d629582f..c3b831da17 100644 --- a/quantum/painter/qff.h +++ b/quantum/painter/qff.h @@ -85,4 +85,4 @@ typedef struct QP_PACKED qff_unicode_glyph_table_v1_t { bool qff_validate_stream(qp_stream_t *stream); uint32_t qff_get_total_size(qp_stream_t *stream); -bool qff_read_font_descriptor(qp_stream_t *stream, uint8_t *line_height, bool *has_ascii_table, uint16_t *num_unicode_glyphs, uint8_t *bpp, bool *has_palette, painter_compression_t *compression_scheme, uint32_t *total_bytes); +bool qff_read_font_descriptor(qp_stream_t *stream, uint8_t *line_height, bool *has_ascii_table, uint16_t *num_unicode_glyphs, uint8_t *bpp, bool *has_palette, bool *is_panel_native, painter_compression_t *compression_scheme, uint32_t *total_bytes); diff --git a/quantum/painter/qgf.c b/quantum/painter/qgf.c index 6a4af07001..bc2df94933 100644 --- a/quantum/painter/qgf.c +++ b/quantum/painter/qgf.c @@ -24,22 +24,23 @@ bool qgf_validate_block_header(qgf_block_header_v1_t *desc, uint8_t expected_typ return true; } -bool qgf_parse_format(qp_image_format_t format, uint8_t *bpp, bool *has_palette) { +bool qgf_parse_format(qp_image_format_t format, uint8_t *bpp, bool *has_palette, bool *is_panel_native) { // clang-format off - static const struct QP_PACKED { + static const struct QP_PACKED { uint8_t bpp; bool has_palette; + bool is_panel_native; } formats[] = { - [GRAYSCALE_1BPP] = {.bpp = 1, .has_palette = false}, - [GRAYSCALE_2BPP] = {.bpp = 2, .has_palette = false}, - [GRAYSCALE_4BPP] = {.bpp = 4, .has_palette = false}, - [GRAYSCALE_8BPP] = {.bpp = 8, .has_palette = false}, - [PALETTE_1BPP] = {.bpp = 1, .has_palette = true}, - [PALETTE_2BPP] = {.bpp = 2, .has_palette = true}, - [PALETTE_4BPP] = {.bpp = 4, .has_palette = true}, - [PALETTE_8BPP] = {.bpp = 8, .has_palette = true}, - [RGB565_16BPP] = {.bpp = 16, .has_palette = false}, - [RGB888_24BPP] = {.bpp = 24, .has_palette = false}, + [GRAYSCALE_1BPP] = {.bpp = 1, .has_palette = false, .is_panel_native = false}, + [GRAYSCALE_2BPP] = {.bpp = 2, .has_palette = false, .is_panel_native = false}, + [GRAYSCALE_4BPP] = {.bpp = 4, .has_palette = false, .is_panel_native = false}, + [GRAYSCALE_8BPP] = {.bpp = 8, .has_palette = false, .is_panel_native = false}, + [PALETTE_1BPP] = {.bpp = 1, .has_palette = true, .is_panel_native = false}, + [PALETTE_2BPP] = {.bpp = 2, .has_palette = true, .is_panel_native = false}, + [PALETTE_4BPP] = {.bpp = 4, .has_palette = true, .is_panel_native = false}, + [PALETTE_8BPP] = {.bpp = 8, .has_palette = true, .is_panel_native = false}, + [RGB565_16BPP] = {.bpp = 16, .has_palette = false, .is_panel_native = true}, + [RGB888_24BPP] = {.bpp = 24, .has_palette = false, .is_panel_native = true}, }; // clang-format on @@ -56,13 +57,16 @@ bool qgf_parse_format(qp_image_format_t format, uint8_t *bpp, bool *has_palette) if (has_palette) { *has_palette = formats[format].has_palette; } + if (is_panel_native) { + *is_panel_native = formats[format].is_panel_native; + } return true; } -bool qgf_parse_frame_descriptor(qgf_frame_v1_t *frame_descriptor, uint8_t *bpp, bool *has_palette, bool *is_delta, painter_compression_t *compression_scheme, uint16_t *delay) { +bool qgf_parse_frame_descriptor(qgf_frame_v1_t *frame_descriptor, uint8_t *bpp, bool *has_palette, bool *is_panel_native, bool *is_delta, painter_compression_t *compression_scheme, uint16_t *delay) { // Decode the format - qgf_parse_format(frame_descriptor->format, bpp, has_palette); + qgf_parse_format(frame_descriptor->format, bpp, has_palette, is_panel_native); // Copy out the required info if (is_delta) { @@ -173,7 +177,7 @@ void qgf_seek_to_frame_descriptor(qp_stream_t *stream, uint16_t frame_number) { qp_stream_setpos(stream, offset); } -bool qgf_validate_frame_descriptor(qp_stream_t *stream, uint16_t frame_number, uint8_t *bpp, bool *has_palette, bool *is_delta) { +bool qgf_validate_frame_descriptor(qp_stream_t *stream, uint16_t frame_number, uint8_t *bpp, bool *has_palette, bool *is_panel_native, bool *is_delta) { // Seek to the correct location qgf_seek_to_frame_descriptor(stream, frame_number); @@ -189,7 +193,7 @@ bool qgf_validate_frame_descriptor(qp_stream_t *stream, uint16_t frame_number, u return false; } - return qgf_parse_frame_descriptor(&frame_descriptor, bpp, has_palette, is_delta, NULL, NULL); + return qgf_parse_frame_descriptor(&frame_descriptor, bpp, has_palette, is_panel_native, is_delta, NULL, NULL); } bool qgf_validate_palette_descriptor(qp_stream_t *stream, uint16_t frame_number, uint8_t bpp) { @@ -253,8 +257,9 @@ bool qgf_validate_stream(qp_stream_t *stream) { // Validate the frame descriptor block uint8_t bpp; bool has_palette; + bool is_panel_native; bool has_delta; - if (!qgf_validate_frame_descriptor(stream, i, &bpp, &has_palette, &has_delta)) { + if (!qgf_validate_frame_descriptor(stream, i, &bpp, &has_palette, &is_panel_native, &has_delta)) { return false; } diff --git a/quantum/painter/qgf.h b/quantum/painter/qgf.h index 54585edd04..33a37709e6 100644 --- a/quantum/painter/qgf.h +++ b/quantum/painter/qgf.h @@ -65,7 +65,7 @@ _Static_assert(sizeof(qgf_frame_offsets_v1_t) == sizeof(qgf_block_header_v1_t), typedef struct QP_PACKED qgf_frame_v1_t { qgf_block_header_v1_t header; // = { .type_id = 0x02, .neg_type_id = (~0x02), .length = 6 } - qp_image_format_t format : 8; // Frame format, see qp.h. + qp_image_format_t format : 8; // Frame format, see qp_internal_formats.h. uint8_t flags; // Frame flags, see below. painter_compression_t compression_scheme : 8; // Compression scheme, see qp.h. uint8_t transparency_index; // palette index used for transparent pixels (not yet implemented) @@ -131,6 +131,6 @@ uint32_t qgf_get_total_size(qp_stream_t *stream); bool qgf_validate_stream(qp_stream_t *stream); bool qgf_validate_block_header(qgf_block_header_v1_t *desc, uint8_t expected_typeid, int32_t expected_length); bool qgf_read_graphics_descriptor(qp_stream_t *stream, uint16_t *image_width, uint16_t *image_height, uint16_t *frame_count, uint32_t *total_bytes); -bool qgf_parse_format(qp_image_format_t format, uint8_t *bpp, bool *has_palette); +bool qgf_parse_format(qp_image_format_t format, uint8_t *bpp, bool *has_palette, bool *is_panel_native); void qgf_seek_to_frame_descriptor(qp_stream_t *stream, uint16_t frame_number); -bool qgf_parse_frame_descriptor(qgf_frame_v1_t *frame_descriptor, uint8_t *bpp, bool *has_palette, bool *is_delta, painter_compression_t *compression_scheme, uint16_t *delay); +bool qgf_parse_frame_descriptor(qgf_frame_v1_t *frame_descriptor, uint8_t *bpp, bool *has_palette, bool *is_panel_native, bool *is_delta, painter_compression_t *compression_scheme, uint16_t *delay); diff --git a/quantum/painter/qp.c b/quantum/painter/qp.c index 609163afe2..dc69789484 100644 --- a/quantum/painter/qp.c +++ b/quantum/painter/qp.c @@ -12,11 +12,11 @@ // Internal driver validation static bool validate_driver_vtable(painter_driver_t *driver) { - return (driver->driver_vtable && driver->driver_vtable->init && driver->driver_vtable->power && driver->driver_vtable->clear && driver->driver_vtable->viewport && driver->driver_vtable->pixdata && driver->driver_vtable->palette_convert && driver->driver_vtable->append_pixels && driver->driver_vtable->append_pixdata) ? true : false; + return (driver && driver->driver_vtable && driver->driver_vtable->init && driver->driver_vtable->power && driver->driver_vtable->clear && driver->driver_vtable->viewport && driver->driver_vtable->pixdata && driver->driver_vtable->palette_convert && driver->driver_vtable->append_pixels && driver->driver_vtable->append_pixdata) ? true : false; } static bool validate_comms_vtable(painter_driver_t *driver) { - return (driver->comms_vtable && driver->comms_vtable->comms_init && driver->comms_vtable->comms_start && driver->comms_vtable->comms_stop && driver->comms_vtable->comms_send) ? true : false; + return (driver && driver->comms_vtable && driver->comms_vtable->comms_init && driver->comms_vtable->comms_start && driver->comms_vtable->comms_stop && driver->comms_vtable->comms_send) ? true : false; } static bool validate_driver_integrity(painter_driver_t *driver) { diff --git a/quantum/painter/qp.h b/quantum/painter/qp.h index 68cb40aa59..873a9d9f32 100644 --- a/quantum/painter/qp.h +++ b/quantum/painter/qp.h @@ -539,6 +539,12 @@ int16_t qp_drawtext_recolor(painter_device_t device, uint16_t x, uint16_t y, pai # define SSD1351_NUM_DEVICES 0 #endif // QUANTUM_PAINTER_SSD1351_ENABLE +#ifdef QUANTUM_PAINTER_SH1106_ENABLE +# include "qp_sh1106.h" +#else // QUANTUM_PAINTER_SH1106_ENABLE +# define SH1106_NUM_DEVICES 0 +#endif // QUANTUM_PAINTER_SH1106_ENABLE + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Quantum Painter Extras diff --git a/quantum/painter/qp_draw_image.c b/quantum/painter/qp_draw_image.c index fb17a05a1b..87c59148c2 100644 --- a/quantum/painter/qp_draw_image.c +++ b/quantum/painter/qp_draw_image.c @@ -115,6 +115,7 @@ typedef struct qgf_frame_info_t { painter_compression_t compression_scheme; uint8_t bpp; bool has_palette; + bool is_panel_native; bool is_delta; uint16_t left; uint16_t top; @@ -143,7 +144,7 @@ static bool qp_drawimage_prepare_frame_for_stream_read(painter_device_t device, } // Parse out the frame info - if (!qgf_parse_frame_descriptor(&frame_descriptor, &info->bpp, &info->has_palette, &info->is_delta, &info->compression_scheme, &info->delay)) { + if (!qgf_parse_frame_descriptor(&frame_descriptor, &info->bpp, &info->has_palette, &info->is_panel_native, &info->is_delta, &info->compression_scheme, &info->delay)) { return false; } @@ -236,8 +237,8 @@ static bool qp_drawimage_recolor_impl(painter_device_t device, uint16_t x, uint1 if (frame_info->is_delta) { l = x + frame_info->left; t = y + frame_info->top; - r = x + frame_info->right - 1; - b = y + frame_info->bottom - 1; + r = x + frame_info->right; + b = y + frame_info->bottom; } else { l = x; t = y; @@ -263,7 +264,7 @@ static bool qp_drawimage_recolor_impl(painter_device_t device, uint16_t x, uint1 } bool ret = false; - if (frame_info->bpp <= 8) { + if (!frame_info->is_panel_native) { // Set up the output state qp_internal_pixel_output_state_t output_state = {.device = device, .pixel_write_pos = 0, .max_pixels = qp_internal_num_pixels_in_buffer(device)}; diff --git a/quantum/painter/qp_draw_text.c b/quantum/painter/qp_draw_text.c index ff6fc01d11..1ac5cab646 100644 --- a/quantum/painter/qp_draw_text.c +++ b/quantum/painter/qp_draw_text.c @@ -19,6 +19,7 @@ typedef struct qff_font_handle_t { uint16_t num_unicode_glyphs; uint8_t bpp; bool has_palette; + bool is_panel_native; painter_compression_t compression_scheme; union { qp_stream_t stream; @@ -97,7 +98,7 @@ static painter_font_handle_t qp_load_font_internal(bool (*stream_factory)(qff_fo #endif // QUANTUM_PAINTER_LOAD_FONTS_TO_RAM // Read the info (parsing already successful above, no need to check return value) - qff_read_font_descriptor(&font->stream, &font->base.line_height, &font->has_ascii_table, &font->num_unicode_glyphs, &font->bpp, &font->has_palette, &font->compression_scheme, NULL); + qff_read_font_descriptor(&font->stream, &font->base.line_height, &font->has_ascii_table, &font->num_unicode_glyphs, &font->bpp, &font->has_palette, &font->is_panel_native, &font->compression_scheme, NULL); if (!qp_internal_bpp_capable(font->bpp)) { qp_dprintf("qp_load_font: fail (image bpp too high (%d), check QUANTUM_PAINTER_SUPPORTS_256_PALETTE or QUANTUM_PAINTER_SUPPORTS_NATIVE_COLORS)\n", (int)font->bpp); diff --git a/quantum/painter/qp_internal.c b/quantum/painter/qp_internal.c index 87a30c3f9b..0e81467e26 100644 --- a/quantum/painter/qp_internal.c +++ b/quantum/painter/qp_internal.c @@ -16,6 +16,7 @@ enum { + (ST7735_NUM_DEVICES) // ST7735 + (GC9A01_NUM_DEVICES) // GC9A01 + (SSD1351_NUM_DEVICES) // SSD1351 + + (SH1106_NUM_DEVICES) // SH1106 }; static painter_device_t qp_devices[QP_NUM_DEVICES] = {NULL}; diff --git a/quantum/painter/qp_internal_formats.h b/quantum/painter/qp_internal_formats.h index 194f82b31a..1beb604b9e 100644 --- a/quantum/painter/qp_internal_formats.h +++ b/quantum/painter/qp_internal_formats.h @@ -44,8 +44,8 @@ typedef enum qp_image_format_t { PALETTE_2BPP = 0x05, PALETTE_4BPP = 0x06, PALETTE_8BPP = 0x07, - RGB565_16BPP = 0x08, - RGB888_24BPP = 0x09, + RGB565_16BPP = 0x08, // Natively streamed to the panel, no interpolation or palette handling + RGB888_24BPP = 0x09, // Natively streamed to the panel, no interpolation or palette handling } qp_image_format_t; typedef enum painter_compression_t { IMAGE_UNCOMPRESSED, IMAGE_COMPRESSED_RLE } painter_compression_t; diff --git a/quantum/painter/rules.mk b/quantum/painter/rules.mk index 7752936cbd..ca81cffb03 100644 --- a/quantum/painter/rules.mk +++ b/quantum/painter/rules.mk @@ -6,14 +6,16 @@ QUANTUM_PAINTER_LVGL_INTEGRATION ?= no # The list of permissible drivers that can be listed in QUANTUM_PAINTER_DRIVERS VALID_QUANTUM_PAINTER_DRIVERS := \ - rgb565_surface \ - ili9163_spi \ - ili9341_spi \ - ili9488_spi \ - st7735_spi \ - st7789_spi \ - gc9a01_spi \ - ssd1351_spi + surface \ + ili9163_spi \ + ili9341_spi \ + ili9488_spi \ + st7735_spi \ + st7789_spi \ + gc9a01_spi \ + ssd1351_spi \ + sh1106_i2c \ + sh1106_spi #------------------------------------------------------------------------------- @@ -42,7 +44,9 @@ ifeq ($(strip $(QUANTUM_PAINTER_ANIMATIONS_ENABLE)), yes) endif # Comms flags +QUANTUM_PAINTER_NEEDS_COMMS_DUMMY ?= no QUANTUM_PAINTER_NEEDS_COMMS_SPI ?= no +QUANTUM_PAINTER_NEEDS_COMMS_I2C ?= no # Handler for each driver define handle_quantum_painter_driver @@ -51,12 +55,8 @@ define handle_quantum_painter_driver ifeq ($$(filter $$(strip $$(CURRENT_PAINTER_DRIVER)),$$(VALID_QUANTUM_PAINTER_DRIVERS)),) $$(error "$$(CURRENT_PAINTER_DRIVER)" is not a valid Quantum Painter driver) - else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),rgb565_surface) - OPT_DEFS += -DQUANTUM_PAINTER_RGB565_SURFACE_ENABLE - COMMON_VPATH += \ - $(DRIVER_PATH)/painter/generic - SRC += \ - $(DRIVER_PATH)/painter/generic/qp_rgb565_surface.c \ + else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),surface) + QUANTUM_PAINTER_NEEDS_SURFACE := yes else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),ili9163_spi) QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes @@ -135,16 +135,60 @@ define handle_quantum_painter_driver $(DRIVER_PATH)/painter/tft_panel/qp_tft_panel.c \ $(DRIVER_PATH)/painter/ssd1351/qp_ssd1351.c + else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),sh1106_spi) + QUANTUM_PAINTER_NEEDS_SURFACE := yes + QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes + QUANTUM_PAINTER_NEEDS_COMMS_SPI_DC_RESET := yes + OPT_DEFS += -DQUANTUM_PAINTER_SH1106_ENABLE -DQUANTUM_PAINTER_SH1106_SPI_ENABLE + COMMON_VPATH += \ + $(DRIVER_PATH)/painter/oled_panel \ + $(DRIVER_PATH)/painter/sh1106 + SRC += \ + $(DRIVER_PATH)/painter/oled_panel/qp_oled_panel.c \ + $(DRIVER_PATH)/painter/sh1106/qp_sh1106.c + + else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),sh1106_i2c) + QUANTUM_PAINTER_NEEDS_SURFACE := yes + QUANTUM_PAINTER_NEEDS_COMMS_I2C := yes + OPT_DEFS += -DQUANTUM_PAINTER_SH1106_ENABLE -DQUANTUM_PAINTER_SH1106_I2C_ENABLE + COMMON_VPATH += \ + $(DRIVER_PATH)/painter/oled_panel \ + $(DRIVER_PATH)/painter/sh1106 + SRC += \ + $(DRIVER_PATH)/painter/oled_panel/qp_oled_panel.c \ + $(DRIVER_PATH)/painter/sh1106/qp_sh1106.c + endif endef # Iterate through the listed drivers for the build, including what's necessary $(foreach qp_driver,$(QUANTUM_PAINTER_DRIVERS),$(eval $(call handle_quantum_painter_driver,$(qp_driver)))) +# If a surface is needed, set up the required files +ifeq ($(strip $(QUANTUM_PAINTER_NEEDS_SURFACE)), yes) + QUANTUM_PAINTER_NEEDS_COMMS_DUMMY := yes + OPT_DEFS += -DQUANTUM_PAINTER_SURFACE_ENABLE + COMMON_VPATH += \ + $(DRIVER_PATH)/painter/generic + SRC += \ + $(DRIVER_PATH)/painter/generic/qp_surface_common.c \ + $(DRIVER_PATH)/painter/generic/qp_surface_mono1bpp.c \ + $(DRIVER_PATH)/painter/generic/qp_surface_rgb565.c +endif + +# If dummy comms is needed, set up the required files +ifeq ($(strip $(QUANTUM_PAINTER_NEEDS_COMMS_DUMMY)), yes) + OPT_DEFS += -DQUANTUM_PAINTER_DUMMY_COMMS_ENABLE + VPATH += $(DRIVER_PATH)/painter/comms + SRC += \ + $(QUANTUM_DIR)/painter/qp_comms.c \ + $(DRIVER_PATH)/painter/comms/qp_comms_dummy.c +endif + # If SPI comms is needed, set up the required files ifeq ($(strip $(QUANTUM_PAINTER_NEEDS_COMMS_SPI)), yes) OPT_DEFS += -DQUANTUM_PAINTER_SPI_ENABLE - QUANTUM_LIB_SRC += spi_master.c + SPI_DRIVER_REQUIRED = yes VPATH += $(DRIVER_PATH)/painter/comms SRC += \ $(QUANTUM_DIR)/painter/qp_comms.c \ @@ -155,7 +199,17 @@ ifeq ($(strip $(QUANTUM_PAINTER_NEEDS_COMMS_SPI)), yes) endif endif +# If I2C comms is needed, set up the required files +ifeq ($(strip $(QUANTUM_PAINTER_NEEDS_COMMS_I2C)), yes) + OPT_DEFS += -DQUANTUM_PAINTER_I2C_ENABLE + I2C_DRIVER_REQUIRED = yes + VPATH += $(DRIVER_PATH)/painter/comms + SRC += \ + $(QUANTUM_DIR)/painter/qp_comms.c \ + $(DRIVER_PATH)/painter/comms/qp_comms_i2c.c +endif + # Check if LVGL needs to be enabled ifeq ($(strip $(QUANTUM_PAINTER_LVGL_INTEGRATION)), yes) - include $(QUANTUM_DIR)/painter/lvgl/rules.mk + include $(QUANTUM_DIR)/painter/lvgl/rules.mk endif From 4410e6b3bf2554b0b6bb73445dd3ce6bdabe028e Mon Sep 17 00:00:00 2001 From: Andrey Tutolmin <45759479+tutolmin@users.noreply.github.com> Date: Sun, 22 Oct 2023 13:44:44 +0300 Subject: [PATCH 296/496] Russian typewriter keymap file for popular legacy layout (#21174) Co-authored-by: Andrei Tutolmin --- .../keycodes_russian_typewriter_0.0.1.hjson | 291 ++++++++++++++++++ .../keymap_extras/keymap_russian_typewriter.h | 93 ++++++ 2 files changed, 384 insertions(+) create mode 100644 data/constants/keycodes/extras/keycodes_russian_typewriter_0.0.1.hjson create mode 100644 quantum/keymap_extras/keymap_russian_typewriter.h diff --git a/data/constants/keycodes/extras/keycodes_russian_typewriter_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_russian_typewriter_0.0.1.hjson new file mode 100644 index 0000000000..6ad03c58e5 --- /dev/null +++ b/data/constants/keycodes/extras/keycodes_russian_typewriter_0.0.1.hjson @@ -0,0 +1,291 @@ +{ + "aliases": { +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ | │ № │ - │ / │ " │ : │ , │ . │ _ │ ? │ % │ ! │ ; │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ Й │ Ц │ У │ К │ Е │ Н │ Г │ Ш │ Щ │ З │ Х │ Ъ │ ) │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ │ Ф │ Ы │ В │ А │ П │ Р │ О │ Л │ Д │ Ж │ Э │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ │ Я │ Ч │ С │ М │ И │ Т │ Ь │ Б │ Ю │ Ё │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + "KC_GRV": { + "key": "RU_PIPE", + "label": "|", + } + "KC_1": { + "key": "RU_NUM", + "label": "№", + } + "KC_2": { + "key": "RU_MINS", + "label": "-", + } + "KC_3": { + "key": "RU_SLSH", + "label": "/", + } + "KC_4": { + "key": "RU_DQUO", + "label": "\"", + } + "KC_5": { + "key": "RU_COLN", + "label": ":", + } + "KC_6": { + "key": "RU_COMM", + "label": ",", + } + "KC_7": { + "key": "RU_DOT", + "label": ".", + } + "KC_8": { + "key": "RU_UNDS", + "label": "_", + } + "KC_9": { + "key": "RU_QUES", + "label": "?", + } + "KC_0": { + "key": "RU_PERC", + "label": "%", + } + "KC_MINS": { + "key": "RU_EXLM", + "label": "!", + } + "KC_EQL": { + "key": "RU_SCLN", + "label": ";", + } + "KC_Q": { + "key": "RU_SHTI", + "label": "Й", + } + "KC_W": { + "key": "RU_TSE", + "label": "Ц", + } + "KC_E": { + "key": "RU_U", + "label": "У", + } + "KC_R": { + "key": "RU_KA", + "label": "К", + } + "KC_T": { + "key": "RU_IE", + "label": "Е", + } + "KC_Y": { + "key": "RU_EN", + "label": "Н", + } + "KC_U": { + "key": "RU_GHE", + "label": "Г", + } + "KC_I": { + "key": "RU_SHA", + "label": "Ш", + } + "KC_O": { + "key": "RU_SHCH", + "label": "Щ", + } + "KC_P": { + "key": "RU_ZE", + "label": "З", + } + "KC_LBRC": { + "key": "RU_HA", + "label": "Х", + } + "KC_RBRC": { + "key": "RU_HARD", + "label": "Ъ", + } + "KC_BSLS": { + "key": "RU_RPRN", + "label": ")", + } + "KC_A": { + "key": "RU_EF", + "label": "Ф", + } + "KC_S": { + "key": "RU_YERU", + "label": "Ы", + } + "KC_D": { + "key": "RU_VE", + "label": "В", + } + "KC_F": { + "key": "RU_A", + "label": "А", + } + "KC_G": { + "key": "RU_PE", + "label": "П", + } + "KC_H": { + "key": "RU_ER", + "label": "Р", + } + "KC_J": { + "key": "RU_O", + "label": "О", + } + "KC_K": { + "key": "RU_EL", + "label": "Л", + } + "KC_L": { + "key": "RU_DE", + "label": "Д", + } + "KC_SCLN": { + "key": "RU_ZHE", + "label": "Ж", + } + "KC_QUOT": { + "key": "RU_E", + "label": "Э", + } + "KC_Z": { + "key": "RU_YA", + "label": "Я", + } + "KC_X": { + "key": "RU_CHE", + "label": "Ч", + } + "KC_C": { + "key": "RU_ES", + "label": "С", + } + "KC_V": { + "key": "RU_EM", + "label": "М", + } + "KC_B": { + "key": "RU_I", + "label": "И", + } + "KC_N": { + "key": "RU_TE", + "label": "Т", + } + "KC_M": { + "key": "RU_SOFT", + "label": "Ь", + } + "KC_COMM": { + "key": "RU_BE", + "label": "Б", + } + "KC_DOT": { + "key": "RU_YU", + "label": "Ю", + } + "KC_SLSH": { + "key": "RU_YO", + "label": "Ё", + } +/* Shifted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ + │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ = │ \ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ ( │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + "S(RU_PIPE)": { + "key": "RU_PLUS", + "label": "+", + } + "S(RU_NUM)": { + "key": "RU_1", + "label": "1", + } + "S(RU_MINS)": { + "key": "RU_2", + "label": "2", + } + "S(RU_SLSH)": { + "key": "RU_3", + "label": "3", + } + "S(RU_DQUO)": { + "key": "RU_4", + "label": "4", + } + "S(RU_COLN)": { + "key": "RU_5", + "label": "5", + } + "S(RU_COMM)": { + "key": "RU_6", + "label": "6", + } + "S(RU_DOT)": { + "key": "RU_7", + "label": "7", + } + "S(RU_UNDS)": { + "key": "RU_8", + "label": "8", + } + "S(RU_QUES)": { + "key": "RU_9", + "label": "9", + } + "S(RU_PERC)": { + "key": "RU_0", + "label": "0", + } + "S(RU_EXLM)": { + "key": "RU_EQL", + "label": "=", + } + "S(RU_SCLN)": { + "key": "RU_BSLS", + "label": "\\", + } + "S(RU_RPRN)": { + "key": "RU_LPRN", + "label": "(", + } +/* AltGr symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ │ │ │ │ │ │ │ │ ₽ │ │ │ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + "ALGR(RU_UNDS)": { + "key": "RU_RUBL", + "label": "₽", + } + } +} diff --git a/quantum/keymap_extras/keymap_russian_typewriter.h b/quantum/keymap_extras/keymap_russian_typewriter.h new file mode 100644 index 0000000000..59f341e38b --- /dev/null +++ b/quantum/keymap_extras/keymap_russian_typewriter.h @@ -0,0 +1,93 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +/******************************************************************************* + 88888888888 888 d8b .d888 d8b 888 d8b + 888 888 Y8P d88P" Y8P 888 Y8P + 888 888 888 888 + 888 88888b. 888 .d8888b 888888 888 888 .d88b. 888 .d8888b + 888 888 "88b 888 88K 888 888 888 d8P Y8b 888 88K + 888 888 888 888 "Y8888b. 888 888 888 88888888 888 "Y8888b. + 888 888 888 888 X88 888 888 888 Y8b. 888 X88 + 888 888 888 888 88888P' 888 888 888 "Y8888 888 88888P' + 888 888 + 888 888 + 888 888 + .d88b. .d88b. 88888b. .d88b. 888d888 8888b. 888888 .d88b. .d88888 + d88P"88b d8P Y8b 888 "88b d8P Y8b 888P" "88b 888 d8P Y8b d88" 888 + 888 888 88888888 888 888 88888888 888 .d888888 888 88888888 888 888 + Y88b 888 Y8b. 888 888 Y8b. 888 888 888 Y88b. Y8b. Y88b 888 + "Y88888 "Y8888 888 888 "Y8888 888 "Y888888 "Y888 "Y8888 "Y88888 + 888 + Y8b d88P + "Y88P" +*******************************************************************************/ + +#pragma once +#include "keycodes.h" +// clang-format off + +// Aliases +#define RU_PIPE KC_GRV // | +#define RU_NUM KC_1 // № +#define RU_MINS KC_2 // - +#define RU_SLSH KC_3 // / +#define RU_DQUO KC_4 // " +#define RU_COLN KC_5 // : +#define RU_COMM KC_6 // , +#define RU_DOT KC_7 // . +#define RU_UNDS KC_8 // _ +#define RU_QUES KC_9 // ? +#define RU_PERC KC_0 // % +#define RU_EXLM KC_MINS // ! +#define RU_SCLN KC_EQL // ; +#define RU_SHTI KC_Q // Й +#define RU_TSE KC_W // Ц +#define RU_U KC_E // У +#define RU_KA KC_R // К +#define RU_IE KC_T // Е +#define RU_EN KC_Y // Н +#define RU_GHE KC_U // Г +#define RU_SHA KC_I // Ш +#define RU_SHCH KC_O // Щ +#define RU_ZE KC_P // З +#define RU_HA KC_LBRC // Х +#define RU_HARD KC_RBRC // Ъ +#define RU_RPRN KC_BSLS // ) +#define RU_EF KC_A // Ф +#define RU_YERU KC_S // Ы +#define RU_VE KC_D // В +#define RU_A KC_F // А +#define RU_PE KC_G // П +#define RU_ER KC_H // Р +#define RU_O KC_J // О +#define RU_EL KC_K // Л +#define RU_DE KC_L // Д +#define RU_ZHE KC_SCLN // Ж +#define RU_E KC_QUOT // Э +#define RU_YA KC_Z // Я +#define RU_CHE KC_X // Ч +#define RU_ES KC_C // С +#define RU_EM KC_V // М +#define RU_I KC_B // И +#define RU_TE KC_N // Т +#define RU_SOFT KC_M // Ь +#define RU_BE KC_COMM // Б +#define RU_YU KC_DOT // Ю +#define RU_YO KC_SLSH // Ё +#define RU_PLUS S(RU_PIPE) // + +#define RU_1 S(RU_NUM) // 1 +#define RU_2 S(RU_MINS) // 2 +#define RU_3 S(RU_SLSH) // 3 +#define RU_4 S(RU_DQUO) // 4 +#define RU_5 S(RU_COLN) // 5 +#define RU_6 S(RU_COMM) // 6 +#define RU_7 S(RU_DOT) // 7 +#define RU_8 S(RU_UNDS) // 8 +#define RU_9 S(RU_QUES) // 9 +#define RU_0 S(RU_PERC) // 0 +#define RU_EQL S(RU_EXLM) // = +#define RU_BSLS S(RU_SCLN) // (backslash) +#define RU_LPRN S(RU_RPRN) // ( +#define RU_RUBL ALGR(RU_UNDS) // ₽ + From 1e9b299fb0511e82ae60a4b39a1b277f4ea21afd Mon Sep 17 00:00:00 2001 From: studiokestra <74369928+studiokestra@users.noreply.github.com> Date: Sun, 22 Oct 2023 08:56:46 -0600 Subject: [PATCH 297/496] Rename LINE FRIENDS TKL keyboard (#22310) --- data/mappings/keyboard_aliases.hjson | 3 +++ .../{line_tkl => line_friends_tkl}/config.h | 0 .../{line_tkl => line_friends_tkl}/info.json | 2 +- .../keymaps/default/keymap.c | 0 .../keymaps/split_bs_rshift/keymap.c | 0 .../keymaps/via/keymap.c | 0 .../keymaps/via/rules.mk | 0 .../{line_tkl => line_friends_tkl}/readme.md | 10 +++++----- .../{line_tkl => line_friends_tkl}/rules.mk | 0 9 files changed, 9 insertions(+), 6 deletions(-) rename keyboards/studiokestra/{line_tkl => line_friends_tkl}/config.h (100%) rename keyboards/studiokestra/{line_tkl => line_friends_tkl}/info.json (99%) rename keyboards/studiokestra/{line_tkl => line_friends_tkl}/keymaps/default/keymap.c (100%) rename keyboards/studiokestra/{line_tkl => line_friends_tkl}/keymaps/split_bs_rshift/keymap.c (100%) rename keyboards/studiokestra/{line_tkl => line_friends_tkl}/keymaps/via/keymap.c (100%) rename keyboards/studiokestra/{line_tkl => line_friends_tkl}/keymaps/via/rules.mk (100%) rename keyboards/studiokestra/{line_tkl => line_friends_tkl}/readme.md (80%) rename keyboards/studiokestra/{line_tkl => line_friends_tkl}/rules.mk (100%) diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 4e602b6856..2e79431965 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -1236,6 +1236,9 @@ "stella": { "target": "hnahkb/stella" }, + "studiokestra/line_tkl": { + "target": "studiokestra/line_friends_tkl" + }, "suihankey/alpha": { "target": "kakunpc/suihankey/alpha" }, diff --git a/keyboards/studiokestra/line_tkl/config.h b/keyboards/studiokestra/line_friends_tkl/config.h similarity index 100% rename from keyboards/studiokestra/line_tkl/config.h rename to keyboards/studiokestra/line_friends_tkl/config.h diff --git a/keyboards/studiokestra/line_tkl/info.json b/keyboards/studiokestra/line_friends_tkl/info.json similarity index 99% rename from keyboards/studiokestra/line_tkl/info.json rename to keyboards/studiokestra/line_friends_tkl/info.json index 312dd6e5cf..38a149054c 100644 --- a/keyboards/studiokestra/line_tkl/info.json +++ b/keyboards/studiokestra/line_friends_tkl/info.json @@ -1,6 +1,6 @@ { "manufacturer": "Studio Kestra", - "keyboard_name": "Line TKL", + "keyboard_name": "LINE FRIENDS TKL", "maintainer": "studiokestra", "bootloader": "atmel-dfu", "diode_direction": "COL2ROW", diff --git a/keyboards/studiokestra/line_tkl/keymaps/default/keymap.c b/keyboards/studiokestra/line_friends_tkl/keymaps/default/keymap.c similarity index 100% rename from keyboards/studiokestra/line_tkl/keymaps/default/keymap.c rename to keyboards/studiokestra/line_friends_tkl/keymaps/default/keymap.c diff --git a/keyboards/studiokestra/line_tkl/keymaps/split_bs_rshift/keymap.c b/keyboards/studiokestra/line_friends_tkl/keymaps/split_bs_rshift/keymap.c similarity index 100% rename from keyboards/studiokestra/line_tkl/keymaps/split_bs_rshift/keymap.c rename to keyboards/studiokestra/line_friends_tkl/keymaps/split_bs_rshift/keymap.c diff --git a/keyboards/studiokestra/line_tkl/keymaps/via/keymap.c b/keyboards/studiokestra/line_friends_tkl/keymaps/via/keymap.c similarity index 100% rename from keyboards/studiokestra/line_tkl/keymaps/via/keymap.c rename to keyboards/studiokestra/line_friends_tkl/keymaps/via/keymap.c diff --git a/keyboards/studiokestra/line_tkl/keymaps/via/rules.mk b/keyboards/studiokestra/line_friends_tkl/keymaps/via/rules.mk similarity index 100% rename from keyboards/studiokestra/line_tkl/keymaps/via/rules.mk rename to keyboards/studiokestra/line_friends_tkl/keymaps/via/rules.mk diff --git a/keyboards/studiokestra/line_tkl/readme.md b/keyboards/studiokestra/line_friends_tkl/readme.md similarity index 80% rename from keyboards/studiokestra/line_tkl/readme.md rename to keyboards/studiokestra/line_friends_tkl/readme.md index a5d7ae0c41..48840ab9ba 100644 --- a/keyboards/studiokestra/line_tkl/readme.md +++ b/keyboards/studiokestra/line_friends_tkl/readme.md @@ -1,20 +1,20 @@ -# studiokestra/line_tkl +# studiokestra/line_friends_tkl -![studiokestra/line_tkl](https://i.imgur.com/3MmRQkh.png) +![studiokestra/line_friends_tkl](https://i.imgur.com/3MmRQkh.png) PCB developed for Mino Keys in collaboration with Line Friends (C). * Keyboard Maintainer: [Studio Kestra](https://github.com/studiokestra/) -* Hardware Supported: Line TKL +* Hardware Supported: LINE FRIENDS TKL * Hardware Availability: https://minokeys.com/collections/line-friends Make example for this keyboard (after setting up your build environment): - make studiokestra/line_tkl:default + make studiokestra/line_friends_tkl:default Flashing example for this keyboard: - make studiokestra/line_tkl:default:flash + make studiokestra/line_friends_tkl:default:flash 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). diff --git a/keyboards/studiokestra/line_tkl/rules.mk b/keyboards/studiokestra/line_friends_tkl/rules.mk similarity index 100% rename from keyboards/studiokestra/line_tkl/rules.mk rename to keyboards/studiokestra/line_friends_tkl/rules.mk From cf7d3435d7e2cfb8927a1c436320f67bc9914eeb Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 23 Oct 2023 03:32:27 +1000 Subject: [PATCH 298/496] Add `_flush()` functions to LED drivers (#22308) --- drivers/led/aw20216s.c | 7 + drivers/led/aw20216s.h | 2 + drivers/led/issi/is31fl3731-simple.c | 13 ++ drivers/led/issi/is31fl3731-simple.h | 2 + drivers/led/issi/is31fl3731.c | 13 ++ drivers/led/issi/is31fl3731.h | 2 + drivers/led/issi/is31fl3733-simple.c | 13 ++ drivers/led/issi/is31fl3733-simple.h | 2 + drivers/led/issi/is31fl3733.c | 13 ++ drivers/led/issi/is31fl3733.h | 2 + drivers/led/issi/is31fl3736-simple.c | 13 ++ drivers/led/issi/is31fl3736-simple.h | 2 + drivers/led/issi/is31fl3736.c | 13 ++ drivers/led/issi/is31fl3736.h | 2 + drivers/led/issi/is31fl3737-simple.c | 13 ++ drivers/led/issi/is31fl3737-simple.h | 2 + drivers/led/issi/is31fl3737.c | 13 ++ drivers/led/issi/is31fl3737.h | 2 + drivers/led/issi/is31fl3741-simple.c | 13 ++ drivers/led/issi/is31fl3741-simple.h | 2 + drivers/led/issi/is31fl3741.c | 13 ++ drivers/led/issi/is31fl3741.h | 2 + drivers/led/issi/is31flcommon.c | 13 ++ drivers/led/issi/is31flcommon.h | 2 + drivers/led/snled27351-simple.c | 13 ++ drivers/led/snled27351-simple.h | 2 + drivers/led/snled27351.c | 13 ++ drivers/led/snled27351.h | 2 + keyboards/aeboards/satellite/rev1/rev1.c | 23 +--- keyboards/fallacy/indicators.c | 2 +- keyboards/hs60/v2/ansi/config.h | 3 +- keyboards/hs60/v2/hhkb/config.h | 3 +- keyboards/hs60/v2/iso/config.h | 3 +- keyboards/inland/v83p/config.h | 6 +- keyboards/inland/v83p/info.json | 2 +- keyboards/inland/v83p/v83p.c | 2 +- keyboards/input_club/k_type/is31fl3733-dual.c | 7 + keyboards/input_club/k_type/is31fl3733-dual.h | 2 + .../input_club/k_type/k_type-rgbdriver.c | 9 +- keyboards/keebwerk/mega/ansi/config.h | 2 + .../mega/ansi/keymaps/jesusvallejo/keymap.c | 92 +++++++------- keyboards/matrix/m20add/rgb_ring.c | 2 +- keyboards/monsgeek/m3/config.h | 6 +- keyboards/monsgeek/m3/info.json | 2 +- keyboards/monsgeek/m3/m3.c | 2 +- keyboards/neson_design/700e/700e.c | 5 +- keyboards/neson_design/n6/n6.c | 5 +- keyboards/novelkeys/nk65/config.h | 2 + keyboards/novelkeys/nk87/config.h | 2 + keyboards/spaceholdings/nebula12/config.h | 1 + keyboards/spaceholdings/nebula68/config.h | 2 + keyboards/tkc/portico/config.h | 2 + keyboards/tkc/portico75/config.h | 1 + keyboards/wilba_tech/rama_works_kara/config.h | 2 + keyboards/wilba_tech/rama_works_koyu/config.h | 2 + .../wilba_tech/rama_works_m10_c/config.h | 1 + .../wilba_tech/rama_works_m50_a/config.h | 2 + .../wilba_tech/rama_works_m60_a/config.h | 2 + .../wilba_tech/rama_works_m65_b/config.h | 2 + .../wilba_tech/rama_works_m65_bx/config.h | 2 + .../wilba_tech/rama_works_u80_a/config.h | 3 + keyboards/wilba_tech/wt60_b/config.h | 2 + keyboards/wilba_tech/wt60_bx/config.h | 2 + keyboards/wilba_tech/wt60_c/config.h | 2 + keyboards/wilba_tech/wt_mono_backlight.c | 2 +- keyboards/wilba_tech/zeal60/config.h | 2 + keyboards/wilba_tech/zeal65/config.h | 2 + keyboards/xelus/dawn60/rev1/config.h | 2 + keyboards/xelus/pachi/rgb/rev1/rev1.c | 6 +- keyboards/xelus/pachi/rgb/rev2/rev2.c | 6 +- quantum/led_matrix/led_matrix_drivers.c | 111 ++-------------- quantum/rgb_matrix/rgb_matrix_drivers.c | 120 ++---------------- 72 files changed, 346 insertions(+), 319 deletions(-) diff --git a/drivers/led/aw20216s.c b/drivers/led/aw20216s.c index 078a694d30..988cb6e9f6 100644 --- a/drivers/led/aw20216s.c +++ b/drivers/led/aw20216s.c @@ -166,3 +166,10 @@ void aw20216s_update_pwm_buffers(pin_t cs_pin, uint8_t index) { } g_pwm_buffer_update_required[index] = false; } + +void aw20216s_flush(void) { + aw20216s_update_pwm_buffers(AW20216S_CS_PIN_1, 0); +#if defined(AW20216S_CS_PIN_2) + aw20216s_update_pwm_buffers(AW20216S_CS_PIN_2, 1); +#endif +} diff --git a/drivers/led/aw20216s.h b/drivers/led/aw20216s.h index f8c0efcc6f..8abc2ee4af 100644 --- a/drivers/led/aw20216s.h +++ b/drivers/led/aw20216s.h @@ -68,6 +68,8 @@ void aw20216s_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); void aw20216s_set_color_all(uint8_t red, uint8_t green, uint8_t blue); void aw20216s_update_pwm_buffers(pin_t cs_pin, uint8_t index); +void aw20216s_flush(void); + #define CS1_SW1 0x00 #define CS2_SW1 0x01 #define CS3_SW1 0x02 diff --git a/drivers/led/issi/is31fl3731-simple.c b/drivers/led/issi/is31fl3731-simple.c index f9ad703ced..adf2ccfca0 100644 --- a/drivers/led/issi/is31fl3731-simple.c +++ b/drivers/led/issi/is31fl3731-simple.c @@ -211,3 +211,16 @@ void is31fl3731_update_led_control_registers(uint8_t addr, uint8_t index) { g_led_control_registers_update_required[index] = false; } } + +void is31fl3731_flush(void) { + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0); +#if defined(IS31FL3731_I2C_ADDRESS_2) + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_2, 1); +# if defined(IS31FL3731_I2C_ADDRESS_3) + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_3, 2); +# if defined(IS31FL3731_I2C_ADDRESS_4) + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_4, 3); +# endif +# endif +#endif +} diff --git a/drivers/led/issi/is31fl3731-simple.h b/drivers/led/issi/is31fl3731-simple.h index 3233fdc0d7..69d38e74da 100644 --- a/drivers/led/issi/is31fl3731-simple.h +++ b/drivers/led/issi/is31fl3731-simple.h @@ -80,6 +80,8 @@ void is31fl3731_set_led_control_register(uint8_t index, bool value); void is31fl3731_update_pwm_buffers(uint8_t addr, uint8_t index); void is31fl3731_update_led_control_registers(uint8_t addr, uint8_t index); +void is31fl3731_flush(void); + #define C1_1 0x24 #define C1_2 0x25 #define C1_3 0x26 diff --git a/drivers/led/issi/is31fl3731.c b/drivers/led/issi/is31fl3731.c index a30e8fcbc2..767c0da0d9 100644 --- a/drivers/led/issi/is31fl3731.c +++ b/drivers/led/issi/is31fl3731.c @@ -223,3 +223,16 @@ void is31fl3731_update_led_control_registers(uint8_t addr, uint8_t index) { } g_led_control_registers_update_required[index] = false; } + +void is31fl3731_flush(void) { + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0); +#if defined(IS31FL3731_I2C_ADDRESS_2) + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_2, 1); +# if defined(IS31FL3731_I2C_ADDRESS_3) + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_3, 2); +# if defined(IS31FL3731_I2C_ADDRESS_4) + is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_4, 3); +# endif +# endif +#endif +} diff --git a/drivers/led/issi/is31fl3731.h b/drivers/led/issi/is31fl3731.h index fff91bfdbf..cab6d40c5a 100644 --- a/drivers/led/issi/is31fl3731.h +++ b/drivers/led/issi/is31fl3731.h @@ -81,6 +81,8 @@ void is31fl3731_set_led_control_register(uint8_t index, bool red, bool green, bo void is31fl3731_update_pwm_buffers(uint8_t addr, uint8_t index); void is31fl3731_update_led_control_registers(uint8_t addr, uint8_t index); +void is31fl3731_flush(void); + #define C1_1 0x24 #define C1_2 0x25 #define C1_3 0x26 diff --git a/drivers/led/issi/is31fl3733-simple.c b/drivers/led/issi/is31fl3733-simple.c index e94b4c7d78..dbbf86a8f5 100644 --- a/drivers/led/issi/is31fl3733-simple.c +++ b/drivers/led/issi/is31fl3733-simple.c @@ -233,3 +233,16 @@ void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index) { g_led_control_registers_update_required[index] = false; } } + +void is31fl3733_flush(void) { + is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_1, 0); +#if defined(IS31FL3733_I2C_ADDRESS_2) + is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_2, 1); +# if defined(IS31FL3733_I2C_ADDRESS_3) + is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_3, 2); +# if defined(IS31FL3733_I2C_ADDRESS_4) + is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_4, 3); +# endif +# endif +#endif +} diff --git a/drivers/led/issi/is31fl3733-simple.h b/drivers/led/issi/is31fl3733-simple.h index 8041a7f0f3..b8a4530260 100644 --- a/drivers/led/issi/is31fl3733-simple.h +++ b/drivers/led/issi/is31fl3733-simple.h @@ -99,6 +99,8 @@ void is31fl3733_set_led_control_register(uint8_t index, bool value); void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index); void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index); +void is31fl3733_flush(void); + #define IS31FL3733_PUR_0R 0x00 // No PUR resistor #define IS31FL3733_PUR_05KR 0x02 // 0.5k Ohm resistor in t_NOL #define IS31FL3733_PUR_3KR 0x03 // 3.0k Ohm resistor on all the time diff --git a/drivers/led/issi/is31fl3733.c b/drivers/led/issi/is31fl3733.c index efc5929587..35ec96a55a 100644 --- a/drivers/led/issi/is31fl3733.c +++ b/drivers/led/issi/is31fl3733.c @@ -248,3 +248,16 @@ void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index) { g_led_control_registers_update_required[index] = false; } } + +void is31fl3733_flush(void) { + is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_1, 0); +#if defined(IS31FL3733_I2C_ADDRESS_2) + is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_2, 1); +# if defined(IS31FL3733_I2C_ADDRESS_3) + is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_3, 2); +# if defined(IS31FL3733_I2C_ADDRESS_4) + is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_4, 3); +# endif +# endif +#endif +} diff --git a/drivers/led/issi/is31fl3733.h b/drivers/led/issi/is31fl3733.h index e56d04f66f..2a02576979 100644 --- a/drivers/led/issi/is31fl3733.h +++ b/drivers/led/issi/is31fl3733.h @@ -124,6 +124,8 @@ void is31fl3733_set_led_control_register(uint8_t index, bool red, bool green, bo void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index); void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index); +void is31fl3733_flush(void); + #define IS31FL3733_PUR_0R 0x00 // No PUR resistor #define IS31FL3733_PUR_05KR 0x02 // 0.5k Ohm resistor in t_NOL #define IS31FL3733_PUR_3KR 0x03 // 3.0k Ohm resistor on all the time diff --git a/drivers/led/issi/is31fl3736-simple.c b/drivers/led/issi/is31fl3736-simple.c index f3f202efb2..d8262c3416 100644 --- a/drivers/led/issi/is31fl3736-simple.c +++ b/drivers/led/issi/is31fl3736-simple.c @@ -220,3 +220,16 @@ void is31fl3736_update_led_control_registers(uint8_t addr, uint8_t index) { g_led_control_registers_update_required[index] = false; } } + +void is31fl3736_flush(void) { + is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_1, 0); +#if defined(IS31FL3736_I2C_ADDRESS_2) + is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_2, 1); +# if defined(IS31FL3736_I2C_ADDRESS_3) + is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_3, 2); +# if defined(IS31FL3736_I2C_ADDRESS_4) + is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_4, 3); +# endif +# endif +#endif +} diff --git a/drivers/led/issi/is31fl3736-simple.h b/drivers/led/issi/is31fl3736-simple.h index d5525e460d..4f9dee47b0 100644 --- a/drivers/led/issi/is31fl3736-simple.h +++ b/drivers/led/issi/is31fl3736-simple.h @@ -94,6 +94,8 @@ void is31fl3736_set_led_control_register(uint8_t index, bool value); void is31fl3736_update_pwm_buffers(uint8_t addr, uint8_t index); void is31fl3736_update_led_control_registers(uint8_t addr, uint8_t index); +void is31fl3736_flush(void); + #define IS31FL3736_PUR_0R 0x00 // No PUR resistor #define IS31FL3736_PUR_05KR 0x01 // 0.5k Ohm resistor #define IS31FL3736_PUR_1KR 0x02 // 1.0k Ohm resistor diff --git a/drivers/led/issi/is31fl3736.c b/drivers/led/issi/is31fl3736.c index 03f50873df..4edf1b04c8 100644 --- a/drivers/led/issi/is31fl3736.c +++ b/drivers/led/issi/is31fl3736.c @@ -237,3 +237,16 @@ void is31fl3736_update_led_control_registers(uint8_t addr, uint8_t index) { g_led_control_registers_update_required[index] = false; } } + +void is31fl3736_flush(void) { + is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_1, 0); +#if defined(IS31FL3736_I2C_ADDRESS_2) + is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_2, 1); +# if defined(IS31FL3736_I2C_ADDRESS_3) + is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_3, 2); +# if defined(IS31FL3736_I2C_ADDRESS_4) + is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_4, 3); +# endif +# endif +#endif +} diff --git a/drivers/led/issi/is31fl3736.h b/drivers/led/issi/is31fl3736.h index 91312384ae..cd3505b0b6 100644 --- a/drivers/led/issi/is31fl3736.h +++ b/drivers/led/issi/is31fl3736.h @@ -108,6 +108,8 @@ void is31fl3736_set_led_control_register(uint8_t index, bool red, bool green, bo void is31fl3736_update_pwm_buffers(uint8_t addr, uint8_t index); void is31fl3736_update_led_control_registers(uint8_t addr, uint8_t index); +void is31fl3736_flush(void); + #define IS31FL3736_PUR_0R 0x00 // No PUR resistor #define IS31FL3736_PUR_05KR 0x01 // 0.5k Ohm resistor #define IS31FL3736_PUR_1KR 0x02 // 1.0k Ohm resistor diff --git a/drivers/led/issi/is31fl3737-simple.c b/drivers/led/issi/is31fl3737-simple.c index 3db7b7ed33..7a4263d9af 100644 --- a/drivers/led/issi/is31fl3737-simple.c +++ b/drivers/led/issi/is31fl3737-simple.c @@ -217,3 +217,16 @@ void is31fl3737_update_led_control_registers(uint8_t addr, uint8_t index) { g_led_control_registers_update_required[index] = false; } } + +void is31fl3737_flush(void) { + is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_1, 0); +#if defined(IS31FL3737_I2C_ADDRESS_2) + is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_2, 1); +# if defined(IS31FL3737_I2C_ADDRESS_3) + is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_3, 2); +# if defined(IS31FL3737_I2C_ADDRESS_4) + is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_4, 3); +# endif +# endif +#endif +} diff --git a/drivers/led/issi/is31fl3737-simple.h b/drivers/led/issi/is31fl3737-simple.h index 0f4e0d014b..106127e737 100644 --- a/drivers/led/issi/is31fl3737-simple.h +++ b/drivers/led/issi/is31fl3737-simple.h @@ -84,6 +84,8 @@ void is31fl3737_set_led_control_register(uint8_t index, bool value); void is31fl3737_update_pwm_buffers(uint8_t addr, uint8_t index); void is31fl3737_update_led_control_registers(uint8_t addr, uint8_t index); +void is31fl3737_flush(void); + #define IS31FL3737_PUR_0R 0x00 // No PUR resistor #define IS31FL3737_PUR_05KR 0x01 // 0.5k Ohm resistor in t_NOL #define IS31FL3737_PUR_1KR 0x02 // 1.0k Ohm resistor in t_NOL diff --git a/drivers/led/issi/is31fl3737.c b/drivers/led/issi/is31fl3737.c index c2af75bbb8..d769bb9707 100644 --- a/drivers/led/issi/is31fl3737.c +++ b/drivers/led/issi/is31fl3737.c @@ -233,3 +233,16 @@ void is31fl3737_update_led_control_registers(uint8_t addr, uint8_t index) { g_led_control_registers_update_required[index] = false; } } + +void is31fl3737_flush(void) { + is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_1, 0); +#if defined(IS31FL3737_I2C_ADDRESS_2) + is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_2, 1); +# if defined(IS31FL3737_I2C_ADDRESS_3) + is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_3, 2); +# if defined(IS31FL3737_I2C_ADDRESS_4) + is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_4, 3); +# endif +# endif +#endif +} diff --git a/drivers/led/issi/is31fl3737.h b/drivers/led/issi/is31fl3737.h index a2a81640f6..bb4afbcccb 100644 --- a/drivers/led/issi/is31fl3737.h +++ b/drivers/led/issi/is31fl3737.h @@ -101,6 +101,8 @@ void is31fl3737_set_led_control_register(uint8_t index, bool red, bool green, bo void is31fl3737_update_pwm_buffers(uint8_t addr, uint8_t index); void is31fl3737_update_led_control_registers(uint8_t addr, uint8_t index); +void is31fl3737_flush(void); + #define IS31FL3737_PUR_0R 0x00 // No PUR resistor #define IS31FL3737_PUR_05KR 0x01 // 0.5k Ohm resistor in t_NOL #define IS31FL3737_PUR_1KR 0x02 // 1.0k Ohm resistor in t_NOL diff --git a/drivers/led/issi/is31fl3741-simple.c b/drivers/led/issi/is31fl3741-simple.c index 93c02fbc26..c7335866ec 100644 --- a/drivers/led/issi/is31fl3741-simple.c +++ b/drivers/led/issi/is31fl3741-simple.c @@ -251,3 +251,16 @@ void is31fl3741_set_scaling_registers(const is31fl3741_led_t *pled, uint8_t valu g_scaling_registers_update_required[pled->driver] = true; } + +void is31fl3741_flush(void) { + is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_1, 0); +#if defined(IS31FL3741_I2C_ADDRESS_2) + is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_2, 1); +# if defined(IS31FL3741_I2C_ADDRESS_3) + is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_3, 2); +# if defined(IS31FL3741_I2C_ADDRESS_4) + is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_4, 3); +# endif +# endif +#endif +} diff --git a/drivers/led/issi/is31fl3741-simple.h b/drivers/led/issi/is31fl3741-simple.h index 46c058c644..29e6dc261d 100644 --- a/drivers/led/issi/is31fl3741-simple.h +++ b/drivers/led/issi/is31fl3741-simple.h @@ -87,6 +87,8 @@ void is31fl3741_set_scaling_registers(const is31fl3741_led_t *pled, uint8_t valu void is31fl3741_set_pwm_buffer(const is31fl3741_led *pled, uint8_t value); +void is31fl3741_flush(void); + #define IS31FL3741_PUR_0R 0x00 // No PUR resistor #define IS31FL3741_PUR_05KR 0x01 // 0.5k Ohm resistor #define IS31FL3741_PUR_1KR 0x02 // 1.0k Ohm resistor diff --git a/drivers/led/issi/is31fl3741.c b/drivers/led/issi/is31fl3741.c index 47c15a11ca..5e4ed711ca 100644 --- a/drivers/led/issi/is31fl3741.c +++ b/drivers/led/issi/is31fl3741.c @@ -269,3 +269,16 @@ void is31fl3741_set_scaling_registers(const is31fl3741_led_t *pled, uint8_t red, g_scaling_registers_update_required[pled->driver] = true; } + +void is31fl3741_flush(void) { + is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_1, 0); +#if defined(IS31FL3741_I2C_ADDRESS_2) + is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_2, 1); +# if defined(IS31FL3741_I2C_ADDRESS_3) + is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_3, 2); +# if defined(IS31FL3741_I2C_ADDRESS_4) + is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_4, 3); +# endif +# endif +#endif +} diff --git a/drivers/led/issi/is31fl3741.h b/drivers/led/issi/is31fl3741.h index 30fab248bc..aedbe89b93 100644 --- a/drivers/led/issi/is31fl3741.h +++ b/drivers/led/issi/is31fl3741.h @@ -104,6 +104,8 @@ void is31fl3741_set_scaling_registers(const is31fl3741_led_t *pled, uint8_t red, void is31fl3741_set_pwm_buffer(const is31fl3741_led_t *pled, uint8_t red, uint8_t green, uint8_t blue); +void is31fl3741_flush(void); + #define IS31FL3741_PUR_0R 0x00 // No PUR resistor #define IS31FL3741_PUR_05KR 0x01 // 0.5k Ohm resistor #define IS31FL3741_PUR_1KR 0x02 // 1.0k Ohm resistor diff --git a/drivers/led/issi/is31flcommon.c b/drivers/led/issi/is31flcommon.c index 4b78947ada..850f23c831 100644 --- a/drivers/led/issi/is31flcommon.c +++ b/drivers/led/issi/is31flcommon.c @@ -174,6 +174,19 @@ void IS31FL_common_update_scaling_register(uint8_t addr, uint8_t index) { } } +void IS31FL_common_flush(void) { + IS31FL_common_update_pwm_register(DRIVER_ADDR_1, 0); +#if defined(DRIVER_ADDR_2) + IS31FL_common_update_pwm_register(DRIVER_ADDR_2, 1); +# if defined(DRIVER_ADDR_3) + IS31FL_common_update_pwm_register(DRIVER_ADDR_3, 2); +# if defined(DRIVER_ADDR_4) + IS31FL_common_update_pwm_register(DRIVER_ADDR_4, 3); +# endif +# endif +#endif +} + #ifdef RGB_MATRIX_ENABLE // Colour is set by adjusting PWM register void IS31FL_RGB_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { diff --git a/drivers/led/issi/is31flcommon.h b/drivers/led/issi/is31flcommon.h index 93533e14de..c380f2a8d6 100644 --- a/drivers/led/issi/is31flcommon.h +++ b/drivers/led/issi/is31flcommon.h @@ -67,6 +67,8 @@ void IS31FL_common_init(uint8_t addr, uint8_t ssr); void IS31FL_common_update_pwm_register(uint8_t addr, uint8_t index); void IS31FL_common_update_scaling_register(uint8_t addr, uint8_t index); +void IS31FL_common_flush(void); + #ifdef RGB_MATRIX_ENABLE // RGB Matrix Specific scripts void IS31FL_RGB_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); diff --git a/drivers/led/snled27351-simple.c b/drivers/led/snled27351-simple.c index 499769555c..882fe4e8b4 100644 --- a/drivers/led/snled27351-simple.c +++ b/drivers/led/snled27351-simple.c @@ -203,6 +203,19 @@ void snled27351_update_led_control_registers(uint8_t addr, uint8_t index) { g_led_control_registers_update_required[index] = false; } +void snled27351_flush(void) { + snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_1, 0); +#if defined(SNLED27351_I2C_ADDRESS_2) + snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_2, 1); +# if defined(SNLED27351_I2C_ADDRESS_3) + snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_3, 2); +# if defined(SNLED27351_I2C_ADDRESS_4) + snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_4, 3); +# endif +# endif +#endif +} + void snled27351_sw_return_normal(uint8_t addr) { // Select to function page snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); diff --git a/drivers/led/snled27351-simple.h b/drivers/led/snled27351-simple.h index ff71b44b91..999b70f891 100644 --- a/drivers/led/snled27351-simple.h +++ b/drivers/led/snled27351-simple.h @@ -82,6 +82,8 @@ void snled27351_set_led_control_register(uint8_t index, bool value); void snled27351_update_pwm_buffers(uint8_t addr, uint8_t index); void snled27351_update_led_control_registers(uint8_t addr, uint8_t index); +void snled27351_flush(void); + void snled27351_sw_return_normal(uint8_t addr); void snled27351_sw_shutdown(uint8_t addr); diff --git a/drivers/led/snled27351.c b/drivers/led/snled27351.c index 1ca691b30f..198b190dac 100644 --- a/drivers/led/snled27351.c +++ b/drivers/led/snled27351.c @@ -218,6 +218,19 @@ void snled27351_update_led_control_registers(uint8_t addr, uint8_t index) { g_led_control_registers_update_required[index] = false; } +void snled27351_flush(void) { + snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_1, 0); +#if defined(SNLED27351_I2C_ADDRESS_2) + snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_2, 1); +# if defined(SNLED27351_I2C_ADDRESS_3) + snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_3, 2); +# if defined(SNLED27351_I2C_ADDRESS_4) + snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_4, 3); +# endif +# endif +#endif +} + void snled27351_sw_return_normal(uint8_t addr) { // Select to function page snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); diff --git a/drivers/led/snled27351.h b/drivers/led/snled27351.h index 67047c8921..59d56855f3 100644 --- a/drivers/led/snled27351.h +++ b/drivers/led/snled27351.h @@ -96,6 +96,8 @@ void snled27351_set_led_control_register(uint8_t index, bool red, bool green, bo void snled27351_update_pwm_buffers(uint8_t addr, uint8_t index); void snled27351_update_led_control_registers(uint8_t addr, uint8_t index); +void snled27351_flush(void); + void snled27351_sw_return_normal(uint8_t addr); void snled27351_sw_shutdown(uint8_t addr); diff --git a/keyboards/aeboards/satellite/rev1/rev1.c b/keyboards/aeboards/satellite/rev1/rev1.c index 8e4b5f4166..4c6e7d6d7c 100644 --- a/keyboards/aeboards/satellite/rev1/rev1.c +++ b/keyboards/aeboards/satellite/rev1/rev1.c @@ -145,8 +145,10 @@ led_config_t g_led_config = { { // Custom Driver static void init(void) { i2c_init(); + is31fl3731_init(IS31FL3731_I2C_ADDRESS_1); is31fl3731_init(IS31FL3731_I2C_ADDRESS_2); + for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) { bool enabled = !( ( index == 18+5) || //B5 ( index == 36+17) || //C17 @@ -154,29 +156,16 @@ static void init(void) { ); is31fl3731_set_led_control_register(index, enabled, enabled, enabled); } + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0); is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_2, 1); } -static void flush(void) { - is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0); - is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_2, 1); -} - -static void set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - is31fl3731_set_color(index, red, green, blue); -} - -static void set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - is31fl3731_set_color_all( red, green, blue ); -} - - const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, - .flush = flush, - .set_color = set_color, - .set_color_all = set_color_all + .flush = is31fl3731_flush, + .set_color = is31fl3731_set_color, + .set_color_all = is31fl3731_set_color_all }; #endif diff --git a/keyboards/fallacy/indicators.c b/keyboards/fallacy/indicators.c index ae4f796ecc..a8630d2e11 100755 --- a/keyboards/fallacy/indicators.c +++ b/keyboards/fallacy/indicators.c @@ -36,7 +36,7 @@ void init_fallacy_leds(void) { /* update the buffer */ void update_fallacy_leds(void) { - is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0); + is31fl3731_flush(); } diff --git a/keyboards/hs60/v2/ansi/config.h b/keyboards/hs60/v2/ansi/config.h index 8b31f0e066..3600b30feb 100644 --- a/keyboards/hs60/v2/ansi/config.h +++ b/keyboards/hs60/v2/ansi/config.h @@ -53,7 +53,8 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } -#define IS31FL3733_DRIVER_COUNT 2 +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 // These define which keys in the matrix are alphas/mods diff --git a/keyboards/hs60/v2/hhkb/config.h b/keyboards/hs60/v2/hhkb/config.h index 7494b2e66c..bdc27435cf 100644 --- a/keyboards/hs60/v2/hhkb/config.h +++ b/keyboards/hs60/v2/hhkb/config.h @@ -53,7 +53,8 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } -#define IS31FL3733_DRIVER_COUNT 2 +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 // These define which keys in the matrix are alphas/mods diff --git a/keyboards/hs60/v2/iso/config.h b/keyboards/hs60/v2/iso/config.h index 22608404b5..9a9a4ed623 100644 --- a/keyboards/hs60/v2/iso/config.h +++ b/keyboards/hs60/v2/iso/config.h @@ -50,7 +50,8 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } -#define IS31FL3733_DRIVER_COUNT 2 +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 // These define which keys in the matrix are alphas/mods diff --git a/keyboards/inland/v83p/config.h b/keyboards/inland/v83p/config.h index c433b568dd..1cd93e2033 100644 --- a/keyboards/inland/v83p/config.h +++ b/keyboards/inland/v83p/config.h @@ -9,9 +9,9 @@ { C11 } /* I2C Config for LED Driver */ -#define DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define SNLED27351_DRIVER_COUNT 2 +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_SDA_PIN B7 #define I2C1_SCL_PIN B6 #define I2C1_SCL_PAL_MODE 4 diff --git a/keyboards/inland/v83p/info.json b/keyboards/inland/v83p/info.json index d7a418bccf..f738af3ef7 100644 --- a/keyboards/inland/v83p/info.json +++ b/keyboards/inland/v83p/info.json @@ -33,7 +33,7 @@ ] }, "rgb_matrix": { - "driver": "ckled2001", + "driver": "snled27351", "max_brightness": 180, "animations": { "solid_color": true, diff --git a/keyboards/inland/v83p/v83p.c b/keyboards/inland/v83p/v83p.c index 26ab62784a..3cb9c06cb0 100644 --- a/keyboards/inland/v83p/v83p.c +++ b/keyboards/inland/v83p/v83p.c @@ -5,7 +5,7 @@ // clang-format off #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/input_club/k_type/is31fl3733-dual.c b/keyboards/input_club/k_type/is31fl3733-dual.c index ea523eea1f..54e9d76960 100644 --- a/keyboards/input_club/k_type/is31fl3733-dual.c +++ b/keyboards/input_club/k_type/is31fl3733-dual.c @@ -248,3 +248,10 @@ void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index) { } g_led_control_registers_update_required[index] = false; } + +void is31fl3733_flush(void) { + is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_1, 0); +# ifdef USE_I2C2 + is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_2, 1); +# endif +} diff --git a/keyboards/input_club/k_type/is31fl3733-dual.h b/keyboards/input_club/k_type/is31fl3733-dual.h index 7a43bc49f4..33943af320 100644 --- a/keyboards/input_club/k_type/is31fl3733-dual.h +++ b/keyboards/input_club/k_type/is31fl3733-dual.h @@ -64,6 +64,8 @@ void is31fl3733_set_led_control_register(uint8_t index, bool red, bool green, bo void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index); // index is the driver index void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index); +void is31fl3733_flush(void); + #define IS31FL3733_PUR_0R 0x00 // No PUR resistor #define IS31FL3733_PUR_05KR 0x02 // 0.5k Ohm resistor in t_NOL #define IS31FL3733_PUR_3KR 0x03 // 3.0k Ohm resistor on all the time diff --git a/keyboards/input_club/k_type/k_type-rgbdriver.c b/keyboards/input_club/k_type/k_type-rgbdriver.c index be16179ce2..1e8132e6dc 100644 --- a/keyboards/input_club/k_type/k_type-rgbdriver.c +++ b/keyboards/input_club/k_type/k_type-rgbdriver.c @@ -38,16 +38,9 @@ static void init(void) { # endif } -static void flush(void) { - is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_1, 0); -# ifdef USE_I2C2 - is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_2, 1); -# endif -} - const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, - .flush = flush, + .flush = is31fl3733_flush, .set_color = is31fl3733_set_color, .set_color_all = is31fl3733_set_color_all, }; diff --git a/keyboards/keebwerk/mega/ansi/config.h b/keyboards/keebwerk/mega/ansi/config.h index a9734683f4..ee98c95636 100755 --- a/keyboards/keebwerk/mega/ansi/config.h +++ b/keyboards/keebwerk/mega/ansi/config.h @@ -50,6 +50,8 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_SDA #define IS31FL3733_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 128 diff --git a/keyboards/keebwerk/mega/ansi/keymaps/jesusvallejo/keymap.c b/keyboards/keebwerk/mega/ansi/keymaps/jesusvallejo/keymap.c index 2b5d658f02..307eac90e1 100644 --- a/keyboards/keebwerk/mega/ansi/keymaps/jesusvallejo/keymap.c +++ b/keyboards/keebwerk/mega/ansi/keymaps/jesusvallejo/keymap.c @@ -14,7 +14,7 @@ * along with this program. If not, see . */ #include QMK_KEYBOARD_H -#include "drivers/issi/is31fl3733.h" +#include "drivers/led/issi/is31fl3733.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -50,9 +50,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { static uint16_t ledTimer; -uint8_t R = 0; /* First led*/ -uint8_t G = 0; /* Second led*/ -uint8_t B = 0; /* Third led*/ +uint8_t r = 0; /* First led*/ +uint8_t g = 0; /* Second led*/ +uint8_t b = 0; /* Third led*/ /* Boot animation parameters */ @@ -74,44 +74,44 @@ bool bootAnimation(void){ if (bootFirst>0 || bootSec>0){ if(bootFirst!=0){ if (timer_elapsed(ledTimer) > 150){ - G = 255; - R = 0; - B = 0; - is31fl3733_set_color( 6+64-1, R, G, B ); + g = 255; + r = 0; + b = 0; + is31fl3733_set_color( 6+64-1, r, g, b ); } if (timer_elapsed(ledTimer) > 300){ - G = 255; - R = 255; - B = 0; - is31fl3733_set_color( 6+64-1, R, G, B ); + g = 255; + r = 255; + b = 0; + is31fl3733_set_color( 6+64-1, r, g, b ); } if (timer_elapsed(ledTimer) > 400){ - G = 255; - R = 255; - B = 255; - is31fl3733_set_color( 6+64-1, R, G, B ); + g = 255; + r = 255; + b = 255; + is31fl3733_set_color( 6+64-1, r, g, b ); } if (timer_elapsed(ledTimer) > 500){ - G = 0; - R = 0; - B = 0; - is31fl3733_set_color( 6+64-1, R, G, B ); + g = 0; + r = 0; + b = 0; + is31fl3733_set_color( 6+64-1, r, g, b ); ledTimer = timer_read(); bootFirst--; } } if (bootFirst==0 && bootSec!=0){ if (timer_elapsed(ledTimer) > 200) { - G = 255; - R = 255; - B = 255; - is31fl3733_set_color( 6+64-1, R, G, B ); + g = 255; + r = 255; + b = 255; + is31fl3733_set_color( 6+64-1, r, g, b ); } if (timer_elapsed(ledTimer) > 400){ - G = 0; - R = 0; - B = 0; - is31fl3733_set_color( 6+64-1, R, G, B ); + g = 0; + r = 0; + b = 0; + is31fl3733_set_color( 6+64-1, r, g, b ); ledTimer = timer_read(); bootSec--; } @@ -125,29 +125,29 @@ bool bootAnimation(void){ void breathing(void) { if(timer_elapsed(ledTimer) fadeTime && R fadeTime && r fadeTime && R>minBrightness){ - G-=fadeStep; - R-=fadeStep; - B-=fadeStep; - is31fl3733_set_color( 6+64-1, R, G, B ); + if((time - previousTime) > fadeTime && r>minBrightness){ + g-=fadeStep; + r-=fadeStep; + b-=fadeStep; + is31fl3733_set_color( 6+64-1, r, g, b ); previousTime = time; } } else { - R=0; - G=0; - B=0; - is31fl3733_set_color( 6+64-1, R, G, B ); + r=0; + g=0; + b=0; + is31fl3733_set_color( 6+64-1, r, g, b ); previousTime = 0; time = 0; ledTimer=timer_read(); @@ -166,10 +166,10 @@ void matrix_scan_user(void){ prevCapsState = capsState; } else if(!capsState && capsState != prevCapsState){ - G = 0; - R = 0; - B = 0; - is31fl3733_set_color( 6+64-1, R, G, B ); + g = 0; + r = 0; + b = 0; + is31fl3733_set_color( 6+64-1, r, g, b ); prevCapsState = capsState; } } diff --git a/keyboards/matrix/m20add/rgb_ring.c b/keyboards/matrix/m20add/rgb_ring.c index c56ee931ee..553a3d5360 100644 --- a/keyboards/matrix/m20add/rgb_ring.c +++ b/keyboards/matrix/m20add/rgb_ring.c @@ -396,7 +396,7 @@ void rgb_ring_task(void) break; }; - is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0); + is31fl3731_flush(); } bool process_record_kb(uint16_t keycode, keyrecord_t *record) diff --git a/keyboards/monsgeek/m3/config.h b/keyboards/monsgeek/m3/config.h index 85eb5b8e99..93ffa1f07c 100644 --- a/keyboards/monsgeek/m3/config.h +++ b/keyboards/monsgeek/m3/config.h @@ -36,9 +36,9 @@ #define WEAR_LEVELING_BACKING_SIZE (8 * 1024) /* I2C Config for LED Driver */ -#define DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define SNLED27351_DRIVER_COUNT 2 +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_OPMODE OPMODE_I2C #define I2C1_CLOCK_SPEED 400000 /* 400000 */ diff --git a/keyboards/monsgeek/m3/info.json b/keyboards/monsgeek/m3/info.json index db646103f1..a93b0d47dc 100644 --- a/keyboards/monsgeek/m3/info.json +++ b/keyboards/monsgeek/m3/info.json @@ -31,7 +31,7 @@ "caps_lock": "A15" }, "rgb_matrix": { - "driver": "ckled2001", + "driver": "snled27351", "max_brightness": 160, "animations": { "breathing": true, diff --git a/keyboards/monsgeek/m3/m3.c b/keyboards/monsgeek/m3/m3.c index 95bfb34789..b7e197e6ac 100644 --- a/keyboards/monsgeek/m3/m3.c +++ b/keyboards/monsgeek/m3/m3.c @@ -17,7 +17,7 @@ #include "quantum.h" // clang-format off #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { +const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/neson_design/700e/700e.c b/keyboards/neson_design/700e/700e.c index 395ae4759a..d4aa336edb 100644 --- a/keyboards/neson_design/700e/700e.c +++ b/keyboards/neson_design/700e/700e.c @@ -341,10 +341,7 @@ void housekeeping_task_kb(void) } } - is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0); -#ifdef IS31FL3731_I2C_ADDRESS_2 - is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_2, 1); -#endif + is31fl3731_flush(); housekeeping_task_user(); } diff --git a/keyboards/neson_design/n6/n6.c b/keyboards/neson_design/n6/n6.c index e6531bc2c4..5f3ae3a169 100644 --- a/keyboards/neson_design/n6/n6.c +++ b/keyboards/neson_design/n6/n6.c @@ -343,10 +343,7 @@ void housekeeping_task_kb(void) } } - is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0); -#ifdef IS31FL3731_I2C_ADDRESS_2 - is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_2, 1); -#endif + is31fl3731_flush(); housekeeping_task_user(); } diff --git a/keyboards/novelkeys/nk65/config.h b/keyboards/novelkeys/nk65/config.h index 80327af491..4dc1ab9165 100755 --- a/keyboards/novelkeys/nk65/config.h +++ b/keyboards/novelkeys/nk65/config.h @@ -50,6 +50,8 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_SDA #define IS31FL3733_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 128 diff --git a/keyboards/novelkeys/nk87/config.h b/keyboards/novelkeys/nk87/config.h index d2949ef6d3..3b3e9309c1 100755 --- a/keyboards/novelkeys/nk87/config.h +++ b/keyboards/novelkeys/nk87/config.h @@ -50,6 +50,8 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_SDA #define IS31FL3733_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 128 diff --git a/keyboards/spaceholdings/nebula12/config.h b/keyboards/spaceholdings/nebula12/config.h index d6e8f0e196..5e4b48927f 100755 --- a/keyboards/spaceholdings/nebula12/config.h +++ b/keyboards/spaceholdings/nebula12/config.h @@ -73,6 +73,7 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 16 diff --git a/keyboards/spaceholdings/nebula68/config.h b/keyboards/spaceholdings/nebula68/config.h index f6df627592..0283a4a036 100755 --- a/keyboards/spaceholdings/nebula68/config.h +++ b/keyboards/spaceholdings/nebula68/config.h @@ -56,6 +56,8 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } +#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_SDA #define IS31FL3733_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 128 diff --git a/keyboards/tkc/portico/config.h b/keyboards/tkc/portico/config.h index 9a8e19171f..5599f2a36b 100644 --- a/keyboards/tkc/portico/config.h +++ b/keyboards/tkc/portico/config.h @@ -48,6 +48,8 @@ along with this program. If not, see . #else // IS31FL3731 driver +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC #define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 67 diff --git a/keyboards/tkc/portico75/config.h b/keyboards/tkc/portico75/config.h index d5b401704b..756dfbb54a 100644 --- a/keyboards/tkc/portico75/config.h +++ b/keyboards/tkc/portico75/config.h @@ -79,6 +79,7 @@ along with this program. If not, see . # define DRIVER_INDICATOR_LED_TOTAL 0 #else // WT_RGB IS31FL3741 driver code +# define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND # define IS31FL3741_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 98 diff --git a/keyboards/wilba_tech/rama_works_kara/config.h b/keyboards/wilba_tech/rama_works_kara/config.h index b3fa3808ec..5d8c9df820 100644 --- a/keyboards/wilba_tech/rama_works_kara/config.h +++ b/keyboards/wilba_tech/rama_works_kara/config.h @@ -16,6 +16,8 @@ #pragma once // IS31FL3731 driver +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 72 diff --git a/keyboards/wilba_tech/rama_works_koyu/config.h b/keyboards/wilba_tech/rama_works_koyu/config.h index 85bbf28051..aad4cd12ac 100644 --- a/keyboards/wilba_tech/rama_works_koyu/config.h +++ b/keyboards/wilba_tech/rama_works_koyu/config.h @@ -16,6 +16,8 @@ #pragma once // IS31FL3731 driver +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 72 diff --git a/keyboards/wilba_tech/rama_works_m10_c/config.h b/keyboards/wilba_tech/rama_works_m10_c/config.h index b3cb0ef7a8..529896f6ed 100644 --- a/keyboards/wilba_tech/rama_works_m10_c/config.h +++ b/keyboards/wilba_tech/rama_works_m10_c/config.h @@ -21,6 +21,7 @@ #define LOCKING_RESYNC_ENABLE // IS31FL3731 driver +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 12 diff --git a/keyboards/wilba_tech/rama_works_m50_a/config.h b/keyboards/wilba_tech/rama_works_m50_a/config.h index 16439309be..599550b91f 100644 --- a/keyboards/wilba_tech/rama_works_m50_a/config.h +++ b/keyboards/wilba_tech/rama_works_m50_a/config.h @@ -21,6 +21,8 @@ #define LOCKING_RESYNC_ENABLE // IS31FL3731 driver +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 72 diff --git a/keyboards/wilba_tech/rama_works_m60_a/config.h b/keyboards/wilba_tech/rama_works_m60_a/config.h index 7cec5dcc21..bc7d7e6128 100644 --- a/keyboards/wilba_tech/rama_works_m60_a/config.h +++ b/keyboards/wilba_tech/rama_works_m60_a/config.h @@ -16,6 +16,8 @@ #pragma once // IS31FL3731 driver +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 72 diff --git a/keyboards/wilba_tech/rama_works_m65_b/config.h b/keyboards/wilba_tech/rama_works_m65_b/config.h index 88f8341aa6..b3e381d77d 100644 --- a/keyboards/wilba_tech/rama_works_m65_b/config.h +++ b/keyboards/wilba_tech/rama_works_m65_b/config.h @@ -21,6 +21,8 @@ #define LOCKING_RESYNC_ENABLE // IS31FL3731 driver +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 72 diff --git a/keyboards/wilba_tech/rama_works_m65_bx/config.h b/keyboards/wilba_tech/rama_works_m65_bx/config.h index be3af2f668..8070e917d7 100644 --- a/keyboards/wilba_tech/rama_works_m65_bx/config.h +++ b/keyboards/wilba_tech/rama_works_m65_bx/config.h @@ -21,6 +21,8 @@ #define LOCKING_RESYNC_ENABLE // IS31FL3731 driver +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 72 diff --git a/keyboards/wilba_tech/rama_works_u80_a/config.h b/keyboards/wilba_tech/rama_works_u80_a/config.h index 0d8e1e12b5..4ab2d53c3c 100644 --- a/keyboards/wilba_tech/rama_works_u80_a/config.h +++ b/keyboards/wilba_tech/rama_works_u80_a/config.h @@ -38,6 +38,9 @@ //#define NO_ACTION_ONESHOT // IS31FL3731 driver +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA +#define IS31FL3731_I2C_ADDRESS_3 IS31FL3731_I2C_ADDRESS_SCL #define IS31FL3731_DRIVER_COUNT 3 #define RGB_MATRIX_LED_COUNT 108 diff --git a/keyboards/wilba_tech/wt60_b/config.h b/keyboards/wilba_tech/wt60_b/config.h index c5818173ca..c5fb1b32c7 100644 --- a/keyboards/wilba_tech/wt60_b/config.h +++ b/keyboards/wilba_tech/wt60_b/config.h @@ -23,6 +23,8 @@ // IS31FL3731 driver +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 72 diff --git a/keyboards/wilba_tech/wt60_bx/config.h b/keyboards/wilba_tech/wt60_bx/config.h index 37ffe646bc..f87d9ff48e 100644 --- a/keyboards/wilba_tech/wt60_bx/config.h +++ b/keyboards/wilba_tech/wt60_bx/config.h @@ -23,6 +23,8 @@ // IS31FL3731 driver +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 72 diff --git a/keyboards/wilba_tech/wt60_c/config.h b/keyboards/wilba_tech/wt60_c/config.h index 80f894e451..4a1b8b6ad2 100644 --- a/keyboards/wilba_tech/wt60_c/config.h +++ b/keyboards/wilba_tech/wt60_c/config.h @@ -23,6 +23,8 @@ // IS31FL3731 driver +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 72 diff --git a/keyboards/wilba_tech/wt_mono_backlight.c b/keyboards/wilba_tech/wt_mono_backlight.c index acb2c3aec7..4add18b14e 100644 --- a/keyboards/wilba_tech/wt_mono_backlight.c +++ b/keyboards/wilba_tech/wt_mono_backlight.c @@ -469,7 +469,7 @@ void backlight_config_save(void) void backlight_update_pwm_buffers(void) { - is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_1, 0); + is31fl3736_flush(); } bool process_record_backlight(uint16_t keycode, keyrecord_t *record) diff --git a/keyboards/wilba_tech/zeal60/config.h b/keyboards/wilba_tech/zeal60/config.h index 31ee2942ce..3233c6187d 100644 --- a/keyboards/wilba_tech/zeal60/config.h +++ b/keyboards/wilba_tech/zeal60/config.h @@ -16,6 +16,8 @@ #pragma once // IS31FL3731 driver +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 72 diff --git a/keyboards/wilba_tech/zeal65/config.h b/keyboards/wilba_tech/zeal65/config.h index 7370931df1..1046ee8108 100644 --- a/keyboards/wilba_tech/zeal65/config.h +++ b/keyboards/wilba_tech/zeal65/config.h @@ -16,6 +16,8 @@ #pragma once // IS31FL3731 driver +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 72 diff --git a/keyboards/xelus/dawn60/rev1/config.h b/keyboards/xelus/dawn60/rev1/config.h index b895890388..c7945df3d6 100644 --- a/keyboards/xelus/dawn60/rev1/config.h +++ b/keyboards/xelus/dawn60/rev1/config.h @@ -16,6 +16,8 @@ #pragma once // IS31FL3731 driver +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND +#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT 64 diff --git a/keyboards/xelus/pachi/rgb/rev1/rev1.c b/keyboards/xelus/pachi/rgb/rev1/rev1.c index b54b2a0a1d..1a3d9b2f4d 100644 --- a/keyboards/xelus/pachi/rgb/rev1/rev1.c +++ b/keyboards/xelus/pachi/rgb/rev1/rev1.c @@ -226,13 +226,9 @@ static void init(void) { is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0); } -static void flush(void) { - is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_1, 0); -} - const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, - .flush = flush, + .flush = is31fl3741_flush, .set_color = is31fl3741_set_color, .set_color_all = is31fl3741_set_color_all }; diff --git a/keyboards/xelus/pachi/rgb/rev2/rev2.c b/keyboards/xelus/pachi/rgb/rev2/rev2.c index 744e7838b1..729b6b0545 100644 --- a/keyboards/xelus/pachi/rgb/rev2/rev2.c +++ b/keyboards/xelus/pachi/rgb/rev2/rev2.c @@ -232,13 +232,9 @@ static void init(void) { is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0); } -static void flush(void) { - is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_1, 0); -} - const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, - .flush = flush, + .flush = is31fl3741_flush, .set_color = is31fl3741_set_color, .set_color_all = is31fl3741_set_color_all }; diff --git a/quantum/led_matrix/led_matrix_drivers.c b/quantum/led_matrix/led_matrix_drivers.c index 42594d2e16..ab8da3353a 100644 --- a/quantum/led_matrix/led_matrix_drivers.c +++ b/quantum/led_matrix/led_matrix_drivers.c @@ -249,159 +249,64 @@ static void init(void) { } # if defined(LED_MATRIX_IS31FL3218) -static void flush(void) { - is31fl3218_update_pwm_buffers(); -} - const led_matrix_driver_t led_matrix_driver = { .init = init, - .flush = flush, + .flush = is31fl3218_update_pwm_buffers, .set_value = is31fl3218_set_value, .set_value_all = is31fl3218_set_value_all, }; # elif defined(LED_MATRIX_IS31FL3731) -static void flush(void) { - is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0); -# if defined(IS31FL3731_I2C_ADDRESS_2) - is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_2, 1); -# if defined(IS31FL3731_I2C_ADDRESS_3) - is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_3, 2); -# if defined(IS31FL3731_I2C_ADDRESS_4) - is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_4, 3); -# endif -# endif -# endif -} - const led_matrix_driver_t led_matrix_driver = { .init = init, - .flush = flush, + .flush = is31fl3731_flush, .set_value = is31fl3731_set_value, .set_value_all = is31fl3731_set_value_all, }; # elif defined(LED_MATRIX_IS31FL3733) -static void flush(void) { - is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_1, 0); -# if defined(IS31FL3733_I2C_ADDRESS_2) - is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_2, 1); -# if defined(IS31FL3733_I2C_ADDRESS_3) - is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_3, 2); -# if defined(IS31FL3733_I2C_ADDRESS_4) - is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_4, 3); -# endif -# endif -# endif -} - const led_matrix_driver_t led_matrix_driver = { .init = init, - .flush = flush, + .flush = is31fl3733_flush, .set_value = is31fl3733_set_value, .set_value_all = is31fl3733_set_value_all, }; # elif defined(LED_MATRIX_IS31FL3736) -static void flush(void) { - is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_1, 0); -# if defined(IS31FL3736_I2C_ADDRESS_2) - is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_2, 1); -# if defined(IS31FL3736_I2C_ADDRESS_3) - is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_3, 2); -# if defined(IS31FL3736_I2C_ADDRESS_4) - is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_4, 3); -# endif -# endif -# endif -} - const led_matrix_driver_t led_matrix_driver = { .init = init, - .flush = flush, + .flush = is31fl3736_flush, .set_value = is31fl3736_set_value, .set_value_all = is31fl3736_set_value_all, }; # elif defined(LED_MATRIX_IS31FL3737) -static void flush(void) { - is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_1, 0); -# if defined(IS31FL3737_I2C_ADDRESS_2) - is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_2, 1); -# if defined(IS31FL3737_I2C_ADDRESS_3) - is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_3, 2); -# if defined(IS31FL3737_I2C_ADDRESS_4) - is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_4, 3); -# endif -# endif -# endif -} - const led_matrix_driver_t led_matrix_driver = { .init = init, - .flush = flush, + .flush = is31fl3737_flush, .set_value = is31fl3737_set_value, .set_value_all = is31fl3737_set_value_all, }; # elif defined(LED_MATRIX_IS31FL3741) -static void flush(void) { - is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_1, 0); -# if defined(IS31FL3741_I2C_ADDRESS_2) - is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_2, 1); -# if defined(IS31FL3741_I2C_ADDRESS_3) - is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_3, 2); -# if defined(IS31FL3741_I2C_ADDRESS_4) - is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_4, 3); -# endif -# endif -# endif -} - const led_matrix_driver_t led_matrix_driver = { .init = init, - .flush = flush, + .flush = is31fl3741_flush, .set_value = is31fl3741_set_value, .set_value_all = is31fl3741_set_value_all, }; # elif defined(IS31FLCOMMON) -static void flush(void) { - IS31FL_common_update_pwm_register(DRIVER_ADDR_1, 0); -# if defined(LED_DRIVER_ADDR_2) - IS31FL_common_update_pwm_register(DRIVER_ADDR_2, 1); -# if defined(LED_DRIVER_ADDR_3) - IS31FL_common_update_pwm_register(DRIVER_ADDR_3, 2); -# if defined(LED_DRIVER_ADDR_4) - IS31FL_common_update_pwm_register(DRIVER_ADDR_4, 3); -# endif -# endif -# endif -} - const led_matrix_driver_t led_matrix_driver = { .init = init, - .flush = flush, + .flush = IS31FL_common_flush, .set_value = IS31FL_simple_set_brightness, .set_value_all = IS31FL_simple_set_brigntness_all, }; # elif defined(LED_MATRIX_SNLED27351) -static void flush(void) { - snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_1, 0); -# if defined(SNLED27351_I2C_ADDRESS_2) - snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_2, 1); -# if defined(SNLED27351_I2C_ADDRESS_3) - snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_3, 2); -# if defined(SNLED27351_I2C_ADDRESS_4) - snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_4, 3); -# endif -# endif -# endif -} - const led_matrix_driver_t led_matrix_driver = { .init = init, - .flush = flush, + .flush = snled27351_flush, .set_value = snled27351_set_value, .set_value_all = snled27351_set_value_all, }; diff --git a/quantum/rgb_matrix/rgb_matrix_drivers.c b/quantum/rgb_matrix/rgb_matrix_drivers.c index 555e750e50..0fe93ee077 100644 --- a/quantum/rgb_matrix/rgb_matrix_drivers.c +++ b/quantum/rgb_matrix/rgb_matrix_drivers.c @@ -247,160 +247,65 @@ static void init(void) { } # if defined(RGB_MATRIX_IS31FL3218) -static void flush(void) { - is31fl3218_update_pwm_buffers(); -} - const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, - .flush = flush, + .flush = is31fl3218_update_pwm_buffers, .set_color = is31fl3218_set_color, .set_color_all = is31fl3218_set_color_all, }; # elif defined(RGB_MATRIX_IS31FL3731) -static void flush(void) { - is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0); -# if defined(IS31FL3731_I2C_ADDRESS_2) - is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_2, 1); -# if defined(IS31FL3731_I2C_ADDRESS_3) - is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_3, 2); -# if defined(IS31FL3731_I2C_ADDRESS_4) - is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_4, 3); -# endif -# endif -# endif -} - const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, - .flush = flush, + .flush = is31fl3731_flush, .set_color = is31fl3731_set_color, .set_color_all = is31fl3731_set_color_all, }; # elif defined(RGB_MATRIX_IS31FL3733) -static void flush(void) { - is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_1, 0); -# if defined(IS31FL3733_I2C_ADDRESS_2) - is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_2, 1); -# if defined(IS31FL3733_I2C_ADDRESS_3) - is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_3, 2); -# if defined(IS31FL3733_I2C_ADDRESS_4) - is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_4, 3); -# endif -# endif -# endif -} - const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, - .flush = flush, + .flush = is31fl3733_flush, .set_color = is31fl3733_set_color, .set_color_all = is31fl3733_set_color_all, }; # elif defined(RGB_MATRIX_IS31FL3736) -static void flush(void) { - is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_1, 0); -# if defined(IS31FL3736_I2C_ADDRESS_2) - is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_2, 1); -# if defined(IS31FL3736_I2C_ADDRESS_3) - is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_3, 2); -# if defined(IS31FL3736_I2C_ADDRESS_4) - is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_4, 3); -# endif -# endif -# endif -} - const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, - .flush = flush, + .flush = is31fl3736_flush, .set_color = is31fl3736_set_color, .set_color_all = is31fl3736_set_color_all, }; # elif defined(RGB_MATRIX_IS31FL3737) -static void flush(void) { - is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_1, 0); -# if defined(IS31FL3737_I2C_ADDRESS_2) - is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_2, 1); -# if defined(IS31FL3737_I2C_ADDRESS_3) - is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_3, 2); -# if defined(IS31FL3737_I2C_ADDRESS_4) - is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_4, 3); -# endif -# endif -# endif -} - const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, - .flush = flush, + .flush = is31fl3737_flush, .set_color = is31fl3737_set_color, .set_color_all = is31fl3737_set_color_all, }; # elif defined(RGB_MATRIX_IS31FL3741) -static void flush(void) { - is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_1, 0); -# if defined(IS31FL3741_I2C_ADDRESS_2) - is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_2, 1); -# if defined(IS31FL3741_I2C_ADDRESS_3) - is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_3, 2); -# if defined(IS31FL3741_I2C_ADDRESS_4) - is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_4, 3); -# endif -# endif -# endif -} - const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, - .flush = flush, + .flush = is31fl3741_flush, .set_color = is31fl3741_set_color, .set_color_all = is31fl3741_set_color_all, }; # elif defined(IS31FLCOMMON) -static void flush(void) { - IS31FL_common_update_pwm_register(DRIVER_ADDR_1, 0); -# if defined(DRIVER_ADDR_2) - IS31FL_common_update_pwm_register(DRIVER_ADDR_2, 1); -# if defined(DRIVER_ADDR_3) - IS31FL_common_update_pwm_register(DRIVER_ADDR_3, 2); -# if defined(DRIVER_ADDR_4) - IS31FL_common_update_pwm_register(DRIVER_ADDR_4, 3); -# endif -# endif -# endif -} - const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, - .flush = flush, + .flush = IS31FL_common_flush, .set_color = IS31FL_RGB_set_color, .set_color_all = IS31FL_RGB_set_color_all, }; # elif defined(RGB_MATRIX_SNLED27351) -static void flush(void) { - snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_1, 0); -# if defined(SNLED27351_I2C_ADDRESS_2) - snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_2, 1); -# if defined(SNLED27351_I2C_ADDRESS_3) - snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_3, 2); -# if defined(SNLED27351_I2C_ADDRESS_4) - snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_4, 3); -# endif -# endif -# endif -} - const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, - .flush = flush, + .flush = snled27351_flush, .set_color = snled27351_set_color, .set_color_all = snled27351_set_color_all, }; @@ -418,16 +323,9 @@ static void init(void) { # endif } -static void flush(void) { - aw20216s_update_pwm_buffers(AW20216S_CS_PIN_1, 0); -# if defined(AW20216S_CS_PIN_2) - aw20216s_update_pwm_buffers(AW20216S_CS_PIN_2, 1); -# endif -} - const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, - .flush = flush, + .flush = aw20216s_flush, .set_color = aw20216s_set_color, .set_color_all = aw20216s_set_color_all, }; From 79094d3f72709be3c55bd8f22cc0a7e98f4b6564 Mon Sep 17 00:00:00 2001 From: Dasky <32983009+daskygit@users.noreply.github.com> Date: Sun, 22 Oct 2023 19:47:39 +0100 Subject: [PATCH 299/496] Modify split config is_keyboard_master/left checks. (#21875) * rework split configuration * Apply suggestions from code review Co-authored-by: Joel Challis * lint * missed return --------- Co-authored-by: Joel Challis --- quantum/split_common/split_util.c | 73 +++++++++++++++++-------------- 1 file changed, 40 insertions(+), 33 deletions(-) diff --git a/quantum/split_common/split_util.c b/quantum/split_common/split_util.c index 5d044c4ea0..874339361d 100644 --- a/quantum/split_common/split_util.c +++ b/quantum/split_common/split_util.c @@ -56,6 +56,11 @@ static uint8_t connection_errors = 0; volatile bool isLeftHand = true; +static struct { + bool master; + bool left; +} split_config; + #if defined(SPLIT_USB_DETECT) _Static_assert((SPLIT_USB_TIMEOUT / SPLIT_USB_TIMEOUT_POLL) <= UINT16_MAX, "Please lower SPLIT_USB_TIMEOUT and/or increase SPLIT_USB_TIMEOUT_POLL."); static bool usbIsActive(void) { @@ -131,8 +136,10 @@ static uint8_t peek_matrix_intersection(pin_t out_pin, pin_t in_pin) { } #endif -__attribute__((weak)) bool is_keyboard_left(void) { +__attribute__((weak)) bool is_keyboard_left_impl(void) { #if defined(SPLIT_HAND_PIN) + setPinInput(SPLIT_HAND_PIN); + wait_us(100); // Test pin SPLIT_HAND_PIN for High/Low, if low it's right hand # ifdef SPLIT_HAND_PIN_LOW_IS_LEFT return !readPin(SPLIT_HAND_PIN); @@ -145,36 +152,6 @@ __attribute__((weak)) bool is_keyboard_left(void) { # else return !peek_matrix_intersection(SPLIT_HAND_MATRIX_GRID); # endif -#elif defined(EE_HANDS) - return eeconfig_read_handedness(); -#elif defined(MASTER_RIGHT) - return !is_keyboard_master(); -#endif - - return is_keyboard_master(); -} - -__attribute__((weak)) bool is_keyboard_master(void) { - static enum { UNKNOWN, MASTER, SLAVE } usbstate = UNKNOWN; - - // only check once, as this is called often - if (usbstate == UNKNOWN) { - usbstate = usbIsActive() ? MASTER : SLAVE; - - // Avoid NO_USB_STARTUP_CHECK - Disable USB as the previous checks seem to enable it somehow - if (usbstate == SLAVE) { - usb_disconnect(); - } - } - - return (usbstate == MASTER); -} - -// this code runs before the keyboard is fully initialized -void split_pre_init(void) { -#if defined(SPLIT_HAND_PIN) - setPinInput(SPLIT_HAND_PIN); - wait_us(100); #elif defined(EE_HANDS) if (!eeconfig_is_enabled()) { eeconfig_init(); @@ -193,12 +170,42 @@ void split_pre_init(void) { eeconfig_update_handedness(should_be_left); } # endif // defined(INIT_EE_HANDS_LEFT) || defined(INIT_EE_HANDS_RIGHT) + return eeconfig_read_handedness(); +#elif defined(MASTER_RIGHT) + return !is_keyboard_master(); +#else + return is_keyboard_master(); #endif - isLeftHand = is_keyboard_left(); +} + +__attribute__((weak)) bool is_keyboard_master_impl(void) { + bool is_master = usbIsActive(); + + // Avoid NO_USB_STARTUP_CHECK - Disable USB as the previous checks seem to enable it somehow + if (!is_master) { + usb_disconnect(); + } + return is_master; +} + +__attribute__((weak)) bool is_keyboard_left(void) { + return split_config.left; +} + +__attribute__((weak)) bool is_keyboard_master(void) { + return split_config.master; +} + +// this code runs before the keyboard is fully initialized +void split_pre_init(void) { + split_config.master = is_keyboard_master_impl(); + split_config.left = is_keyboard_left_impl(); + + isLeftHand = is_keyboard_left(); // TODO: Remove isLeftHand #if defined(RGBLIGHT_ENABLE) && defined(RGBLED_SPLIT) uint8_t num_rgb_leds_split[2] = RGBLED_SPLIT; - if (isLeftHand) { + if (is_keyboard_left()) { rgblight_set_clipping_range(0, num_rgb_leds_split[0]); } else { rgblight_set_clipping_range(num_rgb_leds_split[0], num_rgb_leds_split[1]); From bf6f13a2b0a185e935b8554e41317ab471a4c0ec Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 23 Oct 2023 00:37:27 +0100 Subject: [PATCH 300/496] Consolidate some EEPROM Driver configuration (#22321) --- docs/eeprom_driver.md | 8 ++++++++ drivers/eeprom/eeprom_spi.h | 12 ++++++++++++ keyboards/custommk/evo70_r2/config.h | 1 + keyboards/rgbkb/mun/keymaps/default/config.h | 2 -- keyboards/rgbkb/mun/keymaps/via/config.h | 2 -- keyboards/rgbkb/sol3/keymaps/default/config.h | 3 --- keyboards/rgbkb/sol3/keymaps/via/config.h | 3 --- keyboards/tau4/config.h | 9 --------- keyboards/tzarc/djinn/rev1/config.h | 3 +-- keyboards/tzarc/djinn/rev2/config.h | 3 +-- keyboards/tzarc/ghoul/config.h | 3 +-- keyboards/vinhcatba/uncertainty/config.h | 6 +----- keyboards/xelus/kangaroo/rev1/config.h | 3 --- keyboards/xelus/pachi/rgb/rev1/config.h | 3 --- keyboards/xelus/rs108/config.h | 9 +-------- keyboards/xelus/rs60/rev2_0/config.h | 9 +-------- keyboards/xelus/valor/rev2/config.h | 3 --- keyboards/xelus/valor_frl_tkl/rev1/config.h | 6 ------ keyboards/xelus/xs108/config.h | 3 --- keyboards/xelus/xs60/hotswap/config.h | 3 --- platforms/chibios/boards/BONSAI_C4/configs/config.h | 4 +--- 21 files changed, 28 insertions(+), 70 deletions(-) diff --git a/docs/eeprom_driver.md b/docs/eeprom_driver.md index 34b6f51cbe..c77d18c68d 100644 --- a/docs/eeprom_driver.md +++ b/docs/eeprom_driver.md @@ -66,6 +66,14 @@ Currently QMK supports 25xx-series chips over SPI. As such, requires a working s `#define EXTERNAL_EEPROM_PAGE_SIZE` | `32` | Page size of the EEPROM in bytes, as specified in the datasheet `#define EXTERNAL_EEPROM_ADDRESS_SIZE` | `2` | The number of bytes to transmit for the memory location within the EEPROM +Default values and extended descriptions can be found in `drivers/eeprom/eeprom_spi.h`. + +Alternatively, there are pre-defined hardware configurations for available chips/modules: + +Module | Equivalent `#define` | Source +-----------------|---------------------------------|------------------------------------------ +MB85RS64V FRAM | `define EEPROM_SPI_MB85RS64V` | + !> There's no way to determine if there is an SPI EEPROM actually responding. Generally, this will result in reads of nothing but zero. ## Transient Driver configuration :id=transient-eeprom-driver-configuration diff --git a/drivers/eeprom/eeprom_spi.h b/drivers/eeprom/eeprom_spi.h index 282c603565..6a21d5516b 100644 --- a/drivers/eeprom/eeprom_spi.h +++ b/drivers/eeprom/eeprom_spi.h @@ -16,6 +16,18 @@ #pragma once +/* + Default device configurations: + + For the Adafruit SPI Non-Volatile FRAM Breakout: https://www.adafruit.com/product/1897 + #define EEPROM_SPI_MB85RS64V +*/ +#if defined(EEPROM_SPI_MB85RS64V) +# define EXTERNAL_EEPROM_BYTE_COUNT 8192 +# define EXTERNAL_EEPROM_PAGE_SIZE 64 // it's FRAM, so it doesn't actually matter, this just sets the RAM buffer +# define EXTERNAL_EEPROM_ADDRESS_SIZE 2 +#endif + /* The slave select pin of the EEPROM. This needs to be a normal GPIO pin_t value, such as A7. diff --git a/keyboards/custommk/evo70_r2/config.h b/keyboards/custommk/evo70_r2/config.h index 25ab789d75..62606cf1ee 100644 --- a/keyboards/custommk/evo70_r2/config.h +++ b/keyboards/custommk/evo70_r2/config.h @@ -26,6 +26,7 @@ #define MATRIX_ROW_PINS { A8, A1, A2, B1, A7 } // FRAM configuration +#define EEPROM_SPI_MB85RS64V #define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A0 #define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 4 // 48MHz / 4 = 12MHz; max supported by MB85R64 is 20MHz diff --git a/keyboards/rgbkb/mun/keymaps/default/config.h b/keyboards/rgbkb/mun/keymaps/default/config.h index 9fbbfc5901..88bdc06dee 100644 --- a/keyboards/rgbkb/mun/keymaps/default/config.h +++ b/keyboards/rgbkb/mun/keymaps/default/config.h @@ -19,5 +19,3 @@ // 20m timeout (20m * 60s * 1000mil) // #define RGB_MATRIX_TIMEOUT 1200000 #define RGB_DISABLE_WHEN_USB_SUSPENDED - -#define STM32_ONBOARD_EEPROM_SIZE 2048 diff --git a/keyboards/rgbkb/mun/keymaps/via/config.h b/keyboards/rgbkb/mun/keymaps/via/config.h index 002081a1c8..a0f581b50a 100644 --- a/keyboards/rgbkb/mun/keymaps/via/config.h +++ b/keyboards/rgbkb/mun/keymaps/via/config.h @@ -24,5 +24,3 @@ // 224B per layer right now #define DYNAMIC_KEYMAP_LAYER_COUNT 8 #define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 2047 - -#define STM32_ONBOARD_EEPROM_SIZE 2048 diff --git a/keyboards/rgbkb/sol3/keymaps/default/config.h b/keyboards/rgbkb/sol3/keymaps/default/config.h index 7e46726115..88bdc06dee 100644 --- a/keyboards/rgbkb/sol3/keymaps/default/config.h +++ b/keyboards/rgbkb/sol3/keymaps/default/config.h @@ -19,6 +19,3 @@ // 20m timeout (20m * 60s * 1000mil) // #define RGB_MATRIX_TIMEOUT 1200000 #define RGB_DISABLE_WHEN_USB_SUSPENDED - -#define STM32_ONBOARD_EEPROM_SIZE 2048 - diff --git a/keyboards/rgbkb/sol3/keymaps/via/config.h b/keyboards/rgbkb/sol3/keymaps/via/config.h index ff1ff77472..7b7f806261 100644 --- a/keyboards/rgbkb/sol3/keymaps/via/config.h +++ b/keyboards/rgbkb/sol3/keymaps/via/config.h @@ -25,6 +25,3 @@ // 224B per layer right now #define DYNAMIC_KEYMAP_LAYER_COUNT 8 #define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 2047 - -#define STM32_ONBOARD_EEPROM_SIZE 2048 - diff --git a/keyboards/tau4/config.h b/keyboards/tau4/config.h index 053f210c07..e36b3b8f2e 100644 --- a/keyboards/tau4/config.h +++ b/keyboards/tau4/config.h @@ -17,15 +17,6 @@ along with this program. If not, see . #pragma once - -// Buggy, currently disabled -/* #define EXTERNAL_EEPROM_I2C_BASE_ADDRESS 0b10100000 -#define EXTERNAL_EEPROM_I2C_ADDRESS(loc) (EXTERNAL_EEPROM_I2C_BASE_ADDRESS | ((((loc) >> 8) & 0x07) << 1)) -#define EXTERNAL_EEPROM_BYTE_COUNT 2048 -#define EXTERNAL_EEPROM_PAGE_SIZE 16 -#define EXTERNAL_EEPROM_ADDRESS_SIZE 1 -#define EXTERNAL_EEPROM_WRITE_TIME 5 */ - #define RGBLIGHT_LAYERS_RETAIN_VAL #define OLED_DISPLAY_WIDTH 128 diff --git a/keyboards/tzarc/djinn/rev1/config.h b/keyboards/tzarc/djinn/rev1/config.h index 5dffc00141..cdcabed05c 100644 --- a/keyboards/tzarc/djinn/rev1/config.h +++ b/keyboards/tzarc/djinn/rev1/config.h @@ -22,7 +22,6 @@ #define RGB_CURR_3000mA_OK_PIN C5 // EEPROM configuration +#define EEPROM_SPI_MB85RS64V #define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN B5 #define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 8 // (160MHz/8) => 20MHz -#define EXTERNAL_EEPROM_BYTE_COUNT 8192 -#define EXTERNAL_EEPROM_PAGE_SIZE 64 // it's FRAM, so it doesn't actually matter, this just sets the RAM buffer size diff --git a/keyboards/tzarc/djinn/rev2/config.h b/keyboards/tzarc/djinn/rev2/config.h index 12a6372405..00a893ff65 100644 --- a/keyboards/tzarc/djinn/rev2/config.h +++ b/keyboards/tzarc/djinn/rev2/config.h @@ -25,10 +25,9 @@ #define RGB_CURR_3000mA_OK_PIN C4 // EEPROM configuration +#define EEPROM_SPI_MB85RS64V #define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN B5 #define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 8 // (160MHz/8) => 20MHz -#define EXTERNAL_EEPROM_BYTE_COUNT 8192 -#define EXTERNAL_EEPROM_PAGE_SIZE 64 // it's FRAM, so it doesn't actually matter, this just sets the RAM buffer size // External flash config #define EXTERNAL_FLASH_SPI_MODE 3 diff --git a/keyboards/tzarc/ghoul/config.h b/keyboards/tzarc/ghoul/config.h index 932ea8eb50..402f14cd92 100644 --- a/keyboards/tzarc/ghoul/config.h +++ b/keyboards/tzarc/ghoul/config.h @@ -8,8 +8,7 @@ // #define MATRIX_COLS 8 // actually defined in info.json: 8 bits per register // EEPROM configuration -#define EXTERNAL_EEPROM_BYTE_COUNT 8192 -#define EXTERNAL_EEPROM_PAGE_SIZE 64 // it's FRAM, so it doesn't actually matter, this just sets the RAM buffer +#define EEPROM_SPI_MB85RS64V // RGB configuration #define RGB_MATRIX_LED_COUNT 40 diff --git a/keyboards/vinhcatba/uncertainty/config.h b/keyboards/vinhcatba/uncertainty/config.h index 288f1d81a9..5c02b78efe 100644 --- a/keyboards/vinhcatba/uncertainty/config.h +++ b/keyboards/vinhcatba/uncertainty/config.h @@ -19,11 +19,7 @@ #define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_16_9 /* eeprom i2c driver config */ -#define EXTERNAL_EEPROM_I2C_BASE_ADDRESS 0b10100000 -#define EXTERNAL_EEPROM_BYTE_COUNT 4096 -#define EXTERNAL_EEPROM_PAGE_SIZE 32 -#define EXTERNAL_EEPROM_WRITE_TIME 10 -//#define EEPROM_I2C_24LC32 +#define EEPROM_I2C_24LC32A /* OLED config */ #define OLED_UPDATE_INTERVAL 100 diff --git a/keyboards/xelus/kangaroo/rev1/config.h b/keyboards/xelus/kangaroo/rev1/config.h index 7f246458f5..c174b67e57 100644 --- a/keyboards/xelus/kangaroo/rev1/config.h +++ b/keyboards/xelus/kangaroo/rev1/config.h @@ -35,6 +35,3 @@ // I2C EEPROM #define EEPROM_I2C_CAT24C512 - -// Dynamic EEPROM -#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 65535 diff --git a/keyboards/xelus/pachi/rgb/rev1/config.h b/keyboards/xelus/pachi/rgb/rev1/config.h index baa15eaa49..e51a176c84 100644 --- a/keyboards/xelus/pachi/rgb/rev1/config.h +++ b/keyboards/xelus/pachi/rgb/rev1/config.h @@ -36,9 +36,6 @@ // I2C EEPROM #define EEPROM_I2C_24LC64 -// More EEPROM for layers -#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191 - // RGB Matrix defines #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND diff --git a/keyboards/xelus/rs108/config.h b/keyboards/xelus/rs108/config.h index 9ff25facc8..45f2a54530 100644 --- a/keyboards/xelus/rs108/config.h +++ b/keyboards/xelus/rs108/config.h @@ -30,14 +30,7 @@ #define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 // EEPROM config -// 24LC32 -#define EXTERNAL_EEPROM_BYTE_COUNT 4096 -#define EXTERNAL_EEPROM_PAGE_SIZE 32 -#define EXTERNAL_EEPROM_ADDRESS_SIZE 2 -#define EXTERNAL_EEPROM_WRITE_TIME 5 - -// More EEPROM for layers -#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095 +#define EEPROM_I2C_24LC32A // Hardware Defines #define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE diff --git a/keyboards/xelus/rs60/rev2_0/config.h b/keyboards/xelus/rs60/rev2_0/config.h index 9ff25facc8..45f2a54530 100644 --- a/keyboards/xelus/rs60/rev2_0/config.h +++ b/keyboards/xelus/rs60/rev2_0/config.h @@ -30,14 +30,7 @@ #define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 // EEPROM config -// 24LC32 -#define EXTERNAL_EEPROM_BYTE_COUNT 4096 -#define EXTERNAL_EEPROM_PAGE_SIZE 32 -#define EXTERNAL_EEPROM_ADDRESS_SIZE 2 -#define EXTERNAL_EEPROM_WRITE_TIME 5 - -// More EEPROM for layers -#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095 +#define EEPROM_I2C_24LC32A // Hardware Defines #define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE diff --git a/keyboards/xelus/valor/rev2/config.h b/keyboards/xelus/valor/rev2/config.h index e5acad6f9c..9a0146172d 100644 --- a/keyboards/xelus/valor/rev2/config.h +++ b/keyboards/xelus/valor/rev2/config.h @@ -36,9 +36,6 @@ // I2C EEPROM #define EEPROM_I2C_24LC64 -// More EEPROM for layers -#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191 - /* RGB Matrix */ #define RGB_MATRIX_LED_COUNT 28 #define NOP_FUDGE 0.4 diff --git a/keyboards/xelus/valor_frl_tkl/rev1/config.h b/keyboards/xelus/valor_frl_tkl/rev1/config.h index a03694deaa..af702fcafd 100644 --- a/keyboards/xelus/valor_frl_tkl/rev1/config.h +++ b/keyboards/xelus/valor_frl_tkl/rev1/config.h @@ -35,10 +35,4 @@ #define I2C1_TIMINGR_SCLL 9U // I2C EEPROM -// 24LC64 #define EEPROM_I2C_24LC64 - -// Dynamic EEPROM -// Something sensible or else VIA may crash -// Users may enable more if they wish -#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095 diff --git a/keyboards/xelus/xs108/config.h b/keyboards/xelus/xs108/config.h index 8a6ab123c4..4b3b447c95 100644 --- a/keyboards/xelus/xs108/config.h +++ b/keyboards/xelus/xs108/config.h @@ -34,6 +34,3 @@ // I2C EEPROM #define EEPROM_I2C_24LC64 - -// More EEPROM for layers -#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191 diff --git a/keyboards/xelus/xs60/hotswap/config.h b/keyboards/xelus/xs60/hotswap/config.h index d1138c735d..56ecd57ec9 100644 --- a/keyboards/xelus/xs60/hotswap/config.h +++ b/keyboards/xelus/xs60/hotswap/config.h @@ -34,9 +34,6 @@ // I2C EEPROM #define EEPROM_I2C_24LC64 -// More EEPROM for layers -#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191 - // RGBLIGHT #define RGBLIGHT_LAYERS #define WS2812_EXTERNAL_PULLUP diff --git a/platforms/chibios/boards/BONSAI_C4/configs/config.h b/platforms/chibios/boards/BONSAI_C4/configs/config.h index 7539ebed41..193b028bde 100644 --- a/platforms/chibios/boards/BONSAI_C4/configs/config.h +++ b/platforms/chibios/boards/BONSAI_C4/configs/config.h @@ -24,11 +24,9 @@ // FRAM configuration #ifndef EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN +# define EEPROM_SPI_MB85RS64V # define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN PAL_LINE(GPIOA, 0) # define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 8 // 96MHz / 8 = 12MHz; max supported by MB85R64 is 20MHz -# define EXTERNAL_EEPROM_BYTE_COUNT 8192 -# define EXTERNAL_EEPROM_PAGE_SIZE 64 // does not matter for FRAM, just sets the RAM buffer size in STM32F chip -# define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191 #endif // External flash configuration From 0c160e1fbafbf477c74e64fd8ab9a9121eb0f42a Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 23 Oct 2023 14:43:46 +1000 Subject: [PATCH 301/496] Separate 6KRO and NKRO report structs (#22267) --- keyboards/annepro2/annepro2_ble.c | 2 +- keyboards/horrortroll/lemon40/info.json | 3 +- keyboards/kbdfans/kbd67/rev1/info.json | 1 - quantum/action.c | 2 +- quantum/action_util.c | 57 ++++++++++++++---- quantum/action_util.h | 9 ++- tests/test_common/keyboard_report_util.cpp | 4 +- tests/test_common/test_driver.cpp | 6 +- tests/test_common/test_driver.hpp | 2 + tmk_core/protocol.mk | 4 +- tmk_core/protocol/arm_atsam/main_arm_atsam.c | 63 ++++++++++---------- tmk_core/protocol/chibios/chibios.c | 3 +- tmk_core/protocol/chibios/usb_main.c | 22 +++---- tmk_core/protocol/host.c | 33 +++++----- tmk_core/protocol/host.h | 1 + tmk_core/protocol/host_driver.h | 1 + tmk_core/protocol/lufa/lufa.c | 34 +++++------ tmk_core/protocol/report.c | 37 ++++++------ tmk_core/protocol/report.h | 60 +++++++------------ tmk_core/protocol/vusb/vusb.c | 8 ++- 20 files changed, 187 insertions(+), 165 deletions(-) diff --git a/keyboards/annepro2/annepro2_ble.c b/keyboards/annepro2/annepro2_ble.c index b04929e958..a382c61638 100644 --- a/keyboards/annepro2/annepro2_ble.c +++ b/keyboards/annepro2/annepro2_ble.c @@ -31,7 +31,7 @@ static void ap2_ble_swtich_ble_driver(void); /* -------------------- Static Local Variables ------------------------------ */ static host_driver_t ap2_ble_driver = { - ap2_ble_leds, ap2_ble_keyboard, ap2_ble_mouse, ap2_ble_extra + ap2_ble_leds, ap2_ble_keyboard, NULL, ap2_ble_mouse, ap2_ble_extra }; static uint8_t ble_mcu_wakeup[11] = {0x7b, 0x12, 0x53, 0x00, 0x03, 0x00, 0x01, 0x7d, 0x02, 0x01, 0x02}; diff --git a/keyboards/horrortroll/lemon40/info.json b/keyboards/horrortroll/lemon40/info.json index 7162e2c2c7..7b0b1c394b 100644 --- a/keyboards/horrortroll/lemon40/info.json +++ b/keyboards/horrortroll/lemon40/info.json @@ -19,8 +19,7 @@ "knight": true, "christmas": true, "static_gradient": true, - "alternating": true, - "twinkle": true + "alternating": true } }, "ws2812": { diff --git a/keyboards/kbdfans/kbd67/rev1/info.json b/keyboards/kbdfans/kbd67/rev1/info.json index 9119477584..f279c5a2c9 100644 --- a/keyboards/kbdfans/kbd67/rev1/info.json +++ b/keyboards/kbdfans/kbd67/rev1/info.json @@ -38,7 +38,6 @@ "knight": true, "christmas": true, "static_gradient": true, - "rgb_test": true, "alternating": true, "twinkle": true } diff --git a/quantum/action.c b/quantum/action.c index 349250472b..29822c39e9 100644 --- a/quantum/action.c +++ b/quantum/action.c @@ -925,7 +925,7 @@ __attribute__((weak)) void register_code(uint8_t code) { // Force a new key press if the key is already pressed // without this, keys with the same keycode, but different // modifiers will be reported incorrectly, see issue #1708 - if (is_key_pressed(keyboard_report, code)) { + if (is_key_pressed(code)) { del_key(code); send_keyboard_report(); } diff --git a/quantum/action_util.c b/quantum/action_util.c index 909dea0595..52171b5050 100644 --- a/quantum/action_util.c +++ b/quantum/action_util.c @@ -35,6 +35,9 @@ static uint8_t suppressed_mods = 0; // TODO: pointer variable is not needed // report_keyboard_t keyboard_report = {}; report_keyboard_t *keyboard_report = &(report_keyboard_t){}; +#ifdef NKRO_ENABLE +report_nkro_t *nkro_report = &(report_nkro_t){}; +#endif extern inline void add_key(uint8_t key); extern inline void del_key(uint8_t key); @@ -252,13 +255,8 @@ bool is_oneshot_enabled(void) { #endif -/** \brief Send keyboard report - * - * FIXME: needs doc - */ -void send_keyboard_report(void) { - keyboard_report->mods = real_mods; - keyboard_report->mods |= weak_mods; +static uint8_t get_mods_for_report(void) { + uint8_t mods = real_mods | weak_mods; #ifndef NO_ACTION_ONESHOT if (oneshot_mods) { @@ -268,20 +266,25 @@ void send_keyboard_report(void) { clear_oneshot_mods(); } # endif - keyboard_report->mods |= oneshot_mods; - if (has_anykey(keyboard_report)) { + mods |= oneshot_mods; + if (has_anykey()) { clear_oneshot_mods(); } } - #endif #ifdef KEY_OVERRIDE_ENABLE // These need to be last to be able to properly control key overrides - keyboard_report->mods &= ~suppressed_mods; - keyboard_report->mods |= weak_override_mods; + mods &= ~suppressed_mods; + mods |= weak_override_mods; #endif + return mods; +} + +void send_6kro_report(void) { + keyboard_report->mods = get_mods_for_report(); + #ifdef PROTOCOL_VUSB host_keyboard_send(keyboard_report); #else @@ -295,6 +298,36 @@ void send_keyboard_report(void) { #endif } +#ifdef NKRO_ENABLE +void send_nkro_report(void) { + nkro_report->mods = get_mods_for_report(); + + static report_nkro_t last_report; + + /* Only send the report if there are changes to propagate to the host. */ + if (memcmp(nkro_report, &last_report, sizeof(report_nkro_t)) != 0) { + memcpy(&last_report, nkro_report, sizeof(report_nkro_t)); + host_nkro_send(nkro_report); + } +} +#endif + +/** \brief Send keyboard report + * + * FIXME: needs doc + */ +void send_keyboard_report(void) { +#ifdef NKRO_ENABLE + if (keyboard_protocol && keymap_config.nkro) { + send_nkro_report(); + } else { + send_6kro_report(); + } +#else + send_6kro_report(); +#endif +} + /** \brief Get mods * * FIXME: needs doc diff --git a/quantum/action_util.h b/quantum/action_util.h index 831caf3c0a..d2ecb145be 100644 --- a/quantum/action_util.h +++ b/quantum/action_util.h @@ -26,20 +26,23 @@ extern "C" { #endif extern report_keyboard_t *keyboard_report; +#ifdef NKRO_ENABLE +extern report_nkro_t *nkro_report; +#endif void send_keyboard_report(void); /* key */ inline void add_key(uint8_t key) { - add_key_to_report(keyboard_report, key); + add_key_to_report(key); } inline void del_key(uint8_t key) { - del_key_from_report(keyboard_report, key); + del_key_from_report(key); } inline void clear_keys(void) { - clear_keys_from_report(keyboard_report); + clear_keys_from_report(); } /* modifier */ diff --git a/tests/test_common/keyboard_report_util.cpp b/tests/test_common/keyboard_report_util.cpp index cb7f7ae735..5676483539 100644 --- a/tests/test_common/keyboard_report_util.cpp +++ b/tests/test_common/keyboard_report_util.cpp @@ -95,12 +95,12 @@ std::ostream& operator<<(std::ostream& os, const report_keyboard_t& report) { } KeyboardReportMatcher::KeyboardReportMatcher(const std::vector& keys) { - memset(m_report.raw, 0, sizeof(m_report.raw)); + memset(&m_report, 0, sizeof(report_keyboard_t)); for (auto k : keys) { if (IS_MODIFIER_KEYCODE(k)) { m_report.mods |= MOD_BIT(k); } else { - add_key_to_report(&m_report, k); + add_key_byte(&m_report, k); } } } diff --git a/tests/test_common/test_driver.cpp b/tests/test_common/test_driver.cpp index 0495da8205..d410b225f9 100644 --- a/tests/test_common/test_driver.cpp +++ b/tests/test_common/test_driver.cpp @@ -31,7 +31,7 @@ uint8_t hex_digit_to_keycode(uint8_t digit) { } } // namespace -TestDriver::TestDriver() : m_driver{&TestDriver::keyboard_leds, &TestDriver::send_keyboard, &TestDriver::send_mouse, &TestDriver::send_extra} { +TestDriver::TestDriver() : m_driver{&TestDriver::keyboard_leds, &TestDriver::send_keyboard, &TestDriver::send_nkro, &TestDriver::send_mouse, &TestDriver::send_extra} { host_set_driver(&m_driver); m_this = this; } @@ -49,6 +49,10 @@ void TestDriver::send_keyboard(report_keyboard_t* report) { m_this->send_keyboard_mock(*report); } +void TestDriver::send_nkro(report_nkro_t* report) { + m_this->send_nkro_mock(*report); +} + void TestDriver::send_mouse(report_mouse_t* report) { m_this->send_mouse_mock(*report); } diff --git a/tests/test_common/test_driver.hpp b/tests/test_common/test_driver.hpp index d8a6885d0f..ec75d3fff2 100644 --- a/tests/test_common/test_driver.hpp +++ b/tests/test_common/test_driver.hpp @@ -32,12 +32,14 @@ class TestDriver { } MOCK_METHOD1(send_keyboard_mock, void(report_keyboard_t&)); + MOCK_METHOD1(send_nkro_mock, void(report_nkro_t&)); MOCK_METHOD1(send_mouse_mock, void(report_mouse_t&)); MOCK_METHOD1(send_extra_mock, void(report_extra_t&)); private: static uint8_t keyboard_leds(void); static void send_keyboard(report_keyboard_t* report); + static void send_nkro(report_nkro_t* report); static void send_mouse(report_mouse_t* report); static void send_extra(report_extra_t* report); host_driver_t m_driver; diff --git a/tmk_core/protocol.mk b/tmk_core/protocol.mk index d159dacc55..fd5342d637 100644 --- a/tmk_core/protocol.mk +++ b/tmk_core/protocol.mk @@ -46,9 +46,7 @@ else endif ifeq ($(strip $(NKRO_ENABLE)), yes) - ifeq ($(PROTOCOL), VUSB) - $(info NKRO is not currently supported on V-USB, and has been disabled.) - else ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) + ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) $(info NKRO is not currently supported with Bluetooth, and has been disabled.) else OPT_DEFS += -DNKRO_ENABLE diff --git a/tmk_core/protocol/arm_atsam/main_arm_atsam.c b/tmk_core/protocol/arm_atsam/main_arm_atsam.c index 30817c17b6..8abcfd6090 100644 --- a/tmk_core/protocol/arm_atsam/main_arm_atsam.c +++ b/tmk_core/protocol/arm_atsam/main_arm_atsam.c @@ -36,6 +36,7 @@ uint8_t g_usb_state = USB_FSMSTATUS_FSMSTATE_OFF_Val; // Saved USB state from ha void main_subtasks(void); uint8_t keyboard_leds(void); void send_keyboard(report_keyboard_t *report); +void send_nkro(report_nkro_t *report); void send_mouse(report_mouse_t *report); void send_extra(report_extra_t *report); @@ -43,7 +44,7 @@ void send_extra(report_extra_t *report); void deferred_exec_task(void); #endif // DEFERRED_EXEC_ENABLE -host_driver_t arm_atsam_driver = {keyboard_leds, send_keyboard, send_mouse, send_extra}; +host_driver_t arm_atsam_driver = {keyboard_leds, send_keyboard, send_nkro, send_mouse, send_extra}; uint8_t led_states; @@ -59,41 +60,41 @@ uint8_t keyboard_leds(void) { void send_keyboard(report_keyboard_t *report) { uint32_t irqflags; + while (udi_hid_kbd_b_report_trans_ongoing) { + main_subtasks(); + } // Run other tasks while waiting for USB to be free + + irqflags = __get_PRIMASK(); + __disable_irq(); + __DMB(); + + memcpy(udi_hid_kbd_report, report, UDI_HID_KBD_REPORT_SIZE); + udi_hid_kbd_b_report_valid = 1; + udi_hid_kbd_send_report(); + + __DMB(); + __set_PRIMASK(irqflags); +} + +void send_nkro(report_nkro_t *report) { #ifdef NKRO_ENABLE - if (!keymap_config.nkro) { -#endif // NKRO_ENABLE - while (udi_hid_kbd_b_report_trans_ongoing) { - main_subtasks(); - } // Run other tasks while waiting for USB to be free + uint32_t irqflags; - irqflags = __get_PRIMASK(); - __disable_irq(); - __DMB(); + while (udi_hid_nkro_b_report_trans_ongoing) { + main_subtasks(); + } // Run other tasks while waiting for USB to be free - memcpy(udi_hid_kbd_report, report->raw, UDI_HID_KBD_REPORT_SIZE); - udi_hid_kbd_b_report_valid = 1; - udi_hid_kbd_send_report(); + irqflags = __get_PRIMASK(); + __disable_irq(); + __DMB(); - __DMB(); - __set_PRIMASK(irqflags); -#ifdef NKRO_ENABLE - } else { - while (udi_hid_nkro_b_report_trans_ongoing) { - main_subtasks(); - } // Run other tasks while waiting for USB to be free + memcpy(udi_hid_nkro_report, report, UDI_HID_NKRO_REPORT_SIZE); + udi_hid_nkro_b_report_valid = 1; + udi_hid_nkro_send_report(); - irqflags = __get_PRIMASK(); - __disable_irq(); - __DMB(); - - memcpy(udi_hid_nkro_report, report->raw, UDI_HID_NKRO_REPORT_SIZE); - udi_hid_nkro_b_report_valid = 1; - udi_hid_nkro_send_report(); - - __DMB(); - __set_PRIMASK(irqflags); - } -#endif // NKRO_ENABLE + __DMB(); + __set_PRIMASK(irqflags); +#endif } void send_mouse(report_mouse_t *report) { diff --git a/tmk_core/protocol/chibios/chibios.c b/tmk_core/protocol/chibios/chibios.c index 4d97f1cd82..91bb252c7c 100644 --- a/tmk_core/protocol/chibios/chibios.c +++ b/tmk_core/protocol/chibios/chibios.c @@ -59,11 +59,12 @@ /* declarations */ uint8_t keyboard_leds(void); void send_keyboard(report_keyboard_t *report); +void send_nkro(report_nkro_t *report); void send_mouse(report_mouse_t *report); void send_extra(report_extra_t *report); /* host struct */ -host_driver_t chibios_driver = {keyboard_leds, send_keyboard, send_mouse, send_extra}; +host_driver_t chibios_driver = {keyboard_leds, send_keyboard, send_nkro, send_mouse, send_extra}; #ifdef VIRTSER_ENABLE void virtser_task(void); diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c index b14ca30c1a..f2158fd009 100644 --- a/tmk_core/protocol/chibios/usb_main.c +++ b/tmk_core/protocol/chibios/usb_main.c @@ -71,7 +71,7 @@ static virtual_timer_t keyboard_idle_timer; static void keyboard_idle_timer_cb(struct ch_virtual_timer *, void *arg); -report_keyboard_t keyboard_report_sent = {{0}}; +report_keyboard_t keyboard_report_sent = {0}; report_mouse_t mouse_report_sent = {0}; union { @@ -883,26 +883,22 @@ void send_report(uint8_t endpoint, void *report, size_t size) { /* prepare and start sending a report IN * not callable from ISR or locked state */ void send_keyboard(report_keyboard_t *report) { - uint8_t ep = KEYBOARD_IN_EPNUM; - size_t size = KEYBOARD_REPORT_SIZE; - /* If we're in Boot Protocol, don't send any report ID or other funky fields */ if (!keyboard_protocol) { - send_report(ep, &report->mods, 8); + send_report(KEYBOARD_IN_EPNUM, &report->mods, 8); } else { -#ifdef NKRO_ENABLE - if (keymap_config.nkro) { - ep = SHARED_IN_EPNUM; - size = sizeof(struct nkro_report); - } -#endif - - send_report(ep, report, size); + send_report(KEYBOARD_IN_EPNUM, report, KEYBOARD_REPORT_SIZE); } keyboard_report_sent = *report; } +void send_nkro(report_nkro_t *report) { +#ifdef NKRO_ENABLE + send_report(SHARED_IN_EPNUM, report, sizeof(report_nkro_t)); +#endif +} + /* --------------------------------------------------------- * Mouse functions * --------------------------------------------------------- diff --git a/tmk_core/protocol/host.c b/tmk_core/protocol/host.c index 2c6654e9a6..732fbdc37d 100644 --- a/tmk_core/protocol/host.c +++ b/tmk_core/protocol/host.c @@ -81,26 +81,29 @@ void host_keyboard_send(report_keyboard_t *report) { #endif if (!driver) return; -#if defined(NKRO_ENABLE) && defined(NKRO_SHARED_EP) - if (keyboard_protocol && keymap_config.nkro) { - /* The callers of this function assume that report->mods is where mods go in. - * But report->nkro.mods can be at a different offset if core keyboard does not have a report ID. - */ - report->nkro.mods = report->mods; - report->nkro.report_id = REPORT_ID_NKRO; - } else -#endif - { #ifdef KEYBOARD_SHARED_EP - report->report_id = REPORT_ID_KEYBOARD; + report->report_id = REPORT_ID_KEYBOARD; #endif - } (*driver->send_keyboard)(report); if (debug_keyboard) { - dprint("keyboard_report: "); - for (uint8_t i = 0; i < KEYBOARD_REPORT_SIZE; i++) { - dprintf("%02X ", report->raw[i]); + dprintf("keyboard_report: %02X | ", report->mods); + for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) { + dprintf("%02X ", report->keys[i]); + } + dprint("\n"); + } +} + +void host_nkro_send(report_nkro_t *report) { + if (!driver) return; + report->report_id = REPORT_ID_NKRO; + (*driver->send_nkro)(report); + + if (debug_keyboard) { + dprintf("nkro_report: %02X | ", report->mods); + for (uint8_t i = 0; i < NKRO_REPORT_BITS; i++) { + dprintf("%02X ", report->bits[i]); } dprint("\n"); } diff --git a/tmk_core/protocol/host.h b/tmk_core/protocol/host.h index e4fb3a74f2..959753ae02 100644 --- a/tmk_core/protocol/host.h +++ b/tmk_core/protocol/host.h @@ -38,6 +38,7 @@ host_driver_t *host_get_driver(void); uint8_t host_keyboard_leds(void); led_t host_keyboard_led_state(void); void host_keyboard_send(report_keyboard_t *report); +void host_nkro_send(report_nkro_t *report); void host_mouse_send(report_mouse_t *report); void host_system_send(uint16_t usage); void host_consumer_send(uint16_t usage); diff --git a/tmk_core/protocol/host_driver.h b/tmk_core/protocol/host_driver.h index 7dc6c3d810..8aa38b6dee 100644 --- a/tmk_core/protocol/host_driver.h +++ b/tmk_core/protocol/host_driver.h @@ -26,6 +26,7 @@ along with this program. If not, see . typedef struct { uint8_t (*keyboard_leds)(void); void (*send_keyboard)(report_keyboard_t *); + void (*send_nkro)(report_nkro_t *); void (*send_mouse)(report_mouse_t *); void (*send_extra)(report_extra_t *); } host_driver_t; diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index f04ca79a0c..553f69b1e4 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -55,12 +55,6 @@ #include "usb_device_state.h" #include -#ifdef NKRO_ENABLE -# include "keycode_config.h" - -extern keymap_config_t keymap_config; -#endif - #ifdef VIRTSER_ENABLE # include "virtser.h" #endif @@ -83,9 +77,10 @@ static report_keyboard_t keyboard_report_sent; /* Host driver */ static uint8_t keyboard_leds(void); static void send_keyboard(report_keyboard_t *report); +static void send_nkro(report_nkro_t *report); static void send_mouse(report_mouse_t *report); static void send_extra(report_extra_t *report); -host_driver_t lufa_driver = {keyboard_leds, send_keyboard, send_mouse, send_extra}; +host_driver_t lufa_driver = {keyboard_leds, send_keyboard, send_nkro, send_mouse, send_extra}; void send_report(uint8_t endpoint, void *report, size_t size) { uint8_t timeout = 255; @@ -559,27 +554,26 @@ static uint8_t keyboard_leds(void) { * FIXME: Needs doc */ static void send_keyboard(report_keyboard_t *report) { - /* Select the Keyboard Report Endpoint */ - uint8_t ep = KEYBOARD_IN_EPNUM; - uint8_t size = KEYBOARD_REPORT_SIZE; - /* If we're in Boot Protocol, don't send any report ID or other funky fields */ if (!keyboard_protocol) { - send_report(ep, &report->mods, 8); + send_report(KEYBOARD_IN_EPNUM, &report->mods, 8); } else { -#ifdef NKRO_ENABLE - if (keymap_config.nkro) { - ep = SHARED_IN_EPNUM; - size = sizeof(struct nkro_report); - } -#endif - - send_report(ep, report, size); + send_report(KEYBOARD_IN_EPNUM, report, KEYBOARD_REPORT_SIZE); } keyboard_report_sent = *report; } +/** \brief Send NKRO + * + * FIXME: Needs doc + */ +static void send_nkro(report_nkro_t *report) { +#ifdef NKRO_ENABLE + send_report(SHARED_IN_EPNUM, report, sizeof(report_nkro_t)); +#endif +} + /** \brief Send Mouse * * FIXME: Needs doc diff --git a/tmk_core/protocol/report.c b/tmk_core/protocol/report.c index 27d267abae..0166bf654f 100644 --- a/tmk_core/protocol/report.c +++ b/tmk_core/protocol/report.c @@ -15,6 +15,7 @@ */ #include "report.h" +#include "action_util.h" #include "host.h" #include "keycode_config.h" #include "debug.h" @@ -35,14 +36,14 @@ static int8_t cb_count = 0; * * FIXME: Needs doc */ -uint8_t has_anykey(report_keyboard_t* keyboard_report) { +uint8_t has_anykey(void) { uint8_t cnt = 0; uint8_t* p = keyboard_report->keys; uint8_t lp = sizeof(keyboard_report->keys); #ifdef NKRO_ENABLE if (keyboard_protocol && keymap_config.nkro) { - p = keyboard_report->nkro.bits; - lp = sizeof(keyboard_report->nkro.bits); + p = nkro_report->bits; + lp = sizeof(nkro_report->bits); } #endif while (lp--) { @@ -55,13 +56,13 @@ uint8_t has_anykey(report_keyboard_t* keyboard_report) { * * FIXME: Needs doc */ -uint8_t get_first_key(report_keyboard_t* keyboard_report) { +uint8_t get_first_key(void) { #ifdef NKRO_ENABLE if (keyboard_protocol && keymap_config.nkro) { uint8_t i = 0; - for (; i < NKRO_REPORT_BITS && !keyboard_report->nkro.bits[i]; i++) + for (; i < NKRO_REPORT_BITS && !nkro_report->bits[i]; i++) ; - return i << 3 | biton(keyboard_report->nkro.bits[i]); + return i << 3 | biton(nkro_report->bits[i]); } #endif #ifdef RING_BUFFERED_6KRO_REPORT_ENABLE @@ -83,14 +84,14 @@ uint8_t get_first_key(report_keyboard_t* keyboard_report) { * Returns true if the keyboard_report reports that the key is pressed, otherwise false * Note: The function doesn't support modifers currently, and it returns false for KC_NO */ -bool is_key_pressed(report_keyboard_t* keyboard_report, uint8_t key) { +bool is_key_pressed(uint8_t key) { if (key == KC_NO) { return false; } #ifdef NKRO_ENABLE if (keyboard_protocol && keymap_config.nkro) { if ((key >> 3) < NKRO_REPORT_BITS) { - return keyboard_report->nkro.bits[key >> 3] & 1 << (key & 7); + return nkro_report->bits[key >> 3] & 1 << (key & 7); } else { return false; } @@ -215,9 +216,9 @@ void del_key_byte(report_keyboard_t* keyboard_report, uint8_t code) { * * FIXME: Needs doc */ -void add_key_bit(report_keyboard_t* keyboard_report, uint8_t code) { +void add_key_bit(report_nkro_t* nkro_report, uint8_t code) { if ((code >> 3) < NKRO_REPORT_BITS) { - keyboard_report->nkro.bits[code >> 3] |= 1 << (code & 7); + nkro_report->bits[code >> 3] |= 1 << (code & 7); } else { dprintf("add_key_bit: can't add: %02X\n", code); } @@ -227,9 +228,9 @@ void add_key_bit(report_keyboard_t* keyboard_report, uint8_t code) { * * FIXME: Needs doc */ -void del_key_bit(report_keyboard_t* keyboard_report, uint8_t code) { +void del_key_bit(report_nkro_t* nkro_report, uint8_t code) { if ((code >> 3) < NKRO_REPORT_BITS) { - keyboard_report->nkro.bits[code >> 3] &= ~(1 << (code & 7)); + nkro_report->bits[code >> 3] &= ~(1 << (code & 7)); } else { dprintf("del_key_bit: can't del: %02X\n", code); } @@ -240,10 +241,10 @@ void del_key_bit(report_keyboard_t* keyboard_report, uint8_t code) { * * FIXME: Needs doc */ -void add_key_to_report(report_keyboard_t* keyboard_report, uint8_t key) { +void add_key_to_report(uint8_t key) { #ifdef NKRO_ENABLE if (keyboard_protocol && keymap_config.nkro) { - add_key_bit(keyboard_report, key); + add_key_bit(nkro_report, key); return; } #endif @@ -254,10 +255,10 @@ void add_key_to_report(report_keyboard_t* keyboard_report, uint8_t key) { * * FIXME: Needs doc */ -void del_key_from_report(report_keyboard_t* keyboard_report, uint8_t key) { +void del_key_from_report(uint8_t key) { #ifdef NKRO_ENABLE if (keyboard_protocol && keymap_config.nkro) { - del_key_bit(keyboard_report, key); + del_key_bit(nkro_report, key); return; } #endif @@ -268,11 +269,11 @@ void del_key_from_report(report_keyboard_t* keyboard_report, uint8_t key) { * * FIXME: Needs doc */ -void clear_keys_from_report(report_keyboard_t* keyboard_report) { +void clear_keys_from_report(void) { // not clear mods #ifdef NKRO_ENABLE if (keyboard_protocol && keymap_config.nkro) { - memset(keyboard_report->nkro.bits, 0, sizeof(keyboard_report->nkro.bits)); + memset(nkro_report->bits, 0, sizeof(nkro_report->bits)); return; } #endif diff --git a/tmk_core/protocol/report.h b/tmk_core/protocol/report.h index dd3cee3df0..9b612dd182 100644 --- a/tmk_core/protocol/report.h +++ b/tmk_core/protocol/report.h @@ -125,21 +125,7 @@ enum desktop_usages { // clang-format on -#define NKRO_SHARED_EP -/* key report size(NKRO or boot mode) */ -#if defined(NKRO_ENABLE) -# if defined(PROTOCOL_LUFA) || defined(PROTOCOL_CHIBIOS) -# include "protocol/usb_descriptor.h" -# define NKRO_REPORT_BITS (SHARED_EPSIZE - 2) -# elif defined(PROTOCOL_ARM_ATSAM) -# include "protocol/arm_atsam/usb/udi_device_epsize.h" -# define NKRO_REPORT_BITS (NKRO_EPSIZE - 1) -# undef NKRO_SHARED_EP -# undef MOUSE_SHARED_EP -# else -# error "NKRO not supported with this protocol" -# endif -#endif +#define NKRO_REPORT_BITS 30 #ifdef KEYBOARD_SHARED_EP # define KEYBOARD_REPORT_SIZE 9 @@ -173,27 +159,21 @@ extern "C" { * desc |Lcontrol|Lshift |Lalt |Lgui |Rcontrol|Rshift |Ralt |Rgui * */ -typedef union { - uint8_t raw[KEYBOARD_REPORT_SIZE]; - struct { +typedef struct { #ifdef KEYBOARD_SHARED_EP - uint8_t report_id; -#endif - uint8_t mods; - uint8_t reserved; - uint8_t keys[KEYBOARD_REPORT_KEYS]; - }; -#ifdef NKRO_ENABLE - struct nkro_report { -# ifdef NKRO_SHARED_EP - uint8_t report_id; -# endif - uint8_t mods; - uint8_t bits[NKRO_REPORT_BITS]; - } nkro; + uint8_t report_id; #endif + uint8_t mods; + uint8_t reserved; + uint8_t keys[KEYBOARD_REPORT_KEYS]; } PACKED report_keyboard_t; +typedef struct { + uint8_t report_id; + uint8_t mods; + uint8_t bits[NKRO_REPORT_BITS]; +} PACKED report_nkro_t; + typedef struct { uint8_t report_id; uint16_t usage; @@ -330,20 +310,20 @@ static inline uint16_t KEYCODE2CONSUMER(uint8_t key) { } } -uint8_t has_anykey(report_keyboard_t* keyboard_report); -uint8_t get_first_key(report_keyboard_t* keyboard_report); -bool is_key_pressed(report_keyboard_t* keyboard_report, uint8_t key); +uint8_t has_anykey(void); +uint8_t get_first_key(void); +bool is_key_pressed(uint8_t key); void add_key_byte(report_keyboard_t* keyboard_report, uint8_t code); void del_key_byte(report_keyboard_t* keyboard_report, uint8_t code); #ifdef NKRO_ENABLE -void add_key_bit(report_keyboard_t* keyboard_report, uint8_t code); -void del_key_bit(report_keyboard_t* keyboard_report, uint8_t code); +void add_key_bit(report_nkro_t* nkro_report, uint8_t code); +void del_key_bit(report_nkro_t* nkro_report, uint8_t code); #endif -void add_key_to_report(report_keyboard_t* keyboard_report, uint8_t key); -void del_key_from_report(report_keyboard_t* keyboard_report, uint8_t key); -void clear_keys_from_report(report_keyboard_t* keyboard_report); +void add_key_to_report(uint8_t key); +void del_key_from_report(uint8_t key); +void clear_keys_from_report(void); #ifdef MOUSE_ENABLE bool has_mouse_report_changed(report_mouse_t* new_report, report_mouse_t* old_report); diff --git a/tmk_core/protocol/vusb/vusb.c b/tmk_core/protocol/vusb/vusb.c index d74f375f66..d2c7749937 100644 --- a/tmk_core/protocol/vusb/vusb.c +++ b/tmk_core/protocol/vusb/vusb.c @@ -91,6 +91,7 @@ enum usb_interfaces { static uint8_t keyboard_led_state = 0; static uint8_t vusb_idle_rate = 0; +uint8_t keyboard_protocol = 1; /* Keyboard report send buffer */ #define KBUF_SIZE 16 @@ -231,10 +232,11 @@ void console_task(void) { *------------------------------------------------------------------*/ static uint8_t keyboard_leds(void); static void send_keyboard(report_keyboard_t *report); +static void send_nkro(report_nkro_t *report); static void send_mouse(report_mouse_t *report); static void send_extra(report_extra_t *report); -static host_driver_t driver = {keyboard_leds, send_keyboard, send_mouse, send_extra}; +static host_driver_t driver = {keyboard_leds, send_keyboard, send_nkro, send_mouse, send_extra}; host_driver_t *vusb_driver(void) { return &driver; @@ -259,6 +261,10 @@ static void send_keyboard(report_keyboard_t *report) { keyboard_report_sent = *report; } +static void send_nkro(report_nkro_t *report) { + // TODO: Implement NKRO +} + #ifndef KEYBOARD_SHARED_EP # define usbInterruptIsReadyShared usbInterruptIsReady3 # define usbSetInterruptShared usbSetInterrupt3 From 96c71b9b4c0ffeadc20db89f7d3f257dcb402a12 Mon Sep 17 00:00:00 2001 From: Yonghyuk Choi <42003350+oRE-o@users.noreply.github.com> Date: Tue, 24 Oct 2023 03:09:51 +0900 Subject: [PATCH 302/496] [Keyboard] Add purin (#22306) --- keyboards/purin/info.json | 108 +++++++++++++++++++++++ keyboards/purin/keymaps/default/keymap.c | 31 +++++++ keyboards/purin/keymaps/via/keymap.c | 31 +++++++ keyboards/purin/keymaps/via/rules.mk | 1 + keyboards/purin/readme.md | 28 ++++++ keyboards/purin/rules.mk | 1 + 6 files changed, 200 insertions(+) create mode 100644 keyboards/purin/info.json create mode 100644 keyboards/purin/keymaps/default/keymap.c create mode 100644 keyboards/purin/keymaps/via/keymap.c create mode 100644 keyboards/purin/keymaps/via/rules.mk create mode 100644 keyboards/purin/readme.md create mode 100644 keyboards/purin/rules.mk diff --git a/keyboards/purin/info.json b/keyboards/purin/info.json new file mode 100644 index 0000000000..08a8b06e34 --- /dev/null +++ b/keyboards/purin/info.json @@ -0,0 +1,108 @@ +{ + "manufacturer": "oRE-o", + "keyboard_name": "purin", + "maintainer": "oRE-o", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["C7", "C6", "B6", "B5", "B4", "D7", "D6", "D0", "D1", "D2", "B7", "B3", "F4", "F1", "F0"], + "rows": ["F6", "F7", "D4", "D5", "D3"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0x6F52" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.25, "y": 0}, + {"matrix": [0, 6], "x": 6.25, "y": 0}, + {"matrix": [0, 7], "x": 7.25, "y": 0}, + + {"matrix": [0, 8], "x": 10.25, "y": 0}, + {"matrix": [0, 9], "x": 11.25, "y": 0}, + {"matrix": [0, 10], "x": 12.25, "y": 0}, + {"matrix": [0, 11], "x": 13.25, "y": 0}, + {"matrix": [0, 12], "x": 14.25, "y": 0}, + {"matrix": [0, 13], "x": 15.25, "y": 0}, + {"matrix": [0, 14], "x": 16.25, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + + {"matrix": [1, 1], "x": 1.25, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 2.75, "y": 1}, + {"matrix": [1, 3], "x": 3.75, "y": 1}, + {"matrix": [1, 4], "x": 4.75, "y": 1}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + + {"matrix": [1, 7], "x": 9.75, "y": 1}, + {"matrix": [1, 8], "x": 10.75, "y": 1}, + {"matrix": [1, 9], "x": 11.75, "y": 1}, + {"matrix": [1, 10], "x": 12.75, "y": 1}, + {"matrix": [1, 11], "x": 13.75, "y": 1}, + {"matrix": [1, 12], "x": 14.75, "y": 1}, + {"matrix": [1, 13], "x": 15.75, "y": 1}, + {"matrix": [1, 14], "x": 16.75, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3, "y": 2}, + {"matrix": [2, 3], "x": 4, "y": 2}, + {"matrix": [2, 4], "x": 5, "y": 2}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + + {"matrix": [2, 7], "x": 10, "y": 2}, + {"matrix": [2, 8], "x": 11, "y": 2}, + {"matrix": [2, 9], "x": 12, "y": 2}, + {"matrix": [2, 10], "x": 13, "y": 2}, + {"matrix": [2, 11], "x": 14, "y": 2}, + {"matrix": [2, 12], "x": 15, "y": 2}, + {"matrix": [2, 13], "x": 16, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 1.25, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 3.5, "y": 3}, + {"matrix": [3, 2], "x": 4.5, "y": 3}, + {"matrix": [3, 3], "x": 5.5, "y": 3}, + {"matrix": [3, 4], "x": 6.5, "y": 3}, + {"matrix": [3, 5], "x": 7.5, "y": 3}, + + {"matrix": [3, 6], "x": 9.5, "y": 3}, + {"matrix": [3, 7], "x": 10.5, "y": 3}, + {"matrix": [3, 8], "x": 11.5, "y": 3}, + {"matrix": [3, 9], "x": 12.5, "y": 3}, + {"matrix": [3, 10], "x": 13.5, "y": 3}, + {"matrix": [3, 11], "x": 14.5, "y": 3}, + {"matrix": [3, 12], "x": 15.5, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 17.25, "y": 3}, + + {"matrix": [4, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 4.25, "y": 4, "w": 1.25}, + {"matrix": [4, 3], "x": 5.75, "y": 4, "w": 2}, + {"matrix": [4, 4], "x": 7.75, "y": 4, "w": 1.25}, + {"matrix": [4, 5], "x": 9.5, "y": 4, "w": 2.75}, + {"matrix": [4, 6], "x": 12.25, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 16.75, "y": 4, "w": 1.5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/purin/keymaps/default/keymap.c b/keyboards/purin/keymaps/default/keymap.c new file mode 100644 index 0000000000..f5c2cd7bbf --- /dev/null +++ b/keyboards/purin/keymaps/default/keymap.c @@ -0,0 +1,31 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( // for windows + KC_ESC, QK_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_BSPC, + KC_HOME, 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_END, KC_RALT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(2), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), KC_SPC, KC_RALT, KC_RCTL + ), + + [1] = LAYOUT( // for mac + KC_ESC, QK_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_BSPC, + KC_HOME, 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_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(2), + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, MO(2), KC_SPC, KC_RGUI, KC_RALT + ), + + [2] = LAYOUT( // FN Layer 1 + _______, 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_DEL, + KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, DF(0), DF(1), + KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RGHT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/purin/keymaps/via/keymap.c b/keyboards/purin/keymaps/via/keymap.c new file mode 100644 index 0000000000..e13eea3c74 --- /dev/null +++ b/keyboards/purin/keymaps/via/keymap.c @@ -0,0 +1,31 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( // for windows + KC_ESC, QK_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_BSPC, + KC_HOME, 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_END, KC_RALT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(2), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), KC_SPC, KC_RALT, KC_RCTL + ), + + [1] = LAYOUT( // for mac + KC_ESC, QK_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_BSPC, + KC_HOME, 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_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(2), + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, MO(2), KC_SPC, KC_RGUI, KC_RALT + ), + + [2] = LAYOUT( // FN Layer 1 + _______, 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_DEL, + KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, DF(0), DF(1), + KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RGHT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/purin/keymaps/via/rules.mk b/keyboards/purin/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/purin/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/purin/readme.md b/keyboards/purin/readme.md new file mode 100644 index 0000000000..4b4eb6a1b8 --- /dev/null +++ b/keyboards/purin/readme.md @@ -0,0 +1,28 @@ +# purin + +![purin](https://i.imgur.com/ig8DWEFh.jpg) + +Keyboard developed by oREo! +Project for learning about qmk, Atmega32u4. + +* Keyboard Maintainer: [oRE-o](https://github.com/oRE-o) +* Hardware Supported: Purin PCB by oREo +* Hardware Availability: Not yet + +Make example for this keyboard (after setting up your build environment): + + make purin:default + +Flashing example for this keyboard: + + make purin:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/purin/rules.mk b/keyboards/purin/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/purin/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file From d2773c6d67bce73dc3b8bc7922463184304651b1 Mon Sep 17 00:00:00 2001 From: owlab-git <88034417+owlab-git@users.noreply.github.com> Date: Tue, 24 Oct 2023 02:12:27 +0800 Subject: [PATCH 303/496] [Keyboard] Add QK100 (#21782) Co-authored-by: Drashna Jaelre --- keyboards/qwertykeys/qk100/ansi/ansi.c | 197 +++++++++++++ keyboards/qwertykeys/qk100/ansi/config.h | 43 +++ keyboards/qwertykeys/qk100/ansi/halconf.h | 21 ++ keyboards/qwertykeys/qk100/ansi/info.json | 266 ++++++++++++++++++ .../qk100/ansi/keymaps/default/keymap.c | 38 +++ .../qk100/ansi/keymaps/via/keymap.c | 38 +++ .../qk100/ansi/keymaps/via/rules.mk | 2 + keyboards/qwertykeys/qk100/ansi/mcuconf.h | 25 ++ keyboards/qwertykeys/qk100/ansi/readme.md | 21 ++ keyboards/qwertykeys/qk100/ansi/rules.mk | 1 + keyboards/qwertykeys/qk100/info.json | 43 +++ keyboards/qwertykeys/qk100/solder/config.h | 29 ++ keyboards/qwertykeys/qk100/solder/info.json | 114 ++++++++ .../qk100/solder/keymaps/default/keymap.c | 38 +++ .../qk100/solder/keymaps/via/keymap.c | 38 +++ .../qk100/solder/keymaps/via/rules.mk | 2 + keyboards/qwertykeys/qk100/solder/readme.md | 21 ++ keyboards/qwertykeys/qk100/solder/rules.mk | 1 + keyboards/qwertykeys/qk100/solder/solder.c | 37 +++ 19 files changed, 975 insertions(+) create mode 100644 keyboards/qwertykeys/qk100/ansi/ansi.c create mode 100644 keyboards/qwertykeys/qk100/ansi/config.h create mode 100644 keyboards/qwertykeys/qk100/ansi/halconf.h create mode 100644 keyboards/qwertykeys/qk100/ansi/info.json create mode 100644 keyboards/qwertykeys/qk100/ansi/keymaps/default/keymap.c create mode 100644 keyboards/qwertykeys/qk100/ansi/keymaps/via/keymap.c create mode 100644 keyboards/qwertykeys/qk100/ansi/keymaps/via/rules.mk create mode 100644 keyboards/qwertykeys/qk100/ansi/mcuconf.h create mode 100644 keyboards/qwertykeys/qk100/ansi/readme.md create mode 100644 keyboards/qwertykeys/qk100/ansi/rules.mk create mode 100644 keyboards/qwertykeys/qk100/info.json create mode 100644 keyboards/qwertykeys/qk100/solder/config.h create mode 100644 keyboards/qwertykeys/qk100/solder/info.json create mode 100644 keyboards/qwertykeys/qk100/solder/keymaps/default/keymap.c create mode 100644 keyboards/qwertykeys/qk100/solder/keymaps/via/keymap.c create mode 100644 keyboards/qwertykeys/qk100/solder/keymaps/via/rules.mk create mode 100644 keyboards/qwertykeys/qk100/solder/readme.md create mode 100644 keyboards/qwertykeys/qk100/solder/rules.mk create mode 100644 keyboards/qwertykeys/qk100/solder/solder.c diff --git a/keyboards/qwertykeys/qk100/ansi/ansi.c b/keyboards/qwertykeys/qk100/ansi/ansi.c new file mode 100644 index 0000000000..87e1b99e1b --- /dev/null +++ b/keyboards/qwertykeys/qk100/ansi/ansi.c @@ -0,0 +1,197 @@ +/* +Copyright 2023 Qwertykeys + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { + {0, CS2_SW1, CS3_SW1, CS1_SW1}, /* RGB0-ESC ROW0*/ + {0, CS5_SW1, CS6_SW1, CS4_SW1}, /* RGB1-F1 */ + {0, CS8_SW1, CS9_SW1, CS7_SW1}, /* RGB2-F2 */ + {0, CS11_SW1, CS12_SW1, CS10_SW1}, /* RGB3-F3 */ + {0, CS14_SW1, CS15_SW1, CS13_SW1}, /* RGB4-F4 */ + {0, CS17_SW1, CS18_SW1, CS16_SW1}, /* RGB5-F5 */ + {0, CS20_SW1, CS21_SW1, CS19_SW1}, /* RGB6-F6 */ + {0, CS23_SW1, CS24_SW1, CS22_SW1}, /* RGB7-F7 */ + {0, CS26_SW1, CS27_SW1, CS25_SW1}, /* RGB8-F8 */ + {0, CS29_SW1, CS30_SW1, CS28_SW1}, /* RGB9-F9 */ + {0, CS32_SW1, CS33_SW1, CS31_SW1}, /* RGB10-F10 */ + {0, CS35_SW1, CS36_SW1, CS34_SW1}, /* RGB11-F11 */ + {0, CS38_SW1, CS39_SW1, CS37_SW1}, /* RGB12-F12 */ + {0, CS29_SW7, CS30_SW7, CS28_SW7}, /* RGB13-Delete */ + {0, CS32_SW7, CS33_SW7, CS31_SW7}, /* RGB14-End */ + {0, CS35_SW7, CS36_SW7, CS34_SW7}, /* RGB15-Insert */ + {0, CS38_SW7, CS39_SW7, CS37_SW7}, /* RGB16-Home */ + {0, CS2_SW2, CS3_SW2, CS1_SW2}, /* RGB17-~ ----ROW1*/ + {0, CS5_SW2, CS6_SW2, CS4_SW2}, /* RGB18-1 */ + {0, CS8_SW2, CS9_SW2, CS7_SW2}, /* RGB19-2 */ + {0, CS11_SW2, CS12_SW2, CS10_SW2}, /* RGB20-3 */ + {0, CS14_SW2, CS15_SW2, CS13_SW2}, /* RGB21-4 */ + {0, CS17_SW2, CS18_SW2, CS16_SW2}, /* RGB22-5 */ + {0, CS20_SW2, CS21_SW2, CS19_SW2}, /* RGB23-6 */ + {0, CS23_SW2, CS24_SW2, CS22_SW2}, /* RGB24-7 */ + {0, CS26_SW2, CS27_SW2, CS25_SW2}, /* RGB25-8 */ + {0, CS29_SW2, CS30_SW2, CS28_SW2}, /* RGB26-9 */ + {0, CS32_SW2, CS33_SW2, CS31_SW2}, /* RGB27-0 */ + {0, CS35_SW2, CS36_SW2, CS34_SW2}, /* RGB28--- */ + {0, CS38_SW2, CS39_SW2, CS37_SW2}, /* RGB29-+= */ + {0, CS26_SW7, CS27_SW7, CS25_SW7}, /* RGB30-BS */ + {0, CS29_SW8, CS30_SW8, CS28_SW8}, /* RGB31-Num Lock */ + {0, CS32_SW8, CS33_SW8, CS31_SW8}, /* RGB32- / */ + {0, CS35_SW8, CS36_SW8, CS34_SW8}, /* RGB33- * */ + {0, CS38_SW8, CS39_SW8, CS37_SW8}, /* RGB34- - */ + {0, CS2_SW3, CS3_SW3, CS1_SW3}, /* RGB35-TAB ----ROW2*/ + {0, CS5_SW3, CS6_SW3, CS4_SW3}, /* RGB36-Q */ + {0, CS8_SW3, CS9_SW3, CS7_SW3}, /* RGB37-W */ + {0, CS11_SW3, CS12_SW3, CS10_SW3}, /* RGB38-E */ + {0, CS14_SW3, CS15_SW3, CS13_SW3}, /* RGB39-R */ + {0, CS17_SW3, CS18_SW3, CS16_SW3}, /* RGB40-T */ + {0, CS20_SW3, CS21_SW3, CS19_SW3}, /* RGB41-Y */ + {0, CS23_SW3, CS24_SW3, CS22_SW3}, /* RGB42-U */ + {0, CS26_SW3, CS27_SW3, CS25_SW3}, /* RGB43-I */ + {0, CS29_SW3, CS30_SW3, CS28_SW3}, /* RGB44-O */ + {0, CS32_SW3, CS33_SW3, CS31_SW3}, /* RGB45-P */ + {0, CS35_SW3, CS36_SW3, CS34_SW3}, /* RGB46-[ */ + {0, CS38_SW3, CS39_SW3, CS37_SW3}, /* RGB47-] */ + {0, CS26_SW9, CS27_SW9, CS25_SW9}, /* RGB48-\ */ + {0, CS29_SW9, CS30_SW9, CS28_SW9}, /* RGB49-page up */ + {0, CS32_SW9, CS33_SW9, CS31_SW9}, /* RGB50-7 */ + {0, CS35_SW9, CS36_SW9, CS34_SW9}, /* RGB51-8 */ + {0, CS38_SW9, CS39_SW9, CS37_SW9}, /* RGB52-9 */ + {0, CS2_SW4, CS3_SW4, CS1_SW4}, /* RGB53-CAPS---ROW3*/ + {0, CS5_SW4, CS6_SW4, CS4_SW4}, /* RGB54-A-- */ + {0, CS8_SW4, CS9_SW4, CS7_SW4}, /* RGB55-S-- */ + {0, CS11_SW4, CS12_SW4, CS10_SW4}, /* RGB56-D */ + {0, CS14_SW4, CS15_SW4, CS13_SW4}, /* RGB57-F */ + {0, CS17_SW4, CS18_SW4, CS16_SW4}, /* RGB58-G */ + {0, CS20_SW4, CS21_SW4, CS19_SW4}, /* RGB59-H */ + {0, CS23_SW4, CS24_SW4, CS22_SW4}, /* RGB60-J */ + {0, CS26_SW4, CS27_SW4, CS25_SW4}, /* RGB61-K */ + {0, CS29_SW4, CS30_SW4, CS28_SW4}, /* RGB62-L */ + {0, CS32_SW4, CS33_SW4, CS31_SW4}, /* RGB63-;: */ + {0, CS35_SW4, CS36_SW4, CS34_SW4}, /* RGB64-'" */ + {0, CS38_SW4, CS39_SW4, CS37_SW4}, /* RGB65-ENTER */ + {0, CS11_SW7, CS12_SW7, CS10_SW7}, /* RGB66-Page Down */ + {0, CS14_SW7, CS15_SW7, CS13_SW7}, /* RGB67-4 */ + {0, CS17_SW7, CS18_SW7, CS16_SW7}, /* RGB68-5 */ + {0, CS20_SW7, CS21_SW7, CS19_SW7}, /* RGB69-6 */ + {0, CS23_SW7, CS24_SW7, CS22_SW7}, /* RGB70-+ */ + {0, CS2_SW5, CS3_SW5, CS1_SW5}, /* RGB71-LSF --ROW4*/ + {0, CS5_SW5, CS6_SW5, CS4_SW5}, /* RGB72-Z */ + {0, CS8_SW5, CS9_SW5, CS7_SW5}, /* RGB73-X */ + {0, CS11_SW5, CS12_SW5, CS10_SW5}, /* RGB74-C */ + {0, CS14_SW5, CS15_SW5, CS13_SW5}, /* RGB75-V */ + {0, CS17_SW5, CS18_SW5, CS16_SW5}, /* RGB76-B */ + {0, CS20_SW5, CS21_SW5, CS19_SW5}, /* RGB77-N */ + {0, CS23_SW5, CS24_SW5, CS22_SW5}, /* RGB78-M */ + {0, CS26_SW5, CS27_SW5, CS25_SW5}, /* RGB79-,< */ + {0, CS29_SW5, CS30_SW5, CS28_SW5}, /* RGB80->. */ + {0, CS32_SW5, CS33_SW5, CS31_SW5}, /* RGB81-?/ */ + {0, CS35_SW5, CS36_SW5, CS34_SW5}, /* RGB82-RSF */ + {0, CS38_SW5, CS39_SW5, CS37_SW5}, /* RGB83-UP */ + {0, CS14_SW8, CS15_SW8, CS13_SW8}, /* RGB84-1*/ + {0, CS17_SW8, CS18_SW8, CS16_SW8}, /* RGB85-2 */ + {0, CS20_SW8, CS21_SW8, CS19_SW8}, /* RGB86-3 */ + {0, CS23_SW8, CS24_SW8, CS22_SW8}, /* RGB87-Enter */ + {0, CS2_SW6, CS3_SW6, CS1_SW6}, /* RGB88-lct-- ROW5*/ + {0, CS5_SW6, CS6_SW6, CS4_SW6}, /* RGB89-lwin */ + {0, CS8_SW6, CS9_SW6, CS7_SW6}, /* RGB90-lalt */ + {0, CS11_SW6, CS12_SW6, CS10_SW6}, /* RGB91-sp0 */ + {0, CS17_SW6, CS18_SW6, CS16_SW6}, /* RGB92-sp */ + {0, CS26_SW6, CS27_SW6, CS25_SW6}, /* RGB93-sp2 */ + {0, CS29_SW6, CS30_SW6, CS28_SW6}, /* RGB94-ralt */ + {0, CS32_SW6, CS33_SW6, CS31_SW6}, /* RGB95- fn */ + {0, CS35_SW6, CS36_SW6, CS34_SW6}, /* RGB96-left */ + {0, CS38_SW6, CS39_SW6, CS37_SW6}, /* RGB97-down */ + {0, CS11_SW9, CS12_SW9, CS10_SW9}, /* RGB98-right */ + {0, CS14_SW9, CS15_SW9, CS13_SW9}, /* RGB99- 0 */ + {0, CS20_SW9, CS21_SW9, CS19_SW9} /* RGB100- . */ +}; + +bool process_record_kb(uint16_t keycode, keyrecord_t* record) { + if (record->event.pressed) { + switch (keycode) { + case QK_KB_0: + rgb_matrix_toggle(); + break; + + case QK_KB_1: + rgb_matrix_step(); + break; + + case QK_KB_2: + rgb_matrix_step_reverse(); + break; + + case QK_KB_3: + rgb_matrix_increase_hue(); // Increase the hue for effect range LEDs + break; + + case QK_KB_4: + rgb_matrix_decrease_hue(); // Decrease the hue for effect range LEDs + break; + + case QK_KB_5: + rgb_matrix_increase_sat(); // Increase the saturation for effect range LEDs + break; + + case QK_KB_6: + rgb_matrix_decrease_sat(); // Decrease the saturation for effect range LEDs + break; + + case QK_KB_7: + rgb_matrix_increase_val(); // Increase the value for effect range LEDs + break; + + case QK_KB_8: + rgb_matrix_decrease_val(); // Decrease the value for effect range LEDs + break; + + case QK_KB_9: + rgb_matrix_increase_speed(); // Increase the speed of the animations + break; + + case QK_KB_10: + rgb_matrix_decrease_speed(); // Decrease the speed of the animations + break; + + default: + break; + } + } + return process_record_user(keycode, record); +} +#endif + +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 3, HSV_WHITE}); + +const rgblight_segment_t PROGMEM my_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS({3, 3, HSV_WHITE}); + +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(my_capslock_layer, my_numlock_layer); + +void keyboard_post_init_kb(void) { + rgblight_layers = my_rgb_layers; + keyboard_post_init_user(); +} + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if (res) { + rgblight_set_layer_state(0, led_state.caps_lock); + rgblight_set_layer_state(1, !led_state.num_lock); + } + return res; +} \ No newline at end of file diff --git a/keyboards/qwertykeys/qk100/ansi/config.h b/keyboards/qwertykeys/qk100/ansi/config.h new file mode 100644 index 0000000000..6d0401a3dc --- /dev/null +++ b/keyboards/qwertykeys/qk100/ansi/config.h @@ -0,0 +1,43 @@ +/* +Copyright 2023 Qwertykeys + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +# define RGBLIGHT_LAYERS +# define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF +# define RGBLIGHT_LAYERS_RETAIN_VAL +# define RGBLIGHT_DEFAULT_VAL 10 +# define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + 5 +# define RGBLIGHT_SLEEP +/*== customize breathing effect ==*/ +# define RGBLIGHT_BREATHE_TABLE_SIZE 128 +# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.0 +# define RGBLIGHT_EFFECT_BREATHE_MAX 60 + +/* RGB matrix */ +#define I2C1_CLOCK_SPEED 400000 +#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 +# define RGB_MATRIX_DISABLE_KEYCODES +# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +# define RGB_MATRIX_LED_PROCESS_LIMIT 4 +# define RGB_MATRIX_LED_FLUSH_LIMIT 26 +# define RGB_MATRIX_STARTUP_VAL 128 +# define DRIVER_ADDR_1 0b0110000 +# define DRIVER_COUNT 1 +# define RGB_MATRIX_LED_COUNT 101 \ No newline at end of file diff --git a/keyboards/qwertykeys/qk100/ansi/halconf.h b/keyboards/qwertykeys/qk100/ansi/halconf.h new file mode 100644 index 0000000000..0deaa06aa2 --- /dev/null +++ b/keyboards/qwertykeys/qk100/ansi/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2023 Qwertykeys + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next \ No newline at end of file diff --git a/keyboards/qwertykeys/qk100/ansi/info.json b/keyboards/qwertykeys/qk100/ansi/info.json new file mode 100644 index 0000000000..e9cd6ca3f2 --- /dev/null +++ b/keyboards/qwertykeys/qk100/ansi/info.json @@ -0,0 +1,266 @@ +{ + "keyboard_name": "QK100 ANSI", + "usb": { + "pid": "0x3030", + "device_version": "0.0.1" + }, + "features": { + "rgb_matrix": true + }, + "rgb_matrix": { + "driver": "is31fl3741", + "max_brightness": 200, + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 18, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 54, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 72, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 96, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 108, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 126, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 138, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 150, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 162, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 188, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 200, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 212, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 13, "flags": 4}, + {"matrix": [1, 1], "x": 12, "y": 13, "flags": 4}, + {"matrix": [1, 2], "x": 24, "y": 13, "flags": 4}, + {"matrix": [1, 3], "x": 36, "y": 13, "flags": 4}, + {"matrix": [1, 4], "x": 48, "y": 13, "flags": 4}, + {"matrix": [1, 5], "x": 60, "y": 13, "flags": 4}, + {"matrix": [1, 6], "x": 72, "y": 13, "flags": 4}, + {"matrix": [1, 7], "x": 84, "y": 13, "flags": 4}, + {"matrix": [1, 8], "x": 96, "y": 13, "flags": 4}, + {"matrix": [1, 9], "x": 108, "y": 13, "flags": 4}, + {"matrix": [1, 10], "x": 120, "y": 13, "flags": 4}, + {"matrix": [1, 11], "x": 132, "y": 13, "flags": 4}, + {"matrix": [1, 12], "x": 144, "y": 13, "flags": 4}, + {"matrix": [1, 13], "x": 156, "y": 13, "flags": 1}, + {"matrix": [1, 15], "x": 188, "y": 13, "flags": 1}, + {"matrix": [1, 16], "x": 200, "y": 13, "flags": 1}, + {"matrix": [1, 17], "x": 212, "y": 13, "flags": 1}, + {"matrix": [1, 18], "x": 224, "y": 13, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 18, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 30, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 54, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 78, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 90, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 102, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 114, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 126, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 138, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 150, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 162, "y": 26, "flags": 4}, + {"matrix": [2, 14], "x": 176, "y": 26, "flags": 1}, + {"matrix": [2, 15], "x": 188, "y": 26, "flags": 4}, + {"matrix": [2, 16], "x": 200, "y": 26, "flags": 4}, + {"matrix": [2, 17], "x": 212, "y": 26, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 39, "flags": 1}, + {"matrix": [3, 1], "x": 20, "y": 39, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 39, "flags": 4}, + {"matrix": [3, 3], "x": 44, "y": 39, "flags": 4}, + {"matrix": [3, 4], "x": 56, "y": 39, "flags": 4}, + {"matrix": [3, 5], "x": 68, "y": 39, "flags": 4}, + {"matrix": [3, 6], "x": 80, "y": 39, "flags": 4}, + {"matrix": [3, 7], "x": 92, "y": 39, "flags": 4}, + {"matrix": [3, 8], "x": 104, "y": 39, "flags": 4}, + {"matrix": [3, 9], "x": 116, "y": 39, "flags": 4}, + {"matrix": [3, 10], "x": 128, "y": 39, "flags": 4}, + {"matrix": [3, 11], "x": 140, "y": 39, "flags": 4}, + {"matrix": [3, 13], "x": 158, "y": 39, "flags": 1}, + {"matrix": [3, 14], "x": 176, "y": 39, "flags": 1}, + {"matrix": [3, 15], "x": 188, "y": 39, "flags": 4}, + {"matrix": [3, 16], "x": 200, "y": 39, "flags": 4}, + {"matrix": [3, 17], "x": 212, "y": 39, "flags": 4}, + {"matrix": [3, 18], "x": 224, "y": 39, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 26, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 38, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 50, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 62, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 74, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 86, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 98, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 110, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 122, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 134, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 150, "y": 52, "flags": 1}, + {"matrix": [4, 13], "x": 170, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 188, "y": 52, "flags": 4}, + {"matrix": [4, 16], "x": 200, "y": 52, "flags": 4}, + {"matrix": [4, 17], "x": 212, "y": 52, "flags": 4}, + {"matrix": [4, 18], "x": 224, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 52, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 52, "flags": 1}, + {"matrix": [5, 2], "x": 28, "y": 52, "flags": 1}, + {"matrix": [5, 5], "x": 74, "y": 52, "flags": 4}, + {"matrix": [5, 9], "x": 122, "y": 52, "flags": 1}, + {"matrix": [5, 10], "x": 148, "y": 52, "flags": 1}, + {"matrix": [5, 12], "x": 158, "y": 52, "flags": 1}, + {"matrix": [5, 13], "x": 170, "y": 52, "flags": 1}, + {"matrix": [5, 14], "x": 182, "y": 52, "flags": 1}, + {"matrix": [5, 15], "x": 196, "y": 52, "flags": 4}, + {"matrix": [5, 17], "x": 212, "y": 52, "flags": 4} + ], + "animations": { + "solid_color": true, + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + } + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0}, + {"matrix": [0, 1], "x":2, "y":0}, + {"matrix": [0, 2], "x":3, "y":0}, + {"matrix": [0, 3], "x":4, "y":0}, + {"matrix": [0, 4], "x":5, "y":0}, + {"matrix": [0, 5], "x":6.5, "y":0}, + {"matrix": [0, 6], "x":7.5, "y":0}, + {"matrix": [0, 7], "x":8.5, "y":0}, + {"matrix": [0, 8], "x":9.5, "y":0}, + {"matrix": [0, 9], "x":11, "y":0}, + {"matrix": [0, 10], "x":12, "y":0}, + {"matrix": [0, 11], "x":13, "y":0}, + {"matrix": [0, 12], "x":14, "y":0}, + {"matrix": [0, 15], "x":16.5, "y":0}, + {"matrix": [0, 16], "x":17.5, "y":0}, + {"matrix": [0, 17], "x":18.5, "y":0}, + {"matrix": [0, 18], "x":19.5, "y":0}, + {"matrix": [1, 0], "x":0, "y":1.25}, + {"matrix": [1, 1], "x":1, "y":1.25}, + {"matrix": [1, 2], "x":2, "y":1.25}, + {"matrix": [1, 3], "x":3, "y":1.25}, + {"matrix": [1, 4], "x":4, "y":1.25}, + {"matrix": [1, 5], "x":5, "y":1.25}, + {"matrix": [1, 6], "x":6, "y":1.25}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1, 10], "x":10, "y":1.25}, + {"matrix": [1, 11], "x":11, "y":1.25}, + {"matrix": [1, 12], "x":12, "y":1.25}, + {"matrix": [1, 13], "x":13, "y":1.25, "w":2}, + {"matrix": [1, 15], "x":16.5, "y":1.25}, + {"matrix": [1, 16], "x":17.5, "y":1.25}, + {"matrix": [1, 17], "x":18.5, "y":1.25}, + {"matrix": [1, 18], "x":19.5, "y":1.25}, + {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2.25}, + {"matrix": [2, 2], "x":2.5, "y":2.25}, + {"matrix": [2, 3], "x":3.5, "y":2.25}, + {"matrix": [2, 4], "x":4.5, "y":2.25}, + {"matrix": [2, 5], "x":5.5, "y":2.25}, + {"matrix": [2, 6], "x":6.5, "y":2.25}, + {"matrix": [2, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2, 10], "x":10.5, "y":2.25}, + {"matrix": [2, 11], "x":11.5, "y":2.25}, + {"matrix": [2, 12], "x":12.5, "y":2.25}, + {"matrix": [2, 13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2, 14], "x":15.25, "y":2.25}, + {"matrix": [2, 15], "x":16.5, "y":2.25}, + {"matrix": [2, 16], "x":17.5, "y":2.25}, + {"matrix": [2, 17], "x":18.5, "y":2.25}, + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.25}, + {"matrix": [3, 7], "x":7.75, "y":3.25}, + {"matrix": [3, 8], "x":8.75, "y":3.25}, + {"matrix": [3, 9], "x":9.75, "y":3.25}, + {"matrix": [3, 10], "x":10.75, "y":3.25}, + {"matrix": [3, 11], "x":11.75, "y":3.25}, + {"matrix": [3, 13], "x":12.75, "y":3.25, "w":2.25}, + {"matrix": [3, 14], "x":15.25, "y":3.25}, + {"matrix": [3, 15], "x":16.5, "y":3.25}, + {"matrix": [3, 16], "x":17.5, "y":3.25}, + {"matrix": [3, 17], "x":18.5, "y":3.25}, + {"matrix": [3, 18], "x":19.5, "y":2.25, "h":2}, + {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix": [4, 1], "x":2.25, "y":4.25}, + {"matrix": [4, 2], "x":3.25, "y":4.25}, + {"matrix": [4, 3], "x":4.25, "y":4.25}, + {"matrix": [4, 4], "x":5.25, "y":4.25}, + {"matrix": [4, 5], "x":6.25, "y":4.25}, + {"matrix": [4, 6], "x":7.25, "y":4.25}, + {"matrix": [4, 7], "x":8.25, "y":4.25}, + {"matrix": [4, 8], "x":9.25, "y":4.25}, + {"matrix": [4, 9], "x":10.25, "y":4.25}, + {"matrix": [4, 10], "x":11.25, "y":4.25}, + {"matrix": [4, 11], "x":12.25, "y":4.25, "w":1.75}, + {"matrix": [4, 13], "x":14.25, "y":4.5}, + {"matrix": [4, 15], "x":16.5, "y":4.25}, + {"matrix": [4, 16], "x":17.5, "y":4.25}, + {"matrix": [4, 17], "x":18.5, "y":4.25}, + {"matrix": [4, 18], "x":19.5, "y":4.25, "h":2}, + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix": [5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix": [5, 5], "x":3.75, "y":5.25, "w":6.25}, + {"matrix": [5, 9], "x":10, "y":5.25, "w":1.5}, + {"matrix": [5, 10], "x":11.5, "y":5.25, "w":1.5}, + {"matrix": [5, 12], "x":13.25, "y":5.5}, + {"matrix": [5, 13], "x":14.25, "y":5.5}, + {"matrix": [5, 14], "x":15.25, "y":5.5}, + {"matrix": [5, 15], "x":16.5, "y":5.25, "w":2}, + {"matrix": [5, 17], "x":18.5, "y":5.25} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/qwertykeys/qk100/ansi/keymaps/default/keymap.c b/keyboards/qwertykeys/qk100/ansi/keymaps/default/keymap.c new file mode 100644 index 0000000000..f081299d50 --- /dev/null +++ b/keyboards/qwertykeys/qk100/ansi/keymaps/default/keymap.c @@ -0,0 +1,38 @@ +/* +Copyright 2023 Qwertykeys + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, 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_DEL, KC_END, KC_INS, KC_HOME, + KC_GRV, 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_BSPC, KC_NUM, KC_PSLS, KC_PAST,KC_PMNS, + 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_PGUP, KC_P7, KC_P8, KC_P9, + 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_ENT, KC_PGDN, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT,KC_P0, KC_PDOT + ), + [1] = LAYOUT( + QK_KB_0, QK_KB_1, QK_KB_2, QK_KB_3, QK_KB_4, QK_KB_5, QK_KB_6, QK_KB_7, QK_KB_8, QK_KB_9, QK_KB_10,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_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, NK_TOGG, 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_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAD, RGB_VAI, 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 + ) +}; \ No newline at end of file diff --git a/keyboards/qwertykeys/qk100/ansi/keymaps/via/keymap.c b/keyboards/qwertykeys/qk100/ansi/keymaps/via/keymap.c new file mode 100644 index 0000000000..f081299d50 --- /dev/null +++ b/keyboards/qwertykeys/qk100/ansi/keymaps/via/keymap.c @@ -0,0 +1,38 @@ +/* +Copyright 2023 Qwertykeys + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, 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_DEL, KC_END, KC_INS, KC_HOME, + KC_GRV, 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_BSPC, KC_NUM, KC_PSLS, KC_PAST,KC_PMNS, + 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_PGUP, KC_P7, KC_P8, KC_P9, + 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_ENT, KC_PGDN, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT,KC_P0, KC_PDOT + ), + [1] = LAYOUT( + QK_KB_0, QK_KB_1, QK_KB_2, QK_KB_3, QK_KB_4, QK_KB_5, QK_KB_6, QK_KB_7, QK_KB_8, QK_KB_9, QK_KB_10,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_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, NK_TOGG, 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_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAD, RGB_VAI, 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 + ) +}; \ No newline at end of file diff --git a/keyboards/qwertykeys/qk100/ansi/keymaps/via/rules.mk b/keyboards/qwertykeys/qk100/ansi/keymaps/via/rules.mk new file mode 100644 index 0000000000..43061db1dd --- /dev/null +++ b/keyboards/qwertykeys/qk100/ansi/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/qwertykeys/qk100/ansi/mcuconf.h b/keyboards/qwertykeys/qk100/ansi/mcuconf.h new file mode 100644 index 0000000000..a8228a149f --- /dev/null +++ b/keyboards/qwertykeys/qk100/ansi/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2023 Qwertykeys + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +/* + * I2C driver system settings. + */ +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE \ No newline at end of file diff --git a/keyboards/qwertykeys/qk100/ansi/readme.md b/keyboards/qwertykeys/qk100/ansi/readme.md new file mode 100644 index 0000000000..d3360b0420 --- /dev/null +++ b/keyboards/qwertykeys/qk100/ansi/readme.md @@ -0,0 +1,21 @@ +# qk100 - ANSI PCB + +![qk100](https://i.imgur.com/im0iArYh.jpg) + +A 100% made by Qwertykeys. + +* Keyboard Maintainer: [Qwertykeys](https://github.com/owlab-git) +* Hardware Supported: qk100 ANSI PCB +* Hardware Availability: Ended groupbuy: https://www.zfrontier.com/app/flow/qRwKr7mW1oWy + +Make example for this keyboard (after setting up your build environment): + + make qwertykeys/qk100/ansi:default + +Flashing example for this keyboard: + + make qwertykeys/qk100/ansi:default:flash + +**Bootloader:** Press the button B on PCB while plugging in the board. + +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). \ No newline at end of file diff --git a/keyboards/qwertykeys/qk100/ansi/rules.mk b/keyboards/qwertykeys/qk100/ansi/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/qwertykeys/qk100/ansi/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/qwertykeys/qk100/info.json b/keyboards/qwertykeys/qk100/info.json new file mode 100644 index 0000000000..c8498f3eaf --- /dev/null +++ b/keyboards/qwertykeys/qk100/info.json @@ -0,0 +1,43 @@ +{ + "manufacturer": "Qwertykeys", + "url": "", + "maintainer": "Qwertykeys", + "usb": { + "vid": "0x4F53" + }, + "matrix_pins": { + "cols": ["A7", "B0", "B1", "B2", "B10", "B11", "B12", "B13", "B14", "B15", "A8", "A9", "A10", "A15", "B4", "B5", "B8", "B9", "C13" ], + "rows": ["A1", "A2", "A3", "A5", "A4", "A6" ] + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "rgblight": true, + "nkro": true + }, + "processor": "STM32F103", + "bootloader": "stm32duino", + "ws2812": { + "pin": "B3" + }, + "rgblight": { + "animations": { + "breathing": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true + }, + "brightness_steps": 10, + "saturation_steps": 8, + "led_count": 6, + "max_brightness": 120 + + }, + "dynamic_keymap": { + "layer_count": 2 + } +} \ No newline at end of file diff --git a/keyboards/qwertykeys/qk100/solder/config.h b/keyboards/qwertykeys/qk100/solder/config.h new file mode 100644 index 0000000000..714f01a1da --- /dev/null +++ b/keyboards/qwertykeys/qk100/solder/config.h @@ -0,0 +1,29 @@ +/* +Copyright 2023 Qwertykeys + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +# define RGBLIGHT_LAYERS +# define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF +# define RGBLIGHT_LAYERS_RETAIN_VAL +# define RGBLIGHT_DEFAULT_VAL 10 +# define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + 5 +# define RGBLIGHT_SLEEP +/*== customize breathing effect ==*/ +# define RGBLIGHT_BREATHE_TABLE_SIZE 128 +# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.0 +# define RGBLIGHT_EFFECT_BREATHE_MAX 60 \ No newline at end of file diff --git a/keyboards/qwertykeys/qk100/solder/info.json b/keyboards/qwertykeys/qk100/solder/info.json new file mode 100644 index 0000000000..64f8945b7f --- /dev/null +++ b/keyboards/qwertykeys/qk100/solder/info.json @@ -0,0 +1,114 @@ +{ + "keyboard_name": "qk100 Solder", + "usb": { + "pid": "0x3053", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0}, + {"matrix": [0, 1], "x":2, "y":0}, + {"matrix": [0, 2], "x":3, "y":0}, + {"matrix": [0, 3], "x":4, "y":0}, + {"matrix": [0, 4], "x":5, "y":0}, + {"matrix": [0, 5], "x":6.5, "y":0}, + {"matrix": [0, 6], "x":7.5, "y":0}, + {"matrix": [0, 7], "x":8.5, "y":0}, + {"matrix": [0, 8], "x":9.5, "y":0}, + {"matrix": [0, 9], "x":11, "y":0}, + {"matrix": [0, 10], "x":12, "y":0}, + {"matrix": [0, 11], "x":13, "y":0}, + {"matrix": [0, 12], "x":14, "y":0}, + {"matrix": [0, 15], "x":16.5, "y":0}, + {"matrix": [0, 16], "x":17.5, "y":0}, + {"matrix": [0, 17], "x":18.5, "y":0}, + {"matrix": [0, 18], "x":19.5, "y":0}, + {"matrix": [1, 0], "x":0, "y":1.25}, + {"matrix": [1, 1], "x":1, "y":1.25}, + {"matrix": [1, 2], "x":2, "y":1.25}, + {"matrix": [1, 3], "x":3, "y":1.25}, + {"matrix": [1, 4], "x":4, "y":1.25}, + {"matrix": [1, 5], "x":5, "y":1.25}, + {"matrix": [1, 6], "x":6, "y":1.25}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1, 10], "x":10, "y":1.25}, + {"matrix": [1, 11], "x":11, "y":1.25}, + {"matrix": [1, 12], "x":12, "y":1.25}, + {"matrix": [2, 13], "x":13, "y":1.25}, + {"matrix": [1, 13], "x":14, "y":1.25}, + {"matrix": [1, 15], "x":16.5, "y":1.25}, + {"matrix": [1, 16], "x":17.5, "y":1.25}, + {"matrix": [1, 17], "x":18.5, "y":1.25}, + {"matrix": [1, 18], "x":19.5, "y":1.25}, + {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2.25}, + {"matrix": [2, 2], "x":2.5, "y":2.25}, + {"matrix": [2, 3], "x":3.5, "y":2.25}, + {"matrix": [2, 4], "x":4.5, "y":2.25}, + {"matrix": [2, 5], "x":5.5, "y":2.25}, + {"matrix": [2, 6], "x":6.5, "y":2.25}, + {"matrix": [2, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2, 10], "x":10.5, "y":2.25}, + {"matrix": [2, 11], "x":11.5, "y":2.25}, + {"matrix": [2, 12], "x":12.5, "y":2.25}, + {"matrix": [3, 12], "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2, 14], "x":15.25, "y":2.25}, + {"matrix": [2, 15], "x":16.5, "y":2.25}, + {"matrix": [2, 16], "x":17.5, "y":2.25}, + {"matrix": [2, 17], "x":18.5, "y":2.25}, + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.25}, + {"matrix": [3, 7], "x":7.75, "y":3.25}, + {"matrix": [3, 8], "x":8.75, "y":3.25}, + {"matrix": [3, 9], "x":9.75, "y":3.25}, + {"matrix": [3, 10], "x":10.75, "y":3.25}, + {"matrix": [3, 11], "x":11.75, "y":3.25}, + {"matrix": [3, 13], "x":12.75, "y":3.25, "w":2.25}, + {"matrix": [3, 14], "x":15.25, "y":3.25}, + {"matrix": [3, 15], "x":16.5, "y":3.25}, + {"matrix": [3, 16], "x":17.5, "y":3.25}, + {"matrix": [3, 17], "x":18.5, "y":3.25}, + {"matrix": [3, 18], "x":19.5, "y":2.25, "h":2}, + {"matrix": [4, 0], "x":0, "y":4.25, "w":1.25}, + {"matrix": [5, 3], "x":1.25, "y":4.25}, + {"matrix": [4, 1], "x":2.25, "y":4.25}, + {"matrix": [4, 2], "x":3.25, "y":4.25}, + {"matrix": [4, 3], "x":4.25, "y":4.25}, + {"matrix": [4, 4], "x":5.25, "y":4.25}, + {"matrix": [4, 5], "x":6.25, "y":4.25}, + {"matrix": [4, 6], "x":7.25, "y":4.25}, + {"matrix": [4, 7], "x":8.25, "y":4.25}, + {"matrix": [4, 8], "x":9.25, "y":4.25}, + {"matrix": [4, 9], "x":10.25, "y":4.25}, + {"matrix": [4, 10], "x":11.25, "y":4.25}, + {"matrix": [4, 11], "x":12.25, "y":4.25, "w":1.75}, + {"matrix": [4, 13], "x":14.25, "y":4.5}, + {"matrix": [4, 15], "x":16.5, "y":4.25}, + {"matrix": [4, 16], "x":17.5, "y":4.25}, + {"matrix": [4, 17], "x":18.5, "y":4.25}, + {"matrix": [4, 18], "x":19.5, "y":4.25, "h":2}, + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.25}, + {"matrix": [5, 1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix": [5, 5], "x":3.75, "y":5.25, "w":6.25}, + {"matrix": [5, 9], "x":10, "y":5.25, "w":1.5}, + {"matrix": [5, 10], "x":11.5, "y":5.25, "w":1.5}, + {"matrix": [5, 12], "x":13.25, "y":5.5}, + {"matrix": [5, 13], "x":14.25, "y":5.5}, + {"matrix": [5, 14], "x":15.25, "y":5.5}, + {"matrix": [5, 15], "x":16.5, "y":5.25, "w":2}, + {"matrix": [5, 17], "x":18.5, "y":5.25} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/qwertykeys/qk100/solder/keymaps/default/keymap.c b/keyboards/qwertykeys/qk100/solder/keymaps/default/keymap.c new file mode 100644 index 0000000000..20d727431c --- /dev/null +++ b/keyboards/qwertykeys/qk100/solder/keymaps/default/keymap.c @@ -0,0 +1,38 @@ +/* +Copyright 2023 Qwertykeys + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, 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_DEL, KC_END, KC_INS, KC_HOME, + KC_GRV, 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_BSLS, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_PGUP, KC_P7, KC_P8, KC_P9, + 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_ENT, KC_PGDN, KC_P4, KC_P5, KC_P6, KC_PPLS, + 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_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT,KC_P0, KC_PDOT + ), + [1] = LAYOUT( + 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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, 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, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAD, RGB_VAI, 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 + ) +}; \ No newline at end of file diff --git a/keyboards/qwertykeys/qk100/solder/keymaps/via/keymap.c b/keyboards/qwertykeys/qk100/solder/keymaps/via/keymap.c new file mode 100644 index 0000000000..20d727431c --- /dev/null +++ b/keyboards/qwertykeys/qk100/solder/keymaps/via/keymap.c @@ -0,0 +1,38 @@ +/* +Copyright 2023 Qwertykeys + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, 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_DEL, KC_END, KC_INS, KC_HOME, + KC_GRV, 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_BSLS, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_PGUP, KC_P7, KC_P8, KC_P9, + 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_ENT, KC_PGDN, KC_P4, KC_P5, KC_P6, KC_PPLS, + 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_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT,KC_P0, KC_PDOT + ), + [1] = LAYOUT( + 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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, 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, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAD, RGB_VAI, 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 + ) +}; \ No newline at end of file diff --git a/keyboards/qwertykeys/qk100/solder/keymaps/via/rules.mk b/keyboards/qwertykeys/qk100/solder/keymaps/via/rules.mk new file mode 100644 index 0000000000..43061db1dd --- /dev/null +++ b/keyboards/qwertykeys/qk100/solder/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/qwertykeys/qk100/solder/readme.md b/keyboards/qwertykeys/qk100/solder/readme.md new file mode 100644 index 0000000000..f660fe0d42 --- /dev/null +++ b/keyboards/qwertykeys/qk100/solder/readme.md @@ -0,0 +1,21 @@ +# qk100 - Solder PCB + +![qk100](https://i.imgur.com/im0iArYh.jpg) + +A 100% made by Qwertykeys. + +* Keyboard Maintainer: [Qwertykeys](https://github.com/owlab-git) +* Hardware Supported: qk100 Solder PCB +* Hardware Availability: Ended groupbuy: https://www.zfrontier.com/app/flow/qRwKr7mW1oWy + +Make example for this keyboard (after setting up your build environment): + + make qwertykeys/qk100/solder:default + +Flashing example for this keyboard: + + make qwertykeys/qk100/solder:default:flash + +**Bootloader:** Press the button B on PCB while plugging in the board. + +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). \ No newline at end of file diff --git a/keyboards/qwertykeys/qk100/solder/rules.mk b/keyboards/qwertykeys/qk100/solder/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/qwertykeys/qk100/solder/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/qwertykeys/qk100/solder/solder.c b/keyboards/qwertykeys/qk100/solder/solder.c new file mode 100644 index 0000000000..8a3e46dab7 --- /dev/null +++ b/keyboards/qwertykeys/qk100/solder/solder.c @@ -0,0 +1,37 @@ +/* +Copyright 2023 Qwertykeys + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include "quantum.h" + +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 3, HSV_WHITE}); + +const rgblight_segment_t PROGMEM my_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS({3, 3, HSV_WHITE}); + +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(my_capslock_layer, my_numlock_layer); + +void keyboard_post_init_kb(void) { + rgblight_layers = my_rgb_layers; + keyboard_post_init_user(); +} + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if (res) { + rgblight_set_layer_state(0, led_state.caps_lock); + rgblight_set_layer_state(1, !led_state.num_lock); + } + return res; +} \ No newline at end of file From ca4541699915b37cd1f253bbed51854627efd2ce Mon Sep 17 00:00:00 2001 From: Dasky <32983009+daskygit@users.noreply.github.com> Date: Tue, 24 Oct 2023 00:00:16 +0100 Subject: [PATCH 304/496] Remove extra led_matrix_indicators_user call (#22329) --- quantum/led_matrix/led_matrix.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/quantum/led_matrix/led_matrix.c b/quantum/led_matrix/led_matrix.c index 1676a60aa3..2ec0ec4b19 100644 --- a/quantum/led_matrix/led_matrix.c +++ b/quantum/led_matrix/led_matrix.c @@ -389,7 +389,6 @@ void led_matrix_task(void) { void led_matrix_indicators(void) { led_matrix_indicators_kb(); - led_matrix_indicators_user(); } __attribute__((weak)) bool led_matrix_indicators_kb(void) { @@ -415,7 +414,6 @@ void led_matrix_indicators_advanced(effect_params_t *params) { uint8_t max = LED_MATRIX_LED_COUNT; #endif led_matrix_indicators_advanced_kb(min, max); - led_matrix_indicators_advanced_user(min, max); } __attribute__((weak)) bool led_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { From 7e0147f8e6cebbf88a6f25c448cbd0246d3ab260 Mon Sep 17 00:00:00 2001 From: Dasky <32983009+daskygit@users.noreply.github.com> Date: Tue, 24 Oct 2023 13:45:33 +0100 Subject: [PATCH 305/496] Fix compilation error when led/rgb process limit is zero. (#22328) Co-authored-by: Drashna Jaelre --- quantum/led_matrix/led_matrix.c | 5 ++--- quantum/led_matrix/led_matrix.h | 1 - quantum/rgb_matrix/rgb_matrix.c | 3 +-- quantum/rgb_matrix/rgb_matrix.h | 1 - 4 files changed, 3 insertions(+), 7 deletions(-) diff --git a/quantum/led_matrix/led_matrix.c b/quantum/led_matrix/led_matrix.c index 4f22cd6da8..bbc94bca7a 100644 --- a/quantum/led_matrix/led_matrix.c +++ b/quantum/led_matrix/led_matrix.c @@ -342,9 +342,8 @@ void led_matrix_task(void) { case RENDERING: led_task_render(effect); if (effect) { - // Only run the basic indicators in the last render iteration (default there are 5 iterations) - if (led_effect_params.iter == LED_MATRIX_LED_PROCESS_MAX_ITERATIONS) { - led_matrix_indicators(); + if (led_task_state == FLUSHING) { + led_matrix_indicators(); // ensure we only draw basic indicators once rendering is finished } led_matrix_indicators_advanced(&led_effect_params); } diff --git a/quantum/led_matrix/led_matrix.h b/quantum/led_matrix/led_matrix.h index 77d4f558ac..ab5ca32308 100644 --- a/quantum/led_matrix/led_matrix.h +++ b/quantum/led_matrix/led_matrix.h @@ -88,7 +88,6 @@ #ifndef LED_MATRIX_LED_PROCESS_LIMIT # define LED_MATRIX_LED_PROCESS_LIMIT ((LED_MATRIX_LED_COUNT + 4) / 5) #endif -#define LED_MATRIX_LED_PROCESS_MAX_ITERATIONS ((LED_MATRIX_LED_COUNT + LED_MATRIX_LED_PROCESS_LIMIT - 1) / LED_MATRIX_LED_PROCESS_LIMIT) #if defined(LED_MATRIX_LED_PROCESS_LIMIT) && LED_MATRIX_LED_PROCESS_LIMIT > 0 && LED_MATRIX_LED_PROCESS_LIMIT < LED_MATRIX_LED_COUNT # if defined(LED_MATRIX_SPLIT) diff --git a/quantum/rgb_matrix/rgb_matrix.c b/quantum/rgb_matrix/rgb_matrix.c index 8e69616a0e..e56802f164 100644 --- a/quantum/rgb_matrix/rgb_matrix.c +++ b/quantum/rgb_matrix/rgb_matrix.c @@ -383,8 +383,7 @@ void rgb_matrix_task(void) { case RENDERING: rgb_task_render(effect); if (effect) { - // Only run the basic indicators in the last render iteration (default there are 5 iterations) - if (rgb_effect_params.iter == RGB_MATRIX_LED_PROCESS_MAX_ITERATIONS) { + if (rgb_task_state == FLUSHING) { // ensure we only draw basic indicators once rendering is finished rgb_matrix_indicators(); } rgb_matrix_indicators_advanced(&rgb_effect_params); diff --git a/quantum/rgb_matrix/rgb_matrix.h b/quantum/rgb_matrix/rgb_matrix.h index 8ac263c635..bba07af79d 100644 --- a/quantum/rgb_matrix/rgb_matrix.h +++ b/quantum/rgb_matrix/rgb_matrix.h @@ -106,7 +106,6 @@ #ifndef RGB_MATRIX_LED_PROCESS_LIMIT # define RGB_MATRIX_LED_PROCESS_LIMIT ((RGB_MATRIX_LED_COUNT + 4) / 5) #endif -#define RGB_MATRIX_LED_PROCESS_MAX_ITERATIONS ((RGB_MATRIX_LED_COUNT + RGB_MATRIX_LED_PROCESS_LIMIT - 1) / RGB_MATRIX_LED_PROCESS_LIMIT) #if defined(RGB_MATRIX_LED_PROCESS_LIMIT) && RGB_MATRIX_LED_PROCESS_LIMIT > 0 && RGB_MATRIX_LED_PROCESS_LIMIT < RGB_MATRIX_LED_COUNT # if defined(RGB_MATRIX_SPLIT) From b7e62af755da6d35a1d44855b16651d9eed6f525 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 25 Oct 2023 09:54:43 +1000 Subject: [PATCH 306/496] V-USB: Implement `GET_PROTOCOL` and `SET_PROTOCOL` handling (#22324) --- tmk_core/protocol/vusb/vusb.c | 62 +++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 24 deletions(-) diff --git a/tmk_core/protocol/vusb/vusb.c b/tmk_core/protocol/vusb/vusb.c index d2c7749937..d7d2227687 100644 --- a/tmk_core/protocol/vusb/vusb.c +++ b/tmk_core/protocol/vusb/vusb.c @@ -325,30 +325,44 @@ usbMsgLen_t usbFunctionSetup(uchar data[8]) { usbRequest_t *rq = (void *)data; if ((rq->bmRequestType & USBRQ_TYPE_MASK) == USBRQ_TYPE_CLASS) { /* class request type */ - if (rq->bRequest == USBRQ_HID_GET_REPORT) { - dprint("GET_REPORT:"); - if (rq->wIndex.word == KEYBOARD_INTERFACE) { - usbMsgPtr = (usbMsgPtr_t)&keyboard_report_sent; - return sizeof(keyboard_report_sent); - } - } else if (rq->bRequest == USBRQ_HID_GET_IDLE) { - dprint("GET_IDLE:"); - usbMsgPtr = (usbMsgPtr_t)&vusb_idle_rate; - return 1; - } else if (rq->bRequest == USBRQ_HID_SET_IDLE) { - vusb_idle_rate = rq->wValue.bytes[1]; - dprintf("SET_IDLE: %02X", vusb_idle_rate); - } else if (rq->bRequest == USBRQ_HID_SET_REPORT) { - dprint("SET_REPORT:"); - // Report Type: 0x02(Out)/ReportID: 0x00(none) && Interface: 0(keyboard) - if (rq->wValue.word == 0x0200 && rq->wIndex.word == KEYBOARD_INTERFACE) { - dprint("SET_LED:"); - last_req.kind = SET_LED; - last_req.len = rq->wLength.word; - } - return USB_NO_MSG; // to get data in usbFunctionWrite - } else { - dprint("UNKNOWN:"); + switch (rq->bRequest) { + case USBRQ_HID_GET_REPORT: + dprint("GET_REPORT:"); + if (rq->wIndex.word == KEYBOARD_INTERFACE) { + usbMsgPtr = (usbMsgPtr_t)&keyboard_report_sent; + return sizeof(keyboard_report_sent); + } + break; + case USBRQ_HID_GET_IDLE: + dprint("GET_IDLE:"); + usbMsgPtr = (usbMsgPtr_t)&vusb_idle_rate; + return 1; + case USBRQ_HID_GET_PROTOCOL: + dprint("GET_PROTOCOL:"); + usbMsgPtr = (usbMsgPtr_t)&keyboard_protocol; + return 1; + case USBRQ_HID_SET_REPORT: + dprint("SET_REPORT:"); + // Report Type: 0x02(Out)/ReportID: 0x00(none) && Interface: 0(keyboard) + if (rq->wValue.word == 0x0200 && rq->wIndex.word == KEYBOARD_INTERFACE) { + dprint("SET_LED:"); + last_req.kind = SET_LED; + last_req.len = rq->wLength.word; + } + return USB_NO_MSG; // to get data in usbFunctionWrite + case USBRQ_HID_SET_IDLE: + vusb_idle_rate = rq->wValue.bytes[1]; + dprintf("SET_IDLE: %02X", vusb_idle_rate); + break; + case USBRQ_HID_SET_PROTOCOL: + if (rq->wIndex.word == KEYBOARD_INTERFACE) { + keyboard_protocol = rq->wValue.word & 0xFF; + dprintf("SET_PROTOCOL: %02X", keyboard_protocol); + } + break; + default: + dprint("UNKNOWN:"); + break; } } else { dprint("VENDOR:"); From 8e3903ca38907d4461d75dde9d820e3f39a8e58c Mon Sep 17 00:00:00 2001 From: Rakib Shahid <95511504+rakib-shahid@users.noreply.github.com> Date: Wed, 25 Oct 2023 03:11:10 -0400 Subject: [PATCH 307/496] Added gamma values for ST7735 displays (#22313) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Pablo Martínez <58857054+elpekenin@users.noreply.github.com> Co-authored-by: Nick Brassel --- drivers/painter/st77xx/qp_st7735.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/painter/st77xx/qp_st7735.c b/drivers/painter/st77xx/qp_st7735.c index 6d00c95bb1..1db0d01dcb 100644 --- a/drivers/painter/st77xx/qp_st7735.c +++ b/drivers/painter/st77xx/qp_st7735.c @@ -58,6 +58,8 @@ __attribute__((weak)) bool qp_st7735_init(painter_device_t device, painter_rotat ST77XX_SET_PIX_FMT, 0, 1, 0x55, ST77XX_CMD_INVERT_OFF, 0, 0, ST77XX_CMD_NORMAL_ON, 0, 0, + ST7735_SET_PGAMMA, 0, 16, 0x02, 0x1C, 0x07, 0x12, 0x37, 0x32, 0x29, 0x2D, 0x29, 0x25, 0x2B, 0x39, 0x00, 0x01, 0x03, 0x10, + ST7735_SET_NGAMMA, 0, 16, 0x03, 0x1D, 0x07, 0x06, 0x2E, 0x2C, 0x29, 0x2D, 0x2E, 0x2E, 0x37, 0x3F, 0x00, 0x00, 0x02, 0x10, ST77XX_CMD_DISPLAY_ON, 20, 0 }; // clang-format on From 896d3dc497a89f3a5fb7765e735d1f335b86898f Mon Sep 17 00:00:00 2001 From: jack <0x6A73@pm.me> Date: Wed, 25 Oct 2023 03:15:27 -0600 Subject: [PATCH 308/496] Add DD mappings for locking switch (#22242) Co-authored-by: Ryan --- data/mappings/info_config.hjson | 4 ++++ data/schemas/keyboard.jsonschema | 10 +++++++++- docs/reference_info_json.md | 7 +++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index 4cebe906b4..03c52df948 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -79,6 +79,10 @@ "LED_MATRIX_VAL_STEP": {"info_key": "led_matrix.val_steps", "value_type": "int"}, "LED_MATRIX_LED_COUNT": {"info_key": "led_matrix.led_count", "value_type": "int", "to_json": false}, + // Locking Switch + "LOCKING_SUPPORT_ENABLE": {"info_key": "qmk.locking.enabled", "value_type": "bool"}, + "LOCKING_RESYNC_ENABLE": {"info_key": "qmk.locking.resync", "value_type": "bool"}, + // LUFA Bootloader "QMK_ESC_INPUT": {"info_key": "qmk_lufa_bootloader.esc_input"}, "QMK_ESC_OUTPUT": {"info_key": "qmk_lufa_bootloader.esc_output"}, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 8ff94fb9f2..c120099745 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -756,7 +756,15 @@ "properties": { "keys_per_scan": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, "tap_keycode_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"}, - "tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"} + "tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "locking": { + "type": "object", + "additionalProperties": false, + "properties": { + "enabled": {"type": "boolean"}, + "resync": {"type": "boolean"} + } + } } }, "qmk_lufa_bootloader": { diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index e05b09c6cd..6b60bb20c4 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -60,6 +60,13 @@ You can create `info.json` files at every level under `qmk_firmware/keyboards/ Date: Wed, 25 Oct 2023 22:06:51 +0100 Subject: [PATCH 309/496] RGB/LED matrix use limits size optimisation (#22325) --- quantum/led_matrix/led_matrix.c | 39 +++++++++++++++++++++++------ quantum/led_matrix/led_matrix.h | 44 +++++++++++---------------------- quantum/rgb_matrix/rgb_matrix.c | 30 ++++++++++++++++++++++ quantum/rgb_matrix/rgb_matrix.h | 42 ++++++++++--------------------- 4 files changed, 89 insertions(+), 66 deletions(-) diff --git a/quantum/led_matrix/led_matrix.c b/quantum/led_matrix/led_matrix.c index bbc94bca7a..4d67a295df 100644 --- a/quantum/led_matrix/led_matrix.c +++ b/quantum/led_matrix/led_matrix.c @@ -375,14 +375,7 @@ void led_matrix_indicators_advanced(effect_params_t *params) { * and not sure which would be better. Otherwise, this should be called from * led_task_render, right before the iter++ line. */ -#if defined(LED_MATRIX_LED_PROCESS_LIMIT) && LED_MATRIX_LED_PROCESS_LIMIT > 0 && LED_MATRIX_LED_PROCESS_LIMIT < LED_MATRIX_LED_COUNT - uint8_t min = LED_MATRIX_LED_PROCESS_LIMIT * (params->iter - 1); - uint8_t max = min + LED_MATRIX_LED_PROCESS_LIMIT; - if (max > LED_MATRIX_LED_COUNT) max = LED_MATRIX_LED_COUNT; -#else - uint8_t min = 0; - uint8_t max = LED_MATRIX_LED_COUNT; -#endif + LED_MATRIX_USE_LIMITS_ITER(min, max, params->iter - 1); led_matrix_indicators_advanced_kb(min, max); } @@ -394,6 +387,36 @@ __attribute__((weak)) bool led_matrix_indicators_advanced_user(uint8_t led_min, return true; } +struct led_matrix_limits_t led_matrix_get_limits(uint8_t iter) { + struct led_matrix_limits_t limits = {0}; +#if defined(LED_MATRIX_LED_PROCESS_LIMIT) && LED_MATRIX_LED_PROCESS_LIMIT > 0 && LED_MATRIX_LED_PROCESS_LIMIT < LED_MATRIX_LED_COUNT +# if defined(LED_MATRIX_SPLIT) + limits.led_min_index = LED_MATRIX_LED_PROCESS_LIMIT * (iter); + limits.led_max_index = limits.led_min_index + LED_MATRIX_LED_PROCESS_LIMIT; + if (limits.led_max_index > LED_MATRIX_LED_COUNT) limits.led_max_index = LED_MATRIX_LED_COUNT; + uint8_t k_led_matrix_split[2] = LED_MATRIX_SPLIT; + if (is_keyboard_left() && (limits.led_max_index > k_led_matrix_split[0])) limits.led_max_index = k_led_matrix_split[0]; + if (!(is_keyboard_left()) && (limits.led_min_index < k_led_matrix_split[0])) limits.led_min_index = k_led_matrix_split[0]; +# else + limits.led_min_index = LED_MATRIX_LED_PROCESS_LIMIT * (iter); + limits.led_max_index = limits.led_min_index + LED_MATRIX_LED_PROCESS_LIMIT; + if (limits.led_max_index > LED_MATRIX_LED_COUNT) limits.led_max_index = LED_MATRIX_LED_COUNT; +# endif +#else +# if defined(LED_MATRIX_SPLIT) + limits.led_min_index = 0; + limits.led_max_index = LED_MATRIX_LED_COUNT; + const uint8_t k_led_matrix_split[2] = LED_MATRIX_SPLIT; + if (is_keyboard_left() && (limits.led_max_index > k_led_matrix_split[0])) limits.led_max_index = k_led_matrix_split[0]; + if (!(is_keyboard_left()) && (limits.led_min_index < k_led_matrix_split[0])) limits.led_min_index = k_led_matrix_split[0]; +# else + limits.led_min_index = 0; + limits.led_max_index = LED_MATRIX_LED_COUNT; +# endif +#endif + return limits; +} + void led_matrix_init(void) { led_matrix_driver.init(); diff --git a/quantum/led_matrix/led_matrix.h b/quantum/led_matrix/led_matrix.h index ab5ca32308..c903a230f4 100644 --- a/quantum/led_matrix/led_matrix.h +++ b/quantum/led_matrix/led_matrix.h @@ -89,35 +89,21 @@ # define LED_MATRIX_LED_PROCESS_LIMIT ((LED_MATRIX_LED_COUNT + 4) / 5) #endif -#if defined(LED_MATRIX_LED_PROCESS_LIMIT) && LED_MATRIX_LED_PROCESS_LIMIT > 0 && LED_MATRIX_LED_PROCESS_LIMIT < LED_MATRIX_LED_COUNT -# if defined(LED_MATRIX_SPLIT) -# define LED_MATRIX_USE_LIMITS(min, max) \ - uint8_t min = LED_MATRIX_LED_PROCESS_LIMIT * params->iter; \ - uint8_t max = min + LED_MATRIX_LED_PROCESS_LIMIT; \ - if (max > LED_MATRIX_LED_COUNT) max = LED_MATRIX_LED_COUNT; \ - uint8_t k_led_matrix_split[2] = LED_MATRIX_SPLIT; \ - if (is_keyboard_left() && (max > k_led_matrix_split[0])) max = k_led_matrix_split[0]; \ - if (!(is_keyboard_left()) && (min < k_led_matrix_split[0])) min = k_led_matrix_split[0]; -# else -# define LED_MATRIX_USE_LIMITS(min, max) \ - uint8_t min = LED_MATRIX_LED_PROCESS_LIMIT * params->iter; \ - uint8_t max = min + LED_MATRIX_LED_PROCESS_LIMIT; \ - if (max > LED_MATRIX_LED_COUNT) max = LED_MATRIX_LED_COUNT; -# endif -#else -# if defined(LED_MATRIX_SPLIT) -# define LED_MATRIX_USE_LIMITS(min, max) \ - uint8_t min = 0; \ - uint8_t max = LED_MATRIX_LED_COUNT; \ - const uint8_t k_led_matrix_split[2] = LED_MATRIX_SPLIT; \ - if (is_keyboard_left() && (max > k_led_matrix_split[0])) max = k_led_matrix_split[0]; \ - if (!(is_keyboard_left()) && (min < k_led_matrix_split[0])) min = k_led_matrix_split[0]; -# else -# define LED_MATRIX_USE_LIMITS(min, max) \ - uint8_t min = 0; \ - uint8_t max = LED_MATRIX_LED_COUNT; -# endif -#endif +struct led_matrix_limits_t { + uint8_t led_min_index; + uint8_t led_max_index; +}; + +struct led_matrix_limits_t led_matrix_get_limits(uint8_t iter); + +#define LED_MATRIX_USE_LIMITS_ITER(min, max, iter) \ + struct led_matrix_limits_t limits = led_matrix_get_limits(iter); \ + uint8_t min = limits.led_min_index; \ + uint8_t max = limits.led_max_index; \ + (void)min; \ + (void)max; + +#define LED_MATRIX_USE_LIMITS(min, max) LED_MATRIX_USE_LIMITS_ITER(min, max, params->iter) #define LED_MATRIX_TEST_LED_FLAGS() \ if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) continue diff --git a/quantum/rgb_matrix/rgb_matrix.c b/quantum/rgb_matrix/rgb_matrix.c index e56802f164..d93d189827 100644 --- a/quantum/rgb_matrix/rgb_matrix.c +++ b/quantum/rgb_matrix/rgb_matrix.c @@ -410,6 +410,36 @@ __attribute__((weak)) bool rgb_matrix_indicators_user(void) { return true; } +struct rgb_matrix_limits_t rgb_matrix_get_limits(uint8_t iter) { + struct rgb_matrix_limits_t limits = {0}; +#if defined(RGB_MATRIX_LED_PROCESS_LIMIT) && RGB_MATRIX_LED_PROCESS_LIMIT > 0 && RGB_MATRIX_LED_PROCESS_LIMIT < RGB_MATRIX_LED_COUNT +# if defined(RGB_MATRIX_SPLIT) + limits.led_min_index = RGB_MATRIX_LED_PROCESS_LIMIT * (iter); + limits.led_max_index = limits.led_min_index + RGB_MATRIX_LED_PROCESS_LIMIT; + if (limits.led_max_index > RGB_MATRIX_LED_COUNT) limits.led_max_index = RGB_MATRIX_LED_COUNT; + uint8_t k_rgb_matrix_split[2] = RGB_MATRIX_SPLIT; + if (is_keyboard_left() && (limits.led_max_index > k_rgb_matrix_split[0])) limits.led_max_index = k_rgb_matrix_split[0]; + if (!(is_keyboard_left()) && (limits.led_min_index < k_rgb_matrix_split[0])) limits.led_min_index = k_rgb_matrix_split[0]; +# else + limits.led_min_index = RGB_MATRIX_LED_PROCESS_LIMIT * (iter); + limits.led_max_index = limits.led_min_index + RGB_MATRIX_LED_PROCESS_LIMIT; + if (limits.led_max_index > RGB_MATRIX_LED_COUNT) limits.led_max_index = RGB_MATRIX_LED_COUNT; +# endif +#else +# if defined(RGB_MATRIX_SPLIT) + limits.led_min_index = 0; + limits.led_max_index = RGB_MATRIX_LED_COUNT; + const uint8_t k_rgb_matrix_split[2] = RGB_MATRIX_SPLIT; + if (is_keyboard_left() && (limits.led_max_index > k_rgb_matrix_split[0])) limits.led_max_index = k_rgb_matrix_split[0]; + if (!(is_keyboard_left()) && (limits.led_min_index < k_rgb_matrix_split[0])) limits.led_min_index = k_rgb_matrix_split[0]; +# else + limits.led_min_index = 0; + limits.led_max_index = RGB_MATRIX_LED_COUNT; +# endif +#endif + return limits; +} + void rgb_matrix_indicators_advanced(effect_params_t *params) { /* special handling is needed for "params->iter", since it's already been incremented. * Could move the invocations to rgb_task_render, but then it's missing a few checks diff --git a/quantum/rgb_matrix/rgb_matrix.h b/quantum/rgb_matrix/rgb_matrix.h index bba07af79d..9a3ffb8ea3 100644 --- a/quantum/rgb_matrix/rgb_matrix.h +++ b/quantum/rgb_matrix/rgb_matrix.h @@ -107,35 +107,19 @@ # define RGB_MATRIX_LED_PROCESS_LIMIT ((RGB_MATRIX_LED_COUNT + 4) / 5) #endif -#if defined(RGB_MATRIX_LED_PROCESS_LIMIT) && RGB_MATRIX_LED_PROCESS_LIMIT > 0 && RGB_MATRIX_LED_PROCESS_LIMIT < RGB_MATRIX_LED_COUNT -# if defined(RGB_MATRIX_SPLIT) -# define RGB_MATRIX_USE_LIMITS_ITER(min, max, iter) \ - uint8_t min = RGB_MATRIX_LED_PROCESS_LIMIT * (iter); \ - uint8_t max = min + RGB_MATRIX_LED_PROCESS_LIMIT; \ - if (max > RGB_MATRIX_LED_COUNT) max = RGB_MATRIX_LED_COUNT; \ - uint8_t k_rgb_matrix_split[2] = RGB_MATRIX_SPLIT; \ - if (is_keyboard_left() && (max > k_rgb_matrix_split[0])) max = k_rgb_matrix_split[0]; \ - if (!(is_keyboard_left()) && (min < k_rgb_matrix_split[0])) min = k_rgb_matrix_split[0]; -# else -# define RGB_MATRIX_USE_LIMITS_ITER(min, max, iter) \ - uint8_t min = RGB_MATRIX_LED_PROCESS_LIMIT * (iter); \ - uint8_t max = min + RGB_MATRIX_LED_PROCESS_LIMIT; \ - if (max > RGB_MATRIX_LED_COUNT) max = RGB_MATRIX_LED_COUNT; -# endif -#else -# if defined(RGB_MATRIX_SPLIT) -# define RGB_MATRIX_USE_LIMITS_ITER(min, max, iter) \ - uint8_t min = 0; \ - uint8_t max = RGB_MATRIX_LED_COUNT; \ - const uint8_t k_rgb_matrix_split[2] = RGB_MATRIX_SPLIT; \ - if (is_keyboard_left() && (max > k_rgb_matrix_split[0])) max = k_rgb_matrix_split[0]; \ - if (!(is_keyboard_left()) && (min < k_rgb_matrix_split[0])) min = k_rgb_matrix_split[0]; -# else -# define RGB_MATRIX_USE_LIMITS_ITER(min, max, iter) \ - uint8_t min = 0; \ - uint8_t max = RGB_MATRIX_LED_COUNT; -# endif -#endif +struct rgb_matrix_limits_t { + uint8_t led_min_index; + uint8_t led_max_index; +}; + +struct rgb_matrix_limits_t rgb_matrix_get_limits(uint8_t iter); + +#define RGB_MATRIX_USE_LIMITS_ITER(min, max, iter) \ + struct rgb_matrix_limits_t limits = rgb_matrix_get_limits(iter); \ + uint8_t min = limits.led_min_index; \ + uint8_t max = limits.led_max_index; \ + (void)min; \ + (void)max; #define RGB_MATRIX_USE_LIMITS(min, max) RGB_MATRIX_USE_LIMITS_ITER(min, max, params->iter) From d2892685c52a8a0892b28872cfc43e8f7fa37465 Mon Sep 17 00:00:00 2001 From: Olivia J <65928618+ojthetiny@users.noreply.github.com> Date: Thu, 26 Oct 2023 02:07:00 +0300 Subject: [PATCH 310/496] [Keyboard] Add LGBTKL (#22331) Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/lgbtkl/info.json | 111 ++++++++++++++++++++++ keyboards/lgbtkl/keymaps/default/keymap.c | 37 ++++++++ keyboards/lgbtkl/keymaps/via/keymap.c | 38 ++++++++ keyboards/lgbtkl/keymaps/via/rules.mk | 1 + keyboards/lgbtkl/readme.md | 26 +++++ keyboards/lgbtkl/rules.mk | 1 + 6 files changed, 214 insertions(+) create mode 100644 keyboards/lgbtkl/info.json create mode 100644 keyboards/lgbtkl/keymaps/default/keymap.c create mode 100644 keyboards/lgbtkl/keymaps/via/keymap.c create mode 100644 keyboards/lgbtkl/keymaps/via/rules.mk create mode 100644 keyboards/lgbtkl/readme.md create mode 100644 keyboards/lgbtkl/rules.mk diff --git a/keyboards/lgbtkl/info.json b/keyboards/lgbtkl/info.json new file mode 100644 index 0000000000..a3f126e862 --- /dev/null +++ b/keyboards/lgbtkl/info.json @@ -0,0 +1,111 @@ +{ + "manufacturer": "queertykeys", + "keyboard_name": "lgbtkl", + "maintainer": "ojthetiny", + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "usb": { + "vid": "0x6F6A", + "pid": "0x4C54", + "device_version": "1.0.0" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "rows": ["C10", "A15", "A5", "C1", "C2"], + "cols": ["C8", "C7", "C6", "B15", "B14", "B13", "B12", "B11", "B10", "B2", "B1", "B0", "C5", "C4", "A7", "A6", "C3", "C14", "C13"] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1.25, "y": 0 }, + { "matrix": [0, 2], "x": 2.25, "y": 0 }, + { "matrix": [0, 3], "x": 3.25, "y": 0 }, + { "matrix": [0, 4], "x": 4.25, "y": 0 }, + { "matrix": [0, 5], "x": 5.25, "y": 0 }, + { "matrix": [0, 6], "x": 6.25, "y": 0 }, + { "matrix": [0, 7], "x": 7.25, "y": 0 }, + { "matrix": [0, 8], "x": 8.25, "y": 0 }, + { "matrix": [0, 9], "x": 9.25, "y": 0 }, + { "matrix": [0, 10], "x": 10.25, "y": 0 }, + { "matrix": [0, 11], "x": 11.25, "y": 0 }, + { "matrix": [0, 12], "x": 12.25, "y": 0 }, + { "matrix": [0, 13], "x": 13.25, "y": 0 }, + { "matrix": [0, 14], "x": 14.25, "y": 0 }, + { "matrix": [0, 15], "x": 15.25, "y": 0 }, + { "matrix": [0, 16], "x": 16.5, "y": 0 }, + { "matrix": [0, 17], "x": 17.5, "y": 0 }, + { "matrix": [0, 18], "x": 18.5, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "w": 1.5, "x": 1.25, "y": 1 }, + { "matrix": [1, 2], "x": 2.75, "y": 1 }, + { "matrix": [1, 3], "x": 3.75, "y": 1 }, + { "matrix": [1, 4], "x": 4.75, "y": 1 }, + { "matrix": [1, 5], "x": 5.75, "y": 1 }, + { "matrix": [1, 6], "x": 6.75, "y": 1 }, + { "matrix": [1, 7], "x": 7.75, "y": 1 }, + { "matrix": [1, 8], "x": 8.75, "y": 1 }, + { "matrix": [1, 9], "x": 9.75, "y": 1 }, + { "matrix": [1, 10], "x": 10.75, "y": 1 }, + { "matrix": [1, 11], "x": 11.75, "y": 1 }, + { "matrix": [1, 12], "x": 12.75, "y": 1 }, + { "matrix": [1, 13], "x": 13.75, "y": 1 }, + { "matrix": [1, 15], "w": 1.5, "x": 14.75, "y": 1 }, + { "matrix": [1, 16], "x": 16.5, "y": 1 }, + { "matrix": [1, 17], "x": 17.5, "y": 1 }, + { "matrix": [1, 18], "x": 18.5, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "w": 1.75, "x": 1.25, "y": 2 }, + { "matrix": [2, 2], "x": 3, "y": 2 }, + { "matrix": [2, 3], "x": 4, "y": 2 }, + { "matrix": [2, 4], "x": 5, "y": 2 }, + { "matrix": [2, 5], "x": 6, "y": 2 }, + { "matrix": [2, 6], "x": 7, "y": 2 }, + { "matrix": [2, 7], "x": 8, "y": 2 }, + { "matrix": [2, 8], "x": 9, "y": 2 }, + { "matrix": [2, 9], "x": 10, "y": 2 }, + { "matrix": [2, 10], "x": 11, "y": 2 }, + { "matrix": [2, 11], "x": 12, "y": 2 }, + { "matrix": [2, 12], "x": 13, "y": 2 }, + { "matrix": [2, 14], "w": 2.25, "x": 14, "y": 2 }, + { "matrix": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "w": 2.25, "x": 1.25, "y": 3 }, + { "matrix": [3, 2], "x": 3.5, "y": 3 }, + { "matrix": [3, 3], "x": 4.5, "y": 3 }, + { "matrix": [3, 4], "x": 5.5, "y": 3 }, + { "matrix": [3, 5], "x": 6.5, "y": 3 }, + { "matrix": [3, 6], "x": 7.5, "y": 3 }, + { "matrix": [3, 7], "x": 8.5, "y": 3 }, + { "matrix": [3, 8], "x": 9.5, "y": 3 }, + { "matrix": [3, 9], "x": 10.5, "y": 3 }, + { "matrix": [3, 10], "x": 11.5, "y": 3 }, + { "matrix": [3, 11], "x": 12.5, "y": 3 }, + { "matrix": [3, 13], "w": 1.75, "x": 13.5, "y": 3 }, + { "matrix": [3, 14], "w": 2.75, "x": 13.5, "y": 3 }, + { "matrix": [3, 15], "x": 15.25, "y": 3 }, + { "matrix": [3, 17], "x": 17.5, "y": 3 }, + { "matrix": [4, 0], "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.5, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "x": 2.75, "y": 4 }, + { "matrix": [4, 3], "w": 1.5, "x": 3.75, "y": 4 }, + { "matrix": [4, 5], "w": 3, "x": 5.25, "y": 4 }, + { "matrix": [4, 7], "x": 8.25, "y": 4 }, + { "matrix": [4, 9], "w": 3, "x": 9.25, "y": 4 }, + { "matrix": [4, 11], "w": 1.5, "x": 12.25, "y": 4 }, + { "matrix": [4, 13], "x": 13.75, "y": 4 }, + { "matrix": [4, 15], "w": 1.5, "x": 14.75, "y": 4 }, + { "matrix": [4, 16], "x": 16.5, "y": 4 }, + { "matrix": [4, 17], "x": 17.5, "y": 4 }, + { "matrix": [4, 18], "x": 18.5, "y": 4 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/lgbtkl/keymaps/default/keymap.c b/keyboards/lgbtkl/keymaps/default/keymap.c new file mode 100644 index 0000000000..01dcedcc18 --- /dev/null +++ b/keyboards/lgbtkl/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2023 ojthetiny + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_F1, KC_ESC, 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_BSLS, KC_INS, KC_HOME, KC_PGUP, + KC_F2, 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_BSPC, KC_DEL, KC_END, KC_PGDN, + KC_F3, 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_ENT, + KC_F4, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, XXXXXXX, MO(1), KC_UP, + KC_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), + +}; diff --git a/keyboards/lgbtkl/keymaps/via/keymap.c b/keyboards/lgbtkl/keymaps/via/keymap.c new file mode 100644 index 0000000000..2fc44ae8cc --- /dev/null +++ b/keyboards/lgbtkl/keymaps/via/keymap.c @@ -0,0 +1,38 @@ +/* Copyright 2023 ojthetiny + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_F1, KC_ESC, 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_BSLS, KC_INS, KC_HOME, KC_PGUP, + KC_F2, 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_BSPC, KC_DEL, KC_END, KC_PGDN, + KC_F3, 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_ENT, + KC_F4, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, XXXXXXX, MO(1), KC_UP, + KC_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), + + +}; diff --git a/keyboards/lgbtkl/keymaps/via/rules.mk b/keyboards/lgbtkl/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/lgbtkl/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/lgbtkl/readme.md b/keyboards/lgbtkl/readme.md new file mode 100644 index 0000000000..cd6f94b6e9 --- /dev/null +++ b/keyboards/lgbtkl/readme.md @@ -0,0 +1,26 @@ +# LGBTKL + +LGBTKL keyboard by Queertykeys + +* Keyboard Maintainer: [Liv](https://github.com/ojthetiny) +* Hardware Supported: LGBTKL +* Hardware Availability: Private GB + + +Make example for this keyboard (after setting up your build environment): + + make lgbtkl:default + +Flashing example for this keyboard: + + make lgbtkl:default:flash + +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). + +## Bootloader + +Enter the bootloader using one of the following methods: + +* **Bootmagic reset**: Hold the F1 key while connecting the USB cable +* **Physical reset button**: Hold the button labeled 'B/R' for a while to enter bootloader. +* **Keycode in layout**: In the case of the default keymap, use the key combination Fn + F5 \ No newline at end of file diff --git a/keyboards/lgbtkl/rules.mk b/keyboards/lgbtkl/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/lgbtkl/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file From e0c00c35ce195dc0ab3f729235b9490dc69592ec Mon Sep 17 00:00:00 2001 From: Dasky <32983009+daskygit@users.noreply.github.com> Date: Thu, 26 Oct 2023 22:34:17 +0100 Subject: [PATCH 311/496] Clarify PIO define is optional in docs. (#22339) --- docs/serial_driver.md | 2 +- docs/ws2812_driver.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/serial_driver.md b/docs/serial_driver.md index c4b42f38dd..b7e803154b 100644 --- a/docs/serial_driver.md +++ b/docs/serial_driver.md @@ -235,7 +235,7 @@ Where 'n' matches the peripheral number of your selected USART on the MCU. The `PIO` subsystem is a Raspberry Pi RP2040 specific implementation, using the integrated PIO peripheral and is therefore only available on this MCU. Because of the flexible nature of the PIO peripherals, **any** GPIO pin can be used as a `TX` or `RX` pin. Half-duplex and Full-duplex operation is fully supported. The Half-duplex operation mode uses the built-in pull-ups and GPIO manipulation on the RP2040 to drive the line high by default. An external pull-up is therefore not necessary. -Configure the hardware via your config.h: +You may optionally switch the PIO peripheral used with the following define in config.h: ```c #define SERIAL_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the Serial implementation uses the PIO0 peripheral ``` diff --git a/docs/ws2812_driver.md b/docs/ws2812_driver.md index f8cad20ce0..9b79cfa905 100644 --- a/docs/ws2812_driver.md +++ b/docs/ws2812_driver.md @@ -170,7 +170,7 @@ To configure it, add this to your rules.mk: WS2812_DRIVER = vendor ``` -Configure the hardware via your config.h: +You may optionally switch the PIO peripheral used with the following define in config.h: ```c #define WS2812_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the WS2812 implementation uses the PIO0 peripheral ``` From db4e3bb232af27ef79ad0f5a4b17c828f283334a Mon Sep 17 00:00:00 2001 From: Ryan Date: Fri, 27 Oct 2023 11:21:13 +1000 Subject: [PATCH 312/496] V-USB: Fix `GET_IDLE/SET_IDLE` (#22332) Co-authored-by: Sergey Vlasov --- quantum/command.c | 5 ----- tmk_core/protocol/vusb/vusb.c | 28 ++++++++++++---------------- 2 files changed, 12 insertions(+), 21 deletions(-) diff --git a/quantum/command.c b/quantum/command.c index aa64b75064..c188638eb4 100644 --- a/quantum/command.c +++ b/quantum/command.c @@ -222,21 +222,16 @@ static void print_status(void) { "\n\t- Status -\n" "host_keyboard_leds(): %02X\n" -#ifndef PROTOCOL_VUSB "keyboard_protocol: %02X\n" "keyboard_idle: %02X\n" -#endif #ifdef NKRO_ENABLE "keymap_config.nkro: %02X\n" #endif "timer_read32(): %08lX\n" , host_keyboard_leds() -#ifndef PROTOCOL_VUSB - /* these aren't set on the V-USB protocol, so we just ignore them for now */ , keyboard_protocol , keyboard_idle -#endif #ifdef NKRO_ENABLE , keymap_config.nkro #endif diff --git a/tmk_core/protocol/vusb/vusb.c b/tmk_core/protocol/vusb/vusb.c index d7d2227687..3502d9e644 100644 --- a/tmk_core/protocol/vusb/vusb.c +++ b/tmk_core/protocol/vusb/vusb.c @@ -48,16 +48,14 @@ along with this program. If not, see . # include "os_detection.h" #endif -#define NEXT_INTERFACE __COUNTER__ - /* * Interface indexes */ enum usb_interfaces { #ifndef KEYBOARD_SHARED_EP - KEYBOARD_INTERFACE = NEXT_INTERFACE, + KEYBOARD_INTERFACE, #else - SHARED_INTERFACE = NEXT_INTERFACE, + SHARED_INTERFACE, # define KEYBOARD_INTERFACE SHARED_INTERFACE #endif @@ -65,32 +63,30 @@ enum usb_interfaces { // interface number, to support Linux/OSX platforms and chrome.hid // If Raw HID is enabled, let it be always 1. #ifdef RAW_ENABLE - RAW_INTERFACE = NEXT_INTERFACE, + RAW_INTERFACE, #endif #if defined(SHARED_EP_ENABLE) && !defined(KEYBOARD_SHARED_EP) - SHARED_INTERFACE = NEXT_INTERFACE, + SHARED_INTERFACE, #endif #ifdef CONSOLE_ENABLE - CONSOLE_INTERFACE = NEXT_INTERFACE, + CONSOLE_INTERFACE, #endif - TOTAL_INTERFACES = NEXT_INTERFACE + TOTAL_INTERFACES }; #define MAX_INTERFACES 3 -#if (NEXT_INTERFACE - 1) > MAX_INTERFACES -# error There are not enough available interfaces to support all functions. Please disable one or more of the following: Mouse Keys, Extra Keys, Raw HID, Console -#endif +_Static_assert(TOTAL_INTERFACES <= MAX_INTERFACES, "There are not enough available interfaces to support all functions. Please disable one or more of the following: Mouse Keys, Extra Keys, Raw HID, Console."); #if (defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE)) && CONSOLE_ENABLE # error Mouse/Extra Keys share an endpoint with Console. Please disable one of the two. #endif static uint8_t keyboard_led_state = 0; -static uint8_t vusb_idle_rate = 0; +uint8_t keyboard_idle = 0; uint8_t keyboard_protocol = 1; /* Keyboard report send buffer */ @@ -335,7 +331,7 @@ usbMsgLen_t usbFunctionSetup(uchar data[8]) { break; case USBRQ_HID_GET_IDLE: dprint("GET_IDLE:"); - usbMsgPtr = (usbMsgPtr_t)&vusb_idle_rate; + usbMsgPtr = (usbMsgPtr_t)&keyboard_idle; return 1; case USBRQ_HID_GET_PROTOCOL: dprint("GET_PROTOCOL:"); @@ -351,8 +347,8 @@ usbMsgLen_t usbFunctionSetup(uchar data[8]) { } return USB_NO_MSG; // to get data in usbFunctionWrite case USBRQ_HID_SET_IDLE: - vusb_idle_rate = rq->wValue.bytes[1]; - dprintf("SET_IDLE: %02X", vusb_idle_rate); + keyboard_idle = (rq->wValue.word & 0xFF00) >> 8; + dprintf("SET_IDLE: %02X", keyboard_idle); break; case USBRQ_HID_SET_PROTOCOL: if (rq->wIndex.word == KEYBOARD_INTERFACE) { @@ -1044,7 +1040,7 @@ USB_PUBLIC usbMsgLen_t usbFunctionDescriptor(struct usbRequest *rq) { #endif break; case USBDESCR_HID: - switch (rq->wValue.bytes[0]) { + switch (rq->wIndex.word) { #ifndef KEYBOARD_SHARED_EP case KEYBOARD_INTERFACE: usbMsgPtr = (usbMsgPtr_t)&usbConfigurationDescriptor.keyboardHID; From f5cd30458a91aeeb1ac785b562550607c09054d6 Mon Sep 17 00:00:00 2001 From: Kael Augusto <45074062+Dwctor@users.noreply.github.com> Date: Fri, 27 Oct 2023 01:10:30 -0300 Subject: [PATCH 313/496] [Keyboard] Add Kaly42 (#22282) * Added Kaly/Kaly42 keyboard's minimal files. * Updated readme.md; New link and improved description text. * Apply suggestions from code review Added all suggestions given by @dunk2k Co-authored-by: Duncan Sutherland * Added community_layouts to info.json. Co-authored-by: Duncan Sutherland --------- Co-authored-by: Duncan Sutherland --- keyboards/kaly/kaly42/config.h | 9 ++ keyboards/kaly/kaly42/halconf.h | 7 ++ keyboards/kaly/kaly42/info.json | 93 +++++++++++++++++++ .../kaly/kaly42/keymaps/default/keymap.c | 27 ++++++ keyboards/kaly/kaly42/mcuconf.h | 10 ++ keyboards/kaly/kaly42/readme.md | 27 ++++++ keyboards/kaly/kaly42/rules.mk | 1 + 7 files changed, 174 insertions(+) create mode 100644 keyboards/kaly/kaly42/config.h create mode 100644 keyboards/kaly/kaly42/halconf.h create mode 100644 keyboards/kaly/kaly42/info.json create mode 100644 keyboards/kaly/kaly42/keymaps/default/keymap.c create mode 100644 keyboards/kaly/kaly42/mcuconf.h create mode 100644 keyboards/kaly/kaly42/readme.md create mode 100644 keyboards/kaly/kaly42/rules.mk diff --git a/keyboards/kaly/kaly42/config.h b/keyboards/kaly/kaly42/config.h new file mode 100644 index 0000000000..e97f0a8aa4 --- /dev/null +++ b/keyboards/kaly/kaly42/config.h @@ -0,0 +1,9 @@ +// Copyright 2023 Kael Soares Augusto (@Dwctor) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. + +#define SERIAL_USART_TX_PIN B6 // USART TX pin +#define SERIAL_USART_RX_PIN B7 // USART RX pin diff --git a/keyboards/kaly/kaly42/halconf.h b/keyboards/kaly/kaly42/halconf.h new file mode 100644 index 0000000000..7cbbf59610 --- /dev/null +++ b/keyboards/kaly/kaly42/halconf.h @@ -0,0 +1,7 @@ +// Copyright 2023 Kael Soares Augusto (@Dwctor) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_SERIAL TRUE +#include_next diff --git a/keyboards/kaly/kaly42/info.json b/keyboards/kaly/kaly42/info.json new file mode 100644 index 0000000000..38de4ccea5 --- /dev/null +++ b/keyboards/kaly/kaly42/info.json @@ -0,0 +1,93 @@ +{ + "manufacturer": "Dwctor", + "keyboard_name": "kaly/kaly42", + "maintainer": "Dwctor", + "development_board": "blackpill_f401", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "direct": [ + ["B1", "B10", "A8", "B15", "B14", "B13"], + ["B9", "B8", "B5", "B4", "B3", "A15"], + ["A4", "A3", "A5", "A6", "A7", "B0"], + ["A2", "A1", "A0", "NO_PIN", "NO_PIN", "NO_PIN"] + ] + }, + "split": { + "enabled": true, + "bootmagic": { + "matrix": [4, 5] + }, + "matrix_pins": { + "right": { + "direct": [ + ["B13", "B14", "B15", "A8", "B10", "B1"], + ["A15", "B3", "B4", "B5", "B8", "B9"], + ["B0", "A7", "A6", "A5", "A3", "A4"], + ["A0", "A1", "A2", "NO_PIN", "NO_PIN", "NO_PIN"] + ] + } + } + }, + "url": "https://github.com/Dwctor/Kaly", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "community_layouts": ["split_3x6_3"], + "layouts": { + "LAYOUT_split_3x6_3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.25}, + {"matrix": [0, 1], "x": 1, "y": 0.25}, + {"matrix": [0, 2], "x": 2, "y": 0.125}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.125}, + {"matrix": [0, 5], "x": 5, "y": 0.25}, + {"matrix": [4, 0], "x": 8, "y": 0.25}, + {"matrix": [4, 1], "x": 9, "y": 0.125}, + {"matrix": [4, 2], "x": 10, "y": 0}, + {"matrix": [4, 3], "x": 11, "y": 0.125}, + {"matrix": [4, 4], "x": 12, "y": 0.25}, + {"matrix": [4, 5], "x": 13, "y": 0.25}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.125}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.125}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [5, 0], "x": 8, "y": 1.25}, + {"matrix": [5, 1], "x": 9, "y": 1.125}, + {"matrix": [5, 2], "x": 10, "y": 1}, + {"matrix": [5, 3], "x": 11, "y": 1.125}, + {"matrix": [5, 4], "x": 12, "y": 1.25}, + {"matrix": [5, 5], "x": 13, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25}, + {"matrix": [2, 1], "x": 1, "y": 2.25}, + {"matrix": [2, 2], "x": 2, "y": 2.125}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.125}, + {"matrix": [2, 5], "x": 5, "y": 2.25}, + {"matrix": [6, 0], "x": 8, "y": 2.25}, + {"matrix": [6, 1], "x": 9, "y": 2.125}, + {"matrix": [6, 2], "x": 10, "y": 2}, + {"matrix": [6, 3], "x": 11, "y": 2.125}, + {"matrix": [6, 4], "x": 12, "y": 2.25}, + {"matrix": [6, 5], "x": 13, "y": 2.25}, + {"matrix": [3, 0], "x": 3.5, "y": 3.25}, + {"matrix": [3, 1], "x": 4.5, "y": 3.5}, + {"matrix": [3, 2], "x": 5.5, "y": 3.75}, + {"matrix": [7, 0], "x": 7.5, "y": 3.75}, + {"matrix": [7, 1], "x": 8.5, "y": 3.5}, + {"matrix": [7, 2], "x": 9.5, "y": 3.25} + ] + } + } +} diff --git a/keyboards/kaly/kaly42/keymaps/default/keymap.c b/keyboards/kaly/kaly42/keymaps/default/keymap.c new file mode 100644 index 0000000000..54d46c54db --- /dev/null +++ b/keyboards/kaly/kaly42/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +// Copyright 2023 Kael Soares Augusto (@Dwctor) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ + * │Tab│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │Bsp│ + * ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + * │Ctl│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │ + * ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + * │Sft│ Z │ X │ C │ V │ B │ │ N │ M │ , │ . │ / │Sft│ + * └───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┘ + * ┌───┐ ┌───┐ + * │GUI├───┐ ┌───┤Alt│ + * └───┤Bsp├───┐ ┌───┤Ent├───┘ + * └───┤ │ │ ├───┘ + * └───┘ └───┘ + */ + [0] = LAYOUT_split_3x6_3( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LGUI, KC_BSPC, KC_SPC, KC_SPC, KC_ENT, KC_RALT + ) +}; diff --git a/keyboards/kaly/kaly42/mcuconf.h b/keyboards/kaly/kaly42/mcuconf.h new file mode 100644 index 0000000000..6db1e6072a --- /dev/null +++ b/keyboards/kaly/kaly42/mcuconf.h @@ -0,0 +1,10 @@ +// Copyright 2023 Kael Soares Augusto (@Dwctor) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef STM32_SERIAL_USE_USART1 + +#define STM32_SERIAL_USE_USART1 TRUE diff --git a/keyboards/kaly/kaly42/readme.md b/keyboards/kaly/kaly42/readme.md new file mode 100644 index 0000000000..d3b0ff7a3d --- /dev/null +++ b/keyboards/kaly/kaly42/readme.md @@ -0,0 +1,27 @@ +# kaly/kaly42 + +![kaly/kaly42](https://i.imgur.com/wSmUjFUh.jpeg) + +The Kaly is a split, ergonomic keyboard inspired by the [Ferris](https://github.com/pierrechevalier83/ferris) and the [Cantor](https://github.com/diepala/cantor) with the main goals of comfort, affordability and cuteness! The stand-out features of the Kaly is the ease-to-solder and the natural thumb cluster that allow users to confortably reach all keys of the keyboard! To see more of the Kaly, visit [this video](https://www.youtube.com/watch?v=PhxM8o__9Xo) outlining the journey of making this keybord. + +* Keyboard Maintainer: [Kael Soares Augusto](https://github.com/Dwctor) +* Hardware Supported: Blackpill STM32F401 +* Hardware Availability: [https://github.com/Dwctor/Kaly](https://github.com/Dwctor/Kaly) + +Make example for this keyboard (after setting up your build environment): + + make kaly/kaly42:default + +Flashing example for this keyboard: + + make kaly/kaly42:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kaly/kaly42/rules.mk b/keyboards/kaly/kaly42/rules.mk new file mode 100644 index 0000000000..c6e2988321 --- /dev/null +++ b/keyboards/kaly/kaly42/rules.mk @@ -0,0 +1 @@ +SERIAL_DRIVER = usart From 0ad780f852c725d8e25d0cf2032af9eac5a8ee92 Mon Sep 17 00:00:00 2001 From: khchen2004 <148961563+khchen2004@users.noreply.github.com> Date: Fri, 27 Oct 2023 14:38:22 +0800 Subject: [PATCH 314/496] [Keyboard] add pisces pcb (#22334) --- keyboards/kwstudio/pisces/info.json | 127 ++++++++++++++++++ .../kwstudio/pisces/keymaps/default/keymap.c | 36 +++++ .../kwstudio/pisces/keymaps/via/keymap.c | 36 +++++ .../kwstudio/pisces/keymaps/via/rules.mk | 1 + keyboards/kwstudio/pisces/readme.md | 25 ++++ keyboards/kwstudio/pisces/rules.mk | 1 + 6 files changed, 226 insertions(+) create mode 100644 keyboards/kwstudio/pisces/info.json create mode 100644 keyboards/kwstudio/pisces/keymaps/default/keymap.c create mode 100644 keyboards/kwstudio/pisces/keymaps/via/keymap.c create mode 100644 keyboards/kwstudio/pisces/keymaps/via/rules.mk create mode 100644 keyboards/kwstudio/pisces/readme.md create mode 100644 keyboards/kwstudio/pisces/rules.mk diff --git a/keyboards/kwstudio/pisces/info.json b/keyboards/kwstudio/pisces/info.json new file mode 100644 index 0000000000..48f4e6a4f6 --- /dev/null +++ b/keyboards/kwstudio/pisces/info.json @@ -0,0 +1,127 @@ +{ + "keyboard_name": "Pisces", + "manufacturer": "kws", + "maintainer": "kws", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "B0" + }, + "matrix_pins": { + "cols": ["E6", "F0", "F1", "F4", "F5", "F6", "F7", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4", "B2", "B3", "B1"], + "rows": ["B7", "D5", "D3", "D2", "D1", "D0"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0001", + "vid": "0x4B53" + }, + "community_layouts": ["tkl_f13_ansi_tsangan"], + "layouts": { + "LAYOUT_tkl_f13_ansi_tsangan": { + "layout": [ + {"matrix":[0,0], "x":0, "y":0}, + {"matrix":[0,1], "x":1.25, "y":0}, + {"matrix":[0,2], "x":2.25, "y":0}, + {"matrix":[0,3], "x":3.25, "y":0}, + {"matrix":[0,4], "x":4.25, "y":0}, + {"matrix":[0,6], "x":5.5, "y":0}, + {"matrix":[0,7], "x":6.5, "y":0}, + {"matrix":[0,8], "x":7.5, "y":0}, + {"matrix":[0,9], "x":8.5, "y":0}, + {"matrix":[0,10], "x":9.75, "y":0}, + {"matrix":[0,11], "x":10.75, "y":0}, + {"matrix":[0,12], "x":11.75, "y":0}, + {"matrix":[0,13], "x":12.75, "y":0}, + {"matrix":[0,14], "x":14, "y":0}, + {"matrix":[0,15], "x":15.25, "y":0}, + {"matrix":[0,16], "x":16.25, "y":0}, + {"matrix":[0,17], "x":17.25, "y":0}, + + {"matrix":[1,0], "x":0, "y":1.25}, + {"matrix":[1,1], "x":1, "y":1.25}, + {"matrix":[1,2], "x":2, "y":1.25}, + {"matrix":[1,3], "x":3, "y":1.25}, + {"matrix":[1,4], "x":4, "y":1.25}, + {"matrix":[1,5], "x":5, "y":1.25}, + {"matrix":[1,6], "x":6, "y":1.25}, + {"matrix":[1,7], "x":7, "y":1.25}, + {"matrix":[1,8], "x":8, "y":1.25}, + {"matrix":[1,9], "x":9, "y":1.25}, + {"matrix":[1,10], "x":10, "y":1.25}, + {"matrix":[1,11], "x":11, "y":1.25}, + {"matrix":[1,12], "x":12, "y":1.25}, + {"matrix":[1,14], "x":13, "y":1.25, "w":2}, + {"matrix":[1,15], "x":15.25, "y":1.25}, + {"matrix":[1,16], "x":16.25, "y":1.25}, + {"matrix":[1,17], "x":17.25, "y":1.25}, + + {"matrix":[2,0], "x":0, "y":2.25, "w":1.5}, + {"matrix":[2,2], "x":1.5, "y":2.25}, + {"matrix":[2,3], "x":2.5, "y":2.25}, + {"matrix":[2,4], "x":3.5, "y":2.25}, + {"matrix":[2,5], "x":4.5, "y":2.25}, + {"matrix":[2,6], "x":5.5, "y":2.25}, + {"matrix":[2,7], "x":6.5, "y":2.25}, + {"matrix":[2,8], "x":7.5, "y":2.25}, + {"matrix":[2,9], "x":8.5, "y":2.25}, + {"matrix":[2,10], "x":9.5, "y":2.25}, + {"matrix":[2,11], "x":10.5, "y":2.25}, + {"matrix":[2,12], "x":11.5, "y":2.25}, + {"matrix":[2,13], "x":12.5, "y":2.25}, + {"matrix":[2,14], "x":13.5, "y":2.25, "w":1.5}, + {"matrix":[2,15], "x":15.25, "y":2.25}, + {"matrix":[2,16], "x":16.25, "y":2.25}, + {"matrix":[2,17], "x":17.25, "y":2.25}, + + {"matrix":[3,0], "x":0, "y":3.25, "w":1.75}, + {"matrix":[3,2], "x":1.75, "y":3.25}, + {"matrix":[3,3], "x":2.75, "y":3.25}, + {"matrix":[3,4], "x":3.75, "y":3.25}, + {"matrix":[3,5], "x":4.75, "y":3.25}, + {"matrix":[3,6], "x":5.75, "y":3.25}, + {"matrix":[3,7], "x":6.75, "y":3.25}, + {"matrix":[3,8], "x":7.75, "y":3.25}, + {"matrix":[3,9], "x":8.75, "y":3.25}, + {"matrix":[3,10], "x":9.75, "y":3.25}, + {"matrix":[3,11], "x":10.75, "y":3.25}, + {"matrix":[3,12], "x":11.75, "y":3.25}, + {"matrix":[3,13], "x":12.75, "y":3.25, "w":2.25}, + {"matrix":[4,1], "x":0, "y":4.25, "w":2.25}, + {"matrix":[4,2], "x":2.25, "y":4.25}, + {"matrix":[4,3], "x":3.25, "y":4.25}, + {"matrix":[4,4], "x":4.25, "y":4.25}, + {"matrix":[4,5], "x":5.25, "y":4.25}, + {"matrix":[4,6], "x":6.25, "y":4.25}, + {"matrix":[4,7], "x":7.25, "y":4.25}, + {"matrix":[4,8], "x":8.25, "y":4.25}, + {"matrix":[4,9], "x":9.25, "y":4.25}, + {"matrix":[4,10], "x":10.25, "y":4.25}, + {"matrix":[4,11], "x":11.25, "y":4.25}, + {"matrix":[4,13], "x":12.25, "y":4.25, "w":2.75}, + {"matrix":[4,16], "x":16.25, "y":4.25}, + + {"matrix":[5,0], "x":0, "y":5.25, "w":1.5}, + {"matrix":[5,2], "x":1.5, "y":5.25}, + {"matrix":[5,3], "x":2.5, "y":5.25, "w":1.5}, + {"matrix":[5,7], "x":4, "y":5.25, "w":7}, + {"matrix":[5,11], "x":11, "y":5.25, "w":1.5}, + {"matrix":[5,13], "x":12.5, "y":5.25}, + {"matrix":[5,14], "x":13.5, "y":5.25, "w":1.5}, + {"matrix":[5,15], "x":15.25, "y":5.25}, + {"matrix":[5,16], "x":16.25, "y":5.25}, + {"matrix":[5,17], "x":17.25, "y":5.25} + ] + } + } +} diff --git a/keyboards/kwstudio/pisces/keymaps/default/keymap.c b/keyboards/kwstudio/pisces/keymaps/default/keymap.c new file mode 100644 index 0000000000..6b20a3aa90 --- /dev/null +++ b/keyboards/kwstudio/pisces/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2023 kwstudio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_f13_ansi_tsangan( + KC_ESC, 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_NO, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_f13_ansi_tsangan( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/kwstudio/pisces/keymaps/via/keymap.c b/keyboards/kwstudio/pisces/keymaps/via/keymap.c new file mode 100644 index 0000000000..6b20a3aa90 --- /dev/null +++ b/keyboards/kwstudio/pisces/keymaps/via/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2023 kwstudio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_f13_ansi_tsangan( + KC_ESC, 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_NO, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_f13_ansi_tsangan( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/kwstudio/pisces/keymaps/via/rules.mk b/keyboards/kwstudio/pisces/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/kwstudio/pisces/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/kwstudio/pisces/readme.md b/keyboards/kwstudio/pisces/readme.md new file mode 100644 index 0000000000..29cf8ebf5c --- /dev/null +++ b/keyboards/kwstudio/pisces/readme.md @@ -0,0 +1,25 @@ +# Pisces + +![Pisces](https://i.imgur.com/fqEBVD8h.jpeg) + +* Keyboard Maintainer: [khchen](https://github.com/khchen2004) +* Hardware Supported: Pisces PCB +* Hardware Availability: Private GB + +Make example for this keyboard (after setting up your build environment): + + make kwstudio/pisces:default + +Flashing example for this keyboard: + + make kwstudio/pisces:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kwstudio/pisces/rules.mk b/keyboards/kwstudio/pisces/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/kwstudio/pisces/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From e82bc5355c98d358815b514ee570ac5c4fdf7a4a Mon Sep 17 00:00:00 2001 From: 4pplet Date: Fri, 27 Oct 2023 08:40:21 +0200 Subject: [PATCH 315/496] [Keyboard] Waffling60 Rev E ANSI Hotswap (#22270) Co-authored-by: Duncan Sutherland --- .../4pplet/waffling60/rev_e_ansi/config.h | 20 ++ .../4pplet/waffling60/rev_e_ansi/info.json | 255 ++++++++++++++++++ .../rev_e_ansi/keymaps/default/keymap.c | 40 +++ .../rev_e_ansi/keymaps/default/rules.mk | 1 + .../rev_e_ansi/keymaps/via/keymap.c | 40 +++ .../rev_e_ansi/keymaps/via/rules.mk | 2 + .../waffling60/rev_e_ansi/matrix_diagram.md | 24 ++ .../4pplet/waffling60/rev_e_ansi/readme.md | 26 ++ .../4pplet/waffling60/rev_e_ansi/rules.mk | 2 + 9 files changed, 410 insertions(+) create mode 100644 keyboards/4pplet/waffling60/rev_e_ansi/config.h create mode 100644 keyboards/4pplet/waffling60/rev_e_ansi/info.json create mode 100644 keyboards/4pplet/waffling60/rev_e_ansi/keymaps/default/keymap.c create mode 100644 keyboards/4pplet/waffling60/rev_e_ansi/keymaps/default/rules.mk create mode 100644 keyboards/4pplet/waffling60/rev_e_ansi/keymaps/via/keymap.c create mode 100644 keyboards/4pplet/waffling60/rev_e_ansi/keymaps/via/rules.mk create mode 100644 keyboards/4pplet/waffling60/rev_e_ansi/matrix_diagram.md create mode 100644 keyboards/4pplet/waffling60/rev_e_ansi/readme.md create mode 100644 keyboards/4pplet/waffling60/rev_e_ansi/rules.mk diff --git a/keyboards/4pplet/waffling60/rev_e_ansi/config.h b/keyboards/4pplet/waffling60/rev_e_ansi/config.h new file mode 100644 index 0000000000..521ddf96a1 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e_ansi/config.h @@ -0,0 +1,20 @@ +/* +Copyright 2023 Stefan Sundin "4pplet" + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once + +#define WS2812_EXTERNAL_PULLUP + diff --git a/keyboards/4pplet/waffling60/rev_e_ansi/info.json b/keyboards/4pplet/waffling60/rev_e_ansi/info.json new file mode 100644 index 0000000000..c2514700ff --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e_ansi/info.json @@ -0,0 +1,255 @@ +{ + "manufacturer": "4pplet", + "keyboard_name": "waffling60 Rev E ANSI HS", + "maintainer": "4pplet", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "A2", "pin_b": "A1", "resolution": 2} + ] + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "key_lock": true, + "mousekey": false, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["B2", "A4", "A3", "A0", "F1", "F0", "C15", "C14", "C13", "B9", "B8", "B7", "A15", "B3"], + "rows": ["B14", "A9", "B6", "B5", "B4"] + }, + "processor": "STM32F072", + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "led_count": 17 + }, + "url": "https://github.com/4pplet/waffling60", + "usb": { + "device_version": "0.0.5", + "pid": "0x0015", + "vid": "0x4444" + }, + "ws2812": { + "pin": "A8" + }, + "community_layouts": [ + "60_tsangan_hhkb", + "60_hhkb" + ], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [1, 13], "x": 14, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 4], "x":4, "y":4, "w":3}, + {"label": "Space", "matrix": [4, 6], "x":7, "y":4}, + {"label": "Space", "matrix": [4, 8], "x":8, "y":4, "w":3}, + {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [1, 13], "x": 14, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x":4, "y":4, "w": 7}, + {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [1, 13], "x": 14, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Bsp", "matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Ctrl", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "Alt", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Win", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x":4, "y":4, "w": 7}, + {"label": "Win", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Alt", "matrix": [4, 12], "x": 12.5, "y": 4}, + ] + } + } +} diff --git a/keyboards/4pplet/waffling60/rev_e_ansi/keymaps/default/keymap.c b/keyboards/4pplet/waffling60/rev_e_ansi/keymaps/default/keymap.c new file mode 100644 index 0000000000..706428c00e --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e_ansi/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +/* +Copyright 2023 Stefan Sundin "4pplet" + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[0] = LAYOUT_all( + KC_ESC, 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_BSLS, KC_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), +// basic function layer +[1] = LAYOUT_all( + QK_BOOT, 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_TRNS, + KC_TRNS, KC_TRNS, KC_UP, 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_LEFT, KC_DOWN, KC_RIGHT, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) } +}; +#endif diff --git a/keyboards/4pplet/waffling60/rev_e_ansi/keymaps/default/rules.mk b/keyboards/4pplet/waffling60/rev_e_ansi/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e_ansi/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/4pplet/waffling60/rev_e_ansi/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/rev_e_ansi/keymaps/via/keymap.c new file mode 100644 index 0000000000..706428c00e --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e_ansi/keymaps/via/keymap.c @@ -0,0 +1,40 @@ +/* +Copyright 2023 Stefan Sundin "4pplet" + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[0] = LAYOUT_all( + KC_ESC, 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_BSLS, KC_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), +// basic function layer +[1] = LAYOUT_all( + QK_BOOT, 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_TRNS, + KC_TRNS, KC_TRNS, KC_UP, 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_LEFT, KC_DOWN, KC_RIGHT, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) } +}; +#endif diff --git a/keyboards/4pplet/waffling60/rev_e_ansi/keymaps/via/rules.mk b/keyboards/4pplet/waffling60/rev_e_ansi/keymaps/via/rules.mk new file mode 100644 index 0000000000..f1adcab005 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e_ansi/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/4pplet/waffling60/rev_e_ansi/matrix_diagram.md b/keyboards/4pplet/waffling60/rev_e_ansi/matrix_diagram.md new file mode 100644 index 0000000000..ae47900a9b --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e_ansi/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for 4pplet Waffling60 Rev E ANSI Hotswap + +``` + ┌───────┐ + 2u Backspace │1D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │1D │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │2C │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ +│30 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ +├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴───┴───┼───┴┬────┬┴───┤ +│40 │41 │42 │46 │4B │4C │4D │ Tsangan/WKL/HHKB +└────┴────┴────┴─────────────────────────────┴────┴────┴────┘ +┌─────┬───┬─────┬───────────┬───┬───────────┬─────┬───┬─────┐ +│40 │41 │42 │44 │46 │48 │4B │4C │4D │ 7u split spacebar +└─────┴───┴─────┴───────────┴───┴───────────┴─────┴───┴─────┘ +┌─────┬───┬───────────────────────────────────────┬───┬─────┐ +│40 │41 │46 │4C │4D │ 10u Spacebar +└─────┴───┴───────────────────────────────────────┴───┴─────┘ +``` diff --git a/keyboards/4pplet/waffling60/rev_e_ansi/readme.md b/keyboards/4pplet/waffling60/rev_e_ansi/readme.md new file mode 100644 index 0000000000..1b70d5aba8 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e_ansi/readme.md @@ -0,0 +1,26 @@ +# waffling60 Rev. E ANSI + +A 60% PCB for MX switches, one hot swap and one solder-pcb version with decent layout support. Revision E adds underglow and rotary encoder support. + +More info: https://github.com/4pplet/waffling60 + +* Keyboard Maintainer: [4pplet](https://github.com/4pplet) +* Hardware Supported: [waffling60](https://github.com/4pplet/waffling60) + +Make example for this keyboard (after setting up your build environment): + + make 4pplet/waffling60/rev_e_ansi:default + +Flashing example for this keyboard: + + make 4pplet/waffling60/rev_e_ansi:default:flash + +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). + +## Bootloader + +How to enter bootloader (DFU): +* Short the reset-header (labled BL/RESET) on the back of the PCB for about 2 seconds for the keyboard to enter DFU. When in DFU, it's ready to flash the firmware. If using a APM MCU it will not automatically reset after flash. Simply short the reset-header for a very short time to just reset the PCB, alternatively unplug and repluck the USB-cable to the keyboard. + +Alternative option if the firmware is already pre-flashed: +* Unplug your keyboard, hold down the Spacebar and B at the same time, plug in your keyboard and wait a second before releasing the keys. The keyboard will enter DFU and is ready to flash the firmware. diff --git a/keyboards/4pplet/waffling60/rev_e_ansi/rules.mk b/keyboards/4pplet/waffling60/rev_e_ansi/rules.mk new file mode 100644 index 0000000000..04fe1eba2a --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e_ansi/rules.mk @@ -0,0 +1,2 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF From 5878336f665a5f4d3e1ce8445383a52020fc1210 Mon Sep 17 00:00:00 2001 From: 4pplet Date: Fri, 27 Oct 2023 08:42:11 +0200 Subject: [PATCH 316/496] [Keyboard] Add Waffling60 revision e (#21664) Co-authored-by: Duncan Sutherland Co-authored-by: Ryan --- keyboards/4pplet/waffling60/readme.md | 2 +- keyboards/4pplet/waffling60/rev_d/readme.md | 2 +- keyboards/4pplet/waffling60/rev_e/config.h | 20 + keyboards/4pplet/waffling60/rev_e/info.json | 917 ++++++++++++++++++ .../waffling60/rev_e/keymaps/6u_ansi/keymap.c | 40 + .../waffling60/rev_e/keymaps/6u_ansi/rules.mk | 1 + .../keymaps/6u_ansi_split_bs_rshift/keymap.c | 40 + .../keymaps/6u_ansi_split_bs_rshift/rules.mk | 1 + .../waffling60/rev_e/keymaps/6u_iso/keymap.c | 40 + .../waffling60/rev_e/keymaps/6u_iso/rules.mk | 1 + .../keymaps/6u_iso_split_bs_rshift/keymap.c | 40 + .../keymaps/6u_iso_split_bs_rshift/rules.mk | 1 + .../waffling60/rev_e/keymaps/default/keymap.c | 40 + .../waffling60/rev_e/keymaps/default/rules.mk | 1 + .../waffling60/rev_e/keymaps/via/keymap.c | 40 + .../waffling60/rev_e/keymaps/via/rules.mk | 2 + .../4pplet/waffling60/rev_e/matrix_diagram.md | 37 + keyboards/4pplet/waffling60/rev_e/readme.md | 20 + keyboards/4pplet/waffling60/rev_e/rev_e.c | 35 + keyboards/4pplet/waffling60/rev_e/rev_e.h | 22 + keyboards/4pplet/waffling60/rev_e/rules.mk | 2 + 21 files changed, 1302 insertions(+), 2 deletions(-) create mode 100644 keyboards/4pplet/waffling60/rev_e/config.h create mode 100644 keyboards/4pplet/waffling60/rev_e/info.json create mode 100644 keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi/keymap.c create mode 100644 keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi/rules.mk create mode 100644 keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi_split_bs_rshift/keymap.c create mode 100644 keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi_split_bs_rshift/rules.mk create mode 100644 keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso/keymap.c create mode 100644 keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso/rules.mk create mode 100644 keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso_split_bs_rshift/keymap.c create mode 100644 keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso_split_bs_rshift/rules.mk create mode 100644 keyboards/4pplet/waffling60/rev_e/keymaps/default/keymap.c create mode 100644 keyboards/4pplet/waffling60/rev_e/keymaps/default/rules.mk create mode 100644 keyboards/4pplet/waffling60/rev_e/keymaps/via/keymap.c create mode 100644 keyboards/4pplet/waffling60/rev_e/keymaps/via/rules.mk create mode 100644 keyboards/4pplet/waffling60/rev_e/matrix_diagram.md create mode 100644 keyboards/4pplet/waffling60/rev_e/readme.md create mode 100644 keyboards/4pplet/waffling60/rev_e/rev_e.c create mode 100644 keyboards/4pplet/waffling60/rev_e/rev_e.h create mode 100644 keyboards/4pplet/waffling60/rev_e/rules.mk diff --git a/keyboards/4pplet/waffling60/readme.md b/keyboards/4pplet/waffling60/readme.md index acfa174eab..442de4d369 100644 --- a/keyboards/4pplet/waffling60/readme.md +++ b/keyboards/4pplet/waffling60/readme.md @@ -12,8 +12,8 @@ Make example for this keyboard (after setting up your build environment): make 4pplet/waffling60/rev_a:default make 4pplet/waffling60/rev_b:default make 4pplet/waffling60/rev_c:default - make 4pplet/waffling60/rev_d:default + make 4pplet/waffling60/rev_e:default make 4pplet/waffling60/rev_d_ansi:default make 4pplet/waffling60/rev_d_iso:default diff --git a/keyboards/4pplet/waffling60/rev_d/readme.md b/keyboards/4pplet/waffling60/rev_d/readme.md index 3b6b9c94f2..092746325d 100644 --- a/keyboards/4pplet/waffling60/rev_d/readme.md +++ b/keyboards/4pplet/waffling60/rev_d/readme.md @@ -9,7 +9,7 @@ More info: https://geekhack.org/index.php?topic=103531.0 Make example for this keyboard (after setting up your build environment): - make 4pplet/waffling60/rev_c:default + make 4pplet/waffling60/rev_d: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). diff --git a/keyboards/4pplet/waffling60/rev_e/config.h b/keyboards/4pplet/waffling60/rev_e/config.h new file mode 100644 index 0000000000..521ddf96a1 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e/config.h @@ -0,0 +1,20 @@ +/* +Copyright 2023 Stefan Sundin "4pplet" + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once + +#define WS2812_EXTERNAL_PULLUP + diff --git a/keyboards/4pplet/waffling60/rev_e/info.json b/keyboards/4pplet/waffling60/rev_e/info.json new file mode 100644 index 0000000000..3a75cf3d06 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e/info.json @@ -0,0 +1,917 @@ +{ + "manufacturer": "4pplet", + "keyboard_name": "waffling60 Rev E", + "maintainer": "4pplet", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "A2", "pin_b": "A1", "resolution": 2} + ] + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "key_lock": true, + "mousekey": false, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["B2", "A5", "A4", "A3", "F1", "F0", "C15", "C14", "C13", "B9", "B8", "B7", "A15", "B3"], + "rows": ["B14", "A9", "B6", "B5", "B4"] + }, + "processor": "STM32F072", + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "led_count": 17 + }, + "url": "https://github.com/4pplet/waffling60", + "usb": { + "device_version": "0.0.5", + "pid": "0x0014", + "vid": "0x4444" + }, + "ws2812": { + "pin": "A8" + }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_tsangan_hhkb"], + "layouts": { + "LAYOUT_60_ansi": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [2, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [2, 13], "x": 14, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [2, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 11], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [2, 13], "x": 14, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 11], "x": 12.5, "y": 4} + ] + }, + "LAYOUT_60_iso": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [2, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [2, 13], "x": 14, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [2, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 11], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [2, 13], "x": 14, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3}, + {"label": "Ctrl", "matrix": [4, 1], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 2], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 11], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + + "LAYOUT_6u_ansi": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [2, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "Ctrl", "matrix": [4, 0], "x":0, "y":4, "w":1.5}, + {"label": "Win", "matrix": [4, 1], "x":1.5, "y":4}, + {"label": "Alt", "matrix": [4, 2], "x":2.5, "y":4, "w":1.5}, + {"label": "Space", "matrix": [4, 6], "x":4, "y":4, "w":6}, + {"label": "Alt", "matrix": [4, 9], "x":10, "y":4, "w":1.5}, + {"label": "Win", "matrix": [4, 10], "x":11.5, "y":4}, + {"label": "Menu", "matrix": [4, 11], "x":12.5, "y":4}, + {"label": "Fn", "matrix": [4, 12], "x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_6u_ansi_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [2, 13], "x": 14, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x":0, "y":4, "w":1.5}, + {"label": "Win", "matrix": [4, 1], "x":1.5, "y":4}, + {"label": "Alt", "matrix": [4, 2], "x":2.5, "y":4, "w":1.5}, + {"label": "Space", "matrix": [4, 6], "x":4, "y":4, "w":6}, + {"label": "Alt", "matrix": [4, 9], "x":10, "y":4, "w":1.5}, + {"label": "Win", "matrix": [4, 10], "x":11.5, "y":4}, + {"label": "Menu", "matrix": [4, 11], "x":12.5, "y":4}, + {"label": "Fn", "matrix": [4, 12], "x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_6u_iso": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [2, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "Ctrl", "matrix": [4, 0], "x":0, "y":4, "w":1.5}, + {"label": "Win", "matrix": [4, 1], "x":1.5, "y":4}, + {"label": "Alt", "matrix": [4, 2], "x":2.5, "y":4, "w":1.5}, + {"label": "Space", "matrix": [4, 6], "x":4, "y":4, "w":6}, + {"label": "Alt", "matrix": [4, 9], "x":10, "y":4, "w":1.5}, + {"label": "Win", "matrix": [4, 10], "x":11.5, "y":4}, + {"label": "Menu", "matrix": [4, 11], "x":12.5, "y":4}, + {"label": "Fn", "matrix": [4, 12], "x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_6u_iso_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [2, 13], "x": 14, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x":0, "y":4, "w":1.5}, + {"label": "Win", "matrix": [4, 1], "x":1.5, "y":4}, + {"label": "Alt", "matrix": [4, 2], "x":2.5, "y":4, "w":1.5}, + {"label": "Space", "matrix": [4, 6], "x":4, "y":4, "w":6}, + {"label": "Alt", "matrix": [4, 9], "x":10, "y":4, "w":1.5}, + {"label": "Win", "matrix": [4, 10], "x":11.5, "y":4}, + {"label": "Menu", "matrix": [4, 11], "x":12.5, "y":4}, + {"label": "Fn", "matrix": [4, 12], "x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_all": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "|", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Backspace", "matrix": [2, 13], "x": 14, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 4], "x": 3.75, "y": 4, "w": 2.25}, + {"label": "Space", "matrix": [4, 6], "x": 6, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 8], "x": 7.25, "y": 4, "w": 2.75}, + {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi/keymap.c b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi/keymap.c new file mode 100644 index 0000000000..1a0147f148 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi/keymap.c @@ -0,0 +1,40 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[0] = LAYOUT_6u_ansi( + KC_ESC, 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_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL), +// basic function layer +[1] = LAYOUT_6u_ansi( + QK_BOOT, 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_TRNS, KC_TRNS, KC_UP, 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_LEFT, KC_DOWN, KC_RIGHT, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) } +}; +#endif diff --git a/keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi/rules.mk b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi_split_bs_rshift/keymap.c b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi_split_bs_rshift/keymap.c new file mode 100644 index 0000000000..1b68fce40e --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi_split_bs_rshift/keymap.c @@ -0,0 +1,40 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[0] = LAYOUT_6u_ansi_split_bs_rshift( + KC_ESC, 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_BSLS, KC_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL), +// basic function layer +[1] = LAYOUT_6u_ansi_split_bs_rshift( + QK_BOOT, 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_TRNS, + KC_TRNS, KC_TRNS, KC_UP, 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_LEFT, KC_DOWN, KC_RIGHT, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) } +}; +#endif diff --git a/keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi_split_bs_rshift/rules.mk b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi_split_bs_rshift/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi_split_bs_rshift/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso/keymap.c b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso/keymap.c new file mode 100644 index 0000000000..919eec54f9 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso/keymap.c @@ -0,0 +1,40 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[0] = LAYOUT_6u_iso( + KC_ESC, 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_BSPC, + 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_ENT, + 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_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL), +// basic function layer +[1] = LAYOUT_6u_iso( + QK_BOOT, 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_TRNS, KC_TRNS, KC_UP, 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_LEFT, KC_DOWN, KC_RIGHT, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) } +}; +#endif diff --git a/keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso/rules.mk b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso_split_bs_rshift/keymap.c b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso_split_bs_rshift/keymap.c new file mode 100644 index 0000000000..4731a11d47 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso_split_bs_rshift/keymap.c @@ -0,0 +1,40 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[0] = LAYOUT_6u_iso_split_bs_rshift( + KC_ESC, 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_BSLS, KC_BSPC, + 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_ENT, + 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_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL), +// basic function layer +[1] = LAYOUT_6u_iso_split_bs_rshift( + QK_BOOT, 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_TRNS, + KC_TRNS, KC_TRNS, KC_UP, 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_LEFT, KC_DOWN, KC_RIGHT, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) } +}; +#endif diff --git a/keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso_split_bs_rshift/rules.mk b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso_split_bs_rshift/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso_split_bs_rshift/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/4pplet/waffling60/rev_e/keymaps/default/keymap.c b/keyboards/4pplet/waffling60/rev_e/keymaps/default/keymap.c new file mode 100644 index 0000000000..8b1bb6a2c4 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[0] = LAYOUT_all( + KC_ESC, 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_BSLS, KC_BSPC, + 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_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_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL), +// basic function layer +[1] = LAYOUT_all( + QK_BOOT, 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_TRNS, + KC_TRNS, KC_TRNS, KC_UP, 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_LEFT, KC_DOWN, KC_RIGHT, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) } +}; +#endif diff --git a/keyboards/4pplet/waffling60/rev_e/keymaps/default/rules.mk b/keyboards/4pplet/waffling60/rev_e/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/4pplet/waffling60/rev_e/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/rev_e/keymaps/via/keymap.c new file mode 100644 index 0000000000..8b1bb6a2c4 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e/keymaps/via/keymap.c @@ -0,0 +1,40 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[0] = LAYOUT_all( + KC_ESC, 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_BSLS, KC_BSPC, + 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_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_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL), +// basic function layer +[1] = LAYOUT_all( + QK_BOOT, 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_TRNS, + KC_TRNS, KC_TRNS, KC_UP, 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_LEFT, KC_DOWN, KC_RIGHT, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) } +}; +#endif diff --git a/keyboards/4pplet/waffling60/rev_e/keymaps/via/rules.mk b/keyboards/4pplet/waffling60/rev_e/keymaps/via/rules.mk new file mode 100644 index 0000000000..f1adcab005 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/4pplet/waffling60/rev_e/matrix_diagram.md b/keyboards/4pplet/waffling60/rev_e/matrix_diagram.md new file mode 100644 index 0000000000..fb49b758ec --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e/matrix_diagram.md @@ -0,0 +1,37 @@ +# Matrix Diagram for 4pplet Waffling60 Rev E Solder + +``` + ┌───────┐ + 2u Backspace │2D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2D │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐3D │ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │3D │ │2C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │4D │ ISO Enter +├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┼───┴┬────┬┴───┤ +│40 │41 │42 │44 │46 │48 │49 │4A │4B │4C │ +└────┴────┴────┴────────┴────┴──────────┴────┴────┴────┴────┘ +┌────────┐ ┌──────────┐ +│30 │ 2.25u LShift 2.75u RShift │3C │ +└────────┘ └──────────┘ +┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ +│40 │41 │42 │46 │49 │4A │4B │4C │ Standard +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│40 │41 │42 │46 │4A │4B │4C │ Tsangan/WKL +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ +│40 │41 │42 │46 │49 │4A │4B │4C │ 6U bottom row +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +┌─────┬───┬─────┬──────────┬──────┬─────────┬─────┬───┬─────┐ +│40 │41 │42 │44 │46 │48 │4A │4B │4C │ 3U split space +└─────┴───┴─────┴──────────┴──────┴─────────┴─────┴───┴─────┘ +┌─────┬───┬───────────────────────────────────────┬───┬─────┐ +│40 │41 │46 │4B │4C │ 10U space +└─────┴───┴───────────────────────────────────────┴───┴─────┘ + +``` diff --git a/keyboards/4pplet/waffling60/rev_e/readme.md b/keyboards/4pplet/waffling60/rev_e/readme.md new file mode 100644 index 0000000000..ee13539e5d --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e/readme.md @@ -0,0 +1,20 @@ +# waffling60 + +A 60% PCB for MX switches, one hot swap and one solder-pcb version with decent layout support. Revision E adds underglow and 6u space support. + +More info: https://github.com/4pplet/waffling60 + +* Keyboard Maintainer: [4pplet](https://github.com/4pplet) +* Hardware Supported: [waffling60](https://github.com/4pplet/waffling60) + +Make example for this keyboard (after setting up your build environment): + + make 4pplet/waffling60/rev_e: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). + +How to enter bootloader (DFU): +* Short the reset-header (labled BL/RESET) on the back of the PCB for about 2 seconds for the keyboard to enter DFU. When in DFU, it's ready to flash the firmware. If using a APM MCU it will not automatically reset after flash. Simply short the reset-header for a very short time to just reset the PCB, alternatively unplug and repluck the USB-cable to the keyboard. + +Alternative option if the firmware is already pre-flashed: +* Unplug your keyboard, hold down the Spacebar and B at the same time, plug in your keyboard and wait a second before releasing the keys. The keyboard will enter DFU and is ready to flash the firmware. diff --git a/keyboards/4pplet/waffling60/rev_e/rev_e.c b/keyboards/4pplet/waffling60/rev_e/rev_e.c new file mode 100644 index 0000000000..81941d54be --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e/rev_e.c @@ -0,0 +1,35 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include "rev_e.h" + +void keyboard_pre_init_kb(void) { + rgblight_set_effect_range(0, 16); + keyboard_pre_init_user(); +} + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if (CAPS_LOCK_ENABLE && res) { + if(led_state.caps_lock) { + rgblight_sethsv_at(CAPS_LOCK_COLOR, 16); + } + else{ + rgblight_sethsv_at(HSV_OFF, 16); + } + } + return res; +} diff --git a/keyboards/4pplet/waffling60/rev_e/rev_e.h b/keyboards/4pplet/waffling60/rev_e/rev_e.h new file mode 100644 index 0000000000..61ebac1912 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e/rev_e.h @@ -0,0 +1,22 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once + +#include "quantum.h" + +#define CAPS_LOCK_ENABLE true +#define CAPS_LOCK_COLOR HSV_GREEN diff --git a/keyboards/4pplet/waffling60/rev_e/rules.mk b/keyboards/4pplet/waffling60/rev_e/rules.mk new file mode 100644 index 0000000000..04fe1eba2a --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_e/rules.mk @@ -0,0 +1,2 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF From 052cc5df5d63786278e75fcc43f5e24688356f55 Mon Sep 17 00:00:00 2001 From: gskygithub <106651989+gskygithub@users.noreply.github.com> Date: Fri, 27 Oct 2023 15:31:54 +0800 Subject: [PATCH 317/496] Add darkproject/kd87a_bfg_edition keyboard (#18981) Co-authored-by: gksygithub <106651989+gksygithub@users.noreply.github.com> --- .../darkproject/kd87a_bfg_edition/config.h | 44 +++ .../darkproject/kd87a_bfg_edition/halconf.h | 23 ++ .../darkproject/kd87a_bfg_edition/info.json | 274 ++++++++++++++++++ .../kd87a_bfg_edition/kd87a_bfg_edition.c | 174 +++++++++++ .../kd87a_bfg_edition/kd87a_bfg_edition.h | 22 ++ .../keymaps/default/keymap.c | 69 +++++ .../kd87a_bfg_edition/keymaps/via/keymap.c | 69 +++++ .../kd87a_bfg_edition/keymaps/via/rules.mk | 1 + .../darkproject/kd87a_bfg_edition/mcuconf.h | 25 ++ .../darkproject/kd87a_bfg_edition/readme.md | 24 ++ .../darkproject/kd87a_bfg_edition/rules.mk | 1 + 11 files changed, 726 insertions(+) create mode 100644 keyboards/darkproject/kd87a_bfg_edition/config.h create mode 100644 keyboards/darkproject/kd87a_bfg_edition/halconf.h create mode 100644 keyboards/darkproject/kd87a_bfg_edition/info.json create mode 100644 keyboards/darkproject/kd87a_bfg_edition/kd87a_bfg_edition.c create mode 100644 keyboards/darkproject/kd87a_bfg_edition/kd87a_bfg_edition.h create mode 100644 keyboards/darkproject/kd87a_bfg_edition/keymaps/default/keymap.c create mode 100644 keyboards/darkproject/kd87a_bfg_edition/keymaps/via/keymap.c create mode 100644 keyboards/darkproject/kd87a_bfg_edition/keymaps/via/rules.mk create mode 100644 keyboards/darkproject/kd87a_bfg_edition/mcuconf.h create mode 100644 keyboards/darkproject/kd87a_bfg_edition/readme.md create mode 100644 keyboards/darkproject/kd87a_bfg_edition/rules.mk diff --git a/keyboards/darkproject/kd87a_bfg_edition/config.h b/keyboards/darkproject/kd87a_bfg_edition/config.h new file mode 100644 index 0000000000..335648df9a --- /dev/null +++ b/keyboards/darkproject/kd87a_bfg_edition/config.h @@ -0,0 +1,44 @@ +/* Copyright 2022 GSKY + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define RGB_DISABLE_WHEN_USB_SUSPENDED + +/* External spi flash */ +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B14 +#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) + +/* SPI Config for LED Driver */ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN A5 +#define SPI_MOSI_PIN A7 +#define SPI_MISO_PIN A6 + +#define DRIVER_1_CS A15 +#define DRIVER_2_CS B15 +#define DRIVER_1_EN C13 +#define DRIVER_2_EN C13 + +#define DRIVER_COUNT 2 +#define DRIVER_1_LED_TOTAL 68 +#define DRIVER_2_LED_TOTAL 54 +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/darkproject/kd87a_bfg_edition/halconf.h b/keyboards/darkproject/kd87a_bfg_edition/halconf.h new file mode 100644 index 0000000000..8f61d3fc64 --- /dev/null +++ b/keyboards/darkproject/kd87a_bfg_edition/halconf.h @@ -0,0 +1,23 @@ +/* Copyright (C) 2022 Westberry Technology (ChangZhou) Corp., Ltd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/darkproject/kd87a_bfg_edition/info.json b/keyboards/darkproject/kd87a_bfg_edition/info.json new file mode 100644 index 0000000000..1cf428a97f --- /dev/null +++ b/keyboards/darkproject/kd87a_bfg_edition/info.json @@ -0,0 +1,274 @@ +{ + "manufacturer": "Kd87a_bfg_edition", + "keyboard_name": "Kd87a_bfg_edition", + "maintainer": "Gsky", + "bootloader": "wb32-dfu", + "bootmagic": { + "matrix": [1, 3] + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "indicators": { + "caps_lock": "C14" + }, + "matrix_pins": { + "cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"], + "rows": ["B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", "B12"] + }, + "processor": "WB32FQ95", + "qmk": { + "tap_keycode_delay": 10 + }, + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "center_point": [87, 35], + "driver": "aw20216", + "layout": [ + { "flags": 4, "matrix": [1, 3], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [2, 6], "x": 20, "y": 0 }, + { "flags": 4, "matrix": [3, 6], "x": 30, "y": 0 }, + { "flags": 4, "matrix": [3, 1], "x": 40, "y": 0 }, + { "flags": 4, "matrix": [3, 3], "x": 50, "y": 0 }, + { "flags": 4, "matrix": [0, 7], "x": 65, "y": 0 }, + { "flags": 4, "matrix": [6, 3], "x": 75, "y": 0 }, + { "flags": 4, "matrix": [7, 1], "x": 85, "y": 0 }, + { "flags": 4, "matrix": [7, 6], "x": 95, "y": 0 }, + { "flags": 4, "matrix": [10, 6], "x": 110, "y": 0 }, + { "flags": 4, "matrix": [10, 7], "x": 120, "y": 0 }, + { "flags": 4, "matrix": [10, 3], "x": 130, "y": 0 }, + { "flags": 4, "matrix": [10, 5], "x": 140, "y": 0 }, + { "flags": 4, "matrix": [9, 7], "x": 155, "y": 0 }, + { "flags": 4, "matrix": [10, 0], "x": 165, "y": 0 }, + { "flags": 4, "matrix": [9, 6], "x": 175, "y": 0 }, + + { "flags": 4, "matrix": [1, 6], "x": 0, "y": 15 }, + { "flags": 4, "matrix": [1, 7], "x": 10, "y": 15 }, + { "flags": 4, "matrix": [2, 7], "x": 20, "y": 15 }, + { "flags": 4, "matrix": [3, 7], "x": 30, "y": 15 }, + { "flags": 4, "matrix": [4, 7], "x": 40, "y": 15 }, + { "flags": 4, "matrix": [4, 6], "x": 50, "y": 15 }, + { "flags": 4, "matrix": [5, 6], "x": 60, "y": 15 }, + { "flags": 4, "matrix": [5, 7], "x": 70, "y": 15 }, + { "flags": 4, "matrix": [6, 7], "x": 80, "y": 15 }, + { "flags": 4, "matrix": [7, 7], "x": 90, "y": 15 }, + { "flags": 4, "matrix": [8, 7], "x": 100, "y": 15 }, + { "flags": 4, "matrix": [8, 6], "x": 110, "y": 15 }, + { "flags": 4, "matrix": [6, 6], "x": 120, "y": 15 }, + { "flags": 4, "matrix": [10, 1], "x": 130, "y": 15 }, + { "flags": 4, "matrix": [11, 6], "x": 155, "y": 15 }, + { "flags": 4, "matrix": [0, 2], "x": 165, "y": 15 }, + { "flags": 4, "matrix": [1, 5], "x": 175, "y": 15 }, + + { "flags": 4, "matrix": [1, 1], "x": 0, "y": 25 }, + { "flags": 4, "matrix": [1, 0], "x": 15, "y": 25 }, + { "flags": 4, "matrix": [2, 0], "x": 25, "y": 25 }, + { "flags": 4, "matrix": [3, 0], "x": 35, "y": 25 }, + { "flags": 4, "matrix": [4, 0], "x": 45, "y": 25 }, + { "flags": 4, "matrix": [4, 1], "x": 55, "y": 25 }, + { "flags": 4, "matrix": [5, 1], "x": 65, "y": 25 }, + { "flags": 4, "matrix": [5, 0], "x": 75, "y": 25 }, + { "flags": 4, "matrix": [6, 0], "x": 85, "y": 25 }, + { "flags": 4, "matrix": [7, 0], "x": 95, "y": 25 }, + { "flags": 4, "matrix": [8, 0], "x": 105, "y": 25 }, + { "flags": 4, "matrix": [8, 1], "x": 115, "y": 25 }, + { "flags": 4, "matrix": [6, 1], "x": 125, "y": 25 }, + { "flags": 4, "matrix": [10, 2], "x": 135, "y": 25 }, + { "flags": 4, "matrix": [6, 5], "x": 155, "y": 25 }, + { "flags": 4, "matrix": [7, 5], "x": 165, "y": 25 }, + { "flags": 4, "matrix": [2, 5], "x": 175, "y": 25 }, + + { "flags": 8, "matrix": [2, 1], "x": 0, "y": 35 }, + { "flags": 4, "matrix": [1, 2], "x": 17.5, "y": 35 }, + { "flags": 4, "matrix": [2, 2], "x": 27.5, "y": 35 }, + { "flags": 4, "matrix": [3, 2], "x": 37.5, "y": 35 }, + { "flags": 4, "matrix": [4, 2], "x": 47.5, "y": 35 }, + { "flags": 4, "matrix": [4, 3], "x": 57.5, "y": 35 }, + { "flags": 4, "matrix": [5, 3], "x": 67.5, "y": 35 }, + { "flags": 4, "matrix": [5, 2], "x": 77.5, "y": 35 }, + { "flags": 4, "matrix": [6, 2], "x": 87.5, "y": 35 }, + { "flags": 4, "matrix": [7, 2], "x": 97.5, "y": 35 }, + { "flags": 4, "matrix": [8, 2], "x": 107.5, "y": 35 }, + { "flags": 4, "matrix": [8, 3], "x": 117.5, "y": 35 }, + { "flags": 4, "matrix": [10, 4], "x": 127.5, "y": 35 }, + + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 45 }, + { "flags": 4, "matrix": [1, 4], "x": 22.5, "y": 45 }, + { "flags": 4, "matrix": [2, 4], "x": 32.5, "y": 45 }, + { "flags": 4, "matrix": [3, 4], "x": 42.5, "y": 45 }, + { "flags": 4, "matrix": [4, 4], "x": 52.5, "y": 45 }, + { "flags": 4, "matrix": [4, 5], "x": 62.5, "y": 45 }, + { "flags": 4, "matrix": [5, 5], "x": 72.5, "y": 45 }, + { "flags": 4, "matrix": [5, 4], "x": 82.5, "y": 45 }, + { "flags": 4, "matrix": [6, 4], "x": 92.5, "y": 45 }, + { "flags": 4, "matrix": [7, 4], "x": 102.5, "y": 45 }, + { "flags": 4, "matrix": [8, 5], "x": 112.5, "y": 45 }, + { "flags": 4, "matrix": [9, 1], "x": 122.5, "y": 45 }, + { "flags": 4, "matrix": [3, 5], "x": 165, "y": 45 }, + + { "flags": 4, "matrix": [0, 6], "x": 0, "y": 55 }, + { "flags": 4, "matrix": [9, 0], "x": 12.5, "y": 55 }, + { "flags": 4, "matrix": [9, 3], "x": 25, "y": 55 }, + { "flags": 4, "matrix": [9, 4], "x": 37.5, "y": 55 }, + { "flags": 4, "matrix": [9, 5], "x": 100, "y": 55 }, + { "flags": 4, "matrix": [9, 2], "x": 112.5, "y": 55 }, + { "flags": 4, "matrix": [8, 4], "x": 125, "y": 55 }, + { "flags": 4, "matrix": [0, 4], "x": 137.5, "y": 55 }, + { "flags": 4, "matrix": [0, 3], "x": 155, "y": 55 }, + { "flags": 4, "matrix": [7, 3], "x": 165, "y": 55 }, + { "flags": 4, "matrix": [0, 5], "x": 175, "y": 55 } + ] + }, + "url": "", + "usb": { + "device_version": "0.0.3", + "pid": "0xE393", + "vid": "0x342D" + }, + "eeprom": { + "driver": "wear_leveling" + }, + "community_layouts": ["tkl_ansi"], + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + { "label": "ESC", "matrix": [1, 3], "x": 0, "y": 0 }, + { "label": "F1", "matrix": [2, 6], "x": 2, "y": 0 }, + { "label": "F2", "matrix": [3, 6], "x": 3, "y": 0 }, + { "label": "F3", "matrix": [3, 1], "x": 4, "y": 0 }, + { "label": "F4", "matrix": [3, 3], "x": 5, "y": 0 }, + { "label": "F5", "matrix": [0, 7], "x": 6.5, "y": 0 }, + { "label": "F6", "matrix": [6, 3], "x": 7.5, "y": 0 }, + { "label": "F7", "matrix": [7, 1], "x": 8.5, "y": 0 }, + { "label": "F8", "matrix": [7, 6], "x": 9.5, "y": 0 }, + { "label": "F9", "matrix": [10, 6], "x": 11, "y": 0 }, + { "label": "F10", "matrix": [10, 7], "x": 12, "y": 0 }, + { "label": "F11", "matrix": [10, 3], "x": 13, "y": 0 }, + { "label": "F12", "matrix": [10, 5], "x": 14, "y": 0 }, + { "label": "Printscreen", "matrix": [9, 7], "x": 15.5, "y": 0 }, + { "label": "Scroll Lock", "matrix": [10, 0], "x": 16.5, "y": 0 }, + { "label": "Pause Break", "matrix": [9, 6], "x": 17.5, "y": 0 }, + { "label": "`", "matrix": [1, 6], "x": 0, "y": 1.5 }, + { "label": "1", "matrix": [1, 7], "x": 1, "y": 1.5 }, + { "label": "2", "matrix": [2, 7], "x": 2, "y": 1.5 }, + { "label": "3", "matrix": [3, 7], "x": 3, "y": 1.5 }, + { "label": "4", "matrix": [4, 7], "x": 4, "y": 1.5 }, + { "label": "5", "matrix": [4, 6], "x": 5, "y": 1.5 }, + { "label": "6", "matrix": [5, 6], "x": 6, "y": 1.5 }, + { "label": "7", "matrix": [5, 7], "x": 7, "y": 1.5 }, + { "label": "8", "matrix": [6, 7], "x": 8, "y": 1.5 }, + { "label": "9", "matrix": [7, 7], "x": 9, "y": 1.5 }, + { "label": "0", "matrix": [8, 7], "x": 10, "y": 1.5 }, + { "label": "-", "matrix": [8, 6], "x": 11, "y": 1.5 }, + { "label": "=", "matrix": [6, 6], "x": 12, "y": 1.5 }, + { "label": "Backspace", "matrix": [10, 1], "w": 2, "x": 13, "y": 1.5 }, + { "label": "INS", "matrix": [11, 6], "x": 15.5, "y": 1.5 }, + { "label": "Home", "matrix": [0, 2], "x": 16.5, "y": 1.5 }, + { "label": "PgUp", "matrix": [1, 5], "x": 17.5, "y": 1.5 }, + { "label": "Tab", "matrix": [1, 1], "w": 1.5, "x": 0, "y": 2.5 }, + { "label": "Q", "matrix": [1, 0], "x": 1.5, "y": 2.5 }, + { "label": "W", "matrix": [2, 0], "x": 2.5, "y": 2.5 }, + { "label": "E", "matrix": [3, 0], "x": 3.5, "y": 2.5 }, + { "label": "R", "matrix": [4, 0], "x": 4.5, "y": 2.5 }, + { "label": "T", "matrix": [4, 1], "x": 5.5, "y": 2.5 }, + { "label": "Y", "matrix": [5, 1], "x": 6.5, "y": 2.5 }, + { "label": "U", "matrix": [5, 0], "x": 7.5, "y": 2.5 }, + { "label": "I", "matrix": [6, 0], "x": 8.5, "y": 2.5 }, + { "label": "O", "matrix": [7, 0], "x": 9.5, "y": 2.5 }, + { "label": "P", "matrix": [8, 0], "x": 10.5, "y": 2.5 }, + { "label": "[", "matrix": [8, 1], "x": 11.5, "y": 2.5 }, + { "label": "]", "matrix": [6, 1], "x": 12.5, "y": 2.5 }, + { "label": "\\", "matrix": [10, 2], "w": 1.5, "x": 13.5, "y": 2.5 }, + { "label": "Delete", "matrix": [6, 5], "x": 15.5, "y": 2.5 }, + { "label": "End", "matrix": [7, 5], "x": 16.5, "y": 2.5 }, + { "label": "PgDn", "matrix": [2, 5], "x": 17.5, "y": 2.5 }, + { "label": "Caps Lock", "matrix": [2, 1], "w": 1.75, "x": 0, "y": 3.5 }, + { "label": "A", "matrix": [1, 2], "x": 1.75, "y": 3.5 }, + { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 3.5 }, + { "label": "D", "matrix": [3, 2], "x": 3.75, "y": 3.5 }, + { "label": "F", "matrix": [4, 2], "x": 4.75, "y": 3.5 }, + { "label": "G", "matrix": [4, 3], "x": 5.75, "y": 3.5 }, + { "label": "H", "matrix": [5, 3], "x": 6.75, "y": 3.5 }, + { "label": "J", "matrix": [5, 2], "x": 7.75, "y": 3.5 }, + { "label": "K", "matrix": [6, 2], "x": 8.75, "y": 3.5 }, + { "label": "L", "matrix": [7, 2], "x": 9.75, "y": 3.5 }, + { "label": ";", "matrix": [8, 2], "x": 10.75, "y": 3.5 }, + { "label": "'", "matrix": [8, 3], "x": 11.75, "y": 3.5 }, + { "label": "Enter", "matrix": [10, 4], "w": 2.25, "x": 12.75, "y": 3.5 }, + { "label": "Shift", "matrix": [0, 0], "w": 2.25, "x": 0, "y": 4.5 }, + { "label": "Z", "matrix": [1, 4], "x": 2.25, "y": 4.5 }, + { "label": "X", "matrix": [2, 4], "x": 3.25, "y": 4.5 }, + { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 4.5 }, + { "label": "V", "matrix": [4, 4], "x": 5.25, "y": 4.5 }, + { "label": "B", "matrix": [4, 5], "x": 6.25, "y": 4.5 }, + { "label": "N", "matrix": [5, 5], "x": 7.25, "y": 4.5 }, + { "label": "M", "matrix": [5, 4], "x": 8.25, "y": 4.5 }, + { "label": ",", "matrix": [6, 4], "x": 9.25, "y": 4.5 }, + { "label": ".", "matrix": [7, 4], "x": 10.25, "y": 4.5 }, + { "label": "/", "matrix": [8, 5], "x": 11.25, "y": 4.5 }, + { "label": "Shift", "matrix": [9, 1], "w": 2.75, "x": 12.25, "y": 4.5 }, + { "label": "Up", "matrix": [3, 5], "x": 16.5, "y": 4.5 }, + { "label": "Ctrl", "matrix": [0, 6], "w": 1.25, "x": 0, "y": 5.5 }, + { "label": "Win", "matrix": [9, 0], "w": 1.25, "x": 1.25, "y": 5.5 }, + { "label": "Alt", "matrix": [9, 3], "w": 1.25, "x": 2.5, "y": 5.5 }, + { "label": "Space", "matrix": [9, 4], "w": 6.25, "x": 3.75, "y": 5.5 }, + { "label": "Alt", "matrix": [9, 5], "w": 1.25, "x": 10, "y": 5.5 }, + { "label": "FN", "matrix": [9, 2], "w": 1.25, "x": 11.25, "y": 5.5 }, + { "label": "APP", "matrix": [8, 4], "w": 1.25, "x": 12.5, "y": 5.5 }, + { "label": "Ctrl", "matrix": [0, 4], "w": 1.25, "x": 13.75, "y": 5.5 }, + { "label": "Left", "matrix": [0, 3], "x": 15.5, "y": 5.5 }, + { "label": "Down", "matrix": [7, 3], "x": 16.5, "y": 5.5 }, + { "label": "Right", "matrix": [0, 5], "x": 17.5, "y": 5.5 } + ] + } + } +} diff --git a/keyboards/darkproject/kd87a_bfg_edition/kd87a_bfg_edition.c b/keyboards/darkproject/kd87a_bfg_edition/kd87a_bfg_edition.c new file mode 100644 index 0000000000..0ce0799e14 --- /dev/null +++ b/keyboards/darkproject/kd87a_bfg_edition/kd87a_bfg_edition.c @@ -0,0 +1,174 @@ +/* Copyright 2022 GSKY + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "kd87a_bfg_edition.h" + +#ifdef RGB_MATRIX_ENABLE + +const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + //{0, CS1_SW4, CS2_SW4, CS3_SW4}, // 0, Esc + + {0, CS1_SW1, CS2_SW1, CS3_SW1}, // 1, Esc + {0, CS1_SW2, CS2_SW2, CS3_SW2}, // 2, F1 + {0, CS1_SW3, CS2_SW3, CS3_SW3}, // 3, F2 + {0, CS1_SW4, CS2_SW4, CS3_SW4}, // 4, F3 + {0, CS1_SW5, CS2_SW5, CS3_SW5}, // 5, F4 + {0, CS1_SW6, CS2_SW6, CS3_SW6}, // 6, F5 + {0, CS1_SW7, CS2_SW7, CS3_SW7}, // 7, F6 + {0, CS1_SW8, CS2_SW8, CS3_SW8}, // 8, F7 + {0, CS1_SW9, CS2_SW9, CS3_SW9}, // 9, F8 + {0, CS1_SW10, CS2_SW10, CS3_SW10}, // 10, F9 + {0, CS1_SW11, CS2_SW11, CS3_SW11}, // 11, F10 + {0, CS1_SW12, CS2_SW12, CS3_SW12}, // 12, F11 + {1, CS1_SW1, CS2_SW1, CS3_SW1}, // 13, F12 + {1, CS4_SW2, CS5_SW2, CS6_SW2}, // 14, Printscreen + {1, CS1_SW3, CS2_SW3, CS3_SW3}, // 15, Scroll Lock + {1, CS1_SW4, CS2_SW4, CS3_SW4}, // 16, Pause Break + + {0, CS4_SW1, CS5_SW1, CS6_SW1}, // 17, ` + {0, CS4_SW2, CS5_SW2, CS6_SW2}, // 18, 1 + {0, CS4_SW3, CS5_SW3, CS6_SW3}, // 19, 2 + {0, CS4_SW4, CS5_SW4, CS6_SW4}, // 20, 3 + {0, CS4_SW5, CS5_SW5, CS6_SW5}, // 21, 4 + {0, CS4_SW6, CS5_SW6, CS6_SW6}, // 22, 5 + {0, CS4_SW7, CS5_SW7, CS6_SW7}, // 23, 6 + {0, CS4_SW8, CS5_SW8, CS6_SW8}, // 24, 7 + {0, CS4_SW9, CS5_SW9, CS6_SW9}, // 25, 8 + {0, CS4_SW10, CS5_SW10, CS6_SW10}, // 26, 9 + {0, CS4_SW11, CS5_SW11, CS6_SW11}, // 27, 0 + {0, CS4_SW12, CS5_SW12, CS6_SW12}, // 28, - + {1, CS1_SW5, CS2_SW5, CS3_SW5}, // 29, = + {1, CS1_SW7, CS2_SW7, CS3_SW7}, // 30, Backspace + {1, CS1_SW2, CS2_SW2, CS3_SW2}, // 31, Insert + {1, CS4_SW5, CS5_SW5, CS6_SW5}, // 32, Home + {1, CS4_SW4, CS5_SW4, CS6_SW4}, // 33, Page Up + + {0, CS7_SW1, CS8_SW1, CS9_SW1}, // 34, Tab + {0, CS7_SW2, CS8_SW2, CS9_SW2}, // 35, Q + {0, CS7_SW3, CS8_SW3, CS9_SW3}, // 36, W + {0, CS7_SW4, CS8_SW4, CS9_SW4}, // 37, E + {0, CS7_SW5, CS8_SW5, CS9_SW5}, // 38, R + {0, CS7_SW6, CS8_SW6, CS9_SW6}, // 39, T + {0, CS7_SW7, CS8_SW7, CS9_SW7}, // 40, Y + {0, CS7_SW8, CS8_SW8, CS9_SW8}, // 41, U + {0, CS7_SW9, CS8_SW9, CS9_SW9}, // 42, I + {0, CS7_SW10, CS8_SW10, CS9_SW10}, // 43, O + {0, CS7_SW11, CS8_SW11, CS9_SW11}, // 44, P + {0, CS7_SW12, CS8_SW12, CS9_SW12}, // 45, [ + {1, CS1_SW8, CS2_SW8, CS3_SW8}, // 46, ] + {1, CS1_SW9, CS2_SW9, CS3_SW9}, // 47, "\\" + {1, CS4_SW3, CS5_SW3, CS6_SW3}, // 48, Delete + {1, CS4_SW6, CS5_SW6, CS6_SW6}, // 49, END + {1, CS4_SW7, CS5_SW7, CS6_SW7}, // 50, Page down + + {0, CS10_SW1, CS11_SW1, CS12_SW1}, // 51, Caps Lock + {0, CS10_SW2, CS11_SW2, CS12_SW2}, // 52, A + {0, CS10_SW3, CS11_SW3, CS12_SW3}, // 53, S + {0, CS10_SW4, CS11_SW4, CS12_SW4}, // 54, D + {0, CS10_SW5, CS11_SW5, CS12_SW5}, // 55, F + {0, CS10_SW6, CS11_SW6, CS12_SW6}, // 56, G + {0, CS10_SW7, CS11_SW7, CS12_SW7}, // 57, H + {0, CS10_SW8, CS11_SW8, CS12_SW8}, // 58, J + {0, CS10_SW9, CS11_SW9, CS12_SW9}, // 59, K + {0, CS10_SW10, CS11_SW10, CS12_SW10}, // 60, L + {0, CS10_SW11, CS11_SW11, CS12_SW11}, // 61, ; + {0, CS10_SW12, CS11_SW12, CS12_SW12}, // 62, ' + {1, CS1_SW11, CS2_SW11, CS3_SW11}, // 63, Enter + + {0, CS13_SW1, CS14_SW1, CS15_SW1}, // 64, Shift_L + {0, CS13_SW2, CS14_SW2, CS15_SW2}, // 65, Z + {0, CS13_SW3, CS14_SW3, CS15_SW3}, // 66, X + {0, CS13_SW4, CS14_SW4, CS15_SW4}, // 67, C + {0, CS13_SW5, CS14_SW5, CS15_SW5}, // 68, V + {0, CS13_SW6, CS14_SW6, CS15_SW6}, // 69, B + {0, CS13_SW7, CS14_SW7, CS15_SW7}, // 70, N + {0, CS13_SW8, CS14_SW8, CS15_SW8}, // 71, M + {0, CS13_SW9, CS14_SW9, CS15_SW9}, // 72, , + {0, CS13_SW10, CS14_SW10, CS15_SW10}, // 73, . + {0, CS13_SW11, CS14_SW11, CS15_SW11}, // 74, / + {1, CS4_SW8, CS5_SW8, CS6_SW8}, // 75, Shift_R + {1, CS4_SW9, CS5_SW9, CS6_SW9}, // 76, Up + + {0, CS16_SW1, CS17_SW1, CS18_SW1}, // 77, Ctrl_L + {0, CS16_SW2, CS17_SW2, CS18_SW2}, // 78, Win_L + {0, CS16_SW3, CS17_SW3, CS18_SW3}, // 79, Alt_L + {0, CS16_SW6, CS17_SW6, CS18_SW6}, // 80, Space + {0, CS16_SW9, CS17_SW9, CS18_SW9}, // 81, Alt_R + {0, CS16_SW10, CS17_SW10, CS18_SW10}, // 82, FN + {0, CS16_SW11, CS17_SW11, CS18_SW11}, // 83, APP + {0, CS16_SW12, CS17_SW12, CS18_SW12}, // 84, Ctrl_R + {1, CS4_SW10, CS5_SW10, CS6_SW10}, // 85, Left + {1, CS4_SW11, CS5_SW11, CS6_SW11}, // 86, Down + {1, CS10_SW5, CS11_SW5, CS12_SW5}, // 87, Right +}; + +#endif + +#ifdef EEPROM_ENABLE + +#include "spi_master.h" + +void spi_init(void) { + static bool is_initialised = false; + if (!is_initialised) { + is_initialised = true; + + // Try releasing special pins for a short time + setPinInput(SPI_SCK_PIN); + setPinInput(SPI_MOSI_PIN); + setPinInput(SPI_MISO_PIN); + + chThdSleepMilliseconds(10); + + palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_ALTERNATE(SPI_SCK_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST | PAL_WB32_CURRENT_LEVEL3); + palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_ALTERNATE(SPI_MOSI_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST); + palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_ALTERNATE(SPI_MISO_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST); + } +} + +#endif + +void keyboard_pre_init_kb(void) { + setPinOutput(C0); + setPinOutput(C15); + keyboard_pre_init_user(); +}; +void housekeeping_task_kb(void) { + writePin(C15, keymap_config.no_gui); +}; + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + switch (keycode) { + case KC_SIRI: + if (record->event.pressed) { + host_consumer_send(0xCF); + } else { + host_consumer_send(0); + } + return false; /* Skip all further processing of this key */ + default: + return true; /* Process all other keycodes normally */ + } +}; diff --git a/keyboards/darkproject/kd87a_bfg_edition/kd87a_bfg_edition.h b/keyboards/darkproject/kd87a_bfg_edition/kd87a_bfg_edition.h new file mode 100644 index 0000000000..e2c656eb0e --- /dev/null +++ b/keyboards/darkproject/kd87a_bfg_edition/kd87a_bfg_edition.h @@ -0,0 +1,22 @@ +/* Copyright 2022 GSKY + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +enum keyboard_keycodes { + KC_SIRI = QK_KB_0 +}; diff --git a/keyboards/darkproject/kd87a_bfg_edition/keymaps/default/keymap.c b/keyboards/darkproject/kd87a_bfg_edition/keymaps/default/keymap.c new file mode 100644 index 0000000000..4abb1bdc91 --- /dev/null +++ b/keyboards/darkproject/kd87a_bfg_edition/keymaps/default/keymap.c @@ -0,0 +1,69 @@ +/* Copyright 2022 GSKY + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. + +enum custom_layers { + Win, + Mac, + Winfn, + Macfn, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: Base Layer (Default Layer) + */ +[Win] = LAYOUT_tkl_ansi( + KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(Winfn),KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[Mac] = LAYOUT_tkl_ansi( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_SIRI, KC_F5, KC_F6, KC_MRWD, KC_MPLY, KC_MFFD, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(Macfn),KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[Winfn] = LAYOUT_tkl_ansi( + QK_BOOT, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, + 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, RGB_HUI, KC_TRNS, + KC_TRNS, KC_TRNS, TO(Win), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, 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, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, + KC_TRNS, GUI_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), + +[Macfn] = LAYOUT_tkl_ansi( + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 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, RGB_HUI, KC_TRNS, + KC_TRNS, KC_TRNS, TO(Win), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, 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, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), + +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + writePin(C0, layer_state_cmp(state, 1)); + return state; +}; \ No newline at end of file diff --git a/keyboards/darkproject/kd87a_bfg_edition/keymaps/via/keymap.c b/keyboards/darkproject/kd87a_bfg_edition/keymaps/via/keymap.c new file mode 100644 index 0000000000..71fbfa4ff2 --- /dev/null +++ b/keyboards/darkproject/kd87a_bfg_edition/keymaps/via/keymap.c @@ -0,0 +1,69 @@ +/* Copyright 2022 GSKY + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. + +enum custom_layers { + Win, + Mac, + Winfn, + Macfn, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: Base Layer (Default Layer) + */ +[Win] = LAYOUT_tkl_ansi( + KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(Winfn),KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[Mac] = LAYOUT_tkl_ansi( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_SIRI, KC_F5, KC_F6, KC_MRWD, KC_MPLY, KC_MFFD, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(Macfn),KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[Winfn] = LAYOUT_tkl_ansi( + QK_BOOT, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, + 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, RGB_HUI, KC_TRNS, + KC_TRNS, KC_TRNS, TO(Win), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, 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, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, + KC_TRNS, GUI_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), + +[Macfn] = LAYOUT_tkl_ansi( + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 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, RGB_HUI, KC_TRNS, + KC_TRNS, KC_TRNS, TO(Win), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, 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, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), + +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + writePin(C0, layer_state_cmp(state, 1)); + return state; +}; diff --git a/keyboards/darkproject/kd87a_bfg_edition/keymaps/via/rules.mk b/keyboards/darkproject/kd87a_bfg_edition/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/darkproject/kd87a_bfg_edition/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/darkproject/kd87a_bfg_edition/mcuconf.h b/keyboards/darkproject/kd87a_bfg_edition/mcuconf.h new file mode 100644 index 0000000000..440f78d2bc --- /dev/null +++ b/keyboards/darkproject/kd87a_bfg_edition/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright (C) 2022 Westberry Technology (ChangZhou) Corp., Ltd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE + +#undef WB32_SPI_USE_SPIM2 +#define WB32_SPI_USE_SPIM2 TRUE diff --git a/keyboards/darkproject/kd87a_bfg_edition/readme.md b/keyboards/darkproject/kd87a_bfg_edition/readme.md new file mode 100644 index 0000000000..83cc8a923d --- /dev/null +++ b/keyboards/darkproject/kd87a_bfg_edition/readme.md @@ -0,0 +1,24 @@ +# KD87A_BFG_Edition +![KD87A_BFG_Edition](https://imgur.com/uOUvWvwh.png) + +An 87 keys keyboard, Equipped with the WestBerry Q95 microcontroller. + +* Keyboard Maintainer: [GSKY](https://github.com/gksygithub) +* Hardware Supported: KD87A_BFG_Edition +* Hardware Availability: [GSKY GitHub](https://github.com/gksygithub/keyboard1) + +Make example for this keyboard (after setting up your build environment): + + make darkproject/kd87a_bfg_edition:default + +Flashing example for this keyboard: + + make darkproject/kd87a_bfg_edition:default:flash + +To reset the board into bootloader mode, do one of the following: + +* Hold the Reset switch mounted on the surface of the PCB back side after the USB cable is connected +* Hold the Escape key while connecting the USB cable (also erases persistent settings) +* Fn+ESC will reset the board to bootloader mode + +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). diff --git a/keyboards/darkproject/kd87a_bfg_edition/rules.mk b/keyboards/darkproject/kd87a_bfg_edition/rules.mk new file mode 100644 index 0000000000..002458405e --- /dev/null +++ b/keyboards/darkproject/kd87a_bfg_edition/rules.mk @@ -0,0 +1 @@ +WEAR_LEVELING_DRIVER = spi_flash From ae2703b69ba268dcc573abf5395537f6fa7ca5cf Mon Sep 17 00:00:00 2001 From: eason <98533237+EasonQian1@users.noreply.github.com> Date: Fri, 27 Oct 2023 16:09:38 +0800 Subject: [PATCH 318/496] eason/aeroboard - Modify bootloader (#22286) --- keyboards/eason/aeroboard/info.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/keyboards/eason/aeroboard/info.json b/keyboards/eason/aeroboard/info.json index 2ee29f792d..c8046d40e4 100644 --- a/keyboards/eason/aeroboard/info.json +++ b/keyboards/eason/aeroboard/info.json @@ -34,7 +34,8 @@ }, "diode_direction": "COL2ROW", "processor": "STM32F103", - "bootloader": "stm32duino", + "bootloader": "uf2boot", + "board": "STM32_F103_STM32DUINO" "layouts": { "LAYOUT_7u_space": { "layout": [ From 18ef3da8e87c8f8e5a02a44da2cab5e734b5dc04 Mon Sep 17 00:00:00 2001 From: millet <49581988+milletmilletmilletmilletmilletmilletmil@users.noreply.github.com> Date: Fri, 27 Oct 2023 17:23:02 +0900 Subject: [PATCH 319/496] [Keyboard] doksin (#22220) --- keyboards/millet/doksin/info.json | 31 +++++++++++++++++++ .../millet/doksin/keymaps/default/keymap.c | 22 +++++++++++++ .../millet/doksin/keymaps/default/readme.md | 1 + keyboards/millet/doksin/keymaps/via/keymap.c | 23 ++++++++++++++ keyboards/millet/doksin/keymaps/via/rules.mk | 1 + keyboards/millet/doksin/readme.md | 19 ++++++++++++ keyboards/millet/doksin/rules.mk | 0 7 files changed, 97 insertions(+) create mode 100644 keyboards/millet/doksin/info.json create mode 100644 keyboards/millet/doksin/keymaps/default/keymap.c create mode 100644 keyboards/millet/doksin/keymaps/default/readme.md create mode 100644 keyboards/millet/doksin/keymaps/via/keymap.c create mode 100644 keyboards/millet/doksin/keymaps/via/rules.mk create mode 100644 keyboards/millet/doksin/readme.md create mode 100644 keyboards/millet/doksin/rules.mk diff --git a/keyboards/millet/doksin/info.json b/keyboards/millet/doksin/info.json new file mode 100644 index 0000000000..7a848662cd --- /dev/null +++ b/keyboards/millet/doksin/info.json @@ -0,0 +1,31 @@ +{ + "manufacturer": "millet", + "keyboard_name": "doksin", + "maintainer": "millet", + "bootloader": "atmel-dfu", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true + }, + "matrix_pins": { + "direct": [ + ["D4"] + ] + }, + "processor": "atmega32u2", + "url": "", + "usb": { + "device_version": "0.0.1", + "pid": "0x1919", + "vid": "0xBDD1" + }, + "community_layouts": ["ortho_1x1"], + "layouts": { + "LAYOUT_ortho_1x1": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/millet/doksin/keymaps/default/keymap.c b/keyboards/millet/doksin/keymaps/default/keymap.c new file mode 100644 index 0000000000..2d9e565f3a --- /dev/null +++ b/keyboards/millet/doksin/keymaps/default/keymap.c @@ -0,0 +1,22 @@ +/* Copyright 2019 Biacco42 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_1x1( + KC_1 + ), +}; diff --git a/keyboards/millet/doksin/keymaps/default/readme.md b/keyboards/millet/doksin/keymaps/default/readme.md new file mode 100644 index 0000000000..5ddd4572c4 --- /dev/null +++ b/keyboards/millet/doksin/keymaps/default/readme.md @@ -0,0 +1 @@ +# default keymap for DOKSIN \ No newline at end of file diff --git a/keyboards/millet/doksin/keymaps/via/keymap.c b/keyboards/millet/doksin/keymaps/via/keymap.c new file mode 100644 index 0000000000..56d8f97084 --- /dev/null +++ b/keyboards/millet/doksin/keymaps/via/keymap.c @@ -0,0 +1,23 @@ +/* Copyright 2019 Biacco42 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_1x1( /* Base */ + KC_1 + ), + +}; diff --git a/keyboards/millet/doksin/keymaps/via/rules.mk b/keyboards/millet/doksin/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/millet/doksin/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/millet/doksin/readme.md b/keyboards/millet/doksin/readme.md new file mode 100644 index 0000000000..175416eb8b --- /dev/null +++ b/keyboards/millet/doksin/readme.md @@ -0,0 +1,19 @@ +# DOKСИН + +![DOKСИН](https://i.imgur.com/OaDlfwrh.jpg) + +Can be used as a keyboard... + +* Keyboard Maintainer: [millet](https://github.com/milletmilletmilletmilletmilletmilletmil) +* Hardware Supported: The DOKСИН PCB +* Hardware Availability: None + +Make example for this keyboard (after setting up your build environment): + + make millet/doksin:default + +Flashing example for this keyboard: + + make millet/doksin:default:flash + +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). diff --git a/keyboards/millet/doksin/rules.mk b/keyboards/millet/doksin/rules.mk new file mode 100644 index 0000000000..e69de29bb2 From 5856d5e13b1f59187f1a73d1bda8075cba7daaa8 Mon Sep 17 00:00:00 2001 From: Stefan Kerkmann Date: Fri, 27 Oct 2023 18:44:58 +0200 Subject: [PATCH 320/496] [Maintenance] USB HID control packet as struct (#21688) * ChibiOS: USB HID control request as dedicated struct Instead of accessing the raw USB setup packet and documenting the values as the corresponding USB HID control request fields we introduce a struct that allows direct access to the fields. This is safer and self documenting. * Rename usb_request.h to usb_types.h In the future all shared USB data types can live in this file. --- tmk_core/protocol/chibios/usb_main.c | 151 +++++++++++---------------- tmk_core/protocol/usb_types.h | 23 ++++ 2 files changed, 82 insertions(+), 92 deletions(-) create mode 100644 tmk_core/protocol/usb_types.h diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c index f2158fd009..66f9ad0318 100644 --- a/tmk_core/protocol/chibios/usb_main.c +++ b/tmk_core/protocol/chibios/usb_main.c @@ -43,6 +43,7 @@ #include "usb_device_state.h" #include "usb_descriptor.h" #include "usb_driver.h" +#include "usb_types.h" #ifdef NKRO_ENABLE # include "keycode_config.h" @@ -103,30 +104,18 @@ union { NULL, /* SETUP buffer (not a SETUP endpoint) */ #endif -/* HID specific constants */ -#define HID_GET_REPORT 0x01 -#define HID_GET_IDLE 0x02 -#define HID_GET_PROTOCOL 0x03 -#define HID_SET_REPORT 0x09 -#define HID_SET_IDLE 0x0A -#define HID_SET_PROTOCOL 0x0B - -/* - * Handles the GET_DESCRIPTOR callback - * - * Returns the proper descriptor - */ static const USBDescriptor *usb_get_descriptor_cb(USBDriver *usbp, uint8_t dtype, uint8_t dindex, uint16_t wIndex) { - (void)usbp; - static USBDescriptor desc; - uint16_t wValue = ((uint16_t)dtype << 8) | dindex; - uint16_t wLength = ((uint16_t)usbp->setup[7] << 8) | usbp->setup[6]; - desc.ud_string = NULL; - desc.ud_size = get_usb_descriptor(wValue, wIndex, wLength, (const void **const) & desc.ud_string); - if (desc.ud_string == NULL) + usb_control_request_t *setup = (usb_control_request_t *)usbp->setup; + + static USBDescriptor descriptor; + descriptor.ud_string = NULL; + descriptor.ud_size = get_usb_descriptor(setup->wValue.word, setup->wIndex, setup->wLength, (const void **const) & descriptor.ud_string); + + if (descriptor.ud_string == NULL) { return NULL; - else - return &desc; + } + + return &descriptor; } /* @@ -497,8 +486,7 @@ void usb_event_queue_task(void) { } } -/* Handles the USB driver global events - * TODO: maybe disable some things when connection is lost? */ +/* Handles the USB driver global events. */ static void usb_event_cb(USBDriver *usbp, usbevent_t event) { switch (event) { case USB_EVENT_ADDRESS: @@ -570,16 +558,6 @@ static void usb_event_cb(USBDriver *usbp, usbevent_t event) { } } -/* Function used locally in os/hal/src/usb.c for getting descriptors - * need it here for HID descriptor */ -static uint16_t get_hword(uint8_t *p) { - uint16_t hw; - - hw = (uint16_t)*p++; - hw |= (uint16_t)*p << 8U; - return hw; -} - /* * Appendix G: HID Request Support Requirements * @@ -596,7 +574,9 @@ static uint16_t get_hword(uint8_t *p) { static uint8_t set_report_buf[2] __attribute__((aligned(4))); static void set_led_transfer_cb(USBDriver *usbp) { - if (usbp->setup[6] == 2) { /* LSB(wLength) */ + usb_control_request_t *setup = (usb_control_request_t *)usbp->setup; + + if (setup->wLength == 2) { uint8_t report_id = set_report_buf[0]; if ((report_id == REPORT_ID_KEYBOARD) || (report_id == REPORT_ID_NKRO)) { keyboard_led_state = set_report_buf[1]; @@ -606,24 +586,16 @@ static void set_led_transfer_cb(USBDriver *usbp) { } } -/* Callback for SETUP request on the endpoint 0 (control) */ -static bool usb_request_hook_cb(USBDriver *usbp) { - const USBDescriptor *dp; - - /* usbp->setup fields: - * 0: bmRequestType (bitmask) - * 1: bRequest - * 2,3: (LSB,MSB) wValue - * 4,5: (LSB,MSB) wIndex - * 6,7: (LSB,MSB) wLength (number of bytes to transfer if there is a data phase) */ +static bool usb_requests_hook_cb(USBDriver *usbp) { + usb_control_request_t *setup = (usb_control_request_t *)usbp->setup; /* Handle HID class specific requests */ - if (((usbp->setup[0] & USB_RTYPE_TYPE_MASK) == USB_RTYPE_TYPE_CLASS) && ((usbp->setup[0] & USB_RTYPE_RECIPIENT_MASK) == USB_RTYPE_RECIPIENT_INTERFACE)) { - switch (usbp->setup[0] & USB_RTYPE_DIR_MASK) { + if ((setup->bmRequestType & (USB_RTYPE_TYPE_MASK | USB_RTYPE_RECIPIENT_MASK)) == (USB_RTYPE_TYPE_CLASS | USB_RTYPE_RECIPIENT_INTERFACE)) { + switch (setup->bmRequestType & USB_RTYPE_DIR_MASK) { case USB_RTYPE_DIR_DEV2HOST: - switch (usbp->setup[1]) { /* bRequest */ - case HID_GET_REPORT: - switch (usbp->setup[4]) { /* LSB(wIndex) (check MSB==0?) */ + switch (setup->bRequest) { + case HID_REQ_GetReport: + switch (setup->wIndex) { #ifndef KEYBOARD_SHARED_EP case KEYBOARD_INTERFACE: usbSetupTransfer(usbp, (uint8_t *)&keyboard_report_sent, KEYBOARD_REPORT_SIZE, NULL); @@ -639,59 +611,54 @@ static bool usb_request_hook_cb(USBDriver *usbp) { #ifdef SHARED_EP_ENABLE case SHARED_INTERFACE: # ifdef KEYBOARD_SHARED_EP - if (usbp->setup[2] == REPORT_ID_KEYBOARD) { + if (setup->wValue.lbyte == REPORT_ID_KEYBOARD) { usbSetupTransfer(usbp, (uint8_t *)&keyboard_report_sent, KEYBOARD_REPORT_SIZE, NULL); - return TRUE; - break; + return true; } # endif # ifdef MOUSE_SHARED_EP - if (usbp->setup[2] == REPORT_ID_MOUSE) { + if (setup->wValue.lbyte == REPORT_ID_MOUSE) { usbSetupTransfer(usbp, (uint8_t *)&mouse_report_sent, sizeof(mouse_report_sent), NULL); - return TRUE; - break; + return true; } # endif #endif /* SHARED_EP_ENABLE */ default: - universal_report_blank.report_id = usbp->setup[2]; - usbSetupTransfer(usbp, (uint8_t *)&universal_report_blank, usbp->setup[6], NULL); - return TRUE; - break; + universal_report_blank.report_id = setup->wValue.lbyte; + usbSetupTransfer(usbp, (uint8_t *)&universal_report_blank, setup->wLength, NULL); + return true; } break; - case HID_GET_PROTOCOL: - if ((usbp->setup[4] == KEYBOARD_INTERFACE) && (usbp->setup[5] == 0)) { /* wIndex */ - usbSetupTransfer(usbp, &keyboard_protocol, 1, NULL); - return TRUE; + case HID_REQ_GetProtocol: + if (setup->wIndex == KEYBOARD_INTERFACE) { + usbSetupTransfer(usbp, &keyboard_protocol, sizeof(uint8_t), NULL); + return true; } break; - case HID_GET_IDLE: - usbSetupTransfer(usbp, &keyboard_idle, 1, NULL); - return TRUE; - break; + case HID_REQ_GetIdle: + usbSetupTransfer(usbp, &keyboard_idle, sizeof(uint8_t), NULL); + return true; } break; case USB_RTYPE_DIR_HOST2DEV: - switch (usbp->setup[1]) { /* bRequest */ - case HID_SET_REPORT: - switch (usbp->setup[4]) { /* LSB(wIndex) (check MSB==0?) */ + switch (setup->bRequest) { + case HID_REQ_SetReport: + switch (setup->wIndex) { case KEYBOARD_INTERFACE: #if defined(SHARED_EP_ENABLE) && !defined(KEYBOARD_SHARED_EP) case SHARED_INTERFACE: #endif usbSetupTransfer(usbp, set_report_buf, sizeof(set_report_buf), set_led_transfer_cb); - return TRUE; - break; + return true; } break; - case HID_SET_PROTOCOL: - if ((usbp->setup[4] == KEYBOARD_INTERFACE) && (usbp->setup[5] == 0)) { /* wIndex */ - keyboard_protocol = ((usbp->setup[2]) != 0x00); /* LSB(wValue) */ + case HID_REQ_SetProtocol: + if (setup->wIndex == KEYBOARD_INTERFACE) { + keyboard_protocol = setup->wValue.word; #ifdef NKRO_ENABLE if (!keyboard_protocol && keyboard_idle) { #else /* NKRO_ENABLE */ @@ -704,12 +671,11 @@ static bool usb_request_hook_cb(USBDriver *usbp) { } } usbSetupTransfer(usbp, NULL, 0, NULL); - return TRUE; - break; + return true; - case HID_SET_IDLE: - keyboard_idle = usbp->setup[3]; /* MSB(wValue) */ - /* arm the timer */ + case HID_REQ_SetIdle: + keyboard_idle = setup->wValue.hbyte; + /* arm the timer */ #ifdef NKRO_ENABLE if (!keymap_config.nkro && keyboard_idle) { #else /* NKRO_ENABLE */ @@ -720,19 +686,21 @@ static bool usb_request_hook_cb(USBDriver *usbp) { osalSysUnlockFromISR(); } usbSetupTransfer(usbp, NULL, 0, NULL); - return TRUE; - break; + return true; } break; } } - /* Handle the Get_Descriptor Request for HID class (not handled by the default hook) */ - if ((usbp->setup[0] == 0x81) && (usbp->setup[1] == USB_REQ_GET_DESCRIPTOR)) { - dp = usbp->config->get_descriptor_cb(usbp, usbp->setup[3], usbp->setup[2], get_hword(&usbp->setup[4])); - if (dp == NULL) return FALSE; - usbSetupTransfer(usbp, (uint8_t *)dp->ud_string, dp->ud_size, NULL); - return TRUE; + /* Handle the Get_Descriptor Request for HID class, which is not handled by + * the ChibiOS USB driver */ + if (((setup->bmRequestType & (USB_RTYPE_DIR_MASK | USB_RTYPE_RECIPIENT_MASK)) == (USB_RTYPE_DIR_DEV2HOST | USB_RTYPE_RECIPIENT_INTERFACE)) && (setup->bRequest == USB_REQ_GET_DESCRIPTOR)) { + const USBDescriptor *descriptor = usbp->config->get_descriptor_cb(usbp, setup->wValue.lbyte, setup->wValue.hbyte, setup->wIndex); + if (descriptor == NULL) { + return false; + } + usbSetupTransfer(usbp, (uint8_t *)descriptor->ud_string, descriptor->ud_size, NULL); + return true; } for (int i = 0; i < NUM_USB_DRIVERS; i++) { @@ -742,10 +710,9 @@ static bool usb_request_hook_cb(USBDriver *usbp) { } } - return FALSE; + return false; } -/* Start-of-frame callback */ static void usb_sof_cb(USBDriver *usbp) { osalSysLockFromISR(); for (int i = 0; i < NUM_USB_DRIVERS; i++) { @@ -758,7 +725,7 @@ static void usb_sof_cb(USBDriver *usbp) { static const USBConfig usbcfg = { usb_event_cb, /* USB events callback */ usb_get_descriptor_cb, /* Device GET_DESCRIPTOR request callback */ - usb_request_hook_cb, /* Requests hook callback */ + usb_requests_hook_cb, /* Requests hook callback */ usb_sof_cb /* Start Of Frame callback */ }; diff --git a/tmk_core/protocol/usb_types.h b/tmk_core/protocol/usb_types.h new file mode 100644 index 0000000000..019775a1c4 --- /dev/null +++ b/tmk_core/protocol/usb_types.h @@ -0,0 +1,23 @@ +// Copyright 2023 Stefan Kerkmann +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "util.h" + +/** + * @brief Common USB 2.0 control request structure + */ +typedef struct { + uint8_t bmRequestType; // [0] (Bitmask) + uint8_t bRequest; // [1] + union { + struct { + uint8_t lbyte; // [2] (LSB) + uint8_t hbyte; // [3] (MSB) + }; + uint16_t word; // [2,3] (LSB,MSB) + } wValue; + uint16_t wIndex; // [4,5] (LSB,MSB) + uint16_t wLength; // [6,7] (LSB,MSB) +} PACKED usb_control_request_t; From 1a300d05bd420d05e2c6106a4c7d1380f413590f Mon Sep 17 00:00:00 2001 From: Felix Jen Date: Fri, 27 Oct 2023 13:40:18 -0500 Subject: [PATCH 321/496] [Keyboard] Add Velvet hotswap & solder (#22284) --- keyboards/lucid/velvet_hotswap/info.json | 5 +--- .../velvet_hotswap/keymaps/default/keymap.c | 11 +------ .../lucid/velvet_hotswap/keymaps/via/keymap.c | 29 +----------------- keyboards/lucid/velvet_hotswap/readme.md | 4 ++- keyboards/lucid/velvet_solder/info.json | 5 +--- .../velvet_solder/keymaps/default/keymap.c | 12 ++------ .../lucid/velvet_solder/keymaps/via/keymap.c | 30 ++----------------- keyboards/lucid/velvet_solder/readme.md | 4 ++- 8 files changed, 14 insertions(+), 86 deletions(-) diff --git a/keyboards/lucid/velvet_hotswap/info.json b/keyboards/lucid/velvet_hotswap/info.json index 2cbecb782d..4fa4ad4698 100644 --- a/keyboards/lucid/velvet_hotswap/info.json +++ b/keyboards/lucid/velvet_hotswap/info.json @@ -4,7 +4,7 @@ "url": "http://www.makerkeyboards.com", "maintainer": "Maker Keyboards", "usb": { - "device_version": "1.0.0", + "device_version": "1.0.1", "pid": "0x0008", "vid": "0x7667" }, @@ -14,9 +14,6 @@ "rows": ["B4", "B5", "B6", "C0", "E1", "E0"] }, "features": { - "bootmagic": true, - "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/lucid/velvet_hotswap/keymaps/default/keymap.c b/keyboards/lucid/velvet_hotswap/keymaps/default/keymap.c index 23e76c7854..a8f6dae2ae 100644 --- a/keyboards/lucid/velvet_hotswap/keymaps/default/keymap.c +++ b/keyboards/lucid/velvet_hotswap/keymaps/default/keymap.c @@ -1,5 +1,5 @@ /* -Copyright 2022 +Copyright 2023 This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or @@ -28,14 +28,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [_LAYER1] = LAYOUT_tkl_f13_ansi_split_bs_rshift( - 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_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_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_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 ) }; diff --git a/keyboards/lucid/velvet_hotswap/keymaps/via/keymap.c b/keyboards/lucid/velvet_hotswap/keymaps/via/keymap.c index b7257c8274..2a0247c715 100644 --- a/keyboards/lucid/velvet_hotswap/keymaps/via/keymap.c +++ b/keyboards/lucid/velvet_hotswap/keymaps/via/keymap.c @@ -1,5 +1,5 @@ /* -Copyright 2022 +Copyright 2023 This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or @@ -30,32 +30,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [_LAYER1] = LAYOUT_tkl_f13_ansi_split_bs_rshift( - 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_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_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_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 - ), - - [_LAYER2] = LAYOUT_tkl_f13_ansi_split_bs_rshift( - 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_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_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_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 - ), - - [_LAYER3] = LAYOUT_tkl_f13_ansi_split_bs_rshift( - 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_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_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_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 ) }; diff --git a/keyboards/lucid/velvet_hotswap/readme.md b/keyboards/lucid/velvet_hotswap/readme.md index 7c6c72ee38..1262386236 100644 --- a/keyboards/lucid/velvet_hotswap/readme.md +++ b/keyboards/lucid/velvet_hotswap/readme.md @@ -1,4 +1,6 @@ -# Velvet Hotswap PCB by Lucid +# Velvet Hotswap PCB by Maker Keyboards + +![Maker Keyboards Velvet Hotswap](https://imgur.com/KfTWnCgh.jpg) The following is the QMK Firmware for the Velvet Hotswap PCB by [Maker Keyboards](http://www.makerkeyboards.com). * Keyboard Maintainer: Maker Keyboards diff --git a/keyboards/lucid/velvet_solder/info.json b/keyboards/lucid/velvet_solder/info.json index 1cc8e43cdb..b94b416016 100644 --- a/keyboards/lucid/velvet_solder/info.json +++ b/keyboards/lucid/velvet_solder/info.json @@ -4,7 +4,7 @@ "url": "http://www.makerkeyboards.com", "maintainer": "Maker Keyboards", "usb": { - "device_version": "1.0.0", + "device_version": "1.0.1", "pid": "0x0007", "vid": "0x7667" }, @@ -14,9 +14,6 @@ "rows": ["B4", "B5", "B6", "C0", "E1", "E0"] }, "features": { - "bootmagic": true, - "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/lucid/velvet_solder/keymaps/default/keymap.c b/keyboards/lucid/velvet_solder/keymaps/default/keymap.c index 57fa9bf2bc..7c120c6453 100644 --- a/keyboards/lucid/velvet_solder/keymaps/default/keymap.c +++ b/keyboards/lucid/velvet_solder/keymaps/default/keymap.c @@ -1,5 +1,5 @@ /* -Copyright 2022 +Copyright 2023 This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or @@ -28,14 +28,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_ENT, KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [_LAYER1] = LAYOUT_all( - 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_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_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_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 ) + }; diff --git a/keyboards/lucid/velvet_solder/keymaps/via/keymap.c b/keyboards/lucid/velvet_solder/keymaps/via/keymap.c index 2c7cd72db8..6b75617543 100644 --- a/keyboards/lucid/velvet_solder/keymaps/via/keymap.c +++ b/keyboards/lucid/velvet_solder/keymaps/via/keymap.c @@ -1,5 +1,5 @@ /* -Copyright 2022 +Copyright 2023 This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or @@ -30,32 +30,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_ENT, KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [_LAYER1] = LAYOUT_all( - 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_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_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_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 - ), - - [_LAYER2] = LAYOUT_all( - 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_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_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_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 - ), - - [_LAYER3] = LAYOUT_all( - 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_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_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_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 ) + }; diff --git a/keyboards/lucid/velvet_solder/readme.md b/keyboards/lucid/velvet_solder/readme.md index 83fd074047..120974634b 100644 --- a/keyboards/lucid/velvet_solder/readme.md +++ b/keyboards/lucid/velvet_solder/readme.md @@ -1,4 +1,6 @@ -# Velvet Solder PCB by Lucid +# Velvet Solder PCB by Maker Keyboards + +![Velvet Solder PCB](https://imgur.com/4lMWY6Dh.jpg) The following is the QMK Firmware for the Velvet Solder PCB by [Maker Keyboards](http://www.makerkeyboards.com). * Keyboard Maintainer: Maker Keyboards From ca2d2a524fafacf8585a17f0d7d52494e24d3ce4 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 28 Oct 2023 02:09:53 +0100 Subject: [PATCH 322/496] Flag more VIAL config options in lint (#22345) --- data/mappings/info_config.hjson | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index ab9a4a0e45..76ad55f7da 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -190,4 +190,9 @@ "PRODUCT": {"info_key": "keyboard_name", "warn_duplicate": false, "value_type": "str", "deprecated": true, "replace_with": "`keyboard_name` in info.json"}, "PRODUCT_ID": {"info_key": "usb.pid", "value_type": "hex", "deprecated": true, "replace_with": "`usb.pid` in info.json"}, "VENDOR_ID": {"info_key": "usb.vid", "value_type": "hex", "deprecated": true, "replace_with": "`usb.vid` in info.json"}, + + // Items we want flagged in lint + "VIAL_KEYBOARD_UID": {"info_key": "_invalid.vial_uid", "invalid": true}, + "VIAL_UNLOCK_COMBO_COLS": {"info_key": "_invalid.vial_unlock_cols", "invalid": true}, + "VIAL_UNLOCK_COMBO_ROWS": {"info_key": "_invalid.vial_unlock_rows", "invalid": true} } From c133bd1234ffe53606ccec4314ff43f9b4583512 Mon Sep 17 00:00:00 2001 From: Brian Choromanski Date: Sat, 28 Oct 2023 01:25:30 -0400 Subject: [PATCH 323/496] Removed clueboard link as the website has been parked for some time (#22290) --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 5649ddfa09..f0e49a08e9 100644 --- a/readme.md +++ b/readme.md @@ -6,7 +6,7 @@ [![GitHub contributors](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly) [![GitHub forks](https://img.shields.io/github/forks/qmk/qmk_firmware.svg?style=social&label=Fork)](https://github.com/qmk/qmk_firmware/) -This is a keyboard firmware based on the [tmk\_keyboard firmware](https://github.com/tmk/tmk_keyboard) with some useful features for Atmel AVR and ARM controllers, and more specifically, the [OLKB product line](https://olkb.com), the [ErgoDox EZ](https://ergodox-ez.com) keyboard, and the [Clueboard product line](https://clueboard.co). +This is a keyboard firmware based on the [tmk\_keyboard firmware](https://github.com/tmk/tmk_keyboard) with some useful features for Atmel AVR and ARM controllers, and more specifically, the [OLKB product line](https://olkb.com), the [ErgoDox EZ](https://ergodox-ez.com) keyboard, and the Clueboard product line. ## Documentation From 46dedfaaa479332159fde74481f74d35215388b5 Mon Sep 17 00:00:00 2001 From: yuezp <49514776+LXF-YZP@users.noreply.github.com> Date: Sun, 29 Oct 2023 04:28:03 +0800 Subject: [PATCH 324/496] [Keyboard] add enter67 keyboard (#22346) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: “yuezp” <“yuezpchn@126.com”> --- keyboards/enter67/info.json | 106 +++++++++++++++++++++ keyboards/enter67/keymaps/default/keymap.c | 35 +++++++ keyboards/enter67/keymaps/via/keymap.c | 35 +++++++ keyboards/enter67/keymaps/via/rules.mk | 1 + keyboards/enter67/readme.md | 26 +++++ keyboards/enter67/rules.mk | 1 + 6 files changed, 204 insertions(+) create mode 100644 keyboards/enter67/info.json create mode 100644 keyboards/enter67/keymaps/default/keymap.c create mode 100644 keyboards/enter67/keymaps/via/keymap.c create mode 100644 keyboards/enter67/keymaps/via/rules.mk create mode 100644 keyboards/enter67/readme.md create mode 100644 keyboards/enter67/rules.mk diff --git a/keyboards/enter67/info.json b/keyboards/enter67/info.json new file mode 100644 index 0000000000..df1d7f6b5b --- /dev/null +++ b/keyboards/enter67/info.json @@ -0,0 +1,106 @@ +{ + "manufacturer": "KipperSun", + "keyboard_name": "enter67", + "maintainer": "KipperSun", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "B15", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["A7", "B0", "B1", "B2", "B10", "B11", "B12", "B14", "A9", "A10", "A8", "B6", "B7", "B5", "B4"], + "rows": ["A1", "A2", "A3", "A4", "A5"] + }, + "processor": "STM32F072", + "url": "", + "usb": { + "device_version": "0.0.1", + "pid": "0xAA66", + "vid": "0x4040" + }, + "community_layouts": ["65_ansi_blocker"], + "layouts": { + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"label": "ESC", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Delete", "matrix": [0, 14], "x": 15, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Home", "matrix": [1, 14], "x": 15, "y": 1}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "k90", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "PgUp", "matrix": [2, 14], "x": 15, "y": 2}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 1], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 2], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 3], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 4], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 5], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 6], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 7], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 8], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 9], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 10], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Up", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "PgDn", "matrix": [3, 14], "x": 15, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "K91", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"label": "K92", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Left", "matrix": [4, 12], "x": 13, "y": 4}, + {"label": "Down", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "Right", "matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/enter67/keymaps/default/keymap.c b/keyboards/enter67/keymaps/default/keymap.c new file mode 100644 index 0000000000..1f3d16c095 --- /dev/null +++ b/keyboards/enter67/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2022 LXF-YZP(yuezp) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0]=LAYOUT_65_ansi_blocker( + KC_ESC, 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_BSPC, KC_HOME, + 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_END, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[1]=LAYOUT_65_ansi_blocker( + 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_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_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_TRNS, KC_TRNS, KC_TRNS) + +}; diff --git a/keyboards/enter67/keymaps/via/keymap.c b/keyboards/enter67/keymaps/via/keymap.c new file mode 100644 index 0000000000..1f3d16c095 --- /dev/null +++ b/keyboards/enter67/keymaps/via/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2022 LXF-YZP(yuezp) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0]=LAYOUT_65_ansi_blocker( + KC_ESC, 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_BSPC, KC_HOME, + 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_END, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[1]=LAYOUT_65_ansi_blocker( + 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_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_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_TRNS, KC_TRNS, KC_TRNS) + +}; diff --git a/keyboards/enter67/keymaps/via/rules.mk b/keyboards/enter67/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/enter67/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/enter67/readme.md b/keyboards/enter67/readme.md new file mode 100644 index 0000000000..8a4890ff1d --- /dev/null +++ b/keyboards/enter67/readme.md @@ -0,0 +1,26 @@ +# ENTER67 - PCB + +![enter67](https://imgur.com/igF8Lurh.jpg) + +67 layout PCB, with option for stepped Caps Lock + +* Keyboard Maintainer: https://github.com/LXF-YZP +* Hardware Supported: enter67 PCB + +Make example for this keyboard (after setting up your build environment): + + make enter67:default + +Flashing example for this keyboard: + + make enter67:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/enter67/rules.mk b/keyboards/enter67/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/enter67/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file From 98530cad3ba8733d8a100e0bc5f3cf47339c4b3e Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 29 Oct 2023 01:09:02 +0100 Subject: [PATCH 325/496] Implement data driven dip switches (#22017) * Add data driven dip switches * Autogen weak matrix_mask --- data/mappings/info_config.hjson | 4 +++ data/mappings/info_rules.hjson | 1 + data/schemas/keyboard.jsonschema | 38 ++++++++++++++++++++++- docs/reference_info_json.md | 18 +++++++++++ lib/python/qmk/cli/generate/config_h.py | 8 +++++ lib/python/qmk/cli/generate/keyboard_c.py | 26 ++++++++++++++++ 6 files changed, 94 insertions(+), 1 deletion(-) diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index 66aca35e94..9b65c73084 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -45,6 +45,10 @@ // Combos "COMBO_TERM": {"info_key": "combo.term", "value_type": "int"}, + "DIP_SWITCH_MATRIX_GRID": {"info_key": "dip_switch.matrix_grid", "value_type": "array.array.int", "to_json": false}, + "DIP_SWITCH_PINS": {"info_key": "dip_switch.pins", "value_type": "array"}, + "DIP_SWITCH_PINS_RIGHT": {"info_key": "split.dip_switch.right.pins", "value_type": "array"}, + // Dynamic Keymap "DYNAMIC_KEYMAP_EEPROM_MAX_ADDR": {"info_key": "dynamic_keymap.eeprom_max_addr", "value_type": "int"}, "DYNAMIC_KEYMAP_LAYER_COUNT": {"info_key": "dynamic_keymap.layer_count", "value_type": "int"}, diff --git a/data/mappings/info_rules.hjson b/data/mappings/info_rules.hjson index 6a0f0a3030..02fc2bee9d 100644 --- a/data/mappings/info_rules.hjson +++ b/data/mappings/info_rules.hjson @@ -17,6 +17,7 @@ "BOOTLOADER": {"info_key": "bootloader", "warn_duplicate": false}, "BOOTMAGIC_ENABLE": {"info_key": "bootmagic.enabled", "value_type": "bool"}, "CAPS_WORD_ENABLE": {"info_key": "caps_word.enabled", "value_type": "bool"}, + "DIP_SWITCH_ENABLE": {"info_key": "dip_switch.enabled", "value_type": "bool"}, "DEBOUNCE_TYPE": {"info_key": "build.debounce_type"}, "EEPROM_DRIVER": {"info_key": "eeprom.driver"}, "ENCODER_ENABLE": {"info_key": "encoder.enabled", "value_type": "bool"}, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index c120099745..540ce4e42a 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -20,7 +20,15 @@ } } } - } + }, + "dip_switch_config": { + "type": "object", + "properties": { + "pins": { + "$ref": "qmk.definitions.v1#/mcu_pin_array" + } + } + }, }, "type": "object", "not": { "required": [ "vendorId", "productId" ] }, // reject via keys... @@ -245,6 +253,25 @@ "type": "array", "items": {"$ref": "qmk.definitions.v1#/filename"} }, + "dip_switch": { + "$ref": "#/definitions/dip_switch_config", + "properties": { + "enabled": {"type": "boolean"}, + "matrix_grid": { + "type": "array", + "minItems": 1, + "items": { + "type": "array", + "minItems": 2, + "maxItems": 2, + "items": { + "type": "integer", + "minimum": 0 + } + } + } + } + }, "eeprom": { "properties": { "driver": {"type": "string"}, @@ -636,6 +663,15 @@ } } }, + "dip_switch": { + "type": "object", + "additionalProperties": false, + "properties": { + "right": { + "$ref": "#/definitions/dip_switch_config" + } + } + }, "encoder": { "type": "object", "additionalProperties": false, diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 6b60bb20c4..1d9429b54d 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -201,6 +201,20 @@ Configures the [Combo](feature_combo.md) feature. * The amount of time to recognize a combo in milliseconds. * Default: `50` (50 ms) +## DIP Switches :id=dip-switch + +Configures the [DIP Switches](feature_dip_switch.md) feature. + +* `dip_switch` + * `enabled` + * Enable the DIP Switches feature. + * Default: `false` + * `pins` + * A list of GPIO pins connected to the MCU. + * `matrix_grid` + * A list of matrix locations in the key matrix. + * Example: `[ [0,6], [1,6], [2,6] ]` + ## EEPROM :id=eeprom Configures the [EEPROM](eeprom_driver.md) driver. @@ -622,6 +636,10 @@ Configures the [Split Keyboard](feature_split_keyboard.md) feature. * `bootmagic` * `matrix` * See [Bootmagic](#bootmagic) config. + * `dip_switch` + * `right` + * `pins` + * See [DIP Switches](#dip-switch) config. * `enabled` * Enable the Split Keyboard feature. * Default: `false` diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py index 828785ea48..b261d6f851 100755 --- a/lib/python/qmk/cli/generate/config_h.py +++ b/lib/python/qmk/cli/generate/config_h.py @@ -72,6 +72,12 @@ def generate_matrix_size(kb_info_json, config_h_lines): config_h_lines.append(generate_define('MATRIX_ROWS', kb_info_json['matrix_size']['rows'])) +def generate_matrix_masked(kb_info_json, config_h_lines): + """"Enable matrix mask if required""" + if 'matrix_grid' in kb_info_json.get('dip_switch', {}): + config_h_lines.append(generate_define('MATRIX_MASKED')) + + def generate_config_items(kb_info_json, config_h_lines): """Iterate through the info_config map to generate basic config values. """ @@ -196,6 +202,8 @@ def generate_config_h(cli): generate_matrix_size(kb_info_json, config_h_lines) + generate_matrix_masked(kb_info_json, config_h_lines) + if 'matrix_pins' in kb_info_json: config_h_lines.append(matrix_pins(kb_info_json['matrix_pins'])) diff --git a/lib/python/qmk/cli/generate/keyboard_c.py b/lib/python/qmk/cli/generate/keyboard_c.py index 9004b41abb..325624c9cc 100755 --- a/lib/python/qmk/cli/generate/keyboard_c.py +++ b/lib/python/qmk/cli/generate/keyboard_c.py @@ -57,6 +57,31 @@ def _gen_led_config(info_data): return lines +def _gen_matrix_mask(info_data): + """Convert info.json content to matrix_mask + """ + cols = info_data['matrix_size']['cols'] + rows = info_data['matrix_size']['rows'] + + # Default mask to everything enabled + mask = [['1'] * cols for i in range(rows)] + + # Automatically mask out dip_switch.matrix_grid locations + matrix_grid = info_data.get('dip_switch', {}).get('matrix_grid', []) + for row, col in matrix_grid: + mask[row][col] = '0' + + lines = [] + lines.append('#ifdef MATRIX_MASKED') + lines.append('__attribute__((weak)) const matrix_row_t matrix_mask[] = {') + for i in range(rows): + lines.append(f' 0b{"".join(reversed(mask[i]))},') + lines.append('};') + lines.append('#endif') + + return 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', arg_only=True, type=keyboard_folder, completer=keyboard_completer, required=True, help='Keyboard to generate keyboard.c for.') @@ -70,6 +95,7 @@ def generate_keyboard_c(cli): keyboard_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#include QMK_KEYBOARD_H', ''] keyboard_h_lines.extend(_gen_led_config(kb_info_json)) + keyboard_h_lines.extend(_gen_matrix_mask(kb_info_json)) # Show the results dump_lines(cli.args.output, keyboard_h_lines, cli.args.quiet) From c667da019078442ff0fd9a4ca33ad09b627672f2 Mon Sep 17 00:00:00 2001 From: David Hoelscher Date: Sun, 29 Oct 2023 12:35:38 -0500 Subject: [PATCH 326/496] QP getters correction (#22357) --- quantum/painter/qp.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/quantum/painter/qp.c b/quantum/painter/qp.c index dc69789484..3759866509 100644 --- a/quantum/painter/qp.c +++ b/quantum/painter/qp.c @@ -148,10 +148,11 @@ uint16_t qp_get_width(painter_device_t device) { case QP_ROTATION_0: case QP_ROTATION_180: width = driver->panel_width; - + break; case QP_ROTATION_90: case QP_ROTATION_270: width = driver->panel_height; + break; } qp_dprintf("qp_get_width: ok\n"); @@ -173,10 +174,11 @@ uint16_t qp_get_height(painter_device_t device) { case QP_ROTATION_0: case QP_ROTATION_180: height = driver->panel_height; - + break; case QP_ROTATION_90: case QP_ROTATION_270: height = driver->panel_width; + break; } qp_dprintf("qp_get_height: ok\n"); From 17ccf3521bc9623e29f1f6febd167c3886f37408 Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 30 Oct 2023 08:39:26 +1000 Subject: [PATCH 327/496] Add `_LED_COUNT` defines to LED drivers (#22309) --- drivers/led/aw20216s.h | 4 ++++ drivers/led/issi/is31fl3218-simple.h | 4 ++++ drivers/led/issi/is31fl3218.h | 4 ++++ drivers/led/issi/is31fl3731-simple.h | 4 ++++ drivers/led/issi/is31fl3731.h | 4 ++++ drivers/led/issi/is31fl3733-simple.h | 4 ++++ drivers/led/issi/is31fl3733.h | 4 ++++ drivers/led/issi/is31fl3736-simple.h | 4 ++++ drivers/led/issi/is31fl3736.h | 4 ++++ drivers/led/issi/is31fl3737-simple.h | 4 ++++ drivers/led/issi/is31fl3737.h | 4 ++++ drivers/led/issi/is31fl3741-simple.h | 4 ++++ drivers/led/issi/is31fl3741.h | 4 ++++ drivers/led/snled27351-simple.h | 4 ++++ drivers/led/snled27351.h | 4 ++++ 15 files changed, 60 insertions(+) diff --git a/drivers/led/aw20216s.h b/drivers/led/aw20216s.h index 8abc2ee4af..4060126446 100644 --- a/drivers/led/aw20216s.h +++ b/drivers/led/aw20216s.h @@ -54,6 +54,10 @@ #define g_aw_leds g_aw20216s_leds // ======== +#if defined(RGB_MATRIX_AW20216S) +# define AW20216S_LED_COUNT RGB_MATRIX_LED_COUNT +#endif + typedef struct aw20216s_led_t { uint8_t driver : 2; uint8_t r; diff --git a/drivers/led/issi/is31fl3218-simple.h b/drivers/led/issi/is31fl3218-simple.h index 2260361ec6..34a4886957 100644 --- a/drivers/led/issi/is31fl3218-simple.h +++ b/drivers/led/issi/is31fl3218-simple.h @@ -22,6 +22,10 @@ #define IS31FL3218_I2C_ADDRESS 0x54 +#if defined(LED_MATRIX_IS31FL3218) +# define IS31FL3218_LED_COUNT LED_MATRIX_LED_COUNT +#endif + typedef struct is31fl3218_led_t { uint8_t v; } __attribute__((packed)) is31fl3218_led_t; diff --git a/drivers/led/issi/is31fl3218.h b/drivers/led/issi/is31fl3218.h index a5ac44fd1d..844e11f490 100644 --- a/drivers/led/issi/is31fl3218.h +++ b/drivers/led/issi/is31fl3218.h @@ -22,6 +22,10 @@ #define IS31FL3218_I2C_ADDRESS 0x54 +#if defined(RGB_MATRIX_IS31FL3218) +# define IS31FL3218_LED_COUNT RGB_MATRIX_LED_COUNT +#endif + typedef struct is31fl3218_led_t { uint8_t r; uint8_t g; diff --git a/drivers/led/issi/is31fl3731-simple.h b/drivers/led/issi/is31fl3731-simple.h index 69d38e74da..2ab253717c 100644 --- a/drivers/led/issi/is31fl3731-simple.h +++ b/drivers/led/issi/is31fl3731-simple.h @@ -57,6 +57,10 @@ #define IS31FL3731_I2C_ADDRESS_SDA 0x76 #define IS31FL3731_I2C_ADDRESS_VCC 0x77 +#if defined(LED_MATRIX_IS31FL3731) +# define IS31FL3731_LED_COUNT LED_MATRIX_LED_COUNT +#endif + typedef struct is31fl3731_led_t { uint8_t driver : 2; uint8_t v; diff --git a/drivers/led/issi/is31fl3731.h b/drivers/led/issi/is31fl3731.h index cab6d40c5a..756c5b473a 100644 --- a/drivers/led/issi/is31fl3731.h +++ b/drivers/led/issi/is31fl3731.h @@ -56,6 +56,10 @@ #define IS31FL3731_I2C_ADDRESS_SDA 0x76 #define IS31FL3731_I2C_ADDRESS_VCC 0x77 +#if defined(RGB_MATRIX_IS31FL3731) +# define IS31FL3731_LED_COUNT RGB_MATRIX_LED_COUNT +#endif + typedef struct is31fl3731_led_t { uint8_t driver : 2; uint8_t r; diff --git a/drivers/led/issi/is31fl3733-simple.h b/drivers/led/issi/is31fl3733-simple.h index b8a4530260..e9f68e3506 100644 --- a/drivers/led/issi/is31fl3733-simple.h +++ b/drivers/led/issi/is31fl3733-simple.h @@ -76,6 +76,10 @@ #define IS31FL3733_I2C_ADDRESS_VCC_SDA 0x5E #define IS31FL3733_I2C_ADDRESS_VCC_VCC 0x5F +#if defined(LED_MATRIX_IS31FL3733) +# define IS31FL3733_LED_COUNT LED_MATRIX_LED_COUNT +#endif + typedef struct is31fl3733_led_t { uint8_t driver : 2; uint8_t v; diff --git a/drivers/led/issi/is31fl3733.h b/drivers/led/issi/is31fl3733.h index 2a02576979..bda6f1908f 100644 --- a/drivers/led/issi/is31fl3733.h +++ b/drivers/led/issi/is31fl3733.h @@ -99,6 +99,10 @@ #define IS31FL3733_I2C_ADDRESS_VCC_SDA 0x5E #define IS31FL3733_I2C_ADDRESS_VCC_VCC 0x5F +#if defined(RGB_MATRIX_IS31FL3733) +# define IS31FL3733_LED_COUNT RGB_MATRIX_LED_COUNT +#endif + typedef struct is31fl3733_led_t { uint8_t driver : 2; uint8_t r; diff --git a/drivers/led/issi/is31fl3736-simple.h b/drivers/led/issi/is31fl3736-simple.h index 4f9dee47b0..fe3cec9564 100644 --- a/drivers/led/issi/is31fl3736-simple.h +++ b/drivers/led/issi/is31fl3736-simple.h @@ -71,6 +71,10 @@ #define IS31FL3736_I2C_ADDRESS_VCC_SDA 0x5E #define IS31FL3736_I2C_ADDRESS_VCC_VCC 0x5F +#if defined(LED_MATRIX_IS31FL3736) +# define IS31FL3736_LED_COUNT LED_MATRIX_LED_COUNT +#endif + typedef struct is31fl3736_led_t { uint8_t driver : 2; uint8_t v; diff --git a/drivers/led/issi/is31fl3736.h b/drivers/led/issi/is31fl3736.h index cd3505b0b6..728021ae29 100644 --- a/drivers/led/issi/is31fl3736.h +++ b/drivers/led/issi/is31fl3736.h @@ -83,6 +83,10 @@ #define IS31FL3736_I2C_ADDRESS_VCC_SDA 0x5E #define IS31FL3736_I2C_ADDRESS_VCC_VCC 0x5F +#if defined(RGB_MATRIX_IS31FL3736) +# define IS31FL3736_LED_COUNT RGB_MATRIX_LED_COUNT +#endif + typedef struct is31fl3736_led_t { uint8_t driver : 2; uint8_t r; diff --git a/drivers/led/issi/is31fl3737-simple.h b/drivers/led/issi/is31fl3737-simple.h index 106127e737..b177d4fb0a 100644 --- a/drivers/led/issi/is31fl3737-simple.h +++ b/drivers/led/issi/is31fl3737-simple.h @@ -61,6 +61,10 @@ #define IS31FL3737_I2C_ADDRESS_SDA 0x5A #define IS31FL3737_I2C_ADDRESS_VCC 0x5F +#if defined(LED_MATRIX_IS31FL3737) +# define IS31FL3737_LED_COUNT LED_MATRIX_LED_COUNT +#endif + typedef struct is31fl3737_led_t { uint8_t driver : 2; uint8_t v; diff --git a/drivers/led/issi/is31fl3737.h b/drivers/led/issi/is31fl3737.h index bb4afbcccb..12f84e3bfe 100644 --- a/drivers/led/issi/is31fl3737.h +++ b/drivers/led/issi/is31fl3737.h @@ -76,6 +76,10 @@ #define IS31FL3737_I2C_ADDRESS_SDA 0x5A #define IS31FL3737_I2C_ADDRESS_VCC 0x5F +#if defined(RGB_MATRIX_IS31FL3737) +# define IS31FL3737_LED_COUNT RGB_MATRIX_LED_COUNT +#endif + typedef struct is31fl3737_led_t { uint8_t driver : 2; uint8_t r; diff --git a/drivers/led/issi/is31fl3741-simple.h b/drivers/led/issi/is31fl3741-simple.h index 29e6dc261d..8ecc330298 100644 --- a/drivers/led/issi/is31fl3741-simple.h +++ b/drivers/led/issi/is31fl3741-simple.h @@ -61,6 +61,10 @@ #define IS31FL3741_I2C_ADDRESS_SDA 0x32 #define IS31FL3741_I2C_ADDRESS_VCC 0x33 +#if defined(LED_MATRIX_IS31FL3741) +# define IS31FL3741_LED_COUNT LED_MATRIX_LED_COUNT +#endif + typedef struct is31fl3741_led_t { uint32_t driver : 2; uint32_t v : 10; diff --git a/drivers/led/issi/is31fl3741.h b/drivers/led/issi/is31fl3741.h index aedbe89b93..13e132efa0 100644 --- a/drivers/led/issi/is31fl3741.h +++ b/drivers/led/issi/is31fl3741.h @@ -76,6 +76,10 @@ #define IS31FL3741_I2C_ADDRESS_SDA 0x32 #define IS31FL3741_I2C_ADDRESS_VCC 0x33 +#if defined(RGB_MATRIX_IS31FL3741) +# define IS31FL3741_LED_COUNT RGB_MATRIX_LED_COUNT +#endif + typedef struct is31fl3741_led_t { uint32_t driver : 2; uint32_t r : 10; diff --git a/drivers/led/snled27351-simple.h b/drivers/led/snled27351-simple.h index 999b70f891..e8238071a5 100644 --- a/drivers/led/snled27351-simple.h +++ b/drivers/led/snled27351-simple.h @@ -59,6 +59,10 @@ #define SNLED27351_I2C_ADDRESS_SDA 0x76 #define SNLED27351_I2C_ADDRESS_VDDIO 0x77 +#if defined(LED_MATRIX_SNLED27351) +# define SNLED27351_LED_COUNT LED_MATRIX_LED_COUNT +#endif + typedef struct snled27351_led_t { uint8_t driver : 2; uint8_t v; diff --git a/drivers/led/snled27351.h b/drivers/led/snled27351.h index 59d56855f3..e92ca71799 100644 --- a/drivers/led/snled27351.h +++ b/drivers/led/snled27351.h @@ -71,6 +71,10 @@ #define SNLED27351_I2C_ADDRESS_SDA 0x76 #define SNLED27351_I2C_ADDRESS_VDDIO 0x77 +#if defined(RGB_MATRIX_SNLED27351) +# define SNLED27351_LED_COUNT RGB_MATRIX_LED_COUNT +#endif + typedef struct snled27351_led_t { uint8_t driver : 2; uint8_t r; From 4313b66edd005af7028931834eee272fc58a448b Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 30 Oct 2023 09:28:38 +1000 Subject: [PATCH 328/496] whitefox: remove pointless file (#22366) --- .../input_club/whitefox/board_is31fl3731c.h | 106 ------------------ 1 file changed, 106 deletions(-) delete mode 100644 keyboards/input_club/whitefox/board_is31fl3731c.h diff --git a/keyboards/input_club/whitefox/board_is31fl3731c.h b/keyboards/input_club/whitefox/board_is31fl3731c.h deleted file mode 100644 index 238d30cb44..0000000000 --- a/keyboards/input_club/whitefox/board_is31fl3731c.h +++ /dev/null @@ -1,106 +0,0 @@ -/* -Copyright 2016 Fred Sundvik - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef _GDISP_LLD_BOARD_H -#define _GDISP_LLD_BOARD_H - -static const I2CConfig i2ccfg = { - 400000 // clock speed (Hz); 400kHz max for IS31 -}; - -static const uint8_t led_mask[] = { - 0xFF, 0x00, /* C1-1 -> C1-16 */ - 0xFF, 0x00, /* C2-1 -> C2-16 */ - 0xFF, 0x00, /* C3-1 -> C3-16 */ - 0xFF, 0x00, /* C4-1 -> C4-16 */ - 0xFF, 0x00, /* C5-1 -> C5-16 */ - 0xFF, 0x00, /* C6-1 -> C6-16 */ - 0xFF, 0x00, /* C7-1 -> C7-16 */ - 0xFF, 0x00, /* C8-1 -> C8-16 */ - 0xFF, 0x00, /* C9-1 -> C9-16 */ -}; - -// The address of the LED -#define LA(c, r) (c + r * 16 ) -// Need to be an address that is not mapped, but inside the range of the controller matrix -#define NA LA(8, 8) - -// The numbers in the comments are the led numbers DXX on the PCB -// The mapping is taken from the schematic of left hand side -static const uint8_t led_mapping[GDISP_SCREEN_HEIGHT][GDISP_SCREEN_WIDTH] = { -// 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 - { LA(0, 0), LA(1, 0), LA(2, 0), LA(3, 0), LA(4, 0), LA(5, 0), LA(6, 0), LA(7, 0), LA(0, 1), LA(1, 1), LA(2, 1), LA(3, 1), LA(4, 1), LA(5, 1), LA(6, 1), LA(7, 1)}, -// 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - { LA(0, 2), LA(1, 2), LA(2, 2), LA(3, 2), LA(4, 2), LA(5, 2), LA(6, 2), LA(7, 2), LA(0, 3), LA(1, 3), NA, LA(2, 3), LA(3, 3), LA(4, 3), LA(5, 3), LA(6, 3)}, -// 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 - { LA(7, 3), LA(0, 4), LA(1, 4), LA(2, 4), LA(3, 4), LA(4, 4), LA(5, 4), LA(6, 4), LA(7, 4), LA(0, 5), NA, LA(1, 5), LA(2, 5), LA(3, 5), LA(4, 5), LA(5, 5)}, -// 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 - { LA(6, 5), LA(7, 5), LA(0, 6), LA(1, 6), LA(2, 6), LA(3, 6), LA(4, 6), LA(5, 6), LA(6, 6), LA(7, 6), NA, LA(0, 7), LA(1, 7), LA(2, 7), LA(3, 7), LA(4, 7)}, -// 62 63 64 65 66 67 68 69 70 71 - { LA(5, 7), LA(6, 7), LA(7, 7), NA, NA, NA, LA(0, 8), NA, NA, NA, LA(1, 8), LA(2, 8), LA(3, 8), LA(4, 8), LA(5, 8), LA(6, 8)}, -}; - - -#define IS31_ADDR_DEFAULT 0x74 // AD connected to GND -#define IS31_TIMEOUT 5000 - -static GFXINLINE void init_board(GDisplay *g) { - (void) g; - /* I2C pins */ - palSetPadMode(GPIOB, 0, PAL_MODE_ALTERNATIVE_2); // PTB0/I2C0/SCL - palSetPadMode(GPIOB, 1, PAL_MODE_ALTERNATIVE_2); // PTB1/I2C0/SDA - palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL); - palClearPad(GPIOB, 16); - /* start I2C */ - i2cStart(&I2CD1, &i2ccfg); - // try high drive (from kiibohd) - I2CD1.i2c->C2 |= I2Cx_C2_HDRS; - // try glitch fixing (from kiibohd) - I2CD1.i2c->FLT = 4; -} - -static GFXINLINE void post_init_board(GDisplay *g) { - (void) g; -} - -static GFXINLINE const uint8_t* get_led_mask(GDisplay* g) { - (void) g; - return led_mask; -} - -static GFXINLINE uint8_t get_led_address(GDisplay* g, uint16_t x, uint16_t y) -{ - (void) g; - return led_mapping[y][x]; -} - -static GFXINLINE void set_hardware_shutdown(GDisplay* g, bool shutdown) { - (void) g; - if(!shutdown) { - palSetPad(GPIOB, 16); - } - else { - palClearPad(GPIOB, 16); - } -} - -static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { - (void) g; - i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, data, length, 0, 0, TIME_US2I(IS31_TIMEOUT)); -} - -#endif /* _GDISP_LLD_BOARD_H */ From 559450a099539773e65adf4ab8c2e485344b7885 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 29 Oct 2023 23:41:44 +0000 Subject: [PATCH 329/496] Fix 'to_c' for config.h mappings (#22364) --- lib/python/qmk/cli/generate/config_h.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py index b261d6f851..c4260fde54 100755 --- a/lib/python/qmk/cli/generate/config_h.py +++ b/lib/python/qmk/cli/generate/config_h.py @@ -86,9 +86,9 @@ def generate_config_items(kb_info_json, config_h_lines): for config_key, info_dict in info_config_map.items(): info_key = info_dict['info_key'] key_type = info_dict.get('value_type', 'raw') - to_config = info_dict.get('to_config', True) + to_c = info_dict.get('to_c', True) - if not to_config: + if not to_c: continue try: From 17c3182b1cc98adb5385c7c5223c775fce4d4dd9 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 30 Oct 2023 00:49:56 +0000 Subject: [PATCH 330/496] Remove use of broken split.main (#22363) --- data/schemas/keyboard.jsonschema | 9 ++-- keyboards/controllerworks/mini42/info.json | 1 - keyboards/hillside/48/0_1/info.json | 1 - keyboards/splitkb/aurora/corne/rev1/info.json | 1 - keyboards/splitkb/aurora/helix/rev1/info.json | 1 - .../splitkb/aurora/lily58/rev1/info.json | 1 - .../splitkb/aurora/sofle_v2/rev1/info.json | 1 - keyboards/splitkb/aurora/sweep/rev1/info.json | 1 - keyboards/splitkb/kyria/rev3/info.json | 1 - keyboards/tzarc/djinn/info.json | 1 - lib/python/qmk/cli/generate/config_h.py | 18 ------- lib/python/qmk/info.py | 52 ------------------- 12 files changed, 5 insertions(+), 83 deletions(-) diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 540ce4e42a..20216a7f86 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -681,10 +681,6 @@ } } }, - "main": { - "type": "string", - "enum": ["eeprom", "left", "matrix_grid", "pin", "right"] - }, "soft_serial_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, "soft_serial_speed": { "type": "integer", @@ -735,6 +731,11 @@ "polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"} } + }, + "main": { + "type": "string", + "enum": ["eeprom", "left", "matrix_grid", "pin", "right"], + "$comment": "Deprecated: use config.h options for now" } } }, diff --git a/keyboards/controllerworks/mini42/info.json b/keyboards/controllerworks/mini42/info.json index c8c436c08f..5d1d56db1a 100644 --- a/keyboards/controllerworks/mini42/info.json +++ b/keyboards/controllerworks/mini42/info.json @@ -29,7 +29,6 @@ }, "split": { "enabled": true, - "main": "left", "matrix_pins": { "right": { "direct": [ diff --git a/keyboards/hillside/48/0_1/info.json b/keyboards/hillside/48/0_1/info.json index 2159d1ca68..b6007f1f72 100644 --- a/keyboards/hillside/48/0_1/info.json +++ b/keyboards/hillside/48/0_1/info.json @@ -23,7 +23,6 @@ }, "split": { "soft_serial_pin": "D2", - "main": "left", "encoder": { "right": { "rotary": [ diff --git a/keyboards/splitkb/aurora/corne/rev1/info.json b/keyboards/splitkb/aurora/corne/rev1/info.json index 7d82577b00..13f0034d55 100644 --- a/keyboards/splitkb/aurora/corne/rev1/info.json +++ b/keyboards/splitkb/aurora/corne/rev1/info.json @@ -83,7 +83,6 @@ "matrix": [4, 5] }, "soft_serial_pin": "D2", - "main": "pin", "matrix_pins": { "right": { "rows": ["B1", "B3", "B2", "B6"], diff --git a/keyboards/splitkb/aurora/helix/rev1/info.json b/keyboards/splitkb/aurora/helix/rev1/info.json index 7c6acf0070..1fee04011a 100644 --- a/keyboards/splitkb/aurora/helix/rev1/info.json +++ b/keyboards/splitkb/aurora/helix/rev1/info.json @@ -118,7 +118,6 @@ ] } }, - "main": "matrix_grid", "matrix_pins": { "right": { "cols": ["D4", "C6", "D7", "E6", "B4", "B5", "B6"], diff --git a/keyboards/splitkb/aurora/lily58/rev1/info.json b/keyboards/splitkb/aurora/lily58/rev1/info.json index 2d251b96b2..9a6ad58a14 100644 --- a/keyboards/splitkb/aurora/lily58/rev1/info.json +++ b/keyboards/splitkb/aurora/lily58/rev1/info.json @@ -94,7 +94,6 @@ "matrix": [5, 0] }, "soft_serial_pin": "D2", - "main": "matrix_grid", "matrix_pins": { "right": { "rows": ["F4", "D4", "B3", "B2", "B6"], diff --git a/keyboards/splitkb/aurora/sofle_v2/rev1/info.json b/keyboards/splitkb/aurora/sofle_v2/rev1/info.json index b9b8b9da6b..266ea72148 100644 --- a/keyboards/splitkb/aurora/sofle_v2/rev1/info.json +++ b/keyboards/splitkb/aurora/sofle_v2/rev1/info.json @@ -112,7 +112,6 @@ ] } }, - "main": "matrix_grid", "matrix_pins": { "right": { "cols": ["D7", "E6", "B4", "B5", "D4", "C6"], diff --git a/keyboards/splitkb/aurora/sweep/rev1/info.json b/keyboards/splitkb/aurora/sweep/rev1/info.json index 7d7fec921f..b5588e2a3c 100644 --- a/keyboards/splitkb/aurora/sweep/rev1/info.json +++ b/keyboards/splitkb/aurora/sweep/rev1/info.json @@ -79,7 +79,6 @@ "matrix": [4, 4] }, "soft_serial_pin": "D2", - "main": "pin", "matrix_pins": { "right": { "rows": ["B1", "F7", "F6", "B3"], diff --git a/keyboards/splitkb/kyria/rev3/info.json b/keyboards/splitkb/kyria/rev3/info.json index 29bea95323..81b539c507 100644 --- a/keyboards/splitkb/kyria/rev3/info.json +++ b/keyboards/splitkb/kyria/rev3/info.json @@ -98,7 +98,6 @@ "matrix": [4, 6] }, "soft_serial_pin": "D2", - "main": "matrix_grid", "matrix_pins": { "right": { "rows": ["F6", "F7", "B1", "B3"], diff --git a/keyboards/tzarc/djinn/info.json b/keyboards/tzarc/djinn/info.json index 1546369307..64ed1da690 100644 --- a/keyboards/tzarc/djinn/info.json +++ b/keyboards/tzarc/djinn/info.json @@ -45,7 +45,6 @@ }, "split": { "enabled": true, - "main": "pin", "encoder": { "right": { "rotary": [ diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py index c4260fde54..924834caef 100755 --- a/lib/python/qmk/cli/generate/config_h.py +++ b/lib/python/qmk/cli/generate/config_h.py @@ -141,24 +141,6 @@ def generate_encoder_config(encoder_json, config_h_lines, postfix=''): def generate_split_config(kb_info_json, config_h_lines): """Generate the config.h lines for split boards.""" - if 'primary' in kb_info_json['split']: - if kb_info_json['split']['primary'] in ('left', 'right'): - config_h_lines.append('') - config_h_lines.append('#ifndef MASTER_LEFT') - config_h_lines.append('# ifndef MASTER_RIGHT') - if kb_info_json['split']['primary'] == 'left': - config_h_lines.append('# define MASTER_LEFT') - elif kb_info_json['split']['primary'] == 'right': - config_h_lines.append('# define MASTER_RIGHT') - config_h_lines.append('# endif // MASTER_RIGHT') - config_h_lines.append('#endif // MASTER_LEFT') - elif kb_info_json['split']['primary'] == 'pin': - config_h_lines.append(generate_define('SPLIT_HAND_PIN')) - elif kb_info_json['split']['primary'] == 'matrix_grid': - config_h_lines.append(generate_define('SPLIT_HAND_MATRIX_GRID', f'{{ {",".join(kb_info_json["split"]["matrix_grid"])} }}')) - elif kb_info_json['split']['primary'] == 'eeprom': - config_h_lines.append(generate_define('EE_HANDS')) - if 'protocol' in kb_info_json['split'].get('transport', {}): if kb_info_json['split']['transport']['protocol'] == 'i2c': config_h_lines.append(generate_define('USE_I2C')) diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index 265e6a645f..b56ec0fbff 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -352,57 +352,6 @@ def _extract_secure_unlock(info_data, config_c): info_data['secure']['unlock_sequence'] = unlock_array -def _extract_split_main(info_data, config_c): - """Populate data about the split configuration - """ - # Figure out how the main half is determined - if config_c.get('SPLIT_HAND_PIN') is True: - if 'split' not in info_data: - info_data['split'] = {} - - if 'main' in info_data['split']: - _log_warning(info_data, 'Split main hand is specified in both config.h (SPLIT_HAND_PIN) and info.json (split.main) (Value: %s), the config.h value wins.' % info_data['split']['main']) - - info_data['split']['main'] = 'pin' - - if config_c.get('SPLIT_HAND_MATRIX_GRID'): - if 'split' not in info_data: - info_data['split'] = {} - - if 'main' in info_data['split']: - _log_warning(info_data, 'Split main hand is specified in both config.h (SPLIT_HAND_MATRIX_GRID) and info.json (split.main) (Value: %s), the config.h value wins.' % info_data['split']['main']) - - info_data['split']['main'] = 'matrix_grid' - info_data['split']['matrix_grid'] = _extract_pins(config_c['SPLIT_HAND_MATRIX_GRID']) - - if config_c.get('EE_HANDS') is True: - if 'split' not in info_data: - info_data['split'] = {} - - if 'main' in info_data['split']: - _log_warning(info_data, 'Split main hand is specified in both config.h (EE_HANDS) and info.json (split.main) (Value: %s), the config.h value wins.' % info_data['split']['main']) - - info_data['split']['main'] = 'eeprom' - - if config_c.get('MASTER_RIGHT') is True: - if 'split' not in info_data: - info_data['split'] = {} - - if 'main' in info_data['split']: - _log_warning(info_data, 'Split main hand is specified in both config.h (MASTER_RIGHT) and info.json (split.main) (Value: %s), the config.h value wins.' % info_data['split']['main']) - - info_data['split']['main'] = 'right' - - if config_c.get('MASTER_LEFT') is True: - if 'split' not in info_data: - info_data['split'] = {} - - if 'main' in info_data['split']: - _log_warning(info_data, 'Split main hand is specified in both config.h (MASTER_LEFT) and info.json (split.main) (Value: %s), the config.h value wins.' % info_data['split']['main']) - - info_data['split']['main'] = 'left' - - def _extract_split_transport(info_data, config_c): # Figure out the transport method if config_c.get('USE_I2C') is True: @@ -594,7 +543,6 @@ def _extract_config_h(info_data, config_c): _extract_matrix_info(info_data, config_c) _extract_audio(info_data, config_c) _extract_secure_unlock(info_data, config_c) - _extract_split_main(info_data, config_c) _extract_split_transport(info_data, config_c) _extract_split_right_pins(info_data, config_c) _extract_encoders(info_data, config_c) From 538b79657e77fa3f0429cc766a0b73c72fc0c702 Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Tue, 31 Oct 2023 02:31:58 +0100 Subject: [PATCH 331/496] Fix for swapped PID and VID (#22372) --- keyboards/cannonkeys/is0gr/info.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/cannonkeys/is0gr/info.json b/keyboards/cannonkeys/is0gr/info.json index 3fd95577d8..49aaaddd52 100644 --- a/keyboards/cannonkeys/is0gr/info.json +++ b/keyboards/cannonkeys/is0gr/info.json @@ -18,8 +18,8 @@ "url": "https://cannonkeys.com", "usb": { "device_version": "0.0.1", - "pid": "0xCA04", - "vid": "0x0028" + "pid": "0x0028", + "vid": "0xCA04" }, "community_layouts": ["ortho_1x1"], "layouts": { @@ -29,4 +29,4 @@ ] } } -} \ No newline at end of file +} From cb9705428bb7e34a07f619a9efeb16c21d5f1e1a Mon Sep 17 00:00:00 2001 From: Matt Chan <5021+mattchan@users.noreply.github.com> Date: Mon, 30 Oct 2023 21:51:29 -0400 Subject: [PATCH 332/496] Add Kindakeyboards Conone65 Via support (#22320) --- .../conone65/keymaps/default/keymap.c | 2 +- .../conone65/keymaps/default/readme.md | 1 - .../conone65/keymaps/via/keymap.c | 39 +++++++++++++++++++ .../conone65/keymaps/via/rules.mk | 1 + keyboards/kindakeyboards/conone65/readme.md | 16 ++++++-- 5 files changed, 54 insertions(+), 5 deletions(-) delete mode 100644 keyboards/kindakeyboards/conone65/keymaps/default/readme.md create mode 100644 keyboards/kindakeyboards/conone65/keymaps/via/keymap.c create mode 100644 keyboards/kindakeyboards/conone65/keymaps/via/rules.mk diff --git a/keyboards/kindakeyboards/conone65/keymaps/default/keymap.c b/keyboards/kindakeyboards/conone65/keymaps/default/keymap.c index a3cf319161..4c0d09aa3a 100644 --- a/keyboards/kindakeyboards/conone65/keymaps/default/keymap.c +++ b/keyboards/kindakeyboards/conone65/keymaps/default/keymap.c @@ -35,5 +35,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), + ) }; diff --git a/keyboards/kindakeyboards/conone65/keymaps/default/readme.md b/keyboards/kindakeyboards/conone65/keymaps/default/readme.md deleted file mode 100644 index 2f16196347..0000000000 --- a/keyboards/kindakeyboards/conone65/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for Conone 65 diff --git a/keyboards/kindakeyboards/conone65/keymaps/via/keymap.c b/keyboards/kindakeyboards/conone65/keymaps/via/keymap.c new file mode 100644 index 0000000000..a70f504184 --- /dev/null +++ b/keyboards/kindakeyboards/conone65/keymaps/via/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2023 Matt Chan + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + QK_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_BSPC, KC_BSPC, KC_HOME, + 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_PGUP, + 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_BSLS, KC_ENT, KC_PGDN, + 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_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_APP, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FN] = LAYOUT_all( + 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_DEL, KC_DEL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/kindakeyboards/conone65/keymaps/via/rules.mk b/keyboards/kindakeyboards/conone65/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/kindakeyboards/conone65/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/kindakeyboards/conone65/readme.md b/keyboards/kindakeyboards/conone65/readme.md index f3429142dc..d0694fcc03 100644 --- a/keyboards/kindakeyboards/conone65/readme.md +++ b/keyboards/kindakeyboards/conone65/readme.md @@ -1,10 +1,12 @@ # Conone 65 +![Conone65 PCB](https://i.imgur.com/50dKAqh.jpeg) + The Conone 65 is a custom keyboard designed and machined in Belgium. -* Keyboard Maintainer: [Evyd13](https://github.com/evyd13) -* Hardware Supported: Conone 65 PCB -* Hardware Availability: [Group buy](https://forms.gle/nEFTxzBxy4KDm3nG8) +* Keyboard Maintainer: [Evyd13](https://github.com/evyd13), [Matt Chan](https://github.com/mattchan) +* Hardware Supported: Conone 65 PCB, ATMega32u4 +* Hardware Availability: https://www.kindakeyboards.be/conone65 Make example for this keyboard (after setting up your build environment): @@ -15,3 +17,11 @@ Flashing example for this keyboard: make kindakeyboards/conone65:default:flash 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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file From 6979794bacaa4e3340870e24caa68b21fff32403 Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 31 Oct 2023 13:19:53 +1100 Subject: [PATCH 333/496] Add "AC Next Keyboard Layout Select" consumer usage entry (macOS Globe key) (#22256) --- tmk_core/protocol/report.h | 81 +++++++++++++++++++------------------- 1 file changed, 41 insertions(+), 40 deletions(-) diff --git a/tmk_core/protocol/report.h b/tmk_core/protocol/report.h index 9b612dd182..ec985e69ad 100644 --- a/tmk_core/protocol/report.h +++ b/tmk_core/protocol/report.h @@ -55,9 +55,9 @@ enum mouse_buttons { */ enum consumer_usages { // 15.5 Display Controls - SNAPSHOT = 0x065, - BRIGHTNESS_UP = 0x06F, // https://www.usb.org/sites/default/files/hutrr41_0.pdf - BRIGHTNESS_DOWN = 0x070, + SNAPSHOT = 0x065, + BRIGHTNESS_UP = 0x06F, // https://www.usb.org/sites/default/files/hutrr41_0.pdf + BRIGHTNESS_DOWN = 0x070, // 15.7 Transport Controls TRANSPORT_RECORD = 0x0B2, TRANSPORT_FAST_FORWARD = 0x0B3, @@ -70,43 +70,44 @@ enum consumer_usages { TRANSPORT_STOP_EJECT = 0x0CC, TRANSPORT_PLAY_PAUSE = 0x0CD, // 15.9.1 Audio Controls - Volume - AUDIO_MUTE = 0x0E2, - AUDIO_VOL_UP = 0x0E9, - AUDIO_VOL_DOWN = 0x0EA, + AUDIO_MUTE = 0x0E2, + AUDIO_VOL_UP = 0x0E9, + AUDIO_VOL_DOWN = 0x0EA, // 15.15 Application Launch Buttons - AL_CC_CONFIG = 0x183, - AL_EMAIL = 0x18A, - AL_CALCULATOR = 0x192, - AL_LOCAL_BROWSER = 0x194, - AL_LOCK = 0x19E, - AL_CONTROL_PANEL = 0x19F, - AL_ASSISTANT = 0x1CB, - AL_KEYBOARD_LAYOUT = 0x1AE, + AL_CC_CONFIG = 0x183, + AL_EMAIL = 0x18A, + AL_CALCULATOR = 0x192, + AL_LOCAL_BROWSER = 0x194, + AL_LOCK = 0x19E, + AL_CONTROL_PANEL = 0x19F, + AL_ASSISTANT = 0x1CB, + AL_KEYBOARD_LAYOUT = 0x1AE, // 15.16 Generic GUI Application Controls - AC_NEW = 0x201, - AC_OPEN = 0x202, - AC_CLOSE = 0x203, - AC_EXIT = 0x204, - AC_MAXIMIZE = 0x205, - AC_MINIMIZE = 0x206, - AC_SAVE = 0x207, - AC_PRINT = 0x208, - AC_PROPERTIES = 0x209, - AC_UNDO = 0x21A, - AC_COPY = 0x21B, - AC_CUT = 0x21C, - AC_PASTE = 0x21D, - AC_SELECT_ALL = 0x21E, - AC_FIND = 0x21F, - AC_SEARCH = 0x221, - AC_HOME = 0x223, - AC_BACK = 0x224, - AC_FORWARD = 0x225, - AC_STOP = 0x226, - AC_REFRESH = 0x227, - AC_BOOKMARKS = 0x22A, - AC_MISSION_CONTROL = 0x29F, - AC_LAUNCHPAD = 0x2A0 + AC_NEW = 0x201, + AC_OPEN = 0x202, + AC_CLOSE = 0x203, + AC_EXIT = 0x204, + AC_MAXIMIZE = 0x205, + AC_MINIMIZE = 0x206, + AC_SAVE = 0x207, + AC_PRINT = 0x208, + AC_PROPERTIES = 0x209, + AC_UNDO = 0x21A, + AC_COPY = 0x21B, + AC_CUT = 0x21C, + AC_PASTE = 0x21D, + AC_SELECT_ALL = 0x21E, + AC_FIND = 0x21F, + AC_SEARCH = 0x221, + AC_HOME = 0x223, + AC_BACK = 0x224, + AC_FORWARD = 0x225, + AC_STOP = 0x226, + AC_REFRESH = 0x227, + AC_BOOKMARKS = 0x22A, + AC_NEXT_KEYBOARD_LAYOUT_SELECT = 0x29D, + AC_DESKTOP_SHOW_ALL_WINDOWS = 0x29F, + AC_SOFT_KEY_LEFT = 0x2A0 }; /* Generic Desktop Page (0x01) @@ -302,9 +303,9 @@ static inline uint16_t KEYCODE2CONSUMER(uint8_t key) { case KC_WWW_FAVORITES: return AC_BOOKMARKS; case KC_MISSION_CONTROL: - return AC_MISSION_CONTROL; + return AC_DESKTOP_SHOW_ALL_WINDOWS; case KC_LAUNCHPAD: - return AC_LAUNCHPAD; + return AC_SOFT_KEY_LEFT; default: return 0; } From 2192098f57a0dce1812a5d12fe57ed593d892d71 Mon Sep 17 00:00:00 2001 From: gregandcin Date: Tue, 31 Oct 2023 20:17:43 -0400 Subject: [PATCH 334/496] [Keyboard] Add TeaQueen (#22352) Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/gregandcin/teaqueen/info.json | 106 ++++++++++++++++++ .../teaqueen/keymaps/default/config.h | 9 ++ .../teaqueen/keymaps/default/keymap.c | 40 +++++++ .../gregandcin/teaqueen/keymaps/via/config.h | 9 ++ .../gregandcin/teaqueen/keymaps/via/keymap.c | 40 +++++++ .../gregandcin/teaqueen/keymaps/via/rules.mk | 1 + keyboards/gregandcin/teaqueen/readme.md | 26 +++++ keyboards/gregandcin/teaqueen/rules.mk | 1 + 8 files changed, 232 insertions(+) create mode 100644 keyboards/gregandcin/teaqueen/info.json create mode 100644 keyboards/gregandcin/teaqueen/keymaps/default/config.h create mode 100644 keyboards/gregandcin/teaqueen/keymaps/default/keymap.c create mode 100644 keyboards/gregandcin/teaqueen/keymaps/via/config.h create mode 100644 keyboards/gregandcin/teaqueen/keymaps/via/keymap.c create mode 100644 keyboards/gregandcin/teaqueen/keymaps/via/rules.mk create mode 100644 keyboards/gregandcin/teaqueen/readme.md create mode 100644 keyboards/gregandcin/teaqueen/rules.mk diff --git a/keyboards/gregandcin/teaqueen/info.json b/keyboards/gregandcin/teaqueen/info.json new file mode 100644 index 0000000000..6804ce003b --- /dev/null +++ b/keyboards/gregandcin/teaqueen/info.json @@ -0,0 +1,106 @@ +{ + "manufacturer": "gregandcin", + "keyboard_name": "gregandcin/teaqueen", + "maintainer": "gregandcin", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP29", "GP28", "GP27", "GP26", "GP22", "GP20", "GP23", "NO_PIN"], + "rows": ["GP5", "GP6", "GP7", "GP8", "GP9"] + }, + "processor": "RP2040", + "split": { + "enabled": true, + "matrix_pins": { + "right": { + "cols": ["GP29", "GP28", "GP27", "GP26", "GP22", "GP20", "GP23", "GP21"], + "rows": ["GP5", "GP6", "GP7", "GP8", "GP9"] + } + }, + "soft_serial_pin": "GP3" + }, + "url": "https://github.com/gregandcin/teaqueen", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0x4743" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 1}, + {"matrix": [0, 1], "x": 3, "y": 1}, + {"matrix": [0, 2], "x": 4, "y": 0.9}, + {"matrix": [0, 3], "x": 5, "y": 0, "r": 12}, + {"matrix": [0, 4], "x": 6, "y": 0, "r": 12}, + {"matrix": [0, 5], "x": 7, "y": 0, "r": 12}, + {"matrix": [0, 6], "x": 8, "y": 0, "r": 12}, + {"matrix": [5, 0], "x": 11.5, "y": 0.75, "r": -12}, + {"matrix": [5, 1], "x": 12.5, "y": 0.75, "r": -12}, + {"matrix": [5, 2], "x": 13.5, "y": 0.75, "r": -12}, + {"matrix": [5, 3], "x": 14.5, "y": 0.75, "r": -12}, + {"matrix": [5, 4], "x": 13.4, "y": 0.9}, + {"matrix": [5, 5], "x": 14.4, "y": 1}, + {"matrix": [5, 6], "x": 15.4, "y": 1, "w": 2}, + {"matrix": [1, 0], "x": 1.75, "y": 2, "w": 1.5}, + {"matrix": [1, 2], "x": 3.25, "y": 2}, + {"matrix": [1, 3], "x": 4.5, "y": 1, "r": 12}, + {"matrix": [1, 4], "x": 5.5, "y": 1, "r": 12}, + {"matrix": [1, 5], "x": 6.5, "y": 1, "r": 12}, + {"matrix": [1, 6], "x": 7.5, "y": 1, "r": 12}, + {"matrix": [6, 0], "x": 11, "y": 1.75, "r": -12}, + {"matrix": [6, 1], "x": 12, "y": 1.75, "r": -12}, + {"matrix": [6, 2], "x": 13, "y": 1.75, "r": -12}, + {"matrix": [6, 3], "x": 14, "y": 1.75, "r": -12}, + {"matrix": [6, 4], "x": 13.13, "y": 1.95}, + {"matrix": [6, 5], "x": 14.15, "y": 2}, + {"matrix": [6, 6], "x": 15.15, "y": 2}, + {"matrix": [6, 7], "x": 16.15, "y": 2, "w": 1.5}, + {"matrix": [2, 0], "x": 1.6, "y": 3, "w": 1.76}, + {"matrix": [2, 2], "x": 3.35, "y": 3}, + {"matrix": [2, 3], "x": 4.75, "y": 2, "r": 12}, + {"matrix": [2, 4], "x": 5.75, "y": 2, "r": 12}, + {"matrix": [2, 5], "x": 6.75, "y": 2, "r": 12}, + {"matrix": [2, 6], "x": 7.75, "y": 2, "r": 12}, + {"matrix": [7, 0], "x": 11.25, "y": 2.75, "r": -12}, + {"matrix": [7, 1], "x": 12.25, "y": 2.75, "r": -12}, + {"matrix": [7, 2], "x": 13.25, "y": 2.75, "r": -12}, + {"matrix": [7, 3], "x": 14.25, "y": 2.75, "r": -12}, + {"matrix": [7, 4], "x": 13.6, "y": 3}, + {"matrix": [7, 5], "x": 14.6, "y": 3}, + {"matrix": [7, 7], "x": 15.6, "y": 3, "w": 2.25}, + {"matrix": [3, 0], "x": 1.4, "y": 4, "w": 2.25}, + {"matrix": [3, 2], "x": 3.65, "y": 4}, + {"matrix": [3, 3], "x": 5.25, "y": 3, "r": 12}, + {"matrix": [3, 4], "x": 6.25, "y": 3, "r": 12}, + {"matrix": [3, 5], "x": 7.25, "y": 3, "r": 12}, + {"matrix": [3, 6], "x": 8.25, "y": 3, "r": 12}, + {"matrix": [8, 0], "x": 10.75, "y": 3.75, "r": -12}, + {"matrix": [8, 1], "x": 11.75, "y": 3.75, "r": -12}, + {"matrix": [8, 2], "x": 12.75, "y": 3.75, "r": -12}, + {"matrix": [8, 3], "x": 13.75, "y": 3.75, "r": -12}, + {"matrix": [8, 4], "x": 13.3, "y": 4}, + {"matrix": [8, 5], "x": 14.3, "y": 4}, + {"matrix": [8, 6], "x": 15.3, "y": 4, "w": 1.75}, + {"matrix": [8, 7], "x": 17.05, "y": 4}, + {"matrix": [4, 0], "x": 1.6, "y": 5, "w": 1.5}, + {"matrix": [4, 1], "x": 3.1, "y": 5}, + {"matrix": [4, 3], "x": 5.4, "y": 4.3, "w": 1.5, "r": 12}, + {"matrix": [4, 5], "x": 6.75, "y": 4, "w": 2, "r": 12}, + {"matrix": [4, 6], "x": 8.75, "y": 4, "r": 12}, + {"matrix": [9, 1], "x": 10.75, "y": 4.75, "w": 2.75, "r": -12}, + {"matrix": [9, 3], "x": 13.6, "y": 4.8, "w": 1.5, "r": -12}, + {"matrix": [9, 6], "x": 15.35, "y": 5}, + {"matrix": [9, 7], "x": 16.35, "y": 5, "w": 1.5} + ] + } + } +} diff --git a/keyboards/gregandcin/teaqueen/keymaps/default/config.h b/keyboards/gregandcin/teaqueen/keymaps/default/config.h new file mode 100644 index 0000000000..3a125fdf63 --- /dev/null +++ b/keyboards/gregandcin/teaqueen/keymaps/default/config.h @@ -0,0 +1,9 @@ +// Copyright 2023 gregandcin (@gregandcin) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Select hand configuration */ +// #define MASTER_LEFT +// #define MASTER_RIGHT +#define EE_HANDS diff --git a/keyboards/gregandcin/teaqueen/keymaps/default/keymap.c b/keyboards/gregandcin/teaqueen/keymaps/default/keymap.c new file mode 100644 index 0000000000..abc6086270 --- /dev/null +++ b/keyboards/gregandcin/teaqueen/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum custom_layer { + _QWERTY, + _SYMB, + _NAV +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = LAYOUT( + KC_ESC, 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_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(1), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(2), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), + + [_SYMB] = 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_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, 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, + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT), + + [_NAV] = LAYOUT( + 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_BTN2, KC_MS_U, KC_BTN1, KC_WH_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +}; + diff --git a/keyboards/gregandcin/teaqueen/keymaps/via/config.h b/keyboards/gregandcin/teaqueen/keymaps/via/config.h new file mode 100644 index 0000000000..3a125fdf63 --- /dev/null +++ b/keyboards/gregandcin/teaqueen/keymaps/via/config.h @@ -0,0 +1,9 @@ +// Copyright 2023 gregandcin (@gregandcin) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Select hand configuration */ +// #define MASTER_LEFT +// #define MASTER_RIGHT +#define EE_HANDS diff --git a/keyboards/gregandcin/teaqueen/keymaps/via/keymap.c b/keyboards/gregandcin/teaqueen/keymaps/via/keymap.c new file mode 100644 index 0000000000..abc6086270 --- /dev/null +++ b/keyboards/gregandcin/teaqueen/keymaps/via/keymap.c @@ -0,0 +1,40 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum custom_layer { + _QWERTY, + _SYMB, + _NAV +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = LAYOUT( + KC_ESC, 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_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(1), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(2), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), + + [_SYMB] = 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_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, 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, + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT), + + [_NAV] = LAYOUT( + 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_BTN2, KC_MS_U, KC_BTN1, KC_WH_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +}; + diff --git a/keyboards/gregandcin/teaqueen/keymaps/via/rules.mk b/keyboards/gregandcin/teaqueen/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/gregandcin/teaqueen/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/gregandcin/teaqueen/readme.md b/keyboards/gregandcin/teaqueen/readme.md new file mode 100644 index 0000000000..2d259e644d --- /dev/null +++ b/keyboards/gregandcin/teaqueen/readme.md @@ -0,0 +1,26 @@ +# gregandcin/teaqueen + +![gregandcin/teaqueen](https://i.imgur.com/Wf1EIqwh.png) + +An Alice inspired, split layout keyboar featuring Kailh hotswap sockets. + +* Keyboard Maintainer: [gregandcin](https://github.com/gregandcin) +* Hardware Supported: Elite-Pi, other RP2040 Community Edition Boards + +Make example for this keyboard (after setting up your build environment): + + make gregandcin/teaqueen:default + +Flashing example for this keyboard: + + make gregandcin/teaqueen:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/gregandcin/teaqueen/rules.mk b/keyboards/gregandcin/teaqueen/rules.mk new file mode 100644 index 0000000000..161ec22b16 --- /dev/null +++ b/keyboards/gregandcin/teaqueen/rules.mk @@ -0,0 +1 @@ +SERIAL_DRIVER = vendor From 999008f0eb8204f2d6d99113ae45aad2337dcf28 Mon Sep 17 00:00:00 2001 From: era <73109780+eerraa@users.noreply.github.com> Date: Wed, 1 Nov 2023 09:40:25 +0900 Subject: [PATCH 335/496] [Keyboard] Add Klein_SD (#22371) Co-authored-by: Joel Challis --- keyboards/era/sirind/klein_sd/config.h | 25 + keyboards/era/sirind/klein_sd/halconf.h | 21 + keyboards/era/sirind/klein_sd/info.json | 588 ++++++++++++++++++ .../sirind/klein_sd/keymaps/default/keymap.c | 23 + .../era/sirind/klein_sd/keymaps/via/keymap.c | 23 + .../era/sirind/klein_sd/keymaps/via/rules.mk | 1 + keyboards/era/sirind/klein_sd/mcuconf.h | 22 + keyboards/era/sirind/klein_sd/readme.md | 23 + keyboards/era/sirind/klein_sd/rules.mk | 1 + 9 files changed, 727 insertions(+) create mode 100644 keyboards/era/sirind/klein_sd/config.h create mode 100644 keyboards/era/sirind/klein_sd/halconf.h create mode 100644 keyboards/era/sirind/klein_sd/info.json create mode 100644 keyboards/era/sirind/klein_sd/keymaps/default/keymap.c create mode 100644 keyboards/era/sirind/klein_sd/keymaps/via/keymap.c create mode 100644 keyboards/era/sirind/klein_sd/keymaps/via/rules.mk create mode 100644 keyboards/era/sirind/klein_sd/mcuconf.h create mode 100644 keyboards/era/sirind/klein_sd/readme.md create mode 100644 keyboards/era/sirind/klein_sd/rules.mk diff --git a/keyboards/era/sirind/klein_sd/config.h b/keyboards/era/sirind/klein_sd/config.h new file mode 100644 index 0000000000..ae1d4a9e1d --- /dev/null +++ b/keyboards/era/sirind/klein_sd/config.h @@ -0,0 +1,25 @@ +/* Copyright 2023 eerraa + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* BACKLIGHT PWM */ +#define BACKLIGHT_PWM_DRIVER PWMD7 +#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_B + +/* RGB Matrix */ +#define RGB_MATRIX_DEFAULT_VAL 60 +#define RGB_DISABLE_WHEN_USB_SUSPENDED \ No newline at end of file diff --git a/keyboards/era/sirind/klein_sd/halconf.h b/keyboards/era/sirind/klein_sd/halconf.h new file mode 100644 index 0000000000..f57e86df01 --- /dev/null +++ b/keyboards/era/sirind/klein_sd/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2023 eerraa + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next \ No newline at end of file diff --git a/keyboards/era/sirind/klein_sd/info.json b/keyboards/era/sirind/klein_sd/info.json new file mode 100644 index 0000000000..53f89f2cb7 --- /dev/null +++ b/keyboards/era/sirind/klein_sd/info.json @@ -0,0 +1,588 @@ +{ + "manufacturer": "SIRIND", + "keyboard_name": "Klein_SD", + "maintainer": "eerraa", + "backlight": { + "pin": "GP15" + }, + "bootloader": "rp2040", + "build": { + "debounce_type": "sym_defer_pk" + }, + "diode_direction": "COL2ROW", + "features": { + "backlight": true, + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "indicators": { + "caps_lock": "GP16", + "on_state": 0, + "scroll_lock": "GP17" + }, + "matrix_pins": { + "cols": ["GP22", "GP23", "GP24", "GP25", "GP26", "GP27", "GP28", "GP29", "GP11", "GP10", "GP9", "GP7", "GP6", "GP5", "GP4", "GP3"], + "rows": ["GP18", "GP19", "GP20", "GP21", "GP14", "GP2", "GP1", "GP8", "GP12", "GP13"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 7], "x": 97, "y": 10, "flags": 4}, + {"matrix": [0, 6], "x": 84, "y": 8, "flags": 4}, + {"matrix": [0, 5], "x": 72, "y": 5, "flags": 4}, + {"matrix": [0, 4], "x": 59, "y": 3, "flags": 4}, + {"matrix": [0, 3], "x": 46, "y": 1, "flags": 4}, + {"matrix": [0, 2], "x": 33, "y": 2, "flags": 4}, + {"matrix": [0, 1], "x": 20, "y": 2, "flags": 4}, + {"matrix": [0, 0], "x": 4, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 1, "y": 13, "flags": 1}, + {"matrix": [1, 1], "x": 21, "y": 15, "flags": 1}, + {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 50, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 63, "y": 17, "flags": 4}, + {"matrix": [1, 5], "x": 76, "y": 20, "flags": 4}, + {"matrix": [1, 6], "x": 88, "y": 22, "flags": 4}, + {"matrix": [1, 7], "x": 101, "y": 24, "flags": 4}, + {"matrix": [2, 6], "x": 90, "y": 36, "flags": 4}, + {"matrix": [2, 5], "x": 78, "y": 33, "flags": 4}, + {"matrix": [2, 4], "x": 65, "y": 31, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 29, "flags": 4}, + {"matrix": [2, 2], "x": 39, "y": 29, "flags": 4}, + {"matrix": [2, 1], "x": 18, "y": 29, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 27, "flags": 1}, + {"matrix": [3, 1], "x": 21, "y": 42, "flags": 1}, + {"matrix": [3, 2], "x": 42, "y": 42, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 43, "flags": 4}, + {"matrix": [3, 4], "x": 68, "y": 45, "flags": 4}, + {"matrix": [3, 5], "x": 81, "y": 47, "flags": 4}, + {"matrix": [3, 6], "x": 93, "y": 50, "flags": 4}, + {"matrix": [4, 6], "x": 97, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 77, "y": 60, "flags": 4}, + {"matrix": [4, 3], "x": 53, "y": 57, "flags": 1}, + {"matrix": [4, 1], "x": 16, "y": 55, "flags": 1}, + {"matrix": [0, 8], "x": 130, "y": 9, "flags": 4}, + {"matrix": [0, 9], "x": 143, "y": 7, "flags": 4}, + {"matrix": [0, 10], "x": 156, "y": 4, "flags": 4}, + {"matrix": [0, 11], "x": 168, "y": 2, "flags": 4}, + {"matrix": [0, 12], "x": 182, "y": 1, "flags": 4}, + {"matrix": [0, 13], "x": 195, "y": 2, "flags": 4}, + {"matrix": [0, 15], "x": 214, "y": 2, "flags": 1}, + {"matrix": [1, 15], "x": 220, "y": 15, "flags": 4}, + {"matrix": [1, 14], "x": 203, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 191, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 178, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 164, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 152, "y": 18, "flags": 4}, + {"matrix": [1, 9], "x": 139, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 126, "y": 23, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 36, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 33, "flags": 4}, + {"matrix": [2, 10], "x": 156, "y": 31, "flags": 4}, + {"matrix": [2, 11], "x": 169, "y": 29, "flags": 4}, + {"matrix": [2, 12], "x": 182, "y": 29, "flags": 4}, + {"matrix": [2, 13], "x": 195, "y": 29, "flags": 4}, + {"matrix": [2, 15], "x": 216, "y": 29, "flags": 1}, + {"matrix": [3, 15], "x": 216, "y": 42, "flags": 1}, + {"matrix": [3, 13], "x": 192, "y": 42, "flags": 4}, + {"matrix": [3, 12], "x": 179, "y": 42, "flags": 4}, + {"matrix": [3, 11], "x": 166, "y": 43, "flags": 4}, + {"matrix": [3, 10], "x": 153, "y": 45, "flags": 4}, + {"matrix": [3, 9], "x": 140, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 50, "flags": 4}, + {"matrix": [4, 9], "x": 141, "y": 61, "flags": 4}, + {"matrix": [4, 11], "x": 168, "y": 57, "flags": 1}, + {"matrix": [4, 13], "x": 192, "y": 55, "flags": 1}, + {"matrix": [4, 14], "x": 205, "y": 55, "flags": 1}, + {"matrix": [4, 15], "x": 224, "y": 55, "flags": 1} + ] + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0005", + "vid": "0x4552" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP0" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [5, 8], "x": 10.75, "y": 0}, + {"matrix": [5, 9], "x": 11.75, "y": 0}, + {"matrix": [5, 10], "x": 12.75, "y": 0}, + {"matrix": [5, 11], "x": 13.75, "y": 0}, + {"matrix": [5, 12], "x": 14.75, "y": 0}, + {"matrix": [5, 13], "x": 15.75, "y": 0}, + {"matrix": [5, 14], "x": 16.75, "y": 0}, + {"matrix": [5, 15], "x": 17.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 3, "y": 1}, + {"matrix": [1, 3], "x": 4, "y": 1}, + {"matrix": [1, 4], "x": 5, "y": 1}, + {"matrix": [1, 5], "x": 6, "y": 1}, + {"matrix": [1, 6], "x": 7, "y": 1}, + {"matrix": [1, 7], "x": 8, "y": 1}, + {"matrix": [6, 8], "x": 10.25, "y": 1}, + {"matrix": [6, 9], "x": 11.25, "y": 1}, + {"matrix": [6, 10], "x": 12.25, "y": 1}, + {"matrix": [6, 11], "x": 13.25, "y": 1}, + {"matrix": [6, 12], "x": 14.25, "y": 1}, + {"matrix": [6, 13], "x": 15.25, "y": 1}, + {"matrix": [6, 14], "x": 16.25, "y": 1}, + {"matrix": [6, 15], "x": 17.25, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [7, 8], "x": 10.5, "y": 2}, + {"matrix": [7, 9], "x": 11.5, "y": 2}, + {"matrix": [7, 10], "x": 12.5, "y": 2}, + {"matrix": [7, 11], "x": 13.5, "y": 2}, + {"matrix": [7, 12], "x": 14.5, "y": 2}, + {"matrix": [7, 13], "x": 15.5, "y": 2}, + {"matrix": [7, 15], "x": 16.5, "y": 2, "w": 2.25}, + {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.75, "y": 3}, + {"matrix": [3, 3], "x": 4.75, "y": 3}, + {"matrix": [3, 4], "x": 5.75, "y": 3}, + {"matrix": [3, 5], "x": 6.75, "y": 3}, + {"matrix": [3, 6], "x": 7.75, "y": 3}, + {"matrix": [8, 8], "x": 10, "y": 3}, + {"matrix": [8, 9], "x": 11, "y": 3}, + {"matrix": [8, 10], "x": 12, "y": 3}, + {"matrix": [8, 11], "x": 13, "y": 3}, + {"matrix": [8, 12], "x": 14, "y": 3}, + {"matrix": [8, 13], "x": 15, "y": 3}, + {"matrix": [8, 14], "x": 16, "y": 3, "w": 1.75}, + {"matrix": [8, 15], "x": 17.75, "y": 3}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "x": 4.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 6, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 8.25, "y": 4}, + {"matrix": [9, 9], "x": 10, "y": 4, "w": 2.75}, + {"matrix": [9, 11], "x": 12.75, "y": 4, "w": 1.5}, + {"matrix": [9, 13], "x": 15, "y": 4}, + {"matrix": [9, 14], "x": 16, "y": 4}, + {"matrix": [9, 15], "x": 17, "y": 4} + ] + }, + "LAYOUT_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [5, 8], "x": 10.75, "y": 0}, + {"matrix": [5, 9], "x": 11.75, "y": 0}, + {"matrix": [5, 10], "x": 12.75, "y": 0}, + {"matrix": [5, 11], "x": 13.75, "y": 0}, + {"matrix": [5, 12], "x": 14.75, "y": 0}, + {"matrix": [5, 13], "x": 15.75, "y": 0}, + {"matrix": [5, 15], "x": 16.75, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 3, "y": 1}, + {"matrix": [1, 3], "x": 4, "y": 1}, + {"matrix": [1, 4], "x": 5, "y": 1}, + {"matrix": [1, 5], "x": 6, "y": 1}, + {"matrix": [1, 6], "x": 7, "y": 1}, + {"matrix": [1, 7], "x": 8, "y": 1}, + {"matrix": [6, 8], "x": 10.25, "y": 1}, + {"matrix": [6, 9], "x": 11.25, "y": 1}, + {"matrix": [6, 10], "x": 12.25, "y": 1}, + {"matrix": [6, 11], "x": 13.25, "y": 1}, + {"matrix": [6, 12], "x": 14.25, "y": 1}, + {"matrix": [6, 13], "x": 15.25, "y": 1}, + {"matrix": [6, 14], "x": 16.25, "y": 1}, + {"matrix": [6, 15], "x": 17.25, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [7, 8], "x": 10.5, "y": 2}, + {"matrix": [7, 9], "x": 11.5, "y": 2}, + {"matrix": [7, 10], "x": 12.5, "y": 2}, + {"matrix": [7, 11], "x": 13.5, "y": 2}, + {"matrix": [7, 12], "x": 14.5, "y": 2}, + {"matrix": [7, 13], "x": 15.5, "y": 2}, + {"matrix": [7, 15], "x": 16.5, "y": 2, "w": 2.25}, + {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.75, "y": 3}, + {"matrix": [3, 3], "x": 4.75, "y": 3}, + {"matrix": [3, 4], "x": 5.75, "y": 3}, + {"matrix": [3, 5], "x": 6.75, "y": 3}, + {"matrix": [3, 6], "x": 7.75, "y": 3}, + {"matrix": [8, 8], "x": 10, "y": 3}, + {"matrix": [8, 9], "x": 11, "y": 3}, + {"matrix": [8, 10], "x": 12, "y": 3}, + {"matrix": [8, 11], "x": 13, "y": 3}, + {"matrix": [8, 12], "x": 14, "y": 3}, + {"matrix": [8, 13], "x": 15, "y": 3}, + {"matrix": [8, 14], "x": 16, "y": 3, "w": 2.75}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "x": 4.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 6, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 8.25, "y": 4}, + {"matrix": [9, 9], "x": 10, "y": 4, "w": 2.75}, + {"matrix": [9, 11], "x": 12.75, "y": 4, "w": 1.5}, + {"matrix": [9, 15], "x": 17.25, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_ansi_arrow": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [5, 8], "x": 10.75, "y": 0}, + {"matrix": [5, 9], "x": 11.75, "y": 0}, + {"matrix": [5, 10], "x": 12.75, "y": 0}, + {"matrix": [5, 11], "x": 13.75, "y": 0}, + {"matrix": [5, 12], "x": 14.75, "y": 0}, + {"matrix": [5, 13], "x": 15.75, "y": 0}, + {"matrix": [5, 15], "x": 16.75, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 3, "y": 1}, + {"matrix": [1, 3], "x": 4, "y": 1}, + {"matrix": [1, 4], "x": 5, "y": 1}, + {"matrix": [1, 5], "x": 6, "y": 1}, + {"matrix": [1, 6], "x": 7, "y": 1}, + {"matrix": [1, 7], "x": 8, "y": 1}, + {"matrix": [6, 8], "x": 10.25, "y": 1}, + {"matrix": [6, 9], "x": 11.25, "y": 1}, + {"matrix": [6, 10], "x": 12.25, "y": 1}, + {"matrix": [6, 11], "x": 13.25, "y": 1}, + {"matrix": [6, 12], "x": 14.25, "y": 1}, + {"matrix": [6, 13], "x": 15.25, "y": 1}, + {"matrix": [6, 14], "x": 16.25, "y": 1}, + {"matrix": [6, 15], "x": 17.25, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [7, 8], "x": 10.5, "y": 2}, + {"matrix": [7, 9], "x": 11.5, "y": 2}, + {"matrix": [7, 10], "x": 12.5, "y": 2}, + {"matrix": [7, 11], "x": 13.5, "y": 2}, + {"matrix": [7, 12], "x": 14.5, "y": 2}, + {"matrix": [7, 13], "x": 15.5, "y": 2}, + {"matrix": [7, 15], "x": 16.5, "y": 2, "w": 2.25}, + {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.75, "y": 3}, + {"matrix": [3, 3], "x": 4.75, "y": 3}, + {"matrix": [3, 4], "x": 5.75, "y": 3}, + {"matrix": [3, 5], "x": 6.75, "y": 3}, + {"matrix": [3, 6], "x": 7.75, "y": 3}, + {"matrix": [8, 8], "x": 10, "y": 3}, + {"matrix": [8, 9], "x": 11, "y": 3}, + {"matrix": [8, 10], "x": 12, "y": 3}, + {"matrix": [8, 11], "x": 13, "y": 3}, + {"matrix": [8, 12], "x": 14, "y": 3}, + {"matrix": [8, 13], "x": 15, "y": 3}, + {"matrix": [8, 14], "x": 16, "y": 3}, + {"matrix": [8, 15], "x": 17, "y": 3, "w": 1.75}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "x": 4.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 6, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 8.25, "y": 4}, + {"matrix": [9, 9], "x": 10, "y": 4, "w": 2.75}, + {"matrix": [9, 11], "x": 12.75, "y": 4, "w": 1.5}, + {"matrix": [9, 13], "x": 15, "y": 4}, + {"matrix": [9, 14], "x": 16, "y": 4}, + {"matrix": [9, 15], "x": 17, "y": 4} + ] + }, + "LAYOUT_ansi_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [5, 8], "x": 10.75, "y": 0}, + {"matrix": [5, 9], "x": 11.75, "y": 0}, + {"matrix": [5, 10], "x": 12.75, "y": 0}, + {"matrix": [5, 11], "x": 13.75, "y": 0}, + {"matrix": [5, 12], "x": 14.75, "y": 0}, + {"matrix": [5, 13], "x": 15.75, "y": 0}, + {"matrix": [5, 14], "x": 16.75, "y": 0}, + {"matrix": [5, 15], "x": 17.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 3, "y": 1}, + {"matrix": [1, 3], "x": 4, "y": 1}, + {"matrix": [1, 4], "x": 5, "y": 1}, + {"matrix": [1, 5], "x": 6, "y": 1}, + {"matrix": [1, 6], "x": 7, "y": 1}, + {"matrix": [1, 7], "x": 8, "y": 1}, + {"matrix": [6, 8], "x": 10.25, "y": 1}, + {"matrix": [6, 9], "x": 11.25, "y": 1}, + {"matrix": [6, 10], "x": 12.25, "y": 1}, + {"matrix": [6, 11], "x": 13.25, "y": 1}, + {"matrix": [6, 12], "x": 14.25, "y": 1}, + {"matrix": [6, 13], "x": 15.25, "y": 1}, + {"matrix": [6, 14], "x": 16.25, "y": 1}, + {"matrix": [6, 15], "x": 17.25, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [7, 8], "x": 10.5, "y": 2}, + {"matrix": [7, 9], "x": 11.5, "y": 2}, + {"matrix": [7, 10], "x": 12.5, "y": 2}, + {"matrix": [7, 11], "x": 13.5, "y": 2}, + {"matrix": [7, 12], "x": 14.5, "y": 2}, + {"matrix": [7, 13], "x": 15.5, "y": 2}, + {"matrix": [7, 15], "x": 16.5, "y": 2, "w": 2.25}, + {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.75, "y": 3}, + {"matrix": [3, 3], "x": 4.75, "y": 3}, + {"matrix": [3, 4], "x": 5.75, "y": 3}, + {"matrix": [3, 5], "x": 6.75, "y": 3}, + {"matrix": [3, 6], "x": 7.75, "y": 3}, + {"matrix": [8, 8], "x": 10, "y": 3}, + {"matrix": [8, 9], "x": 11, "y": 3}, + {"matrix": [8, 10], "x": 12, "y": 3}, + {"matrix": [8, 11], "x": 13, "y": 3}, + {"matrix": [8, 12], "x": 14, "y": 3}, + {"matrix": [8, 13], "x": 15, "y": 3}, + {"matrix": [8, 14], "x": 16, "y": 3, "w": 2.75}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "x": 4.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 6, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 8.25, "y": 4}, + {"matrix": [9, 9], "x": 10, "y": 4, "w": 2.75}, + {"matrix": [9, 11], "x": 12.75, "y": 4, "w": 1.5}, + {"matrix": [9, 15], "x": 17.25, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_ansi_split_bs_rsft": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [5, 8], "x": 10.75, "y": 0}, + {"matrix": [5, 9], "x": 11.75, "y": 0}, + {"matrix": [5, 10], "x": 12.75, "y": 0}, + {"matrix": [5, 11], "x": 13.75, "y": 0}, + {"matrix": [5, 12], "x": 14.75, "y": 0}, + {"matrix": [5, 13], "x": 15.75, "y": 0}, + {"matrix": [5, 14], "x": 16.75, "y": 0}, + {"matrix": [5, 15], "x": 17.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 3, "y": 1}, + {"matrix": [1, 3], "x": 4, "y": 1}, + {"matrix": [1, 4], "x": 5, "y": 1}, + {"matrix": [1, 5], "x": 6, "y": 1}, + {"matrix": [1, 6], "x": 7, "y": 1}, + {"matrix": [1, 7], "x": 8, "y": 1}, + {"matrix": [6, 8], "x": 10.25, "y": 1}, + {"matrix": [6, 9], "x": 11.25, "y": 1}, + {"matrix": [6, 10], "x": 12.25, "y": 1}, + {"matrix": [6, 11], "x": 13.25, "y": 1}, + {"matrix": [6, 12], "x": 14.25, "y": 1}, + {"matrix": [6, 13], "x": 15.25, "y": 1}, + {"matrix": [6, 14], "x": 16.25, "y": 1}, + {"matrix": [6, 15], "x": 17.25, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [7, 8], "x": 10.5, "y": 2}, + {"matrix": [7, 9], "x": 11.5, "y": 2}, + {"matrix": [7, 10], "x": 12.5, "y": 2}, + {"matrix": [7, 11], "x": 13.5, "y": 2}, + {"matrix": [7, 12], "x": 14.5, "y": 2}, + {"matrix": [7, 13], "x": 15.5, "y": 2}, + {"matrix": [7, 15], "x": 16.5, "y": 2, "w": 2.25}, + {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.75, "y": 3}, + {"matrix": [3, 3], "x": 4.75, "y": 3}, + {"matrix": [3, 4], "x": 5.75, "y": 3}, + {"matrix": [3, 5], "x": 6.75, "y": 3}, + {"matrix": [3, 6], "x": 7.75, "y": 3}, + {"matrix": [8, 8], "x": 10, "y": 3}, + {"matrix": [8, 9], "x": 11, "y": 3}, + {"matrix": [8, 10], "x": 12, "y": 3}, + {"matrix": [8, 11], "x": 13, "y": 3}, + {"matrix": [8, 12], "x": 14, "y": 3}, + {"matrix": [8, 13], "x": 15, "y": 3}, + {"matrix": [8, 14], "x": 16, "y": 3, "w": 1.75}, + {"matrix": [8, 15], "x": 17.75, "y": 3}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "x": 4.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 6, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 8.25, "y": 4}, + {"matrix": [9, 9], "x": 10, "y": 4, "w": 2.75}, + {"matrix": [9, 11], "x": 12.75, "y": 4, "w": 1.5}, + {"matrix": [9, 15], "x": 17.25, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_arrow_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [5, 8], "x": 10.75, "y": 0}, + {"matrix": [5, 9], "x": 11.75, "y": 0}, + {"matrix": [5, 10], "x": 12.75, "y": 0}, + {"matrix": [5, 11], "x": 13.75, "y": 0}, + {"matrix": [5, 12], "x": 14.75, "y": 0}, + {"matrix": [5, 13], "x": 15.75, "y": 0}, + {"matrix": [5, 14], "x": 16.75, "y": 0}, + {"matrix": [5, 15], "x": 17.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 3, "y": 1}, + {"matrix": [1, 3], "x": 4, "y": 1}, + {"matrix": [1, 4], "x": 5, "y": 1}, + {"matrix": [1, 5], "x": 6, "y": 1}, + {"matrix": [1, 6], "x": 7, "y": 1}, + {"matrix": [1, 7], "x": 8, "y": 1}, + {"matrix": [6, 8], "x": 10.25, "y": 1}, + {"matrix": [6, 9], "x": 11.25, "y": 1}, + {"matrix": [6, 10], "x": 12.25, "y": 1}, + {"matrix": [6, 11], "x": 13.25, "y": 1}, + {"matrix": [6, 12], "x": 14.25, "y": 1}, + {"matrix": [6, 13], "x": 15.25, "y": 1}, + {"matrix": [6, 14], "x": 16.25, "y": 1}, + {"matrix": [6, 15], "x": 17.25, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3.25, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, + {"matrix": [2, 6], "x": 7.25, "y": 2}, + {"matrix": [7, 8], "x": 10.5, "y": 2}, + {"matrix": [7, 9], "x": 11.5, "y": 2}, + {"matrix": [7, 10], "x": 12.5, "y": 2}, + {"matrix": [7, 11], "x": 13.5, "y": 2}, + {"matrix": [7, 12], "x": 14.5, "y": 2}, + {"matrix": [7, 13], "x": 15.5, "y": 2}, + {"matrix": [7, 15], "x": 16.5, "y": 2, "w": 2.25}, + {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.75, "y": 3}, + {"matrix": [3, 3], "x": 4.75, "y": 3}, + {"matrix": [3, 4], "x": 5.75, "y": 3}, + {"matrix": [3, 5], "x": 6.75, "y": 3}, + {"matrix": [3, 6], "x": 7.75, "y": 3}, + {"matrix": [8, 8], "x": 10, "y": 3}, + {"matrix": [8, 9], "x": 11, "y": 3}, + {"matrix": [8, 10], "x": 12, "y": 3}, + {"matrix": [8, 11], "x": 13, "y": 3}, + {"matrix": [8, 12], "x": 14, "y": 3}, + {"matrix": [8, 13], "x": 15, "y": 3}, + {"matrix": [8, 14], "x": 16, "y": 3}, + {"matrix": [8, 15], "x": 17, "y": 3, "w": 1.75}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "x": 4.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 6, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 8.25, "y": 4}, + {"matrix": [9, 9], "x": 10, "y": 4, "w": 2.75}, + {"matrix": [9, 11], "x": 12.75, "y": 4, "w": 1.5}, + {"matrix": [9, 13], "x": 15, "y": 4}, + {"matrix": [9, 14], "x": 16, "y": 4}, + {"matrix": [9, 15], "x": 17, "y": 4} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/era/sirind/klein_sd/keymaps/default/keymap.c b/keyboards/era/sirind/klein_sd/keymaps/default/keymap.c new file mode 100644 index 0000000000..88878bbcd9 --- /dev/null +++ b/keyboards/era/sirind/klein_sd/keymaps/default/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2018-2022 QMK (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_GRV, 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_BSPC, KC_BSPC, + KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RCTL + ), + + [1] = LAYOUT( + KC_TRNS, KC_TRNS, 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_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_PSCR, KC_SCRL, KC_PAUS, 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_LSFT, 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 + ) +}; \ No newline at end of file diff --git a/keyboards/era/sirind/klein_sd/keymaps/via/keymap.c b/keyboards/era/sirind/klein_sd/keymaps/via/keymap.c new file mode 100644 index 0000000000..88878bbcd9 --- /dev/null +++ b/keyboards/era/sirind/klein_sd/keymaps/via/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2018-2022 QMK (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_GRV, 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_BSPC, KC_BSPC, + KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RCTL + ), + + [1] = LAYOUT( + KC_TRNS, KC_TRNS, 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_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_PSCR, KC_SCRL, KC_PAUS, 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_LSFT, 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 + ) +}; \ No newline at end of file diff --git a/keyboards/era/sirind/klein_sd/keymaps/via/rules.mk b/keyboards/era/sirind/klein_sd/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/era/sirind/klein_sd/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/era/sirind/klein_sd/mcuconf.h b/keyboards/era/sirind/klein_sd/mcuconf.h new file mode 100644 index 0000000000..b82cc49d7d --- /dev/null +++ b/keyboards/era/sirind/klein_sd/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2023 eerraa + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef RP_PWM_USE_PWM7 +#define RP_PWM_USE_PWM7 TRUE \ No newline at end of file diff --git a/keyboards/era/sirind/klein_sd/readme.md b/keyboards/era/sirind/klein_sd/readme.md new file mode 100644 index 0000000000..a021b843d7 --- /dev/null +++ b/keyboards/era/sirind/klein_sd/readme.md @@ -0,0 +1,23 @@ +# Mont Cervin Klein + +* Keyboard Maintainer: [ERA](https://github.com/eerraa) +* Hardware supported: SIRIND Klein_SD +* Hardware availability: [Syryan](https://srind.mysoho.com/) + +Make example for this keyboard (after setting up your build environment): + + make era/sirind/klein_sd:default + +Flashing example for this keyboard: + + make era/sirind/klein_sd:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at ESC(0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly short the `RESET` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/era/sirind/klein_sd/rules.mk b/keyboards/era/sirind/klein_sd/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/era/sirind/klein_sd/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file From b52aca0af83fade24c56b4bb7369f18183123bd3 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 1 Nov 2023 11:53:45 +1100 Subject: [PATCH 336/496] Relocate LED driver init code (#22365) --- drivers/led/aw20216s.c | 11 +- drivers/led/aw20216s.h | 3 +- drivers/led/issi/is31fl3218-simple.c | 12 +- drivers/led/issi/is31fl3218-simple.h | 2 +- drivers/led/issi/is31fl3218.c | 12 +- drivers/led/issi/is31fl3218.h | 2 +- drivers/led/issi/is31fl3731-simple.c | 34 +- drivers/led/issi/is31fl3731-simple.h | 3 +- drivers/led/issi/is31fl3731.c | 34 +- drivers/led/issi/is31fl3731.h | 3 +- drivers/led/issi/is31fl3733-simple.c | 47 ++- drivers/led/issi/is31fl3733-simple.h | 7 +- drivers/led/issi/is31fl3733.c | 47 ++- drivers/led/issi/is31fl3733.h | 7 +- drivers/led/issi/is31fl3736-simple.c | 34 +- drivers/led/issi/is31fl3736-simple.h | 3 +- drivers/led/issi/is31fl3736.c | 34 +- drivers/led/issi/is31fl3736.h | 3 +- drivers/led/issi/is31fl3737-simple.c | 34 +- drivers/led/issi/is31fl3737-simple.h | 3 +- drivers/led/issi/is31fl3737.c | 34 +- drivers/led/issi/is31fl3737.h | 3 +- drivers/led/issi/is31fl3741-simple.c | 34 +- drivers/led/issi/is31fl3741-simple.h | 3 +- drivers/led/issi/is31fl3741.c | 34 +- drivers/led/issi/is31fl3741.h | 3 +- drivers/led/issi/is31flcommon.c | 70 +++++ drivers/led/issi/is31flcommon.h | 2 + drivers/led/snled27351-simple.c | 32 +- drivers/led/snled27351-simple.h | 3 +- drivers/led/snled27351.c | 32 +- drivers/led/snled27351.h | 3 +- keyboards/acheron/apollo/87h/gamma/config.h | 1 - keyboards/aeboards/satellite/rev1/config.h | 4 +- keyboards/aeboards/satellite/rev1/rev1.c | 4 +- keyboards/fallacy/config.h | 2 +- keyboards/fallacy/indicators.c | 11 +- keyboards/hs60/v2/ansi/config.h | 2 +- keyboards/hs60/v2/hhkb/config.h | 2 +- keyboards/hs60/v2/iso/config.h | 2 +- keyboards/input_club/k_type/config.h | 4 +- keyboards/input_club/k_type/i2c_master.h | 1 + keyboards/input_club/k_type/is31fl3733-dual.c | 35 ++- keyboards/input_club/k_type/is31fl3733-dual.h | 7 +- .../input_club/k_type/k_type-rgbdriver.c | 22 +- keyboards/input_club/k_type/k_type.c | 2 +- keyboards/input_club/k_type/post_rules.mk | 4 +- keyboards/keebwerk/mega/ansi/config.h | 2 +- keyboards/kprepublic/bm60hsrgb/rev2/config.h | 4 +- keyboards/kprepublic/bm60hsrgb/rev2/rev2.c | 14 +- .../kprepublic/bm60hsrgb_iso/rev2/config.h | 4 +- .../kprepublic/bm60hsrgb_iso/rev2/rev2.c | 14 +- .../kprepublic/bm60hsrgb_poker/rev2/config.h | 4 +- .../kprepublic/bm60hsrgb_poker/rev2/rev2.c | 14 +- keyboards/matrix/m20add/config.h | 2 +- keyboards/matrix/m20add/rgb_ring.c | 10 +- keyboards/neson_design/700e/700e.c | 32 +- keyboards/neson_design/700e/config.h | 2 +- keyboards/neson_design/n6/config.h | 2 +- keyboards/neson_design/n6/n6.c | 26 +- keyboards/novelkeys/nk65/config.h | 2 +- keyboards/novelkeys/nk87/config.h | 2 +- keyboards/spaceholdings/nebula12/config.h | 2 +- keyboards/spaceholdings/nebula68/config.h | 2 +- keyboards/tkc/portico/config.h | 2 +- keyboards/tkc/portico/portico.c | 2 +- keyboards/tkc/portico75/config.h | 2 +- keyboards/tkc/portico75/portico75.c | 2 +- keyboards/wilba_tech/rama_works_kara/config.h | 2 +- keyboards/wilba_tech/rama_works_koyu/config.h | 2 +- .../wilba_tech/rama_works_m10_c/config.h | 2 +- .../wilba_tech/rama_works_m50_a/config.h | 2 +- .../wilba_tech/rama_works_m60_a/config.h | 2 +- .../wilba_tech/rama_works_m65_b/config.h | 2 +- .../wilba_tech/rama_works_m65_bx/config.h | 2 +- keyboards/wilba_tech/rama_works_m6_b/config.h | 2 +- .../wilba_tech/rama_works_u80_a/config.h | 2 +- keyboards/wilba_tech/wt60_a/config.h | 2 +- keyboards/wilba_tech/wt60_b/config.h | 2 +- keyboards/wilba_tech/wt60_bx/config.h | 2 +- keyboards/wilba_tech/wt60_c/config.h | 2 +- keyboards/wilba_tech/wt65_a/config.h | 2 +- keyboards/wilba_tech/wt65_b/config.h | 2 +- keyboards/wilba_tech/wt75_a/config.h | 2 +- keyboards/wilba_tech/wt75_b/config.h | 2 +- keyboards/wilba_tech/wt75_c/config.h | 2 +- keyboards/wilba_tech/wt80_a/config.h | 2 +- keyboards/wilba_tech/wt_mono_backlight.c | 11 +- keyboards/wilba_tech/wt_rgb_backlight.c | 66 ++-- keyboards/wilba_tech/zeal60/config.h | 2 +- keyboards/wilba_tech/zeal65/config.h | 2 +- keyboards/xelus/dawn60/rev1/config.h | 2 +- keyboards/xelus/dawn60/rev1_qmk/config.h | 4 +- keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c | 34 +- keyboards/xelus/pachi/rgb/rev1/config.h | 3 +- keyboards/xelus/pachi/rgb/rev1/rev1.c | 4 +- keyboards/xelus/pachi/rgb/rev2/config.h | 3 +- keyboards/xelus/pachi/rgb/rev2/rev2.c | 4 +- quantum/led_matrix/led_matrix_drivers.c | 286 ++--------------- quantum/rgb_matrix/rgb_matrix_drivers.c | 297 ++---------------- 100 files changed, 795 insertions(+), 798 deletions(-) diff --git a/drivers/led/aw20216s.c b/drivers/led/aw20216s.c index 988cb6e9f6..8f3ebec510 100644 --- a/drivers/led/aw20216s.c +++ b/drivers/led/aw20216s.c @@ -126,6 +126,15 @@ static inline void aw20216s_auto_lowpower(pin_t cs_pin) { aw20216s_write_register(cs_pin, AW20216S_PAGE_FUNCTION, AW20216S_REG_MIXFUNCTION, AW20216S_MIXCR_DEFAULT | AW20216S_LPEN); } +void aw20216s_init_drivers(void) { + spi_init(); + + aw20216s_init(AW20216S_CS_PIN_1, AW20216S_EN_PIN_1); +#if defined(AW20216S_CS_PIN_2) + aw20216s_init(AW20216S_CS_PIN_2, AW20216S_EN_PIN_2); +#endif +} + void aw20216s_init(pin_t cs_pin, pin_t en_pin) { setPinOutput(en_pin); writePinHigh(en_pin); @@ -155,7 +164,7 @@ void aw20216s_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } void aw20216s_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) { + for (uint8_t i = 0; i < AW20216S_LED_COUNT; i++) { aw20216s_set_color(i, red, green, blue); } } diff --git a/drivers/led/aw20216s.h b/drivers/led/aw20216s.h index 4060126446..0d6bd3c189 100644 --- a/drivers/led/aw20216s.h +++ b/drivers/led/aw20216s.h @@ -65,8 +65,9 @@ typedef struct aw20216s_led_t { uint8_t b; } aw20216s_led_t; -extern const aw20216s_led_t PROGMEM g_aw20216s_leds[RGB_MATRIX_LED_COUNT]; +extern const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT]; +void aw20216s_init_drivers(void); void aw20216s_init(pin_t cs_pin, pin_t en_pin); void aw20216s_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); void aw20216s_set_color_all(uint8_t red, uint8_t green, uint8_t blue); diff --git a/drivers/led/issi/is31fl3218-simple.c b/drivers/led/issi/is31fl3218-simple.c index a78dedfcf1..bdf3187fe1 100644 --- a/drivers/led/issi/is31fl3218-simple.c +++ b/drivers/led/issi/is31fl3218-simple.c @@ -68,6 +68,8 @@ void is31fl3218_write_pwm_buffer(uint8_t *pwm_buffer) { } void is31fl3218_init(void) { + i2c_init(); + // In case we ever want to reinitialize (?) is31fl3218_write_register(IS31FL3218_REG_RESET, 0x00); @@ -86,11 +88,17 @@ void is31fl3218_init(void) { // Load PWM registers and LED Control register data is31fl3218_write_register(IS31FL3218_REG_UPDATE, 0x01); + + for (int i = 0; i < IS31FL3218_LED_COUNT; i++) { + is31fl3218_set_led_control_register(i, true); + } + + is31fl3218_update_led_control_registers(); } void is31fl3218_set_value(int index, uint8_t value) { is31fl3218_led_t led; - if (index >= 0 && index < LED_MATRIX_LED_COUNT) { + if (index >= 0 && index < IS31FL3218_LED_COUNT) { memcpy_P(&led, (&g_is31fl3218_leds[index]), sizeof(led)); } if (g_pwm_buffer[led.v - IS31FL3218_REG_PWM] == value) { @@ -101,7 +109,7 @@ void is31fl3218_set_value(int index, uint8_t value) { } void is31fl3218_set_value_all(uint8_t value) { - for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { + for (int i = 0; i < IS31FL3218_LED_COUNT; i++) { is31fl3218_set_value(i, value); } } diff --git a/drivers/led/issi/is31fl3218-simple.h b/drivers/led/issi/is31fl3218-simple.h index 34a4886957..959990a93f 100644 --- a/drivers/led/issi/is31fl3218-simple.h +++ b/drivers/led/issi/is31fl3218-simple.h @@ -30,7 +30,7 @@ typedef struct is31fl3218_led_t { uint8_t v; } __attribute__((packed)) is31fl3218_led_t; -extern const is31fl3218_led_t PROGMEM g_is31fl3218_leds[LED_MATRIX_LED_COUNT]; +extern const is31fl3218_led_t PROGMEM g_is31fl3218_leds[IS31FL3218_LED_COUNT]; void is31fl3218_init(void); diff --git a/drivers/led/issi/is31fl3218.c b/drivers/led/issi/is31fl3218.c index 87a0acfc08..04523a3c01 100644 --- a/drivers/led/issi/is31fl3218.c +++ b/drivers/led/issi/is31fl3218.c @@ -68,6 +68,8 @@ void is31fl3218_write_pwm_buffer(uint8_t *pwm_buffer) { } void is31fl3218_init(void) { + i2c_init(); + // In case we ever want to reinitialize (?) is31fl3218_write_register(IS31FL3218_REG_RESET, 0x00); @@ -86,11 +88,17 @@ void is31fl3218_init(void) { // Load PWM registers and LED Control register data is31fl3218_write_register(IS31FL3218_REG_UPDATE, 0x01); + + for (int i = 0; i < IS31FL3218_LED_COUNT; i++) { + is31fl3218_set_led_control_register(i, true, true, true); + } + + is31fl3218_update_led_control_registers(); } void is31fl3218_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { is31fl3218_led_t led; - if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { + if (index >= 0 && index < IS31FL3218_LED_COUNT) { memcpy_P(&led, (&g_is31fl3218_leds[index]), sizeof(led)); } if (g_pwm_buffer[led.r - IS31FL3218_REG_PWM] == red && g_pwm_buffer[led.g - IS31FL3218_REG_PWM] == green && g_pwm_buffer[led.b - IS31FL3218_REG_PWM] == blue) { @@ -103,7 +111,7 @@ void is31fl3218_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } void is31fl3218_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { + for (int i = 0; i < IS31FL3218_LED_COUNT; i++) { is31fl3218_set_color(i, red, green, blue); } } diff --git a/drivers/led/issi/is31fl3218.h b/drivers/led/issi/is31fl3218.h index 844e11f490..c48bc2f238 100644 --- a/drivers/led/issi/is31fl3218.h +++ b/drivers/led/issi/is31fl3218.h @@ -32,7 +32,7 @@ typedef struct is31fl3218_led_t { uint8_t b; } __attribute__((packed)) is31fl3218_led_t; -extern const is31fl3218_led_t PROGMEM g_is31fl3218_leds[RGB_MATRIX_LED_COUNT]; +extern const is31fl3218_led_t PROGMEM g_is31fl3218_leds[IS31FL3218_LED_COUNT]; void is31fl3218_init(void); diff --git a/drivers/led/issi/is31fl3731-simple.c b/drivers/led/issi/is31fl3731-simple.c index adf2ccfca0..3663d30c10 100644 --- a/drivers/led/issi/is31fl3731-simple.c +++ b/drivers/led/issi/is31fl3731-simple.c @@ -104,6 +104,36 @@ void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { } } +void is31fl3731_init_drivers(void) { + i2c_init(); + + is31fl3731_init(IS31FL3731_I2C_ADDRESS_1); +#if defined(IS31FL3731_I2C_ADDRESS_2) + is31fl3731_init(IS31FL3731_I2C_ADDRESS_2); +# if defined(IS31FL3731_I2C_ADDRESS_3) + is31fl3731_init(IS31FL3731_I2C_ADDRESS_3); +# if defined(IS31FL3731_I2C_ADDRESS_4) + is31fl3731_init(IS31FL3731_I2C_ADDRESS_4); +# endif +# endif +#endif + + for (int i = 0; i < IS31FL3731_LED_COUNT; i++) { + is31fl3731_set_led_control_register(i, true); + } + + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0); +#if defined(IS31FL3731_I2C_ADDRESS_2) + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_2, 1); +# if defined(IS31FL3731_I2C_ADDRESS_3) + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_3, 2); +# if defined(IS31FL3731_I2C_ADDRESS_4) + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_4, 3); +# endif +# endif +#endif +} + void is31fl3731_init(uint8_t addr) { // In order to avoid the LEDs being driven with garbage data // in the LED driver's PWM registers, first enable software shutdown, @@ -161,7 +191,7 @@ void is31fl3731_init(uint8_t addr) { void is31fl3731_set_value(int index, uint8_t value) { is31fl3731_led_t led; - if (index >= 0 && index < LED_MATRIX_LED_COUNT) { + if (index >= 0 && index < IS31FL3731_LED_COUNT) { memcpy_P(&led, (&g_is31fl3731_leds[index]), sizeof(led)); // Subtract 0x24 to get the second index of g_pwm_buffer @@ -175,7 +205,7 @@ void is31fl3731_set_value(int index, uint8_t value) { } void is31fl3731_set_value_all(uint8_t value) { - for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { + for (int i = 0; i < IS31FL3731_LED_COUNT; i++) { is31fl3731_set_value(i, value); } } diff --git a/drivers/led/issi/is31fl3731-simple.h b/drivers/led/issi/is31fl3731-simple.h index 2ab253717c..32504c1933 100644 --- a/drivers/led/issi/is31fl3731-simple.h +++ b/drivers/led/issi/is31fl3731-simple.h @@ -66,8 +66,9 @@ typedef struct is31fl3731_led_t { uint8_t v; } __attribute__((packed)) is31fl3731_led_t; -extern const is31fl3731_led_t PROGMEM g_is31fl3731_leds[LED_MATRIX_LED_COUNT]; +extern const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT]; +void is31fl3731_init_drivers(void); void is31fl3731_init(uint8_t addr); void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data); void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); diff --git a/drivers/led/issi/is31fl3731.c b/drivers/led/issi/is31fl3731.c index 767c0da0d9..42abd8ed38 100644 --- a/drivers/led/issi/is31fl3731.c +++ b/drivers/led/issi/is31fl3731.c @@ -101,6 +101,36 @@ void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { } } +void is31fl3731_init_drivers(void) { + i2c_init(); + + is31fl3731_init(IS31FL3731_I2C_ADDRESS_1); +#if defined(IS31FL3731_I2C_ADDRESS_2) + is31fl3731_init(IS31FL3731_I2C_ADDRESS_2); +# if defined(IS31FL3731_I2C_ADDRESS_3) + is31fl3731_init(IS31FL3731_I2C_ADDRESS_3); +# if defined(IS31FL3731_I2C_ADDRESS_4) + is31fl3731_init(IS31FL3731_I2C_ADDRESS_4); +# endif +# endif +#endif + + for (int i = 0; i < IS31FL3731_LED_COUNT; i++) { + is31fl3731_set_led_control_register(i, true, true, true); + } + + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0); +#if defined(IS31FL3731_I2C_ADDRESS_2) + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_2, 1); +# if defined(IS31FL3731_I2C_ADDRESS_3) + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_3, 2); +# if defined(IS31FL3731_I2C_ADDRESS_4) + is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_4, 3); +# endif +# endif +#endif +} + void is31fl3731_init(uint8_t addr) { // In order to avoid the LEDs being driven with garbage data // in the LED driver's PWM registers, first enable software shutdown, @@ -158,7 +188,7 @@ void is31fl3731_init(uint8_t addr) { void is31fl3731_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { is31fl3731_led_t led; - if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { + if (index >= 0 && index < IS31FL3731_LED_COUNT) { memcpy_P(&led, (&g_is31fl3731_leds[index]), sizeof(led)); // Subtract 0x24 to get the second index of g_pwm_buffer @@ -173,7 +203,7 @@ void is31fl3731_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } void is31fl3731_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { + for (int i = 0; i < IS31FL3731_LED_COUNT; i++) { is31fl3731_set_color(i, red, green, blue); } } diff --git a/drivers/led/issi/is31fl3731.h b/drivers/led/issi/is31fl3731.h index 756c5b473a..73fa018897 100644 --- a/drivers/led/issi/is31fl3731.h +++ b/drivers/led/issi/is31fl3731.h @@ -67,8 +67,9 @@ typedef struct is31fl3731_led_t { uint8_t b; } __attribute__((packed)) is31fl3731_led_t; -extern const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT]; +extern const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT]; +void is31fl3731_init_drivers(void); void is31fl3731_init(uint8_t addr); void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data); void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); diff --git a/drivers/led/issi/is31fl3733-simple.c b/drivers/led/issi/is31fl3733-simple.c index dbbf86a8f5..aa1b02450c 100644 --- a/drivers/led/issi/is31fl3733-simple.c +++ b/drivers/led/issi/is31fl3733-simple.c @@ -63,6 +63,19 @@ # define IS31FL3733_GLOBALCURRENT 0xFF #endif +#ifndef IS31FL3733_SYNC_1 +# define IS31FL3733_SYNC_1 IS31FL3733_SYNC_NONE +#endif +#ifndef IS31FL3733_SYNC_2 +# define IS31FL3733_SYNC_2 IS31FL3733_SYNC_NONE +#endif +#ifndef IS31FL3733_SYNC_3 +# define IS31FL3733_SYNC_3 IS31FL3733_SYNC_NONE +#endif +#ifndef IS31FL3733_SYNC_4 +# define IS31FL3733_SYNC_4 IS31FL3733_SYNC_NONE +#endif + // Transfer buffer for TWITransmitData() uint8_t g_twi_transfer_buffer[20]; @@ -126,6 +139,36 @@ bool is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { return true; } +void is31fl3733_init_drivers(void) { + i2c_init(); + + is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_1); +#if defined(IS31FL3733_I2C_ADDRESS_2) + is31fl3733_init(IS31FL3733_I2C_ADDRESS_2, IS31FL3733_SYNC_2); +# if defined(IS31FL3733_I2C_ADDRESS_3) + is31fl3733_init(IS31FL3733_I2C_ADDRESS_3, IS31FL3733_SYNC_3); +# if defined(IS31FL3733_I2C_ADDRESS_4) + is31fl3733_init(IS31FL3733_I2C_ADDRESS_4, IS31FL3733_SYNC_4); +# endif +# endif +#endif + + for (int i = 0; i < IS31FL3733_LED_COUNT; i++) { + is31fl3733_set_led_control_register(i, true); + } + + is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_1, 0); +#if defined(IS31FL3733_I2C_ADDRESS_2) + is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_2, 1); +# if defined(IS31FL3733_I2C_ADDRESS_3) + is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_3, 2); +# if defined(IS31FL3733_I2C_ADDRESS_4) + is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_4, 3); +# endif +# endif +#endif +} + void is31fl3733_init(uint8_t addr, uint8_t sync) { // In order to avoid the LEDs being driven with garbage data // in the LED driver's PWM registers, shutdown is enabled last. @@ -174,7 +217,7 @@ void is31fl3733_init(uint8_t addr, uint8_t sync) { void is31fl3733_set_value(int index, uint8_t value) { is31fl3733_led_t led; - if (index >= 0 && index < LED_MATRIX_LED_COUNT) { + if (index >= 0 && index < IS31FL3733_LED_COUNT) { memcpy_P(&led, (&g_is31fl3733_leds[index]), sizeof(led)); if (g_pwm_buffer[led.driver][led.v] == value) { @@ -186,7 +229,7 @@ void is31fl3733_set_value(int index, uint8_t value) { } void is31fl3733_set_value_all(uint8_t value) { - for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { + for (int i = 0; i < IS31FL3733_LED_COUNT; i++) { is31fl3733_set_value(i, value); } } diff --git a/drivers/led/issi/is31fl3733-simple.h b/drivers/led/issi/is31fl3733-simple.h index e9f68e3506..367af43c6a 100644 --- a/drivers/led/issi/is31fl3733-simple.h +++ b/drivers/led/issi/is31fl3733-simple.h @@ -85,8 +85,9 @@ typedef struct is31fl3733_led_t { uint8_t v; } __attribute__((packed)) is31fl3733_led_t; -extern const is31fl3733_led_t PROGMEM g_is31fl3733_leds[LED_MATRIX_LED_COUNT]; +extern const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT]; +void is31fl3733_init_drivers(void); void is31fl3733_init(uint8_t addr, uint8_t sync); bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data); bool is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); @@ -119,6 +120,10 @@ void is31fl3733_flush(void); #define IS31FL3733_PWM_FREQUENCY_2K1_HZ 0b011 #define IS31FL3733_PWM_FREQUENCY_1K05_HZ 0b100 +#define IS31FL3733_SYNC_NONE 0b00 +#define IS31FL3733_SYNC_MASTER 0b01 +#define IS31FL3733_SYNC_SLAVE 0b10 + #define A_1 0x00 #define A_2 0x01 #define A_3 0x02 diff --git a/drivers/led/issi/is31fl3733.c b/drivers/led/issi/is31fl3733.c index 35ec96a55a..24b0733030 100644 --- a/drivers/led/issi/is31fl3733.c +++ b/drivers/led/issi/is31fl3733.c @@ -62,6 +62,19 @@ # define IS31FL3733_GLOBALCURRENT 0xFF #endif +#ifndef IS31FL3733_SYNC_1 +# define IS31FL3733_SYNC_1 IS31FL3733_SYNC_NONE +#endif +#ifndef IS31FL3733_SYNC_2 +# define IS31FL3733_SYNC_2 IS31FL3733_SYNC_NONE +#endif +#ifndef IS31FL3733_SYNC_3 +# define IS31FL3733_SYNC_3 IS31FL3733_SYNC_NONE +#endif +#ifndef IS31FL3733_SYNC_4 +# define IS31FL3733_SYNC_4 IS31FL3733_SYNC_NONE +#endif + // Transfer buffer for TWITransmitData() uint8_t g_twi_transfer_buffer[20]; @@ -125,6 +138,36 @@ bool is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { return true; } +void is31fl3733_init_drivers(void) { + i2c_init(); + + is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_1); +#if defined(IS31FL3733_I2C_ADDRESS_2) + is31fl3733_init(IS31FL3733_I2C_ADDRESS_2, IS31FL3733_SYNC_2); +# if defined(IS31FL3733_I2C_ADDRESS_3) + is31fl3733_init(IS31FL3733_I2C_ADDRESS_3, IS31FL3733_SYNC_3); +# if defined(IS31FL3733_I2C_ADDRESS_4) + is31fl3733_init(IS31FL3733_I2C_ADDRESS_4, IS31FL3733_SYNC_4); +# endif +# endif +#endif + + for (int i = 0; i < IS31FL3733_LED_COUNT; i++) { + is31fl3733_set_led_control_register(i, true, true, true); + } + + is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_1, 0); +#if defined(IS31FL3733_I2C_ADDRESS_2) + is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_2, 1); +# if defined(IS31FL3733_I2C_ADDRESS_3) + is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_3, 2); +# if defined(IS31FL3733_I2C_ADDRESS_4) + is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_4, 3); +# endif +# endif +#endif +} + void is31fl3733_init(uint8_t addr, uint8_t sync) { // In order to avoid the LEDs being driven with garbage data // in the LED driver's PWM registers, shutdown is enabled last. @@ -173,7 +216,7 @@ void is31fl3733_init(uint8_t addr, uint8_t sync) { void is31fl3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { is31fl3733_led_t led; - if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { + if (index >= 0 && index < IS31FL3733_LED_COUNT) { memcpy_P(&led, (&g_is31fl3733_leds[index]), sizeof(led)); if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { @@ -187,7 +230,7 @@ void is31fl3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } void is31fl3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { + for (int i = 0; i < IS31FL3733_LED_COUNT; i++) { is31fl3733_set_color(i, red, green, blue); } } diff --git a/drivers/led/issi/is31fl3733.h b/drivers/led/issi/is31fl3733.h index bda6f1908f..4902b3c1d7 100644 --- a/drivers/led/issi/is31fl3733.h +++ b/drivers/led/issi/is31fl3733.h @@ -110,8 +110,9 @@ typedef struct is31fl3733_led_t { uint8_t b; } __attribute__((packed)) is31fl3733_led_t; -extern const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT]; +extern const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT]; +void is31fl3733_init_drivers(void); void is31fl3733_init(uint8_t addr, uint8_t sync); bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data); bool is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); @@ -144,6 +145,10 @@ void is31fl3733_flush(void); #define IS31FL3733_PWM_FREQUENCY_2K1_HZ 0b011 #define IS31FL3733_PWM_FREQUENCY_1K05_HZ 0b100 +#define IS31FL3733_SYNC_NONE 0b00 +#define IS31FL3733_SYNC_MASTER 0b01 +#define IS31FL3733_SYNC_SLAVE 0b10 + #define A_1 0x00 #define A_2 0x01 #define A_3 0x02 diff --git a/drivers/led/issi/is31fl3736-simple.c b/drivers/led/issi/is31fl3736-simple.c index d8262c3416..2876533819 100644 --- a/drivers/led/issi/is31fl3736-simple.c +++ b/drivers/led/issi/is31fl3736-simple.c @@ -112,6 +112,36 @@ void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { } } +void is31fl3736_init_drivers(void) { + i2c_init(); + + is31fl3736_init(IS31FL3736_I2C_ADDRESS_1); +#if defined(IS31FL3736_I2C_ADDRESS_2) + is31fl3736_init(IS31FL3736_I2C_ADDRESS_2); +# if defined(IS31FL3736_I2C_ADDRESS_3) + is31fl3736_init(IS31FL3736_I2C_ADDRESS_3); +# if defined(IS31FL3736_I2C_ADDRESS_4) + is31fl3736_init(IS31FL3736_I2C_ADDRESS_4); +# endif +# endif +#endif + + for (int i = 0; i < IS31FL3736_LED_COUNT; i++) { + is31fl3736_set_led_control_register(i, true); + } + + is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_1, 0); +#if defined(IS31FL3736_I2C_ADDRESS_2) + is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_2, 1); +# if defined(IS31FL3736_I2C_ADDRESS_3) + is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_3, 2); +# if defined(IS31FL3736_I2C_ADDRESS_4) + is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_4, 3); +# endif +# endif +#endif +} + void is31fl3736_init(uint8_t addr) { // In order to avoid the LEDs being driven with garbage data // in the LED driver's PWM registers, shutdown is enabled last. @@ -159,7 +189,7 @@ void is31fl3736_init(uint8_t addr) { void is31fl3736_set_value(int index, uint8_t value) { is31fl3736_led_t led; - if (index >= 0 && index < LED_MATRIX_LED_COUNT) { + if (index >= 0 && index < IS31FL3736_LED_COUNT) { memcpy_P(&led, (&g_is31fl3736_leds[index]), sizeof(led)); if (g_pwm_buffer[led.driver][led.v] == value) { @@ -171,7 +201,7 @@ void is31fl3736_set_value(int index, uint8_t value) { } void is31fl3736_set_value_all(uint8_t value) { - for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { + for (int i = 0; i < IS31FL3736_LED_COUNT; i++) { is31fl3736_set_value(i, value); } } diff --git a/drivers/led/issi/is31fl3736-simple.h b/drivers/led/issi/is31fl3736-simple.h index fe3cec9564..88422ec3a4 100644 --- a/drivers/led/issi/is31fl3736-simple.h +++ b/drivers/led/issi/is31fl3736-simple.h @@ -80,8 +80,9 @@ typedef struct is31fl3736_led_t { uint8_t v; } __attribute__((packed)) is31fl3736_led_t; -extern const is31fl3736_led_t PROGMEM g_is31fl3736_leds[LED_MATRIX_LED_COUNT]; +extern const is31fl3736_led_t PROGMEM g_is31fl3736_leds[IS31FL3736_LED_COUNT]; +void is31fl3736_init_drivers(void); void is31fl3736_init(uint8_t addr); void is31fl3736_write_register(uint8_t addr, uint8_t reg, uint8_t data); void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); diff --git a/drivers/led/issi/is31fl3736.c b/drivers/led/issi/is31fl3736.c index 4edf1b04c8..ad421e5cf2 100644 --- a/drivers/led/issi/is31fl3736.c +++ b/drivers/led/issi/is31fl3736.c @@ -112,6 +112,36 @@ void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { } } +void is31fl3736_init_drivers(void) { + i2c_init(); + + is31fl3736_init(IS31FL3736_I2C_ADDRESS_1); +#if defined(IS31FL3736_I2C_ADDRESS_2) + is31fl3736_init(IS31FL3736_I2C_ADDRESS_2); +# if defined(IS31FL3736_I2C_ADDRESS_3) + is31fl3736_init(IS31FL3736_I2C_ADDRESS_3); +# if defined(IS31FL3736_I2C_ADDRESS_4) + is31fl3736_init(IS31FL3736_I2C_ADDRESS_4); +# endif +# endif +#endif + + for (int i = 0; i < IS31FL3736_LED_COUNT; i++) { + is31fl3736_set_led_control_register(i, true, true, true); + } + + is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_1, 0); +#if defined(IS31FL3736_I2C_ADDRESS_2) + is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_2, 1); +# if defined(IS31FL3736_I2C_ADDRESS_3) + is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_3, 2); +# if defined(IS31FL3736_I2C_ADDRESS_4) + is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_4, 3); +# endif +# endif +#endif +} + void is31fl3736_init(uint8_t addr) { // In order to avoid the LEDs being driven with garbage data // in the LED driver's PWM registers, shutdown is enabled last. @@ -159,7 +189,7 @@ void is31fl3736_init(uint8_t addr) { void is31fl3736_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { is31fl3736_led_t led; - if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { + if (index >= 0 && index < IS31FL3736_LED_COUNT) { memcpy_P(&led, (&g_is31fl3736_leds[index]), sizeof(led)); if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { @@ -173,7 +203,7 @@ void is31fl3736_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } void is31fl3736_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { + for (int i = 0; i < IS31FL3736_LED_COUNT; i++) { is31fl3736_set_color(i, red, green, blue); } } diff --git a/drivers/led/issi/is31fl3736.h b/drivers/led/issi/is31fl3736.h index 728021ae29..b64fdf9d1c 100644 --- a/drivers/led/issi/is31fl3736.h +++ b/drivers/led/issi/is31fl3736.h @@ -94,8 +94,9 @@ typedef struct is31fl3736_led_t { uint8_t b; } __attribute__((packed)) is31fl3736_led_t; -extern const is31fl3736_led_t PROGMEM g_is31fl3736_leds[RGB_MATRIX_LED_COUNT]; +extern const is31fl3736_led_t PROGMEM g_is31fl3736_leds[IS31FL3736_LED_COUNT]; +void is31fl3736_init_drivers(void); void is31fl3736_init(uint8_t addr); void is31fl3736_write_register(uint8_t addr, uint8_t reg, uint8_t data); void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); diff --git a/drivers/led/issi/is31fl3737-simple.c b/drivers/led/issi/is31fl3737-simple.c index 7a4263d9af..aa6eba982c 100644 --- a/drivers/led/issi/is31fl3737-simple.c +++ b/drivers/led/issi/is31fl3737-simple.c @@ -115,6 +115,36 @@ void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { } } +void is31fl3737_init_drivers(void) { + i2c_init(); + + is31fl3737_init(IS31FL3737_I2C_ADDRESS_1); +#if defined(IS31FL3737_I2C_ADDRESS_2) + is31fl3737_init(IS31FL3737_I2C_ADDRESS_2); +# if defined(IS31FL3737_I2C_ADDRESS_3) + is31fl3737_init(IS31FL3737_I2C_ADDRESS_3); +# if defined(IS31FL3737_I2C_ADDRESS_4) + is31fl3737_init(IS31FL3737_I2C_ADDRESS_4); +# endif +# endif +#endif + + for (int i = 0; i < IS31FL3737_LED_COUNT; i++) { + is31fl3737_set_led_control_register(i, true); + } + + is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_1, 0); +#if defined(IS31FL3737_I2C_ADDRESS_2) + is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_2, 1); +# if defined(IS31FL3737_I2C_ADDRESS_3) + is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_3, 2); +# if defined(IS31FL3737_I2C_ADDRESS_4) + is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_4, 3); +# endif +# endif +#endif +} + void is31fl3737_init(uint8_t addr) { // In order to avoid the LEDs being driven with garbage data // in the LED driver's PWM registers, shutdown is enabled last. @@ -162,7 +192,7 @@ void is31fl3737_init(uint8_t addr) { void is31fl3737_set_value(int index, uint8_t value) { is31fl3737_led_t led; - if (index >= 0 && index < LED_MATRIX_LED_COUNT) { + if (index >= 0 && index < IS31FL3737_LED_COUNT) { memcpy_P(&led, (&g_is31fl3737_leds[index]), sizeof(led)); if (g_pwm_buffer[led.driver][led.v] == value) { @@ -174,7 +204,7 @@ void is31fl3737_set_value(int index, uint8_t value) { } void is31fl3737_set_value_all(uint8_t value) { - for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { + for (int i = 0; i < IS31FL3737_LED_COUNT; i++) { is31fl3737_set_value(i, value); } } diff --git a/drivers/led/issi/is31fl3737-simple.h b/drivers/led/issi/is31fl3737-simple.h index b177d4fb0a..4c7af02176 100644 --- a/drivers/led/issi/is31fl3737-simple.h +++ b/drivers/led/issi/is31fl3737-simple.h @@ -70,8 +70,9 @@ typedef struct is31fl3737_led_t { uint8_t v; } __attribute__((packed)) is31fl3737_led_t; -extern const is31fl3737_led_t PROGMEM g_is31fl3737_leds[LED_MATRIX_LED_COUNT]; +extern const is31fl3737_led_t PROGMEM g_is31fl3737_leds[IS31FL3737_LED_COUNT]; +void is31fl3737_init_drivers(void); void is31fl3737_init(uint8_t addr); void is31fl3737_write_register(uint8_t addr, uint8_t reg, uint8_t data); void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); diff --git a/drivers/led/issi/is31fl3737.c b/drivers/led/issi/is31fl3737.c index d769bb9707..75544231ec 100644 --- a/drivers/led/issi/is31fl3737.c +++ b/drivers/led/issi/is31fl3737.c @@ -115,6 +115,36 @@ void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { } } +void is31fl3737_init_drivers(void) { + i2c_init(); + + is31fl3737_init(IS31FL3737_I2C_ADDRESS_1); +#if defined(IS31FL3737_I2C_ADDRESS_2) + is31fl3737_init(IS31FL3737_I2C_ADDRESS_2); +# if defined(IS31FL3737_I2C_ADDRESS_3) + is31fl3737_init(IS31FL3737_I2C_ADDRESS_3); +# if defined(IS31FL3737_I2C_ADDRESS_4) + is31fl3737_init(IS31FL3737_I2C_ADDRESS_4); +# endif +# endif +#endif + + for (int i = 0; i < IS31FL3737_LED_COUNT; i++) { + is31fl3737_set_led_control_register(i, true, true, true); + } + + is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_1, 0); +#if defined(IS31FL3737_I2C_ADDRESS_2) + is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_2, 1); +# if defined(IS31FL3737_I2C_ADDRESS_3) + is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_3, 2); +# if defined(IS31FL3737_I2C_ADDRESS_4) + is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_4, 3); +# endif +# endif +#endif +} + void is31fl3737_init(uint8_t addr) { // In order to avoid the LEDs being driven with garbage data // in the LED driver's PWM registers, shutdown is enabled last. @@ -162,7 +192,7 @@ void is31fl3737_init(uint8_t addr) { void is31fl3737_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { is31fl3737_led_t led; - if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { + if (index >= 0 && index < IS31FL3737_LED_COUNT) { memcpy_P(&led, (&g_is31fl3737_leds[index]), sizeof(led)); if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { @@ -176,7 +206,7 @@ void is31fl3737_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } void is31fl3737_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { + for (int i = 0; i < IS31FL3737_LED_COUNT; i++) { is31fl3737_set_color(i, red, green, blue); } } diff --git a/drivers/led/issi/is31fl3737.h b/drivers/led/issi/is31fl3737.h index 12f84e3bfe..fadab70c74 100644 --- a/drivers/led/issi/is31fl3737.h +++ b/drivers/led/issi/is31fl3737.h @@ -87,8 +87,9 @@ typedef struct is31fl3737_led_t { uint8_t b; } __attribute__((packed)) is31fl3737_led_t; -extern const is31fl3737_led_t PROGMEM g_is31fl3737_leds[RGB_MATRIX_LED_COUNT]; +extern const is31fl3737_led_t PROGMEM g_is31fl3737_leds[IS31FL3737_LED_COUNT]; +void is31fl3737_init_drivers(void); void is31fl3737_init(uint8_t addr); void is31fl3737_write_register(uint8_t addr, uint8_t reg, uint8_t data); void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); diff --git a/drivers/led/issi/is31fl3741-simple.c b/drivers/led/issi/is31fl3741-simple.c index c7335866ec..8e77a6446d 100644 --- a/drivers/led/issi/is31fl3741-simple.c +++ b/drivers/led/issi/is31fl3741-simple.c @@ -143,6 +143,36 @@ bool is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { return true; } +void is31fl3741_init_drivers(void) { + i2c_init(); + + is31fl3741_init(IS31FL3741_I2C_ADDRESS_1); +#if defined(IS31FL3741_I2C_ADDRESS_2) + is31fl3741_init(IS31FL3741_I2C_ADDRESS_2); +# if defined(IS31FL3741_I2C_ADDRESS_3) + is31fl3741_init(IS31FL3741_I2C_ADDRESS_3); +# if defined(IS31FL3741_I2C_ADDRESS_4) + is31fl3741_init(IS31FL3741_I2C_ADDRESS_4); +# endif +# endif +#endif + + for (int i = 0; i < IS31FL3741_LED_COUNT; i++) { + is31fl3741_set_led_control_register(i, true); + } + + is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0); +#if defined(IS31FL3741_I2C_ADDRESS_2) + is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_2, 1); +# if defined(IS31FL3741_I2C_ADDRESS_3) + is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_3, 2); +# if defined(IS31FL3741_I2C_ADDRESS_4) + is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_4, 3); +# endif +# endif +#endif +} + void is31fl3741_init(uint8_t addr) { // In order to avoid the LEDs being driven with garbage data // in the LED driver's PWM registers, shutdown is enabled last. @@ -174,7 +204,7 @@ void is31fl3741_init(uint8_t addr) { void is31fl3741_set_value(int index, uint8_t value) { is31fl3741_led_t led; - if (index >= 0 && index < LED_MATRIX_LED_COUNT) { + if (index >= 0 && index < IS31FL3741_LED_COUNT) { memcpy_P(&led, (&g_is31fl3741_leds[index]), sizeof(led)); if (g_pwm_buffer[led.driver][led.v] == value) { @@ -186,7 +216,7 @@ void is31fl3741_set_value(int index, uint8_t value) { } void is31fl3741_set_value_all(uint8_t value) { - for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { + for (int i = 0; i < IS31FL3741_LED_COUNT; i++) { is31fl3741_set_value(i, value); } } diff --git a/drivers/led/issi/is31fl3741-simple.h b/drivers/led/issi/is31fl3741-simple.h index 8ecc330298..d97591fa60 100644 --- a/drivers/led/issi/is31fl3741-simple.h +++ b/drivers/led/issi/is31fl3741-simple.h @@ -70,8 +70,9 @@ typedef struct is31fl3741_led_t { uint32_t v : 10; } __attribute__((packed)) is31fl3741_led_t; -extern const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT]; +extern const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT]; +void is31fl3741_init_drivers(void); void is31fl3741_init(uint8_t addr); void is31fl3741_write_register(uint8_t addr, uint8_t reg, uint8_t data); bool is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); diff --git a/drivers/led/issi/is31fl3741.c b/drivers/led/issi/is31fl3741.c index 5e4ed711ca..f316b76157 100644 --- a/drivers/led/issi/is31fl3741.c +++ b/drivers/led/issi/is31fl3741.c @@ -143,6 +143,36 @@ bool is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { return true; } +void is31fl3741_init_drivers(void) { + i2c_init(); + + is31fl3741_init(IS31FL3741_I2C_ADDRESS_1); +#if defined(IS31FL3741_I2C_ADDRESS_2) + is31fl3741_init(IS31FL3741_I2C_ADDRESS_2); +# if defined(IS31FL3741_I2C_ADDRESS_3) + is31fl3741_init(IS31FL3741_I2C_ADDRESS_3); +# if defined(IS31FL3741_I2C_ADDRESS_4) + is31fl3741_init(IS31FL3741_I2C_ADDRESS_4); +# endif +# endif +#endif + + for (int i = 0; i < IS31FL3741_LED_COUNT; i++) { + is31fl3741_set_led_control_register(i, true, true, true); + } + + is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0); +#if defined(IS31FL3741_I2C_ADDRESS_2) + is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_2, 1); +# if defined(IS31FL3741_I2C_ADDRESS_3) + is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_3, 2); +# if defined(IS31FL3741_I2C_ADDRESS_4) + is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_4, 3); +# endif +# endif +#endif +} + void is31fl3741_init(uint8_t addr) { // In order to avoid the LEDs being driven with garbage data // in the LED driver's PWM registers, shutdown is enabled last. @@ -174,7 +204,7 @@ void is31fl3741_init(uint8_t addr) { void is31fl3741_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { is31fl3741_led_t led; - if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { + if (index >= 0 && index < IS31FL3741_LED_COUNT) { memcpy_P(&led, (&g_is31fl3741_leds[index]), sizeof(led)); if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { @@ -188,7 +218,7 @@ void is31fl3741_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } void is31fl3741_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { + for (int i = 0; i < IS31FL3741_LED_COUNT; i++) { is31fl3741_set_color(i, red, green, blue); } } diff --git a/drivers/led/issi/is31fl3741.h b/drivers/led/issi/is31fl3741.h index 13e132efa0..1febb6398b 100644 --- a/drivers/led/issi/is31fl3741.h +++ b/drivers/led/issi/is31fl3741.h @@ -87,8 +87,9 @@ typedef struct is31fl3741_led_t { uint32_t b : 10; } __attribute__((packed)) is31fl3741_led_t; -extern const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT]; +extern const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT]; +void is31fl3741_init_drivers(void); void is31fl3741_init(uint8_t addr); void is31fl3741_write_register(uint8_t addr, uint8_t reg, uint8_t data); bool is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); diff --git a/drivers/led/issi/is31flcommon.c b/drivers/led/issi/is31flcommon.c index 850f23c831..d6b9bce93d 100644 --- a/drivers/led/issi/is31flcommon.c +++ b/drivers/led/issi/is31flcommon.c @@ -188,6 +188,41 @@ void IS31FL_common_flush(void) { } #ifdef RGB_MATRIX_ENABLE +void IS31FL_RGB_init_drivers(void) { + i2c_init(); + + IS31FL_common_init(DRIVER_ADDR_1, ISSI_SSR_1); +# if defined(DRIVER_ADDR_2) + IS31FL_common_init(DRIVER_ADDR_2, ISSI_SSR_2); +# if defined(DRIVER_ADDR_3) + IS31FL_common_init(DRIVER_ADDR_3, ISSI_SSR_3); +# if defined(DRIVER_ADDR_4) + IS31FL_common_init(DRIVER_ADDR_4, ISSI_SSR_4); +# endif +# endif +# endif + + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { + IS31FL_RGB_set_scaling_buffer(i, true, true, true); + } + + // This actually updates the LED drivers +# ifdef ISSI_MANUAL_SCALING + IS31FL_set_manual_scaling_buffer(); +# endif + + IS31FL_common_update_scaling_register(DRIVER_ADDR_1, 0); +# if defined(DRIVER_ADDR_2) + IS31FL_common_update_scaling_register(DRIVER_ADDR_2, 1); +# if defined(DRIVER_ADDR_3) + IS31FL_common_update_scaling_register(DRIVER_ADDR_3, 2); +# if defined(DRIVER_ADDR_4) + IS31FL_common_update_scaling_register(DRIVER_ADDR_4, 3); +# endif +# endif +# endif +} + // Colour is set by adjusting PWM register void IS31FL_RGB_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { @@ -231,6 +266,41 @@ void IS31FL_RGB_set_scaling_buffer(uint8_t index, bool red, bool green, bool blu #elif defined(LED_MATRIX_ENABLE) // LED Matrix Specific scripts +void IS31FL_simple_init_drivers(void) { + i2c_init(); + + IS31FL_common_init(DRIVER_ADDR_1, ISSI_SSR_1); +# if defined(DRIVER_ADDR_2) + IS31FL_common_init(DRIVER_ADDR_2, ISSI_SSR_2); +# if defined(DRIVER_ADDR_3) + IS31FL_common_init(DRIVER_ADDR_3, ISSI_SSR_3); +# if defined(DRIVER_ADDR_4) + IS31FL_common_init(DRIVER_ADDR_4, ISSI_SSR_4); +# endif +# endif +# endif + + for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { + IS31FL_simple_set_scaling_buffer(i, true); + } + +// This actually updates the LED drivers +# ifdef ISSI_MANUAL_SCALING + IS31FL_set_manual_scaling_buffer(); +# endif + + IS31FL_common_update_scaling_register(DRIVER_ADDR_1, 0); +# if defined(DRIVER_ADDR_2) + IS31FL_common_update_scaling_register(DRIVER_ADDR_2, 1); +# if defined(DRIVER_ADDR_3) + IS31FL_common_update_scaling_register(DRIVER_ADDR_3, 2); +# if defined(DRIVER_ADDR_4) + IS31FL_common_update_scaling_register(DRIVER_ADDR_4, 3); +# endif +# endif +# endif +} + void IS31FL_simple_set_scaling_buffer(uint8_t index, bool value) { is31_led led; memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); diff --git a/drivers/led/issi/is31flcommon.h b/drivers/led/issi/is31flcommon.h index c380f2a8d6..94ec9ae3ce 100644 --- a/drivers/led/issi/is31flcommon.h +++ b/drivers/led/issi/is31flcommon.h @@ -71,11 +71,13 @@ void IS31FL_common_flush(void); #ifdef RGB_MATRIX_ENABLE // RGB Matrix Specific scripts +void IS31FL_RGB_init_drivers(void); void IS31FL_RGB_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); void IS31FL_RGB_set_color_all(uint8_t red, uint8_t green, uint8_t blue); void IS31FL_RGB_set_scaling_buffer(uint8_t index, bool red, bool green, bool blue); #elif defined(LED_MATRIX_ENABLE) // LED Matrix Specific scripts +void IS31FL_simple_init_drivers(void); void IS31FL_simple_set_scaling_buffer(uint8_t index, bool value); void IS31FL_simple_set_brightness(int index, uint8_t value); void IS31FL_simple_set_brigntness_all(uint8_t value); diff --git a/drivers/led/snled27351-simple.c b/drivers/led/snled27351-simple.c index 882fe4e8b4..c274506f83 100644 --- a/drivers/led/snled27351-simple.c +++ b/drivers/led/snled27351-simple.c @@ -99,6 +99,34 @@ bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { return true; } +void snled27351_init_drivers(void) { + snled27351_init(SNLED27351_I2C_ADDRESS_1); +#if defined(SNLED27351_I2C_ADDRESS_2) + snled27351_init(SNLED27351_I2C_ADDRESS_2); +# if defined(SNLED27351_I2C_ADDRESS_3) + snled27351_init(SNLED27351_I2C_ADDRESS_3); +# if defined(SNLED27351_I2C_ADDRESS_4) + snled27351_init(SNLED27351_I2C_ADDRESS_4); +# endif +# endif +#endif + + for (int i = 0; i < SNLED27351_LED_COUNT; i++) { + snled27351_set_led_control_register(i, true); + } + + snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_1, 0); +#if defined(SNLED27351_I2C_ADDRESS_2) + snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_2, 1); +# if defined(SNLED27351_I2C_ADDRESS_3) + snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_3, 2); +# if defined(SNLED27351_I2C_ADDRESS_4) + snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_4, 3); +# endif +# endif +#endif +} + void snled27351_init(uint8_t addr) { // Select to function page snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); @@ -147,7 +175,7 @@ void snled27351_init(uint8_t addr) { void snled27351_set_value(int index, uint8_t value) { snled27351_led_t led; - if (index >= 0 && index < LED_MATRIX_LED_COUNT) { + if (index >= 0 && index < SNLED27351_LED_COUNT) { memcpy_P(&led, (&g_snled27351_leds[index]), sizeof(led)); if (g_pwm_buffer[led.driver][led.v] == value) { @@ -159,7 +187,7 @@ void snled27351_set_value(int index, uint8_t value) { } void snled27351_set_value_all(uint8_t value) { - for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { + for (int i = 0; i < SNLED27351_LED_COUNT; i++) { snled27351_set_value(i, value); } } diff --git a/drivers/led/snled27351-simple.h b/drivers/led/snled27351-simple.h index e8238071a5..64257202b9 100644 --- a/drivers/led/snled27351-simple.h +++ b/drivers/led/snled27351-simple.h @@ -68,8 +68,9 @@ typedef struct snled27351_led_t { uint8_t v; } __attribute__((packed)) snled27351_led_t; -extern const snled27351_led_t PROGMEM g_snled27351_leds[LED_MATRIX_LED_COUNT]; +extern const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT]; +void snled27351_init_drivers(void); void snled27351_init(uint8_t addr); bool snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data); bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); diff --git a/drivers/led/snled27351.c b/drivers/led/snled27351.c index 198b190dac..2746737a5a 100644 --- a/drivers/led/snled27351.c +++ b/drivers/led/snled27351.c @@ -98,6 +98,34 @@ bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { return true; } +void snled27351_init_drivers(void) { + snled27351_init(SNLED27351_I2C_ADDRESS_1); +#if defined(SNLED27351_I2C_ADDRESS_2) + snled27351_init(SNLED27351_I2C_ADDRESS_2); +# if defined(SNLED27351_I2C_ADDRESS_3) + snled27351_init(SNLED27351_I2C_ADDRESS_3); +# if defined(SNLED27351_I2C_ADDRESS_4) + snled27351_init(SNLED27351_I2C_ADDRESS_4); +# endif +# endif +#endif + + for (int i = 0; i < SNLED27351_LED_COUNT; i++) { + snled27351_set_led_control_register(i, true, true, true); + } + + snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_1, 0); +#if defined(SNLED27351_I2C_ADDRESS_2) + snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_2, 1); +# if defined(SNLED27351_I2C_ADDRESS_3) + snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_3, 2); +# if defined(SNLED27351_I2C_ADDRESS_4) + snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_4, 3); +# endif +# endif +#endif +} + void snled27351_init(uint8_t addr) { // Select to function page snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); @@ -146,7 +174,7 @@ void snled27351_init(uint8_t addr) { void snled27351_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { snled27351_led_t led; - if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { + if (index >= 0 && index < SNLED27351_LED_COUNT) { memcpy_P(&led, (&g_snled27351_leds[index]), sizeof(led)); if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { @@ -160,7 +188,7 @@ void snled27351_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } void snled27351_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { + for (int i = 0; i < SNLED27351_LED_COUNT; i++) { snled27351_set_color(i, red, green, blue); } } diff --git a/drivers/led/snled27351.h b/drivers/led/snled27351.h index e92ca71799..cecd552dbb 100644 --- a/drivers/led/snled27351.h +++ b/drivers/led/snled27351.h @@ -82,8 +82,9 @@ typedef struct snled27351_led_t { uint8_t b; } __attribute__((packed)) snled27351_led_t; -extern const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT]; +extern const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT]; +void snled27351_init_drivers(void); void snled27351_init(uint8_t addr); bool snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data); bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); diff --git a/keyboards/acheron/apollo/87h/gamma/config.h b/keyboards/acheron/apollo/87h/gamma/config.h index e8600a18f1..151239ba33 100644 --- a/keyboards/acheron/apollo/87h/gamma/config.h +++ b/keyboards/acheron/apollo/87h/gamma/config.h @@ -30,7 +30,6 @@ along with this program. If not, see . #define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 87 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL -#define ISSI_DRIVER_TOTAL RGB_MATRIX_LED_COUNT #define RGB_MATRIX_DEFAULT_VAL 80 #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/aeboards/satellite/rev1/config.h b/keyboards/aeboards/satellite/rev1/config.h index fcf3105f0f..7a06288394 100644 --- a/keyboards/aeboards/satellite/rev1/config.h +++ b/keyboards/aeboards/satellite/rev1/config.h @@ -23,8 +23,8 @@ #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 #define DRIVER_2_LED_TOTAL 36 -#define ISSI_DRIVER_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define RGB_MATRIX_LED_COUNT ISSI_DRIVER_TOTAL +#define IS31FL3731_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT IS31FL3731_LED_COUNT #define RGB_MATRIX_DEFAULT_VAL 80 #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/aeboards/satellite/rev1/rev1.c b/keyboards/aeboards/satellite/rev1/rev1.c index 4c6e7d6d7c..6727894e06 100644 --- a/keyboards/aeboards/satellite/rev1/rev1.c +++ b/keyboards/aeboards/satellite/rev1/rev1.c @@ -18,7 +18,7 @@ #include "drivers/led/issi/is31fl3731.h" #ifdef RGB_MATRIX_ENABLE -const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -149,7 +149,7 @@ static void init(void) { is31fl3731_init(IS31FL3731_I2C_ADDRESS_1); is31fl3731_init(IS31FL3731_I2C_ADDRESS_2); - for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) { + for (int index = 0; index < IS31FL3731_LED_COUNT; index++) { bool enabled = !( ( index == 18+5) || //B5 ( index == 36+17) || //C17 ( index == 54+13) //D13 diff --git a/keyboards/fallacy/config.h b/keyboards/fallacy/config.h index 254f809c34..65cea1d5c1 100755 --- a/keyboards/fallacy/config.h +++ b/keyboards/fallacy/config.h @@ -20,7 +20,7 @@ */ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_DRIVER_COUNT 1 -#define LED_MATRIX_LED_COUNT 3 +#define IS31FL3731_LED_COUNT 3 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ diff --git a/keyboards/fallacy/indicators.c b/keyboards/fallacy/indicators.c index a8630d2e11..b95786db41 100755 --- a/keyboards/fallacy/indicators.c +++ b/keyboards/fallacy/indicators.c @@ -22,14 +22,7 @@ * init IS31FL3731 and i2c */ void init_fallacy_leds(void) { - i2c_init(); - is31fl3731_init(IS31FL3731_I2C_ADDRESS_1); - - for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { - is31fl3731_set_led_control_register(i, true); - } - - is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0); + is31fl3731_init_drivers(); } @@ -54,7 +47,7 @@ void set_fallacy_led(int index, bool state) { /* define LED matrix */ -const is31fl3731_led_t PROGMEM g_is31fl3731_leds[LED_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {0, C1_1}, {0, C2_1}, {0, C3_1}, diff --git a/keyboards/hs60/v2/ansi/config.h b/keyboards/hs60/v2/ansi/config.h index 3600b30feb..e4dc24dc33 100644 --- a/keyboards/hs60/v2/ansi/config.h +++ b/keyboards/hs60/v2/ansi/config.h @@ -55,7 +55,7 @@ along with this program. If not, see . #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_DRIVER_COUNT 1 -#define RGB_MATRIX_LED_COUNT 64 +#define IS31FL3733_LED_COUNT 64 // These define which keys in the matrix are alphas/mods // Used for backlight effects so colors are different for diff --git a/keyboards/hs60/v2/hhkb/config.h b/keyboards/hs60/v2/hhkb/config.h index bdc27435cf..029e1ebb18 100644 --- a/keyboards/hs60/v2/hhkb/config.h +++ b/keyboards/hs60/v2/hhkb/config.h @@ -55,7 +55,7 @@ along with this program. If not, see . #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_DRIVER_COUNT 1 -#define RGB_MATRIX_LED_COUNT 64 +#define IS31FL3733_LED_COUNT 64 // These define which keys in the matrix are alphas/mods // Used for backlight effects so colors are different for diff --git a/keyboards/hs60/v2/iso/config.h b/keyboards/hs60/v2/iso/config.h index 9a9a4ed623..52cada51a6 100644 --- a/keyboards/hs60/v2/iso/config.h +++ b/keyboards/hs60/v2/iso/config.h @@ -52,7 +52,7 @@ along with this program. If not, see . #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_DRIVER_COUNT 1 -#define RGB_MATRIX_LED_COUNT 64 +#define IS31FL3733_LED_COUNT 64 // These define which keys in the matrix are alphas/mods // Used for backlight effects so colors are different for diff --git a/keyboards/input_club/k_type/config.h b/keyboards/input_club/k_type/config.h index d6abd39a83..c188038a82 100644 --- a/keyboards/input_club/k_type/config.h +++ b/keyboards/input_club/k_type/config.h @@ -34,7 +34,6 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT #ifdef RGB_MATRIX_ENABLE -//#include "gpio.h" // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: // https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects @@ -106,7 +105,8 @@ along with this program. If not, see . # define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_GND # define IS31FL3733_DRIVER_COUNT 2 +# define IS31FL3733_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) # define DRIVER_1_LED_TOTAL 64 # define DRIVER_2_LED_TOTAL 55 -# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +# define RGB_MATRIX_LED_COUNT IS31FL3733_LED_COUNT #endif diff --git a/keyboards/input_club/k_type/i2c_master.h b/keyboards/input_club/k_type/i2c_master.h index d4e9d6878f..db4f12e43c 100644 --- a/keyboards/input_club/k_type/i2c_master.h +++ b/keyboards/input_club/k_type/i2c_master.h @@ -26,6 +26,7 @@ #include #include +#include "gpio.h" #ifndef I2C_COUNT # define I2C_COUNT 1 diff --git a/keyboards/input_club/k_type/is31fl3733-dual.c b/keyboards/input_club/k_type/is31fl3733-dual.c index 54e9d76960..0b6c6a607c 100644 --- a/keyboards/input_club/k_type/is31fl3733-dual.c +++ b/keyboards/input_club/k_type/is31fl3733-dual.c @@ -60,6 +60,19 @@ # define IS31FL3733_GLOBALCURRENT 0xFF #endif +#ifndef IS31FL3733_SYNC_1 +# define IS31FL3733_SYNC_1 IS31FL3733_SYNC_NONE +#endif +#ifndef IS31FL3733_SYNC_2 +# define IS31FL3733_SYNC_2 IS31FL3733_SYNC_NONE +#endif +#ifndef IS31FL3733_SYNC_3 +# define IS31FL3733_SYNC_3 IS31FL3733_SYNC_NONE +#endif +#ifndef IS31FL3733_SYNC_4 +# define IS31FL3733_SYNC_4 IS31FL3733_SYNC_NONE +#endif + // Transfer buffer for TWITransmitData() uint8_t g_twi_transfer_buffer[20]; @@ -125,6 +138,24 @@ bool is31fl3733_write_pwm_buffer(uint8_t index, uint8_t addr, uint8_t *pwm_buffe return true; } +void is31fl3733_init_drivers(void) { + i2c_init(&I2CD1, I2C1_SCL_PIN, I2C1_SDA_PIN); + is31fl3733_init(0, IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_1); +# ifdef USE_I2C2 + i2c_init(&I2CD2, I2C2_SCL_PIN, I2C2_SDA_PIN); + is31fl3733_init(1, IS31FL3733_I2C_ADDRESS_2, IS31FL3733_SYNC_2); +# endif + + for (int i = 0; i < IS31FL3733_LED_COUNT; i++) { + is31fl3733_set_led_control_register(i, true, true, true); + } + + is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_1, 0); +# ifdef USE_I2C2 + is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_2, 1); +# endif +} + void is31fl3733_init(uint8_t bus, uint8_t addr, uint8_t sync) { // In order to avoid the LEDs being driven with garbage data // in the LED driver's PWM registers, shutdown is enabled last. @@ -173,7 +204,7 @@ void is31fl3733_init(uint8_t bus, uint8_t addr, uint8_t sync) { void is31fl3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { is31fl3733_led_t led; - if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { + if (index >= 0 && index < IS31FL3733_LED_COUNT) { memcpy_P(&led, (&g_is31fl3733_leds[index]), sizeof(led)); if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { @@ -187,7 +218,7 @@ void is31fl3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } void is31fl3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { + for (int i = 0; i < IS31FL3733_LED_COUNT; i++) { is31fl3733_set_color(i, red, green, blue); } } diff --git a/keyboards/input_club/k_type/is31fl3733-dual.h b/keyboards/input_club/k_type/is31fl3733-dual.h index 33943af320..696c234b67 100644 --- a/keyboards/input_club/k_type/is31fl3733-dual.h +++ b/keyboards/input_club/k_type/is31fl3733-dual.h @@ -46,8 +46,9 @@ typedef struct is31fl3733_led_t { uint8_t b; } __attribute__((packed)) is31fl3733_led_t; -extern const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT]; +extern const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT]; +void is31fl3733_init_drivers(void); void is31fl3733_init(uint8_t bus, uint8_t addr, uint8_t sync); bool is31fl3733_write_register(uint8_t index, uint8_t addr, uint8_t reg, uint8_t data); bool is31fl3733_write_pwm_buffer(uint8_t index, uint8_t addr, uint8_t *pwm_buffer); @@ -80,6 +81,10 @@ void is31fl3733_flush(void); #define IS31FL3733_PWM_FREQUENCY_2K1_HZ 0x03 #define IS31FL3733_PWM_FREQUENCY_1K05_HZ 0x04 +#define IS31FL3733_SYNC_NONE 0b00 +#define IS31FL3733_SYNC_MASTER 0b01 +#define IS31FL3733_SYNC_SLAVE 0b10 + #define A_1 0x00 #define A_2 0x01 #define A_3 0x02 diff --git a/keyboards/input_club/k_type/k_type-rgbdriver.c b/keyboards/input_club/k_type/k_type-rgbdriver.c index 1e8132e6dc..e4d2d2d04b 100644 --- a/keyboards/input_club/k_type/k_type-rgbdriver.c +++ b/keyboards/input_club/k_type/k_type-rgbdriver.c @@ -16,30 +16,10 @@ #ifdef RGB_MATRIX_ENABLE # include "rgb_matrix.h" -# include "i2c_master.h" # include "is31fl3733-dual.h" -# include "gpio.h" - -static void init(void) { - i2c_init(&I2CD1, I2C1_SCL_PIN, I2C1_SDA_PIN); - is31fl3733_init(0, IS31FL3733_I2C_ADDRESS_1, 0); -# ifdef USE_I2C2 - i2c_init(&I2CD2, I2C2_SCL_PIN, I2C2_SDA_PIN); - is31fl3733_init(1, IS31FL3733_I2C_ADDRESS_2, 0); -# endif - for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) { - bool enabled = true; - // This only caches it for later - is31fl3733_set_led_control_register(index, enabled, enabled, enabled); - } - is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_1, 0); -# ifdef USE_I2C2 - is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_2, 1); -# endif -} const rgb_matrix_driver_t rgb_matrix_driver = { - .init = init, + .init = is31fl3733_init_drivers, .flush = is31fl3733_flush, .set_color = is31fl3733_set_color, .set_color_all = is31fl3733_set_color_all, diff --git a/keyboards/input_club/k_type/k_type.c b/keyboards/input_club/k_type/k_type.c index c6d06b51dc..e97007fc70 100644 --- a/keyboards/input_club/k_type/k_type.c +++ b/keyboards/input_club/k_type/k_type.c @@ -20,7 +20,7 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE # include "is31fl3733-dual.h" -const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, B_1, A_1, C_1 }, { 0, B_2, A_2, C_2 }, { 0, B_3, A_3, C_3 }, diff --git a/keyboards/input_club/k_type/post_rules.mk b/keyboards/input_club/k_type/post_rules.mk index 897e422b05..ba750e2624 100644 --- a/keyboards/input_club/k_type/post_rules.mk +++ b/keyboards/input_club/k_type/post_rules.mk @@ -1,5 +1,5 @@ ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) # Additional files for RGB lighting - SRC += k_type-rgbdriver.c - QUANTUM_LIB_SRC += i2c_master.c is31fl3733-dual.c + SRC += k_type-rgbdriver.c is31fl3733-dual.c + QUANTUM_LIB_SRC += i2c_master.c endif diff --git a/keyboards/keebwerk/mega/ansi/config.h b/keyboards/keebwerk/mega/ansi/config.h index ee98c95636..c3b90cc2ca 100755 --- a/keyboards/keebwerk/mega/ansi/config.h +++ b/keyboards/keebwerk/mega/ansi/config.h @@ -53,7 +53,7 @@ along with this program. If not, see . #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_SDA #define IS31FL3733_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 128 +#define IS31FL3733_LED_COUNT 128 // These define which keys in the matrix are alphas/mods // Used for backlight effects so colors are different for diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/config.h b/keyboards/kprepublic/bm60hsrgb/rev2/config.h index 9349838622..8d194f5ccb 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb/rev2/config.h @@ -74,7 +74,7 @@ #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 -#define ISSI_LED_TOTAL DRIVER_1_LED_TOTAL +#define IS31FL3733_LED_COUNT DRIVER_1_LED_TOTAL // Underglow LEDs are WS2812, but someone might want to use RGBLIGHT for them; // don't use those LEDs in RGB Matrix in that case. @@ -84,7 +84,7 @@ # define WS2812_LED_TOTAL 6 #endif -#define RGB_MATRIX_LED_COUNT (ISSI_LED_TOTAL + WS2812_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (IS31FL3733_LED_COUNT + WS2812_LED_TOTAL) #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c index 8b786d7cfb..0e9b3d318d 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c @@ -22,7 +22,7 @@ # include "is31fl3733.h" # include "ws2812.h" -const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, B_1, A_1, C_1 }, { 0, B_2, A_2, C_2 }, { 0, B_3, A_3, C_3 }, @@ -153,8 +153,8 @@ rgb_led_t rgb_matrix_ws2812_array[WS2812_LED_TOTAL]; static void rgb_matrix_driver_init(void) { i2c_init(); - is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, 0); - for (uint8_t index = 0; index < ISSI_LED_TOTAL; index++) { + is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_NONE); + for (uint8_t index = 0; index < IS31FL3733_LED_COUNT; index++) { bool enabled = true; is31fl3733_set_led_control_register(index, enabled, enabled, enabled); } @@ -169,13 +169,13 @@ static void rgb_matrix_driver_flush(void) { } static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - if (index < ISSI_LED_TOTAL) { + if (index < IS31FL3733_LED_COUNT) { is31fl3733_set_color(index, red, green, blue); } else { # if WS2812_LED_TOTAL > 0 - rgb_matrix_ws2812_array[index - ISSI_LED_TOTAL].r = red; - rgb_matrix_ws2812_array[index - ISSI_LED_TOTAL].g = green; - rgb_matrix_ws2812_array[index - ISSI_LED_TOTAL].b = blue; + rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].r = red; + rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].g = green; + rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].b = blue; # endif } } diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h index acd30f0659..b22c384460 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h @@ -82,7 +82,7 @@ // IS31FL3733+WS2812 driver setup used by this board the LED controller drivers // are compiled unconditionally). -#define ISSI_LED_TOTAL DRIVER_1_LED_TOTAL +#define IS31FL3733_LED_COUNT DRIVER_1_LED_TOTAL #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 @@ -94,7 +94,7 @@ # define WS2812_LED_TOTAL 6 #endif -#define RGB_MATRIX_LED_COUNT (ISSI_LED_TOTAL + WS2812_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (IS31FL3733_LED_COUNT + WS2812_LED_TOTAL) #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c index 02dd4ab6ce..2cfe18e08e 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c @@ -24,7 +24,7 @@ # include "ws2812.h" -const PROGMEM is31fl3733_led_t g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { +const PROGMEM is31fl3733_led_t g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, B_1, A_1, C_1 }, { 0, B_2, A_2, C_2 }, { 0, B_3, A_3, C_3 }, @@ -153,8 +153,8 @@ rgb_led_t rgb_matrix_ws2812_array[WS2812_LED_TOTAL]; static void rgb_matrix_driver_init(void) { i2c_init(); - is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, 0); - for (uint8_t index = 0; index < ISSI_LED_TOTAL; index++) { + is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_NONE); + for (uint8_t index = 0; index < IS31FL3733_LED_COUNT; index++) { bool enabled = true; is31fl3733_set_led_control_register(index, enabled, enabled, enabled); } @@ -169,13 +169,13 @@ static void rgb_matrix_driver_flush(void) { } static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - if (index < ISSI_LED_TOTAL) { + if (index < IS31FL3733_LED_COUNT) { is31fl3733_set_color(index, red, green, blue); } else { # if WS2812_LED_TOTAL > 0 - rgb_matrix_ws2812_array[index - ISSI_LED_TOTAL].r = red; - rgb_matrix_ws2812_array[index - ISSI_LED_TOTAL].g = green; - rgb_matrix_ws2812_array[index - ISSI_LED_TOTAL].b = blue; + rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].r = red; + rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].g = green; + rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].b = blue; # endif } } diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h index 7fd7575148..57cb40dc24 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h @@ -81,7 +81,7 @@ #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define DRIVER_1_LED_TOTAL 61 -#define ISSI_LED_TOTAL DRIVER_1_LED_TOTAL +#define IS31FL3733_LED_COUNT DRIVER_1_LED_TOTAL // Underglow LEDs are WS2812, but someone might want to use RGBLIGHT for them; // don't use those LEDs in RGB Matrix in that case. @@ -91,7 +91,7 @@ # define WS2812_LED_TOTAL 6 #endif -#define RGB_MATRIX_LED_COUNT (ISSI_LED_TOTAL + WS2812_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (IS31FL3733_LED_COUNT + WS2812_LED_TOTAL) #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c index f76c45e6c5..2e66a3096e 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c @@ -21,7 +21,7 @@ # include "is31fl3733.h" # include "ws2812.h" -const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, B_1, A_1, C_1 }, { 0, B_2, A_2, C_2 }, { 0, B_3, A_3, C_3 }, @@ -149,8 +149,8 @@ rgb_led_t rgb_matrix_ws2812_array[WS2812_LED_TOTAL]; static void rgb_matrix_driver_init(void) { i2c_init(); - is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, 0); - for (uint8_t index = 0; index < ISSI_LED_TOTAL; index++) { + is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_NONE); + for (uint8_t index = 0; index < IS31FL3733_LED_COUNT; index++) { bool enabled = true; is31fl3733_set_led_control_register(index, enabled, enabled, enabled); } @@ -165,13 +165,13 @@ static void rgb_matrix_driver_flush(void) { } static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - if (index < ISSI_LED_TOTAL) { + if (index < IS31FL3733_LED_COUNT) { is31fl3733_set_color(index, red, green, blue); } else { # if WS2812_LED_TOTAL > 0 - rgb_matrix_ws2812_array[index - ISSI_LED_TOTAL].r = red; - rgb_matrix_ws2812_array[index - ISSI_LED_TOTAL].g = green; - rgb_matrix_ws2812_array[index - ISSI_LED_TOTAL].b = blue; + rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].r = red; + rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].g = green; + rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].b = blue; # endif } } diff --git a/keyboards/matrix/m20add/config.h b/keyboards/matrix/m20add/config.h index aba2357357..51b050ca7c 100644 --- a/keyboards/matrix/m20add/config.h +++ b/keyboards/matrix/m20add/config.h @@ -80,4 +80,4 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_DRIVER_COUNT 1 -#define RGB_MATRIX_LED_COUNT 20 +#define IS31FL3731_LED_COUNT 20 diff --git a/keyboards/matrix/m20add/rgb_ring.c b/keyboards/matrix/m20add/rgb_ring.c index 553a3d5360..f3fbe83d72 100644 --- a/keyboards/matrix/m20add/rgb_ring.c +++ b/keyboards/matrix/m20add/rgb_ring.c @@ -30,7 +30,7 @@ #endif // rgb ring leds setting -const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -371,13 +371,7 @@ void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds) void rgb_ring_init(void) { - i2c_init(); - is31fl3731_init(IS31FL3731_I2C_ADDRESS_1); - for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) { - bool enabled = true; - is31fl3731_set_led_control_register(index, enabled, enabled, enabled); - } - is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0); + is31fl3731_init_drivers(); } void rgb_ring_task(void) diff --git a/keyboards/neson_design/700e/700e.c b/keyboards/neson_design/700e/700e.c index d4aa336edb..9def73d6a4 100644 --- a/keyboards/neson_design/700e/700e.c +++ b/keyboards/neson_design/700e/700e.c @@ -111,7 +111,7 @@ static void self_testing(void) } if (rgb_state.index >= ST_LEFT_END) { - for (int i = rgb_state.index - 1; i < RGB_MATRIX_LED_COUNT - rgb_state.index + 1; i++) { + for (int i = rgb_state.index - 1; i < IS31FL3731_LED_COUNT - rgb_state.index + 1; i++) { is31fl3731_set_color(i, led.r, led.g, led.b); } if (rgb_state.index == ST_LEFT_END) { @@ -173,13 +173,13 @@ static void self_testing(void) } break; case ST_STAGE_3: - if (rgb_state.index != RGB_MATRIX_LED_COUNT/2) { + if (rgb_state.index != IS31FL3731_LED_COUNT/2) { is31fl3731_set_color_all(0, 0, 0); } // light left and right - if (rgb_state.index == RGB_MATRIX_LED_COUNT/2) { + if (rgb_state.index == IS31FL3731_LED_COUNT/2) { if (rgb_state.duration) { rgb_state.duration--; } else { @@ -207,7 +207,7 @@ static void self_testing(void) update_ticks(); } -const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -294,18 +294,8 @@ void matrix_init_kb(void) setPinOutput(LED_CAPS_LOCK_PIN); writePinLow(LED_CAPS_LOCK_PIN); - i2c_init(); - is31fl3731_init(IS31FL3731_I2C_ADDRESS_1); -#ifdef IS31FL3731_I2C_ADDRESS_2 - is31fl3731_init(IS31FL3731_I2C_ADDRESS_2); -#endif - for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) { - is31fl3731_set_led_control_register(index, true, true, true); - } - is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0); -#ifdef IS31FL3731_I2C_ADDRESS_2 - is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_2, 1); -#endif + is31fl3731_init_drivers(); + update_ticks(); matrix_init_user(); } @@ -350,16 +340,16 @@ void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds) { if (rgb_state.state != NORMAL) return; - for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) { + for (uint8_t i = 0; i < IS31FL3731_LED_COUNT; i++) { is31fl3731_set_color(i, start_led[i].r, start_led[i].g, start_led[i].b); } rgb_led_t leds[4]; for (int i = 0; i < 4; i++) { - leds[i].r = start_led[RGB_MATRIX_LED_COUNT+i].g; - leds[i].g = start_led[RGB_MATRIX_LED_COUNT+i].r; - leds[i].b = start_led[RGB_MATRIX_LED_COUNT+i].b; + leds[i].r = start_led[IS31FL3731_LED_COUNT+i].g; + leds[i].g = start_led[IS31FL3731_LED_COUNT+i].r; + leds[i].b = start_led[IS31FL3731_LED_COUNT+i].b; } - //ws2812_setleds(start_led+RGB_MATRIX_LED_COUNT, 4); + //ws2812_setleds(start_led+IS31FL3731_LED_COUNT, 4); ws2812_setleds(leds, 4); } diff --git a/keyboards/neson_design/700e/config.h b/keyboards/neson_design/700e/config.h index bd1d9888ec..4cecb6165a 100644 --- a/keyboards/neson_design/700e/config.h +++ b/keyboards/neson_design/700e/config.h @@ -35,6 +35,6 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC #define IS31FL3731_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL) +#define IS31FL3731_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL) #define USB_SUSPEND_WAKEUP_DELAY 1000 diff --git a/keyboards/neson_design/n6/config.h b/keyboards/neson_design/n6/config.h index 22a25a0d92..847b26eb25 100644 --- a/keyboards/neson_design/n6/config.h +++ b/keyboards/neson_design/n6/config.h @@ -35,4 +35,4 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC #define IS31FL3731_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL) +#define IS31FL3731_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL) diff --git a/keyboards/neson_design/n6/n6.c b/keyboards/neson_design/n6/n6.c index 5f3ae3a169..38b634eeb7 100644 --- a/keyboards/neson_design/n6/n6.c +++ b/keyboards/neson_design/n6/n6.c @@ -115,7 +115,7 @@ static void self_testing(void) } if (rgb_state.index >= ST_LEFT_END) { - for (int i = rgb_state.index - 1; i < RGB_MATRIX_LED_COUNT - rgb_state.index + 1; i++) { + for (int i = rgb_state.index - 1; i < IS31FL3731_LED_COUNT - rgb_state.index + 1; i++) { is31fl3731_set_color(i, led.r, led.g, led.b); } if (rgb_state.index == ST_LEFT_END) { @@ -177,13 +177,13 @@ static void self_testing(void) } break; case ST_STAGE_3: - if (rgb_state.index != RGB_MATRIX_LED_COUNT/2) { + if (rgb_state.index != IS31FL3731_LED_COUNT/2) { is31fl3731_set_color_all(0, 0, 0); } // light left and right - if (rgb_state.index == RGB_MATRIX_LED_COUNT/2) { + if (rgb_state.index == IS31FL3731_LED_COUNT/2) { if (rgb_state.duration) { rgb_state.duration--; } else { @@ -211,7 +211,7 @@ static void self_testing(void) update_ticks(); } -const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -298,18 +298,8 @@ void matrix_init_kb(void) setPinOutput(LED_CAPS_LOCK_PIN); writePinLow(LED_CAPS_LOCK_PIN); - i2c_init(); - is31fl3731_init(IS31FL3731_I2C_ADDRESS_1); -#ifdef IS31FL3731_I2C_ADDRESS_2 - is31fl3731_init(IS31FL3731_I2C_ADDRESS_2); -#endif - for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) { - is31fl3731_set_led_control_register(index, true, true, true); - } - is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0); -#ifdef IS31FL3731_I2C_ADDRESS_2 - is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_2, 1); -#endif + is31fl3731_init_drivers(); + update_ticks(); matrix_init_user(); } @@ -352,10 +342,10 @@ void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds) { if (rgb_state.state != NORMAL) return; - for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) { + for (uint8_t i = 0; i < IS31FL3731_LED_COUNT; i++) { is31fl3731_set_color(i, start_led[i].r, start_led[i].g, start_led[i].b); } - ws2812_setleds(start_led+RGB_MATRIX_LED_COUNT, 1); + ws2812_setleds(start_led+IS31FL3731_LED_COUNT, 1); } bool led_update_kb(led_t led_state) diff --git a/keyboards/novelkeys/nk65/config.h b/keyboards/novelkeys/nk65/config.h index 4dc1ab9165..bbba5cd7d8 100755 --- a/keyboards/novelkeys/nk65/config.h +++ b/keyboards/novelkeys/nk65/config.h @@ -53,7 +53,7 @@ along with this program. If not, see . #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_SDA #define IS31FL3733_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 128 +#define IS31FL3733_LED_COUNT 128 // These define which keys in the matrix are alphas/mods // Used for backlight effects so colors are different for diff --git a/keyboards/novelkeys/nk87/config.h b/keyboards/novelkeys/nk87/config.h index 3b3e9309c1..41ecb8a8e3 100755 --- a/keyboards/novelkeys/nk87/config.h +++ b/keyboards/novelkeys/nk87/config.h @@ -53,7 +53,7 @@ along with this program. If not, see . #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_SDA #define IS31FL3733_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 128 +#define IS31FL3733_LED_COUNT 128 // These define which keys in the matrix are alphas/mods // Used for backlight effects so colors are different for diff --git a/keyboards/spaceholdings/nebula12/config.h b/keyboards/spaceholdings/nebula12/config.h index 5e4b48927f..512b775136 100755 --- a/keyboards/spaceholdings/nebula12/config.h +++ b/keyboards/spaceholdings/nebula12/config.h @@ -75,7 +75,7 @@ along with this program. If not, see . #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_DRIVER_COUNT 1 -#define RGB_MATRIX_LED_COUNT 16 +#define IS31FL3731_LED_COUNT 16 // These define which keys in the matrix are alphas/mods // Used for backlight effects so colors are different for diff --git a/keyboards/spaceholdings/nebula68/config.h b/keyboards/spaceholdings/nebula68/config.h index 0283a4a036..1ad24d364c 100755 --- a/keyboards/spaceholdings/nebula68/config.h +++ b/keyboards/spaceholdings/nebula68/config.h @@ -59,7 +59,7 @@ along with this program. If not, see . #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_SDA #define IS31FL3733_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 128 +#define IS31FL3733_LED_COUNT 128 // These define which keys in the matrix are alphas/mods // Used for backlight effects so colors are different for diff --git a/keyboards/tkc/portico/config.h b/keyboards/tkc/portico/config.h index 5599f2a36b..2a1056b4a5 100644 --- a/keyboards/tkc/portico/config.h +++ b/keyboards/tkc/portico/config.h @@ -51,7 +51,7 @@ along with this program. If not, see . #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC #define IS31FL3731_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 67 +#define IS31FL3731_LED_COUNT 67 #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/tkc/portico/portico.c b/keyboards/tkc/portico/portico.c index bbb09ef8f6..72f8754f6c 100644 --- a/keyboards/tkc/portico/portico.c +++ b/keyboards/tkc/portico/portico.c @@ -19,7 +19,7 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE -const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { { 0, C2_1, C3_1, C4_1 }, { 0, C1_1, C3_2, C4_2 }, { 0, C1_2, C2_2, C4_3 }, diff --git a/keyboards/tkc/portico75/config.h b/keyboards/tkc/portico75/config.h index 756dfbb54a..3a9b50baca 100644 --- a/keyboards/tkc/portico75/config.h +++ b/keyboards/tkc/portico75/config.h @@ -81,7 +81,7 @@ along with this program. If not, see . // WT_RGB IS31FL3741 driver code # define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND # define IS31FL3741_DRIVER_COUNT 1 -# define RGB_MATRIX_LED_COUNT 98 +# define IS31FL3741_LED_COUNT 98 # define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/tkc/portico75/portico75.c b/keyboards/tkc/portico75/portico75.c index 69d6256071..f0751483aa 100644 --- a/keyboards/tkc/portico75/portico75.c +++ b/keyboards/tkc/portico75/portico75.c @@ -20,7 +20,7 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE -const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, CS18_SW1, CS17_SW1, CS16_SW1}, {0, CS18_SW2, CS17_SW2, CS16_SW2}, {0, CS18_SW3, CS17_SW3, CS16_SW3}, diff --git a/keyboards/wilba_tech/rama_works_kara/config.h b/keyboards/wilba_tech/rama_works_kara/config.h index 5d8c9df820..09aac7a552 100644 --- a/keyboards/wilba_tech/rama_works_kara/config.h +++ b/keyboards/wilba_tech/rama_works_kara/config.h @@ -19,7 +19,7 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 72 +#define IS31FL3731_LED_COUNT 72 // Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/wilba_tech/rama_works_koyu/config.h b/keyboards/wilba_tech/rama_works_koyu/config.h index aad4cd12ac..512cff857b 100644 --- a/keyboards/wilba_tech/rama_works_koyu/config.h +++ b/keyboards/wilba_tech/rama_works_koyu/config.h @@ -19,7 +19,7 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 72 +#define IS31FL3731_LED_COUNT 72 // Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/wilba_tech/rama_works_m10_c/config.h b/keyboards/wilba_tech/rama_works_m10_c/config.h index 529896f6ed..1e0d943b96 100644 --- a/keyboards/wilba_tech/rama_works_m10_c/config.h +++ b/keyboards/wilba_tech/rama_works_m10_c/config.h @@ -23,7 +23,7 @@ // IS31FL3731 driver #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_DRIVER_COUNT 1 -#define RGB_MATRIX_LED_COUNT 12 +#define IS31FL3731_LED_COUNT 12 // Enable WT RGB backlight #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/rama_works_m50_a/config.h b/keyboards/wilba_tech/rama_works_m50_a/config.h index 599550b91f..98149ffa14 100644 --- a/keyboards/wilba_tech/rama_works_m50_a/config.h +++ b/keyboards/wilba_tech/rama_works_m50_a/config.h @@ -24,7 +24,7 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 72 +#define IS31FL3731_LED_COUNT 72 // Enable WT RGB backlight #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/rama_works_m60_a/config.h b/keyboards/wilba_tech/rama_works_m60_a/config.h index bc7d7e6128..c291ba2db3 100644 --- a/keyboards/wilba_tech/rama_works_m60_a/config.h +++ b/keyboards/wilba_tech/rama_works_m60_a/config.h @@ -19,7 +19,7 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 72 +#define IS31FL3731_LED_COUNT 72 // Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/wilba_tech/rama_works_m65_b/config.h b/keyboards/wilba_tech/rama_works_m65_b/config.h index b3e381d77d..9807fbc874 100644 --- a/keyboards/wilba_tech/rama_works_m65_b/config.h +++ b/keyboards/wilba_tech/rama_works_m65_b/config.h @@ -24,7 +24,7 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 72 +#define IS31FL3731_LED_COUNT 72 // Enable WT RGB backlight #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/rama_works_m65_bx/config.h b/keyboards/wilba_tech/rama_works_m65_bx/config.h index 8070e917d7..64da89ff9e 100644 --- a/keyboards/wilba_tech/rama_works_m65_bx/config.h +++ b/keyboards/wilba_tech/rama_works_m65_bx/config.h @@ -24,7 +24,7 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 72 +#define IS31FL3731_LED_COUNT 72 // Enable WT RGB backlight #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/rama_works_m6_b/config.h b/keyboards/wilba_tech/rama_works_m6_b/config.h index 27a5e72c04..112cd500be 100644 --- a/keyboards/wilba_tech/rama_works_m6_b/config.h +++ b/keyboards/wilba_tech/rama_works_m6_b/config.h @@ -20,7 +20,7 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define RGB_MATRIX_LED_COUNT 6 +#define IS31FL3218_LED_COUNT 6 #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/rama_works_u80_a/config.h b/keyboards/wilba_tech/rama_works_u80_a/config.h index 4ab2d53c3c..2a0da80fed 100644 --- a/keyboards/wilba_tech/rama_works_u80_a/config.h +++ b/keyboards/wilba_tech/rama_works_u80_a/config.h @@ -42,7 +42,7 @@ #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_I2C_ADDRESS_3 IS31FL3731_I2C_ADDRESS_SCL #define IS31FL3731_DRIVER_COUNT 3 -#define RGB_MATRIX_LED_COUNT 108 +#define IS31FL3731_LED_COUNT 108 #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/wt60_a/config.h b/keyboards/wilba_tech/wt60_a/config.h index c9d448fbb8..25a6f25a1c 100644 --- a/keyboards/wilba_tech/wt60_a/config.h +++ b/keyboards/wilba_tech/wt60_a/config.h @@ -64,4 +64,4 @@ #define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND #define IS31FL3736_DRIVER_COUNT 1 -#define LED_MATRIX_LED_COUNT 96 +#define IS31FL3736_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt60_b/config.h b/keyboards/wilba_tech/wt60_b/config.h index c5fb1b32c7..926136f332 100644 --- a/keyboards/wilba_tech/wt60_b/config.h +++ b/keyboards/wilba_tech/wt60_b/config.h @@ -26,7 +26,7 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 72 +#define IS31FL3731_LED_COUNT 72 #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/wt60_bx/config.h b/keyboards/wilba_tech/wt60_bx/config.h index f87d9ff48e..85ab052437 100644 --- a/keyboards/wilba_tech/wt60_bx/config.h +++ b/keyboards/wilba_tech/wt60_bx/config.h @@ -26,7 +26,7 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 72 +#define IS31FL3731_LED_COUNT 72 #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/wt60_c/config.h b/keyboards/wilba_tech/wt60_c/config.h index 4a1b8b6ad2..ca7366bc32 100644 --- a/keyboards/wilba_tech/wt60_c/config.h +++ b/keyboards/wilba_tech/wt60_c/config.h @@ -26,7 +26,7 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 72 +#define IS31FL3731_LED_COUNT 72 #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/wt65_a/config.h b/keyboards/wilba_tech/wt65_a/config.h index 04d607e77a..88f28ac844 100644 --- a/keyboards/wilba_tech/wt65_a/config.h +++ b/keyboards/wilba_tech/wt65_a/config.h @@ -64,4 +64,4 @@ #define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND #define IS31FL3736_DRIVER_COUNT 1 -#define LED_MATRIX_LED_COUNT 96 +#define IS31FL3736_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt65_b/config.h b/keyboards/wilba_tech/wt65_b/config.h index 780b3c80c4..164caecd00 100644 --- a/keyboards/wilba_tech/wt65_b/config.h +++ b/keyboards/wilba_tech/wt65_b/config.h @@ -64,4 +64,4 @@ #define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND #define IS31FL3736_DRIVER_COUNT 1 -#define LED_MATRIX_LED_COUNT 96 +#define IS31FL3736_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt75_a/config.h b/keyboards/wilba_tech/wt75_a/config.h index 29399e148a..a8185a6807 100644 --- a/keyboards/wilba_tech/wt75_a/config.h +++ b/keyboards/wilba_tech/wt75_a/config.h @@ -64,4 +64,4 @@ #define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND #define IS31FL3736_DRIVER_COUNT 1 -#define LED_MATRIX_LED_COUNT 96 +#define IS31FL3736_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt75_b/config.h b/keyboards/wilba_tech/wt75_b/config.h index 71ca6891ca..4834251691 100644 --- a/keyboards/wilba_tech/wt75_b/config.h +++ b/keyboards/wilba_tech/wt75_b/config.h @@ -64,4 +64,4 @@ #define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND #define IS31FL3736_DRIVER_COUNT 1 -#define LED_MATRIX_LED_COUNT 96 +#define IS31FL3736_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt75_c/config.h b/keyboards/wilba_tech/wt75_c/config.h index b404dccfbb..d1e81992f5 100644 --- a/keyboards/wilba_tech/wt75_c/config.h +++ b/keyboards/wilba_tech/wt75_c/config.h @@ -64,4 +64,4 @@ #define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND #define IS31FL3736_DRIVER_COUNT 1 -#define LED_MATRIX_LED_COUNT 96 +#define IS31FL3736_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt80_a/config.h b/keyboards/wilba_tech/wt80_a/config.h index a1f8fbdef6..c6594c1689 100644 --- a/keyboards/wilba_tech/wt80_a/config.h +++ b/keyboards/wilba_tech/wt80_a/config.h @@ -64,4 +64,4 @@ #define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND #define IS31FL3736_DRIVER_COUNT 1 -#define LED_MATRIX_LED_COUNT 96 +#define IS31FL3736_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt_mono_backlight.c b/keyboards/wilba_tech/wt_mono_backlight.c index 4add18b14e..e218f0af4b 100644 --- a/keyboards/wilba_tech/wt_mono_backlight.c +++ b/keyboards/wilba_tech/wt_mono_backlight.c @@ -50,7 +50,7 @@ backlight_config g_config = { .color_1 = MONO_BACKLIGHT_COLOR_1, }; -const is31fl3736_led_t PROGMEM g_is31fl3736_leds[LED_MATRIX_LED_COUNT] = { +const is31fl3736_led_t PROGMEM g_is31fl3736_leds[IS31FL3736_LED_COUNT] = { {0, A_1}, {0, A_2}, {0, A_3}, @@ -170,14 +170,7 @@ uint32_t g_any_key_hit = 0; void backlight_init_drivers(void) { - // Initialize I2C - i2c_init(); - is31fl3736_init( IS31FL3736_I2C_ADDRESS_1 ); - - for ( uint8_t index = 0; index < 96; index++ ) { - is31fl3736_set_led_control_register( index, true ); - } - is31fl3736_update_led_control_registers( IS31FL3736_I2C_ADDRESS_1, 0 ); + is31fl3736_init_drivers(); } void backlight_set_key_hit(uint8_t row, uint8_t column) diff --git a/keyboards/wilba_tech/wt_rgb_backlight.c b/keyboards/wilba_tech/wt_rgb_backlight.c index 1c865deecf..8bd04c840f 100644 --- a/keyboards/wilba_tech/wt_rgb_backlight.c +++ b/keyboards/wilba_tech/wt_rgb_backlight.c @@ -157,7 +157,7 @@ uint32_t g_any_key_hit = 0; #if defined(RGB_BACKLIGHT_HS60) #define ISSI_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND -const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -234,7 +234,7 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { #define ISSI_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND #define ISSI_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_SDA -const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -375,7 +375,7 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { #elif defined(RGB_BACKLIGHT_NEBULA12) #define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -406,7 +406,7 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { #define ISSI_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA #define ISSI_ADDR_3 IS31FL3731_I2C_ADDRESS_SCL -const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -531,7 +531,7 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { #define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND #define ISSI_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA -const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -610,7 +610,7 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { #define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND #define ISSI_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC -const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -694,7 +694,7 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { #define ISSI_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define ISSI_ADDR_2 -const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -817,7 +817,7 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { }; #elif defined(RGB_BACKLIGHT_M6_B) -const is31fl3218_led_t PROGMEM g_is31fl3218_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3218_led_t PROGMEM g_is31fl3218_leds[IS31FL3218_LED_COUNT] = { {OUT1, OUT2, OUT3}, {OUT4, OUT5, OUT6}, {OUT7, OUT8, OUT9}, @@ -829,7 +829,7 @@ const is31fl3218_led_t PROGMEM g_is31fl3218_leds[RGB_MATRIX_LED_COUNT] = { #define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND #define ISSI_ADDR_2 -const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {0, C1_9, C3_10, C4_10}, // LB1 {0, C1_10, C2_10, C4_11}, // LB2 {0, C1_11, C2_11, C3_11}, // LB3 @@ -847,7 +847,7 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { #define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND #define ISSI_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA -const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -1817,12 +1817,12 @@ void backlight_set_color( int index, uint8_t red, uint8_t green, uint8_t blue ) is31fl3733_set_color( index, red, green, blue ); } #elif defined(RGB_BACKLIGHT_DAWN60) - if( index < RGB_MATRIX_LED_COUNT ) { + if( index < IS31FL3731_LED_COUNT ) { is31fl3731_set_color( index, red, green, blue ); } else { - g_ws2812_leds[index - RGB_MATRIX_LED_COUNT].r = red; - g_ws2812_leds[index - RGB_MATRIX_LED_COUNT].g = green; - g_ws2812_leds[index - RGB_MATRIX_LED_COUNT].b = blue; + g_ws2812_leds[index - IS31FL3731_LED_COUNT].r = red; + g_ws2812_leds[index - IS31FL3731_LED_COUNT].g = green; + g_ws2812_leds[index - IS31FL3731_LED_COUNT].b = blue; ws2812_setleds(g_ws2812_leds, WS2812_LED_TOTAL); } #else @@ -2111,9 +2111,9 @@ void backlight_effect_alphas_mods(void) for (int i = 0; i < WS2812_LED_TOTAL; i++) { if ((RGB_UNDERGLOW_ALPHA_TOP_START <= i && i <= RGB_UNDERGLOW_ALPHA_TOP_END) || (RGB_UNDERGLOW_ALPHA_BOT_START <= i && i <= RGB_UNDERGLOW_ALPHA_BOT_END)) { - backlight_set_color(i + RGB_MATRIX_LED_COUNT, rgb1.r, rgb1.g, rgb1.b); + backlight_set_color(i + IS31FL3731_LED_COUNT, rgb1.r, rgb1.g, rgb1.b); } else { - backlight_set_color(i + RGB_MATRIX_LED_COUNT, rgb2.r, rgb2.g, rgb2.b); + backlight_set_color(i + IS31FL3731_LED_COUNT, rgb2.r, rgb2.g, rgb2.b); } } #endif @@ -2902,7 +2902,7 @@ void backlight_init_drivers(void) #if defined(RGB_BACKLIGHT_M6_B) is31fl3218_init(); - for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ ) + for ( int index = 0; index < IS31FL3218_LED_COUNT; index++ ) { bool enabled = true; @@ -2913,9 +2913,9 @@ void backlight_init_drivers(void) // This actually updates the LED drivers is31fl3218_update_led_control_registers(); #elif defined(RGB_BACKLIGHT_HS60) - is31fl3733_init( ISSI_ADDR_1, 0 ); + is31fl3733_init( ISSI_ADDR_1, IS31FL3733_SYNC_NONE ); - for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ ) + for ( int index = 0; index < IS31FL3733_LED_COUNT; index++ ) { #if defined(HS60_ANSI) bool enabled = !( ( index == 48-1 ) || //LA48 @@ -2934,10 +2934,10 @@ void backlight_init_drivers(void) // This actually updates the LED drivers is31fl3733_update_led_control_registers( ISSI_ADDR_1, 0 ); #elif defined(RGB_BACKLIGHT_NK65) - is31fl3733_init( ISSI_ADDR_1, 0 ); - is31fl3733_init( ISSI_ADDR_2, 0 ); + is31fl3733_init( ISSI_ADDR_1, IS31FL3733_SYNC_NONE ); + is31fl3733_init( ISSI_ADDR_2, IS31FL3733_SYNC_NONE ); - for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ ) + for ( int index = 0; index < IS31FL3733_LED_COUNT; index++ ) { bool enabled = !( ( index == 61-1 ) || //LA61 ( index > 6+64-1 ) ); //LB7-LB64 @@ -2949,10 +2949,10 @@ void backlight_init_drivers(void) is31fl3733_update_led_control_registers( ISSI_ADDR_1, 0 ); is31fl3733_update_led_control_registers( ISSI_ADDR_2, 1 ); #elif defined(RGB_BACKLIGHT_NK87) - is31fl3733_init( ISSI_ADDR_1, 0 ); - is31fl3733_init( ISSI_ADDR_2, 0 ); + is31fl3733_init( ISSI_ADDR_1, IS31FL3733_SYNC_NONE ); + is31fl3733_init( ISSI_ADDR_2, IS31FL3733_SYNC_NONE ); - for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ ) + for ( int index = 0; index < IS31FL3733_LED_COUNT; index++ ) { bool enabled = !( ( index == 61-1 ) || //LA61 ( (index >= 2+64-1) && (index <= 4+64-1) ) || @@ -2979,10 +2979,10 @@ void backlight_init_drivers(void) is31fl3733_update_led_control_registers( ISSI_ADDR_1, 0 ); is31fl3733_update_led_control_registers( ISSI_ADDR_2, 1 ); #elif defined(RGB_BACKLIGHT_NEBULA68) - is31fl3733_init( ISSI_ADDR_1, 0 ); - is31fl3733_init( ISSI_ADDR_2, 0 ); + is31fl3733_init( ISSI_ADDR_1, IS31FL3733_SYNC_NONE ); + is31fl3733_init( ISSI_ADDR_2, IS31FL3733_SYNC_NONE ); - for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ ) + for ( int index = 0; index < IS31FL3733_LED_COUNT; index++ ) { bool enabled = !( ( index == 61-1 ) || //LA61 ( index > 5+64-1 ) ); //LB6-LB64 @@ -2995,17 +2995,17 @@ void backlight_init_drivers(void) #elif defined(RGB_BACKLIGHT_PORTICO75) is31fl3741_init( ISSI_ADDR_1 ); bool enabled = true; - for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ ) + for ( int index = 0; index < IS31FL3741_LED_COUNT; index++ ) { is31fl3741_set_led_control_register( index, enabled, enabled, enabled ); } // This actually updates the LED drivers is31fl3741_update_led_control_registers( ISSI_ADDR_1, 0 ); #elif defined(RGB_BACKLIGHT_KW_MEGA) - is31fl3733_init( ISSI_ADDR_1, 0 ); - is31fl3733_init( ISSI_ADDR_2, 0 ); + is31fl3733_init( ISSI_ADDR_1, IS31FL3733_SYNC_NONE ); + is31fl3733_init( ISSI_ADDR_2, IS31FL3733_SYNC_NONE ); - for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ ) + for ( int index = 0; index < IS31FL3733_LED_COUNT; index++ ) { bool enabled = !( ( index == 61-1 ) || //LA61 ( index > 6+64-1 ) ); //LB7-LB64 @@ -3032,7 +3032,7 @@ void backlight_init_drivers(void) bool disable_spacebar_stab_leds = false; #endif - for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ ) + for ( int index = 0; index < BACKLIGHT_LED_COUNT; index++ ) { // OR the possible "disabled" cases together, then NOT the result to get the enabled state // LC6 LD13 not present on Zeal65 diff --git a/keyboards/wilba_tech/zeal60/config.h b/keyboards/wilba_tech/zeal60/config.h index 3233c6187d..830dd6d78a 100644 --- a/keyboards/wilba_tech/zeal60/config.h +++ b/keyboards/wilba_tech/zeal60/config.h @@ -19,7 +19,7 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 72 +#define IS31FL3731_LED_COUNT 72 // Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/wilba_tech/zeal65/config.h b/keyboards/wilba_tech/zeal65/config.h index 1046ee8108..a7d1b81f84 100644 --- a/keyboards/wilba_tech/zeal65/config.h +++ b/keyboards/wilba_tech/zeal65/config.h @@ -19,7 +19,7 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 72 +#define IS31FL3731_LED_COUNT 72 // Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/xelus/dawn60/rev1/config.h b/keyboards/xelus/dawn60/rev1/config.h index c7945df3d6..a2a127f0a4 100644 --- a/keyboards/xelus/dawn60/rev1/config.h +++ b/keyboards/xelus/dawn60/rev1/config.h @@ -19,7 +19,7 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_DRIVER_COUNT 2 -#define RGB_MATRIX_LED_COUNT 64 +#define IS31FL3731_LED_COUNT 64 // Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/xelus/dawn60/rev1_qmk/config.h b/keyboards/xelus/dawn60/rev1_qmk/config.h index 33629a8ef3..e0ffe30843 100644 --- a/keyboards/xelus/dawn60/rev1_qmk/config.h +++ b/keyboards/xelus/dawn60/rev1_qmk/config.h @@ -30,8 +30,8 @@ #define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 32 #define DRIVER_2_LED_TOTAL 32 -#define ISSI_DRIVER_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + WS2812_LED_TOTAL) +#define IS31FL3731_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (IS31FL3731_LED_COUNT + WS2812_LED_TOTAL) #define RGB_MATRIX_DEFAULT_VAL 80 #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c b/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c index da83d358b9..35ac5a06b2 100644 --- a/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c +++ b/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c @@ -25,7 +25,7 @@ #ifdef RGB_MATRIX_ENABLE rgb_led_t rgb_matrix_ws2812_array[WS2812_LED_TOTAL]; -const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -99,28 +99,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { {1, C9_14, C8_14, C7_14}, //D14 {1, C9_15, C8_15, C6_14}, //D15 {1, C9_16, C7_15, C6_15}, //D16 - - //fake underglows 1- 20 - {2, 0, 0, 0}, - {2, 0, 0, 0}, - {2, 0, 0, 0}, - {2, 0, 0, 0}, - {2, 0, 0, 0}, - {2, 0, 0, 0}, - {2, 0, 0, 0}, - {2, 0, 0, 0}, - {2, 0, 0, 0}, - {2, 0, 0, 0}, - {2, 0, 0, 0}, - {2, 0, 0, 0}, - {2, 0, 0, 0}, - {2, 0, 0, 0}, - {2, 0, 0, 0}, - {2, 0, 0, 0}, - {2, 0, 0, 0}, - {2, 0, 0, 0}, - {2, 0, 0, 0}, - {2, 0, 0, 0} }; __attribute__ ((weak)) @@ -169,7 +147,7 @@ static void init(void) { i2c_init(); is31fl3731_init(IS31FL3731_I2C_ADDRESS_1); is31fl3731_init(IS31FL3731_I2C_ADDRESS_2); - for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) { + for (int index = 0; index < IS31FL3731_LED_COUNT; index++) { bool enabled = true; is31fl3731_set_led_control_register(index, enabled, enabled, enabled); } @@ -187,12 +165,12 @@ static void flush(void) { } static void set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - if (index < ISSI_DRIVER_TOTAL) { + if (index < IS31FL3731_LED_COUNT) { is31fl3731_set_color(index, red, green, blue); } else { - rgb_matrix_ws2812_array[index - ISSI_DRIVER_TOTAL].r = red; - rgb_matrix_ws2812_array[index - ISSI_DRIVER_TOTAL].g = green; - rgb_matrix_ws2812_array[index - ISSI_DRIVER_TOTAL].b = blue; + rgb_matrix_ws2812_array[index - IS31FL3731_LED_COUNT].r = red; + rgb_matrix_ws2812_array[index - IS31FL3731_LED_COUNT].g = green; + rgb_matrix_ws2812_array[index - IS31FL3731_LED_COUNT].b = blue; } } diff --git a/keyboards/xelus/pachi/rgb/rev1/config.h b/keyboards/xelus/pachi/rgb/rev1/config.h index e51a176c84..8d86a977c1 100644 --- a/keyboards/xelus/pachi/rgb/rev1/config.h +++ b/keyboards/xelus/pachi/rgb/rev1/config.h @@ -41,8 +41,7 @@ #define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 117 -#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL -#define ISSI_DRIVER_TOTAL RGB_MATRIX_LED_COUNT +#define IS31FL3741_LED_COUNT DRIVER_1_LED_TOTAL #define RGB_MATRIX_DEFAULT_VAL 80 #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/xelus/pachi/rgb/rev1/rev1.c b/keyboards/xelus/pachi/rgb/rev1/rev1.c index 1a3d9b2f4d..e43726115e 100644 --- a/keyboards/xelus/pachi/rgb/rev1/rev1.c +++ b/keyboards/xelus/pachi/rgb/rev1/rev1.c @@ -22,7 +22,7 @@ void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); } #ifdef RGB_MATRIX_ENABLE #include "i2c_master.h" #include "drivers/led/issi/is31fl3741.h" -const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -189,7 +189,7 @@ led_config_t g_led_config = { { static void init(void) { i2c_init(); is31fl3741_init(IS31FL3741_I2C_ADDRESS_1); - for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) { + for (int index = 0; index < IS31FL3741_LED_COUNT; index++) { bool enabled = !( ( index == -1+0+13) || //A13 ( index == -1+13+3) || //B3 ( index == -1+13+13) || //B13 diff --git a/keyboards/xelus/pachi/rgb/rev2/config.h b/keyboards/xelus/pachi/rgb/rev2/config.h index da989e16a2..0afc9e2a43 100644 --- a/keyboards/xelus/pachi/rgb/rev2/config.h +++ b/keyboards/xelus/pachi/rgb/rev2/config.h @@ -41,8 +41,7 @@ #define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 117 -#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL -#define ISSI_DRIVER_TOTAL RGB_MATRIX_LED_COUNT +#define IS31FL3741_LED_COUNT DRIVER_1_LED_TOTAL #define RGB_MATRIX_DEFAULT_VAL 80 #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/xelus/pachi/rgb/rev2/rev2.c b/keyboards/xelus/pachi/rgb/rev2/rev2.c index 729b6b0545..25d1406653 100644 --- a/keyboards/xelus/pachi/rgb/rev2/rev2.c +++ b/keyboards/xelus/pachi/rgb/rev2/rev2.c @@ -22,7 +22,7 @@ void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); } #ifdef RGB_MATRIX_ENABLE #include "i2c_master.h" #include "drivers/led/issi/is31fl3741.h" -const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -195,7 +195,7 @@ led_config_t g_led_config = { { static void init(void) { i2c_init(); is31fl3741_init(IS31FL3741_I2C_ADDRESS_1); - for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) { + for (int index = 0; index < IS31FL3741_LED_COUNT; index++) { bool enabled = !( ( index == -1+0+13) || //A13 ( index == -1+13+3) || //B3 ( index == -1+13+13) || //B13 diff --git a/quantum/led_matrix/led_matrix_drivers.c b/quantum/led_matrix/led_matrix_drivers.c index ab8da3353a..117bed9851 100644 --- a/quantum/led_matrix/led_matrix_drivers.c +++ b/quantum/led_matrix/led_matrix_drivers.c @@ -25,290 +25,68 @@ * in their own files. */ -#if defined(LED_MATRIX_IS31FL3218) || defined(LED_MATRIX_IS31FL3731) || defined(LED_MATRIX_IS31FL3733) || defined(LED_MATRIX_IS31FL3736) || defined(LED_MATRIX_IS31FL3737) || defined(LED_MATRIX_IS31FL3741) || defined(IS31FLCOMMON) || defined(LED_MATRIX_SNLED27351) -# include "i2c_master.h" - -static void init(void) { - i2c_init(); - -# if defined(LED_MATRIX_IS31FL3218) - is31fl3218_init(); - -# elif defined(LED_MATRIX_IS31FL3731) - is31fl3731_init(IS31FL3731_I2C_ADDRESS_1); -# if defined(IS31FL3731_I2C_ADDRESS_2) - is31fl3731_init(IS31FL3731_I2C_ADDRESS_2); -# if defined(IS31FL3731_I2C_ADDRESS_3) - is31fl3731_init(IS31FL3731_I2C_ADDRESS_3); -# if defined(IS31FL3731_I2C_ADDRESS_4) - is31fl3731_init(IS31FL3731_I2C_ADDRESS_4); -# endif -# endif -# endif - -# elif defined(LED_MATRIX_IS31FL3733) -# if !defined(IS31FL3733_SYNC_1) -# define IS31FL3733_SYNC_1 0 -# endif - is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_1); -# if defined(IS31FL3733_I2C_ADDRESS_2) -# if !defined(IS31FL3733_SYNC_2) -# define IS31FL3733_SYNC_2 0 -# endif - is31fl3733_init(IS31FL3733_I2C_ADDRESS_2, IS31FL3733_SYNC_2); -# if defined(IS31FL3733_I2C_ADDRESS_3) -# if !defined(IS31FL3733_SYNC_3) -# define IS31FL3733_SYNC_3 0 -# endif - is31fl3733_init(IS31FL3733_I2C_ADDRESS_3, IS31FL3733_SYNC_3); -# if defined(IS31FL3733_I2C_ADDRESS_4) -# if !defined(IS31FL3733_SYNC_4) -# define IS31FL3733_SYNC_4 0 -# endif - is31fl3733_init(IS31FL3733_I2C_ADDRESS_4, IS31FL3733_SYNC_4); -# endif -# endif -# endif - -# elif defined(LED_MATRIX_IS31FL3736) - is31fl3736_init(IS31FL3736_I2C_ADDRESS_1); -# if defined(IS31FL3736_I2C_ADDRESS_2) - is31fl3736_init(IS31FL3736_I2C_ADDRESS_2); -# if defined(IS31FL3736_I2C_ADDRESS_3) - is31fl3736_init(IS31FL3736_I2C_ADDRESS_3); -# if defined(IS31FL3736_I2C_ADDRESS_4) - is31fl3736_init(IS31FL3736_I2C_ADDRESS_4); -# endif -# endif -# endif - -# elif defined(LED_MATRIX_IS31FL3737) - is31fl3737_init(IS31FL3737_I2C_ADDRESS_1); -# if defined(IS31FL3737_I2C_ADDRESS_2) - is31fl3737_init(IS31FL3737_I2C_ADDRESS_2); -# if defined(IS31FL3737_I2C_ADDRESS_3) - is31fl3737_init(IS31FL3737_I2C_ADDRESS_3); -# if defined(IS31FL3737_I2C_ADDRESS_4) - is31fl3737_init(IS31FL3737_I2C_ADDRESS_4); -# endif -# endif -# endif - -# elif defined(LED_MATRIX_IS31FL3741) - is31fl3741_init(IS31FL3741_I2C_ADDRESS_1); -# if defined(IS31FL3741_I2C_ADDRESS_2) - is31fl3741_init(IS31FL3741_I2C_ADDRESS_2); -# if defined(IS31FL3741_I2C_ADDRESS_3) - is31fl3741_init(IS31FL3741_I2C_ADDRESS_3); -# if defined(IS31FL3741_I2C_ADDRESS_4) - is31fl3741_init(IS31FL3741_I2C_ADDRESS_4); -# endif -# endif -# endif - -# elif defined(IS31FLCOMMON) - IS31FL_common_init(DRIVER_ADDR_1, ISSI_SSR_1); -# if defined(LED_DRIVER_ADDR_2) - IS31FL_common_init(DRIVER_ADDR_2, ISSI_SSR_2); -# if defined(LED_DRIVER_ADDR_3) - IS31FL_common_init(DRIVER_ADDR_3, ISSI_SSR_3); -# if defined(LED_DRIVER_ADDR_4) - IS31FL_common_init(DRIVER_ADDR_4, ISSI_SSR_4); -# endif -# endif -# endif -# elif defined(LED_MATRIX_SNLED27351) -# if defined(LED_DRIVER_SHUTDOWN_PIN) - setPinOutput(LED_DRIVER_SHUTDOWN_PIN); - writePinHigh(LED_DRIVER_SHUTDOWN_PIN); -# endif - - snled27351_init(SNLED27351_I2C_ADDRESS_1); -# if defined(SNLED27351_I2C_ADDRESS_2) - snled27351_init(SNLED27351_I2C_ADDRESS_2); -# if defined(SNLED27351_I2C_ADDRESS_3) - snled27351_init(SNLED27351_I2C_ADDRESS_3); -# if defined(SNLED27351_I2C_ADDRESS_4) - snled27351_init(SNLED27351_I2C_ADDRESS_4); -# endif -# endif -# endif -# endif - - for (int index = 0; index < LED_MATRIX_LED_COUNT; index++) { -# if defined(LED_MATRIX_IS31FL3218) - is31fl3218_set_led_control_register(index, true); -# elif defined(LED_MATRIX_IS31FL3731) - is31fl3731_set_led_control_register(index, true); -# elif defined(LED_MATRIX_IS31FL3733) - is31fl3733_set_led_control_register(index, true); -# elif defined(LED_MATRIX_IS31FL3736) - is31fl3736_set_led_control_register(index, true); -# elif defined(LED_MATRIX_IS31FL3737) - is31fl3737_set_led_control_register(index, true); -# elif defined(LED_MATRIX_IS31FL3741) - is31fl3741_set_led_control_register(index, true); -# elif defined(IS31FLCOMMON) - IS31FL_simple_set_scaling_buffer(index, true); -# elif defined(LED_MATRIX_SNLED27351) - snled27351_set_led_control_register(index, true); -# endif - } - -// This actually updates the LED drivers -# if defined(LED_MATRIX_IS31FL3218) - is31fl3218_update_led_control_registers(); - -# elif defined(LED_MATRIX_IS31FL3731) - is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0); -# if defined(IS31FL3731_I2C_ADDRESS_2) - is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_2, 1); -# if defined(IS31FL3731_I2C_ADDRESS_3) - is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_3, 2); -# if defined(IS31FL3731_I2C_ADDRESS_4) - is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_4, 3); -# endif -# endif -# endif - -# elif defined(LED_MATRIX_IS31FL3733) - is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_1, 0); -# if defined(IS31FL3733_I2C_ADDRESS_2) - is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_2, 1); -# if defined(IS31FL3733_I2C_ADDRESS_3) - is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_3, 2); -# if defined(IS31FL3733_I2C_ADDRESS_4) - is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_4, 3); -# endif -# endif -# endif - -# elif defined(LED_MATRIX_IS31FL3736) - is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_1, 0); -# if defined(IS31FL3736_I2C_ADDRESS_2) - is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_2, 1); -# if defined(IS31FL3736_I2C_ADDRESS_3) - is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_3, 2); -# if defined(IS31FL3736_I2C_ADDRESS_4) - is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_4, 3); -# endif -# endif -# endif - -# elif defined(LED_MATRIX_IS31FL3737) - is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_1, 0); -# if defined(IS31FL3737_I2C_ADDRESS_2) - is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_2, 1); -# if defined(IS31FL3737_I2C_ADDRESS_3) - is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_3, 2); -# if defined(IS31FL3737_I2C_ADDRESS_4) - is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_4, 3); -# endif -# endif -# endif - -# elif defined(LED_MATRIX_IS31FL3741) - is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0); -# if defined(IS31FL3741_I2C_ADDRESS_2) - is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_2, 1); -# if defined(IS31FL3741_I2C_ADDRESS_3) - is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_3, 2); -# if defined(IS31FL3741_I2C_ADDRESS_4) - is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_4, 3); -# endif -# endif -# endif - -# elif defined(IS31FLCOMMON) -# ifdef ISSI_MANUAL_SCALING - IS31FL_set_manual_scaling_buffer(); -# endif - IS31FL_common_update_scaling_register(DRIVER_ADDR_1, 0); -# if defined(LED_DRIVER_ADDR_2) - IS31FL_common_update_scaling_register(DRIVER_ADDR_2, 1); -# if defined(LED_DRIVER_ADDR_3) - IS31FL_common_update_scaling_register(DRIVER_ADDR_3, 2); -# if defined(LED_DRIVER_ADDR_4) - IS31FL_common_update_scaling_register(DRIVER_ADDR_4, 3); -# endif -# endif -# endif - -# elif defined(LED_MATRIX_SNLED27351) - snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_1, 0); -# if defined(SNLED27351_I2C_ADDRESS_2) - snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_2, 1); -# if defined(SNLED27351_I2C_ADDRESS_3) - snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_3, 2); -# if defined(SNLED27351_I2C_ADDRESS_4) - snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_4, 3); -# endif -# endif -# endif -# endif -} - -# if defined(LED_MATRIX_IS31FL3218) +#if defined(LED_MATRIX_IS31FL3218) const led_matrix_driver_t led_matrix_driver = { - .init = init, + .init = is31fl3218_init, .flush = is31fl3218_update_pwm_buffers, .set_value = is31fl3218_set_value, .set_value_all = is31fl3218_set_value_all, }; -# elif defined(LED_MATRIX_IS31FL3731) +#elif defined(LED_MATRIX_IS31FL3731) const led_matrix_driver_t led_matrix_driver = { - .init = init, - .flush = is31fl3731_flush, - .set_value = is31fl3731_set_value, + .init = is31fl3731_init_drivers, + .flush = is31fl3731_flush, + .set_value = is31fl3731_set_value, .set_value_all = is31fl3731_set_value_all, }; -# elif defined(LED_MATRIX_IS31FL3733) +#elif defined(LED_MATRIX_IS31FL3733) const led_matrix_driver_t led_matrix_driver = { - .init = init, - .flush = is31fl3733_flush, - .set_value = is31fl3733_set_value, + .init = is31fl3733_init_drivers, + .flush = is31fl3733_flush, + .set_value = is31fl3733_set_value, .set_value_all = is31fl3733_set_value_all, }; -# elif defined(LED_MATRIX_IS31FL3736) +#elif defined(LED_MATRIX_IS31FL3736) const led_matrix_driver_t led_matrix_driver = { - .init = init, - .flush = is31fl3736_flush, - .set_value = is31fl3736_set_value, + .init = is31fl3736_init_drivers, + .flush = is31fl3736_flush, + .set_value = is31fl3736_set_value, .set_value_all = is31fl3736_set_value_all, }; -# elif defined(LED_MATRIX_IS31FL3737) +#elif defined(LED_MATRIX_IS31FL3737) const led_matrix_driver_t led_matrix_driver = { - .init = init, - .flush = is31fl3737_flush, - .set_value = is31fl3737_set_value, + .init = is31fl3737_init_drivers, + .flush = is31fl3737_flush, + .set_value = is31fl3737_set_value, .set_value_all = is31fl3737_set_value_all, }; -# elif defined(LED_MATRIX_IS31FL3741) +#elif defined(LED_MATRIX_IS31FL3741) const led_matrix_driver_t led_matrix_driver = { - .init = init, - .flush = is31fl3741_flush, - .set_value = is31fl3741_set_value, + .init = is31fl3741_init_drivers, + .flush = is31fl3741_flush, + .set_value = is31fl3741_set_value, .set_value_all = is31fl3741_set_value_all, }; -# elif defined(IS31FLCOMMON) +#elif defined(IS31FLCOMMON) const led_matrix_driver_t led_matrix_driver = { - .init = init, - .flush = IS31FL_common_flush, - .set_value = IS31FL_simple_set_brightness, + .init = IS31FL_simple_init_drivers, + .flush = IS31FL_common_flush, + .set_value = IS31FL_simple_set_brightness, .set_value_all = IS31FL_simple_set_brigntness_all, }; -# elif defined(LED_MATRIX_SNLED27351) + +#elif defined(LED_MATRIX_SNLED27351) const led_matrix_driver_t led_matrix_driver = { - .init = init, - .flush = snled27351_flush, - .set_value = snled27351_set_value, + .init = snled27351_init_drivers, + .flush = snled27351_flush, + .set_value = snled27351_set_value, .set_value_all = snled27351_set_value_all, }; -# endif + #endif diff --git a/quantum/rgb_matrix/rgb_matrix_drivers.c b/quantum/rgb_matrix/rgb_matrix_drivers.c index 0fe93ee077..0f979cb233 100644 --- a/quantum/rgb_matrix/rgb_matrix_drivers.c +++ b/quantum/rgb_matrix/rgb_matrix_drivers.c @@ -24,307 +24,73 @@ * be here if shared between boards. */ -#if defined(RGB_MATRIX_IS31FL3218) || defined(RGB_MATRIX_IS31FL3731) || defined(RGB_MATRIX_IS31FL3733) || defined(RGB_MATRIX_IS31FL3736) || defined(RGB_MATRIX_IS31FL3737) || defined(RGB_MATRIX_IS31FL3741) || defined(IS31FLCOMMON) || defined(RGB_MATRIX_SNLED27351) -# include "i2c_master.h" - -static void init(void) { - i2c_init(); - -# if defined(RGB_MATRIX_IS31FL3218) - is31fl3218_init(); - -# elif defined(RGB_MATRIX_IS31FL3731) - is31fl3731_init(IS31FL3731_I2C_ADDRESS_1); -# if defined(IS31FL3731_I2C_ADDRESS_2) - is31fl3731_init(IS31FL3731_I2C_ADDRESS_2); -# if defined(IS31FL3731_I2C_ADDRESS_3) - is31fl3731_init(IS31FL3731_I2C_ADDRESS_3); -# if defined(IS31FL3731_I2C_ADDRESS_4) - is31fl3731_init(IS31FL3731_I2C_ADDRESS_4); -# endif -# endif -# endif - -# elif defined(RGB_MATRIX_IS31FL3733) -# if !defined(IS31FL3733_SYNC_1) -# define IS31FL3733_SYNC_1 0 -# endif - is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_1); -# if defined(IS31FL3733_I2C_ADDRESS_2) -# if !defined(IS31FL3733_SYNC_2) -# define IS31FL3733_SYNC_2 0 -# endif - is31fl3733_init(IS31FL3733_I2C_ADDRESS_2, IS31FL3733_SYNC_2); -# if defined(IS31FL3733_I2C_ADDRESS_3) -# if !defined(IS31FL3733_SYNC_3) -# define IS31FL3733_SYNC_3 0 -# endif - is31fl3733_init(IS31FL3733_I2C_ADDRESS_3, IS31FL3733_SYNC_3); -# if defined(IS31FL3733_I2C_ADDRESS_4) -# if !defined(IS31FL3733_SYNC_4) -# define IS31FL3733_SYNC_4 0 -# endif - is31fl3733_init(IS31FL3733_I2C_ADDRESS_4, IS31FL3733_SYNC_4); -# endif -# endif -# endif - -# elif defined(RGB_MATRIX_IS31FL3736) - is31fl3736_init(IS31FL3736_I2C_ADDRESS_1); -# if defined(IS31FL3736_I2C_ADDRESS_2) - is31fl3736_init(IS31FL3736_I2C_ADDRESS_2); -# if defined(IS31FL3736_I2C_ADDRESS_3) - is31fl3736_init(IS31FL3736_I2C_ADDRESS_3); -# if defined(IS31FL3736_I2C_ADDRESS_4) - is31fl3736_init(IS31FL3736_I2C_ADDRESS_4); -# endif -# endif -# endif - -# elif defined(RGB_MATRIX_IS31FL3737) - is31fl3737_init(IS31FL3737_I2C_ADDRESS_1); -# if defined(IS31FL3737_I2C_ADDRESS_2) - is31fl3737_init(IS31FL3737_I2C_ADDRESS_2); -# if defined(IS31FL3737_I2C_ADDRESS_3) - is31fl3737_init(IS31FL3737_I2C_ADDRESS_3); -# if defined(IS31FL3737_I2C_ADDRESS_4) - is31fl3737_init(IS31FL3737_I2C_ADDRESS_4); -# endif -# endif -# endif - -# elif defined(RGB_MATRIX_IS31FL3741) - is31fl3741_init(IS31FL3741_I2C_ADDRESS_1); -# if defined(IS31FL3741_I2C_ADDRESS_2) - is31fl3741_init(IS31FL3741_I2C_ADDRESS_2); -# if defined(IS31FL3741_I2C_ADDRESS_3) - is31fl3741_init(IS31FL3741_I2C_ADDRESS_3); -# if defined(IS31FL3741_I2C_ADDRESS_4) - is31fl3741_init(IS31FL3741_I2C_ADDRESS_4); -# endif -# endif -# endif - -# elif defined(IS31FLCOMMON) - IS31FL_common_init(DRIVER_ADDR_1, ISSI_SSR_1); -# if defined(DRIVER_ADDR_2) - IS31FL_common_init(DRIVER_ADDR_2, ISSI_SSR_2); -# if defined(DRIVER_ADDR_3) - IS31FL_common_init(DRIVER_ADDR_3, ISSI_SSR_3); -# if defined(DRIVER_ADDR_4) - IS31FL_common_init(DRIVER_ADDR_4, ISSI_SSR_4); -# endif -# endif -# endif - -# elif defined(RGB_MATRIX_SNLED27351) - snled27351_init(SNLED27351_I2C_ADDRESS_1); -# if defined(SNLED27351_I2C_ADDRESS_2) - snled27351_init(SNLED27351_I2C_ADDRESS_2); -# if defined(SNLED27351_I2C_ADDRESS_3) - snled27351_init(SNLED27351_I2C_ADDRESS_3); -# if defined(SNLED27351_I2C_ADDRESS_4) - snled27351_init(SNLED27351_I2C_ADDRESS_4); -# endif -# endif -# endif -# endif - - for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) { - bool enabled = true; - - // This only caches it for later -# if defined(RGB_MATRIX_IS31FL3218) - is31fl3218_set_led_control_register(index, enabled, enabled, enabled); -# elif defined(RGB_MATRIX_IS31FL3731) - is31fl3731_set_led_control_register(index, enabled, enabled, enabled); -# elif defined(RGB_MATRIX_IS31FL3733) - is31fl3733_set_led_control_register(index, enabled, enabled, enabled); -# elif defined(RGB_MATRIX_IS31FL3736) - is31fl3736_set_led_control_register(index, enabled, enabled, enabled); -# elif defined(RGB_MATRIX_IS31FL3737) - is31fl3737_set_led_control_register(index, enabled, enabled, enabled); -# elif defined(RGB_MATRIX_IS31FL3741) - is31fl3741_set_led_control_register(index, enabled, enabled, enabled); -# elif defined(IS31FLCOMMON) - IS31FL_RGB_set_scaling_buffer(index, enabled, enabled, enabled); -# elif defined(RGB_MATRIX_SNLED27351) - snled27351_set_led_control_register(index, enabled, enabled, enabled); -# endif - } - - // This actually updates the LED drivers -# if defined(RGB_MATRIX_IS31FL3218) - is31fl3218_update_led_control_registers(); - -# elif defined(RGB_MATRIX_IS31FL3731) - is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0); -# if defined(IS31FL3731_I2C_ADDRESS_2) - is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_2, 1); -# if defined(IS31FL3731_I2C_ADDRESS_3) - is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_3, 2); -# if defined(IS31FL3731_I2C_ADDRESS_4) - is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_4, 3); -# endif -# endif -# endif - -# elif defined(RGB_MATRIX_IS31FL3733) - is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_1, 0); -# if defined(IS31FL3733_I2C_ADDRESS_2) - is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_2, 1); -# if defined(IS31FL3733_I2C_ADDRESS_3) - is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_3, 2); -# if defined(IS31FL3733_I2C_ADDRESS_4) - is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_4, 3); -# endif -# endif -# endif - -# elif defined(RGB_MATRIX_IS31FL3736) - is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_1, 0); -# if defined(IS31FL3736_I2C_ADDRESS_2) - is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_2, 1); -# if defined(IS31FL3736_I2C_ADDRESS_3) - is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_3, 2); -# if defined(IS31FL3736_I2C_ADDRESS_4) - is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_4, 3); -# endif -# endif -# endif - -# elif defined(RGB_MATRIX_IS31FL3737) - is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_1, 0); -# if defined(IS31FL3737_I2C_ADDRESS_2) - is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_2, 1); -# if defined(IS31FL3737_I2C_ADDRESS_3) - is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_3, 2); -# if defined(IS31FL3737_I2C_ADDRESS_4) - is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_4, 3); -# endif -# endif -# endif - -# elif defined(RGB_MATRIX_IS31FL3741) - is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0); -# if defined(IS31FL3741_I2C_ADDRESS_2) - is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_2, 1); -# if defined(IS31FL3741_I2C_ADDRESS_3) - is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_3, 2); -# if defined(IS31FL3741_I2C_ADDRESS_4) - is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_4, 3); -# endif -# endif -# endif - -# elif defined(IS31FLCOMMON) -# ifdef ISSI_MANUAL_SCALING - IS31FL_set_manual_scaling_buffer(); -# endif - IS31FL_common_update_scaling_register(DRIVER_ADDR_1, 0); -# if defined(DRIVER_ADDR_2) - IS31FL_common_update_scaling_register(DRIVER_ADDR_2, 1); -# if defined(DRIVER_ADDR_3) - IS31FL_common_update_scaling_register(DRIVER_ADDR_3, 2); -# if defined(DRIVER_ADDR_4) - IS31FL_common_update_scaling_register(DRIVER_ADDR_4, 3); -# endif -# endif -# endif - -# elif defined(RGB_MATRIX_SNLED27351) - snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_1, 0); -# if defined(SNLED27351_I2C_ADDRESS_2) - snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_2, 1); -# if defined(SNLED27351_I2C_ADDRESS_3) - snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_3, 2); -# if defined(SNLED27351_I2C_ADDRESS_4) - snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_4, 3); -# endif -# endif -# endif -# endif -} - -# if defined(RGB_MATRIX_IS31FL3218) +#if defined(RGB_MATRIX_IS31FL3218) const rgb_matrix_driver_t rgb_matrix_driver = { - .init = init, + .init = is31fl3218_init, .flush = is31fl3218_update_pwm_buffers, .set_color = is31fl3218_set_color, .set_color_all = is31fl3218_set_color_all, }; -# elif defined(RGB_MATRIX_IS31FL3731) +#elif defined(RGB_MATRIX_IS31FL3731) const rgb_matrix_driver_t rgb_matrix_driver = { - .init = init, - .flush = is31fl3731_flush, - .set_color = is31fl3731_set_color, + .init = is31fl3731_init_drivers, + .flush = is31fl3731_flush, + .set_color = is31fl3731_set_color, .set_color_all = is31fl3731_set_color_all, }; -# elif defined(RGB_MATRIX_IS31FL3733) +#elif defined(RGB_MATRIX_IS31FL3733) const rgb_matrix_driver_t rgb_matrix_driver = { - .init = init, - .flush = is31fl3733_flush, - .set_color = is31fl3733_set_color, + .init = is31fl3733_init_drivers, + .flush = is31fl3733_flush, + .set_color = is31fl3733_set_color, .set_color_all = is31fl3733_set_color_all, }; -# elif defined(RGB_MATRIX_IS31FL3736) +#elif defined(RGB_MATRIX_IS31FL3736) const rgb_matrix_driver_t rgb_matrix_driver = { - .init = init, - .flush = is31fl3736_flush, - .set_color = is31fl3736_set_color, + .init = is31fl3736_init_drivers, + .flush = is31fl3736_flush, + .set_color = is31fl3736_set_color, .set_color_all = is31fl3736_set_color_all, }; -# elif defined(RGB_MATRIX_IS31FL3737) +#elif defined(RGB_MATRIX_IS31FL3737) const rgb_matrix_driver_t rgb_matrix_driver = { - .init = init, - .flush = is31fl3737_flush, - .set_color = is31fl3737_set_color, + .init = is31fl3737_init_drivers, + .flush = is31fl3737_flush, + .set_color = is31fl3737_set_color, .set_color_all = is31fl3737_set_color_all, }; -# elif defined(RGB_MATRIX_IS31FL3741) +#elif defined(RGB_MATRIX_IS31FL3741) const rgb_matrix_driver_t rgb_matrix_driver = { - .init = init, - .flush = is31fl3741_flush, - .set_color = is31fl3741_set_color, + .init = is31fl3741_init_drivers, + .flush = is31fl3741_flush, + .set_color = is31fl3741_set_color, .set_color_all = is31fl3741_set_color_all, }; -# elif defined(IS31FLCOMMON) +#elif defined(IS31FLCOMMON) const rgb_matrix_driver_t rgb_matrix_driver = { - .init = init, - .flush = IS31FL_common_flush, - .set_color = IS31FL_RGB_set_color, + .init = IS31FL_RGB_init_drivers, + .flush = IS31FL_common_flush, + .set_color = IS31FL_RGB_set_color, .set_color_all = IS31FL_RGB_set_color_all, }; -# elif defined(RGB_MATRIX_SNLED27351) +#elif defined(RGB_MATRIX_SNLED27351) const rgb_matrix_driver_t rgb_matrix_driver = { - .init = init, - .flush = snled27351_flush, - .set_color = snled27351_set_color, + .init = snled27351_init_drivers, + .flush = snled27351_flush, + .set_color = snled27351_set_color, .set_color_all = snled27351_set_color_all, }; -# endif #elif defined(RGB_MATRIX_AW20216S) -# include "spi_master.h" - -static void init(void) { - spi_init(); - - aw20216s_init(AW20216S_CS_PIN_1, AW20216S_EN_PIN_1); -# if defined(AW20216S_CS_PIN_2) - aw20216s_init(AW20216S_CS_PIN_2, AW20216S_EN_PIN_2); -# endif -} - const rgb_matrix_driver_t rgb_matrix_driver = { - .init = init, + .init = aw20216s_init_drivers, .flush = aw20216s_flush, .set_color = aw20216s_set_color, .set_color_all = aw20216s_set_color_all, @@ -391,4 +157,5 @@ const rgb_matrix_driver_t rgb_matrix_driver = { .set_color = setled, .set_color_all = setled_all, }; + #endif From a19ae3d78466588caa9caf7c38d1617932255733 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 1 Nov 2023 00:55:48 +0000 Subject: [PATCH 337/496] Add dd mapping for hardware based split handedness (#22369) --- data/mappings/info_config.hjson | 2 ++ data/schemas/keyboard.jsonschema | 21 +++++++++++++++++---- docs/reference_info_json.md | 6 ++++++ lib/python/qmk/cli/generate/config_h.py | 13 +++++++++++++ lib/python/qmk/cli/generate/keyboard_c.py | 13 +++++++------ lib/python/qmk/info.py | 9 +++++++++ 6 files changed, 54 insertions(+), 10 deletions(-) diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index 9b65c73084..2ad0135950 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -154,6 +154,8 @@ // Split Keyboard "SOFT_SERIAL_PIN": {"info_key": "split.soft_serial_pin"}, "SOFT_SERIAL_SPEED": {"info_key": "split.soft_serial_speed"}, + "SPLIT_HAND_MATRIX_GRID": {"info_key": "split.handedness.matrix_grid", "value_type": "array", "to_c": false}, + "SPLIT_HAND_PIN": {"info_key": "split.handedness.pin"}, "SPLIT_USB_DETECT": {"info_key": "split.usb_detect.enabled", "value_type": "bool"}, "SPLIT_USB_TIMEOUT": {"info_key": "split.usb_detect.timeout", "value_type": "int"}, "SPLIT_USB_TIMEOUT_POLL": {"info_key": "split.usb_detect.polling_interval", "value_type": "int"}, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 20216a7f86..188e0a5b3c 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -640,10 +640,6 @@ } } }, - "matrix_grid": { - "type": "array", - "items": {"$ref": "qmk.definitions.v1#/mcu_pin"} - }, "matrix_pins": { "type": "object", "additionalProperties": false, @@ -681,6 +677,18 @@ } } }, + "handedness": { + "type": "object", + "additionalProperties": false, + "properties": { + "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "matrix_grid": { + "$ref": "qmk.definitions.v1#/mcu_pin_array", + "minItems": 2, + "maxItems": 2 + } + } + }, "soft_serial_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, "soft_serial_speed": { "type": "integer", @@ -736,6 +744,11 @@ "type": "string", "enum": ["eeprom", "left", "matrix_grid", "pin", "right"], "$comment": "Deprecated: use config.h options for now" + }, + "matrix_grid": { + "type": "array", + "items": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "$comment": "Deprecated: use split.handedness.matrix_grid instead" } } }, diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 1d9429b54d..d9336fa2bb 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -647,6 +647,12 @@ Configures the [Split Keyboard](feature_split_keyboard.md) feature. * `right` * `rotary` * See [Encoder](#encoder) config. + * `handedness` + * `pin` + * The GPIO pin connected to determine handedness. + * `matrix_grid` + * The GPIO pins of the matrix position which determines the handedness. + * Example: `["A1", "B5"]` * `matrix_pins` * `right` * See [Matrix](#matrix) config. diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py index 924834caef..2c624e3e9a 100755 --- a/lib/python/qmk/cli/generate/config_h.py +++ b/lib/python/qmk/cli/generate/config_h.py @@ -74,7 +74,14 @@ def generate_matrix_size(kb_info_json, config_h_lines): def generate_matrix_masked(kb_info_json, config_h_lines): """"Enable matrix mask if required""" + mask_required = False + if 'matrix_grid' in kb_info_json.get('dip_switch', {}): + mask_required = True + if 'matrix_grid' in kb_info_json.get('split', {}).get('handedness', {}): + mask_required = True + + if mask_required: config_h_lines.append(generate_define('MATRIX_MASKED')) @@ -141,6 +148,12 @@ def generate_encoder_config(encoder_json, config_h_lines, postfix=''): def generate_split_config(kb_info_json, config_h_lines): """Generate the config.h lines for split boards.""" + if 'handedness' in kb_info_json['split']: + # TODO: change SPLIT_HAND_MATRIX_GRID to require brackets + handedness = kb_info_json['split']['handedness'] + if 'matrix_grid' in handedness: + config_h_lines.append(generate_define('SPLIT_HAND_MATRIX_GRID', ', '.join(handedness['matrix_grid']))) + if 'protocol' in kb_info_json['split'].get('transport', {}): if kb_info_json['split']['transport']['protocol'] == 'i2c': config_h_lines.append(generate_define('USE_I2C')) diff --git a/lib/python/qmk/cli/generate/keyboard_c.py b/lib/python/qmk/cli/generate/keyboard_c.py index 325624c9cc..f8a2372cf3 100755 --- a/lib/python/qmk/cli/generate/keyboard_c.py +++ b/lib/python/qmk/cli/generate/keyboard_c.py @@ -63,13 +63,14 @@ def _gen_matrix_mask(info_data): cols = info_data['matrix_size']['cols'] rows = info_data['matrix_size']['rows'] - # Default mask to everything enabled - mask = [['1'] * cols for i in range(rows)] + # Default mask to everything disabled + mask = [['0'] * cols for i in range(rows)] - # Automatically mask out dip_switch.matrix_grid locations - matrix_grid = info_data.get('dip_switch', {}).get('matrix_grid', []) - for row, col in matrix_grid: - mask[row][col] = '0' + # Mirror layout macros squashed on top of each other + for layout_data in info_data['layouts'].values(): + for key_data in layout_data['layout']: + row, col = key_data['matrix'] + mask[row][col] = '1' lines = [] lines.append('#ifdef MATRIX_MASKED') diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index b56ec0fbff..fe829a724a 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -352,6 +352,14 @@ def _extract_secure_unlock(info_data, config_c): info_data['secure']['unlock_sequence'] = unlock_array +def _extract_split_handedness(info_data, config_c): + # Migrate + split = info_data.get('split', {}) + if 'matrix_grid' in split: + split['handedness'] = split.get('handedness', {}) + split['handedness']['matrix_grid'] = split.pop('matrix_grid') + + def _extract_split_transport(info_data, config_c): # Figure out the transport method if config_c.get('USE_I2C') is True: @@ -543,6 +551,7 @@ def _extract_config_h(info_data, config_c): _extract_matrix_info(info_data, config_c) _extract_audio(info_data, config_c) _extract_secure_unlock(info_data, config_c) + _extract_split_handedness(info_data, config_c) _extract_split_transport(info_data, config_c) _extract_split_right_pins(info_data, config_c) _extract_encoders(info_data, config_c) From fbbb221a31a4890a3302a4b169465d9efb0c59ed Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 1 Nov 2023 01:26:24 +0000 Subject: [PATCH 338/496] Implement data driven lighting defaults (#21825) --- data/mappings/info_config.hjson | 16 ++++++ data/schemas/keyboard.jsonschema | 43 ++++++++++++++++ docs/reference_info_json.md | 65 ++++++++++++++++++++++++- lib/python/qmk/cli/generate/config_h.py | 13 +++-- 4 files changed, 130 insertions(+), 7 deletions(-) diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index 2ad0135950..26b437b513 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -29,6 +29,9 @@ "BACKLIGHT_PIN": {"info_key": "backlight.pin"}, "BACKLIGHT_PINS": {"info_key": "backlight.pins", "value_type": "array"}, "BREATHING_PERIOD": {"info_key": "backlight.breathing_period", "value_type": "int"}, + "BACKLIGHT_DEFAULT_ON": {"info_key": "backlight.default.on", "value_type": "bool"}, + "BACKLIGHT_DEFAULT_BREATHING": {"info_key": "backlight.default.breathing", "value_type": "bool"}, + "BACKLIGHT_DEFAULT_LEVEL": {"info_key": "backlight.default.brightness", "value_type": "int"}, // Bootmagic "BOOTMAGIC_LITE_COLUMN": {"info_key": "bootmagic.matrix.1", "value_type": "int"}, @@ -82,6 +85,9 @@ "LED_MATRIX_TIMEOUT": {"info_key": "led_matrix.timeout", "value_type": "int"}, "LED_MATRIX_VAL_STEP": {"info_key": "led_matrix.val_steps", "value_type": "int"}, "LED_MATRIX_LED_COUNT": {"info_key": "led_matrix.led_count", "value_type": "int", "to_json": false}, + "LED_MATRIX_DEFAULT_ON": {"info_key": "led_matrix.default.on", "value_type": "bool"}, + "LED_MATRIX_DEFAULT_VAL": {"info_key": "led_matrix.default.val", "value_type": "int"}, + "LED_MATRIX_DEFAULT_SPD": {"info_key": "led_matrix.default.speed", "value_type": "int"}, // Locking Switch "LOCKING_SUPPORT_ENABLE": {"info_key": "qmk.locking.enabled", "value_type": "bool"}, @@ -129,6 +135,11 @@ "RGB_MATRIX_TIMEOUT": {"info_key": "rgb_matrix.timeout", "value_type": "int"}, "RGB_MATRIX_VAL_STEP": {"info_key": "rgb_matrix.val_steps", "value_type": "int"}, "RGB_MATRIX_LED_COUNT": {"info_key": "rgb_matrix.led_count", "value_type": "int", "to_json": false}, + "RGB_MATRIX_DEFAULT_ON": {"info_key": "rgb_matrix.default.on", "value_type": "bool"}, + "RGB_MATRIX_DEFAULT_HUE": {"info_key": "rgb_matrix.default.hue", "value_type": "int"}, + "RGB_MATRIX_DEFAULT_SAT": {"info_key": "rgb_matrix.default.sat", "value_type": "int"}, + "RGB_MATRIX_DEFAULT_VAL": {"info_key": "rgb_matrix.default.val", "value_type": "int"}, + "RGB_MATRIX_DEFAULT_SPD": {"info_key": "rgb_matrix.default.speed", "value_type": "int"}, // RGBLight "RGBLED_NUM": {"info_key": "rgblight.led_count", "value_type": "int"}, @@ -144,6 +155,11 @@ "RGBLIGHT_SLEEP": {"info_key": "rgblight.sleep", "value_type": "bool"}, "RGBLIGHT_SPLIT": {"info_key": "rgblight.split", "value_type": "bool"}, "RGBLIGHT_VAL_STEP": {"info_key": "rgblight.brightness_steps", "value_type": "int"}, + "RGBLIGHT_DEFAULT_ON": {"info_key": "rgblight.default.on", "value_type": "bool"}, + "RGBLIGHT_DEFAULT_HUE": {"info_key": "rgblight.default.hue", "value_type": "int"}, + "RGBLIGHT_DEFAULT_SAT": {"info_key": "rgblight.default.sat", "value_type": "int"}, + "RGBLIGHT_DEFAULT_VAL": {"info_key": "rgblight.default.val", "value_type": "int"}, + "RGBLIGHT_DEFAULT_SPD": {"info_key": "rgblight.default.speed", "value_type": "int"}, "RGBW": {"info_key": "rgblight.rgbw", "value_type": "bool"}, // Secure diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 188e0a5b3c..9fc455530c 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -136,6 +136,15 @@ "type": "string", "enum": ["pwm", "software", "timer", "custom"] }, + "default": { + "type": "object", + "additionalProperties": false, + "properties": { + "on": {"type": "boolean"}, + "breathing": {"type": "boolean"}, + "brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} + } + }, "breathing": {"type": "boolean"}, "breathing_period": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, "levels": { @@ -418,6 +427,16 @@ "type": "boolean" } }, + "default": { + "type": "object", + "additionalProperties": false, + "properties": { + "on": {"type": "boolean"}, + "animation": {"type": "string"}, + "val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} + } + }, "driver": {"type": "string"}, "center_point": { "type": "array", @@ -472,6 +491,18 @@ "type": "boolean" } }, + "default": { + "type": "object", + "additionalProperties": false, + "properties": { + "on": {"type": "boolean"}, + "animation": {"type": "string"}, + "hue": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "sat": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} + } + }, "driver": {"type": "string"}, "center_point": { "type": "array", @@ -530,6 +561,18 @@ } }, "brightness_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "default": { + "type": "object", + "additionalProperties": false, + "properties": { + "on": {"type": "boolean"}, + "animation": {"type": "string"}, + "hue": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "sat": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} + } + }, "driver": { "type": "string", "enum": ["apa102", "custom", "ws2812"] diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index d9336fa2bb..4a70a4bb6f 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -134,6 +134,16 @@ Configures the [Backlight](feature_backlight.md) feature. * `breathing_period` * The length of one backlight breathing cycle in seconds. * Default: `6` (6 seconds) + * `default` + * `on` + * The default backlight enabled state. + * Default: `true` + * `breathing` + * The default backlight breathing state. + * Default: `false` + * `brightness` + * The default brightness level. + * Default: `max_brightness` * `driver` * The driver to use. Must be one of `custom`, `pwm`, `software`, `timer`. * Default: `"pwm"` @@ -341,7 +351,7 @@ Configures the [LED Matrix](feature_led_matrix.md) feature. * Example: ```json { - "alpha_mods": true, + "alphas_mods": true, "breathing": true, "cycle_left_right": false } @@ -349,6 +359,19 @@ Configures the [LED Matrix](feature_led_matrix.md) feature. * `center_point` * The centroid (geometric center) of the LEDs. Used for certain effects. * Default: `[112, 32]` + * `default` + * `animation` + * The default effect. Must be one of `led_matrix.animations` + * Default: `"solid"` + * `on` + * The default enabled state. + * Default: `true` + * `val` + * The default brightness level. + * Default: `max_brightness` + * `speed` + * The default animation speed. + * Default: `128` * `driver` (Required) * The driver to use. Must be one of `custom`, `is31fl3218`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `snled27351`. * `layout` (Required) @@ -506,6 +529,25 @@ Configures the [RGB Lighting](feature_rgblight.md) feature. * `brightness_steps` * The number of brightness adjustment steps. * Default: `17` + * `default` + * `animation` + * The default effect. Must be one of `rgblight.animations` + * Default: `"static_light"` + * `on` + * The default enabled state. + * Default: `true` + * `hue` + * The default hue value. + * Default: `0` + * `sat` + * The default saturation value. + * Default: `255` + * `val` + * The default brightness level. + * Default: `max_brightness` + * `speed` + * The default animation speed. + * Default: `0` * `driver` * The driver to use. Must be one of `apa102`, `custom`, `ws2812`. * Default: `"ws2812"` @@ -554,7 +596,7 @@ Configures the [RGB Matrix](feature_rgb_matrix.md) feature. * Example: ```json { - "alpha_mods": true, + "alphas_mods": true, "breathing": true, "cycle_left_right": false } @@ -562,6 +604,25 @@ Configures the [RGB Matrix](feature_rgb_matrix.md) feature. * `center_point` * The centroid (geometric center) of the LEDs. Used for certain effects. * Default: `[112, 32]` + * `default` + * `animation` + * The default effect. Must be one of `rgb_matrix.animations` + * Default: `"solid_color"` + * `on` + * The default enabled state. + * Default: `true` + * `hue` + * The default hue value. + * Default: `0` + * `sat` + * The default saturation value. + * Default: `255` + * `val` + * The default brightness level. + * Default: `max_brightness` + * `speed` + * The default animation speed. + * Default: `128` * `driver` (Required) * The driver to use. Must be one of `aw20216s`, `custom`, `is31fl3218`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `snled27351`, `ws2812`. * `hue_steps` diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py index 2c624e3e9a..00fb1d9585 100755 --- a/lib/python/qmk/cli/generate/config_h.py +++ b/lib/python/qmk/cli/generate/config_h.py @@ -165,10 +165,13 @@ def generate_split_config(kb_info_json, config_h_lines): generate_encoder_config(kb_info_json['split']['encoder']['right'], config_h_lines, '_RIGHT') -def generate_led_animations_config(led_feature_json, config_h_lines, prefix): +def generate_led_animations_config(feature, led_feature_json, config_h_lines, enable_prefix, animation_prefix): + if 'animation' in led_feature_json.get('default', {}): + config_h_lines.append(generate_define(f'{feature.upper()}_DEFAULT_MODE', f'{animation_prefix}{led_feature_json["default"]["animation"].upper()}')) + for animation in led_feature_json.get('animations', {}): if led_feature_json['animations'][animation]: - config_h_lines.append(generate_define(f'{prefix}{animation.upper()}')) + config_h_lines.append(generate_define(f'{enable_prefix}{animation.upper()}')) @cli.argument('filename', nargs='?', arg_only=True, type=FileType('r'), completer=FilesCompleter('.json'), help='A configurator export JSON to be compiled and flashed or a pre-compiled binary firmware file (bin/hex) to be flashed.') @@ -209,13 +212,13 @@ def generate_config_h(cli): generate_split_config(kb_info_json, config_h_lines) if 'led_matrix' in kb_info_json: - generate_led_animations_config(kb_info_json['led_matrix'], config_h_lines, 'ENABLE_LED_MATRIX_') + generate_led_animations_config('led_matrix', kb_info_json['led_matrix'], config_h_lines, 'ENABLE_LED_MATRIX_', 'LED_MATRIX_') if 'rgb_matrix' in kb_info_json: - generate_led_animations_config(kb_info_json['rgb_matrix'], config_h_lines, 'ENABLE_RGB_MATRIX_') + generate_led_animations_config('rgb_matrix', kb_info_json['rgb_matrix'], config_h_lines, 'ENABLE_RGB_MATRIX_', 'RGB_MATRIX_') if 'rgblight' in kb_info_json: - generate_led_animations_config(kb_info_json['rgblight'], config_h_lines, 'RGBLIGHT_EFFECT_') + generate_led_animations_config('rgblight', kb_info_json['rgblight'], config_h_lines, 'RGBLIGHT_EFFECT_', 'RGBLIGHT_MODE_') # Show the results dump_lines(cli.args.output, config_h_lines, cli.args.quiet) From b31426252ed379937132ed7d2baf84a677123b5b Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 1 Nov 2023 02:11:42 +0000 Subject: [PATCH 339/496] Generate switch statement helpers for keycode ranges (#20059) --- lib/python/qmk/cli/generate/keycodes.py | 8 ++++++++ quantum/keycodes.h | 22 ++++++++++++++++++++++ quantum/keymap_common.c | 10 +++++----- 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/lib/python/qmk/cli/generate/keycodes.py b/lib/python/qmk/cli/generate/keycodes.py index ed8b6827bd..719fced5d5 100644 --- a/lib/python/qmk/cli/generate/keycodes.py +++ b/lib/python/qmk/cli/generate/keycodes.py @@ -94,6 +94,14 @@ def _generate_helpers(lines, keycodes): hi = keycodes["keycodes"][f'0x{codes[1]:04X}']['key'] lines.append(f'#define IS_{ _translate_group(group).upper() }_KEYCODE(code) ((code) >= {lo} && (code) <= {hi})') + lines.append('') + lines.append('// Switch statement Helpers') + for group, codes in temp.items(): + lo = keycodes["keycodes"][f'0x{codes[0]:04X}']['key'] + hi = keycodes["keycodes"][f'0x{codes[1]:04X}']['key'] + name = f'{ _translate_group(group).upper() }_KEYCODE_RANGE' + lines.append(f'#define { name.ljust(35) } {lo} ... {hi}') + def _generate_aliases(lines, keycodes): # Work around ChibiOS ch.h include guard diff --git a/quantum/keycodes.h b/quantum/keycodes.h index bbf10da36d..39fd2e2726 100644 --- a/quantum/keycodes.h +++ b/quantum/keycodes.h @@ -1420,3 +1420,25 @@ enum qk_keycode_defines { #define IS_QUANTUM_KEYCODE(code) ((code) >= QK_BOOTLOADER && (code) <= QK_ALT_REPEAT_KEY) #define IS_KB_KEYCODE(code) ((code) >= QK_KB_0 && (code) <= QK_KB_31) #define IS_USER_KEYCODE(code) ((code) >= QK_USER_0 && (code) <= QK_USER_31) + +// Switch statement Helpers +#define INTERNAL_KEYCODE_RANGE KC_NO ... KC_TRANSPARENT +#define BASIC_KEYCODE_RANGE KC_A ... KC_EXSEL +#define SYSTEM_KEYCODE_RANGE KC_SYSTEM_POWER ... KC_SYSTEM_WAKE +#define CONSUMER_KEYCODE_RANGE KC_AUDIO_MUTE ... KC_LAUNCHPAD +#define MOUSE_KEYCODE_RANGE KC_MS_UP ... KC_MS_ACCEL2 +#define MODIFIER_KEYCODE_RANGE KC_LEFT_CTRL ... KC_RIGHT_GUI +#define SWAP_HANDS_KEYCODE_RANGE QK_SWAP_HANDS_TOGGLE ... QK_SWAP_HANDS_ONE_SHOT +#define MAGIC_KEYCODE_RANGE QK_MAGIC_SWAP_CONTROL_CAPS_LOCK ... QK_MAGIC_TOGGLE_ESCAPE_CAPS_LOCK +#define MIDI_KEYCODE_RANGE QK_MIDI_ON ... QK_MIDI_PITCH_BEND_UP +#define SEQUENCER_KEYCODE_RANGE QK_SEQUENCER_ON ... QK_SEQUENCER_STEPS_CLEAR +#define JOYSTICK_KEYCODE_RANGE QK_JOYSTICK_BUTTON_0 ... QK_JOYSTICK_BUTTON_31 +#define PROGRAMMABLE_BUTTON_KEYCODE_RANGE QK_PROGRAMMABLE_BUTTON_1 ... QK_PROGRAMMABLE_BUTTON_32 +#define AUDIO_KEYCODE_RANGE QK_AUDIO_ON ... QK_AUDIO_VOICE_PREVIOUS +#define STENO_KEYCODE_RANGE QK_STENO_BOLT ... QK_STENO_COMB_MAX +#define MACRO_KEYCODE_RANGE QK_MACRO_0 ... QK_MACRO_31 +#define BACKLIGHT_KEYCODE_RANGE QK_BACKLIGHT_ON ... QK_BACKLIGHT_TOGGLE_BREATHING +#define RGB_KEYCODE_RANGE RGB_TOG ... RGB_MODE_TWINKLE +#define QUANTUM_KEYCODE_RANGE QK_BOOTLOADER ... QK_ALT_REPEAT_KEY +#define KB_KEYCODE_RANGE QK_KB_0 ... QK_KB_31 +#define USER_KEYCODE_RANGE QK_USER_0 ... QK_USER_31 diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 9a67fad278..91e47a72ee 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -59,19 +59,19 @@ action_t action_for_keycode(uint16_t keycode) { (void)mod; switch (keycode) { - case KC_A ... KC_EXSEL: - case KC_LEFT_CTRL ... KC_RIGHT_GUI: + case BASIC_KEYCODE_RANGE: + case MODIFIER_KEYCODE_RANGE: action.code = ACTION_KEY(keycode); break; #ifdef EXTRAKEY_ENABLE - case KC_SYSTEM_POWER ... KC_SYSTEM_WAKE: + case SYSTEM_KEYCODE_RANGE: action.code = ACTION_USAGE_SYSTEM(KEYCODE2SYSTEM(keycode)); break; - case KC_AUDIO_MUTE ... KC_LAUNCHPAD: + case CONSUMER_KEYCODE_RANGE: action.code = ACTION_USAGE_CONSUMER(KEYCODE2CONSUMER(keycode)); break; #endif - case KC_MS_UP ... KC_MS_ACCEL2: + case MOUSE_KEYCODE_RANGE: action.code = ACTION_MOUSEKEY(keycode); break; case KC_TRANSPARENT: From 0a94c2951fa3f4f7ca928c0cb5119ec5d7000132 Mon Sep 17 00:00:00 2001 From: Logan Butler <8854426+MatchstickWorks@users.noreply.github.com> Date: Tue, 31 Oct 2023 20:12:20 -0700 Subject: [PATCH 340/496] [Keyboard] matchstickworks/southpad - Move files to rev1, add rev2 (#21574) Co-authored-by: Duncan Sutherland Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- data/mappings/keyboard_aliases.hjson | 3 + keyboards/matchstickworks/southpad/info.json | 48 +--------------- .../matchstickworks/southpad/rev1/info.json | 55 +++++++++++++++++++ .../{ => rev1}/keymaps/default/keymap.c | 4 +- .../southpad/{ => rev1}/readme.md | 6 +- .../matchstickworks/southpad/rev1/rules.mk | 0 .../matchstickworks/southpad/rev2/info.json | 55 +++++++++++++++++++ .../southpad/rev2/keymaps/default/keymap.c | 25 +++++++++ .../southpad/rev2/keymaps/via/keymap.c | 26 +++++++++ .../southpad/rev2/keymaps/via/rules.mk | 1 + .../matchstickworks/southpad/rev2/readme.md | 23 ++++++++ .../matchstickworks/southpad/rev2/rules.mk | 0 keyboards/matchstickworks/southpad/rules.mk | 12 ---- 13 files changed, 194 insertions(+), 64 deletions(-) create mode 100644 keyboards/matchstickworks/southpad/rev1/info.json rename keyboards/matchstickworks/southpad/{ => rev1}/keymaps/default/keymap.c (95%) rename keyboards/matchstickworks/southpad/{ => rev1}/readme.md (76%) create mode 100644 keyboards/matchstickworks/southpad/rev1/rules.mk create mode 100644 keyboards/matchstickworks/southpad/rev2/info.json create mode 100644 keyboards/matchstickworks/southpad/rev2/keymaps/default/keymap.c create mode 100644 keyboards/matchstickworks/southpad/rev2/keymaps/via/keymap.c create mode 100644 keyboards/matchstickworks/southpad/rev2/keymaps/via/rules.mk create mode 100644 keyboards/matchstickworks/southpad/rev2/readme.md create mode 100644 keyboards/matchstickworks/southpad/rev2/rules.mk delete mode 100644 keyboards/matchstickworks/southpad/rules.mk diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 2e79431965..038d4d588e 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -407,6 +407,9 @@ "maartenwut/wonderland": { "target": "evyd13/wonderland" }, + "matchstickworks/southpad": { + "target": "matchstickworks/southpad/rev2/" + }, "matrix/m12og": { "target": "matrix/m12og/rev1" }, diff --git a/keyboards/matchstickworks/southpad/info.json b/keyboards/matchstickworks/southpad/info.json index 887c0484cb..dcf34cac3c 100644 --- a/keyboards/matchstickworks/southpad/info.json +++ b/keyboards/matchstickworks/southpad/info.json @@ -1,50 +1,4 @@ { - "keyboard_name": "SouthPad", "manufacturer": "MatchstickWorks", - "url": "", "maintainer": "MatchstickWorks", - "usb": { - "vid": "0xFEED", - "pid": "0x6060", - "device_version": "0.0.1" - }, - "matrix_pins": { - "cols": ["B0", "B1", "B2", "B4"], - "rows": ["B3", "B5", "B6", "B7", "C7", "C6"] - }, - "diode_direction": "COL2ROW", - "processor": "atmega32u2", - "bootloader": "atmel-dfu", - "layouts": { - "LAYOUT_numpad_6x4_southpaw": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 0], "x": 0, "y": 2, "h": 2}, - - {"matrix": [3, 1], "x": 1, "y": 3}, - {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [3, 3], "x": 3, "y": 3}, - - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 2], "x": 2, "y": 4}, - {"matrix": [4, 3], "x": 3, "y": 4}, - {"matrix": [4, 0], "x": 0, "y": 4, "h": 2}, - - {"matrix": [5, 1], "x": 1, "y": 5}, - {"matrix": [5, 3], "x": 2, "y": 5, "w": 2} - ] - } - } -} +} \ No newline at end of file diff --git a/keyboards/matchstickworks/southpad/rev1/info.json b/keyboards/matchstickworks/southpad/rev1/info.json new file mode 100644 index 0000000000..15db9823b1 --- /dev/null +++ b/keyboards/matchstickworks/southpad/rev1/info.json @@ -0,0 +1,55 @@ +{ + "keyboard_name": "SouthPad", + "processor": "atmega32u2", + "bootloader": "atmel-dfu", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": false + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["B0", "B1", "B2", "B4"], + "rows": ["B3", "B5", "B6", "B7", "C7", "C6"] + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 0], "x": 0, "y": 2, "h": 2}, + + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4}, + {"matrix": [4, 0], "x": 0, "y": 4, "h": 2}, + + {"matrix": [5, 1], "x": 1, "y": 5}, + {"matrix": [5, 3], "x": 2, "y": 5, "w": 2} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/matchstickworks/southpad/keymaps/default/keymap.c b/keyboards/matchstickworks/southpad/rev1/keymaps/default/keymap.c similarity index 95% rename from keyboards/matchstickworks/southpad/keymaps/default/keymap.c rename to keyboards/matchstickworks/southpad/rev1/keymaps/default/keymap.c index 6d0f1252d4..7d5d5cf2b3 100644 --- a/keyboards/matchstickworks/southpad/keymaps/default/keymap.c +++ b/keyboards/matchstickworks/southpad/rev1/keymaps/default/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_numpad_6x4_southpaw( /* Base */ + [0] = LAYOUT( /* Base */ KC_BSPC, KC_EQL, KC_LPRN, KC_RPRN, KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, KC_P9, KC_P8, KC_P7, @@ -24,4 +24,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P3, KC_P2, KC_P1, KC_PENT, KC_PDOT, KC_P0 ), -}; +}; \ No newline at end of file diff --git a/keyboards/matchstickworks/southpad/readme.md b/keyboards/matchstickworks/southpad/rev1/readme.md similarity index 76% rename from keyboards/matchstickworks/southpad/readme.md rename to keyboards/matchstickworks/southpad/rev1/readme.md index 8c8007c2e7..20b5a58085 100644 --- a/keyboards/matchstickworks/southpad/readme.md +++ b/keyboards/matchstickworks/southpad/rev1/readme.md @@ -9,8 +9,8 @@ Default layout is such: ![SouthPad Layout](https://i.imgur.com/jc7T2jl.jpg) * Keyboard Maintainer: [Logan Butler](https://github.com/MatchstickWorks) -* Hardware Supported: SouthPad PCB -* Hardware Availability: Either via [my Etsy Store](https://www.etsy.com/shop/MatchstickWorksShop) or by messaging directly +* Hardware Supported: SouthPad v1 PCB +* Hardware Availability: Either via [my storefront](https://matchstick.works), [my Etsy Store](https://www.etsy.com/shop/MatchstickWorksShop), or by messaging directly Getting the board into bootloader mode: @@ -18,6 +18,6 @@ In order to flash the firmware to this board, simply press the Reset button on t Make example for this keyboard (after setting up your build environment): - make matchstickworks/southpad:default + make matchstickworks/southpad/rev1: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). diff --git a/keyboards/matchstickworks/southpad/rev1/rules.mk b/keyboards/matchstickworks/southpad/rev1/rules.mk new file mode 100644 index 0000000000..e69de29bb2 diff --git a/keyboards/matchstickworks/southpad/rev2/info.json b/keyboards/matchstickworks/southpad/rev2/info.json new file mode 100644 index 0000000000..717b56ef63 --- /dev/null +++ b/keyboards/matchstickworks/southpad/rev2/info.json @@ -0,0 +1,55 @@ +{ + "keyboard_name": "SouthPad v2", + "processor": "RP2040", + "bootloader": "rp2040", + "usb": { + "vid": "0x4D57", + "pid": "0x0002", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "rows": ["GP13", "GP29", "GP28", "GP20", "GP19", "GP18"], + "cols": ["GP2", "GP4", "GP11", "GP12"] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Bksp", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "=", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "(", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": ")", "matrix": [0, 3], "x": 3, "y": 0 }, + + { "label": "-", "matrix": [1, 0], "x": 0, "y": 1 }, + { "label": "*", "matrix": [1, 1], "x": 1, "y": 1 }, + { "label": "/", "matrix": [1, 2], "x": 2, "y": 1 }, + { "label": "Num Lock", "matrix": [1, 3], "x": 3, "y": 1 }, + + { "label": "+", "matrix": [2, 0], "x": 0, "y": 2, "h": 2 }, + { "label": "9", "matrix": [2, 1], "x": 1, "y": 2 }, + { "label": "8", "matrix": [2, 2], "x": 2, "y": 2 }, + { "label": "7", "matrix": [2, 3], "x": 3, "y": 2 }, + + { "label": "6", "matrix": [3, 1], "x": 1, "y": 3 }, + { "label": "5", "matrix": [3, 2], "x": 2, "y": 3 }, + { "label": "4", "matrix": [3, 3], "x": 3, "y": 3 }, + + { "label": "Enter", "matrix": [4, 0], "x": 0, "y": 4, "h": 2 }, + { "label": "3", "matrix": [4, 1], "x": 1, "y": 4 }, + { "label": "2", "matrix": [4, 2], "x": 2, "y": 4 }, + { "label": "1", "matrix": [4, 3], "x": 3, "y": 4 }, + + { "label": ".", "matrix": [5, 1], "x": 1, "y": 5 }, + { "label": "0", "matrix": [5, 3], "x": 2, "y": 5, "w": 2 } + ] + } + } +} diff --git a/keyboards/matchstickworks/southpad/rev2/keymaps/default/keymap.c b/keyboards/matchstickworks/southpad/rev2/keymaps/default/keymap.c new file mode 100644 index 0000000000..2dd332fdf5 --- /dev/null +++ b/keyboards/matchstickworks/southpad/rev2/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +/* Copyright 2023 Logan Butler*/ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_BSPC, KC_EQL, LSFT(KC_9),LSFT(KC_0), + KC_PMNS, KC_PAST, KC_PSLS, TG(1), + KC_PPLS, KC_P9, KC_P8, KC_P7, + KC_P6, KC_P5, KC_P4, + KC_PENT, KC_P3, KC_P2, KC_P1, + KC_PDOT, KC_P0 + ), + + [1] = LAYOUT( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, KC_PGUP, KC_UP, KC_HOME, + KC_LEFT, _______, KC_RGHT, + _______, KC_PGDN, KC_DOWN, KC_END, + KC_DEL, KC_INS + ), +}; \ No newline at end of file diff --git a/keyboards/matchstickworks/southpad/rev2/keymaps/via/keymap.c b/keyboards/matchstickworks/southpad/rev2/keymaps/via/keymap.c new file mode 100644 index 0000000000..eabe8dd5d5 --- /dev/null +++ b/keyboards/matchstickworks/southpad/rev2/keymaps/via/keymap.c @@ -0,0 +1,26 @@ +/* Copyright 2023 Logan Butler*/ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_BSPC, KC_EQL, LSFT(KC_9),LSFT(KC_0), + KC_PMNS, KC_PAST, KC_PSLS, TG(1), + KC_PPLS, KC_P9, KC_P8, KC_P7, + KC_P6, KC_P5, KC_P4, + KC_PENT, KC_P3, KC_P2, KC_P1, + KC_PDOT, KC_P0 + ), + + [1] = LAYOUT( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, KC_PGUP, KC_UP, KC_HOME, + KC_LEFT, _______, KC_RGHT, + _______, KC_PGDN, KC_DOWN, KC_END, + KC_DEL, KC_INS + ), + +}; \ No newline at end of file diff --git a/keyboards/matchstickworks/southpad/rev2/keymaps/via/rules.mk b/keyboards/matchstickworks/southpad/rev2/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/matchstickworks/southpad/rev2/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/matchstickworks/southpad/rev2/readme.md b/keyboards/matchstickworks/southpad/rev2/readme.md new file mode 100644 index 0000000000..b249265f29 --- /dev/null +++ b/keyboards/matchstickworks/southpad/rev2/readme.md @@ -0,0 +1,23 @@ +# SouthPad + +![Southpad](https://i.imgur.com/oXi69cuh.png) + +This is a left-handed, mirrored numberpad with USB-C connection and Kailh hotswap sockets, built on the RP2040 MCU. + +Default layout is such: + +![SouthPad Layout](https://i.imgur.com/Zwxpa7ah.png) + +* Keyboard Maintainer: [Logan Butler](https://github.com/MatchstickWorks) +* Hardware Supported: SouthPad v2 PCB +* Hardware Availability: Either via [my storefront](https://matchstick.works), [my Etsy Store](https://www.etsy.com/shop/MatchstickWorksShop), or by messaging directly + +Getting the board into bootloader mode: + +In order to flash the firmware to this board, simply press both the RESET and BOOT buttons on the back of the PCB. You will hear a reconnect sound on your computer and a file explorer window should open where you can drag and drop the compiled UF2 into. + +Make example for this keyboard (after setting up your build environment): + + make matchstickworks/southpad/rev2: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). diff --git a/keyboards/matchstickworks/southpad/rev2/rules.mk b/keyboards/matchstickworks/southpad/rev2/rules.mk new file mode 100644 index 0000000000..e69de29bb2 diff --git a/keyboards/matchstickworks/southpad/rules.mk b/keyboards/matchstickworks/southpad/rules.mk deleted file mode 100644 index 59c896dbff..0000000000 --- a/keyboards/matchstickworks/southpad/rules.mk +++ /dev/null @@ -1,12 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output From a27bc60703dda744309c5f13320f667f5c766260 Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 2 Nov 2023 06:13:25 +1100 Subject: [PATCH 341/496] LED drivers: add defines for PWM and LED control register counts (#22383) --- drivers/led/issi/is31fl3218-simple.c | 15 +++++++++------ drivers/led/issi/is31fl3218.c | 15 +++++++++------ drivers/led/issi/is31fl3731-simple.c | 15 +++++++++------ drivers/led/issi/is31fl3731.c | 15 +++++++++------ drivers/led/issi/is31fl3733-simple.c | 17 ++++++++++------- drivers/led/issi/is31fl3733.c | 17 ++++++++++------- drivers/led/issi/is31fl3736-simple.c | 17 ++++++++++------- drivers/led/issi/is31fl3736.c | 17 ++++++++++------- drivers/led/issi/is31fl3737-simple.c | 17 ++++++++++------- drivers/led/issi/is31fl3737.c | 17 ++++++++++------- drivers/led/issi/is31fl3741-simple.c | 8 ++++---- drivers/led/issi/is31fl3741.c | 8 ++++---- drivers/led/snled27351-simple.c | 13 ++++++++----- drivers/led/snled27351.c | 13 ++++++++----- keyboards/input_club/k_type/is31fl3733-dual.c | 17 ++++++++++------- 15 files changed, 130 insertions(+), 91 deletions(-) diff --git a/drivers/led/issi/is31fl3218-simple.c b/drivers/led/issi/is31fl3218-simple.c index bdf3187fe1..ea9d76ddbb 100644 --- a/drivers/led/issi/is31fl3218-simple.c +++ b/drivers/led/issi/is31fl3218-simple.c @@ -24,6 +24,9 @@ #define IS31FL3218_REG_UPDATE 0x16 #define IS31FL3218_REG_RESET 0x17 +#define IS31FL3218_PWM_REGISTER_COUNT 18 +#define IS31FL3218_LED_CONTROL_REGISTER_COUNT 3 + #ifndef IS31FL3218_I2C_TIMEOUT # define IS31FL3218_I2C_TIMEOUT 100 #endif @@ -36,11 +39,11 @@ uint8_t g_twi_transfer_buffer[20]; // IS31FL3218 has 18 PWM outputs and a fixed I2C address, so no chaining. -uint8_t g_pwm_buffer[18]; +uint8_t g_pwm_buffer[IS31FL3218_PWM_REGISTER_COUNT]; bool g_pwm_buffer_update_required = false; -uint8_t g_led_control_registers[3] = {0}; -bool g_led_control_registers_update_required = false; +uint8_t g_led_control_registers[IS31FL3218_LED_CONTROL_REGISTER_COUNT] = {0}; +bool g_led_control_registers_update_required = false; void is31fl3218_write_register(uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; @@ -77,12 +80,12 @@ void is31fl3218_init(void) { is31fl3218_write_register(IS31FL3218_REG_SHUTDOWN, 0x01); // Set all PWM values to zero - for (uint8_t i = 0; i < 18; i++) { + for (uint8_t i = 0; i < IS31FL3218_PWM_REGISTER_COUNT; i++) { is31fl3218_write_register(IS31FL3218_REG_PWM + i, 0x00); } // turn off all LEDs in the LED control register - for (uint8_t i = 0; i < 3; i++) { + for (uint8_t i = 0; i < IS31FL3218_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3218_write_register(IS31FL3218_REG_CONTROL + i, 0x00); } @@ -142,7 +145,7 @@ void is31fl3218_update_pwm_buffers(void) { void is31fl3218_update_led_control_registers(void) { if (g_led_control_registers_update_required) { - for (int i = 0; i < 3; i++) { + for (int i = 0; i < IS31FL3218_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3218_write_register(IS31FL3218_REG_CONTROL + i, g_led_control_registers[i]); } diff --git a/drivers/led/issi/is31fl3218.c b/drivers/led/issi/is31fl3218.c index 04523a3c01..357cb1ab55 100644 --- a/drivers/led/issi/is31fl3218.c +++ b/drivers/led/issi/is31fl3218.c @@ -24,6 +24,9 @@ #define IS31FL3218_REG_UPDATE 0x16 #define IS31FL3218_REG_RESET 0x17 +#define IS31FL3218_PWM_REGISTER_COUNT 18 +#define IS31FL3218_LED_CONTROL_REGISTER_COUNT 3 + #ifndef IS31FL3218_I2C_TIMEOUT # define IS31FL3218_I2C_TIMEOUT 100 #endif @@ -36,11 +39,11 @@ uint8_t g_twi_transfer_buffer[20]; // IS31FL3218 has 18 PWM outputs and a fixed I2C address, so no chaining. -uint8_t g_pwm_buffer[18]; +uint8_t g_pwm_buffer[IS31FL3218_PWM_REGISTER_COUNT]; bool g_pwm_buffer_update_required = false; -uint8_t g_led_control_registers[3] = {0}; -bool g_led_control_registers_update_required = false; +uint8_t g_led_control_registers[IS31FL3218_LED_CONTROL_REGISTER_COUNT] = {0}; +bool g_led_control_registers_update_required = false; void is31fl3218_write_register(uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; @@ -77,12 +80,12 @@ void is31fl3218_init(void) { is31fl3218_write_register(IS31FL3218_REG_SHUTDOWN, 0x01); // Set all PWM values to zero - for (uint8_t i = 0; i < 18; i++) { + for (uint8_t i = 0; i < IS31FL3218_PWM_REGISTER_COUNT; i++) { is31fl3218_write_register(IS31FL3218_REG_PWM + i, 0x00); } // turn off all LEDs in the LED control register - for (uint8_t i = 0; i < 3; i++) { + for (uint8_t i = 0; i < IS31FL3218_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3218_write_register(IS31FL3218_REG_CONTROL + i, 0x00); } @@ -158,7 +161,7 @@ void is31fl3218_update_pwm_buffers(void) { void is31fl3218_update_led_control_registers(void) { if (g_led_control_registers_update_required) { - for (int i = 0; i < 3; i++) { + for (int i = 0; i < IS31FL3218_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3218_write_register(IS31FL3218_REG_CONTROL + i, g_led_control_registers[i]); } diff --git a/drivers/led/issi/is31fl3731-simple.c b/drivers/led/issi/is31fl3731-simple.c index 3663d30c10..c6f1da5789 100644 --- a/drivers/led/issi/is31fl3731-simple.c +++ b/drivers/led/issi/is31fl3731-simple.c @@ -42,6 +42,9 @@ #define IS31FL3731_COMMANDREGISTER 0xFD #define IS31FL3731_BANK_FUNCTIONREG 0x0B // helpfully called 'page nine' +#define IS31FL3731_PWM_REGISTER_COUNT 144 +#define IS31FL3731_LED_CONTROL_REGISTER_COUNT 18 + #ifndef IS31FL3731_I2C_TIMEOUT # define IS31FL3731_I2C_TIMEOUT 100 #endif @@ -58,11 +61,11 @@ uint8_t g_twi_transfer_buffer[20]; // We could optimize this and take out the unused registers from these // buffers and the transfers in is31fl3731_write_pwm_buffer() but it's // probably not worth the extra complexity. -uint8_t g_pwm_buffer[IS31FL3731_DRIVER_COUNT][144]; +uint8_t g_pwm_buffer[IS31FL3731_DRIVER_COUNT][IS31FL3731_PWM_REGISTER_COUNT]; bool g_pwm_buffer_update_required[IS31FL3731_DRIVER_COUNT] = {false}; -uint8_t g_led_control_registers[IS31FL3731_DRIVER_COUNT][18] = {0}; -bool g_led_control_registers_update_required[IS31FL3731_DRIVER_COUNT] = {false}; +uint8_t g_led_control_registers[IS31FL3731_DRIVER_COUNT][IS31FL3731_LED_CONTROL_REGISTER_COUNT] = {0}; +bool g_led_control_registers_update_required[IS31FL3731_DRIVER_COUNT] = {false}; void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; @@ -86,7 +89,7 @@ void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // g_twi_transfer_buffer[] is 20 bytes // iterate over the pwm_buffer contents at 16 byte intervals - for (int i = 0; i < 144; i += 16) { + for (int i = 0; i < IS31FL3731_PWM_REGISTER_COUNT; i += 16) { // set the first register, e.g. 0x24, 0x34, 0x44, etc. g_twi_transfer_buffer[0] = 0x24 + i; // copy the data from i to i+15 @@ -163,7 +166,7 @@ void is31fl3731_init(uint8_t addr) { is31fl3731_write_register(addr, IS31FL3731_COMMANDREGISTER, 0); // turn off all LEDs in the LED control register - for (int i = 0x00; i <= 0x11; i++) { + for (int i = 0; i < IS31FL3731_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3731_write_register(addr, i, 0x00); } @@ -235,7 +238,7 @@ void is31fl3731_update_pwm_buffers(uint8_t addr, uint8_t index) { void is31fl3731_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { - for (int i = 0; i < 18; i++) { + for (int i = 0; i < IS31FL3731_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3731_write_register(addr, i, g_led_control_registers[index][i]); } g_led_control_registers_update_required[index] = false; diff --git a/drivers/led/issi/is31fl3731.c b/drivers/led/issi/is31fl3731.c index 42abd8ed38..6a64d89ecf 100644 --- a/drivers/led/issi/is31fl3731.c +++ b/drivers/led/issi/is31fl3731.c @@ -41,6 +41,9 @@ #define IS31FL3731_COMMANDREGISTER 0xFD #define IS31FL3731_BANK_FUNCTIONREG 0x0B // helpfully called 'page nine' +#define IS31FL3731_PWM_REGISTER_COUNT 144 +#define IS31FL3731_LED_CONTROL_REGISTER_COUNT 18 + #ifndef IS31FL3731_I2C_TIMEOUT # define IS31FL3731_I2C_TIMEOUT 100 #endif @@ -57,11 +60,11 @@ uint8_t g_twi_transfer_buffer[20]; // We could optimize this and take out the unused registers from these // buffers and the transfers in is31fl3731_write_pwm_buffer() but it's // probably not worth the extra complexity. -uint8_t g_pwm_buffer[IS31FL3731_DRIVER_COUNT][144]; +uint8_t g_pwm_buffer[IS31FL3731_DRIVER_COUNT][IS31FL3731_PWM_REGISTER_COUNT]; bool g_pwm_buffer_update_required[IS31FL3731_DRIVER_COUNT] = {false}; -uint8_t g_led_control_registers[IS31FL3731_DRIVER_COUNT][18] = {0}; -bool g_led_control_registers_update_required[IS31FL3731_DRIVER_COUNT] = {false}; +uint8_t g_led_control_registers[IS31FL3731_DRIVER_COUNT][IS31FL3731_LED_CONTROL_REGISTER_COUNT] = {0}; +bool g_led_control_registers_update_required[IS31FL3731_DRIVER_COUNT] = {false}; void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; @@ -83,7 +86,7 @@ void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // g_twi_transfer_buffer[] is 20 bytes // iterate over the pwm_buffer contents at 16 byte intervals - for (int i = 0; i < 144; i += 16) { + for (int i = 0; i < IS31FL3731_PWM_REGISTER_COUNT; i += 16) { // set the first register, e.g. 0x24, 0x34, 0x44, etc. g_twi_transfer_buffer[0] = 0x24 + i; // copy the data from i to i+15 @@ -160,7 +163,7 @@ void is31fl3731_init(uint8_t addr) { is31fl3731_write_register(addr, IS31FL3731_COMMANDREGISTER, 0); // turn off all LEDs in the LED control register - for (int i = 0x00; i <= 0x11; i++) { + for (int i = 0; i < IS31FL3731_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3731_write_register(addr, i, 0x00); } @@ -247,7 +250,7 @@ void is31fl3731_update_pwm_buffers(uint8_t addr, uint8_t index) { void is31fl3731_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { - for (int i = 0; i < 18; i++) { + for (int i = 0; i < IS31FL3731_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3731_write_register(addr, i, g_led_control_registers[index][i]); } } diff --git a/drivers/led/issi/is31fl3733-simple.c b/drivers/led/issi/is31fl3733-simple.c index aa1b02450c..966a8d7cf2 100644 --- a/drivers/led/issi/is31fl3733-simple.c +++ b/drivers/led/issi/is31fl3733-simple.c @@ -39,6 +39,9 @@ #define IS31FL3733_REG_SWPULLUP 0x0F // PG3 #define IS31FL3733_REG_CSPULLUP 0x10 // PG3 +#define IS31FL3733_PWM_REGISTER_COUNT 192 +#define IS31FL3733_LED_CONTROL_REGISTER_COUNT 24 + #ifndef IS31FL3733_I2C_TIMEOUT # define IS31FL3733_I2C_TIMEOUT 100 #endif @@ -85,11 +88,11 @@ uint8_t g_twi_transfer_buffer[20]; // We could optimize this and take out the unused registers from these // buffers and the transfers in is31fl3733_write_pwm_buffer() but it's // probably not worth the extra complexity. -uint8_t g_pwm_buffer[IS31FL3733_DRIVER_COUNT][192]; +uint8_t g_pwm_buffer[IS31FL3733_DRIVER_COUNT][IS31FL3733_PWM_REGISTER_COUNT]; bool g_pwm_buffer_update_required[IS31FL3733_DRIVER_COUNT] = {false}; -uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][24] = {0}; -bool g_led_control_registers_update_required[IS31FL3733_DRIVER_COUNT] = {false}; +uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][IS31FL3733_LED_CONTROL_REGISTER_COUNT] = {0}; +bool g_led_control_registers_update_required[IS31FL3733_DRIVER_COUNT] = {false}; bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data) { // If the transaction fails function returns false. @@ -117,7 +120,7 @@ bool is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // g_twi_transfer_buffer[] is 20 bytes // Iterate over the pwm_buffer contents at 16 byte intervals. - for (int i = 0; i < 192; i += 16) { + for (int i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i += 16) { g_twi_transfer_buffer[0] = i; // Copy the data from i to i+15. // Device will auto-increment register for data after the first byte @@ -182,7 +185,7 @@ void is31fl3733_init(uint8_t addr, uint8_t sync) { // Select PG0 is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_LEDCONTROL); // Turn off all LEDs. - for (int i = 0x00; i <= 0x17; i++) { + for (int i = 0; i < IS31FL3733_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3733_write_register(addr, i, 0x00); } @@ -193,7 +196,7 @@ void is31fl3733_init(uint8_t addr, uint8_t sync) { is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_PWM); // Set PWM on all LEDs to 0 // No need to setup Breath registers to PWM as that is the default. - for (int i = 0x00; i <= 0xBF; i++) { + for (int i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i++) { is31fl3733_write_register(addr, i, 0x00); } @@ -270,7 +273,7 @@ void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index) { // Firstly we need to unlock the command register and select PG0 is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_LEDCONTROL); - for (int i = 0; i < 24; i++) { + for (int i = 0; i < IS31FL3733_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3733_write_register(addr, i, g_led_control_registers[index][i]); } g_led_control_registers_update_required[index] = false; diff --git a/drivers/led/issi/is31fl3733.c b/drivers/led/issi/is31fl3733.c index 24b0733030..729d2bc57c 100644 --- a/drivers/led/issi/is31fl3733.c +++ b/drivers/led/issi/is31fl3733.c @@ -38,6 +38,9 @@ #define IS31FL3733_REG_SWPULLUP 0x0F // PG3 #define IS31FL3733_REG_CSPULLUP 0x10 // PG3 +#define IS31FL3733_PWM_REGISTER_COUNT 192 +#define IS31FL3733_LED_CONTROL_REGISTER_COUNT 24 + #ifndef IS31FL3733_I2C_TIMEOUT # define IS31FL3733_I2C_TIMEOUT 100 #endif @@ -84,11 +87,11 @@ uint8_t g_twi_transfer_buffer[20]; // We could optimize this and take out the unused registers from these // buffers and the transfers in is31fl3733_write_pwm_buffer() but it's // probably not worth the extra complexity. -uint8_t g_pwm_buffer[IS31FL3733_DRIVER_COUNT][192]; +uint8_t g_pwm_buffer[IS31FL3733_DRIVER_COUNT][IS31FL3733_PWM_REGISTER_COUNT]; bool g_pwm_buffer_update_required[IS31FL3733_DRIVER_COUNT] = {false}; -uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][24] = {0}; -bool g_led_control_registers_update_required[IS31FL3733_DRIVER_COUNT] = {false}; +uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][IS31FL3733_LED_CONTROL_REGISTER_COUNT] = {0}; +bool g_led_control_registers_update_required[IS31FL3733_DRIVER_COUNT] = {false}; bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data) { // If the transaction fails function returns false. @@ -116,7 +119,7 @@ bool is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // g_twi_transfer_buffer[] is 20 bytes // Iterate over the pwm_buffer contents at 16 byte intervals. - for (int i = 0; i < 192; i += 16) { + for (int i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i += 16) { g_twi_transfer_buffer[0] = i; // Copy the data from i to i+15. // Device will auto-increment register for data after the first byte @@ -181,7 +184,7 @@ void is31fl3733_init(uint8_t addr, uint8_t sync) { // Select PG0 is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_LEDCONTROL); // Turn off all LEDs. - for (int i = 0x00; i <= 0x17; i++) { + for (int i = 0; i < IS31FL3733_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3733_write_register(addr, i, 0x00); } @@ -192,7 +195,7 @@ void is31fl3733_init(uint8_t addr, uint8_t sync) { is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_PWM); // Set PWM on all LEDs to 0 // No need to setup Breath registers to PWM as that is the default. - for (int i = 0x00; i <= 0xBF; i++) { + for (int i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i++) { is31fl3733_write_register(addr, i, 0x00); } @@ -285,7 +288,7 @@ void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index) { // Firstly we need to unlock the command register and select PG0 is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_LEDCONTROL); - for (int i = 0; i < 24; i++) { + for (int i = 0; i < IS31FL3733_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3733_write_register(addr, i, g_led_control_registers[index][i]); } g_led_control_registers_update_required[index] = false; diff --git a/drivers/led/issi/is31fl3736-simple.c b/drivers/led/issi/is31fl3736-simple.c index 2876533819..45daaf3187 100644 --- a/drivers/led/issi/is31fl3736-simple.c +++ b/drivers/led/issi/is31fl3736-simple.c @@ -36,6 +36,9 @@ #define IS31FL3736_REG_SWPULLUP 0x0F // PG3 #define IS31FL3736_REG_CSPULLUP 0x10 // PG3 +#define IS31FL3736_PWM_REGISTER_COUNT 192 // actually 96 +#define IS31FL3736_LED_CONTROL_REGISTER_COUNT 24 + #ifndef IS31FL3736_I2C_TIMEOUT # define IS31FL3736_I2C_TIMEOUT 100 #endif @@ -69,11 +72,11 @@ uint8_t g_twi_transfer_buffer[20]; // We could optimize this and take out the unused registers from these // buffers and the transfers in is31fl3736_write_pwm_buffer() but it's // probably not worth the extra complexity. -uint8_t g_pwm_buffer[IS31FL3736_DRIVER_COUNT][192]; +uint8_t g_pwm_buffer[IS31FL3736_DRIVER_COUNT][IS31FL3736_PWM_REGISTER_COUNT]; bool g_pwm_buffer_update_required[IS31FL3736_DRIVER_COUNT] = {false}; -uint8_t g_led_control_registers[IS31FL3736_DRIVER_COUNT][24] = {0}; -bool g_led_control_registers_update_required[IS31FL3736_DRIVER_COUNT] = {false}; +uint8_t g_led_control_registers[IS31FL3736_DRIVER_COUNT][IS31FL3736_LED_CONTROL_REGISTER_COUNT] = {0}; +bool g_led_control_registers_update_required[IS31FL3736_DRIVER_COUNT] = {false}; void is31fl3736_write_register(uint8_t addr, uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; @@ -95,7 +98,7 @@ void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // g_twi_transfer_buffer[] is 20 bytes // iterate over the pwm_buffer contents at 16 byte intervals - for (int i = 0; i < 192; i += 16) { + for (int i = 0; i < IS31FL3736_PWM_REGISTER_COUNT; i += 16) { g_twi_transfer_buffer[0] = i; // copy the data from i to i+15 // device will auto-increment register for data after the first byte @@ -154,7 +157,7 @@ void is31fl3736_init(uint8_t addr) { // Select PG0 is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_LEDCONTROL); // Turn off all LEDs. - for (int i = 0x00; i <= 0x17; i++) { + for (int i = 0; i < IS31FL3736_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3736_write_register(addr, i, 0x00); } @@ -165,7 +168,7 @@ void is31fl3736_init(uint8_t addr) { is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_PWM); // Set PWM on all LEDs to 0 // No need to setup Breath registers to PWM as that is the default. - for (int i = 0x00; i <= 0xBF; i++) { + for (int i = 0; i < IS31FL3736_PWM_REGISTER_COUNT; i++) { is31fl3736_write_register(addr, i, 0x00); } @@ -244,7 +247,7 @@ void is31fl3736_update_led_control_registers(uint8_t addr, uint8_t index) { // Firstly we need to unlock the command register and select PG0 is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER_WRITELOCK, 0xC5); is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_LEDCONTROL); - for (int i = 0; i < 24; i++) { + for (int i = 0; i < IS31FL3736_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3736_write_register(addr, i, g_led_control_registers[index][i]); } g_led_control_registers_update_required[index] = false; diff --git a/drivers/led/issi/is31fl3736.c b/drivers/led/issi/is31fl3736.c index ad421e5cf2..36cd132d46 100644 --- a/drivers/led/issi/is31fl3736.c +++ b/drivers/led/issi/is31fl3736.c @@ -36,6 +36,9 @@ #define IS31FL3736_REG_SWPULLUP 0x0F // PG3 #define IS31FL3736_REG_CSPULLUP 0x10 // PG3 +#define IS31FL3736_PWM_REGISTER_COUNT 192 // actually 96 +#define IS31FL3736_LED_CONTROL_REGISTER_COUNT 24 + #ifndef IS31FL3736_I2C_TIMEOUT # define IS31FL3736_I2C_TIMEOUT 100 #endif @@ -69,11 +72,11 @@ uint8_t g_twi_transfer_buffer[20]; // We could optimize this and take out the unused registers from these // buffers and the transfers in is31fl3736_write_pwm_buffer() but it's // probably not worth the extra complexity. -uint8_t g_pwm_buffer[IS31FL3736_DRIVER_COUNT][192]; +uint8_t g_pwm_buffer[IS31FL3736_DRIVER_COUNT][IS31FL3736_PWM_REGISTER_COUNT]; bool g_pwm_buffer_update_required[IS31FL3736_DRIVER_COUNT] = {false}; -uint8_t g_led_control_registers[IS31FL3736_DRIVER_COUNT][24] = {0}; -bool g_led_control_registers_update_required[IS31FL3736_DRIVER_COUNT] = {false}; +uint8_t g_led_control_registers[IS31FL3736_DRIVER_COUNT][IS31FL3736_LED_CONTROL_REGISTER_COUNT] = {0}; +bool g_led_control_registers_update_required[IS31FL3736_DRIVER_COUNT] = {false}; void is31fl3736_write_register(uint8_t addr, uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; @@ -95,7 +98,7 @@ void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // g_twi_transfer_buffer[] is 20 bytes // iterate over the pwm_buffer contents at 16 byte intervals - for (int i = 0; i < 192; i += 16) { + for (int i = 0; i < IS31FL3736_PWM_REGISTER_COUNT; i += 16) { g_twi_transfer_buffer[0] = i; // copy the data from i to i+15 // device will auto-increment register for data after the first byte @@ -154,7 +157,7 @@ void is31fl3736_init(uint8_t addr) { // Select PG0 is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_LEDCONTROL); // Turn off all LEDs. - for (int i = 0x00; i <= 0x17; i++) { + for (int i = 0; i < IS31FL3736_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3736_write_register(addr, i, 0x00); } @@ -165,7 +168,7 @@ void is31fl3736_init(uint8_t addr) { is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_PWM); // Set PWM on all LEDs to 0 // No need to setup Breath registers to PWM as that is the default. - for (int i = 0x00; i <= 0xBF; i++) { + for (int i = 0; i < IS31FL3736_PWM_REGISTER_COUNT; i++) { is31fl3736_write_register(addr, i, 0x00); } @@ -261,7 +264,7 @@ void is31fl3736_update_led_control_registers(uint8_t addr, uint8_t index) { // Firstly we need to unlock the command register and select PG0 is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER_WRITELOCK, 0xC5); is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_LEDCONTROL); - for (int i = 0; i < 24; i++) { + for (int i = 0; i < IS31FL3736_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3736_write_register(addr, i, g_led_control_registers[index][i]); } g_led_control_registers_update_required[index] = false; diff --git a/drivers/led/issi/is31fl3737-simple.c b/drivers/led/issi/is31fl3737-simple.c index aa6eba982c..0549af16f2 100644 --- a/drivers/led/issi/is31fl3737-simple.c +++ b/drivers/led/issi/is31fl3737-simple.c @@ -38,6 +38,9 @@ #define IS31FL3737_REG_SWPULLUP 0x0F // PG3 #define IS31FL3737_REG_CSPULLUP 0x10 // PG3 +#define IS31FL3737_PWM_REGISTER_COUNT 192 // actually 144 +#define IS31FL3737_LED_CONTROL_REGISTER_COUNT 24 + #ifndef IS31FL3737_I2C_TIMEOUT # define IS31FL3737_I2C_TIMEOUT 100 #endif @@ -72,11 +75,11 @@ uint8_t g_twi_transfer_buffer[20]; // buffers and the transfers in is31fl3737_write_pwm_buffer() but it's // probably not worth the extra complexity. -uint8_t g_pwm_buffer[IS31FL3737_DRIVER_COUNT][192]; +uint8_t g_pwm_buffer[IS31FL3737_DRIVER_COUNT][IS31FL3737_PWM_REGISTER_COUNT]; bool g_pwm_buffer_update_required[IS31FL3737_DRIVER_COUNT] = {false}; -uint8_t g_led_control_registers[IS31FL3737_DRIVER_COUNT][24] = {0}; -bool g_led_control_registers_update_required[IS31FL3737_DRIVER_COUNT] = {false}; +uint8_t g_led_control_registers[IS31FL3737_DRIVER_COUNT][IS31FL3737_LED_CONTROL_REGISTER_COUNT] = {0}; +bool g_led_control_registers_update_required[IS31FL3737_DRIVER_COUNT] = {false}; void is31fl3737_write_register(uint8_t addr, uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; @@ -98,7 +101,7 @@ void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // g_twi_transfer_buffer[] is 20 bytes // iterate over the pwm_buffer contents at 16 byte intervals - for (int i = 0; i < 192; i += 16) { + for (int i = 0; i < IS31FL3737_PWM_REGISTER_COUNT; i += 16) { g_twi_transfer_buffer[0] = i; // copy the data from i to i+15 // device will auto-increment register for data after the first byte @@ -157,7 +160,7 @@ void is31fl3737_init(uint8_t addr) { // Select PG0 is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_LEDCONTROL); // Turn off all LEDs. - for (int i = 0x00; i <= 0x17; i++) { + for (int i = 0; i < IS31FL3737_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3737_write_register(addr, i, 0x00); } @@ -168,7 +171,7 @@ void is31fl3737_init(uint8_t addr) { is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_PWM); // Set PWM on all LEDs to 0 // No need to setup Breath registers to PWM as that is the default. - for (int i = 0x00; i <= 0xBF; i++) { + for (int i = 0; i < IS31FL3737_PWM_REGISTER_COUNT; i++) { is31fl3737_write_register(addr, i, 0x00); } @@ -241,7 +244,7 @@ void is31fl3737_update_led_control_registers(uint8_t addr, uint8_t index) { // Firstly we need to unlock the command register and select PG0 is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER_WRITELOCK, 0xC5); is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_LEDCONTROL); - for (int i = 0; i < 24; i++) { + for (int i = 0; i < IS31FL3737_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3737_write_register(addr, i, g_led_control_registers[index][i]); } g_led_control_registers_update_required[index] = false; diff --git a/drivers/led/issi/is31fl3737.c b/drivers/led/issi/is31fl3737.c index 75544231ec..1599e59058 100644 --- a/drivers/led/issi/is31fl3737.c +++ b/drivers/led/issi/is31fl3737.c @@ -38,6 +38,9 @@ #define IS31FL3737_REG_SWPULLUP 0x0F // PG3 #define IS31FL3737_REG_CSPULLUP 0x10 // PG3 +#define IS31FL3737_PWM_REGISTER_COUNT 192 // actually 144 +#define IS31FL3737_LED_CONTROL_REGISTER_COUNT 24 + #ifndef IS31FL3737_I2C_TIMEOUT # define IS31FL3737_I2C_TIMEOUT 100 #endif @@ -72,11 +75,11 @@ uint8_t g_twi_transfer_buffer[20]; // buffers and the transfers in is31fl3737_write_pwm_buffer() but it's // probably not worth the extra complexity. -uint8_t g_pwm_buffer[IS31FL3737_DRIVER_COUNT][192]; +uint8_t g_pwm_buffer[IS31FL3737_DRIVER_COUNT][IS31FL3737_PWM_REGISTER_COUNT]; bool g_pwm_buffer_update_required[IS31FL3737_DRIVER_COUNT] = {false}; -uint8_t g_led_control_registers[IS31FL3737_DRIVER_COUNT][24] = {0}; -bool g_led_control_registers_update_required[IS31FL3737_DRIVER_COUNT] = {false}; +uint8_t g_led_control_registers[IS31FL3737_DRIVER_COUNT][IS31FL3737_LED_CONTROL_REGISTER_COUNT] = {0}; +bool g_led_control_registers_update_required[IS31FL3737_DRIVER_COUNT] = {false}; void is31fl3737_write_register(uint8_t addr, uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; @@ -98,7 +101,7 @@ void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // g_twi_transfer_buffer[] is 20 bytes // iterate over the pwm_buffer contents at 16 byte intervals - for (int i = 0; i < 192; i += 16) { + for (int i = 0; i < IS31FL3737_PWM_REGISTER_COUNT; i += 16) { g_twi_transfer_buffer[0] = i; // copy the data from i to i+15 // device will auto-increment register for data after the first byte @@ -157,7 +160,7 @@ void is31fl3737_init(uint8_t addr) { // Select PG0 is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_LEDCONTROL); // Turn off all LEDs. - for (int i = 0x00; i <= 0x17; i++) { + for (int i = 0; i < IS31FL3737_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3737_write_register(addr, i, 0x00); } @@ -168,7 +171,7 @@ void is31fl3737_init(uint8_t addr) { is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_PWM); // Set PWM on all LEDs to 0 // No need to setup Breath registers to PWM as that is the default. - for (int i = 0x00; i <= 0xBF; i++) { + for (int i = 0; i < IS31FL3737_PWM_REGISTER_COUNT; i++) { is31fl3737_write_register(addr, i, 0x00); } @@ -257,7 +260,7 @@ void is31fl3737_update_led_control_registers(uint8_t addr, uint8_t index) { // Firstly we need to unlock the command register and select PG0 is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER_WRITELOCK, 0xC5); is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_LEDCONTROL); - for (int i = 0; i < 24; i++) { + for (int i = 0; i < IS31FL3737_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3737_write_register(addr, i, g_led_control_registers[index][i]); } g_led_control_registers_update_required[index] = false; diff --git a/drivers/led/issi/is31fl3741-simple.c b/drivers/led/issi/is31fl3741-simple.c index 8e77a6446d..83a1f12f6f 100644 --- a/drivers/led/issi/is31fl3741-simple.c +++ b/drivers/led/issi/is31fl3741-simple.c @@ -40,6 +40,8 @@ #define IS31FL3741_REG_PWM_FREQUENCY 0x36 // PG4 #define IS31FL3741_REG_RESET 0x3F // PG4 +#define IS31FL3741_PWM_REGISTER_COUNT 351 + #ifndef IS31FL3741_I2C_TIMEOUT # define IS31FL3741_I2C_TIMEOUT 100 #endif @@ -68,8 +70,6 @@ # define IS31FL3741_GLOBALCURRENT 0xFF #endif -#define IS31FL3741_MAX_LEDS 351 - // Transfer buffer for TWITransmitData() uint8_t g_twi_transfer_buffer[20] = {0xFF}; @@ -79,11 +79,11 @@ uint8_t g_twi_transfer_buffer[20] = {0xFF}; // We could optimize this and take out the unused registers from these // buffers and the transfers in is31fl3741_write_pwm_buffer() but it's // probably not worth the extra complexity. -uint8_t g_pwm_buffer[IS31FL3741_DRIVER_COUNT][IS31FL3741_MAX_LEDS]; +uint8_t g_pwm_buffer[IS31FL3741_DRIVER_COUNT][IS31FL3741_PWM_REGISTER_COUNT]; bool g_pwm_buffer_update_required[IS31FL3741_DRIVER_COUNT] = {false}; bool g_scaling_registers_update_required[IS31FL3741_DRIVER_COUNT] = {false}; -uint8_t g_scaling_registers[IS31FL3741_DRIVER_COUNT][IS31FL3741_MAX_LEDS]; +uint8_t g_scaling_registers[IS31FL3741_DRIVER_COUNT][IS31FL3741_PWM_REGISTER_COUNT]; void is31fl3741_write_register(uint8_t addr, uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; diff --git a/drivers/led/issi/is31fl3741.c b/drivers/led/issi/is31fl3741.c index f316b76157..214cccf2ca 100644 --- a/drivers/led/issi/is31fl3741.c +++ b/drivers/led/issi/is31fl3741.c @@ -40,6 +40,8 @@ #define IS31FL3741_REG_PWM_FREQUENCY 0x36 // PG4 #define IS31FL3741_REG_RESET 0x3F // PG4 +#define IS31FL3741_PWM_REGISTER_COUNT 351 + #ifndef IS31FL3741_I2C_TIMEOUT # define IS31FL3741_I2C_TIMEOUT 100 #endif @@ -68,8 +70,6 @@ # define IS31FL3741_GLOBALCURRENT 0xFF #endif -#define IS31FL3741_MAX_LEDS 351 - // Transfer buffer for TWITransmitData() uint8_t g_twi_transfer_buffer[20] = {0xFF}; @@ -79,11 +79,11 @@ uint8_t g_twi_transfer_buffer[20] = {0xFF}; // We could optimize this and take out the unused registers from these // buffers and the transfers in is31fl3741_write_pwm_buffer() but it's // probably not worth the extra complexity. -uint8_t g_pwm_buffer[IS31FL3741_DRIVER_COUNT][IS31FL3741_MAX_LEDS]; +uint8_t g_pwm_buffer[IS31FL3741_DRIVER_COUNT][IS31FL3741_PWM_REGISTER_COUNT]; bool g_pwm_buffer_update_required[IS31FL3741_DRIVER_COUNT] = {false}; bool g_scaling_registers_update_required[IS31FL3741_DRIVER_COUNT] = {false}; -uint8_t g_scaling_registers[IS31FL3741_DRIVER_COUNT][IS31FL3741_MAX_LEDS]; +uint8_t g_scaling_registers[IS31FL3741_DRIVER_COUNT][IS31FL3741_PWM_REGISTER_COUNT]; void is31fl3741_write_register(uint8_t addr, uint8_t reg, uint8_t data) { g_twi_transfer_buffer[0] = reg; diff --git a/drivers/led/snled27351-simple.c b/drivers/led/snled27351-simple.c index c274506f83..847cdb7715 100644 --- a/drivers/led/snled27351-simple.c +++ b/drivers/led/snled27351-simple.c @@ -17,6 +17,9 @@ #include "snled27351-simple.h" #include "i2c_master.h" +#define SNLED27351_PWM_REGISTER_COUNT 192 +#define SNLED27351_LED_CONTROL_REGISTER_COUNT 24 + #ifndef SNLED27351_I2C_TIMEOUT # define SNLED27351_I2C_TIMEOUT 100 #endif @@ -43,11 +46,11 @@ uint8_t g_twi_transfer_buffer[20]; // We could optimize this and take out the unused registers from these // buffers and the transfers in snled27351_write_pwm_buffer() but it's // probably not worth the extra complexity. -uint8_t g_pwm_buffer[SNLED27351_DRIVER_COUNT][192]; +uint8_t g_pwm_buffer[SNLED27351_DRIVER_COUNT][SNLED27351_PWM_REGISTER_COUNT]; bool g_pwm_buffer_update_required[SNLED27351_DRIVER_COUNT] = {false}; -uint8_t g_led_control_registers[SNLED27351_DRIVER_COUNT][24] = {0}; -bool g_led_control_registers_update_required[SNLED27351_DRIVER_COUNT] = {false}; +uint8_t g_led_control_registers[SNLED27351_DRIVER_COUNT][SNLED27351_LED_CONTROL_REGISTER_COUNT] = {0}; +bool g_led_control_registers_update_required[SNLED27351_DRIVER_COUNT] = {false}; bool snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data) { // If the transaction fails function returns false. @@ -75,7 +78,7 @@ bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // g_twi_transfer_buffer[] is 20 bytes // Iterate over the pwm_buffer contents at 16 byte intervals. - for (int i = 0; i < 192; i += 16) { + for (int i = 0; i < SNLED27351_PWM_REGISTER_COUNT; i += 16) { g_twi_transfer_buffer[0] = i; // Copy the data from i to i+15. // Device will auto-increment register for data after the first byte @@ -224,7 +227,7 @@ void snled27351_update_pwm_buffers(uint8_t addr, uint8_t index) { void snled27351_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_CONTROL_PAGE); - for (int i = 0; i < 24; i++) { + for (int i = 0; i < SNLED27351_LED_CONTROL_REGISTER_COUNT; i++) { snled27351_write_register(addr, i, g_led_control_registers[index][i]); } } diff --git a/drivers/led/snled27351.c b/drivers/led/snled27351.c index 2746737a5a..de0c7b3239 100644 --- a/drivers/led/snled27351.c +++ b/drivers/led/snled27351.c @@ -17,6 +17,9 @@ #include "snled27351.h" #include "i2c_master.h" +#define SNLED27351_PWM_REGISTER_COUNT 192 +#define SNLED27351_LED_CONTROL_REGISTER_COUNT 24 + #ifndef SNLED27351_I2C_TIMEOUT # define SNLED27351_I2C_TIMEOUT 100 #endif @@ -43,11 +46,11 @@ uint8_t g_twi_transfer_buffer[65]; // We could optimize this and take out the unused registers from these // buffers and the transfers in snled27351_write_pwm_buffer() but it's // probably not worth the extra complexity. -uint8_t g_pwm_buffer[SNLED27351_DRIVER_COUNT][192]; +uint8_t g_pwm_buffer[SNLED27351_DRIVER_COUNT][SNLED27351_PWM_REGISTER_COUNT]; bool g_pwm_buffer_update_required[SNLED27351_DRIVER_COUNT] = {false}; -uint8_t g_led_control_registers[SNLED27351_DRIVER_COUNT][24] = {0}; -bool g_led_control_registers_update_required[SNLED27351_DRIVER_COUNT] = {false}; +uint8_t g_led_control_registers[SNLED27351_DRIVER_COUNT][SNLED27351_LED_CONTROL_REGISTER_COUNT] = {0}; +bool g_led_control_registers_update_required[SNLED27351_DRIVER_COUNT] = {false}; bool snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data) { // If the transaction fails function returns false. @@ -74,7 +77,7 @@ bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { // Transmit PWM registers in 3 transfers of 64 bytes. // Iterate over the pwm_buffer contents at 64 byte intervals. - for (uint8_t i = 0; i < 192; i += 64) { + for (uint8_t i = 0; i < SNLED27351_PWM_REGISTER_COUNT; i += 64) { g_twi_transfer_buffer[0] = i; // Copy the data from i to i+63. // Device will auto-increment register for data after the first byte @@ -239,7 +242,7 @@ void snled27351_update_pwm_buffers(uint8_t addr, uint8_t index) { void snled27351_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_CONTROL_PAGE); - for (int i = 0; i < 24; i++) { + for (int i = 0; i < SNLED27351_LED_CONTROL_REGISTER_COUNT; i++) { snled27351_write_register(addr, i, g_led_control_registers[index][i]); } } diff --git a/keyboards/input_club/k_type/is31fl3733-dual.c b/keyboards/input_club/k_type/is31fl3733-dual.c index 0b6c6a607c..d9cf3b5170 100644 --- a/keyboards/input_club/k_type/is31fl3733-dual.c +++ b/keyboards/input_club/k_type/is31fl3733-dual.c @@ -36,6 +36,9 @@ #define IS31FL3733_REG_SWPULLUP 0x0F // PG3 #define IS31FL3733_REG_CSPULLUP 0x10 // PG3 +#define IS31FL3733_PWM_REGISTER_COUNT 192 +#define IS31FL3733_LED_CONTROL_REGISTER_COUNT 24 + #ifndef IS31FL3733_I2C_TIMEOUT # define IS31FL3733_I2C_TIMEOUT 100 #endif @@ -82,11 +85,11 @@ uint8_t g_twi_transfer_buffer[20]; // We could optimize this and take out the unused registers from these // buffers and the transfers in is31fl3733_write_pwm_buffer() but it's // probably not worth the extra complexity. -uint8_t g_pwm_buffer[IS31FL3733_DRIVER_COUNT][192]; +uint8_t g_pwm_buffer[IS31FL3733_DRIVER_COUNT][IS31FL3733_PWM_REGISTER_COUNT]; bool g_pwm_buffer_update_required[IS31FL3733_DRIVER_COUNT] = {false}; -uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][24] = {{0}, {0}}; -bool g_led_control_registers_update_required[IS31FL3733_DRIVER_COUNT] = {false}; +uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][IS31FL3733_LED_CONTROL_REGISTER_COUNT] = {0}; +bool g_led_control_registers_update_required[IS31FL3733_DRIVER_COUNT] = {false}; bool is31fl3733_write_register(uint8_t index, uint8_t addr, uint8_t reg, uint8_t data) { // If the transaction fails function returns false. @@ -114,7 +117,7 @@ bool is31fl3733_write_pwm_buffer(uint8_t index, uint8_t addr, uint8_t *pwm_buffe // g_twi_transfer_buffer[] is 20 bytes // Iterate over the pwm_buffer contents at 16 byte intervals. - for (int i = 0; i < 192; i += 16) { + for (int i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i += 16) { g_twi_transfer_buffer[0] = i; // Copy the data from i to i+15. // Device will auto-increment register for data after the first byte @@ -169,7 +172,7 @@ void is31fl3733_init(uint8_t bus, uint8_t addr, uint8_t sync) { // Select PG0 is31fl3733_write_register(bus, addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_LEDCONTROL); // Turn off all LEDs. - for (int i = 0x00; i <= 0x17; i++) { + for (int i = 0; i < IS31FL3733_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3733_write_register(bus, addr, i, 0x00); } @@ -180,7 +183,7 @@ void is31fl3733_init(uint8_t bus, uint8_t addr, uint8_t sync) { is31fl3733_write_register(bus, addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_PWM); // Set PWM on all LEDs to 0 // No need to setup Breath registers to PWM as that is the default. - for (int i = 0x00; i <= 0xBF; i++) { + for (int i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i++) { is31fl3733_write_register(bus, addr, i, 0x00); } @@ -273,7 +276,7 @@ void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index) { // Firstly we need to unlock the command register and select PG0 is31fl3733_write_register(index, addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); is31fl3733_write_register(index, addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_LEDCONTROL); - for (int i = 0; i < 24; i++) { + for (int i = 0; i < IS31FL3733_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3733_write_register(index, addr, i, g_led_control_registers[index][i]); } } From 8ea955c72ff9c2888a08c9b6b2f5dda8b49eb856 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 1 Nov 2023 22:37:05 +0000 Subject: [PATCH 342/496] Improve argument handling of c2json (#22170) * Improve argument handling of c2json * Add automagic --- lib/python/qmk/cli/c2json.py | 59 ++++++++++++++++++++---------------- lib/python/qmk/keymap.py | 23 +++++++------- lib/python/qmk/path.py | 6 ++-- 3 files changed, 46 insertions(+), 42 deletions(-) diff --git a/lib/python/qmk/cli/c2json.py b/lib/python/qmk/cli/c2json.py index 7f6aca070a..f7f1f2ffba 100644 --- a/lib/python/qmk/cli/c2json.py +++ b/lib/python/qmk/cli/c2json.py @@ -1,45 +1,57 @@ """Generate a keymap.json from a keymap.c file. """ +import re import json from argcomplete.completers import FilesCompleter from milc import cli -import qmk.keymap import qmk.path from qmk.json_encoders import InfoJSONEncoder +from qmk.decorators import automagic_keyboard, automagic_keymap from qmk.keyboard import keyboard_completer, keyboard_folder +from qmk.keymap import locate_keymap, find_keymap_from_dir, generate_json, c2json as c2json_impl from qmk.errors import CppError +from qmk.commands import dump_lines @cli.argument('--no-cpp', arg_only=True, action='store_false', help='Do not use \'cpp\' on keymap.c') @cli.argument('-o', '--output', arg_only=True, type=qmk.path.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', arg_only=True, type=keyboard_folder, completer=keyboard_completer, required=True, help='The keyboard\'s name') -@cli.argument('-km', '--keymap', arg_only=True, required=True, help='The keymap\'s name') -@cli.argument('filename', arg_only=True, completer=FilesCompleter('.c'), help='keymap.c file') +@cli.argument('-kb', '--keyboard', type=keyboard_folder, completer=keyboard_completer, help='The keyboard\'s name') +@cli.argument('-km', '--keymap', help='The keymap\'s name') +@cli.argument('filename', nargs='?', type=qmk.path.FileType('r'), arg_only=True, completer=FilesCompleter('.c'), help='keymap.c file') @cli.subcommand('Creates a keymap.json from a keymap.c file.') +@automagic_keyboard +@automagic_keymap def c2json(cli): """Generate a keymap.json from a keymap.c file. This command uses the `qmk.keymap` module to generate a keymap.json from a keymap.c file. The generated keymap is written to stdout, or to a file if -o is provided. """ - if cli.args.filename != '-': - cli.args.filename = qmk.path.normpath(cli.args.filename) + filename = cli.args.filename + keyboard = cli.config.c2json.keyboard + keymap = cli.config.c2json.keymap - # Error checking - if not cli.args.filename.exists(): - cli.log.error('C file does not exist!') - cli.print_usage() - return False + if filename: + if not keyboard and not keymap: + # fallback to inferring keyboard/keymap from path + (keymap, found_type) = find_keymap_from_dir(filename) + if found_type == 'keymap_directory': + keyboard = re.search(fr"keyboards/(.+)/keymaps/{keymap}/.*", filename.as_posix()).group(1) - # Environment processing - if cli.args.output == ('-'): - cli.args.output = None + elif keyboard and keymap: + if not filename: + # fallback to inferring keyboard/keymap from path + filename = locate_keymap(keyboard, keymap) + + if not all((filename, keyboard, keymap)): + cli.log.error('You must supply keyboard and keymap, a path to a keymap.c within qmk_firmware, or absolute filename and keyboard and keymap') + cli.print_help() + return False - # Parse the keymap.c try: - keymap_json = qmk.keymap.c2json(cli.args.keyboard, cli.args.keymap, cli.args.filename, use_cpp=cli.args.no_cpp) + keymap_json = c2json_impl(keyboard, keymap, filename, use_cpp=cli.args.no_cpp) except CppError as e: if cli.config.general.verbose: cli.log.debug('The C pre-processor ran into a fatal error: %s', e) @@ -48,19 +60,14 @@ def c2json(cli): # Generate the keymap.json try: - keymap_json = qmk.keymap.generate_json(keymap_json['keymap'], keymap_json['keyboard'], keymap_json['layout'], keymap_json['layers']) + keymap_json = generate_json(keymap_json['keymap'], keymap_json['keyboard'], keymap_json['layout'], keymap_json['layers']) except KeyError: cli.log.error('Something went wrong. Try to use --no-cpp.') return False 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.parent / (cli.args.output.name + '.bak')) - cli.args.output.write_text(json.dumps(keymap_json, cls=InfoJSONEncoder, sort_keys=True)) - - if not cli.args.quiet: - cli.log.info('Wrote keymap to %s.', cli.args.output) - + keymap_lines = [json.dumps(keymap_json, cls=InfoJSONEncoder, sort_keys=True)] else: - print(json.dumps(keymap_json)) + keymap_lines = [json.dumps(keymap_json)] + + dump_lines(cli.args.output, keymap_lines, cli.args.quiet) diff --git a/lib/python/qmk/keymap.py b/lib/python/qmk/keymap.py index 11e8d39dad..281c53cfda 100644 --- a/lib/python/qmk/keymap.py +++ b/lib/python/qmk/keymap.py @@ -191,16 +191,15 @@ def _strip_any(keycode): return keycode -def find_keymap_from_dir(): - """Returns `(keymap_name, source)` for the directory we're currently in. - +def find_keymap_from_dir(*args): + """Returns `(keymap_name, source)` for the directory provided (or cwd if not specified). """ - relative_cwd = qmk.path.under_qmk_firmware() + relative_path = qmk.path.under_qmk_firmware(*args) - if relative_cwd and len(relative_cwd.parts) > 1: + if relative_path and len(relative_path.parts) > 1: # If we're in `qmk_firmware/keyboards` and `keymaps` is in our path, try to find the keyboard name. - if relative_cwd.parts[0] == 'keyboards' and 'keymaps' in relative_cwd.parts: - current_path = Path('/'.join(relative_cwd.parts[1:])) # Strip 'keyboards' from the front + if relative_path.parts[0] == 'keyboards' and 'keymaps' in relative_path.parts: + current_path = Path('/'.join(relative_path.parts[1:])) # Strip 'keyboards' from the front if 'keymaps' in current_path.parts and current_path.name != 'keymaps': while current_path.parent.name != 'keymaps': @@ -209,13 +208,13 @@ def find_keymap_from_dir(): return current_path.name, 'keymap_directory' # If we're in `qmk_firmware/layouts` guess the name from the community keymap they're in - elif relative_cwd.parts[0] == 'layouts' and is_keymap_dir(relative_cwd): - return relative_cwd.name, 'layouts_directory' + elif relative_path.parts[0] == 'layouts' and is_keymap_dir(relative_path): + return relative_path.name, 'layouts_directory' # If we're in `qmk_firmware/users` guess the name from the userspace they're in - elif relative_cwd.parts[0] == 'users': + elif relative_path.parts[0] == 'users': # Guess the keymap name based on which userspace they're in - return relative_cwd.parts[1], 'users_directory' + return relative_path.parts[1], 'users_directory' return None, None @@ -657,7 +656,7 @@ def parse_keymap_c(keymap_file, use_cpp=True): Returns: a dictionary containing the parsed keymap """ - if keymap_file == '-': + if not isinstance(keymap_file, (Path, str)) or keymap_file == '-': if use_cpp: keymap_file = _c_preprocess(None, sys.stdin) else: diff --git a/lib/python/qmk/path.py b/lib/python/qmk/path.py index 9d248451b8..94582a05e0 100644 --- a/lib/python/qmk/path.py +++ b/lib/python/qmk/path.py @@ -19,13 +19,11 @@ def is_keyboard(keyboard_name): return rules_mk.exists() -def under_qmk_firmware(): +def under_qmk_firmware(path=Path(os.environ['ORIG_CWD'])): """Returns a Path object representing the relative path under qmk_firmware, or None. """ - cwd = Path(os.environ['ORIG_CWD']) - try: - return cwd.relative_to(QMK_FIRMWARE) + return path.relative_to(QMK_FIRMWARE) except ValueError: return None From 5d58534a8c1ad3cf17d2b40797de603d6e83de6d Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 2 Nov 2023 14:31:09 +1100 Subject: [PATCH 343/496] LED drivers: use `PACKED` define from util.h (#22380) --- drivers/led/aw20216s.h | 3 ++- drivers/led/issi/is31fl3218-simple.h | 3 ++- drivers/led/issi/is31fl3218.h | 3 ++- drivers/led/issi/is31fl3731-simple.h | 3 ++- drivers/led/issi/is31fl3731.h | 3 ++- drivers/led/issi/is31fl3733-simple.h | 3 ++- drivers/led/issi/is31fl3733.h | 3 ++- drivers/led/issi/is31fl3736-simple.h | 3 ++- drivers/led/issi/is31fl3736.h | 3 ++- drivers/led/issi/is31fl3737-simple.h | 3 ++- drivers/led/issi/is31fl3737.h | 3 ++- drivers/led/issi/is31fl3741-simple.h | 7 ++++--- drivers/led/issi/is31fl3741.h | 11 ++++++----- drivers/led/issi/is31flcommon.h | 9 +++++---- drivers/led/snled27351-simple.h | 3 ++- drivers/led/snled27351.h | 3 ++- 16 files changed, 41 insertions(+), 25 deletions(-) diff --git a/drivers/led/aw20216s.h b/drivers/led/aw20216s.h index 0d6bd3c189..7ad1e5653b 100644 --- a/drivers/led/aw20216s.h +++ b/drivers/led/aw20216s.h @@ -20,6 +20,7 @@ #include #include "progmem.h" #include "gpio.h" +#include "util.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== #ifdef DRIVER_COUNT @@ -63,7 +64,7 @@ typedef struct aw20216s_led_t { uint8_t r; uint8_t g; uint8_t b; -} aw20216s_led_t; +} PACKED aw20216s_led_t; extern const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT]; diff --git a/drivers/led/issi/is31fl3218-simple.h b/drivers/led/issi/is31fl3218-simple.h index 959990a93f..0b5abca341 100644 --- a/drivers/led/issi/is31fl3218-simple.h +++ b/drivers/led/issi/is31fl3218-simple.h @@ -19,6 +19,7 @@ #include #include #include "progmem.h" +#include "util.h" #define IS31FL3218_I2C_ADDRESS 0x54 @@ -28,7 +29,7 @@ typedef struct is31fl3218_led_t { uint8_t v; -} __attribute__((packed)) is31fl3218_led_t; +} PACKED is31fl3218_led_t; extern const is31fl3218_led_t PROGMEM g_is31fl3218_leds[IS31FL3218_LED_COUNT]; diff --git a/drivers/led/issi/is31fl3218.h b/drivers/led/issi/is31fl3218.h index c48bc2f238..1d4f881e3c 100644 --- a/drivers/led/issi/is31fl3218.h +++ b/drivers/led/issi/is31fl3218.h @@ -19,6 +19,7 @@ #include #include #include "progmem.h" +#include "util.h" #define IS31FL3218_I2C_ADDRESS 0x54 @@ -30,7 +31,7 @@ typedef struct is31fl3218_led_t { uint8_t r; uint8_t g; uint8_t b; -} __attribute__((packed)) is31fl3218_led_t; +} PACKED is31fl3218_led_t; extern const is31fl3218_led_t PROGMEM g_is31fl3218_leds[IS31FL3218_LED_COUNT]; diff --git a/drivers/led/issi/is31fl3731-simple.h b/drivers/led/issi/is31fl3731-simple.h index 32504c1933..185e80683b 100644 --- a/drivers/led/issi/is31fl3731-simple.h +++ b/drivers/led/issi/is31fl3731-simple.h @@ -21,6 +21,7 @@ #include #include #include "progmem.h" +#include "util.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== #ifdef LED_DRIVER_ADDR_1 @@ -64,7 +65,7 @@ typedef struct is31fl3731_led_t { uint8_t driver : 2; uint8_t v; -} __attribute__((packed)) is31fl3731_led_t; +} PACKED is31fl3731_led_t; extern const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT]; diff --git a/drivers/led/issi/is31fl3731.h b/drivers/led/issi/is31fl3731.h index 73fa018897..77162ded30 100644 --- a/drivers/led/issi/is31fl3731.h +++ b/drivers/led/issi/is31fl3731.h @@ -20,6 +20,7 @@ #include #include #include "progmem.h" +#include "util.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== #ifdef DRIVER_ADDR_1 @@ -65,7 +66,7 @@ typedef struct is31fl3731_led_t { uint8_t r; uint8_t g; uint8_t b; -} __attribute__((packed)) is31fl3731_led_t; +} PACKED is31fl3731_led_t; extern const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT]; diff --git a/drivers/led/issi/is31fl3733-simple.h b/drivers/led/issi/is31fl3733-simple.h index 367af43c6a..65d3298a50 100644 --- a/drivers/led/issi/is31fl3733-simple.h +++ b/drivers/led/issi/is31fl3733-simple.h @@ -23,6 +23,7 @@ #include #include #include "progmem.h" +#include "util.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== #ifdef LED_DRIVER_COUNT @@ -83,7 +84,7 @@ typedef struct is31fl3733_led_t { uint8_t driver : 2; uint8_t v; -} __attribute__((packed)) is31fl3733_led_t; +} PACKED is31fl3733_led_t; extern const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT]; diff --git a/drivers/led/issi/is31fl3733.h b/drivers/led/issi/is31fl3733.h index 4902b3c1d7..a8407f2154 100644 --- a/drivers/led/issi/is31fl3733.h +++ b/drivers/led/issi/is31fl3733.h @@ -22,6 +22,7 @@ #include #include #include "progmem.h" +#include "util.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== #ifdef DRIVER_ADDR_1 @@ -108,7 +109,7 @@ typedef struct is31fl3733_led_t { uint8_t r; uint8_t g; uint8_t b; -} __attribute__((packed)) is31fl3733_led_t; +} PACKED is31fl3733_led_t; extern const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT]; diff --git a/drivers/led/issi/is31fl3736-simple.h b/drivers/led/issi/is31fl3736-simple.h index 88422ec3a4..cb751a917e 100644 --- a/drivers/led/issi/is31fl3736-simple.h +++ b/drivers/led/issi/is31fl3736-simple.h @@ -20,6 +20,7 @@ #include #include #include "progmem.h" +#include "util.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== #ifdef DRIVER_COUNT @@ -78,7 +79,7 @@ typedef struct is31fl3736_led_t { uint8_t driver : 2; uint8_t v; -} __attribute__((packed)) is31fl3736_led_t; +} PACKED is31fl3736_led_t; extern const is31fl3736_led_t PROGMEM g_is31fl3736_leds[IS31FL3736_LED_COUNT]; diff --git a/drivers/led/issi/is31fl3736.h b/drivers/led/issi/is31fl3736.h index b64fdf9d1c..79d8c3276d 100644 --- a/drivers/led/issi/is31fl3736.h +++ b/drivers/led/issi/is31fl3736.h @@ -20,6 +20,7 @@ #include #include #include "progmem.h" +#include "util.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== #ifdef DRIVER_ADDR_1 @@ -92,7 +93,7 @@ typedef struct is31fl3736_led_t { uint8_t r; uint8_t g; uint8_t b; -} __attribute__((packed)) is31fl3736_led_t; +} PACKED is31fl3736_led_t; extern const is31fl3736_led_t PROGMEM g_is31fl3736_leds[IS31FL3736_LED_COUNT]; diff --git a/drivers/led/issi/is31fl3737-simple.h b/drivers/led/issi/is31fl3737-simple.h index 4c7af02176..dfc2189dec 100644 --- a/drivers/led/issi/is31fl3737-simple.h +++ b/drivers/led/issi/is31fl3737-simple.h @@ -22,6 +22,7 @@ #include #include #include "progmem.h" +#include "util.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== #ifdef DRIVER_COUNT @@ -68,7 +69,7 @@ typedef struct is31fl3737_led_t { uint8_t driver : 2; uint8_t v; -} __attribute__((packed)) is31fl3737_led_t; +} PACKED is31fl3737_led_t; extern const is31fl3737_led_t PROGMEM g_is31fl3737_leds[IS31FL3737_LED_COUNT]; diff --git a/drivers/led/issi/is31fl3737.h b/drivers/led/issi/is31fl3737.h index fadab70c74..38482584e0 100644 --- a/drivers/led/issi/is31fl3737.h +++ b/drivers/led/issi/is31fl3737.h @@ -22,6 +22,7 @@ #include #include #include "progmem.h" +#include "util.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== #ifdef DRIVER_ADDR_1 @@ -85,7 +86,7 @@ typedef struct is31fl3737_led_t { uint8_t r; uint8_t g; uint8_t b; -} __attribute__((packed)) is31fl3737_led_t; +} PACKED is31fl3737_led_t; extern const is31fl3737_led_t PROGMEM g_is31fl3737_leds[IS31FL3737_LED_COUNT]; diff --git a/drivers/led/issi/is31fl3741-simple.h b/drivers/led/issi/is31fl3741-simple.h index d97591fa60..d022f3a865 100644 --- a/drivers/led/issi/is31fl3741-simple.h +++ b/drivers/led/issi/is31fl3741-simple.h @@ -22,6 +22,7 @@ #include #include #include "progmem.h" +#include "util.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== #ifdef DRIVER_COUNT @@ -66,9 +67,9 @@ #endif typedef struct is31fl3741_led_t { - uint32_t driver : 2; - uint32_t v : 10; -} __attribute__((packed)) is31fl3741_led_t; + uint8_t driver : 2; + uint16_t v : 9; +} PACKED is31fl3741_led_t; extern const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT]; diff --git a/drivers/led/issi/is31fl3741.h b/drivers/led/issi/is31fl3741.h index 1febb6398b..2b0e449554 100644 --- a/drivers/led/issi/is31fl3741.h +++ b/drivers/led/issi/is31fl3741.h @@ -22,6 +22,7 @@ #include #include #include "progmem.h" +#include "util.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== #ifdef DRIVER_ADDR_1 @@ -81,11 +82,11 @@ #endif typedef struct is31fl3741_led_t { - uint32_t driver : 2; - uint32_t r : 10; - uint32_t g : 10; - uint32_t b : 10; -} __attribute__((packed)) is31fl3741_led_t; + uint8_t driver : 2; + uint16_t r : 9; + uint16_t g : 9; + uint16_t b : 9; +} PACKED is31fl3741_led_t; extern const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT]; diff --git a/drivers/led/issi/is31flcommon.h b/drivers/led/issi/is31flcommon.h index 94ec9ae3ce..5414b54047 100644 --- a/drivers/led/issi/is31flcommon.h +++ b/drivers/led/issi/is31flcommon.h @@ -23,6 +23,7 @@ #include #include #include "progmem.h" +#include "util.h" // Which variant header file to use #if defined(LED_MATRIX_IS31FL3742A) || defined(RGB_MATRIX_IS31FL3742A) @@ -37,19 +38,19 @@ #ifdef RGB_MATRIX_ENABLE typedef struct is31_led { - uint8_t driver; + uint8_t driver : 2; uint8_t r; uint8_t g; uint8_t b; -} __attribute__((packed)) is31_led; +} PACKED is31_led; extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT]; #elif defined(LED_MATRIX_ENABLE) typedef struct is31_led { - uint8_t driver; + uint8_t driver : 2; uint8_t v; -} __attribute__((packed)) is31_led; +} PACKED is31_led; extern const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT]; #endif diff --git a/drivers/led/snled27351-simple.h b/drivers/led/snled27351-simple.h index 64257202b9..051271cca8 100644 --- a/drivers/led/snled27351-simple.h +++ b/drivers/led/snled27351-simple.h @@ -19,6 +19,7 @@ #include #include #include "progmem.h" +#include "util.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== #ifdef DRIVER_COUNT @@ -66,7 +67,7 @@ typedef struct snled27351_led_t { uint8_t driver : 2; uint8_t v; -} __attribute__((packed)) snled27351_led_t; +} PACKED snled27351_led_t; extern const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT]; diff --git a/drivers/led/snled27351.h b/drivers/led/snled27351.h index cecd552dbb..dd60f59183 100644 --- a/drivers/led/snled27351.h +++ b/drivers/led/snled27351.h @@ -19,6 +19,7 @@ #include #include #include "progmem.h" +#include "util.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== #ifdef DRIVER_COUNT @@ -80,7 +81,7 @@ typedef struct snled27351_led_t { uint8_t r; uint8_t g; uint8_t b; -} __attribute__((packed)) snled27351_led_t; +} PACKED snled27351_led_t; extern const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT]; From 837cae95ba8ae9b7d92d4e96ce91dfdf0a5f6374 Mon Sep 17 00:00:00 2001 From: ID64F <54159272+ID64F@users.noreply.github.com> Date: Thu, 2 Nov 2023 09:36:56 -0700 Subject: [PATCH 344/496] boardsource/unicorne - Fixed OLED layers being all set to zero (#22389) --- keyboards/boardsource/unicorne/unicorne.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/boardsource/unicorne/unicorne.c b/keyboards/boardsource/unicorne/unicorne.c index 0c443722e0..22cd1e4a37 100644 --- a/keyboards/boardsource/unicorne/unicorne.c +++ b/keyboards/boardsource/unicorne/unicorne.c @@ -20,13 +20,13 @@ bool oled_task_kb(void) { oled_write_raw(layer_zero, sizeof(layer_zero)); break; case 1: - oled_write_raw(layer_zero, sizeof(layer_zero)); + oled_write_raw(layer_one, sizeof(layer_one)); break; case 2: - oled_write_raw(layer_zero, sizeof(layer_zero)); + oled_write_raw(layer_two, sizeof(layer_two)); break; case 3: - oled_write_raw(layer_zero, sizeof(layer_zero)); + oled_write_raw(layer_three, sizeof(layer_three)); break; } } else { From ace510ffa0f8d51e1393ae9fcd17da00a5404c37 Mon Sep 17 00:00:00 2001 From: Kiryl Mialeshka <8974488+meskill@users.noreply.github.com> Date: Sat, 4 Nov 2023 00:14:18 +0100 Subject: [PATCH 345/496] docs(rgblight): fix typos (#22399) --- docs/feature_rgblight.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/feature_rgblight.md b/docs/feature_rgblight.md index 39b7e6a6f1..0288fb04b2 100644 --- a/docs/feature_rgblight.md +++ b/docs/feature_rgblight.md @@ -524,7 +524,6 @@ By defining `RGBLIGHT_LED_MAP` as in the example below, you can specify the LED ``` simple mapped -``` ## Clipping Range Using the `rgblight_set_clipping_range()` function, you can prepare more buffers than the actual number of LEDs, and output some of the buffers to the LEDs. This is useful if you want the split keyboard to treat left and right LEDs as logically contiguous. @@ -544,8 +543,8 @@ In addition to setting the Clipping Range, you can use `RGBLIGHT_LED_MAP` togeth #define RGBLED_NUM 8 #define RGBLIGHT_LED_MAP { 7, 6, 5, 4, 3, 2, 1, 0 } -// some soruce - rgblight_set_clipping_range(3, 4); +// some source +rgblight_set_clipping_range(3, 4); ``` clip mapped From 3143a7597fc32dde3fefa484130dd9b33cac57bf Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 4 Nov 2023 20:33:52 +0000 Subject: [PATCH 346/496] Allow generic_features to handle subdirectories (#22400) --- builddefs/generic_features.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/builddefs/generic_features.mk b/builddefs/generic_features.mk index afd8bbd276..261da564b2 100644 --- a/builddefs/generic_features.mk +++ b/builddefs/generic_features.mk @@ -44,7 +44,9 @@ GENERIC_FEATURES = \ define HANDLE_GENERIC_FEATURE # $$(info "Processing: $1_ENABLE $2.c") SRC += $$(wildcard $$(QUANTUM_DIR)/process_keycode/process_$2.c) + SRC += $$(wildcard $$(QUANTUM_DIR)/$2/$2.c) SRC += $$(wildcard $$(QUANTUM_DIR)/$2.c) + VPATH += $$(wildcard $$(QUANTUM_DIR)/$2/) OPT_DEFS += -D$1_ENABLE endef From 67ff0defe2ea732255453c04eb8ce2f1d40de1cb Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Tue, 7 Nov 2023 00:43:04 +0000 Subject: [PATCH 347/496] Teaqueen: correct layout data (#22406) --- keyboards/gregandcin/teaqueen/info.json | 137 +++++++++++++----------- 1 file changed, 73 insertions(+), 64 deletions(-) diff --git a/keyboards/gregandcin/teaqueen/info.json b/keyboards/gregandcin/teaqueen/info.json index 6804ce003b..841c524e62 100644 --- a/keyboards/gregandcin/teaqueen/info.json +++ b/keyboards/gregandcin/teaqueen/info.json @@ -36,70 +36,79 @@ "layouts": { "LAYOUT": { "layout": [ - {"matrix": [0, 0], "x": 2, "y": 1}, - {"matrix": [0, 1], "x": 3, "y": 1}, - {"matrix": [0, 2], "x": 4, "y": 0.9}, - {"matrix": [0, 3], "x": 5, "y": 0, "r": 12}, - {"matrix": [0, 4], "x": 6, "y": 0, "r": 12}, - {"matrix": [0, 5], "x": 7, "y": 0, "r": 12}, - {"matrix": [0, 6], "x": 8, "y": 0, "r": 12}, - {"matrix": [5, 0], "x": 11.5, "y": 0.75, "r": -12}, - {"matrix": [5, 1], "x": 12.5, "y": 0.75, "r": -12}, - {"matrix": [5, 2], "x": 13.5, "y": 0.75, "r": -12}, - {"matrix": [5, 3], "x": 14.5, "y": 0.75, "r": -12}, - {"matrix": [5, 4], "x": 13.4, "y": 0.9}, - {"matrix": [5, 5], "x": 14.4, "y": 1}, - {"matrix": [5, 6], "x": 15.4, "y": 1, "w": 2}, - {"matrix": [1, 0], "x": 1.75, "y": 2, "w": 1.5}, - {"matrix": [1, 2], "x": 3.25, "y": 2}, - {"matrix": [1, 3], "x": 4.5, "y": 1, "r": 12}, - {"matrix": [1, 4], "x": 5.5, "y": 1, "r": 12}, - {"matrix": [1, 5], "x": 6.5, "y": 1, "r": 12}, - {"matrix": [1, 6], "x": 7.5, "y": 1, "r": 12}, - {"matrix": [6, 0], "x": 11, "y": 1.75, "r": -12}, - {"matrix": [6, 1], "x": 12, "y": 1.75, "r": -12}, - {"matrix": [6, 2], "x": 13, "y": 1.75, "r": -12}, - {"matrix": [6, 3], "x": 14, "y": 1.75, "r": -12}, - {"matrix": [6, 4], "x": 13.13, "y": 1.95}, - {"matrix": [6, 5], "x": 14.15, "y": 2}, - {"matrix": [6, 6], "x": 15.15, "y": 2}, - {"matrix": [6, 7], "x": 16.15, "y": 2, "w": 1.5}, - {"matrix": [2, 0], "x": 1.6, "y": 3, "w": 1.76}, - {"matrix": [2, 2], "x": 3.35, "y": 3}, - {"matrix": [2, 3], "x": 4.75, "y": 2, "r": 12}, - {"matrix": [2, 4], "x": 5.75, "y": 2, "r": 12}, - {"matrix": [2, 5], "x": 6.75, "y": 2, "r": 12}, - {"matrix": [2, 6], "x": 7.75, "y": 2, "r": 12}, - {"matrix": [7, 0], "x": 11.25, "y": 2.75, "r": -12}, - {"matrix": [7, 1], "x": 12.25, "y": 2.75, "r": -12}, - {"matrix": [7, 2], "x": 13.25, "y": 2.75, "r": -12}, - {"matrix": [7, 3], "x": 14.25, "y": 2.75, "r": -12}, - {"matrix": [7, 4], "x": 13.6, "y": 3}, - {"matrix": [7, 5], "x": 14.6, "y": 3}, - {"matrix": [7, 7], "x": 15.6, "y": 3, "w": 2.25}, - {"matrix": [3, 0], "x": 1.4, "y": 4, "w": 2.25}, - {"matrix": [3, 2], "x": 3.65, "y": 4}, - {"matrix": [3, 3], "x": 5.25, "y": 3, "r": 12}, - {"matrix": [3, 4], "x": 6.25, "y": 3, "r": 12}, - {"matrix": [3, 5], "x": 7.25, "y": 3, "r": 12}, - {"matrix": [3, 6], "x": 8.25, "y": 3, "r": 12}, - {"matrix": [8, 0], "x": 10.75, "y": 3.75, "r": -12}, - {"matrix": [8, 1], "x": 11.75, "y": 3.75, "r": -12}, - {"matrix": [8, 2], "x": 12.75, "y": 3.75, "r": -12}, - {"matrix": [8, 3], "x": 13.75, "y": 3.75, "r": -12}, - {"matrix": [8, 4], "x": 13.3, "y": 4}, - {"matrix": [8, 5], "x": 14.3, "y": 4}, - {"matrix": [8, 6], "x": 15.3, "y": 4, "w": 1.75}, - {"matrix": [8, 7], "x": 17.05, "y": 4}, - {"matrix": [4, 0], "x": 1.6, "y": 5, "w": 1.5}, - {"matrix": [4, 1], "x": 3.1, "y": 5}, - {"matrix": [4, 3], "x": 5.4, "y": 4.3, "w": 1.5, "r": 12}, - {"matrix": [4, 5], "x": 6.75, "y": 4, "w": 2, "r": 12}, - {"matrix": [4, 6], "x": 8.75, "y": 4, "r": 12}, - {"matrix": [9, 1], "x": 10.75, "y": 4.75, "w": 2.75, "r": -12}, - {"matrix": [9, 3], "x": 13.6, "y": 4.8, "w": 1.5, "r": -12}, - {"matrix": [9, 6], "x": 15.35, "y": 5}, - {"matrix": [9, 7], "x": 16.35, "y": 5, "w": 1.5} + {"matrix": [0, 0], "x": 0.6, "y": 0}, + {"matrix": [0, 1], "x": 1.6, "y": 0}, + {"matrix": [0, 2], "x": 2.6, "y": 0}, + {"matrix": [0, 3], "x": 3.6, "y": 0}, + {"matrix": [0, 4], "x": 4.6, "y": 0}, + {"matrix": [0, 5], "x": 5.6, "y": 0}, + {"matrix": [0, 6], "x": 6.6, "y": 0}, + + {"matrix": [5, 0], "x": 8.5, "y": 0}, + {"matrix": [5, 1], "x": 9.5, "y": 0}, + {"matrix": [5, 2], "x": 10.5, "y": 0}, + {"matrix": [5, 3], "x": 11.5, "y": 0}, + {"matrix": [5, 4], "x": 12.5, "y": 0}, + {"matrix": [5, 5], "x": 13.5, "y": 0}, + {"matrix": [5, 6], "x": 14.5, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0.35, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 1.85, "y": 1}, + {"matrix": [1, 3], "x": 2.85, "y": 1}, + {"matrix": [1, 4], "x": 3.85, "y": 1}, + {"matrix": [1, 5], "x": 4.85, "y": 1}, + {"matrix": [1, 6], "x": 5.85, "y": 1}, + + {"matrix": [6, 0], "x": 8.25, "y": 1}, + {"matrix": [6, 1], "x": 9.25, "y": 1}, + {"matrix": [6, 2], "x": 10.25, "y": 1}, + {"matrix": [6, 3], "x": 11.25, "y": 1}, + {"matrix": [6, 4], "x": 12.25, "y": 1}, + {"matrix": [6, 5], "x": 13.25, "y": 1}, + {"matrix": [6, 6], "x": 14.25, "y": 1}, + {"matrix": [6, 7], "x": 15.25, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0.2, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.95, "y": 2}, + {"matrix": [2, 3], "x": 2.95, "y": 2}, + {"matrix": [2, 4], "x": 3.95, "y": 2}, + {"matrix": [2, 5], "x": 4.95, "y": 2}, + {"matrix": [2, 6], "x": 5.95, "y": 2}, + + {"matrix": [7, 0], "x": 8.75, "y": 2}, + {"matrix": [7, 1], "x": 9.75, "y": 2}, + {"matrix": [7, 2], "x": 10.75, "y": 2}, + {"matrix": [7, 3], "x": 11.75, "y": 2}, + {"matrix": [7, 4], "x": 12.75, "y": 2}, + {"matrix": [7, 5], "x": 13.75, "y": 2}, + {"matrix": [7, 7], "x": 14.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + + {"matrix": [8, 0], "x": 8.45, "y": 3}, + {"matrix": [8, 1], "x": 9.45, "y": 3}, + {"matrix": [8, 2], "x": 10.45, "y": 3}, + {"matrix": [8, 3], "x": 11.45, "y": 3}, + {"matrix": [8, 4], "x": 12.45, "y": 3}, + {"matrix": [8, 5], "x": 13.45, "y": 3}, + {"matrix": [8, 6], "x": 14.45, "y": 3, "w": 1.75}, + {"matrix": [8, 7], "x": 16.20, "y": 3}, + + {"matrix": [4, 0], "x": 0.2, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.7, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 4.75, "y": 4, "w": 2}, + {"matrix": [4, 6], "x": 6.75, "y": 4}, + + {"matrix": [9, 1], "x": 8.45, "y": 4, "w": 2.75}, + {"matrix": [9, 3], "x": 11.20, "y": 4, "w": 1.5}, + {"matrix": [9, 6], "x": 14.5, "y": 4}, + {"matrix": [9, 7], "x": 15.5, "y": 4, "w": 1.5} ] } } From 5b25a8aa32e79b12644be05359d2f6c1d599e40d Mon Sep 17 00:00:00 2001 From: Leo Lou Date: Tue, 7 Nov 2023 08:43:41 +0800 Subject: [PATCH 348/496] [Keyboard] Add Piantor Pro (#22361) Co-authored-by: Duncan Sutherland Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/beekeeb/piantor_pro/config.h | 17 ++++ keyboards/beekeeb/piantor_pro/info.json | 78 +++++++++++++++++++ .../piantor_pro/keymaps/default/keymap.c | 55 +++++++++++++ keyboards/beekeeb/piantor_pro/readme.md | 20 +++++ keyboards/beekeeb/piantor_pro/rules.mk | 1 + 5 files changed, 171 insertions(+) create mode 100644 keyboards/beekeeb/piantor_pro/config.h create mode 100644 keyboards/beekeeb/piantor_pro/info.json create mode 100644 keyboards/beekeeb/piantor_pro/keymaps/default/keymap.c create mode 100644 keyboards/beekeeb/piantor_pro/readme.md create mode 100644 keyboards/beekeeb/piantor_pro/rules.mk diff --git a/keyboards/beekeeb/piantor_pro/config.h b/keyboards/beekeeb/piantor_pro/config.h new file mode 100644 index 0000000000..4f0be6dbbe --- /dev/null +++ b/keyboards/beekeeb/piantor_pro/config.h @@ -0,0 +1,17 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U + +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_TX_PIN GP0 +#define SERIAL_USART_RX_PIN GP1 +#define SERIAL_USART_PIN_SWAP + +#define USB_VBUS_PIN GP19 + +#define SPLIT_HAND_PIN GP17 +#define SPLIT_HAND_PIN_LOW_IS_LEFT diff --git a/keyboards/beekeeb/piantor_pro/info.json b/keyboards/beekeeb/piantor_pro/info.json new file mode 100644 index 0000000000..c85247550e --- /dev/null +++ b/keyboards/beekeeb/piantor_pro/info.json @@ -0,0 +1,78 @@ +{ + "manufacturer": "beekeeb", + "keyboard_name": "piantor_pro", + "maintainer": "beekeeb", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP11", "GP12", "GP13", "GP14", "GP15", "GP16"], + "rows": ["GP7", "GP8", "GP9", "GP10"] + }, + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0002", + "vid": "0xBEEB" + }, + "split": { + "enabled": true + }, + "community_layouts": [ "split_3x6_3" ], + "layouts": { + "LAYOUT_split_3x6_3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.25}, + {"matrix": [0, 1], "x": 1, "y": 0.25}, + {"matrix": [0, 2], "x": 2, "y": 0.125}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.125}, + {"matrix": [0, 5], "x": 5, "y": 0.25}, + {"matrix": [4, 5], "x": 8, "y": 0.25}, + {"matrix": [4, 4], "x": 9, "y": 0.125}, + {"matrix": [4, 3], "x": 10, "y": 0}, + {"matrix": [4, 2], "x": 11, "y": 0.125}, + {"matrix": [4, 1], "x": 12, "y": 0.25}, + {"matrix": [4, 0], "x": 13, "y": 0.25}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.125}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.125}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [5, 5], "x": 8, "y": 1.25}, + {"matrix": [5, 4], "x": 9, "y": 1.125}, + {"matrix": [5, 3], "x": 10, "y": 1}, + {"matrix": [5, 2], "x": 11, "y": 1.125}, + {"matrix": [5, 1], "x": 12, "y": 1.25}, + {"matrix": [5, 0], "x": 13, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25}, + {"matrix": [2, 1], "x": 1, "y": 2.25}, + {"matrix": [2, 2], "x": 2, "y": 2.125}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.125}, + {"matrix": [2, 5], "x": 5, "y": 2.25}, + {"matrix": [6, 5], "x": 8, "y": 2.25}, + {"matrix": [6, 4], "x": 9, "y": 2.125}, + {"matrix": [6, 3], "x": 10, "y": 2}, + {"matrix": [6, 2], "x": 11, "y": 2.125}, + {"matrix": [6, 1], "x": 12, "y": 2.25}, + {"matrix": [6, 0], "x": 13, "y": 2.25}, + {"matrix": [3, 3], "x": 3.5, "y": 3.25}, + {"matrix": [3, 4], "x": 4.5, "y": 3.5}, + {"matrix": [3, 5], "x": 5.5, "y": 3.75}, + {"matrix": [7, 5], "x": 7.5, "y": 3.75}, + {"matrix": [7, 4], "x": 8.5, "y": 3.5}, + {"matrix": [7, 3], "x": 9.5, "y": 3.25} + ] + } + } +} diff --git a/keyboards/beekeeb/piantor_pro/keymaps/default/keymap.c b/keyboards/beekeeb/piantor_pro/keymaps/default/keymap.c new file mode 100644 index 0000000000..ed09dd7d06 --- /dev/null +++ b/keyboards/beekeeb/piantor_pro/keymaps/default/keymap.c @@ -0,0 +1,55 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, MO(1), KC_SPC, KC_ENT, MO(2), KC_RALT + //`--------------------------' `--------------------------' + + ), + + [1] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, KC_SPC, KC_ENT, MO(3), KC_RALT + //`--------------------------' `--------------------------' + ), + + [2] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, MO(3), KC_SPC, KC_ENT, _______, KC_RALT + //`--------------------------' `--------------------------' + ), + + [3] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT + //`--------------------------' `--------------------------' + ) +}; diff --git a/keyboards/beekeeb/piantor_pro/readme.md b/keyboards/beekeeb/piantor_pro/readme.md new file mode 100644 index 0000000000..08012e43df --- /dev/null +++ b/keyboards/beekeeb/piantor_pro/readme.md @@ -0,0 +1,20 @@ +# Piantor Pro + +![Piantor Pro](https://i.imgur.com/UPRI64ch.jpg) + +A 42 key hotswappable keyboard with RP2040. + +* Keyboard Maintainer: [beekeeb](https://github.com/beekeeb) +* Hardware Availability: [beekeeb.shop](https://beekeeb.shop) + +Make example for this keyboard (after setting up your build environment): + + make beekeeb/piantor_pro: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). + +## Flashing + +To enter the bootloader mode, disconnect the keyboard from the computer. While holding the BOOT button, connect the keyboard to the computer. + +Run `make beekeeb/piantor_pro:default:flash` or copy the compiled uf2 firmware to the USB mass storage device. diff --git a/keyboards/beekeeb/piantor_pro/rules.mk b/keyboards/beekeeb/piantor_pro/rules.mk new file mode 100644 index 0000000000..161ec22b16 --- /dev/null +++ b/keyboards/beekeeb/piantor_pro/rules.mk @@ -0,0 +1 @@ +SERIAL_DRIVER = vendor From be66e5f2b4fb67b4d0adc18e27f5a91bdf50a429 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 8 Nov 2023 00:58:59 +1100 Subject: [PATCH 349/496] WT RGB cleanups (#22379) --- builddefs/show_options.mk | 1 - keyboards/hs60/v2/v2.c | 79 +- keyboards/keebwerk/mega/ansi/ansi.c | 140 +++ keyboards/novelkeys/nk65/nk65.c | 140 +++ keyboards/novelkeys/nk87/nk87.c | 140 +++ keyboards/spaceholdings/nebula12/nebula12.c | 31 +- keyboards/spaceholdings/nebula68/nebula68.c | 144 ++- keyboards/tkc/portico/portico.c | 8 +- keyboards/tkc/portico75/portico75.c | 10 +- .../rama_works_kara/rama_works_kara.c | 90 +- .../rama_works_koyu/rama_works_koyu.c | 90 +- .../rama_works_m10_c/rama_works_m10_c.c | 23 +- .../rama_works_m50_a/rama_works_m50_a.c | 88 ++ .../rama_works_m60_a/rama_works_m60_a.c | 90 +- .../rama_works_m65_b/rama_works_m65_b.c | 90 +- .../rama_works_m65_bx/rama_works_m65_bx.c | 90 +- .../rama_works_m6_b/rama_works_m6_b.c | 15 +- .../rama_works_u80_a/rama_works_u80_a.c | 132 +++ keyboards/wilba_tech/wt60_b/wt60_b.c | 94 ++ keyboards/wilba_tech/wt60_bx/wt60_bx.c | 94 ++ keyboards/wilba_tech/wt60_c/wt60_c.c | 94 ++ keyboards/wilba_tech/wt_rgb_backlight.c | 869 +----------------- keyboards/wilba_tech/zeal60/zeal60.c | 90 +- keyboards/wilba_tech/zeal65/zeal65.c | 90 +- keyboards/woodkeys/scarletbandana/rules.mk | 2 +- keyboards/xelus/dawn60/rev1/rev1.c | 82 +- 26 files changed, 1973 insertions(+), 843 deletions(-) create mode 100644 keyboards/wilba_tech/rama_works_u80_a/rama_works_u80_a.c create mode 100644 keyboards/wilba_tech/wt60_b/wt60_b.c create mode 100644 keyboards/wilba_tech/wt60_bx/wt60_bx.c create mode 100644 keyboards/wilba_tech/wt60_c/wt60_c.c diff --git a/builddefs/show_options.mk b/builddefs/show_options.mk index 563d089880..44e40e1f41 100644 --- a/builddefs/show_options.mk +++ b/builddefs/show_options.mk @@ -60,7 +60,6 @@ OTHER_OPTION_NAMES = \ ENCODER_ENABLE_CUSTOM \ GERMAN_ENABLE \ HAPTIC_ENABLE \ - ISSI_ENABLE \ KEYLOGGER_ENABLE \ LCD_BACKLIGHT_ENABLE \ MACROS_ENABLED \ diff --git a/keyboards/hs60/v2/v2.c b/keyboards/hs60/v2/v2.c index f817ef19e7..45b1f54d5f 100644 --- a/keyboards/hs60/v2/v2.c +++ b/keyboards/hs60/v2/v2.c @@ -15,5 +15,82 @@ */ #ifndef RGB_BACKLIGHT_HS60 -#error RGB_BACKLIGHT_HS60 not defined, recheck config.h +# error RGB_BACKLIGHT_HS60 not defined, recheck config.h +#else +# include "drivers/led/issi/is31fl3733.h" +#endif + +#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_HS60) +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, B_1, A_1, C_1}, //LA1 + {0, E_1, D_1, F_1}, //LA2 + {0, H_1, G_1, I_1}, //LA3 + {0, K_1, J_1, L_1}, //LA4 + {0, B_2, A_2, C_2}, //LA5 + {0, E_2, D_2, F_2}, //LA6 + {0, H_2, G_2, I_2}, //LA7 + {0, K_2, J_2, L_2}, //LA8 + {0, B_3, A_3, C_3}, //LA9 + {0, E_3, D_3, F_3}, //LA10 + {0, H_3, G_3, I_3}, //LA11 + {0, K_3, J_3, L_3}, //LA12 + {0, B_4, A_4, C_4}, //LA13 + {0, E_4, D_4, F_4}, //LA14 + {0, H_4, G_4, I_4}, //LA15 + {0, K_4, J_4, L_4}, //LA16 + {0, B_5, A_5, C_5}, //LA17 + {0, E_5, D_5, F_5}, //LA18 + {0, H_5, G_5, I_5}, //LA19 + {0, K_5, J_5, L_5}, //LA20 + {0, B_6, A_6, C_6}, //LA21 + {0, E_6, D_6, F_6}, //LA22 + {0, H_6, G_6, I_6}, //LA23 + {0, K_6, J_6, L_6}, //LA24 + {0, B_7, A_7, C_7}, //LA25 + {0, E_7, D_7, F_7}, //LA26 + {0, H_7, G_7, I_7}, //LA27 + {0, K_7, J_7, L_7}, //LA28 + {0, B_8, A_8, C_8}, //LA29 + {0, E_8, D_8, F_8}, //LA30 + {0, H_8, G_8, I_8}, //LA31 + {0, K_8, J_8, L_8}, //LA32 + {0, B_9, A_9, C_9}, //LA33 + {0, E_9, D_9, F_9}, //LA34 + {0, H_9, G_9, I_9}, //LA35 + {0, K_9, J_9, L_9}, //LA36 + {0, B_10, A_10, C_10}, //LA37 + {0, E_10, D_10, F_10}, //LA38 + {0, H_10, G_10, I_10}, //LA39 + {0, K_10, J_10, L_10}, //LA40 + {0, B_11, A_11, C_11}, //LA41 + {0, E_11, D_11, F_11}, //LA42 + {0, H_11, G_11, I_11}, //LA43 + {0, K_11, J_11, L_11}, //LA44 + {0, B_12, A_12, C_12}, //LA45 + {0, E_12, D_12, F_12}, //LA46 + {0, H_12, G_12, I_12}, //LA47 + {0, K_12, J_12, L_12}, //LA48 + {0, B_13, A_13, C_13}, //LA49 + {0, E_13, D_13, F_13}, //LA50 + {0, H_13, G_13, I_13}, //LA51 + {0, K_13, J_13, L_13}, //LA52 + {0, B_14, A_14, C_14}, //LA53 + {0, E_14, D_14, F_14}, //LA54 + {0, H_14, G_14, I_14}, //LA55 + {0, K_14, J_14, L_14}, //LA56 + {0, B_15, A_15, C_15}, //LA57 + {0, E_15, D_15, F_15}, //LA58 + {0, H_15, G_15, I_15}, //LA59 + {0, K_15, J_15, L_15}, //LA60 + {0, B_16, A_16, C_16}, //LA61 + {0, E_16, D_16, F_16}, //LA62 + {0, H_16, G_16, I_16}, //LA63 + {0, K_16, J_16, L_16}, //LA64 +}; #endif diff --git a/keyboards/keebwerk/mega/ansi/ansi.c b/keyboards/keebwerk/mega/ansi/ansi.c index 4494ffd9ff..4b10cdde66 100755 --- a/keyboards/keebwerk/mega/ansi/ansi.c +++ b/keyboards/keebwerk/mega/ansi/ansi.c @@ -20,6 +20,146 @@ #include "ansi.h" #include "drivers/led/issi/is31fl3733.h" +#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_KW_MEGA) +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, B_1, A_1, C_1}, //LA1 + {0, E_1, D_1, F_1}, //LA2 + {0, H_1, G_1, I_1}, //LA3 + {0, K_1, J_1, L_1}, //LA4 + {0, B_2, A_2, C_2}, //LA5 + {0, E_2, D_2, F_2}, //LA6 + {0, H_2, G_2, I_2}, //LA7 + {0, K_2, J_2, L_2}, //LA8 + {0, B_3, A_3, C_3}, //LA9 + {0, E_3, D_3, F_3}, //LA10 + {0, H_3, G_3, I_3}, //LA11 + {0, K_3, J_3, L_3}, //LA12 + {0, B_4, A_4, C_4}, //LA13 + {0, E_4, D_4, F_4}, //LA14 + {0, H_4, G_4, I_4}, //LA15 + {0, K_4, J_4, L_4}, //LA16 + {0, B_5, A_5, C_5}, //LA17 + {0, E_5, D_5, F_5}, //LA18 + {0, H_5, G_5, I_5}, //LA19 + {0, K_5, J_5, L_5}, //LA20 + {0, B_6, A_6, C_6}, //LA21 + {0, E_6, D_6, F_6}, //LA22 + {0, H_6, G_6, I_6}, //LA23 + {0, K_6, J_6, L_6}, //LA24 + {0, B_7, A_7, C_7}, //LA25 + {0, E_7, D_7, F_7}, //LA26 + {0, H_7, G_7, I_7}, //LA27 + {0, K_7, J_7, L_7}, //LA28 + {0, B_8, A_8, C_8}, //LA29 + {0, E_8, D_8, F_8}, //LA30 + {0, H_8, G_8, I_8}, //LA31 + {0, K_8, J_8, L_8}, //LA32 + {0, B_9, A_9, C_9}, //LA33 + {0, E_9, D_9, F_9}, //LA34 + {0, H_9, G_9, I_9}, //LA35 + {0, K_9, J_9, L_9}, //LA36 + {0, B_10, A_10, C_10}, //LA37 + {0, E_10, D_10, F_10}, //LA38 + {0, H_10, G_10, I_10}, //LA39 + {0, K_10, J_10, L_10}, //LA40 + {0, B_11, A_11, C_11}, //LA41 + {0, E_11, D_11, F_11}, //LA42 + {0, H_11, G_11, I_11}, //LA43 + {0, K_11, J_11, L_11}, //LA44 + {0, B_12, A_12, C_12}, //LA45 + {0, E_12, D_12, F_12}, //LA46 + {0, H_12, G_12, I_12}, //LA47 + {0, K_12, J_12, L_12}, //LA48 + {0, B_13, A_13, C_13}, //LA49 + {0, E_13, D_13, F_13}, //LA50 + {0, H_13, G_13, I_13}, //LA51 + {0, K_13, J_13, L_13}, //LA52 + {0, B_14, A_14, C_14}, //LA53 + {0, E_14, D_14, F_14}, //LA54 + {0, H_14, G_14, I_14}, //LA55 + {0, K_14, J_14, L_14}, //LA56 + {0, B_15, A_15, C_15}, //LA57 + {0, E_15, D_15, F_15}, //LA58 + {0, H_15, G_15, I_15}, //LA59 + {0, K_15, J_15, L_15}, //LA60 + {0, B_16, A_16, C_16}, //LA61 + {0, E_16, D_16, F_16}, //LA62 + {0, H_16, G_16, I_16}, //LA63 + {0, K_16, J_16, L_16}, //LA64 + + {1, B_1, A_1, C_1}, //LB1 + {1, E_1, D_1, F_1}, //LB2 + {1, H_1, G_1, I_1}, //LB3 + {1, K_1, J_1, L_1}, //LB4 + {1, B_2, A_2, C_2}, //LB5 + {1, E_2, D_2, F_2}, //LB6 + {1, H_2, G_2, I_2}, //LB7 + {1, K_2, J_2, L_2}, //LB8 + {1, B_3, A_3, C_3}, //LB9 + {1, E_3, D_3, F_3}, //LB10 + {1, H_3, G_3, I_3}, //LB11 + {1, K_3, J_3, L_3}, //LB12 + {1, B_4, A_4, C_4}, //LB13 + {1, E_4, D_4, F_4}, //LB14 + {1, H_4, G_4, I_4}, //LB15 + {1, K_4, J_4, L_4}, //LB16 + {1, B_5, A_5, C_5}, //LB17 + {1, E_5, D_5, F_5}, //LB18 + {1, H_5, G_5, I_5}, //LB19 + {1, K_5, J_5, L_5}, //LB20 + {1, B_6, A_6, C_6}, //LB21 + {1, E_6, D_6, F_6}, //LB22 + {1, H_6, G_6, I_6}, //LB23 + {1, K_6, J_6, L_6}, //LB24 + {1, B_7, A_7, C_7}, //LB25 + {1, E_7, D_7, F_7}, //LB26 + {1, H_7, G_7, I_7}, //LB27 + {1, K_7, J_7, L_7}, //LB28 + {1, B_8, A_8, C_8}, //LB29 + {1, E_8, D_8, F_8}, //LB30 + {1, H_8, G_8, I_8}, //LB31 + {1, K_8, J_8, L_8}, //LB32 + {1, B_9, A_9, C_9}, //LB33 + {1, E_9, D_9, F_9}, //LB34 + {1, H_9, G_9, I_9}, //LB35 + {1, K_9, J_9, L_9}, //LB36 + {1, B_10, A_10, C_10}, //LB37 + {1, E_10, D_10, F_10}, //LB38 + {1, H_10, G_10, I_10}, //LB39 + {1, K_10, J_10, L_10}, //LB40 + {1, B_11, A_11, C_11}, //LB41 + {1, E_11, D_11, F_11}, //LB42 + {1, H_11, G_11, I_11}, //LB43 + {1, K_11, J_11, L_11}, //LB44 + {1, B_12, A_12, C_12}, //LB45 + {1, E_12, D_12, F_12}, //LB46 + {1, H_12, G_12, I_12}, //LB47 + {1, K_12, J_12, L_12}, //LB48 + {1, B_13, A_13, C_13}, //LB49 + {1, E_13, D_13, F_13}, //LB50 + {1, H_13, G_13, I_13}, //LB51 + {1, K_13, J_13, L_13}, //LB52 + {1, B_14, A_14, C_14}, //LB53 + {1, E_14, D_14, F_14}, //LB54 + {1, H_14, G_14, I_14}, //LB55 + {1, K_14, J_14, L_14}, //LB56 + {1, B_15, A_15, C_15}, //LB57 + {1, E_15, D_15, F_15}, //LB58 + {1, H_15, G_15, I_15}, //LB59 + {1, K_15, J_15, L_15}, //LB60 + {1, B_16, A_16, C_16}, //LB61 + {1, E_16, D_16, F_16}, //LB62 + {1, H_16, G_16, I_16}, //LB63 + {1, K_16, J_16, L_16}, //LB64 +}; +#endif + uint8_t R = 0; uint8_t G = 0; uint8_t B = 0; diff --git a/keyboards/novelkeys/nk65/nk65.c b/keyboards/novelkeys/nk65/nk65.c index 2c325e453a..c4a14e7087 100755 --- a/keyboards/novelkeys/nk65/nk65.c +++ b/keyboards/novelkeys/nk65/nk65.c @@ -20,6 +20,146 @@ #include "nk65.h" #include "drivers/led/issi/is31fl3733.h" +#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_NK65) +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, B_1, A_1, C_1}, //LA1 + {0, E_1, D_1, F_1}, //LA2 + {0, H_1, G_1, I_1}, //LA3 + {0, K_1, J_1, L_1}, //LA4 + {0, B_2, A_2, C_2}, //LA5 + {0, E_2, D_2, F_2}, //LA6 + {0, H_2, G_2, I_2}, //LA7 + {0, K_2, J_2, L_2}, //LA8 + {0, B_3, A_3, C_3}, //LA9 + {0, E_3, D_3, F_3}, //LA10 + {0, H_3, G_3, I_3}, //LA11 + {0, K_3, J_3, L_3}, //LA12 + {0, B_4, A_4, C_4}, //LA13 + {0, E_4, D_4, F_4}, //LA14 + {0, H_4, G_4, I_4}, //LA15 + {0, K_4, J_4, L_4}, //LA16 + {0, B_5, A_5, C_5}, //LA17 + {0, E_5, D_5, F_5}, //LA18 + {0, H_5, G_5, I_5}, //LA19 + {0, K_5, J_5, L_5}, //LA20 + {0, B_6, A_6, C_6}, //LA21 + {0, E_6, D_6, F_6}, //LA22 + {0, H_6, G_6, I_6}, //LA23 + {0, K_6, J_6, L_6}, //LA24 + {0, B_7, A_7, C_7}, //LA25 + {0, E_7, D_7, F_7}, //LA26 + {0, H_7, G_7, I_7}, //LA27 + {0, K_7, J_7, L_7}, //LA28 + {0, B_8, A_8, C_8}, //LA29 + {0, E_8, D_8, F_8}, //LA30 + {0, H_8, G_8, I_8}, //LA31 + {0, K_8, J_8, L_8}, //LA32 + {0, B_9, A_9, C_9}, //LA33 + {0, E_9, D_9, F_9}, //LA34 + {0, H_9, G_9, I_9}, //LA35 + {0, K_9, J_9, L_9}, //LA36 + {0, B_10, A_10, C_10}, //LA37 + {0, E_10, D_10, F_10}, //LA38 + {0, H_10, G_10, I_10}, //LA39 + {0, K_10, J_10, L_10}, //LA40 + {0, B_11, A_11, C_11}, //LA41 + {0, E_11, D_11, F_11}, //LA42 + {0, H_11, G_11, I_11}, //LA43 + {0, K_11, J_11, L_11}, //LA44 + {0, B_12, A_12, C_12}, //LA45 + {0, E_12, D_12, F_12}, //LA46 + {0, H_12, G_12, I_12}, //LA47 + {0, K_12, J_12, L_12}, //LA48 + {0, B_13, A_13, C_13}, //LA49 + {0, E_13, D_13, F_13}, //LA50 + {0, H_13, G_13, I_13}, //LA51 + {0, K_13, J_13, L_13}, //LA52 + {0, B_14, A_14, C_14}, //LA53 + {0, E_14, D_14, F_14}, //LA54 + {0, H_14, G_14, I_14}, //LA55 + {0, K_14, J_14, L_14}, //LA56 + {0, B_15, A_15, C_15}, //LA57 + {0, E_15, D_15, F_15}, //LA58 + {0, H_15, G_15, I_15}, //LA59 + {0, K_15, J_15, L_15}, //LA60 + {0, B_16, A_16, C_16}, //LA61 + {0, E_16, D_16, F_16}, //LA62 + {0, H_16, G_16, I_16}, //LA63 + {0, K_16, J_16, L_16}, //LA64 + + {1, B_1, A_1, C_1}, //LB1 + {1, E_1, D_1, F_1}, //LB2 + {1, H_1, G_1, I_1}, //LB3 + {1, K_1, J_1, L_1}, //LB4 + {1, B_2, A_2, C_2}, //LB5 + {1, E_2, D_2, F_2}, //LB6 + {1, H_2, G_2, I_2}, //LB7 + {1, K_2, J_2, L_2}, //LB8 + {1, B_3, A_3, C_3}, //LB9 + {1, E_3, D_3, F_3}, //LB10 + {1, H_3, G_3, I_3}, //LB11 + {1, K_3, J_3, L_3}, //LB12 + {1, B_4, A_4, C_4}, //LB13 + {1, E_4, D_4, F_4}, //LB14 + {1, H_4, G_4, I_4}, //LB15 + {1, K_4, J_4, L_4}, //LB16 + {1, B_5, A_5, C_5}, //LB17 + {1, E_5, D_5, F_5}, //LB18 + {1, H_5, G_5, I_5}, //LB19 + {1, K_5, J_5, L_5}, //LB20 + {1, B_6, A_6, C_6}, //LB21 + {1, E_6, D_6, F_6}, //LB22 + {1, H_6, G_6, I_6}, //LB23 + {1, K_6, J_6, L_6}, //LB24 + {1, B_7, A_7, C_7}, //LB25 + {1, E_7, D_7, F_7}, //LB26 + {1, H_7, G_7, I_7}, //LB27 + {1, K_7, J_7, L_7}, //LB28 + {1, B_8, A_8, C_8}, //LB29 + {1, E_8, D_8, F_8}, //LB30 + {1, H_8, G_8, I_8}, //LB31 + {1, K_8, J_8, L_8}, //LB32 + {1, B_9, A_9, C_9}, //LB33 + {1, E_9, D_9, F_9}, //LB34 + {1, H_9, G_9, I_9}, //LB35 + {1, K_9, J_9, L_9}, //LB36 + {1, B_10, A_10, C_10}, //LB37 + {1, E_10, D_10, F_10}, //LB38 + {1, H_10, G_10, I_10}, //LB39 + {1, K_10, J_10, L_10}, //LB40 + {1, B_11, A_11, C_11}, //LB41 + {1, E_11, D_11, F_11}, //LB42 + {1, H_11, G_11, I_11}, //LB43 + {1, K_11, J_11, L_11}, //LB44 + {1, B_12, A_12, C_12}, //LB45 + {1, E_12, D_12, F_12}, //LB46 + {1, H_12, G_12, I_12}, //LB47 + {1, K_12, J_12, L_12}, //LB48 + {1, B_13, A_13, C_13}, //LB49 + {1, E_13, D_13, F_13}, //LB50 + {1, H_13, G_13, I_13}, //LB51 + {1, K_13, J_13, L_13}, //LB52 + {1, B_14, A_14, C_14}, //LB53 + {1, E_14, D_14, F_14}, //LB54 + {1, H_14, G_14, I_14}, //LB55 + {1, K_14, J_14, L_14}, //LB56 + {1, B_15, A_15, C_15}, //LB57 + {1, E_15, D_15, F_15}, //LB58 + {1, H_15, G_15, I_15}, //LB59 + {1, K_15, J_15, L_15}, //LB60 + {1, B_16, A_16, C_16}, //LB61 + {1, E_16, D_16, F_16}, //LB62 + {1, H_16, G_16, I_16}, //LB63 + {1, K_16, J_16, L_16}, //LB64 +}; +#endif + /* Indicator LEDS are part of the LED driver * Top LED is blue only. LED driver 2 RGB 7 Green channel * Middle LED is blue and red. LED driver 2 RGB 6 Red and Blue channel diff --git a/keyboards/novelkeys/nk87/nk87.c b/keyboards/novelkeys/nk87/nk87.c index c75fff450b..e701bfaccf 100755 --- a/keyboards/novelkeys/nk87/nk87.c +++ b/keyboards/novelkeys/nk87/nk87.c @@ -20,6 +20,146 @@ #include "nk87.h" #include "drivers/led/issi/is31fl3733.h" +#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_NK87) +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, B_1, A_1, C_1}, //LA1 + {0, E_1, D_1, F_1}, //LA2 + {0, H_1, G_1, I_1}, //LA3 + {0, K_1, J_1, L_1}, //LA4 + {0, B_2, A_2, C_2}, //LA5 + {0, E_2, D_2, F_2}, //LA6 + {0, H_2, G_2, I_2}, //LA7 + {0, K_2, J_2, L_2}, //LA8 + {0, B_3, A_3, C_3}, //LA9 + {0, E_3, D_3, F_3}, //LA10 + {0, H_3, G_3, I_3}, //LA11 + {0, K_3, J_3, L_3}, //LA12 + {0, B_4, A_4, C_4}, //LA13 + {0, E_4, D_4, F_4}, //LA14 + {0, H_4, G_4, I_4}, //LA15 + {0, K_4, J_4, L_4}, //LA16 + {0, B_5, A_5, C_5}, //LA17 + {0, E_5, D_5, F_5}, //LA18 + {0, H_5, G_5, I_5}, //LA19 + {0, K_5, J_5, L_5}, //LA20 + {0, B_6, A_6, C_6}, //LA21 + {0, E_6, D_6, F_6}, //LA22 + {0, H_6, G_6, I_6}, //LA23 + {0, K_6, J_6, L_6}, //LA24 + {0, B_7, A_7, C_7}, //LA25 + {0, E_7, D_7, F_7}, //LA26 + {0, H_7, G_7, I_7}, //LA27 + {0, K_7, J_7, L_7}, //LA28 + {0, B_8, A_8, C_8}, //LA29 + {0, E_8, D_8, F_8}, //LA30 + {0, H_8, G_8, I_8}, //LA31 + {0, K_8, J_8, L_8}, //LA32 + {0, B_9, A_9, C_9}, //LA33 + {0, E_9, D_9, F_9}, //LA34 + {0, H_9, G_9, I_9}, //LA35 + {0, K_9, J_9, L_9}, //LA36 + {0, B_10, A_10, C_10}, //LA37 + {0, E_10, D_10, F_10}, //LA38 + {0, H_10, G_10, I_10}, //LA39 + {0, K_10, J_10, L_10}, //LA40 + {0, B_11, A_11, C_11}, //LA41 + {0, E_11, D_11, F_11}, //LA42 + {0, H_11, G_11, I_11}, //LA43 + {0, K_11, J_11, L_11}, //LA44 + {0, B_12, A_12, C_12}, //LA45 + {0, E_12, D_12, F_12}, //LA46 + {0, H_12, G_12, I_12}, //LA47 + {0, K_12, J_12, L_12}, //LA48 + {0, B_13, A_13, C_13}, //LA49 + {0, E_13, D_13, F_13}, //LA50 + {0, H_13, G_13, I_13}, //LA51 + {0, K_13, J_13, L_13}, //LA52 + {0, B_14, A_14, C_14}, //LA53 + {0, E_14, D_14, F_14}, //LA54 + {0, H_14, G_14, I_14}, //LA55 + {0, K_14, J_14, L_14}, //LA56 + {0, B_15, A_15, C_15}, //LA57 + {0, E_15, D_15, F_15}, //LA58 + {0, H_15, G_15, I_15}, //LA59 + {0, K_15, J_15, L_15}, //LA60 + {0, B_16, A_16, C_16}, //LA61 + {0, E_16, D_16, F_16}, //LA62 + {0, H_16, G_16, I_16}, //LA63 + {0, K_16, J_16, L_16}, //LA64 + + {1, B_1, A_1, C_1}, //LB1 + {1, E_1, D_1, F_1}, //LB2 + {1, H_1, G_1, I_1}, //LB3 + {1, K_1, J_1, L_1}, //LB4 + {1, B_2, A_2, C_2}, //LB5 + {1, E_2, D_2, F_2}, //LB6 + {1, H_2, G_2, I_2}, //LB7 + {1, K_2, J_2, L_2}, //LB8 + {1, B_3, A_3, C_3}, //LB9 + {1, E_3, D_3, F_3}, //LB10 + {1, H_3, G_3, I_3}, //LB11 + {1, K_3, J_3, L_3}, //LB12 + {1, B_4, A_4, C_4}, //LB13 + {1, E_4, D_4, F_4}, //LB14 + {1, H_4, G_4, I_4}, //LB15 + {1, K_4, J_4, L_4}, //LB16 + {1, B_5, A_5, C_5}, //LB17 + {1, E_5, D_5, F_5}, //LB18 + {1, H_5, G_5, I_5}, //LB19 + {1, K_5, J_5, L_5}, //LB20 + {1, B_6, A_6, C_6}, //LB21 + {1, E_6, D_6, F_6}, //LB22 + {1, H_6, G_6, I_6}, //LB23 + {1, K_6, J_6, L_6}, //LB24 + {1, B_7, A_7, C_7}, //LB25 + {1, E_7, D_7, F_7}, //LB26 + {1, H_7, G_7, I_7}, //LB27 + {1, K_7, J_7, L_7}, //LB28 + {1, B_8, A_8, C_8}, //LB29 + {1, E_8, D_8, F_8}, //LB30 + {1, H_8, G_8, I_8}, //LB31 + {1, K_8, J_8, L_8}, //LB32 + {1, B_9, A_9, C_9}, //LB33 + {1, E_9, D_9, F_9}, //LB34 + {1, H_9, G_9, I_9}, //LB35 + {1, K_9, J_9, L_9}, //LB36 + {1, B_10, A_10, C_10}, //LB37 + {1, E_10, D_10, F_10}, //LB38 + {1, H_10, G_10, I_10}, //LB39 + {1, K_10, J_10, L_10}, //LB40 + {1, B_11, A_11, C_11}, //LB41 + {1, E_11, D_11, F_11}, //LB42 + {1, H_11, G_11, I_11}, //LB43 + {1, K_11, J_11, L_11}, //LB44 + {1, B_12, A_12, C_12}, //LB45 + {1, E_12, D_12, F_12}, //LB46 + {1, H_12, G_12, I_12}, //LB47 + {1, K_12, J_12, L_12}, //LB48 + {1, B_13, A_13, C_13}, //LB49 + {1, E_13, D_13, F_13}, //LB50 + {1, H_13, G_13, I_13}, //LB51 + {1, K_13, J_13, L_13}, //LB52 + {1, B_14, A_14, C_14}, //LB53 + {1, E_14, D_14, F_14}, //LB54 + {1, H_14, G_14, I_14}, //LB55 + {1, K_14, J_14, L_14}, //LB56 + {1, B_15, A_15, C_15}, //LB57 + {1, E_15, D_15, F_15}, //LB58 + {1, H_15, G_15, I_15}, //LB59 + {1, K_15, J_15, L_15}, //LB60 + {1, B_16, A_16, C_16}, //LB61 + {1, E_16, D_16, F_16}, //LB62 + {1, H_16, G_16, I_16}, //LB63 + {1, K_16, J_16, L_16}, //LB64 +}; +#endif + /* Indicator LEDS are part of the LED driver * Top LED is blue only. LED driver 2 RGB 63 Blue channel * Middle LED is blue and red. LED driver 2 RGB 63 Red and Green channel diff --git a/keyboards/spaceholdings/nebula12/nebula12.c b/keyboards/spaceholdings/nebula12/nebula12.c index 7491bee844..3b8aae7a77 100755 --- a/keyboards/spaceholdings/nebula12/nebula12.c +++ b/keyboards/spaceholdings/nebula12/nebula12.c @@ -14,7 +14,9 @@ * along with this program. If not, see . */ #ifndef RGB_BACKLIGHT_NEBULA12 -#error RGB_BACKLIGHT_NEBULA12 not defined, recheck config.h +# error RGB_BACKLIGHT_NEBULA12 not defined, recheck config.h +#else +# include "drivers/led/issi/is31fl3731.h" #endif #include "nebula12.h" @@ -23,3 +25,30 @@ void board_init(void) { SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP; SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP); } + +#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_NEBULA12) +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C1_1, C3_2, C4_2}, //A1 + {0, C1_2, C2_2, C4_3}, //A2 + {0, C1_3, C2_3, C3_3}, //A3 + {0, C1_4, C2_4, C3_4}, //A4 + {0, C1_5, C2_5, C3_5}, //A5 + {0, C1_6, C2_6, C3_6}, //A6 + {0, C1_7, C2_7, C3_7}, //A7 + {0, C1_8, C2_8, C3_8}, //A8 + {0, C9_1, C8_1, C7_1}, //A9 + {0, C9_2, C8_2, C7_2}, //A10 + {0, C9_3, C8_3, C7_3}, //A11 + {0, C9_4, C8_4, C7_4}, //A12 + {0, C9_5, C8_5, C7_5}, //A13 + {0, C9_6, C8_6, C7_6}, //A14 + {0, C9_7, C8_7, C6_6}, //A15 + {0, C9_8, C7_7, C6_7}, //A16 +}; +#endif diff --git a/keyboards/spaceholdings/nebula68/nebula68.c b/keyboards/spaceholdings/nebula68/nebula68.c index 054a269bf6..af51c4805e 100755 --- a/keyboards/spaceholdings/nebula68/nebula68.c +++ b/keyboards/spaceholdings/nebula68/nebula68.c @@ -14,7 +14,149 @@ * along with this program. If not, see . */ #ifndef RGB_BACKLIGHT_NEBULA68 -#error RGB_BACKLIGHT_NEBULA68 not defined, recheck config.h +# error RGB_BACKLIGHT_NEBULA68 not defined, recheck config.h +#else +# include "drivers/led/issi/is31fl3733.h" #endif #include "nebula68.h" + +#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_NEBULA68) +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, B_1, A_1, C_1}, //LA1 + {0, E_1, D_1, F_1}, //LA2 + {0, H_1, G_1, I_1}, //LA3 + {0, K_1, J_1, L_1}, //LA4 + {0, B_2, A_2, C_2}, //LA5 + {0, E_2, D_2, F_2}, //LA6 + {0, H_2, G_2, I_2}, //LA7 + {0, K_2, J_2, L_2}, //LA8 + {0, B_3, A_3, C_3}, //LA9 + {0, E_3, D_3, F_3}, //LA10 + {0, H_3, G_3, I_3}, //LA11 + {0, K_3, J_3, L_3}, //LA12 + {0, B_4, A_4, C_4}, //LA13 + {0, E_4, D_4, F_4}, //LA14 + {0, H_4, G_4, I_4}, //LA15 + {0, K_4, J_4, L_4}, //LA16 + {0, B_5, A_5, C_5}, //LA17 + {0, E_5, D_5, F_5}, //LA18 + {0, H_5, G_5, I_5}, //LA19 + {0, K_5, J_5, L_5}, //LA20 + {0, B_6, A_6, C_6}, //LA21 + {0, E_6, D_6, F_6}, //LA22 + {0, H_6, G_6, I_6}, //LA23 + {0, K_6, J_6, L_6}, //LA24 + {0, B_7, A_7, C_7}, //LA25 + {0, E_7, D_7, F_7}, //LA26 + {0, H_7, G_7, I_7}, //LA27 + {0, K_7, J_7, L_7}, //LA28 + {0, B_8, A_8, C_8}, //LA29 + {0, E_8, D_8, F_8}, //LA30 + {0, H_8, G_8, I_8}, //LA31 + {0, K_8, J_8, L_8}, //LA32 + {0, B_9, A_9, C_9}, //LA33 + {0, E_9, D_9, F_9}, //LA34 + {0, H_9, G_9, I_9}, //LA35 + {0, K_9, J_9, L_9}, //LA36 + {0, B_10, A_10, C_10}, //LA37 + {0, E_10, D_10, F_10}, //LA38 + {0, H_10, G_10, I_10}, //LA39 + {0, K_10, J_10, L_10}, //LA40 + {0, B_11, A_11, C_11}, //LA41 + {0, E_11, D_11, F_11}, //LA42 + {0, H_11, G_11, I_11}, //LA43 + {0, K_11, J_11, L_11}, //LA44 + {0, B_12, A_12, C_12}, //LA45 + {0, E_12, D_12, F_12}, //LA46 + {0, H_12, G_12, I_12}, //LA47 + {0, K_12, J_12, L_12}, //LA48 + {0, B_13, A_13, C_13}, //LA49 + {0, E_13, D_13, F_13}, //LA50 + {0, H_13, G_13, I_13}, //LA51 + {0, K_13, J_13, L_13}, //LA52 + {0, B_14, A_14, C_14}, //LA53 + {0, E_14, D_14, F_14}, //LA54 + {0, H_14, G_14, I_14}, //LA55 + {0, K_14, J_14, L_14}, //LA56 + {0, B_15, A_15, C_15}, //LA57 + {0, E_15, D_15, F_15}, //LA58 + {0, H_15, G_15, I_15}, //LA59 + {0, K_15, J_15, L_15}, //LA60 + {0, B_16, A_16, C_16}, //LA61 + {0, E_16, D_16, F_16}, //LA62 + {0, H_16, G_16, I_16}, //LA63 + {0, K_16, J_16, L_16}, //LA64 + + {1, B_1, A_1, C_1}, //LB1 + {1, E_1, D_1, F_1}, //LB2 + {1, H_1, G_1, I_1}, //LB3 + {1, K_1, J_1, L_1}, //LB4 + {1, B_2, A_2, C_2}, //LB5 + {1, E_2, D_2, F_2}, //LB6 + {1, H_2, G_2, I_2}, //LB7 + {1, K_2, J_2, L_2}, //LB8 + {1, B_3, A_3, C_3}, //LB9 + {1, E_3, D_3, F_3}, //LB10 + {1, H_3, G_3, I_3}, //LB11 + {1, K_3, J_3, L_3}, //LB12 + {1, B_4, A_4, C_4}, //LB13 + {1, E_4, D_4, F_4}, //LB14 + {1, H_4, G_4, I_4}, //LB15 + {1, K_4, J_4, L_4}, //LB16 + {1, B_5, A_5, C_5}, //LB17 + {1, E_5, D_5, F_5}, //LB18 + {1, H_5, G_5, I_5}, //LB19 + {1, K_5, J_5, L_5}, //LB20 + {1, B_6, A_6, C_6}, //LB21 + {1, E_6, D_6, F_6}, //LB22 + {1, H_6, G_6, I_6}, //LB23 + {1, K_6, J_6, L_6}, //LB24 + {1, B_7, A_7, C_7}, //LB25 + {1, E_7, D_7, F_7}, //LB26 + {1, H_7, G_7, I_7}, //LB27 + {1, K_7, J_7, L_7}, //LB28 + {1, B_8, A_8, C_8}, //LB29 + {1, E_8, D_8, F_8}, //LB30 + {1, H_8, G_8, I_8}, //LB31 + {1, K_8, J_8, L_8}, //LB32 + {1, B_9, A_9, C_9}, //LB33 + {1, E_9, D_9, F_9}, //LB34 + {1, H_9, G_9, I_9}, //LB35 + {1, K_9, J_9, L_9}, //LB36 + {1, B_10, A_10, C_10}, //LB37 + {1, E_10, D_10, F_10}, //LB38 + {1, H_10, G_10, I_10}, //LB39 + {1, K_10, J_10, L_10}, //LB40 + {1, B_11, A_11, C_11}, //LB41 + {1, E_11, D_11, F_11}, //LB42 + {1, H_11, G_11, I_11}, //LB43 + {1, K_11, J_11, L_11}, //LB44 + {1, B_12, A_12, C_12}, //LB45 + {1, E_12, D_12, F_12}, //LB46 + {1, H_12, G_12, I_12}, //LB47 + {1, K_12, J_12, L_12}, //LB48 + {1, B_13, A_13, C_13}, //LB49 + {1, E_13, D_13, F_13}, //LB50 + {1, H_13, G_13, I_13}, //LB51 + {1, K_13, J_13, L_13}, //LB52 + {1, B_14, A_14, C_14}, //LB53 + {1, E_14, D_14, F_14}, //LB54 + {1, H_14, G_14, I_14}, //LB55 + {1, K_14, J_14, L_14}, //LB56 + {1, B_15, A_15, C_15}, //LB57 + {1, E_15, D_15, F_15}, //LB58 + {1, H_15, G_15, I_15}, //LB59 + {1, K_15, J_15, L_15}, //LB60 + {1, B_16, A_16, C_16}, //LB61 + {1, E_16, D_16, F_16}, //LB62 + {1, H_16, G_16, I_16}, //LB63 + {1, K_16, J_16, L_16}, //LB64 +}; +#endif diff --git a/keyboards/tkc/portico/portico.c b/keyboards/tkc/portico/portico.c index 72f8754f6c..bd60df13e2 100644 --- a/keyboards/tkc/portico/portico.c +++ b/keyboards/tkc/portico/portico.c @@ -17,7 +17,11 @@ along with this program. If not, see . #include "portico.h" -#ifdef RGB_MATRIX_ENABLE +#ifdef RGB_BACKLIGHT_PORTICO +# include "drivers/led/issi/is31fl3731.h" +#endif + +#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_PORTICO) const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { { 0, C2_1, C3_1, C4_1 }, @@ -92,7 +96,9 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { { 1, C9_16, C7_15, C6_15 }, { 1, C8_16, C7_16, C6_16 } }; +#endif +#ifdef RGB_MATRIX_ENABLE led_config_t g_led_config = { { { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, diff --git a/keyboards/tkc/portico75/portico75.c b/keyboards/tkc/portico75/portico75.c index f0751483aa..0a22a37d4e 100644 --- a/keyboards/tkc/portico75/portico75.c +++ b/keyboards/tkc/portico75/portico75.c @@ -18,7 +18,11 @@ along with this program. If not, see . #include "portico75.h" -#ifdef RGB_MATRIX_ENABLE +#ifdef RGB_BACKLIGHT_PORTICO75 +# include "drivers/led/issi/is31fl3741.h" +#endif + +#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_PORTICO75) const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, CS18_SW1, CS17_SW1, CS16_SW1}, @@ -134,8 +138,10 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, CS33_SW5, CS32_SW5, CS31_SW5}, {0, CS33_SW6, CS32_SW6, CS31_SW6}, {0, CS33_SW7, CS32_SW7, CS31_SW7}, - }; +#endif + +#ifdef RGB_MATRIX_ENABLE led_config_t g_led_config = { { { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29}, diff --git a/keyboards/wilba_tech/rama_works_kara/rama_works_kara.c b/keyboards/wilba_tech/rama_works_kara/rama_works_kara.c index 787a854925..c5f5c9a9d6 100644 --- a/keyboards/wilba_tech/rama_works_kara/rama_works_kara.c +++ b/keyboards/wilba_tech/rama_works_kara/rama_works_kara.c @@ -14,5 +14,93 @@ * along with this program. If not, see . */ #ifndef RGB_BACKLIGHT_M60_A -#error RGB_BACKLIGHT_M60_A not defined +# error RGB_BACKLIGHT_M60_A not defined +#else +# include "drivers/led/issi/is31fl3731.h" +#endif + +#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_M60_A) +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C2_1, C3_1, C4_1}, // LA0 + {0, C1_1, C3_2, C4_2}, // LA1 + {0, C1_2, C2_2, C4_3}, // LA2 + {0, C1_3, C2_3, C3_3}, // LA3 + {0, C1_4, C2_4, C3_4}, // LA4 + {0, C1_5, C2_5, C3_5}, // LA5 + {0, C1_6, C2_6, C3_6}, // LA6 + {0, C1_7, C2_7, C3_7}, // LA7 + {0, C1_8, C2_8, C3_8}, // LA8 + {0, C9_1, C8_1, C7_1}, // LA9 + {0, C9_2, C8_2, C7_2}, // LA10 + {0, C9_3, C8_3, C7_3}, // LA11 + {0, C9_4, C8_4, C7_4}, // LA12 + {0, C9_5, C8_5, C7_5}, // LA13 + {0, C9_6, C8_6, C7_6}, // LA14 + {0, C9_7, C8_7, C6_6}, // LA15 + {0, C9_8, C7_7, C6_7}, // LA16 + {0, C8_8, C7_8, C6_8}, // LA17 + + {0, C2_9, C3_9, C4_9}, // LB0 + {0, C1_9, C3_10, C4_10}, // LB1 + {0, C1_10, C2_10, C4_11}, // LB2 + {0, C1_11, C2_11, C3_11}, // LB3 + {0, C1_12, C2_12, C3_12}, // LB4 + {0, C1_13, C2_13, C3_13}, // LB5 + {0, C1_14, C2_14, C3_14}, // LB6 + {0, C1_15, C2_15, C3_15}, // LB7 + {0, C1_16, C2_16, C3_16}, // LB8 + {0, C9_9, C8_9, C7_9}, // LB9 + {0, C9_10, C8_10, C7_10}, // LB10 + {0, C9_11, C8_11, C7_11}, // LB11 + {0, C9_12, C8_12, C7_12}, // LB12 + {0, C9_13, C8_13, C7_13}, // LB13 + {0, C9_14, C8_14, C7_14}, // LB14 + {0, C9_15, C8_15, C6_14}, // LB15 + {0, C9_16, C7_15, C6_15}, // LB16 + {0, C8_16, C7_16, C6_16}, // LB17 + + {1, C2_1, C3_1, C4_1}, // LC0 + {1, C1_1, C3_2, C4_2}, // LC1 + {1, C1_2, C2_2, C4_3}, // LC2 + {1, C1_3, C2_3, C3_3}, // LC3 + {1, C1_4, C2_4, C3_4}, // LC4 + {1, C1_5, C2_5, C3_5}, // LC5 + {1, C1_6, C2_6, C3_6}, // LC6 + {1, C1_7, C2_7, C3_7}, // LC7 + {1, C1_8, C2_8, C3_8}, // LC8 + {1, C9_1, C8_1, C7_1}, // LC9 + {1, C9_2, C8_2, C7_2}, // LC10 + {1, C9_3, C8_3, C7_3}, // LC11 + {1, C9_4, C8_4, C7_4}, // LC12 + {1, C9_5, C8_5, C7_5}, // LC13 + {1, C9_6, C8_6, C7_6}, // LC14 + {1, C9_7, C8_7, C6_6}, // LC15 + {1, C9_8, C7_7, C6_7}, // LC16 + {1, C8_8, C7_8, C6_8}, // LC17 + + {1, C2_9, C3_9, C4_9}, // LD0 + {1, C1_9, C3_10, C4_10}, // LD1 + {1, C1_10, C2_10, C4_11}, // LD2 + {1, C1_11, C2_11, C3_11}, // LD3 + {1, C1_12, C2_12, C3_12}, // LD4 + {1, C1_13, C2_13, C3_13}, // LD5 + {1, C1_14, C2_14, C3_14}, // LD6 + {1, C1_15, C2_15, C3_15}, // LD7 + {1, C1_16, C2_16, C3_16}, // LD8 + {1, C9_9, C8_9, C7_9}, // LD9 + {1, C9_10, C8_10, C7_10}, // LD10 + {1, C9_11, C8_11, C7_11}, // LD11 + {1, C9_12, C8_12, C7_12}, // LD12 + {1, C9_13, C8_13, C7_13}, // LD13 + {1, C9_14, C8_14, C7_14}, // LD14 + {1, C9_15, C8_15, C6_14}, // LD15 + {1, C9_16, C7_15, C6_15}, // LD16 + {1, C8_16, C7_16, C6_16}, // LD17 +}; #endif diff --git a/keyboards/wilba_tech/rama_works_koyu/rama_works_koyu.c b/keyboards/wilba_tech/rama_works_koyu/rama_works_koyu.c index 03d1e12159..f7b1595d24 100644 --- a/keyboards/wilba_tech/rama_works_koyu/rama_works_koyu.c +++ b/keyboards/wilba_tech/rama_works_koyu/rama_works_koyu.c @@ -14,5 +14,93 @@ * along with this program. If not, see . */ #ifndef RGB_BACKLIGHT_KOYU -#error RGB_BACKLIGHT_KOYU not defined, you done goofed somehao, brah +# error RGB_BACKLIGHT_KOYU not defined, you done goofed somehao, brah +#else +# include "drivers/led/issi/is31fl3731.h" +#endif + +#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_KOYU) +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C2_1, C3_1, C4_1}, // LA0 + {0, C1_1, C3_2, C4_2}, // LA1 + {0, C1_2, C2_2, C4_3}, // LA2 + {0, C1_3, C2_3, C3_3}, // LA3 + {0, C1_4, C2_4, C3_4}, // LA4 + {0, C1_5, C2_5, C3_5}, // LA5 + {0, C1_6, C2_6, C3_6}, // LA6 + {0, C1_7, C2_7, C3_7}, // LA7 + {0, C1_8, C2_8, C3_8}, // LA8 + {0, C9_1, C8_1, C7_1}, // LA9 + {0, C9_2, C8_2, C7_2}, // LA10 + {0, C9_3, C8_3, C7_3}, // LA11 + {0, C9_4, C8_4, C7_4}, // LA12 + {0, C9_5, C8_5, C7_5}, // LA13 + {0, C9_6, C8_6, C7_6}, // LA14 + {0, C9_7, C8_7, C6_6}, // LA15 + {0, C9_8, C7_7, C6_7}, // LA16 + {0, C8_8, C7_8, C6_8}, // LA17 + + {0, C2_9, C3_9, C4_9}, // LB0 + {0, C1_9, C3_10, C4_10}, // LB1 + {0, C1_10, C2_10, C4_11}, // LB2 + {0, C1_11, C2_11, C3_11}, // LB3 + {0, C1_12, C2_12, C3_12}, // LB4 + {0, C1_13, C2_13, C3_13}, // LB5 + {0, C1_14, C2_14, C3_14}, // LB6 + {0, C1_15, C2_15, C3_15}, // LB7 + {0, C1_16, C2_16, C3_16}, // LB8 + {0, C9_9, C8_9, C7_9}, // LB9 + {0, C9_10, C8_10, C7_10}, // LB10 + {0, C9_11, C8_11, C7_11}, // LB11 + {0, C9_12, C8_12, C7_12}, // LB12 + {0, C9_13, C8_13, C7_13}, // LB13 + {0, C9_14, C8_14, C7_14}, // LB14 + {0, C9_15, C8_15, C6_14}, // LB15 + {0, C9_16, C7_15, C6_15}, // LB16 + {0, C8_16, C7_16, C6_16}, // LB17 + + {1, C2_1, C3_1, C4_1}, // LC0 + {1, C1_1, C3_2, C4_2}, // LC1 + {1, C1_2, C2_2, C4_3}, // LC2 + {1, C1_3, C2_3, C3_3}, // LC3 + {1, C1_4, C2_4, C3_4}, // LC4 + {1, C1_5, C2_5, C3_5}, // LC5 + {1, C1_6, C2_6, C3_6}, // LC6 + {1, C1_7, C2_7, C3_7}, // LC7 + {1, C1_8, C2_8, C3_8}, // LC8 + {1, C9_1, C8_1, C7_1}, // LC9 + {1, C9_2, C8_2, C7_2}, // LC10 + {1, C9_3, C8_3, C7_3}, // LC11 + {1, C9_4, C8_4, C7_4}, // LC12 + {1, C9_5, C8_5, C7_5}, // LC13 + {1, C9_6, C8_6, C7_6}, // LC14 + {1, C9_7, C8_7, C6_6}, // LC15 + {1, C9_8, C7_7, C6_7}, // LC16 + {1, C8_8, C7_8, C6_8}, // LC17 + + {1, C2_9, C3_9, C4_9}, // LD0 + {1, C1_9, C3_10, C4_10}, // LD1 + {1, C1_10, C2_10, C4_11}, // LD2 + {1, C1_11, C2_11, C3_11}, // LD3 + {1, C1_12, C2_12, C3_12}, // LD4 + {1, C1_13, C2_13, C3_13}, // LD5 + {1, C1_14, C2_14, C3_14}, // LD6 + {1, C1_15, C2_15, C3_15}, // LD7 + {1, C1_16, C2_16, C3_16}, // LD8 + {1, C9_9, C8_9, C7_9}, // LD9 + {1, C9_10, C8_10, C7_10}, // LD10 + {1, C9_11, C8_11, C7_11}, // LD11 + {1, C9_12, C8_12, C7_12}, // LD12 + {1, C9_13, C8_13, C7_13}, // LD13 + {1, C9_14, C8_14, C7_14}, // LD14 + {1, C9_15, C8_15, C6_14}, // LD15 + {1, C9_16, C7_15, C6_15}, // LD16 + {1, C8_16, C7_16, C6_16}, // LD17 +}; #endif diff --git a/keyboards/wilba_tech/rama_works_m10_c/rama_works_m10_c.c b/keyboards/wilba_tech/rama_works_m10_c/rama_works_m10_c.c index 17fa921db6..8f23c9130b 100644 --- a/keyboards/wilba_tech/rama_works_m10_c/rama_works_m10_c.c +++ b/keyboards/wilba_tech/rama_works_m10_c/rama_works_m10_c.c @@ -14,5 +14,24 @@ * along with this program. If not, see . */ #ifndef RGB_BACKLIGHT_M10_C -#error RGB_BACKLIGHT_M10_C not defined -#endif \ No newline at end of file +# error RGB_BACKLIGHT_M10_C not defined +#else +# include "drivers/led/issi/is31fl3731.h" +#endif + +#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_M10_C) +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { + {0, C1_9, C3_10, C4_10}, // LB1 + {0, C1_10, C2_10, C4_11}, // LB2 + {0, C1_11, C2_11, C3_11}, // LB3 + {0, C1_12, C2_12, C3_12}, // LB4 + {0, C1_13, C2_13, C3_13}, // LB5 + {0, C1_14, C2_14, C3_14}, // LB6 + {0, C9_11, C8_11, C7_11}, // LB11 + {0, C9_12, C8_12, C7_12}, // LB12 + {0, C9_13, C8_13, C7_13}, // LB13 + {0, C9_14, C8_14, C7_14}, // LB14 + {0, C9_15, C8_15, C6_14}, // LB15 + {0, C9_16, C7_15, C6_15} // LB16 +}; +#endif diff --git a/keyboards/wilba_tech/rama_works_m50_a/rama_works_m50_a.c b/keyboards/wilba_tech/rama_works_m50_a/rama_works_m50_a.c index ee5ebf93fd..69f92df893 100644 --- a/keyboards/wilba_tech/rama_works_m50_a/rama_works_m50_a.c +++ b/keyboards/wilba_tech/rama_works_m50_a/rama_works_m50_a.c @@ -15,4 +15,92 @@ */ #ifndef RGB_BACKLIGHT_M50_A #error RGB_BACKLIGHT_M50_A not defined +#else +# include "drivers/led/issi/is31fl3731.h" +#endif + +#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_M50_A) +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C2_1, C3_1, C4_1}, // LA0 + {0, C1_1, C3_2, C4_2}, // LA1 + {0, C1_2, C2_2, C4_3}, // LA2 + {0, C1_3, C2_3, C3_3}, // LA3 + {0, C1_4, C2_4, C3_4}, // LA4 + {0, C1_5, C2_5, C3_5}, // LA5 + {0, C1_6, C2_6, C3_6}, // LA6 + {0, C1_7, C2_7, C3_7}, // LA7 + {0, C1_8, C2_8, C3_8}, // LA8 + {0, C9_1, C8_1, C7_1}, // LA9 + {0, C9_2, C8_2, C7_2}, // LA10 + {0, C9_3, C8_3, C7_3}, // LA11 + {0, C9_4, C8_4, C7_4}, // LA12 + {0, C9_5, C8_5, C7_5}, // LA13 + {0, C9_6, C8_6, C7_6}, // LA14 + {0, C9_7, C8_7, C6_6}, // LA15 + {0, C9_8, C7_7, C6_7}, // LA16 + {0, C8_8, C7_8, C6_8}, // LA17 + + {0, C2_9, C3_9, C4_9}, // LB0 + {0, C1_9, C3_10, C4_10}, // LB1 + {0, C1_10, C2_10, C4_11}, // LB2 + {0, C1_11, C2_11, C3_11}, // LB3 + {0, C1_12, C2_12, C3_12}, // LB4 + {0, C1_13, C2_13, C3_13}, // LB5 + {0, C1_14, C2_14, C3_14}, // LB6 + {0, C1_15, C2_15, C3_15}, // LB7 + {0, C1_16, C2_16, C3_16}, // LB8 + {0, C9_9, C8_9, C7_9}, // LB9 + {0, C9_10, C8_10, C7_10}, // LB10 + {0, C9_11, C8_11, C7_11}, // LB11 + {0, C9_12, C8_12, C7_12}, // LB12 + {0, C9_13, C8_13, C7_13}, // LB13 + {0, C9_14, C8_14, C7_14}, // LB14 + {0, C9_15, C8_15, C6_14}, // LB15 + {0, C9_16, C7_15, C6_15}, // LB16 + {0, C8_16, C7_16, C6_16}, // LB17 + + {1, C2_1, C3_1, C4_1}, // LC0 + {1, C1_1, C3_2, C4_2}, // LC1 + {1, C1_2, C2_2, C4_3}, // LC2 + {1, C1_3, C2_3, C3_3}, // LC3 + {1, C1_4, C2_4, C3_4}, // LC4 + {1, C1_5, C2_5, C3_5}, // LC5 + {1, C1_6, C2_6, C3_6}, // LC6 + {1, C1_7, C2_7, C3_7}, // LC7 + {1, C1_8, C2_8, C3_8}, // LC8 + {1, C9_1, C8_1, C7_1}, // LC9 + {1, C9_2, C8_2, C7_2}, // LC10 + {1, C9_3, C8_3, C7_3}, // LC11 + {1, C9_4, C8_4, C7_4}, // LC12 + {1, C9_5, C8_5, C7_5}, // LC13 + {1, C9_6, C8_6, C7_6}, // LC14 + {1, C9_7, C8_7, C6_6}, // LC15 + {1, C9_8, C7_7, C6_7}, // LC16 + {1, C8_8, C7_8, C6_8}, // LC17 + + {1, C2_9, C3_9, C4_9}, // LD0 + {1, C1_9, C3_10, C4_10}, // LD1 + {1, C1_10, C2_10, C4_11}, // LD2 + {1, C1_11, C2_11, C3_11}, // LD3 + {1, C1_12, C2_12, C3_12}, // LD4 + {1, C1_13, C2_13, C3_13}, // LD5 + {1, C1_14, C2_14, C3_14}, // LD6 + {1, C1_15, C2_15, C3_15}, // LD7 + {1, C1_16, C2_16, C3_16}, // LD8 + {1, C9_9, C8_9, C7_9}, // LD9 + {1, C9_10, C8_10, C7_10}, // LD10 + {1, C9_11, C8_11, C7_11}, // LD11 + {1, C9_12, C8_12, C7_12}, // LD12 + {1, C9_13, C8_13, C7_13}, // LD13 + {1, C9_14, C8_14, C7_14}, // LD14 + {1, C9_15, C8_15, C6_14}, // LD15 + {1, C9_16, C7_15, C6_15}, // LD16 + {1, C8_16, C7_16, C6_16}, // LD17 +}; #endif diff --git a/keyboards/wilba_tech/rama_works_m60_a/rama_works_m60_a.c b/keyboards/wilba_tech/rama_works_m60_a/rama_works_m60_a.c index 80a98460d8..dd292c685d 100644 --- a/keyboards/wilba_tech/rama_works_m60_a/rama_works_m60_a.c +++ b/keyboards/wilba_tech/rama_works_m60_a/rama_works_m60_a.c @@ -14,5 +14,93 @@ * along with this program. If not, see . */ #ifndef RGB_BACKLIGHT_M60_A -#error RGB_BACKLIGHT_M60_A not defined, you done goofed somehao, brah +# error RGB_BACKLIGHT_M60_A not defined, you done goofed somehao, brah +#else +# include "drivers/led/issi/is31fl3731.h" +#endif + +#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_M60_A) +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C2_1, C3_1, C4_1}, // LA0 + {0, C1_1, C3_2, C4_2}, // LA1 + {0, C1_2, C2_2, C4_3}, // LA2 + {0, C1_3, C2_3, C3_3}, // LA3 + {0, C1_4, C2_4, C3_4}, // LA4 + {0, C1_5, C2_5, C3_5}, // LA5 + {0, C1_6, C2_6, C3_6}, // LA6 + {0, C1_7, C2_7, C3_7}, // LA7 + {0, C1_8, C2_8, C3_8}, // LA8 + {0, C9_1, C8_1, C7_1}, // LA9 + {0, C9_2, C8_2, C7_2}, // LA10 + {0, C9_3, C8_3, C7_3}, // LA11 + {0, C9_4, C8_4, C7_4}, // LA12 + {0, C9_5, C8_5, C7_5}, // LA13 + {0, C9_6, C8_6, C7_6}, // LA14 + {0, C9_7, C8_7, C6_6}, // LA15 + {0, C9_8, C7_7, C6_7}, // LA16 + {0, C8_8, C7_8, C6_8}, // LA17 + + {0, C2_9, C3_9, C4_9}, // LB0 + {0, C1_9, C3_10, C4_10}, // LB1 + {0, C1_10, C2_10, C4_11}, // LB2 + {0, C1_11, C2_11, C3_11}, // LB3 + {0, C1_12, C2_12, C3_12}, // LB4 + {0, C1_13, C2_13, C3_13}, // LB5 + {0, C1_14, C2_14, C3_14}, // LB6 + {0, C1_15, C2_15, C3_15}, // LB7 + {0, C1_16, C2_16, C3_16}, // LB8 + {0, C9_9, C8_9, C7_9}, // LB9 + {0, C9_10, C8_10, C7_10}, // LB10 + {0, C9_11, C8_11, C7_11}, // LB11 + {0, C9_12, C8_12, C7_12}, // LB12 + {0, C9_13, C8_13, C7_13}, // LB13 + {0, C9_14, C8_14, C7_14}, // LB14 + {0, C9_15, C8_15, C6_14}, // LB15 + {0, C9_16, C7_15, C6_15}, // LB16 + {0, C8_16, C7_16, C6_16}, // LB17 + + {1, C2_1, C3_1, C4_1}, // LC0 + {1, C1_1, C3_2, C4_2}, // LC1 + {1, C1_2, C2_2, C4_3}, // LC2 + {1, C1_3, C2_3, C3_3}, // LC3 + {1, C1_4, C2_4, C3_4}, // LC4 + {1, C1_5, C2_5, C3_5}, // LC5 + {1, C1_6, C2_6, C3_6}, // LC6 + {1, C1_7, C2_7, C3_7}, // LC7 + {1, C1_8, C2_8, C3_8}, // LC8 + {1, C9_1, C8_1, C7_1}, // LC9 + {1, C9_2, C8_2, C7_2}, // LC10 + {1, C9_3, C8_3, C7_3}, // LC11 + {1, C9_4, C8_4, C7_4}, // LC12 + {1, C9_5, C8_5, C7_5}, // LC13 + {1, C9_6, C8_6, C7_6}, // LC14 + {1, C9_7, C8_7, C6_6}, // LC15 + {1, C9_8, C7_7, C6_7}, // LC16 + {1, C8_8, C7_8, C6_8}, // LC17 + + {1, C2_9, C3_9, C4_9}, // LD0 + {1, C1_9, C3_10, C4_10}, // LD1 + {1, C1_10, C2_10, C4_11}, // LD2 + {1, C1_11, C2_11, C3_11}, // LD3 + {1, C1_12, C2_12, C3_12}, // LD4 + {1, C1_13, C2_13, C3_13}, // LD5 + {1, C1_14, C2_14, C3_14}, // LD6 + {1, C1_15, C2_15, C3_15}, // LD7 + {1, C1_16, C2_16, C3_16}, // LD8 + {1, C9_9, C8_9, C7_9}, // LD9 + {1, C9_10, C8_10, C7_10}, // LD10 + {1, C9_11, C8_11, C7_11}, // LD11 + {1, C9_12, C8_12, C7_12}, // LD12 + {1, C9_13, C8_13, C7_13}, // LD13 + {1, C9_14, C8_14, C7_14}, // LD14 + {1, C9_15, C8_15, C6_14}, // LD15 + {1, C9_16, C7_15, C6_15}, // LD16 + {1, C8_16, C7_16, C6_16}, // LD17 +}; #endif diff --git a/keyboards/wilba_tech/rama_works_m65_b/rama_works_m65_b.c b/keyboards/wilba_tech/rama_works_m65_b/rama_works_m65_b.c index 62546fbfc9..8c92472ecb 100644 --- a/keyboards/wilba_tech/rama_works_m65_b/rama_works_m65_b.c +++ b/keyboards/wilba_tech/rama_works_m65_b/rama_works_m65_b.c @@ -14,5 +14,93 @@ * along with this program. If not, see . */ #ifndef RGB_BACKLIGHT_M65_B -#error RGB_BACKLIGHT_M65_B not defined +# error RGB_BACKLIGHT_M65_B not defined +#else +# include "drivers/led/issi/is31fl3731.h" +#endif + +#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_M65_B) +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C2_1, C3_1, C4_1}, // LA0 + {0, C1_1, C3_2, C4_2}, // LA1 + {0, C1_2, C2_2, C4_3}, // LA2 + {0, C1_3, C2_3, C3_3}, // LA3 + {0, C1_4, C2_4, C3_4}, // LA4 + {0, C1_5, C2_5, C3_5}, // LA5 + {0, C1_6, C2_6, C3_6}, // LA6 + {0, C1_7, C2_7, C3_7}, // LA7 + {0, C1_8, C2_8, C3_8}, // LA8 + {0, C9_1, C8_1, C7_1}, // LA9 + {0, C9_2, C8_2, C7_2}, // LA10 + {0, C9_3, C8_3, C7_3}, // LA11 + {0, C9_4, C8_4, C7_4}, // LA12 + {0, C9_5, C8_5, C7_5}, // LA13 + {0, C9_6, C8_6, C7_6}, // LA14 + {0, C9_7, C8_7, C6_6}, // LA15 + {0, C9_8, C7_7, C6_7}, // LA16 + {0, C8_8, C7_8, C6_8}, // LA17 + + {0, C2_9, C3_9, C4_9}, // LB0 + {0, C1_9, C3_10, C4_10}, // LB1 + {0, C1_10, C2_10, C4_11}, // LB2 + {0, C1_11, C2_11, C3_11}, // LB3 + {0, C1_12, C2_12, C3_12}, // LB4 + {0, C1_13, C2_13, C3_13}, // LB5 + {0, C1_14, C2_14, C3_14}, // LB6 + {0, C1_15, C2_15, C3_15}, // LB7 + {0, C1_16, C2_16, C3_16}, // LB8 + {0, C9_9, C8_9, C7_9}, // LB9 + {0, C9_10, C8_10, C7_10}, // LB10 + {0, C9_11, C8_11, C7_11}, // LB11 + {0, C9_12, C8_12, C7_12}, // LB12 + {0, C9_13, C8_13, C7_13}, // LB13 + {0, C9_14, C8_14, C7_14}, // LB14 + {0, C9_15, C8_15, C6_14}, // LB15 + {0, C9_16, C7_15, C6_15}, // LB16 + {0, C8_16, C7_16, C6_16}, // LB17 + + {1, C2_1, C3_1, C4_1}, // LC0 + {1, C1_1, C3_2, C4_2}, // LC1 + {1, C1_2, C2_2, C4_3}, // LC2 + {1, C1_3, C2_3, C3_3}, // LC3 + {1, C1_4, C2_4, C3_4}, // LC4 + {1, C1_5, C2_5, C3_5}, // LC5 + {1, C1_6, C2_6, C3_6}, // LC6 + {1, C1_7, C2_7, C3_7}, // LC7 + {1, C1_8, C2_8, C3_8}, // LC8 + {1, C9_1, C8_1, C7_1}, // LC9 + {1, C9_2, C8_2, C7_2}, // LC10 + {1, C9_3, C8_3, C7_3}, // LC11 + {1, C9_4, C8_4, C7_4}, // LC12 + {1, C9_5, C8_5, C7_5}, // LC13 + {1, C9_6, C8_6, C7_6}, // LC14 + {1, C9_7, C8_7, C6_6}, // LC15 + {1, C9_8, C7_7, C6_7}, // LC16 + {1, C8_8, C7_8, C6_8}, // LC17 + + {1, C2_9, C3_9, C4_9}, // LD0 + {1, C1_9, C3_10, C4_10}, // LD1 + {1, C1_10, C2_10, C4_11}, // LD2 + {1, C1_11, C2_11, C3_11}, // LD3 + {1, C1_12, C2_12, C3_12}, // LD4 + {1, C1_13, C2_13, C3_13}, // LD5 + {1, C1_14, C2_14, C3_14}, // LD6 + {1, C1_15, C2_15, C3_15}, // LD7 + {1, C1_16, C2_16, C3_16}, // LD8 + {1, C9_9, C8_9, C7_9}, // LD9 + {1, C9_10, C8_10, C7_10}, // LD10 + {1, C9_11, C8_11, C7_11}, // LD11 + {1, C9_12, C8_12, C7_12}, // LD12 + {1, C9_13, C8_13, C7_13}, // LD13 + {1, C9_14, C8_14, C7_14}, // LD14 + {1, C9_15, C8_15, C6_14}, // LD15 + {1, C9_16, C7_15, C6_15}, // LD16 + {1, C8_16, C7_16, C6_16}, // LD17 +}; #endif diff --git a/keyboards/wilba_tech/rama_works_m65_bx/rama_works_m65_bx.c b/keyboards/wilba_tech/rama_works_m65_bx/rama_works_m65_bx.c index f390540a48..1709b0915e 100644 --- a/keyboards/wilba_tech/rama_works_m65_bx/rama_works_m65_bx.c +++ b/keyboards/wilba_tech/rama_works_m65_bx/rama_works_m65_bx.c @@ -14,5 +14,93 @@ * along with this program. If not, see . */ #ifndef RGB_BACKLIGHT_M65_BX -#error RGB_BACKLIGHT_M65_BX not defined +# error RGB_BACKLIGHT_M65_BX not defined +#else +# include "drivers/led/issi/is31fl3731.h" +#endif + +#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_M65_BX) +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C2_1, C3_1, C4_1}, // LA0 + {0, C1_1, C3_2, C4_2}, // LA1 + {0, C1_2, C2_2, C4_3}, // LA2 + {0, C1_3, C2_3, C3_3}, // LA3 + {0, C1_4, C2_4, C3_4}, // LA4 + {0, C1_5, C2_5, C3_5}, // LA5 + {0, C1_6, C2_6, C3_6}, // LA6 + {0, C1_7, C2_7, C3_7}, // LA7 + {0, C1_8, C2_8, C3_8}, // LA8 + {0, C9_1, C8_1, C7_1}, // LA9 + {0, C9_2, C8_2, C7_2}, // LA10 + {0, C9_3, C8_3, C7_3}, // LA11 + {0, C9_4, C8_4, C7_4}, // LA12 + {0, C9_5, C8_5, C7_5}, // LA13 + {0, C9_6, C8_6, C7_6}, // LA14 + {0, C9_7, C8_7, C6_6}, // LA15 + {0, C9_8, C7_7, C6_7}, // LA16 + {0, C8_8, C7_8, C6_8}, // LA17 + + {0, C2_9, C3_9, C4_9}, // LB0 + {0, C1_9, C3_10, C4_10}, // LB1 + {0, C1_10, C2_10, C4_11}, // LB2 + {0, C1_11, C2_11, C3_11}, // LB3 + {0, C1_12, C2_12, C3_12}, // LB4 + {0, C1_13, C2_13, C3_13}, // LB5 + {0, C1_14, C2_14, C3_14}, // LB6 + {0, C1_15, C2_15, C3_15}, // LB7 + {0, C1_16, C2_16, C3_16}, // LB8 + {0, C9_9, C8_9, C7_9}, // LB9 + {0, C9_10, C8_10, C7_10}, // LB10 + {0, C9_11, C8_11, C7_11}, // LB11 + {0, C9_12, C8_12, C7_12}, // LB12 + {0, C9_13, C8_13, C7_13}, // LB13 + {0, C9_14, C8_14, C7_14}, // LB14 + {0, C9_15, C8_15, C6_14}, // LB15 + {0, C9_16, C7_15, C6_15}, // LB16 + {0, C8_16, C7_16, C6_16}, // LB17 + + {1, C2_1, C3_1, C4_1}, // LC0 + {1, C1_1, C3_2, C4_2}, // LC1 + {1, C1_2, C2_2, C4_3}, // LC2 + {1, C1_3, C2_3, C3_3}, // LC3 + {1, C1_4, C2_4, C3_4}, // LC4 + {1, C1_5, C2_5, C3_5}, // LC5 + {1, C1_6, C2_6, C3_6}, // LC6 + {1, C1_7, C2_7, C3_7}, // LC7 + {1, C1_8, C2_8, C3_8}, // LC8 + {1, C9_1, C8_1, C7_1}, // LC9 + {1, C9_2, C8_2, C7_2}, // LC10 + {1, C9_3, C8_3, C7_3}, // LC11 + {1, C9_4, C8_4, C7_4}, // LC12 + {1, C9_5, C8_5, C7_5}, // LC13 + {1, C9_6, C8_6, C7_6}, // LC14 + {1, C9_7, C8_7, C6_6}, // LC15 + {1, C9_8, C7_7, C6_7}, // LC16 + {1, C8_8, C7_8, C6_8}, // LC17 + + {1, C2_9, C3_9, C4_9}, // LD0 + {1, C1_9, C3_10, C4_10}, // LD1 + {1, C1_10, C2_10, C4_11}, // LD2 + {1, C1_11, C2_11, C3_11}, // LD3 + {1, C1_12, C2_12, C3_12}, // LD4 + {1, C1_13, C2_13, C3_13}, // LD5 + {1, C1_14, C2_14, C3_14}, // LD6 + {1, C1_15, C2_15, C3_15}, // LD7 + {1, C1_16, C2_16, C3_16}, // LD8 + {1, C9_9, C8_9, C7_9}, // LD9 + {1, C9_10, C8_10, C7_10}, // LD10 + {1, C9_11, C8_11, C7_11}, // LD11 + {1, C9_12, C8_12, C7_12}, // LD12 + {1, C9_13, C8_13, C7_13}, // LD13 + {1, C9_14, C8_14, C7_14}, // LD14 + {1, C9_15, C8_15, C6_14}, // LD15 + {1, C9_16, C7_15, C6_15}, // LD16 + {1, C8_16, C7_16, C6_16}, // LD17 +}; #endif diff --git a/keyboards/wilba_tech/rama_works_m6_b/rama_works_m6_b.c b/keyboards/wilba_tech/rama_works_m6_b/rama_works_m6_b.c index 581b31d753..cf37083fcc 100644 --- a/keyboards/wilba_tech/rama_works_m6_b/rama_works_m6_b.c +++ b/keyboards/wilba_tech/rama_works_m6_b/rama_works_m6_b.c @@ -14,5 +14,18 @@ * along with this program. If not, see . */ #ifndef RGB_BACKLIGHT_M6_B -#error RGB_BACKLIGHT_M6_B not defined, you done goofed somehao, brah +# error RGB_BACKLIGHT_M6_B not defined, you done goofed somehao, brah +#else +# include "drivers/led/issi/is31fl3218.h" +#endif + +#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_M6_B) +const is31fl3218_led_t PROGMEM g_is31fl3218_leds[IS31FL3218_LED_COUNT] = { + {OUT1, OUT2, OUT3}, + {OUT4, OUT5, OUT6}, + {OUT7, OUT8, OUT9}, + {OUT10, OUT11, OUT12}, + {OUT13, OUT14, OUT15}, + {OUT16, OUT17, OUT18} +}; #endif diff --git a/keyboards/wilba_tech/rama_works_u80_a/rama_works_u80_a.c b/keyboards/wilba_tech/rama_works_u80_a/rama_works_u80_a.c new file mode 100644 index 0000000000..17091db7ce --- /dev/null +++ b/keyboards/wilba_tech/rama_works_u80_a/rama_works_u80_a.c @@ -0,0 +1,132 @@ +// Copyright 2022 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "rama_works_u80_a.h" + +#ifdef RGB_BACKLIGHT_U80_A +# include "drivers/led/issi/is31fl3731.h" +#endif + +#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_U80_A) +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C2_1, C3_1, C4_1}, // LA0 + {0, C1_1, C3_2, C4_2}, // LA1 + {0, C1_2, C2_2, C4_3}, // LA2 + {0, C1_3, C2_3, C3_3}, // LA3 + {0, C1_4, C2_4, C3_4}, // LA4 + {0, C1_5, C2_5, C3_5}, // LA5 + {0, C1_6, C2_6, C3_6}, // LA6 + {0, C1_7, C2_7, C3_7}, // LA7 + {0, C1_8, C2_8, C3_8}, // LA8 + {0, C9_1, C8_1, C7_1}, // LA9 + {0, C9_2, C8_2, C7_2}, // LA10 + {0, C9_3, C8_3, C7_3}, // LA11 + {0, C9_4, C8_4, C7_4}, // LA12 + {0, C9_5, C8_5, C7_5}, // LA13 + {0, C9_6, C8_6, C7_6}, // LA14 + {0, C9_7, C8_7, C6_6}, // LA15 + {0, C9_8, C7_7, C6_7}, // LA16 + {0, C8_8, C7_8, C6_8}, // LA17 + + {0, C2_9, C3_9, C4_9}, // LB0 + {0, C1_9, C3_10, C4_10}, // LB1 + {0, C1_10, C2_10, C4_11}, // LB2 + {0, C1_11, C2_11, C3_11}, // LB3 + {0, C1_12, C2_12, C3_12}, // LB4 + {0, C1_13, C2_13, C3_13}, // LB5 + {0, C1_14, C2_14, C3_14}, // LB6 + {0, C1_15, C2_15, C3_15}, // LB7 + {0, C1_16, C2_16, C3_16}, // LB8 + {0, C9_9, C8_9, C7_9}, // LB9 + {0, C9_10, C8_10, C7_10}, // LB10 + {0, C9_11, C8_11, C7_11}, // LB11 + {0, C9_12, C8_12, C7_12}, // LB12 + {0, C9_13, C8_13, C7_13}, // LB13 + {0, C9_14, C8_14, C7_14}, // LB14 + {0, C9_15, C8_15, C6_14}, // LB15 + {0, C9_16, C7_15, C6_15}, // LB16 + {0, C8_16, C7_16, C6_16}, // LB17 + + {1, C2_1, C3_1, C4_1}, // LC0 + {1, C1_1, C3_2, C4_2}, // LC1 + {1, C1_2, C2_2, C4_3}, // LC2 + {1, C1_3, C2_3, C3_3}, // LC3 + {1, C1_4, C2_4, C3_4}, // LC4 + {1, C1_5, C2_5, C3_5}, // LC5 + {1, C1_6, C2_6, C3_6}, // LC6 + {1, C1_7, C2_7, C3_7}, // LC7 + {1, C1_8, C2_8, C3_8}, // LC8 + {1, C9_1, C8_1, C7_1}, // LC9 + {1, C9_2, C8_2, C7_2}, // LC10 + {1, C9_3, C8_3, C7_3}, // LC11 + {1, C9_4, C8_4, C7_4}, // LC12 + {1, C9_5, C8_5, C7_5}, // LC13 + {1, C9_6, C8_6, C7_6}, // LC14 + {1, C9_7, C8_7, C6_6}, // LC15 + {1, C9_8, C7_7, C6_7}, // LC16 + {1, C8_8, C7_8, C6_8}, // LC17 + + {1, C2_9, C3_9, C4_9}, // LD0 + {1, C1_9, C3_10, C4_10}, // LD1 + {1, C1_10, C2_10, C4_11}, // LD2 + {1, C1_11, C2_11, C3_11}, // LD3 + {1, C1_12, C2_12, C3_12}, // LD4 + {1, C1_13, C2_13, C3_13}, // LD5 + {1, C1_14, C2_14, C3_14}, // LD6 + {1, C1_15, C2_15, C3_15}, // LD7 + {1, C1_16, C2_16, C3_16}, // LD8 + {1, C9_9, C8_9, C7_9}, // LD9 + {1, C9_10, C8_10, C7_10}, // LD10 + {1, C9_11, C8_11, C7_11}, // LD11 + {1, C9_12, C8_12, C7_12}, // LD12 + {1, C9_13, C8_13, C7_13}, // LD13 + {1, C9_14, C8_14, C7_14}, // LD14 + {1, C9_15, C8_15, C6_14}, // LD15 + {1, C9_16, C7_15, C6_15}, // LD16 + {1, C8_16, C7_16, C6_16}, // LD17 + + {2, C2_1, C3_1, C4_1}, // LE0 + {2, C1_1, C3_2, C4_2}, // LE1 + {2, C1_2, C2_2, C4_3}, // LE2 + {2, C1_3, C2_3, C3_3}, // LE3 + {2, C1_4, C2_4, C3_4}, // LE4 + {2, C1_5, C2_5, C3_5}, // LE5 + {2, C1_6, C2_6, C3_6}, // LE6 + {2, C1_7, C2_7, C3_7}, // LE7 + {2, C1_8, C2_8, C3_8}, // LE8 + {2, C9_1, C8_1, C7_1}, // LE9 + {2, C9_2, C8_2, C7_2}, // LE10 + {2, C9_3, C8_3, C7_3}, // LE11 + {2, C9_4, C8_4, C7_4}, // LE12 + {2, C9_5, C8_5, C7_5}, // LE13 + {2, C9_6, C8_6, C7_6}, // LE14 + {2, C9_7, C8_7, C6_6}, // LE15 + {2, C9_8, C7_7, C6_7}, // LE16 + {2, C8_8, C7_8, C6_8}, // LE17 + + {2, C2_9, C3_9, C4_9}, // LF0 + {2, C1_9, C3_10, C4_10}, // LF1 + {2, C1_10, C2_10, C4_11}, // LF2 + {2, C1_11, C2_11, C3_11}, // LF3 + {2, C1_12, C2_12, C3_12}, // LF4 + {2, C1_13, C2_13, C3_13}, // LF5 + {2, C1_14, C2_14, C3_14}, // LF6 + {2, C1_15, C2_15, C3_15}, // LF7 + {2, C1_16, C2_16, C3_16}, // LF8 + {2, C9_9, C8_9, C7_9}, // LF9 + {2, C9_10, C8_10, C7_10}, // LF10 + {2, C9_11, C8_11, C7_11}, // LF11 + {2, C9_12, C8_12, C7_12}, // LF12 + {2, C9_13, C8_13, C7_13}, // LF13 + {2, C9_14, C8_14, C7_14}, // LF14 + {2, C9_15, C8_15, C6_14}, // LF15 + {2, C9_16, C7_15, C6_15}, // LF16 + {2, C8_16, C7_16, C6_16}, // LF17 +}; +#endif diff --git a/keyboards/wilba_tech/wt60_b/wt60_b.c b/keyboards/wilba_tech/wt60_b/wt60_b.c new file mode 100644 index 0000000000..f45b6c9612 --- /dev/null +++ b/keyboards/wilba_tech/wt60_b/wt60_b.c @@ -0,0 +1,94 @@ +// Copyright 2022 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "wt60_b.h" + +#ifdef RGB_BACKLIGHT_WT60_B +# include "drivers/led/issi/is31fl3731.h" +#endif + +#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_WT60_B) +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C2_1, C3_1, C4_1}, // LA0 + {0, C1_1, C3_2, C4_2}, // LA1 + {0, C1_2, C2_2, C4_3}, // LA2 + {0, C1_3, C2_3, C3_3}, // LA3 + {0, C1_4, C2_4, C3_4}, // LA4 + {0, C1_5, C2_5, C3_5}, // LA5 + {0, C1_6, C2_6, C3_6}, // LA6 + {0, C1_7, C2_7, C3_7}, // LA7 + {0, C1_8, C2_8, C3_8}, // LA8 + {0, C9_1, C8_1, C7_1}, // LA9 + {0, C9_2, C8_2, C7_2}, // LA10 + {0, C9_3, C8_3, C7_3}, // LA11 + {0, C9_4, C8_4, C7_4}, // LA12 + {0, C9_5, C8_5, C7_5}, // LA13 + {0, C9_6, C8_6, C7_6}, // LA14 + {0, C9_7, C8_7, C6_6}, // LA15 + {0, C9_8, C7_7, C6_7}, // LA16 + {0, C8_8, C7_8, C6_8}, // LA17 + + {0, C2_9, C3_9, C4_9}, // LB0 + {0, C1_9, C3_10, C4_10}, // LB1 + {0, C1_10, C2_10, C4_11}, // LB2 + {0, C1_11, C2_11, C3_11}, // LB3 + {0, C1_12, C2_12, C3_12}, // LB4 + {0, C1_13, C2_13, C3_13}, // LB5 + {0, C1_14, C2_14, C3_14}, // LB6 + {0, C1_15, C2_15, C3_15}, // LB7 + {0, C1_16, C2_16, C3_16}, // LB8 + {0, C9_9, C8_9, C7_9}, // LB9 + {0, C9_10, C8_10, C7_10}, // LB10 + {0, C9_11, C8_11, C7_11}, // LB11 + {0, C9_12, C8_12, C7_12}, // LB12 + {0, C9_13, C8_13, C7_13}, // LB13 + {0, C9_14, C8_14, C7_14}, // LB14 + {0, C9_15, C8_15, C6_14}, // LB15 + {0, C9_16, C7_15, C6_15}, // LB16 + {0, C8_16, C7_16, C6_16}, // LB17 + + {1, C2_1, C3_1, C4_1}, // LC0 + {1, C1_1, C3_2, C4_2}, // LC1 + {1, C1_2, C2_2, C4_3}, // LC2 + {1, C1_3, C2_3, C3_3}, // LC3 + {1, C1_4, C2_4, C3_4}, // LC4 + {1, C1_5, C2_5, C3_5}, // LC5 + {1, C1_6, C2_6, C3_6}, // LC6 + {1, C1_7, C2_7, C3_7}, // LC7 + {1, C1_8, C2_8, C3_8}, // LC8 + {1, C9_1, C8_1, C7_1}, // LC9 + {1, C9_2, C8_2, C7_2}, // LC10 + {1, C9_3, C8_3, C7_3}, // LC11 + {1, C9_4, C8_4, C7_4}, // LC12 + {1, C9_5, C8_5, C7_5}, // LC13 + {1, C9_6, C8_6, C7_6}, // LC14 + {1, C9_7, C8_7, C6_6}, // LC15 + {1, C9_8, C7_7, C6_7}, // LC16 + {1, C8_8, C7_8, C6_8}, // LC17 + + {1, C2_9, C3_9, C4_9}, // LD0 + {1, C1_9, C3_10, C4_10}, // LD1 + {1, C1_10, C2_10, C4_11}, // LD2 + {1, C1_11, C2_11, C3_11}, // LD3 + {1, C1_12, C2_12, C3_12}, // LD4 + {1, C1_13, C2_13, C3_13}, // LD5 + {1, C1_14, C2_14, C3_14}, // LD6 + {1, C1_15, C2_15, C3_15}, // LD7 + {1, C1_16, C2_16, C3_16}, // LD8 + {1, C9_9, C8_9, C7_9}, // LD9 + {1, C9_10, C8_10, C7_10}, // LD10 + {1, C9_11, C8_11, C7_11}, // LD11 + {1, C9_12, C8_12, C7_12}, // LD12 + {1, C9_13, C8_13, C7_13}, // LD13 + {1, C9_14, C8_14, C7_14}, // LD14 + {1, C9_15, C8_15, C6_14}, // LD15 + {1, C9_16, C7_15, C6_15}, // LD16 + {1, C8_16, C7_16, C6_16}, // LD17 +}; +#endif diff --git a/keyboards/wilba_tech/wt60_bx/wt60_bx.c b/keyboards/wilba_tech/wt60_bx/wt60_bx.c new file mode 100644 index 0000000000..29e789a2fc --- /dev/null +++ b/keyboards/wilba_tech/wt60_bx/wt60_bx.c @@ -0,0 +1,94 @@ +// Copyright 2022 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "wt60_bx.h" + +#ifdef RGB_BACKLIGHT_WT60_BX +# include "drivers/led/issi/is31fl3731.h" +#endif + +#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_WT60_BX) +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C2_1, C3_1, C4_1}, // LA0 + {0, C1_1, C3_2, C4_2}, // LA1 + {0, C1_2, C2_2, C4_3}, // LA2 + {0, C1_3, C2_3, C3_3}, // LA3 + {0, C1_4, C2_4, C3_4}, // LA4 + {0, C1_5, C2_5, C3_5}, // LA5 + {0, C1_6, C2_6, C3_6}, // LA6 + {0, C1_7, C2_7, C3_7}, // LA7 + {0, C1_8, C2_8, C3_8}, // LA8 + {0, C9_1, C8_1, C7_1}, // LA9 + {0, C9_2, C8_2, C7_2}, // LA10 + {0, C9_3, C8_3, C7_3}, // LA11 + {0, C9_4, C8_4, C7_4}, // LA12 + {0, C9_5, C8_5, C7_5}, // LA13 + {0, C9_6, C8_6, C7_6}, // LA14 + {0, C9_7, C8_7, C6_6}, // LA15 + {0, C9_8, C7_7, C6_7}, // LA16 + {0, C8_8, C7_8, C6_8}, // LA17 + + {0, C2_9, C3_9, C4_9}, // LB0 + {0, C1_9, C3_10, C4_10}, // LB1 + {0, C1_10, C2_10, C4_11}, // LB2 + {0, C1_11, C2_11, C3_11}, // LB3 + {0, C1_12, C2_12, C3_12}, // LB4 + {0, C1_13, C2_13, C3_13}, // LB5 + {0, C1_14, C2_14, C3_14}, // LB6 + {0, C1_15, C2_15, C3_15}, // LB7 + {0, C1_16, C2_16, C3_16}, // LB8 + {0, C9_9, C8_9, C7_9}, // LB9 + {0, C9_10, C8_10, C7_10}, // LB10 + {0, C9_11, C8_11, C7_11}, // LB11 + {0, C9_12, C8_12, C7_12}, // LB12 + {0, C9_13, C8_13, C7_13}, // LB13 + {0, C9_14, C8_14, C7_14}, // LB14 + {0, C9_15, C8_15, C6_14}, // LB15 + {0, C9_16, C7_15, C6_15}, // LB16 + {0, C8_16, C7_16, C6_16}, // LB17 + + {1, C2_1, C3_1, C4_1}, // LC0 + {1, C1_1, C3_2, C4_2}, // LC1 + {1, C1_2, C2_2, C4_3}, // LC2 + {1, C1_3, C2_3, C3_3}, // LC3 + {1, C1_4, C2_4, C3_4}, // LC4 + {1, C1_5, C2_5, C3_5}, // LC5 + {1, C1_6, C2_6, C3_6}, // LC6 + {1, C1_7, C2_7, C3_7}, // LC7 + {1, C1_8, C2_8, C3_8}, // LC8 + {1, C9_1, C8_1, C7_1}, // LC9 + {1, C9_2, C8_2, C7_2}, // LC10 + {1, C9_3, C8_3, C7_3}, // LC11 + {1, C9_4, C8_4, C7_4}, // LC12 + {1, C9_5, C8_5, C7_5}, // LC13 + {1, C9_6, C8_6, C7_6}, // LC14 + {1, C9_7, C8_7, C6_6}, // LC15 + {1, C9_8, C7_7, C6_7}, // LC16 + {1, C8_8, C7_8, C6_8}, // LC17 + + {1, C2_9, C3_9, C4_9}, // LD0 + {1, C1_9, C3_10, C4_10}, // LD1 + {1, C1_10, C2_10, C4_11}, // LD2 + {1, C1_11, C2_11, C3_11}, // LD3 + {1, C1_12, C2_12, C3_12}, // LD4 + {1, C1_13, C2_13, C3_13}, // LD5 + {1, C1_14, C2_14, C3_14}, // LD6 + {1, C1_15, C2_15, C3_15}, // LD7 + {1, C1_16, C2_16, C3_16}, // LD8 + {1, C9_9, C8_9, C7_9}, // LD9 + {1, C9_10, C8_10, C7_10}, // LD10 + {1, C9_11, C8_11, C7_11}, // LD11 + {1, C9_12, C8_12, C7_12}, // LD12 + {1, C9_13, C8_13, C7_13}, // LD13 + {1, C9_14, C8_14, C7_14}, // LD14 + {1, C9_15, C8_15, C6_14}, // LD15 + {1, C9_16, C7_15, C6_15}, // LD16 + {1, C8_16, C7_16, C6_16}, // LD17 +}; +#endif diff --git a/keyboards/wilba_tech/wt60_c/wt60_c.c b/keyboards/wilba_tech/wt60_c/wt60_c.c new file mode 100644 index 0000000000..cac6b866b0 --- /dev/null +++ b/keyboards/wilba_tech/wt60_c/wt60_c.c @@ -0,0 +1,94 @@ +// Copyright 2022 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "wt60_c.h" + +#ifdef RGB_BACKLIGHT_WT60_BX +# include "drivers/led/issi/is31fl3731.h" +#endif + +#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_WT60_BX) +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C2_1, C3_1, C4_1}, // LA0 + {0, C1_1, C3_2, C4_2}, // LA1 + {0, C1_2, C2_2, C4_3}, // LA2 + {0, C1_3, C2_3, C3_3}, // LA3 + {0, C1_4, C2_4, C3_4}, // LA4 + {0, C1_5, C2_5, C3_5}, // LA5 + {0, C1_6, C2_6, C3_6}, // LA6 + {0, C1_7, C2_7, C3_7}, // LA7 + {0, C1_8, C2_8, C3_8}, // LA8 + {0, C9_1, C8_1, C7_1}, // LA9 + {0, C9_2, C8_2, C7_2}, // LA10 + {0, C9_3, C8_3, C7_3}, // LA11 + {0, C9_4, C8_4, C7_4}, // LA12 + {0, C9_5, C8_5, C7_5}, // LA13 + {0, C9_6, C8_6, C7_6}, // LA14 + {0, C9_7, C8_7, C6_6}, // LA15 + {0, C9_8, C7_7, C6_7}, // LA16 + {0, C8_8, C7_8, C6_8}, // LA17 + + {0, C2_9, C3_9, C4_9}, // LB0 + {0, C1_9, C3_10, C4_10}, // LB1 + {0, C1_10, C2_10, C4_11}, // LB2 + {0, C1_11, C2_11, C3_11}, // LB3 + {0, C1_12, C2_12, C3_12}, // LB4 + {0, C1_13, C2_13, C3_13}, // LB5 + {0, C1_14, C2_14, C3_14}, // LB6 + {0, C1_15, C2_15, C3_15}, // LB7 + {0, C1_16, C2_16, C3_16}, // LB8 + {0, C9_9, C8_9, C7_9}, // LB9 + {0, C9_10, C8_10, C7_10}, // LB10 + {0, C9_11, C8_11, C7_11}, // LB11 + {0, C9_12, C8_12, C7_12}, // LB12 + {0, C9_13, C8_13, C7_13}, // LB13 + {0, C9_14, C8_14, C7_14}, // LB14 + {0, C9_15, C8_15, C6_14}, // LB15 + {0, C9_16, C7_15, C6_15}, // LB16 + {0, C8_16, C7_16, C6_16}, // LB17 + + {1, C2_1, C3_1, C4_1}, // LC0 + {1, C1_1, C3_2, C4_2}, // LC1 + {1, C1_2, C2_2, C4_3}, // LC2 + {1, C1_3, C2_3, C3_3}, // LC3 + {1, C1_4, C2_4, C3_4}, // LC4 + {1, C1_5, C2_5, C3_5}, // LC5 + {1, C1_6, C2_6, C3_6}, // LC6 + {1, C1_7, C2_7, C3_7}, // LC7 + {1, C1_8, C2_8, C3_8}, // LC8 + {1, C9_1, C8_1, C7_1}, // LC9 + {1, C9_2, C8_2, C7_2}, // LC10 + {1, C9_3, C8_3, C7_3}, // LC11 + {1, C9_4, C8_4, C7_4}, // LC12 + {1, C9_5, C8_5, C7_5}, // LC13 + {1, C9_6, C8_6, C7_6}, // LC14 + {1, C9_7, C8_7, C6_6}, // LC15 + {1, C9_8, C7_7, C6_7}, // LC16 + {1, C8_8, C7_8, C6_8}, // LC17 + + {1, C2_9, C3_9, C4_9}, // LD0 + {1, C1_9, C3_10, C4_10}, // LD1 + {1, C1_10, C2_10, C4_11}, // LD2 + {1, C1_11, C2_11, C3_11}, // LD3 + {1, C1_12, C2_12, C3_12}, // LD4 + {1, C1_13, C2_13, C3_13}, // LD5 + {1, C1_14, C2_14, C3_14}, // LD6 + {1, C1_15, C2_15, C3_15}, // LD7 + {1, C1_16, C2_16, C3_16}, // LD8 + {1, C9_9, C8_9, C7_9}, // LD9 + {1, C9_10, C8_10, C7_10}, // LD10 + {1, C9_11, C8_11, C7_11}, // LD11 + {1, C9_12, C8_12, C7_12}, // LD12 + {1, C9_13, C8_13, C7_13}, // LD13 + {1, C9_14, C8_14, C7_14}, // LD14 + {1, C9_15, C8_15, C6_14}, // LD15 + {1, C9_16, C7_15, C6_15}, // LD16 + {1, C8_16, C7_16, C6_16}, // LD17 +}; +#endif diff --git a/keyboards/wilba_tech/wt_rgb_backlight.c b/keyboards/wilba_tech/wt_rgb_backlight.c index 8bd04c840f..72ddb34ee7 100644 --- a/keyboards/wilba_tech/wt_rgb_backlight.c +++ b/keyboards/wilba_tech/wt_rgb_backlight.c @@ -154,785 +154,6 @@ uint8_t g_key_hit[BACKLIGHT_LED_COUNT]; // Ticks since any key was last hit. uint32_t g_any_key_hit = 0; -#if defined(RGB_BACKLIGHT_HS60) -#define ISSI_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND - -const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { -/* Refer to IS31 manual for these locations - * driver - * | R location - * | | G location - * | | | B location - * | | | | */ - {0, B_1, A_1, C_1}, //LA1 - {0, E_1, D_1, F_1}, //LA2 - {0, H_1, G_1, I_1}, //LA3 - {0, K_1, J_1, L_1}, //LA4 - {0, B_2, A_2, C_2}, //LA5 - {0, E_2, D_2, F_2}, //LA6 - {0, H_2, G_2, I_2}, //LA7 - {0, K_2, J_2, L_2}, //LA8 - {0, B_3, A_3, C_3}, //LA9 - {0, E_3, D_3, F_3}, //LA10 - {0, H_3, G_3, I_3}, //LA11 - {0, K_3, J_3, L_3}, //LA12 - {0, B_4, A_4, C_4}, //LA13 - {0, E_4, D_4, F_4}, //LA14 - {0, H_4, G_4, I_4}, //LA15 - {0, K_4, J_4, L_4}, //LA16 - {0, B_5, A_5, C_5}, //LA17 - {0, E_5, D_5, F_5}, //LA18 - {0, H_5, G_5, I_5}, //LA19 - {0, K_5, J_5, L_5}, //LA20 - {0, B_6, A_6, C_6}, //LA21 - {0, E_6, D_6, F_6}, //LA22 - {0, H_6, G_6, I_6}, //LA23 - {0, K_6, J_6, L_6}, //LA24 - {0, B_7, A_7, C_7}, //LA25 - {0, E_7, D_7, F_7}, //LA26 - {0, H_7, G_7, I_7}, //LA27 - {0, K_7, J_7, L_7}, //LA28 - {0, B_8, A_8, C_8}, //LA29 - {0, E_8, D_8, F_8}, //LA30 - {0, H_8, G_8, I_8}, //LA31 - {0, K_8, J_8, L_8}, //LA32 - {0, B_9, A_9, C_9}, //LA33 - {0, E_9, D_9, F_9}, //LA34 - {0, H_9, G_9, I_9}, //LA35 - {0, K_9, J_9, L_9}, //LA36 - {0, B_10, A_10, C_10}, //LA37 - {0, E_10, D_10, F_10}, //LA38 - {0, H_10, G_10, I_10}, //LA39 - {0, K_10, J_10, L_10}, //LA40 - {0, B_11, A_11, C_11}, //LA41 - {0, E_11, D_11, F_11}, //LA42 - {0, H_11, G_11, I_11}, //LA43 - {0, K_11, J_11, L_11}, //LA44 - {0, B_12, A_12, C_12}, //LA45 - {0, E_12, D_12, F_12}, //LA46 - {0, H_12, G_12, I_12}, //LA47 - {0, K_12, J_12, L_12}, //LA48 - {0, B_13, A_13, C_13}, //LA49 - {0, E_13, D_13, F_13}, //LA50 - {0, H_13, G_13, I_13}, //LA51 - {0, K_13, J_13, L_13}, //LA52 - {0, B_14, A_14, C_14}, //LA53 - {0, E_14, D_14, F_14}, //LA54 - {0, H_14, G_14, I_14}, //LA55 - {0, K_14, J_14, L_14}, //LA56 - {0, B_15, A_15, C_15}, //LA57 - {0, E_15, D_15, F_15}, //LA58 - {0, H_15, G_15, I_15}, //LA59 - {0, K_15, J_15, L_15}, //LA60 - {0, B_16, A_16, C_16}, //LA61 - {0, E_16, D_16, F_16}, //LA62 - {0, H_16, G_16, I_16}, //LA63 - {0, K_16, J_16, L_16}, //LA64 -}; - -#elif defined(RGB_BACKLIGHT_NK65) || defined(RGB_BACKLIGHT_NEBULA68) || defined(RGB_BACKLIGHT_NK87) || defined(RGB_BACKLIGHT_KW_MEGA) -#define ISSI_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND -#define ISSI_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_SDA - -const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { -/* Refer to IS31 manual for these locations - * driver - * | R location - * | | G location - * | | | B location - * | | | | */ - {0, B_1, A_1, C_1}, //LA1 - {0, E_1, D_1, F_1}, //LA2 - {0, H_1, G_1, I_1}, //LA3 - {0, K_1, J_1, L_1}, //LA4 - {0, B_2, A_2, C_2}, //LA5 - {0, E_2, D_2, F_2}, //LA6 - {0, H_2, G_2, I_2}, //LA7 - {0, K_2, J_2, L_2}, //LA8 - {0, B_3, A_3, C_3}, //LA9 - {0, E_3, D_3, F_3}, //LA10 - {0, H_3, G_3, I_3}, //LA11 - {0, K_3, J_3, L_3}, //LA12 - {0, B_4, A_4, C_4}, //LA13 - {0, E_4, D_4, F_4}, //LA14 - {0, H_4, G_4, I_4}, //LA15 - {0, K_4, J_4, L_4}, //LA16 - {0, B_5, A_5, C_5}, //LA17 - {0, E_5, D_5, F_5}, //LA18 - {0, H_5, G_5, I_5}, //LA19 - {0, K_5, J_5, L_5}, //LA20 - {0, B_6, A_6, C_6}, //LA21 - {0, E_6, D_6, F_6}, //LA22 - {0, H_6, G_6, I_6}, //LA23 - {0, K_6, J_6, L_6}, //LA24 - {0, B_7, A_7, C_7}, //LA25 - {0, E_7, D_7, F_7}, //LA26 - {0, H_7, G_7, I_7}, //LA27 - {0, K_7, J_7, L_7}, //LA28 - {0, B_8, A_8, C_8}, //LA29 - {0, E_8, D_8, F_8}, //LA30 - {0, H_8, G_8, I_8}, //LA31 - {0, K_8, J_8, L_8}, //LA32 - {0, B_9, A_9, C_9}, //LA33 - {0, E_9, D_9, F_9}, //LA34 - {0, H_9, G_9, I_9}, //LA35 - {0, K_9, J_9, L_9}, //LA36 - {0, B_10, A_10, C_10}, //LA37 - {0, E_10, D_10, F_10}, //LA38 - {0, H_10, G_10, I_10}, //LA39 - {0, K_10, J_10, L_10}, //LA40 - {0, B_11, A_11, C_11}, //LA41 - {0, E_11, D_11, F_11}, //LA42 - {0, H_11, G_11, I_11}, //LA43 - {0, K_11, J_11, L_11}, //LA44 - {0, B_12, A_12, C_12}, //LA45 - {0, E_12, D_12, F_12}, //LA46 - {0, H_12, G_12, I_12}, //LA47 - {0, K_12, J_12, L_12}, //LA48 - {0, B_13, A_13, C_13}, //LA49 - {0, E_13, D_13, F_13}, //LA50 - {0, H_13, G_13, I_13}, //LA51 - {0, K_13, J_13, L_13}, //LA52 - {0, B_14, A_14, C_14}, //LA53 - {0, E_14, D_14, F_14}, //LA54 - {0, H_14, G_14, I_14}, //LA55 - {0, K_14, J_14, L_14}, //LA56 - {0, B_15, A_15, C_15}, //LA57 - {0, E_15, D_15, F_15}, //LA58 - {0, H_15, G_15, I_15}, //LA59 - {0, K_15, J_15, L_15}, //LA60 - {0, B_16, A_16, C_16}, //LA61 - {0, E_16, D_16, F_16}, //LA62 - {0, H_16, G_16, I_16}, //LA63 - {0, K_16, J_16, L_16}, //LA64 - - {1, B_1, A_1, C_1}, //LB1 - {1, E_1, D_1, F_1}, //LB2 - {1, H_1, G_1, I_1}, //LB3 - {1, K_1, J_1, L_1}, //LB4 - {1, B_2, A_2, C_2}, //LB5 - {1, E_2, D_2, F_2}, //LB6 - {1, H_2, G_2, I_2}, //LB7 - {1, K_2, J_2, L_2}, //LB8 - {1, B_3, A_3, C_3}, //LB9 - {1, E_3, D_3, F_3}, //LB10 - {1, H_3, G_3, I_3}, //LB11 - {1, K_3, J_3, L_3}, //LB12 - {1, B_4, A_4, C_4}, //LB13 - {1, E_4, D_4, F_4}, //LB14 - {1, H_4, G_4, I_4}, //LB15 - {1, K_4, J_4, L_4}, //LB16 - {1, B_5, A_5, C_5}, //LB17 - {1, E_5, D_5, F_5}, //LB18 - {1, H_5, G_5, I_5}, //LB19 - {1, K_5, J_5, L_5}, //LB20 - {1, B_6, A_6, C_6}, //LB21 - {1, E_6, D_6, F_6}, //LB22 - {1, H_6, G_6, I_6}, //LB23 - {1, K_6, J_6, L_6}, //LB24 - {1, B_7, A_7, C_7}, //LB25 - {1, E_7, D_7, F_7}, //LB26 - {1, H_7, G_7, I_7}, //LB27 - {1, K_7, J_7, L_7}, //LB28 - {1, B_8, A_8, C_8}, //LB29 - {1, E_8, D_8, F_8}, //LB30 - {1, H_8, G_8, I_8}, //LB31 - {1, K_8, J_8, L_8}, //LB32 - {1, B_9, A_9, C_9}, //LB33 - {1, E_9, D_9, F_9}, //LB34 - {1, H_9, G_9, I_9}, //LB35 - {1, K_9, J_9, L_9}, //LB36 - {1, B_10, A_10, C_10}, //LB37 - {1, E_10, D_10, F_10}, //LB38 - {1, H_10, G_10, I_10}, //LB39 - {1, K_10, J_10, L_10}, //LB40 - {1, B_11, A_11, C_11}, //LB41 - {1, E_11, D_11, F_11}, //LB42 - {1, H_11, G_11, I_11}, //LB43 - {1, K_11, J_11, L_11}, //LB44 - {1, B_12, A_12, C_12}, //LB45 - {1, E_12, D_12, F_12}, //LB46 - {1, H_12, G_12, I_12}, //LB47 - {1, K_12, J_12, L_12}, //LB48 - {1, B_13, A_13, C_13}, //LB49 - {1, E_13, D_13, F_13}, //LB50 - {1, H_13, G_13, I_13}, //LB51 - {1, K_13, J_13, L_13}, //LB52 - {1, B_14, A_14, C_14}, //LB53 - {1, E_14, D_14, F_14}, //LB54 - {1, H_14, G_14, I_14}, //LB55 - {1, K_14, J_14, L_14}, //LB56 - {1, B_15, A_15, C_15}, //LB57 - {1, E_15, D_15, F_15}, //LB58 - {1, H_15, G_15, I_15}, //LB59 - {1, K_15, J_15, L_15}, //LB60 - {1, B_16, A_16, C_16}, //LB61 - {1, E_16, D_16, F_16}, //LB62 - {1, H_16, G_16, I_16}, //LB63 - {1, K_16, J_16, L_16}, //LB64 -}; - -#elif defined(RGB_BACKLIGHT_NEBULA12) -#define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND - -const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { -/* Refer to IS31 manual for these locations - * driver - * | R location - * | | G location - * | | | B location - * | | | | */ - {0, C1_1, C3_2, C4_2}, //A1 - {0, C1_2, C2_2, C4_3}, //A2 - {0, C1_3, C2_3, C3_3}, //A3 - {0, C1_4, C2_4, C3_4}, //A4 - {0, C1_5, C2_5, C3_5}, //A5 - {0, C1_6, C2_6, C3_6}, //A6 - {0, C1_7, C2_7, C3_7}, //A7 - {0, C1_8, C2_8, C3_8}, //A8 - {0, C9_1, C8_1, C7_1}, //A9 - {0, C9_2, C8_2, C7_2}, //A10 - {0, C9_3, C8_3, C7_3}, //A11 - {0, C9_4, C8_4, C7_4}, //A12 - {0, C9_5, C8_5, C7_5}, //A13 - {0, C9_6, C8_6, C7_6}, //A14 - {0, C9_7, C8_7, C6_6}, //A15 - {0, C9_8, C7_7, C6_7}, //A16 -}; - -#elif defined(RGB_BACKLIGHT_U80_A) -// U80-A prototype uses 3 ISSI drivers -#define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define ISSI_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA -#define ISSI_ADDR_3 IS31FL3731_I2C_ADDRESS_SCL - -const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { -/* Refer to IS31 manual for these locations - * driver - * | R location - * | | G location - * | | | B location - * | | | | */ - {0, C2_1, C3_1, C4_1}, // LA0 - {0, C1_1, C3_2, C4_2}, // LA1 - {0, C1_2, C2_2, C4_3}, // LA2 - {0, C1_3, C2_3, C3_3}, // LA3 - {0, C1_4, C2_4, C3_4}, // LA4 - {0, C1_5, C2_5, C3_5}, // LA5 - {0, C1_6, C2_6, C3_6}, // LA6 - {0, C1_7, C2_7, C3_7}, // LA7 - {0, C1_8, C2_8, C3_8}, // LA8 - {0, C9_1, C8_1, C7_1}, // LA9 - {0, C9_2, C8_2, C7_2}, // LA10 - {0, C9_3, C8_3, C7_3}, // LA11 - {0, C9_4, C8_4, C7_4}, // LA12 - {0, C9_5, C8_5, C7_5}, // LA13 - {0, C9_6, C8_6, C7_6}, // LA14 - {0, C9_7, C8_7, C6_6}, // LA15 - {0, C9_8, C7_7, C6_7}, // LA16 - {0, C8_8, C7_8, C6_8}, // LA17 - - {0, C2_9, C3_9, C4_9}, // LB0 - {0, C1_9, C3_10, C4_10}, // LB1 - {0, C1_10, C2_10, C4_11}, // LB2 - {0, C1_11, C2_11, C3_11}, // LB3 - {0, C1_12, C2_12, C3_12}, // LB4 - {0, C1_13, C2_13, C3_13}, // LB5 - {0, C1_14, C2_14, C3_14}, // LB6 - {0, C1_15, C2_15, C3_15}, // LB7 - {0, C1_16, C2_16, C3_16}, // LB8 - {0, C9_9, C8_9, C7_9}, // LB9 - {0, C9_10, C8_10, C7_10}, // LB10 - {0, C9_11, C8_11, C7_11}, // LB11 - {0, C9_12, C8_12, C7_12}, // LB12 - {0, C9_13, C8_13, C7_13}, // LB13 - {0, C9_14, C8_14, C7_14}, // LB14 - {0, C9_15, C8_15, C6_14}, // LB15 - {0, C9_16, C7_15, C6_15}, // LB16 - {0, C8_16, C7_16, C6_16}, // LB17 - - {1, C2_1, C3_1, C4_1}, // LC0 - {1, C1_1, C3_2, C4_2}, // LC1 - {1, C1_2, C2_2, C4_3}, // LC2 - {1, C1_3, C2_3, C3_3}, // LC3 - {1, C1_4, C2_4, C3_4}, // LC4 - {1, C1_5, C2_5, C3_5}, // LC5 - {1, C1_6, C2_6, C3_6}, // LC6 - {1, C1_7, C2_7, C3_7}, // LC7 - {1, C1_8, C2_8, C3_8}, // LC8 - {1, C9_1, C8_1, C7_1}, // LC9 - {1, C9_2, C8_2, C7_2}, // LC10 - {1, C9_3, C8_3, C7_3}, // LC11 - {1, C9_4, C8_4, C7_4}, // LC12 - {1, C9_5, C8_5, C7_5}, // LC13 - {1, C9_6, C8_6, C7_6}, // LC14 - {1, C9_7, C8_7, C6_6}, // LC15 - {1, C9_8, C7_7, C6_7}, // LC16 - {1, C8_8, C7_8, C6_8}, // LC17 - - {1, C2_9, C3_9, C4_9}, // LD0 - {1, C1_9, C3_10, C4_10}, // LD1 - {1, C1_10, C2_10, C4_11}, // LD2 - {1, C1_11, C2_11, C3_11}, // LD3 - {1, C1_12, C2_12, C3_12}, // LD4 - {1, C1_13, C2_13, C3_13}, // LD5 - {1, C1_14, C2_14, C3_14}, // LD6 - {1, C1_15, C2_15, C3_15}, // LD7 - {1, C1_16, C2_16, C3_16}, // LD8 - {1, C9_9, C8_9, C7_9}, // LD9 - {1, C9_10, C8_10, C7_10}, // LD10 - {1, C9_11, C8_11, C7_11}, // LD11 - {1, C9_12, C8_12, C7_12}, // LD12 - {1, C9_13, C8_13, C7_13}, // LD13 - {1, C9_14, C8_14, C7_14}, // LD14 - {1, C9_15, C8_15, C6_14}, // LD15 - {1, C9_16, C7_15, C6_15}, // LD16 - {1, C8_16, C7_16, C6_16}, // LD17 - - {2, C2_1, C3_1, C4_1}, // LE0 - {2, C1_1, C3_2, C4_2}, // LE1 - {2, C1_2, C2_2, C4_3}, // LE2 - {2, C1_3, C2_3, C3_3}, // LE3 - {2, C1_4, C2_4, C3_4}, // LE4 - {2, C1_5, C2_5, C3_5}, // LE5 - {2, C1_6, C2_6, C3_6}, // LE6 - {2, C1_7, C2_7, C3_7}, // LE7 - {2, C1_8, C2_8, C3_8}, // LE8 - {2, C9_1, C8_1, C7_1}, // LE9 - {2, C9_2, C8_2, C7_2}, // LE10 - {2, C9_3, C8_3, C7_3}, // LE11 - {2, C9_4, C8_4, C7_4}, // LE12 - {2, C9_5, C8_5, C7_5}, // LE13 - {2, C9_6, C8_6, C7_6}, // LE14 - {2, C9_7, C8_7, C6_6}, // LE15 - {2, C9_8, C7_7, C6_7}, // LE16 - {2, C8_8, C7_8, C6_8}, // LE17 - - {2, C2_9, C3_9, C4_9}, // LF0 - {2, C1_9, C3_10, C4_10}, // LF1 - {2, C1_10, C2_10, C4_11}, // LF2 - {2, C1_11, C2_11, C3_11}, // LF3 - {2, C1_12, C2_12, C3_12}, // LF4 - {2, C1_13, C2_13, C3_13}, // LF5 - {2, C1_14, C2_14, C3_14}, // LF6 - {2, C1_15, C2_15, C3_15}, // LF7 - {2, C1_16, C2_16, C3_16}, // LF8 - {2, C9_9, C8_9, C7_9}, // LF9 - {2, C9_10, C8_10, C7_10}, // LF10 - {2, C9_11, C8_11, C7_11}, // LF11 - {2, C9_12, C8_12, C7_12}, // LF12 - {2, C9_13, C8_13, C7_13}, // LF13 - {2, C9_14, C8_14, C7_14}, // LF14 - {2, C9_15, C8_15, C6_14}, // LF15 - {2, C9_16, C7_15, C6_15}, // LF16 - {2, C8_16, C7_16, C6_16}, // LF17 -}; -#elif defined(RGB_BACKLIGHT_DAWN60) -#define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define ISSI_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA - -const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { -/* Refer to IS31 manual for these locations - * driver - * | R location - * | | G location - * | | | B location - * | | | | */ - {0, C1_1, C3_2, C4_2}, //A1 - {0, C1_2, C2_2, C4_3}, //A2 - {0, C1_3, C2_3, C3_3}, //A3 - {0, C1_4, C2_4, C3_4}, //A4 - {0, C1_5, C2_5, C3_5}, //A5 - {0, C1_6, C2_6, C3_6}, //A6 - {0, C1_7, C2_7, C3_7}, //A7 - {0, C1_8, C2_8, C3_8}, //A8 - {0, C9_1, C8_1, C7_1}, //A9 - {0, C9_2, C8_2, C7_2}, //A10 - {0, C9_3, C8_3, C7_3}, //A11 - {0, C9_4, C8_4, C7_4}, //A12 - {0, C9_5, C8_5, C7_5}, //A13 - {0, C9_6, C8_6, C7_6}, //A14 - {0, C9_7, C8_7, C6_6}, //A15 - {0, C9_8, C7_7, C6_7}, //A16 - - {0, C1_9, C3_10, C4_10}, //B1 - {0, C1_10, C2_10, C4_11}, //B2 - {0, C1_11, C2_11, C3_11}, //B3 - {0, C1_12, C2_12, C3_12}, //B4 - {0, C1_13, C2_13, C3_13}, //B5 - {0, C1_14, C2_14, C3_14}, //B6 - {0, C1_15, C2_15, C3_15}, //B7 - {0, C1_16, C2_16, C3_16}, //B8 - {0, C9_9, C8_9, C7_9}, //B9 - {0, C9_10, C8_10, C7_10}, //B10 - {0, C9_11, C8_11, C7_11}, //B11 - {0, C9_12, C8_12, C7_12}, //B12 - {0, C9_13, C8_13, C7_13}, //B13 - {0, C9_14, C8_14, C7_14}, //B14 - {0, C9_15, C8_15, C6_14}, //B15 - {0, C9_16, C7_15, C6_15}, //B16 - - {1, C1_1, C3_2, C4_2}, //C1 - {1, C1_2, C2_2, C4_3}, //C2 - {1, C1_3, C2_3, C3_3}, //C3 - {1, C1_4, C2_4, C3_4}, //C4 - {1, C1_5, C2_5, C3_5}, //C5 - {1, C1_6, C2_6, C3_6}, //C6 - {1, C1_7, C2_7, C3_7}, //C7 - {1, C1_8, C2_8, C3_8}, //C8 - {1, C9_1, C8_1, C7_1}, //C9 - {1, C9_2, C8_2, C7_2}, //C10 - {1, C9_3, C8_3, C7_3}, //C11 - {1, C9_4, C8_4, C7_4}, //C12 - {1, C9_5, C8_5, C7_5}, //C13 - {1, C9_6, C8_6, C7_6}, //C14 - {1, C9_7, C8_7, C6_6}, //C15 - {1, C9_8, C7_7, C6_7}, //C16 - - {1, C1_9, C3_10, C4_10}, //D1 - {1, C1_10, C2_10, C4_11}, //D2 - {1, C1_11, C2_11, C3_11}, //D3 - {1, C1_12, C2_12, C3_12}, //D4 - {1, C1_13, C2_13, C3_13}, //D5 - {1, C1_14, C2_14, C3_14}, //D6 - {1, C1_15, C2_15, C3_15}, //D7 - {1, C1_16, C2_16, C3_16}, //D8 - {1, C9_9, C8_9, C7_9}, //D9 - {1, C9_10, C8_10, C7_10}, //D10 - {1, C9_11, C8_11, C7_11}, //D11 - {1, C9_12, C8_12, C7_12}, //D12 - {1, C9_13, C8_13, C7_13}, //D13 - {1, C9_14, C8_14, C7_14}, //D14 - {1, C9_15, C8_15, C6_14}, //D15 - {1, C9_16, C7_15, C6_15} //D16 -}; -#elif defined(RGB_BACKLIGHT_PORTICO) -#define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define ISSI_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC - -const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { -/* Refer to IS31 manual for these locations - * driver - * | R location - * | | G location - * | | | B location - * | | | | */ - { 0, C2_1, C3_1, C4_1 }, - { 0, C1_1, C3_2, C4_2 }, - { 0, C1_2, C2_2, C4_3 }, - { 0, C1_3, C2_3, C3_3 }, - { 0, C1_4, C2_4, C3_4 }, - { 0, C1_5, C2_5, C3_5 }, - { 0, C1_6, C2_6, C3_6 }, - { 0, C1_7, C2_7, C3_7 }, - { 0, C1_8, C2_8, C3_8 }, - { 1, C2_1, C3_1, C4_1 }, - { 1, C1_1, C3_2, C4_2 }, - { 1, C1_2, C2_2, C4_3 }, - { 1, C1_3, C2_3, C3_3 }, - { 1, C1_4, C2_4, C3_4 }, - { 1, C1_5, C2_5, C3_5 }, - - { 0, C9_1, C8_1, C7_1 }, - { 0, C9_2, C8_2, C7_2 }, - { 0, C9_3, C8_3, C7_3 }, - { 0, C9_4, C8_4, C7_4 }, - { 0, C9_5, C8_5, C7_5 }, - { 0, C9_6, C8_6, C7_6 }, - { 0, C9_7, C8_7, C6_6 }, - { 0, C9_8, C7_7, C6_7 }, - { 0, C8_8, C7_8, C6_8 }, - { 1, C9_1, C8_1, C7_1 }, - { 1, C9_2, C8_2, C7_2 }, - { 1, C9_3, C8_3, C7_3 }, - { 1, C9_4, C8_4, C7_4 }, - { 1, C9_5, C8_5, C7_5 }, - { 1, C9_6, C8_6, C7_6 }, - - { 0, C1_9, C3_10, C4_10 }, - { 0, C1_10, C2_10, C4_11 }, - { 0, C1_11, C2_11, C3_11 }, - { 0, C1_12, C2_12, C3_12 }, - { 0, C1_13, C2_13, C3_13 }, - { 0, C1_14, C2_14, C3_14 }, - { 0, C1_15, C2_15, C3_15 }, - { 0, C1_16, C2_16, C3_16 }, - { 1, C1_10, C2_10, C4_11 }, - { 1, C1_11, C2_11, C3_11 }, - { 1, C1_12, C2_12, C3_12 }, - { 1, C1_13, C2_13, C3_13 }, - { 1, C1_14, C2_14, C3_14 }, - { 1, C9_7, C8_7, C6_6 }, - - { 0, C2_9, C3_9, C4_9 }, - { 0, C9_12, C8_12, C7_12 }, - { 0, C9_13, C8_13, C7_13 }, - { 0, C9_14, C8_14, C7_14 }, - { 0, C9_15, C8_15, C6_14 }, - { 0, C9_16, C7_15, C6_15 }, - { 1, C2_9, C3_9, C4_9 }, - { 1, C1_9, C3_10, C4_10 }, - { 1, C9_9, C8_9, C7_9 }, - { 1, C9_10, C8_10, C7_10 }, - { 1, C9_11, C8_11, C7_11 }, - { 1, C9_14, C8_14, C7_14 }, - { 1, C1_15, C2_15, C3_15 }, - { 1, C1_16, C2_16, C3_16 }, - - { 0, C9_9, C8_9, C7_9 }, - { 0, C9_10, C8_10, C7_10 }, - { 0, C9_11, C8_11, C7_11 }, - { 0, C8_16, C7_16, C6_16 }, - { 1, C9_12, C8_12, C7_12 }, - { 1, C9_13, C8_13, C7_13 }, - { 1, C9_15, C8_15, C6_14 }, - { 1, C9_16, C7_15, C6_15 }, - { 1, C8_16, C7_16, C6_16 } -}; - -#elif defined(RGB_BACKLIGHT_PORTICO75) -#define ISSI_ADDR_1 IS31FL3741_I2C_ADDRESS_GND -#define ISSI_ADDR_2 - -const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { -/* Refer to IS31 manual for these locations - * driver - * | R location - * | | G location - * | | | B location - * | | | | */ - {0, CS18_SW1, CS17_SW1, CS16_SW1}, - {0, CS18_SW2, CS17_SW2, CS16_SW2}, - {0, CS18_SW3, CS17_SW3, CS16_SW3}, - {0, CS18_SW4, CS17_SW4, CS16_SW4}, - {0, CS18_SW5, CS17_SW5, CS16_SW5}, - {0, CS18_SW6, CS17_SW6, CS16_SW6}, - {0, CS18_SW7, CS17_SW7, CS16_SW7}, - {0, CS18_SW8, CS17_SW8, CS16_SW8}, - {0, CS18_SW9, CS17_SW9, CS16_SW9}, - - {0, CS21_SW1, CS20_SW1, CS19_SW1}, - {0, CS21_SW2, CS20_SW2, CS19_SW2}, - {0, CS21_SW3, CS20_SW3, CS19_SW3}, - {0, CS21_SW4, CS20_SW4, CS19_SW4}, - {0, CS21_SW5, CS20_SW5, CS19_SW5}, - {0, CS21_SW6, CS20_SW6, CS19_SW6}, //Encoder, NO_LED - - {0, CS15_SW1, CS14_SW1, CS13_SW1}, - {0, CS15_SW2, CS14_SW2, CS13_SW2}, - {0, CS15_SW3, CS14_SW3, CS13_SW3}, - {0, CS15_SW4, CS14_SW4, CS13_SW4}, - {0, CS15_SW5, CS14_SW5, CS13_SW5}, - {0, CS15_SW6, CS14_SW6, CS13_SW6}, - {0, CS15_SW7, CS14_SW7, CS13_SW7}, - {0, CS15_SW8, CS14_SW8, CS13_SW8}, - {0, CS15_SW9, CS14_SW9, CS13_SW9}, - - {0, CS24_SW1, CS23_SW1, CS22_SW1}, - {0, CS24_SW2, CS23_SW2, CS22_SW2}, - {0, CS24_SW3, CS23_SW3, CS22_SW3}, - {0, CS24_SW4, CS23_SW4, CS22_SW4}, - {0, CS24_SW5, CS23_SW5, CS22_SW5}, - {0, CS24_SW6, CS23_SW6, CS22_SW6}, - - {0, CS12_SW1, CS11_SW1, CS10_SW1}, - {0, CS12_SW2, CS11_SW2, CS10_SW2}, - {0, CS12_SW3, CS11_SW3, CS10_SW3}, - {0, CS12_SW4, CS11_SW4, CS10_SW4}, - {0, CS12_SW5, CS11_SW5, CS10_SW5}, - {0, CS12_SW6, CS11_SW6, CS10_SW6}, - {0, CS12_SW7, CS11_SW7, CS10_SW7}, - {0, CS12_SW8, CS11_SW8, CS10_SW8}, - {0, CS12_SW9, CS11_SW9, CS10_SW9}, - - {0, CS27_SW1, CS26_SW1, CS25_SW1}, - {0, CS27_SW2, CS26_SW2, CS25_SW2}, - {0, CS27_SW3, CS26_SW3, CS25_SW3}, - {0, CS27_SW4, CS26_SW4, CS25_SW4}, - {0, CS27_SW5, CS26_SW5, CS25_SW5}, - {0, CS27_SW6, CS26_SW6, CS25_SW6}, - - {0, CS9_SW1, CS8_SW1, CS7_SW1}, - {0, CS9_SW2, CS8_SW2, CS7_SW2}, - {0, CS9_SW3, CS8_SW3, CS7_SW3}, - {0, CS9_SW4, CS8_SW4, CS7_SW4}, - {0, CS9_SW5, CS8_SW5, CS7_SW5}, - {0, CS9_SW6, CS8_SW6, CS7_SW6}, - {0, CS9_SW7, CS8_SW7, CS7_SW7}, - {0, CS9_SW8, CS8_SW8, CS7_SW8}, - {0, CS9_SW9, CS8_SW9, CS7_SW9}, - - {0, CS30_SW1, CS29_SW1, CS28_SW1}, - {0, CS30_SW2, CS29_SW2, CS28_SW2}, - {0, CS30_SW3, CS29_SW3, CS28_SW3}, - {0, CS30_SW4, CS29_SW4, CS28_SW4}, - - {0, CS6_SW1, CS5_SW1, CS4_SW1}, - {0, CS6_SW2, CS5_SW2, CS4_SW2}, - {0, CS6_SW3, CS5_SW3, CS4_SW3}, - {0, CS6_SW4, CS5_SW4, CS4_SW4}, - {0, CS6_SW5, CS5_SW5, CS4_SW5}, - {0, CS6_SW6, CS5_SW6, CS4_SW6}, - {0, CS6_SW7, CS5_SW7, CS4_SW7}, - {0, CS6_SW8, CS5_SW8, CS4_SW8}, - {0, CS6_SW9, CS5_SW9, CS4_SW9}, - - {0, CS33_SW1, CS32_SW1, CS31_SW1}, - {0, CS33_SW2, CS32_SW2, CS31_SW2}, - {0, CS33_SW3, CS32_SW3, CS31_SW3}, - {0, CS33_SW4, CS32_SW4, CS31_SW4}, - - {0, CS3_SW1, CS2_SW1, CS1_SW1}, - {0, CS3_SW2, CS2_SW2, CS1_SW2}, - {0, CS3_SW3, CS2_SW3, CS1_SW3}, - {0, CS3_SW6, CS2_SW6, CS1_SW6}, - {0, CS3_SW8, CS2_SW8, CS1_SW8}, - {0, CS3_SW9, CS2_SW9, CS1_SW9}, - - {0, CS36_SW1, CS35_SW1, CS34_SW1}, - {0, CS36_SW2, CS35_SW2, CS34_SW2}, - {0, CS36_SW3, CS35_SW3, CS34_SW3}, - -/*UNDERGLOW*/ - {0, CS39_SW1, CS38_SW1, CS37_SW1}, - {0, CS39_SW2, CS38_SW2, CS37_SW2}, - {0, CS39_SW3, CS38_SW3, CS37_SW3}, - {0, CS39_SW4, CS38_SW4, CS37_SW4}, - {0, CS39_SW5, CS38_SW5, CS37_SW5}, - {0, CS39_SW6, CS38_SW6, CS37_SW6}, - {0, CS39_SW7, CS38_SW7, CS37_SW7}, - {0, CS39_SW8, CS38_SW8, CS37_SW8}, - {0, CS39_SW9, CS38_SW9, CS37_SW9}, - - {0, CS36_SW4, CS35_SW4, CS34_SW4}, - {0, CS36_SW5, CS35_SW5, CS34_SW5}, - {0, CS36_SW6, CS35_SW6, CS34_SW6}, - {0, CS36_SW7, CS35_SW7, CS34_SW7}, - {0, CS36_SW8, CS35_SW8, CS34_SW8}, - {0, CS36_SW9, CS35_SW9, CS34_SW9}, - - {0, CS33_SW5, CS32_SW5, CS31_SW5}, - {0, CS33_SW6, CS32_SW6, CS31_SW6}, - {0, CS33_SW7, CS32_SW7, CS31_SW7} -}; - -#elif defined(RGB_BACKLIGHT_M6_B) -const is31fl3218_led_t PROGMEM g_is31fl3218_leds[IS31FL3218_LED_COUNT] = { - {OUT1, OUT2, OUT3}, - {OUT4, OUT5, OUT6}, - {OUT7, OUT8, OUT9}, - {OUT10, OUT11, OUT12}, - {OUT13, OUT14, OUT15}, - {OUT16, OUT17, OUT18} -}; -#elif defined(RGB_BACKLIGHT_M10_C) -#define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define ISSI_ADDR_2 - -const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { - {0, C1_9, C3_10, C4_10}, // LB1 - {0, C1_10, C2_10, C4_11}, // LB2 - {0, C1_11, C2_11, C3_11}, // LB3 - {0, C1_12, C2_12, C3_12}, // LB4 - {0, C1_13, C2_13, C3_13}, // LB5 - {0, C1_14, C2_14, C3_14}, // LB6 - {0, C9_11, C8_11, C7_11}, // LB11 - {0, C9_12, C8_12, C7_12}, // LB12 - {0, C9_13, C8_13, C7_13}, // LB13 - {0, C9_14, C8_14, C7_14}, // LB14 - {0, C9_15, C8_15, C6_14}, // LB15 - {0, C9_16, C7_15, C6_15} // LB16 -}; -#else -#define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -#define ISSI_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA - -const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { -/* Refer to IS31 manual for these locations - * driver - * | R location - * | | G location - * | | | B location - * | | | | */ - {0, C2_1, C3_1, C4_1}, // LA0 - {0, C1_1, C3_2, C4_2}, // LA1 - {0, C1_2, C2_2, C4_3}, // LA2 - {0, C1_3, C2_3, C3_3}, // LA3 - {0, C1_4, C2_4, C3_4}, // LA4 - {0, C1_5, C2_5, C3_5}, // LA5 - {0, C1_6, C2_6, C3_6}, // LA6 - {0, C1_7, C2_7, C3_7}, // LA7 - {0, C1_8, C2_8, C3_8}, // LA8 - {0, C9_1, C8_1, C7_1}, // LA9 - {0, C9_2, C8_2, C7_2}, // LA10 - {0, C9_3, C8_3, C7_3}, // LA11 - {0, C9_4, C8_4, C7_4}, // LA12 - {0, C9_5, C8_5, C7_5}, // LA13 - {0, C9_6, C8_6, C7_6}, // LA14 - {0, C9_7, C8_7, C6_6}, // LA15 - {0, C9_8, C7_7, C6_7}, // LA16 - {0, C8_8, C7_8, C6_8}, // LA17 - - {0, C2_9, C3_9, C4_9}, // LB0 - {0, C1_9, C3_10, C4_10}, // LB1 - {0, C1_10, C2_10, C4_11}, // LB2 - {0, C1_11, C2_11, C3_11}, // LB3 - {0, C1_12, C2_12, C3_12}, // LB4 - {0, C1_13, C2_13, C3_13}, // LB5 - {0, C1_14, C2_14, C3_14}, // LB6 - {0, C1_15, C2_15, C3_15}, // LB7 - {0, C1_16, C2_16, C3_16}, // LB8 - {0, C9_9, C8_9, C7_9}, // LB9 - {0, C9_10, C8_10, C7_10}, // LB10 - {0, C9_11, C8_11, C7_11}, // LB11 - {0, C9_12, C8_12, C7_12}, // LB12 - {0, C9_13, C8_13, C7_13}, // LB13 - {0, C9_14, C8_14, C7_14}, // LB14 - {0, C9_15, C8_15, C6_14}, // LB15 - {0, C9_16, C7_15, C6_15}, // LB16 - {0, C8_16, C7_16, C6_16}, // LB17 - - {1, C2_1, C3_1, C4_1}, // LC0 - {1, C1_1, C3_2, C4_2}, // LC1 - {1, C1_2, C2_2, C4_3}, // LC2 - {1, C1_3, C2_3, C3_3}, // LC3 - {1, C1_4, C2_4, C3_4}, // LC4 - {1, C1_5, C2_5, C3_5}, // LC5 - {1, C1_6, C2_6, C3_6}, // LC6 - {1, C1_7, C2_7, C3_7}, // LC7 - {1, C1_8, C2_8, C3_8}, // LC8 - {1, C9_1, C8_1, C7_1}, // LC9 - {1, C9_2, C8_2, C7_2}, // LC10 - {1, C9_3, C8_3, C7_3}, // LC11 - {1, C9_4, C8_4, C7_4}, // LC12 - {1, C9_5, C8_5, C7_5}, // LC13 - {1, C9_6, C8_6, C7_6}, // LC14 - {1, C9_7, C8_7, C6_6}, // LC15 - {1, C9_8, C7_7, C6_7}, // LC16 - {1, C8_8, C7_8, C6_8}, // LC17 - - {1, C2_9, C3_9, C4_9}, // LD0 - {1, C1_9, C3_10, C4_10}, // LD1 - {1, C1_10, C2_10, C4_11}, // LD2 - {1, C1_11, C2_11, C3_11}, // LD3 - {1, C1_12, C2_12, C3_12}, // LD4 - {1, C1_13, C2_13, C3_13}, // LD5 - {1, C1_14, C2_14, C3_14}, // LD6 - {1, C1_15, C2_15, C3_15}, // LD7 - {1, C1_16, C2_16, C3_16}, // LD8 - {1, C9_9, C8_9, C7_9}, // LD9 - {1, C9_10, C8_10, C7_10}, // LD10 - {1, C9_11, C8_11, C7_11}, // LD11 - {1, C9_12, C8_12, C7_12}, // LD12 - {1, C9_13, C8_13, C7_13}, // LD13 - {1, C9_14, C8_14, C7_14}, // LD14 - {1, C9_15, C8_15, C6_14}, // LD15 - {1, C9_16, C7_15, C6_15}, // LD16 - {1, C8_16, C7_16, C6_16}, // LD17 -}; -#endif - - typedef struct Point { uint8_t x; uint8_t y; @@ -1759,34 +980,34 @@ void backlight_update_pwm_buffers(void) #if defined(RGB_BACKLIGHT_M6_B) is31fl3218_update_pwm_buffers(); #elif defined(RGB_BACKLIGHT_PORTICO75) - is31fl3741_update_pwm_buffers( ISSI_ADDR_1, 0 ); - is31fl3741_update_led_control_registers( ISSI_ADDR_1, 0 ); + is31fl3741_update_pwm_buffers( IS31FL3741_I2C_ADDRESS_1, 0 ); + is31fl3741_update_led_control_registers( IS31FL3741_I2C_ADDRESS_1, 0 ); #elif defined(RGB_BACKLIGHT_M10_C) - is31fl3731_update_pwm_buffers( ISSI_ADDR_1, 0 ); - is31fl3731_update_led_control_registers( ISSI_ADDR_1, 0 ); + is31fl3731_update_pwm_buffers( IS31FL3731_I2C_ADDRESS_1, 0 ); + is31fl3731_update_led_control_registers( IS31FL3731_I2C_ADDRESS_1, 0 ); #elif defined(RGB_BACKLIGHT_HS60) - is31fl3733_update_pwm_buffers( ISSI_ADDR_1, 0 ); - is31fl3733_update_led_control_registers( ISSI_ADDR_1, 0 ); + is31fl3733_update_pwm_buffers( IS31FL3733_I2C_ADDRESS_1, 0 ); + is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_1, 0 ); #elif defined(RGB_BACKLIGHT_NK65) || defined(RGB_BACKLIGHT_NEBULA68) || defined(RGB_BACKLIGHT_NK87) || defined(RGB_BACKLIGHT_KW_MEGA) - is31fl3733_update_pwm_buffers( ISSI_ADDR_1, 0 ); - is31fl3733_update_pwm_buffers( ISSI_ADDR_2, 1 ); - is31fl3733_update_led_control_registers( ISSI_ADDR_1, 0 ); - is31fl3733_update_led_control_registers( ISSI_ADDR_2, 1 ); + is31fl3733_update_pwm_buffers( IS31FL3733_I2C_ADDRESS_1, 0 ); + is31fl3733_update_pwm_buffers( IS31FL3733_I2C_ADDRESS_2, 1 ); + is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_1, 0 ); + is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_2, 1 ); #elif defined(RGB_BACKLIGHT_NEBULA12) - is31fl3731_update_pwm_buffers( ISSI_ADDR_1, 0 ); - is31fl3731_update_led_control_registers( ISSI_ADDR_1, 0 ); + is31fl3731_update_pwm_buffers( IS31FL3731_I2C_ADDRESS_1, 0 ); + is31fl3731_update_led_control_registers( IS31FL3731_I2C_ADDRESS_1, 0 ); #elif defined(RGB_BACKLIGHT_U80_A) static uint8_t driver = 0; switch ( driver ) { case 0: - is31fl3731_update_pwm_buffers( ISSI_ADDR_1, 0 ); + is31fl3731_update_pwm_buffers( IS31FL3731_I2C_ADDRESS_1, 0 ); break; case 1: - is31fl3731_update_pwm_buffers( ISSI_ADDR_2, 1 ); + is31fl3731_update_pwm_buffers( IS31FL3731_I2C_ADDRESS_2, 1 ); break; case 2: - is31fl3731_update_pwm_buffers( ISSI_ADDR_3, 2 ); + is31fl3731_update_pwm_buffers( IS31FL3731_I2C_ADDRESS_3, 2 ); break; } if ( ++driver > 2 ) @@ -1794,10 +1015,10 @@ void backlight_update_pwm_buffers(void) driver = 0; } #else - is31fl3731_update_pwm_buffers( ISSI_ADDR_1, 0 ); - is31fl3731_update_pwm_buffers( ISSI_ADDR_2, 1 ); - is31fl3731_update_led_control_registers( ISSI_ADDR_1, 0 ); - is31fl3731_update_led_control_registers( ISSI_ADDR_2, 1 ); + is31fl3731_update_pwm_buffers( IS31FL3731_I2C_ADDRESS_1, 0 ); + is31fl3731_update_pwm_buffers( IS31FL3731_I2C_ADDRESS_2, 1 ); + is31fl3731_update_led_control_registers( IS31FL3731_I2C_ADDRESS_1, 0 ); + is31fl3731_update_led_control_registers( IS31FL3731_I2C_ADDRESS_2, 1 ); #endif } @@ -2913,7 +2134,7 @@ void backlight_init_drivers(void) // This actually updates the LED drivers is31fl3218_update_led_control_registers(); #elif defined(RGB_BACKLIGHT_HS60) - is31fl3733_init( ISSI_ADDR_1, IS31FL3733_SYNC_NONE ); + is31fl3733_init( IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_NONE ); for ( int index = 0; index < IS31FL3733_LED_COUNT; index++ ) { @@ -2932,10 +2153,10 @@ void backlight_init_drivers(void) is31fl3733_set_led_control_register( index, enabled, enabled, enabled ); } // This actually updates the LED drivers - is31fl3733_update_led_control_registers( ISSI_ADDR_1, 0 ); + is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_1, 0 ); #elif defined(RGB_BACKLIGHT_NK65) - is31fl3733_init( ISSI_ADDR_1, IS31FL3733_SYNC_NONE ); - is31fl3733_init( ISSI_ADDR_2, IS31FL3733_SYNC_NONE ); + is31fl3733_init( IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_NONE ); + is31fl3733_init( IS31FL3733_I2C_ADDRESS_2, IS31FL3733_SYNC_NONE ); for ( int index = 0; index < IS31FL3733_LED_COUNT; index++ ) { @@ -2946,11 +2167,11 @@ void backlight_init_drivers(void) } is31fl3733_set_led_control_register( 7+64-1, 0, 1, 0 ); //Enable LB7 green enable for indicators // This actually updates the LED drivers - is31fl3733_update_led_control_registers( ISSI_ADDR_1, 0 ); - is31fl3733_update_led_control_registers( ISSI_ADDR_2, 1 ); + is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_1, 0 ); + is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_2, 1 ); #elif defined(RGB_BACKLIGHT_NK87) - is31fl3733_init( ISSI_ADDR_1, IS31FL3733_SYNC_NONE ); - is31fl3733_init( ISSI_ADDR_2, IS31FL3733_SYNC_NONE ); + is31fl3733_init( IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_NONE ); + is31fl3733_init( IS31FL3733_I2C_ADDRESS_2, IS31FL3733_SYNC_NONE ); for ( int index = 0; index < IS31FL3733_LED_COUNT; index++ ) { @@ -2976,11 +2197,11 @@ void backlight_init_drivers(void) } is31fl3733_set_led_control_register( 48+64-1, 0, 0, 1 ); //Enable LB48 blue enable for indicators // This actually updates the LED drivers - is31fl3733_update_led_control_registers( ISSI_ADDR_1, 0 ); - is31fl3733_update_led_control_registers( ISSI_ADDR_2, 1 ); + is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_1, 0 ); + is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_2, 1 ); #elif defined(RGB_BACKLIGHT_NEBULA68) - is31fl3733_init( ISSI_ADDR_1, IS31FL3733_SYNC_NONE ); - is31fl3733_init( ISSI_ADDR_2, IS31FL3733_SYNC_NONE ); + is31fl3733_init( IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_NONE ); + is31fl3733_init( IS31FL3733_I2C_ADDRESS_2, IS31FL3733_SYNC_NONE ); for ( int index = 0; index < IS31FL3733_LED_COUNT; index++ ) { @@ -2990,20 +2211,20 @@ void backlight_init_drivers(void) is31fl3733_set_led_control_register( index, enabled, enabled, enabled ); } // This actually updates the LED drivers - is31fl3733_update_led_control_registers( ISSI_ADDR_1, 0 ); - is31fl3733_update_led_control_registers( ISSI_ADDR_2, 1 ); + is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_1, 0 ); + is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_2, 1 ); #elif defined(RGB_BACKLIGHT_PORTICO75) - is31fl3741_init( ISSI_ADDR_1 ); + is31fl3741_init( IS31FL3741_I2C_ADDRESS_1 ); bool enabled = true; for ( int index = 0; index < IS31FL3741_LED_COUNT; index++ ) { is31fl3741_set_led_control_register( index, enabled, enabled, enabled ); } // This actually updates the LED drivers - is31fl3741_update_led_control_registers( ISSI_ADDR_1, 0 ); + is31fl3741_update_led_control_registers( IS31FL3741_I2C_ADDRESS_1, 0 ); #elif defined(RGB_BACKLIGHT_KW_MEGA) - is31fl3733_init( ISSI_ADDR_1, IS31FL3733_SYNC_NONE ); - is31fl3733_init( ISSI_ADDR_2, IS31FL3733_SYNC_NONE ); + is31fl3733_init( IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_NONE ); + is31fl3733_init( IS31FL3733_I2C_ADDRESS_2, IS31FL3733_SYNC_NONE ); for ( int index = 0; index < IS31FL3733_LED_COUNT; index++ ) { @@ -3013,18 +2234,18 @@ void backlight_init_drivers(void) is31fl3733_set_led_control_register( index, enabled, enabled, enabled ); } // This actually updates the LED drivers - is31fl3733_update_led_control_registers( ISSI_ADDR_1, 0 ); - is31fl3733_update_led_control_registers( ISSI_ADDR_2, 1 ); + is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_1, 0 ); + is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_2, 1 ); #else // Init the #1 driver - is31fl3731_init( ISSI_ADDR_1 ); + is31fl3731_init( IS31FL3731_I2C_ADDRESS_1 ); // Init the #2 driver (if used) #if !defined(RGB_BACKLIGHT_NEBULA12) && !defined(RGB_BACKLIGHT_M10_C) - is31fl3731_init( ISSI_ADDR_2 ); + is31fl3731_init( IS31FL3731_I2C_ADDRESS_2 ); #endif // Init the #3 driver (if used) #if defined(RGB_BACKLIGHT_U80_A) - is31fl3731_init( ISSI_ADDR_3 ); + is31fl3731_init( IS31FL3731_I2C_ADDRESS_3 ); #endif // Experimental feature, not in configuration yet @@ -3157,12 +2378,12 @@ void backlight_init_drivers(void) } // This actually updates the LED drivers // TODO: refactor this to use DRIVER_COUNT - is31fl3731_update_led_control_registers( ISSI_ADDR_1, 0 ); + is31fl3731_update_led_control_registers( IS31FL3731_I2C_ADDRESS_1, 0 ); #if !defined(RGB_BACKLIGHT_NEBULA12) && !defined(RGB_BACKLIGHT_M10_C) - is31fl3731_update_led_control_registers( ISSI_ADDR_2, 1 ); + is31fl3731_update_led_control_registers( IS31FL3731_I2C_ADDRESS_2, 1 ); #endif #if defined(RGB_BACKLIGHT_U80_A) - is31fl3731_update_led_control_registers( ISSI_ADDR_3, 2 ); + is31fl3731_update_led_control_registers( IS31FL3731_I2C_ADDRESS_3, 2 ); #endif #endif diff --git a/keyboards/wilba_tech/zeal60/zeal60.c b/keyboards/wilba_tech/zeal60/zeal60.c index b8c2e2f83f..dd49ccabe9 100644 --- a/keyboards/wilba_tech/zeal60/zeal60.c +++ b/keyboards/wilba_tech/zeal60/zeal60.c @@ -14,5 +14,93 @@ * along with this program. If not, see . */ #ifndef RGB_BACKLIGHT_ZEAL60 -#error RGB_BACKLIGHT_ZEAL60 not defined, you done goofed somehao, brah +# error RGB_BACKLIGHT_ZEAL60 not defined, you done goofed somehao, brah +#else +# include "drivers/led/issi/is31fl3731.h" +#endif + +#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_ZEAL60) +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C2_1, C3_1, C4_1}, // LA0 + {0, C1_1, C3_2, C4_2}, // LA1 + {0, C1_2, C2_2, C4_3}, // LA2 + {0, C1_3, C2_3, C3_3}, // LA3 + {0, C1_4, C2_4, C3_4}, // LA4 + {0, C1_5, C2_5, C3_5}, // LA5 + {0, C1_6, C2_6, C3_6}, // LA6 + {0, C1_7, C2_7, C3_7}, // LA7 + {0, C1_8, C2_8, C3_8}, // LA8 + {0, C9_1, C8_1, C7_1}, // LA9 + {0, C9_2, C8_2, C7_2}, // LA10 + {0, C9_3, C8_3, C7_3}, // LA11 + {0, C9_4, C8_4, C7_4}, // LA12 + {0, C9_5, C8_5, C7_5}, // LA13 + {0, C9_6, C8_6, C7_6}, // LA14 + {0, C9_7, C8_7, C6_6}, // LA15 + {0, C9_8, C7_7, C6_7}, // LA16 + {0, C8_8, C7_8, C6_8}, // LA17 + + {0, C2_9, C3_9, C4_9}, // LB0 + {0, C1_9, C3_10, C4_10}, // LB1 + {0, C1_10, C2_10, C4_11}, // LB2 + {0, C1_11, C2_11, C3_11}, // LB3 + {0, C1_12, C2_12, C3_12}, // LB4 + {0, C1_13, C2_13, C3_13}, // LB5 + {0, C1_14, C2_14, C3_14}, // LB6 + {0, C1_15, C2_15, C3_15}, // LB7 + {0, C1_16, C2_16, C3_16}, // LB8 + {0, C9_9, C8_9, C7_9}, // LB9 + {0, C9_10, C8_10, C7_10}, // LB10 + {0, C9_11, C8_11, C7_11}, // LB11 + {0, C9_12, C8_12, C7_12}, // LB12 + {0, C9_13, C8_13, C7_13}, // LB13 + {0, C9_14, C8_14, C7_14}, // LB14 + {0, C9_15, C8_15, C6_14}, // LB15 + {0, C9_16, C7_15, C6_15}, // LB16 + {0, C8_16, C7_16, C6_16}, // LB17 + + {1, C2_1, C3_1, C4_1}, // LC0 + {1, C1_1, C3_2, C4_2}, // LC1 + {1, C1_2, C2_2, C4_3}, // LC2 + {1, C1_3, C2_3, C3_3}, // LC3 + {1, C1_4, C2_4, C3_4}, // LC4 + {1, C1_5, C2_5, C3_5}, // LC5 + {1, C1_6, C2_6, C3_6}, // LC6 + {1, C1_7, C2_7, C3_7}, // LC7 + {1, C1_8, C2_8, C3_8}, // LC8 + {1, C9_1, C8_1, C7_1}, // LC9 + {1, C9_2, C8_2, C7_2}, // LC10 + {1, C9_3, C8_3, C7_3}, // LC11 + {1, C9_4, C8_4, C7_4}, // LC12 + {1, C9_5, C8_5, C7_5}, // LC13 + {1, C9_6, C8_6, C7_6}, // LC14 + {1, C9_7, C8_7, C6_6}, // LC15 + {1, C9_8, C7_7, C6_7}, // LC16 + {1, C8_8, C7_8, C6_8}, // LC17 + + {1, C2_9, C3_9, C4_9}, // LD0 + {1, C1_9, C3_10, C4_10}, // LD1 + {1, C1_10, C2_10, C4_11}, // LD2 + {1, C1_11, C2_11, C3_11}, // LD3 + {1, C1_12, C2_12, C3_12}, // LD4 + {1, C1_13, C2_13, C3_13}, // LD5 + {1, C1_14, C2_14, C3_14}, // LD6 + {1, C1_15, C2_15, C3_15}, // LD7 + {1, C1_16, C2_16, C3_16}, // LD8 + {1, C9_9, C8_9, C7_9}, // LD9 + {1, C9_10, C8_10, C7_10}, // LD10 + {1, C9_11, C8_11, C7_11}, // LD11 + {1, C9_12, C8_12, C7_12}, // LD12 + {1, C9_13, C8_13, C7_13}, // LD13 + {1, C9_14, C8_14, C7_14}, // LD14 + {1, C9_15, C8_15, C6_14}, // LD15 + {1, C9_16, C7_15, C6_15}, // LD16 + {1, C8_16, C7_16, C6_16}, // LD17 +}; #endif diff --git a/keyboards/wilba_tech/zeal65/zeal65.c b/keyboards/wilba_tech/zeal65/zeal65.c index 540c93080a..a4550031b3 100644 --- a/keyboards/wilba_tech/zeal65/zeal65.c +++ b/keyboards/wilba_tech/zeal65/zeal65.c @@ -14,5 +14,93 @@ * along with this program. If not, see . */ #ifndef RGB_BACKLIGHT_ZEAL65 -#error RGB_BACKLIGHT_ZEAL65 not defined, you done goofed somehao, brah +# error RGB_BACKLIGHT_ZEAL65 not defined, you done goofed somehao, brah +#else +# include "drivers/led/issi/is31fl3731.h" #endif + +#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_ZEAL65) +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C2_1, C3_1, C4_1}, // LA0 + {0, C1_1, C3_2, C4_2}, // LA1 + {0, C1_2, C2_2, C4_3}, // LA2 + {0, C1_3, C2_3, C3_3}, // LA3 + {0, C1_4, C2_4, C3_4}, // LA4 + {0, C1_5, C2_5, C3_5}, // LA5 + {0, C1_6, C2_6, C3_6}, // LA6 + {0, C1_7, C2_7, C3_7}, // LA7 + {0, C1_8, C2_8, C3_8}, // LA8 + {0, C9_1, C8_1, C7_1}, // LA9 + {0, C9_2, C8_2, C7_2}, // LA10 + {0, C9_3, C8_3, C7_3}, // LA11 + {0, C9_4, C8_4, C7_4}, // LA12 + {0, C9_5, C8_5, C7_5}, // LA13 + {0, C9_6, C8_6, C7_6}, // LA14 + {0, C9_7, C8_7, C6_6}, // LA15 + {0, C9_8, C7_7, C6_7}, // LA16 + {0, C8_8, C7_8, C6_8}, // LA17 + + {0, C2_9, C3_9, C4_9}, // LB0 + {0, C1_9, C3_10, C4_10}, // LB1 + {0, C1_10, C2_10, C4_11}, // LB2 + {0, C1_11, C2_11, C3_11}, // LB3 + {0, C1_12, C2_12, C3_12}, // LB4 + {0, C1_13, C2_13, C3_13}, // LB5 + {0, C1_14, C2_14, C3_14}, // LB6 + {0, C1_15, C2_15, C3_15}, // LB7 + {0, C1_16, C2_16, C3_16}, // LB8 + {0, C9_9, C8_9, C7_9}, // LB9 + {0, C9_10, C8_10, C7_10}, // LB10 + {0, C9_11, C8_11, C7_11}, // LB11 + {0, C9_12, C8_12, C7_12}, // LB12 + {0, C9_13, C8_13, C7_13}, // LB13 + {0, C9_14, C8_14, C7_14}, // LB14 + {0, C9_15, C8_15, C6_14}, // LB15 + {0, C9_16, C7_15, C6_15}, // LB16 + {0, C8_16, C7_16, C6_16}, // LB17 + + {1, C2_1, C3_1, C4_1}, // LC0 + {1, C1_1, C3_2, C4_2}, // LC1 + {1, C1_2, C2_2, C4_3}, // LC2 + {1, C1_3, C2_3, C3_3}, // LC3 + {1, C1_4, C2_4, C3_4}, // LC4 + {1, C1_5, C2_5, C3_5}, // LC5 + {1, C1_6, C2_6, C3_6}, // LC6 + {1, C1_7, C2_7, C3_7}, // LC7 + {1, C1_8, C2_8, C3_8}, // LC8 + {1, C9_1, C8_1, C7_1}, // LC9 + {1, C9_2, C8_2, C7_2}, // LC10 + {1, C9_3, C8_3, C7_3}, // LC11 + {1, C9_4, C8_4, C7_4}, // LC12 + {1, C9_5, C8_5, C7_5}, // LC13 + {1, C9_6, C8_6, C7_6}, // LC14 + {1, C9_7, C8_7, C6_6}, // LC15 + {1, C9_8, C7_7, C6_7}, // LC16 + {1, C8_8, C7_8, C6_8}, // LC17 + + {1, C2_9, C3_9, C4_9}, // LD0 + {1, C1_9, C3_10, C4_10}, // LD1 + {1, C1_10, C2_10, C4_11}, // LD2 + {1, C1_11, C2_11, C3_11}, // LD3 + {1, C1_12, C2_12, C3_12}, // LD4 + {1, C1_13, C2_13, C3_13}, // LD5 + {1, C1_14, C2_14, C3_14}, // LD6 + {1, C1_15, C2_15, C3_15}, // LD7 + {1, C1_16, C2_16, C3_16}, // LD8 + {1, C9_9, C8_9, C7_9}, // LD9 + {1, C9_10, C8_10, C7_10}, // LD10 + {1, C9_11, C8_11, C7_11}, // LD11 + {1, C9_12, C8_12, C7_12}, // LD12 + {1, C9_13, C8_13, C7_13}, // LD13 + {1, C9_14, C8_14, C7_14}, // LD14 + {1, C9_15, C8_15, C6_14}, // LD15 + {1, C9_16, C7_15, C6_15}, // LD16 + {1, C8_16, C7_16, C6_16}, // LD17 +}; +#endif \ No newline at end of file diff --git a/keyboards/woodkeys/scarletbandana/rules.mk b/keyboards/woodkeys/scarletbandana/rules.mk index 3de47dd4a0..3e736b56e5 100644 --- a/keyboards/woodkeys/scarletbandana/rules.mk +++ b/keyboards/woodkeys/scarletbandana/rules.mk @@ -9,5 +9,5 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = no # Enable N-Key Rollover AUDIO_ENABLE = yes # Audio output RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality, also set ISSI_ENABLE below for Miera +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality LTO_ENABLE = yes diff --git a/keyboards/xelus/dawn60/rev1/rev1.c b/keyboards/xelus/dawn60/rev1/rev1.c index 2d0b465bcc..47ea0ffbaa 100644 --- a/keyboards/xelus/dawn60/rev1/rev1.c +++ b/keyboards/xelus/dawn60/rev1/rev1.c @@ -14,5 +14,85 @@ * along with this program. If not, see . */ #ifndef RGB_BACKLIGHT_DAWN60 -#error RGB_BACKLIGHT_DAWN60 not defined, you done goofed somehao, brah +# error RGB_BACKLIGHT_DAWN60 not defined, you done goofed somehao, brah +#else +# include "drivers/led/issi/is31fl3731.h" +#endif + +#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_DAWN60) +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C1_1, C3_2, C4_2}, //A1 + {0, C1_2, C2_2, C4_3}, //A2 + {0, C1_3, C2_3, C3_3}, //A3 + {0, C1_4, C2_4, C3_4}, //A4 + {0, C1_5, C2_5, C3_5}, //A5 + {0, C1_6, C2_6, C3_6}, //A6 + {0, C1_7, C2_7, C3_7}, //A7 + {0, C1_8, C2_8, C3_8}, //A8 + {0, C9_1, C8_1, C7_1}, //A9 + {0, C9_2, C8_2, C7_2}, //A10 + {0, C9_3, C8_3, C7_3}, //A11 + {0, C9_4, C8_4, C7_4}, //A12 + {0, C9_5, C8_5, C7_5}, //A13 + {0, C9_6, C8_6, C7_6}, //A14 + {0, C9_7, C8_7, C6_6}, //A15 + {0, C9_8, C7_7, C6_7}, //A16 + + {0, C1_9, C3_10, C4_10}, //B1 + {0, C1_10, C2_10, C4_11}, //B2 + {0, C1_11, C2_11, C3_11}, //B3 + {0, C1_12, C2_12, C3_12}, //B4 + {0, C1_13, C2_13, C3_13}, //B5 + {0, C1_14, C2_14, C3_14}, //B6 + {0, C1_15, C2_15, C3_15}, //B7 + {0, C1_16, C2_16, C3_16}, //B8 + {0, C9_9, C8_9, C7_9}, //B9 + {0, C9_10, C8_10, C7_10}, //B10 + {0, C9_11, C8_11, C7_11}, //B11 + {0, C9_12, C8_12, C7_12}, //B12 + {0, C9_13, C8_13, C7_13}, //B13 + {0, C9_14, C8_14, C7_14}, //B14 + {0, C9_15, C8_15, C6_14}, //B15 + {0, C9_16, C7_15, C6_15}, //B16 + + {1, C1_1, C3_2, C4_2}, //C1 + {1, C1_2, C2_2, C4_3}, //C2 + {1, C1_3, C2_3, C3_3}, //C3 + {1, C1_4, C2_4, C3_4}, //C4 + {1, C1_5, C2_5, C3_5}, //C5 + {1, C1_6, C2_6, C3_6}, //C6 + {1, C1_7, C2_7, C3_7}, //C7 + {1, C1_8, C2_8, C3_8}, //C8 + {1, C9_1, C8_1, C7_1}, //C9 + {1, C9_2, C8_2, C7_2}, //C10 + {1, C9_3, C8_3, C7_3}, //C11 + {1, C9_4, C8_4, C7_4}, //C12 + {1, C9_5, C8_5, C7_5}, //C13 + {1, C9_6, C8_6, C7_6}, //C14 + {1, C9_7, C8_7, C6_6}, //C15 + {1, C9_8, C7_7, C6_7}, //C16 + + {1, C1_9, C3_10, C4_10}, //D1 + {1, C1_10, C2_10, C4_11}, //D2 + {1, C1_11, C2_11, C3_11}, //D3 + {1, C1_12, C2_12, C3_12}, //D4 + {1, C1_13, C2_13, C3_13}, //D5 + {1, C1_14, C2_14, C3_14}, //D6 + {1, C1_15, C2_15, C3_15}, //D7 + {1, C1_16, C2_16, C3_16}, //D8 + {1, C9_9, C8_9, C7_9}, //D9 + {1, C9_10, C8_10, C7_10}, //D10 + {1, C9_11, C8_11, C7_11}, //D11 + {1, C9_12, C8_12, C7_12}, //D12 + {1, C9_13, C8_13, C7_13}, //D13 + {1, C9_14, C8_14, C7_14}, //D14 + {1, C9_15, C8_15, C6_14}, //D15 + {1, C9_16, C7_15, C6_15} //D16 +}; #endif From 7324650714d53142ec643bb019f6afa7e9cd9dbd Mon Sep 17 00:00:00 2001 From: Ming-Gih Lam Date: Tue, 7 Nov 2023 18:18:09 -0800 Subject: [PATCH 350/496] Red Herring PCB support (#22409) Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/dcpedit/redherring/config.h | 10 ++ keyboards/dcpedit/redherring/info.json | 139 ++++++++++++++++++ .../redherring/keymaps/default/keymap.c | 29 ++++ .../redherring/keymaps/default/rules.mk | 1 + .../dcpedit/redherring/keymaps/via/keymap.c | 31 ++++ .../dcpedit/redherring/keymaps/via/rules.mk | 2 + keyboards/dcpedit/redherring/readme.md | 27 ++++ keyboards/dcpedit/redherring/redherring.c | 91 ++++++++++++ keyboards/dcpedit/redherring/rules.mk | 2 + 9 files changed, 332 insertions(+) create mode 100755 keyboards/dcpedit/redherring/config.h create mode 100644 keyboards/dcpedit/redherring/info.json create mode 100644 keyboards/dcpedit/redherring/keymaps/default/keymap.c create mode 100644 keyboards/dcpedit/redherring/keymaps/default/rules.mk create mode 100644 keyboards/dcpedit/redherring/keymaps/via/keymap.c create mode 100644 keyboards/dcpedit/redherring/keymaps/via/rules.mk create mode 100644 keyboards/dcpedit/redherring/readme.md create mode 100644 keyboards/dcpedit/redherring/redherring.c create mode 100644 keyboards/dcpedit/redherring/rules.mk diff --git a/keyboards/dcpedit/redherring/config.h b/keyboards/dcpedit/redherring/config.h new file mode 100755 index 0000000000..115be3306e --- /dev/null +++ b/keyboards/dcpedit/redherring/config.h @@ -0,0 +1,10 @@ +// Copyright 2023 Ming-Gih Lam (@dcpedit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define LOCKING_SUPPORT_ENABLE +#define LOCKING_RESYNC_ENABLE +#define SOLENOID_PIN B5 +#define OLED_IC OLED_IC_SH1107 +#define OLED_DISPLAY_64X128 \ No newline at end of file diff --git a/keyboards/dcpedit/redherring/info.json b/keyboards/dcpedit/redherring/info.json new file mode 100644 index 0000000000..2a91291fcb --- /dev/null +++ b/keyboards/dcpedit/redherring/info.json @@ -0,0 +1,139 @@ +{ + "manufacturer": "dcpedit", + "keyboard_name": "Red Herring", + "maintainer": "dcpedit", + "bootloader": "usbasploader", + "bootmagic": { + "matrix": [5, 14] + }, + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "C2", "pin_b": "D7"} + ] + }, + "indicators": { + "caps_lock": "A0" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "encoder": true, + "oled": true, + "haptic": true + }, + "matrix_pins": { + "cols": ["A1", "A2", "A3", "B0", "B1", "B2", "B3", "B4", "D0", "D1", "D5", "D6", "C5", "C4", "C3"], + "rows": ["C6", "A6", "A7", "A4", "C7", "A5"] + }, + "processor": "atmega32a", + "qmk": { + "tap_keycode_delay": 10 + }, + "url": "https://github.com/dcpedit/redherring", + "usb": { + "device_version": "1.0.0", + "pid": "0x12ED", + "vid": "0xDC9E" + }, + "dynamic_keymap": { + "layer_count": 2 + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "5,14", "matrix": [5, 14], "x": 0.75, "y": 0.25}, + {"label": "0,0", "matrix": [0, 0], "x": 2.25, "y": 0.25}, + {"label": "0,1", "matrix": [0, 1], "x": 3.25, "y": 0.25}, + {"label": "0,2", "matrix": [0, 2], "x": 4.75, "y": 0.25}, + {"label": "0,3", "matrix": [0, 3], "x": 5.75, "y": 0.13}, + {"label": "0,4", "matrix": [0, 4], "x": 6.75, "y": 0.25}, + {"label": "0,5", "matrix": [0, 5], "x": 7.75, "y": 0.38}, + {"label": "0,6", "matrix": [0, 6], "x": 11.5, "y": 0.38}, + {"label": "0,7", "matrix": [0, 7], "x": 12.5, "y": 0.25}, + {"label": "0,8", "matrix": [0, 8], "x": 13.5, "y": 0.13}, + {"label": "0,9", "matrix": [0, 9], "x": 14.5, "y": 0.25}, + {"label": "0,10", "matrix": [0, 10], "x": 16, "y": 0.25}, + {"label": "0,11", "matrix": [0, 11], "x": 17, "y": 0.25}, + {"label": "0,12", "matrix": [0, 12], "x": 18.13, "y": 0.25}, + {"label": "0,13", "matrix": [0, 13], "x": 19.13, "y": 0.25}, + {"label": "0,14", "matrix": [0, 14], "x": 21, "y": 0.25}, + {"label": "1,0", "matrix": [1, 0], "x": 2, "y": 1.5}, + {"label": "1,1", "matrix": [1, 1], "x": 3, "y": 1.5}, + {"label": "1,2", "matrix": [1, 2], "x": 4.75, "y": 1.5}, + {"label": "1,3", "matrix": [1, 3], "x": 5.75, "y": 1.38}, + {"label": "1,4", "matrix": [1, 4], "x": 6.75, "y": 1.5}, + {"label": "1,5", "matrix": [1, 5], "x": 7.75, "y": 1.63}, + {"label": "1,6", "matrix": [1, 6], "x": 11.5, "y": 1.63}, + {"label": "1,7", "matrix": [1, 7], "x": 12.5, "y": 1.5}, + {"label": "1,8", "matrix": [1, 8], "x": 13.5, "y": 1.38}, + {"label": "1,9", "matrix": [1, 9], "x": 14.5, "y": 1.5}, + {"label": "1,10", "matrix": [1, 10], "x": 16.25, "y": 1.5}, + {"label": "1,11", "matrix": [1, 11], "x": 17.25, "y": 1.5}, + {"label": "1,12", "matrix": [1, 12], "x": 18.25, "y": 1.5}, + {"label": "1,13", "matrix": [1, 13], "x": 19.25, "y": 1.5}, + {"label": "1,14", "matrix": [1, 14], "x": 20.25, "y": 1.5}, + {"label": "2,14", "matrix": [2, 14], "x": 21.75, "y": 1.5}, + {"label": "2,0", "matrix": [2, 0], "x": 1.25, "y": 2.5, "w": 1.5}, + {"label": "2,1", "matrix": [2, 1], "x": 2.75, "y": 2.5}, + {"label": "2,2", "matrix": [2, 2], "x": 4.75, "y": 2.5}, + {"label": "2,3", "matrix": [2, 3], "x": 5.75, "y": 2.38}, + {"label": "2,4", "matrix": [2, 4], "x": 6.75, "y": 2.5}, + {"label": "2,5", "matrix": [2, 5], "x": 7.75, "y": 2.63}, + {"label": "2,6", "matrix": [2, 6], "x": 11.5, "y": 2.63}, + {"label": "2,7", "matrix": [2, 7], "x": 12.5, "y": 2.5}, + {"label": "2,8", "matrix": [2, 8], "x": 13.5, "y": 2.38}, + {"label": "2,9", "matrix": [2, 9], "x": 14.5, "y": 2.5}, + {"label": "2,10", "matrix": [2, 10], "x": 16.5, "y": 2.5}, + {"label": "2,11", "matrix": [2, 11], "x": 17.5, "y": 2.5}, + {"label": "2,12", "matrix": [2, 12], "x": 18.5, "y": 2.5}, + {"label": "2,13", "matrix": [2, 13], "x": 19.5, "y": 2.5, "w": 1.5}, + {"label": "3,13", "matrix": [3, 13], "x": 21.5, "y": 2.5}, + {"label": "3,0", "matrix": [3, 0], "x": 0.75, "y": 3.5, "w": 1.75}, + {"label": "3,1", "matrix": [3, 1], "x": 2.5, "y": 3.5}, + {"label": "3,2", "matrix": [3, 2], "x": 4.75, "y": 3.5}, + {"label": "3,3", "matrix": [3, 3], "x": 5.75, "y": 3.38}, + {"label": "3,4", "matrix": [3, 4], "x": 6.75, "y": 3.5}, + {"label": "3,5", "matrix": [3, 5], "x": 7.75, "y": 3.63}, + {"label": "3,6", "matrix": [3, 6], "x": 11.5, "y": 3.63}, + {"label": "3,7", "matrix": [3, 7], "x": 12.5, "y": 3.5}, + {"label": "3,8", "matrix": [3, 8], "x": 13.5, "y": 3.38}, + {"label": "3,9", "matrix": [3, 9], "x": 14.5, "y": 3.5}, + {"label": "3,10", "matrix": [3, 10], "x": 16.75, "y": 3.5}, + {"label": "3,11", "matrix": [3, 11], "x": 17.75, "y": 3.5}, + {"label": "3,12", "matrix": [3, 12], "x": 18.75, "y": 3.5, "w": 2.25}, + {"label": "3,14", "matrix": [3, 14], "x": 21.25, "y": 3.5}, + {"label": "4,14", "matrix": [4, 14], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "4,0", "matrix": [4, 0], "x": 1.25, "y": 4.5}, + {"label": "4,1", "matrix": [4, 1], "x": 2.25, "y": 4.5}, + {"label": "4,2", "matrix": [4, 2], "x": 4.75, "y": 4.5}, + {"label": "4,3", "matrix": [4, 3], "x": 5.75, "y": 4.38}, + {"label": "4,4", "matrix": [4, 4], "x": 6.75, "y": 4.5}, + {"label": "4,5", "matrix": [4, 5], "x": 7.75, "y": 4.63}, + {"label": "5,5", "matrix": [5, 5], "x": 8.75, "y": 4.63}, + {"label": "5,6", "matrix": [5, 6], "x": 10.5, "y": 4.63}, + {"label": "4,6", "matrix": [4, 6], "x": 11.5, "y": 4.63}, + {"label": "4,7", "matrix": [4, 7], "x": 12.5, "y": 4.5}, + {"label": "4,8", "matrix": [4, 8], "x": 13.5, "y": 4.38}, + {"label": "4,9", "matrix": [4, 9], "x": 14.5, "y": 4.5}, + {"label": "4,10", "matrix": [4, 10], "x": 17, "y": 4.5}, + {"label": "4,11", "matrix": [4, 11], "x": 18, "y": 4.5}, + {"label": "4,12", "matrix": [4, 12], "x": 19, "y": 4.5, "w": 1.25}, + {"label": "4,13", "matrix": [4, 13], "x": 20.5, "y": 4.75}, + {"label": "5,0", "matrix": [5, 0], "x": 0.5, "y": 5.5, "w": 1.25}, + {"label": "5,1", "matrix": [5, 1], "x": 1.75, "y": 5.5, "w": 1.25}, + {"label": "5,2", "matrix": [5, 2], "x": 5.25, "y": 5.5, "w": 1.25}, + {"label": "5,3", "matrix": [5, 3], "x": 6.5, "y": 5.5, "w": 1.25}, + {"label": "5,4", "matrix": [5, 4], "x": 7.75, "y": 5.63, "w": 2}, + {"label": "5,7", "matrix": [5, 7], "x": 10.5, "y": 5.63, "w": 2.75}, + {"label": "5,8", "matrix": [5, 8], "x": 13.25, "y": 5.5, "w": 1.25}, + {"label": "5,9", "matrix": [5, 9], "x": 16.75, "y": 5.5, "w": 1.25}, + {"label": "5,10", "matrix": [5, 10], "x": 18, "y": 5.5, "w": 1.25}, + {"label": "5,11", "matrix": [5, 11], "x": 19.5, "y": 5.75}, + {"label": "5,12", "matrix": [5, 12], "x": 20.5, "y": 5.75}, + {"label": "5,13", "matrix": [5, 13], "x": 21.5, "y": 5.75} + ] + } + } +} diff --git a/keyboards/dcpedit/redherring/keymaps/default/keymap.c b/keyboards/dcpedit/redherring/keymaps/default/keymap.c new file mode 100644 index 0000000000..3671174050 --- /dev/null +++ b/keyboards/dcpedit/redherring/keymaps/default/keymap.c @@ -0,0 +1,29 @@ +// Copyright 2023 Ming-Gih Lam (@dcpedit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, 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_PSCR, KC_SCRL, KC_MUTE, + KC_GRV, 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_BSLS, KC_BSPC, KC_HOME, + 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_PGUP, + 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_ENT, KC_PGDN, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(1), MO(1), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_MENU, KC_SPC, KC_SPC, KC_ALGR, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), + + [1] = LAYOUT( + QK_RBT, QK_BOOT, 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, HF_TOGG, + 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_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_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 ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, +}; +#endif \ No newline at end of file diff --git a/keyboards/dcpedit/redherring/keymaps/default/rules.mk b/keyboards/dcpedit/redherring/keymaps/default/rules.mk new file mode 100644 index 0000000000..a40474b4d5 --- /dev/null +++ b/keyboards/dcpedit/redherring/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/dcpedit/redherring/keymaps/via/keymap.c b/keyboards/dcpedit/redherring/keymaps/via/keymap.c new file mode 100644 index 0000000000..de67f00042 --- /dev/null +++ b/keyboards/dcpedit/redherring/keymaps/via/keymap.c @@ -0,0 +1,31 @@ +// Copyright 2023 Ming-Gih Lam (@dcpedit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + + KC_ESC, 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_PSCR, KC_SCRL, KC_MUTE, + KC_GRV, 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_BSLS, KC_BSPC, KC_HOME, + 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_PGUP, + 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_ENT, KC_PGDN, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(1), MO(1), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_MENU, KC_SPC, KC_SPC, KC_ALGR, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), + + [1] = LAYOUT( + + QK_RBT, QK_BOOT, 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, HF_TOGG, + 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_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_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 ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, +}; +#endif \ No newline at end of file diff --git a/keyboards/dcpedit/redherring/keymaps/via/rules.mk b/keyboards/dcpedit/redherring/keymaps/via/rules.mk new file mode 100644 index 0000000000..4253f570f0 --- /dev/null +++ b/keyboards/dcpedit/redherring/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/dcpedit/redherring/readme.md b/keyboards/dcpedit/redherring/readme.md new file mode 100644 index 0000000000..67f2bdf33d --- /dev/null +++ b/keyboards/dcpedit/redherring/readme.md @@ -0,0 +1,27 @@ +# Red Herring + +![Red Herring](https://i.imgur.com/b6lKmW0h.jpg) + +Unibody ergonomic orthilinar keyboard with through-hole components. Supports standard keycaps, a 64x128 OLED, large rotary encoder knob, and a solenoid. + +* Keyboard Maintainer: [dcpedit](https://github.com/dcpedit) +* Hardware Supported: ATMEGA32A +* Hardware Availability: https://github.com/dcpedit/redherring + +Make example for this keyboard (after setting up your build environment): + + make dcpedit/redherring:default + +Flashing example for this keyboard: + + make dcpedit/redherring:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the ESC key (top-left key) and plug in the keyboard +* **Physical reset button**: On the PCB, while holding down the BOOT button, press and release the RESET button +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/dcpedit/redherring/redherring.c b/keyboards/dcpedit/redherring/redherring.c new file mode 100644 index 0000000000..b2c25eb703 --- /dev/null +++ b/keyboards/dcpedit/redherring/redherring.c @@ -0,0 +1,91 @@ +// Copyright 2023 Ming-Gih Lam (@dcpedit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#define LOGO_SIZE 1024 + +#ifdef OLED_ENABLE + +static void render_logo(void) { + static const char PROGMEM oled_logo[LOGO_SIZE] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x30, 0x60, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xc3, 0x06, 0x18, 0xe1, 0x03, 0x0c, 0xb0, 0x60, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x80, 0x78, 0x00, 0x00, 0x00, 0xe0, 0x1c, + 0x00, 0x00, 0xc0, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xe0, 0x00, 0x00, 0x04, 0x78, 0x80, 0x00, + 0x00, 0x38, 0xf8, 0xf8, 0xf0, 0xf0, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xff, 0x1f, 0x3f, 0xfe, 0x3e, 0x7f, 0xfe, 0x7c, 0x7f, 0x7c, + 0x3c, 0x20, 0x20, 0xe0, 0x7c, 0x43, 0x40, 0xc0, 0xf8, 0x87, 0x80, 0x80, 0xe0, 0x1e, 0x01, 0x00, + 0xc0, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00, 0x00, 0x07, 0x78, + 0x80, 0x80, 0x83, 0xbf, 0xff, 0xff, 0xe3, 0xc1, 0xc1, 0xc1, 0xc1, 0xf7, 0xfe, 0xfe, 0xfc, 0x78, + 0x00, 0x00, 0x10, 0x90, 0x88, 0x4c, 0x64, 0x22, 0x12, 0x11, 0x08, 0x0c, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x03, 0x00, 0x80, 0x78, 0x07, 0x00, 0x00, 0xe0, 0x1e, 0x01, 0x01, 0xc1, 0x3d, + 0x07, 0x02, 0x02, 0xf2, 0x0e, 0x02, 0x02, 0x06, 0x7e, 0xc2, 0x02, 0x03, 0x1f, 0xe1, 0x01, 0x01, + 0x07, 0x78, 0x80, 0x00, 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x0f, 0x03, 0x00, 0x00, + 0x02, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x20, 0x1e, 0x01, 0x00, 0xc0, 0x7c, 0x07, 0x00, + 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x7c, 0xc0, 0x00, 0x01, 0x1e, 0xe0, + 0x00, 0x00, 0x07, 0x38, 0x00, 0x00, 0x03, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x38, 0xfe, 0xc7, 0x83, 0xff, 0xff, 0x01, 0x81, 0x03, 0x0f, 0xfe, 0xf0, 0x00, 0xff, 0xff, 0x01, + 0x01, 0x61, 0xff, 0x9f, 0x01, 0xfe, 0xef, 0x83, 0xff, 0xff, 0x01, 0x01, 0x03, 0x07, 0xfe, 0xf8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x19, 0xff, 0xff, 0x3b, 0x79, 0xf8, 0xcf, 0x07, 0x01, 0x00, 0xf1, 0xff, 0x0e, + 0x0e, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x01, 0x01, 0xff, 0xff, 0x03, 0x01, 0x00, 0x80, 0xff, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x30, 0xf0, 0xf0, 0x00, 0x00, 0x10, 0xf0, 0xf0, 0x00, 0xf0, 0xf0, 0x30, 0x30, 0x30, 0xb0, 0xf0, + 0x70, 0x90, 0xc0, 0xe2, 0xf3, 0xf3, 0x70, 0x30, 0x31, 0x63, 0xe3, 0xc2, 0x00, 0x83, 0xc3, 0xe3, + 0xf3, 0xf3, 0x73, 0x33, 0x33, 0x60, 0xe0, 0x82, 0x03, 0xf3, 0xf3, 0x13, 0x63, 0xf3, 0xb1, 0xf0, + 0xe0, 0x00, 0x00, 0x00, 0x10, 0xf0, 0xf0, 0x00, 0xc0, 0xe0, 0x70, 0x30, 0x30, 0x30, 0xe0, 0xc0, + + 0x00, 0xff, 0xff, 0x30, 0x30, 0x30, 0xff, 0xff, 0x80, 0x1f, 0x7f, 0xe0, 0xc0, 0xc0, 0x9f, 0x1f, + 0x00, 0x07, 0x1f, 0x38, 0xff, 0xff, 0x60, 0x60, 0x10, 0x80, 0xff, 0xff, 0x00, 0x0f, 0x1f, 0x38, + 0xff, 0xff, 0x60, 0x60, 0x00, 0x80, 0xff, 0x7f, 0x00, 0xff, 0xff, 0x00, 0x00, 0x01, 0x03, 0xff, + 0xff, 0x1c, 0x78, 0xe0, 0xc0, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0x00, 0x04, 0xe6, 0xe7, 0x63, + 0x60, 0x7f, 0x7f, 0x00, 0x02, 0x46, 0x7f, 0x7f, 0x00, 0x7c, 0x7f, 0x63, 0x61, 0x61, 0x60, 0x60, + 0x60, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x47, 0x07, 0x0f, 0x3f, 0x79, 0x60, 0x40, 0x00, 0x00, 0x00, + 0x7f, 0x7f, 0x47, 0x07, 0x0f, 0x3f, 0x71, 0x40, 0x00, 0x7f, 0x7f, 0x40, 0x00, 0x00, 0x00, 0x7f, + 0x7f, 0x40, 0x00, 0x00, 0x47, 0x7f, 0x7f, 0x00, 0x1f, 0x3f, 0x70, 0x60, 0x60, 0x7f, 0x7f, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + + oled_write_raw_P(oled_logo, LOGO_SIZE); +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + render_logo(); + return true; +} +#endif \ No newline at end of file diff --git a/keyboards/dcpedit/redherring/rules.mk b/keyboards/dcpedit/redherring/rules.mk new file mode 100644 index 0000000000..35c76d4cf1 --- /dev/null +++ b/keyboards/dcpedit/redherring/rules.mk @@ -0,0 +1,2 @@ +F_CPU = 16000000 +HAPTIC_DRIVER = solenoid \ No newline at end of file From 2337cd1186e6a7b3f085cdafac5c1da87074015b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reibl=20J=C3=A1nos=20D=C3=A1niel?= Date: Wed, 8 Nov 2023 09:31:06 +0100 Subject: [PATCH 351/496] Add riblee handwired split keyboard (#22277) --- keyboards/handwired/riblee_split/config.h | 11 ++ keyboards/handwired/riblee_split/halconf.h | 8 + keyboards/handwired/riblee_split/info.json | 108 ++++++++++++ .../riblee_split/keymaps/default/keymap.c | 155 ++++++++++++++++++ keyboards/handwired/riblee_split/mcuconf.h | 7 + keyboards/handwired/riblee_split/readme.md | 24 +++ keyboards/handwired/riblee_split/rules.mk | 1 + 7 files changed, 314 insertions(+) create mode 100644 keyboards/handwired/riblee_split/config.h create mode 100644 keyboards/handwired/riblee_split/halconf.h create mode 100644 keyboards/handwired/riblee_split/info.json create mode 100644 keyboards/handwired/riblee_split/keymaps/default/keymap.c create mode 100644 keyboards/handwired/riblee_split/mcuconf.h create mode 100644 keyboards/handwired/riblee_split/readme.md create mode 100644 keyboards/handwired/riblee_split/rules.mk diff --git a/keyboards/handwired/riblee_split/config.h b/keyboards/handwired/riblee_split/config.h new file mode 100644 index 0000000000..c3b0720ba5 --- /dev/null +++ b/keyboards/handwired/riblee_split/config.h @@ -0,0 +1,11 @@ +// Copyright 2023 Daniel Reibl (@riblee) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// If the pin is high, then the controller assumes it is the left hand, and if it’s low, it’s assumed to be the right side. +#define SPLIT_HAND_PIN C15 + +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_TX_PIN B6 +#define SERIAL_USART_RX_PIN B7 diff --git a/keyboards/handwired/riblee_split/halconf.h b/keyboards/handwired/riblee_split/halconf.h new file mode 100644 index 0000000000..1d5c3fd700 --- /dev/null +++ b/keyboards/handwired/riblee_split/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2023 Daniel Reibl (@riblee) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_SERIAL TRUE + +#include_next diff --git a/keyboards/handwired/riblee_split/info.json b/keyboards/handwired/riblee_split/info.json new file mode 100644 index 0000000000..49b5ca3a54 --- /dev/null +++ b/keyboards/handwired/riblee_split/info.json @@ -0,0 +1,108 @@ +{ + "manufacturer": "Riblee", + "keyboard_name": "Split", + "maintainer": "riblee", + "bootloader": "stm32-dfu", + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B10", "B1", "B0", "A7", "A6", "A5"], + "rows": ["A4", "A3", "A2", "A1", "A0"] + }, + "development_board": "blackpill_f411", + "url": "", + "usb": { + "device_version": "1.0.0", + "vid": "0xFEED", + "pid": "0x2B2B" + }, + "split": { + "enabled": true, + "transport": { + "sync_matrix_state": true + } + }, + "community_layouts": ["ortho_5x12"], + "layouts": { + "LAYOUT_ortho_5x12": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [5, 0], "x": 7, "y": 0}, + {"matrix": [5, 1], "x": 8, "y": 0}, + {"matrix": [5, 2], "x": 9, "y": 0}, + {"matrix": [5, 3], "x": 10, "y": 0}, + {"matrix": [5, 4], "x": 11, "y": 0}, + {"matrix": [5, 5], "x": 12, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + + {"matrix": [6, 0], "x": 7, "y": 1}, + {"matrix": [6, 1], "x": 8, "y": 1}, + {"matrix": [6, 2], "x": 9, "y": 1}, + {"matrix": [6, 3], "x": 10, "y": 1}, + {"matrix": [6, 4], "x": 11, "y": 1}, + {"matrix": [6, 5], "x": 12, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + + {"matrix": [7, 0], "x": 7, "y": 2}, + {"matrix": [7, 1], "x": 8, "y": 2}, + {"matrix": [7, 2], "x": 9, "y": 2}, + {"matrix": [7, 3], "x": 10, "y": 2}, + {"matrix": [7, 4], "x": 11, "y": 2}, + {"matrix": [7, 5], "x": 12, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + + {"matrix": [8, 0], "x": 7, "y": 3}, + {"matrix": [8, 1], "x": 8, "y": 3}, + {"matrix": [8, 2], "x": 9, "y": 3}, + {"matrix": [8, 3], "x": 10, "y": 3}, + {"matrix": [8, 4], "x": 11, "y": 3}, + {"matrix": [8, 5], "x": 12, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4}, + {"matrix": [4, 4], "x": 4, "y": 4}, + {"matrix": [4, 5], "x": 5, "y": 4}, + + {"matrix": [9, 0], "x": 7, "y": 4}, + {"matrix": [9, 1], "x": 8, "y": 4}, + {"matrix": [9, 2], "x": 9, "y": 4}, + {"matrix": [9, 3], "x": 10, "y": 4}, + {"matrix": [9, 4], "x": 11, "y": 4}, + {"matrix": [9, 5], "x": 12, "y": 4} + ] + } + } +} diff --git a/keyboards/handwired/riblee_split/keymaps/default/keymap.c b/keyboards/handwired/riblee_split/keymaps/default/keymap.c new file mode 100644 index 0000000000..f954599c90 --- /dev/null +++ b/keyboards/handwired/riblee_split/keymaps/default/keymap.c @@ -0,0 +1,155 @@ +// Copyright 2023 Daniel Reibl (@riblee) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _QWERTY, + _COLEMAK, + _DVORAK, + _LOWER, + _RAISE, + _ADJUST +}; + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, + ADJUST, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Qwerty + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_QWERTY] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Colemak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_COLEMAK] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL, + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Dvorak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | " | , | . | P | Y | F | G | C | R | L | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_DVORAK] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL, + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , + ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT_ortho_5x12( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + BL_STEP, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME,KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Reset|RGB Tg|RGB Md|Hue Up|Hue Dn|Sat Up|Sat Dn|Val Up|Val Dn| | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_ADJUST] = LAYOUT_ortho_5x12( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, QK_BOOT, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, KC_DEL, + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/handwired/riblee_split/mcuconf.h b/keyboards/handwired/riblee_split/mcuconf.h new file mode 100644 index 0000000000..4ea061c7bf --- /dev/null +++ b/keyboards/handwired/riblee_split/mcuconf.h @@ -0,0 +1,7 @@ +// Copyright 2023 Daniel Reibl (@riblee) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include_next + +#undef STM32_SERIAL_USE_USART1 +#define STM32_SERIAL_USE_USART1 TRUE diff --git a/keyboards/handwired/riblee_split/readme.md b/keyboards/handwired/riblee_split/readme.md new file mode 100644 index 0000000000..b0acf5b3ba --- /dev/null +++ b/keyboards/handwired/riblee_split/readme.md @@ -0,0 +1,24 @@ +# Handwired Split + +This is a compact (12x5) ortholinear split keyboard. + +* Keyboard Maintainer: [Daniel Reibl](https://github.com/riblee) +* Hardware Supported: STM32F411 BlackPill + +Make example for this keyboard (after setting up your build environment): + + make handwired/riblee_split:default + +Flashing example for this keyboard: + + make handwired/riblee_split:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/riblee_split/rules.mk b/keyboards/handwired/riblee_split/rules.mk new file mode 100644 index 0000000000..c6e2988321 --- /dev/null +++ b/keyboards/handwired/riblee_split/rules.mk @@ -0,0 +1 @@ +SERIAL_DRIVER = usart From ebac02a7b2c9221387364b3116bcf912c191e333 Mon Sep 17 00:00:00 2001 From: ai03 Date: Thu, 9 Nov 2023 02:39:13 +0900 Subject: [PATCH 352/496] [Keyboard] Add Duet Switch Tester (#22367) Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Drashna Jaelre --- keyboards/ai03/duet/config.h | 6 + keyboards/ai03/duet/info.json | 139 ++++++++++++++++++ .../ai03/duet/keymaps/coordinate/keymap.c | 34 +++++ .../ai03/duet/keymaps/coordinate/readme.md | 4 + keyboards/ai03/duet/keymaps/default/keymap.c | 14 ++ keyboards/ai03/duet/keymaps/default/readme.md | 4 + keyboards/ai03/duet/readme.md | 28 ++++ keyboards/ai03/duet/rules.mk | 1 + 8 files changed, 230 insertions(+) create mode 100644 keyboards/ai03/duet/config.h create mode 100644 keyboards/ai03/duet/info.json create mode 100644 keyboards/ai03/duet/keymaps/coordinate/keymap.c create mode 100644 keyboards/ai03/duet/keymaps/coordinate/readme.md create mode 100644 keyboards/ai03/duet/keymaps/default/keymap.c create mode 100644 keyboards/ai03/duet/keymaps/default/readme.md create mode 100644 keyboards/ai03/duet/readme.md create mode 100644 keyboards/ai03/duet/rules.mk diff --git a/keyboards/ai03/duet/config.h b/keyboards/ai03/duet/config.h new file mode 100644 index 0000000000..9cebd11c6b --- /dev/null +++ b/keyboards/ai03/duet/config.h @@ -0,0 +1,6 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 128 diff --git a/keyboards/ai03/duet/info.json b/keyboards/ai03/duet/info.json new file mode 100644 index 0000000000..1d11c868a3 --- /dev/null +++ b/keyboards/ai03/duet/info.json @@ -0,0 +1,139 @@ +{ + "manufacturer": "ai03 Design Studio", + "keyboard_name": "Duet Switch Tester", + "maintainer": "ai03-2725", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": false, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP29", "GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP22", "GP18", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP8", "GP7", "GP6"], + "rows": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5"] + }, + "processor": "RP2040", + "usb": { + "device_version": "1.0.0", + "pid": "0x0028", + "vid": "0xA103" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.75, "y": 0}, + {"matrix": [0, 7], "x": 7.75, "y": 0}, + {"matrix": [0, 8], "x": 9, "y": 0}, + {"matrix": [0, 9], "x": 10, "y": 0}, + {"matrix": [0, 10], "x": 11.25, "y": 0}, + {"matrix": [0, 11], "x": 12.25, "y": 0}, + {"matrix": [0, 12], "x": 13.5, "y": 0}, + {"matrix": [0, 13], "x": 14.5, "y": 0}, + {"matrix": [0, 14], "x": 15.75, "y": 0}, + {"matrix": [0, 15], "x": 16.75, "y": 0}, + {"matrix": [0, 16], "x": 18, "y": 0}, + {"matrix": [0, 17], "x": 19, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2.25, "y": 1}, + {"matrix": [1, 3], "x": 3.25, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + {"matrix": [1, 7], "x": 7.75, "y": 1}, + {"matrix": [1, 8], "x": 9, "y": 1}, + {"matrix": [1, 9], "x": 10, "y": 1}, + {"matrix": [1, 10], "x": 11.25, "y": 1}, + {"matrix": [1, 11], "x": 12.25, "y": 1}, + {"matrix": [1, 12], "x": 13.5, "y": 1}, + {"matrix": [1, 13], "x": 14.5, "y": 1}, + {"matrix": [1, 14], "x": 15.75, "y": 1}, + {"matrix": [1, 15], "x": 16.75, "y": 1}, + {"matrix": [1, 16], "x": 18, "y": 1}, + {"matrix": [1, 17], "x": 19, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2.25, "y": 2}, + {"matrix": [2, 3], "x": 3.25, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 9, "y": 2}, + {"matrix": [2, 9], "x": 10, "y": 2}, + {"matrix": [2, 10], "x": 11.25, "y": 2}, + {"matrix": [2, 11], "x": 12.25, "y": 2}, + {"matrix": [2, 12], "x": 13.5, "y": 2}, + {"matrix": [2, 13], "x": 14.5, "y": 2}, + {"matrix": [2, 14], "x": 15.75, "y": 2}, + {"matrix": [2, 15], "x": 16.75, "y": 2}, + {"matrix": [2, 16], "x": 18, "y": 2}, + {"matrix": [2, 17], "x": 19, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.5, "y": 3}, + {"matrix": [3, 5], "x": 5.5, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 9, "y": 3}, + {"matrix": [3, 9], "x": 10, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [3, 11], "x": 12.25, "y": 3}, + {"matrix": [3, 12], "x": 13.5, "y": 3}, + {"matrix": [3, 13], "x": 14.5, "y": 3}, + {"matrix": [3, 14], "x": 15.75, "y": 3}, + {"matrix": [3, 15], "x": 16.75, "y": 3}, + {"matrix": [3, 16], "x": 18, "y": 3}, + {"matrix": [3, 17], "x": 19, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.5, "y": 4}, + {"matrix": [4, 5], "x": 5.5, "y": 4}, + {"matrix": [4, 6], "x": 6.75, "y": 4}, + {"matrix": [4, 7], "x": 7.75, "y": 4}, + {"matrix": [4, 8], "x": 9, "y": 4}, + {"matrix": [4, 9], "x": 10, "y": 4}, + {"matrix": [4, 10], "x": 11.25, "y": 4}, + {"matrix": [4, 11], "x": 12.25, "y": 4}, + {"matrix": [4, 12], "x": 13.5, "y": 4}, + {"matrix": [4, 13], "x": 14.5, "y": 4}, + {"matrix": [4, 14], "x": 15.75, "y": 4}, + {"matrix": [4, 15], "x": 16.75, "y": 4}, + {"matrix": [4, 16], "x": 18, "y": 4}, + {"matrix": [4, 17], "x": 19, "y": 4}, + {"matrix": [5, 0], "x": 0, "y": 5}, + {"matrix": [5, 1], "x": 1, "y": 5}, + {"matrix": [5, 2], "x": 2.25, "y": 5}, + {"matrix": [5, 3], "x": 3.25, "y": 5}, + {"matrix": [5, 4], "x": 4.5, "y": 5}, + {"matrix": [5, 5], "x": 5.5, "y": 5}, + {"matrix": [5, 6], "x": 6.75, "y": 5}, + {"matrix": [5, 7], "x": 7.75, "y": 5}, + {"matrix": [5, 8], "x": 9, "y": 5}, + {"matrix": [5, 9], "x": 10, "y": 5}, + {"matrix": [5, 10], "x": 11.25, "y": 5}, + {"matrix": [5, 11], "x": 12.25, "y": 5}, + {"matrix": [5, 12], "x": 13.5, "y": 5}, + {"matrix": [5, 13], "x": 14.5, "y": 5}, + {"matrix": [5, 14], "x": 15.75, "y": 5}, + {"matrix": [5, 15], "x": 16.75, "y": 5}, + {"matrix": [5, 16], "x": 18, "y": 5}, + {"matrix": [5, 17], "x": 19, "y": 5} + ] + } + } +} diff --git a/keyboards/ai03/duet/keymaps/coordinate/keymap.c b/keyboards/ai03/duet/keymaps/coordinate/keymap.c new file mode 100644 index 0000000000..821c029534 --- /dev/null +++ b/keyboards/ai03/duet/keymaps/coordinate/keymap.c @@ -0,0 +1,34 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + + +/* Coordinate keymap - designed to send a string in the format [a-r][0-5] corresponding to the matrix position, where a0 is the top left and r5 is bottom right */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, + KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, + KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, + KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, + KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, + KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0 + ), +}; + + +/* String generation */ + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + if (record->event.pressed) { + char col = record->event.key.col + 'a'; + char row = record->event.key.row + '0'; + char result[2] = {col, row}; + send_string(result); + } + + return false; +} diff --git a/keyboards/ai03/duet/keymaps/coordinate/readme.md b/keyboards/ai03/duet/keymaps/coordinate/readme.md new file mode 100644 index 0000000000..de8245875d --- /dev/null +++ b/keyboards/ai03/duet/keymaps/coordinate/readme.md @@ -0,0 +1,4 @@ +# The coordinate keymap for Duet + +An example keymap which sends a string `[a-r][0-5]` corresponding to the column-row position of the pressed switch. +Possibly useful for pairing to a kiosk device provided the display application can parse and handle this format. diff --git a/keyboards/ai03/duet/keymaps/default/keymap.c b/keyboards/ai03/duet/keymaps/default/keymap.c new file mode 100644 index 0000000000..29f63678a8 --- /dev/null +++ b/keyboards/ai03/duet/keymaps/default/keymap.c @@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, + KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, + KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, + KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, + KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, + KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0, KC_0 + ), +}; diff --git a/keyboards/ai03/duet/keymaps/default/readme.md b/keyboards/ai03/duet/keymaps/default/readme.md new file mode 100644 index 0000000000..fdf727dc96 --- /dev/null +++ b/keyboards/ai03/duet/keymaps/default/readme.md @@ -0,0 +1,4 @@ +# The default keymap for Duet + +Since this is a very irregular keyboard with unique use cases, the keymap should be customized to meet one's needs and to match the requirements of the corresponding display software (if any). +By default, all keys send `KC_0` to simply notify the host that an arbitrary key has been pressed. diff --git a/keyboards/ai03/duet/readme.md b/keyboards/ai03/duet/readme.md new file mode 100644 index 0000000000..43c3d6f7c5 --- /dev/null +++ b/keyboards/ai03/duet/readme.md @@ -0,0 +1,28 @@ +# Duet Switch Tester + +![Cover image](https://i.imgur.com/sFuHJbLh.png) + +A switch tester intended for event/storefront use + +* Keyboard Maintainer: [ai03](https://github.com/ai03-2725) +* Hardware Supported: The [Duet PCB](https://github.com/ai03-2725/duet-switch-tester/tree/main/Duet-MainPCB), powered by the RP2040 +* Hardware Availability: [Open-source](https://github.com/ai03-2725/duet-switch-tester) + + +Make example for this keyboard (after setting up your build environment): + + make ai03/duet:default + +Flashing example for this keyboard: + + make ai03/duet:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Press the reset button on the back of the PCB while holding the Bootmode switch +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/ai03/duet/rules.mk b/keyboards/ai03/duet/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/ai03/duet/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From 80708a91efd38f0a8b7c0c3b58a0992f33459e8f Mon Sep 17 00:00:00 2001 From: Kelwin0313 <139501176+Kelwin0313@users.noreply.github.com> Date: Thu, 9 Nov 2023 01:40:28 +0800 Subject: [PATCH 353/496] [Keyboard] Add PCB Utopia88 (#22257) --- keyboards/kelwin/utopia88/info.json | 131 ++++++++++++++++++ .../kelwin/utopia88/keymaps/default/keymap.c | 36 +++++ .../kelwin/utopia88/keymaps/via/keymap.c | 36 +++++ .../kelwin/utopia88/keymaps/via/rules.mk | 1 + keyboards/kelwin/utopia88/readme.md | 25 ++++ keyboards/kelwin/utopia88/rules.mk | 1 + 6 files changed, 230 insertions(+) create mode 100644 keyboards/kelwin/utopia88/info.json create mode 100644 keyboards/kelwin/utopia88/keymaps/default/keymap.c create mode 100644 keyboards/kelwin/utopia88/keymaps/via/keymap.c create mode 100644 keyboards/kelwin/utopia88/keymaps/via/rules.mk create mode 100644 keyboards/kelwin/utopia88/readme.md create mode 100644 keyboards/kelwin/utopia88/rules.mk diff --git a/keyboards/kelwin/utopia88/info.json b/keyboards/kelwin/utopia88/info.json new file mode 100644 index 0000000000..406642d41c --- /dev/null +++ b/keyboards/kelwin/utopia88/info.json @@ -0,0 +1,131 @@ +{ + "keyboard_name": "Utopia88", + "manufacturer": "Kelwin Studio", + "maintainer": "Kelwin Studio", + "bootloader": "atmel-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": false, + "nkro": true + }, + "indicators": { + "caps_lock": "B0" + }, + "matrix_pins": { + "cols": ["E6", "F0", "F1", "F4", "F5", "F6", "F7", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4", "B2", "B3", "B1"], + "rows": ["B7", "D5", "D3", "D2", "D1", "D0"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0001", + "vid": "0x4B53" + }, + "community_layouts": ["tkl_f13_ansi_tsangan"], + "layouts": { + "LAYOUT_tkl_f13_ansi_tsangan": { + "layout": [ + {"matrix":[0,0], "x":0, "y":0}, + {"matrix":[0,1], "x":1.25, "y":0}, + {"matrix":[0,2], "x":2.25, "y":0}, + {"matrix":[0,3], "x":3.25, "y":0}, + {"matrix":[0,4], "x":4.25, "y":0}, + {"matrix":[0,6], "x":5.5, "y":0}, + {"matrix":[0,7], "x":6.5, "y":0}, + {"matrix":[0,8], "x":7.5, "y":0}, + {"matrix":[0,9], "x":8.5, "y":0}, + {"matrix":[0,10], "x":9.75, "y":0}, + {"matrix":[0,11], "x":10.75, "y":0}, + {"matrix":[0,12], "x":11.75, "y":0}, + {"matrix":[0,13], "x":12.75, "y":0}, + {"matrix":[0,14], "x":14, "y":0}, + {"matrix":[0,15], "x":15.25, "y":0}, + {"matrix":[0,16], "x":16.25, "y":0}, + {"matrix":[0,17], "x":17.25, "y":0}, + + {"matrix":[1,0], "x":0, "y":1.25}, + {"matrix":[1,1], "x":1, "y":1.25}, + {"matrix":[1,2], "x":2, "y":1.25}, + {"matrix":[1,3], "x":3, "y":1.25}, + {"matrix":[1,4], "x":4, "y":1.25}, + {"matrix":[1,5], "x":5, "y":1.25}, + {"matrix":[1,6], "x":6, "y":1.25}, + {"matrix":[1,7], "x":7, "y":1.25}, + {"matrix":[1,8], "x":8, "y":1.25}, + {"matrix":[1,9], "x":9, "y":1.25}, + {"matrix":[1,10], "x":10, "y":1.25}, + {"matrix":[1,11], "x":11, "y":1.25}, + {"matrix":[1,12], "x":12, "y":1.25}, + {"matrix":[1,14], "x":13, "y":1.25, "w":2}, + {"matrix":[1,15], "x":15.25, "y":1.25}, + {"matrix":[1,16], "x":16.25, "y":1.25}, + {"matrix":[1,17], "x":17.25, "y":1.25}, + + {"matrix":[2,0], "x":0, "y":2.25, "w":1.5}, + {"matrix":[2,2], "x":1.5, "y":2.25}, + {"matrix":[2,3], "x":2.5, "y":2.25}, + {"matrix":[2,4], "x":3.5, "y":2.25}, + {"matrix":[2,5], "x":4.5, "y":2.25}, + {"matrix":[2,6], "x":5.5, "y":2.25}, + {"matrix":[2,7], "x":6.5, "y":2.25}, + {"matrix":[2,8], "x":7.5, "y":2.25}, + {"matrix":[2,9], "x":8.5, "y":2.25}, + {"matrix":[2,10], "x":9.5, "y":2.25}, + {"matrix":[2,11], "x":10.5, "y":2.25}, + {"matrix":[2,12], "x":11.5, "y":2.25}, + {"matrix":[2,13], "x":12.5, "y":2.25}, + {"matrix":[2,14], "x":13.5, "y":2.25, "w":1.5}, + {"matrix":[2,15], "x":15.25, "y":2.25}, + {"matrix":[2,16], "x":16.25, "y":2.25}, + {"matrix":[2,17], "x":17.25, "y":2.25}, + + {"matrix":[3,0], "x":0, "y":3.25, "w":1.75}, + {"matrix":[3,2], "x":1.75, "y":3.25}, + {"matrix":[3,3], "x":2.75, "y":3.25}, + {"matrix":[3,4], "x":3.75, "y":3.25}, + {"matrix":[3,5], "x":4.75, "y":3.25}, + {"matrix":[3,6], "x":5.75, "y":3.25}, + {"matrix":[3,7], "x":6.75, "y":3.25}, + {"matrix":[3,8], "x":7.75, "y":3.25}, + {"matrix":[3,9], "x":8.75, "y":3.25}, + {"matrix":[3,10], "x":9.75, "y":3.25}, + {"matrix":[3,11], "x":10.75, "y":3.25}, + {"matrix":[3,12], "x":11.75, "y":3.25}, + {"matrix":[3,13], "x":12.75, "y":3.25, "w":2.25}, + {"matrix":[4,1], "x":0, "y":4.25, "w":2.25}, + {"matrix":[4,2], "x":2.25, "y":4.25}, + {"matrix":[4,3], "x":3.25, "y":4.25}, + {"matrix":[4,4], "x":4.25, "y":4.25}, + {"matrix":[4,5], "x":5.25, "y":4.25}, + {"matrix":[4,6], "x":6.25, "y":4.25}, + {"matrix":[4,7], "x":7.25, "y":4.25}, + {"matrix":[4,8], "x":8.25, "y":4.25}, + {"matrix":[4,9], "x":9.25, "y":4.25}, + {"matrix":[4,10], "x":10.25, "y":4.25}, + {"matrix":[4,11], "x":11.25, "y":4.25}, + {"matrix":[4,13], "x":12.25, "y":4.25, "w":2.75}, + {"matrix":[4,16], "x":16.25, "y":4.25}, + + {"matrix":[5,0], "x":0, "y":5.25, "w":1.5}, + {"matrix":[5,2], "x":1.5, "y":5.25}, + {"matrix":[5,3], "x":2.5, "y":5.25, "w":1.5}, + {"matrix":[5,7], "x":4, "y":5.25, "w":7}, + {"matrix":[5,11], "x":11, "y":5.25, "w":1.5}, + {"matrix":[5,13], "x":12.5, "y":5.25}, + {"matrix":[5,14], "x":13.5, "y":5.25, "w":1.5}, + {"matrix":[5,15], "x":15.25, "y":5.25}, + {"matrix":[5,16], "x":16.25, "y":5.25}, + {"matrix":[5,17], "x":17.25, "y":5.25} + ] + } + } +} + \ No newline at end of file diff --git a/keyboards/kelwin/utopia88/keymaps/default/keymap.c b/keyboards/kelwin/utopia88/keymaps/default/keymap.c new file mode 100644 index 0000000000..d7afaf0877 --- /dev/null +++ b/keyboards/kelwin/utopia88/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2023 kelwin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_f13_ansi_tsangan( + KC_ESC, 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_NO, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_f13_ansi_tsangan( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/kelwin/utopia88/keymaps/via/keymap.c b/keyboards/kelwin/utopia88/keymaps/via/keymap.c new file mode 100644 index 0000000000..d7afaf0877 --- /dev/null +++ b/keyboards/kelwin/utopia88/keymaps/via/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2023 kelwin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_f13_ansi_tsangan( + KC_ESC, 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_NO, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_f13_ansi_tsangan( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/kelwin/utopia88/keymaps/via/rules.mk b/keyboards/kelwin/utopia88/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/kelwin/utopia88/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/kelwin/utopia88/readme.md b/keyboards/kelwin/utopia88/readme.md new file mode 100644 index 0000000000..f34e3540ec --- /dev/null +++ b/keyboards/kelwin/utopia88/readme.md @@ -0,0 +1,25 @@ +# Utopia88 + +![Utopia88](https://i.imgur.com/pRKQIIHh.jpeg) + +* Keyboard Maintainer: [kelwin](https://github.com/Kelwin0313) +* Hardware Supported: Utopia88 PCBs, atmega32u4 +* Hardware Availability: Private Group-Buy + +Make example for this keyboard (after setting up your build environment): + + make kelwin/utopia88:default + +Flashing example for this keyboard: + + make kelwin/utopia88:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kelwin/utopia88/rules.mk b/keyboards/kelwin/utopia88/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/kelwin/utopia88/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From 5a281d1ee987e83560ffb16a92c8f5a8826f7655 Mon Sep 17 00:00:00 2001 From: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Date: Wed, 8 Nov 2023 12:41:38 -0500 Subject: [PATCH 354/496] feat(mechwild/clunker): new layouts (#22342) --- keyboards/mechwild/clunker/config.h | 16 - keyboards/mechwild/clunker/info.json | 656 ++++++++++++++++-- .../mechwild/clunker/keymaps/default/keymap.c | 8 +- .../mechwild/clunker/keymaps/via/keymap.c | 8 +- 4 files changed, 598 insertions(+), 90 deletions(-) diff --git a/keyboards/mechwild/clunker/config.h b/keyboards/mechwild/clunker/config.h index 62caa25bb3..ee32fde520 100644 --- a/keyboards/mechwild/clunker/config.h +++ b/keyboards/mechwild/clunker/config.h @@ -3,20 +3,4 @@ #pragma once -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT - #define SOLENOID_PIN F4 diff --git a/keyboards/mechwild/clunker/info.json b/keyboards/mechwild/clunker/info.json index 530f0fe972..1a4114f8f2 100644 --- a/keyboards/mechwild/clunker/info.json +++ b/keyboards/mechwild/clunker/info.json @@ -2,88 +2,612 @@ "manufacturer": "MechWild", "keyboard_name": "Clunker", "maintainer": "kylemccreery", - "bootloader": "caterina", + "development_board": "promicro", "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "D2", "pin_b": "D3"} + ] + }, "features": { "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": true, - "nkro": true, "encoder": true, - "haptic": true + "extrakey": true, + "haptic": true, + "mousekey": true, + "nkro": true }, "matrix_pins": { - "rows": ["F5", "F6", "B3", "F7", "B2", "B1", "B6"], - "cols": ["D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"] + "cols": ["D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"], + "rows": ["F5", "F6", "B3", "F7", "B2", "B1", "B6"] }, - "processor": "atmega32u4", "url": "https://mechwild.com/product/clunker/", "usb": { "device_version": "1.3.0", "pid": "0x1711", "vid": "0x6D77" }, - "encoder": { - "rotary": [ - {"pin_a": "D2", "pin_b": "D3"} - ] + "layout_aliases": { + "LAYOUT": "LAYOUT_all" }, "layouts": { - "LAYOUT": { + "LAYOUT_625u": { "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [5, 7], "x": 8.5, "y": 1}, - {"matrix": [5, 6], "x": 9.5, "y": 1}, - {"matrix": [5, 5], "x": 10.5, "y": 1}, - {"matrix": [5, 4], "x": 11.5, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [5, 1], "x": 8.75, "y": 2}, - {"matrix": [5, 2], "x": 9.75, "y": 2}, - {"matrix": [5, 3], "x": 10.75, "y": 2, "w": 1.75}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [6, 7], "x": 8.25, "y": 3}, - {"matrix": [6, 6], "x": 9.25, "y": 3}, - {"matrix": [6, 5], "x": 10.25, "y": 3}, - {"matrix": [6, 4], "x": 11.25, "y": 3, "w": 1.25}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 3], "x": 3.75, "y": 4, "w": 2.75}, - {"matrix": [4, 4], "x": 6.5, "y": 4, "w": 2.25}, - {"matrix": [4, 5], "x": 8.75, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 7], "x": 11.25, "y": 4, "w": 1.25} + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [5, 7], "x": 8.5, "y": 1}, + {"matrix": [5, 6], "x": 9.5, "y": 1}, + {"matrix": [5, 5], "x": 10.5, "y": 1}, + {"matrix": [5, 4], "x": 11.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [5, 1], "x": 8.75, "y": 2}, + {"matrix": [5, 2], "x": 9.75, "y": 2}, + {"matrix": [5, 3], "x": 10.75, "y": 2, "w": 1.75}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [6, 7], "x": 8.25, "y": 3}, + {"matrix": [6, 6], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4, "w": 6.25}, + {"matrix": [4, 5], "x": 9.5, "y": 4}, + {"matrix": [4, 6], "x": 10.5, "y": 4}, + {"matrix": [4, 7], "x": 11.5, "y": 4} + ] + }, + "LAYOUT_7u": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [5, 7], "x": 8.5, "y": 1}, + {"matrix": [5, 6], "x": 9.5, "y": 1}, + {"matrix": [5, 5], "x": 10.5, "y": 1}, + {"matrix": [5, 4], "x": 11.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [5, 1], "x": 8.75, "y": 2}, + {"matrix": [5, 2], "x": 9.75, "y": 2}, + {"matrix": [5, 3], "x": 10.75, "y": 2, "w": 1.75}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [6, 7], "x": 8.25, "y": 3}, + {"matrix": [6, 6], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5}, + {"matrix": [4, 3], "x": 2.75, "y": 4, "w": 7}, + {"matrix": [4, 6], "x": 9.75, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 11.25, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_split_lshift_625u": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [5, 7], "x": 8.5, "y": 1}, + {"matrix": [5, 6], "x": 9.5, "y": 1}, + {"matrix": [5, 5], "x": 10.5, "y": 1}, + {"matrix": [5, 4], "x": 11.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [5, 1], "x": 8.75, "y": 2}, + {"matrix": [5, 2], "x": 9.75, "y": 2}, + {"matrix": [5, 3], "x": 10.75, "y": 2, "w": 1.75}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [6, 7], "x": 8.25, "y": 3}, + {"matrix": [6, 6], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4, "w": 6.25}, + {"matrix": [4, 5], "x": 9.5, "y": 4}, + {"matrix": [4, 6], "x": 10.5, "y": 4}, + {"matrix": [4, 7], "x": 11.5, "y": 4} + ] + }, + "LAYOUT_split_lshift_7u": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [5, 7], "x": 8.5, "y": 1}, + {"matrix": [5, 6], "x": 9.5, "y": 1}, + {"matrix": [5, 5], "x": 10.5, "y": 1}, + {"matrix": [5, 4], "x": 11.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [5, 1], "x": 8.75, "y": 2}, + {"matrix": [5, 2], "x": 9.75, "y": 2}, + {"matrix": [5, 3], "x": 10.75, "y": 2, "w": 1.75}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [6, 7], "x": 8.25, "y": 3}, + {"matrix": [6, 6], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5}, + {"matrix": [4, 3], "x": 2.75, "y": 4, "w": 7}, + {"matrix": [4, 6], "x": 9.75, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 11.25, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_split_lshift_split_rshift_625u": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [5, 7], "x": 8.5, "y": 1}, + {"matrix": [5, 6], "x": 9.5, "y": 1}, + {"matrix": [5, 5], "x": 10.5, "y": 1}, + {"matrix": [5, 4], "x": 11.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [5, 1], "x": 8.75, "y": 2}, + {"matrix": [5, 2], "x": 9.75, "y": 2}, + {"matrix": [5, 3], "x": 10.75, "y": 2, "w": 1.75}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [6, 7], "x": 8.25, "y": 3}, + {"matrix": [6, 6], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [6, 4], "x": 11.25, "y": 3, "w": 1.25}, + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4, "w": 6.25}, + {"matrix": [4, 5], "x": 9.5, "y": 4}, + {"matrix": [4, 6], "x": 10.5, "y": 4}, + {"matrix": [4, 7], "x": 11.5, "y": 4} + ] + }, + "LAYOUT_split_lshift_split_rshift_7u": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [5, 7], "x": 8.5, "y": 1}, + {"matrix": [5, 6], "x": 9.5, "y": 1}, + {"matrix": [5, 5], "x": 10.5, "y": 1}, + {"matrix": [5, 4], "x": 11.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [5, 1], "x": 8.75, "y": 2}, + {"matrix": [5, 2], "x": 9.75, "y": 2}, + {"matrix": [5, 3], "x": 10.75, "y": 2, "w": 1.75}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [6, 7], "x": 8.25, "y": 3}, + {"matrix": [6, 6], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [6, 4], "x": 11.25, "y": 3, "w": 1.25}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5}, + {"matrix": [4, 3], "x": 2.75, "y": 4, "w": 7}, + {"matrix": [4, 6], "x": 9.75, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 11.25, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_split_rshift_625u": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [5, 7], "x": 8.5, "y": 1}, + {"matrix": [5, 6], "x": 9.5, "y": 1}, + {"matrix": [5, 5], "x": 10.5, "y": 1}, + {"matrix": [5, 4], "x": 11.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [5, 1], "x": 8.75, "y": 2}, + {"matrix": [5, 2], "x": 9.75, "y": 2}, + {"matrix": [5, 3], "x": 10.75, "y": 2, "w": 1.75}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [6, 7], "x": 8.25, "y": 3}, + {"matrix": [6, 6], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [6, 4], "x": 11.25, "y": 3, "w": 1.25}, + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4, "w": 6.25}, + {"matrix": [4, 5], "x": 9.5, "y": 4}, + {"matrix": [4, 6], "x": 10.5, "y": 4}, + {"matrix": [4, 7], "x": 11.5, "y": 4} + ] + }, + "LAYOUT_split_rshift_7u": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [5, 7], "x": 8.5, "y": 1}, + {"matrix": [5, 6], "x": 9.5, "y": 1}, + {"matrix": [5, 5], "x": 10.5, "y": 1}, + {"matrix": [5, 4], "x": 11.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [5, 1], "x": 8.75, "y": 2}, + {"matrix": [5, 2], "x": 9.75, "y": 2}, + {"matrix": [5, 3], "x": 10.75, "y": 2, "w": 1.75}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [6, 7], "x": 8.25, "y": 3}, + {"matrix": [6, 6], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [6, 4], "x": 11.25, "y": 3, "w": 1.25}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5}, + {"matrix": [4, 3], "x": 2.75, "y": 4, "w": 7}, + {"matrix": [4, 6], "x": 9.75, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 11.25, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_split_lshift_split_space": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [5, 7], "x": 8.5, "y": 1}, + {"matrix": [5, 6], "x": 9.5, "y": 1}, + {"matrix": [5, 5], "x": 10.5, "y": 1}, + {"matrix": [5, 4], "x": 11.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [5, 1], "x": 8.75, "y": 2}, + {"matrix": [5, 2], "x": 9.75, "y": 2}, + {"matrix": [5, 3], "x": 10.75, "y": 2, "w": 1.75}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [6, 7], "x": 8.25, "y": 3}, + {"matrix": [6, 6], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 3], "x": 3.75, "y": 4, "w": 2.75}, + {"matrix": [4, 4], "x": 6.5, "y": 4, "w": 2.25}, + {"matrix": [4, 5], "x": 8.75, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 11.25, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_split_rshift_split_space": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [5, 7], "x": 8.5, "y": 1}, + {"matrix": [5, 6], "x": 9.5, "y": 1}, + {"matrix": [5, 5], "x": 10.5, "y": 1}, + {"matrix": [5, 4], "x": 11.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [5, 1], "x": 8.75, "y": 2}, + {"matrix": [5, 2], "x": 9.75, "y": 2}, + {"matrix": [5, 3], "x": 10.75, "y": 2, "w": 1.75}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [6, 7], "x": 8.25, "y": 3}, + {"matrix": [6, 6], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [6, 4], "x": 11.25, "y": 3, "w": 1.25}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 3], "x": 3.75, "y": 4, "w": 2.75}, + {"matrix": [4, 4], "x": 6.5, "y": 4, "w": 2.25}, + {"matrix": [4, 5], "x": 8.75, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 11.25, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [5, 7], "x": 8.5, "y": 1}, + {"matrix": [5, 6], "x": 9.5, "y": 1}, + {"matrix": [5, 5], "x": 10.5, "y": 1}, + {"matrix": [5, 4], "x": 11.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [5, 1], "x": 8.75, "y": 2}, + {"matrix": [5, 2], "x": 9.75, "y": 2}, + {"matrix": [5, 3], "x": 10.75, "y": 2, "w": 1.75}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [6, 7], "x": 8.25, "y": 3}, + {"matrix": [6, 6], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [6, 4], "x": 11.25, "y": 3, "w": 1.25}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 3], "x": 3.75, "y": 4, "w": 2.75}, + {"matrix": [4, 4], "x": 6.5, "y": 4, "w": 2.25}, + {"matrix": [4, 5], "x": 8.75, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 11.25, "y": 4, "w": 1.25} ] } } diff --git a/keyboards/mechwild/clunker/keymaps/default/keymap.c b/keyboards/mechwild/clunker/keymaps/default/keymap.c index fd9c93fe87..28322a737e 100644 --- a/keyboards/mechwild/clunker/keymaps/default/keymap.c +++ b/keyboards/mechwild/clunker/keymaps/default/keymap.c @@ -15,28 +15,28 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [_BASE] = LAYOUT( + [_BASE] = LAYOUT_all( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_MUTE, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, MO(_FN1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_LSFT, KC_SLSH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, MO(_FN2), KC_RCTL ), - [_FN1] = LAYOUT( + [_FN1] = LAYOUT_all( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, HF_TOGG, _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_QUOT, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_UP, KC_SLSH, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT ), - [_FN2] = LAYOUT( + [_FN2] = LAYOUT_all( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [_FN3] = LAYOUT( + [_FN3] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/mechwild/clunker/keymaps/via/keymap.c b/keyboards/mechwild/clunker/keymaps/via/keymap.c index fd9c93fe87..28322a737e 100644 --- a/keyboards/mechwild/clunker/keymaps/via/keymap.c +++ b/keyboards/mechwild/clunker/keymaps/via/keymap.c @@ -15,28 +15,28 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [_BASE] = LAYOUT( + [_BASE] = LAYOUT_all( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_MUTE, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, MO(_FN1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_LSFT, KC_SLSH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, MO(_FN2), KC_RCTL ), - [_FN1] = LAYOUT( + [_FN1] = LAYOUT_all( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, HF_TOGG, _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_QUOT, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_UP, KC_SLSH, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT ), - [_FN2] = LAYOUT( + [_FN2] = LAYOUT_all( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [_FN3] = LAYOUT( + [_FN3] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, From 64bbeff57d34d8795cc1f6952d66bc96141c9cb5 Mon Sep 17 00:00:00 2001 From: Yak <68242321+yakMM@users.noreply.github.com> Date: Wed, 8 Nov 2023 18:42:08 +0100 Subject: [PATCH 355/496] Fix Herringbone pro Layouts (#22317) Co-authored-by: Duncan Sutherland --- keyboards/rmi_kb/herringbone/pro/info.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/keyboards/rmi_kb/herringbone/pro/info.json b/keyboards/rmi_kb/herringbone/pro/info.json index bbef69f28a..caab0f11e1 100644 --- a/keyboards/rmi_kb/herringbone/pro/info.json +++ b/keyboards/rmi_kb/herringbone/pro/info.json @@ -15,7 +15,7 @@ "diode_direction": "COL2ROW", "encoder": { "rotary": [ - {"pin_a": "C3", "pin_b": "C2"} + {"pin_a": "C3", "pin_b": "C2", "resolution": 2} ] }, "processor": "atmega32a", @@ -247,9 +247,7 @@ {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [6, 0], "x": 15.25, "y": 0}, - {"matrix": [0, 14], "x": 16.25, "y": 0}, - {"matrix": [6, 1], "x": 17.25, "y": 0}, + {"matrix": [0, 14], "x": 15.5, "y": 0}, {"matrix": [1, 0], "x": 0, "y": 1.25}, {"matrix": [1, 1], "x": 1, "y": 1.25}, @@ -329,7 +327,9 @@ {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.5}, {"matrix": [5, 10], "x": 11.5, "y": 5.25, "w": 1.5}, - {"matrix": [5, 13], "x": 14.25, "y": 5.5} + {"matrix": [5, 12], "x": 13.25, "y": 5.5}, + {"matrix": [5, 13], "x": 14.25, "y": 5.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.5} ] } } From 75e1a0d61062a63198c12491a4c471ed32217d78 Mon Sep 17 00:00:00 2001 From: Jeayo Keh Date: Thu, 9 Nov 2023 01:45:24 +0800 Subject: [PATCH 356/496] [Keyboard] Rename soda/{mango,pocket} (#22151) Co-authored-by: Joel Challis --- data/mappings/keyboard_aliases.hjson | 6 ++++++ keyboards/{soda/mango => magic_force/mf17}/config.h | 0 keyboards/{soda/mango => magic_force/mf17}/info.json | 6 +++--- .../mango => magic_force/mf17}/keymaps/default/keymap.c | 0 .../{soda/mango => magic_force/mf17}/keymaps/via/keymap.c | 0 .../{soda/mango => magic_force/mf17}/keymaps/via/rules.mk | 0 keyboards/{soda/mango => magic_force/mf17}/readme.md | 7 +++---- keyboards/{soda/mango => magic_force/mf17}/rules.mk | 0 keyboards/{soda/pocket => magic_force/mf34}/chconf.h | 0 keyboards/{soda/pocket => magic_force/mf34}/config.h | 0 keyboards/{soda/pocket => magic_force/mf34}/info.json | 6 +++--- .../pocket => magic_force/mf34}/keymaps/default/keymap.c | 0 .../{soda/pocket => magic_force/mf34}/keymaps/via/keymap.c | 0 .../{soda/pocket => magic_force/mf34}/keymaps/via/rules.mk | 0 keyboards/{soda/pocket => magic_force/mf34}/mcuconf.h | 0 .../{soda/pocket/pocket.c => magic_force/mf34/mf34.c} | 0 keyboards/{soda/pocket => magic_force/mf34}/readme.md | 6 +++--- keyboards/{soda/pocket => magic_force/mf34}/rules.mk | 0 18 files changed, 18 insertions(+), 13 deletions(-) rename keyboards/{soda/mango => magic_force/mf17}/config.h (100%) rename keyboards/{soda/mango => magic_force/mf17}/info.json (98%) rename keyboards/{soda/mango => magic_force/mf17}/keymaps/default/keymap.c (100%) rename keyboards/{soda/mango => magic_force/mf17}/keymaps/via/keymap.c (100%) rename keyboards/{soda/mango => magic_force/mf17}/keymaps/via/rules.mk (100%) rename keyboards/{soda/mango => magic_force/mf17}/readme.md (90%) rename keyboards/{soda/mango => magic_force/mf17}/rules.mk (100%) rename keyboards/{soda/pocket => magic_force/mf34}/chconf.h (100%) rename keyboards/{soda/pocket => magic_force/mf34}/config.h (100%) rename keyboards/{soda/pocket => magic_force/mf34}/info.json (96%) rename keyboards/{soda/pocket => magic_force/mf34}/keymaps/default/keymap.c (100%) rename keyboards/{soda/pocket => magic_force/mf34}/keymaps/via/keymap.c (100%) rename keyboards/{soda/pocket => magic_force/mf34}/keymaps/via/rules.mk (100%) rename keyboards/{soda/pocket => magic_force/mf34}/mcuconf.h (100%) rename keyboards/{soda/pocket/pocket.c => magic_force/mf34/mf34.c} (100%) rename keyboards/{soda/pocket => magic_force/mf34}/readme.md (90%) rename keyboards/{soda/pocket => magic_force/mf34}/rules.mk (100%) diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 038d4d588e..debbf2c047 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -1215,6 +1215,12 @@ "setta21": { "target": "salicylic_acid3/setta21" }, + "soda/mango": { + "target": "magic_force/mf17" + }, + "soda/pocket": { + "target": "magic_force/mf34" + }, "space_space/rev1": { "target": "qpockets/space_space/rev1" }, diff --git a/keyboards/soda/mango/config.h b/keyboards/magic_force/mf17/config.h similarity index 100% rename from keyboards/soda/mango/config.h rename to keyboards/magic_force/mf17/config.h diff --git a/keyboards/soda/mango/info.json b/keyboards/magic_force/mf17/info.json similarity index 98% rename from keyboards/soda/mango/info.json rename to keyboards/magic_force/mf17/info.json index 9de040efba..397a5c879a 100644 --- a/keyboards/soda/mango/info.json +++ b/keyboards/magic_force/mf17/info.json @@ -1,8 +1,8 @@ { - "manufacturer": "Soda", - "keyboard_name": "Mango", + "manufacturer": "MagicForce", + "keyboard_name": "MF17", "url": "https://github.com/gezhaoyou", - "maintainer": "JeayoKeh", + "maintainer": "MagicForce", "diode_direction": "ROW2COL", "processor": "STM32F072", "bootloader": "stm32-dfu", diff --git a/keyboards/soda/mango/keymaps/default/keymap.c b/keyboards/magic_force/mf17/keymaps/default/keymap.c similarity index 100% rename from keyboards/soda/mango/keymaps/default/keymap.c rename to keyboards/magic_force/mf17/keymaps/default/keymap.c diff --git a/keyboards/soda/mango/keymaps/via/keymap.c b/keyboards/magic_force/mf17/keymaps/via/keymap.c similarity index 100% rename from keyboards/soda/mango/keymaps/via/keymap.c rename to keyboards/magic_force/mf17/keymaps/via/keymap.c diff --git a/keyboards/soda/mango/keymaps/via/rules.mk b/keyboards/magic_force/mf17/keymaps/via/rules.mk similarity index 100% rename from keyboards/soda/mango/keymaps/via/rules.mk rename to keyboards/magic_force/mf17/keymaps/via/rules.mk diff --git a/keyboards/soda/mango/readme.md b/keyboards/magic_force/mf17/readme.md similarity index 90% rename from keyboards/soda/mango/readme.md rename to keyboards/magic_force/mf17/readme.md index 1a1eb6bccc..bb75cadfe9 100644 --- a/keyboards/soda/mango/readme.md +++ b/keyboards/magic_force/mf17/readme.md @@ -1,17 +1,16 @@ -# mango-17 +# MF-17 A customizable 17 keyboard, support both HOTSWAP and SOLDER. * Keyboard Maintainer: [gezhaoyou](https://github.com/gezhaoyou) * Hardware Supported: [gezhaoyou](https://github.com/gezhaoyou) - Make example for this keyboard (after setting up your build environment): - make soda/mango:default + make magic_force/mf17:default Flashing example for this keyboard: - make soda/mango:default:flash + make magic_force/mf17:default:flash 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). diff --git a/keyboards/soda/mango/rules.mk b/keyboards/magic_force/mf17/rules.mk similarity index 100% rename from keyboards/soda/mango/rules.mk rename to keyboards/magic_force/mf17/rules.mk diff --git a/keyboards/soda/pocket/chconf.h b/keyboards/magic_force/mf34/chconf.h similarity index 100% rename from keyboards/soda/pocket/chconf.h rename to keyboards/magic_force/mf34/chconf.h diff --git a/keyboards/soda/pocket/config.h b/keyboards/magic_force/mf34/config.h similarity index 100% rename from keyboards/soda/pocket/config.h rename to keyboards/magic_force/mf34/config.h diff --git a/keyboards/soda/pocket/info.json b/keyboards/magic_force/mf34/info.json similarity index 96% rename from keyboards/soda/pocket/info.json rename to keyboards/magic_force/mf34/info.json index 9ae9f1b0de..86b08087cb 100644 --- a/keyboards/soda/pocket/info.json +++ b/keyboards/magic_force/mf34/info.json @@ -1,8 +1,8 @@ { - "keyboard_name": "Pocket", + "keyboard_name": "MagicForce", "url": "", - "maintainer": "qmk", - "manufacturer": "gezhaoyou", + "maintainer": "MagicForce", + "manufacturer": "MagicForce", "usb": { "vid": "0x1A53", "pid": "0x4F51", diff --git a/keyboards/soda/pocket/keymaps/default/keymap.c b/keyboards/magic_force/mf34/keymaps/default/keymap.c similarity index 100% rename from keyboards/soda/pocket/keymaps/default/keymap.c rename to keyboards/magic_force/mf34/keymaps/default/keymap.c diff --git a/keyboards/soda/pocket/keymaps/via/keymap.c b/keyboards/magic_force/mf34/keymaps/via/keymap.c similarity index 100% rename from keyboards/soda/pocket/keymaps/via/keymap.c rename to keyboards/magic_force/mf34/keymaps/via/keymap.c diff --git a/keyboards/soda/pocket/keymaps/via/rules.mk b/keyboards/magic_force/mf34/keymaps/via/rules.mk similarity index 100% rename from keyboards/soda/pocket/keymaps/via/rules.mk rename to keyboards/magic_force/mf34/keymaps/via/rules.mk diff --git a/keyboards/soda/pocket/mcuconf.h b/keyboards/magic_force/mf34/mcuconf.h similarity index 100% rename from keyboards/soda/pocket/mcuconf.h rename to keyboards/magic_force/mf34/mcuconf.h diff --git a/keyboards/soda/pocket/pocket.c b/keyboards/magic_force/mf34/mf34.c similarity index 100% rename from keyboards/soda/pocket/pocket.c rename to keyboards/magic_force/mf34/mf34.c diff --git a/keyboards/soda/pocket/readme.md b/keyboards/magic_force/mf34/readme.md similarity index 90% rename from keyboards/soda/pocket/readme.md rename to keyboards/magic_force/mf34/readme.md index dcb97c92b0..25a72d644f 100644 --- a/keyboards/soda/pocket/readme.md +++ b/keyboards/magic_force/mf34/readme.md @@ -1,4 +1,4 @@ -# Pocket-34 +# MF-34 A customizable 34 keyboard, support both HOTSWAP and SOLDER. @@ -7,11 +7,11 @@ A customizable 34 keyboard, support both HOTSWAP and SOLDER. Make example for this keyboard (after setting up your build environment): - make soda/pocket:default + make magic_force/mf34:default Flashing example for this keyboard: - make soda/pocket:default:flash + make magic_force/mf34:default:flash ## Bootloader diff --git a/keyboards/soda/pocket/rules.mk b/keyboards/magic_force/mf34/rules.mk similarity index 100% rename from keyboards/soda/pocket/rules.mk rename to keyboards/magic_force/mf34/rules.mk From 72f93e7fc2f6eae29c4b4a5a0875714c48e1a69b Mon Sep 17 00:00:00 2001 From: "Fredrik A. Kristiansen" Date: Wed, 8 Nov 2023 22:00:48 +0100 Subject: [PATCH 357/496] Add iso85k keyboard (#22411) Co-authored-by: Duncan Sutherland --- keyboards/handwired/iso85k/info.json | 123 ++++++++++++++++++ .../handwired/iso85k/keymaps/default/keymap.c | 28 ++++ .../handwired/iso85k/keymaps/via/keymap.c | 28 ++++ .../handwired/iso85k/keymaps/via/rules.mk | 1 + keyboards/handwired/iso85k/readme.md | 25 ++++ keyboards/handwired/iso85k/rules.mk | 1 + 6 files changed, 206 insertions(+) create mode 100644 keyboards/handwired/iso85k/info.json create mode 100644 keyboards/handwired/iso85k/keymaps/default/keymap.c create mode 100644 keyboards/handwired/iso85k/keymaps/via/keymap.c create mode 100644 keyboards/handwired/iso85k/keymaps/via/rules.mk create mode 100644 keyboards/handwired/iso85k/readme.md create mode 100644 keyboards/handwired/iso85k/rules.mk diff --git a/keyboards/handwired/iso85k/info.json b/keyboards/handwired/iso85k/info.json new file mode 100644 index 0000000000..625a356e30 --- /dev/null +++ b/keyboards/handwired/iso85k/info.json @@ -0,0 +1,123 @@ +{ + "manufacturer": "Fredrik A. Kristiansen", + "keyboard_name": "iso85k", + "maintainer": "FredrikAleksander", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": false, + "nkro": true + }, + "matrix_pins": { + "cols": ["A7", "C4", "C5", "B0", "B1", "B2", "B10", "B11", "C10", "C11", "C12", "B3", "B4", "B5", "B8", "B9"], + "rows": ["C7", "C6", "B15", "B14", "B13", "B12"] + }, + "processor": "STM32F072", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0xCAFE", + "vid": "0xD666" + }, + "community_layouts": ["75_iso"], + "layouts": { + "LAYOUT_75_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 14], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 12], "x": 12.75, "y": 3}, + {"matrix": [2, 14], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 13], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5}, + {"matrix": [5, 11], "x": 11, "y": 5}, + {"matrix": [5, 12], "x": 12, "y": 5}, + {"matrix": [5, 13], "x": 13, "y": 5}, + {"matrix": [5, 14], "x": 14, "y": 5}, + {"matrix": [5, 15], "x": 15, "y": 5} + ] + } + } +} diff --git a/keyboards/handwired/iso85k/keymaps/default/keymap.c b/keyboards/handwired/iso85k/keymaps/default/keymap.c new file mode 100644 index 0000000000..aaba9c1ea1 --- /dev/null +++ b/keyboards/handwired/iso85k/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +// Copyright 2023 Fredrik A. Kristiansen (fredrikaxk@gmail.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _BL, + _FL +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BL] = LAYOUT_75_iso( + KC_ESC, 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_PSCR, KC_PAUS, KC_DEL, + KC_GRV, 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_BSPC, KC_HOME, + 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_PGUP, + 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_PGDN, + 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_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FL] = LAYOUT_75_iso( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NUM, KC_SCRL, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/handwired/iso85k/keymaps/via/keymap.c b/keyboards/handwired/iso85k/keymaps/via/keymap.c new file mode 100644 index 0000000000..3d64364cc6 --- /dev/null +++ b/keyboards/handwired/iso85k/keymaps/via/keymap.c @@ -0,0 +1,28 @@ +// Copyright 2023 Fredrik A. Kristiansen (fredrikaxk@gmail.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _BL, + _FL +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BL] = LAYOUT_75_iso( + KC_ESC, 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_PSCR, KC_PAUS, KC_DEL, + KC_GRV, 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_BSPC, KC_HOME, + 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_PGUP, + 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_PGDN, + 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_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FL] = LAYOUT_75_iso( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NUM, KC_SCRL, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/handwired/iso85k/keymaps/via/rules.mk b/keyboards/handwired/iso85k/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/handwired/iso85k/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/handwired/iso85k/readme.md b/keyboards/handwired/iso85k/readme.md new file mode 100644 index 0000000000..89e3d60d2a --- /dev/null +++ b/keyboards/handwired/iso85k/readme.md @@ -0,0 +1,25 @@ +# iso85k + +*A 85-key ISO keyboard* + +* Keyboard Maintainer: [Fredrik A. Kristiansen](https://github.com/FredrikAleksander) +* Hardware Supported: Custom PCB using STM32F072 +* Hardware Availability: PCB gerbers available upon request (fredrikaxk@gmail.com) + +Make example for this keyboard (after setting up your build environment): + + make handwired/iso85k:via + +Flashing example for this keyboard: + + make handwired/iso85k:via:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB, while shorting the pins marked BOOT0 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/iso85k/rules.mk b/keyboards/handwired/iso85k/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/handwired/iso85k/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From 10cdd007515788c3bd95bbe3b485f14548f7fb31 Mon Sep 17 00:00:00 2001 From: John Barbero Date: Thu, 9 Nov 2023 02:55:08 +0100 Subject: [PATCH 358/496] Fix corne keylog (#22420) * [Keyboard] Fix bug in set_keylog function Fixes issue where some keys would not trigger the oled to output the row and column of a pressed key (would happen with LT(...) for my keymap) * [Keyboard] Tiny improvement to oled_render_keylog for crkbd Added improvement suggestion I got for another keyboard --- keyboards/crkbd/crkbd.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/crkbd/crkbd.c b/keyboards/crkbd/crkbd.c index 3c1cd5565b..2ac0e63125 100644 --- a/keyboards/crkbd/crkbd.c +++ b/keyboards/crkbd/crkbd.c @@ -71,6 +71,10 @@ uint8_t last_col; static const char PROGMEM code_to_name[60] = {' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; static void set_keylog(uint16_t keycode, keyrecord_t *record) { + // save the row and column (useful even if we can't find a keycode to show) + last_row = record->event.key.row; + last_col = record->event.key.col; + key_name = ' '; last_keycode = keycode; if (IS_QK_MOD_TAP(keycode)) { @@ -92,8 +96,6 @@ static void set_keylog(uint16_t keycode, keyrecord_t *record) { // update keylog key_name = pgm_read_byte(&code_to_name[keycode]); - last_row = record->event.key.row; - last_col = record->event.key.col; } static const char *depad_str(const char *depad_str, char depad_char) { @@ -103,11 +105,9 @@ static const char *depad_str(const char *depad_str, char depad_char) { } static void oled_render_keylog(void) { - const char *last_row_str = get_u8_str(last_row, ' '); - oled_write(depad_str(last_row_str, ' '), false); + oled_write_char('0' + last_row, false); oled_write_P(PSTR("x"), false); - const char *last_col_str = get_u8_str(last_col, ' '); - oled_write(depad_str(last_col_str, ' '), false); + oled_write_char('0' + last_col, false); oled_write_P(PSTR(", k"), false); const char *last_keycode_str = get_u16_str(last_keycode, ' '); oled_write(depad_str(last_keycode_str, ' '), false); From 0b7dba156c14fad4aeb2e918bf069a3c3f8f2815 Mon Sep 17 00:00:00 2001 From: Matthias Liffers Date: Thu, 9 Nov 2023 09:57:16 +0800 Subject: [PATCH 359/496] Fix indicator LED definition for Sofle RGB. (#22408) --- keyboards/sofle/rev1/rev1.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/sofle/rev1/rev1.c b/keyboards/sofle/rev1/rev1.c index d0197ffba5..df0f23a26c 100644 --- a/keyboards/sofle/rev1/rev1.c +++ b/keyboards/sofle/rev1/rev1.c @@ -68,14 +68,14 @@ led_config_t g_led_config = { {144, 10}, {144, 22}, {144, 34}, {144, 47}, }, { - LED_FLAG_NONE, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, + LED_FLAG_INDICATOR, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_NONE, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, + LED_FLAG_INDICATOR, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, From 147865cf57feaf9dfb59aeeffa8b1d541c064d93 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 9 Nov 2023 02:01:44 +0000 Subject: [PATCH 360/496] Migrate some common features to generic (#22403) --- builddefs/common_features.mk | 72 ++++--------------- builddefs/generic_features.mk | 18 ++++- builddefs/show_options.mk | 1 - docs/feature_os_detection.md | 9 ++- .../ergodox_ez/keymaps/hacker_dvorak/rules.mk | 1 - .../levinson/keymaps/drogglbecher/rules.mk | 1 - keyboards/planck/keymaps/sascha/rules.mk | 1 - .../sweep/keymaps/flinguenheld/rules.mk | 1 - quantum/quantum.c | 4 +- 9 files changed, 36 insertions(+), 72 deletions(-) diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 84a0300579..b6f888d30d 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -75,10 +75,7 @@ ifeq ($(strip $(AUDIO_ENABLE)), yes) endif ifeq ($(strip $(SEQUENCER_ENABLE)), yes) - OPT_DEFS += -DSEQUENCER_ENABLE MUSIC_ENABLE = yes - SRC += $(QUANTUM_DIR)/sequencer/sequencer.c - SRC += $(QUANTUM_DIR)/process_keycode/process_sequencer.c endif ifeq ($(strip $(MIDI_ENABLE)), yes) @@ -94,11 +91,6 @@ ifeq ($(strip $(MIDI_ENABLE)), yes) SRC += $(QUANTUM_DIR)/process_keycode/process_midi.c endif -MUSIC_ENABLE ?= no -ifeq ($(MUSIC_ENABLE), yes) - SRC += $(QUANTUM_DIR)/process_keycode/process_music.c -endif - VALID_STENO_PROTOCOL_TYPES := geminipr txbolt all STENO_PROTOCOL ?= all ifeq ($(strip $(STENO_ENABLE)), yes) @@ -124,14 +116,8 @@ ifeq ($(strip $(STENO_ENABLE)), yes) endif endif -ifeq ($(strip $(VIRTSER_ENABLE)), yes) - OPT_DEFS += -DVIRTSER_ENABLE -endif - ifeq ($(strip $(MOUSEKEY_ENABLE)), yes) - OPT_DEFS += -DMOUSEKEY_ENABLE MOUSE_ENABLE := yes - SRC += $(QUANTUM_DIR)/mousekey.c endif VALID_POINTING_DEVICE_DRIVER_TYPES := adns5050 adns9800 analog_joystick cirque_pinnacle_i2c cirque_pinnacle_spi paw3204 pmw3320 pmw3360 pmw3389 pimoroni_trackball custom @@ -360,10 +346,7 @@ ifeq ($(strip $(LED_MATRIX_ENABLE)), yes) endif OPT_DEFS += -DLED_MATRIX_ENABLE OPT_DEFS += -DLED_MATRIX_$(strip $(shell echo $(LED_MATRIX_DRIVER) | tr '[:lower:]' '[:upper:]')) -ifneq (,$(filter $(MCU), atmega16u2 atmega32u2 at90usb162)) - # ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines - OPT_DEFS += -DLIB8_ATTINY -endif + COMMON_VPATH += $(QUANTUM_DIR)/led_matrix COMMON_VPATH += $(QUANTUM_DIR)/led_matrix/animations COMMON_VPATH += $(QUANTUM_DIR)/led_matrix/animations/runners @@ -371,7 +354,7 @@ endif SRC += $(QUANTUM_DIR)/process_keycode/process_backlight.c SRC += $(QUANTUM_DIR)/led_matrix/led_matrix.c SRC += $(QUANTUM_DIR)/led_matrix/led_matrix_drivers.c - SRC += $(LIB_PATH)/lib8tion/lib8tion.c + LIB8TION_ENABLE := yes CIE1931_CURVE := yes ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3218) @@ -463,10 +446,7 @@ ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) endif OPT_DEFS += -DRGB_MATRIX_ENABLE OPT_DEFS += -DRGB_MATRIX_$(strip $(shell echo $(RGB_MATRIX_DRIVER) | tr '[:lower:]' '[:upper:]')) -ifneq (,$(filter $(MCU), atmega16u2 atmega32u2 at90usb162)) - # ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines - OPT_DEFS += -DLIB8_ATTINY -endif + COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix/animations COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix/animations/runners @@ -474,7 +454,7 @@ endif SRC += $(QUANTUM_DIR)/color.c SRC += $(QUANTUM_DIR)/rgb_matrix/rgb_matrix.c SRC += $(QUANTUM_DIR)/rgb_matrix/rgb_matrix_drivers.c - SRC += $(LIB_PATH)/lib8tion/lib8tion.c + LIB8TION_ENABLE := yes CIE1931_CURVE := yes RGB_KEYCODES_ENABLE := yes @@ -632,8 +612,6 @@ ifeq ($(strip $(VIA_ENABLE)), yes) RAW_ENABLE := yes BOOTMAGIC_ENABLE := yes TRI_LAYER_ENABLE := yes - SRC += $(QUANTUM_DIR)/via.c - OPT_DEFS += -DVIA_ENABLE endif VALID_MAGIC_TYPES := yes @@ -718,17 +696,20 @@ ifeq ($(strip $(SPLIT_KEYBOARD)), yes) COMMON_VPATH += $(QUANTUM_PATH)/split_common endif -ifeq ($(strip $(CRC_ENABLE)), yes) - OPT_DEFS += -DCRC_ENABLE - SRC += crc.c -endif - ifeq ($(strip $(FNV_ENABLE)), yes) OPT_DEFS += -DFNV_ENABLE VPATH += $(LIB_PATH)/fnv SRC += qmk_fnv_type_validation.c hash_32a.c hash_64a.c endif +ifeq ($(strip $(LIB8TION_ENABLE)), yes) + ifneq (,$(filter $(MCU), atmega16u2 atmega32u2 at90usb162)) + # ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines + OPT_DEFS += -DLIB8_ATTINY + endif + SRC += $(LIB_PATH)/lib8tion/lib8tion.c +endif + VALID_HAPTIC_DRIVER_TYPES := drv2605l solenoid ifeq ($(strip $(HAPTIC_ENABLE)),yes) ifeq ($(filter $(HAPTIC_DRIVER),$(VALID_HAPTIC_DRIVER_TYPES)),) @@ -819,27 +800,6 @@ ifeq ($(strip $(UNICODE_COMMON)), yes) $(QUANTUM_DIR)/unicode/utf8.c endif -MAGIC_ENABLE ?= yes -ifeq ($(strip $(MAGIC_ENABLE)), yes) - SRC += $(QUANTUM_DIR)/process_keycode/process_magic.c - OPT_DEFS += -DMAGIC_KEYCODE_ENABLE -endif - -SEND_STRING_ENABLE ?= yes -ifeq ($(strip $(SEND_STRING_ENABLE)), yes) - OPT_DEFS += -DSEND_STRING_ENABLE - COMMON_VPATH += $(QUANTUM_DIR)/send_string - SRC += $(QUANTUM_DIR)/send_string/send_string.c -endif - -ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes) - SRC += $(QUANTUM_DIR)/process_keycode/process_auto_shift.c - OPT_DEFS += -DAUTO_SHIFT_ENABLE - ifeq ($(strip $(AUTO_SHIFT_MODIFIERS)), yes) - OPT_DEFS += -DAUTO_SHIFT_MODIFIERS - endif -endif - ifeq ($(strip $(PS2_MOUSE_ENABLE)), yes) PS2_ENABLE := yes MOUSE_ENABLE := yes @@ -946,14 +906,6 @@ ifeq ($(strip $(ENCODER_ENABLE)), yes) endif endif -ifeq ($(strip $(OS_DETECTION_ENABLE)), yes) - SRC += $(QUANTUM_DIR)/os_detection.c - OPT_DEFS += -DOS_DETECTION_ENABLE - ifeq ($(strip $(OS_DETECTION_DEBUG_ENABLE)), yes) - OPT_DEFS += -DOS_DETECTION_DEBUG_ENABLE - endif -endif - VALID_WS2812_DRIVER_TYPES := bitbang custom i2c pwm spi vendor WS2812_DRIVER ?= bitbang diff --git a/builddefs/generic_features.mk b/builddefs/generic_features.mk index 261da564b2..9c86958625 100644 --- a/builddefs/generic_features.mk +++ b/builddefs/generic_features.mk @@ -13,33 +13,45 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -SPACE_CADET_ENABLE ?= yes GRAVE_ESC_ENABLE ?= yes +MAGIC_ENABLE ?= yes +SEND_STRING_ENABLE ?= yes +SPACE_CADET_ENABLE ?= yes GENERIC_FEATURES = \ + AUTO_SHIFT \ AUTOCORRECT \ CAPS_WORD \ COMBO \ COMMAND \ + CRC \ DEFERRED_EXEC \ DIGITIZER \ DIP_SWITCH \ DYNAMIC_KEYMAP \ DYNAMIC_MACRO \ + DYNAMIC_TAPPING_TERM \ GRAVE_ESC \ HAPTIC \ KEY_LOCK \ KEY_OVERRIDE \ LEADER \ + MAGIC \ + MOUSEKEY \ + MUSIC \ + OS_DETECTION \ PROGRAMMABLE_BUTTON \ REPEAT_KEY \ SECURE \ + SEND_STRING \ + SEQUENCER \ SPACE_CADET \ SWAP_HANDS \ TAP_DANCE \ + TRI_LAYER \ + VIA \ + VIRTSER \ WPM \ - DYNAMIC_TAPPING_TERM \ - TRI_LAYER define HANDLE_GENERIC_FEATURE # $$(info "Processing: $1_ENABLE $2.c") diff --git a/builddefs/show_options.mk b/builddefs/show_options.mk index 44e40e1f41..81d8400a80 100644 --- a/builddefs/show_options.mk +++ b/builddefs/show_options.mk @@ -37,7 +37,6 @@ OTHER_OPTION_NAMES = \ UNICODEMAP_ENABLE \ UNICODE_COMMON \ AUTO_SHIFT_ENABLE \ - AUTO_SHIFT_MODIFIERS \ DYNAMIC_TAPPING_TERM_ENABLE \ COMBO_ENABLE \ KEY_LOCK_ENABLE \ diff --git a/docs/feature_os_detection.md b/docs/feature_os_detection.md index f32e419807..907638bcfa 100644 --- a/docs/feature_os_detection.md +++ b/docs/feature_os_detection.md @@ -36,10 +36,15 @@ This time is quite short, probably hundreds of milliseconds, but this data may b If OS is guessed incorrectly, you may want to collect data about USB setup packets to refine the detection logic. -To do so in your `rules.mk` add: +To do so in your `config.h` add: + +```c +#define OS_DETECTION_DEBUG_ENABLE +``` + +And in your `rules.mk` add: ```make -OS_DETECTION_DEBUG_ENABLE = yes CONSOLE_ENABLE = yes ``` diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/rules.mk b/keyboards/ergodox_ez/keymaps/hacker_dvorak/rules.mk index 9da5278ed9..aaf4e53f6e 100644 --- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/rules.mk +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/rules.mk @@ -31,7 +31,6 @@ SWAP_HANDS_ENABLE = no # Allow swapping hands of keyboard. # POINTING_DEVICE_ENABLE = no # AUTO_SHIFT_ENABLE = no -# AUTO_SHIFT_MODIFIERS = no # This don't need argument? # CUSTOM_MATRIX # Custom matrix file for the ErgoDox EZ diff --git a/keyboards/keebio/levinson/keymaps/drogglbecher/rules.mk b/keyboards/keebio/levinson/keymaps/drogglbecher/rules.mk index b2a5451c82..a22dc3d2a9 100644 --- a/keyboards/keebio/levinson/keymaps/drogglbecher/rules.mk +++ b/keyboards/keebio/levinson/keymaps/drogglbecher/rules.mk @@ -1,5 +1,4 @@ AUTO_SHIFT_ENABLE = no -AUTO_SHIFT_MODIFIERS = no RGBLIGHT_ENABLE = no BACKLIGHT_ENABLE = no UNICODE_ENABLE = yes diff --git a/keyboards/planck/keymaps/sascha/rules.mk b/keyboards/planck/keymaps/sascha/rules.mk index 78ac4ca825..41157c39d7 100644 --- a/keyboards/planck/keymaps/sascha/rules.mk +++ b/keyboards/planck/keymaps/sascha/rules.mk @@ -1,5 +1,4 @@ AUTO_SHIFT_ENABLE = no -AUTO_SHIFT_MODIFIERS = no UNICODE_ENABLE = yes LTO_ENABLE = yes diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk index 585c589d3a..dd3e45125d 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk @@ -10,7 +10,6 @@ OLED_ENABLE = yes MOUSEKEY_ENABLE = yes AUTO_SHIFT_ENABLE = yes -AUTO_SHIFT_MODIFIERS = no COMBO_ENABLE = yes LEADER_ENABLE = yes diff --git a/quantum/quantum.c b/quantum/quantum.c index f721ab0a1f..86c6768729 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -40,7 +40,7 @@ # include "process_leader.h" #endif -#ifdef MAGIC_KEYCODE_ENABLE +#ifdef MAGIC_ENABLE # include "process_magic.h" #endif @@ -366,7 +366,7 @@ bool process_record_quantum(keyrecord_t *record) { #ifdef SPACE_CADET_ENABLE process_space_cadet(keycode, record) && #endif -#ifdef MAGIC_KEYCODE_ENABLE +#ifdef MAGIC_ENABLE process_magic(keycode, record) && #endif #ifdef GRAVE_ESC_ENABLE From daabe2d8c5eab9d9d605f8e079dfae82d2b06a8d Mon Sep 17 00:00:00 2001 From: Panos Sakkos Date: Thu, 9 Nov 2023 04:03:07 +0200 Subject: [PATCH 361/496] Update layer state of Lily58 from 'Default' to 'Base' (#22397) --- keyboards/lily58/lib/layer_state_reader.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/lily58/lib/layer_state_reader.c b/keyboards/lily58/lib/layer_state_reader.c index ffc2c4e2c6..69b4613093 100644 --- a/keyboards/lily58/lib/layer_state_reader.c +++ b/keyboards/lily58/lib/layer_state_reader.c @@ -13,7 +13,7 @@ const char *read_layer_state(void) { switch (layer_state) { case L_BASE: - snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Default"); + snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Base"); break; case L_RAISE: snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Raise"); From 39d0a14258cbd1dd640405cdbc806dadb01521a8 Mon Sep 17 00:00:00 2001 From: John Barbero Date: Thu, 9 Nov 2023 18:52:47 +0100 Subject: [PATCH 362/496] Add SNES Macropad keyboard (#22377) Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/snes_macropad/config.h | 12 ++ keyboards/snes_macropad/halconf.h | 8 + keyboards/snes_macropad/info.json | 79 ++++++++++ .../snes_macropad/keymaps/default/keymap.c | 75 +++++++++ .../snes_macropad/keymaps/jbarberu/keymap.c | 99 ++++++++++++ keyboards/snes_macropad/keymaps/test/keymap.c | 75 +++++++++ keyboards/snes_macropad/matrix.c | 146 ++++++++++++++++++ keyboards/snes_macropad/mcuconf.h | 18 +++ keyboards/snes_macropad/readme.md | 36 +++++ keyboards/snes_macropad/rules.mk | 4 + keyboards/snes_macropad/snes_macropad.c | 130 ++++++++++++++++ 11 files changed, 682 insertions(+) create mode 100644 keyboards/snes_macropad/config.h create mode 100644 keyboards/snes_macropad/halconf.h create mode 100644 keyboards/snes_macropad/info.json create mode 100644 keyboards/snes_macropad/keymaps/default/keymap.c create mode 100644 keyboards/snes_macropad/keymaps/jbarberu/keymap.c create mode 100644 keyboards/snes_macropad/keymaps/test/keymap.c create mode 100644 keyboards/snes_macropad/matrix.c create mode 100644 keyboards/snes_macropad/mcuconf.h create mode 100644 keyboards/snes_macropad/readme.md create mode 100644 keyboards/snes_macropad/rules.mk create mode 100644 keyboards/snes_macropad/snes_macropad.c diff --git a/keyboards/snes_macropad/config.h b/keyboards/snes_macropad/config.h new file mode 100644 index 0000000000..c5edeb55f1 --- /dev/null +++ b/keyboards/snes_macropad/config.h @@ -0,0 +1,12 @@ +// Copyright 2023 John Barbero Unenge (@jbarberu) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP25 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U + +#define I2C_DRIVER I2CD1 +#define I2C1_SDA_PIN GP14 +#define I2C1_SCL_PIN GP15 diff --git a/keyboards/snes_macropad/halconf.h b/keyboards/snes_macropad/halconf.h new file mode 100644 index 0000000000..3fcb2f4eb6 --- /dev/null +++ b/keyboards/snes_macropad/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2023 John Barbero Unenge (@jbarberu) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/snes_macropad/info.json b/keyboards/snes_macropad/info.json new file mode 100644 index 0000000000..c54e9bb0b2 --- /dev/null +++ b/keyboards/snes_macropad/info.json @@ -0,0 +1,79 @@ +{ + "manufacturer": "JBarberU's", + "keyboard_name": "SNES Macropad", + "maintainer": "jbarberu", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": false, + "command": false, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true, + "oled": true + }, + "ws2812": { + "pin": "GP5", + "driver": "vendor" + }, + "processor": "RP2040", + "matrix_size": { + "cols": 4, + "rows": 6 + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4}, + {"matrix": [5, 0], "x": 0, "y": 5}, + {"matrix": [5, 1], "x": 1, "y": 5}, + {"matrix": [5, 2], "x": 2, "y": 5}, + {"matrix": [5, 3], "x": 3, "y": 5} + ] + } + }, + "rgblight": { + "led_count": 12, + "max_brightness": 80, + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + } + } +} diff --git a/keyboards/snes_macropad/keymaps/default/keymap.c b/keyboards/snes_macropad/keymaps/default/keymap.c new file mode 100644 index 0000000000..34f4f6248a --- /dev/null +++ b/keyboards/snes_macropad/keymaps/default/keymap.c @@ -0,0 +1,75 @@ +// Copyright 2023 John Barbero Unenge (@jbarberu) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum Layer { + L_Numpad = 0, + L_Symbols, + L_RGB, +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * Macropad Button Order + * ┌───┬───┬───┬───┐ + * │ 7 │ 8 │ 9 │ - │ + * ├───┼───┼───┼───┤ + * │ 4 │ 5 │ 6 │ + │ + * ├───┼───┼───┼───┤ + * │ 1 │ 2 │ 3 │ 0 │ + * └───┴───┴───┴───┘ + * + * SNES Button Order + * ┌────────┬────────┬────────┬────────┐ + * │ LT │ RT │ START │ SELECT │ + * ├────────┼────────┼────────┼────────┤ + * │ UP │ DOWN │ LEFT │ RIGHT │ + * ├────────┼────────┼────────┼────────┤ + * │ A │ B │ X │ Y │ + * └────────┴────────┴────────┴────────┘ + * + */ + [L_Numpad] = LAYOUT( + KC_P7, KC_P8, KC_P9, TO(L_RGB) + , KC_P4, KC_P5, KC_P6, LT(L_Symbols, KC_PCMM) + , KC_P1, KC_P2, KC_P3, KC_P0 + + , KC_A, KC_S, KC_ENT, KC_BSPC + , KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT + , KC_X, KC_Z, LSFT(KC_F1),KC_TAB + ), + [L_RGB] = LAYOUT( + RGB_M_P, RGB_M_B, RGB_TOG, KC_NO + , RGB_MOD, RGB_HUI, RGB_VAI, TO(L_Numpad) + , RGB_RMOD, RGB_HUD, RGB_VAD, KC_NO + + , KC_A, KC_B, KC_C, KC_D + , KC_E, KC_F, KC_G, KC_H + , KC_I, KC_J, KC_K, KC_L + ), + [L_Symbols] = LAYOUT( + KC_PPLS, KC_PMNS, KC_PEQL, KC_NO + , KC_PAST, KC_PSLS, KC_ENT, KC_TRNS + , KC_NUM, KC_NO, KC_NO, QK_BOOT + + , KC_A, KC_B, KC_C, KC_D + , KC_E, KC_F, KC_G, KC_H + , KC_I, KC_J, KC_K, KC_L + ) +}; +// clang-format on + +const char* get_layer_name_user(int layer) { + switch (layer) { + case L_Numpad: + return "Numpad"; + case L_RGB: + return "RGB Controls"; + case L_Symbols: + return "Symbols"; + default: + return "Undef"; + } +} diff --git a/keyboards/snes_macropad/keymaps/jbarberu/keymap.c b/keyboards/snes_macropad/keymaps/jbarberu/keymap.c new file mode 100644 index 0000000000..0fbe0fa626 --- /dev/null +++ b/keyboards/snes_macropad/keymaps/jbarberu/keymap.c @@ -0,0 +1,99 @@ +// Copyright 2023 John Barbero Unenge (@jbarberu) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum Layer { + L_Numpad = 0, + L_Symbols, + L_EasyEDA, + L_RGB, + L_Adjust +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * Macropad Button Order + * ┌───┬───┬───┬───┐ + * │ 7 │ 8 │ 9 │ - │ + * ├───┼───┼───┼───┤ + * │ 4 │ 5 │ 6 │ + │ + * ├───┼───┼───┼───┤ + * │ 1 │ 2 │ 3 │ 0 │ + * └───┴───┴───┴───┘ + * + * SNES Button Order + * ┌────────┬────────┬────────┬────────┐ + * │ LT │ RT │ START │ SELECT │ + * ├────────┼────────┼────────┼────────┤ + * │ UP │ DOWN │ LEFT │ RIGHT │ + * ├────────┼────────┼────────┼────────┤ + * │ A │ B │ X │ Y │ + * └────────┴────────┴────────┴────────┘ + * + */ + [L_Numpad] = LAYOUT( + KC_P7, KC_P8, KC_P9, TO(L_EasyEDA) + , KC_P4, KC_P5, KC_P6, LT(L_Symbols, KC_PCMM) + , KC_P1, KC_P2, KC_P3, KC_P0 + + , KC_A, KC_S, KC_ENT, KC_BSPC + , KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT + , KC_X, KC_Z, LSFT(KC_F1), KC_TAB + ), + [L_EasyEDA] = LAYOUT( + KC_COMM, KC_DOT, KC_K, TO(L_RGB) + , KC_LSFT, KC_M, KC_N, TO(L_Numpad) + , KC_LCTL, KC_SPC, KC_DEL, KC_BSPC + + , KC_A, KC_B, KC_C, KC_D + , QK_BOOT, KC_TRNS, KC_G, KC_H + , KC_I, KC_J, KC_K, KC_L + ), + [L_RGB] = LAYOUT( + RGB_M_P, RGB_M_B, RGB_TOG, TO(L_Adjust) + , RGB_MOD, RGB_HUI, RGB_VAI, TO(L_Numpad) + , RGB_RMOD, RGB_HUD, RGB_VAD, KC_NO + + , KC_A, KC_B, KC_C, KC_D + , KC_E, KC_F, KC_G, KC_H + , KC_I, KC_J, KC_K, KC_L + ), + [L_Adjust] = LAYOUT( + KC_NO, KC_P8, KC_NO, KC_NO + , KC_NO, RGB_HUD, KC_NO, TO(L_Numpad) + , RGB_HUI, KC_NO, KC_TRNS, KC_NO + + , KC_A, KC_B, KC_C, KC_D + , KC_E, KC_F, KC_G, KC_H + , KC_I, KC_J, KC_K, KC_L + ), + [L_Symbols] = LAYOUT( + KC_PPLS, KC_PMNS, KC_PEQL, KC_NO + , KC_PAST, KC_PSLS, KC_ENT, KC_TRNS + , KC_NUM, KC_NO, KC_NO, QK_BOOT + + , KC_A, KC_B, KC_C, KC_D + , KC_E, KC_F, KC_G, KC_H + , KC_I, KC_J, KC_K, KC_L + ) +}; +// clang-format on + +const char * get_layer_name_user(int layer) { + switch (layer) { + case L_Numpad: + return "Numpad"; + case L_EasyEDA: + return "EasyEDA"; + case L_RGB: + return "RGB Controls"; + case L_Adjust: + return "Adjust"; + case L_Symbols: + return "Symbols"; + default: + return "Undef"; + } +} diff --git a/keyboards/snes_macropad/keymaps/test/keymap.c b/keyboards/snes_macropad/keymaps/test/keymap.c new file mode 100644 index 0000000000..86dd669965 --- /dev/null +++ b/keyboards/snes_macropad/keymaps/test/keymap.c @@ -0,0 +1,75 @@ +// Copyright 2023 John Barbero Unenge (@jbarberu) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum Layer { + L_Numpad = 0, + L_Symbols, + L_RGB +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * Macropad Button Order + * ┌───┬───┬───┬───┐ + * │ 7 │ 8 │ 9 │ - │ + * ├───┼───┼───┼───┤ + * │ 4 │ 5 │ 6 │ + │ + * ├───┼───┼───┼───┤ + * │ 1 │ 2 │ 3 │ 0 │ + * └───┴───┴───┴───┘ + * + * SNES Button Order + * ┌────────┬────────┬────────┬────────┐ + * │ LT │ RT │ START │ SELECT │ + * ├────────┼────────┼────────┼────────┤ + * │ UP │ DOWN │ LEFT │ RIGHT │ + * ├────────┼────────┼────────┼────────┤ + * │ A │ B │ X │ Y │ + * └────────┴────────┴────────┴────────┘ + * + */ + [L_Numpad] = LAYOUT( + KC_1, KC_2, KC_3, KC_4 + , KC_5, KC_6, KC_7, KC_8 + , KC_9, KC_0, KC_A, KC_S + + , KC_A, KC_S, KC_ENT, KC_BSPC + , KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT + , KC_X, KC_Z, LSFT(KC_F1),KC_TAB + ), + [L_RGB] = LAYOUT( + RGB_M_P, RGB_M_B, RGB_TOG, KC_NO + , RGB_MOD, RGB_HUI, RGB_VAI, TO(L_Numpad) + , RGB_RMOD, RGB_HUD, RGB_VAD, KC_NO + + , KC_A, KC_B, KC_C, KC_D + , KC_E, KC_F, KC_G, KC_H + , KC_I, KC_J, KC_K, KC_L + ), + [L_Symbols] = LAYOUT( + KC_PPLS, KC_PMNS, KC_PEQL, KC_NO + , KC_PAST, KC_PSLS, KC_ENT, KC_TRNS + , KC_NUM, KC_NO, KC_NO, QK_BOOT + + , KC_A, KC_B, KC_C, KC_D + , KC_E, KC_F, KC_G, KC_H + , KC_I, KC_J, KC_K, KC_L + ) +}; +// clang-format on + +const char * get_layer_name_user(int layer) { + switch (layer) { + case L_Numpad: + return "Numpad"; + case L_RGB: + return "RGB Controls"; + case L_Symbols: + return "Symbols"; + default: + return "Undef"; + } +} diff --git a/keyboards/snes_macropad/matrix.c b/keyboards/snes_macropad/matrix.c new file mode 100644 index 0000000000..28d036aca9 --- /dev/null +++ b/keyboards/snes_macropad/matrix.c @@ -0,0 +1,146 @@ +// Copyright 2023 John Barbero Unenge (@jbarberu) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "matrix.h" +#include "gpio.h" +#include "wait.h" +#include "string.h" + +#define SNES_CLOCK GP0 +#define SNES_LATCH GP1 +#define SNES_D0 GP2 +#define SNES_D1 GP3 +#define SNES_IO GP4 + +#define KBD_ROW0 GP24 +#define KBD_ROW1 GP23 +#define KBD_ROW2 GP22 +#define KBD_NUM_ROWS 3 + +#define KBD_COL0 GP18 +#define KBD_COL1 GP19 +#define KBD_COL2 GP20 +#define KBD_COL3 GP21 +#define KBD_ROW_SETUP_DELAY_US 5 + +// The real snes will clock 16 bits out of the controller, but only really has 12 bits of data +#define SNES_DATA_BITS 16 +#define SNES_DATA_SETUP_DELAY_US 10 +#define SNES_CLOCK_PULSE_DURATION 10 + +static const int kbd_pin_map[] = { + KBD_ROW0, + KBD_ROW1, + KBD_ROW2 +}; + +void matrix_init_custom(void) { + // init snes controller + setPinInputHigh(SNES_D0); + // todo: look into protocol for other strange snes controllers that use D1 and IO + // setPinInputHigh(SNES_D1); + // setPinInputHigh(SNES_IO); + setPinOutput(SNES_CLOCK); + setPinOutput(SNES_LATCH); + writePinLow(SNES_CLOCK); + writePinLow(SNES_LATCH); + + // init rows + setPinOutput(KBD_ROW0); + setPinOutput(KBD_ROW1); + setPinOutput(KBD_ROW2); + writePinHigh(KBD_ROW0); + writePinHigh(KBD_ROW1); + writePinHigh(KBD_ROW2); + + // init columns + setPinInputHigh(KBD_COL0); + setPinInputHigh(KBD_COL1); + setPinInputHigh(KBD_COL2); + setPinInputHigh(KBD_COL3); +} + +static matrix_row_t readRow(size_t row, int setupDelay) { + const int pin = kbd_pin_map[row]; + + // select the row + setPinOutput(pin); + writePinLow(pin); + wait_us(setupDelay); + + // read the column data + const matrix_row_t ret = + (readPin(KBD_COL0) ? 0 : 1 << 0) + | (readPin(KBD_COL1) ? 0 : 1 << 1) + | (readPin(KBD_COL2) ? 0 : 1 << 2) + | (readPin(KBD_COL3) ? 0 : 1 << 3); + + // deselect the row + setPinOutput(pin); + writePinHigh(pin); + + return ret; +} + +static void readKeyboard(matrix_row_t current_matrix[]) { + for (size_t row = 0; row < KBD_NUM_ROWS; ++row) { + current_matrix[row] = readRow(row, KBD_ROW_SETUP_DELAY_US); + } +} + +static matrix_row_t getBits(uint16_t value, size_t bit0, size_t bit1, size_t bit2, size_t bit3) { + matrix_row_t ret = 0; + ret |= (value >> bit3) & 1; + ret <<= 1; + ret |= (value >> bit2) & 1; + ret <<= 1; + ret |= (value >> bit1) & 1; + ret <<= 1; + ret |= (value >> bit0) & 1; + return ret; +} + +static void readSnesController(matrix_row_t current_matrix[]) { + uint16_t controller = 0; + + writePinHigh(SNES_LATCH); + + for (size_t bit = 0; bit < SNES_DATA_BITS; ++bit) { + // Wait for shift register to setup the data line + wait_us(SNES_DATA_SETUP_DELAY_US); + + // Shift accumulated data and read data pin + controller <<= 1; + controller |= readPin(SNES_D0) ? 0 : 1; + // todo: maybe read D1 and IO here too + + // Shift next bit in + writePinHigh(SNES_CLOCK); + wait_us(SNES_CLOCK_PULSE_DURATION); + writePinLow(SNES_CLOCK); + } + + writePinLow(SNES_LATCH); + + controller >>= 4; + + // SNES button order is pretty random, and we'd like them to be a bit tidier + current_matrix[3] = getBits(controller, 1, 0, 8, 9); + current_matrix[4] = getBits(controller, 7, 6, 5, 4); + current_matrix[5] = getBits(controller, 3, 11, 2, 10); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + const size_t MATRIX_ARRAY_SIZE = MATRIX_ROWS * sizeof(matrix_row_t); + + // create a copy of the current_matrix, before we read hardware state + matrix_row_t last_value[MATRIX_ROWS]; + memcpy(last_value, current_matrix, MATRIX_ARRAY_SIZE); + + // read hardware state into current_matrix + readKeyboard(current_matrix); + readSnesController(current_matrix); + + // check if anything changed + return memcmp(last_value, current_matrix, MATRIX_ARRAY_SIZE) != 0; +} diff --git a/keyboards/snes_macropad/mcuconf.h b/keyboards/snes_macropad/mcuconf.h new file mode 100644 index 0000000000..0bbd4fef62 --- /dev/null +++ b/keyboards/snes_macropad/mcuconf.h @@ -0,0 +1,18 @@ +// Copyright 2023 John Barbero Unenge (@jbarberu) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef RP_PWM_USE_PWM0 +#define RP_PWM_USE_PWM0 TRUE + +#undef RP_PWM_USE_PWM4 +#define RP_PWM_USE_PWM4 TRUE + +#undef RP_I2C_USE_I2C0 +#define RP_I2C_USE_I2C0 FALSE + +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/snes_macropad/readme.md b/keyboards/snes_macropad/readme.md new file mode 100644 index 0000000000..9ef5e04149 --- /dev/null +++ b/keyboards/snes_macropad/readme.md @@ -0,0 +1,36 @@ +# snes_macropad + +![Completed Build](https://i.imgur.com/WzzPJ3Yh.jpg) +*Completed Build* + +![Completed Build, closer with RGB off](https://i.imgur.com/D7ki7Kkh.jpg) +*Completed Build, closer with RGB off* + +![PCB and FR4 top/bottom plates](https://i.imgur.com/TgOev7lh.jpg) +*PCB and FR4 top/bottom plates* + +The SNES Macropad is, as it sounds, a macropad that features a SNES connector. In addition it has a qwiic connector and a 3.5mm jack for 3.3V I2C (not audio), allowing additional expansion. + +This QMK implementation exposes the SNES controller as a part of the keyboard, meaning you can map the controller to do anything a qmk keyboard can. The layout is thus a 4x6 keyboard logically, split with the 3 first rows being on the macro pad and the 3 following being buttons on the snes controller. + +* Keyboard Maintainer: [JBarberU](https://github.com/jbarberu) +* Hardware Supported: SNES Macropad Rev 1, with a Raspberry Pi Pico Lite (AliExpress clone of Raspberry Pico with fewer grounds and all GPIO's exposed on the headers) +* Hardware Availability: The SNES Macro pad can be found [here](https://www.tindie.com/products/jbarberu/snes-macropad/) either as a kit, partially built or fully built. + +Make example for this keyboard (after setting up your build environment): + + make snes_macropad:default + +Flashing example for this keyboard: + + make snes_macropad:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Physical bootsel button**: Hold down the bootsel button on the RPi Pico while plugging in the keyboard, or while pressing the reset button +* **Physical reset button**: Quickly double press the reset button +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/snes_macropad/rules.mk b/keyboards/snes_macropad/rules.mk new file mode 100644 index 0000000000..52cdd84a78 --- /dev/null +++ b/keyboards/snes_macropad/rules.mk @@ -0,0 +1,4 @@ +# Enable features +CUSTOM_MATRIX = lite + +SRC += matrix.c diff --git a/keyboards/snes_macropad/snes_macropad.c b/keyboards/snes_macropad/snes_macropad.c new file mode 100644 index 0000000000..a8e04c8c32 --- /dev/null +++ b/keyboards/snes_macropad/snes_macropad.c @@ -0,0 +1,130 @@ +// Copyright 2023 John Barbero Unenge (@jbarberu) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +// oled keylog rendering has been kindly borrowed from crkbd <3 + +char key_name = ' '; +uint16_t last_keycode; +uint8_t last_row; +uint8_t last_col; + +static const char PROGMEM code_to_name[60] = {' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; + +static void set_keylog(uint16_t keycode, keyrecord_t *record) { + last_row = record->event.key.row; + last_col = record->event.key.col; + + key_name = ' '; + last_keycode = keycode; + if (IS_QK_MOD_TAP(keycode)) { + if (record->tap.count) { + keycode = QK_MOD_TAP_GET_TAP_KEYCODE(keycode); + } else { + keycode = 0xE0 + biton(QK_MOD_TAP_GET_MODS(keycode) & 0xF) + biton(QK_MOD_TAP_GET_MODS(keycode) & 0x10); + } + } else if (IS_QK_LAYER_TAP(keycode) && record->tap.count) { + keycode = QK_LAYER_TAP_GET_TAP_KEYCODE(keycode); + } else if (IS_QK_MODS(keycode)) { + keycode = QK_MODS_GET_BASIC_KEYCODE(keycode); + } else if (IS_QK_ONE_SHOT_MOD(keycode)) { + keycode = 0xE0 + biton(QK_ONE_SHOT_MOD_GET_MODS(keycode) & 0xF) + biton(QK_ONE_SHOT_MOD_GET_MODS(keycode) & 0x10); + } + if (keycode > ARRAY_SIZE(code_to_name)) { + return; + } + + // update keylog + key_name = pgm_read_byte(&code_to_name[keycode]); +} + +static const char *depad_str(const char *depad_str, char depad_char) { + while (*depad_str == depad_char) { + ++depad_str; + } + return depad_str; +} + +static void oled_render_keylog(void) { + oled_write_char('0' + last_row, false); + oled_write("x", false); + oled_write_char('0' + last_col, false); + oled_write(", k", false); + const char *last_keycode_str = get_u16_str(last_keycode, ' '); + oled_write(depad_str(last_keycode_str, ' '), false); + oled_write(":", false); + oled_write_char(key_name, false); +} + +__attribute__((weak)) const char * get_layer_name_user(int layer) { + return "Unknown"; +} + +static void oled_render_layer(void) { + oled_write("Layer: ", false); + oled_write_ln(get_layer_name_user(get_highest_layer(layer_state)), false); +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + + oled_render_layer(); + oled_render_keylog(); + oled_advance_page(true); + return false; +} + +static void setupForFlashing(void) { + oled_clear(); + oled_write(" ", false); + oled_write(" In flash mode... ", false); + oled_write(" ", false); + oled_write(" ", false); + + // QMK is clever about only rendering a certain number of chunks per frame, + // but since the device will go into flash mode right after this call, + // we want to override this behavior and force all the chunks to be sent to + // the display immediately. + const size_t numIterations = OLED_DISPLAY_WIDTH * OLED_DISPLAY_HEIGHT / OLED_UPDATE_PROCESS_LIMIT; + for (size_t num = 0; num < numIterations; ++num) { + oled_render(); + } + // todo: Replace the above hack with this, once develop branch is merged at the end of November 2023 + // oled_render_dirty(true); + + // Set alternating backlight colors + const uint8_t max = 20; + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + for (size_t i = 0; i < RGBLED_NUM; ++i) { + LED_TYPE *led_ = (LED_TYPE *)&led[i]; + switch (i % 2) { + case 0: + setrgb(max, 0, max, led_); + break; + case 1: + setrgb(0, max, max, led_); + break; + } + } + rgblight_set(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + set_keylog(keycode, record); + } + if (keycode == QK_BOOT) { + setupForFlashing(); + } + return process_record_user(keycode, record); +} + +void keyboard_post_init_kb(void) { + rgblight_enable_noeeprom(); + rgblight_sethsv_noeeprom(HSV_MAGENTA); + rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_SWIRL); + keyboard_post_init_user(); +} From e5b7685e7ad2785238b35e68a0c93425af10f951 Mon Sep 17 00:00:00 2001 From: gregandcin Date: Thu, 9 Nov 2023 17:53:35 +0000 Subject: [PATCH 363/496] Update gregandcin/teaqueen (#22402) --- keyboards/gregandcin/teaqueen/keymaps/default/config.h | 9 --------- keyboards/gregandcin/teaqueen/keymaps/default/keymap.c | 2 +- keyboards/gregandcin/teaqueen/keymaps/via/config.h | 9 --------- keyboards/gregandcin/teaqueen/keymaps/via/keymap.c | 2 +- 4 files changed, 2 insertions(+), 20 deletions(-) delete mode 100644 keyboards/gregandcin/teaqueen/keymaps/default/config.h delete mode 100644 keyboards/gregandcin/teaqueen/keymaps/via/config.h diff --git a/keyboards/gregandcin/teaqueen/keymaps/default/config.h b/keyboards/gregandcin/teaqueen/keymaps/default/config.h deleted file mode 100644 index 3a125fdf63..0000000000 --- a/keyboards/gregandcin/teaqueen/keymaps/default/config.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2023 gregandcin (@gregandcin) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* Select hand configuration */ -// #define MASTER_LEFT -// #define MASTER_RIGHT -#define EE_HANDS diff --git a/keyboards/gregandcin/teaqueen/keymaps/default/keymap.c b/keyboards/gregandcin/teaqueen/keymaps/default/keymap.c index abc6086270..2bcc085b77 100644 --- a/keyboards/gregandcin/teaqueen/keymaps/default/keymap.c +++ b/keyboards/gregandcin/teaqueen/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -// Copyright 2023 QMK +// Copyright 2018-2023 Mattia Dal Ben gregandcin // SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H diff --git a/keyboards/gregandcin/teaqueen/keymaps/via/config.h b/keyboards/gregandcin/teaqueen/keymaps/via/config.h deleted file mode 100644 index 3a125fdf63..0000000000 --- a/keyboards/gregandcin/teaqueen/keymaps/via/config.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2023 gregandcin (@gregandcin) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* Select hand configuration */ -// #define MASTER_LEFT -// #define MASTER_RIGHT -#define EE_HANDS diff --git a/keyboards/gregandcin/teaqueen/keymaps/via/keymap.c b/keyboards/gregandcin/teaqueen/keymaps/via/keymap.c index abc6086270..2bcc085b77 100644 --- a/keyboards/gregandcin/teaqueen/keymaps/via/keymap.c +++ b/keyboards/gregandcin/teaqueen/keymaps/via/keymap.c @@ -1,4 +1,4 @@ -// Copyright 2023 QMK +// Copyright 2018-2023 Mattia Dal Ben gregandcin // SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H From aee2a9d696b9510ba60e9dcde7b036e38e053f32 Mon Sep 17 00:00:00 2001 From: temp4gh Date: Fri, 10 Nov 2023 03:57:14 +0800 Subject: [PATCH 364/496] [Keyboard] Add alpaca/wfeclipse (#22230) Co-authored-by: Joel Challis Co-authored-by: Drashna Jaelre --- keyboards/alpaca/wfeclipse/info.json | 210 ++++++++++++++++++ .../alpaca/wfeclipse/keymaps/default/keymap.c | 39 ++++ .../alpaca/wfeclipse/keymaps/via/keymap.c | 39 ++++ .../alpaca/wfeclipse/keymaps/via/rules.mk | 1 + keyboards/alpaca/wfeclipse/readme.md | 26 +++ keyboards/alpaca/wfeclipse/rules.mk | 1 + 6 files changed, 316 insertions(+) create mode 100644 keyboards/alpaca/wfeclipse/info.json create mode 100644 keyboards/alpaca/wfeclipse/keymaps/default/keymap.c create mode 100644 keyboards/alpaca/wfeclipse/keymaps/via/keymap.c create mode 100644 keyboards/alpaca/wfeclipse/keymaps/via/rules.mk create mode 100644 keyboards/alpaca/wfeclipse/readme.md create mode 100644 keyboards/alpaca/wfeclipse/rules.mk diff --git a/keyboards/alpaca/wfeclipse/info.json b/keyboards/alpaca/wfeclipse/info.json new file mode 100644 index 0000000000..47288bb190 --- /dev/null +++ b/keyboards/alpaca/wfeclipse/info.json @@ -0,0 +1,210 @@ +{ + "manufacturer": "Alpaca", + "keyboard_name": "WFEclipse", + "bootloader": "stm32duino", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["C11", "C10", "A15", "A10", "A9", "A8", "C9", "C8", "C7", "C6", "B1", "B0", "C5", "C4", "A7", "A6"], + "rows": ["A0", "A1", "A2", "A3", "A4"] + }, + "processor": "STM32F103", + "rgb_matrix": { + "animations": { + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_wave": true, + "pixel_fractal": true, + "solid_color": true, + "solid_reactive_simple": true, + "solid_splash": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [4, 15], "x": 198, "y": 54, "flags": 1}, + {"matrix": [4, 14], "x": 186, "y": 54, "flags": 1}, + {"matrix": [4, 13], "x": 174, "y": 54, "flags": 1}, + {"matrix": [4, 12], "x": 150, "y": 54, "flags": 1}, + {"matrix": [4, 11], "x": 138, "y": 54, "flags": 1}, + {"matrix": [4, 10], "x": 126, "y": 54, "flags": 1}, + {"matrix": [4, 6], "x": 51, "y": 54, "flags": 1}, + {"matrix": [4, 2], "x": 36, "y": 54, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 54, "flags": 1}, + {"matrix": [4, 0], "x": 6, "y": 54, "flags": 1}, + {"matrix": [3, 15], "x": 198, "y": 42, "flags": 1}, + {"matrix": [3, 14], "x": 186, "y": 42, "flags": 1}, + {"matrix": [3, 13], "x": 153, "y": 42, "flags": 1}, + {"matrix": [3, 11], "x": 141, "y": 42, "flags": 1}, + {"matrix": [3, 10], "x": 129, "y": 42, "flags": 1}, + {"matrix": [3, 9], "x": 117, "y": 42, "flags": 1}, + {"matrix": [3, 8], "x": 105, "y": 42, "flags": 1}, + {"matrix": [3, 7], "x": 93, "y": 42, "flags": 1}, + {"matrix": [3, 6], "x": 81, "y": 42, "flags": 1}, + {"matrix": [3, 5], "x": 69, "y": 42, "flags": 1}, + {"matrix": [3, 4], "x": 57, "y": 42, "flags": 1}, + {"matrix": [3, 3], "x": 45, "y": 42, "flags": 1}, + {"matrix": [3, 2], "x": 33, "y": 42, "flags": 1}, + {"matrix": [3, 0], "x": 6, "y": 42, "flags": 1}, + {"matrix": [2, 15], "x": 198, "y": 30, "flags": 1}, + {"matrix": [2, 14], "x": 186, "y": 30, "flags": 1}, + {"matrix": [2, 13], "x": 159, "y": 30, "flags": 1}, + {"matrix": [2, 11], "x": 147, "y": 30, "flags": 1}, + {"matrix": [2, 10], "x": 135, "y": 30, "flags": 1}, + {"matrix": [2, 9], "x": 123, "y": 30, "flags": 1}, + {"matrix": [2, 8], "x": 111, "y": 30, "flags": 1}, + {"matrix": [2, 7], "x": 99, "y": 30, "flags": 1}, + {"matrix": [2, 6], "x": 87, "y": 30, "flags": 1}, + {"matrix": [2, 5], "x": 75, "y": 30, "flags": 1}, + {"matrix": [2, 4], "x": 63, "y": 30, "flags": 1}, + {"matrix": [2, 3], "x": 51, "y": 30, "flags": 1}, + {"matrix": [2, 2], "x": 39, "y": 30, "flags": 1}, + {"matrix": [2, 1], "x": 27, "y": 30, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 30, "flags": 1}, + {"matrix": [1, 15], "x": 198, "y": 18, "flags": 1}, + {"matrix": [1, 14], "x": 186, "y": 18, "flags": 1}, + {"matrix": [1, 13], "x": 168, "y": 18, "flags": 1}, + {"matrix": [1, 12], "x": 156, "y": 18, "flags": 1}, + {"matrix": [1, 11], "x": 144, "y": 18, "flags": 1}, + {"matrix": [1, 10], "x": 132, "y": 18, "flags": 1}, + {"matrix": [1, 9], "x": 120, "y": 18, "flags": 1}, + {"matrix": [1, 8], "x": 108, "y": 18, "flags": 1}, + {"matrix": [1, 7], "x": 96, "y": 18, "flags": 1}, + {"matrix": [1, 6], "x": 84, "y": 18, "flags": 1}, + {"matrix": [1, 5], "x": 72, "y": 18, "flags": 1}, + {"matrix": [1, 4], "x": 60, "y": 18, "flags": 1}, + {"matrix": [1, 3], "x": 48, "y": 18, "flags": 1}, + {"matrix": [1, 2], "x": 36, "y": 18, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 18, "flags": 1}, + {"matrix": [1, 0], "x": 6, "y": 18, "flags": 1}, + {"matrix": [0, 15], "x": 198, "y": 6, "flags": 1}, + {"matrix": [0, 14], "x": 186, "y": 6, "flags": 1}, + {"matrix": [0, 13], "x": 162, "y": 6, "flags": 1}, + {"matrix": [0, 12], "x": 150, "y": 6, "flags": 1}, + {"matrix": [0, 11], "x": 138, "y": 6, "flags": 1}, + {"matrix": [0, 10], "x": 126, "y": 6, "flags": 1}, + {"matrix": [0, 9], "x": 114, "y": 6, "flags": 1}, + {"matrix": [0, 8], "x": 102, "y": 6, "flags": 1}, + {"matrix": [0, 7], "x": 90, "y": 6, "flags": 1}, + {"matrix": [0, 6], "x": 78, "y": 6, "flags": 1}, + {"matrix": [0, 5], "x": 66, "y": 6, "flags": 1}, + {"matrix": [0, 4], "x": 54, "y": 6, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 6, "flags": 1}, + {"matrix": [0, 2], "x": 30, "y": 6, "flags": 1}, + {"matrix": [0, 1], "x": 18, "y": 6, "flags": 1}, + {"matrix": [0, 0], "x": 6, "y": 6, "flags": 1}, + {"x": 125, "y": 1, "flags": 4}, + {"x": 125, "y": 2, "flags": 4}, + {"x": 125, "y": 3, "flags": 4}, + {"x": 125, "y": 4, "flags": 4}, + {"x": 125, "y": 5, "flags": 4}, + {"x": 125, "y": 6, "flags": 4}, + {"x": 125, "y": 7, "flags": 4}, + {"x": 125, "y": 8, "flags": 4}, + {"x": 125, "y": 9, "flags": 4}, + {"x": 125, "y": 10, "flags": 4}, + {"x": 125, "y": 11, "flags": 4}, + {"x": 125, "y": 12, "flags": 4} + ], + "max_brightness": 50 + }, + "usb": { + "device_version": "1.0.4", + "pid": "0x0038", + "vid": "0x308F" + }, + "ws2812": { + "pin": "B8" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "ESC", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "MINS", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "EQL", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "BSPC", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "DEL", "matrix": [0, 14], "x": 15, "y": 0}, + {"label": "INS", "matrix": [0, 15], "x": 16, "y": 0}, + {"label": "TAB", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "LBRC", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "RBRC", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "BSLS", "matrix": [1, 13], "x": 13.5, "y": 1}, + {"label": "HOME", "matrix": [1, 14], "x": 15, "y": 1}, + {"label": "PGUP", "matrix": [1, 15], "x": 16, "y": 1}, + {"label": "CAPS", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "SCLN", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "QUOT", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "ENT", "matrix": [2, 13], "x": 12.75, "y": 2}, + {"label": "END", "matrix": [2, 14], "x": 15, "y": 2}, + {"label": "PGDN", "matrix": [2, 15], "x": 16, "y": 2}, + {"label": "LSFT", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "COMM", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": "DOT", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "SLSH", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "RSFT", "matrix": [3, 13], "x": 12.25, "y": 3}, + {"label": "UP", "matrix": [3, 14], "x": 15, "y": 3}, + {"label": "MO(1)", "matrix": [3, 15], "x": 16, "y": 3}, + {"label": "LCTL", "matrix": [4, 0], "x": 0, "y": 4}, + {"label": "LGUI", "matrix": [4, 1], "x": 1.25, "y": 4}, + {"label": "LALT", "matrix": [4, 2], "x": 2.5, "y": 4}, + {"label": "SPC", "matrix": [4, 6], "x": 3.75, "y": 4}, + {"label": "RALT", "matrix": [4, 10], "x": 10, "y": 4}, + {"label": "RGUI", "matrix": [4, 11], "x": 11, "y": 4}, + {"label": "RCTL", "matrix": [4, 12], "x": 12, "y": 4}, + {"label": "LEFT", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "DOWN", "matrix": [4, 14], "x": 15, "y": 4}, + {"label": "RGHT", "matrix": [4, 15], "x": 16, "y": 4} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/alpaca/wfeclipse/keymaps/default/keymap.c b/keyboards/alpaca/wfeclipse/keymaps/default/keymap.c new file mode 100644 index 0000000000..3849b2889c --- /dev/null +++ b/keyboards/alpaca/wfeclipse/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2023 temp4gh + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layer_names { + WIN_BASE, + WIN_FN, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [WIN_BASE] =LAYOUT( + QK_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_BSPC, KC_DEL, KC_INS, + 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_HOME, KC_PGUP, + 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_ENT, KC_END , KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(WIN_FN), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [WIN_FN] =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_PSCR, KC_SCRL, KC_PAUS, + 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_MPRV, QK_BOOT, + 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_MPLY, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, KC_TRNS, KC_MNXT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_HUD, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/alpaca/wfeclipse/keymaps/via/keymap.c b/keyboards/alpaca/wfeclipse/keymaps/via/keymap.c new file mode 100644 index 0000000000..ed0d448fb1 --- /dev/null +++ b/keyboards/alpaca/wfeclipse/keymaps/via/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2023 temp4gh + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layer_names { + WIN_BASE, + WIN_FN, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [WIN_BASE] =LAYOUT( + QK_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_BSPC, KC_DEL, KC_INS, + 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_HOME, KC_PGUP, + 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_ENT, KC_END , KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(WIN_FN), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [WIN_FN] =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_PSCR, KC_SCRL, KC_PAUS, + 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_MPRV, QK_BOOT, + 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_MPLY, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, KC_TRNS, KC_MNXT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_HUD, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/alpaca/wfeclipse/keymaps/via/rules.mk b/keyboards/alpaca/wfeclipse/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/alpaca/wfeclipse/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/alpaca/wfeclipse/readme.md b/keyboards/alpaca/wfeclipse/readme.md new file mode 100644 index 0000000000..55570e1e7a --- /dev/null +++ b/keyboards/alpaca/wfeclipse/readme.md @@ -0,0 +1,26 @@ +# Alpaca Keyboards whitefox-eclipse + +![Alpaca Keyboards whitefox-eclipse](https://i.imgur.com/VlyDBYGh.jpg) + +A customizable 68% keyboard. + +- Keyboard Maintainer: [temp4gh](https://github.com/temp4gh) +- Hardware Supported: whitefox-eclipse PCB +- Hardware Availability: https://kono.store/collections/all-products-list/products/whitefox-eclipse?variant=43224249991367 + +Make example for this keyboard (after setting up your build environment): + + make alpaca/wfeclipse:default + +Flashing example for this keyboard: + + make alpaca/wfeclipse:default:flash + +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). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/alpaca/wfeclipse/rules.mk b/keyboards/alpaca/wfeclipse/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/alpaca/wfeclipse/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file From 8136cf4bfb2664a0a492f7346132afc78110cce0 Mon Sep 17 00:00:00 2001 From: Ryan Date: Fri, 10 Nov 2023 08:39:15 +1100 Subject: [PATCH 365/496] LED drivers: clean up `SWx`/`CSy` pullup/down resistor config (#22381) --- drivers/led/issi/is31fl3733-simple.c | 16 +++---- drivers/led/issi/is31fl3733-simple.h | 42 ++++++++++------- drivers/led/issi/is31fl3733.c | 16 +++---- drivers/led/issi/is31fl3733.h | 42 ++++++++++------- drivers/led/issi/is31fl3736-simple.c | 16 +++---- drivers/led/issi/is31fl3736-simple.h | 45 +++++++++++-------- drivers/led/issi/is31fl3736.c | 16 +++---- drivers/led/issi/is31fl3736.h | 45 +++++++++++-------- drivers/led/issi/is31fl3737-simple.c | 16 +++---- drivers/led/issi/is31fl3737-simple.h | 45 +++++++++++-------- drivers/led/issi/is31fl3737.c | 16 +++---- drivers/led/issi/is31fl3737.h | 45 +++++++++++-------- drivers/led/issi/is31fl3741-simple.c | 10 ++--- drivers/led/issi/is31fl3741-simple.h | 45 +++++++++++-------- drivers/led/issi/is31fl3741.c | 10 ++--- drivers/led/issi/is31fl3741.h | 45 +++++++++++-------- keyboards/input_club/k_type/is31fl3733-dual.c | 16 +++---- keyboards/input_club/k_type/is31fl3733-dual.h | 34 +++++++++----- 18 files changed, 302 insertions(+), 218 deletions(-) diff --git a/drivers/led/issi/is31fl3733-simple.c b/drivers/led/issi/is31fl3733-simple.c index 966a8d7cf2..63e9f533e2 100644 --- a/drivers/led/issi/is31fl3733-simple.c +++ b/drivers/led/issi/is31fl3733-simple.c @@ -36,8 +36,8 @@ #define IS31FL3733_REG_CONFIGURATION 0x00 // PG3 #define IS31FL3733_REG_GLOBALCURRENT 0x01 // PG3 #define IS31FL3733_REG_RESET 0x11 // PG3 -#define IS31FL3733_REG_SWPULLUP 0x0F // PG3 -#define IS31FL3733_REG_CSPULLUP 0x10 // PG3 +#define IS31FL3733_REG_SW_PULLUP 0x0F // PG3 +#define IS31FL3733_REG_CS_PULLDOWN 0x10 // PG3 #define IS31FL3733_PWM_REGISTER_COUNT 192 #define IS31FL3733_LED_CONTROL_REGISTER_COUNT 24 @@ -54,12 +54,12 @@ # define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3733B only #endif -#ifndef IS31FL3733_SWPULLUP -# define IS31FL3733_SWPULLUP IS31FL3733_PUR_0R +#ifndef IS31FL3733_SW_PULLUP +# define IS31FL3733_SW_PULLUP IS31FL3733_PUR_0_OHM #endif -#ifndef IS31FL3733_CSPULLUP -# define IS31FL3733_CSPULLUP IS31FL3733_PUR_0R +#ifndef IS31FL3733_CS_PULLDOWN +# define IS31FL3733_CSPULLDOWN IS31FL3733_PDR_0_OHM #endif #ifndef IS31FL3733_GLOBALCURRENT @@ -206,9 +206,9 @@ void is31fl3733_init(uint8_t addr, uint8_t sync) { // Select PG3 is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_FUNCTION); // Set de-ghost pull-up resistors (SWx) - is31fl3733_write_register(addr, IS31FL3733_REG_SWPULLUP, IS31FL3733_SWPULLUP); + is31fl3733_write_register(addr, IS31FL3733_REG_SW_PULLUP, IS31FL3733_SW_PULLUP); // Set de-ghost pull-down resistors (CSx) - is31fl3733_write_register(addr, IS31FL3733_REG_CSPULLUP, IS31FL3733_CSPULLUP); + is31fl3733_write_register(addr, IS31FL3733_REG_CS_PULLDOWN, IS31FL3733_CS_PULLDOWN); // Set global current to maximum. is31fl3733_write_register(addr, IS31FL3733_REG_GLOBALCURRENT, IS31FL3733_GLOBALCURRENT); // Disable software shutdown. diff --git a/drivers/led/issi/is31fl3733-simple.h b/drivers/led/issi/is31fl3733-simple.h index 65d3298a50..2c6014455f 100644 --- a/drivers/led/issi/is31fl3733-simple.h +++ b/drivers/led/issi/is31fl3733-simple.h @@ -39,10 +39,10 @@ # define IS31FL3733_PWM_FREQUENCY ISSI_PWM_FREQUENCY #endif #ifdef ISSI_SWPULLUP -# define IS31FL3733_SWPULLUP ISSI_SWPULLUP +# define IS31FL3733_SW_PULLUP ISSI_SWPULLUP #endif #ifdef ISSI_CSPULLUP -# define IS31FL3733_CSPULLUP ISSI_CSPULLUP +# define IS31FL3733_CS_PULLDOWN ISSI_CSPULLUP #endif #ifdef ISSI_GLOBALCURRENT # define IS31FL3733_GLOBALCURRENT ISSI_GLOBALCURRENT @@ -51,13 +51,13 @@ #define is31_led is31fl3733_led_t #define g_is31_leds g_is31fl3733_leds -#define PUR_0R IS31FL3733_PUR_0R -#define PUR_05KR IS31FL3733_PUR_05KR -#define PUR_3KR IS31FL3733_PUR_3KR -#define PUR_4KR IS31FL3733_PUR_4KR -#define PUR_8KR IS31FL3733_PUR_8KR -#define PUR_16KR IS31FL3733_PUR_16KR -#define PUR_32KR IS31FL3733_PUR_32KR +#define PUR_0R IS31FL3733_PUR_0_OHM +#define PUR_05KR IS31FL3733_PUR_1K_OHM +#define PUR_3KR IS31FL3733_PUR_2K_OHM +#define PUR_4KR IS31FL3733_PUR_4K_OHM +#define PUR_8KR IS31FL3733_PUR_8K_OHM +#define PUR_16KR IS31FL3733_PUR_16K_OHM +#define PUR_32KR IS31FL3733_PUR_32K_OHM // ======== #define IS31FL3733_I2C_ADDRESS_GND_GND 0x50 @@ -107,13 +107,23 @@ void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index); void is31fl3733_flush(void); -#define IS31FL3733_PUR_0R 0x00 // No PUR resistor -#define IS31FL3733_PUR_05KR 0x02 // 0.5k Ohm resistor in t_NOL -#define IS31FL3733_PUR_3KR 0x03 // 3.0k Ohm resistor on all the time -#define IS31FL3733_PUR_4KR 0x04 // 4.0k Ohm resistor on all the time -#define IS31FL3733_PUR_8KR 0x05 // 8.0k Ohm resistor on all the time -#define IS31FL3733_PUR_16KR 0x06 // 16k Ohm resistor on all the time -#define IS31FL3733_PUR_32KR 0x07 // 32k Ohm resistor in t_NOL +#define IS31FL3733_PDR_0_OHM 0b000 // No pull-down resistor +#define IS31FL3733_PDR_0K5_OHM 0b001 // 0.5 kOhm resistor +#define IS31FL3733_PDR_1K_OHM 0b010 // 1 kOhm resistor +#define IS31FL3733_PDR_2K_OHM 0b011 // 2 kOhm resistor +#define IS31FL3733_PDR_4K_OHM 0b100 // 4 kOhm resistor +#define IS31FL3733_PDR_8K_OHM 0b101 // 8 kOhm resistor +#define IS31FL3733_PDR_16K_OHM 0b110 // 16 kOhm resistor +#define IS31FL3733_PDR_32K_OHM 0b111 // 32 kOhm resistor + +#define IS31FL3733_PUR_0_OHM 0b000 // No pull-up resistor +#define IS31FL3733_PUR_0K5_OHM 0b001 // 0.5 kOhm resistor +#define IS31FL3733_PUR_1K_OHM 0b010 // 1 kOhm resistor +#define IS31FL3733_PUR_2K_OHM 0b011 // 2 kOhm resistor +#define IS31FL3733_PUR_4K_OHM 0b100 // 4 kOhm resistor +#define IS31FL3733_PUR_8K_OHM 0b101 // 8 kOhm resistor +#define IS31FL3733_PUR_16K_OHM 0b110 // 16 kOhm resistor +#define IS31FL3733_PUR_32K_OHM 0b111 // 32 kOhm resistor #define IS31FL3733_PWM_FREQUENCY_8K4_HZ 0b000 #define IS31FL3733_PWM_FREQUENCY_4K2_HZ 0b001 diff --git a/drivers/led/issi/is31fl3733.c b/drivers/led/issi/is31fl3733.c index 729d2bc57c..5a5f352a6a 100644 --- a/drivers/led/issi/is31fl3733.c +++ b/drivers/led/issi/is31fl3733.c @@ -35,8 +35,8 @@ #define IS31FL3733_REG_CONFIGURATION 0x00 // PG3 #define IS31FL3733_REG_GLOBALCURRENT 0x01 // PG3 #define IS31FL3733_REG_RESET 0x11 // PG3 -#define IS31FL3733_REG_SWPULLUP 0x0F // PG3 -#define IS31FL3733_REG_CSPULLUP 0x10 // PG3 +#define IS31FL3733_REG_SW_PULLUP 0x0F // PG3 +#define IS31FL3733_REG_CS_PULLDOWN 0x10 // PG3 #define IS31FL3733_PWM_REGISTER_COUNT 192 #define IS31FL3733_LED_CONTROL_REGISTER_COUNT 24 @@ -53,12 +53,12 @@ # define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3733B only #endif -#ifndef IS31FL3733_SWPULLUP -# define IS31FL3733_SWPULLUP IS31FL3733_PUR_0R +#ifndef IS31FL3733_SW_PULLUP +# define IS31FL3733_SW_PULLUP IS31FL3733_PUR_0_OHM #endif -#ifndef IS31FL3733_CSPULLUP -# define IS31FL3733_CSPULLUP IS31FL3733_PUR_0R +#ifndef IS31FL3733_CS_PULLDOWN +# define IS31FL3733_CS_PULLDOWN IS31FL3733_PDR_0_OHM #endif #ifndef IS31FL3733_GLOBALCURRENT @@ -205,9 +205,9 @@ void is31fl3733_init(uint8_t addr, uint8_t sync) { // Select PG3 is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_FUNCTION); // Set de-ghost pull-up resistors (SWx) - is31fl3733_write_register(addr, IS31FL3733_REG_SWPULLUP, IS31FL3733_SWPULLUP); + is31fl3733_write_register(addr, IS31FL3733_REG_SW_PULLUP, IS31FL3733_SW_PULLUP); // Set de-ghost pull-down resistors (CSx) - is31fl3733_write_register(addr, IS31FL3733_REG_CSPULLUP, IS31FL3733_CSPULLUP); + is31fl3733_write_register(addr, IS31FL3733_REG_CS_PULLDOWN, IS31FL3733_CS_PULLDOWN); // Set global current to maximum. is31fl3733_write_register(addr, IS31FL3733_REG_GLOBALCURRENT, IS31FL3733_GLOBALCURRENT); // Disable software shutdown. diff --git a/drivers/led/issi/is31fl3733.h b/drivers/led/issi/is31fl3733.h index a8407f2154..a87d790c44 100644 --- a/drivers/led/issi/is31fl3733.h +++ b/drivers/led/issi/is31fl3733.h @@ -62,10 +62,10 @@ # define IS31FL3733_PWM_FREQUENCY ISSI_PWM_FREQUENCY #endif #ifdef ISSI_SWPULLUP -# define IS31FL3733_SWPULLUP ISSI_SWPULLUP +# define IS31FL3733_SW_PULLUP ISSI_SWPULLUP #endif #ifdef ISSI_CSPULLUP -# define IS31FL3733_CSPULLUP ISSI_CSPULLUP +# define IS31FL3733_CS_PULLDOWN ISSI_CSPULLUP #endif #ifdef ISSI_GLOBALCURRENT # define IS31FL3733_GLOBALCURRENT ISSI_GLOBALCURRENT @@ -74,13 +74,13 @@ #define is31_led is31fl3733_led_t #define g_is31_leds g_is31fl3733_leds -#define PUR_0R IS31FL3733_PUR_0R -#define PUR_05KR IS31FL3733_PUR_05KR -#define PUR_3KR IS31FL3733_PUR_3KR -#define PUR_4KR IS31FL3733_PUR_4KR -#define PUR_8KR IS31FL3733_PUR_8KR -#define PUR_16KR IS31FL3733_PUR_16KR -#define PUR_32KR IS31FL3733_PUR_32KR +#define PUR_0R IS31FL3733_PUR_0_OHM +#define PUR_05KR IS31FL3733_PUR_1K_OHM +#define PUR_3KR IS31FL3733_PUR_2K_OHM +#define PUR_4KR IS31FL3733_PUR_4K_OHM +#define PUR_8KR IS31FL3733_PUR_8K_OHM +#define PUR_16KR IS31FL3733_PUR_16K_OHM +#define PUR_32KR IS31FL3733_PUR_32K_OHM // ======== #define IS31FL3733_I2C_ADDRESS_GND_GND 0x50 @@ -132,13 +132,23 @@ void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index); void is31fl3733_flush(void); -#define IS31FL3733_PUR_0R 0x00 // No PUR resistor -#define IS31FL3733_PUR_05KR 0x02 // 0.5k Ohm resistor in t_NOL -#define IS31FL3733_PUR_3KR 0x03 // 3.0k Ohm resistor on all the time -#define IS31FL3733_PUR_4KR 0x04 // 4.0k Ohm resistor on all the time -#define IS31FL3733_PUR_8KR 0x05 // 8.0k Ohm resistor on all the time -#define IS31FL3733_PUR_16KR 0x06 // 16k Ohm resistor on all the time -#define IS31FL3733_PUR_32KR 0x07 // 32k Ohm resistor in t_NOL +#define IS31FL3733_PDR_0_OHM 0b000 // No pull-down resistor +#define IS31FL3733_PDR_0K5_OHM 0b001 // 0.5 kOhm resistor +#define IS31FL3733_PDR_1K_OHM 0b010 // 1 kOhm resistor +#define IS31FL3733_PDR_2K_OHM 0b011 // 2 kOhm resistor +#define IS31FL3733_PDR_4K_OHM 0b100 // 4 kOhm resistor +#define IS31FL3733_PDR_8K_OHM 0b101 // 8 kOhm resistor +#define IS31FL3733_PDR_16K_OHM 0b110 // 16 kOhm resistor +#define IS31FL3733_PDR_32K_OHM 0b111 // 32 kOhm resistor + +#define IS31FL3733_PUR_0_OHM 0b000 // No pull-up resistor +#define IS31FL3733_PUR_0K5_OHM 0b001 // 0.5 kOhm resistor +#define IS31FL3733_PUR_1K_OHM 0b010 // 1 kOhm resistor +#define IS31FL3733_PUR_2K_OHM 0b011 // 2 kOhm resistor +#define IS31FL3733_PUR_4K_OHM 0b100 // 4 kOhm resistor +#define IS31FL3733_PUR_8K_OHM 0b101 // 8 kOhm resistor +#define IS31FL3733_PUR_16K_OHM 0b110 // 16 kOhm resistor +#define IS31FL3733_PUR_32K_OHM 0b111 // 32 kOhm resistor #define IS31FL3733_PWM_FREQUENCY_8K4_HZ 0b000 #define IS31FL3733_PWM_FREQUENCY_4K2_HZ 0b001 diff --git a/drivers/led/issi/is31fl3736-simple.c b/drivers/led/issi/is31fl3736-simple.c index 45daaf3187..e0d76d07c6 100644 --- a/drivers/led/issi/is31fl3736-simple.c +++ b/drivers/led/issi/is31fl3736-simple.c @@ -33,8 +33,8 @@ #define IS31FL3736_REG_CONFIGURATION 0x00 // PG3 #define IS31FL3736_REG_GLOBALCURRENT 0x01 // PG3 #define IS31FL3736_REG_RESET 0x11 // PG3 -#define IS31FL3736_REG_SWPULLUP 0x0F // PG3 -#define IS31FL3736_REG_CSPULLUP 0x10 // PG3 +#define IS31FL3736_REG_SW_PULLUP 0x0F // PG3 +#define IS31FL3736_REG_CS_PULLDOWN 0x10 // PG3 #define IS31FL3736_PWM_REGISTER_COUNT 192 // actually 96 #define IS31FL3736_LED_CONTROL_REGISTER_COUNT 24 @@ -51,12 +51,12 @@ # define IS31FL3736_PWM_FREQUENCY IS31FL3736_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3736B only #endif -#ifndef IS31FL3736_SWPULLUP -# define IS31FL3736_SWPULLUP IS31FL3736_PUR_0R +#ifndef IS31FL3736_SW_PULLUP +# define IS31FL3736_SW_PULLUP IS31FL3736_PUR_0_OHM #endif -#ifndef IS31FL3736_CSPULLUP -# define IS31FL3736_CSPULLUP IS31FL3736_PUR_0R +#ifndef IS31FL3736_CS_PULLDOWN +# define IS31FL3736_CS_PULLDOWN IS31FL3736_PDR_0_OHM #endif #ifndef IS31FL3736_GLOBALCURRENT @@ -178,9 +178,9 @@ void is31fl3736_init(uint8_t addr) { // Select PG3 is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_FUNCTION); // Set de-ghost pull-up resistors (SWx) - is31fl3736_write_register(addr, IS31FL3736_REG_SWPULLUP, IS31FL3736_SWPULLUP); + is31fl3736_write_register(addr, IS31FL3736_REG_SW_PULLUP, IS31FL3736_SW_PULLUP); // Set de-ghost pull-down resistors (CSx) - is31fl3736_write_register(addr, IS31FL3736_REG_CSPULLUP, IS31FL3736_CSPULLUP); + is31fl3736_write_register(addr, IS31FL3736_REG_CS_PULLDOWN, IS31FL3736_CS_PULLDOWN); // Set global current to maximum. is31fl3736_write_register(addr, IS31FL3736_REG_GLOBALCURRENT, IS31FL3736_GLOBALCURRENT); // Disable software shutdown. diff --git a/drivers/led/issi/is31fl3736-simple.h b/drivers/led/issi/is31fl3736-simple.h index cb751a917e..7e3e728641 100644 --- a/drivers/led/issi/is31fl3736-simple.h +++ b/drivers/led/issi/is31fl3736-simple.h @@ -33,10 +33,10 @@ # define IS31FL3736_I2C_PERSISTENCE ISSI_PERSISTENCE #endif #ifdef ISSI_SWPULLUP -# define IS31FL3736_SWPULLUP ISSI_SWPULLUP +# define IS31FL3736_SW_PULLUP ISSI_SWPULLUP #endif #ifdef ISSI_CSPULLUP -# define IS31FL3736_CSPULLUP ISSI_CSPULLUP +# define IS31FL3736_CS_PULLDOWN ISSI_CSPULLUP #endif #ifdef ISSI_GLOBALCURRENT # define IS31FL3736_GLOBALCURRENT ISSI_GLOBALCURRENT @@ -45,14 +45,14 @@ #define is31_led is31fl3736_led_t #define g_is31_leds g_is31fl3736_leds -#define PUR_0R IS31FL3736_PUR_0R -#define PUR_05KR IS31FL3736_PUR_05KR -#define PUR_1KR IS31FL3736_PUR_1KR -#define PUR_2KR IS31FL3736_PUR_2KR -#define PUR_4KR IS31FL3736_PUR_4KR -#define PUR_8KR IS31FL3736_PUR_8KR -#define PUR_16KR IS31FL3736_PUR_16KR -#define PUR_32KR IS31FL3736_PUR_32KR +#define PUR_0R IS31FL3736_PUR_0_OHM +#define PUR_05KR IS31FL3736_PUR_05K_OHM +#define PUR_1KR IS31FL3736_PUR_1K_OHM +#define PUR_2KR IS31FL3736_PUR_2K_OHM +#define PUR_4KR IS31FL3736_PUR_4K_OHM +#define PUR_8KR IS31FL3736_PUR_8K_OHM +#define PUR_16KR IS31FL3736_PUR_16K_OHM +#define PUR_32KR IS31FL3736_PUR_32K_OHM // ======== #define IS31FL3736_I2C_ADDRESS_GND_GND 0x50 @@ -102,14 +102,23 @@ void is31fl3736_update_led_control_registers(uint8_t addr, uint8_t index); void is31fl3736_flush(void); -#define IS31FL3736_PUR_0R 0x00 // No PUR resistor -#define IS31FL3736_PUR_05KR 0x01 // 0.5k Ohm resistor -#define IS31FL3736_PUR_1KR 0x02 // 1.0k Ohm resistor -#define IS31FL3736_PUR_2KR 0x03 // 2.0k Ohm resistor -#define IS31FL3736_PUR_4KR 0x04 // 4.0k Ohm resistor -#define IS31FL3736_PUR_8KR 0x05 // 8.0k Ohm resistor -#define IS31FL3736_PUR_16KR 0x06 // 16k Ohm resistor -#define IS31FL3736_PUR_32KR 0x07 // 32k Ohm resistor +#define IS31FL3736_PDR_0_OHM 0b000 // No pull-down resistor +#define IS31FL3736_PDR_0K5_OHM 0b001 // 0.5 kOhm resistor +#define IS31FL3736_PDR_1K_OHM 0b010 // 1 kOhm resistor +#define IS31FL3736_PDR_2K_OHM 0b011 // 2 kOhm resistor +#define IS31FL3736_PDR_4K_OHM 0b100 // 4 kOhm resistor +#define IS31FL3736_PDR_8K_OHM 0b101 // 8 kOhm resistor +#define IS31FL3736_PDR_16K_OHM 0b110 // 16 kOhm resistor +#define IS31FL3736_PDR_32K_OHM 0b111 // 32 kOhm resistor + +#define IS31FL3736_PUR_0_OHM 0b000 // No pull-up resistor +#define IS31FL3736_PUR_0K5_OHM 0b001 // 0.5 kOhm resistor +#define IS31FL3736_PUR_1K_OHM 0b010 // 1 kOhm resistor +#define IS31FL3736_PUR_2K_OHM 0b011 // 2 kOhm resistor +#define IS31FL3736_PUR_4K_OHM 0b100 // 4 kOhm resistor +#define IS31FL3736_PUR_8K_OHM 0b101 // 8 kOhm resistor +#define IS31FL3736_PUR_16K_OHM 0b110 // 16 kOhm resistor +#define IS31FL3736_PUR_32K_OHM 0b111 // 32 kOhm resistor #define IS31FL3736_PWM_FREQUENCY_8K4_HZ 0b000 #define IS31FL3736_PWM_FREQUENCY_4K2_HZ 0b001 diff --git a/drivers/led/issi/is31fl3736.c b/drivers/led/issi/is31fl3736.c index 36cd132d46..0e3205f19b 100644 --- a/drivers/led/issi/is31fl3736.c +++ b/drivers/led/issi/is31fl3736.c @@ -33,8 +33,8 @@ #define IS31FL3736_REG_CONFIGURATION 0x00 // PG3 #define IS31FL3736_REG_GLOBALCURRENT 0x01 // PG3 #define IS31FL3736_REG_RESET 0x11 // PG3 -#define IS31FL3736_REG_SWPULLUP 0x0F // PG3 -#define IS31FL3736_REG_CSPULLUP 0x10 // PG3 +#define IS31FL3736_REG_SW_PULLUP 0x0F // PG3 +#define IS31FL3736_REG_CS_PULLDOWN 0x10 // PG3 #define IS31FL3736_PWM_REGISTER_COUNT 192 // actually 96 #define IS31FL3736_LED_CONTROL_REGISTER_COUNT 24 @@ -51,12 +51,12 @@ # define IS31FL3736_PWM_FREQUENCY IS31FL3736_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3736B only #endif -#ifndef IS31FL3736_SWPULLUP -# define IS31FL3736_SWPULLUP IS31FL3736_PUR_0R +#ifndef IS31FL3736_SW_PULLUP +# define IS31FL3736_SW_PULLUP IS31FL3736_PUR_0_OHM #endif -#ifndef IS31FL3736_CSPULLUP -# define IS31FL3736_CSPULLUP IS31FL3736_PUR_0R +#ifndef IS31FL3736_CS_PULLDOWN +# define IS31FL3736_CS_PULLDOWN IS31FL3736_PDR_0_OHM #endif #ifndef IS31FL3736_GLOBALCURRENT @@ -178,9 +178,9 @@ void is31fl3736_init(uint8_t addr) { // Select PG3 is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_FUNCTION); // Set de-ghost pull-up resistors (SWx) - is31fl3736_write_register(addr, IS31FL3736_REG_SWPULLUP, IS31FL3736_SWPULLUP); + is31fl3736_write_register(addr, IS31FL3736_REG_SW_PULLUP, IS31FL3736_SW_PULLUP); // Set de-ghost pull-down resistors (CSx) - is31fl3736_write_register(addr, IS31FL3736_REG_CSPULLUP, IS31FL3736_CSPULLUP); + is31fl3736_write_register(addr, IS31FL3736_REG_CS_PULLDOWN, IS31FL3736_CS_PULLDOWN); // Set global current to maximum. is31fl3736_write_register(addr, IS31FL3736_REG_GLOBALCURRENT, IS31FL3736_GLOBALCURRENT); // Disable software shutdown. diff --git a/drivers/led/issi/is31fl3736.h b/drivers/led/issi/is31fl3736.h index 79d8c3276d..bdb787494d 100644 --- a/drivers/led/issi/is31fl3736.h +++ b/drivers/led/issi/is31fl3736.h @@ -45,10 +45,10 @@ # define IS31FL3736_I2C_PERSISTENCE ISSI_PERSISTENCE #endif #ifdef ISSI_SWPULLUP -# define IS31FL3736_SWPULLUP ISSI_SWPULLUP +# define IS31FL3736_SW_PULLUP ISSI_SWPULLUP #endif #ifdef ISSI_CSPULLUP -# define IS31FL3736_CSPULLUP ISSI_CSPULLUP +# define IS31FL3736_CS_PULLDOWN ISSI_CSPULLUP #endif #ifdef ISSI_GLOBALCURRENT # define IS31FL3736_GLOBALCURRENT ISSI_GLOBALCURRENT @@ -57,14 +57,14 @@ #define is31_led is31fl3736_led_t #define g_is31_leds g_is31fl3736_leds -#define PUR_0R IS31FL3736_PUR_0R -#define PUR_05KR IS31FL3736_PUR_05KR -#define PUR_1KR IS31FL3736_PUR_1KR -#define PUR_2KR IS31FL3736_PUR_2KR -#define PUR_4KR IS31FL3736_PUR_4KR -#define PUR_8KR IS31FL3736_PUR_8KR -#define PUR_16KR IS31FL3736_PUR_16KR -#define PUR_32KR IS31FL3736_PUR_32KR +#define PUR_0R IS31FL3736_PUR_0_OHM +#define PUR_05KR IS31FL3736_PUR_0K5_OHM +#define PUR_1KR IS31FL3736_PUR_1K_OHM +#define PUR_2KR IS31FL3736_PUR_2K_OHM +#define PUR_4KR IS31FL3736_PUR_4K_OHM +#define PUR_8KR IS31FL3736_PUR_8K_OHM +#define PUR_16KR IS31FL3736_PUR_16K_OHM +#define PUR_32KR IS31FL3736_PUR_32K_OHM // ======== #define IS31FL3736_I2C_ADDRESS_GND_GND 0x50 @@ -116,14 +116,23 @@ void is31fl3736_update_led_control_registers(uint8_t addr, uint8_t index); void is31fl3736_flush(void); -#define IS31FL3736_PUR_0R 0x00 // No PUR resistor -#define IS31FL3736_PUR_05KR 0x01 // 0.5k Ohm resistor -#define IS31FL3736_PUR_1KR 0x02 // 1.0k Ohm resistor -#define IS31FL3736_PUR_2KR 0x03 // 2.0k Ohm resistor -#define IS31FL3736_PUR_4KR 0x04 // 4.0k Ohm resistor -#define IS31FL3736_PUR_8KR 0x05 // 8.0k Ohm resistor -#define IS31FL3736_PUR_16KR 0x06 // 16k Ohm resistor -#define IS31FL3736_PUR_32KR 0x07 // 32k Ohm resistor +#define IS31FL3736_PDR_0_OHM 0b000 // No pull-down resistor +#define IS31FL3736_PDR_0K5_OHM 0b001 // 0.5 kOhm resistor +#define IS31FL3736_PDR_1K_OHM 0b010 // 1 kOhm resistor +#define IS31FL3736_PDR_2K_OHM 0b011 // 2 kOhm resistor +#define IS31FL3736_PDR_4K_OHM 0b100 // 4 kOhm resistor +#define IS31FL3736_PDR_8K_OHM 0b101 // 8 kOhm resistor +#define IS31FL3736_PDR_16K_OHM 0b110 // 16 kOhm resistor +#define IS31FL3736_PDR_32K_OHM 0b111 // 32 kOhm resistor + +#define IS31FL3736_PUR_0_OHM 0b000 // No pull-up resistor +#define IS31FL3736_PUR_0K5_OHM 0b001 // 0.5 kOhm resistor +#define IS31FL3736_PUR_1K_OHM 0b010 // 1 kOhm resistor +#define IS31FL3736_PUR_2K_OHM 0b011 // 2 kOhm resistor +#define IS31FL3736_PUR_4K_OHM 0b100 // 4 kOhm resistor +#define IS31FL3736_PUR_8K_OHM 0b101 // 8 kOhm resistor +#define IS31FL3736_PUR_16K_OHM 0b110 // 16 kOhm resistor +#define IS31FL3736_PUR_32K_OHM 0b111 // 32 kOhm resistor #define IS31FL3736_PWM_FREQUENCY_8K4_HZ 0b000 #define IS31FL3736_PWM_FREQUENCY_4K2_HZ 0b001 diff --git a/drivers/led/issi/is31fl3737-simple.c b/drivers/led/issi/is31fl3737-simple.c index 0549af16f2..904b7c65bd 100644 --- a/drivers/led/issi/is31fl3737-simple.c +++ b/drivers/led/issi/is31fl3737-simple.c @@ -35,8 +35,8 @@ #define IS31FL3737_REG_CONFIGURATION 0x00 // PG3 #define IS31FL3737_REG_GLOBALCURRENT 0x01 // PG3 #define IS31FL3737_REG_RESET 0x11 // PG3 -#define IS31FL3737_REG_SWPULLUP 0x0F // PG3 -#define IS31FL3737_REG_CSPULLUP 0x10 // PG3 +#define IS31FL3737_REG_SW_PULLUP 0x0F // PG3 +#define IS31FL3737_REG_CS_PULLDOWN 0x10 // PG3 #define IS31FL3737_PWM_REGISTER_COUNT 192 // actually 144 #define IS31FL3737_LED_CONTROL_REGISTER_COUNT 24 @@ -53,12 +53,12 @@ # define IS31FL3737_PWM_FREQUENCY IS31FL3737_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3737B only #endif -#ifndef IS31FL3737_SWPULLUP -# define IS31FL3737_SWPULLUP IS31FL3737_PUR_0R +#ifndef IS31FL3737_SW_PULLUP +# define IS31FL3737_SW_PULLUP IS31FL3737_PUR_0_OHM #endif -#ifndef IS31FL3737_CSPULLUP -# define IS31FL3737_CSPULLUP IS31FL3737_PUR_0R +#ifndef IS31FL3737_CS_PULLDOWN +# define IS31FL3737_CS_PULLDOWN IS31FL3737_PDR_0_OHM #endif #ifndef IS31FL3737_GLOBALCURRENT @@ -181,9 +181,9 @@ void is31fl3737_init(uint8_t addr) { // Select PG3 is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_FUNCTION); // Set de-ghost pull-up resistors (SWx) - is31fl3737_write_register(addr, IS31FL3737_REG_SWPULLUP, IS31FL3737_SWPULLUP); + is31fl3737_write_register(addr, IS31FL3737_REG_SW_PULLUP, IS31FL3737_SW_PULLUP); // Set de-ghost pull-down resistors (CSx) - is31fl3737_write_register(addr, IS31FL3737_REG_CSPULLUP, IS31FL3737_CSPULLUP); + is31fl3737_write_register(addr, IS31FL3737_REG_CS_PULLDOWN, IS31FL3737_CS_PULLDOWN); // Set global current to maximum. is31fl3737_write_register(addr, IS31FL3737_REG_GLOBALCURRENT, IS31FL3737_GLOBALCURRENT); // Disable software shutdown. diff --git a/drivers/led/issi/is31fl3737-simple.h b/drivers/led/issi/is31fl3737-simple.h index dfc2189dec..3262987697 100644 --- a/drivers/led/issi/is31fl3737-simple.h +++ b/drivers/led/issi/is31fl3737-simple.h @@ -38,23 +38,23 @@ # define IS31FL3737_PWM_FREQUENCY ISSI_PWM_FREQUENCY #endif #ifdef ISSI_SWPULLUP -# define IS31FL3737_SWPULLUP ISSI_SWPULLUP +# define IS31FL3737_SW_PULLUP ISSI_SWPULLUP #endif #ifdef ISSI_CSPULLUP -# define IS31FL3737_CSPULLUP ISSI_CSPULLUP +# define IS31FL3737_CS_PULLDOWN ISSI_CSPULLUP #endif #ifdef ISSI_GLOBALCURRENT # define IS31FL3737_GLOBALCURRENT ISSI_GLOBALCURRENT #endif -#define PUR_0R IS31FL3737_PUR_0R -#define PUR_05KR IS31FL3737_PUR_05KR -#define PUR_1KR IS31FL3737_PUR_1KR -#define PUR_2KR IS31FL3737_PUR_2KR -#define PUR_4KR IS31FL3737_PUR_4KR -#define PUR_8KR IS31FL3737_PUR_8KR -#define PUR_16KR IS31FL3737_PUR_16KR -#define PUR_32KR IS31FL3737_PUR_32KR +#define PUR_0R IS31FL3737_PUR_0_OHM +#define PUR_05KR IS31FL3737_PUR_0K5_OHM +#define PUR_1KR IS31FL3737_PUR_1K_OHM +#define PUR_2KR IS31FL3737_PUR_2K_OHM +#define PUR_4KR IS31FL3737_PUR_4K_OHM +#define PUR_8KR IS31FL3737_PUR_8K_OHM +#define PUR_16KR IS31FL3737_PUR_16K_OHM +#define PUR_32KR IS31FL3737_PUR_32K_OHM // ======== #define IS31FL3737_I2C_ADDRESS_GND 0x50 @@ -92,14 +92,23 @@ void is31fl3737_update_led_control_registers(uint8_t addr, uint8_t index); void is31fl3737_flush(void); -#define IS31FL3737_PUR_0R 0x00 // No PUR resistor -#define IS31FL3737_PUR_05KR 0x01 // 0.5k Ohm resistor in t_NOL -#define IS31FL3737_PUR_1KR 0x02 // 1.0k Ohm resistor in t_NOL -#define IS31FL3737_PUR_2KR 0x03 // 2.0k Ohm resistor in t_NOL -#define IS31FL3737_PUR_4KR 0x04 // 4.0k Ohm resistor in t_NOL -#define IS31FL3737_PUR_8KR 0x05 // 8.0k Ohm resistor in t_NOL -#define IS31FL3737_PUR_16KR 0x06 // 16k Ohm resistor in t_NOL -#define IS31FL3737_PUR_32KR 0x07 // 32k Ohm resistor in t_NOL +#define IS31FL3737_PDR_0_OHM 0b000 // No pull-down resistor +#define IS31FL3737_PDR_0K5_OHM 0b001 // 0.5 kOhm resistor +#define IS31FL3737_PDR_1K_OHM 0b010 // 1 kOhm resistor +#define IS31FL3737_PDR_2K_OHM 0b011 // 2 kOhm resistor +#define IS31FL3737_PDR_4K_OHM 0b100 // 4 kOhm resistor +#define IS31FL3737_PDR_8K_OHM 0b101 // 8 kOhm resistor +#define IS31FL3737_PDR_16K_OHM 0b110 // 16 kOhm resistor +#define IS31FL3737_PDR_32K_OHM 0b111 // 32 kOhm resistor + +#define IS31FL3737_PUR_0_OHM 0b000 // No pull-up resistor +#define IS31FL3737_PUR_0K5_OHM 0b001 // 0.5 kOhm resistor +#define IS31FL3737_PUR_1K_OHM 0b010 // 1 kOhm resistor +#define IS31FL3737_PUR_2K_OHM 0b011 // 2 kOhm resistor +#define IS31FL3737_PUR_4K_OHM 0b100 // 4 kOhm resistor +#define IS31FL3737_PUR_8K_OHM 0b101 // 8 kOhm resistor +#define IS31FL3737_PUR_16K_OHM 0b110 // 16 kOhm resistor +#define IS31FL3737_PUR_32K_OHM 0b111 // 32 kOhm resistor #define IS31FL3737_PWM_FREQUENCY_8K4_HZ 0b000 #define IS31FL3737_PWM_FREQUENCY_4K2_HZ 0b001 diff --git a/drivers/led/issi/is31fl3737.c b/drivers/led/issi/is31fl3737.c index 1599e59058..27860558a5 100644 --- a/drivers/led/issi/is31fl3737.c +++ b/drivers/led/issi/is31fl3737.c @@ -35,8 +35,8 @@ #define IS31FL3737_REG_CONFIGURATION 0x00 // PG3 #define IS31FL3737_REG_GLOBALCURRENT 0x01 // PG3 #define IS31FL3737_REG_RESET 0x11 // PG3 -#define IS31FL3737_REG_SWPULLUP 0x0F // PG3 -#define IS31FL3737_REG_CSPULLUP 0x10 // PG3 +#define IS31FL3737_REG_SW_PULLUP 0x0F // PG3 +#define IS31FL3737_REG_CS_PULLDOWN 0x10 // PG3 #define IS31FL3737_PWM_REGISTER_COUNT 192 // actually 144 #define IS31FL3737_LED_CONTROL_REGISTER_COUNT 24 @@ -53,12 +53,12 @@ # define IS31FL3737_PWM_FREQUENCY IS31FL3737_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3737B only #endif -#ifndef IS31FL3737_SWPULLUP -# define IS31FL3737_SWPULLUP IS31FL3737_PUR_0R +#ifndef IS31FL3737_SW_PULLUP +# define IS31FL3737_SW_PULLUP IS31FL3737_PUR_0_OHM #endif -#ifndef IS31FL3737_CSPULLUP -# define IS31FL3737_CSPULLUP IS31FL3737_PUR_0R +#ifndef IS31FL3737_CS_PULLDONW +# define IS31FL3737_CS_PULLDOWN IS31FL3737_PDR_0_OHM #endif #ifndef IS31FL3737_GLOBALCURRENT @@ -181,9 +181,9 @@ void is31fl3737_init(uint8_t addr) { // Select PG3 is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_FUNCTION); // Set de-ghost pull-up resistors (SWx) - is31fl3737_write_register(addr, IS31FL3737_REG_SWPULLUP, IS31FL3737_SWPULLUP); + is31fl3737_write_register(addr, IS31FL3737_REG_SW_PULLUP, IS31FL3737_SW_PULLUP); // Set de-ghost pull-down resistors (CSx) - is31fl3737_write_register(addr, IS31FL3737_REG_CSPULLUP, IS31FL3737_CSPULLUP); + is31fl3737_write_register(addr, IS31FL3737_REG_CS_PULLDOWN, IS31FL3737_CS_PULLDOWN); // Set global current to maximum. is31fl3737_write_register(addr, IS31FL3737_REG_GLOBALCURRENT, IS31FL3737_GLOBALCURRENT); // Disable software shutdown. diff --git a/drivers/led/issi/is31fl3737.h b/drivers/led/issi/is31fl3737.h index 38482584e0..17d2635dd8 100644 --- a/drivers/led/issi/is31fl3737.h +++ b/drivers/led/issi/is31fl3737.h @@ -50,10 +50,10 @@ # define IS31FL3737_PWM_FREQUENCY ISSI_PWM_FREQUENCY #endif #ifdef ISSI_SWPULLUP -# define IS31FL3737_SWPULLUP ISSI_SWPULLUP +# define IS31FL3737_SW_PULLUP ISSI_SWPULLUP #endif #ifdef ISSI_CSPULLUP -# define IS31FL3737_CSPULLUP ISSI_CSPULLUP +# define IS31FL3737_CS_PULLDOWN ISSI_CSPULLUP #endif #ifdef ISSI_GLOBALCURRENT # define IS31FL3737_GLOBALCURRENT ISSI_GLOBALCURRENT @@ -62,14 +62,14 @@ #define is31_led is31fl3737_led_t #define g_is31_leds g_is31fl3737_leds -#define PUR_0R IS31FL3737_PUR_0R -#define PUR_05KR IS31FL3737_PUR_05KR -#define PUR_1KR IS31FL3737_PUR_1KR -#define PUR_2KR IS31FL3737_PUR_2KR -#define PUR_4KR IS31FL3737_PUR_4KR -#define PUR_8KR IS31FL3737_PUR_8KR -#define PUR_16KR IS31FL3737_PUR_16KR -#define PUR_32KR IS31FL3737_PUR_32KR +#define PUR_0R IS31FL3737_PUR_0_OHM +#define PUR_05KR IS31FL3737_PUR_0K5_OHM +#define PUR_1KR IS31FL3737_PUR_1K_OHM +#define PUR_2KR IS31FL3737_PUR_2K_OHM +#define PUR_4KR IS31FL3737_PUR_4K_OHM +#define PUR_8KR IS31FL3737_PUR_8K_OHM +#define PUR_16KR IS31FL3737_PUR_16K_OHM +#define PUR_32KR IS31FL3737_PUR_32K_OHM // ======== #define IS31FL3737_I2C_ADDRESS_GND 0x50 @@ -109,14 +109,23 @@ void is31fl3737_update_led_control_registers(uint8_t addr, uint8_t index); void is31fl3737_flush(void); -#define IS31FL3737_PUR_0R 0x00 // No PUR resistor -#define IS31FL3737_PUR_05KR 0x01 // 0.5k Ohm resistor in t_NOL -#define IS31FL3737_PUR_1KR 0x02 // 1.0k Ohm resistor in t_NOL -#define IS31FL3737_PUR_2KR 0x03 // 2.0k Ohm resistor in t_NOL -#define IS31FL3737_PUR_4KR 0x04 // 4.0k Ohm resistor in t_NOL -#define IS31FL3737_PUR_8KR 0x05 // 8.0k Ohm resistor in t_NOL -#define IS31FL3737_PUR_16KR 0x06 // 16k Ohm resistor in t_NOL -#define IS31FL3737_PUR_32KR 0x07 // 32k Ohm resistor in t_NOL +#define IS31FL3737_PDR_0_OHM 0b000 // No pull-down resistor +#define IS31FL3737_PDR_0K5_OHM 0b001 // 0.5 kOhm resistor +#define IS31FL3737_PDR_1K_OHM 0b010 // 1 kOhm resistor +#define IS31FL3737_PDR_2K_OHM 0b011 // 2 kOhm resistor +#define IS31FL3737_PDR_4K_OHM 0b100 // 4 kOhm resistor +#define IS31FL3737_PDR_8K_OHM 0b101 // 8 kOhm resistor +#define IS31FL3737_PDR_16K_OHM 0b110 // 16 kOhm resistor +#define IS31FL3737_PDR_32K_OHM 0b111 // 32 kOhm resistor + +#define IS31FL3737_PUR_0_OHM 0b000 // No pull-up resistor +#define IS31FL3737_PUR_0K5_OHM 0b001 // 0.5 kOhm resistor +#define IS31FL3737_PUR_1K_OHM 0b010 // 1 kOhm resistor +#define IS31FL3737_PUR_2K_OHM 0b011 // 2 kOhm resistor +#define IS31FL3737_PUR_4K_OHM 0b100 // 4 kOhm resistor +#define IS31FL3737_PUR_8K_OHM 0b101 // 8 kOhm resistor +#define IS31FL3737_PUR_16K_OHM 0b110 // 16 kOhm resistor +#define IS31FL3737_PUR_32K_OHM 0b111 // 32 kOhm resistor #define IS31FL3737_PWM_FREQUENCY_8K4_HZ 0b000 #define IS31FL3737_PWM_FREQUENCY_4K2_HZ 0b001 diff --git a/drivers/led/issi/is31fl3741-simple.c b/drivers/led/issi/is31fl3741-simple.c index 83a1f12f6f..582551c05e 100644 --- a/drivers/led/issi/is31fl3741-simple.c +++ b/drivers/led/issi/is31fl3741-simple.c @@ -58,12 +58,12 @@ # define IS31FL3741_PWM_FREQUENCY IS31FL3741_PWM_FREQUENCY_29K_HZ #endif -#ifndef IS31FL3741_SWPULLUP -# define IS31FL3741_SWPULLUP IS31FL3741_PUR_32KR +#ifndef IS31FL3741_SW_PULLUP +# define IS31FL3741_SW_PULLUP IS31FL3741_PUR_32K_OHM #endif -#ifndef IS31FL3741_CSPULLUP -# define IS31FL3741_CSPULLUP IS31FL3741_PUR_32KR +#ifndef IS31FL3741_CS_PULLDOWN +# define IS31FL3741_CS_PULLDOWN IS31FL3741_PDR_32K_OHM #endif #ifndef IS31FL3741_GLOBALCURRENT @@ -192,7 +192,7 @@ void is31fl3741_init(uint8_t addr) { // Set Golbal Current Control Register is31fl3741_write_register(addr, IS31FL3741_REG_GLOBALCURRENT, IS31FL3741_GLOBALCURRENT); // Set Pull up & Down for SWx CSy - is31fl3741_write_register(addr, IS31FL3741_REG_PULLDOWNUP, ((IS31FL3741_CSPULLUP << 4) | IS31FL3741_SWPULLUP)); + is31fl3741_write_register(addr, IS31FL3741_REG_PULLDOWNUP, ((IS31FL3741_CS_PULLDOWN << 4) | IS31FL3741_SW_PULLUP)); // Set PWM frequency is31fl3741_write_register(addr, IS31FL3741_REG_PWM_FREQUENCY, (IS31FL3741_PWM_FREQUENCY & 0b1111)); diff --git a/drivers/led/issi/is31fl3741-simple.h b/drivers/led/issi/is31fl3741-simple.h index d022f3a865..b8cda3da34 100644 --- a/drivers/led/issi/is31fl3741-simple.h +++ b/drivers/led/issi/is31fl3741-simple.h @@ -38,23 +38,23 @@ # define IS31FL3741_CONFIGURATION ISSI_CONFIGURATION #endif #ifdef ISSI_SWPULLUP -# define IS31FL3741_SWPULLUP ISSI_SWPULLUP +# define IS31FL3741_SW_PULLUP ISSI_SWPULLUP #endif #ifdef ISSI_CSPULLUP -# define IS31FL3741_CSPULLUP ISSI_CSPULLUP +# define IS31FL3741_CS_PULLDOWN ISSI_CSPULLUP #endif #ifdef ISSI_GLOBALCURRENT # define IS31FL3741_GLOBALCURRENT ISSI_GLOBALCURRENT #endif -#define PUR_0R IS31FL3741_PUR_0R -#define PUR_05KR IS31FL3741_PUR_05KR -#define PUR_1KR IS31FL3741_PUR_1KR -#define PUR_2KR IS31FL3741_PUR_2KR -#define PUR_4KR IS31FL3741_PUR_4KR -#define PUR_8KR IS31FL3741_PUR_8KR -#define PUR_16KR IS31FL3741_PUR_16KR -#define PUR_32KR IS31FL3741_PUR_32KR +#define PUR_0R IS31FL3741_PUR_0_OHM +#define PUR_05KR IS31FL3741_PUR_0K5_OHM +#define PUR_1KR IS31FL3741_PUR_1K_OHM +#define PUR_2KR IS31FL3741_PUR_2K_OHM +#define PUR_4KR IS31FL3741_PUR_4K_OHM +#define PUR_8KR IS31FL3741_PUR_8K_OHM +#define PUR_16KR IS31FL3741_PUR_16K_OHM +#define PUR_32KR IS31FL3741_PUR_32K_OHM // ======== #define IS31FL3741_I2C_ADDRESS_GND 0x30 @@ -95,14 +95,23 @@ void is31fl3741_set_pwm_buffer(const is31fl3741_led *pled, uint8_t value); void is31fl3741_flush(void); -#define IS31FL3741_PUR_0R 0x00 // No PUR resistor -#define IS31FL3741_PUR_05KR 0x01 // 0.5k Ohm resistor -#define IS31FL3741_PUR_1KR 0x02 // 1.0k Ohm resistor -#define IS31FL3741_PUR_2KR 0x03 // 2.0k Ohm resistor -#define IS31FL3741_PUR_4KR 0x04 // 4.0k Ohm resistor -#define IS31FL3741_PUR_8KR 0x05 // 8.0k Ohm resistor -#define IS31FL3741_PUR_16KR 0x06 // 16k Ohm resistor -#define IS31FL3741_PUR_32KR 0x07 // 32k Ohm resistor +#define IS31FL3741_PDR_0_OHM 0b000 // No pull-down resistor +#define IS31FL3741_PDR_0K5_OHM 0b001 // 0.5 kOhm resistor +#define IS31FL3741_PDR_1K_OHM 0b010 // 1 kOhm resistor +#define IS31FL3741_PDR_2K_OHM 0b011 // 2 kOhm resistor +#define IS31FL3741_PDR_4K_OHM 0b100 // 4 kOhm resistor +#define IS31FL3741_PDR_8K_OHM 0b101 // 8 kOhm resistor +#define IS31FL3741_PDR_16K_OHM 0b110 // 16 kOhm resistor +#define IS31FL3741_PDR_32K_OHM 0b111 // 32 kOhm resistor + +#define IS31FL3741_PUR_0_OHM 0b000 // No pull-up resistor +#define IS31FL3741_PUR_0K5_OHM 0b001 // 0.5 kOhm resistor +#define IS31FL3741_PUR_1K_OHM 0b010 // 1 kOhm resistor +#define IS31FL3741_PUR_2K_OHM 0b011 // 2 kOhm resistor +#define IS31FL3741_PUR_4K_OHM 0b100 // 4 kOhm resistor +#define IS31FL3741_PUR_8K_OHM 0b101 // 8 kOhm resistor +#define IS31FL3741_PUR_16K_OHM 0b110 // 16 kOhm resistor +#define IS31FL3741_PUR_32K_OHM 0b111 // 32 kOhm resistor #define IS31FL3741_PWM_FREQUENCY_29K_HZ 0b0000 #define IS31FL3741_PWM_FREQUENCY_3K6_HZ 0b0011 diff --git a/drivers/led/issi/is31fl3741.c b/drivers/led/issi/is31fl3741.c index 214cccf2ca..9925a169c3 100644 --- a/drivers/led/issi/is31fl3741.c +++ b/drivers/led/issi/is31fl3741.c @@ -58,12 +58,12 @@ # define IS31FL3741_PWM_FREQUENCY IS31FL3741_PWM_FREQUENCY_29K_HZ #endif -#ifndef IS31FL3741_SWPULLUP -# define IS31FL3741_SWPULLUP IS31FL3741_PUR_32KR +#ifndef IS31FL3741_SW_PULLUP +# define IS31FL3741_SW_PULLUP IS31FL3741_PUR_32K_OHM #endif -#ifndef IS31FL3741_CSPULLUP -# define IS31FL3741_CSPULLUP IS31FL3741_PUR_32KR +#ifndef IS31FL3741_CS_PULLDOWN +# define IS31FL3741_CS_PULLDOWN IS31FL3741_PDR_32K_OHM #endif #ifndef IS31FL3741_GLOBALCURRENT @@ -192,7 +192,7 @@ void is31fl3741_init(uint8_t addr) { // Set Golbal Current Control Register is31fl3741_write_register(addr, IS31FL3741_REG_GLOBALCURRENT, IS31FL3741_GLOBALCURRENT); // Set Pull up & Down for SWx CSy - is31fl3741_write_register(addr, IS31FL3741_REG_PULLDOWNUP, ((IS31FL3741_CSPULLUP << 4) | IS31FL3741_SWPULLUP)); + is31fl3741_write_register(addr, IS31FL3741_REG_PULLDOWNUP, ((IS31FL3741_CS_PULLDOWN << 4) | IS31FL3741_SW_PULLUP)); // Set PWM frequency is31fl3741_write_register(addr, IS31FL3741_REG_PWM_FREQUENCY, (IS31FL3741_PWM_FREQUENCY & 0b1111)); diff --git a/drivers/led/issi/is31fl3741.h b/drivers/led/issi/is31fl3741.h index 2b0e449554..7f3c31a8ab 100644 --- a/drivers/led/issi/is31fl3741.h +++ b/drivers/led/issi/is31fl3741.h @@ -50,10 +50,10 @@ # define IS31FL3741_CONFIGURATION ISSI_CONFIGURATION #endif #ifdef ISSI_SWPULLUP -# define IS31FL3741_SWPULLUP ISSI_SWPULLUP +# define IS31FL3741_SW_PULLUP ISSI_SWPULLUP #endif #ifdef ISSI_CSPULLUP -# define IS31FL3741_CSPULLUP ISSI_CSPULLUP +# define IS31FL3741_CS_PULLDOWN ISSI_CSPULLUP #endif #ifdef ISSI_GLOBALCURRENT # define IS31FL3741_GLOBALCURRENT ISSI_GLOBALCURRENT @@ -62,14 +62,14 @@ #define is31_led is31fl3741_led_t #define g_is31_leds g_is31fl3741_leds -#define PUR_0R IS31FL3741_PUR_0R -#define PUR_05KR IS31FL3741_PUR_05KR -#define PUR_1KR IS31FL3741_PUR_1KR -#define PUR_2KR IS31FL3741_PUR_2KR -#define PUR_4KR IS31FL3741_PUR_4KR -#define PUR_8KR IS31FL3741_PUR_8KR -#define PUR_16KR IS31FL3741_PUR_16KR -#define PUR_32KR IS31FL3741_PUR_32KR +#define PUR_0R IS31FL3741_PUR_0_OHM +#define PUR_05KR IS31FL3741_PUR_0K5_OHM +#define PUR_1KR IS31FL3741_PUR_1K_OHM +#define PUR_2KR IS31FL3741_PUR_2K_OHM +#define PUR_4KR IS31FL3741_PUR_4K_OHM +#define PUR_8KR IS31FL3741_PUR_8K_OHM +#define PUR_16KR IS31FL3741_PUR_16K_OHM +#define PUR_32KR IS31FL3741_PUR_32K_OHM // ======== #define IS31FL3741_I2C_ADDRESS_GND 0x30 @@ -112,14 +112,23 @@ void is31fl3741_set_pwm_buffer(const is31fl3741_led_t *pled, uint8_t red, uint8_ void is31fl3741_flush(void); -#define IS31FL3741_PUR_0R 0x00 // No PUR resistor -#define IS31FL3741_PUR_05KR 0x01 // 0.5k Ohm resistor -#define IS31FL3741_PUR_1KR 0x02 // 1.0k Ohm resistor -#define IS31FL3741_PUR_2KR 0x03 // 2.0k Ohm resistor -#define IS31FL3741_PUR_4KR 0x04 // 4.0k Ohm resistor -#define IS31FL3741_PUR_8KR 0x05 // 8.0k Ohm resistor -#define IS31FL3741_PUR_16KR 0x06 // 16k Ohm resistor -#define IS31FL3741_PUR_32KR 0x07 // 32k Ohm resistor +#define IS31FL3741_PDR_0_OHM 0b000 // No pull-down resistor +#define IS31FL3741_PDR_0K5_OHM 0b001 // 0.5 kOhm resistor +#define IS31FL3741_PDR_1K_OHM 0b010 // 1 kOhm resistor +#define IS31FL3741_PDR_2K_OHM 0b011 // 2 kOhm resistor +#define IS31FL3741_PDR_4K_OHM 0b100 // 4 kOhm resistor +#define IS31FL3741_PDR_8K_OHM 0b101 // 8 kOhm resistor +#define IS31FL3741_PDR_16K_OHM 0b110 // 16 kOhm resistor +#define IS31FL3741_PDR_32K_OHM 0b111 // 32 kOhm resistor + +#define IS31FL3741_PUR_0_OHM 0b000 // No pull-up resistor +#define IS31FL3741_PUR_0K5_OHM 0b001 // 0.5 kOhm resistor +#define IS31FL3741_PUR_1K_OHM 0b010 // 1 kOhm resistor +#define IS31FL3741_PUR_2K_OHM 0b011 // 2 kOhm resistor +#define IS31FL3741_PUR_4K_OHM 0b100 // 4 kOhm resistor +#define IS31FL3741_PUR_8K_OHM 0b101 // 8 kOhm resistor +#define IS31FL3741_PUR_16K_OHM 0b110 // 16 kOhm resistor +#define IS31FL3741_PUR_32K_OHM 0b111 // 32 kOhm resistor #define IS31FL3741_PWM_FREQUENCY_29K_HZ 0b0000 #define IS31FL3741_PWM_FREQUENCY_3K6_HZ 0b0011 diff --git a/keyboards/input_club/k_type/is31fl3733-dual.c b/keyboards/input_club/k_type/is31fl3733-dual.c index d9cf3b5170..8aa9344c85 100644 --- a/keyboards/input_club/k_type/is31fl3733-dual.c +++ b/keyboards/input_club/k_type/is31fl3733-dual.c @@ -33,8 +33,8 @@ #define IS31FL3733_REG_CONFIGURATION 0x00 // PG3 #define IS31FL3733_REG_GLOBALCURRENT 0x01 // PG3 #define IS31FL3733_REG_RESET 0x11 // PG3 -#define IS31FL3733_REG_SWPULLUP 0x0F // PG3 -#define IS31FL3733_REG_CSPULLUP 0x10 // PG3 +#define IS31FL3733_REG_SW_PULLUP 0x0F // PG3 +#define IS31FL3733_REG_CS_PULLDOWN 0x10 // PG3 #define IS31FL3733_PWM_REGISTER_COUNT 192 #define IS31FL3733_LED_CONTROL_REGISTER_COUNT 24 @@ -51,12 +51,12 @@ # define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3733B only #endif -#ifndef IS31FL3733_SWPULLUP -# define IS31FL3733_SWPULLUP IS31FL3733_PUR_0R +#ifndef IS31FL3733_SW_PULLUP +# define IS31FL3733_SW_PULLUP IS31FL3733_PUR_0_OHM #endif -#ifndef IS31FL3733_CSPULLUP -# define IS31FL3733_CSPULLUP IS31FL3733_PUR_0R +#ifndef IS31FL3733_CS_PULLDOWN +# define IS31FL3733_CS_PULLDOWN IS31FL3733_PDR_0_OHM #endif #ifndef IS31FL3733_GLOBALCURRENT @@ -193,9 +193,9 @@ void is31fl3733_init(uint8_t bus, uint8_t addr, uint8_t sync) { // Select PG3 is31fl3733_write_register(bus, addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_FUNCTION); // Set de-ghost pull-up resistors (SWx) - is31fl3733_write_register(bus, addr, IS31FL3733_REG_SWPULLUP, IS31FL3733_SWPULLUP); + is31fl3733_write_register(bus, addr, IS31FL3733_REG_SW_PULLUP, IS31FL3733_SW_PULLUP); // Set de-ghost pull-down resistors (CSx) - is31fl3733_write_register(bus, addr, IS31FL3733_REG_CSPULLUP, IS31FL3733_CSPULLUP); + is31fl3733_write_register(bus, addr, IS31FL3733_REG_CS_PULLDOWN, IS31FL3733_CS_PULLDOWN); // Set global current to maximum. is31fl3733_write_register(bus, addr, IS31FL3733_REG_GLOBALCURRENT, IS31FL3733_GLOBALCURRENT); // Disable software shutdown. diff --git a/keyboards/input_club/k_type/is31fl3733-dual.h b/keyboards/input_club/k_type/is31fl3733-dual.h index 696c234b67..51c4492ff8 100644 --- a/keyboards/input_club/k_type/is31fl3733-dual.h +++ b/keyboards/input_club/k_type/is31fl3733-dual.h @@ -67,19 +67,29 @@ void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index); void is31fl3733_flush(void); -#define IS31FL3733_PUR_0R 0x00 // No PUR resistor -#define IS31FL3733_PUR_05KR 0x02 // 0.5k Ohm resistor in t_NOL -#define IS31FL3733_PUR_3KR 0x03 // 3.0k Ohm resistor on all the time -#define IS31FL3733_PUR_4KR 0x04 // 4.0k Ohm resistor on all the time -#define IS31FL3733_PUR_8KR 0x05 // 8.0k Ohm resistor on all the time -#define IS31FL3733_PUR_16KR 0x06 // 16k Ohm resistor on all the time -#define IS31FL3733_PUR_32KR 0x07 // 32k Ohm resistor in t_NOL +#define IS31FL3733_PDR_0_OHM 0b000 // No pull-down resistor +#define IS31FL3733_PDR_0K5_OHM 0b001 // 0.5 kOhm resistor +#define IS31FL3733_PDR_1K_OHM 0b010 // 1 kOhm resistor +#define IS31FL3733_PDR_2K_OHM 0b011 // 2 kOhm resistor +#define IS31FL3733_PDR_4K_OHM 0b100 // 4 kOhm resistor +#define IS31FL3733_PDR_8K_OHM 0b101 // 8 kOhm resistor +#define IS31FL3733_PDR_16K_OHM 0b110 // 16 kOhm resistor +#define IS31FL3733_PDR_32K_OHM 0b111 // 32 kOhm resistor -#define IS31FL3733_PWM_FREQUENCY_8K4_HZ 0x00 -#define IS31FL3733_PWM_FREQUENCY_4K2_HZ 0x01 -#define IS31FL3733_PWM_FREQUENCY_26K7_HZ 0x02 -#define IS31FL3733_PWM_FREQUENCY_2K1_HZ 0x03 -#define IS31FL3733_PWM_FREQUENCY_1K05_HZ 0x04 +#define IS31FL3733_PUR_0_OHM 0b000 // No pull-up resistor +#define IS31FL3733_PUR_0K5_OHM 0b001 // 0.5 kOhm resistor +#define IS31FL3733_PUR_1K_OHM 0b010 // 1 kOhm resistor +#define IS31FL3733_PUR_2K_OHM 0b011 // 2 kOhm resistor +#define IS31FL3733_PUR_4K_OHM 0b100 // 4 kOhm resistor +#define IS31FL3733_PUR_8K_OHM 0b101 // 8 kOhm resistor +#define IS31FL3733_PUR_16K_OHM 0b110 // 16 kOhm resistor +#define IS31FL3733_PUR_32K_OHM 0b111 // 32 kOhm resistor + +#define IS31FL3733_PWM_FREQUENCY_8K4_HZ 0b000 +#define IS31FL3733_PWM_FREQUENCY_4K2_HZ 0b001 +#define IS31FL3733_PWM_FREQUENCY_26K7_HZ 0b010 +#define IS31FL3733_PWM_FREQUENCY_2K1_HZ 0b011 +#define IS31FL3733_PWM_FREQUENCY_1K05_HZ 0b100 #define IS31FL3733_SYNC_NONE 0b00 #define IS31FL3733_SYNC_MASTER 0b01 From 84df69572ce47f74213869120211f9db371cd3cf Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 10 Nov 2023 05:14:22 +0000 Subject: [PATCH 366/496] Infer LED DRIVER_COUNT from configured addresses (#22311) --- docs/feature_led_matrix.md | 4 ---- docs/feature_rgb_matrix.md | 12 ------------ drivers/led/aw20216s.h | 9 ++++++--- drivers/led/issi/is31fl3731-simple.h | 13 ++++++++++--- drivers/led/issi/is31fl3731.h | 13 ++++++++++--- drivers/led/issi/is31fl3733-simple.h | 13 ++++++++++--- drivers/led/issi/is31fl3733.h | 13 ++++++++++--- drivers/led/issi/is31fl3736-simple.h | 13 ++++++++++--- drivers/led/issi/is31fl3736.h | 13 ++++++++++--- drivers/led/issi/is31fl3737-simple.h | 13 ++++++++++--- drivers/led/issi/is31fl3737.h | 13 ++++++++++--- drivers/led/issi/is31fl3741-simple.h | 13 ++++++++++--- drivers/led/issi/is31fl3741.h | 13 ++++++++++--- drivers/led/issi/is31fl3743.h | 2 +- drivers/led/issi/is31fl3745.h | 2 +- drivers/led/issi/is31flcommon.h | 10 ++++++++++ drivers/led/snled27351-simple.h | 13 ++++++++++--- drivers/led/snled27351.h | 13 ++++++++++--- 18 files changed, 138 insertions(+), 57 deletions(-) diff --git a/docs/feature_led_matrix.md b/docs/feature_led_matrix.md index 7dd2e71d61..b1ce09d349 100644 --- a/docs/feature_led_matrix.md +++ b/docs/feature_led_matrix.md @@ -21,7 +21,6 @@ You can use between 1 and 4 IS31FL3731 IC's. Do not specify `LED_DRIVER_ADDR_ |----------|-------------|---------| | `IS31FL3731_I2C_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 | | `IS31FL3731_I2C_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | -| `IS31FL3731_DRIVER_COUNT` | (Required) How many LED driver IC's are present | | | `LED_MATRIX_LED_COUNT` | (Required) How many LED lights are present across all drivers | | | `IS31FL3731_I2C_ADDRESS_1` | (Required) Address for the first LED driver | | | `IS31FL3731_I2C_ADDRESS_2` | (Optional) Address for the second LED driver | | @@ -43,7 +42,6 @@ Here is an example using 2 drivers. #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -#define IS31FL3731_DRIVER_COUNT 2 #define LED_DRIVER_1_LED_TOTAL 25 #define LED_DRIVER_2_LED_TOTAL 24 #define LED_MATRIX_LED_COUNT (LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL) @@ -96,7 +94,6 @@ Configure the hardware via your `config.h`: |----------|-------------|---------| | `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 | | `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | -| `DRIVER_COUNT` | (Required) How many LED driver IC's are present | | | `LED_MATRIX_LED_COUNT` | (Required) How many LED lights are present across all drivers | | | `DRIVER_ADDR_1` | (Optional) Address for the first LED driver | | | `DRIVER_ADDR_` | (Required) Address for the additional LED drivers | | @@ -129,7 +126,6 @@ Here is an example using 2 drivers. ```c #define DRIVER_ADDR_2 0b0100001 -#define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 66 #define DRIVER_2_LED_TOTAL 42 #define LED_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index f068058093..01ecff1f3f 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -22,7 +22,6 @@ You can use between 1 and 4 IS31FL3731 IC's. Do not specify `DRIVER_ADDR_` de | `IS31FL3731_I2C_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 | | `IS31FL3731_I2C_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | | `IS31FL3731_DEGHOST` | (Optional) Set this define to enable de-ghosting by halving Vcc during blanking time | | -| `IS31FL3731_DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | | `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | | | `IS31FL3731_I2C_ADDRESS_1` | (Required) Address for the first RGB driver | | | `IS31FL3731_I2C_ADDRESS_2` | (Optional) Address for the second RGB driver | | @@ -44,7 +43,6 @@ Here is an example using 2 drivers. #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 25 #define DRIVER_2_LED_TOTAL 24 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) @@ -91,7 +89,6 @@ You can use between 1 and 4 IS31FL3733 IC's. Do not specify `DRIVER_ADDR_` de | `IS31FL3733_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF | | `IS31FL3733_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | | `IS31FL3733_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | -| `IS31FL3733_DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | | `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | | | `IS31FL3733_I2C_ADDRESS_1` | (Required) Address for the first RGB driver | | | `IS31FL3733_I2C_ADDRESS_2` | (Optional) Address for the second RGB driver | | @@ -130,7 +127,6 @@ Here is an example using 2 drivers. #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC -#define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 58 #define DRIVER_2_LED_TOTAL 10 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) @@ -178,7 +174,6 @@ Configure the hardware via your `config.h`: | `IS31FL3736_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF | | `IS31FL3736_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | | `IS31FL3736_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | -| `IS31FL3736_DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | | `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | | | `IS31FL3736_I2C_ADDRESS_1` | (Required) Address for the first RGB driver | | | `IS31FL3736_I2C_ADDRESS_2` | (Optional) Address for the second RGB driver | | @@ -214,7 +209,6 @@ Here is an example using 2 drivers. #define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND #define IS31FL3736_I2C_ADDRESS_2 IS31FL3736_I2C_ADDRESS_GND_SCL -#define IS31FL3736_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 30 #define DRIVER_2_LED_TOTAL 32 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) @@ -255,7 +249,6 @@ Configure the hardware via your `config.h`: | `IS31FL3737_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF | | `IS31FL3737_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | | `IS31FL3737_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | -| `IS31FL3737_DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | | `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | | | `IS31FL3737_I2C_ADDRESS_1` | (Required) Address for the first RGB driver | | | `IS31FL3737_I2C_ADDRESS_2` | (Optional) Address for the second RGB driver | | @@ -290,7 +283,6 @@ Here is an example using 2 drivers. #define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND #define IS31FL3737_I2C_ADDRESS_2 IS31FL3737_I2C_ADDRESS_SCL -#define IS31FL3737_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 30 #define DRIVER_2_LED_TOTAL 36 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) @@ -341,7 +333,6 @@ Configure the hardware via your `config.h`: |----------|-------------|---------| | `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 | | `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | -| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | | `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | | | `DRIVER_ADDR_1` | (Optional) Address for the first RGB driver | | | `DRIVER_ADDR_` | (Required) Address for the additional RGB drivers | | @@ -376,7 +367,6 @@ Here is an example using 2 drivers. ```c #define DRIVER_ADDR_2 0b0100001 -#define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 66 #define DRIVER_2_LED_TOTAL 42 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) @@ -486,7 +476,6 @@ You can use up to 2 AW20216S IC's. Do not specify `DRIVER__xxx` defines for I | `AW20216S_EN_PIN_2` | (Optional) MCU pin connected to second RGB driver hardware enable line | | | `DRIVER_1_LED_TOTAL` | (Required) How many RGB lights are connected to first RGB driver | | | `DRIVER_2_LED_TOTAL` | (Optional) How many RGB lights are connected to second RGB driver | | -| `AW20216S_DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | | `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | | | `AW20216S_SCALING_MAX` | (Optional) LED current scaling value (0-255, higher values mean LED is brighter at full PWM) | 150 | | `AW20216S_GLOBAL_CURRENT_MAX` | (Optional) Driver global current limit (0-255, higher values means the driver may consume more power) | 150 | @@ -502,7 +491,6 @@ Here is an example using 2 drivers. #define AW20216S_EN_PIN_1 C13 #define AW20216S_EN_PIN_2 C13 -#define AW20216S_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 66 #define DRIVER_2_LED_TOTAL 32 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/drivers/led/aw20216s.h b/drivers/led/aw20216s.h index 7ad1e5653b..d79d632084 100644 --- a/drivers/led/aw20216s.h +++ b/drivers/led/aw20216s.h @@ -23,9 +23,6 @@ #include "util.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef DRIVER_COUNT -# define AW20216S_DRIVER_COUNT DRIVER_COUNT -#endif #ifdef AW_SCALING_MAX # define AW20216S_SCALING_MAX AW_SCALING_MAX #endif @@ -59,6 +56,12 @@ # define AW20216S_LED_COUNT RGB_MATRIX_LED_COUNT #endif +#if defined(AW20216S_CS_PIN_2) +# define AW20216S_DRIVER_COUNT 2 +#elif defined(AW20216S_CS_PIN_1) +# define AW20216S_DRIVER_COUNT 1 +#endif + typedef struct aw20216s_led_t { uint8_t driver : 2; uint8_t r; diff --git a/drivers/led/issi/is31fl3731-simple.h b/drivers/led/issi/is31fl3731-simple.h index 185e80683b..32b42feab0 100644 --- a/drivers/led/issi/is31fl3731-simple.h +++ b/drivers/led/issi/is31fl3731-simple.h @@ -36,9 +36,6 @@ #ifdef LED_DRIVER_ADDR_4 # define IS31FL3731_I2C_ADDRESS_4 LED_DRIVER_ADDR_4 #endif -#ifdef LED_DRIVER_COUNT -# define IS31FL3731_DRIVER_COUNT LED_DRIVER_COUNT -#endif #ifdef ISSI_TIMEOUT # define IS31FL3731_I2C_TIMEOUT ISSI_TIMEOUT #endif @@ -62,6 +59,16 @@ # define IS31FL3731_LED_COUNT LED_MATRIX_LED_COUNT #endif +#if defined IS31FL3731_I2C_ADDRESS_4 +# define IS31FL3731_DRIVER_COUNT 4 +#elif defined IS31FL3731_I2C_ADDRESS_3 +# define IS31FL3731_DRIVER_COUNT 3 +#elif defined IS31FL3731_I2C_ADDRESS_2 +# define IS31FL3731_DRIVER_COUNT 2 +#elif defined IS31FL3731_I2C_ADDRESS_1 +# define IS31FL3731_DRIVER_COUNT 1 +#endif + typedef struct is31fl3731_led_t { uint8_t driver : 2; uint8_t v; diff --git a/drivers/led/issi/is31fl3731.h b/drivers/led/issi/is31fl3731.h index 77162ded30..d7b512e4c4 100644 --- a/drivers/led/issi/is31fl3731.h +++ b/drivers/led/issi/is31fl3731.h @@ -35,9 +35,6 @@ #ifdef DRIVER_ADDR_4 # define IS31FL3731_I2C_ADDRESS_4 DRIVER_ADDR_4 #endif -#ifdef DRIVER_COUNT -# define IS31FL3731_DRIVER_COUNT DRIVER_COUNT -#endif #ifdef ISSI_TIMEOUT # define IS31FL3731_I2C_TIMEOUT ISSI_TIMEOUT #endif @@ -61,6 +58,16 @@ # define IS31FL3731_LED_COUNT RGB_MATRIX_LED_COUNT #endif +#if defined(IS31FL3731_I2C_ADDRESS_4) +# define IS31FL3731_DRIVER_COUNT 4 +#elif defined(IS31FL3731_I2C_ADDRESS_3) +# define IS31FL3731_DRIVER_COUNT 3 +#elif defined(IS31FL3731_I2C_ADDRESS_2) +# define IS31FL3731_DRIVER_COUNT 2 +#elif defined(IS31FL3731_I2C_ADDRESS_1) +# define IS31FL3731_DRIVER_COUNT 1 +#endif + typedef struct is31fl3731_led_t { uint8_t driver : 2; uint8_t r; diff --git a/drivers/led/issi/is31fl3733-simple.h b/drivers/led/issi/is31fl3733-simple.h index 2c6014455f..201d3ff788 100644 --- a/drivers/led/issi/is31fl3733-simple.h +++ b/drivers/led/issi/is31fl3733-simple.h @@ -26,9 +26,6 @@ #include "util.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef LED_DRIVER_COUNT -# define IS31FL3733_DRIVER_COUNT LED_DRIVER_COUNT -#endif #ifdef ISSI_TIMEOUT # define IS31FL3733_I2C_TIMEOUT ISSI_TIMEOUT #endif @@ -81,6 +78,16 @@ # define IS31FL3733_LED_COUNT LED_MATRIX_LED_COUNT #endif +#if defined(IS31FL3733_I2C_ADDRESS_4) +# define IS31FL3733_DRIVER_COUNT 4 +#elif defined(IS31FL3733_I2C_ADDRESS_3) +# define IS31FL3733_DRIVER_COUNT 3 +#elif defined(IS31FL3733_I2C_ADDRESS_2) +# define IS31FL3733_DRIVER_COUNT 2 +#elif defined(IS31FL3733_I2C_ADDRESS_1) +# define IS31FL3733_DRIVER_COUNT 1 +#endif + typedef struct is31fl3733_led_t { uint8_t driver : 2; uint8_t v; diff --git a/drivers/led/issi/is31fl3733.h b/drivers/led/issi/is31fl3733.h index a87d790c44..c86aa9ee1e 100644 --- a/drivers/led/issi/is31fl3733.h +++ b/drivers/led/issi/is31fl3733.h @@ -49,9 +49,6 @@ #ifdef DRIVER_ADDR_4 # define IS31FL3733_SYNC_4 DRIVER_SYNC_4 #endif -#ifdef DRIVER_COUNT -# define IS31FL3733_DRIVER_COUNT DRIVER_COUNT -#endif #ifdef ISSI_TIMEOUT # define IS31FL3733_I2C_TIMEOUT ISSI_TIMEOUT #endif @@ -104,6 +101,16 @@ # define IS31FL3733_LED_COUNT RGB_MATRIX_LED_COUNT #endif +#if defined(IS31FL3733_I2C_ADDRESS_4) +# define IS31FL3733_DRIVER_COUNT 4 +#elif defined(IS31FL3733_I2C_ADDRESS_3) +# define IS31FL3733_DRIVER_COUNT 3 +#elif defined(IS31FL3733_I2C_ADDRESS_2) +# define IS31FL3733_DRIVER_COUNT 2 +#elif defined(IS31FL3733_I2C_ADDRESS_1) +# define IS31FL3733_DRIVER_COUNT 1 +#endif + typedef struct is31fl3733_led_t { uint8_t driver : 2; uint8_t r; diff --git a/drivers/led/issi/is31fl3736-simple.h b/drivers/led/issi/is31fl3736-simple.h index 7e3e728641..9ff9c650aa 100644 --- a/drivers/led/issi/is31fl3736-simple.h +++ b/drivers/led/issi/is31fl3736-simple.h @@ -23,9 +23,6 @@ #include "util.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef DRIVER_COUNT -# define IS31FL3736_DRIVER_COUNT DRIVER_COUNT -#endif #ifdef ISSI_TIMEOUT # define IS31FL3736_I2C_TIMEOUT ISSI_TIMEOUT #endif @@ -76,6 +73,16 @@ # define IS31FL3736_LED_COUNT LED_MATRIX_LED_COUNT #endif +#if defined(IS31FL3736_I2C_ADDRESS_4) +# define IS31FL3736_DRIVER_COUNT 4 +#elif defined(IS31FL3736_I2C_ADDRESS_3) +# define IS31FL3736_DRIVER_COUNT 3 +#elif defined(IS31FL3736_I2C_ADDRESS_2) +# define IS31FL3736_DRIVER_COUNT 2 +#elif defined(IS31FL3736_I2C_ADDRESS_1) +# define IS31FL3736_DRIVER_COUNT 1 +#endif + typedef struct is31fl3736_led_t { uint8_t driver : 2; uint8_t v; diff --git a/drivers/led/issi/is31fl3736.h b/drivers/led/issi/is31fl3736.h index bdb787494d..c3fa158de7 100644 --- a/drivers/led/issi/is31fl3736.h +++ b/drivers/led/issi/is31fl3736.h @@ -35,9 +35,6 @@ #ifdef DRIVER_ADDR_4 # define IS31FL3736_I2C_ADDRESS_4 DRIVER_ADDR_4 #endif -#ifdef DRIVER_COUNT -# define IS31FL3736_DRIVER_COUNT DRIVER_COUNT -#endif #ifdef ISSI_TIMEOUT # define IS31FL3736_I2C_TIMEOUT ISSI_TIMEOUT #endif @@ -88,6 +85,16 @@ # define IS31FL3736_LED_COUNT RGB_MATRIX_LED_COUNT #endif +#if defined(IS31FL3736_I2C_ADDRESS_4) +# define IS31FL3736_DRIVER_COUNT 4 +#elif defined(IS31FL3736_I2C_ADDRESS_3) +# define IS31FL3736_DRIVER_COUNT 3 +#elif defined(IS31FL3736_I2C_ADDRESS_2) +# define IS31FL3736_DRIVER_COUNT 2 +#elif defined(IS31FL3736_I2C_ADDRESS_1) +# define IS31FL3736_DRIVER_COUNT 1 +#endif + typedef struct is31fl3736_led_t { uint8_t driver : 2; uint8_t r; diff --git a/drivers/led/issi/is31fl3737-simple.h b/drivers/led/issi/is31fl3737-simple.h index 3262987697..36125518c6 100644 --- a/drivers/led/issi/is31fl3737-simple.h +++ b/drivers/led/issi/is31fl3737-simple.h @@ -25,9 +25,6 @@ #include "util.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef DRIVER_COUNT -# define IS31FL3737_DRIVER_COUNT DRIVER_COUNT -#endif #ifdef ISSI_TIMEOUT # define IS31FL3737_I2C_TIMEOUT ISSI_TIMEOUT #endif @@ -66,6 +63,16 @@ # define IS31FL3737_LED_COUNT LED_MATRIX_LED_COUNT #endif +#if defined(IS31FL3737_I2C_ADDRESS_4) +# define IS31FL3737_DRIVER_COUNT 4 +#elif defined(IS31FL3737_I2C_ADDRESS_3) +# define IS31FL3737_DRIVER_COUNT 3 +#elif defined(IS31FL3737_I2C_ADDRESS_2) +# define IS31FL3737_DRIVER_COUNT 2 +#elif defined(IS31FL3737_I2C_ADDRESS_1) +# define IS31FL3737_DRIVER_COUNT 1 +#endif + typedef struct is31fl3737_led_t { uint8_t driver : 2; uint8_t v; diff --git a/drivers/led/issi/is31fl3737.h b/drivers/led/issi/is31fl3737.h index 17d2635dd8..6a2f301052 100644 --- a/drivers/led/issi/is31fl3737.h +++ b/drivers/led/issi/is31fl3737.h @@ -37,9 +37,6 @@ #ifdef DRIVER_ADDR_4 # define IS31FL3737_I2C_ADDRESS_4 DRIVER_ADDR_4 #endif -#ifdef DRIVER_COUNT -# define IS31FL3737_DRIVER_COUNT DRIVER_COUNT -#endif #ifdef ISSI_TIMEOUT # define IS31FL3737_I2C_TIMEOUT ISSI_TIMEOUT #endif @@ -81,6 +78,16 @@ # define IS31FL3737_LED_COUNT RGB_MATRIX_LED_COUNT #endif +#if defined(IS31FL3737_I2C_ADDRESS_4) +# define IS31FL3737_DRIVER_COUNT 4 +#elif defined(IS31FL3737_I2C_ADDRESS_3) +# define IS31FL3737_DRIVER_COUNT 3 +#elif defined(IS31FL3737_I2C_ADDRESS_2) +# define IS31FL3737_DRIVER_COUNT 2 +#elif defined(IS31FL3737_I2C_ADDRESS_1) +# define IS31FL3737_DRIVER_COUNT 1 +#endif + typedef struct is31fl3737_led_t { uint8_t driver : 2; uint8_t r; diff --git a/drivers/led/issi/is31fl3741-simple.h b/drivers/led/issi/is31fl3741-simple.h index b8cda3da34..04f0c2793a 100644 --- a/drivers/led/issi/is31fl3741-simple.h +++ b/drivers/led/issi/is31fl3741-simple.h @@ -25,9 +25,6 @@ #include "util.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef DRIVER_COUNT -# define IS31FL3741_DRIVER_COUNT DRIVER_COUNT -#endif #ifdef ISSI_TIMEOUT # define IS31FL3741_I2C_TIMEOUT ISSI_TIMEOUT #endif @@ -66,6 +63,16 @@ # define IS31FL3741_LED_COUNT LED_MATRIX_LED_COUNT #endif +#if defined(IS31FL3741_I2C_ADDRESS_4) +# define IS31FL3741_DRIVER_COUNT 4 +#elif defined(IS31FL3741_I2C_ADDRESS_3) +# define IS31FL3741_DRIVER_COUNT 3 +#elif defined(IS31FL3741_I2C_ADDRESS_2) +# define IS31FL3741_DRIVER_COUNT 2 +#elif defined(IS31FL3741_I2C_ADDRESS_1) +# define IS31FL3741_DRIVER_COUNT 1 +#endif + typedef struct is31fl3741_led_t { uint8_t driver : 2; uint16_t v : 9; diff --git a/drivers/led/issi/is31fl3741.h b/drivers/led/issi/is31fl3741.h index 7f3c31a8ab..0c3f7d3d18 100644 --- a/drivers/led/issi/is31fl3741.h +++ b/drivers/led/issi/is31fl3741.h @@ -37,9 +37,6 @@ #ifdef DRIVER_ADDR_4 # define IS31FL3741_I2C_ADDRESS_4 DRIVER_ADDR_4 #endif -#ifdef DRIVER_COUNT -# define IS31FL3741_DRIVER_COUNT DRIVER_COUNT -#endif #ifdef ISSI_TIMEOUT # define IS31FL3741_I2C_TIMEOUT ISSI_TIMEOUT #endif @@ -81,6 +78,16 @@ # define IS31FL3741_LED_COUNT RGB_MATRIX_LED_COUNT #endif +#if defined(IS31FL3741_I2C_ADDRESS_4) +# define IS31FL3741_DRIVER_COUNT 4 +#elif defined(IS31FL3741_I2C_ADDRESS_3) +# define IS31FL3741_DRIVER_COUNT 3 +#elif defined(IS31FL3741_I2C_ADDRESS_2) +# define IS31FL3741_DRIVER_COUNT 2 +#elif defined(IS31FL3741_I2C_ADDRESS_1) +# define IS31FL3741_DRIVER_COUNT 1 +#endif + typedef struct is31fl3741_led_t { uint8_t driver : 2; uint16_t r : 9; diff --git a/drivers/led/issi/is31fl3743.h b/drivers/led/issi/is31fl3743.h index d8fcd79096..706b271254 100644 --- a/drivers/led/issi/is31fl3743.h +++ b/drivers/led/issi/is31fl3743.h @@ -36,7 +36,7 @@ // Set defaults for Spread Spectrum Register #ifndef ISSI_SSR_1 -# if DRIVER_COUNT == 1 +# ifndef DRIVER_ADDR_2 # define ISSI_SSR_1 0x00 # else # define ISSI_SSR_1 0xC0 diff --git a/drivers/led/issi/is31fl3745.h b/drivers/led/issi/is31fl3745.h index ca5dd4a986..1e88aab4a8 100644 --- a/drivers/led/issi/is31fl3745.h +++ b/drivers/led/issi/is31fl3745.h @@ -36,7 +36,7 @@ // Set defaults for Spread Spectrum Register #ifndef ISSI_SSR_1 -# if DRIVER_COUNT == 1 +# ifndef DRIVER_ADDR_2 # define ISSI_SSR_1 0x00 # else # define ISSI_SSR_1 0xC0 diff --git a/drivers/led/issi/is31flcommon.h b/drivers/led/issi/is31flcommon.h index 5414b54047..10613a6eed 100644 --- a/drivers/led/issi/is31flcommon.h +++ b/drivers/led/issi/is31flcommon.h @@ -36,6 +36,16 @@ # include "is31fl3746.h" #endif +#if defined DRIVER_ADDR_4 +# define DRIVER_COUNT 4 +#elif defined DRIVER_ADDR_3 +# define DRIVER_COUNT 3 +#elif defined DRIVER_ADDR_2 +# define DRIVER_COUNT 2 +#elif defined DRIVER_ADDR_1 +# define DRIVER_COUNT 1 +#endif + #ifdef RGB_MATRIX_ENABLE typedef struct is31_led { uint8_t driver : 2; diff --git a/drivers/led/snled27351-simple.h b/drivers/led/snled27351-simple.h index 051271cca8..66e5d162d0 100644 --- a/drivers/led/snled27351-simple.h +++ b/drivers/led/snled27351-simple.h @@ -22,9 +22,6 @@ #include "util.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef DRIVER_COUNT -# define SNLED27351_DRIVER_COUNT DRIVER_COUNT -#endif #ifdef CKLED2001_TIMEOUT # define SNLED27351_I2C_TIMEOUT CKLED2001_TIMEOUT #endif @@ -64,6 +61,16 @@ # define SNLED27351_LED_COUNT LED_MATRIX_LED_COUNT #endif +#if defined(SNLED27351_I2C_ADDRESS_4) +# define SNLED27351_DRIVER_COUNT 4 +#elif defined(SNLED27351_I2C_ADDRESS_3) +# define SNLED27351_DRIVER_COUNT 3 +#elif defined(SNLED27351_I2C_ADDRESS_2) +# define SNLED27351_DRIVER_COUNT 2 +#elif defined(SNLED27351_I2C_ADDRESS_1) +# define SNLED27351_DRIVER_COUNT 1 +#endif + typedef struct snled27351_led_t { uint8_t driver : 2; uint8_t v; diff --git a/drivers/led/snled27351.h b/drivers/led/snled27351.h index dd60f59183..77837d36aa 100644 --- a/drivers/led/snled27351.h +++ b/drivers/led/snled27351.h @@ -22,9 +22,6 @@ #include "util.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef DRIVER_COUNT -# define SNLED27351_DRIVER_COUNT DRIVER_COUNT -#endif #ifdef DRIVER_ADDR_1 # define SNLED27351_I2C_ADDRESS_1 DRIVER_ADDR_1 #endif @@ -76,6 +73,16 @@ # define SNLED27351_LED_COUNT RGB_MATRIX_LED_COUNT #endif +#if defined(SNLED27351_I2C_ADDRESS_4) +# define SNLED27351_DRIVER_COUNT 4 +#elif defined(SNLED27351_I2C_ADDRESS_3) +# define SNLED27351_DRIVER_COUNT 3 +#elif defined(SNLED27351_I2C_ADDRESS_2) +# define SNLED27351_DRIVER_COUNT 2 +#elif defined(SNLED27351_I2C_ADDRESS_1) +# define SNLED27351_DRIVER_COUNT 1 +#endif + typedef struct snled27351_led_t { uint8_t driver : 2; uint8_t r; From 38d6e9a75a4cff4ae5bd32209fc0cecb83c6f23b Mon Sep 17 00:00:00 2001 From: ploopyco <54917504+ploopyco@users.noreply.github.com> Date: Fri, 10 Nov 2023 11:42:15 -0500 Subject: [PATCH 367/496] Add Ploopy Madromys mouse (#21989) Added PloopyCo madromys/adept mouse Co-authored-by: Drashna Jaelre --- keyboards/ploopyco/madromys/config.h | 29 +++ keyboards/ploopyco/madromys/info.json | 35 ++++ .../madromys/keymaps/default/keymap.c | 22 +++ .../ploopyco/madromys/keymaps/via/keymap.c | 22 +++ .../ploopyco/madromys/keymaps/via/readme.md | 1 + .../ploopyco/madromys/keymaps/via/rules.mk | 1 + keyboards/ploopyco/madromys/madromys.c | 176 ++++++++++++++++++ keyboards/ploopyco/madromys/madromys.h | 37 ++++ keyboards/ploopyco/madromys/readme.md | 43 +++++ .../ploopyco/madromys/rev1_001/info.json | 23 +++ .../ploopyco/madromys/rev1_001/readme.md | 3 + keyboards/ploopyco/madromys/rev1_001/rules.mk | 0 keyboards/ploopyco/madromys/rules.mk | 3 + 13 files changed, 395 insertions(+) create mode 100644 keyboards/ploopyco/madromys/config.h create mode 100644 keyboards/ploopyco/madromys/info.json create mode 100644 keyboards/ploopyco/madromys/keymaps/default/keymap.c create mode 100644 keyboards/ploopyco/madromys/keymaps/via/keymap.c create mode 100644 keyboards/ploopyco/madromys/keymaps/via/readme.md create mode 100644 keyboards/ploopyco/madromys/keymaps/via/rules.mk create mode 100644 keyboards/ploopyco/madromys/madromys.c create mode 100644 keyboards/ploopyco/madromys/madromys.h create mode 100644 keyboards/ploopyco/madromys/readme.md create mode 100644 keyboards/ploopyco/madromys/rev1_001/info.json create mode 100644 keyboards/ploopyco/madromys/rev1_001/readme.md create mode 100644 keyboards/ploopyco/madromys/rev1_001/rules.mk create mode 100644 keyboards/ploopyco/madromys/rules.mk diff --git a/keyboards/ploopyco/madromys/config.h b/keyboards/ploopyco/madromys/config.h new file mode 100644 index 0000000000..19fa1fada4 --- /dev/null +++ b/keyboards/ploopyco/madromys/config.h @@ -0,0 +1,29 @@ +/* Copyright 2023 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// #define ROTATIONAL_TRANSFORM_ANGLE 0 +#define POINTING_DEVICE_INVERT_Y + +/* PMW3360 Settings */ +#define PMW33XX_LIFTOFF_DISTANCE 0x00 +#define PMW33XX_CS_PIN GP5 +#define SPI_SCK_PIN GP2 +#define SPI_MISO_PIN GP0 +#define SPI_MOSI_PIN GP7 \ No newline at end of file diff --git a/keyboards/ploopyco/madromys/info.json b/keyboards/ploopyco/madromys/info.json new file mode 100644 index 0000000000..e39f593df9 --- /dev/null +++ b/keyboards/ploopyco/madromys/info.json @@ -0,0 +1,35 @@ +{ + "keyboard_name": "Ploopy Adept Trackball", + "url": "www.ploopy.co", + "maintainer": "ploopyco", + "manufacturer": "Ploopy Corporation", + "processor": "RP2040", + "bootloader": "rp2040", + "usb": { + "vid": "0x5043", + "pid": "0x5C47", + "max_power": 100 + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "pointing_device": true, + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 1], "label":"Top Left Left", "x":0, "y":0, "h":2}, + {"matrix": [0, 2], "label":"Top Left", "x":1.25, "y":0, "h":1.25}, + {"matrix": [0, 3], "label":"Top Right", "x":2.5, "y":0, "h":1.25}, + {"matrix": [0, 4], "label":"Top Right Right", "x":3.75, "y":0, "h":2}, + {"matrix": [0, 0], "label":"Bottom Left", "x":0, "y":2.25, "w":1.75, "h":2}, + {"matrix": [0, 5], "label":"Bottom Right", "x":3, "y":2.25, "w":1.75, "h":2} + ] + } + }, + "dynamic_keymap": { + "layer_count": 8 + }, +} diff --git a/keyboards/ploopyco/madromys/keymaps/default/keymap.c b/keyboards/ploopyco/madromys/keymaps/default/keymap.c new file mode 100644 index 0000000000..bc8265b39d --- /dev/null +++ b/keyboards/ploopyco/madromys/keymaps/default/keymap.c @@ -0,0 +1,22 @@ +/* Copyright 2023 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( KC_BTN4, KC_BTN5, DRAG_SCROLL, KC_BTN2, KC_BTN1, KC_BTN3 ) +}; diff --git a/keyboards/ploopyco/madromys/keymaps/via/keymap.c b/keyboards/ploopyco/madromys/keymaps/via/keymap.c new file mode 100644 index 0000000000..bc8265b39d --- /dev/null +++ b/keyboards/ploopyco/madromys/keymaps/via/keymap.c @@ -0,0 +1,22 @@ +/* Copyright 2023 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( KC_BTN4, KC_BTN5, DRAG_SCROLL, KC_BTN2, KC_BTN1, KC_BTN3 ) +}; diff --git a/keyboards/ploopyco/madromys/keymaps/via/readme.md b/keyboards/ploopyco/madromys/keymaps/via/readme.md new file mode 100644 index 0000000000..c8717fe1f7 --- /dev/null +++ b/keyboards/ploopyco/madromys/keymaps/via/readme.md @@ -0,0 +1 @@ +This is the VIA keymap for Ploopyco Madromys Trackball, which can be used to customise the key layout. See [the VIA online app](https://usevia.app/) for how to do this. diff --git a/keyboards/ploopyco/madromys/keymaps/via/rules.mk b/keyboards/ploopyco/madromys/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/ploopyco/madromys/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/ploopyco/madromys/madromys.c b/keyboards/ploopyco/madromys/madromys.c new file mode 100644 index 0000000000..8ea1bcdbd7 --- /dev/null +++ b/keyboards/ploopyco/madromys/madromys.c @@ -0,0 +1,176 @@ +/* Copyright 2023 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "madromys.h" + +#ifndef PLOOPY_DPI_OPTIONS +# define PLOOPY_DPI_OPTIONS \ + { 600, 900, 1200, 1600 } +# ifndef PLOOPY_DPI_DEFAULT +# define PLOOPY_DPI_DEFAULT 1 +# endif +#endif +#ifndef PLOOPY_DPI_DEFAULT +# define PLOOPY_DPI_DEFAULT 0 +#endif +#ifndef PLOOPY_DRAGSCROLL_DPI +# define PLOOPY_DRAGSCROLL_DPI 100 // Fixed-DPI Drag Scroll +#endif +#ifndef PLOOPY_DRAGSCROLL_FIXED +# define PLOOPY_DRAGSCROLL_FIXED 1 +#endif +#ifndef PLOOPY_DRAGSCROLL_MULTIPLIER +# define PLOOPY_DRAGSCROLL_MULTIPLIER 0.75 // Variable-DPI Drag Scroll +#endif +#ifndef PLOOPY_DRAGSCROLL_SEMAPHORE +# define PLOOPY_DRAGSCROLL_SEMAPHORE 4 +#endif +#ifndef PLOOPY_DRAGSCROLL_MOMENTARY +# define PLOOPY_DRAGSCROLL_MOMENTARY 1 +#endif +#ifndef PLOOPY_DRAGSCROLL_INVERT +# define PLOOPY_DRAGSCROLL_INVERT 1 +#endif + +keyboard_config_t keyboard_config; +uint16_t dpi_array[] = PLOOPY_DPI_OPTIONS; +#define DPI_OPTION_SIZE (sizeof(dpi_array) / sizeof(uint16_t)) + +// TODO: Implement libinput profiles +// https://wayland.freedesktop.org/libinput/doc/latest/pointer-acceleration.html +// Compile time accel selection +// Valid options are ACC_NONE, ACC_LINEAR, ACC_CUSTOM, ACC_QUADRATIC + +// Trackball State +bool is_drag_scroll = false; + +// drag scroll divisor state +int8_t drag_scroll_x_semaphore = 0; +int8_t drag_scroll_y_semaphore = 0; + +report_mouse_t pointing_device_task_kb(report_mouse_t mouse_report) { + if (is_drag_scroll) { + int16_t mouse_report_x_temp = mouse_report.x; + int16_t mouse_report_y_temp = mouse_report.y; + int16_t mouse_report_x_calc = 0; + int16_t mouse_report_y_calc = 0; + int16_t valx = (mouse_report_x_temp > 0) ? -1 : 1; + int16_t valy = (mouse_report_y_temp > 0) ? -1 : 1; + + while (mouse_report_x_temp != 0) { + mouse_report_x_temp += valx; + drag_scroll_x_semaphore -= valx; + + if (abs(drag_scroll_x_semaphore) >= PLOOPY_DRAGSCROLL_SEMAPHORE) { + mouse_report_x_calc -= valx; + drag_scroll_x_semaphore = 0; + } + } + + while (mouse_report_y_temp != 0) { + mouse_report_y_temp += valy; + drag_scroll_y_semaphore -= valy; + + if (abs(drag_scroll_y_semaphore) >= PLOOPY_DRAGSCROLL_SEMAPHORE) { + mouse_report_y_calc -= valy; + drag_scroll_y_semaphore = 0; + } + } + + mouse_report.h = mouse_report_x_calc; + +#ifdef PLOOPY_DRAGSCROLL_INVERT + // Invert vertical scroll direction + mouse_report.v = -mouse_report_y_calc; +#else + mouse_report.v = mouse_report_y_calc; +#endif + mouse_report.x = 0; + mouse_report.y = 0; + } + + return pointing_device_task_user(mouse_report); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t* record) { + if (!process_record_user(keycode, record)) { + return false; + } + + if (keycode == DPI_CONFIG && record->event.pressed) { + keyboard_config.dpi_config = (keyboard_config.dpi_config + 1) % DPI_OPTION_SIZE; + eeconfig_update_kb(keyboard_config.raw); + pointing_device_set_cpi(dpi_array[keyboard_config.dpi_config]); + } + + if (keycode == DRAG_SCROLL) { +#ifndef PLOOPY_DRAGSCROLL_MOMENTARY + if (record->event.pressed) +#endif + { + is_drag_scroll ^= 1; + } +#ifdef PLOOPY_DRAGSCROLL_FIXED + pointing_device_set_cpi(is_drag_scroll ? PLOOPY_DRAGSCROLL_DPI : dpi_array[keyboard_config.dpi_config]); +#else + pointing_device_set_cpi(is_drag_scroll ? (dpi_array[keyboard_config.dpi_config] * PLOOPY_DRAGSCROLL_MULTIPLIER) : dpi_array[keyboard_config.dpi_config]); +#endif + } + + return true; +} + +// Hardware Setup +void keyboard_pre_init_kb(void) { + // debug_enable = true; + // debug_matrix = true; + // debug_mouse = true; + // debug_encoder = true; + + /* Ground all output pins connected to ground. This provides additional + * pathways to ground. If you're messing with this, know this: driving ANY + * of these pins high will cause a short. On the MCU. Ka-blooey. + */ + const pin_t unused_pins[] = { GP1, GP3, GP4, GP6, GP8, GP10, GP14, GP16, + GP18, GP20, GP22, GP24, GP25, GP26, GP27, GP28, GP29 }; + + for (uint8_t i = 0; i < (sizeof(unused_pins) / sizeof(pin_t)); i++) { + setPinOutput(unused_pins[i]); + writePinLow(unused_pins[i]); + } + + keyboard_pre_init_user(); +} + +void pointing_device_init_kb(void) { pointing_device_set_cpi(dpi_array[keyboard_config.dpi_config]); } + +void eeconfig_init_kb(void) { + keyboard_config.dpi_config = PLOOPY_DPI_DEFAULT; + eeconfig_update_kb(keyboard_config.raw); + eeconfig_init_user(); +} + +void matrix_init_kb(void) { + // is safe to just read DPI setting since matrix init + // comes before pointing device init. + keyboard_config.raw = eeconfig_read_kb(); + if (keyboard_config.dpi_config > DPI_OPTION_SIZE) { + eeconfig_init_kb(); + } + matrix_init_user(); +} diff --git a/keyboards/ploopyco/madromys/madromys.h b/keyboards/ploopyco/madromys/madromys.h new file mode 100644 index 0000000000..944cce937b --- /dev/null +++ b/keyboards/ploopyco/madromys/madromys.h @@ -0,0 +1,37 @@ +/* Copyright 2023 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +typedef union { + uint32_t raw; + struct { + uint8_t dpi_config; + }; +} keyboard_config_t; +_Static_assert(sizeof(keyboard_config_t) == sizeof(uint32_t), "keyboard_config_t size mismatch compared to EEPROM area"); + +extern keyboard_config_t keyboard_config; +extern uint16_t dpi_array[]; + +enum ploopy_keycodes { + DPI_CONFIG = QK_KB_0, + DRAG_SCROLL, +}; diff --git a/keyboards/ploopyco/madromys/readme.md b/keyboards/ploopyco/madromys/readme.md new file mode 100644 index 0000000000..456a3c7db2 --- /dev/null +++ b/keyboards/ploopyco/madromys/readme.md @@ -0,0 +1,43 @@ + +# Ploopyco Madromys Trackball + +It's a DIY, QMK-powered trackball! + +* Keyboard Maintainer: [PloopyCo](https://github.com/ploopyco) +* Hardware Supported: RP2040 +* Hardware Availability: [Store](https://ploopy.co), [GitHub](https://github.com/ploopyco) + +Make example for this keyboard (after setting up your build environment): + + qmk compile -kb ploopyco/madromys -km default + +# Building Firmware + +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). + +# Triggering the Bootloader + +[Do you see those two golden holes in the board](https://ploopy.co/wp-content/uploads/2023/11/boot.jpg)? Those are called **vias**. They act exactly like a switch does. Right now, that switch is OFF. However, if you take a paperclip or a pair of metal tweezers and touch those two vias, the two vias will form an electrical connection. Effectively, that switch turns ON. + +Go ahead and connect the two vias, and then (while the vias are connected) plug in the Madromys board into your computer. + +The computer should recognise that a mass storage device was just plugged in. Once this is done, you should be able to drag and drop files onto the Madromys board, as if the board was a USB drive. Feel free to remove the tweezers or paperclip at this point. + +If you want to upload a new firmware file (a ".uf2" file, like "madromys_awesome_version.uf2" or something), just drag it into the folder, and it'll automatically install on the Madromys board and restart itself, in normal operating mode. You're done! + +**TIP**: If your firmware is in some kind of strange state and uploading new firmware isn't fixing it, try uploading [a flash nuke](https://learn.adafruit.com/getting-started-with-raspberry-pi-pico-circuitpython/circuitpython#flash-resetting-uf2-3083182) to the Madromys board before flashing the new firmware. It wipes the memory of the Madromys board completely clean, which can help clear a few types of errors. + +# Drag Scroll + +Drag Scroll is a custom keycode for Ploopy devices that allows you to hold or tap a button and have the mouse movement translate into scrolling instead. + +Nothing needs to be enabled to use this functionality; it's enabled on Madromys by default. + +### Drag Scroll Configuration + +* `#define PLOOPY_DRAGSCROLL_MOMENTARY` - Makes the key into a momentary key, rather than a toggle. +* `#define PLOOPY_DRAGSCROLL_MULTIPLIER 0.75` - Sets the DPI multiplier to use when drag scroll is enabled. +* `#define PLOOPY_DRAGSCROLL_FIXED` - Normally, when activating Drag Scroll, it uses a fraction of the current DPI. You can define this to use a specific, set DPI rather than a fraction of the current DPI. + * `#define PLOOPY_DRAGSCROLL_DPI 100` - When the fixed DPI option is enabled, this sets the DPI to be used for Drag Scroll. +* `#define PLOOPY_DRAGSCROLL_INVERT` - This reverses the direction that the scroll is performed. +* `#define PLOOPY_DRAGSCROLL_SEMAPHORE` - This is a divisor on the drag scroll sensitivity. The default is 0, which means that the drag scroll is at maximum sensitivity. A value of 4 would mean that the drag scroll is 4 times less sensitive. \ No newline at end of file diff --git a/keyboards/ploopyco/madromys/rev1_001/info.json b/keyboards/ploopyco/madromys/rev1_001/info.json new file mode 100644 index 0000000000..5cb4ee3938 --- /dev/null +++ b/keyboards/ploopyco/madromys/rev1_001/info.json @@ -0,0 +1,23 @@ +{ + "usb": { + "device_version": "1.0.0" + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "direct": [ + ["GP15", "GP17", "GP19", "GP21", "GP23", "GP11"] + ] + }, + "rgblight": { + "led_count": 3, + "max_brightness": 40, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true + } + }, + "ws2812": { + "pin": "GP12" + } +} diff --git a/keyboards/ploopyco/madromys/rev1_001/readme.md b/keyboards/ploopyco/madromys/rev1_001/readme.md new file mode 100644 index 0000000000..b9a2e106db --- /dev/null +++ b/keyboards/ploopyco/madromys/rev1_001/readme.md @@ -0,0 +1,3 @@ +This is the R1.001+ version of Madromys. Future versions may have other features. + +See the [main readme](../readme.md) for more details. diff --git a/keyboards/ploopyco/madromys/rev1_001/rules.mk b/keyboards/ploopyco/madromys/rev1_001/rules.mk new file mode 100644 index 0000000000..e69de29bb2 diff --git a/keyboards/ploopyco/madromys/rules.mk b/keyboards/ploopyco/madromys/rules.mk new file mode 100644 index 0000000000..b7e33d92f9 --- /dev/null +++ b/keyboards/ploopyco/madromys/rules.mk @@ -0,0 +1,3 @@ +POINTING_DEVICE_DRIVER = pmw3360 + +DEFAULT_FOLDER = ploopyco/madromys/rev1_001 From 6876fbe51d02873ae4b63e555ac5cb0a7c36ee98 Mon Sep 17 00:00:00 2001 From: Maria <81305596+toril940@users.noreply.github.com> Date: Fri, 10 Nov 2023 21:39:00 +0000 Subject: [PATCH 368/496] [Keyboard] Add MariOrion v2.5 (#22273) * Pushed MariOrion v2.5 to the branch. Prod and proto version added. * Pushed MariOrion v2.5 to the branch. Prod and proto version added. * Proper addition of layout options Addition of split bs rshift tsangan layout options. Co-authored-by: Duncan Sutherland * Merge branch 'toril940mariorion_v25' of github.com:toril940/qmk_firmware into toril940mariorion_v25 * Merge branch 'toril940mariorion_v25' of github.com:toril940/qmk_firmware into toril940mariorion_v25 * Update keyboards/mariorion_v25/proto/keymaps/via/keymap.c Co-authored-by: Duncan Sutherland * Update keyboards/mariorion_v25/proto/keymaps/default/keymap.c Co-authored-by: Duncan Sutherland * Updated readme.md with more information regarding make commands, and proto vs prod. * Update keyboards/mariorion_v25/prod/keymaps/via/keymap.c Co-authored-by: Duncan Sutherland * Update keyboards/mariorion_v25/prod/keymaps/default/keymap.c Co-authored-by: Duncan Sutherland * Update keyboards/mariorion_v25/prod/info.json Co-authored-by: Duncan Sutherland * Amended some changes to info.json - community layouts changed from scope to array. * Update keyboards/mariorion_v25/readme.md Co-authored-by: Duncan Sutherland * Revert keyboards/gray_studio/think65/solder/solder.c Co-authored-by: Duncan Sutherland * Revert keyboards/gray_studio/think65/solder/solder.c Co-authored-by: Duncan Sutherland * Revert keyboards/gray_studio/think65/solder/solder.c Co-authored-by: Duncan Sutherland * Removed via.json from the via keymaps. Replaced with matrix_diagram.md. via.json file moved off to [public mariorion_v25 repo](https://github.com/toril940/orion-v25) * Revert keyboards/gray_studio/think65/solder/solder.c Co-authored-by: Duncan Sutherland * Removed via.json from the via keymaps. Replaced with matrix_diagram.md. via.json file moved off to [public mariorion_v25 repo](https://github.com/toril940/orion-v25) * Update keyboards/mariorion_v25/proto/info.json Co-authored-by: Duncan Sutherland * Update keyboards/mariorion_v25/rules.mk Co-authored-by: Duncan Sutherland * Update keyboards/mariorion_v25/proto/info.json Co-authored-by: Duncan Sutherland * Update keyboards/mariorion_v25/proto/info.json Co-authored-by: Duncan Sutherland * Update keyboards/mariorion_v25/proto/info.json Co-authored-by: Duncan Sutherland * Update keyboards/mariorion_v25/prod/info.json Co-authored-by: Duncan Sutherland * Update keyboards/mariorion_v25/prod/info.json Co-authored-by: Duncan Sutherland * Update keyboards/mariorion_v25/prod/info.json Co-authored-by: Duncan Sutherland * Update keyboards/mariorion_v25/prod/info.json Co-authored-by: Duncan Sutherland * Revert keyboards/gray_studio/think65/solder/solder.c Co-authored-by: Duncan Sutherland * Update keyboards/mariorion_v25/matrix_diagram.md Co-authored-by: Duncan Sutherland * Update keyboards/mariorion_v25/readme.md Co-authored-by: Duncan Sutherland * Update keyboards/mariorion_v25/readme.md Co-authored-by: Duncan Sutherland * Update keyboards/mariorion_v25/readme.md Co-authored-by: Duncan Sutherland * Update keyboards/mariorion_v25/readme.md Co-authored-by: Duncan Sutherland * Update keyboards/mariorion_v25/readme.md Co-authored-by: Duncan Sutherland * Update keyboards/mariorion_v25/proto/mariorion_v25.c Co-authored-by: Duncan Sutherland * Update keyboards/mariorion_v25/prod/mariorion_v25.c Co-authored-by: Duncan Sutherland * Pushed new info.json and keymap.c files. * Pushed new info.json and keymap.c files. * Fixes to LED driver wrt PWM definitions with STM. * Update keyboards/mariorion_v25/prod/keymaps/via/keymap.c Co-authored-by: Ryan * Update keyboards/mariorion_v25/prod/keymaps/via/keymap.c Co-authored-by: Ryan * Update keyboards/mariorion_v25/prod/info.json Co-authored-by: Ryan * Update keyboards/mariorion_v25/prod/mariorion_v25.c Co-authored-by: Ryan * Update keyboards/mariorion_v25/proto/info.json Co-authored-by: Ryan * Update keyboards/mariorion_v25/proto/config.h Co-authored-by: Ryan * Update keyboards/mariorion_v25/proto/mariorion_v25.c Co-authored-by: Ryan * Update keyboards/mariorion_v25/proto/mariorion_v25.c Co-authored-by: Ryan * Update keyboards/mariorion_v25/proto/keymaps/via/keymap.c Co-authored-by: Ryan * Update keyboards/mariorion_v25/proto/keymaps/via/keymap.c Co-authored-by: Ryan * Committing a details update to readme.md. * Committing a details update to readme.md. * Update keyboards/mariorion_v25/prod/config.h Co-authored-by: Ryan * Update keyboards/mariorion_v25/prod/mariorion_v25.c Co-authored-by: Ryan * Revert "Committing a details update to readme.md." This reverts commit 068a82a1fcf1996d87f7f97a10e9f5fbbee79a29. * Committing a details update to readme.md. * Update keyboards/mariorion_v25/halconf.h Co-authored-by: Ryan * Update keyboards/mariorion_v25/mcuconf.h Co-authored-by: Ryan * Update keyboards/mariorion_v25/prod/config.h Co-authored-by: Ryan * Update keyboards/mariorion_v25/proto/config.h Co-authored-by: Ryan * Update keyboards/mariorion_v25/halconf.h Co-authored-by: Ryan * Production pictures replacing the standard ones in the readme.md :) * waffle87 requests bundled: - Licence headers added - Codeblocked matrix_diagram.md - Consolidated files where possible - Removed excess from config.h --------- Co-authored-by: toril940 Co-authored-by: Duncan Sutherland Co-authored-by: Ryan --- keyboards/mariorion_v25/halconf.h | 10 + .../mariorion_v25/keymaps/default/keymap.c | 32 + keyboards/mariorion_v25/keymaps/via/keymap.c | 32 + keyboards/mariorion_v25/keymaps/via/rules.mk | 1 + keyboards/mariorion_v25/mariorion_v25.c | 72 ++ keyboards/mariorion_v25/matrix_diagram.md | 29 + keyboards/mariorion_v25/mcuconf.h | 9 + keyboards/mariorion_v25/prod/config.h | 16 + keyboards/mariorion_v25/prod/info.json | 889 ++++++++++++++++++ keyboards/mariorion_v25/prod/rules.mk | 1 + keyboards/mariorion_v25/proto/config.h | 16 + keyboards/mariorion_v25/proto/info.json | 889 ++++++++++++++++++ keyboards/mariorion_v25/proto/rules.mk | 1 + keyboards/mariorion_v25/readme.md | 36 + keyboards/mariorion_v25/rules.mk | 1 + 15 files changed, 2034 insertions(+) create mode 100644 keyboards/mariorion_v25/halconf.h create mode 100644 keyboards/mariorion_v25/keymaps/default/keymap.c create mode 100644 keyboards/mariorion_v25/keymaps/via/keymap.c create mode 100644 keyboards/mariorion_v25/keymaps/via/rules.mk create mode 100644 keyboards/mariorion_v25/mariorion_v25.c create mode 100644 keyboards/mariorion_v25/matrix_diagram.md create mode 100644 keyboards/mariorion_v25/mcuconf.h create mode 100644 keyboards/mariorion_v25/prod/config.h create mode 100644 keyboards/mariorion_v25/prod/info.json create mode 100644 keyboards/mariorion_v25/prod/rules.mk create mode 100644 keyboards/mariorion_v25/proto/config.h create mode 100644 keyboards/mariorion_v25/proto/info.json create mode 100644 keyboards/mariorion_v25/proto/rules.mk create mode 100644 keyboards/mariorion_v25/readme.md create mode 100644 keyboards/mariorion_v25/rules.mk diff --git a/keyboards/mariorion_v25/halconf.h b/keyboards/mariorion_v25/halconf.h new file mode 100644 index 0000000000..a25bad2c7f --- /dev/null +++ b/keyboards/mariorion_v25/halconf.h @@ -0,0 +1,10 @@ +// Copyright 2023 Maria (@toril940) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_PWM TRUE + +#define HAL_USE_SPI FALSE + +#include_next \ No newline at end of file diff --git a/keyboards/mariorion_v25/keymaps/default/keymap.c b/keyboards/mariorion_v25/keymaps/default/keymap.c new file mode 100644 index 0000000000..4bee23b272 --- /dev/null +++ b/keyboards/mariorion_v25/keymaps/default/keymap.c @@ -0,0 +1,32 @@ +// Copyright 2023 Maria (@toril940) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Bk│ Bk│ │Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shft │Fn │ │ ↑ │ + * ├────┼───┴┬──┴─┬─┴───┴───┼───┼───┴───┴──┬┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐ + * │Ctrl│GUI │Alt │ │ │ │ Alt│ GUI│Menu│Ctrl│ │ ← │ ↓ │ → │ + * └────┴────┴────┴─────────┴───┴──────────┴────┴────┴────┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_all( + KC_ESC, 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_PSCR, EE_CLR, QK_BOOT, + + KC_GRV, 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_BSPC, KC_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, RGB_TOG, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, RGB_MOD, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/mariorion_v25/keymaps/via/keymap.c b/keyboards/mariorion_v25/keymaps/via/keymap.c new file mode 100644 index 0000000000..95bbe9cfc2 --- /dev/null +++ b/keyboards/mariorion_v25/keymaps/via/keymap.c @@ -0,0 +1,32 @@ +// Copyright 2023 Maria (@toril940) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Bk│ Bk│ │Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shft │Fn │ │ ↑ │ + * ├────┼───┴┬──┴─┬─┴───┴───┼───┼───┴───┴──┬┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐ + * │Ctrl│GUI │Alt │ │ │ │ Alt│ GUI│Menu│Ctrl│ │ ← │ ↓ │ → │ + * └────┴────┴────┴─────────┴───┴──────────┴────┴────┴────┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_all( + KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, + + KC_GRV, 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_BSPC, KC_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, RGB_TOG, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, RGB_MOD, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), +}; diff --git a/keyboards/mariorion_v25/keymaps/via/rules.mk b/keyboards/mariorion_v25/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/mariorion_v25/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/mariorion_v25/mariorion_v25.c b/keyboards/mariorion_v25/mariorion_v25.c new file mode 100644 index 0000000000..7c57c29dfd --- /dev/null +++ b/keyboards/mariorion_v25/mariorion_v25.c @@ -0,0 +1,72 @@ +// Copyright @ +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#include "quantum.h" + +// Optional override functions below. +// You can leave any or all of these undefined. +// These are only required if you want to perform custom actions. + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + setPinOutput(INDICATOR_0); + setPinOutput(INDICATOR_1); + setPinOutput(INDICATOR_2); + matrix_init_user(); +} + +layer_state_t layer_state_set_kb(layer_state_t state) { + switch (get_highest_layer(state)) { + case 1: + writePinHigh(INDICATOR_0); + writePinLow(INDICATOR_1); + writePinLow(INDICATOR_2); + break; + case 2: + writePinLow(INDICATOR_0); + writePinHigh(INDICATOR_1); + writePinLow(INDICATOR_2); + break; + case 3: + writePinLow(INDICATOR_0); + writePinLow(INDICATOR_1); + writePinHigh(INDICATOR_2); + break; + default: + writePinHigh(INDICATOR_0); + writePinHigh(INDICATOR_1); + writePinHigh(INDICATOR_2); + break; + } + return layer_state_set_user(state); +} + +void suspend_power_down_kb(void) { + writePinLow(INDICATOR_0); + writePinLow(INDICATOR_1); + writePinLow(INDICATOR_2); + + suspend_power_down_user(); +} + +void suspend_wakeup_init_kb(void) { + writePinHigh(INDICATOR_0); + writePinHigh(INDICATOR_1); + writePinHigh(INDICATOR_2); + + suspend_wakeup_init_user(); +} diff --git a/keyboards/mariorion_v25/matrix_diagram.md b/keyboards/mariorion_v25/matrix_diagram.md new file mode 100644 index 0000000000..f37df5a6e1 --- /dev/null +++ b/keyboards/mariorion_v25/matrix_diagram.md @@ -0,0 +1,29 @@ +# Matrix Diagram for MariOrion v2.5 +``` +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ +│00 │ │02 │03 │04 │05 │ │06 │07 │08 │09 │ │0A │0B │0C │0D │ │0F │0G │0H │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ │2F │1G │1H │ │1D │ 2u Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ └─┬─────┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │3F │2G │2H │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ┌──┴┐3D │ ISO Enter +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │ │3C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ └───┴────┘ +│40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │ │4G │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐ +│50 │51 │52 │55 │5A │5B │5C │5D │ │5F │5G │5H │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ +┌────────┐ ┌──────────┐ +│40 │ 2.25u LShift 2.75u RShift │4C │ +└────────┘ └──────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│50 │51 │52 │55 │5B │5C │5D │ Tsangan/WKL +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +┌─────┬───┬─────┬───────────┬───┬───────────┬─────┬───┬─────┐ +│50 │51 │52 │53 │55 │57 │5B │5C │5D │ Split 7u Spacebar +└─────┴───┴─────┴───────────┴───┴───────────┴─────┴───┴─────┘ +┌─────┬───┬───────────────────────────────────────┬───┬─────┐ +│50 │51 │55 │5C │5D │ 10u Spacebar +└─────┴───┴───────────────────────────────────────┴───┴─────┘ +``` \ No newline at end of file diff --git a/keyboards/mariorion_v25/mcuconf.h b/keyboards/mariorion_v25/mcuconf.h new file mode 100644 index 0000000000..c2cf95aef2 --- /dev/null +++ b/keyboards/mariorion_v25/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2023 Maria (@toril940) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#define STM32_PWM_USE_TIM17 TRUE +#define STM32_TIM17_SUPPRESS_ISR \ No newline at end of file diff --git a/keyboards/mariorion_v25/prod/config.h b/keyboards/mariorion_v25/prod/config.h new file mode 100644 index 0000000000..042f7662d8 --- /dev/null +++ b/keyboards/mariorion_v25/prod/config.h @@ -0,0 +1,16 @@ +// Copyright 2023 Maria (@toril940) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define WS2812_EXTERNAL_PULLUP + +#define WS2812_PWM_DRIVER PWMD17 +#define WS2812_PWM_CHANNEL 1 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM1 +#define WS2812_DMA_CHANNEL 1 +// #define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM17_UP + +#define INDICATOR_0 C9 +#define INDICATOR_1 C8 +#define INDICATOR_2 C7 \ No newline at end of file diff --git a/keyboards/mariorion_v25/prod/info.json b/keyboards/mariorion_v25/prod/info.json new file mode 100644 index 0000000000..dd014be03a --- /dev/null +++ b/keyboards/mariorion_v25/prod/info.json @@ -0,0 +1,889 @@ +{ + "manufacturer": "Maria", + "keyboard_name": "MariOrion v2.5", + "maintainer": "toril940", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight" : true + }, + "indicators": { + "caps_lock": "A6", + "num_lock": "A15", + "on_state": 0 + }, + "rgblight": { + "led_count": 25, + "animations": { + "static_light": true, + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "christmas": true, + "static_gradient": true, + "twinkle": true + }, + "driver": "ws2812", + "led_map": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 24, 23, 22, 21, 20], + "sleep": true + }, + "ws2812": { + "driver": "pwm", + "pin": "B9" + }, + "matrix_pins": { + "cols": ["A4", "A5", "A7", "C4", "C5", "B0", "B1", "B2", "B10", "B11", "B13", "B14", "B15", "C6", "B12", + "F0", "C15", "C14"], + "rows": ["B5", "B4", "B3", "A2", "C13", "B8"] + }, + "processor": "STM32F072", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0002", + "vid": "0x6108" + }, + "community_layouts": ["tkl_ansi", "tkl_ansi_split_bs_rshift", "tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift", + "tkl_iso", "tkl_iso_split_bs_rshift", "tkl_iso_tsangan", "tkl_iso_tsangan_split_bs_rshift"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 15], "x":15.25, "y":2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 3], "x": 3.75, "y": 5.25, "w": 2.375}, + {"matrix": [5, 5], "x": 6.25, "y": 5.25}, + {"matrix": [5, 7], "x": 7.25, "y": 5.25, "w": 2.375}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 15], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 15], "x":15.25, "y":2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 15], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 15], "x":15.25, "y":2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 15], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 15], "x":15.25, "y":2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 5], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 15], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 15], "x":15.25, "y":2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 5], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 15], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 15], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 15], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 5], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 15], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 5], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 15], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/mariorion_v25/prod/rules.mk b/keyboards/mariorion_v25/prod/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/mariorion_v25/prod/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/mariorion_v25/proto/config.h b/keyboards/mariorion_v25/proto/config.h new file mode 100644 index 0000000000..6865f2dbb0 --- /dev/null +++ b/keyboards/mariorion_v25/proto/config.h @@ -0,0 +1,16 @@ +// Copyright 2023 Maria (@toril940) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define WS2812_EXTERNAL_PULLUP + +#define WS2812_PWM_DRIVER PWMD17 +#define WS2812_PWM_CHANNEL 1 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM1 +#define WS2812_DMA_CHANNEL 1 +// #define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM17_UP + +#define INDICATOR_0 C8 +#define INDICATOR_1 C7 +#define INDICATOR_2 C6 \ No newline at end of file diff --git a/keyboards/mariorion_v25/proto/info.json b/keyboards/mariorion_v25/proto/info.json new file mode 100644 index 0000000000..be00d447d2 --- /dev/null +++ b/keyboards/mariorion_v25/proto/info.json @@ -0,0 +1,889 @@ +{ + "manufacturer": "Maria", + "keyboard_name": "MariOrion v2.5", + "maintainer": "toril940", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "rgblight": { + "led_count": 25, + "animations": { + "static_light": true, + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "christmas": true, + "static_gradient": true, + "twinkle": true + }, + "driver": "ws2812", + "led_map": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 24, 23, 22, 21, 20], + "sleep": true + }, + "indicators": { + "caps_lock": "A5", + "num_lock": "A15", + "on_state": 0 + }, + "ws2812": { + "driver": "pwm", + "pin": "B9" + }, + "matrix_pins": { + "cols": ["A3", "A4", "A6", "A7", "C4", "C5", "B0", "B1", "B2", "B10", "B12", "B13", "B14", "B15", "B11", + "F0", "C15", "C14"], + "rows": ["B5", "B4", "B3", "A2", "C13", "B8"] + }, + "processor": "STM32F072", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0001", + "vid": "0x6108" + }, + "community_layouts": ["tkl_ansi", "tkl_ansi_split_bs_rshift", "tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift", + "tkl_iso", "tkl_iso_split_bs_rshift", "tkl_iso_tsangan", "tkl_iso_tsangan_split_bs_rshift"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 15], "x":15.25, "y":2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 3], "x": 3.75, "y": 5.25, "w": 2.375}, + {"matrix": [5, 5], "x": 6.25, "y": 5.25}, + {"matrix": [5, 7], "x": 7.25, "y": 5.25, "w": 2.375}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 15], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 15], "x":15.25, "y":2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 15], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 15], "x":15.25, "y":2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 15], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 15], "x":15.25, "y":2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 5], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 15], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 15], "x":15.25, "y":2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 5], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 15], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 15], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 15], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 5], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 15], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 5], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 15], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/mariorion_v25/proto/rules.mk b/keyboards/mariorion_v25/proto/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/mariorion_v25/proto/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/mariorion_v25/readme.md b/keyboards/mariorion_v25/readme.md new file mode 100644 index 0000000000..13f2f9dc2a --- /dev/null +++ b/keyboards/mariorion_v25/readme.md @@ -0,0 +1,36 @@ +# MariOrion v2.5 + +![mariorion_v25_1](https://i.imgur.com/PFb6AGo.jpg) +![mariorion_v25_2](https://i.imgur.com/Fgdm2fx.jpg) + +This project was a revival of the Duck Orion v2.5, where we don't have very many PCBs with modern features, and +especially Alps support as well. This PCB has both Alps and MX support as well as universal layout support! It also +features a 3u/1u/3u split spacebar variant for fun :) + +The prototype version is for use only by Maria, and it's the r0 run in essence. Please do use prod unless otherwise +stated (prod me if you're confused, @mawiaa on Discord)! + +* Keyboard Maintainer: [Maria](https://github.com/toril940) +* Hardware Supported: MariOrion v2.5 PCB +* Hardware Availability: Link coming soon, through Hineybush :) + +Make example for this keyboard (after setting up your build environment): + + make mariorion_v25/prod:default + make mariorion_v25/proto:default + +Flashing example for this keyboard: + + make mariorion_v25/prod:default:flash + make mariorion_v25/proto:default:flash + +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). + + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Hold the reset button on the back of the PCB for 4-10 seconds or so - +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/mariorion_v25/rules.mk b/keyboards/mariorion_v25/rules.mk new file mode 100644 index 0000000000..f0bfa47284 --- /dev/null +++ b/keyboards/mariorion_v25/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mariorion_v25/prod From 76dc52c5c86b4da688ef3b371e941a3434646c1d Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 11 Nov 2023 14:09:03 +1100 Subject: [PATCH 369/496] snled27351: fix missing `i2c_init()` (#22446) --- drivers/led/snled27351-simple.c | 2 ++ drivers/led/snled27351.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/drivers/led/snled27351-simple.c b/drivers/led/snled27351-simple.c index 847cdb7715..6d504794a9 100644 --- a/drivers/led/snled27351-simple.c +++ b/drivers/led/snled27351-simple.c @@ -103,6 +103,8 @@ bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { } void snled27351_init_drivers(void) { + i2c_init(); + snled27351_init(SNLED27351_I2C_ADDRESS_1); #if defined(SNLED27351_I2C_ADDRESS_2) snled27351_init(SNLED27351_I2C_ADDRESS_2); diff --git a/drivers/led/snled27351.c b/drivers/led/snled27351.c index de0c7b3239..4e4067854e 100644 --- a/drivers/led/snled27351.c +++ b/drivers/led/snled27351.c @@ -102,6 +102,8 @@ bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { } void snled27351_init_drivers(void) { + i2c_init(); + snled27351_init(SNLED27351_I2C_ADDRESS_1); #if defined(SNLED27351_I2C_ADDRESS_2) snled27351_init(SNLED27351_I2C_ADDRESS_2); From 1ddc2cbeb9b397e9eee68555d2bc587d2b984221 Mon Sep 17 00:00:00 2001 From: jack <0x6A73@pm.me> Date: Sat, 11 Nov 2023 00:26:26 -0700 Subject: [PATCH 370/496] Fixup snes_macropad on develop (#22444) --- keyboards/snes_macropad/snes_macropad.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/keyboards/snes_macropad/snes_macropad.c b/keyboards/snes_macropad/snes_macropad.c index a8e04c8c32..1625864466 100644 --- a/keyboards/snes_macropad/snes_macropad.c +++ b/keyboards/snes_macropad/snes_macropad.c @@ -84,22 +84,14 @@ static void setupForFlashing(void) { oled_write(" ", false); oled_write(" ", false); - // QMK is clever about only rendering a certain number of chunks per frame, - // but since the device will go into flash mode right after this call, - // we want to override this behavior and force all the chunks to be sent to - // the display immediately. - const size_t numIterations = OLED_DISPLAY_WIDTH * OLED_DISPLAY_HEIGHT / OLED_UPDATE_PROCESS_LIMIT; - for (size_t num = 0; num < numIterations; ++num) { - oled_render(); - } - // todo: Replace the above hack with this, once develop branch is merged at the end of November 2023 - // oled_render_dirty(true); + // Force data to be rendered + oled_render_dirty(true); // Set alternating backlight colors const uint8_t max = 20; rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); for (size_t i = 0; i < RGBLED_NUM; ++i) { - LED_TYPE *led_ = (LED_TYPE *)&led[i]; + rgb_led_t *led_ = (rgb_led_t *)&led[i]; switch (i % 2) { case 0: setrgb(max, 0, max, led_); From 211fbbd16d441343d8ce2cdba4acd853762db117 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sat, 11 Nov 2023 20:50:33 +1100 Subject: [PATCH 371/496] Add `qmk license-check` developer-level CLI command. (#22075) --- lib/python/qmk/cli/__init__.py | 1 + lib/python/qmk/cli/license_check.py | 116 ++++++++++++++++++++++++++ lib/python/qmk/constants.py | 123 ++++++++++++++++++++++++++++ 3 files changed, 240 insertions(+) create mode 100644 lib/python/qmk/cli/license_check.py diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py index b8bc99aa0d..695a180066 100644 --- a/lib/python/qmk/cli/__init__.py +++ b/lib/python/qmk/cli/__init__.py @@ -69,6 +69,7 @@ subcommands = [ 'qmk.cli.import.keymap', 'qmk.cli.info', 'qmk.cli.json2c', + 'qmk.cli.license_check', 'qmk.cli.lint', 'qmk.cli.kle2json', 'qmk.cli.list.keyboards', diff --git a/lib/python/qmk/cli/license_check.py b/lib/python/qmk/cli/license_check.py new file mode 100644 index 0000000000..4bda272ec9 --- /dev/null +++ b/lib/python/qmk/cli/license_check.py @@ -0,0 +1,116 @@ +# Copyright 2023 Nick Brassel (@tzarc) +# SPDX-License-Identifier: GPL-2.0-or-later +import re +from pathlib import Path +from milc import cli +from qmk.constants import LICENSE_TEXTS + +L_PAREN = re.compile(r'\(\[\{\<') +R_PAREN = re.compile(r'\)\]\}\>') +PUNCTUATION = re.compile(r'[\.,;:]+') +TRASH_PREFIX = re.compile(r'^(\s|/|\*|#)+') +TRASH_SUFFIX = re.compile(r'(\s|/|\*|#|\\)+$') +SPACE = re.compile(r'\s+') +SUFFIXES = ['.c', '.h', '.cpp', '.cxx', '.hpp', '.hxx'] + + +def _simplify_text(input): + lines = input.lower().split('\n') + lines = [PUNCTUATION.sub('', line) for line in lines] + lines = [TRASH_PREFIX.sub('', line) for line in lines] + lines = [TRASH_SUFFIX.sub('', line) for line in lines] + lines = [SPACE.sub(' ', line) for line in lines] + lines = [L_PAREN.sub('(', line) for line in lines] + lines = [R_PAREN.sub(')', line) for line in lines] + lines = [line.strip() for line in lines] + lines = [line for line in lines if line is not None and line != ''] + return ' '.join(lines) + + +def _detect_license_from_file_contents(filename, absolute=False): + data = filename.read_text(encoding='utf-8', errors='ignore') + filename_out = str(filename.absolute()) if absolute else str(filename) + + if 'SPDX-License-Identifier:' in data: + res = data.split('SPDX-License-Identifier:') + license = re.split(r'\s|//|\*', res[1].strip())[0].strip() + found = False + for short_license, _ in LICENSE_TEXTS: + if license.lower() == short_license.lower(): + license = short_license + found = True + break + + if not found: + if cli.args.short: + print(f'{filename_out} UNKNOWN') + else: + cli.log.error(f'{{fg_cyan}}{filename_out}{{fg_reset}} -- unknown license, or no license detected!') + return False + + if cli.args.short: + print(f'{filename_out} {license}') + else: + cli.log.info(f'{{fg_cyan}}{filename_out}{{fg_reset}} -- license detected: {license} (SPDX License Identifier)') + return True + + else: + simple_text = _simplify_text(data) + for short_license, long_licenses in LICENSE_TEXTS: + for long_license in long_licenses: + if long_license in simple_text: + if cli.args.short: + print(f'{filename_out} {short_license}') + else: + cli.log.info(f'{{fg_cyan}}{filename_out}{{fg_reset}} -- license detected: {short_license} (Full text)') + return True + + if cli.args.short: + print(f'{filename_out} UNKNOWN') + else: + cli.log.error(f'{{fg_cyan}}{filename_out}{{fg_reset}} -- unknown license, or no license detected!') + + return False + + +@cli.argument('inputs', nargs='*', arg_only=True, type=Path, help='List of input files or directories.') +@cli.argument('-s', '--short', action='store_true', help='Short output.') +@cli.argument('-a', '--absolute', action='store_true', help='Print absolute paths.') +@cli.argument('-e', '--extension', arg_only=True, action='append', default=[], help='Override list of extensions. Can be specified multiple times for multiple extensions.') +@cli.subcommand('File license check.', hidden=False if cli.config.user.developer else True) +def license_check(cli): + def _default_suffix_condition(s): + return s in SUFFIXES + + conditional = _default_suffix_condition + + if len(cli.args.extension) > 0: + suffixes = [f'.{s}' if not s.startswith('.') else s for s in cli.args.extension] + + def _specific_suffix_condition(s): + return s in suffixes + + conditional = _specific_suffix_condition + + # Pre-format all the licenses + for _, long_licenses in LICENSE_TEXTS: + for i in range(len(long_licenses)): + long_licenses[i] = _simplify_text(long_licenses[i]) + + check_list = set() + for filename in sorted(cli.args.inputs): + if filename.is_dir(): + for file in sorted(filename.rglob('*')): + if file.is_file() and conditional(file.suffix): + check_list.add(file) + elif filename.is_file(): + if conditional(filename.suffix): + check_list.add(filename) + + failed = False + for filename in sorted(check_list): + if not _detect_license_from_file_contents(filename, absolute=cli.args.absolute): + failed = True + + if failed: + return False diff --git a/lib/python/qmk/constants.py b/lib/python/qmk/constants.py index 97bd84aa23..1967441fc8 100644 --- a/lib/python/qmk/constants.py +++ b/lib/python/qmk/constants.py @@ -189,3 +189,126 @@ GENERATED_HEADER_SH_LIKE = '''\ # ################################################################################ ''' + +LICENSE_TEXTS = [ + ( + 'GPL-2.0-or-later', [ + """\ + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + """, """\ + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or any later version. + """ + ] + ), + ('GPL-2.0-only', ["""\ + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; version 2. + """]), + ( + 'GPL-3.0-or-later', [ + """\ + This program is free software: you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation, either version 3 of + the License, or (at your option) any later version. + """, """\ + This program is free software: you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation, either version 3 of + the License, or any later version. + """ + ] + ), + ('GPL-3.0-only', ["""\ + This program is free software: you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation, version 3. + """]), + ( + 'LGPL-2.1-or-later', [ + """\ + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License + as published by the Free Software Foundation; either version 2.1 + of the License, or (at your option) any later version. + """, """\ + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License + as published by the Free Software Foundation; either version 2.1 + of the License, or any later version. + """, """\ + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License + as published by the Free Software Foundation; either version 2.1 + of the License, or (at your option) any later version. + """, """\ + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License + as published by the Free Software Foundation; either version 2.1 + of the License, or any later version. + """ + ] + ), + ( + 'LGPL-2.1-only', [ + """\ + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; version 2.1. + """, """\ + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; version 2.1. + """ + ] + ), + ( + 'LGPL-3.0-or-later', [ + """\ + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License + as published by the Free Software Foundation; either version 3 + of the License, or (at your option) any later version. + """, """\ + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License + as published by the Free Software Foundation; either version 3 + of the License, or any later version. + """, """\ + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License + as published by the Free Software Foundation; either version 3 + of the License, or (at your option) any later version. + """, """\ + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License + as published by the Free Software Foundation; either version 3 + of the License, or any later version. + """ + ] + ), + ( + 'LGPL-3.0-only', [ + """\ + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; version 3. + """, """\ + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; version 3. + """ + ] + ), + ('Apache-2.0', ["""\ + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + """]), +] From 2e1a27da60d7ac5a968cd6206e7c66dd41113868 Mon Sep 17 00:00:00 2001 From: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Date: Sat, 11 Nov 2023 05:55:47 -0500 Subject: [PATCH 372/496] fix: make clicky delay silent (#21866) --- quantum/process_keycode/process_clicky.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quantum/process_keycode/process_clicky.c b/quantum/process_keycode/process_clicky.c index 0ee58282e6..82000db9b3 100644 --- a/quantum/process_keycode/process_clicky.c +++ b/quantum/process_keycode/process_clicky.c @@ -28,7 +28,7 @@ float clicky_freq = AUDIO_CLICKY_FREQ_DEFAULT; float clicky_rand = AUDIO_CLICKY_FREQ_RANDOMNESS; // the first "note" is an intentional delay; the 2nd and 3rd notes are the "clicky" -float clicky_song[][2] = {{AUDIO_CLICKY_FREQ_MIN, AUDIO_CLICKY_DELAY_DURATION}, {AUDIO_CLICKY_FREQ_DEFAULT, 3}, {AUDIO_CLICKY_FREQ_DEFAULT, 1}}; // 3 and 1 --> durations +float clicky_song[][2] = {{0.0f, AUDIO_CLICKY_DELAY_DURATION}, {AUDIO_CLICKY_FREQ_DEFAULT, 3}, {AUDIO_CLICKY_FREQ_DEFAULT, 1}}; // 3 and 1 --> durations extern audio_config_t audio_config; From 935c894f83fbdaab07560886e7c2916d68343f82 Mon Sep 17 00:00:00 2001 From: "jonylee@hfd" <108282809+jonylee1986@users.noreply.github.com> Date: Sun, 12 Nov 2023 03:08:26 +0800 Subject: [PATCH 373/496] add 5087 keyboard (#20557) Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> --- keyboards/akko/5087/5087.c | 190 ++++++++++++++ keyboards/akko/5087/config.h | 52 ++++ keyboards/akko/5087/halconf.h | 23 ++ keyboards/akko/5087/info.json | 253 +++++++++++++++++++ keyboards/akko/5087/keymaps/default/keymap.c | 79 ++++++ keyboards/akko/5087/keymaps/via/keymap.c | 79 ++++++ keyboards/akko/5087/keymaps/via/rules.mk | 1 + keyboards/akko/5087/mcuconf.h | 24 ++ keyboards/akko/5087/readme.md | 19 ++ keyboards/akko/5087/rules.mk | 3 + 10 files changed, 723 insertions(+) create mode 100644 keyboards/akko/5087/5087.c create mode 100644 keyboards/akko/5087/config.h create mode 100644 keyboards/akko/5087/halconf.h create mode 100644 keyboards/akko/5087/info.json create mode 100644 keyboards/akko/5087/keymaps/default/keymap.c create mode 100644 keyboards/akko/5087/keymaps/via/keymap.c create mode 100644 keyboards/akko/5087/keymaps/via/rules.mk create mode 100644 keyboards/akko/5087/mcuconf.h create mode 100644 keyboards/akko/5087/readme.md create mode 100644 keyboards/akko/5087/rules.mk diff --git a/keyboards/akko/5087/5087.c b/keyboards/akko/5087/5087.c new file mode 100644 index 0000000000..4d6cf94900 --- /dev/null +++ b/keyboards/akko/5087/5087.c @@ -0,0 +1,190 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" +// clang-format off +#ifdef RGB_MATRIX_ENABLE +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + /*row0*/ + {1, A_1, B_1, C_1}, + {1, A_2, B_2, C_2}, + {1, A_3, B_3, C_3}, + {1, A_4, B_4, C_4}, + {1, A_5, B_5, C_5}, + {1, A_6, B_6, C_6}, + {1, A_7, B_7, C_7}, + {1, A_8, B_8, C_8}, + {1, A_9, B_9, C_9}, + {1, A_10, B_10, C_10}, + {1, A_11, B_11, C_11}, + {1, A_12, B_12, C_12}, + {1, A_13, B_13, C_13}, + {1, A_14, B_14, C_14}, + {1, A_15, B_15, C_15}, + {1, A_16, B_16, C_16}, + + /*row1*/ + {0, A_1, B_1, C_1}, + {0, A_2, B_2, C_2}, + {0, A_3, B_3, C_3}, + {0, A_4, B_4, C_4}, + {0, A_5, B_5, C_5}, + {0, A_6, B_6, C_6}, + {0, A_7, B_7, C_7}, + {0, A_8, B_8, C_8}, + {0, A_9, B_9, C_9}, + {0, A_10, B_10, C_10}, + {0, A_11, B_11, C_11}, + {0, A_12, B_12, C_12}, + {0, A_13, B_13, C_13}, + {0, A_14, B_14, C_14}, + {1, D_1, E_1, F_1}, + {1, D_2, E_2, F_2}, + {1, D_3, E_3, F_3}, + + /*row2*/ + {0, D_1, E_1, F_1}, + {0, D_2, E_2, F_2}, + {0, D_3, E_3, F_3}, + {0, D_4, E_4, F_4}, + {0, D_5, E_5, F_5}, + {0, D_6, E_6, F_6}, + {0, D_7, E_7, F_7}, + {0, D_8, E_8, F_8}, + {0, D_9, E_9, F_9}, + {0, D_10, E_10, F_10}, + {0, D_11, E_11, F_11}, + {0, D_12, E_12, F_12}, + {0, D_13, E_13, F_13}, + {0, D_14, E_14, F_14}, + {1, G_1, H_1, I_1}, + {1, G_2, H_2, I_2}, + {1, G_3, H_3, I_3}, + + /*row3*/ + {0, G_1, H_1, I_1}, + {0, G_2, H_2, I_2}, + {0, G_3, H_3, I_3}, + {0, G_4, H_4, I_4}, + {0, G_5, H_5, I_5}, + {0, G_6, H_6, I_6}, + {0, G_7, H_7, I_7}, + {0, G_8, H_8, I_8}, + {0, G_9, H_9, I_9}, + {0, G_10, H_10, I_10}, + {0, G_11, H_11, I_11}, + {0, G_12, H_12, I_12}, + {0, G_13, H_13, I_13}, + + /*row4*/ + {0, J_1, K_1, L_1}, + {0, J_2, K_2, L_2}, + {0, J_3, K_3, L_3}, + {0, J_4, K_4, L_4}, + {0, J_5, K_5, L_5}, + {0, J_6, K_6, L_6}, + {0, J_7, K_7, L_7}, + {0, J_8, K_8, L_8}, + {0, J_9, K_9, L_9}, + {0, J_10, K_10, L_10}, + {0, J_11, K_11, L_11}, + {0, J_12, K_12, L_12}, + {1, J_4, K_4, L_4}, + + /*row5*/ + {0, J_13, K_13, L_13}, + {0, J_14, K_14, L_14}, + {0, J_15, K_15, L_15}, + {0, J_16, K_16, L_16}, + {0, G_14, H_14, I_14}, + {0, G_15, H_15, I_15}, + {0, G_16, H_16, I_16}, + {0, D_15, E_15, F_15}, + {1, J_1, K_1, L_1}, + {1, J_2, K_2, L_2}, + {1, J_3, K_3, L_3}, +}; +#endif // RGB_MATRIX_ENABLE + +enum __layers { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN, +}; + +// clang-format on + +void matrix_init_kb(void) { + setPinOutput(LED_MAC_OS_PIN); // LDE2 MAC\WIN + writePinLow(LED_MAC_OS_PIN); + setPinOutput(LED_WIN_LOCK_PIN); // LED3 Win Lock + writePinLow(LED_WIN_LOCK_PIN); + + matrix_init_user(); +} + +void housekeeping_task_kb(void){ + writePin(LED_MAC_OS_PIN, (get_highest_layer(default_layer_state) == 3)); + writePin(LED_WIN_LOCK_PIN, keymap_config.no_gui); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t* record) { + if (!process_record_user(keycode, record)) { + return false; + } + switch (keycode) { + case DF(WIN_B): + if (record->event.pressed) { + set_single_persistent_default_layer(WIN_B); + } + return false; + case DF(MAC_B): + if (record->event.pressed) { + set_single_persistent_default_layer(MAC_B); + keymap_config.no_gui = 0; + eeconfig_update_keymap(keymap_config.raw); + } + return false; + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + } break; + } + } + if (!rgb_matrix_is_enabled()) { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable(); + } + return false; + default: + return true; + } +} diff --git a/keyboards/akko/5087/config.h b/keyboards/akko/5087/config.h new file mode 100644 index 0000000000..50a1f224f8 --- /dev/null +++ b/keyboards/akko/5087/config.h @@ -0,0 +1,52 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + + +/* LED Indicators */ +#define LED_MAC_OS_PIN C10 +#define LED_WIN_LOCK_PIN C11 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* SPI Config for spi flash*/ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN B3 +#define SPI_MOSI_PIN B5 +#define SPI_MISO_PIN B4 +#define SPI_MOSI_PAL_MODE 5 + +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 +#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) + +/* I2C Config for LED Driver */ +#define DRIVER_COUNT 2 +#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_2 0b1110111 +#define I2C1_OPMODE OPMODE_I2C +#define I2C1_CLOCK_SPEED 400000 /* 400000 */ + +#define RGB_MATRIX_LED_COUNT 87 + +#define RGB_TRIGGER_ON_KEYDOWN +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES + diff --git a/keyboards/akko/5087/halconf.h b/keyboards/akko/5087/halconf.h new file mode 100644 index 0000000000..55bfe5c977 --- /dev/null +++ b/keyboards/akko/5087/halconf.h @@ -0,0 +1,23 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define HAL_USE_I2C TRUE +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/akko/5087/info.json b/keyboards/akko/5087/info.json new file mode 100644 index 0000000000..43bec927db --- /dev/null +++ b/keyboards/akko/5087/info.json @@ -0,0 +1,253 @@ +{ + "keyboard_name": "5087", + "manufacturer": "Akko", + "url":"https://www.akkogear.com", + "maintainer": "jonylee@hfd", + "usb": { + "vid": "0xFFFE", + "pid": "0x000C", + "device_version": "1.0.4", + "suspend_wakeup_delay": 400, + "force_nkro": true + }, + "processor": "WB32FQ95", + "bootloader": "wb32-dfu", + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "rgb_matrix": true + }, + "dynamic_keymap": { + "layer_count": 6 + }, + "matrix_pins": { + "cols": ["C1", "C2", "C3", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "C4", "C5", "B0", "B1", "B2", "B10"], + "rows": ["B15", "C6", "C7", "C8", "C9", "A8"] + }, + "diode_direction": "ROW2COL", + "indicators": { + "caps_lock": "A15" + }, + "rgb_matrix": { + "driver": "ckled2001", + "max_brightness": 180, + "animations": { + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "raindrops": true, + "typing_heatmap": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "multisplash": true + }, + "layout":[ + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0}, + { "flags": 4, "matrix": [0, 1], "x": 24, "y": 0}, + { "flags": 4, "matrix": [0, 2], "x": 38, "y": 0}, + { "flags": 4, "matrix": [0, 3], "x": 52, "y": 0}, + { "flags": 4, "matrix": [0, 4], "x": 66, "y": 0}, + { "flags": 4, "matrix": [0, 5], "x": 82, "y": 0}, + { "flags": 4, "matrix": [0, 6], "x": 96, "y": 0}, + { "flags": 4, "matrix": [0, 7], "x":110, "y": 0}, + { "flags": 4, "matrix": [0, 8], "x":124, "y": 0}, + { "flags": 4, "matrix": [0, 9], "x":140, "y": 0}, + { "flags": 4, "matrix": [0, 10], "x":154, "y": 0}, + { "flags": 4, "matrix": [0, 11], "x":168, "y": 0}, + { "flags": 4, "matrix": [0, 12], "x":182, "y": 0}, + { "flags": 4, "matrix": [0, 14], "x":196, "y": 0}, + { "flags": 4, "matrix": [0, 15], "x":210, "y": 0}, + { "flags": 4, "matrix": [0, 16], "x":224, "y": 0}, + + { "flags": 4, "matrix": [1, 0], "x": 0, "y": 12}, + { "flags": 4, "matrix": [1, 1], "x": 13, "y": 12}, + { "flags": 4, "matrix": [1, 2], "x": 26, "y": 12}, + { "flags": 4, "matrix": [1, 3], "x": 39, "y": 12}, + { "flags": 4, "matrix": [1, 4], "x": 52, "y": 12}, + { "flags": 4, "matrix": [1, 5], "x": 65, "y": 12}, + { "flags": 4, "matrix": [1, 6], "x": 79, "y": 12}, + { "flags": 4, "matrix": [1, 7], "x": 92, "y": 12}, + { "flags": 4, "matrix": [1, 8], "x":105, "y": 12}, + { "flags": 4, "matrix": [1, 9], "x":118, "y": 12}, + { "flags": 4, "matrix": [1, 10], "x":131, "y": 12}, + { "flags": 4, "matrix": [1, 11], "x":144, "y": 12}, + { "flags": 4, "matrix": [1, 12], "x":158, "y": 12}, + { "flags": 4, "matrix": [1, 13], "x":171, "y": 12}, + { "flags": 4, "matrix": [1, 14], "x":184, "y": 12}, + { "flags": 4, "matrix": [1, 15], "x":197, "y": 12}, + { "flags": 4, "matrix": [1, 16], "x":210, "y": 12}, + + { "flags": 4, "matrix": [2, 0], "x": 0, "y": 26}, + { "flags": 4, "matrix": [2, 1], "x": 14, "y": 26}, + { "flags": 4, "matrix": [2, 2], "x": 28, "y": 26}, + { "flags": 4, "matrix": [2, 3], "x": 42, "y": 26}, + { "flags": 4, "matrix": [2, 4], "x": 56, "y": 26}, + { "flags": 4, "matrix": [2, 5], "x": 70, "y": 26}, + { "flags": 4, "matrix": [2, 6], "x": 84, "y": 26}, + { "flags": 4, "matrix": [2, 7], "x": 98, "y": 26}, + { "flags": 4, "matrix": [2, 8], "x":112, "y": 26}, + { "flags": 4, "matrix": [2, 9], "x":126, "y": 26}, + { "flags": 4, "matrix": [2, 10], "x":140, "y": 26}, + { "flags": 4, "matrix": [2, 11], "x":154, "y": 26}, + { "flags": 4, "matrix": [2, 12], "x":168, "y": 26}, + { "flags": 4, "matrix": [2, 13], "x":182, "y": 26}, + { "flags": 4, "matrix": [2, 14], "x":196, "y": 26}, + { "flags": 4, "matrix": [2, 15], "x":210, "y": 26}, + { "flags": 4, "matrix": [2, 16], "x":224, "y": 26}, + + { "flags": 4, "matrix": [3, 0], "x": 0, "y": 38}, + { "flags": 4, "matrix": [3, 1], "x": 14, "y": 38}, + { "flags": 4, "matrix": [3, 2], "x": 28, "y": 38}, + { "flags": 4, "matrix": [3, 3], "x": 42, "y": 38}, + { "flags": 4, "matrix": [3, 4], "x": 56, "y": 38}, + { "flags": 4, "matrix": [3, 5], "x": 70, "y": 38}, + { "flags": 4, "matrix": [3, 6], "x": 84, "y": 38}, + { "flags": 4, "matrix": [3, 7], "x": 98, "y": 38}, + { "flags": 4, "matrix": [3, 8], "x":112, "y": 38}, + { "flags": 4, "matrix": [3, 9], "x":126, "y": 38}, + { "flags": 4, "matrix": [3, 10], "x":140, "y": 38}, + { "flags": 4, "matrix": [3, 11], "x":154, "y": 38}, + { "flags": 4, "matrix": [3, 13], "x":182, "y": 38}, + + { "flags": 4, "matrix": [4, 0], "x": 0, "y": 51}, + { "flags": 4, "matrix": [4, 1], "x": 14, "y": 51}, + { "flags": 4, "matrix": [4, 2], "x": 28, "y": 51}, + { "flags": 4, "matrix": [4, 3], "x": 42, "y": 51}, + { "flags": 4, "matrix": [4, 4], "x": 56, "y": 51}, + { "flags": 4, "matrix": [4, 5], "x": 70, "y": 51}, + { "flags": 4, "matrix": [4, 6], "x": 84, "y": 51}, + { "flags": 4, "matrix": [4, 7], "x": 98, "y": 51}, + { "flags": 4, "matrix": [4, 8], "x":112, "y": 51}, + { "flags": 4, "matrix": [4, 9], "x":126, "y": 51}, + { "flags": 4, "matrix": [4, 10], "x":140, "y": 51}, + { "flags": 4, "matrix": [4, 13], "x":154, "y": 51}, + { "flags": 4, "matrix": [4, 15], "x":182, "y": 51}, + + { "flags": 4, "matrix": [5, 0], "x": 0, "y": 64}, + { "flags": 4, "matrix": [5, 1], "x": 14, "y": 64}, + { "flags": 4, "matrix": [5, 2], "x": 28, "y": 64}, + { "flags": 4, "matrix": [5, 5], "x": 70, "y": 64}, + { "flags": 4, "matrix": [5, 9], "x":126, "y": 64}, + { "flags": 4, "matrix": [5, 10], "x":140, "y": 64}, + { "flags": 4, "matrix": [5, 11], "x":154, "y": 64}, + { "flags": 4, "matrix": [5, 13], "x":182, "y": 64}, + { "flags": 4, "matrix": [5, 14], "x":196, "y": 64}, + { "flags": 4, "matrix": [5, 15], "x":210, "y": 64}, + { "flags": 4, "matrix": [5, 16], "x":224, "y": 64} + + ] + }, + "community_layouts": ["tkl_ansi"], + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + { "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "F1", "matrix": [0, 1], "x": 2, "y": 0 }, + { "label": "F2", "matrix": [0, 2], "x": 3, "y": 0 }, + { "label": "F3", "matrix": [0, 3], "x": 4, "y": 0 }, + { "label": "F4", "matrix": [0, 4], "x": 5, "y": 0 }, + { "label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0 }, + { "label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0 }, + { "label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0 }, + { "label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0 }, + { "label": "F9", "matrix": [0, 9], "x": 11, "y": 0 }, + { "label": "F10", "matrix": [0, 10], "x": 12, "y": 0 }, + { "label": "F11", "matrix": [0, 11], "x": 13, "y": 0 }, + { "label": "F12", "matrix": [0, 12], "x": 14, "y": 0 }, + { "label": "PrtSc", "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "label": "ScrLk", "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0 }, + + { "label": "~", "matrix": [1, 0], "x": 0, "y": 1.25 }, + { "label": "!", "matrix": [1, 1], "x": 1, "y": 1.25 }, + { "label": "@", "matrix": [1, 2], "x": 2, "y": 1.25 }, + { "label": "#", "matrix": [1, 3], "x": 3, "y": 1.25 }, + { "label": "$", "matrix": [1, 4], "x": 4, "y": 1.25 }, + { "label": "%", "matrix": [1, 5], "x": 5, "y": 1.25 }, + { "label": "^", "matrix": [1, 6], "x": 6, "y": 1.25 }, + { "label": "&", "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "label": "*", "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "label": "(", "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "label": ")", "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "label": "_", "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "label": "+", "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2 }, + { "label": "Ins", "matrix": [1, 14], "x": 15.25, "y": 1.25 }, + { "label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25 }, + { "label": "PgUp", "matrix": [1, 16], "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25 }, + { "label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25 }, + { "label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25 }, + { "label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25 }, + { "label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25 }, + { "label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25 }, + { "label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25 }, + { "label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.25 }, + { "label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5 }, + { "label": "Del", "matrix": [2, 14], "x": 15.25, "y": 2.25 }, + { "label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25 }, + { "label": "PgDn", "matrix": [2, 16], "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25 }, + { "label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25 }, + { "label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25 }, + { "label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25 }, + { "label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "matrix": [4, 1], "x": 2.25, "y": 4.25 }, + { "label": "X", "matrix": [4, 2], "x": 3.25, "y": 4.25 }, + { "label": "C", "matrix": [4, 3], "x": 4.25, "y": 4.25 }, + { "label": "V", "matrix": [4, 4], "x": 5.25, "y": 4.25 }, + { "label": "B", "matrix": [4, 5], "x": 6.25, "y": 4.25 }, + { "label": "N", "matrix": [4, 6], "x": 7.25, "y": 4.25 }, + { "label": "M", "matrix": [4, 7], "x": 8.25, "y": 4.25 }, + { "label": "<", "matrix": [4, 8], "x": 9.25, "y": 4.25 }, + { "label": ">", "matrix": [4, 9], "x": 10.25, "y": 4.25 }, + { "label": "?", "matrix": [4, 10], "x": 11.25, "y": 4.25 }, + { "label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "Up", "matrix": [4, 15], "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25 }, + { "label": "Space", "matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25 }, + { "label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25 }, + { "label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25 } + + ] + } + } +} diff --git a/keyboards/akko/5087/keymaps/default/keymap.c b/keyboards/akko/5087/keymaps/default/keymap.c new file mode 100644 index 0000000000..07763ccc89 --- /dev/null +++ b/keyboards/akko/5087/keymaps/default/keymap.c @@ -0,0 +1,79 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum __layers { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT_tkl_ansi( /* Base */ + KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_W] = LAYOUT_tkl_ansi( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, + _______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D), + + + [WIN_FN] = LAYOUT_tkl_ansi( /* FN */ + _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, + _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), + + [MAC_B] = LAYOUT_tkl_ansi( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_W] = LAYOUT_tkl_ansi( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, + _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D), + [MAC_FN] = LAYOUT_tkl_ansi( /* FN */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, + _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI) +}; +// clang-format on diff --git a/keyboards/akko/5087/keymaps/via/keymap.c b/keyboards/akko/5087/keymaps/via/keymap.c new file mode 100644 index 0000000000..dd59925fa9 --- /dev/null +++ b/keyboards/akko/5087/keymaps/via/keymap.c @@ -0,0 +1,79 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum __layers { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN, +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT_tkl_ansi( /* Base */ + KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_W] = LAYOUT_tkl_ansi( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, + _______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D), + + + [WIN_FN] = LAYOUT_tkl_ansi( /* FN */ + _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, + _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), + + [MAC_B] = LAYOUT_tkl_ansi( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_W] = LAYOUT_tkl_ansi( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, + _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D), + [MAC_FN] = LAYOUT_tkl_ansi( /* FN */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, + _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI) +}; +// clang-format on diff --git a/keyboards/akko/5087/keymaps/via/rules.mk b/keyboards/akko/5087/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/akko/5087/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/akko/5087/mcuconf.h b/keyboards/akko/5087/mcuconf.h new file mode 100644 index 0000000000..0d16f4f04e --- /dev/null +++ b/keyboards/akko/5087/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include_next + +#undef WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE + +#undef WB32_I2C_USE_I2C1 +#define WB32_I2C_USE_I2C1 TRUE diff --git a/keyboards/akko/5087/readme.md b/keyboards/akko/5087/readme.md new file mode 100644 index 0000000000..1d002fbb9f --- /dev/null +++ b/keyboards/akko/5087/readme.md @@ -0,0 +1,19 @@ +# 5087 + +A customizable 80% keyboard. + +* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986) +* Hardware Supported:Akko 5087 +* Hardware Availability: [akko](https://www.akkogear.com/) + +Make example for this keyboard (after setting up your build environment): + + make akko/5087:default + +Flashing example for this keyboard: + + make akko/5087:default:flash + +**Reset Key**: Hold down the key located at *K000*, which programmed as *Esc* while plugging in the keyboard. + +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). diff --git a/keyboards/akko/5087/rules.mk b/keyboards/akko/5087/rules.mk new file mode 100644 index 0000000000..0dc7a33142 --- /dev/null +++ b/keyboards/akko/5087/rules.mk @@ -0,0 +1,3 @@ +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = spi_flash + From 0189c485b928f26a5835c7c78fdb397494a9d974 Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Sun, 12 Nov 2023 05:19:43 +0000 Subject: [PATCH 374/496] studiokestra/line_tkl: correct layout data (#22455) * fix `layouts` data * add EoF --- keyboards/studiokestra/line_tkl/info.json | 363 +++++++++++----------- 1 file changed, 180 insertions(+), 183 deletions(-) diff --git a/keyboards/studiokestra/line_tkl/info.json b/keyboards/studiokestra/line_tkl/info.json index 312dd6e5cf..ba6601a330 100644 --- a/keyboards/studiokestra/line_tkl/info.json +++ b/keyboards/studiokestra/line_tkl/info.json @@ -12,6 +12,11 @@ "mousekey": true, "nkro": true }, + "indicators": { + "caps_lock": "B6", + "on_state": 1, + "scroll_lock": "D2" + }, "matrix_pins": { "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "B5", "D5", "D3"], "rows": ["D0", "D1", "B0", "B7", "B3", "E6", "C7", "C6", "B4", "D7", "D6", "D4"] @@ -23,196 +28,188 @@ "pid": "0x8704", "vid": "0x7C10" }, - "indicators": { - "caps_lock": "B6", - "scroll_lock": "D2", - "on_state": 1 - }, - "community_layouts": [ - "tkl_ansi_tsangan", - "tkl_ansi_tsangan_split_bs_rshift" - ], + "community_layouts": ["tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift"], "layouts": { "LAYOUT_tkl_ansi_tsangan": { "layout": [ - { "matrix": [0,0], "x":0, "y":0}, - { "matrix": [0,1], "x":2.25, "y":0}, - { "matrix": [0,2], "x":3.25, "y":0}, - { "matrix": [1,2], "x":4.25, "y":0}, - { "matrix": [0,3], "x":5.5, "y":0}, - { "matrix": [1,3], "x":6.5, "y":0}, - { "matrix": [0,4], "x":7.5, "y":0}, - { "matrix": [1,4], "x":8.5, "y":0}, - { "matrix": [0,5], "x":9.75, "y":0}, - { "matrix": [1,5], "x":10.75, "y":0}, - { "matrix": [0,6], "x":11.75, "y":0}, - { "matrix": [1,6], "x":12.75, "y":0}, - { "matrix": [0,7], "x":14, "y":0}, - { "matrix": [1,7], "x":15.25, "y":0}, - { "matrix": [0,8], "x":16.25, "y":0}, - { "matrix": [1,8], "x":17.25, "y":0}, - { "matrix": [2,0], "x":0, "y":1.25}, - { "matrix": [3,0], "x":1, "y":1.25}, - { "matrix": [2,1], "x":2, "y":1.25}, - { "matrix": [3,1], "x":3, "y":1.25}, - { "matrix": [2,2], "x":4, "y":1.25}, - { "matrix": [3,2], "x":5, "y":1.25}, - { "matrix": [2,3], "x":6, "y":1.25}, - { "matrix": [3,3], "x":7, "y":1.25}, - { "matrix": [2,4], "x":8, "y":1.25}, - { "matrix": [3,4], "x":9, "y":1.25}, - { "matrix": [2,5], "x":10, "y":1.25}, - { "matrix": [3,5], "x":11, "y":1.25}, - { "matrix": [2,6], "x":12, "y":1.25}, - { "matrix": [3,6], "x":13, "y":1.25}, - { "matrix": [3,7], "x":15.25, "y":1.25}, - { "matrix": [2,8], "x":16.25, "y":1.25}, - { "matrix": [3,8], "x":17.25, "y":1.25}, - { "matrix": [4,0], "x":0, "y":2.25, "w":1.5}, - { "matrix": [5,0], "x":1.5, "y":2.25}, - { "matrix": [4,1], "x":2.5, "y":2.25}, - { "matrix": [5,1], "x":3.5, "y":2.25}, - { "matrix": [4,2], "x":4.5, "y":2.25}, - { "matrix": [5,2], "x":5.5, "y":2.25}, - { "matrix": [4,3], "x":6.5, "y":2.25}, - { "matrix": [5,3], "x":7.5, "y":2.25}, - { "matrix": [4,4], "x":8.5, "y":2.25}, - { "matrix": [5,4], "x":9.5, "y":2.25}, - { "matrix": [4,5], "x":10.5, "y":2.25}, - { "matrix": [5,5], "x":11.5, "y":2.25}, - { "matrix": [4,6], "x":12.5, "y":2.25}, - { "matrix": [4,7], "x":13.5, "y":2.25, "w":1.5}, - { "matrix": [5,7], "x":15.25, "y":2.25}, - { "matrix": [4,8], "x":16.25, "y":2.25}, - { "matrix": [5,8], "x":17.25, "y":2.25}, - { "matrix": [6,0], "x":0, "y":3.25, "w":1.75}, - { "matrix": [7,0], "x":1.75, "y":3.25}, - { "matrix": [6,1], "x":2.75, "y":3.25}, - { "matrix": [7,1], "x":3.75, "y":3.25}, - { "matrix": [6,2], "x":4.75, "y":3.25}, - { "matrix": [7,2], "x":5.75, "y":3.25}, - { "matrix": [6,3], "x":6.75, "y":3.25}, - { "matrix": [7,3], "x":7.75, "y":3.25}, - { "matrix": [6,4], "x":8.75, "y":3.25}, - { "matrix": [7,4], "x":9.75, "y":3.25}, - { "matrix": [6,5], "x":10.75, "y":3.25}, - { "matrix": [7,5], "x":11.75, "y":3.25}, - { "matrix": [6,6], "x":12.75, "y":3.25, "w":2.25}, - { "matrix": [8,0], "x":0, "y":4.25, "w":1.25}, - { "matrix": [8,1], "x":2.25, "y":4.25}, - { "matrix": [9,1], "x":3.25, "y":4.25}, - { "matrix": [8,2], "x":4.25, "y":4.25}, - { "matrix": [9,2], "x":5.25, "y":4.25}, - { "matrix": [8,3], "x":6.25, "y":4.25}, - { "matrix": [9,3], "x":7.25, "y":4.25}, - { "matrix": [8,4], "x":8.25, "y":4.25}, - { "matrix": [9,4], "x":9.25, "y":4.25}, - { "matrix": [8,5], "x":10.25, "y":4.25}, - { "matrix": [9,5], "x":11.25, "y":4.25}, - { "matrix": [8,6], "x":12.25, "y":4.25, "w":1.75}, - { "matrix": [9,8], "x":16.25, "y":4.25}, - { "matrix": [10,0], "x":0, "y":5.25, "w":1.5}, - { "matrix": [11,0], "x":1.5,"y":5.25}, - { "matrix": [10,1], "x":2.5,"y":5.25,"w":1.5}, - { "matrix": [10,3], "x":4,"y":5.25,"w":7}, - { "matrix": [11,5], "x":11,"y":5.25,"w":1.5}, - { "matrix": [10,6], "x":12.5,"y":5.25}, - { "matrix": [10,7], "x":13.5,"y":5.25,"w":1.5}, - { "matrix": [11,7], "x":15.25, "y":5.25}, - { "matrix": [10,8], "x":16.25, "y":5.25}, - { "matrix": [11,8], "x":17.25, "y":5.25} + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [1, 2], "x": 4, "y": 0}, + {"matrix": [0, 3], "x": 5, "y": 0}, + {"matrix": [1, 3], "x": 6.5, "y": 0}, + {"matrix": [0, 4], "x": 7.5, "y": 0}, + {"matrix": [1, 4], "x": 8.5, "y": 0}, + {"matrix": [0, 5], "x": 9.5, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0}, + {"matrix": [0, 7], "x": 14, "y": 0}, + {"matrix": [1, 7], "x": 15.25, "y": 0}, + {"matrix": [0, 8], "x": 16.25, "y": 0}, + {"matrix": [1, 8], "x": 17.25, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1.25}, + {"matrix": [3, 0], "x": 1, "y": 1.25}, + {"matrix": [2, 1], "x": 2, "y": 1.25}, + {"matrix": [3, 1], "x": 3, "y": 1.25}, + {"matrix": [2, 2], "x": 4, "y": 1.25}, + {"matrix": [3, 2], "x": 5, "y": 1.25}, + {"matrix": [2, 3], "x": 6, "y": 1.25}, + {"matrix": [3, 3], "x": 7, "y": 1.25}, + {"matrix": [2, 4], "x": 8, "y": 1.25}, + {"matrix": [3, 4], "x": 9, "y": 1.25}, + {"matrix": [2, 5], "x": 10, "y": 1.25}, + {"matrix": [3, 5], "x": 11, "y": 1.25}, + {"matrix": [2, 6], "x": 12, "y": 1.25}, + {"matrix": [3, 6], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [3, 7], "x": 15.25, "y": 1.25}, + {"matrix": [2, 8], "x": 16.25, "y": 1.25}, + {"matrix": [3, 8], "x": 17.25, "y": 1.25}, + {"matrix": [4, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [5, 0], "x": 1.5, "y": 2.25}, + {"matrix": [4, 1], "x": 2.5, "y": 2.25}, + {"matrix": [5, 1], "x": 3.5, "y": 2.25}, + {"matrix": [4, 2], "x": 4.5, "y": 2.25}, + {"matrix": [5, 2], "x": 5.5, "y": 2.25}, + {"matrix": [4, 3], "x": 6.5, "y": 2.25}, + {"matrix": [5, 3], "x": 7.5, "y": 2.25}, + {"matrix": [4, 4], "x": 8.5, "y": 2.25}, + {"matrix": [5, 4], "x": 9.5, "y": 2.25}, + {"matrix": [4, 5], "x": 10.5, "y": 2.25}, + {"matrix": [5, 5], "x": 11.5, "y": 2.25}, + {"matrix": [4, 6], "x": 12.5, "y": 2.25}, + {"matrix": [4, 7], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [5, 7], "x": 15.25, "y": 2.25}, + {"matrix": [4, 8], "x": 16.25, "y": 2.25}, + {"matrix": [5, 8], "x": 17.25, "y": 2.25}, + {"matrix": [6, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [7, 0], "x": 1.75, "y": 3.25}, + {"matrix": [6, 1], "x": 2.75, "y": 3.25}, + {"matrix": [7, 1], "x": 3.75, "y": 3.25}, + {"matrix": [6, 2], "x": 4.75, "y": 3.25}, + {"matrix": [7, 2], "x": 5.75, "y": 3.25}, + {"matrix": [6, 3], "x": 6.75, "y": 3.25}, + {"matrix": [7, 3], "x": 7.75, "y": 3.25}, + {"matrix": [6, 4], "x": 8.75, "y": 3.25}, + {"matrix": [7, 4], "x": 9.75, "y": 3.25}, + {"matrix": [6, 5], "x": 10.75, "y": 3.25}, + {"matrix": [7, 5], "x": 11.75, "y": 3.25}, + {"matrix": [6, 6], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [8, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [8, 1], "x": 2.25, "y": 4.25}, + {"matrix": [9, 1], "x": 3.25, "y": 4.25}, + {"matrix": [8, 2], "x": 4.25, "y": 4.25}, + {"matrix": [9, 2], "x": 5.25, "y": 4.25}, + {"matrix": [8, 3], "x": 6.25, "y": 4.25}, + {"matrix": [9, 3], "x": 7.25, "y": 4.25}, + {"matrix": [8, 4], "x": 8.25, "y": 4.25}, + {"matrix": [9, 4], "x": 9.25, "y": 4.25}, + {"matrix": [8, 5], "x": 10.25, "y": 4.25}, + {"matrix": [9, 5], "x": 11.25, "y": 4.25}, + {"matrix": [8, 6], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [9, 8], "x": 16.25, "y": 4.25}, + {"matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [11, 0], "x": 1.5, "y": 5.25}, + {"matrix": [10, 1], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [10, 3], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [11, 5], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [10, 6], "x": 12.5, "y": 5.25}, + {"matrix": [10, 7], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [11, 7], "x": 15.25, "y": 5.25}, + {"matrix": [10, 8], "x": 16.25, "y": 5.25}, + {"matrix": [11, 8], "x": 17.25, "y": 5.25} ] }, "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { "layout": [ - { "matrix": [0,0], "x":0, "y":0}, - { "matrix": [0,1], "x":2.25, "y":0}, - { "matrix": [0,2], "x":3.25, "y":0}, - { "matrix": [1,2], "x":4.25, "y":0}, - { "matrix": [0,3], "x":5.5, "y":0}, - { "matrix": [1,3], "x":6.5, "y":0}, - { "matrix": [0,4], "x":7.5, "y":0}, - { "matrix": [1,4], "x":8.5, "y":0}, - { "matrix": [0,5], "x":9.75, "y":0}, - { "matrix": [1,5], "x":10.75, "y":0}, - { "matrix": [0,6], "x":11.75, "y":0}, - { "matrix": [1,6], "x":12.75, "y":0}, - { "matrix": [0,7], "x":14, "y":0}, - { "matrix": [1,7], "x":15.25, "y":0}, - { "matrix": [0,8], "x":16.25, "y":0}, - { "matrix": [1,8], "x":17.25, "y":0}, - { "matrix": [2,0], "x":0, "y":1.25}, - { "matrix": [3,0], "x":1, "y":1.25}, - { "matrix": [2,1], "x":2, "y":1.25}, - { "matrix": [3,1], "x":3, "y":1.25}, - { "matrix": [2,2], "x":4, "y":1.25}, - { "matrix": [3,2], "x":5, "y":1.25}, - { "matrix": [2,3], "x":6, "y":1.25}, - { "matrix": [3,3], "x":7, "y":1.25}, - { "matrix": [2,4], "x":8, "y":1.25}, - { "matrix": [3,4], "x":9, "y":1.25}, - { "matrix": [2,5], "x":10, "y":1.25}, - { "matrix": [3,5], "x":11, "y":1.25}, - { "matrix": [2,6], "x":12, "y":1.25}, - { "matrix": [3,6], "x":13, "y":1.25}, - { "matrix": [2,7], "x":14, "y":1.25}, - { "matrix": [3,7], "x":15.25, "y":1.25}, - { "matrix": [2,8], "x":16.25, "y":1.25}, - { "matrix": [3,8], "x":17.25, "y":1.25}, - { "matrix": [4,0], "x":0, "y":2.25, "w":1.5}, - { "matrix": [5,0], "x":1.5, "y":2.25}, - { "matrix": [4,1], "x":2.5, "y":2.25}, - { "matrix": [5,1], "x":3.5, "y":2.25}, - { "matrix": [4,2], "x":4.5, "y":2.25}, - { "matrix": [5,2], "x":5.5, "y":2.25}, - { "matrix": [4,3], "x":6.5, "y":2.25}, - { "matrix": [5,3], "x":7.5, "y":2.25}, - { "matrix": [4,4], "x":8.5, "y":2.25}, - { "matrix": [5,4], "x":9.5, "y":2.25}, - { "matrix": [4,5], "x":10.5, "y":2.25}, - { "matrix": [5,5], "x":11.5, "y":2.25}, - { "matrix": [4,6], "x":12.5, "y":2.25}, - { "matrix": [4,7], "x":13.5, "y":2.25, "w":1.5}, - { "matrix": [5,7], "x":15.25, "y":2.25}, - { "matrix": [4,8], "x":16.25, "y":2.25}, - { "matrix": [5,8], "x":17.25, "y":2.25}, - { "matrix": [6,0], "x":0, "y":3.25, "w":1.75}, - { "matrix": [7,0], "x":1.75, "y":3.25}, - { "matrix": [6,1], "x":2.75, "y":3.25}, - { "matrix": [7,1], "x":3.75, "y":3.25}, - { "matrix": [6,2], "x":4.75, "y":3.25}, - { "matrix": [7,2], "x":5.75, "y":3.25}, - { "matrix": [6,3], "x":6.75, "y":3.25}, - { "matrix": [7,3], "x":7.75, "y":3.25}, - { "matrix": [6,4], "x":8.75, "y":3.25}, - { "matrix": [7,4], "x":9.75, "y":3.25}, - { "matrix": [6,5], "x":10.75, "y":3.25}, - { "matrix": [7,5], "x":11.75, "y":3.25}, - { "matrix": [6,6], "x":12.75, "y":3.25, "w":2.25}, - { "matrix": [8,0], "x":0, "y":4.25, "w":1.25}, - { "matrix": [8,1], "x":2.25, "y":4.25}, - { "matrix": [9,1], "x":3.25, "y":4.25}, - { "matrix": [8,2], "x":4.25, "y":4.25}, - { "matrix": [9,2], "x":5.25, "y":4.25}, - { "matrix": [8,3], "x":6.25, "y":4.25}, - { "matrix": [9,3], "x":7.25, "y":4.25}, - { "matrix": [8,4], "x":8.25, "y":4.25}, - { "matrix": [9,4], "x":9.25, "y":4.25}, - { "matrix": [8,5], "x":10.25, "y":4.25}, - { "matrix": [9,5], "x":11.25, "y":4.25}, - { "matrix": [8,6], "x":12.25, "y":4.25, "w":1.75}, - { "matrix": [9,6], "x":14, "y":4.25}, - { "matrix": [9,8], "x":16.25, "y":4.25}, - { "matrix": [10,0], "x":0, "y":5.25, "w":1.5}, - { "matrix": [11,0], "x":1.5,"y":5.25}, - { "matrix": [10,1], "x":2.5,"y":5.25,"w":1.5}, - { "matrix": [10,3], "x":4,"y":5.25,"w":7}, - { "matrix": [11,5], "x":11,"y":5.25,"w":1.5}, - { "matrix": [10,6], "x":12.5,"y":5.25}, - { "matrix": [10,7], "x":13.5,"y":5.25,"w":1.5}, - { "matrix": [11,7], "x":15.25, "y":5.25}, - { "matrix": [10,8], "x":16.25, "y":5.25}, - { "matrix": [11,8], "x":17.25, "y":5.25} + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [1, 2], "x": 4, "y": 0}, + {"matrix": [0, 3], "x": 5, "y": 0}, + {"matrix": [1, 3], "x": 6.5, "y": 0}, + {"matrix": [0, 4], "x": 7.5, "y": 0}, + {"matrix": [1, 4], "x": 8.5, "y": 0}, + {"matrix": [0, 5], "x": 9.5, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0}, + {"matrix": [0, 7], "x": 14, "y": 0}, + {"matrix": [1, 7], "x": 15.25, "y": 0}, + {"matrix": [0, 8], "x": 16.25, "y": 0}, + {"matrix": [1, 8], "x": 17.25, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1.25}, + {"matrix": [3, 0], "x": 1, "y": 1.25}, + {"matrix": [2, 1], "x": 2, "y": 1.25}, + {"matrix": [3, 1], "x": 3, "y": 1.25}, + {"matrix": [2, 2], "x": 4, "y": 1.25}, + {"matrix": [3, 2], "x": 5, "y": 1.25}, + {"matrix": [2, 3], "x": 6, "y": 1.25}, + {"matrix": [3, 3], "x": 7, "y": 1.25}, + {"matrix": [2, 4], "x": 8, "y": 1.25}, + {"matrix": [3, 4], "x": 9, "y": 1.25}, + {"matrix": [2, 5], "x": 10, "y": 1.25}, + {"matrix": [3, 5], "x": 11, "y": 1.25}, + {"matrix": [2, 6], "x": 12, "y": 1.25}, + {"matrix": [3, 6], "x": 13, "y": 1.25}, + {"matrix": [2, 7], "x": 14, "y": 1.25}, + {"matrix": [3, 7], "x": 15.25, "y": 1.25}, + {"matrix": [2, 8], "x": 16.25, "y": 1.25}, + {"matrix": [3, 8], "x": 17.25, "y": 1.25}, + {"matrix": [4, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [5, 0], "x": 1.5, "y": 2.25}, + {"matrix": [4, 1], "x": 2.5, "y": 2.25}, + {"matrix": [5, 1], "x": 3.5, "y": 2.25}, + {"matrix": [4, 2], "x": 4.5, "y": 2.25}, + {"matrix": [5, 2], "x": 5.5, "y": 2.25}, + {"matrix": [4, 3], "x": 6.5, "y": 2.25}, + {"matrix": [5, 3], "x": 7.5, "y": 2.25}, + {"matrix": [4, 4], "x": 8.5, "y": 2.25}, + {"matrix": [5, 4], "x": 9.5, "y": 2.25}, + {"matrix": [4, 5], "x": 10.5, "y": 2.25}, + {"matrix": [5, 5], "x": 11.5, "y": 2.25}, + {"matrix": [4, 6], "x": 12.5, "y": 2.25}, + {"matrix": [4, 7], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [5, 7], "x": 15.25, "y": 2.25}, + {"matrix": [4, 8], "x": 16.25, "y": 2.25}, + {"matrix": [5, 8], "x": 17.25, "y": 2.25}, + {"matrix": [6, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [7, 0], "x": 1.75, "y": 3.25}, + {"matrix": [6, 1], "x": 2.75, "y": 3.25}, + {"matrix": [7, 1], "x": 3.75, "y": 3.25}, + {"matrix": [6, 2], "x": 4.75, "y": 3.25}, + {"matrix": [7, 2], "x": 5.75, "y": 3.25}, + {"matrix": [6, 3], "x": 6.75, "y": 3.25}, + {"matrix": [7, 3], "x": 7.75, "y": 3.25}, + {"matrix": [6, 4], "x": 8.75, "y": 3.25}, + {"matrix": [7, 4], "x": 9.75, "y": 3.25}, + {"matrix": [6, 5], "x": 10.75, "y": 3.25}, + {"matrix": [7, 5], "x": 11.75, "y": 3.25}, + {"matrix": [6, 6], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [8, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [8, 1], "x": 2.25, "y": 4.25}, + {"matrix": [9, 1], "x": 3.25, "y": 4.25}, + {"matrix": [8, 2], "x": 4.25, "y": 4.25}, + {"matrix": [9, 2], "x": 5.25, "y": 4.25}, + {"matrix": [8, 3], "x": 6.25, "y": 4.25}, + {"matrix": [9, 3], "x": 7.25, "y": 4.25}, + {"matrix": [8, 4], "x": 8.25, "y": 4.25}, + {"matrix": [9, 4], "x": 9.25, "y": 4.25}, + {"matrix": [8, 5], "x": 10.25, "y": 4.25}, + {"matrix": [9, 5], "x": 11.25, "y": 4.25}, + {"matrix": [8, 6], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [9, 6], "x": 14, "y": 4.25}, + {"matrix": [9, 8], "x": 16.25, "y": 4.25}, + {"matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [11, 0], "x": 1.5, "y": 5.25}, + {"matrix": [10, 1], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [10, 3], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [11, 5], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [10, 6], "x": 12.5, "y": 5.25}, + {"matrix": [10, 7], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [11, 7], "x": 15.25, "y": 5.25}, + {"matrix": [10, 8], "x": 16.25, "y": 5.25}, + {"matrix": [11, 8], "x": 17.25, "y": 5.25} ] } } From c2326c05c0778025adc681b962a04626ea6dba77 Mon Sep 17 00:00:00 2001 From: John Barbero Date: Sun, 12 Nov 2023 06:30:31 +0100 Subject: [PATCH 375/496] [Keyboard] Fixes to make snes_macropad play nicer with qmk configurator (#22432) * [Keyboard] Change default implementation for get_layer_name_user Will now show the layer number instead of "Unknown", since this is what will be shown if QMK Configurator is used to compile the firmware. * [Keyboard] Update the layout info This makes it look sort of like a macropad + gamepad rather than an 4x6 ortholinear keyboard. * [Keyboard] Fix default implementation of get_layer_name_user Based on feedback from code review the implementation was swapped in favor of using get_u8_str. This implied a change to the argument type from int to uint8_t, which cascaded into the existing keymaps. (This made sense in general, since the return type of get_highest_layer is also a uint8_t.) --- keyboards/snes_macropad/info.json | 24 +++++++++---------- .../snes_macropad/keymaps/default/keymap.c | 2 +- .../snes_macropad/keymaps/jbarberu/keymap.c | 2 +- keyboards/snes_macropad/keymaps/test/keymap.c | 2 +- keyboards/snes_macropad/snes_macropad.c | 4 ++-- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/keyboards/snes_macropad/info.json b/keyboards/snes_macropad/info.json index c54e9bb0b2..15e3c9ee67 100644 --- a/keyboards/snes_macropad/info.json +++ b/keyboards/snes_macropad/info.json @@ -45,18 +45,18 @@ {"matrix": [2, 2], "x": 2, "y": 2}, {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3}, - {"matrix": [3, 1], "x": 1, "y": 3}, - {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 2], "x": 2, "y": 4}, - {"matrix": [4, 3], "x": 3, "y": 4}, - {"matrix": [5, 0], "x": 0, "y": 5}, - {"matrix": [5, 1], "x": 1, "y": 5}, - {"matrix": [5, 2], "x": 2, "y": 5}, - {"matrix": [5, 3], "x": 3, "y": 5} + {"matrix": [3, 0], "x": 5.2, "y": 0, "w": 2, "h": 0.75}, + {"matrix": [3, 1], "x": 10.65, "y": 0, "w": 2, "h": 0.75}, + {"matrix": [3, 2], "x": 7.9, "y": 2.5, "w": 1, "h": 0.75}, + {"matrix": [3, 3], "x": 8.9, "y": 2.5, "w": 1, "h": 0.75}, + {"matrix": [4, 0], "x": 6, "y": 1, "w": 0.85, "h": 0.85}, + {"matrix": [4, 1], "x": 6, "y": 3, "w": 0.85, "h": 0.85}, + {"matrix": [4, 2], "x": 5.2, "y": 2, "w": 0.85, "h": 0.85}, + {"matrix": [4, 3], "x": 6.8, "y": 2, "w": 0.85, "h": 0.85}, + {"matrix": [5, 0], "x": 11.8, "y": 2, "w": 0.85, "h": 0.85}, + {"matrix": [5, 1], "x": 11, "y": 3, "w": 0.85, "h": 0.85}, + {"matrix": [5, 2], "x": 11, "y": 1, "w": 0.85, "h": 0.85}, + {"matrix": [5, 3], "x": 10.2, "y": 2, "w": 0.85, "h": 0.85} ] } }, diff --git a/keyboards/snes_macropad/keymaps/default/keymap.c b/keyboards/snes_macropad/keymaps/default/keymap.c index 34f4f6248a..c4896b1f49 100644 --- a/keyboards/snes_macropad/keymaps/default/keymap.c +++ b/keyboards/snes_macropad/keymaps/default/keymap.c @@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; // clang-format on -const char* get_layer_name_user(int layer) { +const char* get_layer_name_user(uint8_t layer) { switch (layer) { case L_Numpad: return "Numpad"; diff --git a/keyboards/snes_macropad/keymaps/jbarberu/keymap.c b/keyboards/snes_macropad/keymaps/jbarberu/keymap.c index 0fbe0fa626..478d1461e2 100644 --- a/keyboards/snes_macropad/keymaps/jbarberu/keymap.c +++ b/keyboards/snes_macropad/keymaps/jbarberu/keymap.c @@ -81,7 +81,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; // clang-format on -const char * get_layer_name_user(int layer) { +const char * get_layer_name_user(uint8_t layer) { switch (layer) { case L_Numpad: return "Numpad"; diff --git a/keyboards/snes_macropad/keymaps/test/keymap.c b/keyboards/snes_macropad/keymaps/test/keymap.c index 86dd669965..72be941694 100644 --- a/keyboards/snes_macropad/keymaps/test/keymap.c +++ b/keyboards/snes_macropad/keymaps/test/keymap.c @@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; // clang-format on -const char * get_layer_name_user(int layer) { +const char * get_layer_name_user(uint8_t layer) { switch (layer) { case L_Numpad: return "Numpad"; diff --git a/keyboards/snes_macropad/snes_macropad.c b/keyboards/snes_macropad/snes_macropad.c index a8e04c8c32..ba4ce44bd1 100644 --- a/keyboards/snes_macropad/snes_macropad.c +++ b/keyboards/snes_macropad/snes_macropad.c @@ -57,8 +57,8 @@ static void oled_render_keylog(void) { oled_write_char(key_name, false); } -__attribute__((weak)) const char * get_layer_name_user(int layer) { - return "Unknown"; +__attribute__((weak)) const char * get_layer_name_user(uint8_t layer) { + return get_u8_str(layer, ' '); } static void oled_render_layer(void) { From 87d69aebbbac957a770be0e55c9c71d0ea808eb4 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 12 Nov 2023 18:25:18 +1100 Subject: [PATCH 376/496] Slight refactor of joystick axis type into typedef (#22445) --- tmk_core/protocol/report.h | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tmk_core/protocol/report.h b/tmk_core/protocol/report.h index ec985e69ad..3028cf9426 100644 --- a/tmk_core/protocol/report.h +++ b/tmk_core/protocol/report.h @@ -218,16 +218,18 @@ typedef struct { uint16_t y; } PACKED report_digitizer_t; +#if JOYSTICK_AXIS_RESOLUTION > 8 +typedef int16_t joystick_axis_t; +#else +typedef int8_t joystick_axis_t; +#endif + typedef struct { #ifdef JOYSTICK_SHARED_EP uint8_t report_id; #endif #if JOYSTICK_AXIS_COUNT > 0 -# if JOYSTICK_AXIS_RESOLUTION > 8 - int16_t axes[JOYSTICK_AXIS_COUNT]; -# else - int8_t axes[JOYSTICK_AXIS_COUNT]; -# endif + joystick_axis_t axes[JOYSTICK_AXIS_COUNT]; #endif #if JOYSTICK_BUTTON_COUNT > 0 From 786ebf87608dd4d7232cd0e66638382a55ceafa4 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 12 Nov 2023 18:25:46 +1100 Subject: [PATCH 377/496] Remove requirement for `keymap_steno.h` include in keymaps (#22423) * Remove requirement for `keymap_steno.h` include in keymaps * Add back keymap_steno.h with a note for the time being --- docs/feature_stenography.md | 6 +- docs/reference_keymap_extras.md | 1 - .../gherkin/keymaps/steno/keymap.c | 1 - .../gherkin/keymaps/talljoe-gherkin/keymap.c | 1 - keyboards/chord/zero/keymaps/default/keymap.c | 1 - keyboards/ergodox_ez/keymaps/steno/keymap.c | 3 - .../babyv/keymaps/bghull/keymap.c | 1 - keyboards/gboards/butterstick/sten.h | 1 - .../georgi/keymaps/colemak-dh/keymap.c | 1 - .../georgi/keymaps/default-flipped/keymap.c | 1 - .../gboards/georgi/keymaps/default/keymap.c | 1 - .../gboards/georgi/keymaps/minimal/keymap.c | 1 - .../gboards/georgi/keymaps/norman/keymap.c | 1 - keyboards/gboards/georgi/sten.h | 1 - .../split_cloud/keymaps/default/keymap.c | 1 - .../keymaps/halfkeyboard/keymap.c | 3 - keyboards/jian/keymaps/advanced/keymap.c | 1 - .../kbdfans/niu_mini/keymaps/yttyx/keymap.c | 1 - .../keebio/levinson/keymaps/dcompact/keymap.c | 2 - .../keebio/levinson/keymaps/steno/keymap.c | 1 - keyboards/lily58/keymaps/narze/keymap.c | 1 - .../mechwild/bbs/keymaps/default/keymap.c | 1 - .../sugarglider/keymaps/default/keymap.c | 1 - keyboards/planck/keymaps/altgr/keymap.c | 3 - keyboards/planck/keymaps/bghull/keymap.c | 1 - keyboards/planck/keymaps/dcompact/keymap.c | 1 - .../planck/keymaps/experimental/keymap.c | 1 - keyboards/planck/keymaps/hiea/keymap.c | 3 - keyboards/planck/keymaps/hieax/keymap.c | 3 - keyboards/planck/keymaps/sdothum/keymap.c | 3 - keyboards/planck/keymaps/steno/keymap.c | 1 - keyboards/planck/keymaps/yttyx/keymap.c | 1 - keyboards/preonic/keymaps/bghull/keymap.c | 1 - .../splitography/keymaps/default/keymap.c | 1 - .../keymap.c | 1 - .../splitography/keymaps/dvorak/keymap.c | 1 - .../splitography/keymaps/jeandeaual/keymap.c | 1 - keyboards/splitography/keymaps/multi/keymap.c | 1 - .../the_uni/keymaps/default/keymap.c | 1 - .../the_uni/keymaps/utility_belt/keymap.c | 1 - .../minivan/keymaps/dcompact/keymap.c | 1 - keyboards/xiudi/xd75/keymaps/raoeus/keymap.c | 1 - quantum/keymap_extras/keymap_steno.h | 119 +----------------- quantum/process_keycode/process_steno.c | 1 - quantum/process_keycode/process_steno.h | 1 + quantum/steno_keycodes.h | 119 ++++++++++++++++++ 46 files changed, 125 insertions(+), 175 deletions(-) create mode 100644 quantum/steno_keycodes.h diff --git a/docs/feature_stenography.md b/docs/feature_stenography.md index df4c9c6ad3..5ca3ea945f 100644 --- a/docs/feature_stenography.md +++ b/docs/feature_stenography.md @@ -104,7 +104,7 @@ After enabling stenography and optionally selecting a protocol, you may also nee !> If you had *explicitly* set `VIRSTER_ENABLE = no`, none of the serial stenography protocols (GeminiPR, TX Bolt) will work properly. You are expected to either set it to `yes`, remove the line from your `rules.mk` or send the steno chords yourself in an alternative way using the [provided interceptable hooks](#interfacing-with-the-code). -In your keymap, create a new layer for Plover, that you can fill in with the [steno keycodes](#keycode-reference) (you will need to include `keymap_steno.h`, see `planck/keymaps/steno/keymap.c` for an example). Remember to create a key to switch to the layer as well as a key for exiting the layer. +In your keymap, create a new layer for Plover, that you can fill in with the [steno keycodes](#keycode-reference). Remember to create a key to switch to the layer as well as a key for exiting the layer. Once you have your keyboard flashed, launch Plover. Click the 'Configure...' button. In the 'Machine' tab, select the Stenotype Machine that corresponds to your desired protocol. Click the 'Configure...' button on this tab and enter the serial port or click 'Scan'. Baud rate is fine at 9600 (although you should be able to set as high as 115200 with no issues). Use the default settings for everything else (Data Bits: 8, Stop Bits: 1, Parity: N, no flow control). @@ -149,8 +149,6 @@ At the end of this scenario given as an example, `chord` would have five bits se ## Keycode Reference :id=keycode-reference -You must include `keymap_steno.h` to your `keymap.c` with `#include "keymap_steno.h"` before you can use these keycodes - > Note: TX Bolt does not support the full set of keys. The TX Bolt implementation in QMK will map the GeminiPR keys to the nearest TX Bolt key so that one key map will work for both. |GeminiPR|TX Bolt|Steno Key| @@ -198,7 +196,7 @@ You must include `keymap_steno.h` to your `keymap.c` with `#include "keymap_sten |`STN_RES2`||(Reset 2)| |`STN_PWR`||(Power)| -If you do not want to hit two keys with one finger combined keycodes can be used. These are also defined in `keymap_steno.h`, and causes both keys to be reported as pressed or released. To use these keycodes define `STENO_COMBINEDMAP` in your `config.h` file. +If you do not want to hit two keys with one finger combined keycodes can be used. These cause both keys to be reported as pressed or released. To use these keycodes define `STENO_COMBINEDMAP` in your `config.h` file. |Combined key | Key1 | Key 2 | |---------------|--------|----------| diff --git a/docs/reference_keymap_extras.md b/docs/reference_keymap_extras.md index b70d505f1f..84751a512c 100644 --- a/docs/reference_keymap_extras.md +++ b/docs/reference_keymap_extras.md @@ -87,6 +87,5 @@ There are also a few which are not quite language-specific, but useful if you ar |Norman |`keymap_norman.h` |`sendstring_norman.h` | |Plover |`keymap_plover.h` | | |Plover (Dvorak) |`keymap_plover_dvorak.h` | | -|Steno |`keymap_steno.h` | | |Workman |`keymap_workman.h` |`sendstring_workman.h` | |Workman (ZXCVM) |`keymap_workman_zxcvm.h` |`sendstring_workman_zxcvm.h` | diff --git a/keyboards/40percentclub/gherkin/keymaps/steno/keymap.c b/keyboards/40percentclub/gherkin/keymaps/steno/keymap.c index 5f78ba1cde..ea473fa25f 100644 --- a/keyboards/40percentclub/gherkin/keymaps/steno/keymap.c +++ b/keyboards/40percentclub/gherkin/keymaps/steno/keymap.c @@ -1,5 +1,4 @@ #include QMK_KEYBOARD_H -#include "keymap_steno.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT_ortho_3x10( diff --git a/keyboards/40percentclub/gherkin/keymaps/talljoe-gherkin/keymap.c b/keyboards/40percentclub/gherkin/keymaps/talljoe-gherkin/keymap.c index 111264c378..927192c63c 100644 --- a/keyboards/40percentclub/gherkin/keymaps/talljoe-gherkin/keymap.c +++ b/keyboards/40percentclub/gherkin/keymaps/talljoe-gherkin/keymap.c @@ -1,5 +1,4 @@ #include QMK_KEYBOARD_H -#include "keymap_steno.h" #define ST_BOLT QK_STENO_BOLT #define ST_GEM QK_STENO_GEMINI diff --git a/keyboards/chord/zero/keymaps/default/keymap.c b/keyboards/chord/zero/keymaps/default/keymap.c index a1edbe0cff..1134f264bc 100644 --- a/keyboards/chord/zero/keymaps/default/keymap.c +++ b/keyboards/chord/zero/keymaps/default/keymap.c @@ -2,7 +2,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H -#include "keymap_steno.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( diff --git a/keyboards/ergodox_ez/keymaps/steno/keymap.c b/keyboards/ergodox_ez/keymaps/steno/keymap.c index 0e5d7e3a22..84c18fbd95 100644 --- a/keyboards/ergodox_ez/keymaps/steno/keymap.c +++ b/keyboards/ergodox_ez/keymaps/steno/keymap.c @@ -1,7 +1,4 @@ #include QMK_KEYBOARD_H -#include "debug.h" -#include "action_layer.h" -#include "keymap_steno.h" #define BASE 0 // default layer #define SYMB 1 // symbols diff --git a/keyboards/eyeohdesigns/babyv/keymaps/bghull/keymap.c b/keyboards/eyeohdesigns/babyv/keymaps/bghull/keymap.c index 7d22ebc670..7bccc6a46a 100644 --- a/keyboards/eyeohdesigns/babyv/keymaps/bghull/keymap.c +++ b/keyboards/eyeohdesigns/babyv/keymaps/bghull/keymap.c @@ -14,7 +14,6 @@ */ #include QMK_KEYBOARD_H -#include "keymap_steno.h" #include "g/keymap_combo.h" diff --git a/keyboards/gboards/butterstick/sten.h b/keyboards/gboards/butterstick/sten.h index 42ccdd8e69..ca6b03f778 100644 --- a/keyboards/gboards/butterstick/sten.h +++ b/keyboards/gboards/butterstick/sten.h @@ -8,7 +8,6 @@ #pragma once #include QMK_KEYBOARD_H -#include "keymap_steno.h" extern size_t keymapsCount; // Total keymaps extern uint32_t cChord; // Current Chord diff --git a/keyboards/gboards/georgi/keymaps/colemak-dh/keymap.c b/keyboards/gboards/georgi/keymaps/colemak-dh/keymap.c index 9b3365d02f..932d48959c 100644 --- a/keyboards/gboards/georgi/keymaps/colemak-dh/keymap.c +++ b/keyboards/gboards/georgi/keymaps/colemak-dh/keymap.c @@ -12,7 +12,6 @@ #include QMK_KEYBOARD_H #include "sten.h" -#include "keymap_steno.h" // Steno Layers #define FUNCT ( LSD | LK | LP | LH ) diff --git a/keyboards/gboards/georgi/keymaps/default-flipped/keymap.c b/keyboards/gboards/georgi/keymaps/default-flipped/keymap.c index 2e63fe3c7d..19683179f3 100644 --- a/keyboards/gboards/georgi/keymaps/default-flipped/keymap.c +++ b/keyboards/gboards/georgi/keymaps/default-flipped/keymap.c @@ -12,7 +12,6 @@ #include QMK_KEYBOARD_H #include "sten.h" -#include "keymap_steno.h" // Proper Layers #define FUNCT (LSD | LK | LP | LH) diff --git a/keyboards/gboards/georgi/keymaps/default/keymap.c b/keyboards/gboards/georgi/keymaps/default/keymap.c index a9c2d4a47d..955ec0e406 100644 --- a/keyboards/gboards/georgi/keymaps/default/keymap.c +++ b/keyboards/gboards/georgi/keymaps/default/keymap.c @@ -12,7 +12,6 @@ #include QMK_KEYBOARD_H #include "sten.h" -#include "keymap_steno.h" // Proper Layers #define FUNCT (LSD | LK | LP | LH) diff --git a/keyboards/gboards/georgi/keymaps/minimal/keymap.c b/keyboards/gboards/georgi/keymaps/minimal/keymap.c index c4e78033bd..2f089866b2 100644 --- a/keyboards/gboards/georgi/keymaps/minimal/keymap.c +++ b/keyboards/gboards/georgi/keymaps/minimal/keymap.c @@ -12,7 +12,6 @@ #include QMK_KEYBOARD_H #include "sten.h" -#include "keymap_steno.h" // Proper Layers #define FUNCT (LSD | LK | LP | LH) diff --git a/keyboards/gboards/georgi/keymaps/norman/keymap.c b/keyboards/gboards/georgi/keymaps/norman/keymap.c index 870e460e2c..1b53cddd8b 100644 --- a/keyboards/gboards/georgi/keymaps/norman/keymap.c +++ b/keyboards/gboards/georgi/keymaps/norman/keymap.c @@ -12,7 +12,6 @@ #include QMK_KEYBOARD_H #include "sten.h" -#include "keymap_steno.h" // Proper Layers #define FUNCT (LSD | LK | LP | LH) diff --git a/keyboards/gboards/georgi/sten.h b/keyboards/gboards/georgi/sten.h index 44a6472044..e4bc31ef7a 100644 --- a/keyboards/gboards/georgi/sten.h +++ b/keyboards/gboards/georgi/sten.h @@ -7,7 +7,6 @@ #pragma once #include "georgi.h" -#include "keymap_steno.h" extern size_t keymapsCount; // Total keymaps extern uint32_t cChord; // Current Chord diff --git a/keyboards/handwired/split_cloud/keymaps/default/keymap.c b/keyboards/handwired/split_cloud/keymaps/default/keymap.c index f94a112c07..ad7e64e6ad 100644 --- a/keyboards/handwired/split_cloud/keymaps/default/keymap.c +++ b/keyboards/handwired/split_cloud/keymaps/default/keymap.c @@ -15,7 +15,6 @@ */ #include QMK_KEYBOARD_H -#include "keymap_steno.h" // clang-format off diff --git a/keyboards/input_club/ergodox_infinity/keymaps/halfkeyboard/keymap.c b/keyboards/input_club/ergodox_infinity/keymaps/halfkeyboard/keymap.c index ca0442103d..35f459fab5 100644 --- a/keyboards/input_club/ergodox_infinity/keymaps/halfkeyboard/keymap.c +++ b/keyboards/input_club/ergodox_infinity/keymaps/halfkeyboard/keymap.c @@ -1,8 +1,5 @@ #include QMK_KEYBOARD_H -#include "debug.h" -#include "action_layer.h" #include "version.h" -#include "keymap_steno.h" #ifndef MIDI_ENABLE #error "Midi is not enabled" #endif diff --git a/keyboards/jian/keymaps/advanced/keymap.c b/keyboards/jian/keymaps/advanced/keymap.c index 4a6fdec063..7702fc20b7 100644 --- a/keyboards/jian/keymaps/advanced/keymap.c +++ b/keyboards/jian/keymaps/advanced/keymap.c @@ -11,7 +11,6 @@ typedef union { user_config_t user_config; #ifdef STENO_ENABLE -#include "keymap_steno.h" #endif // STENO_ENABLE diff --git a/keyboards/kbdfans/niu_mini/keymaps/yttyx/keymap.c b/keyboards/kbdfans/niu_mini/keymaps/yttyx/keymap.c index 55d5a80228..53ed794da8 100644 --- a/keyboards/kbdfans/niu_mini/keymaps/yttyx/keymap.c +++ b/keyboards/kbdfans/niu_mini/keymaps/yttyx/keymap.c @@ -1,6 +1,5 @@ #include QMK_KEYBOARD_H -#include "keymap_steno.h" enum layers { _BA, // Base (Balance Twelve mirror variant) diff --git a/keyboards/keebio/levinson/keymaps/dcompact/keymap.c b/keyboards/keebio/levinson/keymaps/dcompact/keymap.c index f501ef7cef..0495649c42 100644 --- a/keyboards/keebio/levinson/keymaps/dcompact/keymap.c +++ b/keyboards/keebio/levinson/keymaps/dcompact/keymap.c @@ -1,7 +1,5 @@ #include QMK_KEYBOARD_H -#include "keymap_steno.h" - // Custom Keycodes and Combinations Used #define DEL_SHF SFT_T(KC_DEL) #define QUAKE LCTL(KC_GRV) diff --git a/keyboards/keebio/levinson/keymaps/steno/keymap.c b/keyboards/keebio/levinson/keymaps/steno/keymap.c index 854ef41999..067e560d1b 100644 --- a/keyboards/keebio/levinson/keymaps/steno/keymap.c +++ b/keyboards/keebio/levinson/keymaps/steno/keymap.c @@ -1,5 +1,4 @@ #include QMK_KEYBOARD_H -#include "keymap_steno.h" extern keymap_config_t keymap_config; diff --git a/keyboards/lily58/keymaps/narze/keymap.c b/keyboards/lily58/keymaps/narze/keymap.c index 7438e72751..0f2764da6a 100644 --- a/keyboards/lily58/keymaps/narze/keymap.c +++ b/keyboards/lily58/keymaps/narze/keymap.c @@ -1,7 +1,6 @@ #include QMK_KEYBOARD_H #include "narze.h" #include "keymap_colemak.h" -#include "keymap_steno.h" #ifdef RGBLIGHT_ENABLE diff --git a/keyboards/mechwild/bbs/keymaps/default/keymap.c b/keyboards/mechwild/bbs/keymaps/default/keymap.c index 1eabdcd540..146099fba7 100644 --- a/keyboards/mechwild/bbs/keymaps/default/keymap.c +++ b/keyboards/mechwild/bbs/keymaps/default/keymap.c @@ -2,7 +2,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H -#include "keymap_steno.h" // Defines names for use in layer keycodes and the keymap enum layer_names { diff --git a/keyboards/mechwild/sugarglider/keymaps/default/keymap.c b/keyboards/mechwild/sugarglider/keymaps/default/keymap.c index ad0470a139..344dabfd2d 100644 --- a/keyboards/mechwild/sugarglider/keymaps/default/keymap.c +++ b/keyboards/mechwild/sugarglider/keymaps/default/keymap.c @@ -2,7 +2,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H -#include "keymap_steno.h" // Defines names for use in layer keycodes and the keymap enum layer_names { diff --git a/keyboards/planck/keymaps/altgr/keymap.c b/keyboards/planck/keymaps/altgr/keymap.c index 3ef9690a0a..f67682d794 100644 --- a/keyboards/planck/keymaps/altgr/keymap.c +++ b/keyboards/planck/keymaps/altgr/keymap.c @@ -67,9 +67,6 @@ #include QMK_KEYBOARD_H -#ifdef STENO_ENABLE -#include "keymap_steno.h" -#endif extern keymap_config_t keymap_config; diff --git a/keyboards/planck/keymaps/bghull/keymap.c b/keyboards/planck/keymaps/bghull/keymap.c index 4e556fc215..55f5c54b67 100644 --- a/keyboards/planck/keymaps/bghull/keymap.c +++ b/keyboards/planck/keymaps/bghull/keymap.c @@ -15,7 +15,6 @@ */ #include QMK_KEYBOARD_H -#include "keymap_steno.h" #include "g/keymap_combo.h" #include "muse.h" diff --git a/keyboards/planck/keymaps/dcompact/keymap.c b/keyboards/planck/keymaps/dcompact/keymap.c index a63f86e7a8..f781d1e5c0 100644 --- a/keyboards/planck/keymaps/dcompact/keymap.c +++ b/keyboards/planck/keymaps/dcompact/keymap.c @@ -15,7 +15,6 @@ */ #include QMK_KEYBOARD_H -#include "keymap_steno.h" // Custom Keycodes and Combinations Used #define DEL_SHF SFT_T(KC_DEL) diff --git a/keyboards/planck/keymaps/experimental/keymap.c b/keyboards/planck/keymaps/experimental/keymap.c index d5c7425439..6d6752952b 100644 --- a/keyboards/planck/keymaps/experimental/keymap.c +++ b/keyboards/planck/keymaps/experimental/keymap.c @@ -1,6 +1,5 @@ #include QMK_KEYBOARD_H -#include "keymap_steno.h" #include "version.h" extern keymap_config_t keymap_config; diff --git a/keyboards/planck/keymaps/hiea/keymap.c b/keyboards/planck/keymaps/hiea/keymap.c index eed4954096..be138a3eb4 100644 --- a/keyboards/planck/keymaps/hiea/keymap.c +++ b/keyboards/planck/keymaps/hiea/keymap.c @@ -67,9 +67,6 @@ #include QMK_KEYBOARD_H -#ifdef STENO_ENABLE -#include "keymap_steno.h" -#endif extern keymap_config_t keymap_config; diff --git a/keyboards/planck/keymaps/hieax/keymap.c b/keyboards/planck/keymaps/hieax/keymap.c index 80de85b884..4acd526916 100644 --- a/keyboards/planck/keymaps/hieax/keymap.c +++ b/keyboards/planck/keymaps/hieax/keymap.c @@ -67,9 +67,6 @@ #include QMK_KEYBOARD_H -#ifdef STENO_ENABLE -#include "keymap_steno.h" -#endif extern keymap_config_t keymap_config; diff --git a/keyboards/planck/keymaps/sdothum/keymap.c b/keyboards/planck/keymaps/sdothum/keymap.c index 597466ba47..03c605020c 100644 --- a/keyboards/planck/keymaps/sdothum/keymap.c +++ b/keyboards/planck/keymaps/sdothum/keymap.c @@ -67,9 +67,6 @@ #include QMK_KEYBOARD_H -#ifdef STENO_ENABLE -#include "keymap_steno.h" -#endif extern keymap_config_t keymap_config; diff --git a/keyboards/planck/keymaps/steno/keymap.c b/keyboards/planck/keymaps/steno/keymap.c index 9de27e47bf..4d22ee4ff3 100644 --- a/keyboards/planck/keymaps/steno/keymap.c +++ b/keyboards/planck/keymaps/steno/keymap.c @@ -15,7 +15,6 @@ */ #include QMK_KEYBOARD_H -#include "keymap_steno.h" extern keymap_config_t keymap_config; diff --git a/keyboards/planck/keymaps/yttyx/keymap.c b/keyboards/planck/keymaps/yttyx/keymap.c index 1201163ac7..b3b39cd919 100644 --- a/keyboards/planck/keymaps/yttyx/keymap.c +++ b/keyboards/planck/keymaps/yttyx/keymap.c @@ -1,6 +1,5 @@ #include QMK_KEYBOARD_H -#include "keymap_steno.h" enum layers { _BA, // Base (Balance Twelve mirror variant) diff --git a/keyboards/preonic/keymaps/bghull/keymap.c b/keyboards/preonic/keymaps/bghull/keymap.c index eba6cd4f85..87cb9c6c69 100644 --- a/keyboards/preonic/keymaps/bghull/keymap.c +++ b/keyboards/preonic/keymaps/bghull/keymap.c @@ -15,7 +15,6 @@ */ #include QMK_KEYBOARD_H -#include "keymap_steno.h" enum preonic_layers { _QWERTY, diff --git a/keyboards/splitography/keymaps/default/keymap.c b/keyboards/splitography/keymaps/default/keymap.c index 8fbd541810..9c6c7d6b26 100644 --- a/keyboards/splitography/keymaps/default/keymap.c +++ b/keyboards/splitography/keymaps/default/keymap.c @@ -15,7 +15,6 @@ */ #include QMK_KEYBOARD_H -#include "keymap_steno.h" enum keyboard_layers { _QWERTY = 0, diff --git a/keyboards/splitography/keymaps/default_with_ctl_shft_alt_switched/keymap.c b/keyboards/splitography/keymaps/default_with_ctl_shft_alt_switched/keymap.c index 83874f7760..787f448ffb 100644 --- a/keyboards/splitography/keymaps/default_with_ctl_shft_alt_switched/keymap.c +++ b/keyboards/splitography/keymaps/default_with_ctl_shft_alt_switched/keymap.c @@ -15,7 +15,6 @@ */ #include QMK_KEYBOARD_H -#include "keymap_steno.h" enum keyboard_layers { _QWERTY = 0, diff --git a/keyboards/splitography/keymaps/dvorak/keymap.c b/keyboards/splitography/keymaps/dvorak/keymap.c index 1d9ff41dd1..992cfd0abb 100644 --- a/keyboards/splitography/keymaps/dvorak/keymap.c +++ b/keyboards/splitography/keymaps/dvorak/keymap.c @@ -15,7 +15,6 @@ */ #include QMK_KEYBOARD_H -#include "keymap_steno.h" enum keyboard_layers { _DVORAK = 0, diff --git a/keyboards/splitography/keymaps/jeandeaual/keymap.c b/keyboards/splitography/keymaps/jeandeaual/keymap.c index 9b5c3d554d..6e0f818688 100644 --- a/keyboards/splitography/keymaps/jeandeaual/keymap.c +++ b/keyboards/splitography/keymaps/jeandeaual/keymap.c @@ -15,7 +15,6 @@ */ #include QMK_KEYBOARD_H -#include "keymap_steno.h" enum keyboard_layers { _GEMINI = 0, diff --git a/keyboards/splitography/keymaps/multi/keymap.c b/keyboards/splitography/keymaps/multi/keymap.c index f1a083e03f..42ab737698 100644 --- a/keyboards/splitography/keymaps/multi/keymap.c +++ b/keyboards/splitography/keymaps/multi/keymap.c @@ -15,7 +15,6 @@ */ #include QMK_KEYBOARD_H -#include "keymap_steno.h" enum keyboard_layers { _QWERTY = 0, diff --git a/keyboards/stenokeyboards/the_uni/keymaps/default/keymap.c b/keyboards/stenokeyboards/the_uni/keymaps/default/keymap.c index 74aa207bd5..2240798328 100644 --- a/keyboards/stenokeyboards/the_uni/keymaps/default/keymap.c +++ b/keyboards/stenokeyboards/the_uni/keymaps/default/keymap.c @@ -16,7 +16,6 @@ along with this program. If not, see . */ #include QMK_KEYBOARD_H -#include "keymap_steno.h" enum uni_layers { _PLOVER, diff --git a/keyboards/stenokeyboards/the_uni/keymaps/utility_belt/keymap.c b/keyboards/stenokeyboards/the_uni/keymaps/utility_belt/keymap.c index 47a89818f6..0962521903 100644 --- a/keyboards/stenokeyboards/the_uni/keymaps/utility_belt/keymap.c +++ b/keyboards/stenokeyboards/the_uni/keymaps/utility_belt/keymap.c @@ -16,7 +16,6 @@ along with this program. If not, see . */ #include QMK_KEYBOARD_H -#include "keymap_steno.h" enum uni_layers { _PLOVER, diff --git a/keyboards/thevankeyboards/minivan/keymaps/dcompact/keymap.c b/keyboards/thevankeyboards/minivan/keymaps/dcompact/keymap.c index a036d563a1..614fe97710 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/dcompact/keymap.c +++ b/keyboards/thevankeyboards/minivan/keymaps/dcompact/keymap.c @@ -15,7 +15,6 @@ */ #include QMK_KEYBOARD_H -#include "keymap_steno.h" // Custom Keycodes and Combinations Used #define DEL_SHF SFT_T(KC_DEL) diff --git a/keyboards/xiudi/xd75/keymaps/raoeus/keymap.c b/keyboards/xiudi/xd75/keymaps/raoeus/keymap.c index 22578350c1..8c57995f2f 100644 --- a/keyboards/xiudi/xd75/keymaps/raoeus/keymap.c +++ b/keyboards/xiudi/xd75/keymaps/raoeus/keymap.c @@ -16,7 +16,6 @@ */ #include QMK_KEYBOARD_H -#include "keymap_steno.h" void matrix_init_user(void) { steno_set_mode(STENO_MODE_GEMINI); diff --git a/quantum/keymap_extras/keymap_steno.h b/quantum/keymap_extras/keymap_steno.h index 852b2f7121..d2635446c6 100644 --- a/quantum/keymap_extras/keymap_steno.h +++ b/quantum/keymap_extras/keymap_steno.h @@ -1,119 +1,6 @@ -/* Copyright 2017 Joseph Wasson - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#include "keycodes.h" - -// List of keycodes for the steno keyboard. To prevent -// errors, this must be <= 42 total entries in order to -// support the GeminiPR protocol. -enum steno_keycodes { - STN__MIN = QK_STENO, - STN_FN = STN__MIN, - STN_NUM, - STN_N1 = STN_NUM, - STN_N2, - STN_N3, - STN_N4, - STN_N5, - STN_N6, - STN_SL, - STN_S1 = STN_SL, - STN_S2, - STN_TL, - STN_KL, - STN_PL, - STN_WL, - STN_HL, - STN_RL, - STN_A, - STN_O, - STN_STR, - STN_ST1 = STN_STR, - STN_ST2, - STN_RES1, - STN_RE1 = STN_RES1, - STN_RES2, - STN_RE2 = STN_RES2, - STN_PWR, - STN_ST3, - STN_ST4, - STN_E, - STN_U, - STN_FR, - STN_RR, - STN_PR, - STN_BR, - STN_LR, - STN_GR, - STN_TR, - STN_SR, - STN_DR, - STN_N7, - STN_N8, - STN_N9, - STN_NA, - STN_NB, - STN_NC, - STN_ZR, - STN__MAX = STN_ZR, // must be less than QK_STENO_BOLT -}; - -#ifdef STENO_COMBINEDMAP -enum steno_combined_keycodes { - STN_S3 = QK_STENO_COMB, - STN_TKL, - STN_PWL, - STN_HRL, - STN_FRR, - STN_PBR, - STN_LGR, - STN_TSR, - STN_DZR, - STN_AO, - STN_EU, - STN_COMB_MAX = STN_EU, -}; -#endif - -#ifdef STENO_ENABLE_BOLT -// TxBolt Codes -# define TXB_NUL 0 -# define TXB_S_L 0b00000001 -# define TXB_T_L 0b00000010 -# define TXB_K_L 0b00000100 -# define TXB_P_L 0b00001000 -# define TXB_W_L 0b00010000 -# define TXB_H_L 0b00100000 -# define TXB_R_L 0b01000001 -# define TXB_A_L 0b01000010 -# define TXB_O_L 0b01000100 -# define TXB_STR 0b01001000 -# define TXB_E_R 0b01010000 -# define TXB_U_R 0b01100000 -# define TXB_F_R 0b10000001 -# define TXB_R_R 0b10000010 -# define TXB_P_R 0b10000100 -# define TXB_B_R 0b10001000 -# define TXB_L_R 0b10010000 -# define TXB_G_R 0b10100000 -# define TXB_T_R 0b11000001 -# define TXB_S_R 0b11000010 -# define TXB_D_R 0b11000100 -# define TXB_Z_R 0b11001000 -# define TXB_NUM 0b11010000 -#endif // STENO_ENABLE_BOLT +#pragma message("keymap_steno.h include is no longer required") diff --git a/quantum/process_keycode/process_steno.c b/quantum/process_keycode/process_steno.c index af26d4ca86..bd4361580b 100644 --- a/quantum/process_keycode/process_steno.c +++ b/quantum/process_keycode/process_steno.c @@ -16,7 +16,6 @@ #include "process_steno.h" #include "quantum_keycodes.h" #include "eeconfig.h" -#include "keymap_steno.h" #include #ifdef VIRTSER_ENABLE # include "virtser.h" diff --git a/quantum/process_keycode/process_steno.h b/quantum/process_keycode/process_steno.h index 0dd2103218..5529980b71 100644 --- a/quantum/process_keycode/process_steno.h +++ b/quantum/process_keycode/process_steno.h @@ -19,6 +19,7 @@ #include #include #include "action.h" +#include "steno_keycodes.h" #define BOLT_STROKE_SIZE 4 #define GEMINI_STROKE_SIZE 6 diff --git a/quantum/steno_keycodes.h b/quantum/steno_keycodes.h new file mode 100644 index 0000000000..852b2f7121 --- /dev/null +++ b/quantum/steno_keycodes.h @@ -0,0 +1,119 @@ +/* Copyright 2017 Joseph Wasson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "keycodes.h" + +// List of keycodes for the steno keyboard. To prevent +// errors, this must be <= 42 total entries in order to +// support the GeminiPR protocol. +enum steno_keycodes { + STN__MIN = QK_STENO, + STN_FN = STN__MIN, + STN_NUM, + STN_N1 = STN_NUM, + STN_N2, + STN_N3, + STN_N4, + STN_N5, + STN_N6, + STN_SL, + STN_S1 = STN_SL, + STN_S2, + STN_TL, + STN_KL, + STN_PL, + STN_WL, + STN_HL, + STN_RL, + STN_A, + STN_O, + STN_STR, + STN_ST1 = STN_STR, + STN_ST2, + STN_RES1, + STN_RE1 = STN_RES1, + STN_RES2, + STN_RE2 = STN_RES2, + STN_PWR, + STN_ST3, + STN_ST4, + STN_E, + STN_U, + STN_FR, + STN_RR, + STN_PR, + STN_BR, + STN_LR, + STN_GR, + STN_TR, + STN_SR, + STN_DR, + STN_N7, + STN_N8, + STN_N9, + STN_NA, + STN_NB, + STN_NC, + STN_ZR, + STN__MAX = STN_ZR, // must be less than QK_STENO_BOLT +}; + +#ifdef STENO_COMBINEDMAP +enum steno_combined_keycodes { + STN_S3 = QK_STENO_COMB, + STN_TKL, + STN_PWL, + STN_HRL, + STN_FRR, + STN_PBR, + STN_LGR, + STN_TSR, + STN_DZR, + STN_AO, + STN_EU, + STN_COMB_MAX = STN_EU, +}; +#endif + +#ifdef STENO_ENABLE_BOLT +// TxBolt Codes +# define TXB_NUL 0 +# define TXB_S_L 0b00000001 +# define TXB_T_L 0b00000010 +# define TXB_K_L 0b00000100 +# define TXB_P_L 0b00001000 +# define TXB_W_L 0b00010000 +# define TXB_H_L 0b00100000 +# define TXB_R_L 0b01000001 +# define TXB_A_L 0b01000010 +# define TXB_O_L 0b01000100 +# define TXB_STR 0b01001000 +# define TXB_E_R 0b01010000 +# define TXB_U_R 0b01100000 +# define TXB_F_R 0b10000001 +# define TXB_R_R 0b10000010 +# define TXB_P_R 0b10000100 +# define TXB_B_R 0b10001000 +# define TXB_L_R 0b10010000 +# define TXB_G_R 0b10100000 +# define TXB_T_R 0b11000001 +# define TXB_S_R 0b11000010 +# define TXB_D_R 0b11000100 +# define TXB_Z_R 0b11001000 +# define TXB_NUM 0b11010000 +#endif // STENO_ENABLE_BOLT From e884e42ce98ad8994477deef26e6ad27b8b3643c Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 12 Nov 2023 22:30:27 +0000 Subject: [PATCH 378/496] Generalise ADC driver source inclusion (#22448) --- builddefs/common_features.mk | 12 ++++++++---- docs/adc_driver.md | 2 +- keyboards/1upkeyboards/1upslider8/rules.mk | 2 +- keyboards/cipulot/ec_23u/rules.mk | 3 ++- keyboards/cipulot/ec_60/rules.mk | 3 ++- keyboards/cipulot/ec_alveus/1_0_0/rules.mk | 3 ++- keyboards/cipulot/ec_alveus/1_2_0/rules.mk | 3 ++- keyboards/cipulot/ec_pro2/rules.mk | 4 +++- keyboards/cipulot/ec_prox/ansi_iso/rules.mk | 3 ++- keyboards/cipulot/ec_prox/jis/rules.mk | 3 ++- keyboards/cipulot/ec_theca/rules.mk | 3 ++- keyboards/cipulot/rf_r1_8_9xu/rules.mk | 3 ++- keyboards/drop/alt/v2/rules.mk | 4 +++- keyboards/drop/ctrl/v2/rules.mk | 4 +++- keyboards/drop/shift/v2/rules.mk | 4 +++- keyboards/gmmk/numpad/rules.mk | 5 +++-- keyboards/handwired/battleship_gamepad/rules.mk | 2 -- keyboards/handwired/onekey/keymaps/adc/rules.mk | 4 ++-- keyboards/handwired/onekey/nucleo_f446re/rules.mk | 1 - keyboards/handwired/promethium/rules.mk | 3 ++- keyboards/keebwerk/nano_slider/rules.mk | 2 +- keyboards/lime/keymaps/default/rules.mk | 2 -- keyboards/ploopyco/mouse/rules.mk | 3 ++- keyboards/ploopyco/trackball/rules.mk | 3 ++- keyboards/ploopyco/trackball_mini/rules.mk | 3 ++- keyboards/ploopyco/trackball_thumb/rules.mk | 3 ++- keyboards/sekigon/grs_70ec/rules.mk | 4 +++- keyboards/splitkb/kyria/keymaps/gotham/rules.mk | 2 +- keyboards/tzarc/ghoul/rules.mk | 2 +- keyboards/ungodly/launch_pad/rules.mk | 2 +- keyboards/v4n4g0rth0n/v2/rules.mk | 3 +-- keyboards/viktus/minne_topre/rules.mk | 3 ++- keyboards/viktus/osav2_numpad_topre/rules.mk | 3 ++- keyboards/viktus/osav2_topre/rules.mk | 3 ++- keyboards/viktus/styrka_topre/rules.mk | 3 ++- 35 files changed, 69 insertions(+), 43 deletions(-) diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index b6f888d30d..fbaf087ad1 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -139,8 +139,7 @@ ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes) ifeq ($(strip $(POINTING_DEVICE_DRIVER)), adns9800) SPI_DRIVER_REQUIRED = yes else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), analog_joystick) - OPT_DEFS += -DSTM32_ADC -DHAL_USE_ADC=TRUE - LIB_SRC += analog.c + ANALOG_DRIVER_REQUIRED = yes else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), cirque_pinnacle_i2c) I2C_DRIVER_REQUIRED = yes SRC += drivers/sensors/cirque_pinnacle.c @@ -840,8 +839,8 @@ ifeq ($(strip $(JOYSTICK_ENABLE)), yes) SRC += $(QUANTUM_DIR)/joystick.c ifeq ($(strip $(JOYSTICK_DRIVER)), analog) + ANALOG_DRIVER_REQUIRED = yes OPT_DEFS += -DANALOG_JOYSTICK_ENABLE - SRC += analog.c endif ifeq ($(strip $(JOYSTICK_DRIVER)), digital) OPT_DEFS += -DDIGITAL_JOYSTICK_ENABLE @@ -886,9 +885,9 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) ifeq ($(strip $(BLUETOOTH_DRIVER)), bluefruit_le) SPI_DRIVER_REQUIRED = yes + ANALOG_DRIVER_REQUIRED = yes SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c SRC += $(DRIVER_PATH)/bluetooth/bluefruit_le.cpp - QUANTUM_LIB_SRC += analog.c endif ifeq ($(strip $(BLUETOOTH_DRIVER)), rn42) @@ -935,6 +934,11 @@ ifeq ($(strip $(APA102_DRIVER_REQUIRED)), yes) SRC += apa102.c endif +ifeq ($(strip $(ANALOG_DRIVER_REQUIRED)), yes) + OPT_DEFS += -DHAL_USE_ADC=TRUE + QUANTUM_LIB_SRC += analog.c +endif + ifeq ($(strip $(I2C_DRIVER_REQUIRED)), yes) OPT_DEFS += -DHAL_USE_I2C=TRUE QUANTUM_LIB_SRC += i2c_master.c diff --git a/docs/adc_driver.md b/docs/adc_driver.md index 494d90c94f..dd928e1e7f 100644 --- a/docs/adc_driver.md +++ b/docs/adc_driver.md @@ -9,7 +9,7 @@ This driver currently supports both AVR and a limited selection of ARM devices. To use this driver, add the following to your `rules.mk`: ```make -SRC += analog.c +ANALOG_DRIVER_REQUIRED = yes ``` Then place this include at the top of your code: diff --git a/keyboards/1upkeyboards/1upslider8/rules.mk b/keyboards/1upkeyboards/1upslider8/rules.mk index 8515c3fae0..cc58820278 100644 --- a/keyboards/1upkeyboards/1upslider8/rules.mk +++ b/keyboards/1upkeyboards/1upslider8/rules.mk @@ -1 +1 @@ -SRC += analog.c +ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/cipulot/ec_23u/rules.mk b/keyboards/cipulot/ec_23u/rules.mk index ed348e8618..fc2dcf32ab 100644 --- a/keyboards/cipulot/ec_23u/rules.mk +++ b/keyboards/cipulot/ec_23u/rules.mk @@ -1,3 +1,4 @@ CUSTOM_MATRIX = lite -QUANTUM_LIB_SRC += analog.c SRC += matrix.c ec_switch_matrix.c + +ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/cipulot/ec_60/rules.mk b/keyboards/cipulot/ec_60/rules.mk index ed348e8618..fc2dcf32ab 100644 --- a/keyboards/cipulot/ec_60/rules.mk +++ b/keyboards/cipulot/ec_60/rules.mk @@ -1,3 +1,4 @@ CUSTOM_MATRIX = lite -QUANTUM_LIB_SRC += analog.c SRC += matrix.c ec_switch_matrix.c + +ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/cipulot/ec_alveus/1_0_0/rules.mk b/keyboards/cipulot/ec_alveus/1_0_0/rules.mk index b8929fa590..fc2dcf32ab 100644 --- a/keyboards/cipulot/ec_alveus/1_0_0/rules.mk +++ b/keyboards/cipulot/ec_alveus/1_0_0/rules.mk @@ -1,3 +1,4 @@ CUSTOM_MATRIX = lite -QUANTUM_LIB_SRC += analog.c SRC += matrix.c ec_switch_matrix.c + +ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/cipulot/ec_alveus/1_2_0/rules.mk b/keyboards/cipulot/ec_alveus/1_2_0/rules.mk index b8929fa590..fc2dcf32ab 100644 --- a/keyboards/cipulot/ec_alveus/1_2_0/rules.mk +++ b/keyboards/cipulot/ec_alveus/1_2_0/rules.mk @@ -1,3 +1,4 @@ CUSTOM_MATRIX = lite -QUANTUM_LIB_SRC += analog.c SRC += matrix.c ec_switch_matrix.c + +ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/cipulot/ec_pro2/rules.mk b/keyboards/cipulot/ec_pro2/rules.mk index b27b0f7ac0..fc2dcf32ab 100644 --- a/keyboards/cipulot/ec_pro2/rules.mk +++ b/keyboards/cipulot/ec_pro2/rules.mk @@ -1,2 +1,4 @@ CUSTOM_MATRIX = lite -SRC += analog.c matrix.c ec_switch_matrix.c +SRC += matrix.c ec_switch_matrix.c + +ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/cipulot/ec_prox/ansi_iso/rules.mk b/keyboards/cipulot/ec_prox/ansi_iso/rules.mk index ed348e8618..fc2dcf32ab 100644 --- a/keyboards/cipulot/ec_prox/ansi_iso/rules.mk +++ b/keyboards/cipulot/ec_prox/ansi_iso/rules.mk @@ -1,3 +1,4 @@ CUSTOM_MATRIX = lite -QUANTUM_LIB_SRC += analog.c SRC += matrix.c ec_switch_matrix.c + +ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/cipulot/ec_prox/jis/rules.mk b/keyboards/cipulot/ec_prox/jis/rules.mk index ed348e8618..fc2dcf32ab 100644 --- a/keyboards/cipulot/ec_prox/jis/rules.mk +++ b/keyboards/cipulot/ec_prox/jis/rules.mk @@ -1,3 +1,4 @@ CUSTOM_MATRIX = lite -QUANTUM_LIB_SRC += analog.c SRC += matrix.c ec_switch_matrix.c + +ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/cipulot/ec_theca/rules.mk b/keyboards/cipulot/ec_theca/rules.mk index b8929fa590..fc2dcf32ab 100644 --- a/keyboards/cipulot/ec_theca/rules.mk +++ b/keyboards/cipulot/ec_theca/rules.mk @@ -1,3 +1,4 @@ CUSTOM_MATRIX = lite -QUANTUM_LIB_SRC += analog.c SRC += matrix.c ec_switch_matrix.c + +ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/cipulot/rf_r1_8_9xu/rules.mk b/keyboards/cipulot/rf_r1_8_9xu/rules.mk index ed348e8618..fc2dcf32ab 100644 --- a/keyboards/cipulot/rf_r1_8_9xu/rules.mk +++ b/keyboards/cipulot/rf_r1_8_9xu/rules.mk @@ -1,3 +1,4 @@ CUSTOM_MATRIX = lite -QUANTUM_LIB_SRC += analog.c SRC += matrix.c ec_switch_matrix.c + +ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/drop/alt/v2/rules.mk b/keyboards/drop/alt/v2/rules.mk index a504f81cb1..3c300442da 100644 --- a/keyboards/drop/alt/v2/rules.mk +++ b/keyboards/drop/alt/v2/rules.mk @@ -1,4 +1,6 @@ UF2_DEVICE_TYPE_ID = 0x35446147 UF2CONV_ARGS = --device-type $(UF2_DEVICE_TYPE_ID) -SRC += analog.c lib/common.c lib/mux.c +SRC += lib/common.c lib/mux.c + +ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/drop/ctrl/v2/rules.mk b/keyboards/drop/ctrl/v2/rules.mk index 13c11c1833..02a766b5c3 100644 --- a/keyboards/drop/ctrl/v2/rules.mk +++ b/keyboards/drop/ctrl/v2/rules.mk @@ -1,4 +1,6 @@ UF2_DEVICE_TYPE_ID = 0x27b9a6ea UF2CONV_ARGS = --device-type $(UF2_DEVICE_TYPE_ID) -SRC += analog.c lib/common.c lib/mux.c +SRC += lib/common.c lib/mux.c + +ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/drop/shift/v2/rules.mk b/keyboards/drop/shift/v2/rules.mk index aec83326d0..f4f3ce1498 100644 --- a/keyboards/drop/shift/v2/rules.mk +++ b/keyboards/drop/shift/v2/rules.mk @@ -1,4 +1,6 @@ UF2_DEVICE_TYPE_ID = 0x9bc1e968 UF2CONV_ARGS = --device-type $(UF2_DEVICE_TYPE_ID) -SRC += analog.c lib/common.c lib/mux.c +SRC += lib/common.c lib/mux.c + +ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/gmmk/numpad/rules.mk b/keyboards/gmmk/numpad/rules.mk index e30aa52954..d289eb81a4 100644 --- a/keyboards/gmmk/numpad/rules.mk +++ b/keyboards/gmmk/numpad/rules.mk @@ -18,5 +18,6 @@ RGB_MATRIX_ENABLE = yes LTO_ENABLE = yes -SRC += analog.c \ - matrix.c \ No newline at end of file +ANALOG_DRIVER_REQUIRED = yes + +SRC += matrix.c diff --git a/keyboards/handwired/battleship_gamepad/rules.mk b/keyboards/handwired/battleship_gamepad/rules.mk index 7422e73873..a41273f890 100644 --- a/keyboards/handwired/battleship_gamepad/rules.mk +++ b/keyboards/handwired/battleship_gamepad/rules.mk @@ -1,5 +1,3 @@ -SRC += analog.c - # Build Options # change yes to no to disable # diff --git a/keyboards/handwired/onekey/keymaps/adc/rules.mk b/keyboards/handwired/onekey/keymaps/adc/rules.mk index a691d5488f..8b36baccb0 100644 --- a/keyboards/handwired/onekey/keymaps/adc/rules.mk +++ b/keyboards/handwired/onekey/keymaps/adc/rules.mk @@ -1,3 +1,3 @@ -SRC += analog.c - CONSOLE_ENABLE = yes + +ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/handwired/onekey/nucleo_f446re/rules.mk b/keyboards/handwired/onekey/nucleo_f446re/rules.mk index 8515c3fae0..e69de29bb2 100644 --- a/keyboards/handwired/onekey/nucleo_f446re/rules.mk +++ b/keyboards/handwired/onekey/nucleo_f446re/rules.mk @@ -1 +0,0 @@ -SRC += analog.c diff --git a/keyboards/handwired/promethium/rules.mk b/keyboards/handwired/promethium/rules.mk index 609c4d0e7e..d6b97ed810 100644 --- a/keyboards/handwired/promethium/rules.mk +++ b/keyboards/handwired/promethium/rules.mk @@ -18,10 +18,11 @@ PS2_ENABLE = yes PS2_DRIVER = interrupt CUSTOM_MATRIX = yes BLUETOOTH_ENABLE = yes + WS2812_DRIVER_REQUIRED = yes +ANALOG_DRIVER_REQUIRED = yes SRC += rgbsps.c -SRC += analog.c SRC += matrix.c LTO_ENABLE = yes diff --git a/keyboards/keebwerk/nano_slider/rules.mk b/keyboards/keebwerk/nano_slider/rules.mk index a7fcafd4b9..d133bb6d6e 100644 --- a/keyboards/keebwerk/nano_slider/rules.mk +++ b/keyboards/keebwerk/nano_slider/rules.mk @@ -13,4 +13,4 @@ MIDI_ENABLE = yes # MIDI support AUDIO_ENABLE = no # Audio output LTO_ENABLE = yes -SRC += analog.c +ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/lime/keymaps/default/rules.mk b/keyboards/lime/keymaps/default/rules.mk index b4572ce79a..dd69af3a2e 100644 --- a/keyboards/lime/keymaps/default/rules.mk +++ b/keyboards/lime/keymaps/default/rules.mk @@ -5,5 +5,3 @@ JOYSTICK_DRIVER = analog EXTRAKEY_ENABLE = yes WPM_ENABLE = yes LTO_ENABLE = yes - -SRC += analog.c diff --git a/keyboards/ploopyco/mouse/rules.mk b/keyboards/ploopyco/mouse/rules.mk index 8d62f78ed7..17df9cc3c9 100644 --- a/keyboards/ploopyco/mouse/rules.mk +++ b/keyboards/ploopyco/mouse/rules.mk @@ -19,5 +19,6 @@ MOUSEKEY_ENABLE = yes # Mouse keys ENCODER_ENABLE := no OPTS_DEF += -DENCODER_ENABLE -QUANTUM_LIB_SRC += analog.c +ANALOG_DRIVER_REQUIRED = yes + SRC += opt_encoder.c diff --git a/keyboards/ploopyco/trackball/rules.mk b/keyboards/ploopyco/trackball/rules.mk index 0f5f3f648f..ce7c4f29c8 100644 --- a/keyboards/ploopyco/trackball/rules.mk +++ b/keyboards/ploopyco/trackball/rules.mk @@ -19,7 +19,8 @@ MOUSEKEY_ENABLE = yes # Mouse keys ENCODER_ENABLE := no OPTS_DEF += -DENCODER_ENABLE -QUANTUM_LIB_SRC += analog.c +ANALOG_DRIVER_REQUIRED = yes + SRC += opt_encoder.c DEFAULT_FOLDER = ploopyco/trackball/rev1_005 diff --git a/keyboards/ploopyco/trackball_mini/rules.mk b/keyboards/ploopyco/trackball_mini/rules.mk index d7016929c9..bcede0676c 100644 --- a/keyboards/ploopyco/trackball_mini/rules.mk +++ b/keyboards/ploopyco/trackball_mini/rules.mk @@ -16,7 +16,8 @@ MOUSEKEY_ENABLE = yes # Mouse keys ENCODER_ENABLE := no OPTS_DEF += -DENCODER_ENABLE -QUANTUM_LIB_SRC += analog.c +ANALOG_DRIVER_REQUIRED = yes + SRC += opt_encoder.c DEFAULT_FOLDER = ploopyco/trackball_mini/rev1_001 diff --git a/keyboards/ploopyco/trackball_thumb/rules.mk b/keyboards/ploopyco/trackball_thumb/rules.mk index 4a16c0abfb..6b82d7734b 100644 --- a/keyboards/ploopyco/trackball_thumb/rules.mk +++ b/keyboards/ploopyco/trackball_thumb/rules.mk @@ -3,7 +3,8 @@ F_CPU = 8000000 POINTING_DEVICE_DRIVER = pmw3360 -QUANTUM_LIB_SRC += analog.c +ANALOG_DRIVER_REQUIRED = yes + SRC += opt_encoder.c DEFAULT_FOLDER = ploopyco/trackball_thumb/rev1_001 diff --git a/keyboards/sekigon/grs_70ec/rules.mk b/keyboards/sekigon/grs_70ec/rules.mk index 00931a551e..4bd93ef25b 100644 --- a/keyboards/sekigon/grs_70ec/rules.mk +++ b/keyboards/sekigon/grs_70ec/rules.mk @@ -13,4 +13,6 @@ AUDIO_ENABLE = no # Audio output CUSTOM_MATRIX = lite SPLIT_KEYBOARD = yes -SRC += analog.c ec_switch_matrix.c matrix.c +ANALOG_DRIVER_REQUIRED = yes + +SRC += ec_switch_matrix.c matrix.c diff --git a/keyboards/splitkb/kyria/keymaps/gotham/rules.mk b/keyboards/splitkb/kyria/keymaps/gotham/rules.mk index eff9494ff1..00b2868c1f 100644 --- a/keyboards/splitkb/kyria/keymaps/gotham/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/gotham/rules.mk @@ -14,9 +14,9 @@ ifeq ($(strip $(OLED_ENABLE)), yes) endif ifeq ($(strip $(THUMBSTICK_ENABLE)), yes) + ANALOG_DRIVER_REQUIRED = yes POINTING_DEVICE_ENABLE = yes POINTING_DEVICE_DRIVER = custom OPT_DEFS += -DTHUMBSTICK_ENABLE - SRC += analog.c SRC += thumbstick.c endif diff --git a/keyboards/tzarc/ghoul/rules.mk b/keyboards/tzarc/ghoul/rules.mk index 5efa406e26..4bf96d9824 100644 --- a/keyboards/tzarc/ghoul/rules.mk +++ b/keyboards/tzarc/ghoul/rules.mk @@ -3,4 +3,4 @@ QUANTUM_PAINTER_DRIVERS = ssd1351_spi DEFAULT_FOLDER = tzarc/ghoul/rev1/stm32 -SRC += analog.c +ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/ungodly/launch_pad/rules.mk b/keyboards/ungodly/launch_pad/rules.mk index 9354144466..31fabc928c 100644 --- a/keyboards/ungodly/launch_pad/rules.mk +++ b/keyboards/ungodly/launch_pad/rules.mk @@ -19,4 +19,4 @@ MAGIC_ENABLE = no GRAVE_ESC_ENABLE = no LTO_ENABLE = yes -SRC += analog.c +ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/v4n4g0rth0n/v2/rules.mk b/keyboards/v4n4g0rth0n/v2/rules.mk index b63f456708..0114504486 100644 --- a/keyboards/v4n4g0rth0n/v2/rules.mk +++ b/keyboards/v4n4g0rth0n/v2/rules.mk @@ -11,5 +11,4 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -SRC += analog.c - +ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/viktus/minne_topre/rules.mk b/keyboards/viktus/minne_topre/rules.mk index 037e26c530..b86fee73da 100644 --- a/keyboards/viktus/minne_topre/rules.mk +++ b/keyboards/viktus/minne_topre/rules.mk @@ -1,3 +1,4 @@ CUSTOM_MATRIX = lite -QUANTUM_LIB_SRC += analog.c SRC += ec.c + +ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/viktus/osav2_numpad_topre/rules.mk b/keyboards/viktus/osav2_numpad_topre/rules.mk index 037e26c530..b86fee73da 100644 --- a/keyboards/viktus/osav2_numpad_topre/rules.mk +++ b/keyboards/viktus/osav2_numpad_topre/rules.mk @@ -1,3 +1,4 @@ CUSTOM_MATRIX = lite -QUANTUM_LIB_SRC += analog.c SRC += ec.c + +ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/viktus/osav2_topre/rules.mk b/keyboards/viktus/osav2_topre/rules.mk index 037e26c530..b86fee73da 100644 --- a/keyboards/viktus/osav2_topre/rules.mk +++ b/keyboards/viktus/osav2_topre/rules.mk @@ -1,3 +1,4 @@ CUSTOM_MATRIX = lite -QUANTUM_LIB_SRC += analog.c SRC += ec.c + +ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/viktus/styrka_topre/rules.mk b/keyboards/viktus/styrka_topre/rules.mk index 037e26c530..b86fee73da 100644 --- a/keyboards/viktus/styrka_topre/rules.mk +++ b/keyboards/viktus/styrka_topre/rules.mk @@ -1,3 +1,4 @@ CUSTOM_MATRIX = lite -QUANTUM_LIB_SRC += analog.c SRC += ec.c + +ANALOG_DRIVER_REQUIRED = yes From 56b6b28fe9429224bda9bff74e2e8f587d77e121 Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Mon, 13 Nov 2023 02:02:46 +0000 Subject: [PATCH 379/496] add `68_ansi` Community Layout to nebula68b (#22433) --- keyboards/spaceholdings/nebula68b/info.json | 81 +++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/keyboards/spaceholdings/nebula68b/info.json b/keyboards/spaceholdings/nebula68b/info.json index 8523662976..c82e52299d 100755 --- a/keyboards/spaceholdings/nebula68b/info.json +++ b/keyboards/spaceholdings/nebula68b/info.json @@ -21,7 +21,88 @@ "diode_direction": "COL2ROW", "processor": "atmega32u4", "bootloader": "atmel-dfu", + "community_layouts": ["68_ansi"], "layouts": { + "LAYOUT_68_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [2, 14], "x": 16.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [1, 14], "x": 15.25, "y": 1}, + {"matrix": [3, 14], "x": 16.25, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [3, 13], "x": 15.25, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, + + {"matrix": [4, 12], "x": 14.25, "y": 4}, + {"matrix": [4, 13], "x": 15.25, "y": 4}, + {"matrix": [4, 14], "x": 16.25, "y": 4} + ] + }, "LAYOUT_68_ansi_split_bs": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, From 50844a8e67c37329d5a08f1f35cd57bb7c7a8c24 Mon Sep 17 00:00:00 2001 From: precondition <57645186+precondition@users.noreply.github.com> Date: Mon, 13 Nov 2023 21:55:45 +0100 Subject: [PATCH 380/496] =?UTF-8?q?Fix=20typos:=20key-modifer=E2=86=92key-?= =?UTF-8?q?modifier=20and=20interacton=E2=86=92interaction=20(#22464)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/feature_key_overrides.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/feature_key_overrides.md b/docs/feature_key_overrides.md index ec7efd4c01..59eced95c3 100644 --- a/docs/feature_key_overrides.md +++ b/docs/feature_key_overrides.md @@ -21,7 +21,7 @@ Then, in your `keymap.c` file, you'll need to define the array `key_overrides`, The `key_override_t` struct has many options that allow you to precisely tune your overrides. The full reference is shown below. Instead of manually creating a `key_override_t` value, it is recommended to use these dedicated initializers: #### `ko_make_basic(modifiers, key, replacement)` -Returns a `key_override_t`, which sends `replacement` (can be a key-modifer combination), when `key` and `modifiers` are all pressed down. This override still activates if any additional modifiers not specified in `modifiers` are also pressed down. See `ko_make_with_layers_and_negmods` to customize this behavior. +Returns a `key_override_t`, which sends `replacement` (can be a key-modifier combination), when `key` and `modifiers` are all pressed down. This override still activates if any additional modifiers not specified in `modifiers` are also pressed down. See `ko_make_with_layers_and_negmods` to customize this behavior. #### `ko_make_with_layers(modifiers, key, replacement, layers)` Additionally takes a bitmask `layers` that defines on which layers the override is used. @@ -224,7 +224,7 @@ The duration of the key repeat delay is controlled with the `KEY_OVERRIDE_REPEAT ## Difference to Combos :id=difference-to-combos -Note that key overrides are very different from [combos](https://docs.qmk.fm/#/feature_combo). Combos require that you press down several keys almost _at the same time_ and can work with any combination of non-modifier keys. Key overrides work like keyboard shortcuts (e.g. `ctrl` + `z`): They take combinations of _multiple_ modifiers and _one_ non-modifier key to then perform some custom action. Key overrides are implemented with much care to behave just like normal keyboard shortcuts would in regards to the order of pressed keys, timing, and interacton with other pressed keys. There are a number of optional settings that can be used to really fine-tune the behavior of each key override as well. Using key overrides also does not delay key input for regular key presses, which inherently happens in combos and may be undesirable. +Note that key overrides are very different from [combos](https://docs.qmk.fm/#/feature_combo). Combos require that you press down several keys almost _at the same time_ and can work with any combination of non-modifier keys. Key overrides work like keyboard shortcuts (e.g. `ctrl` + `z`): They take combinations of _multiple_ modifiers and _one_ non-modifier key to then perform some custom action. Key overrides are implemented with much care to behave just like normal keyboard shortcuts would in regards to the order of pressed keys, timing, and interaction with other pressed keys. There are a number of optional settings that can be used to really fine-tune the behavior of each key override as well. Using key overrides also does not delay key input for regular key presses, which inherently happens in combos and may be undesirable. ## Solution to the problem of flashing modifiers :id=neutralize-flashing-modifiers From de3c42125b661f62757f8ee4f6184c089340d3a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= Date: Mon, 13 Nov 2023 23:29:12 +0100 Subject: [PATCH 381/496] chibios: disable RWX segment warning on newer GNU lds (#22007) --- builddefs/common_rules.mk | 11 ++++++++--- platforms/avr/platform.mk | 4 +--- platforms/chibios/platform.mk | 3 +++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/builddefs/common_rules.mk b/builddefs/common_rules.mk index 52dccbe475..ddd36409a7 100644 --- a/builddefs/common_rules.mk +++ b/builddefs/common_rules.mk @@ -15,6 +15,13 @@ VPATH := # Helper to return the distinct elements of a list uniq = $(if $1,$(firstword $1) $(call uniq,$(filter-out $(firstword $1),$1))) +cc-option = $(shell \ + if $(CC) $(1) -shared -o /dev/null -xc /dev/null > /dev/null 2>&1; \ + then echo "$(1)"; else echo "$(2)"; fi) + +# helper to pass comma character to make functions +, := , + # Convert all SRC to OBJ define OBJ_FROM_SRC $(patsubst %.c,$1/%.o,$(patsubst %.cpp,$1/%.o,$(patsubst %.cc,$1/%.o,$(patsubst %.S,$1/%.o,$(patsubst %.clib,$1/%.a,$($1_SRC)))))) @@ -66,9 +73,7 @@ CFLAGS += $(CDEFS) CFLAGS += -O$(OPT) # add color ifeq ($(COLOR),true) -ifeq ("$(shell echo "int main(){}" | $(CC) -fdiagnostics-color -x c - -o /dev/null 2>&1)", "") - CFLAGS+= -fdiagnostics-color -endif + CFLAGS+= $(call cc-option, -fdiagnostics-color) endif CFLAGS += -Wall CFLAGS += -Wstrict-prototypes diff --git a/platforms/avr/platform.mk b/platforms/avr/platform.mk index aef449cadf..8f8e01523f 100644 --- a/platforms/avr/platform.mk +++ b/platforms/avr/platform.mk @@ -12,9 +12,7 @@ HEX = $(OBJCOPY) -O $(FORMAT) -R .eeprom -R .fuse -R .lock -R .signature EEP = $(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O $(FORMAT) BIN = -ifeq ("$(shell echo "int main(){}" | $(CC) --param=min-pagesize=0 -x c - -o /dev/null 2>&1)", "") -COMPILEFLAGS += --param=min-pagesize=0 -endif +COMPILEFLAGS += $(call cc-option, --param=min-pagesize=0) COMPILEFLAGS += -funsigned-char COMPILEFLAGS += -funsigned-bitfields diff --git a/platforms/chibios/platform.mk b/platforms/chibios/platform.mk index 081b001e6d..6c38aa16a7 100644 --- a/platforms/chibios/platform.mk +++ b/platforms/chibios/platform.mk @@ -476,6 +476,9 @@ HEX = $(OBJCOPY) -O $(FORMAT) EEP = BIN = $(OBJCOPY) -O binary +# disable warning about RWX triggered by ChibiOS linker scripts +SHARED_LDFLAGS += $(call cc-option, -Wl$(,)--no-warn-rwx-segments) + ############################################################################## # Make targets # From 1efc79063c5bc5fae6766f7555738b122ef8988d Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 13 Nov 2023 22:30:19 +0000 Subject: [PATCH 382/496] Migrate some EEPROM config to info.json (#22434) --- keyboards/acheron/themis/87h/config.h | 3 --- keyboards/acheron/themis/87h/info.json | 5 +++++ keyboards/acheron/themis/87htsc/config.h | 3 --- keyboards/acheron/themis/87htsc/info.json | 5 +++++ keyboards/acheron/themis/88htsc/config.h | 3 --- keyboards/acheron/themis/88htsc/info.json | 5 +++++ keyboards/akko/5087/config.h | 1 - keyboards/akko/5087/info.json | 7 +++++++ keyboards/akko/5087/rules.mk | 4 +--- keyboards/darkproject/kd87a_bfg_edition/config.h | 1 - keyboards/darkproject/kd87a_bfg_edition/info.json | 10 +++++++--- keyboards/darkproject/kd87a_bfg_edition/rules.mk | 2 +- keyboards/inland/v83p/config.h | 1 - keyboards/inland/v83p/info.json | 7 +++++++ keyboards/inland/v83p/rules.mk | 3 +-- keyboards/jukaie/jk01/config.h | 1 - keyboards/jukaie/jk01/info.json | 10 +++++++--- keyboards/jukaie/jk01/rules.mk | 2 +- keyboards/monsgeek/m3/config.h | 1 - keyboards/monsgeek/m3/info.json | 7 +++++++ keyboards/monsgeek/m3/rules.mk | 3 +-- keyboards/phentech/rpk_001/config.h | 1 - keyboards/phentech/rpk_001/info.json | 7 +++++++ keyboards/phentech/rpk_001/rules.mk | 2 +- keyboards/projectd/75/ansi/config.h | 1 - keyboards/projectd/75/ansi/info.json | 10 +++++++--- keyboards/projectd/75/ansi/rules.mk | 2 +- keyboards/vinhcatba/uncertainty/info.json | 3 +++ keyboards/vinhcatba/uncertainty/rules.mk | 2 -- 29 files changed, 74 insertions(+), 38 deletions(-) diff --git a/keyboards/acheron/themis/87h/config.h b/keyboards/acheron/themis/87h/config.h index 8a1ff48583..605594eea2 100644 --- a/keyboards/acheron/themis/87h/config.h +++ b/keyboards/acheron/themis/87h/config.h @@ -28,6 +28,3 @@ along with this program. If not, see . #define WS2812_PWM_PAL_MODE 1 #define WS2812_DMA_STREAM STM32_DMA2_STREAM5 #define WS2812_DMA_CHANNEL 6 - -#define WEAR_LEVELING_LOGICAL_SIZE 4096 -#define WEAR_LEVELING_BACKING_SIZE 8192 diff --git a/keyboards/acheron/themis/87h/info.json b/keyboards/acheron/themis/87h/info.json index ed5d48690d..cbff8f4eec 100644 --- a/keyboards/acheron/themis/87h/info.json +++ b/keyboards/acheron/themis/87h/info.json @@ -21,6 +21,11 @@ "nkro": true }, "diode_direction": "COL2ROW", + "eeprom": { + "wear_leveling": { + "backing_size": 8192 + } + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/acheron/themis/87htsc/config.h b/keyboards/acheron/themis/87htsc/config.h index 8a1ff48583..605594eea2 100644 --- a/keyboards/acheron/themis/87htsc/config.h +++ b/keyboards/acheron/themis/87htsc/config.h @@ -28,6 +28,3 @@ along with this program. If not, see . #define WS2812_PWM_PAL_MODE 1 #define WS2812_DMA_STREAM STM32_DMA2_STREAM5 #define WS2812_DMA_CHANNEL 6 - -#define WEAR_LEVELING_LOGICAL_SIZE 4096 -#define WEAR_LEVELING_BACKING_SIZE 8192 diff --git a/keyboards/acheron/themis/87htsc/info.json b/keyboards/acheron/themis/87htsc/info.json index 854ad5a7d5..5b491690bb 100644 --- a/keyboards/acheron/themis/87htsc/info.json +++ b/keyboards/acheron/themis/87htsc/info.json @@ -21,6 +21,11 @@ "nkro": true }, "diode_direction": "COL2ROW", + "eeprom": { + "wear_leveling": { + "backing_size": 8192 + } + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/acheron/themis/88htsc/config.h b/keyboards/acheron/themis/88htsc/config.h index 8a1ff48583..605594eea2 100644 --- a/keyboards/acheron/themis/88htsc/config.h +++ b/keyboards/acheron/themis/88htsc/config.h @@ -28,6 +28,3 @@ along with this program. If not, see . #define WS2812_PWM_PAL_MODE 1 #define WS2812_DMA_STREAM STM32_DMA2_STREAM5 #define WS2812_DMA_CHANNEL 6 - -#define WEAR_LEVELING_LOGICAL_SIZE 4096 -#define WEAR_LEVELING_BACKING_SIZE 8192 diff --git a/keyboards/acheron/themis/88htsc/info.json b/keyboards/acheron/themis/88htsc/info.json index cfce0702eb..073a16e946 100644 --- a/keyboards/acheron/themis/88htsc/info.json +++ b/keyboards/acheron/themis/88htsc/info.json @@ -21,6 +21,11 @@ "nkro": true }, "diode_direction": "COL2ROW", + "eeprom": { + "wear_leveling": { + "backing_size": 8192 + } + }, "ws2812": { "pin": "B15" }, diff --git a/keyboards/akko/5087/config.h b/keyboards/akko/5087/config.h index 50a1f224f8..3a6b7030ee 100644 --- a/keyboards/akko/5087/config.h +++ b/keyboards/akko/5087/config.h @@ -34,7 +34,6 @@ #define SPI_MOSI_PAL_MODE 5 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 -#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) /* I2C Config for LED Driver */ #define DRIVER_COUNT 2 diff --git a/keyboards/akko/5087/info.json b/keyboards/akko/5087/info.json index 43bec927db..1b4059b0d5 100644 --- a/keyboards/akko/5087/info.json +++ b/keyboards/akko/5087/info.json @@ -29,6 +29,13 @@ "rows": ["B15", "C6", "C7", "C8", "C9", "A8"] }, "diode_direction": "ROW2COL", + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash", + "backing_size": 8192 + } + }, "indicators": { "caps_lock": "A15" }, diff --git a/keyboards/akko/5087/rules.mk b/keyboards/akko/5087/rules.mk index 0dc7a33142..6e7633bfe0 100644 --- a/keyboards/akko/5087/rules.mk +++ b/keyboards/akko/5087/rules.mk @@ -1,3 +1 @@ -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = spi_flash - +# This file intentionally left blank diff --git a/keyboards/darkproject/kd87a_bfg_edition/config.h b/keyboards/darkproject/kd87a_bfg_edition/config.h index 335648df9a..a7498186b4 100644 --- a/keyboards/darkproject/kd87a_bfg_edition/config.h +++ b/keyboards/darkproject/kd87a_bfg_edition/config.h @@ -25,7 +25,6 @@ /* External spi flash */ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B14 -#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ diff --git a/keyboards/darkproject/kd87a_bfg_edition/info.json b/keyboards/darkproject/kd87a_bfg_edition/info.json index 1cf428a97f..94717c6baa 100644 --- a/keyboards/darkproject/kd87a_bfg_edition/info.json +++ b/keyboards/darkproject/kd87a_bfg_edition/info.json @@ -7,6 +7,13 @@ "matrix": [1, 3] }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash", + "backing_size": 8192 + } + }, "features": { "bootmagic": true, "extrakey": true, @@ -174,9 +181,6 @@ "pid": "0xE393", "vid": "0x342D" }, - "eeprom": { - "driver": "wear_leveling" - }, "community_layouts": ["tkl_ansi"], "layouts": { "LAYOUT_tkl_ansi": { diff --git a/keyboards/darkproject/kd87a_bfg_edition/rules.mk b/keyboards/darkproject/kd87a_bfg_edition/rules.mk index 002458405e..6e7633bfe0 100644 --- a/keyboards/darkproject/kd87a_bfg_edition/rules.mk +++ b/keyboards/darkproject/kd87a_bfg_edition/rules.mk @@ -1 +1 @@ -WEAR_LEVELING_DRIVER = spi_flash +# This file intentionally left blank diff --git a/keyboards/inland/v83p/config.h b/keyboards/inland/v83p/config.h index 1cd93e2033..1553c3e632 100644 --- a/keyboards/inland/v83p/config.h +++ b/keyboards/inland/v83p/config.h @@ -29,7 +29,6 @@ #define SPI_MOSI_PAL_MODE 5 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 -#define WEAR_LEVELING_BACKING_SIZE (4 * 1024) #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/inland/v83p/info.json b/keyboards/inland/v83p/info.json index f738af3ef7..900937570f 100644 --- a/keyboards/inland/v83p/info.json +++ b/keyboards/inland/v83p/info.json @@ -12,6 +12,13 @@ "suspend_wakeup_delay": 1000 }, "diode_direction": "ROW2COL", + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash", + "backing_size": 4096 + } + }, "features": { "bootmagic": true, "command": false, diff --git a/keyboards/inland/v83p/rules.mk b/keyboards/inland/v83p/rules.mk index 24d5f6f52e..6e7633bfe0 100644 --- a/keyboards/inland/v83p/rules.mk +++ b/keyboards/inland/v83p/rules.mk @@ -1,2 +1 @@ -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = spi_flash +# This file intentionally left blank diff --git a/keyboards/jukaie/jk01/config.h b/keyboards/jukaie/jk01/config.h index 8a7ea71db4..e83415f5ba 100644 --- a/keyboards/jukaie/jk01/config.h +++ b/keyboards/jukaie/jk01/config.h @@ -25,7 +25,6 @@ /* External spi flash */ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B14 -#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ diff --git a/keyboards/jukaie/jk01/info.json b/keyboards/jukaie/jk01/info.json index 87c787158c..c53a59a5a3 100644 --- a/keyboards/jukaie/jk01/info.json +++ b/keyboards/jukaie/jk01/info.json @@ -7,6 +7,13 @@ "matrix": [1, 3] }, "diode_direction": "COL2ROW", + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash", + "backing_size": 8192 + } + }, "encoder": { "rotary": [ {"pin_a": "C2", "pin_b": "C3"} @@ -175,9 +182,6 @@ "pid": "0x0002", "vid": "0x4141" }, - "eeprom": { - "driver": "wear_leveling" - }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/jukaie/jk01/rules.mk b/keyboards/jukaie/jk01/rules.mk index 002458405e..6e7633bfe0 100644 --- a/keyboards/jukaie/jk01/rules.mk +++ b/keyboards/jukaie/jk01/rules.mk @@ -1 +1 @@ -WEAR_LEVELING_DRIVER = spi_flash +# This file intentionally left blank diff --git a/keyboards/monsgeek/m3/config.h b/keyboards/monsgeek/m3/config.h index 93ffa1f07c..41c9ea3cea 100644 --- a/keyboards/monsgeek/m3/config.h +++ b/keyboards/monsgeek/m3/config.h @@ -33,7 +33,6 @@ #define SPI_MOSI_PAL_MODE 5 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 -#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) /* I2C Config for LED Driver */ #define SNLED27351_DRIVER_COUNT 2 diff --git a/keyboards/monsgeek/m3/info.json b/keyboards/monsgeek/m3/info.json index a93b0d47dc..df99a6a22c 100644 --- a/keyboards/monsgeek/m3/info.json +++ b/keyboards/monsgeek/m3/info.json @@ -11,6 +11,13 @@ }, "processor": "WB32FQ95", "bootloader": "wb32-dfu", + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash", + "backing_size": 8192 + } + }, "features": { "bootmagic": true, "extrakey": true, diff --git a/keyboards/monsgeek/m3/rules.mk b/keyboards/monsgeek/m3/rules.mk index 24d5f6f52e..6e7633bfe0 100644 --- a/keyboards/monsgeek/m3/rules.mk +++ b/keyboards/monsgeek/m3/rules.mk @@ -1,2 +1 @@ -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = spi_flash +# This file intentionally left blank diff --git a/keyboards/phentech/rpk_001/config.h b/keyboards/phentech/rpk_001/config.h index 05391a21ed..f513dd2684 100644 --- a/keyboards/phentech/rpk_001/config.h +++ b/keyboards/phentech/rpk_001/config.h @@ -17,7 +17,6 @@ /* SPI Flash */ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 -#define WEAR_LEVELING_BACKING_SIZE (4 * 1024) /* RGB Matrix */ #define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/phentech/rpk_001/info.json b/keyboards/phentech/rpk_001/info.json index 3d89d012ee..d047c36456 100644 --- a/keyboards/phentech/rpk_001/info.json +++ b/keyboards/phentech/rpk_001/info.json @@ -13,6 +13,13 @@ "suspend_wakeup_delay": 1000 }, "diode_direction": "ROW2COL", + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash", + "backing_size": 4096 + } + }, "features": { "nkro": true, "encoder": true, diff --git a/keyboards/phentech/rpk_001/rules.mk b/keyboards/phentech/rpk_001/rules.mk index 002458405e..6e7633bfe0 100644 --- a/keyboards/phentech/rpk_001/rules.mk +++ b/keyboards/phentech/rpk_001/rules.mk @@ -1 +1 @@ -WEAR_LEVELING_DRIVER = spi_flash +# This file intentionally left blank diff --git a/keyboards/projectd/75/ansi/config.h b/keyboards/projectd/75/ansi/config.h index 5fcad72e71..c27da26a6f 100644 --- a/keyboards/projectd/75/ansi/config.h +++ b/keyboards/projectd/75/ansi/config.h @@ -25,7 +25,6 @@ /* External spi flash */ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B14 -#define WEAR_LEVELING_BACKING_SIZE (4 * 1024) /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ diff --git a/keyboards/projectd/75/ansi/info.json b/keyboards/projectd/75/ansi/info.json index daf94202e0..0e137de614 100644 --- a/keyboards/projectd/75/ansi/info.json +++ b/keyboards/projectd/75/ansi/info.json @@ -6,6 +6,13 @@ "bootmagic": { "matrix": [1, 3] }, + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash", + "backing_size": 4096 + } + }, "diode_direction": "COL2ROW", "dynamic_keymap": { "layer_count": 10 @@ -176,9 +183,6 @@ "pid": "0x000F", "vid": "0x3233" }, - "eeprom": { - "driver": "wear_leveling" - }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/projectd/75/ansi/rules.mk b/keyboards/projectd/75/ansi/rules.mk index 002458405e..6e7633bfe0 100644 --- a/keyboards/projectd/75/ansi/rules.mk +++ b/keyboards/projectd/75/ansi/rules.mk @@ -1 +1 @@ -WEAR_LEVELING_DRIVER = spi_flash +# This file intentionally left blank diff --git a/keyboards/vinhcatba/uncertainty/info.json b/keyboards/vinhcatba/uncertainty/info.json index fc0e69ad19..5f35a144d8 100644 --- a/keyboards/vinhcatba/uncertainty/info.json +++ b/keyboards/vinhcatba/uncertainty/info.json @@ -4,6 +4,9 @@ "maintainer": "vinhcatba", "development_board": "blackpill_f401", "diode_direction": "COL2ROW", + "eeprom": { + "driver": "i2c" + }, "encoder": { "rotary": [ {"pin_a": "A13", "pin_b": "A14"} diff --git a/keyboards/vinhcatba/uncertainty/rules.mk b/keyboards/vinhcatba/uncertainty/rules.mk index 6255f65294..fd83e26c34 100644 --- a/keyboards/vinhcatba/uncertainty/rules.mk +++ b/keyboards/vinhcatba/uncertainty/rules.mk @@ -1,3 +1 @@ SRC += bongo.c -# using external i2c eeprom -EEPROM_DRIVER = i2c From 4c625d8286daba3540ce421cbb8100fac8d9e2c8 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Tue, 14 Nov 2023 09:41:12 +1100 Subject: [PATCH 383/496] Revert "chibios: disable RWX segment warning on newer GNU lds (#22007)" (#22469) This reverts commit de3c42125b661f62757f8ee4f6184c089340d3a0. --- builddefs/common_rules.mk | 11 +++-------- platforms/avr/platform.mk | 4 +++- platforms/chibios/platform.mk | 3 --- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/builddefs/common_rules.mk b/builddefs/common_rules.mk index ddd36409a7..52dccbe475 100644 --- a/builddefs/common_rules.mk +++ b/builddefs/common_rules.mk @@ -15,13 +15,6 @@ VPATH := # Helper to return the distinct elements of a list uniq = $(if $1,$(firstword $1) $(call uniq,$(filter-out $(firstword $1),$1))) -cc-option = $(shell \ - if $(CC) $(1) -shared -o /dev/null -xc /dev/null > /dev/null 2>&1; \ - then echo "$(1)"; else echo "$(2)"; fi) - -# helper to pass comma character to make functions -, := , - # Convert all SRC to OBJ define OBJ_FROM_SRC $(patsubst %.c,$1/%.o,$(patsubst %.cpp,$1/%.o,$(patsubst %.cc,$1/%.o,$(patsubst %.S,$1/%.o,$(patsubst %.clib,$1/%.a,$($1_SRC)))))) @@ -73,7 +66,9 @@ CFLAGS += $(CDEFS) CFLAGS += -O$(OPT) # add color ifeq ($(COLOR),true) - CFLAGS+= $(call cc-option, -fdiagnostics-color) +ifeq ("$(shell echo "int main(){}" | $(CC) -fdiagnostics-color -x c - -o /dev/null 2>&1)", "") + CFLAGS+= -fdiagnostics-color +endif endif CFLAGS += -Wall CFLAGS += -Wstrict-prototypes diff --git a/platforms/avr/platform.mk b/platforms/avr/platform.mk index 8f8e01523f..aef449cadf 100644 --- a/platforms/avr/platform.mk +++ b/platforms/avr/platform.mk @@ -12,7 +12,9 @@ HEX = $(OBJCOPY) -O $(FORMAT) -R .eeprom -R .fuse -R .lock -R .signature EEP = $(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O $(FORMAT) BIN = -COMPILEFLAGS += $(call cc-option, --param=min-pagesize=0) +ifeq ("$(shell echo "int main(){}" | $(CC) --param=min-pagesize=0 -x c - -o /dev/null 2>&1)", "") +COMPILEFLAGS += --param=min-pagesize=0 +endif COMPILEFLAGS += -funsigned-char COMPILEFLAGS += -funsigned-bitfields diff --git a/platforms/chibios/platform.mk b/platforms/chibios/platform.mk index 6c38aa16a7..081b001e6d 100644 --- a/platforms/chibios/platform.mk +++ b/platforms/chibios/platform.mk @@ -476,9 +476,6 @@ HEX = $(OBJCOPY) -O $(FORMAT) EEP = BIN = $(OBJCOPY) -O binary -# disable warning about RWX triggered by ChibiOS linker scripts -SHARED_LDFLAGS += $(call cc-option, -Wl$(,)--no-warn-rwx-segments) - ############################################################################## # Make targets # From 02d3b233ab4405e86b57bdb39f03981196c1c09b Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 13 Nov 2023 23:45:40 +0000 Subject: [PATCH 384/496] chibios: disable RWX segment warning on newer GNU lds (#22471) --- platforms/chibios/platform.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/platforms/chibios/platform.mk b/platforms/chibios/platform.mk index 081b001e6d..e42ecebdc5 100644 --- a/platforms/chibios/platform.mk +++ b/platforms/chibios/platform.mk @@ -476,6 +476,11 @@ HEX = $(OBJCOPY) -O $(FORMAT) EEP = BIN = $(OBJCOPY) -O binary +# disable warning about RWX triggered by ChibiOS linker scripts +ifeq ("$(shell echo "int main(){}" | $(CC) -shared -Wl,--no-warn-rwx-segments -x c - -o /dev/null 2>&1)", "") + SHARED_LDFLAGS += -Wl,--no-warn-rwx-segments +endif + ############################################################################## # Make targets # From 44062b50560d7a1c44eec0ee09f4441f06591b65 Mon Sep 17 00:00:00 2001 From: cole smith <38364556+daysgobye@users.noreply.github.com> Date: Mon, 13 Nov 2023 17:49:15 -0800 Subject: [PATCH 385/496] Bs equals (#21690) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: jack <0x6A73@pm.me> --- keyboards/boardsource/equals/48/config.h | 23 ++ keyboards/boardsource/equals/48/halconf.h | 9 + keyboards/boardsource/equals/48/info.json | 180 ++++++++++++++++ .../equals/48/keymaps/default/keymap.c | 33 +++ .../equals/48/keymaps/via/keymap.c | 34 +++ .../equals/48/keymaps/via/rules.mk | 1 + keyboards/boardsource/equals/48/mcuconf.h | 11 + keyboards/boardsource/equals/48/rules.mk | 3 + keyboards/boardsource/equals/60/config.h | 23 ++ keyboards/boardsource/equals/60/halconf.h | 9 + keyboards/boardsource/equals/60/info.json | 203 ++++++++++++++++++ .../equals/60/keymaps/default/keymap.c | 36 ++++ .../equals/60/keymaps/via/keymap.c | 36 ++++ .../equals/60/keymaps/via/rules.mk | 1 + keyboards/boardsource/equals/60/mcuconf.h | 11 + keyboards/boardsource/equals/60/rules.mk | 3 + keyboards/boardsource/equals/avr/config.h | 4 + keyboards/boardsource/equals/avr/info.json | 202 +++++++++++++++++ .../equals/avr/keymaps/default/keymap.c | 36 ++++ .../equals/avr/keymaps/via/keymap.c | 36 ++++ .../equals/avr/keymaps/via/rules.mk | 1 + keyboards/boardsource/equals/equals.c | 18 ++ .../equals/graphics/thintel15.qff.c | 69 ++++++ keyboards/boardsource/equals/info.json | 21 ++ keyboards/boardsource/equals/readme.md | 33 +++ keyboards/boardsource/equals/ui.c | 40 ++++ 26 files changed, 1076 insertions(+) create mode 100644 keyboards/boardsource/equals/48/config.h create mode 100644 keyboards/boardsource/equals/48/halconf.h create mode 100644 keyboards/boardsource/equals/48/info.json create mode 100644 keyboards/boardsource/equals/48/keymaps/default/keymap.c create mode 100644 keyboards/boardsource/equals/48/keymaps/via/keymap.c create mode 100644 keyboards/boardsource/equals/48/keymaps/via/rules.mk create mode 100644 keyboards/boardsource/equals/48/mcuconf.h create mode 100644 keyboards/boardsource/equals/48/rules.mk create mode 100644 keyboards/boardsource/equals/60/config.h create mode 100644 keyboards/boardsource/equals/60/halconf.h create mode 100644 keyboards/boardsource/equals/60/info.json create mode 100644 keyboards/boardsource/equals/60/keymaps/default/keymap.c create mode 100644 keyboards/boardsource/equals/60/keymaps/via/keymap.c create mode 100644 keyboards/boardsource/equals/60/keymaps/via/rules.mk create mode 100644 keyboards/boardsource/equals/60/mcuconf.h create mode 100644 keyboards/boardsource/equals/60/rules.mk create mode 100644 keyboards/boardsource/equals/avr/config.h create mode 100644 keyboards/boardsource/equals/avr/info.json create mode 100644 keyboards/boardsource/equals/avr/keymaps/default/keymap.c create mode 100644 keyboards/boardsource/equals/avr/keymaps/via/keymap.c create mode 100644 keyboards/boardsource/equals/avr/keymaps/via/rules.mk create mode 100644 keyboards/boardsource/equals/equals.c create mode 100644 keyboards/boardsource/equals/graphics/thintel15.qff.c create mode 100644 keyboards/boardsource/equals/info.json create mode 100644 keyboards/boardsource/equals/readme.md create mode 100644 keyboards/boardsource/equals/ui.c diff --git a/keyboards/boardsource/equals/48/config.h b/keyboards/boardsource/equals/48/config.h new file mode 100644 index 0000000000..952fa269c6 --- /dev/null +++ b/keyboards/boardsource/equals/48/config.h @@ -0,0 +1,23 @@ +// Copyright 2023 Cole Smith (@boardsource) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U + +#define RGB_MATRIX_LED_COUNT 58 + +#define AUDIO_PIN GP29 +#define AUDIO_PWM_DRIVER PWMD6 +#define AUDIO_PWM_CHANNEL RP2040_PWM_CHANNEL_B + +#define AUDIO_INIT_DELAY + +// SPI Configuration +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN GP26 +#define SPI_MOSI_PIN GP27 + +// Display Configuration +#define OLED_CS_PIN GP25 +#define OLED_DC_PIN GP20 +#define OLED_RST_PIN GP28 diff --git a/keyboards/boardsource/equals/48/halconf.h b/keyboards/boardsource/equals/48/halconf.h new file mode 100644 index 0000000000..ec1c061eec --- /dev/null +++ b/keyboards/boardsource/equals/48/halconf.h @@ -0,0 +1,9 @@ +// Copyright 2023 Cole Smith (@boardsource) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define HAL_USE_I2C TRUE +#define HAL_USE_PWM TRUE +#define HAL_USE_SPI TRUE + +#include_next diff --git a/keyboards/boardsource/equals/48/info.json b/keyboards/boardsource/equals/48/info.json new file mode 100644 index 0000000000..63561f4c59 --- /dev/null +++ b/keyboards/boardsource/equals/48/info.json @@ -0,0 +1,180 @@ +{ + "keyboard_name": "Equals 48", + "bootloader": "rp2040", + "processor": "RP2040", + "features": { + "audio":true + }, + "matrix_pins": { + "cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP10", "GP11"], + "rows": ["GP12", "GP13", "GP16", "GP17"] + }, + "ws2812": { + "driver": "vendor", + "pin": "GP21" + }, + "rgb_matrix": { + "driver": "ws2812", + "max_brightness": 150, + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "layout": [ + { "flags": 2, "x": 220, "y": 17 }, + { "flags": 2, "x": 172, "y": 17 }, + { "flags": 2, "x": 112, "y": 17 }, + { "flags": 2, "x": 50, "y": 17 }, + { "flags": 2, "x": 4, "y": 17 }, + { "flags": 2, "x": 4, "y": 56 }, + { "flags": 2, "x": 50, "y": 56 }, + { "flags": 2, "x": 112, "y": 56 }, + { "flags": 2, "x": 172, "y": 56 }, + { "flags": 2, "x": 220, "y": 56 }, + { "flags": 1, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 20, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 40, "y": 0 }, + { "flags": 4, "matrix": [0, 3], "x": 61, "y": 0 }, + { "flags": 4, "matrix": [0, 4], "x": 81, "y": 0 }, + { "flags": 4, "matrix": [0, 5], "x": 101, "y": 0 }, + { "flags": 4, "matrix": [0, 6], "x": 122, "y": 0 }, + { "flags": 4, "matrix": [0, 7], "x": 142, "y": 0 }, + { "flags": 4, "matrix": [0, 8], "x": 162, "y": 0 }, + { "flags": 4, "matrix": [0, 9], "x": 183, "y": 0 }, + { "flags": 4, "matrix": [0, 10], "x": 203, "y": 0 }, + { "flags": 1, "matrix": [0, 11], "x": 224, "y": 0 }, + { "flags": 1, "matrix": [1, 0], "x": 0, "y": 21 }, + { "flags": 4, "matrix": [1, 1], "x": 20, "y": 21 }, + { "flags": 4, "matrix": [1, 2], "x": 40, "y": 21 }, + { "flags": 4, "matrix": [1, 3], "x": 61, "y": 21 }, + { "flags": 4, "matrix": [1, 4], "x": 81, "y": 21 }, + { "flags": 4, "matrix": [1, 5], "x": 101, "y": 21 }, + { "flags": 4, "matrix": [1, 6], "x": 122, "y": 21 }, + { "flags": 4, "matrix": [1, 7], "x": 142, "y": 21 }, + { "flags": 4, "matrix": [1, 8], "x": 162, "y": 21 }, + { "flags": 4, "matrix": [1, 9], "x": 183, "y": 21 }, + { "flags": 4, "matrix": [1, 10], "x": 203, "y": 21 }, + { "flags": 1, "matrix": [1, 11], "x": 224, "y": 21 }, + { "flags": 1, "matrix": [2, 0], "x": 0, "y": 42 }, + { "flags": 4, "matrix": [2, 1], "x": 20, "y": 42 }, + { "flags": 4, "matrix": [2, 2], "x": 40, "y": 42 }, + { "flags": 4, "matrix": [2, 3], "x": 61, "y": 42 }, + { "flags": 4, "matrix": [2, 4], "x": 81, "y": 42 }, + { "flags": 4, "matrix": [2, 5], "x": 101, "y": 42 }, + { "flags": 4, "matrix": [2, 6], "x": 122, "y": 42 }, + { "flags": 4, "matrix": [2, 7], "x": 142, "y": 42 }, + { "flags": 4, "matrix": [2, 8], "x": 162, "y": 42 }, + { "flags": 4, "matrix": [2, 9], "x": 183, "y": 42 }, + { "flags": 4, "matrix": [2, 10], "x": 203, "y": 42 }, + { "flags": 1, "matrix": [2, 11], "x": 224, "y": 42 }, + { "flags": 1, "matrix": [3, 0], "x": 0, "y": 64 }, + { "flags": 1, "matrix": [3, 1], "x": 20, "y": 64 }, + { "flags": 1, "matrix": [3, 2], "x": 40, "y": 64 }, + { "flags": 1, "matrix": [3, 3], "x": 61, "y": 64 }, + { "flags": 1, "matrix": [3, 4], "x": 81, "y": 64 }, + { "flags": 4, "matrix": [3, 5], "x": 101, "y": 64 }, + { "flags": 1, "matrix": [3, 6], "x": 122, "y": 64 }, + { "flags": 1, "matrix": [3, 7], "x": 142, "y": 64 }, + { "flags": 1, "matrix": [3, 8], "x": 162, "y": 64 }, + { "flags": 1, "matrix": [3, 9], "x": 183, "y": 64 }, + { "flags": 1, "matrix": [3, 10], "x": 203, "y": 64 }, + { "flags": 1, "matrix": [3, 11], "x": 224, "y": 64 } + ] + }, + "community_layouts": ["ortho_4x12"], + "layouts": { + "LAYOUT_ortho_4x12": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [1, 6], "x": 6, "y": 1 }, + { "matrix": [1, 7], "x": 7, "y": 1 }, + { "matrix": [1, 8], "x": 8, "y": 1 }, + { "matrix": [1, 9], "x": 9, "y": 1 }, + { "matrix": [1, 10], "x": 10, "y": 1 }, + { "matrix": [1, 11], "x": 11, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 7], "x": 7, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2 }, + { "matrix": [2, 9], "x": 9, "y": 2 }, + { "matrix": [2, 10], "x": 10, "y": 2 }, + { "matrix": [2, 11], "x": 11, "y": 2 }, + { "matrix": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3 }, + { "matrix": [3, 4], "x": 4, "y": 3 }, + { "matrix": [3, 5], "x": 5, "y": 3 }, + { "matrix": [3, 6], "x": 6, "y": 3 }, + { "matrix": [3, 7], "x": 7, "y": 3 }, + { "matrix": [3, 8], "x": 8, "y": 3 }, + { "matrix": [3, 9], "x": 9, "y": 3 }, + { "matrix": [3, 10], "x": 10, "y": 3 }, + { "matrix": [3, 11], "x": 11, "y": 3 } + ] + } + } +} diff --git a/keyboards/boardsource/equals/48/keymaps/default/keymap.c b/keyboards/boardsource/equals/48/keymaps/default/keymap.c new file mode 100644 index 0000000000..92d83bb0e8 --- /dev/null +++ b/keyboards/boardsource/equals/48/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +// Copyright 2022 @boardsource +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +enum layers { + _MAIN, + _RAISE, + _LOWER +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_MAIN] = LAYOUT_ortho_4x12( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + [_RAISE] = LAYOUT_ortho_4x12( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + [_LOWER] = LAYOUT_ortho_4x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ) +}; diff --git a/keyboards/boardsource/equals/48/keymaps/via/keymap.c b/keyboards/boardsource/equals/48/keymaps/via/keymap.c new file mode 100644 index 0000000000..3c3427d122 --- /dev/null +++ b/keyboards/boardsource/equals/48/keymaps/via/keymap.c @@ -0,0 +1,34 @@ +// Copyright 2022 @boardsource +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +enum layers { + _MAIN, + _RAISE, + _LOWER +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_MAIN] = LAYOUT_ortho_4x12( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + [_RAISE] = LAYOUT_ortho_4x12( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + [_LOWER] = LAYOUT_ortho_4x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), + +}; diff --git a/keyboards/boardsource/equals/48/keymaps/via/rules.mk b/keyboards/boardsource/equals/48/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/boardsource/equals/48/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/boardsource/equals/48/mcuconf.h b/keyboards/boardsource/equals/48/mcuconf.h new file mode 100644 index 0000000000..e38c802c07 --- /dev/null +++ b/keyboards/boardsource/equals/48/mcuconf.h @@ -0,0 +1,11 @@ +// Copyright 2023 Cole Smith (@boardsource) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef RP_PWM_USE_PWM6 +#define RP_PWM_USE_PWM6 TRUE + +#undef RP_SPI_USE_SPI1 +#define RP_SPI_USE_SPI1 TRUE diff --git a/keyboards/boardsource/equals/48/rules.mk b/keyboards/boardsource/equals/48/rules.mk new file mode 100644 index 0000000000..4192b0c2e5 --- /dev/null +++ b/keyboards/boardsource/equals/48/rules.mk @@ -0,0 +1,3 @@ +AUDIO_DRIVER = pwm_hardware +QUANTUM_PAINTER_ENABLE = yes +QUANTUM_PAINTER_DRIVERS += st7735_spi diff --git a/keyboards/boardsource/equals/60/config.h b/keyboards/boardsource/equals/60/config.h new file mode 100644 index 0000000000..ee4bc6b1e8 --- /dev/null +++ b/keyboards/boardsource/equals/60/config.h @@ -0,0 +1,23 @@ +// Copyright 2023 Cole Smith (@boardsource) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U + +#define RGB_MATRIX_LED_COUNT 70 + +#define AUDIO_PIN GP29 +#define AUDIO_PWM_DRIVER PWMD6 +#define AUDIO_PWM_CHANNEL RP2040_PWM_CHANNEL_B + +#define AUDIO_INIT_DELAY + +// SPI Configuration +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN GP26 +#define SPI_MOSI_PIN GP27 + +// Display Configuration +#define OLED_CS_PIN GP25 +#define OLED_DC_PIN GP20 +#define OLED_RST_PIN GP28 diff --git a/keyboards/boardsource/equals/60/halconf.h b/keyboards/boardsource/equals/60/halconf.h new file mode 100644 index 0000000000..ec1c061eec --- /dev/null +++ b/keyboards/boardsource/equals/60/halconf.h @@ -0,0 +1,9 @@ +// Copyright 2023 Cole Smith (@boardsource) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define HAL_USE_I2C TRUE +#define HAL_USE_PWM TRUE +#define HAL_USE_SPI TRUE + +#include_next diff --git a/keyboards/boardsource/equals/60/info.json b/keyboards/boardsource/equals/60/info.json new file mode 100644 index 0000000000..355e434b4e --- /dev/null +++ b/keyboards/boardsource/equals/60/info.json @@ -0,0 +1,203 @@ +{ + "keyboard_name": "Equals 60", + "bootloader": "rp2040", + "processor": "RP2040", + "features": { + "audio":true + }, + "matrix_pins": { + "cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP10", "GP11"], + "rows": ["GP12", "GP13", "GP16", "GP17", "GP18"] + }, + "ws2812": { + "driver": "vendor", + "pin": "GP21" + }, + "rgb_matrix": { + "driver": "ws2812", + "max_brightness": 150, + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "layout": [ + { "flags": 2, "x": 220, "y": 17 }, + { "flags": 2, "x": 172, "y": 17 }, + { "flags": 2, "x": 112, "y": 17 }, + { "flags": 2, "x": 50, "y": 17 }, + { "flags": 2, "x": 4, "y": 17 }, + { "flags": 2, "x": 4, "y": 56 }, + { "flags": 2, "x": 50, "y": 56 }, + { "flags": 2, "x": 112, "y": 56 }, + { "flags": 2, "x": 172, "y": 56 }, + { "flags": 2, "x": 220, "y": 56 }, + { "flags": 1, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 20, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 40, "y": 0 }, + { "flags": 4, "matrix": [0, 3], "x": 61, "y": 0 }, + { "flags": 4, "matrix": [0, 4], "x": 81, "y": 0 }, + { "flags": 4, "matrix": [0, 5], "x": 101, "y": 0 }, + { "flags": 4, "matrix": [0, 6], "x": 122, "y": 0 }, + { "flags": 4, "matrix": [0, 7], "x": 142, "y": 0 }, + { "flags": 4, "matrix": [0, 8], "x": 162, "y": 0 }, + { "flags": 4, "matrix": [0, 9], "x": 183, "y": 0 }, + { "flags": 4, "matrix": [0, 10], "x": 203, "y": 0 }, + { "flags": 1, "matrix": [0, 11], "x": 224, "y": 0 }, + { "flags": 1, "matrix": [1, 0], "x": 0, "y": 21 }, + { "flags": 4, "matrix": [1, 1], "x": 20, "y": 21 }, + { "flags": 4, "matrix": [1, 2], "x": 40, "y": 21 }, + { "flags": 4, "matrix": [1, 3], "x": 61, "y": 21 }, + { "flags": 4, "matrix": [1, 4], "x": 81, "y": 21 }, + { "flags": 4, "matrix": [1, 5], "x": 101, "y": 21 }, + { "flags": 4, "matrix": [1, 6], "x": 122, "y": 21 }, + { "flags": 4, "matrix": [1, 7], "x": 142, "y": 21 }, + { "flags": 4, "matrix": [1, 8], "x": 162, "y": 21 }, + { "flags": 4, "matrix": [1, 9], "x": 183, "y": 21 }, + { "flags": 4, "matrix": [1, 10], "x": 203, "y": 21 }, + { "flags": 1, "matrix": [1, 11], "x": 224, "y": 21 }, + { "flags": 1, "matrix": [2, 0], "x": 0, "y": 42 }, + { "flags": 4, "matrix": [2, 1], "x": 20, "y": 42 }, + { "flags": 4, "matrix": [2, 2], "x": 40, "y": 42 }, + { "flags": 4, "matrix": [2, 3], "x": 61, "y": 42 }, + { "flags": 4, "matrix": [2, 4], "x": 81, "y": 42 }, + { "flags": 4, "matrix": [2, 5], "x": 101, "y": 42 }, + { "flags": 4, "matrix": [2, 6], "x": 122, "y": 42 }, + { "flags": 4, "matrix": [2, 7], "x": 142, "y": 42 }, + { "flags": 4, "matrix": [2, 8], "x": 162, "y": 42 }, + { "flags": 4, "matrix": [2, 9], "x": 183, "y": 42 }, + { "flags": 4, "matrix": [2, 10], "x": 203, "y": 42 }, + { "flags": 1, "matrix": [2, 11], "x": 224, "y": 42 }, + { "flags": 1, "matrix": [3, 0], "x": 0, "y": 64 }, + { "flags": 4, "matrix": [3, 1], "x": 20, "y": 64 }, + { "flags": 4, "matrix": [3, 2], "x": 40, "y": 64 }, + { "flags": 4, "matrix": [3, 3], "x": 61, "y": 64 }, + { "flags": 4, "matrix": [3, 4], "x": 81, "y": 64 }, + { "flags": 4, "matrix": [3, 5], "x": 101, "y": 64 }, + { "flags": 4, "matrix": [3, 6], "x": 122, "y": 64 }, + { "flags": 4, "matrix": [3, 7], "x": 142, "y": 64 }, + { "flags": 4, "matrix": [3, 8], "x": 162, "y": 64 }, + { "flags": 4, "matrix": [3, 9], "x": 183, "y": 64 }, + { "flags": 4, "matrix": [3, 10], "x": 203, "y": 64 }, + { "flags": 1, "matrix": [3, 11], "x": 224, "y": 64 }, + { "flags": 1, "matrix": [4, 0], "x": 0, "y": 86 }, + { "flags": 1, "matrix": [4, 1], "x": 20, "y": 86 }, + { "flags": 1, "matrix": [4, 2], "x": 40, "y": 86 }, + { "flags": 1, "matrix": [4, 3], "x": 61, "y": 86 }, + { "flags": 1, "matrix": [4, 4], "x": 81, "y": 86 }, + { "flags": 4, "matrix": [4, 5], "x": 111, "y": 86 }, + { "flags": 1, "matrix": [4, 7], "x": 142, "y": 86 }, + { "flags": 1, "matrix": [4, 8], "x": 162, "y": 86 }, + { "flags": 1, "matrix": [4, 9], "x": 183, "y": 86 }, + { "flags": 1, "matrix": [4, 10], "x": 203, "y": 86 }, + { "flags": 1, "matrix": [4, 11], "x": 224, "y": 86 } + ] + }, + "community_layouts": ["ortho_5x12"], + "layouts": { + "LAYOUT_ortho_5x12": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [1, 6], "x": 6, "y": 1 }, + { "matrix": [1, 7], "x": 7, "y": 1 }, + { "matrix": [1, 8], "x": 8, "y": 1 }, + { "matrix": [1, 9], "x": 9, "y": 1 }, + { "matrix": [1, 10], "x": 10, "y": 1 }, + { "matrix": [1, 11], "x": 11, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 7], "x": 7, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2 }, + { "matrix": [2, 9], "x": 9, "y": 2 }, + { "matrix": [2, 10], "x": 10, "y": 2 }, + { "matrix": [2, 11], "x": 11, "y": 2 }, + { "matrix": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3 }, + { "matrix": [3, 4], "x": 4, "y": 3 }, + { "matrix": [3, 5], "x": 5, "y": 3 }, + { "matrix": [3, 6], "x": 6, "y": 3 }, + { "matrix": [3, 7], "x": 7, "y": 3 }, + { "matrix": [3, 8], "x": 8, "y": 3 }, + { "matrix": [3, 9], "x": 9, "y": 3 }, + { "matrix": [3, 10], "x": 10, "y": 3 }, + { "matrix": [3, 11], "x": 11, "y": 3 }, + { "matrix": [4, 0], "x": 0, "y": 4 }, + { "matrix": [4, 1], "x": 1, "y": 4 }, + { "matrix": [4, 2], "x": 2, "y": 4 }, + { "matrix": [4, 3], "x": 3, "y": 4 }, + { "matrix": [4, 4], "x": 4, "y": 4 }, + { "matrix": [4, 5], "x": 5, "y": 4 }, + { "matrix": [4, 6], "x": 6, "y": 4 }, + { "matrix": [4, 7], "x": 7, "y": 4 }, + { "matrix": [4, 8], "x": 8, "y": 4 }, + { "matrix": [4, 9], "x": 9, "y": 4 }, + { "matrix": [4, 10], "x": 10, "y": 4 }, + { "matrix": [4, 11], "x": 11, "y": 4 } + ] + } + } +} diff --git a/keyboards/boardsource/equals/60/keymaps/default/keymap.c b/keyboards/boardsource/equals/60/keymaps/default/keymap.c new file mode 100644 index 0000000000..48e26a4094 --- /dev/null +++ b/keyboards/boardsource/equals/60/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +// Copyright 2023 Cole Smith (@boardsource) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +enum layers { + _MAIN, + _RAISE, + _LOWER +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_MAIN] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_RGHT, RGB_MOD, RGB_TOG + ), + [_RAISE] = LAYOUT_ortho_5x12( + 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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, + KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + [_LOWER] = LAYOUT_ortho_5x12( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ) +}; diff --git a/keyboards/boardsource/equals/60/keymaps/via/keymap.c b/keyboards/boardsource/equals/60/keymaps/via/keymap.c new file mode 100644 index 0000000000..54528b8f60 --- /dev/null +++ b/keyboards/boardsource/equals/60/keymaps/via/keymap.c @@ -0,0 +1,36 @@ +// Copyright 2023 Cole Smith (@boardsource) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +enum layers { + _MAIN, + _RAISE, + _LOWER +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_MAIN] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + [_RAISE] = LAYOUT_ortho_5x12( + 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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, + KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + [_LOWER] = LAYOUT_ortho_5x12( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, _______, KC_UP, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ) +}; diff --git a/keyboards/boardsource/equals/60/keymaps/via/rules.mk b/keyboards/boardsource/equals/60/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/boardsource/equals/60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/boardsource/equals/60/mcuconf.h b/keyboards/boardsource/equals/60/mcuconf.h new file mode 100644 index 0000000000..e38c802c07 --- /dev/null +++ b/keyboards/boardsource/equals/60/mcuconf.h @@ -0,0 +1,11 @@ +// Copyright 2023 Cole Smith (@boardsource) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef RP_PWM_USE_PWM6 +#define RP_PWM_USE_PWM6 TRUE + +#undef RP_SPI_USE_SPI1 +#define RP_SPI_USE_SPI1 TRUE diff --git a/keyboards/boardsource/equals/60/rules.mk b/keyboards/boardsource/equals/60/rules.mk new file mode 100644 index 0000000000..4192b0c2e5 --- /dev/null +++ b/keyboards/boardsource/equals/60/rules.mk @@ -0,0 +1,3 @@ +AUDIO_DRIVER = pwm_hardware +QUANTUM_PAINTER_ENABLE = yes +QUANTUM_PAINTER_DRIVERS += st7735_spi diff --git a/keyboards/boardsource/equals/avr/config.h b/keyboards/boardsource/equals/avr/config.h new file mode 100644 index 0000000000..68754cbe52 --- /dev/null +++ b/keyboards/boardsource/equals/avr/config.h @@ -0,0 +1,4 @@ +// Copyright 2023 Cole Smith (@boardsource) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once +#define RGB_MATRIX_LED_COUNT 70 diff --git a/keyboards/boardsource/equals/avr/info.json b/keyboards/boardsource/equals/avr/info.json new file mode 100644 index 0000000000..bbade34e63 --- /dev/null +++ b/keyboards/boardsource/equals/avr/info.json @@ -0,0 +1,202 @@ +{ + "keyboard_name": "Equals kit", + + "build": { + "lto": true + }, + "development_board": "promicro", + "matrix_pins": { + "cols": ["F4","F5","F6","F7","B1","B3","B2","B6","B5","B4","E6","D7"], + "rows": ["D3","D2","D1","D0","D4"] + }, + "ws2812": { + "pin": "C6" + }, + "rgb_matrix": { + "driver": "ws2812", + "max_brightness": 150, + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "layout": [ + { "flags": 2, "x": 220, "y": 17 }, + { "flags": 2, "x": 172, "y": 17 }, + { "flags": 2, "x": 112, "y": 17 }, + { "flags": 2, "x": 50, "y": 17 }, + { "flags": 2, "x": 4, "y": 17 }, + { "flags": 2, "x": 4, "y": 56 }, + { "flags": 2, "x": 50, "y": 56 }, + { "flags": 2, "x": 112, "y": 56 }, + { "flags": 2, "x": 172, "y": 56 }, + { "flags": 2, "x": 220, "y": 56 }, + { "flags": 1, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 20, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 40, "y": 0 }, + { "flags": 4, "matrix": [0, 3], "x": 61, "y": 0 }, + { "flags": 4, "matrix": [0, 4], "x": 81, "y": 0 }, + { "flags": 4, "matrix": [0, 5], "x": 101, "y": 0 }, + { "flags": 4, "matrix": [0, 6], "x": 122, "y": 0 }, + { "flags": 4, "matrix": [0, 7], "x": 142, "y": 0 }, + { "flags": 4, "matrix": [0, 8], "x": 162, "y": 0 }, + { "flags": 4, "matrix": [0, 9], "x": 183, "y": 0 }, + { "flags": 4, "matrix": [0, 10], "x": 203, "y": 0 }, + { "flags": 1, "matrix": [0, 11], "x": 224, "y": 0 }, + { "flags": 1, "matrix": [1, 0], "x": 0, "y": 21 }, + { "flags": 4, "matrix": [1, 1], "x": 20, "y": 21 }, + { "flags": 4, "matrix": [1, 2], "x": 40, "y": 21 }, + { "flags": 4, "matrix": [1, 3], "x": 61, "y": 21 }, + { "flags": 4, "matrix": [1, 4], "x": 81, "y": 21 }, + { "flags": 4, "matrix": [1, 5], "x": 101, "y": 21 }, + { "flags": 4, "matrix": [1, 6], "x": 122, "y": 21 }, + { "flags": 4, "matrix": [1, 7], "x": 142, "y": 21 }, + { "flags": 4, "matrix": [1, 8], "x": 162, "y": 21 }, + { "flags": 4, "matrix": [1, 9], "x": 183, "y": 21 }, + { "flags": 4, "matrix": [1, 10], "x": 203, "y": 21 }, + { "flags": 1, "matrix": [1, 11], "x": 224, "y": 21 }, + { "flags": 1, "matrix": [2, 0], "x": 0, "y": 42 }, + { "flags": 4, "matrix": [2, 1], "x": 20, "y": 42 }, + { "flags": 4, "matrix": [2, 2], "x": 40, "y": 42 }, + { "flags": 4, "matrix": [2, 3], "x": 61, "y": 42 }, + { "flags": 4, "matrix": [2, 4], "x": 81, "y": 42 }, + { "flags": 4, "matrix": [2, 5], "x": 101, "y": 42 }, + { "flags": 4, "matrix": [2, 6], "x": 122, "y": 42 }, + { "flags": 4, "matrix": [2, 7], "x": 142, "y": 42 }, + { "flags": 4, "matrix": [2, 8], "x": 162, "y": 42 }, + { "flags": 4, "matrix": [2, 9], "x": 183, "y": 42 }, + { "flags": 4, "matrix": [2, 10], "x": 203, "y": 42 }, + { "flags": 1, "matrix": [2, 11], "x": 224, "y": 42 }, + { "flags": 1, "matrix": [3, 0], "x": 0, "y": 64 }, + { "flags": 4, "matrix": [3, 1], "x": 20, "y": 64 }, + { "flags": 4, "matrix": [3, 2], "x": 40, "y": 64 }, + { "flags": 4, "matrix": [3, 3], "x": 61, "y": 64 }, + { "flags": 4, "matrix": [3, 4], "x": 81, "y": 64 }, + { "flags": 4, "matrix": [3, 5], "x": 101, "y": 64 }, + { "flags": 4, "matrix": [3, 6], "x": 122, "y": 64 }, + { "flags": 4, "matrix": [3, 7], "x": 142, "y": 64 }, + { "flags": 4, "matrix": [3, 8], "x": 162, "y": 64 }, + { "flags": 4, "matrix": [3, 9], "x": 183, "y": 64 }, + { "flags": 4, "matrix": [3, 10], "x": 203, "y": 64 }, + { "flags": 1, "matrix": [3, 11], "x": 224, "y": 64 }, + { "flags": 1, "matrix": [4, 0], "x": 0, "y": 86 }, + { "flags": 1, "matrix": [4, 1], "x": 20, "y": 86 }, + { "flags": 1, "matrix": [4, 2], "x": 40, "y": 86 }, + { "flags": 1, "matrix": [4, 3], "x": 61, "y": 86 }, + { "flags": 1, "matrix": [4, 4], "x": 81, "y": 86 }, + { "flags": 4, "matrix": [4, 5], "x": 111, "y": 86 }, + { "flags": 1, "matrix": [4, 7], "x": 142, "y": 86 }, + { "flags": 1, "matrix": [4, 8], "x": 162, "y": 86 }, + { "flags": 1, "matrix": [4, 9], "x": 183, "y": 86 }, + { "flags": 1, "matrix": [4, 10], "x": 203, "y": 86 }, + { "flags": 1, "matrix": [4, 11], "x": 224, "y": 86 } + ] + }, + "community_layouts": ["ortho_5x12"], + "layouts": { + "LAYOUT_ortho_5x12": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [1, 6], "x": 6, "y": 1 }, + { "matrix": [1, 7], "x": 7, "y": 1 }, + { "matrix": [1, 8], "x": 8, "y": 1 }, + { "matrix": [1, 9], "x": 9, "y": 1 }, + { "matrix": [1, 10], "x": 10, "y": 1 }, + { "matrix": [1, 11], "x": 11, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 7], "x": 7, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2 }, + { "matrix": [2, 9], "x": 9, "y": 2 }, + { "matrix": [2, 10], "x": 10, "y": 2 }, + { "matrix": [2, 11], "x": 11, "y": 2 }, + { "matrix": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3 }, + { "matrix": [3, 4], "x": 4, "y": 3 }, + { "matrix": [3, 5], "x": 5, "y": 3 }, + { "matrix": [3, 6], "x": 6, "y": 3 }, + { "matrix": [3, 7], "x": 7, "y": 3 }, + { "matrix": [3, 8], "x": 8, "y": 3 }, + { "matrix": [3, 9], "x": 9, "y": 3 }, + { "matrix": [3, 10], "x": 10, "y": 3 }, + { "matrix": [3, 11], "x": 11, "y": 3 }, + { "matrix": [4, 0], "x": 0, "y": 4 }, + { "matrix": [4, 1], "x": 1, "y": 4 }, + { "matrix": [4, 2], "x": 2, "y": 4 }, + { "matrix": [4, 3], "x": 3, "y": 4 }, + { "matrix": [4, 4], "x": 4, "y": 4 }, + { "matrix": [4, 5], "x": 5, "y": 4 }, + { "matrix": [4, 6], "x": 6, "y": 4 }, + { "matrix": [4, 7], "x": 7, "y": 4 }, + { "matrix": [4, 8], "x": 8, "y": 4 }, + { "matrix": [4, 9], "x": 9, "y": 4 }, + { "matrix": [4, 10], "x": 10, "y": 4 }, + { "matrix": [4, 11], "x": 11, "y": 4 } + ] + } + } +} diff --git a/keyboards/boardsource/equals/avr/keymaps/default/keymap.c b/keyboards/boardsource/equals/avr/keymaps/default/keymap.c new file mode 100644 index 0000000000..99a049214b --- /dev/null +++ b/keyboards/boardsource/equals/avr/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +// Copyright 2023 Cole Smith (@boardsource) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +enum layers { + _MAIN, + _RAISE, + _LOWER +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_MAIN] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, CK_TOGG, RGB_MOD, RGB_TOG + ), + [_RAISE] = LAYOUT_ortho_5x12( + 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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, + KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + [_LOWER] = LAYOUT_ortho_5x12( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ) +}; diff --git a/keyboards/boardsource/equals/avr/keymaps/via/keymap.c b/keyboards/boardsource/equals/avr/keymaps/via/keymap.c new file mode 100644 index 0000000000..54528b8f60 --- /dev/null +++ b/keyboards/boardsource/equals/avr/keymaps/via/keymap.c @@ -0,0 +1,36 @@ +// Copyright 2023 Cole Smith (@boardsource) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +enum layers { + _MAIN, + _RAISE, + _LOWER +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_MAIN] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + [_RAISE] = LAYOUT_ortho_5x12( + 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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, + KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + [_LOWER] = LAYOUT_ortho_5x12( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, _______, KC_UP, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ) +}; diff --git a/keyboards/boardsource/equals/avr/keymaps/via/rules.mk b/keyboards/boardsource/equals/avr/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/boardsource/equals/avr/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/boardsource/equals/equals.c b/keyboards/boardsource/equals/equals.c new file mode 100644 index 0000000000..8eb933e70d --- /dev/null +++ b/keyboards/boardsource/equals/equals.c @@ -0,0 +1,18 @@ +// Copyright 2023 @boardsource +// SPDX-License-Identifier: GPL-2.0-or-later +#include "quantum.h" +__attribute__((weak)) void ui_init(void) {}; +__attribute__((weak)) void ui_task(void) {}; + +#ifdef QUANTUM_PAINTER_ENABLE +void keyboard_post_init_kb(void) { + // Init the display + ui_init(); + keyboard_post_init_user(); +} + +void housekeeping_task_kb(void) { + // Draw the display + ui_task(); +} +#endif //QUANTUM_PAINTER_ENABLE diff --git a/keyboards/boardsource/equals/graphics/thintel15.qff.c b/keyboards/boardsource/equals/graphics/thintel15.qff.c new file mode 100644 index 0000000000..c361ad5346 --- /dev/null +++ b/keyboards/boardsource/equals/graphics/thintel15.qff.c @@ -0,0 +1,69 @@ +// Copyright 2023 Cole Smith (@boardsource) +// SPDX-License-Identifier: GPL-2.0-or-later +#include + +// clang-format off +const uint8_t font_thintel15[966] = { + 0x00, 0xFF, 0x14, 0x00, 0x00, 0x51, 0x46, 0x46, 0x01, 0xC6, 0x03, 0x00, 0x00, 0x39, 0xFC, 0xFF, + 0xFF, 0x0B, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01, 0xFE, 0x1D, 0x01, 0x00, 0x02, 0x00, + 0x00, 0xC2, 0x00, 0x00, 0x84, 0x01, 0x00, 0x06, 0x03, 0x00, 0x46, 0x05, 0x00, 0x88, 0x07, 0x00, + 0x46, 0x0A, 0x00, 0x82, 0x0C, 0x00, 0x43, 0x0D, 0x00, 0x83, 0x0E, 0x00, 0xC4, 0x0F, 0x00, 0x46, + 0x11, 0x00, 0x83, 0x13, 0x00, 0xC5, 0x14, 0x00, 0x82, 0x16, 0x00, 0x44, 0x17, 0x00, 0xC5, 0x18, + 0x00, 0x84, 0x1A, 0x00, 0x05, 0x1C, 0x00, 0xC5, 0x1D, 0x00, 0x85, 0x1F, 0x00, 0x45, 0x21, 0x00, + 0x05, 0x23, 0x00, 0xC5, 0x24, 0x00, 0x85, 0x26, 0x00, 0x45, 0x28, 0x00, 0x02, 0x2A, 0x00, 0xC3, + 0x2A, 0x00, 0x05, 0x2C, 0x00, 0xC5, 0x2D, 0x00, 0x85, 0x2F, 0x00, 0x45, 0x31, 0x00, 0x08, 0x33, + 0x00, 0xC5, 0x35, 0x00, 0x85, 0x37, 0x00, 0x45, 0x39, 0x00, 0x05, 0x3B, 0x00, 0xC4, 0x3C, 0x00, + 0x44, 0x3E, 0x00, 0xC5, 0x3F, 0x00, 0x85, 0x41, 0x00, 0x44, 0x43, 0x00, 0xC5, 0x44, 0x00, 0x85, + 0x46, 0x00, 0x44, 0x48, 0x00, 0xC6, 0x49, 0x00, 0x06, 0x4C, 0x00, 0x45, 0x4E, 0x00, 0x05, 0x50, + 0x00, 0xC5, 0x51, 0x00, 0x85, 0x53, 0x00, 0x45, 0x55, 0x00, 0x06, 0x57, 0x00, 0x45, 0x59, 0x00, + 0x06, 0x5B, 0x00, 0x46, 0x5D, 0x00, 0x86, 0x5F, 0x00, 0xC6, 0x61, 0x00, 0x06, 0x64, 0x00, 0x44, + 0x66, 0x00, 0xC4, 0x67, 0x00, 0x44, 0x69, 0x00, 0xC6, 0x6A, 0x00, 0x05, 0x6D, 0x00, 0xC3, 0x6E, + 0x00, 0x05, 0x70, 0x00, 0xC5, 0x71, 0x00, 0x84, 0x73, 0x00, 0x05, 0x75, 0x00, 0xC5, 0x76, 0x00, + 0x84, 0x78, 0x00, 0x05, 0x7A, 0x00, 0xC5, 0x7B, 0x00, 0x82, 0x7D, 0x00, 0x43, 0x7E, 0x00, 0x85, + 0x7F, 0x00, 0x42, 0x81, 0x00, 0x06, 0x82, 0x00, 0x45, 0x84, 0x00, 0x05, 0x86, 0x00, 0xC5, 0x87, + 0x00, 0x85, 0x89, 0x00, 0x44, 0x8B, 0x00, 0xC5, 0x8C, 0x00, 0x83, 0x8E, 0x00, 0xC5, 0x8F, 0x00, + 0x86, 0x91, 0x00, 0xC6, 0x93, 0x00, 0x06, 0x96, 0x00, 0x45, 0x98, 0x00, 0x04, 0x9A, 0x00, 0x85, + 0x9B, 0x00, 0x42, 0x9D, 0x00, 0x05, 0x9E, 0x00, 0xC5, 0x9F, 0x00, 0x04, 0xFB, 0x86, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x54, 0x45, 0x00, 0x50, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0xFD, 0xD2, + 0xAF, 0x28, 0x00, 0x00, 0x00, 0x84, 0x53, 0x15, 0x0E, 0x55, 0x39, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x12, 0x15, 0x0A, 0x28, 0x54, 0x24, 0x00, 0x00, 0x00, 0x80, 0x50, 0x14, 0x52, 0x95, 0x58, 0x00, + 0x00, 0x00, 0x14, 0x00, 0x00, 0x4A, 0x92, 0x24, 0x02, 0x00, 0x91, 0x24, 0x49, 0x01, 0x00, 0x20, + 0x27, 0x05, 0x00, 0x00, 0x00, 0x00, 0x40, 0x10, 0x1F, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x0A, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x24, 0x22, + 0x11, 0x00, 0x00, 0xC0, 0xA4, 0x94, 0x52, 0x32, 0x00, 0x00, 0x20, 0x23, 0x22, 0x72, 0x00, 0x00, + 0xC0, 0x24, 0x44, 0x44, 0x78, 0x00, 0x00, 0xC0, 0x24, 0x44, 0x50, 0x32, 0x00, 0x00, 0x80, 0x29, + 0x95, 0x1E, 0x42, 0x00, 0x00, 0xE0, 0x85, 0x83, 0x50, 0x32, 0x00, 0x00, 0xC0, 0xA4, 0x70, 0x52, + 0x32, 0x00, 0x00, 0xE0, 0x21, 0x42, 0x84, 0x10, 0x00, 0x00, 0xC0, 0xA4, 0x64, 0x52, 0x32, 0x00, + 0x00, 0xC0, 0xA4, 0xE4, 0x50, 0x32, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x30, 0x60, 0x0A, 0x00, + 0x00, 0x11, 0x11, 0x04, 0x41, 0x00, 0x00, 0x00, 0x80, 0x07, 0x1E, 0x00, 0x00, 0x00, 0x20, 0x08, + 0x82, 0x88, 0x08, 0x00, 0x00, 0xC0, 0x24, 0x64, 0x04, 0x10, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x59, + 0x55, 0x2D, 0x02, 0x1C, 0x00, 0x00, 0x00, 0xC0, 0xA4, 0xF4, 0x52, 0x4A, 0x00, 0x00, 0xE0, 0xA4, + 0x74, 0x52, 0x3A, 0x00, 0x00, 0xC0, 0xA4, 0x10, 0x42, 0x32, 0x00, 0x00, 0xE0, 0xA4, 0x94, 0x52, + 0x3A, 0x00, 0x00, 0x70, 0x11, 0x17, 0x71, 0x00, 0x00, 0x70, 0x11, 0x17, 0x11, 0x00, 0x00, 0xC0, + 0xA4, 0xD0, 0x52, 0x32, 0x00, 0x00, 0x20, 0xA5, 0xF4, 0x52, 0x4A, 0x00, 0x00, 0x70, 0x22, 0x22, + 0x72, 0x00, 0x00, 0xC0, 0x21, 0x84, 0x50, 0x32, 0x00, 0x00, 0x20, 0xA5, 0x32, 0x4A, 0x4A, 0x00, + 0x00, 0x10, 0x11, 0x11, 0x71, 0x00, 0x00, 0x40, 0xB4, 0x55, 0x51, 0x14, 0x45, 0x00, 0x00, 0x00, + 0x40, 0x34, 0x55, 0x59, 0x14, 0x45, 0x00, 0x00, 0x00, 0xC0, 0xA4, 0x94, 0x52, 0x32, 0x00, 0x00, + 0xE0, 0xA4, 0x74, 0x42, 0x08, 0x00, 0x00, 0xC0, 0xA4, 0x94, 0x52, 0x51, 0x00, 0x00, 0xE0, 0xA4, + 0x74, 0x52, 0x4A, 0x00, 0x00, 0xC0, 0xA4, 0x60, 0x50, 0x32, 0x00, 0x00, 0xC0, 0x47, 0x10, 0x04, + 0x41, 0x10, 0x00, 0x00, 0x00, 0x20, 0xA5, 0x94, 0x52, 0x32, 0x00, 0x00, 0x40, 0x14, 0x45, 0x51, + 0xA4, 0x10, 0x00, 0x00, 0x00, 0x40, 0x14, 0x45, 0x51, 0xB5, 0x45, 0x00, 0x00, 0x00, 0x40, 0x14, + 0x29, 0x84, 0x12, 0x45, 0x00, 0x00, 0x00, 0x40, 0x14, 0x45, 0x0E, 0x41, 0x10, 0x00, 0x00, 0x00, + 0xC0, 0x07, 0x21, 0x84, 0x10, 0x7C, 0x00, 0x00, 0x00, 0x17, 0x11, 0x11, 0x11, 0x07, 0x00, 0x10, + 0x21, 0x22, 0x44, 0x00, 0x00, 0x47, 0x44, 0x44, 0x44, 0x07, 0x00, 0x84, 0x12, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x93, 0x5C, 0x72, 0x00, 0x00, 0x20, 0x84, 0x93, 0x52, 0x3A, 0x00, 0x00, 0x00, 0x60, + 0x11, 0x61, 0x00, 0x00, 0x00, 0x21, 0x97, 0x52, 0x72, 0x00, 0x00, 0x00, 0x00, 0x93, 0x5E, 0x70, + 0x00, 0x00, 0x60, 0x11, 0x13, 0x11, 0x00, 0x00, 0x00, 0x00, 0x97, 0x52, 0x72, 0x28, 0x19, 0x20, + 0x84, 0x93, 0x52, 0x4A, 0x00, 0x00, 0x10, 0x55, 0x00, 0x80, 0x20, 0x49, 0x0A, 0x00, 0x20, 0x84, + 0x94, 0x4E, 0x4A, 0x00, 0x00, 0x54, 0x55, 0x00, 0x00, 0x00, 0x2C, 0x55, 0x55, 0x55, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x93, 0x52, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x93, 0x52, 0x32, 0x00, 0x00, 0x00, + 0x80, 0x93, 0x52, 0x3A, 0x21, 0x00, 0x00, 0x00, 0x97, 0x52, 0x72, 0x08, 0x01, 0x00, 0x50, 0x13, + 0x11, 0x00, 0x00, 0x00, 0x00, 0x17, 0x0C, 0x3A, 0x00, 0x00, 0x48, 0x96, 0x44, 0x00, 0x00, 0x00, + 0x80, 0x94, 0x52, 0x72, 0x00, 0x00, 0x00, 0x00, 0x44, 0x51, 0xA4, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x44, 0x51, 0x54, 0x6D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x0A, 0xA1, 0x44, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x94, 0x52, 0x72, 0x28, 0x19, 0x00, 0x70, 0x24, 0x71, 0x00, 0x00, 0x4C, 0x08, + 0x11, 0x84, 0x10, 0x0C, 0x00, 0x55, 0x55, 0x01, 0x83, 0x10, 0x82, 0x08, 0x21, 0x03, 0x00, 0x00, + 0x00, 0xB0, 0x1A, 0x00, 0x00, 0x00, +}; +// clang-format on diff --git a/keyboards/boardsource/equals/info.json b/keyboards/boardsource/equals/info.json new file mode 100644 index 0000000000..bed8ec2640 --- /dev/null +++ b/keyboards/boardsource/equals/info.json @@ -0,0 +1,21 @@ +{ + "manufacturer": "Boardsource", + "maintainer": "Boardsource", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x7688", + "vid": "0x4273" + } + +} diff --git a/keyboards/boardsource/equals/readme.md b/keyboards/boardsource/equals/readme.md new file mode 100644 index 0000000000..9c5d48f5c2 --- /dev/null +++ b/keyboards/boardsource/equals/readme.md @@ -0,0 +1,33 @@ +# equals + +![equals](https://i.imgur.com/c3adFqsh.jpeg) + +* Keyboard Maintainer: [Cole Smith](https://github.com/boardsource) +* Hardware Supported: Equals PCB w/ RP2040 +* Hardware Availability: [boardsource](https://boardsource.xyz) + +Make example for this keyboard (after setting up your build environment): + + make boardsource/equals/48:default + make boardsource/equals/60:default + make boardsource/equals/avr:default + +Flashing example for this keyboard: + + make boardsource/equals/48:default:flash + make boardsource/equals/60:default:flash + make boardsource/equals/avr:default:flash + +Compile `avr` firmware if your PCB uses a drop-in microcontroller like Pro Micro. + + +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). + + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/boardsource/equals/ui.c b/keyboards/boardsource/equals/ui.c new file mode 100644 index 0000000000..f953fc4c88 --- /dev/null +++ b/keyboards/boardsource/equals/ui.c @@ -0,0 +1,40 @@ +// Copyright 2023 Cole Smith (@boardsource) +// SPDX-License-Identifier: GPL-2.0-or-later +#include +#include "qp.h" +#include "qp_st7735.h" +#include "graphics/thintel15.qff.c" + +static painter_device_t oled; +static painter_font_handle_t font; + +__attribute__((weak)) void ui_init(void) { + oled = qp_st7735_make_spi_device(128, 160, OLED_CS_PIN, OLED_DC_PIN, OLED_RST_PIN, 8, 0); + font = qp_load_font_mem(font_thintel15); + qp_init(oled, QP_ROTATION_0); + qp_rect(oled, 0, 0, 130, 162, 0, 0, 0, true); + qp_rect(oled, 20, 20, 108, 60, 55, 55, 55, true); + qp_rect(oled, 20, 80, 108, 120, 55, 55, 55, true); + qp_flush(oled); +} + +__attribute__((weak)) void ui_task(void) { + static const char *text = "Layer:"; + int16_t width = qp_textwidth(font, text); + qp_drawtext(oled, 20, 140, font, text); + + switch (get_highest_layer(layer_state)) { + case 0: + qp_drawtext(oled, (20 + width), 140, font, "QWERTY"); + break; + case 1: + qp_drawtext(oled, (20 + width), 140, font, "SYMBOL"); + break; + case 2: + qp_drawtext(oled, (20 + width), 140, font, "NUMBER"); + break; + default: + qp_drawtext(oled, (20 + width), 140, font, "_PANIC_"); + break; + } +} From ba62db19e760d144cbb7e30b3878238ff0983cf7 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Tue, 14 Nov 2023 13:12:17 +1100 Subject: [PATCH 386/496] Update stale.yml (#22473) --- .github/workflows/stale.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index f011fb5460..d95efebe9d 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -3,6 +3,7 @@ name: 'Close stale issues and PRs' permissions: issues: write pull-requests: write + actions: write on: schedule: From 5c22706294b311c43f9dd6212e5086fff872b734 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Tue, 14 Nov 2023 13:15:52 +1100 Subject: [PATCH 387/496] Update stale.yml --- .github/workflows/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index d95efebe9d..ce9bd0f316 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -14,7 +14,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v8 + - uses: actions/stale@main with: repo-token: ${{ secrets.GITHUB_TOKEN }} From d7b44239c262708c96c28ef64b2257e9bda89b33 Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Tue, 14 Nov 2023 16:11:12 +0800 Subject: [PATCH 388/496] [Keyboard] Add Eden (#22467) Co-authored-by: Duncan Sutherland --- keyboards/zeix/eden/config.h | 20 + keyboards/zeix/eden/info.json | 1017 ++++++++++++++++++ keyboards/zeix/eden/keymaps/default/keymap.c | 33 + keyboards/zeix/eden/keymaps/via/keymap.c | 33 + keyboards/zeix/eden/keymaps/via/rules.mk | 1 + keyboards/zeix/eden/matrix_diagram.md | 23 + keyboards/zeix/eden/readme.md | 27 + keyboards/zeix/eden/rules.mk | 1 + 8 files changed, 1155 insertions(+) create mode 100644 keyboards/zeix/eden/config.h create mode 100644 keyboards/zeix/eden/info.json create mode 100644 keyboards/zeix/eden/keymaps/default/keymap.c create mode 100644 keyboards/zeix/eden/keymaps/via/keymap.c create mode 100644 keyboards/zeix/eden/keymaps/via/rules.mk create mode 100644 keyboards/zeix/eden/matrix_diagram.md create mode 100644 keyboards/zeix/eden/readme.md create mode 100644 keyboards/zeix/eden/rules.mk diff --git a/keyboards/zeix/eden/config.h b/keyboards/zeix/eden/config.h new file mode 100644 index 0000000000..77970ce4d3 --- /dev/null +++ b/keyboards/zeix/eden/config.h @@ -0,0 +1,20 @@ +/* +Copyright 2023 zeix (@itsme-zeix) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/zeix/eden/info.json b/keyboards/zeix/eden/info.json new file mode 100644 index 0000000000..2b5fd6eae7 --- /dev/null +++ b/keyboards/zeix/eden/info.json @@ -0,0 +1,1017 @@ +{ + "keyboard_name": "Eden", + "maintainer": "itsme-zeix", + "manufacturer": "dnworks", + "processor": "RP2040", + "bootloader": "rp2040", + "usb": { + "vid": "0x4C27", + "pid": "0x2901", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true + }, + "indicators": { + "caps_lock": "GP29", + "on_state": 1 + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "rows": ["GP6", "GP5", "GP4", "GP0", "GP12"], + "cols": ["GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP22", "GP3", "GP2", "GP1", "GP8", "GP9", "GP10", "GP11", "GP7"] + }, + "community_layouts": [ + "60_ansi", + "60_ansi_split_bs_rshift", + "60_ansi_tsangan", + "60_tsangan_hhkb", + "60_ansi_wkl", + "60_ansi_wkl_split_bs_rshift", + "60_hhkb", + "60_iso", + "60_iso_split_bs_rshift", + "60_iso_tsangan", + "60_iso_tsangan_split_bs_rshift", + "60_iso_wkl", + "60_iso_wkl_split_bs_rshift" + ], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4} + ] + }, + "LAYOUT_60_ansi_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_ansi_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/zeix/eden/keymaps/default/keymap.c b/keyboards/zeix/eden/keymaps/default/keymap.c new file mode 100644 index 0000000000..c209675b37 --- /dev/null +++ b/keyboards/zeix/eden/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* +Copyright 2023 zeix (@itsme-zeix) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT_all( + KC_ESC, 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_BSLS, KC_BSPC, + 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_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_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), + +[1] = LAYOUT_all( + KC_TRNS, 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_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_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), +}; diff --git a/keyboards/zeix/eden/keymaps/via/keymap.c b/keyboards/zeix/eden/keymaps/via/keymap.c new file mode 100644 index 0000000000..c209675b37 --- /dev/null +++ b/keyboards/zeix/eden/keymaps/via/keymap.c @@ -0,0 +1,33 @@ +/* +Copyright 2023 zeix (@itsme-zeix) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT_all( + KC_ESC, 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_BSLS, KC_BSPC, + 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_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_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), + +[1] = LAYOUT_all( + KC_TRNS, 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_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_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), +}; diff --git a/keyboards/zeix/eden/keymaps/via/rules.mk b/keyboards/zeix/eden/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/zeix/eden/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/zeix/eden/matrix_diagram.md b/keyboards/zeix/eden/matrix_diagram.md new file mode 100644 index 0000000000..4686e997b2 --- /dev/null +++ b/keyboards/zeix/eden/matrix_diagram.md @@ -0,0 +1,23 @@ +# Matrix Diagram for Eden + +``` + ┌───────┐ + 2u Backspace │0E │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │2C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ +│40 │41 │42 │46 │4A │4B │4C │4D │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +┌────────┐ ┌──────────┐ +│30 │ 2.25u LShift 2.75u RShift │3C │ +└────────┘ └──────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│40 │41 │42 │46 │4B │4C │4D │ Tsangan/WKL/HHKB +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ diff --git a/keyboards/zeix/eden/readme.md b/keyboards/zeix/eden/readme.md new file mode 100644 index 0000000000..85f1ff66de --- /dev/null +++ b/keyboards/zeix/eden/readme.md @@ -0,0 +1,27 @@ +# Eden + +![Eden](https://i.imgur.com/5He99nkh.jpg) + +A 60% mounted with tadpoles designed by The Flying Penguin. + +* Keyboard Maintainer: [Zeix](https://github.com/itsme-zeix) +* Hardware Supported: Eden Solder PCB rev1 +* Hardware Availability: mecha.store + +Make example for this keyboard (after setting up your build environment): + + make zeix/eden:default + +Flashing example for this keyboard: + + make zeix/eden:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the `RESET` button twice or short the `USB_BOOT` and `GND` pads and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/zeix/eden/rules.mk b/keyboards/zeix/eden/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/zeix/eden/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file From 49382107115f611a61f1f5e20a3b2a92000a35da Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Wed, 15 Nov 2023 16:24:54 +1100 Subject: [PATCH 389/496] CLI refactoring for common build target APIs (#22221) --- lib/python/qmk/build_targets.py | 211 ++++++++++++++++++ lib/python/qmk/cli/clean.py | 4 +- lib/python/qmk/cli/compile.py | 58 ++--- lib/python/qmk/cli/find.py | 14 +- lib/python/qmk/cli/flash.py | 45 ++-- .../qmk/cli/generate/compilation_database.py | 16 +- lib/python/qmk/cli/mass_compile.py | 29 ++- lib/python/qmk/commands.py | 164 +------------- lib/python/qmk/keyboard.py | 6 +- lib/python/qmk/search.py | 34 +-- 10 files changed, 296 insertions(+), 285 deletions(-) create mode 100644 lib/python/qmk/build_targets.py diff --git a/lib/python/qmk/build_targets.py b/lib/python/qmk/build_targets.py new file mode 100644 index 0000000000..236c2eaa03 --- /dev/null +++ b/lib/python/qmk/build_targets.py @@ -0,0 +1,211 @@ +# Copyright 2023 Nick Brassel (@tzarc) +# SPDX-License-Identifier: GPL-2.0-or-later +import json +import shutil +from typing import List, Union +from pathlib import Path +from dotty_dict import dotty, Dotty +from milc import cli +from qmk.constants import QMK_FIRMWARE, INTERMEDIATE_OUTPUT_PREFIX +from qmk.commands import find_make, get_make_parallel_args, parse_configurator_json +from qmk.keyboard import keyboard_folder +from qmk.info import keymap_json +from qmk.cli.generate.compilation_database import write_compilation_database + + +class BuildTarget: + def __init__(self, keyboard: str, keymap: str, json: Union[dict, Dotty] = None): + self._keyboard = keyboard_folder(keyboard) + self._keyboard_safe = self._keyboard.replace('/', '_') + self._keymap = keymap + self._parallel = 1 + self._clean = False + self._compiledb = False + self._target = f'{self._keyboard_safe}_{self.keymap}' + self._intermediate_output = Path(f'{INTERMEDIATE_OUTPUT_PREFIX}{self._target}') + self._generated_files_path = self._intermediate_output / 'src' + self._json = json.to_dict() if isinstance(json, Dotty) else json + + def __str__(self): + return f'{self.keyboard}:{self.keymap}' + + def __repr__(self): + return f'BuildTarget(keyboard={self.keyboard}, keymap={self.keymap})' + + def configure(self, parallel: int = None, clean: bool = None, compiledb: bool = None) -> None: + if parallel is not None: + self._parallel = parallel + if clean is not None: + self._clean = clean + if compiledb is not None: + self._compiledb = compiledb + + @property + def keyboard(self) -> str: + return self._keyboard + + @property + def keymap(self) -> str: + return self._keymap + + @property + def json(self) -> dict: + if not self._json: + self._load_json() + if not self._json: + return {} + return self._json + + @property + def dotty(self) -> Dotty: + return dotty(self.json) + + def _common_make_args(self, dry_run: bool = False, build_target: str = None): + compile_args = [ + find_make(), + *get_make_parallel_args(self._parallel), + '-r', + '-R', + '-f', + 'builddefs/build_keyboard.mk', + ] + + if not cli.config.general.verbose: + compile_args.append('-s') + + verbose = 'true' if cli.config.general.verbose else 'false' + color = 'true' if cli.config.general.color else 'false' + + if dry_run: + compile_args.append('-n') + + if build_target: + compile_args.append(build_target) + + compile_args.extend([ + f'KEYBOARD={self.keyboard}', + f'KEYMAP={self.keymap}', + f'KEYBOARD_FILESAFE={self._keyboard_safe}', + f'TARGET={self._target}', + f'INTERMEDIATE_OUTPUT={self._intermediate_output}', + f'VERBOSE={verbose}', + f'COLOR={color}', + 'SILENT=false', + 'QMK_BIN="qmk"', + ]) + + return compile_args + + def prepare_build(self, build_target: str = None, dry_run: bool = False, **env_vars) -> None: + raise NotImplementedError("prepare_build() not implemented in base class") + + def compile_command(self, build_target: str = None, dry_run: bool = False, **env_vars) -> List[str]: + raise NotImplementedError("compile_command() not implemented in base class") + + def generate_compilation_database(self, build_target: str = None, skip_clean: bool = False, **env_vars) -> None: + self.prepare_build(build_target=build_target, **env_vars) + command = self.compile_command(build_target=build_target, dry_run=True, **env_vars) + write_compilation_database(command=command, output_path=QMK_FIRMWARE / 'compile_commands.json', skip_clean=skip_clean, **env_vars) + + def compile(self, build_target: str = None, dry_run: bool = False, **env_vars) -> None: + if self._clean or self._compiledb: + command = [find_make(), "clean"] + if dry_run: + command.append('-n') + cli.log.info('Cleaning with {fg_cyan}%s', ' '.join(command)) + cli.run(command, capture_output=False) + + if self._compiledb and not dry_run: + self.generate_compilation_database(build_target=build_target, skip_clean=True, **env_vars) + + self.prepare_build(build_target=build_target, dry_run=dry_run, **env_vars) + command = self.compile_command(build_target=build_target, **env_vars) + cli.log.info('Compiling keymap with {fg_cyan}%s', ' '.join(command)) + if not dry_run: + cli.echo('\n') + ret = cli.run(command, capture_output=False) + if ret.returncode: + return ret.returncode + + +class KeyboardKeymapBuildTarget(BuildTarget): + def __init__(self, keyboard: str, keymap: str, json: dict = None): + super().__init__(keyboard=keyboard, keymap=keymap, json=json) + + def __repr__(self): + return f'KeyboardKeymapTarget(keyboard={self.keyboard}, keymap={self.keymap})' + + def _load_json(self): + self._json = keymap_json(self.keyboard, self.keymap) + + def prepare_build(self, build_target: str = None, dry_run: bool = False, **env_vars) -> None: + pass + + def compile_command(self, build_target: str = None, dry_run: bool = False, **env_vars) -> List[str]: + compile_args = self._common_make_args(dry_run=dry_run, build_target=build_target) + + for key, value in env_vars.items(): + compile_args.append(f'{key}={value}') + + return compile_args + + +class JsonKeymapBuildTarget(BuildTarget): + def __init__(self, json_path): + if isinstance(json_path, Path): + self.json_path = json_path + else: + self.json_path = None + + json = parse_configurator_json(json_path) # Will load from stdin if provided + + # In case the user passes a keymap.json from a keymap directory directly to the CLI. + # e.g.: qmk compile - < keyboards/clueboard/california/keymaps/default/keymap.json + json["keymap"] = json.get("keymap", "default_json") + + super().__init__(keyboard=json['keyboard'], keymap=json['keymap'], json=json) + + self._keymap_json = self._generated_files_path / 'keymap.json' + + def __repr__(self): + return f'JsonKeymapTarget(keyboard={self.keyboard}, keymap={self.keymap}, path={self.json_path})' + + def _load_json(self): + pass # Already loaded in constructor + + def prepare_build(self, build_target: str = None, dry_run: bool = False, **env_vars) -> None: + if self._clean: + if self._intermediate_output.exists(): + shutil.rmtree(self._intermediate_output) + + # begin with making the deepest folder in the tree + self._generated_files_path.mkdir(exist_ok=True, parents=True) + + # Compare minified to ensure consistent comparison + new_content = json.dumps(self.json, separators=(',', ':')) + if self._keymap_json.exists(): + old_content = json.dumps(json.loads(self._keymap_json.read_text(encoding='utf-8')), separators=(',', ':')) + if old_content == new_content: + new_content = None + + # Write the keymap.json file if different so timestamps are only updated + # if the content changes -- running `make` won't treat it as modified. + if new_content: + self._keymap_json.write_text(new_content, encoding='utf-8') + + def compile_command(self, build_target: str = None, dry_run: bool = False, **env_vars) -> List[str]: + compile_args = self._common_make_args(dry_run=dry_run, build_target=build_target) + compile_args.extend([ + f'MAIN_KEYMAP_PATH_1={self._intermediate_output}', + f'MAIN_KEYMAP_PATH_2={self._intermediate_output}', + f'MAIN_KEYMAP_PATH_3={self._intermediate_output}', + f'MAIN_KEYMAP_PATH_4={self._intermediate_output}', + f'MAIN_KEYMAP_PATH_5={self._intermediate_output}', + f'KEYMAP_JSON={self._keymap_json}', + f'KEYMAP_PATH={self._generated_files_path}', + ]) + + for key, value in env_vars.items(): + compile_args.append(f'{key}={value}') + + return compile_args diff --git a/lib/python/qmk/cli/clean.py b/lib/python/qmk/cli/clean.py index 72b7ffe810..bdec01e4b6 100644 --- a/lib/python/qmk/cli/clean.py +++ b/lib/python/qmk/cli/clean.py @@ -2,7 +2,7 @@ """ from subprocess import DEVNULL -from qmk.commands import create_make_target +from qmk.commands import find_make from milc import cli @@ -11,4 +11,4 @@ from milc import cli def clean(cli): """Runs `make clean` (or `make distclean` if --all is passed) """ - cli.run(create_make_target('distclean' if cli.args.all else 'clean'), capture_output=False, stdin=DEVNULL) + cli.run([find_make(), 'distclean' if cli.args.all else 'clean'], capture_output=False, stdin=DEVNULL) diff --git a/lib/python/qmk/cli/compile.py b/lib/python/qmk/cli/compile.py index 2478ea1fed..71c1dec162 100755 --- a/lib/python/qmk/cli/compile.py +++ b/lib/python/qmk/cli/compile.py @@ -7,22 +7,11 @@ from argcomplete.completers import FilesCompleter from milc import cli import qmk.path -from qmk.constants import QMK_FIRMWARE from qmk.decorators import automagic_keyboard, automagic_keymap -from qmk.commands import compile_configurator_json, create_make_command, parse_configurator_json, build_environment +from qmk.commands import build_environment from qmk.keyboard import keyboard_completer, keyboard_folder_or_all, is_all_keyboards from qmk.keymap import keymap_completer, locate_keymap -from qmk.cli.generate.compilation_database import write_compilation_database - - -def _is_keymap_target(keyboard, keymap): - if keymap == 'all': - return True - - if locate_keymap(keyboard, keymap): - return True - - return False +from qmk.build_targets import KeyboardKeymapBuildTarget, JsonKeymapBuildTarget @cli.argument('filename', nargs='?', arg_only=True, type=qmk.path.FileType('r'), completer=FilesCompleter('.json'), help='The configurator export to compile') @@ -32,6 +21,7 @@ def _is_keymap_target(keyboard, keymap): @cli.argument('-j', '--parallel', type=int, default=1, help="Set the number of parallel make jobs; 0 means unlimited.") @cli.argument('-e', '--env', arg_only=True, action='append', default=[], help="Set a variable to be passed to make. May be passed multiple times.") @cli.argument('-c', '--clean', arg_only=True, action='store_true', help="Remove object files before compiling.") +@cli.argument('-t', '--target', type=str, default=None, help="Intended alternative build target, such as `production` in `make planck/rev4:default:production`.") @cli.argument('--compiledb', arg_only=True, action='store_true', help="Generates the clang compile_commands.json file during build. Implies --clean.") @cli.subcommand('Compile a QMK Firmware.') @automagic_keyboard @@ -53,47 +43,27 @@ def compile(cli): # Build the environment vars envs = build_environment(cli.args.env) - # Determine the compile command - commands = [] - - current_keyboard = None - current_keymap = None + # Handler for the build target + target = None if cli.args.filename: - # If a configurator JSON was provided generate a keymap and compile it - user_keymap = parse_configurator_json(cli.args.filename) - commands = [compile_configurator_json(user_keymap, parallel=cli.config.compile.parallel, clean=cli.args.clean, **envs)] + # if we were given a filename, assume we have a json build target + target = JsonKeymapBuildTarget(cli.args.filename) elif cli.config.compile.keyboard and cli.config.compile.keymap: - # Generate the make command for a specific keyboard/keymap. - if not _is_keymap_target(cli.config.compile.keyboard, cli.config.compile.keymap): + # if we got a keyboard and keymap, attempt to find it + if not locate_keymap(cli.config.compile.keyboard, cli.config.compile.keymap): cli.log.error('Invalid keymap argument.') cli.print_help() return False - if cli.args.clean: - commands.append(create_make_command(cli.config.compile.keyboard, cli.config.compile.keymap, 'clean', **envs)) - commands.append(create_make_command(cli.config.compile.keyboard, cli.config.compile.keymap, parallel=cli.config.compile.parallel, **envs)) + # If we got here, then we have a valid keyboard and keymap for a build target + target = KeyboardKeymapBuildTarget(cli.config.compile.keyboard, cli.config.compile.keymap) - current_keyboard = cli.config.compile.keyboard - current_keymap = cli.config.compile.keymap - - if not commands: + if not target: cli.log.error('You must supply a configurator export, both `--keyboard` and `--keymap`, or be in a directory for a keyboard or keymap.') cli.print_help() return False - if cli.args.compiledb: - if current_keyboard is None or current_keymap is None: - cli.log.error('You must supply both `--keyboard` and `--keymap` or be in a directory with a keymap to generate a compile_commands.json file.') - cli.print_help() - return False - write_compilation_database(current_keyboard, current_keymap, QMK_FIRMWARE / 'compile_commands.json') - - cli.log.info('Compiling keymap with {fg_cyan}%s', ' '.join(commands[-1])) - if not cli.args.dry_run: - cli.echo('\n') - for command in commands: - ret = cli.run(command, capture_output=False) - if ret.returncode: - return ret.returncode + target.configure(parallel=cli.config.compile.parallel, clean=cli.args.clean, compiledb=cli.args.compiledb) + target.compile(cli.args.target, dry_run=cli.args.dry_run, **envs) diff --git a/lib/python/qmk/cli/find.py b/lib/python/qmk/cli/find.py index f2135bbc16..55a0530092 100644 --- a/lib/python/qmk/cli/find.py +++ b/lib/python/qmk/cli/find.py @@ -19,13 +19,9 @@ from qmk.search import search_keymap_targets def find(cli): """Search through all keyboards and keymaps for a given search criteria. """ + targets = search_keymap_targets([('all', cli.config.find.keymap)], cli.args.filter) + for target in sorted(targets, key=lambda t: (t.keyboard, t.keymap)): + print(f'{target}') - if len(cli.args.filter) == 0 and len(cli.args.print) > 0: - cli.log.warning('No filters supplied -- keymaps not parsed, unable to print requested values.') - - targets = search_keymap_targets([('all', cli.config.find.keymap)], cli.args.filter, cli.args.print) - for keyboard, keymap, print_vals in targets: - print(f'{keyboard}:{keymap}') - - for key, val in print_vals: - print(f' {key}={val}') + for key in cli.args.print: + print(f' {key}={target.dotty.get(key, None)}') diff --git a/lib/python/qmk/cli/flash.py b/lib/python/qmk/cli/flash.py index 8724f26889..5df31e4781 100644 --- a/lib/python/qmk/cli/flash.py +++ b/lib/python/qmk/cli/flash.py @@ -4,25 +4,17 @@ You can compile a keymap already in the repo or using a QMK Configurator export. A bootloader must be specified. """ from argcomplete.completers import FilesCompleter +from pathlib import Path from milc import cli import qmk.path from qmk.decorators import automagic_keyboard, automagic_keymap -from qmk.commands import compile_configurator_json, create_make_command, parse_configurator_json, build_environment +from qmk.commands import build_environment from qmk.keyboard import keyboard_completer, keyboard_folder from qmk.keymap import keymap_completer, locate_keymap from qmk.flashers import flasher - - -def _is_keymap_target(keyboard, keymap): - if keymap == 'all': - return True - - if locate_keymap(keyboard, keymap): - return True - - return False +from qmk.build_targets import KeyboardKeymapBuildTarget, JsonKeymapBuildTarget def _list_bootloaders(): @@ -89,7 +81,7 @@ def flash(cli): If bootloader is omitted the make system will use the configured bootloader for that keyboard. """ - if cli.args.filename and cli.args.filename.suffix in ['.bin', '.hex', '.uf2']: + if cli.args.filename and isinstance(cli.args.filename, Path) and cli.args.filename.suffix in ['.bin', '.hex', '.uf2']: return _flash_binary(cli.args.filename, cli.args.mcu) if cli.args.bootloaders: @@ -98,34 +90,27 @@ def flash(cli): # Build the environment vars envs = build_environment(cli.args.env) - # Determine the compile command - commands = [] + # Handler for the build target + target = None if cli.args.filename: - # If a configurator JSON was provided generate a keymap and compile it - user_keymap = parse_configurator_json(cli.args.filename) - commands = [compile_configurator_json(user_keymap, cli.args.bootloader, parallel=cli.config.flash.parallel, clean=cli.args.clean, **envs)] + # if we were given a filename, assume we have a json build target + target = JsonKeymapBuildTarget(cli.args.filename) elif cli.config.flash.keyboard and cli.config.flash.keymap: - # Generate the make command for a specific keyboard/keymap. - if not _is_keymap_target(cli.config.flash.keyboard, cli.config.flash.keymap): + # if we got a keyboard and keymap, attempt to find it + if not locate_keymap(cli.config.flash.keyboard, cli.config.flash.keymap): cli.log.error('Invalid keymap argument.') cli.print_help() return False - if cli.args.clean: - commands.append(create_make_command(cli.config.flash.keyboard, cli.config.flash.keymap, 'clean', **envs)) - commands.append(create_make_command(cli.config.flash.keyboard, cli.config.flash.keymap, cli.args.bootloader, parallel=cli.config.flash.parallel, **envs)) + # If we got here, then we have a valid keyboard and keymap for a build target + target = KeyboardKeymapBuildTarget(cli.config.flash.keyboard, cli.config.flash.keymap) - if not commands: + if not target: cli.log.error('You must supply a configurator export, both `--keyboard` and `--keymap`, or be in a directory for a keyboard or keymap.') cli.print_help() return False - cli.log.info('Compiling keymap with {fg_cyan}%s', ' '.join(commands[-1])) - if not cli.args.dry_run: - cli.echo('\n') - for command in commands: - ret = cli.run(command, capture_output=False) - if ret.returncode: - return ret.returncode + target.configure(parallel=cli.config.flash.parallel, clean=cli.args.clean) + target.compile(cli.args.bootloader, dry_run=cli.args.dry_run, **envs) diff --git a/lib/python/qmk/cli/generate/compilation_database.py b/lib/python/qmk/cli/generate/compilation_database.py index 9e5c266516..5100d2b6d2 100755 --- a/lib/python/qmk/cli/generate/compilation_database.py +++ b/lib/python/qmk/cli/generate/compilation_database.py @@ -12,7 +12,7 @@ from typing import Dict, Iterator, List, Union from milc import cli, MILC -from qmk.commands import create_make_command +from qmk.commands import find_make from qmk.constants import QMK_FIRMWARE from qmk.decorators import automagic_keyboard, automagic_keymap from qmk.keyboard import keyboard_completer, keyboard_folder @@ -76,9 +76,12 @@ def parse_make_n(f: Iterator[str]) -> List[Dict[str, str]]: return records -def write_compilation_database(keyboard: str, keymap: str, output_path: Path) -> bool: +def write_compilation_database(keyboard: str = None, keymap: str = None, output_path: Path = QMK_FIRMWARE / 'compile_commands.json', skip_clean: bool = False, command: List[str] = None, **env_vars) -> bool: # Generate the make command for a specific keyboard/keymap. - command = create_make_command(keyboard, keymap, dry_run=True) + if not command: + from qmk.build_targets import KeyboardKeymapBuildTarget # Lazy load due to circular references + target = KeyboardKeymapBuildTarget(keyboard, keymap) + command = target.compile_command(dry_run=True, **env_vars) if not command: cli.log.error('You must supply both `--keyboard` and `--keymap`, or be in a directory for a keyboard or keymap.') @@ -90,9 +93,10 @@ def write_compilation_database(keyboard: str, keymap: str, output_path: Path) -> env.pop("MAKEFLAGS", None) # re-use same executable as the main make invocation (might be gmake) - clean_command = [command[0], 'clean'] - cli.log.info('Making clean with {fg_cyan}%s', ' '.join(clean_command)) - cli.run(clean_command, capture_output=False, check=True, env=env) + if not skip_clean: + clean_command = [find_make(), "clean"] + cli.log.info('Making clean with {fg_cyan}%s', ' '.join(clean_command)) + cli.run(clean_command, capture_output=False, check=True, env=env) cli.log.info('Gathering build instructions from {fg_cyan}%s', ' '.join(command)) diff --git a/lib/python/qmk/cli/mass_compile.py b/lib/python/qmk/cli/mass_compile.py index 06e6e411a7..7968de53e7 100755 --- a/lib/python/qmk/cli/mass_compile.py +++ b/lib/python/qmk/cli/mass_compile.py @@ -3,26 +3,28 @@ This will compile everything in parallel, for testing purposes. """ import os +from typing import List from pathlib import Path from subprocess import DEVNULL from milc import cli from qmk.constants import QMK_FIRMWARE -from qmk.commands import _find_make, get_make_parallel_args +from qmk.commands import find_make, get_make_parallel_args, build_environment from qmk.search import search_keymap_targets, search_make_targets +from qmk.build_targets import BuildTarget, JsonKeymapBuildTarget -def mass_compile_targets(targets, clean, dry_run, no_temp, parallel, env): +def mass_compile_targets(targets: List[BuildTarget], clean: bool, dry_run: bool, no_temp: bool, parallel: int, **env): if len(targets) == 0: return - make_cmd = _find_make() + make_cmd = find_make() builddir = Path(QMK_FIRMWARE) / '.build' makefile = builddir / 'parallel_kb_builds.mk' if dry_run: cli.log.info('Compilation targets:') - for target in sorted(targets): + for target in sorted(targets, key=lambda t: (t.keyboard, t.keymap)): cli.log.info(f"{{fg_cyan}}qmk compile -kb {target[0]} -km {target[1]}{{fg_reset}}") else: if clean: @@ -30,9 +32,13 @@ def mass_compile_targets(targets, clean, dry_run, no_temp, parallel, env): builddir.mkdir(parents=True, exist_ok=True) with open(makefile, "w") as f: - for target in sorted(targets): - keyboard_name = target[0] - keymap_name = target[1] + for target in sorted(targets, key=lambda t: (t.keyboard, t.keymap)): + keyboard_name = target.keyboard + keymap_name = target.keymap + target.configure(parallel=1) # We ignore parallelism on a per-build basis as we defer to the parent make invocation + target.prepare_build(**env) # If we've got json targets, allow them to write out any extra info to .build before we kick off `make` + command = target.compile_command(**env) + command[0] = '+@$(MAKE)' # Override the make so that we can use jobserver to handle parallelism keyboard_safe = keyboard_name.replace('/', '_') build_log = f"{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" failed_log = f"{QMK_FIRMWARE}/.build/failed.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" @@ -43,7 +49,7 @@ all: {keyboard_safe}_{keymap_name}_binary {keyboard_safe}_{keymap_name}_binary: @rm -f "{build_log}" || true @echo "Compiling QMK Firmware for target: '{keyboard_name}:{keymap_name}'..." >>"{build_log}" - +@$(MAKE) -C "{QMK_FIRMWARE}" -f "{QMK_FIRMWARE}/builddefs/build_keyboard.mk" KEYBOARD="{keyboard_name}" KEYMAP="{keymap_name}" COLOR=true SILENT=false {' '.join(env)} \\ + {' '.join(command)} \\ >>"{build_log}" 2>&1 \\ || cp "{build_log}" "{failed_log}" @{{ grep '\[ERRORS\]' "{build_log}" >/dev/null 2>&1 && printf "Build %-64s \e[1;31m[ERRORS]\e[0m\\n" "{keyboard_name}:{keymap_name}" ; }} \\ @@ -95,8 +101,11 @@ def mass_compile(cli): """Compile QMK Firmware against all keyboards. """ if len(cli.args.builds) > 0: - targets = search_make_targets(cli.args.builds, cli.args.filter) + json_like_targets = list([Path(p) for p in filter(lambda e: Path(e).exists() and Path(e).suffix == '.json', cli.args.builds)]) + make_like_targets = list(filter(lambda e: Path(e) not in json_like_targets, cli.args.builds)) + targets = search_make_targets(make_like_targets) + targets.extend([JsonKeymapBuildTarget(e) for e in json_like_targets]) else: targets = search_keymap_targets([('all', cli.config.mass_compile.keymap)], cli.args.filter) - return mass_compile_targets(targets, cli.args.clean, cli.args.dry_run, cli.config.mass_compile.no_temp, cli.config.mass_compile.parallel, cli.args.env) + return mass_compile_targets(targets, cli.args.clean, cli.args.dry_run, cli.config.mass_compile.no_temp, cli.config.mass_compile.parallel, **build_environment(cli.args.env)) diff --git a/lib/python/qmk/commands.py b/lib/python/qmk/commands.py index 34696e3793..e5fdbc4f30 100644 --- a/lib/python/qmk/commands.py +++ b/lib/python/qmk/commands.py @@ -2,18 +2,16 @@ """ import os import sys -import json import shutil from pathlib import Path from milc import cli import jsonschema -from qmk.constants import INTERMEDIATE_OUTPUT_PREFIX from qmk.json_schema import json_load, validate -def _find_make(): +def find_make(): """Returns the correct make command for this environment. """ make_cmd = os.environ.get('MAKE') @@ -24,74 +22,6 @@ def _find_make(): return make_cmd -def create_make_target(target, dry_run=False, parallel=1, **env_vars): - """Create a make command - - Args: - - target - Usually a make rule, such as 'clean' or 'all'. - - dry_run - make -n -- don't actually build - - parallel - The number of make jobs to run in parallel - - **env_vars - Environment variables to be passed to make. - - Returns: - - A command that can be run to make the specified keyboard and keymap - """ - env = [] - make_cmd = _find_make() - - for key, value in env_vars.items(): - env.append(f'{key}={value}') - - if cli.config.general.verbose: - env.append('VERBOSE=true') - - return [make_cmd, *(['-n'] if dry_run else []), *get_make_parallel_args(parallel), *env, target] - - -def create_make_command(keyboard, keymap, target=None, dry_run=False, parallel=1, **env_vars): - """Create a make compile command - - Args: - - keyboard - The path of the keyboard, for example 'plank' - - keymap - The name of the keymap, for example 'algernon' - - target - Usually a bootloader. - - dry_run - make -n -- don't actually build - - parallel - The number of make jobs to run in parallel - - **env_vars - Environment variables to be passed to make. - - Returns: - - A command that can be run to make the specified keyboard and keymap - """ - make_args = [keyboard, keymap] - - if target: - make_args.append(target) - - return create_make_target(':'.join(make_args), dry_run=dry_run, parallel=parallel, **env_vars) - - def get_make_parallel_args(parallel=1): """Returns the arguments for running the specified number of parallel jobs. """ @@ -100,7 +30,7 @@ def get_make_parallel_args(parallel=1): if int(parallel) <= 0: # 0 or -1 means -j without argument (unlimited jobs) parallel_args.append('--jobs') - else: + elif int(parallel) > 1: parallel_args.append('--jobs=' + str(parallel)) if int(parallel) != 1: @@ -110,96 +40,6 @@ def get_make_parallel_args(parallel=1): return parallel_args -def compile_configurator_json(user_keymap, bootloader=None, parallel=1, clean=False, **env_vars): - """Convert a configurator export JSON file into a C file and then compile it. - - Args: - - user_keymap - A deserialized keymap export - - bootloader - A bootloader to flash - - parallel - The number of make jobs to run in parallel - - Returns: - - A command to run to compile and flash the C file. - """ - # In case the user passes a keymap.json from a keymap directory directly to the CLI. - # e.g.: qmk compile - < keyboards/clueboard/california/keymaps/default/keymap.json - user_keymap["keymap"] = user_keymap.get("keymap", "default_json") - - keyboard_filesafe = user_keymap['keyboard'].replace('/', '_') - target = f'{keyboard_filesafe}_{user_keymap["keymap"]}' - intermediate_output = Path(f'{INTERMEDIATE_OUTPUT_PREFIX}{keyboard_filesafe}_{user_keymap["keymap"]}') - keymap_dir = intermediate_output / 'src' - keymap_json = keymap_dir / 'keymap.json' - - if clean: - if intermediate_output.exists(): - shutil.rmtree(intermediate_output) - - # begin with making the deepest folder in the tree - keymap_dir.mkdir(exist_ok=True, parents=True) - - # Compare minified to ensure consistent comparison - new_content = json.dumps(user_keymap, separators=(',', ':')) - if keymap_json.exists(): - old_content = json.dumps(json.loads(keymap_json.read_text(encoding='utf-8')), separators=(',', ':')) - if old_content == new_content: - new_content = None - - # Write the keymap.json file if different - if new_content: - keymap_json.write_text(new_content, encoding='utf-8') - - # Return a command that can be run to make the keymap and flash if given - verbose = 'true' if cli.config.general.verbose else 'false' - color = 'true' if cli.config.general.color else 'false' - make_command = [_find_make()] - - if not cli.config.general.verbose: - make_command.append('-s') - - make_command.extend([ - *get_make_parallel_args(parallel), - '-r', - '-R', - '-f', - 'builddefs/build_keyboard.mk', - ]) - - if bootloader: - make_command.append(bootloader) - - make_command.extend([ - f'KEYBOARD={user_keymap["keyboard"]}', - f'KEYMAP={user_keymap["keymap"]}', - f'KEYBOARD_FILESAFE={keyboard_filesafe}', - f'TARGET={target}', - f'INTERMEDIATE_OUTPUT={intermediate_output}', - f'MAIN_KEYMAP_PATH_1={intermediate_output}', - f'MAIN_KEYMAP_PATH_2={intermediate_output}', - f'MAIN_KEYMAP_PATH_3={intermediate_output}', - f'MAIN_KEYMAP_PATH_4={intermediate_output}', - f'MAIN_KEYMAP_PATH_5={intermediate_output}', - f'KEYMAP_JSON={keymap_json}', - f'KEYMAP_PATH={keymap_dir}', - f'VERBOSE={verbose}', - f'COLOR={color}', - 'SILENT=false', - 'QMK_BIN="qmk"', - ]) - - for key, value in env_vars.items(): - make_command.append(f'{key}={value}') - - return make_command - - def parse_configurator_json(configurator_file): """Open and parse a configurator json export """ diff --git a/lib/python/qmk/keyboard.py b/lib/python/qmk/keyboard.py index 9826f3f887..1aa63687d4 100644 --- a/lib/python/qmk/keyboard.py +++ b/lib/python/qmk/keyboard.py @@ -98,11 +98,7 @@ def keyboard_folder(keyboard): if keyboard == last_keyboard: break - rules_mk_file = Path(base_path, keyboard, 'rules.mk') - - if rules_mk_file.exists(): - rules_mk = parse_rules_mk_file(rules_mk_file) - keyboard = rules_mk.get('DEFAULT_FOLDER', keyboard) + keyboard = resolve_keyboard(keyboard) if not qmk.path.is_keyboard(keyboard): raise ValueError(f'Invalid keyboard: {keyboard}') diff --git a/lib/python/qmk/search.py b/lib/python/qmk/search.py index a74450ca87..301d69c6c2 100644 --- a/lib/python/qmk/search.py +++ b/lib/python/qmk/search.py @@ -11,8 +11,9 @@ from milc import cli from qmk.util import parallel_map from qmk.info import keymap_json -import qmk.keyboard -import qmk.keymap +from qmk.keyboard import list_keyboards, keyboard_folder +from qmk.keymap import list_keymaps, locate_keymap +from qmk.build_targets import KeyboardKeymapBuildTarget, BuildTarget def _set_log_level(level): @@ -36,15 +37,15 @@ def _all_keymaps(keyboard): """Returns a list of tuples of (keyboard, keymap) for all keymaps for the given keyboard. """ with ignore_logging(): - keyboard = qmk.keyboard.resolve_keyboard(keyboard) - return [(keyboard, keymap) for keymap in qmk.keymap.list_keymaps(keyboard)] + keyboard = keyboard_folder(keyboard) + return [(keyboard, keymap) for keymap in list_keymaps(keyboard)] def _keymap_exists(keyboard, keymap): """Returns the keyboard name if the keyboard+keymap combination exists, otherwise None. """ with ignore_logging(): - return keyboard if qmk.keymap.locate_keymap(keyboard, keymap) is not None else None + return keyboard if locate_keymap(keyboard, keymap) is not None else None def _load_keymap_info(kb_km): @@ -75,7 +76,7 @@ def _expand_keymap_target(keyboard: str, keymap: str, all_keyboards: List[str] = Caters for 'all' in either keyboard or keymap, or both. """ if all_keyboards is None: - all_keyboards = qmk.keyboard.list_keyboards() + all_keyboards = list_keyboards() if keyboard == 'all': if keymap == 'all': @@ -90,30 +91,29 @@ def _expand_keymap_target(keyboard: str, keymap: str, all_keyboards: List[str] = return [(kb, keymap) for kb in filter(lambda e: e is not None, parallel_map(keyboard_filter, all_keyboards))] else: if keymap == 'all': - keyboard = qmk.keyboard.resolve_keyboard(keyboard) cli.log.info(f'Retrieving list of keymaps for keyboard "{keyboard}"...') return _all_keymaps(keyboard) else: - return [(qmk.keyboard.resolve_keyboard(keyboard), keymap)] + return [(keyboard, keymap)] def expand_keymap_targets(targets: List[Tuple[str, str]]) -> List[Tuple[str, str]]: """Expand a list of (keyboard, keymap) tuples inclusive of 'all', into a list of explicit (keyboard, keymap) tuples. """ overall_targets = [] - all_keyboards = qmk.keyboard.list_keyboards() + all_keyboards = list_keyboards() for target in targets: overall_targets.extend(_expand_keymap_target(target[0], target[1], all_keyboards)) return list(sorted(set(overall_targets))) -def _filter_keymap_targets(target_list: List[Tuple[str, str]], filters: List[str] = [], print_vals: List[str] = []) -> List[Tuple[str, str, List[Tuple[str, str]]]]: +def _filter_keymap_targets(target_list: List[Tuple[str, str]], filters: List[str] = []) -> List[BuildTarget]: """Filter a list of (keyboard, keymap) tuples based on the supplied filters. Optionally includes the values of the queried info.json keys. """ - if len(filters) == 0 and len(print_vals) == 0: - targets = [(kb, km, {}) for kb, km in target_list] + if len(filters) == 0: + targets = [KeyboardKeymapBuildTarget(keyboard=kb, keymap=km) for kb, km in target_list] else: cli.log.info('Parsing data for all matching keyboard/keymap combinations...') valid_keymaps = [(e[0], e[1], dotty(e[2])) for e in parallel_map(_load_keymap_info, target_list)] @@ -172,18 +172,18 @@ def _filter_keymap_targets(target_list: List[Tuple[str, str]], filters: List[str cli.log.warning(f'Unrecognized filter expression: {filter_expr}') continue - targets = [(e[0], e[1], [(p, e[2].get(p)) for p in print_vals]) for e in valid_keymaps] + targets = [KeyboardKeymapBuildTarget(keyboard=e[0], keymap=e[1], json=e[2]) for e in valid_keymaps] return targets -def search_keymap_targets(targets: List[Tuple[str, str]] = [('all', 'default')], filters: List[str] = [], print_vals: List[str] = []) -> List[Tuple[str, str, List[Tuple[str, str]]]]: +def search_keymap_targets(targets: List[Tuple[str, str]] = [('all', 'default')], filters: List[str] = []) -> List[BuildTarget]: """Search for build targets matching the supplied criteria. """ - return list(sorted(_filter_keymap_targets(expand_keymap_targets(targets), filters, print_vals), key=lambda e: (e[0], e[1]))) + return _filter_keymap_targets(expand_keymap_targets(targets), filters) -def search_make_targets(targets: List[str], filters: List[str] = [], print_vals: List[str] = []) -> List[Tuple[str, str, List[Tuple[str, str]]]]: +def search_make_targets(targets: List[str], filters: List[str] = []) -> List[BuildTarget]: """Search for build targets matching the supplied criteria. """ - return list(sorted(_filter_keymap_targets(expand_make_targets(targets), filters, print_vals), key=lambda e: (e[0], e[1]))) + return _filter_keymap_targets(expand_make_targets(targets), filters) From adcc4d376cbfb6519dae2b5aa9230474d1a1dd0e Mon Sep 17 00:00:00 2001 From: Le Zhang Date: Wed, 15 Nov 2023 10:23:03 -0500 Subject: [PATCH 390/496] Add leonardo build target for leonardo + usb2.0 shield based projects (#22243) --- keyboards/converter/usb_usb/hasu/rules.mk | 3 +-- keyboards/converter/usb_usb/leonardo/info.json | 3 +++ keyboards/converter/usb_usb/leonardo/rules.mk | 1 + keyboards/converter/usb_usb/readme.md | 6 ++++-- 4 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 keyboards/converter/usb_usb/leonardo/info.json create mode 100644 keyboards/converter/usb_usb/leonardo/rules.mk diff --git a/keyboards/converter/usb_usb/hasu/rules.mk b/keyboards/converter/usb_usb/hasu/rules.mk index c2ee0bc86f..6e7633bfe0 100644 --- a/keyboards/converter/usb_usb/hasu/rules.mk +++ b/keyboards/converter/usb_usb/hasu/rules.mk @@ -1,2 +1 @@ -# Processor frequency -F_CPU = 16000000 +# This file intentionally left blank diff --git a/keyboards/converter/usb_usb/leonardo/info.json b/keyboards/converter/usb_usb/leonardo/info.json new file mode 100644 index 0000000000..56062f7ad3 --- /dev/null +++ b/keyboards/converter/usb_usb/leonardo/info.json @@ -0,0 +1,3 @@ +{ + "bootloader": "caterina" +} diff --git a/keyboards/converter/usb_usb/leonardo/rules.mk b/keyboards/converter/usb_usb/leonardo/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/converter/usb_usb/leonardo/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/converter/usb_usb/readme.md b/keyboards/converter/usb_usb/readme.md index 594a9be877..50743b11fc 100644 --- a/keyboards/converter/usb_usb/readme.md +++ b/keyboards/converter/usb_usb/readme.md @@ -11,6 +11,10 @@ Make example for this keyboard (after setting up your build environment): make converter/usb_usb:default +If you use Arduino Leonardo with a USB Host Shield: + + make converter/usb_usb/leonardo: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. Note that you have to choose the right hardware variant as your subproject, otherwise you will probably have issues. @@ -23,8 +27,6 @@ If you are sure you have this correct, try changeing the default in `usb_usb/rul The Pro Micro variant uses a 3.3V Pro Micro and thus runs at 8MHz, hence the following line in `usb_usb/pro_micro/rules.mk`: `F_CPU = 8000000` -The converter sold by Hasu runs at 16MHz and so the corresponding line in `usb_usb/hasu/rules.mk` is: -`F_CPU = 16000000` Getting the Hardware -------------------- From 1e4f7aa0292a650b9b2b07634c3ea44aed942bf7 Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Fri, 17 Nov 2023 00:54:13 +0800 Subject: [PATCH 391/496] [Keyboard] Add dnworks 997pt3 (#22466) Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Co-authored-by: Duncan Sutherland --- keyboards/dnworks/9973/config.h | 20 + keyboards/dnworks/9973/info.json | 480 ++++++++++++++++++ .../dnworks/9973/keymaps/default/keymap.c | 27 + keyboards/dnworks/9973/keymaps/via/keymap.c | 27 + keyboards/dnworks/9973/keymaps/via/rules.mk | 1 + keyboards/dnworks/9973/readme.md | 27 + keyboards/dnworks/9973/rules.mk | 1 + 7 files changed, 583 insertions(+) create mode 100644 keyboards/dnworks/9973/config.h create mode 100644 keyboards/dnworks/9973/info.json create mode 100644 keyboards/dnworks/9973/keymaps/default/keymap.c create mode 100644 keyboards/dnworks/9973/keymaps/via/keymap.c create mode 100644 keyboards/dnworks/9973/keymaps/via/rules.mk create mode 100644 keyboards/dnworks/9973/readme.md create mode 100644 keyboards/dnworks/9973/rules.mk diff --git a/keyboards/dnworks/9973/config.h b/keyboards/dnworks/9973/config.h new file mode 100644 index 0000000000..77970ce4d3 --- /dev/null +++ b/keyboards/dnworks/9973/config.h @@ -0,0 +1,20 @@ +/* +Copyright 2023 zeix (@itsme-zeix) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/dnworks/9973/info.json b/keyboards/dnworks/9973/info.json new file mode 100644 index 0000000000..6169606026 --- /dev/null +++ b/keyboards/dnworks/9973/info.json @@ -0,0 +1,480 @@ +{ + "keyboard_name": "DN 997.3", + "maintainer": "itsme-zeix", + "manufacturer": "dnworks", + "processor": "RP2040", + "bootloader": "rp2040", + "usb": { + "vid": "0x4C23", + "pid": "0x2936", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "GP27", + "scroll_lock": "GP1", + "on_state": 1 + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "rows": ["GP2", "GP3", "GP4", "GP29", "GP12", "GP13"], + "cols": ["GP28", "GP26", "GP25", "GP24", "GP23", "GP22", "GP21", "GP20", "GP19", "GP18", "GP17", "GP16", "GP15", "GP14", "GP6", "GP5", "GP0"] + }, + "community_layouts": ["tkl_ansi_tsangan", "tkl_iso_tsangan"], + "layouts": { + "LAYOUT_all": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6.5, "y": 0 }, + { "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "matrix": [0, 9], "x": 9.5, "y": 0 }, + { "matrix": [0, 10], "x": 11, "y": 0 }, + { "matrix": [0, 11], "x": 12, "y": 0 }, + { "matrix": [0, 12], "x": 13, "y": 0 }, + { "matrix": [0, 13], "x": 14, "y": 0 }, + { "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "matrix": [0, 16], "x": 17.25, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1.5 }, + { "matrix": [1, 1], "x": 1, "y": 1.5 }, + { "matrix": [1, 2], "x": 2, "y": 1.5 }, + { "matrix": [1, 3], "x": 3, "y": 1.5 }, + { "matrix": [1, 4], "x": 4, "y": 1.5 }, + { "matrix": [1, 5], "x": 5, "y": 1.5 }, + { "matrix": [1, 6], "x": 6, "y": 1.5 }, + { "matrix": [1, 7], "x": 7, "y": 1.5 }, + { "matrix": [1, 8], "x": 8, "y": 1.5 }, + { "matrix": [1, 9], "x": 9, "y": 1.5 }, + { "matrix": [1, 10], "x": 10, "y": 1.5 }, + { "matrix": [1, 11], "x": 11, "y": 1.5 }, + { "matrix": [1, 12], "x": 12, "y": 1.5 }, + { "matrix": [1, 13], "w": 2, "x": 13, "y": 1.5 }, + { "matrix": [1, 14], "x": 15.25, "y": 1.5 }, + { "matrix": [1, 15], "x": 16.25, "y": 1.5 }, + { "matrix": [1, 16], "x": 17.25, "y": 1.5 }, + { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 }, + { "matrix": [2, 1], "x": 1.5, "y": 2.5 }, + { "matrix": [2, 2], "x": 2.5, "y": 2.5 }, + { "matrix": [2, 3], "x": 3.5, "y": 2.5 }, + { "matrix": [2, 4], "x": 4.5, "y": 2.5 }, + { "matrix": [2, 5], "x": 5.5, "y": 2.5 }, + { "matrix": [2, 6], "x": 6.5, "y": 2.5 }, + { "matrix": [2, 7], "x": 7.5, "y": 2.5 }, + { "matrix": [2, 8], "x": 8.5, "y": 2.5 }, + { "matrix": [2, 9], "x": 9.5, "y": 2.5 }, + { "matrix": [2, 10], "x": 10.5, "y": 2.5 }, + { "matrix": [2, 11], "x": 11.5, "y": 2.5 }, + { "matrix": [2, 12], "x": 12.5, "y": 2.5 }, + { "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.5 }, + { "matrix": [2, 14], "x": 15.25, "y": 2.5 }, + { "matrix": [2, 15], "x": 16.25, "y": 2.5 }, + { "matrix": [2, 16], "x": 17.25, "y": 2.5 }, + { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 }, + { "matrix": [3, 1], "x": 1.75, "y": 3.5 }, + { "matrix": [3, 2], "x": 2.75, "y": 3.5 }, + { "matrix": [3, 3], "x": 3.75, "y": 3.5 }, + { "matrix": [3, 4], "x": 4.75, "y": 3.5 }, + { "matrix": [3, 5], "x": 5.75, "y": 3.5 }, + { "matrix": [3, 6], "x": 6.75, "y": 3.5 }, + { "matrix": [3, 7], "x": 7.75, "y": 3.5 }, + { "matrix": [3, 8], "x": 8.75, "y": 3.5 }, + { "matrix": [3, 9], "x": 9.75, "y": 3.5 }, + { "matrix": [3, 10], "x": 10.75, "y": 3.5 }, + { "matrix": [3, 11], "x": 11.75, "y": 3.5 }, + { "matrix": [3, 12], "w": 2.25, "x": 12.75, "y": 3.5 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.5 }, + { "matrix": [4, 1], "x": 1.25, "y": 4.5 }, + { "matrix": [4, 2], "x": 2.25, "y": 4.5 }, + { "matrix": [4, 3], "x": 3.25, "y": 4.5 }, + { "matrix": [4, 4], "x": 4.25, "y": 4.5 }, + { "matrix": [4, 5], "x": 5.25, "y": 4.5 }, + { "matrix": [4, 6], "x": 6.25, "y": 4.5 }, + { "matrix": [4, 7], "x": 7.25, "y": 4.5 }, + { "matrix": [4, 8], "x": 8.25, "y": 4.5 }, + { "matrix": [4, 9], "x": 9.25, "y": 4.5 }, + { "matrix": [4, 10], "x": 10.25, "y": 4.5 }, + { "matrix": [4, 11], "x": 11.25, "y": 4.5 }, + { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.5 }, + { "matrix": [4, 15], "x": 16.25, "y": 4.5 }, + { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.5 }, + { "matrix": [5, 1], "x": 1.5, "y": 5.5 }, + { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.5 }, + { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.5 }, + { "matrix": [5, 10], "w": 1.5, "x": 11, "y": 5.5 }, + { "matrix": [5, 11], "x": 12.5, "y": 5.5 }, + { "matrix": [5, 12], "w": 1.5, "x": 13.5, "y": 5.5 }, + { "matrix": [5, 14], "x": 15.25, "y": 5.5 }, + { "matrix": [5, 15], "x": 16.25, "y": 5.5 }, + { "matrix": [5, 16], "x": 17.25, "y": 5.5 } + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6.5, "y": 0 }, + { "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "matrix": [0, 9], "x": 9.5, "y": 0 }, + { "matrix": [0, 10], "x": 11, "y": 0 }, + { "matrix": [0, 11], "x": 12, "y": 0 }, + { "matrix": [0, 12], "x": 13, "y": 0 }, + { "matrix": [0, 13], "x": 14, "y": 0 }, + { "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "matrix": [0, 16], "x": 17.25, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1.5 }, + { "matrix": [1, 1], "x": 1, "y": 1.5 }, + { "matrix": [1, 2], "x": 2, "y": 1.5 }, + { "matrix": [1, 3], "x": 3, "y": 1.5 }, + { "matrix": [1, 4], "x": 4, "y": 1.5 }, + { "matrix": [1, 5], "x": 5, "y": 1.5 }, + { "matrix": [1, 6], "x": 6, "y": 1.5 }, + { "matrix": [1, 7], "x": 7, "y": 1.5 }, + { "matrix": [1, 8], "x": 8, "y": 1.5 }, + { "matrix": [1, 9], "x": 9, "y": 1.5 }, + { "matrix": [1, 10], "x": 10, "y": 1.5 }, + { "matrix": [1, 11], "x": 11, "y": 1.5 }, + { "matrix": [1, 12], "x": 12, "y": 1.5 }, + { "matrix": [1, 13], "w": 2, "x": 13, "y": 1.5 }, + { "matrix": [1, 14], "x": 15.25, "y": 1.5 }, + { "matrix": [1, 15], "x": 16.25, "y": 1.5 }, + { "matrix": [1, 16], "x": 17.25, "y": 1.5 }, + { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 }, + { "matrix": [2, 1], "x": 1.5, "y": 2.5 }, + { "matrix": [2, 2], "x": 2.5, "y": 2.5 }, + { "matrix": [2, 3], "x": 3.5, "y": 2.5 }, + { "matrix": [2, 4], "x": 4.5, "y": 2.5 }, + { "matrix": [2, 5], "x": 5.5, "y": 2.5 }, + { "matrix": [2, 6], "x": 6.5, "y": 2.5 }, + { "matrix": [2, 7], "x": 7.5, "y": 2.5 }, + { "matrix": [2, 8], "x": 8.5, "y": 2.5 }, + { "matrix": [2, 9], "x": 9.5, "y": 2.5 }, + { "matrix": [2, 10], "x": 10.5, "y": 2.5 }, + { "matrix": [2, 11], "x": 11.5, "y": 2.5 }, + { "matrix": [2, 12], "x": 12.5, "y": 2.5 }, + { "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.5 }, + { "matrix": [2, 14], "x": 15.25, "y": 2.5 }, + { "matrix": [2, 15], "x": 16.25, "y": 2.5 }, + { "matrix": [2, 16], "x": 17.25, "y": 2.5 }, + { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 }, + { "matrix": [3, 1], "x": 1.75, "y": 3.5 }, + { "matrix": [3, 2], "x": 2.75, "y": 3.5 }, + { "matrix": [3, 3], "x": 3.75, "y": 3.5 }, + { "matrix": [3, 4], "x": 4.75, "y": 3.5 }, + { "matrix": [3, 5], "x": 5.75, "y": 3.5 }, + { "matrix": [3, 6], "x": 6.75, "y": 3.5 }, + { "matrix": [3, 7], "x": 7.75, "y": 3.5 }, + { "matrix": [3, 8], "x": 8.75, "y": 3.5 }, + { "matrix": [3, 9], "x": 9.75, "y": 3.5 }, + { "matrix": [3, 10], "x": 10.75, "y": 3.5 }, + { "matrix": [3, 11], "x": 11.75, "y": 3.5 }, + { "matrix": [3, 12], "w": 2.25, "x": 12.75, "y": 3.5 }, + { "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.5 }, + { "matrix": [4, 2], "x": 2.25, "y": 4.5 }, + { "matrix": [4, 3], "x": 3.25, "y": 4.5 }, + { "matrix": [4, 4], "x": 4.25, "y": 4.5 }, + { "matrix": [4, 5], "x": 5.25, "y": 4.5 }, + { "matrix": [4, 6], "x": 6.25, "y": 4.5 }, + { "matrix": [4, 7], "x": 7.25, "y": 4.5 }, + { "matrix": [4, 8], "x": 8.25, "y": 4.5 }, + { "matrix": [4, 9], "x": 9.25, "y": 4.5 }, + { "matrix": [4, 10], "x": 10.25, "y": 4.5 }, + { "matrix": [4, 11], "x": 11.25, "y": 4.5 }, + { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.5 }, + { "matrix": [4, 15], "x": 16.25, "y": 4.5 }, + { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.5 }, + { "matrix": [5, 1], "x": 1.5, "y": 5.5 }, + { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.5 }, + { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.5 }, + { "matrix": [5, 10], "w": 1.5, "x": 11, "y": 5.5 }, + { "matrix": [5, 11], "x": 12.5, "y": 5.5 }, + { "matrix": [5, 12], "w": 1.5, "x": 13.5, "y": 5.5 }, + { "matrix": [5, 14], "x": 15.25, "y": 5.5 }, + { "matrix": [5, 15], "x": 16.25, "y": 5.5 }, + { "matrix": [5, 16], "x": 17.25, "y": 5.5 } + ] + }, + "LAYOUT_tkl_ansi_wkl": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6.5, "y": 0 }, + { "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "matrix": [0, 9], "x": 9.5, "y": 0 }, + { "matrix": [0, 10], "x": 11, "y": 0 }, + { "matrix": [0, 11], "x": 12, "y": 0 }, + { "matrix": [0, 12], "x": 13, "y": 0 }, + { "matrix": [0, 13], "x": 14, "y": 0 }, + { "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "matrix": [0, 16], "x": 17.25, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1.5 }, + { "matrix": [1, 1], "x": 1, "y": 1.5 }, + { "matrix": [1, 2], "x": 2, "y": 1.5 }, + { "matrix": [1, 3], "x": 3, "y": 1.5 }, + { "matrix": [1, 4], "x": 4, "y": 1.5 }, + { "matrix": [1, 5], "x": 5, "y": 1.5 }, + { "matrix": [1, 6], "x": 6, "y": 1.5 }, + { "matrix": [1, 7], "x": 7, "y": 1.5 }, + { "matrix": [1, 8], "x": 8, "y": 1.5 }, + { "matrix": [1, 9], "x": 9, "y": 1.5 }, + { "matrix": [1, 10], "x": 10, "y": 1.5 }, + { "matrix": [1, 11], "x": 11, "y": 1.5 }, + { "matrix": [1, 12], "x": 12, "y": 1.5 }, + { "matrix": [1, 13], "w": 2, "x": 13, "y": 1.5 }, + { "matrix": [1, 14], "x": 15.25, "y": 1.5 }, + { "matrix": [1, 15], "x": 16.25, "y": 1.5 }, + { "matrix": [1, 16], "x": 17.25, "y": 1.5 }, + { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 }, + { "matrix": [2, 1], "x": 1.5, "y": 2.5 }, + { "matrix": [2, 2], "x": 2.5, "y": 2.5 }, + { "matrix": [2, 3], "x": 3.5, "y": 2.5 }, + { "matrix": [2, 4], "x": 4.5, "y": 2.5 }, + { "matrix": [2, 5], "x": 5.5, "y": 2.5 }, + { "matrix": [2, 6], "x": 6.5, "y": 2.5 }, + { "matrix": [2, 7], "x": 7.5, "y": 2.5 }, + { "matrix": [2, 8], "x": 8.5, "y": 2.5 }, + { "matrix": [2, 9], "x": 9.5, "y": 2.5 }, + { "matrix": [2, 10], "x": 10.5, "y": 2.5 }, + { "matrix": [2, 11], "x": 11.5, "y": 2.5 }, + { "matrix": [2, 12], "x": 12.5, "y": 2.5 }, + { "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.5 }, + { "matrix": [2, 14], "x": 15.25, "y": 2.5 }, + { "matrix": [2, 15], "x": 16.25, "y": 2.5 }, + { "matrix": [2, 16], "x": 17.25, "y": 2.5 }, + { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 }, + { "matrix": [3, 1], "x": 1.75, "y": 3.5 }, + { "matrix": [3, 2], "x": 2.75, "y": 3.5 }, + { "matrix": [3, 3], "x": 3.75, "y": 3.5 }, + { "matrix": [3, 4], "x": 4.75, "y": 3.5 }, + { "matrix": [3, 5], "x": 5.75, "y": 3.5 }, + { "matrix": [3, 6], "x": 6.75, "y": 3.5 }, + { "matrix": [3, 7], "x": 7.75, "y": 3.5 }, + { "matrix": [3, 8], "x": 8.75, "y": 3.5 }, + { "matrix": [3, 9], "x": 9.75, "y": 3.5 }, + { "matrix": [3, 10], "x": 10.75, "y": 3.5 }, + { "matrix": [3, 11], "x": 11.75, "y": 3.5 }, + { "matrix": [3, 12], "w": 2.25, "x": 12.75, "y": 3.5 }, + { "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.5 }, + { "matrix": [4, 2], "x": 2.25, "y": 4.5 }, + { "matrix": [4, 3], "x": 3.25, "y": 4.5 }, + { "matrix": [4, 4], "x": 4.25, "y": 4.5 }, + { "matrix": [4, 5], "x": 5.25, "y": 4.5 }, + { "matrix": [4, 6], "x": 6.25, "y": 4.5 }, + { "matrix": [4, 7], "x": 7.25, "y": 4.5 }, + { "matrix": [4, 8], "x": 8.25, "y": 4.5 }, + { "matrix": [4, 9], "x": 9.25, "y": 4.5 }, + { "matrix": [4, 10], "x": 10.25, "y": 4.5 }, + { "matrix": [4, 11], "x": 11.25, "y": 4.5 }, + { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.5 }, + { "matrix": [4, 15], "x": 16.25, "y": 4.5 }, + { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.5 }, + { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.5 }, + { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.5 }, + { "matrix": [5, 10], "w": 1.5, "x": 11, "y": 5.5 }, + { "matrix": [5, 12], "w": 1.5, "x": 13.5, "y": 5.5 }, + { "matrix": [5, 14], "x": 15.25, "y": 5.5 }, + { "matrix": [5, 15], "x": 16.25, "y": 5.5 }, + { "matrix": [5, 16], "x": 17.25, "y": 5.5 } + ] + }, + "LAYOUT_tkl_iso_tsangan": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6.5, "y": 0 }, + { "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "matrix": [0, 9], "x": 9.5, "y": 0 }, + { "matrix": [0, 10], "x": 11, "y": 0 }, + { "matrix": [0, 11], "x": 12, "y": 0 }, + { "matrix": [0, 12], "x": 13, "y": 0 }, + { "matrix": [0, 13], "x": 14, "y": 0 }, + { "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "matrix": [0, 16], "x": 17.25, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1.5 }, + { "matrix": [1, 1], "x": 1, "y": 1.5 }, + { "matrix": [1, 2], "x": 2, "y": 1.5 }, + { "matrix": [1, 3], "x": 3, "y": 1.5 }, + { "matrix": [1, 4], "x": 4, "y": 1.5 }, + { "matrix": [1, 5], "x": 5, "y": 1.5 }, + { "matrix": [1, 6], "x": 6, "y": 1.5 }, + { "matrix": [1, 7], "x": 7, "y": 1.5 }, + { "matrix": [1, 8], "x": 8, "y": 1.5 }, + { "matrix": [1, 9], "x": 9, "y": 1.5 }, + { "matrix": [1, 10], "x": 10, "y": 1.5 }, + { "matrix": [1, 11], "x": 11, "y": 1.5 }, + { "matrix": [1, 12], "x": 12, "y": 1.5 }, + { "matrix": [1, 13], "w": 2, "x": 13, "y": 1.5 }, + { "matrix": [1, 14], "x": 15.25, "y": 1.5 }, + { "matrix": [1, 15], "x": 16.25, "y": 1.5 }, + { "matrix": [1, 16], "x": 17.25, "y": 1.5 }, + { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 }, + { "matrix": [2, 1], "x": 1.5, "y": 2.5 }, + { "matrix": [2, 2], "x": 2.5, "y": 2.5 }, + { "matrix": [2, 3], "x": 3.5, "y": 2.5 }, + { "matrix": [2, 4], "x": 4.5, "y": 2.5 }, + { "matrix": [2, 5], "x": 5.5, "y": 2.5 }, + { "matrix": [2, 6], "x": 6.5, "y": 2.5 }, + { "matrix": [2, 7], "x": 7.5, "y": 2.5 }, + { "matrix": [2, 8], "x": 8.5, "y": 2.5 }, + { "matrix": [2, 9], "x": 9.5, "y": 2.5 }, + { "matrix": [2, 10], "x": 10.5, "y": 2.5 }, + { "matrix": [2, 11], "x": 11.5, "y": 2.5 }, + { "matrix": [2, 12], "x": 12.5, "y": 2.5 }, + { "matrix": [2, 14], "x": 15.25, "y": 2.5 }, + { "matrix": [2, 15], "x": 16.25, "y": 2.5 }, + { "matrix": [2, 16], "x": 17.25, "y": 2.5 }, + { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 }, + { "matrix": [3, 1], "x": 1.75, "y": 3.5 }, + { "matrix": [3, 2], "x": 2.75, "y": 3.5 }, + { "matrix": [3, 3], "x": 3.75, "y": 3.5 }, + { "matrix": [3, 4], "x": 4.75, "y": 3.5 }, + { "matrix": [3, 5], "x": 5.75, "y": 3.5 }, + { "matrix": [3, 6], "x": 6.75, "y": 3.5 }, + { "matrix": [3, 7], "x": 7.75, "y": 3.5 }, + { "matrix": [3, 8], "x": 8.75, "y": 3.5 }, + { "matrix": [3, 9], "x": 9.75, "y": 3.5 }, + { "matrix": [3, 10], "x": 10.75, "y": 3.5 }, + { "matrix": [3, 11], "x": 11.75, "y": 3.5 }, + { "matrix": [2, 13], "x": 12.75, "y": 3.5 }, + { "matrix": [3, 12], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.5 }, + { "matrix": [4, 1], "x": 1.25, "y": 4.5 }, + { "matrix": [4, 2], "x": 2.25, "y": 4.5 }, + { "matrix": [4, 3], "x": 3.25, "y": 4.5 }, + { "matrix": [4, 4], "x": 4.25, "y": 4.5 }, + { "matrix": [4, 5], "x": 5.25, "y": 4.5 }, + { "matrix": [4, 6], "x": 6.25, "y": 4.5 }, + { "matrix": [4, 7], "x": 7.25, "y": 4.5 }, + { "matrix": [4, 8], "x": 8.25, "y": 4.5 }, + { "matrix": [4, 9], "x": 9.25, "y": 4.5 }, + { "matrix": [4, 10], "x": 10.25, "y": 4.5 }, + { "matrix": [4, 11], "x": 11.25, "y": 4.5 }, + { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.5 }, + { "matrix": [4, 15], "x": 16.25, "y": 4.5 }, + { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.5 }, + { "matrix": [5, 1], "x": 1.5, "y": 5.5 }, + { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.5 }, + { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.5 }, + { "matrix": [5, 10], "w": 1.5, "x": 11, "y": 5.5 }, + { "matrix": [5, 11], "x": 12.5, "y": 5.5 }, + { "matrix": [5, 12], "w": 1.5, "x": 13.5, "y": 5.5 }, + { "matrix": [5, 14], "x": 15.25, "y": 5.5 }, + { "matrix": [5, 15], "x": 16.25, "y": 5.5 }, + { "matrix": [5, 16], "x": 17.25, "y": 5.5 } + ] + }, + "LAYOUT_tkl_iso_wkl": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6.5, "y": 0 }, + { "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "matrix": [0, 9], "x": 9.5, "y": 0 }, + { "matrix": [0, 10], "x": 11, "y": 0 }, + { "matrix": [0, 11], "x": 12, "y": 0 }, + { "matrix": [0, 12], "x": 13, "y": 0 }, + { "matrix": [0, 13], "x": 14, "y": 0 }, + { "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "matrix": [0, 16], "x": 17.25, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1.5 }, + { "matrix": [1, 1], "x": 1, "y": 1.5 }, + { "matrix": [1, 2], "x": 2, "y": 1.5 }, + { "matrix": [1, 3], "x": 3, "y": 1.5 }, + { "matrix": [1, 4], "x": 4, "y": 1.5 }, + { "matrix": [1, 5], "x": 5, "y": 1.5 }, + { "matrix": [1, 6], "x": 6, "y": 1.5 }, + { "matrix": [1, 7], "x": 7, "y": 1.5 }, + { "matrix": [1, 8], "x": 8, "y": 1.5 }, + { "matrix": [1, 9], "x": 9, "y": 1.5 }, + { "matrix": [1, 10], "x": 10, "y": 1.5 }, + { "matrix": [1, 11], "x": 11, "y": 1.5 }, + { "matrix": [1, 12], "x": 12, "y": 1.5 }, + { "matrix": [1, 13], "w": 2, "x": 13, "y": 1.5 }, + { "matrix": [1, 14], "x": 15.25, "y": 1.5 }, + { "matrix": [1, 15], "x": 16.25, "y": 1.5 }, + { "matrix": [1, 16], "x": 17.25, "y": 1.5 }, + { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 }, + { "matrix": [2, 1], "x": 1.5, "y": 2.5 }, + { "matrix": [2, 2], "x": 2.5, "y": 2.5 }, + { "matrix": [2, 3], "x": 3.5, "y": 2.5 }, + { "matrix": [2, 4], "x": 4.5, "y": 2.5 }, + { "matrix": [2, 5], "x": 5.5, "y": 2.5 }, + { "matrix": [2, 6], "x": 6.5, "y": 2.5 }, + { "matrix": [2, 7], "x": 7.5, "y": 2.5 }, + { "matrix": [2, 8], "x": 8.5, "y": 2.5 }, + { "matrix": [2, 9], "x": 9.5, "y": 2.5 }, + { "matrix": [2, 10], "x": 10.5, "y": 2.5 }, + { "matrix": [2, 11], "x": 11.5, "y": 2.5 }, + { "matrix": [2, 12], "x": 12.5, "y": 2.5 }, + { "matrix": [2, 14], "x": 15.25, "y": 2.5 }, + { "matrix": [2, 15], "x": 16.25, "y": 2.5 }, + { "matrix": [2, 16], "x": 17.25, "y": 2.5 }, + { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 }, + { "matrix": [3, 1], "x": 1.75, "y": 3.5 }, + { "matrix": [3, 2], "x": 2.75, "y": 3.5 }, + { "matrix": [3, 3], "x": 3.75, "y": 3.5 }, + { "matrix": [3, 4], "x": 4.75, "y": 3.5 }, + { "matrix": [3, 5], "x": 5.75, "y": 3.5 }, + { "matrix": [3, 6], "x": 6.75, "y": 3.5 }, + { "matrix": [3, 7], "x": 7.75, "y": 3.5 }, + { "matrix": [3, 8], "x": 8.75, "y": 3.5 }, + { "matrix": [3, 9], "x": 9.75, "y": 3.5 }, + { "matrix": [3, 10], "x": 10.75, "y": 3.5 }, + { "matrix": [3, 11], "x": 11.75, "y": 3.5 }, + { "matrix": [2, 13], "x": 12.75, "y": 3.5 }, + { "matrix": [3, 12], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.5 }, + { "matrix": [4, 1], "x": 1.25, "y": 4.5 }, + { "matrix": [4, 2], "x": 2.25, "y": 4.5 }, + { "matrix": [4, 3], "x": 3.25, "y": 4.5 }, + { "matrix": [4, 4], "x": 4.25, "y": 4.5 }, + { "matrix": [4, 5], "x": 5.25, "y": 4.5 }, + { "matrix": [4, 6], "x": 6.25, "y": 4.5 }, + { "matrix": [4, 7], "x": 7.25, "y": 4.5 }, + { "matrix": [4, 8], "x": 8.25, "y": 4.5 }, + { "matrix": [4, 9], "x": 9.25, "y": 4.5 }, + { "matrix": [4, 10], "x": 10.25, "y": 4.5 }, + { "matrix": [4, 11], "x": 11.25, "y": 4.5 }, + { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.5 }, + { "matrix": [4, 15], "x": 16.25, "y": 4.5 }, + { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.5 }, + { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.5 }, + { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.5 }, + { "matrix": [5, 10], "w": 1.5, "x": 11, "y": 5.5 }, + { "matrix": [5, 12], "w": 1.5, "x": 13.5, "y": 5.5 }, + { "matrix": [5, 14], "x": 15.25, "y": 5.5 }, + { "matrix": [5, 15], "x": 16.25, "y": 5.5 }, + { "matrix": [5, 16], "x": 17.25, "y": 5.5 } + ] + } + } +} diff --git a/keyboards/dnworks/9973/keymaps/default/keymap.c b/keyboards/dnworks/9973/keymaps/default/keymap.c new file mode 100644 index 0000000000..8307bf9e76 --- /dev/null +++ b/keyboards/dnworks/9973/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* +Copyright 2023 zeix (@itsme-zeix) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT_all( + KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_DEL, KC_HOME, 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_INS, KC_END, 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_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_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT) +}; diff --git a/keyboards/dnworks/9973/keymaps/via/keymap.c b/keyboards/dnworks/9973/keymaps/via/keymap.c new file mode 100644 index 0000000000..8307bf9e76 --- /dev/null +++ b/keyboards/dnworks/9973/keymaps/via/keymap.c @@ -0,0 +1,27 @@ +/* +Copyright 2023 zeix (@itsme-zeix) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT_all( + KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, 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_BSPC, KC_DEL, KC_HOME, 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_INS, KC_END, 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_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_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT) +}; diff --git a/keyboards/dnworks/9973/keymaps/via/rules.mk b/keyboards/dnworks/9973/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/dnworks/9973/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/dnworks/9973/readme.md b/keyboards/dnworks/9973/readme.md new file mode 100644 index 0000000000..790f236cb7 --- /dev/null +++ b/keyboards/dnworks/9973/readme.md @@ -0,0 +1,27 @@ +# 997.3 TKL + +![997.3 TKL](https://i.imgur.com/iPPLKg1h.jpeg) + +PCB that supports the 997.3 TKL designed by dnworks, including its variants. + +* Keyboard Maintainer: [Zeix](https://github.com/itsme-zeix) +* Hardware Supported: 997.3 Solder PCB rev1 +* Hardware Availability: dnworks.co + +Make example for this keyboard (after setting up your build environment): + + make dnworks/997pt3:default + +Flashing example for this keyboard: + + make dnworks/997pt3:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard +* **Physical reset button**: Briefly press the `RESET` button twice or short the `USB_BOOT` and `GND` pads and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/dnworks/9973/rules.mk b/keyboards/dnworks/9973/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/dnworks/9973/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From a6521b8521f56f39c3aa5054bf04307190de9035 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Fri, 17 Nov 2023 01:48:24 +0800 Subject: [PATCH 392/496] [Doc] Improve converter references (#21801) --- docs/feature_converters.md | 41 +++++++++++++------------------------- 1 file changed, 14 insertions(+), 27 deletions(-) diff --git a/docs/feature_converters.md b/docs/feature_converters.md index b1abfa373a..11bdbed576 100644 --- a/docs/feature_converters.md +++ b/docs/feature_converters.md @@ -1,12 +1,10 @@ # Converters -Since many drop-in replacement controllers now exist, we've done our best to make them easy to use in existing designs. +This page documents the automated process for converting keyboards to use drop-in replacement controllers. This process is designed to be easy to use and can be completed in a few simple steps. -This page documents the handy automated process for converting keyboards. +## Supported Converters -### Supported Converters - -Currently the following converters are available: +The following converters are available at this time: | From | To | |------------|-------------------| @@ -28,14 +26,10 @@ Currently the following converters are available: | `elite_c` | `helios` | | `elite_c` | `liatris` | -See below for more in depth information on each converter. ## Overview -Each converter category is broken down by its declared `pin compatibility`. -This ensures that only valid combinations are attempted. - -You can generate the firmware by appending `-e CONVERT_TO=` to your compile/flash command. For example: +Each converter category is broken down by its declared `pin compatibility`. This ensures that only valid combinations are attempted. You can generate the firmware by appending `-e CONVERT_TO=` to your compile/flash command. For example: ```sh qmk flash -c -kb keebio/bdn9/rev1 -km default -e CONVERT_TO=proton_c @@ -59,14 +53,12 @@ Once a converter is enabled, it exposes the `CONVERT_TO_` flag ### Pin Compatibility -To ensure compatibility, provide validation, and power future workflows, a keyboard should declare its `pin compatibility`. For legacy reasons, this is currently assumed to be `promicro`. +To ensure compatibility, provide validation, and enable future workflows, a keyboard should declare its `pin compatibility`. For legacy reasons, this is currently assumed to be `promicro`. The following pin compatibility interfaces are currently defined: -Currently the following pin compatibility interfaces are defined: - -| Pinout | Notes | -|------------|-----------------------------------| -| `promicro` | Includes RX/TX LEDs | -| `elite_c` | Includes bottom row pins, no LEDs | +| Pin Compatibility | Notes | +|-------------------|-----------------------------------| +| `promicro` | Includes RX/TX LEDs | +| `elite_c` | Includes bottom row pins, no LEDs | To declare the base for conversions, add this line to your keyboard's `rules.mk`: @@ -140,7 +132,7 @@ The following defaults are based on what has been implemented for [RP2040](platf ### SparkFun Pro Micro - RP2040, Blok, Bit-C PRO and Michi :id=promicro_rp2040 -Currently identical to [Adafruit KB2040](#kb2040). +Feature set is identical to [Adafruit KB2040](#kb2040). ### STeMCell :id=stemcell @@ -150,9 +142,7 @@ There are two versions of STeMCell available, with different pinouts: - v2.0.0 (pre-release v1.0.1, v1.0.2) Default official firmware only supports v2.0.0 STeMCell. -STeMCell has support to swap UART and I2C pins, to enable single-wire uart communication in STM chips. - -The following additional flags has to be used while compiling, based on the pin used for split communication. +STeMCell has support to swap UART and I2C pins to enable single-wire uart communication in STM chips. The following additional flags has to be used while compiling, based on the pin used for split communication: | Split Pin | Compile flags | |-----------|---------------| @@ -173,11 +163,8 @@ The Bonsai C4 only has one on-board LED (B2), and by default, both the Pro Micro ### RP2040 Community Edition - Elite-Pi, Helios, and Liatris :id=rp2040_ce -Feature set currently identical to [Adafruit KB2040](#kb2040). +Feature set is identical to [Adafruit KB2040](#kb2040). VBUS detection is enabled by default for superior split keyboard support. For more information, refer to the [Community Edition pinout](platformdev_rp2040.md#rp2040_ce) docs. -Enables VBUS detection by default for superior split keyboard support. - -For more information, refer to the [RP2040 Community Edition](platformdev_rp2040.md#rp2040_ce) docs. ## Elite-C @@ -202,8 +189,8 @@ Converter summary: ### STeMCell :id=stemcell_elite -Currently identical to [STeMCell](#stemcell) with support for the additional bottom row of pins. +Identical to [Pro Micro - STeMCell](#stemcell) with support for the additional bottom row of pins. ### RP2040 Community Edition :id=rp2040_ce_elite -Currently identical to [RP2040 Community Edition](#rp2040_ce), with support for the additional bottom row of pins. +Identical to [Pro Micro - RP2040 Community Edition](#rp2040_ce) with support for the additional bottom row of pins. From 62cca5c43a63e694da4596dc41d1251f9c530198 Mon Sep 17 00:00:00 2001 From: Sergey Vlasov Date: Sun, 19 Nov 2023 00:26:00 +0300 Subject: [PATCH 393/496] `qmk find`: Fix failure with multiple filters (#22497) When multiple `-f FILTER` options were specified, `qmk find` did not return anything at all instead of printing the list of entries that matched all of the specified filters. The problem was that the statement in `_filter_keymap_targets()` that filled `targets` had a wrong indent and therefore was executed for every filter instead of only once after applying all filters, and `valid_keymaps` was actually an iterator and therefore could be used only once. Moving the statement outside of the loop fixes the problem. --- lib/python/qmk/search.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/python/qmk/search.py b/lib/python/qmk/search.py index 301d69c6c2..1140abe69d 100644 --- a/lib/python/qmk/search.py +++ b/lib/python/qmk/search.py @@ -172,7 +172,7 @@ def _filter_keymap_targets(target_list: List[Tuple[str, str]], filters: List[str cli.log.warning(f'Unrecognized filter expression: {filter_expr}') continue - targets = [KeyboardKeymapBuildTarget(keyboard=e[0], keymap=e[1], json=e[2]) for e in valid_keymaps] + targets = [KeyboardKeymapBuildTarget(keyboard=e[0], keymap=e[1], json=e[2]) for e in valid_keymaps] return targets From e279c78ba3054ebc2e294dd91ea98341cc509d1e Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 20 Nov 2023 15:41:48 +0000 Subject: [PATCH 394/496] Enable linking of encoders to switch within layout macros (#22264) --- data/schemas/keyboard.jsonschema | 1 + docs/reference_info_json.md | 2 ++ keyboards/drop/sense75/info.json | 2 +- lib/python/qmk/info.py | 28 ++++++++++++++++ lib/python/qmk/keyboard.py | 55 +++++++++++++++++++++++++++++++- 5 files changed, 86 insertions(+), 2 deletions(-) diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 9fc455530c..2996958084 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -348,6 +348,7 @@ "additionalProperties": false, "required": ["x", "y"], "properties": { + "encoder": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "label": { "type": "string", "pattern": "^[^\\n]*$" diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 4a70a4bb6f..e102b9bfb9 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -324,6 +324,8 @@ The ISO enter key is represented by a 1.25u×2uh key. Renderers which utilize in * `w` * The width of the key, in key units. * Default: `1` (1u) + * `encoder` + * The index of an encoder this key should be linked to * Example: `{"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}` ## Leader Key :id=leader-key diff --git a/keyboards/drop/sense75/info.json b/keyboards/drop/sense75/info.json index dbefc108f2..052b494375 100644 --- a/keyboards/drop/sense75/info.json +++ b/keyboards/drop/sense75/info.json @@ -44,7 +44,7 @@ {"matrix": [0, 11], "label": "F11", "x": 11.75, "y": 0}, {"matrix": [0, 12], "label": "F12", "x": 12.75, "y": 0}, {"matrix": [0, 13], "label": "PrtSc", "x": 14, "y": 0}, - {"matrix": [0, 14], "label": "Mute", "x": 15.25, "y": 0}, + {"matrix": [0, 14], "encoder":0, "label": "Mute", "x": 15.25, "y": 0}, {"matrix": [1, 0], "label": "~", "x": 0, "y": 1.25}, {"matrix": [1, 1], "label": "!", "x": 1, "y": 1.25}, {"matrix": [1, 2], "label": "@", "x": 2, "y": 1.25}, diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index fe829a724a..3efd34555c 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -55,6 +55,29 @@ def _get_key_left_position(key): return key['x'] - 0.25 if key.get('h', 1) == 2 and key.get('w', 1) == 1.25 else key['x'] +def _find_invalid_encoder_index(info_data): + """Perform additional validation of encoders + """ + enc_count = len(info_data.get('encoder', {}).get('rotary', [])) + enc_count += len(info_data.get('split', {}).get('encoder', {}).get('right', {}).get('rotary', [])) + + ret = [] + layouts = info_data.get('layouts', {}) + for layout_name, layout_data in layouts.items(): + found = set() + for key in layout_data['layout']: + if 'encoder' in key: + if enc_count == 0: + ret.append((layout_name, key['encoder'], 'non-configured')) + elif key['encoder'] >= enc_count: + ret.append((layout_name, key['encoder'], 'out of bounds')) + elif key['encoder'] in found: + ret.append((layout_name, key['encoder'], 'duplicate')) + found.add(key['encoder']) + + return ret + + def _additional_validation(keyboard, info_data): """Non schema checks """ @@ -105,6 +128,11 @@ def _additional_validation(keyboard, info_data): if not decl.get("aliases", []): _log_error(info_data, f'Keycode {decl["key"]} has no short form alias') + # encoder IDs in layouts must be in range and not duplicated + found = _find_invalid_encoder_index(info_data) + for layout_name, encoder_index, reason in found: + _log_error(info_data, f'Layout "{layout_name}" contains {reason} encoder index {encoder_index}.') + def _validate(keyboard, info_data): """Perform various validation on the provided info.json data diff --git a/lib/python/qmk/keyboard.py b/lib/python/qmk/keyboard.py index 1aa63687d4..4e525731f7 100644 --- a/lib/python/qmk/keyboard.py +++ b/lib/python/qmk/keyboard.py @@ -30,6 +30,28 @@ BOX_DRAWING_CHARACTERS = { "h": "_", }, } +ENC_DRAWING_CHARACTERS = { + "unicode": { + "tl": "╭", + "tr": "╮", + "bl": "╰", + "br": "╯", + "vl": "▲", + "vr": "▼", + "v": "│", + "h": "─", + }, + "ascii": { + "tl": " ", + "tr": " ", + "bl": "\\", + "br": "/", + "v": "|", + "vl": "/", + "vr": "\\", + "h": "_", + }, +} class AllKeyboards: @@ -213,7 +235,9 @@ def render_layout(layout_data, render_ascii, key_labels=None): else: label = key.get('label', '') - if x >= 0.25 and w == 1.25 and h == 2: + if 'encoder' in key: + render_encoder(textpad, x, y, w, h, label, style) + elif x >= 0.25 and w == 1.25 and h == 2: render_key_isoenter(textpad, x, y, w, h, label, style) elif w == 1.5 and h == 2: render_key_baenter(textpad, x, y, w, h, label, style) @@ -331,3 +355,32 @@ def render_key_baenter(textpad, x, y, w, h, label, style): textpad[y + 3][x - 3:x + w] = crn_line textpad[y + 4][x - 3:x + w] = lab_line textpad[y + 5][x - 3:x + w] = bot_line + + +def render_encoder(textpad, x, y, w, h, label, style): + box_chars = ENC_DRAWING_CHARACTERS[style] + x = ceil(x * 4) + y = ceil(y * 3) + w = ceil(w * 4) + h = ceil(h * 3) + + label_len = w - 2 + label_leftover = label_len - len(label) + + if len(label) > label_len: + label = label[:label_len] + + label_blank = ' ' * label_len + label_border = box_chars['h'] * label_len + label_middle = label + ' ' * label_leftover + + top_line = array('u', box_chars['tl'] + label_border + box_chars['tr']) + lab_line = array('u', box_chars['vl'] + label_middle + box_chars['vr']) + mid_line = array('u', box_chars['v'] + label_blank + box_chars['v']) + bot_line = array('u', box_chars['bl'] + label_border + box_chars['br']) + + textpad[y][x:x + w] = top_line + textpad[y + 1][x:x + w] = lab_line + for i in range(h - 3): + textpad[y + i + 2][x:x + w] = mid_line + textpad[y + h - 1][x:x + w] = bot_line From dda6e7fb36f20821c60fbd7638c9bd016ef217d6 Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 21 Nov 2023 02:48:23 +1100 Subject: [PATCH 395/496] LED drivers: register naming cleanups (#22436) --- drivers/led/aw20216s.c | 47 ++--- drivers/led/aw20216s.h | 22 +++ drivers/led/issi/is31fl3218-simple.c | 11 +- drivers/led/issi/is31fl3218-simple.h | 8 + drivers/led/issi/is31fl3218.c | 11 +- drivers/led/issi/is31fl3218.h | 8 + drivers/led/issi/is31fl3731-simple.c | 40 +--- drivers/led/issi/is31fl3731-simple.h | 24 +++ drivers/led/issi/is31fl3731.c | 40 +--- drivers/led/issi/is31fl3731.h | 24 +++ drivers/led/issi/is31fl3733-simple.c | 48 ++--- drivers/led/issi/is31fl3733-simple.h | 21 +- drivers/led/issi/is31fl3733.c | 48 ++--- drivers/led/issi/is31fl3733.h | 21 +- drivers/led/issi/is31fl3736-simple.c | 48 ++--- drivers/led/issi/is31fl3736-simple.h | 21 +- drivers/led/issi/is31fl3736.c | 48 ++--- drivers/led/issi/is31fl3736.h | 21 +- drivers/led/issi/is31fl3737-simple.c | 48 ++--- drivers/led/issi/is31fl3737-simple.h | 21 +- drivers/led/issi/is31fl3737.c | 48 ++--- drivers/led/issi/is31fl3737.h | 21 +- drivers/led/issi/is31fl3741-simple.c | 50 ++--- drivers/led/issi/is31fl3741-simple.h | 23 ++- drivers/led/issi/is31fl3741.c | 50 ++--- drivers/led/issi/is31fl3741.h | 23 ++- drivers/led/snled27351-simple.c | 42 ++-- drivers/led/snled27351-simple.h | 185 ++++++++---------- drivers/led/snled27351.c | 42 ++-- drivers/led/snled27351.h | 185 ++++++++---------- keyboards/input_club/k_type/is31fl3733-dual.c | 48 ++--- keyboards/input_club/k_type/is31fl3733-dual.h | 19 ++ keyboards/keychron/c1_pro/ansi/rgb/config.h | 2 +- keyboards/keychron/c1_pro/ansi/white/config.h | 2 +- keyboards/keychron/q0/plus/config.h | 2 +- keyboards/keychron/q10/config.h | 2 +- keyboards/keychron/q1v2/config.h | 2 +- keyboards/keychron/q2/config.h | 2 +- keyboards/keychron/q3/config.h | 2 +- keyboards/keychron/q4/ansi/v1/config.h | 3 +- keyboards/keychron/q65/config.h | 2 +- keyboards/keychron/q7/config.h | 2 +- keyboards/keychron/q8/config.h | 2 +- keyboards/keychron/s1/ansi/rgb/config.h | 2 +- keyboards/keychron/s1/ansi/white/config.h | 2 +- keyboards/keychron/v1/config.h | 2 +- keyboards/keychron/v10/config.h | 2 +- keyboards/keychron/v2/config.h | 2 +- keyboards/keychron/v3/config.h | 2 +- keyboards/keychron/v7/config.h | 2 +- keyboards/keychron/v8/config.h | 2 +- 51 files changed, 684 insertions(+), 671 deletions(-) diff --git a/drivers/led/aw20216s.c b/drivers/led/aw20216s.c index 8f3ebec510..ab7f3ccb42 100644 --- a/drivers/led/aw20216s.c +++ b/drivers/led/aw20216s.c @@ -19,39 +19,16 @@ #include "wait.h" #include "spi_master.h" -/* The AW20216S appears to be somewhat similar to the IS31FL743, although quite - * a few things are different, such as the command byte format and page ordering. - * The LED addresses start from 0x00 instead of 0x01. - */ -#define AW20216S_ID 0b1010 << 4 - -#define AW20216S_PAGE_FUNCTION 0x00 << 1 // PG0, Function registers -#define AW20216S_PAGE_PWM 0x01 << 1 // PG1, LED PWM control -#define AW20216S_PAGE_SCALING 0x02 << 1 // PG2, LED current scaling control -#define AW20216S_PAGE_PATCHOICE 0x03 << 1 // PG3, Pattern choice? -#define AW20216S_PAGE_PWMSCALING 0x04 << 1 // PG4, LED PWM + Scaling control? - -#define AW20216S_WRITE 0 -#define AW20216S_READ 1 - -#define AW20216S_REG_CONFIGURATION 0x00 // PG0 -#define AW20216S_REG_GLOBALCURRENT 0x01 // PG0 -#define AW20216S_REG_RESET 0x2F // PG0 -#define AW20216S_REG_MIXFUNCTION 0x46 // PG0 - -// Default value of AW20216S_REG_CONFIGURATION -// D7:D4 = 1011, SWSEL (SW1~SW12 active) -// D3 = 0?, reserved (apparently this should be 1 but it doesn't seem to matter) -// D2:D1 = 00, OSDE (open/short detection enable) -// D0 = 0, CHIPEN (write 1 to enable LEDs when hardware enable pulled high) -#define AW20216S_CONFIG_DEFAULT 0b10110000 -#define AW20216S_MIXCR_DEFAULT 0b00000000 -#define AW20216S_RESET_CMD 0xAE -#define AW20216S_CHIPEN 1 -#define AW20216S_LPEN (0x01 << 1) - #define AW20216S_PWM_REGISTER_COUNT 216 +#ifndef AW20216S_CONFIGURATION +# define AW20216S_CONFIGURATION (AW20216S_CONFIGURATION_SWSEL_1_12 | AW20216S_CONFIGURATION_CHIPEN) +#endif + +#ifndef AW20216S_MIX_FUNCTION +# define AW20216S_MIX_FUNCTION (AW20216S_MIX_FUNCTION_LPEN) +#endif + #ifndef AW20216S_SCALING_MAX # define AW20216S_SCALING_MAX 150 #endif @@ -102,7 +79,7 @@ static inline bool aw20216s_write_register(pin_t cs_pin, uint8_t page, uint8_t r } void aw20216s_soft_reset(pin_t cs_pin) { - aw20216s_write_register(cs_pin, AW20216S_PAGE_FUNCTION, AW20216S_REG_RESET, AW20216S_RESET_CMD); + aw20216s_write_register(cs_pin, AW20216S_PAGE_FUNCTION, AW20216S_FUNCTION_REG_RESET, AW20216S_RESET_MAGIC); } static void aw20216s_init_scaling(pin_t cs_pin) { @@ -114,16 +91,16 @@ static void aw20216s_init_scaling(pin_t cs_pin) { static inline void aw20216s_init_current_limit(pin_t cs_pin) { // Push config - aw20216s_write_register(cs_pin, AW20216S_PAGE_FUNCTION, AW20216S_REG_GLOBALCURRENT, AW20216S_GLOBAL_CURRENT_MAX); + aw20216s_write_register(cs_pin, AW20216S_PAGE_FUNCTION, AW20216S_FUNCTION_REG_GLOBAL_CURRENT, AW20216S_GLOBAL_CURRENT_MAX); } static inline void aw20216s_soft_enable(pin_t cs_pin) { // Push config - aw20216s_write_register(cs_pin, AW20216S_PAGE_FUNCTION, AW20216S_REG_CONFIGURATION, AW20216S_CONFIG_DEFAULT | AW20216S_CHIPEN); + aw20216s_write_register(cs_pin, AW20216S_PAGE_FUNCTION, AW20216S_FUNCTION_REG_CONFIGURATION, AW20216S_CONFIGURATION); } static inline void aw20216s_auto_lowpower(pin_t cs_pin) { - aw20216s_write_register(cs_pin, AW20216S_PAGE_FUNCTION, AW20216S_REG_MIXFUNCTION, AW20216S_MIXCR_DEFAULT | AW20216S_LPEN); + aw20216s_write_register(cs_pin, AW20216S_PAGE_FUNCTION, AW20216S_FUNCTION_REG_MIX_FUNCTION, AW20216S_MIX_FUNCTION); } void aw20216s_init_drivers(void) { diff --git a/drivers/led/aw20216s.h b/drivers/led/aw20216s.h index d79d632084..38a0c92b2f 100644 --- a/drivers/led/aw20216s.h +++ b/drivers/led/aw20216s.h @@ -52,6 +52,28 @@ #define g_aw_leds g_aw20216s_leds // ======== +#define AW20216S_ID (0b1010 << 4) +#define AW20216S_WRITE 0 +#define AW20216S_READ 1 + +#define AW20216S_PAGE_FUNCTION (0x00 << 1) +#define AW20216S_PAGE_PWM (0x01 << 1) +#define AW20216S_PAGE_SCALING (0x02 << 1) +#define AW20216S_PAGE_PATTERN_CHOICE (0x03 << 1) +#define AW20216S_PAGE_PWM_SCALING (0x04 << 1) + +#define AW20216S_FUNCTION_REG_CONFIGURATION 0x00 +#define AW20216S_CONFIGURATION_SWSEL_1_12 (0b1011 << 4) +#define AW20216S_CONFIGURATION_CHIPEN (0b1 << 0) + +#define AW20216S_FUNCTION_REG_GLOBAL_CURRENT 0x01 + +#define AW20216S_FUNCTION_REG_RESET 0x2F +#define AW20216S_RESET_MAGIC 0xAE + +#define AW20216S_FUNCTION_REG_MIX_FUNCTION 0x46 +#define AW20216S_MIX_FUNCTION_LPEN (0b1 << 1) + #if defined(RGB_MATRIX_AW20216S) # define AW20216S_LED_COUNT RGB_MATRIX_LED_COUNT #endif diff --git a/drivers/led/issi/is31fl3218-simple.c b/drivers/led/issi/is31fl3218-simple.c index ea9d76ddbb..ce28c51d18 100644 --- a/drivers/led/issi/is31fl3218-simple.c +++ b/drivers/led/issi/is31fl3218-simple.c @@ -17,13 +17,6 @@ #include #include "i2c_master.h" -// These are the register addresses -#define IS31FL3218_REG_SHUTDOWN 0x00 -#define IS31FL3218_REG_PWM 0x01 -#define IS31FL3218_REG_CONTROL 0x13 -#define IS31FL3218_REG_UPDATE 0x16 -#define IS31FL3218_REG_RESET 0x17 - #define IS31FL3218_PWM_REGISTER_COUNT 18 #define IS31FL3218_LED_CONTROL_REGISTER_COUNT 3 @@ -86,7 +79,7 @@ void is31fl3218_init(void) { // turn off all LEDs in the LED control register for (uint8_t i = 0; i < IS31FL3218_LED_CONTROL_REGISTER_COUNT; i++) { - is31fl3218_write_register(IS31FL3218_REG_CONTROL + i, 0x00); + is31fl3218_write_register(IS31FL3218_REG_LED_CONTROL_1 + i, 0x00); } // Load PWM registers and LED Control register data @@ -146,7 +139,7 @@ void is31fl3218_update_pwm_buffers(void) { void is31fl3218_update_led_control_registers(void) { if (g_led_control_registers_update_required) { for (int i = 0; i < IS31FL3218_LED_CONTROL_REGISTER_COUNT; i++) { - is31fl3218_write_register(IS31FL3218_REG_CONTROL + i, g_led_control_registers[i]); + is31fl3218_write_register(IS31FL3218_REG_LED_CONTROL_1 + i, g_led_control_registers[i]); } g_led_control_registers_update_required = false; diff --git a/drivers/led/issi/is31fl3218-simple.h b/drivers/led/issi/is31fl3218-simple.h index 0b5abca341..9492817809 100644 --- a/drivers/led/issi/is31fl3218-simple.h +++ b/drivers/led/issi/is31fl3218-simple.h @@ -21,6 +21,14 @@ #include "progmem.h" #include "util.h" +#define IS31FL3218_REG_SHUTDOWN 0x00 +#define IS31FL3218_REG_PWM 0x01 +#define IS31FL3218_REG_LED_CONTROL_1 0x13 +#define IS31FL3218_REG_LED_CONTROL_2 0x14 +#define IS31FL3218_REG_LED_CONTROL_3 0x15 +#define IS31FL3218_REG_UPDATE 0x16 +#define IS31FL3218_REG_RESET 0x17 + #define IS31FL3218_I2C_ADDRESS 0x54 #if defined(LED_MATRIX_IS31FL3218) diff --git a/drivers/led/issi/is31fl3218.c b/drivers/led/issi/is31fl3218.c index 357cb1ab55..39db09d518 100644 --- a/drivers/led/issi/is31fl3218.c +++ b/drivers/led/issi/is31fl3218.c @@ -17,13 +17,6 @@ #include #include "i2c_master.h" -// These are the register addresses -#define IS31FL3218_REG_SHUTDOWN 0x00 -#define IS31FL3218_REG_PWM 0x01 -#define IS31FL3218_REG_CONTROL 0x13 -#define IS31FL3218_REG_UPDATE 0x16 -#define IS31FL3218_REG_RESET 0x17 - #define IS31FL3218_PWM_REGISTER_COUNT 18 #define IS31FL3218_LED_CONTROL_REGISTER_COUNT 3 @@ -86,7 +79,7 @@ void is31fl3218_init(void) { // turn off all LEDs in the LED control register for (uint8_t i = 0; i < IS31FL3218_LED_CONTROL_REGISTER_COUNT; i++) { - is31fl3218_write_register(IS31FL3218_REG_CONTROL + i, 0x00); + is31fl3218_write_register(IS31FL3218_REG_LED_CONTROL_1 + i, 0x00); } // Load PWM registers and LED Control register data @@ -162,7 +155,7 @@ void is31fl3218_update_pwm_buffers(void) { void is31fl3218_update_led_control_registers(void) { if (g_led_control_registers_update_required) { for (int i = 0; i < IS31FL3218_LED_CONTROL_REGISTER_COUNT; i++) { - is31fl3218_write_register(IS31FL3218_REG_CONTROL + i, g_led_control_registers[i]); + is31fl3218_write_register(IS31FL3218_REG_LED_CONTROL_1 + i, g_led_control_registers[i]); } g_led_control_registers_update_required = false; diff --git a/drivers/led/issi/is31fl3218.h b/drivers/led/issi/is31fl3218.h index 1d4f881e3c..ffa7f36d61 100644 --- a/drivers/led/issi/is31fl3218.h +++ b/drivers/led/issi/is31fl3218.h @@ -21,6 +21,14 @@ #include "progmem.h" #include "util.h" +#define IS31FL3218_REG_SHUTDOWN 0x00 +#define IS31FL3218_REG_PWM 0x01 +#define IS31FL3218_REG_LED_CONTROL_1 0x13 +#define IS31FL3218_REG_LED_CONTROL_2 0x14 +#define IS31FL3218_REG_LED_CONTROL_3 0x15 +#define IS31FL3218_REG_UPDATE 0x16 +#define IS31FL3218_REG_RESET 0x17 + #define IS31FL3218_I2C_ADDRESS 0x54 #if defined(RGB_MATRIX_IS31FL3218) diff --git a/drivers/led/issi/is31fl3731-simple.c b/drivers/led/issi/is31fl3731-simple.c index c6f1da5789..8dbfc3cd31 100644 --- a/drivers/led/issi/is31fl3731-simple.c +++ b/drivers/led/issi/is31fl3731-simple.c @@ -22,26 +22,6 @@ #include "i2c_master.h" #include "wait.h" -#define IS31FL3731_REG_CONFIG 0x00 -#define IS31FL3731_REG_CONFIG_PICTUREMODE 0x00 -#define IS31FL3731_REG_CONFIG_AUTOPLAYMODE 0x08 -#define IS31FL3731_REG_CONFIG_AUDIOPLAYMODE 0x18 - -#define IS31FL3731_CONF_PICTUREMODE 0x00 -#define IS31FL3731_CONF_AUTOFRAMEMODE 0x04 -#define IS31FL3731_CONF_AUDIOMODE 0x08 - -#define IS31FL3731_REG_PICTUREFRAME 0x01 - -// Not defined in the datasheet -- See AN for IC -#define IS31FL3731_REG_GHOST_IMAGE_PREVENTION 0xC2 // Set bit 4 to enable de-ghosting - -#define IS31FL3731_REG_SHUTDOWN 0x0A -#define IS31FL3731_REG_AUDIOSYNC 0x06 - -#define IS31FL3731_COMMANDREGISTER 0xFD -#define IS31FL3731_BANK_FUNCTIONREG 0x0B // helpfully called 'page nine' - #define IS31FL3731_PWM_REGISTER_COUNT 144 #define IS31FL3731_LED_CONTROL_REGISTER_COUNT 18 @@ -144,26 +124,26 @@ void is31fl3731_init(uint8_t addr) { // then disable software shutdown. // select "function register" bank - is31fl3731_write_register(addr, IS31FL3731_COMMANDREGISTER, IS31FL3731_BANK_FUNCTIONREG); + is31fl3731_write_register(addr, IS31FL3731_REG_COMMAND, IS31FL3731_COMMAND_FUNCTION); // enable software shutdown - is31fl3731_write_register(addr, IS31FL3731_REG_SHUTDOWN, 0x00); + is31fl3731_write_register(addr, IS31FL3731_FUNCTION_REG_SHUTDOWN, 0x00); #ifdef IS31FL3731_DEGHOST // set to enable de-ghosting of the array - is31fl3731_write_register(addr, IS31FL3731_REG_GHOST_IMAGE_PREVENTION, 0x10); + is31fl3731_write_register(addr, IS31FL3731_FUNCTION_REG_GHOST_IMAGE_PREVENTION, IS31FL3731_GHOST_IMAGE_PREVENTION_GEN); #endif // this delay was copied from other drivers, might not be needed wait_ms(10); // picture mode - is31fl3731_write_register(addr, IS31FL3731_REG_CONFIG, IS31FL3731_REG_CONFIG_PICTUREMODE); + is31fl3731_write_register(addr, IS31FL3731_FUNCTION_REG_CONFIG, IS31FL3731_CONFIG_MODE_PICTURE); // display frame 0 - is31fl3731_write_register(addr, IS31FL3731_REG_PICTUREFRAME, 0x00); + is31fl3731_write_register(addr, IS31FL3731_FUNCTION_REG_PICTURE_DISPLAY, 0x00); // audio sync off - is31fl3731_write_register(addr, IS31FL3731_REG_AUDIOSYNC, 0x00); + is31fl3731_write_register(addr, IS31FL3731_FUNCTION_REG_AUDIO_SYNC, 0x00); // select bank 0 - is31fl3731_write_register(addr, IS31FL3731_COMMANDREGISTER, 0); + is31fl3731_write_register(addr, IS31FL3731_REG_COMMAND, IS31FL3731_COMMAND_FRAME_1); // turn off all LEDs in the LED control register for (int i = 0; i < IS31FL3731_LED_CONTROL_REGISTER_COUNT; i++) { @@ -181,15 +161,15 @@ void is31fl3731_init(uint8_t addr) { } // select "function register" bank - is31fl3731_write_register(addr, IS31FL3731_COMMANDREGISTER, IS31FL3731_BANK_FUNCTIONREG); + is31fl3731_write_register(addr, IS31FL3731_REG_COMMAND, IS31FL3731_COMMAND_FUNCTION); // disable software shutdown - is31fl3731_write_register(addr, IS31FL3731_REG_SHUTDOWN, 0x01); + is31fl3731_write_register(addr, IS31FL3731_FUNCTION_REG_SHUTDOWN, 0x01); // select bank 0 and leave it selected. // most usage after initialization is just writing PWM buffers in bank 0 // as there's not much point in double-buffering - is31fl3731_write_register(addr, IS31FL3731_COMMANDREGISTER, 0); + is31fl3731_write_register(addr, IS31FL3731_REG_COMMAND, IS31FL3731_COMMAND_FRAME_1); } void is31fl3731_set_value(int index, uint8_t value) { diff --git a/drivers/led/issi/is31fl3731-simple.h b/drivers/led/issi/is31fl3731-simple.h index 32b42feab0..4d173847dd 100644 --- a/drivers/led/issi/is31fl3731-simple.h +++ b/drivers/led/issi/is31fl3731-simple.h @@ -50,6 +50,30 @@ #define g_is31_leds g_is31fl3731_leds // ======== +#define IS31FL3731_REG_COMMAND 0xFD +#define IS31FL3731_COMMAND_FRAME_1 0x00 +#define IS31FL3731_COMMAND_FRAME_2 0x01 +#define IS31FL3731_COMMAND_FRAME_3 0x02 +#define IS31FL3731_COMMAND_FRAME_4 0x03 +#define IS31FL3731_COMMAND_FRAME_5 0x04 +#define IS31FL3731_COMMAND_FRAME_6 0x05 +#define IS31FL3731_COMMAND_FRAME_7 0x06 +#define IS31FL3731_COMMAND_FRAME_8 0x07 +#define IS31FL3731_COMMAND_FUNCTION 0x0B + +#define IS31FL3731_FUNCTION_REG_CONFIG 0x00 +#define IS31FL3731_CONFIG_MODE_PICTURE 0x00 +#define IS31FL3731_CONFIG_MODE_AUTO_PLAY 0x08 +#define IS31FL3731_CONFIG_MODE_AUDIO_PLAY 0x18 + +#define IS31FL3731_FUNCTION_REG_PICTURE_DISPLAY 0x01 +#define IS31FL3731_FUNCTION_REG_AUDIO_SYNC 0x06 +#define IS31FL3731_FUNCTION_REG_SHUTDOWN 0x0A + +// Not defined in the datasheet -- See AN for IC +#define IS31FL3731_FUNCTION_REG_GHOST_IMAGE_PREVENTION 0xC2 +#define IS31FL3731_GHOST_IMAGE_PREVENTION_GEN 0x10 + #define IS31FL3731_I2C_ADDRESS_GND 0x74 #define IS31FL3731_I2C_ADDRESS_SCL 0x75 #define IS31FL3731_I2C_ADDRESS_SDA 0x76 diff --git a/drivers/led/issi/is31fl3731.c b/drivers/led/issi/is31fl3731.c index 6a64d89ecf..1ab8997731 100644 --- a/drivers/led/issi/is31fl3731.c +++ b/drivers/led/issi/is31fl3731.c @@ -21,26 +21,6 @@ #include "i2c_master.h" #include "wait.h" -#define IS31FL3731_REG_CONFIG 0x00 -#define IS31FL3731_REG_CONFIG_PICTUREMODE 0x00 -#define IS31FL3731_REG_CONFIG_AUTOPLAYMODE 0x08 -#define IS31FL3731_REG_CONFIG_AUDIOPLAYMODE 0x18 - -#define IS31FL3731_CONF_PICTUREMODE 0x00 -#define IS31FL3731_CONF_AUTOFRAMEMODE 0x04 -#define IS31FL3731_CONF_AUDIOMODE 0x08 - -#define IS31FL3731_REG_PICTUREFRAME 0x01 - -// Not defined in the datasheet -- See AN for IC -#define IS31FL3731_REG_GHOST_IMAGE_PREVENTION 0xC2 // Set bit 4 to enable de-ghosting - -#define IS31FL3731_REG_SHUTDOWN 0x0A -#define IS31FL3731_REG_AUDIOSYNC 0x06 - -#define IS31FL3731_COMMANDREGISTER 0xFD -#define IS31FL3731_BANK_FUNCTIONREG 0x0B // helpfully called 'page nine' - #define IS31FL3731_PWM_REGISTER_COUNT 144 #define IS31FL3731_LED_CONTROL_REGISTER_COUNT 18 @@ -141,26 +121,26 @@ void is31fl3731_init(uint8_t addr) { // then disable software shutdown. // select "function register" bank - is31fl3731_write_register(addr, IS31FL3731_COMMANDREGISTER, IS31FL3731_BANK_FUNCTIONREG); + is31fl3731_write_register(addr, IS31FL3731_REG_COMMAND, IS31FL3731_COMMAND_FUNCTION); // enable software shutdown - is31fl3731_write_register(addr, IS31FL3731_REG_SHUTDOWN, 0x00); + is31fl3731_write_register(addr, IS31FL3731_FUNCTION_REG_SHUTDOWN, 0x00); #ifdef IS31FL3731_DEGHOST // set to enable de-ghosting of the array - is31fl3731_write_register(addr, IS31FL3731_REG_GHOST_IMAGE_PREVENTION, 0x10); + is31fl3731_write_register(addr, IS31FL3731_FUNCTION_REG_GHOST_IMAGE_PREVENTION, IS31FL3731_GHOST_IMAGE_PREVENTION_GEN); #endif // this delay was copied from other drivers, might not be needed wait_ms(10); // picture mode - is31fl3731_write_register(addr, IS31FL3731_REG_CONFIG, IS31FL3731_REG_CONFIG_PICTUREMODE); + is31fl3731_write_register(addr, IS31FL3731_FUNCTION_REG_CONFIG, IS31FL3731_CONFIG_MODE_PICTURE); // display frame 0 - is31fl3731_write_register(addr, IS31FL3731_REG_PICTUREFRAME, 0x00); + is31fl3731_write_register(addr, IS31FL3731_FUNCTION_REG_PICTURE_DISPLAY, 0x00); // audio sync off - is31fl3731_write_register(addr, IS31FL3731_REG_AUDIOSYNC, 0x00); + is31fl3731_write_register(addr, IS31FL3731_FUNCTION_REG_AUDIO_SYNC, 0x00); // select bank 0 - is31fl3731_write_register(addr, IS31FL3731_COMMANDREGISTER, 0); + is31fl3731_write_register(addr, IS31FL3731_REG_COMMAND, IS31FL3731_COMMAND_FRAME_1); // turn off all LEDs in the LED control register for (int i = 0; i < IS31FL3731_LED_CONTROL_REGISTER_COUNT; i++) { @@ -178,15 +158,15 @@ void is31fl3731_init(uint8_t addr) { } // select "function register" bank - is31fl3731_write_register(addr, IS31FL3731_COMMANDREGISTER, IS31FL3731_BANK_FUNCTIONREG); + is31fl3731_write_register(addr, IS31FL3731_REG_COMMAND, IS31FL3731_COMMAND_FUNCTION); // disable software shutdown - is31fl3731_write_register(addr, IS31FL3731_REG_SHUTDOWN, 0x01); + is31fl3731_write_register(addr, IS31FL3731_FUNCTION_REG_SHUTDOWN, 0x01); // select bank 0 and leave it selected. // most usage after initialization is just writing PWM buffers in bank 0 // as there's not much point in double-buffering - is31fl3731_write_register(addr, IS31FL3731_COMMANDREGISTER, 0); + is31fl3731_write_register(addr, IS31FL3731_REG_COMMAND, IS31FL3731_COMMAND_FRAME_1); } void is31fl3731_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { diff --git a/drivers/led/issi/is31fl3731.h b/drivers/led/issi/is31fl3731.h index d7b512e4c4..b45cb2b07d 100644 --- a/drivers/led/issi/is31fl3731.h +++ b/drivers/led/issi/is31fl3731.h @@ -49,6 +49,30 @@ #define g_is31_leds g_is31fl3731_leds // ======== +#define IS31FL3731_REG_COMMAND 0xFD +#define IS31FL3731_COMMAND_FRAME_1 0x00 +#define IS31FL3731_COMMAND_FRAME_2 0x01 +#define IS31FL3731_COMMAND_FRAME_3 0x02 +#define IS31FL3731_COMMAND_FRAME_4 0x03 +#define IS31FL3731_COMMAND_FRAME_5 0x04 +#define IS31FL3731_COMMAND_FRAME_6 0x05 +#define IS31FL3731_COMMAND_FRAME_7 0x06 +#define IS31FL3731_COMMAND_FRAME_8 0x07 +#define IS31FL3731_COMMAND_FUNCTION 0x0B + +#define IS31FL3731_FUNCTION_REG_CONFIG 0x00 +#define IS31FL3731_CONFIG_MODE_PICTURE 0x00 +#define IS31FL3731_CONFIG_MODE_AUTO_PLAY 0x08 +#define IS31FL3731_CONFIG_MODE_AUDIO_PLAY 0x18 + +#define IS31FL3731_FUNCTION_REG_PICTURE_DISPLAY 0x01 +#define IS31FL3731_FUNCTION_REG_AUDIO_SYNC 0x06 +#define IS31FL3731_FUNCTION_REG_SHUTDOWN 0x0A + +// Not defined in the datasheet -- See AN for IC +#define IS31FL3731_FUNCTION_REG_GHOST_IMAGE_PREVENTION 0xC2 +#define IS31FL3731_GHOST_IMAGE_PREVENTION_GEN 0x10 + #define IS31FL3731_I2C_ADDRESS_GND 0x74 #define IS31FL3731_I2C_ADDRESS_SCL 0x75 #define IS31FL3731_I2C_ADDRESS_SDA 0x76 diff --git a/drivers/led/issi/is31fl3733-simple.c b/drivers/led/issi/is31fl3733-simple.c index 63e9f533e2..9f2444c253 100644 --- a/drivers/led/issi/is31fl3733-simple.c +++ b/drivers/led/issi/is31fl3733-simple.c @@ -23,22 +23,6 @@ #include "i2c_master.h" #include "wait.h" -#define IS31FL3733_COMMANDREGISTER 0xFD -#define IS31FL3733_COMMANDREGISTER_WRITELOCK 0xFE -#define IS31FL3733_INTERRUPTMASKREGISTER 0xF0 -#define IS31FL3733_INTERRUPTSTATUSREGISTER 0xF1 - -#define IS31FL3733_PAGE_LEDCONTROL 0x00 // PG0 -#define IS31FL3733_PAGE_PWM 0x01 // PG1 -#define IS31FL3733_PAGE_AUTOBREATH 0x02 // PG2 -#define IS31FL3733_PAGE_FUNCTION 0x03 // PG3 - -#define IS31FL3733_REG_CONFIGURATION 0x00 // PG3 -#define IS31FL3733_REG_GLOBALCURRENT 0x01 // PG3 -#define IS31FL3733_REG_RESET 0x11 // PG3 -#define IS31FL3733_REG_SW_PULLUP 0x0F // PG3 -#define IS31FL3733_REG_CS_PULLDOWN 0x10 // PG3 - #define IS31FL3733_PWM_REGISTER_COUNT 192 #define IS31FL3733_LED_CONTROL_REGISTER_COUNT 24 @@ -62,8 +46,8 @@ # define IS31FL3733_CSPULLDOWN IS31FL3733_PDR_0_OHM #endif -#ifndef IS31FL3733_GLOBALCURRENT -# define IS31FL3733_GLOBALCURRENT 0xFF +#ifndef IS31FL3733_GLOBAL_CURRENT +# define IS31FL3733_GLOBAL_CURRENT 0xFF #endif #ifndef IS31FL3733_SYNC_1 @@ -180,20 +164,20 @@ void is31fl3733_init(uint8_t addr, uint8_t sync) { // Sync is passed so set it according to the datasheet. // Unlock the command register. - is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC); // Select PG0 - is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_LEDCONTROL); + is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_LED_CONTROL); // Turn off all LEDs. for (int i = 0; i < IS31FL3733_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3733_write_register(addr, i, 0x00); } // Unlock the command register. - is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC); // Select PG1 - is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_PWM); + is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_PWM); // Set PWM on all LEDs to 0 // No need to setup Breath registers to PWM as that is the default. for (int i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i++) { @@ -201,18 +185,18 @@ void is31fl3733_init(uint8_t addr, uint8_t sync) { } // Unlock the command register. - is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC); // Select PG3 - is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_FUNCTION); + is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_FUNCTION); // Set de-ghost pull-up resistors (SWx) - is31fl3733_write_register(addr, IS31FL3733_REG_SW_PULLUP, IS31FL3733_SW_PULLUP); + is31fl3733_write_register(addr, IS31FL3733_FUNCTION_REG_SW_PULLUP, IS31FL3733_SW_PULLUP); // Set de-ghost pull-down resistors (CSx) - is31fl3733_write_register(addr, IS31FL3733_REG_CS_PULLDOWN, IS31FL3733_CS_PULLDOWN); + is31fl3733_write_register(addr, IS31FL3733_FUNCTION_REG_CS_PULLDOWN, IS31FL3733_CS_PULLDOWN); // Set global current to maximum. - is31fl3733_write_register(addr, IS31FL3733_REG_GLOBALCURRENT, IS31FL3733_GLOBALCURRENT); + is31fl3733_write_register(addr, IS31FL3733_FUNCTION_REG_GLOBAL_CURRENT, IS31FL3733_GLOBAL_CURRENT); // Disable software shutdown. - is31fl3733_write_register(addr, IS31FL3733_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((IS31FL3733_PWM_FREQUENCY & 0b111) << 3) | 0x01); + is31fl3733_write_register(addr, IS31FL3733_FUNCTION_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((IS31FL3733_PWM_FREQUENCY & 0b111) << 3) | 0x01); // Wait 10ms to ensure the device has woken up. wait_ms(10); @@ -256,8 +240,8 @@ void is31fl3733_set_led_control_register(uint8_t index, bool value) { void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { // Firstly we need to unlock the command register and select PG1. - is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_PWM); + is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC); + is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_PWM); // If any of the transactions fail we risk writing dirty PG0, // refresh page 0 just in case. @@ -271,8 +255,8 @@ void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index) { void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { // Firstly we need to unlock the command register and select PG0 - is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_LEDCONTROL); + is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC); + is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_LED_CONTROL); for (int i = 0; i < IS31FL3733_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3733_write_register(addr, i, g_led_control_registers[index][i]); } diff --git a/drivers/led/issi/is31fl3733-simple.h b/drivers/led/issi/is31fl3733-simple.h index 201d3ff788..c37b1fe5f2 100644 --- a/drivers/led/issi/is31fl3733-simple.h +++ b/drivers/led/issi/is31fl3733-simple.h @@ -42,7 +42,7 @@ # define IS31FL3733_CS_PULLDOWN ISSI_CSPULLUP #endif #ifdef ISSI_GLOBALCURRENT -# define IS31FL3733_GLOBALCURRENT ISSI_GLOBALCURRENT +# define IS31FL3733_GLOBAL_CURRENT ISSI_GLOBALCURRENT #endif #define is31_led is31fl3733_led_t @@ -57,6 +57,25 @@ #define PUR_32KR IS31FL3733_PUR_32K_OHM // ======== +#define IS31FL3733_REG_INTERRUPT_MASK 0xF0 +#define IS31FL3733_REG_INTERRUPT_STATUS 0xF1 + +#define IS31FL3733_REG_COMMAND 0xFD + +#define IS31FL3733_COMMAND_LED_CONTROL 0x00 +#define IS31FL3733_COMMAND_PWM 0x01 +#define IS31FL3733_COMMAND_AUTO_BREATH 0x02 +#define IS31FL3733_COMMAND_FUNCTION 0x03 + +#define IS31FL3733_FUNCTION_REG_CONFIGURATION 0x00 +#define IS31FL3733_FUNCTION_REG_GLOBAL_CURRENT 0x01 +#define IS31FL3733_FUNCTION_REG_SW_PULLUP 0x0F +#define IS31FL3733_FUNCTION_REG_CS_PULLDOWN 0x10 +#define IS31FL3733_FUNCTION_REG_RESET 0x11 + +#define IS31FL3733_REG_COMMAND_WRITE_LOCK 0xFE +#define IS31FL3733_COMMAND_WRITE_LOCK_MAGIC 0xC5 + #define IS31FL3733_I2C_ADDRESS_GND_GND 0x50 #define IS31FL3733_I2C_ADDRESS_GND_SCL 0x51 #define IS31FL3733_I2C_ADDRESS_GND_SDA 0x52 diff --git a/drivers/led/issi/is31fl3733.c b/drivers/led/issi/is31fl3733.c index 5a5f352a6a..5857a800d7 100644 --- a/drivers/led/issi/is31fl3733.c +++ b/drivers/led/issi/is31fl3733.c @@ -22,22 +22,6 @@ #include "i2c_master.h" #include "wait.h" -#define IS31FL3733_COMMANDREGISTER 0xFD -#define IS31FL3733_COMMANDREGISTER_WRITELOCK 0xFE -#define IS31FL3733_INTERRUPTMASKREGISTER 0xF0 -#define IS31FL3733_INTERRUPTSTATUSREGISTER 0xF1 - -#define IS31FL3733_PAGE_LEDCONTROL 0x00 // PG0 -#define IS31FL3733_PAGE_PWM 0x01 // PG1 -#define IS31FL3733_PAGE_AUTOBREATH 0x02 // PG2 -#define IS31FL3733_PAGE_FUNCTION 0x03 // PG3 - -#define IS31FL3733_REG_CONFIGURATION 0x00 // PG3 -#define IS31FL3733_REG_GLOBALCURRENT 0x01 // PG3 -#define IS31FL3733_REG_RESET 0x11 // PG3 -#define IS31FL3733_REG_SW_PULLUP 0x0F // PG3 -#define IS31FL3733_REG_CS_PULLDOWN 0x10 // PG3 - #define IS31FL3733_PWM_REGISTER_COUNT 192 #define IS31FL3733_LED_CONTROL_REGISTER_COUNT 24 @@ -61,8 +45,8 @@ # define IS31FL3733_CS_PULLDOWN IS31FL3733_PDR_0_OHM #endif -#ifndef IS31FL3733_GLOBALCURRENT -# define IS31FL3733_GLOBALCURRENT 0xFF +#ifndef IS31FL3733_GLOBAL_CURRENT +# define IS31FL3733_GLOBAL_CURRENT 0xFF #endif #ifndef IS31FL3733_SYNC_1 @@ -179,20 +163,20 @@ void is31fl3733_init(uint8_t addr, uint8_t sync) { // Sync is passed so set it according to the datasheet. // Unlock the command register. - is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC); // Select PG0 - is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_LEDCONTROL); + is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_LED_CONTROL); // Turn off all LEDs. for (int i = 0; i < IS31FL3733_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3733_write_register(addr, i, 0x00); } // Unlock the command register. - is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC); // Select PG1 - is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_PWM); + is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_PWM); // Set PWM on all LEDs to 0 // No need to setup Breath registers to PWM as that is the default. for (int i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i++) { @@ -200,18 +184,18 @@ void is31fl3733_init(uint8_t addr, uint8_t sync) { } // Unlock the command register. - is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC); // Select PG3 - is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_FUNCTION); + is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_FUNCTION); // Set de-ghost pull-up resistors (SWx) - is31fl3733_write_register(addr, IS31FL3733_REG_SW_PULLUP, IS31FL3733_SW_PULLUP); + is31fl3733_write_register(addr, IS31FL3733_FUNCTION_REG_SW_PULLUP, IS31FL3733_SW_PULLUP); // Set de-ghost pull-down resistors (CSx) - is31fl3733_write_register(addr, IS31FL3733_REG_CS_PULLDOWN, IS31FL3733_CS_PULLDOWN); + is31fl3733_write_register(addr, IS31FL3733_FUNCTION_REG_CS_PULLDOWN, IS31FL3733_CS_PULLDOWN); // Set global current to maximum. - is31fl3733_write_register(addr, IS31FL3733_REG_GLOBALCURRENT, IS31FL3733_GLOBALCURRENT); + is31fl3733_write_register(addr, IS31FL3733_FUNCTION_REG_GLOBAL_CURRENT, IS31FL3733_GLOBAL_CURRENT); // Disable software shutdown. - is31fl3733_write_register(addr, IS31FL3733_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((IS31FL3733_PWM_FREQUENCY & 0b111) << 3) | 0x01); + is31fl3733_write_register(addr, IS31FL3733_FUNCTION_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((IS31FL3733_PWM_FREQUENCY & 0b111) << 3) | 0x01); // Wait 10ms to ensure the device has woken up. wait_ms(10); @@ -271,8 +255,8 @@ void is31fl3733_set_led_control_register(uint8_t index, bool red, bool green, bo void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { // Firstly we need to unlock the command register and select PG1. - is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_PWM); + is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC); + is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_PWM); // If any of the transactions fail we risk writing dirty PG0, // refresh page 0 just in case. @@ -286,8 +270,8 @@ void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index) { void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { // Firstly we need to unlock the command register and select PG0 - is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_LEDCONTROL); + is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC); + is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_LED_CONTROL); for (int i = 0; i < IS31FL3733_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3733_write_register(addr, i, g_led_control_registers[index][i]); } diff --git a/drivers/led/issi/is31fl3733.h b/drivers/led/issi/is31fl3733.h index c86aa9ee1e..20804b016b 100644 --- a/drivers/led/issi/is31fl3733.h +++ b/drivers/led/issi/is31fl3733.h @@ -65,7 +65,7 @@ # define IS31FL3733_CS_PULLDOWN ISSI_CSPULLUP #endif #ifdef ISSI_GLOBALCURRENT -# define IS31FL3733_GLOBALCURRENT ISSI_GLOBALCURRENT +# define IS31FL3733_GLOBAL_CURRENT ISSI_GLOBALCURRENT #endif #define is31_led is31fl3733_led_t @@ -80,6 +80,25 @@ #define PUR_32KR IS31FL3733_PUR_32K_OHM // ======== +#define IS31FL3733_REG_INTERRUPT_MASK 0xF0 +#define IS31FL3733_REG_INTERRUPT_STATUS 0xF1 + +#define IS31FL3733_REG_COMMAND 0xFD + +#define IS31FL3733_COMMAND_LED_CONTROL 0x00 +#define IS31FL3733_COMMAND_PWM 0x01 +#define IS31FL3733_COMMAND_AUTO_BREATH 0x02 +#define IS31FL3733_COMMAND_FUNCTION 0x03 + +#define IS31FL3733_FUNCTION_REG_CONFIGURATION 0x00 +#define IS31FL3733_FUNCTION_REG_GLOBAL_CURRENT 0x01 +#define IS31FL3733_FUNCTION_REG_SW_PULLUP 0x0F +#define IS31FL3733_FUNCTION_REG_CS_PULLDOWN 0x10 +#define IS31FL3733_FUNCTION_REG_RESET 0x11 + +#define IS31FL3733_REG_COMMAND_WRITE_LOCK 0xFE +#define IS31FL3733_COMMAND_WRITE_LOCK_MAGIC 0xC5 + #define IS31FL3733_I2C_ADDRESS_GND_GND 0x50 #define IS31FL3733_I2C_ADDRESS_GND_SCL 0x51 #define IS31FL3733_I2C_ADDRESS_GND_SDA 0x52 diff --git a/drivers/led/issi/is31fl3736-simple.c b/drivers/led/issi/is31fl3736-simple.c index e0d76d07c6..e1cce3c48a 100644 --- a/drivers/led/issi/is31fl3736-simple.c +++ b/drivers/led/issi/is31fl3736-simple.c @@ -20,22 +20,6 @@ #include "i2c_master.h" #include "wait.h" -#define IS31FL3736_COMMANDREGISTER 0xFD -#define IS31FL3736_COMMANDREGISTER_WRITELOCK 0xFE -#define IS31FL3736_INTERRUPTMASKREGISTER 0xF0 -#define IS31FL3736_INTERRUPTSTATUSREGISTER 0xF1 - -#define IS31FL3736_PAGE_LEDCONTROL 0x00 // PG0 -#define IS31FL3736_PAGE_PWM 0x01 // PG1 -#define IS31FL3736_PAGE_AUTOBREATH 0x02 // PG2 -#define IS31FL3736_PAGE_FUNCTION 0x03 // PG3 - -#define IS31FL3736_REG_CONFIGURATION 0x00 // PG3 -#define IS31FL3736_REG_GLOBALCURRENT 0x01 // PG3 -#define IS31FL3736_REG_RESET 0x11 // PG3 -#define IS31FL3736_REG_SW_PULLUP 0x0F // PG3 -#define IS31FL3736_REG_CS_PULLDOWN 0x10 // PG3 - #define IS31FL3736_PWM_REGISTER_COUNT 192 // actually 96 #define IS31FL3736_LED_CONTROL_REGISTER_COUNT 24 @@ -59,8 +43,8 @@ # define IS31FL3736_CS_PULLDOWN IS31FL3736_PDR_0_OHM #endif -#ifndef IS31FL3736_GLOBALCURRENT -# define IS31FL3736_GLOBALCURRENT 0xFF +#ifndef IS31FL3736_GLOBAL_CURRENT +# define IS31FL3736_GLOBAL_CURRENT 0xFF #endif // Transfer buffer for TWITransmitData() @@ -152,20 +136,20 @@ void is31fl3736_init(uint8_t addr) { // then disable software shutdown. // Unlock the command register. - is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND_WRITE_LOCK, IS31FL3736_COMMAND_WRITE_LOCK_MAGIC); // Select PG0 - is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_LEDCONTROL); + is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND, IS31FL3736_COMMAND_LED_CONTROL); // Turn off all LEDs. for (int i = 0; i < IS31FL3736_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3736_write_register(addr, i, 0x00); } // Unlock the command register. - is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND_WRITE_LOCK, IS31FL3736_COMMAND_WRITE_LOCK_MAGIC); // Select PG1 - is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_PWM); + is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND, IS31FL3736_COMMAND_PWM); // Set PWM on all LEDs to 0 // No need to setup Breath registers to PWM as that is the default. for (int i = 0; i < IS31FL3736_PWM_REGISTER_COUNT; i++) { @@ -173,18 +157,18 @@ void is31fl3736_init(uint8_t addr) { } // Unlock the command register. - is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND_WRITE_LOCK, IS31FL3736_COMMAND_WRITE_LOCK_MAGIC); // Select PG3 - is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_FUNCTION); + is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND, IS31FL3736_COMMAND_FUNCTION); // Set de-ghost pull-up resistors (SWx) - is31fl3736_write_register(addr, IS31FL3736_REG_SW_PULLUP, IS31FL3736_SW_PULLUP); + is31fl3736_write_register(addr, IS31FL3736_FUNCTION_REG_SW_PULLUP, IS31FL3736_SW_PULLUP); // Set de-ghost pull-down resistors (CSx) - is31fl3736_write_register(addr, IS31FL3736_REG_CS_PULLDOWN, IS31FL3736_CS_PULLDOWN); + is31fl3736_write_register(addr, IS31FL3736_FUNCTION_REG_CS_PULLDOWN, IS31FL3736_CS_PULLDOWN); // Set global current to maximum. - is31fl3736_write_register(addr, IS31FL3736_REG_GLOBALCURRENT, IS31FL3736_GLOBALCURRENT); + is31fl3736_write_register(addr, IS31FL3736_FUNCTION_REG_GLOBAL_CURRENT, IS31FL3736_GLOBAL_CURRENT); // Disable software shutdown. - is31fl3736_write_register(addr, IS31FL3736_REG_CONFIGURATION, ((IS31FL3736_PWM_FREQUENCY & 0b111) << 3) | 0x01); + is31fl3736_write_register(addr, IS31FL3736_FUNCTION_REG_CONFIGURATION, ((IS31FL3736_PWM_FREQUENCY & 0b111) << 3) | 0x01); // Wait 10ms to ensure the device has woken up. wait_ms(10); @@ -234,8 +218,8 @@ void is31fl3736_set_led_control_register(uint8_t index, bool value) { void is31fl3736_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { // Firstly we need to unlock the command register and select PG1 - is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_PWM); + is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND_WRITE_LOCK, IS31FL3736_COMMAND_WRITE_LOCK_MAGIC); + is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND, IS31FL3736_COMMAND_PWM); is31fl3736_write_pwm_buffer(addr, g_pwm_buffer[index]); g_pwm_buffer_update_required[index] = false; @@ -245,8 +229,8 @@ void is31fl3736_update_pwm_buffers(uint8_t addr, uint8_t index) { void is31fl3736_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { // Firstly we need to unlock the command register and select PG0 - is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_LEDCONTROL); + is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND_WRITE_LOCK, IS31FL3736_COMMAND_WRITE_LOCK_MAGIC); + is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND, IS31FL3736_COMMAND_LED_CONTROL); for (int i = 0; i < IS31FL3736_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3736_write_register(addr, i, g_led_control_registers[index][i]); } diff --git a/drivers/led/issi/is31fl3736-simple.h b/drivers/led/issi/is31fl3736-simple.h index 9ff9c650aa..a73a872545 100644 --- a/drivers/led/issi/is31fl3736-simple.h +++ b/drivers/led/issi/is31fl3736-simple.h @@ -36,7 +36,7 @@ # define IS31FL3736_CS_PULLDOWN ISSI_CSPULLUP #endif #ifdef ISSI_GLOBALCURRENT -# define IS31FL3736_GLOBALCURRENT ISSI_GLOBALCURRENT +# define IS31FL3736_GLOBAL_CURRENT ISSI_GLOBALCURRENT #endif #define is31_led is31fl3736_led_t @@ -52,6 +52,25 @@ #define PUR_32KR IS31FL3736_PUR_32K_OHM // ======== +#define IS31FL3736_REG_INTERRUPT_MASK 0xF0 +#define IS31FL3736_REG_INTERRUPT_STATUS 0xF1 + +#define IS31FL3736_REG_COMMAND 0xFD + +#define IS31FL3736_COMMAND_LED_CONTROL 0x00 +#define IS31FL3736_COMMAND_PWM 0x01 +#define IS31FL3736_COMMAND_AUTO_BREATH 0x02 +#define IS31FL3736_COMMAND_FUNCTION 0x03 + +#define IS31FL3736_FUNCTION_REG_CONFIGURATION 0x00 +#define IS31FL3736_FUNCTION_REG_GLOBAL_CURRENT 0x01 +#define IS31FL3736_FUNCTION_REG_SW_PULLUP 0x0F +#define IS31FL3736_FUNCTION_REG_CS_PULLDOWN 0x10 +#define IS31FL3736_FUNCTION_REG_RESET 0x11 + +#define IS31FL3736_REG_COMMAND_WRITE_LOCK 0xFE +#define IS31FL3736_COMMAND_WRITE_LOCK_MAGIC 0xC5 + #define IS31FL3736_I2C_ADDRESS_GND_GND 0x50 #define IS31FL3736_I2C_ADDRESS_GND_SCL 0x51 #define IS31FL3736_I2C_ADDRESS_GND_SDA 0x52 diff --git a/drivers/led/issi/is31fl3736.c b/drivers/led/issi/is31fl3736.c index 0e3205f19b..30ab796f3e 100644 --- a/drivers/led/issi/is31fl3736.c +++ b/drivers/led/issi/is31fl3736.c @@ -20,22 +20,6 @@ #include "i2c_master.h" #include "wait.h" -#define IS31FL3736_COMMANDREGISTER 0xFD -#define IS31FL3736_COMMANDREGISTER_WRITELOCK 0xFE -#define IS31FL3736_INTERRUPTMASKREGISTER 0xF0 -#define IS31FL3736_INTERRUPTSTATUSREGISTER 0xF1 - -#define IS31FL3736_PAGE_LEDCONTROL 0x00 // PG0 -#define IS31FL3736_PAGE_PWM 0x01 // PG1 -#define IS31FL3736_PAGE_AUTOBREATH 0x02 // PG2 -#define IS31FL3736_PAGE_FUNCTION 0x03 // PG3 - -#define IS31FL3736_REG_CONFIGURATION 0x00 // PG3 -#define IS31FL3736_REG_GLOBALCURRENT 0x01 // PG3 -#define IS31FL3736_REG_RESET 0x11 // PG3 -#define IS31FL3736_REG_SW_PULLUP 0x0F // PG3 -#define IS31FL3736_REG_CS_PULLDOWN 0x10 // PG3 - #define IS31FL3736_PWM_REGISTER_COUNT 192 // actually 96 #define IS31FL3736_LED_CONTROL_REGISTER_COUNT 24 @@ -59,8 +43,8 @@ # define IS31FL3736_CS_PULLDOWN IS31FL3736_PDR_0_OHM #endif -#ifndef IS31FL3736_GLOBALCURRENT -# define IS31FL3736_GLOBALCURRENT 0xFF +#ifndef IS31FL3736_GLOBAL_CURRENT +# define IS31FL3736_GLOBAL_CURRENT 0xFF #endif // Transfer buffer for TWITransmitData() @@ -152,20 +136,20 @@ void is31fl3736_init(uint8_t addr) { // then disable software shutdown. // Unlock the command register. - is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND_WRITE_LOCK, IS31FL3736_COMMAND_WRITE_LOCK_MAGIC); // Select PG0 - is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_LEDCONTROL); + is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND, IS31FL3736_REG_LED_CONTROL); // Turn off all LEDs. for (int i = 0; i < IS31FL3736_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3736_write_register(addr, i, 0x00); } // Unlock the command register. - is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND_WRITELOCK, IS31FL3736_COMMAND_WRITE_LOCK_MAGIC); // Select PG1 - is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_PWM); + is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND, IS31FL3736_COMMAND_PWM); // Set PWM on all LEDs to 0 // No need to setup Breath registers to PWM as that is the default. for (int i = 0; i < IS31FL3736_PWM_REGISTER_COUNT; i++) { @@ -173,18 +157,18 @@ void is31fl3736_init(uint8_t addr) { } // Unlock the command register. - is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND_WRITE_LOCK, IS31FL3736_COMMAND_WRITE_LOCK_MAGIC); // Select PG3 - is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_FUNCTION); + is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND, IS31FL3736_COMMAND_FUNCTION); // Set de-ghost pull-up resistors (SWx) - is31fl3736_write_register(addr, IS31FL3736_REG_SW_PULLUP, IS31FL3736_SW_PULLUP); + is31fl3736_write_register(addr, IS31FL3736_FUNCTION_REG_SW_PULLUP, IS31FL3736_SW_PULLUP); // Set de-ghost pull-down resistors (CSx) - is31fl3736_write_register(addr, IS31FL3736_REG_CS_PULLDOWN, IS31FL3736_CS_PULLDOWN); + is31fl3736_write_register(addr, IS31FL3736_FUNCTION_REG_CS_PULLDOWN, IS31FL3736_CS_PULLDOWN); // Set global current to maximum. - is31fl3736_write_register(addr, IS31FL3736_REG_GLOBALCURRENT, IS31FL3736_GLOBALCURRENT); + is31fl3736_write_register(addr, IS31FL3736_FUNCTION_REG_GLOBAL_CURRENT, IS31FL3736_GLOBAL_CURRENT); // Disable software shutdown. - is31fl3736_write_register(addr, IS31FL3736_REG_CONFIGURATION, ((IS31FL3736_PWM_FREQUENCY & 0b111) << 3) | 0x01); + is31fl3736_write_register(addr, IS31FL3736_FUNCTION_REG_CONFIGURATION, ((IS31FL3736_PWM_FREQUENCY & 0b111) << 3) | 0x01); // Wait 10ms to ensure the device has woken up. wait_ms(10); @@ -251,8 +235,8 @@ void is31fl3736_set_led_control_register(uint8_t index, bool red, bool green, bo void is31fl3736_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { // Firstly we need to unlock the command register and select PG1 - is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_PWM); + is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND_WRITE_LOCK, IS31FL3736_COMMAND_WRITE_LOCK_MAGIC); + is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND, IS31FL3736_COMMAND_PWM); is31fl3736_write_pwm_buffer(addr, g_pwm_buffer[index]); g_pwm_buffer_update_required[index] = false; @@ -262,8 +246,8 @@ void is31fl3736_update_pwm_buffers(uint8_t addr, uint8_t index) { void is31fl3736_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { // Firstly we need to unlock the command register and select PG0 - is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_LEDCONTROL); + is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND_WRITE_LOCK, IS31FL3736_COMMAND_WRITE_LOCK_MAGIC); + is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND, IS31FL3736_COMMAND_LED_CONTROL); for (int i = 0; i < IS31FL3736_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3736_write_register(addr, i, g_led_control_registers[index][i]); } diff --git a/drivers/led/issi/is31fl3736.h b/drivers/led/issi/is31fl3736.h index c3fa158de7..a5710d7ed4 100644 --- a/drivers/led/issi/is31fl3736.h +++ b/drivers/led/issi/is31fl3736.h @@ -48,7 +48,7 @@ # define IS31FL3736_CS_PULLDOWN ISSI_CSPULLUP #endif #ifdef ISSI_GLOBALCURRENT -# define IS31FL3736_GLOBALCURRENT ISSI_GLOBALCURRENT +# define IS31FL3736_GLOBAL_CURRENT ISSI_GLOBALCURRENT #endif #define is31_led is31fl3736_led_t @@ -64,6 +64,25 @@ #define PUR_32KR IS31FL3736_PUR_32K_OHM // ======== +#define IS31FL3736_REG_INTERRUPT_MASK 0xF0 +#define IS31FL3736_REG_INTERRUPT_STATUS 0xF1 + +#define IS31FL3736_REG_COMMAND 0xFD + +#define IS31FL3736_COMMAND_LED_CONTROL 0x00 +#define IS31FL3736_COMMAND_PWM 0x01 +#define IS31FL3736_COMMAND_AUTO_BREATH 0x02 +#define IS31FL3736_COMMAND_FUNCTION 0x03 + +#define IS31FL3736_FUNCTION_REG_CONFIGURATION 0x00 +#define IS31FL3736_FUNCTION_REG_GLOBAL_CURRENT 0x01 +#define IS31FL3736_FUNCTION_REG_SW_PULLUP 0x0F +#define IS31FL3736_FUNCTION_REG_CS_PULLDOWN 0x10 +#define IS31FL3736_FUNCTION_REG_RESET 0x11 + +#define IS31FL3736_REG_COMMAND_WRITE_LOCK 0xFE +#define IS31FL3736_COMMAND_WRITE_LOCK_MAGIC 0xC5 + #define IS31FL3736_I2C_ADDRESS_GND_GND 0x50 #define IS31FL3736_I2C_ADDRESS_GND_SCL 0x51 #define IS31FL3736_I2C_ADDRESS_GND_SDA 0x52 diff --git a/drivers/led/issi/is31fl3737-simple.c b/drivers/led/issi/is31fl3737-simple.c index 904b7c65bd..7f641f4ca5 100644 --- a/drivers/led/issi/is31fl3737-simple.c +++ b/drivers/led/issi/is31fl3737-simple.c @@ -22,22 +22,6 @@ #include "i2c_master.h" #include "wait.h" -#define IS31FL3737_COMMANDREGISTER 0xFD -#define IS31FL3737_COMMANDREGISTER_WRITELOCK 0xFE -#define IS31FL3737_INTERRUPTMASKREGISTER 0xF0 -#define IS31FL3737_INTERRUPTSTATUSREGISTER 0xF1 - -#define IS31FL3737_PAGE_LEDCONTROL 0x00 // PG0 -#define IS31FL3737_PAGE_PWM 0x01 // PG1 -#define IS31FL3737_PAGE_AUTOBREATH 0x02 // PG2 -#define IS31FL3737_PAGE_FUNCTION 0x03 // PG3 - -#define IS31FL3737_REG_CONFIGURATION 0x00 // PG3 -#define IS31FL3737_REG_GLOBALCURRENT 0x01 // PG3 -#define IS31FL3737_REG_RESET 0x11 // PG3 -#define IS31FL3737_REG_SW_PULLUP 0x0F // PG3 -#define IS31FL3737_REG_CS_PULLDOWN 0x10 // PG3 - #define IS31FL3737_PWM_REGISTER_COUNT 192 // actually 144 #define IS31FL3737_LED_CONTROL_REGISTER_COUNT 24 @@ -61,8 +45,8 @@ # define IS31FL3737_CS_PULLDOWN IS31FL3737_PDR_0_OHM #endif -#ifndef IS31FL3737_GLOBALCURRENT -# define IS31FL3737_GLOBALCURRENT 0xFF +#ifndef IS31FL3737_GLOBAL_CURRENT +# define IS31FL3737_GLOBAL_CURRENT 0xFF #endif // Transfer buffer for TWITransmitData() @@ -155,20 +139,20 @@ void is31fl3737_init(uint8_t addr) { // then disable software shutdown. // Unlock the command register. - is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND_WRITE_LOCK, IS31FL3737_COMMAND_WRITE_LOCK_MAGIC); // Select PG0 - is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_LEDCONTROL); + is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND, IS31FL3737_COMMAND_LED_CONTROL); // Turn off all LEDs. for (int i = 0; i < IS31FL3737_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3737_write_register(addr, i, 0x00); } // Unlock the command register. - is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND_WRITE_LOCK, IS31FL3737_COMMAND_WRITE_LOCK_MAGIC); // Select PG1 - is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_PWM); + is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND, IS31FL3737_COMMAND_PWM); // Set PWM on all LEDs to 0 // No need to setup Breath registers to PWM as that is the default. for (int i = 0; i < IS31FL3737_PWM_REGISTER_COUNT; i++) { @@ -176,18 +160,18 @@ void is31fl3737_init(uint8_t addr) { } // Unlock the command register. - is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND_WRITE_LOCK, IS31FL3737_COMMAND_WRITE_LOCK_MAGIC); // Select PG3 - is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_FUNCTION); + is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND, IS31FL3737_COMMAND_FUNCTION); // Set de-ghost pull-up resistors (SWx) - is31fl3737_write_register(addr, IS31FL3737_REG_SW_PULLUP, IS31FL3737_SW_PULLUP); + is31fl3737_write_register(addr, IS31FL3737_FUNCTION_REG_SW_PULLUP, IS31FL3737_SW_PULLUP); // Set de-ghost pull-down resistors (CSx) - is31fl3737_write_register(addr, IS31FL3737_REG_CS_PULLDOWN, IS31FL3737_CS_PULLDOWN); + is31fl3737_write_register(addr, IS31FL3737_FUNCTION_REG_CS_PULLDOWN, IS31FL3737_CS_PULLDOWN); // Set global current to maximum. - is31fl3737_write_register(addr, IS31FL3737_REG_GLOBALCURRENT, IS31FL3737_GLOBALCURRENT); + is31fl3737_write_register(addr, IS31FL3737_FUNCTION_REG_GLOBAL_CURRENT, IS31FL3737_GLOBAL_CURRENT); // Disable software shutdown. - is31fl3737_write_register(addr, IS31FL3737_REG_CONFIGURATION, ((IS31FL3737_PWM_FREQUENCY & 0b111) << 3) | 0x01); + is31fl3737_write_register(addr, IS31FL3737_FUNCTION_REG_CONFIGURATION, ((IS31FL3737_PWM_FREQUENCY & 0b111) << 3) | 0x01); // Wait 10ms to ensure the device has woken up. wait_ms(10); @@ -231,8 +215,8 @@ void is31fl3737_set_led_control_register(uint8_t index, bool value) { void is31fl3737_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { // Firstly we need to unlock the command register and select PG1 - is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_PWM); + is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND_WRITE_LOCK, IS31FL3737_COMMAND_WRITE_LOCK_MAGIC); + is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND, IS31FL3737_COMMAND_PWM); is31fl3737_write_pwm_buffer(addr, g_pwm_buffer[index]); g_pwm_buffer_update_required[index] = false; @@ -242,8 +226,8 @@ void is31fl3737_update_pwm_buffers(uint8_t addr, uint8_t index) { void is31fl3737_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { // Firstly we need to unlock the command register and select PG0 - is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_LEDCONTROL); + is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND_WRITE_LOCK, IS31FL3737_COMMAND_WRITE_LOCK_MAGIC); + is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND, IS31FL3737_COMMAND_LED_CONTROL); for (int i = 0; i < IS31FL3737_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3737_write_register(addr, i, g_led_control_registers[index][i]); } diff --git a/drivers/led/issi/is31fl3737-simple.h b/drivers/led/issi/is31fl3737-simple.h index 36125518c6..2658702b1b 100644 --- a/drivers/led/issi/is31fl3737-simple.h +++ b/drivers/led/issi/is31fl3737-simple.h @@ -41,7 +41,7 @@ # define IS31FL3737_CS_PULLDOWN ISSI_CSPULLUP #endif #ifdef ISSI_GLOBALCURRENT -# define IS31FL3737_GLOBALCURRENT ISSI_GLOBALCURRENT +# define IS31FL3737_GLOBAL_CURRENT ISSI_GLOBALCURRENT #endif #define PUR_0R IS31FL3737_PUR_0_OHM @@ -54,6 +54,25 @@ #define PUR_32KR IS31FL3737_PUR_32K_OHM // ======== +#define IS31FL3737_REG_INTERRUPT_MASK 0xF0 +#define IS31FL3737_REG_INTERRUPT_STATUS 0xF1 + +#define IS31FL3737_REG_COMMAND 0xFD + +#define IS31FL3737_COMMAND_LED_CONTROL 0x00 +#define IS31FL3737_COMMAND_PWM 0x01 +#define IS31FL3737_COMMAND_AUTO_BREATH 0x02 +#define IS31FL3737_COMMAND_FUNCTION 0x03 + +#define IS31FL3737_FUNCTION_REG_CONFIGURATION 0x00 +#define IS31FL3737_FUNCTION_REG_GLOBAL_CURRENT 0x01 +#define IS31FL3737_FUNCTION_REG_SW_PULLUP 0x0F +#define IS31FL3737_FUNCTION_REG_CS_PULLDOWN 0x10 +#define IS31FL3737_FUNCTION_REG_RESET 0x11 + +#define IS31FL3737_REG_COMMAND_WRITE_LOCK 0xFE +#define IS31FL3737_COMMAND_WRITE_LOCK_MAGIC 0xC5 + #define IS31FL3737_I2C_ADDRESS_GND 0x50 #define IS31FL3737_I2C_ADDRESS_SCL 0x55 #define IS31FL3737_I2C_ADDRESS_SDA 0x5A diff --git a/drivers/led/issi/is31fl3737.c b/drivers/led/issi/is31fl3737.c index 27860558a5..a458431952 100644 --- a/drivers/led/issi/is31fl3737.c +++ b/drivers/led/issi/is31fl3737.c @@ -22,22 +22,6 @@ #include "i2c_master.h" #include "wait.h" -#define IS31FL3737_COMMANDREGISTER 0xFD -#define IS31FL3737_COMMANDREGISTER_WRITELOCK 0xFE -#define IS31FL3737_INTERRUPTMASKREGISTER 0xF0 -#define IS31FL3737_INTERRUPTSTATUSREGISTER 0xF1 - -#define IS31FL3737_PAGE_LEDCONTROL 0x00 // PG0 -#define IS31FL3737_PAGE_PWM 0x01 // PG1 -#define IS31FL3737_PAGE_AUTOBREATH 0x02 // PG2 -#define IS31FL3737_PAGE_FUNCTION 0x03 // PG3 - -#define IS31FL3737_REG_CONFIGURATION 0x00 // PG3 -#define IS31FL3737_REG_GLOBALCURRENT 0x01 // PG3 -#define IS31FL3737_REG_RESET 0x11 // PG3 -#define IS31FL3737_REG_SW_PULLUP 0x0F // PG3 -#define IS31FL3737_REG_CS_PULLDOWN 0x10 // PG3 - #define IS31FL3737_PWM_REGISTER_COUNT 192 // actually 144 #define IS31FL3737_LED_CONTROL_REGISTER_COUNT 24 @@ -61,8 +45,8 @@ # define IS31FL3737_CS_PULLDOWN IS31FL3737_PDR_0_OHM #endif -#ifndef IS31FL3737_GLOBALCURRENT -# define IS31FL3737_GLOBALCURRENT 0xFF +#ifndef IS31FL3737_GLOBAL_CURRENT +# define IS31FL3737_GLOBAL_CURRENT 0xFF #endif // Transfer buffer for TWITransmitData() @@ -155,20 +139,20 @@ void is31fl3737_init(uint8_t addr) { // then disable software shutdown. // Unlock the command register. - is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND_WRITE_LOCK, IS31FL3737_COMMAND_WRITE_LOCK_MAGIC); // Select PG0 - is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_LEDCONTROL); + is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND, IS31FL3737_COMMAND_LED_CONTROL); // Turn off all LEDs. for (int i = 0; i < IS31FL3737_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3737_write_register(addr, i, 0x00); } // Unlock the command register. - is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND_WRITE_LOCK, IS31FL3737_COMMAND_WRITE_LOCK_MAGIC); // Select PG1 - is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_PWM); + is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND, IS31FL3737_COMMAND_PWM); // Set PWM on all LEDs to 0 // No need to setup Breath registers to PWM as that is the default. for (int i = 0; i < IS31FL3737_PWM_REGISTER_COUNT; i++) { @@ -176,18 +160,18 @@ void is31fl3737_init(uint8_t addr) { } // Unlock the command register. - is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND_WRITE_LOCK, IS31FL3737_COMMAND_WRITE_LOCK_MAGIC); // Select PG3 - is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_FUNCTION); + is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND, IS31FL3737_COMMAND_FUNCTION); // Set de-ghost pull-up resistors (SWx) - is31fl3737_write_register(addr, IS31FL3737_REG_SW_PULLUP, IS31FL3737_SW_PULLUP); + is31fl3737_write_register(addr, IS31FL3737_FUNCTION_REG_SW_PULLUP, IS31FL3737_SW_PULLUP); // Set de-ghost pull-down resistors (CSx) - is31fl3737_write_register(addr, IS31FL3737_REG_CS_PULLDOWN, IS31FL3737_CS_PULLDOWN); + is31fl3737_write_register(addr, IS31FL3737_FUNCTION_REG_CS_PULLDOWN, IS31FL3737_CS_PULLDOWN); // Set global current to maximum. - is31fl3737_write_register(addr, IS31FL3737_REG_GLOBALCURRENT, IS31FL3737_GLOBALCURRENT); + is31fl3737_write_register(addr, IS31FL3737_FUNCTION_REG_GLOBAL_CURRENT, IS31FL3737_GLOBAL_CURRENT); // Disable software shutdown. - is31fl3737_write_register(addr, IS31FL3737_REG_CONFIGURATION, ((IS31FL3737_PWM_FREQUENCY & 0b111) << 3) | 0x01); + is31fl3737_write_register(addr, IS31FL3737_FUNCTION_REG_CONFIGURATION, ((IS31FL3737_PWM_FREQUENCY & 0b111) << 3) | 0x01); // Wait 10ms to ensure the device has woken up. wait_ms(10); @@ -247,8 +231,8 @@ void is31fl3737_set_led_control_register(uint8_t index, bool red, bool green, bo void is31fl3737_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { // Firstly we need to unlock the command register and select PG1 - is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_PWM); + is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND_WRITE_LOCK, IS31FL3737_COMMAND_WRITE_LOCK_MAGIC); + is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND, IS31FL3737_COMMAND_PWM); is31fl3737_write_pwm_buffer(addr, g_pwm_buffer[index]); g_pwm_buffer_update_required[index] = false; @@ -258,8 +242,8 @@ void is31fl3737_update_pwm_buffers(uint8_t addr, uint8_t index) { void is31fl3737_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { // Firstly we need to unlock the command register and select PG0 - is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3737_write_register(addr, IS31FL3737_COMMANDREGISTER, IS31FL3737_PAGE_LEDCONTROL); + is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND_WRITE_LOCK, IS31FL3737_COMMAND_WRITE_LOCK_MAGIC); + is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND, IS31FL3737_COMMAND_LED_CONTROL); for (int i = 0; i < IS31FL3737_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3737_write_register(addr, i, g_led_control_registers[index][i]); } diff --git a/drivers/led/issi/is31fl3737.h b/drivers/led/issi/is31fl3737.h index 6a2f301052..8de3bf4ef5 100644 --- a/drivers/led/issi/is31fl3737.h +++ b/drivers/led/issi/is31fl3737.h @@ -53,7 +53,7 @@ # define IS31FL3737_CS_PULLDOWN ISSI_CSPULLUP #endif #ifdef ISSI_GLOBALCURRENT -# define IS31FL3737_GLOBALCURRENT ISSI_GLOBALCURRENT +# define IS31FL3737_GLOBAL_CURRENT ISSI_GLOBALCURRENT #endif #define is31_led is31fl3737_led_t @@ -69,6 +69,25 @@ #define PUR_32KR IS31FL3737_PUR_32K_OHM // ======== +#define IS31FL3737_REG_INTERRUPT_MASK 0xF0 +#define IS31FL3737_REG_INTERRUPT_STATUS 0xF1 + +#define IS31FL3737_REG_COMMAND 0xFD + +#define IS31FL3737_COMMAND_LED_CONTROL 0x00 +#define IS31FL3737_COMMAND_PWM 0x01 +#define IS31FL3737_COMMAND_AUTO_BREATH 0x02 +#define IS31FL3737_COMMAND_FUNCTION 0x03 + +#define IS31FL3737_FUNCTION_REG_CONFIGURATION 0x00 +#define IS31FL3737_FUNCTION_REG_GLOBAL_CURRENT 0x01 +#define IS31FL3737_FUNCTION_REG_SW_PULLUP 0x0F +#define IS31FL3737_FUNCTION_REG_CS_PULLDOWN 0x10 +#define IS31FL3737_FUNCTION_REG_RESET 0x11 + +#define IS31FL3737_REG_COMMAND_WRITE_LOCK 0xFE +#define IS31FL3737_COMMAND_WRITE_LOCK_MAGIC 0xC5 + #define IS31FL3737_I2C_ADDRESS_GND 0x50 #define IS31FL3737_I2C_ADDRESS_SCL 0x55 #define IS31FL3737_I2C_ADDRESS_SDA 0x5A diff --git a/drivers/led/issi/is31fl3741-simple.c b/drivers/led/issi/is31fl3741-simple.c index 582551c05e..f7009853ba 100644 --- a/drivers/led/issi/is31fl3741-simple.c +++ b/drivers/led/issi/is31fl3741-simple.c @@ -22,24 +22,6 @@ #include "i2c_master.h" #include "wait.h" -#define IS31FL3741_COMMANDREGISTER 0xFD -#define IS31FL3741_COMMANDREGISTER_WRITELOCK 0xFE -#define IS31FL3741_INTERRUPTMASKREGISTER 0xF0 -#define IS31FL3741_INTERRUPTSTATUSREGISTER 0xF1 -#define IS31FL3741_IDREGISTER 0xFC - -#define IS31FL3741_PAGE_PWM0 0x00 // PG0 -#define IS31FL3741_PAGE_PWM1 0x01 // PG1 -#define IS31FL3741_PAGE_SCALING_0 0x02 // PG2 -#define IS31FL3741_PAGE_SCALING_1 0x03 // PG3 -#define IS31FL3741_PAGE_FUNCTION 0x04 // PG4 - -#define IS31FL3741_REG_CONFIGURATION 0x00 // PG4 -#define IS31FL3741_REG_GLOBALCURRENT 0x01 // PG4 -#define IS31FL3741_REG_PULLDOWNUP 0x02 // PG4 -#define IS31FL3741_REG_PWM_FREQUENCY 0x36 // PG4 -#define IS31FL3741_REG_RESET 0x3F // PG4 - #define IS31FL3741_PWM_REGISTER_COUNT 351 #ifndef IS31FL3741_I2C_TIMEOUT @@ -66,8 +48,8 @@ # define IS31FL3741_CS_PULLDOWN IS31FL3741_PDR_32K_OHM #endif -#ifndef IS31FL3741_GLOBALCURRENT -# define IS31FL3741_GLOBALCURRENT 0xFF +#ifndef IS31FL3741_GLOBAL_CURRENT +# define IS31FL3741_GLOBAL_CURRENT 0xFF #endif // Transfer buffer for TWITransmitData() @@ -104,8 +86,8 @@ bool is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { for (int i = 0; i < 342; i += 18) { if (i == 180) { // unlock the command register and select PG1 - is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER, IS31FL3741_PAGE_PWM1); + is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND_WRITE_LOCK, IS31FL3741_COMMAND_WRITE_LOCK_MAGIC); + is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND, IS31FL3741_COMMAND_PWM_1); } g_twi_transfer_buffer[0] = i % 180; @@ -181,20 +163,20 @@ void is31fl3741_init(uint8_t addr) { // Unlock the command register. // Unlock the command register. - is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND_WRITE_LOCK, IS31FL3741_COMMAND_WRITE_LOCK_MAGIC); // Select PG4 - is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER, IS31FL3741_PAGE_FUNCTION); + is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND, IS31FL3741_COMMAND_FUNCTION); // Set to Normal operation - is31fl3741_write_register(addr, IS31FL3741_REG_CONFIGURATION, IS31FL3741_CONFIGURATION); + is31fl3741_write_register(addr, IS31FL3741_FUNCTION_REG_CONFIGURATION, IS31FL3741_CONFIGURATION); // Set Golbal Current Control Register - is31fl3741_write_register(addr, IS31FL3741_REG_GLOBALCURRENT, IS31FL3741_GLOBALCURRENT); + is31fl3741_write_register(addr, IS31FL3741_FUNCTION_REG_GLOBAL_CURRENT, IS31FL3741_GLOBAL_CURRENT); // Set Pull up & Down for SWx CSy - is31fl3741_write_register(addr, IS31FL3741_REG_PULLDOWNUP, ((IS31FL3741_CS_PULLDOWN << 4) | IS31FL3741_SW_PULLUP)); + is31fl3741_write_register(addr, IS31FL3741_FUNCTION_REG_PULLDOWNUP, ((IS31FL3741_CS_PULLDOWN << 4) | IS31FL3741_SW_PULLUP)); // Set PWM frequency - is31fl3741_write_register(addr, IS31FL3741_REG_PWM_FREQUENCY, (IS31FL3741_PWM_FREQUENCY & 0b1111)); + is31fl3741_write_register(addr, IS31FL3741_FUNCTION_REG_PWM_FREQUENCY, (IS31FL3741_PWM_FREQUENCY & 0b1111)); // is31fl3741_update_led_scaling_registers(addr, 0xFF, 0xFF, 0xFF); @@ -237,8 +219,8 @@ void is31fl3741_set_led_control_register(uint8_t index, bool value) { void is31fl3741_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { // unlock the command register and select PG2 - is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER, IS31FL3741_PAGE_PWM0); + is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND_WRITE_LOCK, IS31FL3741_COMMAND_WRITE_LOCK_MAGIC); + is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND, IS31FL3741_COMMAND_PWM_0); is31fl3741_write_pwm_buffer(addr, g_pwm_buffer[index]); } @@ -255,8 +237,8 @@ void is31fl3741_set_pwm_buffer(const is31fl3741_led_t *pled, uint8_t value) { void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_scaling_registers_update_required[index]) { // unlock the command register and select PG2 - is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER, IS31FL3741_PAGE_SCALING_0); + is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND_WRITE_LOCK, IS31FL3741_COMMAND_WRITE_LOCK_MAGIC); + is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND, IS31FL3741_COMMAND_SCALING_0); // CS1_SW1 to CS30_SW6 are on PG2 for (int i = CS1_SW1; i <= CS30_SW6; ++i) { @@ -264,8 +246,8 @@ void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index) { } // unlock the command register and select PG3 - is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER, IS31FL3741_PAGE_SCALING_1); + is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND_WRITE_LOCK, IS31FL3741_COMMAND_WRITE_LOCK_MAGIC); + is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND, IS31FL3741_COMMAND_SCALING_1); // CS1_SW7 to CS39_SW9 are on PG3 for (int i = CS1_SW7; i <= CS39_SW9; ++i) { diff --git a/drivers/led/issi/is31fl3741-simple.h b/drivers/led/issi/is31fl3741-simple.h index 04f0c2793a..34608a37e0 100644 --- a/drivers/led/issi/is31fl3741-simple.h +++ b/drivers/led/issi/is31fl3741-simple.h @@ -41,7 +41,7 @@ # define IS31FL3741_CS_PULLDOWN ISSI_CSPULLUP #endif #ifdef ISSI_GLOBALCURRENT -# define IS31FL3741_GLOBALCURRENT ISSI_GLOBALCURRENT +# define IS31FL3741_GLOBAL_CURRENT ISSI_GLOBALCURRENT #endif #define PUR_0R IS31FL3741_PUR_0_OHM @@ -54,6 +54,27 @@ #define PUR_32KR IS31FL3741_PUR_32K_OHM // ======== +#define IS31FL3741_REG_INTERRUPT_MASK 0xF0 +#define IS31FL3741_REG_INTERRUPT_STATUS 0xF1 +#define IS31FL3741_REG_ID 0xFC + +#define IS31FL3741_REG_COMMAND 0xFD + +#define IS31FL3741_COMMAND_PWM_0 0x00 +#define IS31FL3741_COMMAND_PWM_1 0x01 +#define IS31FL3741_COMMAND_SCALING_0 0x02 +#define IS31FL3741_COMMAND_SCALING_1 0x03 +#define IS31FL3741_COMMAND_FUNCTION 0x04 + +#define IS31FL3741_FUNCTION_REG_CONFIGURATION 0x00 +#define IS31FL3741_FUNCTION_REG_GLOBAL_CURRENT 0x01 +#define IS31FL3741_FUNCTION_REG_PULLDOWNUP 0x02 +#define IS31FL3741_FUNCTION_REG_PWM_FREQUENCY 0x36 +#define IS31FL3741_FUNCTION_REG_RESET 0x3F + +#define IS31FL3741_REG_COMMAND_WRITE_LOCK 0xFE +#define IS31FL3741_COMMAND_WRITE_LOCK_MAGIC 0xC5 + #define IS31FL3741_I2C_ADDRESS_GND 0x30 #define IS31FL3741_I2C_ADDRESS_SCL 0x31 #define IS31FL3741_I2C_ADDRESS_SDA 0x32 diff --git a/drivers/led/issi/is31fl3741.c b/drivers/led/issi/is31fl3741.c index 9925a169c3..efcfa77b46 100644 --- a/drivers/led/issi/is31fl3741.c +++ b/drivers/led/issi/is31fl3741.c @@ -22,24 +22,6 @@ #include "i2c_master.h" #include "wait.h" -#define IS31FL3741_COMMANDREGISTER 0xFD -#define IS31FL3741_COMMANDREGISTER_WRITELOCK 0xFE -#define IS31FL3741_INTERRUPTMASKREGISTER 0xF0 -#define IS31FL3741_INTERRUPTSTATUSREGISTER 0xF1 -#define IS31FL3741_IDREGISTER 0xFC - -#define IS31FL3741_PAGE_PWM0 0x00 // PG0 -#define IS31FL3741_PAGE_PWM1 0x01 // PG1 -#define IS31FL3741_PAGE_SCALING_0 0x02 // PG2 -#define IS31FL3741_PAGE_SCALING_1 0x03 // PG3 -#define IS31FL3741_PAGE_FUNCTION 0x04 // PG4 - -#define IS31FL3741_REG_CONFIGURATION 0x00 // PG4 -#define IS31FL3741_REG_GLOBALCURRENT 0x01 // PG4 -#define IS31FL3741_REG_PULLDOWNUP 0x02 // PG4 -#define IS31FL3741_REG_PWM_FREQUENCY 0x36 // PG4 -#define IS31FL3741_REG_RESET 0x3F // PG4 - #define IS31FL3741_PWM_REGISTER_COUNT 351 #ifndef IS31FL3741_I2C_TIMEOUT @@ -66,8 +48,8 @@ # define IS31FL3741_CS_PULLDOWN IS31FL3741_PDR_32K_OHM #endif -#ifndef IS31FL3741_GLOBALCURRENT -# define IS31FL3741_GLOBALCURRENT 0xFF +#ifndef IS31FL3741_GLOBAL_CURRENT +# define IS31FL3741_GLOBAL_CURRENT 0xFF #endif // Transfer buffer for TWITransmitData() @@ -104,8 +86,8 @@ bool is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { for (int i = 0; i < 342; i += 18) { if (i == 180) { // unlock the command register and select PG1 - is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER, IS31FL3741_PAGE_PWM1); + is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND_WRITE_LOCK, IS31FL3741_COMMAND_WRITE_LOCK_MAGIC); + is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND, IS31FL3741_COMMAND_PWM_1); } g_twi_transfer_buffer[0] = i % 180; @@ -181,20 +163,20 @@ void is31fl3741_init(uint8_t addr) { // Unlock the command register. // Unlock the command register. - is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND_WRITE_LOCK, IS31FL3741_COMMAND_WRITE_LOCK_MAGIC); // Select PG4 - is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER, IS31FL3741_PAGE_FUNCTION); + is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND, IS31FL3741_COMMAND_FUNCTION); // Set to Normal operation - is31fl3741_write_register(addr, IS31FL3741_REG_CONFIGURATION, IS31FL3741_CONFIGURATION); + is31fl3741_write_register(addr, IS31FL3741_FUNCTION_REG_CONFIGURATION, IS31FL3741_CONFIGURATION); // Set Golbal Current Control Register - is31fl3741_write_register(addr, IS31FL3741_REG_GLOBALCURRENT, IS31FL3741_GLOBALCURRENT); + is31fl3741_write_register(addr, IS31FL3741_FUNCTION_REG_GLOBAL_CURRENT, IS31FL3741_GLOBAL_CURRENT); // Set Pull up & Down for SWx CSy - is31fl3741_write_register(addr, IS31FL3741_REG_PULLDOWNUP, ((IS31FL3741_CS_PULLDOWN << 4) | IS31FL3741_SW_PULLUP)); + is31fl3741_write_register(addr, IS31FL3741_FUNCTION_REG_PULLDOWNUP, ((IS31FL3741_CS_PULLDOWN << 4) | IS31FL3741_SW_PULLUP)); // Set PWM frequency - is31fl3741_write_register(addr, IS31FL3741_REG_PWM_FREQUENCY, (IS31FL3741_PWM_FREQUENCY & 0b1111)); + is31fl3741_write_register(addr, IS31FL3741_FUNCTION_REG_PWM_FREQUENCY, (IS31FL3741_PWM_FREQUENCY & 0b1111)); // is31fl3741_update_led_scaling_registers(addr, 0xFF, 0xFF, 0xFF); @@ -251,8 +233,8 @@ void is31fl3741_set_led_control_register(uint8_t index, bool red, bool green, bo void is31fl3741_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { // unlock the command register and select PG2 - is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER, IS31FL3741_PAGE_PWM0); + is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND_WRITE_LOCK, IS31FL3741_COMMAND_WRITE_LOCK_MAGIC); + is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND, IS31FL3741_COMMAND_PWM_0); is31fl3741_write_pwm_buffer(addr, g_pwm_buffer[index]); } @@ -271,8 +253,8 @@ void is31fl3741_set_pwm_buffer(const is31fl3741_led_t *pled, uint8_t red, uint8_ void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_scaling_registers_update_required[index]) { // unlock the command register and select PG2 - is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER, IS31FL3741_PAGE_SCALING_0); + is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND_WRITE_LOCK, IS31FL3741_COMMAND_WRITE_LOCK_MAGIC); + is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND, IS31FL3741_COMMAND_SCALING_0); // CS1_SW1 to CS30_SW6 are on PG2 for (int i = CS1_SW1; i <= CS30_SW6; ++i) { @@ -280,8 +262,8 @@ void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index) { } // unlock the command register and select PG3 - is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3741_write_register(addr, IS31FL3741_COMMANDREGISTER, IS31FL3741_PAGE_SCALING_1); + is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND_WRITE_LOCK, IS31FL3741_COMMAND_WRITE_LOCK_MAGIC); + is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND, IS31FL3741_COMMAND_SCALING_1); // CS1_SW7 to CS39_SW9 are on PG3 for (int i = CS1_SW7; i <= CS39_SW9; ++i) { diff --git a/drivers/led/issi/is31fl3741.h b/drivers/led/issi/is31fl3741.h index 0c3f7d3d18..6466696b60 100644 --- a/drivers/led/issi/is31fl3741.h +++ b/drivers/led/issi/is31fl3741.h @@ -53,7 +53,7 @@ # define IS31FL3741_CS_PULLDOWN ISSI_CSPULLUP #endif #ifdef ISSI_GLOBALCURRENT -# define IS31FL3741_GLOBALCURRENT ISSI_GLOBALCURRENT +# define IS31FL3741_GLOBAL_CURRENT ISSI_GLOBALCURRENT #endif #define is31_led is31fl3741_led_t @@ -69,6 +69,27 @@ #define PUR_32KR IS31FL3741_PUR_32K_OHM // ======== +#define IS31FL3741_REG_INTERRUPT_MASK 0xF0 +#define IS31FL3741_REG_INTERRUPT_STATUS 0xF1 +#define IS31FL3741_REG_ID 0xFC + +#define IS31FL3741_REG_COMMAND 0xFD + +#define IS31FL3741_COMMAND_PWM_0 0x00 +#define IS31FL3741_COMMAND_PWM_1 0x01 +#define IS31FL3741_COMMAND_SCALING_0 0x02 +#define IS31FL3741_COMMAND_SCALING_1 0x03 +#define IS31FL3741_COMMAND_FUNCTION 0x04 + +#define IS31FL3741_FUNCTION_REG_CONFIGURATION 0x00 +#define IS31FL3741_FUNCTION_REG_GLOBAL_CURRENT 0x01 +#define IS31FL3741_FUNCTION_REG_PULLDOWNUP 0x02 +#define IS31FL3741_FUNCTION_REG_PWM_FREQUENCY 0x36 +#define IS31FL3741_FUNCTION_REG_RESET 0x3F + +#define IS31FL3741_REG_COMMAND_WRITE_LOCK 0xFE +#define IS31FL3741_COMMAND_WRITE_LOCK_MAGIC 0xC5 + #define IS31FL3741_I2C_ADDRESS_GND 0x30 #define IS31FL3741_I2C_ADDRESS_SCL 0x31 #define IS31FL3741_I2C_ADDRESS_SDA 0x32 diff --git a/drivers/led/snled27351-simple.c b/drivers/led/snled27351-simple.c index 6d504794a9..b2054c96d5 100644 --- a/drivers/led/snled27351-simple.c +++ b/drivers/led/snled27351-simple.c @@ -29,7 +29,7 @@ #endif #ifndef SNLED27351_PHASE_CHANNEL -# define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_12CHANNEL +# define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_12_CHANNEL #endif #ifndef SNLED27351_CURRENT_TUNE @@ -134,48 +134,48 @@ void snled27351_init_drivers(void) { void snled27351_init(uint8_t addr) { // Select to function page - snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); + snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_FUNCTION); // Setting LED driver to shutdown mode - snled27351_write_register(addr, SNLED27351_REG_CONFIGURATION, SNLED27351_MSKSW_SHUT_DOWN_MODE); + snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SOFTWARE_SHUTDOWN, SNLED27351_SOFTWARE_SHUTDOWN_SSD_SHUTDOWN); // Setting internal channel pulldown/pullup - snled27351_write_register(addr, SNLED27351_REG_PDU, SNLED27351_MSKSET_CA_CB_CHANNEL); + snled27351_write_register(addr, SNLED27351_FUNCTION_REG_PULLDOWNUP, SNLED27351_PULLDOWNUP_ALL_ENABLED); // Select number of scan phase - snled27351_write_register(addr, SNLED27351_REG_SCAN_PHASE, SNLED27351_PHASE_CHANNEL); + snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SCAN_PHASE, SNLED27351_PHASE_CHANNEL); // Setting PWM Delay Phase - snled27351_write_register(addr, SNLED27351_REG_SLEW_RATE_CONTROL_MODE1, SNLED27351_MSKPWM_DELAY_PHASE_ENABLE); + snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SLEW_RATE_CONTROL_MODE_1, SNLED27351_SLEW_RATE_CONTROL_MODE_1_PDP_ENABLE); // Setting Driving/Sinking Channel Slew Rate - snled27351_write_register(addr, SNLED27351_REG_SLEW_RATE_CONTROL_MODE2, SNLED27351_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_ENABLE); + snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SLEW_RATE_CONTROL_MODE_2, SNLED27351_SLEW_RATE_CONTROL_MODE_2_DSL_ENABLE | SNLED27351_SLEW_RATE_CONTROL_MODE_2_SSL_ENABLE); // Setting Iref - snled27351_write_register(addr, SNLED27351_REG_SOFTWARE_SLEEP, SNLED27351_MSKSLEEP_DISABLE); + snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SOFTWARE_SLEEP, 0); // Set LED CONTROL PAGE (Page 0) - snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_CONTROL_PAGE); + snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_LED_CONTROL); for (int i = 0; i < SNLED27351_LED_CONTROL_ON_OFF_LENGTH; i++) { snled27351_write_register(addr, i, 0x00); } // Set PWM PAGE (Page 1) - snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_PWM_PAGE); + snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_PWM); for (int i = 0; i < SNLED27351_LED_CURRENT_TUNE_LENGTH; i++) { snled27351_write_register(addr, i, 0x00); } // Set CURRENT PAGE (Page 4) uint8_t current_tune_reg_list[SNLED27351_LED_CURRENT_TUNE_LENGTH] = SNLED27351_CURRENT_TUNE; - snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_CURRENT_TUNE_PAGE); + snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_CURRENT_TUNE); for (int i = 0; i < SNLED27351_LED_CURRENT_TUNE_LENGTH; i++) { snled27351_write_register(addr, i, current_tune_reg_list[i]); } // Enable LEDs ON/OFF - snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_CONTROL_PAGE); + snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_LED_CONTROL); for (int i = 0; i < SNLED27351_LED_CONTROL_ON_OFF_LENGTH; i++) { snled27351_write_register(addr, i, 0xFF); } // Select to function page - snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); + snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_FUNCTION); // Setting LED driver to normal mode - snled27351_write_register(addr, SNLED27351_REG_CONFIGURATION, SNLED27351_MSKSW_NORMAL_MODE); + snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SOFTWARE_SHUTDOWN, SNLED27351_SOFTWARE_SHUTDOWN_SSD_NORMAL); } void snled27351_set_value(int index, uint8_t value) { @@ -215,7 +215,7 @@ void snled27351_set_led_control_register(uint8_t index, bool value) { void snled27351_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { - snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_PWM_PAGE); + snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_PWM); // If any of the transactions fail we risk writing dirty PG0, // refresh page 0 just in case. @@ -228,7 +228,7 @@ void snled27351_update_pwm_buffers(uint8_t addr, uint8_t index) { void snled27351_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { - snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_CONTROL_PAGE); + snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_LED_CONTROL); for (int i = 0; i < SNLED27351_LED_CONTROL_REGISTER_COUNT; i++) { snled27351_write_register(addr, i, g_led_control_registers[index][i]); } @@ -251,16 +251,16 @@ void snled27351_flush(void) { void snled27351_sw_return_normal(uint8_t addr) { // Select to function page - snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); + snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_FUNCTION); // Setting LED driver to normal mode - snled27351_write_register(addr, SNLED27351_REG_CONFIGURATION, SNLED27351_MSKSW_NORMAL_MODE); + snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SOFTWARE_SHUTDOWN, SNLED27351_SOFTWARE_SHUTDOWN_SSD_NORMAL); } void snled27351_sw_shutdown(uint8_t addr) { // Select to function page - snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); + snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_FUNCTION); // Setting LED driver to shutdown mode - snled27351_write_register(addr, SNLED27351_REG_CONFIGURATION, SNLED27351_MSKSW_SHUT_DOWN_MODE); + snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SOFTWARE_SHUTDOWN, SNLED27351_SOFTWARE_SHUTDOWN_SSD_SHUTDOWN); // Write SW Sleep Register - snled27351_write_register(addr, SNLED27351_REG_SOFTWARE_SLEEP, SNLED27351_MSKSLEEP_ENABLE); + snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SOFTWARE_SLEEP, SNLED27351_SOFTWARE_SLEEP_ENABLE); } diff --git a/drivers/led/snled27351-simple.h b/drivers/led/snled27351-simple.h index 66e5d162d0..2fc62a6f0a 100644 --- a/drivers/led/snled27351-simple.h +++ b/drivers/led/snled27351-simple.h @@ -35,23 +35,98 @@ # define SNLED27351_CURRENT_TUNE CKLED2001_CURRENT_TUNE #endif -#define MSKPHASE_12CHANNEL SNLED27351_MSKPHASE_12CHANNEL -#define MSKPHASE_11CHANNEL SNLED27351_MSKPHASE_11CHANNEL -#define MSKPHASE_10CHANNEL SNLED27351_MSKPHASE_10CHANNEL -#define MSKPHASE_9CHANNEL SNLED27351_MSKPHASE_9CHANNEL -#define MSKPHASE_8CHANNEL SNLED27351_MSKPHASE_8CHANNEL -#define MSKPHASE_7CHANNEL SNLED27351_MSKPHASE_7CHANNEL -#define MSKPHASE_6CHANNEL SNLED27351_MSKPHASE_6CHANNEL -#define MSKPHASE_5CHANNEL SNLED27351_MSKPHASE_5CHANNEL -#define MSKPHASE_4CHANNEL SNLED27351_MSKPHASE_4CHANNEL -#define MSKPHASE_3CHANNEL SNLED27351_MSKPHASE_3CHANNEL -#define MSKPHASE_2CHANNEL SNLED27351_MSKPHASE_2CHANNEL -#define MSKPHASE_1CHANNEL SNLED27351_MSKPHASE_1CHANNEL +#define MSKPHASE_12CHANNEL SNLED27351_SCAN_PHASE_12_CHANNEL +#define MSKPHASE_11CHANNEL SNLED27351_SCAN_PHASE_11_CHANNEL +#define MSKPHASE_10CHANNEL SNLED27351_SCAN_PHASE_10_CHANNEL +#define MSKPHASE_9CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL +#define MSKPHASE_8CHANNEL SNLED27351_SCAN_PHASE_8_CHANNEL +#define MSKPHASE_7CHANNEL SNLED27351_SCAN_PHASE_7_CHANNEL +#define MSKPHASE_6CHANNEL SNLED27351_SCAN_PHASE_6_CHANNEL +#define MSKPHASE_5CHANNEL SNLED27351_SCAN_PHASE_5_CHANNEL +#define MSKPHASE_4CHANNEL SNLED27351_SCAN_PHASE_4_CHANNEL +#define MSKPHASE_3CHANNEL SNLED27351_SCAN_PHASE_3_CHANNEL +#define MSKPHASE_2CHANNEL SNLED27351_SCAN_PHASE_2_CHANNEL +#define MSKPHASE_1CHANNEL SNLED27351_SCAN_PHASE_1_CHANNEL #define ckled2001_led snled27351_led_t #define g_ckled2001_leds g_snled27351_leds // ======== +#define SNLED27351_REG_COMMAND 0xFD +#define SNLED27351_COMMAND_LED_CONTROL 0x00 +#define SNLED27351_COMMAND_PWM 0x01 +#define SNLED27351_COMMAND_FUNCTION 0x03 +#define SNLED27351_COMMAND_CURRENT_TUNE 0x04 + +#define SNLED27351_FUNCTION_REG_SOFTWARE_SHUTDOWN 0x00 +#define SNLED27351_SOFTWARE_SHUTDOWN_SSD_SHUTDOWN (0x0 << 0) +#define SNLED27351_SOFTWARE_SHUTDOWN_SSD_NORMAL (0x1 << 0) + +#define SNLED27351_FUNCTION_REG_ID 0x11 +#define SNLED27351_DRIVER_ID 0x8A + +#define SNLED27351_FUNCTION_REG_PULLDOWNUP 0x13 +#define SNLED27351_PULLDOWNUP_ALL_ENABLED 0xAA + +#define SNLED27351_FUNCTION_REG_SCAN_PHASE 0x14 +#define SNLED27351_SCAN_PHASE_12_CHANNEL 0x00 +#define SNLED27351_SCAN_PHASE_11_CHANNEL 0x01 +#define SNLED27351_SCAN_PHASE_10_CHANNEL 0x02 +#define SNLED27351_SCAN_PHASE_9_CHANNEL 0x03 +#define SNLED27351_SCAN_PHASE_8_CHANNEL 0x04 +#define SNLED27351_SCAN_PHASE_7_CHANNEL 0x05 +#define SNLED27351_SCAN_PHASE_6_CHANNEL 0x06 +#define SNLED27351_SCAN_PHASE_5_CHANNEL 0x07 +#define SNLED27351_SCAN_PHASE_4_CHANNEL 0x08 +#define SNLED27351_SCAN_PHASE_3_CHANNEL 0x09 +#define SNLED27351_SCAN_PHASE_2_CHANNEL 0x0A +#define SNLED27351_SCAN_PHASE_1_CHANNEL 0x0B + +#define SNLED27351_FUNCTION_REG_SLEW_RATE_CONTROL_MODE_1 0x15 +#define SNLED27351_SLEW_RATE_CONTROL_MODE_1_PDP_ENABLE (0b1 << 2) + +#define SNLED27351_FUNCTION_REG_SLEW_RATE_CONTROL_MODE_2 0x16 +#define SNLED27351_SLEW_RATE_CONTROL_MODE_2_SSL_ENABLE (0b1 << 6) +#define SNLED27351_SLEW_RATE_CONTROL_MODE_2_DSL_ENABLE (0b1 << 7) + +#define SNLED27351_FUNCTION_REG_OPEN_SHORT_ENABLE 0x17 +#define SNLED27351_OPEN_SHORT_ENABLE_SDS_ENABLE (0b1 << 6) +#define SNLED27351_OPEN_SHORT_ENABLE_ODS_ENABLE (0b1 << 7) + +#define SNLED27351_FUNCTION_REG_OPEN_SHORT_DUTY 0x18 + +#define SNLED27351_FUNCTION_REG_OPEN_SHORT_FLAG 0x19 +#define SNLED27351_OPEN_SHORT_FLAG_OSINT_ENABLE (0b1 << 6) +#define SNLED27351_OPEN_SHORT_FLAG_ODINT_ENABLE (0b1 << 7) + +#define SNLED27351_FUNCTION_REG_SOFTWARE_SLEEP 0x1A +#define SNLED27351_SOFTWARE_SLEEP_ENABLE (0b1 << 1) + +// LED Control Registers +#define SNLED27351_LED_CONTROL_ON_OFF_FIRST_ADDR 0x0 +#define SNLED27351_LED_CONTROL_ON_OFF_LAST_ADDR 0x17 +#define SNLED27351_LED_CONTROL_ON_OFF_LENGTH ((SNLED27351_LED_CONTROL_ON_OFF_LAST_ADDR - SNLED27351_LED_CONTROL_ON_OFF_FIRST_ADDR) + 1) + +#define SNLED27351_LED_CONTROL_OPEN_FIRST_ADDR 0x18 +#define SNLED27351_LED_CONTROL_OPEN_LAST_ADDR 0x2F +#define SNLED27351_LED_CONTROL_OPEN_LENGTH ((SNLED27351_LED_CONTROL_OPEN_LAST_ADDR - SNLED27351_LED_CONTROL_OPEN_FIRST_ADDR) + 1) + +#define SNLED27351_LED_CONTROL_SHORT_FIRST_ADDR 0x30 +#define SNLED27351_LED_CONTROL_SHORT_LAST_ADDR 0x47 +#define SNLED27351_LED_CONTROL_SHORT_LENGTH ((SNLED27351_LED_CONTROL_SHORT_LAST_ADDR - SNLED27351_LED_CONTROL_SHORT_FIRST_ADDR) + 1) + +#define SNLED27351_LED_CONTROL_PAGE_LENGTH 0x48 + +// LED Control Registers +#define SNLED27351_LED_PWM_FIRST_ADDR 0x00 +#define SNLED27351_LED_PWM_LAST_ADDR 0xBF +#define SNLED27351_LED_PWM_LENGTH 0xC0 + +// Current Tune Registers +#define SNLED27351_LED_CURRENT_TUNE_FIRST_ADDR 0x00 +#define SNLED27351_LED_CURRENT_TUNE_LAST_ADDR 0x0B +#define SNLED27351_LED_CURRENT_TUNE_LENGTH 0x0C + #define SNLED27351_I2C_ADDRESS_GND 0x74 #define SNLED27351_I2C_ADDRESS_SCL 0x75 #define SNLED27351_I2C_ADDRESS_SDA 0x76 @@ -100,92 +175,6 @@ void snled27351_flush(void); void snled27351_sw_return_normal(uint8_t addr); void snled27351_sw_shutdown(uint8_t addr); -// Registers Page Define -#define SNLED27351_REG_CONFIGURE_CMD_PAGE 0xFD -#define SNLED27351_LED_CONTROL_PAGE 0x00 -#define SNLED27351_LED_PWM_PAGE 0x01 -#define SNLED27351_FUNCTION_PAGE 0x03 -#define SNLED27351_CURRENT_TUNE_PAGE 0x04 - -// Function Register: address 0x00 -#define SNLED27351_REG_CONFIGURATION 0x00 -#define SNLED27351_MSKSW_SHUT_DOWN_MODE (0x0 << 0) -#define SNLED27351_MSKSW_NORMAL_MODE (0x1 << 0) - -#define SNLED27351_REG_DRIVER_ID 0x11 -#define SNLED27351_DRIVER_ID 0x8A - -#define SNLED27351_REG_PDU 0x13 -#define SNLED27351_MSKSET_CA_CB_CHANNEL 0xAA -#define SNLED27351_MSKCLR_CA_CB_CHANNEL 0x00 - -#define SNLED27351_REG_SCAN_PHASE 0x14 -#define SNLED27351_MSKPHASE_12CHANNEL 0x00 -#define SNLED27351_MSKPHASE_11CHANNEL 0x01 -#define SNLED27351_MSKPHASE_10CHANNEL 0x02 -#define SNLED27351_MSKPHASE_9CHANNEL 0x03 -#define SNLED27351_MSKPHASE_8CHANNEL 0x04 -#define SNLED27351_MSKPHASE_7CHANNEL 0x05 -#define SNLED27351_MSKPHASE_6CHANNEL 0x06 -#define SNLED27351_MSKPHASE_5CHANNEL 0x07 -#define SNLED27351_MSKPHASE_4CHANNEL 0x08 -#define SNLED27351_MSKPHASE_3CHANNEL 0x09 -#define SNLED27351_MSKPHASE_2CHANNEL 0x0A -#define SNLED27351_MSKPHASE_1CHANNEL 0x0B - -#define SNLED27351_REG_SLEW_RATE_CONTROL_MODE1 0x15 -#define SNLED27351_MSKPWM_DELAY_PHASE_ENABLE 0x04 -#define SNLED27351_MSKPWM_DELAY_PHASE_DISABLE 0x00 - -#define SNLED27351_REG_SLEW_RATE_CONTROL_MODE2 0x16 -#define SNLED27351_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_ENABLE 0xC0 -#define SNLED27351_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_DISABLE 0x00 - -#define SNLED27351_REG_OPEN_SHORT_ENABLE 0x17 -#define SNLED27351_MSKOPEN_DETECTION_ENABLE (0x01 << 7) -#define SNLED27351_MSKOPEN_DETECTION_DISABLE (0x00) - -#define SNLED27351_MSKSHORT_DETECTION_ENABLE (0x01 << 6) -#define SNLED27351_MSKSHORT_DETECTION_DISABLE (0x00) - -#define SNLED27351_REG_OPEN_SHORT_DUTY 0x18 -#define SNLED27351_REG_OPEN_SHORT_FLAG 0x19 - -#define SNLED27351_MSKOPEN_DETECTION_INTERRUPT_ENABLE (0x01 << 7) -#define SNLED27351_MSKOPEN_DETECTION_INTERRUPT_DISABLE (0x00) - -#define SNLED27351_MSKSHORT_DETECTION_INTERRUPT_ENABLE (0x01 << 6) -#define SNLED27351_MSKSHORT_DETECTION_INTERRUPT_DISABLE (0x00) - -#define SNLED27351_REG_SOFTWARE_SLEEP 0x1A -#define SNLED27351_MSKSLEEP_ENABLE 0x02 -#define SNLED27351_MSKSLEEP_DISABLE 0x00 - -// LED Control Registers -#define SNLED27351_LED_CONTROL_ON_OFF_FIRST_ADDR 0x0 -#define SNLED27351_LED_CONTROL_ON_OFF_LAST_ADDR 0x17 -#define SNLED27351_LED_CONTROL_ON_OFF_LENGTH ((SNLED27351_LED_CONTROL_ON_OFF_LAST_ADDR - SNLED27351_LED_CONTROL_ON_OFF_FIRST_ADDR) + 1) - -#define SNLED27351_LED_CONTROL_OPEN_FIRST_ADDR 0x18 -#define SNLED27351_LED_CONTROL_OPEN_LAST_ADDR 0x2F -#define SNLED27351_LED_CONTROL_OPEN_LENGTH ((SNLED27351_LED_CONTROL_OPEN_LAST_ADDR - SNLED27351_LED_CONTROL_OPEN_FIRST_ADDR) + 1) - -#define SNLED27351_LED_CONTROL_SHORT_FIRST_ADDR 0x30 -#define SNLED27351_LED_CONTROL_SHORT_LAST_ADDR 0x47 -#define SNLED27351_LED_CONTROL_SHORT_LENGTH ((SNLED27351_LED_CONTROL_SHORT_LAST_ADDR - SNLED27351_LED_CONTROL_SHORT_FIRST_ADDR) + 1) - -#define SNLED27351_LED_CONTROL_PAGE_LENGTH 0x48 - -// LED Control Registers -#define SNLED27351_LED_PWM_FIRST_ADDR 0x00 -#define SNLED27351_LED_PWM_LAST_ADDR 0xBF -#define SNLED27351_LED_PWM_LENGTH 0xC0 - -// Current Tune Registers -#define SNLED27351_LED_CURRENT_TUNE_FIRST_ADDR 0x00 -#define SNLED27351_LED_CURRENT_TUNE_LAST_ADDR 0x0B -#define SNLED27351_LED_CURRENT_TUNE_LENGTH 0x0C - #define A_1 0x00 #define A_2 0x01 #define A_3 0x02 diff --git a/drivers/led/snled27351.c b/drivers/led/snled27351.c index 4e4067854e..71992b7322 100644 --- a/drivers/led/snled27351.c +++ b/drivers/led/snled27351.c @@ -29,7 +29,7 @@ #endif #ifndef SNLED27351_PHASE_CHANNEL -# define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_12CHANNEL +# define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_12_CHANNEL #endif #ifndef SNLED27351_CURRENT_TUNE @@ -133,48 +133,48 @@ void snled27351_init_drivers(void) { void snled27351_init(uint8_t addr) { // Select to function page - snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); + snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_FUNCTION); // Setting LED driver to shutdown mode - snled27351_write_register(addr, SNLED27351_REG_CONFIGURATION, SNLED27351_MSKSW_SHUT_DOWN_MODE); + snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SOFTWARE_SHUTDOWN, SNLED27351_SOFTWARE_SHUTDOWN_SSD_SHUTDOWN); // Setting internal channel pulldown/pullup - snled27351_write_register(addr, SNLED27351_REG_PDU, SNLED27351_MSKSET_CA_CB_CHANNEL); + snled27351_write_register(addr, SNLED27351_FUNCTION_REG_PULLDOWNUP, SNLED27351_PULLDOWNUP_ALL_ENABLED); // Select number of scan phase - snled27351_write_register(addr, SNLED27351_REG_SCAN_PHASE, SNLED27351_PHASE_CHANNEL); + snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SCAN_PHASE, SNLED27351_PHASE_CHANNEL); // Setting PWM Delay Phase - snled27351_write_register(addr, SNLED27351_REG_SLEW_RATE_CONTROL_MODE1, SNLED27351_MSKPWM_DELAY_PHASE_ENABLE); + snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SLEW_RATE_CONTROL_MODE_1, SNLED27351_SLEW_RATE_CONTROL_MODE_1_PDP_ENABLE); // Setting Driving/Sinking Channel Slew Rate - snled27351_write_register(addr, SNLED27351_REG_SLEW_RATE_CONTROL_MODE2, SNLED27351_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_ENABLE); + snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SLEW_RATE_CONTROL_MODE_2, SNLED27351_SLEW_RATE_CONTROL_MODE_2_DSL_ENABLE | SNLED27351_SLEW_RATE_CONTROL_MODE_2_SSL_ENABLE); // Setting Iref - snled27351_write_register(addr, SNLED27351_REG_SOFTWARE_SLEEP, SNLED27351_MSKSLEEP_DISABLE); + snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SOFTWARE_SLEEP, 0); // Set LED CONTROL PAGE (Page 0) - snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_CONTROL_PAGE); + snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_LED_CONTROL); for (int i = 0; i < SNLED27351_LED_CONTROL_ON_OFF_LENGTH; i++) { snled27351_write_register(addr, i, 0x00); } // Set PWM PAGE (Page 1) - snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_PWM_PAGE); + snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_PWM); for (int i = 0; i < SNLED27351_LED_CURRENT_TUNE_LENGTH; i++) { snled27351_write_register(addr, i, 0x00); } // Set CURRENT PAGE (Page 4) uint8_t current_tune_reg_list[SNLED27351_LED_CURRENT_TUNE_LENGTH] = SNLED27351_CURRENT_TUNE; - snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_CURRENT_TUNE_PAGE); + snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_CURRENT_TUNE); for (int i = 0; i < SNLED27351_LED_CURRENT_TUNE_LENGTH; i++) { snled27351_write_register(addr, i, current_tune_reg_list[i]); } // Enable LEDs ON/OFF - snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_CONTROL_PAGE); + snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_LED_CONTROL); for (int i = 0; i < SNLED27351_LED_CONTROL_ON_OFF_LENGTH; i++) { snled27351_write_register(addr, i, 0xFF); } // Select to function page - snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); + snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_FUNCTION); // Setting LED driver to normal mode - snled27351_write_register(addr, SNLED27351_REG_CONFIGURATION, SNLED27351_MSKSW_NORMAL_MODE); + snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SOFTWARE_SHUTDOWN, SNLED27351_SOFTWARE_SHUTDOWN_SSD_NORMAL); } void snled27351_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { @@ -230,7 +230,7 @@ void snled27351_set_led_control_register(uint8_t index, bool red, bool green, bo void snled27351_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { - snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_PWM_PAGE); + snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_PWM); // If any of the transactions fail we risk writing dirty PG0, // refresh page 0 just in case. @@ -243,7 +243,7 @@ void snled27351_update_pwm_buffers(uint8_t addr, uint8_t index) { void snled27351_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { - snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_CONTROL_PAGE); + snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_LED_CONTROL); for (int i = 0; i < SNLED27351_LED_CONTROL_REGISTER_COUNT; i++) { snled27351_write_register(addr, i, g_led_control_registers[index][i]); } @@ -266,16 +266,16 @@ void snled27351_flush(void) { void snled27351_sw_return_normal(uint8_t addr) { // Select to function page - snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); + snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_FUNCTION); // Setting LED driver to normal mode - snled27351_write_register(addr, SNLED27351_REG_CONFIGURATION, SNLED27351_MSKSW_NORMAL_MODE); + snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SOFTWARE_SHUTDOWN, SNLED27351_SOFTWARE_SHUTDOWN_SSD_NORMAL); } void snled27351_sw_shutdown(uint8_t addr) { // Select to function page - snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); + snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_FUNCTION); // Setting LED driver to shutdown mode - snled27351_write_register(addr, SNLED27351_REG_CONFIGURATION, SNLED27351_MSKSW_SHUT_DOWN_MODE); + snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SOFTWARE_SHUTDOWN, SNLED27351_SOFTWARE_SHUTDOWN_SSD_SHUTDOWN); // Write SW Sleep Register - snled27351_write_register(addr, SNLED27351_REG_SOFTWARE_SLEEP, SNLED27351_MSKSLEEP_ENABLE); + snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SOFTWARE_SLEEP, SNLED27351_SOFTWARE_SLEEP_ENABLE); } diff --git a/drivers/led/snled27351.h b/drivers/led/snled27351.h index 77837d36aa..77337f177b 100644 --- a/drivers/led/snled27351.h +++ b/drivers/led/snled27351.h @@ -47,23 +47,98 @@ # define SNLED27351_CURRENT_TUNE CKLED2001_CURRENT_TUNE #endif -#define MSKPHASE_12CHANNEL SNLED27351_MSKPHASE_12CHANNEL -#define MSKPHASE_11CHANNEL SNLED27351_MSKPHASE_11CHANNEL -#define MSKPHASE_10CHANNEL SNLED27351_MSKPHASE_10CHANNEL -#define MSKPHASE_9CHANNEL SNLED27351_MSKPHASE_9CHANNEL -#define MSKPHASE_8CHANNEL SNLED27351_MSKPHASE_8CHANNEL -#define MSKPHASE_7CHANNEL SNLED27351_MSKPHASE_7CHANNEL -#define MSKPHASE_6CHANNEL SNLED27351_MSKPHASE_6CHANNEL -#define MSKPHASE_5CHANNEL SNLED27351_MSKPHASE_5CHANNEL -#define MSKPHASE_4CHANNEL SNLED27351_MSKPHASE_4CHANNEL -#define MSKPHASE_3CHANNEL SNLED27351_MSKPHASE_3CHANNEL -#define MSKPHASE_2CHANNEL SNLED27351_MSKPHASE_2CHANNEL -#define MSKPHASE_1CHANNEL SNLED27351_MSKPHASE_1CHANNEL +#define MSKPHASE_12CHANNEL SNLED27351_SCAN_PHASE_12_CHANNEL +#define MSKPHASE_11CHANNEL SNLED27351_SCAN_PHASE_11_CHANNEL +#define MSKPHASE_10CHANNEL SNLED27351_SCAN_PHASE_10_CHANNEL +#define MSKPHASE_9CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL +#define MSKPHASE_8CHANNEL SNLED27351_SCAN_PHASE_8_CHANNEL +#define MSKPHASE_7CHANNEL SNLED27351_SCAN_PHASE_7_CHANNEL +#define MSKPHASE_6CHANNEL SNLED27351_SCAN_PHASE_6_CHANNEL +#define MSKPHASE_5CHANNEL SNLED27351_SCAN_PHASE_5_CHANNEL +#define MSKPHASE_4CHANNEL SNLED27351_SCAN_PHASE_4_CHANNEL +#define MSKPHASE_3CHANNEL SNLED27351_SCAN_PHASE_3_CHANNEL +#define MSKPHASE_2CHANNEL SNLED27351_SCAN_PHASE_2_CHANNEL +#define MSKPHASE_1CHANNEL SNLED27351_SCAN_PHASE_1_CHANNEL #define ckled2001_led snled27351_led_t #define g_ckled2001_leds g_snled27351_leds // ======== +#define SNLED27351_REG_COMMAND 0xFD +#define SNLED27351_COMMAND_LED_CONTROL 0x00 +#define SNLED27351_COMMAND_PWM 0x01 +#define SNLED27351_COMMAND_FUNCTION 0x03 +#define SNLED27351_COMMAND_CURRENT_TUNE 0x04 + +#define SNLED27351_FUNCTION_REG_SOFTWARE_SHUTDOWN 0x00 +#define SNLED27351_SOFTWARE_SHUTDOWN_SSD_SHUTDOWN (0x0 << 0) +#define SNLED27351_SOFTWARE_SHUTDOWN_SSD_NORMAL (0x1 << 0) + +#define SNLED27351_FUNCTION_REG_ID 0x11 +#define SNLED27351_DRIVER_ID 0x8A + +#define SNLED27351_FUNCTION_REG_PULLDOWNUP 0x13 +#define SNLED27351_PULLDOWNUP_ALL_ENABLED 0xAA + +#define SNLED27351_FUNCTION_REG_SCAN_PHASE 0x14 +#define SNLED27351_SCAN_PHASE_12_CHANNEL 0x00 +#define SNLED27351_SCAN_PHASE_11_CHANNEL 0x01 +#define SNLED27351_SCAN_PHASE_10_CHANNEL 0x02 +#define SNLED27351_SCAN_PHASE_9_CHANNEL 0x03 +#define SNLED27351_SCAN_PHASE_8_CHANNEL 0x04 +#define SNLED27351_SCAN_PHASE_7_CHANNEL 0x05 +#define SNLED27351_SCAN_PHASE_6_CHANNEL 0x06 +#define SNLED27351_SCAN_PHASE_5_CHANNEL 0x07 +#define SNLED27351_SCAN_PHASE_4_CHANNEL 0x08 +#define SNLED27351_SCAN_PHASE_3_CHANNEL 0x09 +#define SNLED27351_SCAN_PHASE_2_CHANNEL 0x0A +#define SNLED27351_SCAN_PHASE_1_CHANNEL 0x0B + +#define SNLED27351_FUNCTION_REG_SLEW_RATE_CONTROL_MODE_1 0x15 +#define SNLED27351_SLEW_RATE_CONTROL_MODE_1_PDP_ENABLE (0b1 << 2) + +#define SNLED27351_FUNCTION_REG_SLEW_RATE_CONTROL_MODE_2 0x16 +#define SNLED27351_SLEW_RATE_CONTROL_MODE_2_SSL_ENABLE (0b1 << 6) +#define SNLED27351_SLEW_RATE_CONTROL_MODE_2_DSL_ENABLE (0b1 << 7) + +#define SNLED27351_FUNCTION_REG_OPEN_SHORT_ENABLE 0x17 +#define SNLED27351_OPEN_SHORT_ENABLE_SDS_ENABLE (0b1 << 6) +#define SNLED27351_OPEN_SHORT_ENABLE_ODS_ENABLE (0b1 << 7) + +#define SNLED27351_FUNCTION_REG_OPEN_SHORT_DUTY 0x18 + +#define SNLED27351_FUNCTION_REG_OPEN_SHORT_FLAG 0x19 +#define SNLED27351_OPEN_SHORT_FLAG_OSINT_ENABLE (0b1 << 6) +#define SNLED27351_OPEN_SHORT_FLAG_ODINT_ENABLE (0b1 << 7) + +#define SNLED27351_FUNCTION_REG_SOFTWARE_SLEEP 0x1A +#define SNLED27351_SOFTWARE_SLEEP_ENABLE (0b1 << 1) + +// LED Control Registers +#define SNLED27351_LED_CONTROL_ON_OFF_FIRST_ADDR 0x0 +#define SNLED27351_LED_CONTROL_ON_OFF_LAST_ADDR 0x17 +#define SNLED27351_LED_CONTROL_ON_OFF_LENGTH ((SNLED27351_LED_CONTROL_ON_OFF_LAST_ADDR - SNLED27351_LED_CONTROL_ON_OFF_FIRST_ADDR) + 1) + +#define SNLED27351_LED_CONTROL_OPEN_FIRST_ADDR 0x18 +#define SNLED27351_LED_CONTROL_OPEN_LAST_ADDR 0x2F +#define SNLED27351_LED_CONTROL_OPEN_LENGTH ((SNLED27351_LED_CONTROL_OPEN_LAST_ADDR - SNLED27351_LED_CONTROL_OPEN_FIRST_ADDR) + 1) + +#define SNLED27351_LED_CONTROL_SHORT_FIRST_ADDR 0x30 +#define SNLED27351_LED_CONTROL_SHORT_LAST_ADDR 0x47 +#define SNLED27351_LED_CONTROL_SHORT_LENGTH ((SNLED27351_LED_CONTROL_SHORT_LAST_ADDR - SNLED27351_LED_CONTROL_SHORT_FIRST_ADDR) + 1) + +#define SNLED27351_LED_CONTROL_PAGE_LENGTH 0x48 + +// LED Control Registers +#define SNLED27351_LED_PWM_FIRST_ADDR 0x00 +#define SNLED27351_LED_PWM_LAST_ADDR 0xBF +#define SNLED27351_LED_PWM_LENGTH 0xC0 + +// Current Tune Registers +#define SNLED27351_LED_CURRENT_TUNE_FIRST_ADDR 0x00 +#define SNLED27351_LED_CURRENT_TUNE_LAST_ADDR 0x0B +#define SNLED27351_LED_CURRENT_TUNE_LENGTH 0x0C + #define SNLED27351_I2C_ADDRESS_GND 0x74 #define SNLED27351_I2C_ADDRESS_SCL 0x75 #define SNLED27351_I2C_ADDRESS_SDA 0x76 @@ -114,92 +189,6 @@ void snled27351_flush(void); void snled27351_sw_return_normal(uint8_t addr); void snled27351_sw_shutdown(uint8_t addr); -// Registers Page Define -#define SNLED27351_REG_CONFIGURE_CMD_PAGE 0xFD -#define SNLED27351_LED_CONTROL_PAGE 0x00 -#define SNLED27351_LED_PWM_PAGE 0x01 -#define SNLED27351_FUNCTION_PAGE 0x03 -#define SNLED27351_CURRENT_TUNE_PAGE 0x04 - -// Function Register: address 0x00 -#define SNLED27351_REG_CONFIGURATION 0x00 -#define SNLED27351_MSKSW_SHUT_DOWN_MODE (0x0 << 0) -#define SNLED27351_MSKSW_NORMAL_MODE (0x1 << 0) - -#define SNLED27351_REG_DRIVER_ID 0x11 -#define SNLED27351_DRIVER_ID 0x8A - -#define SNLED27351_REG_PDU 0x13 -#define SNLED27351_MSKSET_CA_CB_CHANNEL 0xAA -#define SNLED27351_MSKCLR_CA_CB_CHANNEL 0x00 - -#define SNLED27351_REG_SCAN_PHASE 0x14 -#define SNLED27351_MSKPHASE_12CHANNEL 0x00 -#define SNLED27351_MSKPHASE_11CHANNEL 0x01 -#define SNLED27351_MSKPHASE_10CHANNEL 0x02 -#define SNLED27351_MSKPHASE_9CHANNEL 0x03 -#define SNLED27351_MSKPHASE_8CHANNEL 0x04 -#define SNLED27351_MSKPHASE_7CHANNEL 0x05 -#define SNLED27351_MSKPHASE_6CHANNEL 0x06 -#define SNLED27351_MSKPHASE_5CHANNEL 0x07 -#define SNLED27351_MSKPHASE_4CHANNEL 0x08 -#define SNLED27351_MSKPHASE_3CHANNEL 0x09 -#define SNLED27351_MSKPHASE_2CHANNEL 0x0A -#define SNLED27351_MSKPHASE_1CHANNEL 0x0B - -#define SNLED27351_REG_SLEW_RATE_CONTROL_MODE1 0x15 -#define SNLED27351_MSKPWM_DELAY_PHASE_ENABLE 0x04 -#define SNLED27351_MSKPWM_DELAY_PHASE_DISABLE 0x00 - -#define SNLED27351_REG_SLEW_RATE_CONTROL_MODE2 0x16 -#define SNLED27351_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_ENABLE 0xC0 -#define SNLED27351_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_DISABLE 0x00 - -#define SNLED27351_REG_OPEN_SHORT_ENABLE 0x17 -#define SNLED27351_MSKOPEN_DETECTION_ENABLE (0x01 << 7) -#define SNLED27351_MSKOPEN_DETECTION_DISABLE (0x00) - -#define SNLED27351_MSKSHORT_DETECTION_ENABLE (0x01 << 6) -#define SNLED27351_MSKSHORT_DETECTION_DISABLE (0x00) - -#define SNLED27351_REG_OPEN_SHORT_DUTY 0x18 -#define SNLED27351_REG_OPEN_SHORT_FLAG 0x19 - -#define SNLED27351_MSKOPEN_DETECTION_INTERRUPT_ENABLE (0x01 << 7) -#define SNLED27351_MSKOPEN_DETECTION_INTERRUPT_DISABLE (0x00) - -#define SNLED27351_MSKSHORT_DETECTION_INTERRUPT_ENABLE (0x01 << 6) -#define SNLED27351_MSKSHORT_DETECTION_INTERRUPT_DISABLE (0x00) - -#define SNLED27351_REG_SOFTWARE_SLEEP 0x1A -#define SNLED27351_MSKSLEEP_ENABLE 0x02 -#define SNLED27351_MSKSLEEP_DISABLE 0x00 - -// LED Control Registers -#define SNLED27351_LED_CONTROL_ON_OFF_FIRST_ADDR 0x0 -#define SNLED27351_LED_CONTROL_ON_OFF_LAST_ADDR 0x17 -#define SNLED27351_LED_CONTROL_ON_OFF_LENGTH ((SNLED27351_LED_CONTROL_ON_OFF_LAST_ADDR - SNLED27351_LED_CONTROL_ON_OFF_FIRST_ADDR) + 1) - -#define SNLED27351_LED_CONTROL_OPEN_FIRST_ADDR 0x18 -#define SNLED27351_LED_CONTROL_OPEN_LAST_ADDR 0x2F -#define SNLED27351_LED_CONTROL_OPEN_LENGTH ((SNLED27351_LED_CONTROL_OPEN_LAST_ADDR - SNLED27351_LED_CONTROL_OPEN_FIRST_ADDR) + 1) - -#define SNLED27351_LED_CONTROL_SHORT_FIRST_ADDR 0x30 -#define SNLED27351_LED_CONTROL_SHORT_LAST_ADDR 0x47 -#define SNLED27351_LED_CONTROL_SHORT_LENGTH ((SNLED27351_LED_CONTROL_SHORT_LAST_ADDR - SNLED27351_LED_CONTROL_SHORT_FIRST_ADDR) + 1) - -#define SNLED27351_LED_CONTROL_PAGE_LENGTH 0x48 - -// LED Control Registers -#define SNLED27351_LED_PWM_FIRST_ADDR 0x00 -#define SNLED27351_LED_PWM_LAST_ADDR 0xBF -#define SNLED27351_LED_PWM_LENGTH 0xC0 - -// Current Tune Registers -#define SNLED27351_LED_CURRENT_TUNE_FIRST_ADDR 0x00 -#define SNLED27351_LED_CURRENT_TUNE_LAST_ADDR 0x0B -#define SNLED27351_LED_CURRENT_TUNE_LENGTH 0x0C - #define A_1 0x00 #define A_2 0x01 #define A_3 0x02 diff --git a/keyboards/input_club/k_type/is31fl3733-dual.c b/keyboards/input_club/k_type/is31fl3733-dual.c index 8aa9344c85..e471cf0b71 100644 --- a/keyboards/input_club/k_type/is31fl3733-dual.c +++ b/keyboards/input_club/k_type/is31fl3733-dual.c @@ -20,22 +20,6 @@ #include "i2c_master.h" #include "wait.h" -#define IS31FL3733_COMMANDREGISTER 0xFD -#define IS31FL3733_COMMANDREGISTER_WRITELOCK 0xFE -#define IS31FL3733_INTERRUPTMASKREGISTER 0xF0 -#define IS31FL3733_INTERRUPTSTATUSREGISTER 0xF1 - -#define IS31FL3733_PAGE_LEDCONTROL 0x00 // PG0 -#define IS31FL3733_PAGE_PWM 0x01 // PG1 -#define IS31FL3733_PAGE_AUTOBREATH 0x02 // PG2 -#define IS31FL3733_PAGE_FUNCTION 0x03 // PG3 - -#define IS31FL3733_REG_CONFIGURATION 0x00 // PG3 -#define IS31FL3733_REG_GLOBALCURRENT 0x01 // PG3 -#define IS31FL3733_REG_RESET 0x11 // PG3 -#define IS31FL3733_REG_SW_PULLUP 0x0F // PG3 -#define IS31FL3733_REG_CS_PULLDOWN 0x10 // PG3 - #define IS31FL3733_PWM_REGISTER_COUNT 192 #define IS31FL3733_LED_CONTROL_REGISTER_COUNT 24 @@ -59,8 +43,8 @@ # define IS31FL3733_CS_PULLDOWN IS31FL3733_PDR_0_OHM #endif -#ifndef IS31FL3733_GLOBALCURRENT -# define IS31FL3733_GLOBALCURRENT 0xFF +#ifndef IS31FL3733_GLOBAL_CURRENT +# define IS31FL3733_GLOBAL_CURRENT 0xFF #endif #ifndef IS31FL3733_SYNC_1 @@ -167,20 +151,20 @@ void is31fl3733_init(uint8_t bus, uint8_t addr, uint8_t sync) { // Sync is passed so set it according to the datasheet. // Unlock the command register. - is31fl3733_write_register(bus, addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(bus, addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC); // Select PG0 - is31fl3733_write_register(bus, addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_LEDCONTROL); + is31fl3733_write_register(bus, addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_LED_CONTROL); // Turn off all LEDs. for (int i = 0; i < IS31FL3733_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3733_write_register(bus, addr, i, 0x00); } // Unlock the command register. - is31fl3733_write_register(bus, addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(bus, addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC); // Select PG1 - is31fl3733_write_register(bus, addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_PWM); + is31fl3733_write_register(bus, addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_PWM); // Set PWM on all LEDs to 0 // No need to setup Breath registers to PWM as that is the default. for (int i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i++) { @@ -188,18 +172,18 @@ void is31fl3733_init(uint8_t bus, uint8_t addr, uint8_t sync) { } // Unlock the command register. - is31fl3733_write_register(bus, addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); + is31fl3733_write_register(bus, addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC); // Select PG3 - is31fl3733_write_register(bus, addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_FUNCTION); + is31fl3733_write_register(bus, addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_FUNCTION); // Set de-ghost pull-up resistors (SWx) - is31fl3733_write_register(bus, addr, IS31FL3733_REG_SW_PULLUP, IS31FL3733_SW_PULLUP); + is31fl3733_write_register(bus, addr, IS31FL3733_FUNCTION_REG_SW_PULLUP, IS31FL3733_SW_PULLUP); // Set de-ghost pull-down resistors (CSx) - is31fl3733_write_register(bus, addr, IS31FL3733_REG_CS_PULLDOWN, IS31FL3733_CS_PULLDOWN); + is31fl3733_write_register(bus, addr, IS31FL3733_FUNCTION_REG_CS_PULLDOWN, IS31FL3733_CS_PULLDOWN); // Set global current to maximum. - is31fl3733_write_register(bus, addr, IS31FL3733_REG_GLOBALCURRENT, IS31FL3733_GLOBALCURRENT); + is31fl3733_write_register(bus, addr, IS31FL3733_FUNCTION_REG_GLOBAL_CURRENT, IS31FL3733_GLOBAL_CURRENT); // Disable software shutdown. - is31fl3733_write_register(bus, addr, IS31FL3733_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((IS31FL3733_PWM_FREQUENCY & 0b111) << 3) | 0x01); + is31fl3733_write_register(bus, addr, IS31FL3733_FUNCTION_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((IS31FL3733_PWM_FREQUENCY & 0b111) << 3) | 0x01); // Wait 10ms to ensure the device has woken up. wait_ms(10); @@ -259,8 +243,8 @@ void is31fl3733_set_led_control_register(uint8_t index, bool red, bool green, bo void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index) { if (g_pwm_buffer_update_required[index]) { // Firstly we need to unlock the command register and select PG1. - is31fl3733_write_register(index, addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3733_write_register(index, addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_PWM); + is31fl3733_write_register(index, addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC); + is31fl3733_write_register(index, addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_PWM); // If any of the transactions fail we risk writing dirty PG0, // refresh page 0 just in case. @@ -274,8 +258,8 @@ void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index) { void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index) { if (g_led_control_registers_update_required[index]) { // Firstly we need to unlock the command register and select PG0 - is31fl3733_write_register(index, addr, IS31FL3733_COMMANDREGISTER_WRITELOCK, 0xC5); - is31fl3733_write_register(index, addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_LEDCONTROL); + is31fl3733_write_register(index, addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC); + is31fl3733_write_register(index, addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_LED_CONTROL); for (int i = 0; i < IS31FL3733_LED_CONTROL_REGISTER_COUNT; i++) { is31fl3733_write_register(index, addr, i, g_led_control_registers[index][i]); } diff --git a/keyboards/input_club/k_type/is31fl3733-dual.h b/keyboards/input_club/k_type/is31fl3733-dual.h index 51c4492ff8..2f7d58f7e7 100644 --- a/keyboards/input_club/k_type/is31fl3733-dual.h +++ b/keyboards/input_club/k_type/is31fl3733-dual.h @@ -22,6 +22,25 @@ #include #include "progmem.h" +#define IS31FL3733_REG_INTERRUPT_MASK 0xF0 +#define IS31FL3733_REG_INTERRUPT_STATUS 0xF1 + +#define IS31FL3733_REG_COMMAND 0xFD + +#define IS31FL3733_COMMAND_LED_CONTROL 0x00 +#define IS31FL3733_COMMAND_PWM 0x01 +#define IS31FL3733_COMMAND_AUTO_BREATH 0x02 +#define IS31FL3733_COMMAND_FUNCTION 0x03 + +#define IS31FL3733_FUNCTION_REG_CONFIGURATION 0x00 +#define IS31FL3733_FUNCTION_REG_GLOBAL_CURRENT 0x01 +#define IS31FL3733_FUNCTION_REG_SW_PULLUP 0x0F +#define IS31FL3733_FUNCTION_REG_CS_PULLDOWN 0x10 +#define IS31FL3733_FUNCTION_REG_RESET 0x11 + +#define IS31FL3733_REG_COMMAND_WRITE_LOCK 0xFE +#define IS31FL3733_COMMAND_WRITE_LOCK_MAGIC 0xC5 + #define IS31FL3733_I2C_ADDRESS_GND_GND 0x50 #define IS31FL3733_I2C_ADDRESS_GND_SCL 0x51 #define IS31FL3733_I2C_ADDRESS_GND_SDA 0x52 diff --git a/keyboards/keychron/c1_pro/ansi/rgb/config.h b/keyboards/keychron/c1_pro/ansi/rgb/config.h index ce9d46cad2..c3b52c5f24 100644 --- a/keyboards/keychron/c1_pro/ansi/rgb/config.h +++ b/keyboards/keychron/c1_pro/ansi/rgb/config.h @@ -29,7 +29,7 @@ #define DRIVER_2_LED_TOTAL 39 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL /* Set led driver current */ #define SNLED27351_CURRENT_TUNE \ { 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 } diff --git a/keyboards/keychron/c1_pro/ansi/white/config.h b/keyboards/keychron/c1_pro/ansi/white/config.h index 17c415153b..8c9cadf271 100644 --- a/keyboards/keychron/c1_pro/ansi/white/config.h +++ b/keyboards/keychron/c1_pro/ansi/white/config.h @@ -26,7 +26,7 @@ /* LED Matrix Configuration */ #define LED_MATRIX_LED_COUNT 90 -#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL /* Set led driver current */ #define SNLED27351_CURRENT_TUNE \ { 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 } diff --git a/keyboards/keychron/q0/plus/config.h b/keyboards/keychron/q0/plus/config.h index a27ec9cfa6..524a73c54d 100644 --- a/keyboards/keychron/q0/plus/config.h +++ b/keyboards/keychron/q0/plus/config.h @@ -23,7 +23,7 @@ /* RGB Matrix Configuration */ #define RGB_MATRIX_LED_COUNT 26 -#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL /* Encoder Configuration*/ #define ENCODER_DEFAULT_POS 0x3 diff --git a/keyboards/keychron/q10/config.h b/keyboards/keychron/q10/config.h index 645eb054d4..93941c3f19 100644 --- a/keyboards/keychron/q10/config.h +++ b/keyboards/keychron/q10/config.h @@ -41,7 +41,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL #define SNLED27351_CURRENT_TUNE \ { 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A } diff --git a/keyboards/keychron/q1v2/config.h b/keyboards/keychron/q1v2/config.h index d66e78b030..b3edfbbad8 100644 --- a/keyboards/keychron/q1v2/config.h +++ b/keyboards/keychron/q1v2/config.h @@ -44,7 +44,7 @@ #define WEAR_LEVELING_LOGICAL_SIZE 2048 #define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) -#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL /* Set LED driver current */ #define SNLED27351_CURRENT_TUNE \ { 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50 } diff --git a/keyboards/keychron/q2/config.h b/keyboards/keychron/q2/config.h index e6bb40fedf..486ce668b0 100644 --- a/keyboards/keychron/q2/config.h +++ b/keyboards/keychron/q2/config.h @@ -26,7 +26,7 @@ #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND -#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL /* Disable DIP switch in matrix data */ #define MATRIX_MASKED diff --git a/keyboards/keychron/q3/config.h b/keyboards/keychron/q3/config.h index a3cf5eafb7..9558ecc211 100644 --- a/keyboards/keychron/q3/config.h +++ b/keyboards/keychron/q3/config.h @@ -28,7 +28,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL /* DIP switch */ #define DIP_SWITCH_MATRIX_GRID { {5, 4} } diff --git a/keyboards/keychron/q4/ansi/v1/config.h b/keyboards/keychron/q4/ansi/v1/config.h index 4c3df271dd..be3324cb27 100644 --- a/keyboards/keychron/q4/ansi/v1/config.h +++ b/keyboards/keychron/q4/ansi/v1/config.h @@ -24,5 +24,4 @@ /* RGB Matrix Configuration */ #define RGB_MATRIX_LED_COUNT 61 -/* Scan phase of led driver set as SNLED27351_MSKPHASE_9CHANNEL(defined as 0x03 in SNLED27351.h) */ -#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL diff --git a/keyboards/keychron/q65/config.h b/keyboards/keychron/q65/config.h index 7ff53820d9..8d5f360826 100644 --- a/keyboards/keychron/q65/config.h +++ b/keyboards/keychron/q65/config.h @@ -37,7 +37,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 30U -#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL #define SNLED27351_CURRENT_TUNE \ { 0xB8, 0xB8, 0x58, 0xB8, 0xB8, 0x58, 0xB8, 0xB8, 0x58, 0xB8, 0xB8, 0x58 } diff --git a/keyboards/keychron/q7/config.h b/keyboards/keychron/q7/config.h index 688f057d31..4bf7d82096 100644 --- a/keyboards/keychron/q7/config.h +++ b/keyboards/keychron/q7/config.h @@ -28,7 +28,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL #define SNLED27351_CURRENT_TUNE \ { 0xF8, 0xF8, 0x80, 0xF8, 0xF8, 0x80, 0xF8, 0xF8, 0x80, 0xF8, 0xF8, 0x80 } diff --git a/keyboards/keychron/q8/config.h b/keyboards/keychron/q8/config.h index eb746a2083..abb1c6a970 100644 --- a/keyboards/keychron/q8/config.h +++ b/keyboards/keychron/q8/config.h @@ -31,7 +31,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL #define SNLED27351_CURRENT_TUNE \ { 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60 } diff --git a/keyboards/keychron/s1/ansi/rgb/config.h b/keyboards/keychron/s1/ansi/rgb/config.h index 1fa0623ac4..6036551690 100644 --- a/keyboards/keychron/s1/ansi/rgb/config.h +++ b/keyboards/keychron/s1/ansi/rgb/config.h @@ -24,7 +24,7 @@ #define DRIVER_2_LED_TOTAL 38 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL #define SNLED27351_CURRENT_TUNE \ { 0xA0, 0xA0, 0x48, 0xA0, 0xA0, 0x48, 0xA0, 0xA0, 0x48, 0xA0, 0xA0, 0x48 } diff --git a/keyboards/keychron/s1/ansi/white/config.h b/keyboards/keychron/s1/ansi/white/config.h index ad612700b0..5eb66e549a 100644 --- a/keyboards/keychron/s1/ansi/white/config.h +++ b/keyboards/keychron/s1/ansi/white/config.h @@ -22,7 +22,7 @@ #define DRIVER_1_LED_TOTAL 84 #define LED_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL -#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_6CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_6_CHANNEL #define SNLED27351_CURRENT_TUNE \ { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 } // 250mA // { 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40 } // 127mA diff --git a/keyboards/keychron/v1/config.h b/keyboards/keychron/v1/config.h index 713ca1157e..3fa164fa68 100644 --- a/keyboards/keychron/v1/config.h +++ b/keyboards/keychron/v1/config.h @@ -43,7 +43,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL /* turn off effects when suspended */ #define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/keychron/v10/config.h b/keyboards/keychron/v10/config.h index 2848f2ce8f..502f06ce83 100644 --- a/keyboards/keychron/v10/config.h +++ b/keyboards/keychron/v10/config.h @@ -42,7 +42,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL #define SNLED27351_CURRENT_TUNE { 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A } /* DIP switch */ diff --git a/keyboards/keychron/v2/config.h b/keyboards/keychron/v2/config.h index fa3c794edc..8f94b84235 100644 --- a/keyboards/keychron/v2/config.h +++ b/keyboards/keychron/v2/config.h @@ -31,7 +31,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL /* Disable DIP switch in matrix data */ #define MATRIX_MASKED diff --git a/keyboards/keychron/v3/config.h b/keyboards/keychron/v3/config.h index 53f81c87fb..4f3e47f3fe 100644 --- a/keyboards/keychron/v3/config.h +++ b/keyboards/keychron/v3/config.h @@ -31,7 +31,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL /* DIP switch */ #define DIP_SWITCH_MATRIX_GRID { {5, 4} } diff --git a/keyboards/keychron/v7/config.h b/keyboards/keychron/v7/config.h index dd0ce2f3c4..933211dee2 100644 --- a/keyboards/keychron/v7/config.h +++ b/keyboards/keychron/v7/config.h @@ -28,7 +28,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL #define SNLED27351_CURRENT_TUNE { 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70 } /* DIP switch */ diff --git a/keyboards/keychron/v8/config.h b/keyboards/keychron/v8/config.h index ae0c8ead05..88161444e1 100644 --- a/keyboards/keychron/v8/config.h +++ b/keyboards/keychron/v8/config.h @@ -31,7 +31,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL #define SNLED27351_CURRENT_TUNE { 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60 } /* DIP switch */ From 68722d35a3e7c0bd32eccf7da8ddddc6de7e2e57 Mon Sep 17 00:00:00 2001 From: Dasky <32983009+daskygit@users.noreply.github.com> Date: Mon, 20 Nov 2023 16:25:35 +0000 Subject: [PATCH 396/496] Azoteq IQS5xx support (#22280) --- builddefs/common_features.mk | 4 +- docs/feature_pointing_device.md | 65 ++++ drivers/sensors/azoteq_iqs5xx.c | 315 ++++++++++++++++++ drivers/sensors/azoteq_iqs5xx.h | 193 +++++++++++ quantum/pointing_device/pointing_device.h | 3 + .../pointing_device/pointing_device_drivers.c | 113 +++++++ 6 files changed, 692 insertions(+), 1 deletion(-) create mode 100644 drivers/sensors/azoteq_iqs5xx.c create mode 100644 drivers/sensors/azoteq_iqs5xx.h diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index fbaf087ad1..60f1cbd837 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -120,7 +120,7 @@ ifeq ($(strip $(MOUSEKEY_ENABLE)), yes) MOUSE_ENABLE := yes endif -VALID_POINTING_DEVICE_DRIVER_TYPES := adns5050 adns9800 analog_joystick cirque_pinnacle_i2c cirque_pinnacle_spi paw3204 pmw3320 pmw3360 pmw3389 pimoroni_trackball custom +VALID_POINTING_DEVICE_DRIVER_TYPES := adns5050 adns9800 analog_joystick azoteq_iqs5xx cirque_pinnacle_i2c cirque_pinnacle_spi paw3204 pmw3320 pmw3360 pmw3389 pimoroni_trackball custom ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes) ifeq ($(filter $(POINTING_DEVICE_DRIVER),$(VALID_POINTING_DEVICE_DRIVER_TYPES)),) $(call CATASTROPHIC_ERROR,Invalid POINTING_DEVICE_DRIVER,POINTING_DEVICE_DRIVER="$(POINTING_DEVICE_DRIVER)" is not a valid pointing device type) @@ -140,6 +140,8 @@ ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes) SPI_DRIVER_REQUIRED = yes else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), analog_joystick) ANALOG_DRIVER_REQUIRED = yes + else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), azoteq_iqs5xx) + I2C_DRIVER_REQUIRED = yes else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), cirque_pinnacle_i2c) I2C_DRIVER_REQUIRED = yes SRC += drivers/sensors/cirque_pinnacle.c diff --git a/docs/feature_pointing_device.md b/docs/feature_pointing_device.md index 909eff826d..c4bbd29d6d 100644 --- a/docs/feature_pointing_device.md +++ b/docs/feature_pointing_device.md @@ -74,6 +74,71 @@ The Analog Joystick is an analog (ADC) driven sensor. There are a variety of jo | `ANALOG_JOYSTICK_SPEED_MAX` | (Optional) The maximum value used for motion. | `2` | | `ANALOG_JOYSTICK_CLICK_PIN` | (Optional) The pin wired up to the press switch of the analog stick. | _not defined_ | +### Azoteq IQS5XX Trackpad + +To use a Azoteq IQS5XX trackpad, add this to your `rules.mk`: + +```make +POINTING_DEVICE_DRIVER = azoteq_iqs5xx +``` + +This supports the IQS525, IQS550 and IQS572 controllers, with the latter two being used in the TPS43 and TPS65 trackpads. + +#### Device settings + +Specific device profiles are provided which set the required values for dimensions and resolution. + +| Setting | Description | +| -------------------------------- | ---------------------------------------------------------- | +| `AZOTEQ_IQS5XX_TPS43` | (Pick One) Sets resolution/mm to TPS43 specifications. | +| `AZOTEQ_IQS5XX_TPS65` | (Pick One) Sets resolution/mm to TPS65 specifications. | + +?> If using one of the above defines you can skip to gesture settings. + +| Setting | Description | Default | +| -------------------------------- | ---------------------------------------------------------- | ------------- | +| `AZOTEQ_IQS5XX_WIDTH_MM` | (Required) Width of the trackpad sensor in millimeters. | _not defined_ | +| `AZOTEQ_IQS5XX_HEIGHT_MM` | (Required) Height of the trackpad sensor in millimeters. | _not defined_ | +| `AZOTEQ_IQS5XX_RESOLUTION_X` | (Optional) Specify X resolution for CPI calculation. | _not defined_ | +| `AZOTEQ_IQS5XX_RESOLUTION_Y` | (Optional) Specify Y resolution for CPI calculation. | _not defined_ | + +**`AZOTEQ_IQS5XX_RESOLUTION_X/Y`** fall back resolutions are provided within the driver based on controller model. + +| I2C Setting | Description | Default | +| ------------------------- | ------------------------------------------------------------------------------- | ------- | +| `AZOTEQ_IQS5XX_ADDRESS` | (Optional) Sets the I2C Address for the Azoteq trackpad | `0xE8` | +| `AZOTEQ_IQS5XX_TIMEOUT_MS`| (Optional) The timeout for i2c communication with in milliseconds. | `10` | + +#### Gesture settings + +| Setting | Description | Default | +| ----------------------------------------- | ------------------------------------------------------------------------------------ | ----------- | +| `AZOTEQ_IQS5XX_TAP_ENABLE` | (Optional) Enable single finger tap. (Left click) | `true` | +| `AZOTEQ_IQS5XX_TWO_FINGER_TAP_ENABLE` | (Optional) Enable two finger tap. (Right click) | `true` | +| `AZOTEQ_IQS5XX_PRESS_AND_HOLD_ENABLE` | (Optional) Emulates holding left click to select text. | `false` | +| `AZOTEQ_IQS5XX_SWIPE_X_ENABLE` | (Optional) Enable swipe gestures X+ (Mouse Button 5) / X- (Mouse Button 4) | `false` | +| `AZOTEQ_IQS5XX_SWIPE_Y_ENABLE` | (Optional) Enable swipe gestures Y+ (Mouse Button 3) / Y- (Mouse Button 6) | `false` | +| `AZOTEQ_IQS5XX_ZOOM_ENABLE` | (Optional) Enable zoom gestures Zoom Out (Mouse Button 7) / Zoom In (Mouse Button 8) | `false` | +| `AZOTEQ_IQS5XX_SCROLL_ENABLE` | (Optional) Enable scrolling using two fingers. | `true` | +| `AZOTEQ_IQS5XX_TAP_TIME` | (Optional) Maximum time in ms for tap to be registered. | `150` | +| `AZOTEQ_IQS5XX_TAP_DISTANCE` | (Optional) Maximum deviation in pixels before single tap is no longer valid. | `25` | +| `AZOTEQ_IQS5XX_HOLD_TIME` | (Optional) Minimum time in ms for press and hold. | `300` | +| `AZOTEQ_IQS5XX_SWIPE_INITIAL_TIME` | (Optional) Maximum time to travel initial distance before swipe is registered. | `150` | +| `AZOTEQ_IQS5XX_SWIPE_INITIAL_DISTANCE` | (Optional) Minimum travel in pixels before swipe is registered. | `300` | +| `AZOTEQ_IQS5XX_SWIPE_CONSECUTIVE_TIME` | (Optional) Maximum time to travel consecutive distance before swipe is registered. | `0` | +| `AZOTEQ_IQS5XX_SWIPE_CONSECUTIVE_DISTANCE`| (Optional) Minimum travel in pixels before a consecutive swipe is registered. | `2000` | +| `AZOTEQ_IQS5XX_SCROLL_INITIAL_DISTANCE` | (Optional) Minimum travel in pixels before scroll is registered. | `50` | +| `AZOTEQ_IQS5XX_ZOOM_INITIAL_DISTANCE` | (Optional) Minimum travel in pixels before zoom is registered. | `50` | +| `AZOTEQ_IQS5XX_ZOOM_CONSECUTIVE_DISTANCE` | (Optional) Maximum time to travel zoom distance before zoom is registered. | `25` | + +#### Rotation settings + +| Setting | Description | Default | +| ---------------------------- | ---------------------------------------------------------- | ------------- | +| `AZOTEQ_IQS5XX_ROTATION_90` | (Optional) Configures hardware for 90 degree rotation. | _not defined_ | +| `AZOTEQ_IQS5XX_ROTATION_180` | (Optional) Configures hardware for 180 degree rotation. | _not defined_ | +| `AZOTEQ_IQS5XX_ROTATION_270` | (Optional) Configures hardware for 270 degree rotation. | _not defined_ | + ### Cirque Trackpad To use the Cirque Trackpad sensor, add this to your `rules.mk`: diff --git a/drivers/sensors/azoteq_iqs5xx.c b/drivers/sensors/azoteq_iqs5xx.c new file mode 100644 index 0000000000..521f558b5f --- /dev/null +++ b/drivers/sensors/azoteq_iqs5xx.c @@ -0,0 +1,315 @@ +// Copyright 2023 Dasky (@daskygit) +// Copyright 2023 George Norton (@george-norton) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "azoteq_iqs5xx.h" +#include "pointing_device_internal.h" +#include "wait.h" + +#ifndef AZOTEQ_IQS5XX_ADDRESS +# define AZOTEQ_IQS5XX_ADDRESS (0x74 << 1) +#endif +#ifndef AZOTEQ_IQS5XX_TIMEOUT_MS +# define AZOTEQ_IQS5XX_TIMEOUT_MS 10 +#endif + +#define AZOTEQ_IQS5XX_REG_PRODUCT_NUMBER 0x0000 +#define AZOTEQ_IQS5XX_REG_PREVIOUS_CYCLE_TIME 0x000C +#define AZOTEQ_IQS5XX_REG_SYSTEM_CONTROL_1 0x0432 +#define AZOTEQ_IQS5XX_REG_REPORT_RATE_ACTIVE 0x057A +#define AZOTEQ_IQS5XX_REG_SYSTEM_CONFIG_0 0x058E +#define AZOTEQ_IQS5XX_REG_SYSTEM_CONFIG_1 0x058F +#define AZOTEQ_IQS5XX_REG_X_RESOLUTION 0x066E +#define AZOTEQ_IQS5XX_REG_XY_CONFIG_0 0x0669 +#define AZOTEQ_IQS5XX_REG_Y_RESOLUTION 0x0670 +#define AZOTEQ_IQS5XX_REG_SINGLE_FINGER_GESTURES 0x06B7 +#define AZOTEQ_IQS5XX_REG_END_COMMS 0xEEEE + +// Gesture configuration +#ifndef AZOTEQ_IQS5XX_TAP_ENABLE +# define AZOTEQ_IQS5XX_TAP_ENABLE true +#endif +#ifndef AZOTEQ_IQS5XX_PRESS_AND_HOLD_ENABLE +# define AZOTEQ_IQS5XX_PRESS_AND_HOLD_ENABLE false +#endif +#ifndef AZOTEQ_IQS5XX_TWO_FINGER_TAP_ENABLE +# define AZOTEQ_IQS5XX_TWO_FINGER_TAP_ENABLE true +#endif +#ifndef AZOTEQ_IQS5XX_SCROLL_ENABLE +# define AZOTEQ_IQS5XX_SCROLL_ENABLE true +#endif +#ifndef AZOTEQ_IQS5XX_SWIPE_X_ENABLE +# define AZOTEQ_IQS5XX_SWIPE_X_ENABLE false +#endif +#ifndef AZOTEQ_IQS5XX_SWIPE_Y_ENABLE +# define AZOTEQ_IQS5XX_SWIPE_Y_ENABLE false +#endif +#ifndef AZOTEQ_IQS5XX_ZOOM_ENABLE +# define AZOTEQ_IQS5XX_ZOOM_ENABLE false +#endif +#ifndef AZOTEQ_IQS5XX_TAP_TIME +# define AZOTEQ_IQS5XX_TAP_TIME 0x96 +#endif +#ifndef AZOTEQ_IQS5XX_TAP_DISTANCE +# define AZOTEQ_IQS5XX_TAP_DISTANCE 0x19 +#endif +#ifndef AZOTEQ_IQS5XX_HOLD_TIME +# define AZOTEQ_IQS5XX_HOLD_TIME 0x12C +#endif +#ifndef AZOTEQ_IQS5XX_SWIPE_INITIAL_TIME +# define AZOTEQ_IQS5XX_SWIPE_INITIAL_TIME 0x64 // 0x96 +#endif +#ifndef AZOTEQ_IQS5XX_SWIPE_INITIAL_DISTANCE +# define AZOTEQ_IQS5XX_SWIPE_INITIAL_DISTANCE 0x12C +#endif +#ifndef AZOTEQ_IQS5XX_SWIPE_CONSECUTIVE_TIME +# define AZOTEQ_IQS5XX_SWIPE_CONSECUTIVE_TIME 0x0 +#endif +#ifndef AZOTEQ_IQS5XX_SWIPE_CONSECUTIVE_DISTANCE +# define AZOTEQ_IQS5XX_SWIPE_CONSECUTIVE_DISTANCE 0x7D0 +#endif +#ifndef AZOTEQ_IQS5XX_SCROLL_INITIAL_DISTANCE +# define AZOTEQ_IQS5XX_SCROLL_INITIAL_DISTANCE 0x32 +#endif +#ifndef AZOTEQ_IQS5XX_ZOOM_INITIAL_DISTANCE +# define AZOTEQ_IQS5XX_ZOOM_INITIAL_DISTANCE 0x32 +#endif +#ifndef AZOTEQ_IQS5XX_ZOOM_CONSECUTIVE_DISTANCE +# define AZOTEQ_IQS5XX_ZOOM_CONSECUTIVE_DISTANCE 0x19 +#endif + +#if defined(AZOTEQ_IQS5XX_TPS43) +# define AZOTEQ_IQS5XX_WIDTH_MM 43 +# define AZOTEQ_IQS5XX_HEIGHT_MM 40 +# define AZOTEQ_IQS5XX_RESOLUTION_X 2048 +# define AZOTEQ_IQS5XX_RESOLUTION_Y 1792 +#elif defined(AZOTEQ_IQS5XX_TPS65) +# define AZOTEQ_IQS5XX_WIDTH_MM 65 +# define AZOTEQ_IQS5XX_HEIGHT_MM 49 +# define AZOTEQ_IQS5XX_RESOLUTION_X 3072 +# define AZOTEQ_IQS5XX_RESOLUTION_Y 2048 +#elif !defined(AZOTEQ_IQS5XX_WIDTH_MM) && !defined(AZOTEQ_IQS5XX_HEIGHT_MM) +# error "You must define one of the available azoteq trackpads or specify at least the width and height" +#endif + +#define DIVIDE_UNSIGNED_ROUND(numerator, denominator) (((numerator) + ((denominator) / 2)) / (denominator)) +#define AZOTEQ_IQS5XX_INCH_TO_RESOLUTION_X(inch) (DIVIDE_UNSIGNED_ROUND((inch) * (uint32_t)AZOTEQ_IQS5XX_WIDTH_MM * 10, 254)) +#define AZOTEQ_IQS5XX_RESOLUTION_X_TO_INCH(px) (DIVIDE_UNSIGNED_ROUND((px) * (uint32_t)254, AZOTEQ_IQS5XX_WIDTH_MM * 10)) +#define AZOTEQ_IQS5XX_INCH_TO_RESOLUTION_Y(inch) (DIVIDE_UNSIGNED_ROUND((inch) * (uint32_t)AZOTEQ_IQS5XX_HEIGHT_MM * 10, 254)) +#define AZOTEQ_IQS5XX_RESOLUTION_Y_TO_INCH(px) (DIVIDE_UNSIGNED_ROUND((px) * (uint32_t)254, AZOTEQ_IQS5XX_HEIGHT_MM * 10)) + +static uint16_t azoteq_iqs5xx_product_number = AZOTEQ_IQS5XX_UNKNOWN; + +static struct { + uint16_t resolution_x; + uint16_t resolution_y; +} azoteq_iqs5xx_device_resolution_t; + +i2c_status_t azoteq_iqs5xx_wake(void) { + uint8_t data = 0; + i2c_status_t status = i2c_readReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_PREVIOUS_CYCLE_TIME, (uint8_t *)&data, sizeof(data), 1); + i2c_stop(); + wait_us(150); + return status; +} +i2c_status_t azoteq_iqs5xx_end_session(void) { + const uint8_t END_BYTE = 1; // any data + return i2c_writeReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_END_COMMS, &END_BYTE, 1, AZOTEQ_IQS5XX_TIMEOUT_MS); +} + +i2c_status_t azoteq_iqs5xx_get_base_data(azoteq_iqs5xx_base_data_t *base_data) { + i2c_status_t status = i2c_readReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_PREVIOUS_CYCLE_TIME, (uint8_t *)base_data, 10, AZOTEQ_IQS5XX_TIMEOUT_MS); + if (status == I2C_STATUS_SUCCESS) { + azoteq_iqs5xx_end_session(); + } + return status; +} + +i2c_status_t azoteq_iqs5xx_get_report_rate(azoteq_iqs5xx_report_rate_t *report_rate, azoteq_iqs5xx_charging_modes_t mode, bool end_session) { + if (mode > AZOTEQ_IQS5XX_LP2) { + pd_dprintf("IQS5XX - Invalid mode for get report rate.\n"); + return I2C_STATUS_ERROR; + } + uint16_t selected_reg = AZOTEQ_IQS5XX_REG_REPORT_RATE_ACTIVE + (2 * mode); + i2c_status_t status = i2c_readReg16(AZOTEQ_IQS5XX_ADDRESS, selected_reg, (uint8_t *)report_rate, 2, AZOTEQ_IQS5XX_TIMEOUT_MS); + if (end_session) { + azoteq_iqs5xx_end_session(); + } + return status; +} + +i2c_status_t azoteq_iqs5xx_set_report_rate(uint16_t report_rate_ms, azoteq_iqs5xx_charging_modes_t mode, bool end_session) { + if (mode > AZOTEQ_IQS5XX_LP2) { + pd_dprintf("IQS5XX - Invalid mode for set report rate.\n"); + return I2C_STATUS_ERROR; + } + uint16_t selected_reg = AZOTEQ_IQS5XX_REG_REPORT_RATE_ACTIVE + (2 * mode); + azoteq_iqs5xx_report_rate_t report_rate = {0}; + report_rate.h = (uint8_t)((report_rate_ms >> 8) & 0xFF); + report_rate.l = (uint8_t)(report_rate_ms & 0xFF); + i2c_status_t status = i2c_writeReg16(AZOTEQ_IQS5XX_ADDRESS, selected_reg, (uint8_t *)&report_rate, 2, AZOTEQ_IQS5XX_TIMEOUT_MS); + if (end_session) { + azoteq_iqs5xx_end_session(); + } + return status; +} + +i2c_status_t azoteq_iqs5xx_set_reati(bool enabled, bool end_session) { + azoteq_iqs5xx_system_config_0_t config = {0}; + i2c_status_t status = i2c_readReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_SYSTEM_CONFIG_0, (uint8_t *)&config, sizeof(azoteq_iqs5xx_system_config_0_t), AZOTEQ_IQS5XX_TIMEOUT_MS); + if (status == I2C_STATUS_SUCCESS) { + config.reati = enabled; + status = i2c_writeReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_SYSTEM_CONFIG_0, (uint8_t *)&config, sizeof(azoteq_iqs5xx_system_config_0_t), AZOTEQ_IQS5XX_TIMEOUT_MS); + } + if (end_session) { + azoteq_iqs5xx_end_session(); + } + return status; +} + +i2c_status_t azoteq_iqs5xx_set_event_mode(bool enabled, bool end_session) { + azoteq_iqs5xx_system_config_1_t config = {0}; + i2c_status_t status = i2c_readReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_SYSTEM_CONFIG_1, (uint8_t *)&config, sizeof(azoteq_iqs5xx_system_config_1_t), AZOTEQ_IQS5XX_TIMEOUT_MS); + if (status == I2C_STATUS_SUCCESS) { + config.event_mode = enabled; + config.touch_event = true; + config.tp_event = true; + config.prox_event = false; + config.snap_event = false; + config.reati_event = false; + config.alp_prox_event = false; + config.gesture_event = true; + status = i2c_writeReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_SYSTEM_CONFIG_1, (uint8_t *)&config, sizeof(azoteq_iqs5xx_system_config_1_t), AZOTEQ_IQS5XX_TIMEOUT_MS); + } + if (end_session) { + azoteq_iqs5xx_end_session(); + } + return status; +} + +i2c_status_t azoteq_iqs5xx_set_gesture_config(bool end_session) { + azoteq_iqs5xx_gesture_config_t config = {0}; + i2c_status_t status = i2c_readReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_SINGLE_FINGER_GESTURES, (uint8_t *)&config, sizeof(azoteq_iqs5xx_gesture_config_t), AZOTEQ_IQS5XX_TIMEOUT_MS); + pd_dprintf("azo scroll: %d\n", config.multi_finger_gestures.scroll); + if (status == I2C_STATUS_SUCCESS) { + config.single_finger_gestures.single_tap = AZOTEQ_IQS5XX_TAP_ENABLE; + config.single_finger_gestures.press_and_hold = AZOTEQ_IQS5XX_PRESS_AND_HOLD_ENABLE; + config.single_finger_gestures.swipe_x_plus = AZOTEQ_IQS5XX_SWIPE_X_ENABLE; + config.single_finger_gestures.swipe_x_minus = AZOTEQ_IQS5XX_SWIPE_X_ENABLE; + config.single_finger_gestures.swipe_y_plus = AZOTEQ_IQS5XX_SWIPE_Y_ENABLE; + config.single_finger_gestures.swipe_y_minus = AZOTEQ_IQS5XX_SWIPE_Y_ENABLE; + config.multi_finger_gestures.two_finger_tap = AZOTEQ_IQS5XX_TWO_FINGER_TAP_ENABLE; + config.multi_finger_gestures.scroll = AZOTEQ_IQS5XX_SCROLL_ENABLE; + config.multi_finger_gestures.zoom = AZOTEQ_IQS5XX_ZOOM_ENABLE; + config.tap_time = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(AZOTEQ_IQS5XX_TAP_TIME); + config.tap_distance = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(AZOTEQ_IQS5XX_TAP_DISTANCE); + config.hold_time = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(AZOTEQ_IQS5XX_HOLD_TIME); + config.swipe_initial_time = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(AZOTEQ_IQS5XX_SWIPE_INITIAL_TIME); + config.swipe_initial_distance = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(AZOTEQ_IQS5XX_SWIPE_INITIAL_DISTANCE); + config.swipe_consecutive_time = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(AZOTEQ_IQS5XX_SWIPE_CONSECUTIVE_TIME); + config.swipe_consecutive_distance = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(AZOTEQ_IQS5XX_SWIPE_CONSECUTIVE_DISTANCE); + config.scroll_initial_distance = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(AZOTEQ_IQS5XX_SCROLL_INITIAL_DISTANCE); + config.zoom_initial_distance = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(AZOTEQ_IQS5XX_ZOOM_INITIAL_DISTANCE); + config.zoom_consecutive_distance = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(AZOTEQ_IQS5XX_ZOOM_CONSECUTIVE_DISTANCE); + status = i2c_writeReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_SINGLE_FINGER_GESTURES, (uint8_t *)&config, sizeof(azoteq_iqs5xx_gesture_config_t), AZOTEQ_IQS5XX_TIMEOUT_MS); + } + if (end_session) { + azoteq_iqs5xx_end_session(); + } + return status; +} + +i2c_status_t azoteq_iqs5xx_set_xy_config(bool flip_x, bool flip_y, bool switch_xy, bool palm_reject, bool end_session) { + azoteq_iqs5xx_xy_config_0_t config = {0}; + i2c_status_t status = i2c_readReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_XY_CONFIG_0, (uint8_t *)&config, sizeof(azoteq_iqs5xx_xy_config_0_t), AZOTEQ_IQS5XX_TIMEOUT_MS); + if (status == I2C_STATUS_SUCCESS) { + if (flip_x) { + config.flip_x = !config.flip_x; + } + if (flip_y) { + config.flip_y = !config.flip_y; + } + if (switch_xy) { + config.switch_xy_axis = !config.switch_xy_axis; + } + config.palm_reject = palm_reject; + status = i2c_writeReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_XY_CONFIG_0, (uint8_t *)&config, sizeof(azoteq_iqs5xx_xy_config_0_t), AZOTEQ_IQS5XX_TIMEOUT_MS); + } + if (end_session) { + azoteq_iqs5xx_end_session(); + } + return status; +} + +i2c_status_t azoteq_iqs5xx_reset_suspend(bool reset, bool suspend, bool end_session) { + azoteq_iqs5xx_system_control_1_t config = {0}; + i2c_status_t status = i2c_readReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_SYSTEM_CONTROL_1, (uint8_t *)&config, sizeof(azoteq_iqs5xx_system_control_1_t), AZOTEQ_IQS5XX_TIMEOUT_MS); + if (status == I2C_STATUS_SUCCESS) { + config.reset = reset; + config.suspend = suspend; + status = i2c_writeReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_SYSTEM_CONTROL_1, (uint8_t *)&config, sizeof(azoteq_iqs5xx_system_control_1_t), AZOTEQ_IQS5XX_TIMEOUT_MS); + } + if (end_session) { + azoteq_iqs5xx_end_session(); + } + return status; +} + +void azoteq_iqs5xx_set_cpi(uint16_t cpi) { + if (azoteq_iqs5xx_product_number != AZOTEQ_IQS5XX_UNKNOWN) { + azoteq_iqs5xx_resolution_t resolution = {0}; + resolution.x_resolution = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(MIN(azoteq_iqs5xx_device_resolution_t.resolution_x, AZOTEQ_IQS5XX_INCH_TO_RESOLUTION_X(cpi))); + resolution.y_resolution = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(MIN(azoteq_iqs5xx_device_resolution_t.resolution_y, AZOTEQ_IQS5XX_INCH_TO_RESOLUTION_Y(cpi))); + i2c_writeReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_X_RESOLUTION, (uint8_t *)&resolution, sizeof(azoteq_iqs5xx_resolution_t), AZOTEQ_IQS5XX_TIMEOUT_MS); + } +} + +uint16_t azoteq_iqs5xx_get_cpi(void) { + if (azoteq_iqs5xx_product_number != AZOTEQ_IQS5XX_UNKNOWN) { + azoteq_iqs5xx_resolution_t resolution = {0}; + i2c_status_t status = i2c_readReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_X_RESOLUTION, (uint8_t *)&resolution, sizeof(azoteq_iqs5xx_resolution_t), AZOTEQ_IQS5XX_TIMEOUT_MS); + if (status == I2C_STATUS_SUCCESS) { + return AZOTEQ_IQS5XX_RESOLUTION_X_TO_INCH(AZOTEQ_IQS5XX_SWAP_H_L_BYTES(resolution.x_resolution)); + } + } + return 0; +} + +uint16_t azoteq_iqs5xx_get_product(void) { + i2c_status_t status = i2c_readReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_PRODUCT_NUMBER, (uint8_t *)&azoteq_iqs5xx_product_number, sizeof(uint16_t), AZOTEQ_IQS5XX_TIMEOUT_MS); + if (status == I2C_STATUS_SUCCESS) { + azoteq_iqs5xx_product_number = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(azoteq_iqs5xx_product_number); + } + pd_dprintf("AZOTEQ: Product number %u\n", azoteq_iqs5xx_product_number); + return azoteq_iqs5xx_product_number; +} + +void azoteq_iqs5xx_setup_resolution(void) { +#if !defined(AZOTEQ_IQS5XX_RESOLUTION_X) && !defined(AZOTEQ_IQS5XX_RESOLUTION_Y) + switch (azoteq_iqs5xx_product_number) { + case AZOTEQ_IQS550: + azoteq_iqs5xx_device_resolution_t.resolution_x = 3584; + azoteq_iqs5xx_device_resolution_t.resolution_y = 2304; + break; + case AZOTEQ_IQS572: + azoteq_iqs5xx_device_resolution_t.resolution_x = 2048; + azoteq_iqs5xx_device_resolution_t.resolution_y = 1792; + break; + case AZOTEQ_IQS525: + azoteq_iqs5xx_device_resolution_t.resolution_x = 1280; + azoteq_iqs5xx_device_resolution_t.resolution_y = 768; + break; + default: + // shouldn't be here + azoteq_iqs5xx_device_resolution_t.resolution_x = 0; + azoteq_iqs5xx_device_resolution_t.resolution_y = 0; + break; + } +#endif +#ifdef AZOTEQ_IQS5XX_RESOLUTION_X + azoteq_iqs5xx_device_resolution_t.resolution_x = AZOTEQ_IQS5XX_RESOLUTION_X; +#endif +#ifdef AZOTEQ_IQS5XX_RESOLUTION_Y + azoteq_iqs5xx_device_resolution_t.resolution_y = AZOTEQ_IQS5XX_RESOLUTION_Y; +#endif +} diff --git a/drivers/sensors/azoteq_iqs5xx.h b/drivers/sensors/azoteq_iqs5xx.h new file mode 100644 index 0000000000..704ec2bab3 --- /dev/null +++ b/drivers/sensors/azoteq_iqs5xx.h @@ -0,0 +1,193 @@ +// Copyright 2023 Dasky (@daskygit) +// Copyright 2023 George Norton (@george-norton) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "i2c_master.h" +#include "pointing_device.h" +#include "util.h" + +typedef enum { + AZOTEQ_IQS5XX_UNKNOWN, + AZOTEQ_IQS550 = 40, + AZOTEQ_IQS525 = 52, + AZOTEQ_IQS572 = 58, +} azoteq_iqs5xx_product_numbers_t; +typedef enum { + AZOTEQ_IQS5XX_ACTIVE, + AZOTEQ_IQS5XX_IDLE_TOUCH, + AZOTEQ_IQS5XX_IDLE, + AZOTEQ_IQS5XX_LP1, + AZOTEQ_IQS5XX_LP2, +} azoteq_iqs5xx_charging_modes_t; + +typedef struct { + uint8_t h : 8; + uint8_t l : 8; +} azoteq_iqs5xx_report_rate_t; + +typedef struct PACKED { + bool single_tap : 1; // Single tap gesture status + bool press_and_hold : 1; // Press and hold gesture status + bool swipe_x_neg : 1; // Swipe in negative X direction status + bool swipe_x_pos : 1; // Swipe in positive X direction status + bool swipe_y_pos : 1; // Swipe in positive Y direction status + bool swipe_y_neg : 1; // Swipe in negative Y direction status + uint8_t _unused : 2; // unused +} azoteq_iqs5xx_gesture_events_0_t; + +typedef struct PACKED { + bool two_finger_tap : 1; // Two finger tap gesture status + bool scroll : 1; // Scroll status + bool zoom : 1; // Zoom gesture status + uint8_t _unused : 5; // unused +} azoteq_iqs5xx_gesture_events_1_t; + +typedef struct PACKED { + azoteq_iqs5xx_charging_modes_t charging_mode : 3; // Indicates current mode + bool ati_error : 1; // + bool reati_occurred : 1; // + bool alp_ati_error : 1; // + bool alp_reati_occurred : 1; // + bool show_reset : 1; // +} azoteq_iqs5xx_system_info_0_t; + +typedef struct PACKED { + bool tp_movement : 1; // + bool palm_detect : 1; // Palm detect status + bool too_many_fingers : 1; // Total finger status + bool rr_missed : 1; // Report rate status + bool snap_toggle : 1; // Change in any snap channel status + bool switch_state : 1; // Status of input pin SW_IN + uint8_t _unused : 2; // unused +} azoteq_iqs5xx_system_info_1_t; + +typedef struct { + uint8_t h : 8; + uint8_t l : 8; +} azoteq_iqs5xx_relative_xy_t; + +typedef struct { + uint8_t previous_cycle_time; + azoteq_iqs5xx_gesture_events_0_t gesture_events_0; + azoteq_iqs5xx_gesture_events_1_t gesture_events_1; + azoteq_iqs5xx_system_info_0_t system_info_0; + azoteq_iqs5xx_system_info_1_t system_info_1; + uint8_t number_of_fingers; + azoteq_iqs5xx_relative_xy_t x; + azoteq_iqs5xx_relative_xy_t y; +} azoteq_iqs5xx_base_data_t; + +_Static_assert(sizeof(azoteq_iqs5xx_base_data_t) == 10, "azoteq_iqs5xx_basic_report_t should be 10 bytes"); + +typedef struct { + uint8_t number_of_fingers; + azoteq_iqs5xx_relative_xy_t x; + azoteq_iqs5xx_relative_xy_t y; +} azoteq_iqs5xx_report_data_t; + +_Static_assert(sizeof(azoteq_iqs5xx_report_data_t) == 5, "azoteq_iqs5xx_report_data_t should be 5 bytes"); + +typedef struct PACKED { + bool sw_input : 1; + bool sw_input_select : 1; + bool reati : 1; + bool alp_reati : 1; + bool sw_input_event : 1; + bool wdt : 1; + bool setup_complete : 1; + bool manual_control : 1; +} azoteq_iqs5xx_system_config_0_t; + +typedef struct PACKED { + bool event_mode : 1; + bool gesture_event : 1; + bool tp_event : 1; + bool reati_event : 1; + bool alp_prox_event : 1; + bool snap_event : 1; + bool touch_event : 1; + bool prox_event : 1; +} azoteq_iqs5xx_system_config_1_t; + +typedef struct PACKED { + bool flip_x : 1; + bool flip_y : 1; + bool switch_xy_axis : 1; + bool palm_reject : 1; + uint8_t _unused : 4; +} azoteq_iqs5xx_xy_config_0_t; + +typedef struct PACKED { + bool suspend : 1; + bool reset : 1; + int8_t _unused : 6; +} azoteq_iqs5xx_system_control_1_t; + +typedef struct PACKED { + bool single_tap : 1; + bool press_and_hold : 1; + bool swipe_x_minus : 1; + bool swipe_x_plus : 1; + bool swipe_y_plus : 1; + bool swipe_y_minus : 1; + int8_t _unused : 2; +} azoteq_iqs5xx_single_finger_gesture_enable_t; + +typedef struct PACKED { + bool two_finger_tap : 1; + bool scroll : 1; + bool zoom : 1; + int8_t _unused : 5; +} azoteq_iqs5xx_multi_finger_gesture_enable_t; + +typedef struct PACKED { + azoteq_iqs5xx_single_finger_gesture_enable_t single_finger_gestures; + azoteq_iqs5xx_multi_finger_gesture_enable_t multi_finger_gestures; + uint16_t tap_time; + uint16_t tap_distance; + uint16_t hold_time; + uint16_t swipe_initial_time; + uint16_t swipe_initial_distance; + uint16_t swipe_consecutive_time; + uint16_t swipe_consecutive_distance; + int8_t swipe_angle; + uint16_t scroll_initial_distance; + int8_t scroll_angle; + uint16_t zoom_initial_distance; + uint16_t zoom_consecutive_distance; +} azoteq_iqs5xx_gesture_config_t; + +_Static_assert(sizeof(azoteq_iqs5xx_gesture_config_t) == 24, "azoteq_iqs5xx_gesture_config_t should be 24 bytes"); + +typedef struct { + uint16_t x_resolution; + uint16_t y_resolution; +} azoteq_iqs5xx_resolution_t; + +#define AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(h, l) ((int16_t)(h << 8) | l) +#define AZOTEQ_IQS5XX_SWAP_H_L_BYTES(b) ((uint16_t)((b & 0xff) << 8) | (b >> 8)) + +#ifndef AZOTEQ_IQS5XX_REPORT_RATE +# define AZOTEQ_IQS5XX_REPORT_RATE 10 +#endif +#if !defined(POINTING_DEVICE_TASK_THROTTLE_MS) && !defined(POINTING_DEVICE_MOTION_PIN) +# define POINTING_DEVICE_TASK_THROTTLE_MS AZOTEQ_IQS5XX_REPORT_RATE +#endif + +void azoteq_iqs5xx_init(void); +i2c_status_t azoteq_iqs5xx_wake(void); +report_mouse_t azoteq_iqs5xx_get_report(report_mouse_t mouse_report); +i2c_status_t azoteq_iqs5xx_get_report_rate(azoteq_iqs5xx_report_rate_t *report_rate, azoteq_iqs5xx_charging_modes_t mode, bool end_session); +i2c_status_t azoteq_iqs5xx_set_report_rate(uint16_t report_rate_ms, azoteq_iqs5xx_charging_modes_t mode, bool end_session); +i2c_status_t azoteq_iqs5xx_set_event_mode(bool enabled, bool end_session); +i2c_status_t azoteq_iqs5xx_set_reati(bool enabled, bool end_session); +i2c_status_t azoteq_iqs5xx_set_gesture_config(bool end_session); +i2c_status_t azoteq_iqs5xx_set_xy_config(bool flip_x, bool flip_y, bool switch_xy, bool palm_reject, bool end_session); +i2c_status_t azoteq_iqs5xx_reset_suspend(bool reset, bool suspend, bool end_session); +i2c_status_t azoteq_iqs5xx_get_base_data(azoteq_iqs5xx_base_data_t *base_data); +void azoteq_iqs5xx_set_cpi(uint16_t cpi); +uint16_t azoteq_iqs5xx_get_cpi(void); +uint16_t azoteq_iqs5xx_get_product(void); +void azoteq_iqs5xx_setup_resolution(void); diff --git a/quantum/pointing_device/pointing_device.h b/quantum/pointing_device/pointing_device.h index afd653eaee..1cd4b0b5e6 100644 --- a/quantum/pointing_device/pointing_device.h +++ b/quantum/pointing_device/pointing_device.h @@ -39,6 +39,9 @@ along with this program. If not, see . # include "analog.h" # include "drivers/sensors/analog_joystick.h" # define POINTING_DEVICE_MOTION_PIN_ACTIVE_LOW +#elif defined(POINTING_DEVICE_DRIVER_azoteq_iqs5xx) +# include "i2c_master.h" +# include "drivers/sensors/azoteq_iqs5xx.h" #elif defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_i2c) || defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_spi) # include "drivers/sensors/cirque_pinnacle.h" # include "drivers/sensors/cirque_pinnacle_gestures.h" diff --git a/quantum/pointing_device/pointing_device_drivers.c b/quantum/pointing_device/pointing_device_drivers.c index 9a4315f76f..bf131c6eda 100644 --- a/quantum/pointing_device/pointing_device_drivers.c +++ b/quantum/pointing_device/pointing_device_drivers.c @@ -115,6 +115,119 @@ const pointing_device_driver_t pointing_device_driver = { }; // clang-format on +#elif defined(POINTING_DEVICE_DRIVER_azoteq_iqs5xx) + +static i2c_status_t azoteq_iqs5xx_init_status = 1; + +void azoteq_iqs5xx_init(void) { + i2c_init(); + azoteq_iqs5xx_wake(); + azoteq_iqs5xx_reset_suspend(true, false, true); + wait_ms(100); + azoteq_iqs5xx_wake(); + if (azoteq_iqs5xx_get_product() != AZOTEQ_IQS5XX_UNKNOWN) { + azoteq_iqs5xx_setup_resolution(); + azoteq_iqs5xx_init_status = azoteq_iqs5xx_set_report_rate(AZOTEQ_IQS5XX_REPORT_RATE, AZOTEQ_IQS5XX_ACTIVE, false); + azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_event_mode(false, false); + azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_reati(true, false); +# if defined(AZOTEQ_IQS5XX_ROTATION_90) + azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(false, true, true, true, false); +# elif defined(AZOTEQ_IQS5XX_ROTATION_180) + azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(true, true, false, true, false); +# elif defined(AZOTEQ_IQS5XX_ROTATION_270) + azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(true, false, true, true, false); +# else + azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(false, false, false, true, false); +# endif + azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_gesture_config(true); + wait_ms(AZOTEQ_IQS5XX_REPORT_RATE + 1); + } +}; + +report_mouse_t azoteq_iqs5xx_get_report(report_mouse_t mouse_report) { + report_mouse_t temp_report = {0}; + static uint8_t previous_button_state = 0; + static uint8_t read_error_count = 0; + + if (azoteq_iqs5xx_init_status == I2C_STATUS_SUCCESS) { + azoteq_iqs5xx_base_data_t base_data = {0}; +# if !defined(POINTING_DEVICE_MOTION_PIN) + azoteq_iqs5xx_wake(); +# endif + i2c_status_t status = azoteq_iqs5xx_get_base_data(&base_data); + bool ignore_movement = false; + + if (status == I2C_STATUS_SUCCESS) { + // pd_dprintf("IQS5XX - previous cycle time: %d \n", base_data.previous_cycle_time); + read_error_count = 0; + if (base_data.gesture_events_0.single_tap || base_data.gesture_events_0.press_and_hold) { + pd_dprintf("IQS5XX - Single tap/hold.\n"); + temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON1); + } else if (base_data.gesture_events_1.two_finger_tap) { + pd_dprintf("IQS5XX - Two finger tap.\n"); + temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON2); + } else if (base_data.gesture_events_0.swipe_x_neg) { + pd_dprintf("IQS5XX - X-.\n"); + temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON4); + ignore_movement = true; + } else if (base_data.gesture_events_0.swipe_x_pos) { + pd_dprintf("IQS5XX - X+.\n"); + temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON5); + ignore_movement = true; + } else if (base_data.gesture_events_0.swipe_y_neg) { + pd_dprintf("IQS5XX - Y-.\n"); + temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON6); + ignore_movement = true; + } else if (base_data.gesture_events_0.swipe_y_pos) { + pd_dprintf("IQS5XX - Y+.\n"); + temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON3); + ignore_movement = true; + } else if (base_data.gesture_events_1.zoom) { + if (AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l) < 0) { + pd_dprintf("IQS5XX - Zoom out.\n"); + temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON7); + } else if (AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l) > 0) { + pd_dprintf("IQS5XX - Zoom in.\n"); + temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON8); + } + } else if (base_data.gesture_events_1.scroll) { + pd_dprintf("IQS5XX - Scroll.\n"); + temp_report.h = CONSTRAIN_HID(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l)); + temp_report.v = CONSTRAIN_HID(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.y.h, base_data.y.l)); + } + if (base_data.number_of_fingers == 1 && !ignore_movement) { + temp_report.x = CONSTRAIN_HID_XY(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l)); + temp_report.y = CONSTRAIN_HID_XY(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.y.h, base_data.y.l)); + } + + previous_button_state = temp_report.buttons; + + } else { + if (read_error_count > 10) { + read_error_count = 0; + previous_button_state = 0; + } else { + read_error_count++; + } + temp_report.buttons = previous_button_state; + pd_dprintf("IQS5XX - get report failed: %d \n", status); + } + } else { + pd_dprintf("IQS5XX - Init failed: %d \n", azoteq_iqs5xx_init_status); + } + + return temp_report; +} + +// clang-format off +const pointing_device_driver_t pointing_device_driver = { + .init = azoteq_iqs5xx_init, + .get_report = azoteq_iqs5xx_get_report, + .set_cpi = azoteq_iqs5xx_set_cpi, + .get_cpi = azoteq_iqs5xx_get_cpi +}; +// clang-format on + #elif defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_i2c) || defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_spi) # ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE static bool cursor_glide_enable = true; From 7e27d72cbc9af11b5de3f0c30810a0b95267acee Mon Sep 17 00:00:00 2001 From: Sergey Vlasov Date: Tue, 21 Nov 2023 18:05:29 +0300 Subject: [PATCH 397/496] Fix `qmk find` failure due to circular imports (#22523) There was an import cycle in the Python modules: - `qmk.build_targets` imported `qmk.cli.generate.compilation_database`; - importing `qmk.cli.generate.compilation_database` requires initializing `qmk.cli` first; - the initialization of `qmk.cli` imported the modules for all CLI commands; - `qmk.cli.compile` imported `qmk.build_targets`. This cycle did not matter in most cases, because `qmk.cli` was imported first, and in that case importing `qmk.cli.generate.compilation_database` did not trigger the initialization of `qmk.cli` again. However, there was one corner case when `qmk.bulld_targets` was getting imported first: - The `qmk find` command uses the `multiprocessing` module. - The `multiprocessing` module uses the `spawn` start method on macOS and Windows. - When the `spawn` method is used, the child processes initialize without any Python modules loaded, and the required modules are loaded on demand by the `pickle` module when receiving the serialized objects from the main process. The result was that the `qmk find` command did not work properly on macOS (and probably Windows too); it reported exceptions like this: ImportError: cannot import name 'KeyboardKeymapBuildTarget' from partially initialized module 'qmk.build_targets' (most likely due to a circular import) Moving the offending `qmk.cli.generate.compilation_database` import into the method which actually uses it fixes the problem. --- lib/python/qmk/build_targets.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/python/qmk/build_targets.py b/lib/python/qmk/build_targets.py index 236c2eaa03..fc72022049 100644 --- a/lib/python/qmk/build_targets.py +++ b/lib/python/qmk/build_targets.py @@ -10,7 +10,6 @@ from qmk.constants import QMK_FIRMWARE, INTERMEDIATE_OUTPUT_PREFIX from qmk.commands import find_make, get_make_parallel_args, parse_configurator_json from qmk.keyboard import keyboard_folder from qmk.info import keymap_json -from qmk.cli.generate.compilation_database import write_compilation_database class BuildTarget: @@ -105,6 +104,7 @@ class BuildTarget: def generate_compilation_database(self, build_target: str = None, skip_clean: bool = False, **env_vars) -> None: self.prepare_build(build_target=build_target, **env_vars) command = self.compile_command(build_target=build_target, dry_run=True, **env_vars) + from qmk.cli.generate.compilation_database import write_compilation_database # Lazy load due to circular references write_compilation_database(command=command, output_path=QMK_FIRMWARE / 'compile_commands.json', skip_clean=skip_clean, **env_vars) def compile(self, build_target: str = None, dry_run: bool = False, **env_vars) -> None: From 46b996a55e370b7c370dc0b092100a61121f9ddd Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Wed, 22 Nov 2023 11:14:34 +1100 Subject: [PATCH 398/496] CLI parallel search updates (#22525) --- lib/python/qmk/cli/ci/validate_aliases.py | 7 ++----- lib/python/qmk/cli/generate/api.py | 4 ++-- lib/python/qmk/commands.py | 4 ++-- lib/python/qmk/keyboard.py | 7 ++++++- lib/python/qmk/search.py | 17 ++++++++++++++--- 5 files changed, 26 insertions(+), 13 deletions(-) diff --git a/lib/python/qmk/cli/ci/validate_aliases.py b/lib/python/qmk/cli/ci/validate_aliases.py index a205d03cff..7f781d4397 100644 --- a/lib/python/qmk/cli/ci/validate_aliases.py +++ b/lib/python/qmk/cli/ci/validate_aliases.py @@ -1,11 +1,8 @@ """Validates the list of keyboard aliases. """ -from pathlib import Path - from milc import cli -from qmk.json_schema import json_load -from qmk.keyboard import resolve_keyboard, keyboard_folder +from qmk.keyboard import resolve_keyboard, keyboard_folder, keyboard_alias_definitions def _safe_keyboard_folder(target): @@ -34,7 +31,7 @@ def _target_keyboard_exists(target): @cli.subcommand('Validates the list of keyboard aliases.', hidden=True) def ci_validate_aliases(cli): - aliases = json_load(Path('data/mappings/keyboard_aliases.hjson')) + aliases = keyboard_alias_definitions() success = True for alias in aliases.keys(): diff --git a/lib/python/qmk/cli/generate/api.py b/lib/python/qmk/cli/generate/api.py index 61a2f9f732..1948b483a1 100755 --- a/lib/python/qmk/cli/generate/api.py +++ b/lib/python/qmk/cli/generate/api.py @@ -10,7 +10,7 @@ from qmk.datetime import current_datetime from qmk.info import info_json from qmk.json_schema import json_load from qmk.keymap import list_keymaps -from qmk.keyboard import find_readme, list_keyboards +from qmk.keyboard import find_readme, list_keyboards, keyboard_alias_definitions from qmk.keycodes import load_spec, list_versions, list_languages DATA_PATH = Path('data') @@ -166,7 +166,7 @@ def generate_api(cli): # Generate data for the global files keyboard_list = sorted(kb_all) - keyboard_aliases = json_load(Path('data/mappings/keyboard_aliases.hjson')) + keyboard_aliases = keyboard_alias_definitions() keyboard_metadata = { 'last_updated': current_datetime(), 'keyboards': keyboard_list, diff --git a/lib/python/qmk/commands.py b/lib/python/qmk/commands.py index e5fdbc4f30..519cb4c708 100644 --- a/lib/python/qmk/commands.py +++ b/lib/python/qmk/commands.py @@ -3,12 +3,12 @@ import os import sys import shutil -from pathlib import Path from milc import cli import jsonschema from qmk.json_schema import json_load, validate +from qmk.keyboard import keyboard_alias_definitions def find_make(): @@ -53,7 +53,7 @@ def parse_configurator_json(configurator_file): exit(1) keyboard = user_keymap['keyboard'] - aliases = json_load(Path('data/mappings/keyboard_aliases.hjson')) + aliases = keyboard_alias_definitions() while keyboard in aliases: last_keyboard = keyboard diff --git a/lib/python/qmk/keyboard.py b/lib/python/qmk/keyboard.py index 4e525731f7..34257bee8d 100644 --- a/lib/python/qmk/keyboard.py +++ b/lib/python/qmk/keyboard.py @@ -70,6 +70,11 @@ class AllKeyboards: base_path = os.path.join(os.getcwd(), "keyboards") + os.path.sep +@lru_cache(maxsize=1) +def keyboard_alias_definitions(): + return json_load(Path('data/mappings/keyboard_aliases.hjson')) + + def is_all_keyboards(keyboard): """Returns True if the keyboard is an AllKeyboards object. """ @@ -112,7 +117,7 @@ def keyboard_folder(keyboard): This checks aliases and DEFAULT_FOLDER to resolve the actual path for a keyboard. """ - aliases = json_load(Path('data/mappings/keyboard_aliases.hjson')) + aliases = keyboard_alias_definitions() while keyboard in aliases: last_keyboard = keyboard diff --git a/lib/python/qmk/search.py b/lib/python/qmk/search.py index 1140abe69d..9b8bb430b5 100644 --- a/lib/python/qmk/search.py +++ b/lib/python/qmk/search.py @@ -6,7 +6,7 @@ import fnmatch import logging import re from typing import List, Tuple -from dotty_dict import dotty +from dotty_dict import dotty, Dotty from milc import cli from qmk.util import parallel_map @@ -107,13 +107,22 @@ def expand_keymap_targets(targets: List[Tuple[str, str]]) -> List[Tuple[str, str return list(sorted(set(overall_targets))) +def _construct_build_target_kb_km(e): + return KeyboardKeymapBuildTarget(keyboard=e[0], keymap=e[1]) + + +def _construct_build_target_kb_km_json(e): + return KeyboardKeymapBuildTarget(keyboard=e[0], keymap=e[1], json=e[2]) + + def _filter_keymap_targets(target_list: List[Tuple[str, str]], filters: List[str] = []) -> List[BuildTarget]: """Filter a list of (keyboard, keymap) tuples based on the supplied filters. Optionally includes the values of the queried info.json keys. """ if len(filters) == 0: - targets = [KeyboardKeymapBuildTarget(keyboard=kb, keymap=km) for kb, km in target_list] + cli.log.info('Preparing target list...') + targets = list(parallel_map(_construct_build_target_kb_km, target_list)) else: cli.log.info('Parsing data for all matching keyboard/keymap combinations...') valid_keymaps = [(e[0], e[1], dotty(e[2])) for e in parallel_map(_load_keymap_info, target_list)] @@ -172,7 +181,9 @@ def _filter_keymap_targets(target_list: List[Tuple[str, str]], filters: List[str cli.log.warning(f'Unrecognized filter expression: {filter_expr}') continue - targets = [KeyboardKeymapBuildTarget(keyboard=e[0], keymap=e[1], json=e[2]) for e in valid_keymaps] + cli.log.info('Preparing target list...') + valid_keymaps = [(e[0], e[1], e[2].to_dict() if isinstance(e[2], Dotty) else e[2]) for e in valid_keymaps] # need to convert dotty_dict back to dict because it doesn't survive parallelisation + targets = list(parallel_map(_construct_build_target_kb_km_json, list(valid_keymaps))) return targets From 7ae826476e782ff80ac94d4211bb9f7bb6c42040 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 22 Nov 2023 00:41:19 +0000 Subject: [PATCH 399/496] Move BACKLIGHT_PWM_PERIOD to correct docs section (#22480) --- docs/feature_backlight.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/docs/feature_backlight.md b/docs/feature_backlight.md index 89916aa813..69391fcefe 100644 --- a/docs/feature_backlight.md +++ b/docs/feature_backlight.md @@ -40,7 +40,6 @@ Add the following to your `config.h`: |`BACKLIGHT_DEFAULT_ON` |`true` |Enable backlight upon clearing the EEPROM | |`BACKLIGHT_DEFAULT_BREATHING`|`false` |Whether to enable backlight breathing upon clearing the EEPROM | |`BACKLIGHT_DEFAULT_LEVEL` |`BACKLIGHT_LEVELS`|The default backlight level to use upon clearing the EEPROM | -|`BACKLIGHT_PWM_PERIOD` |2048Hz |Defaults to `BACKLIGHT_PWM_COUNTER_FREQUENCY / 2048`, which results in a PWM frequency of 2048Hz. | Unless you are designing your own keyboard, you generally should not need to change the `BACKLIGHT_PIN` or `BACKLIGHT_ON_STATE`. @@ -174,11 +173,13 @@ Depending on the ChibiOS board configuration, you may need to enable PWM at the The following `#define`s apply only to the `pwm` driver: -|Define |Default |Description | -|-----------------------|--------|-----------------------------------| -|`BACKLIGHT_PWM_DRIVER` |`PWMD4` |The PWM driver to use | -|`BACKLIGHT_PWM_CHANNEL`|`3` |The PWM channel to use | -|`BACKLIGHT_PAL_MODE` |`2` |The pin alternative function to use| +|Define |Default |Description | +|-----------------------|-------------|---------------------------------------------------------------| +|`BACKLIGHT_PWM_DRIVER` |`PWMD4` |The PWM driver to use | +|`BACKLIGHT_PWM_CHANNEL`|`3` |The PWM channel to use | +|`BACKLIGHT_PAL_MODE` |`2` |The pin alternative function to use | +|`BACKLIGHT_PWM_PERIOD` |*Not defined*|The PWM period in counter ticks - Default is platform dependent| + Refer to the ST datasheet for your particular MCU to determine these values. For example, these defaults are set up for pin `B8` on a Proton-C (STM32F303) using `TIM4_CH3` on AF2. Unless you are designing your own keyboard, you generally should not need to change them. From 0fcd13f55225c4545d828e1898c219ef3cae578f Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Wed, 22 Nov 2023 12:08:26 +1100 Subject: [PATCH 400/496] [CLI] Remove duplicates from search results (#22528) --- lib/python/qmk/build_targets.py | 11 +++++++++++ lib/python/qmk/search.py | 4 ++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/python/qmk/build_targets.py b/lib/python/qmk/build_targets.py index fc72022049..16a7ef87a2 100644 --- a/lib/python/qmk/build_targets.py +++ b/lib/python/qmk/build_targets.py @@ -31,6 +31,17 @@ class BuildTarget: def __repr__(self): return f'BuildTarget(keyboard={self.keyboard}, keymap={self.keymap})' + def __eq__(self, __value: object) -> bool: + if not isinstance(__value, BuildTarget): + return False + return self.__repr__() == __value.__repr__() + + def __ne__(self, __value: object) -> bool: + return not self.__eq__(__value) + + def __hash__(self) -> int: + return self.__repr__().__hash__() + def configure(self, parallel: int = None, clean: bool = None, compiledb: bool = None) -> None: if parallel is not None: self._parallel = parallel diff --git a/lib/python/qmk/search.py b/lib/python/qmk/search.py index 9b8bb430b5..84cf6cbe32 100644 --- a/lib/python/qmk/search.py +++ b/lib/python/qmk/search.py @@ -122,7 +122,7 @@ def _filter_keymap_targets(target_list: List[Tuple[str, str]], filters: List[str """ if len(filters) == 0: cli.log.info('Preparing target list...') - targets = list(parallel_map(_construct_build_target_kb_km, target_list)) + targets = list(set(parallel_map(_construct_build_target_kb_km, target_list))) else: cli.log.info('Parsing data for all matching keyboard/keymap combinations...') valid_keymaps = [(e[0], e[1], dotty(e[2])) for e in parallel_map(_load_keymap_info, target_list)] @@ -183,7 +183,7 @@ def _filter_keymap_targets(target_list: List[Tuple[str, str]], filters: List[str cli.log.info('Preparing target list...') valid_keymaps = [(e[0], e[1], e[2].to_dict() if isinstance(e[2], Dotty) else e[2]) for e in valid_keymaps] # need to convert dotty_dict back to dict because it doesn't survive parallelisation - targets = list(parallel_map(_construct_build_target_kb_km_json, list(valid_keymaps))) + targets = list(set(parallel_map(_construct_build_target_kb_km_json, list(valid_keymaps)))) return targets From 3a5e4253fcfe840170df5ae1ce623ab72c942d70 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Wed, 22 Nov 2023 12:08:52 +1100 Subject: [PATCH 401/496] Add simpler method for relocating functions to RAM. (#21804) --- platforms/arm_atsam/_util.h | 9 +++++++++ platforms/avr/_util.h | 10 ++++++++++ platforms/chibios/_util.h | 9 +++++++++ quantum/util.h | 4 ++++ 4 files changed, 32 insertions(+) create mode 100644 platforms/arm_atsam/_util.h create mode 100644 platforms/avr/_util.h create mode 100644 platforms/chibios/_util.h diff --git a/platforms/arm_atsam/_util.h b/platforms/arm_atsam/_util.h new file mode 100644 index 0000000000..38aa9f4472 --- /dev/null +++ b/platforms/arm_atsam/_util.h @@ -0,0 +1,9 @@ +// Copyright 2023 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define RESIDENT_IN_RAM(funcname) __attribute__((section(".ramfunc." #funcname), noinline)) funcname + +#if __has_include_next("_util.h") +# include_next "_util.h" +#endif diff --git a/platforms/avr/_util.h b/platforms/avr/_util.h new file mode 100644 index 0000000000..81b94896ba --- /dev/null +++ b/platforms/avr/_util.h @@ -0,0 +1,10 @@ +// Copyright 2023 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +// AVR can't actually run anything from RAM, so just no-op the define. +#define RESIDENT_IN_RAM(funcname) funcname + +#if __has_include_next("_util.h") +# include_next "_util.h" +#endif diff --git a/platforms/chibios/_util.h b/platforms/chibios/_util.h new file mode 100644 index 0000000000..64eb62fa15 --- /dev/null +++ b/platforms/chibios/_util.h @@ -0,0 +1,9 @@ +// Copyright 2023 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define RESIDENT_IN_RAM(funcname) __attribute__((section(".ram0_init." #funcname), noinline)) funcname + +#if __has_include_next("_util.h") +# include_next "_util.h" +#endif diff --git a/quantum/util.h b/quantum/util.h index 21e3487b28..94d9f22317 100644 --- a/quantum/util.h +++ b/quantum/util.h @@ -50,3 +50,7 @@ #if !defined(PACKED) # define PACKED __attribute__((__packed__)) #endif + +#if __has_include("_util.h") +# include "_util.h" /* Include the platform's _util.h */ +#endif From a0a6820c1b46d04bc146e0723fd47265e6afe67f Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 22 Nov 2023 21:33:59 +0000 Subject: [PATCH 402/496] Migrate some dip switch config to info.json (#22437) --- keyboards/abacus/config.h | 2 -- keyboards/abacus/info.json | 3 +++ keyboards/ducky/one2mini/1861st/config.h | 2 -- keyboards/ducky/one2mini/1861st/info.json | 3 +++ keyboards/ducky/one2sf/1967st/config.h | 2 -- keyboards/ducky/one2sf/1967st/info.json | 3 +++ keyboards/handwired/6key/config.h | 20 -------------------- keyboards/handwired/6key/info.json | 3 +++ keyboards/helix/rev3_4rows/config.h | 3 --- keyboards/helix/rev3_4rows/info.json | 5 ++++- keyboards/helix/rev3_5rows/config.h | 3 --- keyboards/helix/rev3_5rows/info.json | 3 +++ keyboards/inland/kb83/config.h | 5 ----- keyboards/inland/kb83/info.json | 3 +++ keyboards/inland/v83p/config.h | 4 ---- keyboards/inland/v83p/info.json | 3 +++ keyboards/jian/rev1/config.h | 5 ----- keyboards/jian/rev1/info.json | 6 ++++++ keyboards/mechwild/bbs/config.h | 4 ---- keyboards/mechwild/bbs/info.json | 3 +++ keyboards/mechwild/puckbuddy/config.h | 3 --- keyboards/mechwild/puckbuddy/info.json | 3 +++ keyboards/mechwild/sugarglider/config.h | 3 --- keyboards/mechwild/sugarglider/info.json | 3 +++ keyboards/miiiw/blackio83/info.json | 3 +++ keyboards/miiiw/blackio83/rev_0100/config.h | 13 ------------- keyboards/pearlboards/pandora/config.h | 2 -- keyboards/pearlboards/pandora/info.json | 3 +++ keyboards/planck/rev6/config.h | 2 -- keyboards/planck/rev6/info.json | 3 +++ keyboards/planck/rev6_drop/config.h | 3 --- keyboards/planck/rev6_drop/info.json | 3 +++ keyboards/planck/rev7/config.h | 3 --- keyboards/planck/rev7/info.json | 3 +++ keyboards/planck/thk/config.h | 2 -- keyboards/planck/thk/info.json | 3 +++ keyboards/preonic/rev3/config.h | 2 -- keyboards/preonic/rev3/info.json | 3 +++ keyboards/preonic/rev3_drop/config.h | 2 -- keyboards/preonic/rev3_drop/info.json | 3 +++ keyboards/rgbkb/sol3/config.h | 4 ---- keyboards/rgbkb/sol3/rev1/info.json | 8 ++++++++ 42 files changed, 72 insertions(+), 90 deletions(-) delete mode 100644 keyboards/handwired/6key/config.h diff --git a/keyboards/abacus/config.h b/keyboards/abacus/config.h index ca764a9eeb..84e1acbb3c 100644 --- a/keyboards/abacus/config.h +++ b/keyboards/abacus/config.h @@ -17,8 +17,6 @@ along with this program. If not, see . #pragma once -#define DIP_SWITCH_PINS { D0 } - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/abacus/info.json b/keyboards/abacus/info.json index 2e14782997..ad8ebcc865 100644 --- a/keyboards/abacus/info.json +++ b/keyboards/abacus/info.json @@ -13,6 +13,9 @@ "rows": ["D3", "D2", "D4", "C6"] }, "diode_direction": "COL2ROW", + "dip_switch": { + "pins": ["D0"] + }, "encoder": { "rotary": [ {"pin_a": "F1", "pin_b": "F0"} diff --git a/keyboards/ducky/one2mini/1861st/config.h b/keyboards/ducky/one2mini/1861st/config.h index 92448f54d1..1bb511107d 100644 --- a/keyboards/ducky/one2mini/1861st/config.h +++ b/keyboards/ducky/one2mini/1861st/config.h @@ -17,6 +17,4 @@ along with this program. If not, see . #pragma once -#define DIP_SWITCH_MATRIX_GRID { {0,14}, {1,14}, {2,14}, {3,14} } - #define GPIO_INPUT_PIN_DELAY (NUC123_HCLK / 6 / 1000000L) diff --git a/keyboards/ducky/one2mini/1861st/info.json b/keyboards/ducky/one2mini/1861st/info.json index 1f1783f635..4eb7c4941e 100644 --- a/keyboards/ducky/one2mini/1861st/info.json +++ b/keyboards/ducky/one2mini/1861st/info.json @@ -12,6 +12,9 @@ "rows": ["D11", "B4", "B5", "B6", "B7"] }, "diode_direction": "COL2ROW", + "dip_switch": { + "matrix_grid": [ [0,14], [1,14], [2,14], [3,14] ] + }, "layout_aliases": { "LAYOUT_iso": "LAYOUT_60_iso" }, diff --git a/keyboards/ducky/one2sf/1967st/config.h b/keyboards/ducky/one2sf/1967st/config.h index 92448f54d1..1bb511107d 100644 --- a/keyboards/ducky/one2sf/1967st/config.h +++ b/keyboards/ducky/one2sf/1967st/config.h @@ -17,6 +17,4 @@ along with this program. If not, see . #pragma once -#define DIP_SWITCH_MATRIX_GRID { {0,14}, {1,14}, {2,14}, {3,14} } - #define GPIO_INPUT_PIN_DELAY (NUC123_HCLK / 6 / 1000000L) diff --git a/keyboards/ducky/one2sf/1967st/info.json b/keyboards/ducky/one2sf/1967st/info.json index 72ba3c8ae8..3774be1bc0 100644 --- a/keyboards/ducky/one2sf/1967st/info.json +++ b/keyboards/ducky/one2sf/1967st/info.json @@ -13,6 +13,9 @@ "rows": ["D11", "B4", "B5", "B6", "B7"] }, "diode_direction": "COL2ROW", + "dip_switch": { + "matrix_grid": [ [0,14], [1,14], [2,14], [3,14] ] + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/handwired/6key/config.h b/keyboards/handwired/6key/config.h deleted file mode 100644 index 0ba89040c7..0000000000 --- a/keyboards/handwired/6key/config.h +++ /dev/null @@ -1,20 +0,0 @@ - /* Copyright 2020 Bratzworth - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -/* dip switch */ -#define DIP_SWITCH_PINS { C6 } diff --git a/keyboards/handwired/6key/info.json b/keyboards/handwired/6key/info.json index 39c26006d6..8e33a60e2e 100644 --- a/keyboards/handwired/6key/info.json +++ b/keyboards/handwired/6key/info.json @@ -13,6 +13,9 @@ "rows": ["B4", "D0"] }, "diode_direction": "COL2ROW", + "dip_switch": { + "pins": ["C6"] + }, "processor": "atmega32u4", "bootloader": "caterina", "layouts": { diff --git a/keyboards/helix/rev3_4rows/config.h b/keyboards/helix/rev3_4rows/config.h index 1e60ed1f0f..000f99834a 100644 --- a/keyboards/helix/rev3_4rows/config.h +++ b/keyboards/helix/rev3_4rows/config.h @@ -41,9 +41,6 @@ along with this program. If not, see . #define SPLIT_HAND_MATRIX_GRID D7,B2 #define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT -/* Dip switch on matrix grid */ -#define DIP_SWITCH_MATRIX_GRID { {0,6}, {1,6}, {5,6}, {6,6} } - #ifdef RGB_MATRIX_ENABLE #define RGB_MATRIX_LED_COUNT 50 # define RGB_MATRIX_KEYPRESSES // reacts to keypresses diff --git a/keyboards/helix/rev3_4rows/info.json b/keyboards/helix/rev3_4rows/info.json index ffe1c987e2..79d4847c7b 100644 --- a/keyboards/helix/rev3_4rows/info.json +++ b/keyboards/helix/rev3_4rows/info.json @@ -12,7 +12,10 @@ "driver": "ws2812", "sat_steps": 8, "val_steps": 8, - "speed_steps": 10, + "speed_steps": 10 + }, + "dip_switch": { + "matrix_grid": [ [0,6], [1,6], [5,6], [6,6] ] }, "encoder": { "rotary": [ diff --git a/keyboards/helix/rev3_5rows/config.h b/keyboards/helix/rev3_5rows/config.h index f48115663c..44bbc5f194 100644 --- a/keyboards/helix/rev3_5rows/config.h +++ b/keyboards/helix/rev3_5rows/config.h @@ -41,9 +41,6 @@ along with this program. If not, see . #define SPLIT_HAND_MATRIX_GRID D7,B2 #define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT -/* Dip switch on matrix grid */ -#define DIP_SWITCH_MATRIX_GRID { {0,6}, {1,6}, {5,6}, {6,6} } - #ifdef RGB_MATRIX_ENABLE #define RGB_MATRIX_LED_COUNT 64 # define RGB_MATRIX_KEYPRESSES // reacts to keypresses diff --git a/keyboards/helix/rev3_5rows/info.json b/keyboards/helix/rev3_5rows/info.json index f7546b1322..43cb20dd5e 100644 --- a/keyboards/helix/rev3_5rows/info.json +++ b/keyboards/helix/rev3_5rows/info.json @@ -14,6 +14,9 @@ "val_steps": 8, "speed_steps": 10 }, + "dip_switch": { + "matrix_grid": [ [0,6], [1,6], [5,6], [6,6] ] + }, "encoder": { "rotary": [ {"pin_a": "B6", "pin_b": "B5"} diff --git a/keyboards/inland/kb83/config.h b/keyboards/inland/kb83/config.h index bc2ca9071b..f9c080dccf 100644 --- a/keyboards/inland/kb83/config.h +++ b/keyboards/inland/kb83/config.h @@ -16,13 +16,8 @@ #pragma once - #define RGB_TRIGGER_ON_KEYDOWN -/* DIP switch */ -#define DIP_SWITCH_PINS \ - { A9 } - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/inland/kb83/info.json b/keyboards/inland/kb83/info.json index f0da3f50b6..d8e029c5fa 100644 --- a/keyboards/inland/kb83/info.json +++ b/keyboards/inland/kb83/info.json @@ -18,6 +18,9 @@ "rows": ["B15", "C6", "C7", "C8", "C9", "A8"] }, "diode_direction": "ROW2COL", + "dip_switch": { + "pins": ["A9"] + }, "eeprom": { "driver": "wear_leveling", "wear_leveling": { diff --git a/keyboards/inland/v83p/config.h b/keyboards/inland/v83p/config.h index 1553c3e632..c1e9f4825e 100644 --- a/keyboards/inland/v83p/config.h +++ b/keyboards/inland/v83p/config.h @@ -4,10 +4,6 @@ #define ENCODER_DEFAULT_POS 0x3 -/* DIP switch */ -#define DIP_SWITCH_PINS \ - { C11 } - /* I2C Config for LED Driver */ #define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/inland/v83p/info.json b/keyboards/inland/v83p/info.json index 900937570f..69df93e6d0 100644 --- a/keyboards/inland/v83p/info.json +++ b/keyboards/inland/v83p/info.json @@ -34,6 +34,9 @@ "cols": ["C1","C2","C3","A0","A1","A2","A3","A4","A5","A6","A7","C4","C5","B0","B1","B2"], "rows": ["B15", "C6", "C7", "C8", "C9", "B14"] }, + "dip_switch": { + "pins": ["C11"] + }, "encoder": { "rotary": [ { "pin_a": "A8", "pin_b": "B13" } diff --git a/keyboards/jian/rev1/config.h b/keyboards/jian/rev1/config.h index 980f27c7cc..fcdf59f044 100644 --- a/keyboards/jian/rev1/config.h +++ b/keyboards/jian/rev1/config.h @@ -78,8 +78,3 @@ along with this program. If not, see . // iOS device need lessthan 100 #define USB_MAX_POWER_CONSUMPTION 100 #endif - -#define DIP_SWITCH_MATRIX_GRID { \ - {1, 0}, {2, 0}, {3, 0}, {3, 1}, {3, 2}, {3, 3}, \ - {7, 3}, {7, 2}, {7, 1}, {7, 0}, {6, 0}, {5, 0} \ -} diff --git a/keyboards/jian/rev1/info.json b/keyboards/jian/rev1/info.json index 879b85a9c1..68a6efe47b 100644 --- a/keyboards/jian/rev1/info.json +++ b/keyboards/jian/rev1/info.json @@ -8,6 +8,12 @@ "rows": ["D3", "D2", "E6", "B4"] }, "diode_direction": "COL2ROW", + "dip_switch": { + "matrix_grid": [ + [1, 0], [2, 0], [3, 0], [3, 1], [3, 2], [3, 3], + [7, 3], [7, 2], [7, 1], [7, 0], [6, 0], [5, 0] + ] + }, "backlight": { "pin": "B6", "levels": 5 diff --git a/keyboards/mechwild/bbs/config.h b/keyboards/mechwild/bbs/config.h index d19f39dd13..b626e5590d 100644 --- a/keyboards/mechwild/bbs/config.h +++ b/keyboards/mechwild/bbs/config.h @@ -3,10 +3,6 @@ #pragma once - -/* allows the "key" button on the blackpill to toggle caps lock for user testing before soldering */ -#define DIP_SWITCH_PINS { A0 } - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/mechwild/bbs/info.json b/keyboards/mechwild/bbs/info.json index 39c23e2fff..c0ba888d9a 100644 --- a/keyboards/mechwild/bbs/info.json +++ b/keyboards/mechwild/bbs/info.json @@ -14,6 +14,9 @@ "rows": ["B12", "B10", "B13", "B1", "B14"] }, "diode_direction": "COL2ROW", + "dip_switch": { + "pins": ["A0"] + }, "indicators": { "caps_lock": "C13", "on_state": 0 diff --git a/keyboards/mechwild/puckbuddy/config.h b/keyboards/mechwild/puckbuddy/config.h index 53263d764e..ad4823c741 100644 --- a/keyboards/mechwild/puckbuddy/config.h +++ b/keyboards/mechwild/puckbuddy/config.h @@ -7,9 +7,6 @@ /* Define custom font */ #define OLED_FONT_H "keyboards/mechwild/puckbuddy/glcdfont.c" -/* allows the "key" button on the blackpill to toggle caps lock for user testing before soldering */ -#define DIP_SWITCH_PINS { A0 } - /* set the tapping term for glidepoint pad to register a tap click */ //#define CIRQUE_PINNACLE_TAPPING_TERM 0 // This is set to 0 to disable it diff --git a/keyboards/mechwild/puckbuddy/info.json b/keyboards/mechwild/puckbuddy/info.json index 503d9b4429..56bac432b8 100644 --- a/keyboards/mechwild/puckbuddy/info.json +++ b/keyboards/mechwild/puckbuddy/info.json @@ -13,6 +13,9 @@ "rows": ["B12", "B13", "B14", "B15"] }, "diode_direction": "COL2ROW", + "dip_switch": { + "pins": ["A0"] + }, "encoder": { "rotary": [ {"pin_a": "B1", "pin_b": "B0"}, diff --git a/keyboards/mechwild/sugarglider/config.h b/keyboards/mechwild/sugarglider/config.h index f078cf34cc..b092db627b 100644 --- a/keyboards/mechwild/sugarglider/config.h +++ b/keyboards/mechwild/sugarglider/config.h @@ -14,9 +14,6 @@ /* Define custom font */ #define OLED_FONT_H "keyboards/mechwild/sugarglider/glcdfont.c" -/* allows the "key" button on the blackpill to toggle caps lock for user testing before soldering */ -#define DIP_SWITCH_PINS { A0 } - #define CIRQUE_PINNACLE_TAP_ENABLE #define POINTING_DEVICE_GESTURES_SCROLL_ENABLE diff --git a/keyboards/mechwild/sugarglider/info.json b/keyboards/mechwild/sugarglider/info.json index 7448ae2854..c9095b3db4 100644 --- a/keyboards/mechwild/sugarglider/info.json +++ b/keyboards/mechwild/sugarglider/info.json @@ -54,6 +54,9 @@ "build": { "debounce_type": "sym_eager_pk" }, + "dip_switch": { + "pins": ["A0"] + }, "encoder": { "rotary": [ {"pin_a": "B0", "pin_b": "A2", "resolution": 4}, diff --git a/keyboards/miiiw/blackio83/info.json b/keyboards/miiiw/blackio83/info.json index 40fc6b7d89..107e288099 100644 --- a/keyboards/miiiw/blackio83/info.json +++ b/keyboards/miiiw/blackio83/info.json @@ -26,6 +26,9 @@ "cols": ["H0", "H1", "H2", "H3", "H4", "H5", "H6", "H7", "H8", "H9", "H10", "H11", "H12", "H13", "H14", "H15"], "rows": ["A7", "A6", "A5", "A4", "A3", "A2"] }, + "dip_switch": { + "pins": ["B0", "B1", "B8", "B12"] + }, "processor": "STM32F072", "rgb_matrix": { "driver": "ws2812", diff --git a/keyboards/miiiw/blackio83/rev_0100/config.h b/keyboards/miiiw/blackio83/rev_0100/config.h index 803c8a8a3b..e68a9d0b16 100644 --- a/keyboards/miiiw/blackio83/rev_0100/config.h +++ b/keyboards/miiiw/blackio83/rev_0100/config.h @@ -16,20 +16,7 @@ #pragma once -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * - */ - -/* Dip Switch */ #define POWER_SWITCH_PIN B0 -#define DIP_SWITCH_PINS { B0, B1, B8, B12 } /* 16 with dummy columns for shift registers */ #define SHR_SERIES_NUM 2 diff --git a/keyboards/pearlboards/pandora/config.h b/keyboards/pearlboards/pandora/config.h index beaeec353d..7efef3364b 100644 --- a/keyboards/pearlboards/pandora/config.h +++ b/keyboards/pearlboards/pandora/config.h @@ -17,8 +17,6 @@ along with this program. If not, see . #pragma once -#define DIP_SWITCH_PINS { B2, B5 } - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/pearlboards/pandora/info.json b/keyboards/pearlboards/pandora/info.json index e0a28788eb..7dbcdf6ff2 100644 --- a/keyboards/pearlboards/pandora/info.json +++ b/keyboards/pearlboards/pandora/info.json @@ -13,6 +13,9 @@ "rows": ["B4", "D7", "D6", "B3", "B0"] }, "diode_direction": "COL2ROW", + "dip_switch": { + "pins": ["B2", "B5"] + }, "encoder": { "rotary": [ {"pin_a": "F6", "pin_b": "F5", "resolution": 1} diff --git a/keyboards/planck/rev6/config.h b/keyboards/planck/rev6/config.h index c0c8dc2c55..a0a997f860 100644 --- a/keyboards/planck/rev6/config.h +++ b/keyboards/planck/rev6/config.h @@ -17,8 +17,6 @@ #pragma once -#define DIP_SWITCH_PINS { B14, A15, A0, B9 } - #define MUSIC_MAP #undef AUDIO_VOICES #undef AUDIO_PIN diff --git a/keyboards/planck/rev6/info.json b/keyboards/planck/rev6/info.json index 59e7ba6635..a6ad35281d 100644 --- a/keyboards/planck/rev6/info.json +++ b/keyboards/planck/rev6/info.json @@ -23,6 +23,9 @@ "rows": ["A10", "A9", "A8", "B15", "C13", "C14", "C15", "A2"] }, "diode_direction": "COL2ROW", + "dip_switch": { + "pins": ["B14", "A15", "A0", "B9"] + }, "encoder": { "rotary": [ {"pin_a": "B12", "pin_b": "B13"} diff --git a/keyboards/planck/rev6_drop/config.h b/keyboards/planck/rev6_drop/config.h index 7050fa009c..a0a997f860 100644 --- a/keyboards/planck/rev6_drop/config.h +++ b/keyboards/planck/rev6_drop/config.h @@ -17,9 +17,6 @@ #pragma once -#define DIP_SWITCH_PINS \ - { B14, A15, A0, B9 } - #define MUSIC_MAP #undef AUDIO_VOICES #undef AUDIO_PIN diff --git a/keyboards/planck/rev6_drop/info.json b/keyboards/planck/rev6_drop/info.json index d04bb0d6aa..d224561c7f 100644 --- a/keyboards/planck/rev6_drop/info.json +++ b/keyboards/planck/rev6_drop/info.json @@ -23,6 +23,9 @@ "rows": ["A10", "A9", "A8", "B15", "C13", "C14", "C15", "A2"] }, "diode_direction": "COL2ROW", + "dip_switch": { + "pins": ["B14", "A15", "A0", "B9"] + }, "encoder": { "rotary": [ {"pin_a": "B12", "pin_b": "B13"} diff --git a/keyboards/planck/rev7/config.h b/keyboards/planck/rev7/config.h index 3da5a4e6b9..678cb1d438 100644 --- a/keyboards/planck/rev7/config.h +++ b/keyboards/planck/rev7/config.h @@ -17,9 +17,6 @@ #pragma once -#define DIP_SWITCH_PINS \ - { B14, A15, A0, B9 } - #define MUSIC_MAP #undef AUDIO_VOICES #undef AUDIO_PIN diff --git a/keyboards/planck/rev7/info.json b/keyboards/planck/rev7/info.json index 1d57732b4f..72dce51d83 100644 --- a/keyboards/planck/rev7/info.json +++ b/keyboards/planck/rev7/info.json @@ -20,6 +20,9 @@ "rows": ["A10", "A9", "A8", "B15", "C13", "C14", "C15", "A2"] }, "diode_direction": "COL2ROW", + "dip_switch": { + "pins": ["B14", "A15", "A0", "B9"] + }, "encoder": { "rotary": [ {"pin_a": "B12", "pin_b": "B13"} diff --git a/keyboards/planck/thk/config.h b/keyboards/planck/thk/config.h index cfb88aa0eb..4087ce2b28 100644 --- a/keyboards/planck/thk/config.h +++ b/keyboards/planck/thk/config.h @@ -18,8 +18,6 @@ along with this program. If not, see . #pragma once -#define DIP_SWITCH_PINS { D0, D1, D4, D6 } - // THK uses D5 for audio #undef AUDIO_PIN #define AUDIO_PIN D5 diff --git a/keyboards/planck/thk/info.json b/keyboards/planck/thk/info.json index f62e074e68..24b8d5f0a5 100644 --- a/keyboards/planck/thk/info.json +++ b/keyboards/planck/thk/info.json @@ -13,6 +13,9 @@ "rows": ["A7", "A6", "A5", "A4"] }, "diode_direction": "COL2ROW", + "dip_switch": { + "pins": ["D0", "D1", "D4", "D6"] + }, "encoder": { "rotary": [ {"pin_a": "B4", "pin_b": "B3"}, diff --git a/keyboards/preonic/rev3/config.h b/keyboards/preonic/rev3/config.h index 3d64a4a34a..0ca96c9164 100644 --- a/keyboards/preonic/rev3/config.h +++ b/keyboards/preonic/rev3/config.h @@ -17,8 +17,6 @@ #pragma once -#define DIP_SWITCH_PINS { B14, A15, A0, B9 } - #define MUSIC_MAP #undef AUDIO_VOICES #undef AUDIO_PIN diff --git a/keyboards/preonic/rev3/info.json b/keyboards/preonic/rev3/info.json index 75688a33b2..6112699cfa 100644 --- a/keyboards/preonic/rev3/info.json +++ b/keyboards/preonic/rev3/info.json @@ -33,6 +33,9 @@ "rows": ["A10", "A9", "A8", "B15", "C13", "C14", "C15", "A2", "A3", "A6"] }, "diode_direction": "COL2ROW", + "dip_switch": { + "pins": ["B14", "A15", "A0", "B9"] + }, "encoder": { "rotary": [ {"pin_a": "B12", "pin_b": "B13"} diff --git a/keyboards/preonic/rev3_drop/config.h b/keyboards/preonic/rev3_drop/config.h index 3d64a4a34a..0ca96c9164 100644 --- a/keyboards/preonic/rev3_drop/config.h +++ b/keyboards/preonic/rev3_drop/config.h @@ -17,8 +17,6 @@ #pragma once -#define DIP_SWITCH_PINS { B14, A15, A0, B9 } - #define MUSIC_MAP #undef AUDIO_VOICES #undef AUDIO_PIN diff --git a/keyboards/preonic/rev3_drop/info.json b/keyboards/preonic/rev3_drop/info.json index fed4acb01f..79487deaab 100644 --- a/keyboards/preonic/rev3_drop/info.json +++ b/keyboards/preonic/rev3_drop/info.json @@ -33,6 +33,9 @@ "rows": ["A10", "A9", "A8", "B15", "C13", "C14", "C15", "A2", "A3", "A6"] }, "diode_direction": "COL2ROW", + "dip_switch": { + "pins": ["B14", "A15", "A0", "B9"] + }, "encoder": { "rotary": [ {"pin_a": "B12", "pin_b": "B13"} diff --git a/keyboards/rgbkb/sol3/config.h b/keyboards/rgbkb/sol3/config.h index 4ce1c60343..102ebcda95 100644 --- a/keyboards/rgbkb/sol3/config.h +++ b/keyboards/rgbkb/sol3/config.h @@ -43,10 +43,6 @@ /* Split Transport Features */ #define SPLIT_TRANSACTION_IDS_KB TOUCH_ENCODER_SYNC, RGB_MENU_SYNC -/* LED Turbo DIP Switch */ -#define DIP_SWITCH_PINS { A14, B13 } -#define DIP_SWITCH_PINS_RIGHT { A14, B0 } - #define RGB_MATRIX_LED_COUNT 156 #define RGB_MATRIX_SPLIT { 78, 78 } #define RGB_MATRIX_CENTER { 81, 28 } diff --git a/keyboards/rgbkb/sol3/rev1/info.json b/keyboards/rgbkb/sol3/rev1/info.json index 19e5719cd6..c76e1f84dc 100644 --- a/keyboards/rgbkb/sol3/rev1/info.json +++ b/keyboards/rgbkb/sol3/rev1/info.json @@ -37,6 +37,9 @@ "io_delay": 5 }, "diode_direction": "COL2ROW", + "dip_switch": { + "pins": ["A14", "B13"] + }, "eeprom": { "wear_leveling": { "backing_size": 4096 @@ -50,6 +53,11 @@ ] }, "split": { + "dip_switch": { + "right": { + "pins": ["A14", "B0"] + } + }, "soft_serial_pin": "A9", "encoder": { "right": { From b35bac6afbadc88cf6e8e3d1c8cc7494a510bb60 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 22 Nov 2023 21:37:32 +0000 Subject: [PATCH 403/496] Remove unnecessary driver counts (#22435) --- keyboards/4pplet/perk60_iso/rev_a/config.h | 1 - keyboards/abko/ak84bt/config.h | 1 - keyboards/acheron/apollo/87h/gamma/config.h | 1 - keyboards/aeboards/satellite/rev1/config.h | 1 - keyboards/akko/5108/config.h | 1 - keyboards/akko/acr87/config.h | 1 - keyboards/akko/top40/config.h | 1 - keyboards/axolstudio/yeti/hotswap/config.h | 1 - keyboards/canary/canary60rgb/v1/config.h | 1 - keyboards/chosfox/cf81/config.h | 1 - keyboards/clueboard/66_hotswap/gen1/config.h | 1 - keyboards/darkproject/kd87a_bfg_edition/config.h | 1 - keyboards/dp60/config.h | 1 - keyboards/drop/alt/v2/config.h | 1 - keyboards/drop/cstm80/config.h | 1 - keyboards/drop/ctrl/v2/config.h | 1 - keyboards/drop/sense75/config.h | 1 - keyboards/drop/shift/v2/config.h | 1 - keyboards/durgod/dgk6x/config.h | 1 - keyboards/dztech/dz60rgb/v1/config.h | 1 - keyboards/dztech/dz60rgb/v2/config.h | 1 - keyboards/dztech/dz60rgb/v2_1/config.h | 1 - keyboards/dztech/dz60rgb_ansi/v1/config.h | 1 - keyboards/dztech/dz60rgb_ansi/v2/config.h | 1 - keyboards/dztech/dz60rgb_ansi/v2_1/config.h | 1 - keyboards/dztech/dz60rgb_wkl/v1/config.h | 1 - keyboards/dztech/dz60rgb_wkl/v2/config.h | 1 - keyboards/dztech/dz60rgb_wkl/v2_1/config.h | 1 - keyboards/dztech/dz64rgb/config.h | 1 - keyboards/dztech/dz65rgb/v1/config.h | 1 - keyboards/dztech/dz65rgb/v2/config.h | 1 - keyboards/dztech/dz65rgb/v3/config.h | 1 - keyboards/dztech/tofu/ii/v1/config.h | 1 - keyboards/dztech/tofu/jr/v1/config.h | 1 - keyboards/ergodox_ez/config.h | 1 - keyboards/evyd13/atom47/rev5/config.h | 1 - keyboards/exclusive/e6_rgb/config.h | 1 - keyboards/fallacy/config.h | 1 - keyboards/feker/ik75/config.h | 1 - keyboards/ferris/0_2/bling/config.h | 1 - keyboards/flashquark/horizon_z/config.h | 1 - keyboards/frooastboard/walnut/config.h | 1 - keyboards/geekboards/tester/config.h | 1 - keyboards/gizmo_engineering/gk6/config.h | 1 - keyboards/gmmk/gmmk2/p65/config.h | 1 - keyboards/gmmk/gmmk2/p96/config.h | 1 - keyboards/gmmk/numpad/config.h | 2 -- keyboards/gmmk/pro/config.h | 2 -- keyboards/handwired/orbweaver/config.h | 1 - keyboards/hs60/v1/config.h | 1 - keyboards/hs60/v2/ansi/config.h | 1 - keyboards/hs60/v2/hhkb/config.h | 1 - keyboards/hs60/v2/iso/config.h | 1 - keyboards/ilumkb/simpler61/config.h | 1 - keyboards/ilumkb/simpler64/config.h | 1 - keyboards/inett_studio/sqx/hotswap/config.h | 1 - keyboards/inett_studio/sqx/universal/config.h | 1 - keyboards/inland/kb83/config.h | 1 - keyboards/inland/mk47/config.h | 1 - keyboards/inland/v83p/config.h | 1 - keyboards/input_club/ergodox_infinity/config.h | 1 - keyboards/input_club/infinity60/led/config.h | 1 - keyboards/input_club/whitefox/config.h | 1 - keyboards/jukaie/jk01/config.h | 1 - keyboards/kbdcraft/adam64/config.h | 1 - keyboards/kbdfans/bella/rgb/config.h | 1 - keyboards/kbdfans/bella/rgb_iso/config.h | 1 - keyboards/kbdfans/boop65/rgb/config.h | 1 - keyboards/kbdfans/kbd67/mkiirgb/v1/config.h | 1 - keyboards/kbdfans/kbd67/mkiirgb/v2/config.h | 1 - keyboards/kbdfans/kbd67/mkiirgb/v3/config.h | 1 - keyboards/kbdfans/kbdmini/config.h | 1 - keyboards/kbdfans/maja/config.h | 1 - keyboards/keebwerk/mega/ansi/config.h | 1 - keyboards/keychron/c1_pro/ansi/rgb/config.h | 1 - keyboards/keychron/c1_pro/ansi/white/config.h | 1 - keyboards/keychron/c2_pro/ansi/rgb/config.h | 1 - keyboards/keychron/c2_pro/ansi/white/config.h | 1 - keyboards/keychron/q0/base/config.h | 1 - keyboards/keychron/q0/plus/config.h | 1 - keyboards/keychron/q10/config.h | 1 - keyboards/keychron/q11/config.h | 1 - keyboards/keychron/q12/config.h | 1 - keyboards/keychron/q1v1/config.h | 1 - keyboards/keychron/q1v2/config.h | 1 - keyboards/keychron/q2/config.h | 1 - keyboards/keychron/q3/config.h | 1 - keyboards/keychron/q4/ansi/v1/config.h | 1 - keyboards/keychron/q4/ansi/v2/config.h | 1 - keyboards/keychron/q4/iso/config.h | 1 - keyboards/keychron/q5/config.h | 1 - keyboards/keychron/q6/config.h | 1 - keyboards/keychron/q60/config.h | 1 - keyboards/keychron/q65/config.h | 1 - keyboards/keychron/q7/config.h | 1 - keyboards/keychron/q8/config.h | 1 - keyboards/keychron/q9/config.h | 1 - keyboards/keychron/q9_plus/config.h | 1 - keyboards/keychron/s1/ansi/rgb/config.h | 1 - keyboards/keychron/s1/ansi/white/config.h | 1 - keyboards/keychron/v1/config.h | 1 - keyboards/keychron/v10/config.h | 1 - keyboards/keychron/v2/config.h | 1 - keyboards/keychron/v3/config.h | 1 - keyboards/keychron/v4/config.h | 1 - keyboards/keychron/v5/config.h | 1 - keyboards/keychron/v6/config.h | 1 - keyboards/keychron/v7/config.h | 1 - keyboards/keychron/v8/config.h | 1 - keyboards/kprepublic/bm40hsrgb/rev2/config.h | 1 - keyboards/kprepublic/bm60hsrgb/rev2/config.h | 1 - keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h | 1 - keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h | 1 - keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h | 1 - keyboards/kprepublic/bm68hsrgb/rev2/config.h | 1 - keyboards/kprepublic/bm80v2/config.h | 1 - keyboards/kprepublic/bm80v2_iso/config.h | 1 - keyboards/kprepublic/cstc40/config.h | 1 - keyboards/latincompass/latin17rgb/config.h | 1 - keyboards/latincompass/latin60rgb/config.h | 1 - keyboards/latincompass/latin6rgb/config.h | 1 - keyboards/matrix/m20add/config.h | 1 - keyboards/matrix/noah/config.h | 1 - keyboards/mechlovin/adelais/rgb_led/rev2/config.h | 1 - keyboards/mechlovin/adelais/rgb_led/rev3/config.h | 1 - keyboards/mechlovin/delphine/rgb_led/config.h | 1 - keyboards/mechlovin/hannah60rgb/rev2/config.h | 1 - keyboards/mechlovin/infinity87/rgb_rev1/config.h | 1 - keyboards/mechlovin/olly/octagon/config.h | 1 - keyboards/mechlovin/zed65/mono_led/config.h | 1 - keyboards/melgeek/mach80/config.h | 1 - keyboards/melgeek/mj61/config.h | 1 - keyboards/melgeek/mj63/config.h | 1 - keyboards/melgeek/mj64/config.h | 1 - keyboards/melgeek/mj65/config.h | 1 - keyboards/melgeek/mojo68/config.h | 1 - keyboards/melgeek/mojo75/config.h | 1 - keyboards/melgeek/tegic/config.h | 1 - keyboards/melgeek/z70ultra/config.h | 1 - keyboards/miller/gm862/config.h | 1 - keyboards/monsgeek/m1/config.h | 1 - keyboards/monsgeek/m3/config.h | 1 - keyboards/monsgeek/m5/config.h | 1 - keyboards/monsgeek/m6/config.h | 1 - keyboards/moonlander/config.h | 1 - keyboards/mt/mt64rgb/config.h | 1 - keyboards/mt/mt84/config.h | 3 --- keyboards/neson_design/700e/config.h | 1 - keyboards/neson_design/n6/config.h | 1 - keyboards/novelkeys/nk65/config.h | 1 - keyboards/novelkeys/nk87/config.h | 1 - keyboards/opendeck/32/rev1/config.h | 1 - keyboards/owlab/voice65/hotswap/config.h | 1 - keyboards/owlab/voice65/soldered/config.h | 1 - keyboards/phentech/rpk_001/config.h | 1 - keyboards/planck/ez/config.h | 1 - keyboards/planck/light/config.h | 1 - keyboards/playkbtw/pk64rgb/config.h | 1 - keyboards/projectd/65/projectd_65_ansi/config.h | 1 - keyboards/projectd/75/ansi/config.h | 1 - keyboards/qwertykeys/qk100/ansi/config.h | 1 - keyboards/redragon/k667/config.h | 1 - keyboards/skyloong/gk61/pro/config.h | 2 -- keyboards/skyloong/gk61/pro_48/config.h | 2 -- keyboards/skyloong/gk61/v1/config.h | 1 - keyboards/smallkeyboard/config.h | 1 - keyboards/spaceholdings/nebula12/config.h | 1 - keyboards/spaceholdings/nebula68/config.h | 1 - keyboards/teleport/native/config.h | 1 - keyboards/terrazzo/config.h | 1 - keyboards/tkc/portico/config.h | 2 -- keyboards/tkc/portico68v2/config.h | 1 - keyboards/tkc/portico75/config.h | 2 -- keyboards/wilba_tech/rama_works_kara/config.h | 1 - keyboards/wilba_tech/rama_works_koyu/config.h | 1 - keyboards/wilba_tech/rama_works_m10_c/config.h | 1 - keyboards/wilba_tech/rama_works_m50_a/config.h | 1 - keyboards/wilba_tech/rama_works_m60_a/config.h | 1 - keyboards/wilba_tech/rama_works_m65_b/config.h | 1 - keyboards/wilba_tech/rama_works_m65_bx/config.h | 1 - keyboards/wilba_tech/rama_works_u80_a/config.h | 1 - keyboards/wilba_tech/wt60_a/config.h | 1 - keyboards/wilba_tech/wt60_b/config.h | 1 - keyboards/wilba_tech/wt60_bx/config.h | 1 - keyboards/wilba_tech/wt60_c/config.h | 1 - keyboards/wilba_tech/wt65_a/config.h | 1 - keyboards/wilba_tech/wt65_b/config.h | 1 - keyboards/wilba_tech/wt75_a/config.h | 1 - keyboards/wilba_tech/wt75_b/config.h | 1 - keyboards/wilba_tech/wt75_c/config.h | 1 - keyboards/wilba_tech/wt80_a/config.h | 1 - keyboards/wilba_tech/zeal60/config.h | 1 - keyboards/wilba_tech/zeal65/config.h | 1 - keyboards/xbows/knight/config.h | 1 - keyboards/xbows/knight_plus/config.h | 1 - keyboards/xbows/nature/config.h | 1 - keyboards/xbows/numpad/config.h | 1 - keyboards/xbows/ranger/config.h | 1 - keyboards/xbows/woody/config.h | 1 - keyboards/xelus/dawn60/rev1/config.h | 1 - keyboards/xelus/dawn60/rev1_qmk/config.h | 1 - keyboards/xelus/pachi/rgb/rev1/config.h | 1 - keyboards/xelus/pachi/rgb/rev2/config.h | 1 - 203 files changed, 211 deletions(-) diff --git a/keyboards/4pplet/perk60_iso/rev_a/config.h b/keyboards/4pplet/perk60_iso/rev_a/config.h index c017363651..efad0a1718 100644 --- a/keyboards/4pplet/perk60_iso/rev_a/config.h +++ b/keyboards/4pplet/perk60_iso/rev_a/config.h @@ -22,7 +22,6 @@ along with this program. If not, see . #define LOCKING_RESYNC_ENABLE #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -#define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 62 #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ diff --git a/keyboards/abko/ak84bt/config.h b/keyboards/abko/ak84bt/config.h index c599c8ca90..0a7f31bf7d 100644 --- a/keyboards/abko/ak84bt/config.h +++ b/keyboards/abko/ak84bt/config.h @@ -20,7 +20,6 @@ #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC -#define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 45 #define DRIVER_2_LED_TOTAL 45 diff --git a/keyboards/acheron/apollo/87h/gamma/config.h b/keyboards/acheron/apollo/87h/gamma/config.h index 151239ba33..37c0aaef64 100644 --- a/keyboards/acheron/apollo/87h/gamma/config.h +++ b/keyboards/acheron/apollo/87h/gamma/config.h @@ -27,7 +27,6 @@ along with this program. If not, see . // RGB Matrix defines #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 87 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/aeboards/satellite/rev1/config.h b/keyboards/aeboards/satellite/rev1/config.h index 7a06288394..429bc2af54 100644 --- a/keyboards/aeboards/satellite/rev1/config.h +++ b/keyboards/aeboards/satellite/rev1/config.h @@ -20,7 +20,6 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 #define DRIVER_2_LED_TOTAL 36 #define IS31FL3731_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/akko/5108/config.h b/keyboards/akko/5108/config.h index b86387cba6..7154ce44d2 100644 --- a/keyboards/akko/5108/config.h +++ b/keyboards/akko/5108/config.h @@ -34,7 +34,6 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_SCL_PAL_MODE 4 diff --git a/keyboards/akko/acr87/config.h b/keyboards/akko/acr87/config.h index af35a5aa24..4c1fb9afa1 100644 --- a/keyboards/akko/acr87/config.h +++ b/keyboards/akko/acr87/config.h @@ -31,7 +31,6 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define SNLED27351_DRIVER_COUNT 3 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_3 SNLED27351_I2C_ADDRESS_SDA diff --git a/keyboards/akko/top40/config.h b/keyboards/akko/top40/config.h index b19641348c..1d601a189c 100644 --- a/keyboards/akko/top40/config.h +++ b/keyboards/akko/top40/config.h @@ -31,7 +31,6 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_SCL_PAL_MODE 4 diff --git a/keyboards/axolstudio/yeti/hotswap/config.h b/keyboards/axolstudio/yeti/hotswap/config.h index 51be648900..02077e05a7 100644 --- a/keyboards/axolstudio/yeti/hotswap/config.h +++ b/keyboards/axolstudio/yeti/hotswap/config.h @@ -62,6 +62,5 @@ along with this program. If not, see . # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // 16 is equivalent to limiting to 60fps # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 64 #endif diff --git a/keyboards/canary/canary60rgb/v1/config.h b/keyboards/canary/canary60rgb/v1/config.h index ebedfd6688..ab5c817000 100644 --- a/keyboards/canary/canary60rgb/v1/config.h +++ b/keyboards/canary/canary60rgb/v1/config.h @@ -34,6 +34,5 @@ # define DISABLE_RGB_MATRIX_SOLID_SPLASH # define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH # define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 63 #endif diff --git a/keyboards/chosfox/cf81/config.h b/keyboards/chosfox/cf81/config.h index d6d0c8b252..ae0d87d935 100644 --- a/keyboards/chosfox/cf81/config.h +++ b/keyboards/chosfox/cf81/config.h @@ -31,7 +31,6 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_OPMODE OPMODE_I2C diff --git a/keyboards/clueboard/66_hotswap/gen1/config.h b/keyboards/clueboard/66_hotswap/gen1/config.h index 1165fe79ac..922426e87b 100644 --- a/keyboards/clueboard/66_hotswap/gen1/config.h +++ b/keyboards/clueboard/66_hotswap/gen1/config.h @@ -37,7 +37,6 @@ #define I2C1_SCL_PIN B8 #define I2C1_SDA_PIN B9 -#define IS31FL3731_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 71 // LED Matrix Animation modes. Explicitly enabled diff --git a/keyboards/darkproject/kd87a_bfg_edition/config.h b/keyboards/darkproject/kd87a_bfg_edition/config.h index a7498186b4..4ac83ab9f6 100644 --- a/keyboards/darkproject/kd87a_bfg_edition/config.h +++ b/keyboards/darkproject/kd87a_bfg_edition/config.h @@ -37,7 +37,6 @@ #define DRIVER_1_EN C13 #define DRIVER_2_EN C13 -#define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 68 #define DRIVER_2_LED_TOTAL 54 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/dp60/config.h b/keyboards/dp60/config.h index 7d5288b9e6..3c65d94736 100644 --- a/keyboards/dp60/config.h +++ b/keyboards/dp60/config.h @@ -35,7 +35,6 @@ //rgb matrix setting #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC -#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 #define DRIVER_2_LED_TOTAL 36 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/drop/alt/v2/config.h b/keyboards/drop/alt/v2/config.h index 1ab3584355..2dfae36a49 100644 --- a/keyboards/drop/alt/v2/config.h +++ b/keyboards/drop/alt/v2/config.h @@ -16,7 +16,6 @@ #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_VCC #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC -#define IS31FL3733_DRIVER_COUNT 2 #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ #define RGB_MATRIX_CYCLE_ZONES_ENABLE diff --git a/keyboards/drop/cstm80/config.h b/keyboards/drop/cstm80/config.h index 0f92c88855..3b3f6ae6b7 100644 --- a/keyboards/drop/cstm80/config.h +++ b/keyboards/drop/cstm80/config.h @@ -11,7 +11,6 @@ #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC -#define IS31FL3733_DRIVER_COUNT 2 #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ #define RGB_MATRIX_CAPS_LOCK_INDEX 48 diff --git a/keyboards/drop/ctrl/v2/config.h b/keyboards/drop/ctrl/v2/config.h index e3e6a55b46..c0a259492b 100644 --- a/keyboards/drop/ctrl/v2/config.h +++ b/keyboards/drop/ctrl/v2/config.h @@ -16,7 +16,6 @@ #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_VCC #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC -#define IS31FL3733_DRIVER_COUNT 2 #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ #define RGB_MATRIX_CYCLE_ZONES_ENABLE diff --git a/keyboards/drop/sense75/config.h b/keyboards/drop/sense75/config.h index 1bb878a441..448d223d48 100644 --- a/keyboards/drop/sense75/config.h +++ b/keyboards/drop/sense75/config.h @@ -11,7 +11,6 @@ #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC -#define IS31FL3733_DRIVER_COUNT 2 #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ #define RGB_MATRIX_CYCLE_ZONES_ENABLE diff --git a/keyboards/drop/shift/v2/config.h b/keyboards/drop/shift/v2/config.h index 50d6ab5403..e912e3805f 100644 --- a/keyboards/drop/shift/v2/config.h +++ b/keyboards/drop/shift/v2/config.h @@ -17,7 +17,6 @@ #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_VCC #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC #define IS31FL3733_I2C_ADDRESS_3 IS31FL3733_I2C_ADDRESS_GND_GND -#define IS31FL3733_DRIVER_COUNT 3 #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ #define RGB_MATRIX_CYCLE_ZONES_ENABLE diff --git a/keyboards/durgod/dgk6x/config.h b/keyboards/durgod/dgk6x/config.h index 6af420589c..7c85f977ba 100644 --- a/keyboards/durgod/dgk6x/config.h +++ b/keyboards/durgod/dgk6x/config.h @@ -37,7 +37,6 @@ #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC -#define IS31FL3733_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) /* I2C Alternate function settings */ diff --git a/keyboards/dztech/dz60rgb/v1/config.h b/keyboards/dztech/dz60rgb/v1/config.h index 56eb23e52b..af72678922 100644 --- a/keyboards/dztech/dz60rgb/v1/config.h +++ b/keyboards/dztech/dz60rgb/v1/config.h @@ -56,6 +56,5 @@ # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL # define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 63 #endif diff --git a/keyboards/dztech/dz60rgb/v2/config.h b/keyboards/dztech/dz60rgb/v2/config.h index 6af87a6826..2470e7b3f9 100644 --- a/keyboards/dztech/dz60rgb/v2/config.h +++ b/keyboards/dztech/dz60rgb/v2/config.h @@ -54,6 +54,5 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 63 #endif diff --git a/keyboards/dztech/dz60rgb/v2_1/config.h b/keyboards/dztech/dz60rgb/v2_1/config.h index 47f4a73e2a..05cfa7d4e1 100644 --- a/keyboards/dztech/dz60rgb/v2_1/config.h +++ b/keyboards/dztech/dz60rgb/v2_1/config.h @@ -70,6 +70,5 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 63 #endif diff --git a/keyboards/dztech/dz60rgb_ansi/v1/config.h b/keyboards/dztech/dz60rgb_ansi/v1/config.h index 7b9ecc6532..674871ec49 100644 --- a/keyboards/dztech/dz60rgb_ansi/v1/config.h +++ b/keyboards/dztech/dz60rgb_ansi/v1/config.h @@ -56,6 +56,5 @@ # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL # define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 61 #endif diff --git a/keyboards/dztech/dz60rgb_ansi/v2/config.h b/keyboards/dztech/dz60rgb_ansi/v2/config.h index bda53e59bd..0b458818bc 100644 --- a/keyboards/dztech/dz60rgb_ansi/v2/config.h +++ b/keyboards/dztech/dz60rgb_ansi/v2/config.h @@ -54,6 +54,5 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 61 #endif diff --git a/keyboards/dztech/dz60rgb_ansi/v2_1/config.h b/keyboards/dztech/dz60rgb_ansi/v2_1/config.h index e5261408d4..75ccef8193 100644 --- a/keyboards/dztech/dz60rgb_ansi/v2_1/config.h +++ b/keyboards/dztech/dz60rgb_ansi/v2_1/config.h @@ -70,6 +70,5 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 61 #endif diff --git a/keyboards/dztech/dz60rgb_wkl/v1/config.h b/keyboards/dztech/dz60rgb_wkl/v1/config.h index c4fa73ef30..ac79efd26c 100644 --- a/keyboards/dztech/dz60rgb_wkl/v1/config.h +++ b/keyboards/dztech/dz60rgb_wkl/v1/config.h @@ -56,6 +56,5 @@ # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL # define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 62 #endif diff --git a/keyboards/dztech/dz60rgb_wkl/v2/config.h b/keyboards/dztech/dz60rgb_wkl/v2/config.h index fb6463f2d8..a341a18e0d 100644 --- a/keyboards/dztech/dz60rgb_wkl/v2/config.h +++ b/keyboards/dztech/dz60rgb_wkl/v2/config.h @@ -51,6 +51,5 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 62 #endif diff --git a/keyboards/dztech/dz60rgb_wkl/v2_1/config.h b/keyboards/dztech/dz60rgb_wkl/v2_1/config.h index e69fcae0aa..13169e21f5 100644 --- a/keyboards/dztech/dz60rgb_wkl/v2_1/config.h +++ b/keyboards/dztech/dz60rgb_wkl/v2_1/config.h @@ -70,6 +70,5 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 62 #endif diff --git a/keyboards/dztech/dz64rgb/config.h b/keyboards/dztech/dz64rgb/config.h index 25e7e110fd..edfc7b7171 100644 --- a/keyboards/dztech/dz64rgb/config.h +++ b/keyboards/dztech/dz64rgb/config.h @@ -49,7 +49,6 @@ #define ENABLE_RGB_MATRIX_TYPING_HEATMAP #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -#define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 #endif #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 diff --git a/keyboards/dztech/dz65rgb/v1/config.h b/keyboards/dztech/dz65rgb/v1/config.h index d8d255ff5c..b9203346dd 100644 --- a/keyboards/dztech/dz65rgb/v1/config.h +++ b/keyboards/dztech/dz65rgb/v1/config.h @@ -72,7 +72,6 @@ # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL # define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND # define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC -# define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 35 # define DRIVER_2_LED_TOTAL 33 # define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/dztech/dz65rgb/v2/config.h b/keyboards/dztech/dz65rgb/v2/config.h index f24beacd80..600687c245 100644 --- a/keyboards/dztech/dz65rgb/v2/config.h +++ b/keyboards/dztech/dz65rgb/v2/config.h @@ -72,7 +72,6 @@ # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL # define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND # define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC -# define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 35 # define DRIVER_2_LED_TOTAL 33 # define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/dztech/dz65rgb/v3/config.h b/keyboards/dztech/dz65rgb/v3/config.h index 5d75a7f2da..1398a378f8 100755 --- a/keyboards/dztech/dz65rgb/v3/config.h +++ b/keyboards/dztech/dz65rgb/v3/config.h @@ -73,7 +73,6 @@ # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL # define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -# define IS31FL3741_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 68 # define DRIVER_INDICATOR_LED_TOTAL 0 #endif diff --git a/keyboards/dztech/tofu/ii/v1/config.h b/keyboards/dztech/tofu/ii/v1/config.h index 3eefdf7cb2..36741e1168 100644 --- a/keyboards/dztech/tofu/ii/v1/config.h +++ b/keyboards/dztech/tofu/ii/v1/config.h @@ -81,7 +81,6 @@ # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL # define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND # define IS31FL3737_I2C_ADDRESS_2 IS31FL3737_I2C_ADDRESS_VCC -# define IS31FL3737_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 46 # define DRIVER_2_LED_TOTAL 20 # define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/dztech/tofu/jr/v1/config.h b/keyboards/dztech/tofu/jr/v1/config.h index f3a16eeefe..74e5ed0848 100644 --- a/keyboards/dztech/tofu/jr/v1/config.h +++ b/keyboards/dztech/tofu/jr/v1/config.h @@ -81,7 +81,6 @@ # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL # define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND # define IS31FL3737_I2C_ADDRESS_2 IS31FL3737_I2C_ADDRESS_VCC -# define IS31FL3737_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 48 # define DRIVER_2_LED_TOTAL 20 # define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/ergodox_ez/config.h b/keyboards/ergodox_ez/config.h index 3266c9db0e..af1e14c49f 100644 --- a/keyboards/ergodox_ez/config.h +++ b/keyboards/ergodox_ez/config.h @@ -93,7 +93,6 @@ along with this program. If not, see . // RGB backlight #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC -#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 24 #define DRIVER_2_LED_TOTAL 24 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/evyd13/atom47/rev5/config.h b/keyboards/evyd13/atom47/rev5/config.h index 37e267acf1..53bbf4f51b 100644 --- a/keyboards/evyd13/atom47/rev5/config.h +++ b/keyboards/evyd13/atom47/rev5/config.h @@ -39,7 +39,6 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -#define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/exclusive/e6_rgb/config.h b/keyboards/exclusive/e6_rgb/config.h index 1f98a327a8..62eb2320f7 100644 --- a/keyboards/exclusive/e6_rgb/config.h +++ b/keyboards/exclusive/e6_rgb/config.h @@ -6,5 +6,4 @@ #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -#define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 63 diff --git a/keyboards/fallacy/config.h b/keyboards/fallacy/config.h index 65cea1d5c1..14df31805d 100755 --- a/keyboards/fallacy/config.h +++ b/keyboards/fallacy/config.h @@ -19,7 +19,6 @@ * Using the default defines here, but using a custom implementation */ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND -#define IS31FL3731_DRIVER_COUNT 1 #define IS31FL3731_LED_COUNT 3 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap diff --git a/keyboards/feker/ik75/config.h b/keyboards/feker/ik75/config.h index 41056f09d6..aed1907803 100644 --- a/keyboards/feker/ik75/config.h +++ b/keyboards/feker/ik75/config.h @@ -27,7 +27,6 @@ /* RGB Matrix config */ #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_VCC_VCC #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_GND - #define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 63 #define DRIVER_2_LED_TOTAL 64 diff --git a/keyboards/ferris/0_2/bling/config.h b/keyboards/ferris/0_2/bling/config.h index 021c5750e2..64e7a6de2d 100644 --- a/keyboards/ferris/0_2/bling/config.h +++ b/keyboards/ferris/0_2/bling/config.h @@ -20,7 +20,6 @@ along with this program. If not, see . /* LED Drivers */ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SCL -#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 7 #define DRIVER_2_LED_TOTAL 7 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/flashquark/horizon_z/config.h b/keyboards/flashquark/horizon_z/config.h index 07a827bbf6..ddeafe578d 100755 --- a/keyboards/flashquark/horizon_z/config.h +++ b/keyboards/flashquark/horizon_z/config.h @@ -73,6 +73,5 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 62 #endif diff --git a/keyboards/frooastboard/walnut/config.h b/keyboards/frooastboard/walnut/config.h index 08dfd3d842..0f163f1e3d 100644 --- a/keyboards/frooastboard/walnut/config.h +++ b/keyboards/frooastboard/walnut/config.h @@ -4,7 +4,6 @@ #pragma once #define IS31FL3737_PWM_FREQUENCY IS31FL3737_PWM_FREQUENCY_26K7_HZ -#define IS31FL3737_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 48 #define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND diff --git a/keyboards/geekboards/tester/config.h b/keyboards/geekboards/tester/config.h index 440384949e..c71ee9f351 100644 --- a/keyboards/geekboards/tester/config.h +++ b/keyboards/geekboards/tester/config.h @@ -57,7 +57,6 @@ # define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND # define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SCL -# define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 8 # define DRIVER_2_LED_TOTAL 0 # define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/gizmo_engineering/gk6/config.h b/keyboards/gizmo_engineering/gk6/config.h index a6bf747adf..c405eeaf0a 100755 --- a/keyboards/gizmo_engineering/gk6/config.h +++ b/keyboards/gizmo_engineering/gk6/config.h @@ -21,7 +21,6 @@ along with this program. If not, see . #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC -#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 32 #define DRIVER_2_LED_TOTAL 32 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/gmmk/gmmk2/p65/config.h b/keyboards/gmmk/gmmk2/p65/config.h index 66986293cb..ce9ff69433 100644 --- a/keyboards/gmmk/gmmk2/p65/config.h +++ b/keyboards/gmmk/gmmk2/p65/config.h @@ -34,7 +34,6 @@ #define AW20216S_EN_PIN_1 C13 #define AW20216S_EN_PIN_2 C13 -#define AW20216S_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 54 #define DRIVER_2_LED_TOTAL 34 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/gmmk/gmmk2/p96/config.h b/keyboards/gmmk/gmmk2/p96/config.h index 03e37f3088..fb21c571f5 100644 --- a/keyboards/gmmk/gmmk2/p96/config.h +++ b/keyboards/gmmk/gmmk2/p96/config.h @@ -37,7 +37,6 @@ #define AW20216S_EN_PIN_1 C13 #define AW20216S_EN_PIN_2 C13 -#define AW20216S_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 66 #define DRIVER_2_LED_TOTAL 54 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/gmmk/numpad/config.h b/keyboards/gmmk/numpad/config.h index d263ff4abf..3627ab503c 100644 --- a/keyboards/gmmk/numpad/config.h +++ b/keyboards/gmmk/numpad/config.h @@ -32,8 +32,6 @@ #define AW20216S_EN_PIN_1 A15 #define AW20216S_PW_EN_PIN_1 B13 -#define AW20216S_DRIVER_COUNT 1 - #define RGB_MATRIX_LED_COUNT 31 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B6 diff --git a/keyboards/gmmk/pro/config.h b/keyboards/gmmk/pro/config.h index c1772fec85..995dd95ec8 100644 --- a/keyboards/gmmk/pro/config.h +++ b/keyboards/gmmk/pro/config.h @@ -31,8 +31,6 @@ #define AW20216S_EN_PIN_1 C13 #define AW20216S_EN_PIN_2 C13 -#define AW20216S_DRIVER_COUNT 2 - #define RGB_DISABLE_WHEN_USB_SUSPENDED // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/handwired/orbweaver/config.h b/keyboards/handwired/orbweaver/config.h index 0004beb63b..6a6670a6f6 100644 --- a/keyboards/handwired/orbweaver/config.h +++ b/keyboards/handwired/orbweaver/config.h @@ -17,7 +17,6 @@ #pragma once -#define IS31FL3731_DRIVER_COUNT 1 #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define RGB_MATRIX_LED_COUNT 20 #define I2C1_CLOCK_SPEED 100000 diff --git a/keyboards/hs60/v1/config.h b/keyboards/hs60/v1/config.h index b1b7669d4d..c864464390 100644 --- a/keyboards/hs60/v1/config.h +++ b/keyboards/hs60/v1/config.h @@ -44,7 +44,6 @@ along with this program. If not, see . #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SCL -#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 30 #ifdef HS60_ANSI diff --git a/keyboards/hs60/v2/ansi/config.h b/keyboards/hs60/v2/ansi/config.h index e4dc24dc33..e96c36313c 100644 --- a/keyboards/hs60/v2/ansi/config.h +++ b/keyboards/hs60/v2/ansi/config.h @@ -54,7 +54,6 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -#define IS31FL3733_DRIVER_COUNT 1 #define IS31FL3733_LED_COUNT 64 // These define which keys in the matrix are alphas/mods diff --git a/keyboards/hs60/v2/hhkb/config.h b/keyboards/hs60/v2/hhkb/config.h index 029e1ebb18..6a6fa375bc 100644 --- a/keyboards/hs60/v2/hhkb/config.h +++ b/keyboards/hs60/v2/hhkb/config.h @@ -54,7 +54,6 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -#define IS31FL3733_DRIVER_COUNT 1 #define IS31FL3733_LED_COUNT 64 // These define which keys in the matrix are alphas/mods diff --git a/keyboards/hs60/v2/iso/config.h b/keyboards/hs60/v2/iso/config.h index 52cada51a6..5f1a55b1d1 100644 --- a/keyboards/hs60/v2/iso/config.h +++ b/keyboards/hs60/v2/iso/config.h @@ -51,7 +51,6 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -#define IS31FL3733_DRIVER_COUNT 1 #define IS31FL3733_LED_COUNT 64 // These define which keys in the matrix are alphas/mods diff --git a/keyboards/ilumkb/simpler61/config.h b/keyboards/ilumkb/simpler61/config.h index e1b701dffe..7978b495de 100644 --- a/keyboards/ilumkb/simpler61/config.h +++ b/keyboards/ilumkb/simpler61/config.h @@ -22,7 +22,6 @@ #define RGB_MATRIX_LED_FLUSH_LIMIT 26 #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 61 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/ilumkb/simpler64/config.h b/keyboards/ilumkb/simpler64/config.h index 95611e3f49..09dc7dc80f 100644 --- a/keyboards/ilumkb/simpler64/config.h +++ b/keyboards/ilumkb/simpler64/config.h @@ -22,7 +22,6 @@ #define RGB_MATRIX_LED_FLUSH_LIMIT 26 #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 64 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/inett_studio/sqx/hotswap/config.h b/keyboards/inett_studio/sqx/hotswap/config.h index dc1df2c2f6..a53a2132fa 100644 --- a/keyboards/inett_studio/sqx/hotswap/config.h +++ b/keyboards/inett_studio/sqx/hotswap/config.h @@ -34,7 +34,6 @@ #define DRIVER_2_LED_TOTAL 31 #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC -#define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE) diff --git a/keyboards/inett_studio/sqx/universal/config.h b/keyboards/inett_studio/sqx/universal/config.h index 620811025b..dd123bd7a9 100644 --- a/keyboards/inett_studio/sqx/universal/config.h +++ b/keyboards/inett_studio/sqx/universal/config.h @@ -34,7 +34,6 @@ #define DRIVER_2_LED_TOTAL 36 #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC -#define IS31FL3731_DRIVER_COUNT 2 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE) diff --git a/keyboards/inland/kb83/config.h b/keyboards/inland/kb83/config.h index f9c080dccf..be26cf869c 100644 --- a/keyboards/inland/kb83/config.h +++ b/keyboards/inland/kb83/config.h @@ -33,7 +33,6 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_SDA_PIN B7 diff --git a/keyboards/inland/mk47/config.h b/keyboards/inland/mk47/config.h index e163747e31..e5026bd0e7 100644 --- a/keyboards/inland/mk47/config.h +++ b/keyboards/inland/mk47/config.h @@ -25,7 +25,6 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define SNLED27351_DRIVER_COUNT 1 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND /* WB32 MCU has no default definition */ diff --git a/keyboards/inland/v83p/config.h b/keyboards/inland/v83p/config.h index c1e9f4825e..c39cb6421f 100644 --- a/keyboards/inland/v83p/config.h +++ b/keyboards/inland/v83p/config.h @@ -5,7 +5,6 @@ #define ENCODER_DEFAULT_POS 0x3 /* I2C Config for LED Driver */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_SDA_PIN B7 diff --git a/keyboards/input_club/ergodox_infinity/config.h b/keyboards/input_club/ergodox_infinity/config.h index 0f9b239466..3757ca3d60 100644 --- a/keyboards/input_club/ergodox_infinity/config.h +++ b/keyboards/input_club/ergodox_infinity/config.h @@ -44,7 +44,6 @@ along with this program. If not, see . /* LED matrix driver */ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND -#define IS31FL3731_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 76 #define LED_MATRIX_SPLIT { 38, 38 } #define LED_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/input_club/infinity60/led/config.h b/keyboards/input_club/infinity60/led/config.h index b783ce0287..293b192d60 100644 --- a/keyboards/input_club/infinity60/led/config.h +++ b/keyboards/input_club/infinity60/led/config.h @@ -5,7 +5,6 @@ #define LED_MATRIX_LED_COUNT 63 -#define IS31FL3731_DRIVER_COUNT 1 #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define I2C1_CLOCK_SPEED 400000 diff --git a/keyboards/input_club/whitefox/config.h b/keyboards/input_club/whitefox/config.h index 8993c2c760..2d6affe84a 100644 --- a/keyboards/input_club/whitefox/config.h +++ b/keyboards/input_club/whitefox/config.h @@ -22,7 +22,6 @@ along with this program. If not, see . /* LED matrix driver */ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND -#define IS31FL3731_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 71 #define LED_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/jukaie/jk01/config.h b/keyboards/jukaie/jk01/config.h index e83415f5ba..62c709a917 100644 --- a/keyboards/jukaie/jk01/config.h +++ b/keyboards/jukaie/jk01/config.h @@ -37,7 +37,6 @@ #define DRIVER_1_EN C13 #define DRIVER_2_EN C13 -#define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 66 #define DRIVER_2_LED_TOTAL 19 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/kbdcraft/adam64/config.h b/keyboards/kbdcraft/adam64/config.h index 11ddc53a6f..511eb7f8ab 100644 --- a/keyboards/kbdcraft/adam64/config.h +++ b/keyboards/kbdcraft/adam64/config.h @@ -23,7 +23,6 @@ #define I2C1_CLOCK_SPEED 400000 #define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_16_9 -#define IS31FL3741_DRIVER_COUNT 1 #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND #define RGB_MATRIX_LED_COUNT 64 diff --git a/keyboards/kbdfans/bella/rgb/config.h b/keyboards/kbdfans/bella/rgb/config.h index c2ddea45eb..754f4e1eb8 100644 --- a/keyboards/kbdfans/bella/rgb/config.h +++ b/keyboards/kbdfans/bella/rgb/config.h @@ -72,7 +72,6 @@ //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define IS31FL3741_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 108 #define DRIVER_INDICATOR_LED_TOTAL 0 #endif diff --git a/keyboards/kbdfans/bella/rgb_iso/config.h b/keyboards/kbdfans/bella/rgb_iso/config.h index 08d386d609..48284a5160 100644 --- a/keyboards/kbdfans/bella/rgb_iso/config.h +++ b/keyboards/kbdfans/bella/rgb_iso/config.h @@ -72,7 +72,6 @@ //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define IS31FL3741_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 109 #define DRIVER_INDICATOR_LED_TOTAL 0 #endif diff --git a/keyboards/kbdfans/boop65/rgb/config.h b/keyboards/kbdfans/boop65/rgb/config.h index 1e94d13d63..e37e2d1763 100644 --- a/keyboards/kbdfans/boop65/rgb/config.h +++ b/keyboards/kbdfans/boop65/rgb/config.h @@ -27,7 +27,6 @@ # define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set # define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL # define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -# define IS31FL3741_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 83 # define DRIVER_INDICATOR_LED_TOTAL 0 #define ENABLE_RGB_MATRIX_ALPHAS_MODS diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h index af73108f23..51b88510e5 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h @@ -57,7 +57,6 @@ #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC -#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 35 #define DRIVER_2_LED_TOTAL 32 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h index 28b533a35d..bba655107d 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h @@ -57,7 +57,6 @@ # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 # define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND # define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC -# define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 35 # define DRIVER_2_LED_TOTAL 32 # define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h index 1b54895354..8dd12678ee 100755 --- a/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h @@ -73,7 +73,6 @@ #define RGB_MATRIX_LED_FLUSH_LIMIT 26 #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define IS31FL3741_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 67 #define DRIVER_INDICATOR_LED_TOTAL 0 #endif diff --git a/keyboards/kbdfans/kbdmini/config.h b/keyboards/kbdfans/kbdmini/config.h index 768799c27a..be985880d0 100644 --- a/keyboards/kbdfans/kbdmini/config.h +++ b/keyboards/kbdfans/kbdmini/config.h @@ -54,6 +54,5 @@ // #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -#define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 52 #endif diff --git a/keyboards/kbdfans/maja/config.h b/keyboards/kbdfans/maja/config.h index f996b4eb70..e07c5adf93 100755 --- a/keyboards/kbdfans/maja/config.h +++ b/keyboards/kbdfans/maja/config.h @@ -56,7 +56,6 @@ #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 #define DRIVER_2_LED_TOTAL 31 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/keebwerk/mega/ansi/config.h b/keyboards/keebwerk/mega/ansi/config.h index c3b90cc2ca..8a110a91dc 100755 --- a/keyboards/keebwerk/mega/ansi/config.h +++ b/keyboards/keebwerk/mega/ansi/config.h @@ -52,7 +52,6 @@ along with this program. If not, see . #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_SDA -#define IS31FL3733_DRIVER_COUNT 2 #define IS31FL3733_LED_COUNT 128 // These define which keys in the matrix are alphas/mods diff --git a/keyboards/keychron/c1_pro/ansi/rgb/config.h b/keyboards/keychron/c1_pro/ansi/rgb/config.h index c3b52c5f24..a88319a63d 100644 --- a/keyboards/keychron/c1_pro/ansi/rgb/config.h +++ b/keyboards/keychron/c1_pro/ansi/rgb/config.h @@ -20,7 +20,6 @@ // #define MATRIX_UNSELECT_DRIVE_HIGH /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/keychron/c1_pro/ansi/white/config.h b/keyboards/keychron/c1_pro/ansi/white/config.h index 8c9cadf271..a8a836c5dd 100644 --- a/keyboards/keychron/c1_pro/ansi/white/config.h +++ b/keyboards/keychron/c1_pro/ansi/white/config.h @@ -20,7 +20,6 @@ // #define MATRIX_UNSELECT_DRIVE_HIGH /* LED Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 1 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND /* LED Matrix Configuration */ diff --git a/keyboards/keychron/c2_pro/ansi/rgb/config.h b/keyboards/keychron/c2_pro/ansi/rgb/config.h index 25be9ae686..47b47b920d 100644 --- a/keyboards/keychron/c2_pro/ansi/rgb/config.h +++ b/keyboards/keychron/c2_pro/ansi/rgb/config.h @@ -17,7 +17,6 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/keychron/c2_pro/ansi/white/config.h b/keyboards/keychron/c2_pro/ansi/white/config.h index 9e09bf40ea..26c812ffef 100644 --- a/keyboards/keychron/c2_pro/ansi/white/config.h +++ b/keyboards/keychron/c2_pro/ansi/white/config.h @@ -17,7 +17,6 @@ #pragma once /* LED Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 1 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND /* Set LED driver current */ diff --git a/keyboards/keychron/q0/base/config.h b/keyboards/keychron/q0/base/config.h index 82dd796660..1d6c1a6757 100644 --- a/keyboards/keychron/q0/base/config.h +++ b/keyboards/keychron/q0/base/config.h @@ -17,7 +17,6 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 1 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND /* RGB Matrix Configuration */ diff --git a/keyboards/keychron/q0/plus/config.h b/keyboards/keychron/q0/plus/config.h index 524a73c54d..01320b1f31 100644 --- a/keyboards/keychron/q0/plus/config.h +++ b/keyboards/keychron/q0/plus/config.h @@ -17,7 +17,6 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 1 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO /* RGB Matrix Configuration */ diff --git a/keyboards/keychron/q10/config.h b/keyboards/keychron/q10/config.h index 93941c3f19..eb3a56e9ad 100644 --- a/keyboards/keychron/q10/config.h +++ b/keyboards/keychron/q10/config.h @@ -30,7 +30,6 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/keychron/q11/config.h b/keyboards/keychron/q11/config.h index 47a0d1ab2e..0d6b9c9c48 100755 --- a/keyboards/keychron/q11/config.h +++ b/keyboards/keychron/q11/config.h @@ -27,7 +27,6 @@ #define MATRIX_MASKED // actual mask is defined by `matrix_mask` in `q11.c` /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 1 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ diff --git a/keyboards/keychron/q12/config.h b/keyboards/keychron/q12/config.h index dde7268405..cc24578c16 100644 --- a/keyboards/keychron/q12/config.h +++ b/keyboards/keychron/q12/config.h @@ -26,7 +26,6 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/keychron/q1v1/config.h b/keyboards/keychron/q1v1/config.h index b758d438ff..ec1bcc5794 100644 --- a/keyboards/keychron/q1v1/config.h +++ b/keyboards/keychron/q1v1/config.h @@ -17,7 +17,6 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define IS31FL3733_DRIVER_COUNT 2 #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC diff --git a/keyboards/keychron/q1v2/config.h b/keyboards/keychron/q1v2/config.h index b3edfbbad8..5e2a7eaa54 100644 --- a/keyboards/keychron/q1v2/config.h +++ b/keyboards/keychron/q1v2/config.h @@ -17,7 +17,6 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/keychron/q2/config.h b/keyboards/keychron/q2/config.h index 486ce668b0..831612326b 100644 --- a/keyboards/keychron/q2/config.h +++ b/keyboards/keychron/q2/config.h @@ -22,7 +22,6 @@ #define DIP_SWITCH_MATRIX_GRID { {4, 4} } /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/keychron/q3/config.h b/keyboards/keychron/q3/config.h index 9558ecc211..f93da42353 100644 --- a/keyboards/keychron/q3/config.h +++ b/keyboards/keychron/q3/config.h @@ -17,7 +17,6 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/keychron/q4/ansi/v1/config.h b/keyboards/keychron/q4/ansi/v1/config.h index be3324cb27..2f437c72c6 100644 --- a/keyboards/keychron/q4/ansi/v1/config.h +++ b/keyboards/keychron/q4/ansi/v1/config.h @@ -17,7 +17,6 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/keychron/q4/ansi/v2/config.h b/keyboards/keychron/q4/ansi/v2/config.h index 82b534c699..029e7727a8 100644 --- a/keyboards/keychron/q4/ansi/v2/config.h +++ b/keyboards/keychron/q4/ansi/v2/config.h @@ -17,7 +17,6 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 1 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND /* RGB Matrix Configuration */ diff --git a/keyboards/keychron/q4/iso/config.h b/keyboards/keychron/q4/iso/config.h index 3f3b6f653d..8231b9eba8 100644 --- a/keyboards/keychron/q4/iso/config.h +++ b/keyboards/keychron/q4/iso/config.h @@ -17,7 +17,6 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 1 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND /* RGB Matrix Configuration */ diff --git a/keyboards/keychron/q5/config.h b/keyboards/keychron/q5/config.h index 89513dcaf8..0640331997 100644 --- a/keyboards/keychron/q5/config.h +++ b/keyboards/keychron/q5/config.h @@ -30,7 +30,6 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/keychron/q6/config.h b/keyboards/keychron/q6/config.h index bf35a5a0f2..2edceb09d7 100644 --- a/keyboards/keychron/q6/config.h +++ b/keyboards/keychron/q6/config.h @@ -24,7 +24,6 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/keychron/q60/config.h b/keyboards/keychron/q60/config.h index fe44486803..6b6c3c5f48 100644 --- a/keyboards/keychron/q60/config.h +++ b/keyboards/keychron/q60/config.h @@ -17,7 +17,6 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 1 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ diff --git a/keyboards/keychron/q65/config.h b/keyboards/keychron/q65/config.h index 8d5f360826..84c4e9fc17 100644 --- a/keyboards/keychron/q65/config.h +++ b/keyboards/keychron/q65/config.h @@ -26,7 +26,6 @@ { NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, A2, A3, A4, A5, A6, A7, B0, B1 } /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/keychron/q7/config.h b/keyboards/keychron/q7/config.h index 4bf7d82096..4794c80011 100644 --- a/keyboards/keychron/q7/config.h +++ b/keyboards/keychron/q7/config.h @@ -17,7 +17,6 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/keychron/q8/config.h b/keyboards/keychron/q8/config.h index abb1c6a970..7ecbf40b23 100644 --- a/keyboards/keychron/q8/config.h +++ b/keyboards/keychron/q8/config.h @@ -20,7 +20,6 @@ // #define MATRIX_UNSELECT_DRIVE_HIGH /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/keychron/q9/config.h b/keyboards/keychron/q9/config.h index 24ce821942..4226980d3e 100644 --- a/keyboards/keychron/q9/config.h +++ b/keyboards/keychron/q9/config.h @@ -23,7 +23,6 @@ #define DIP_SWITCH_MATRIX_GRID { { 3, 4 } } /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 1 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ diff --git a/keyboards/keychron/q9_plus/config.h b/keyboards/keychron/q9_plus/config.h index 37599e6fdb..c9ef05b613 100755 --- a/keyboards/keychron/q9_plus/config.h +++ b/keyboards/keychron/q9_plus/config.h @@ -23,7 +23,6 @@ #define DIP_SWITCH_MATRIX_GRID {{ 3, 4 }} /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 1 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ diff --git a/keyboards/keychron/s1/ansi/rgb/config.h b/keyboards/keychron/s1/ansi/rgb/config.h index 6036551690..647a877a4c 100644 --- a/keyboards/keychron/s1/ansi/rgb/config.h +++ b/keyboards/keychron/s1/ansi/rgb/config.h @@ -17,7 +17,6 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND #define DRIVER_1_LED_TOTAL 46 diff --git a/keyboards/keychron/s1/ansi/white/config.h b/keyboards/keychron/s1/ansi/white/config.h index 5eb66e549a..fbe02caeb1 100644 --- a/keyboards/keychron/s1/ansi/white/config.h +++ b/keyboards/keychron/s1/ansi/white/config.h @@ -17,7 +17,6 @@ #pragma once /* LED Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 1 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND #define DRIVER_1_LED_TOTAL 84 #define LED_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/keychron/v1/config.h b/keyboards/keychron/v1/config.h index 3fa164fa68..e5b6805859 100644 --- a/keyboards/keychron/v1/config.h +++ b/keyboards/keychron/v1/config.h @@ -32,7 +32,6 @@ #define DIP_SWITCH_MATRIX_GRID { {5,4} } /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/keychron/v10/config.h b/keyboards/keychron/v10/config.h index 502f06ce83..d643049c03 100644 --- a/keyboards/keychron/v10/config.h +++ b/keyboards/keychron/v10/config.h @@ -31,7 +31,6 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/keychron/v2/config.h b/keyboards/keychron/v2/config.h index 8f94b84235..7efbf8c549 100644 --- a/keyboards/keychron/v2/config.h +++ b/keyboards/keychron/v2/config.h @@ -20,7 +20,6 @@ // #define MATRIX_UNSELECT_DRIVE_HIGH /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/keychron/v3/config.h b/keyboards/keychron/v3/config.h index 4f3e47f3fe..d3e02d8f81 100644 --- a/keyboards/keychron/v3/config.h +++ b/keyboards/keychron/v3/config.h @@ -20,7 +20,6 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/keychron/v4/config.h b/keyboards/keychron/v4/config.h index 02bf981e4d..8325317c27 100644 --- a/keyboards/keychron/v4/config.h +++ b/keyboards/keychron/v4/config.h @@ -17,7 +17,6 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 1 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO /* Increase I2C speed to 1000 KHz */ diff --git a/keyboards/keychron/v5/config.h b/keyboards/keychron/v5/config.h index 0ffc314144..8c4128a43e 100644 --- a/keyboards/keychron/v5/config.h +++ b/keyboards/keychron/v5/config.h @@ -26,7 +26,6 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/keychron/v6/config.h b/keyboards/keychron/v6/config.h index 420b36a8c9..eb2296a172 100644 --- a/keyboards/keychron/v6/config.h +++ b/keyboards/keychron/v6/config.h @@ -20,7 +20,6 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/keychron/v7/config.h b/keyboards/keychron/v7/config.h index 933211dee2..cff96774e3 100644 --- a/keyboards/keychron/v7/config.h +++ b/keyboards/keychron/v7/config.h @@ -17,7 +17,6 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/keychron/v8/config.h b/keyboards/keychron/v8/config.h index 88161444e1..3a860e8eb6 100644 --- a/keyboards/keychron/v8/config.h +++ b/keyboards/keychron/v8/config.h @@ -20,7 +20,6 @@ // #define MATRIX_UNSELECT_DRIVE_HIGH /* RGB Matrix Driver Configuration */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/kprepublic/bm40hsrgb/rev2/config.h b/keyboards/kprepublic/bm40hsrgb/rev2/config.h index 5924f37691..1cd3f7a6d3 100755 --- a/keyboards/kprepublic/bm40hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm40hsrgb/rev2/config.h @@ -15,7 +15,6 @@ */ #pragma once -#define IS31FL3733_DRIVER_COUNT 1 #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define RGB_MATRIX_LED_COUNT 47 #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/config.h b/keyboards/kprepublic/bm60hsrgb/rev2/config.h index 8d194f5ccb..e4089e9fd5 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb/rev2/config.h @@ -64,7 +64,6 @@ #define ENABLE_RGB_MATRIX_SOLID_SPLASH #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -#define IS31FL3733_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 63 //#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h index 53ef0bc53f..eb1b76382b 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h @@ -19,7 +19,6 @@ # define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended # define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -# define IS31FL3733_DRIVER_COUNT 1 # define DRIVER_1_LED_TOTAL 63 # define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h index b22c384460..00d55f8ee0 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h @@ -27,7 +27,6 @@ # define DISABLE_RGB_MATRIX_RAINDROPS # define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS # define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -# define IS31FL3733_DRIVER_COUNT 1 # define DRIVER_1_LED_TOTAL 64 diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h index 57cb40dc24..a877e182a6 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h @@ -77,7 +77,6 @@ // are compiled unconditionally). // Configure the IS31FL3733 driver for per-key RGB LEDs -#define IS31FL3733_DRIVER_COUNT 1 #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define DRIVER_1_LED_TOTAL 61 diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/config.h b/keyboards/kprepublic/bm68hsrgb/rev2/config.h index 2528a71033..078085779b 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm68hsrgb/rev2/config.h @@ -20,7 +20,6 @@ #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 68 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/kprepublic/bm80v2/config.h b/keyboards/kprepublic/bm80v2/config.h index 0872ba2050..91ad6350e0 100644 --- a/keyboards/kprepublic/bm80v2/config.h +++ b/keyboards/kprepublic/bm80v2/config.h @@ -54,7 +54,6 @@ #define ENABLE_RGB_MATRIX_SOLID_SPLASH #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 87 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/kprepublic/bm80v2_iso/config.h b/keyboards/kprepublic/bm80v2_iso/config.h index 6410490e4e..a086185993 100644 --- a/keyboards/kprepublic/bm80v2_iso/config.h +++ b/keyboards/kprepublic/bm80v2_iso/config.h @@ -55,7 +55,6 @@ #define ENABLE_RGB_MATRIX_SOLID_SPLASH #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 88 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/kprepublic/cstc40/config.h b/keyboards/kprepublic/cstc40/config.h index c430986895..75ddd104ae 100644 --- a/keyboards/kprepublic/cstc40/config.h +++ b/keyboards/kprepublic/cstc40/config.h @@ -6,7 +6,6 @@ #define I2C1_SDA_PIN B9 #define I2C1_SCL_PIN B8 #define DRIVER_ADDR_1 0b1010000 -#define DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 47 #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/latincompass/latin17rgb/config.h b/keyboards/latincompass/latin17rgb/config.h index 338581a2c2..fbeb499c4e 100644 --- a/keyboards/latincompass/latin17rgb/config.h +++ b/keyboards/latincompass/latin17rgb/config.h @@ -72,7 +72,6 @@ # define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND # define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -# define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 25 # define DRIVER_2_LED_TOTAL 24 # define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/latincompass/latin60rgb/config.h b/keyboards/latincompass/latin60rgb/config.h index 8f25223853..a25d3b0696 100644 --- a/keyboards/latincompass/latin60rgb/config.h +++ b/keyboards/latincompass/latin60rgb/config.h @@ -68,6 +68,5 @@ // # define ENABLE_RGB_MATRIX_SOLID_SPLASH // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 60 #endif diff --git a/keyboards/latincompass/latin6rgb/config.h b/keyboards/latincompass/latin6rgb/config.h index dc164fd8a2..584e39a327 100644 --- a/keyboards/latincompass/latin6rgb/config.h +++ b/keyboards/latincompass/latin6rgb/config.h @@ -72,7 +72,6 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND -#define IS31FL3731_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 6 #endif diff --git a/keyboards/matrix/m20add/config.h b/keyboards/matrix/m20add/config.h index 51b050ca7c..f79cbb123b 100644 --- a/keyboards/matrix/m20add/config.h +++ b/keyboards/matrix/m20add/config.h @@ -79,5 +79,4 @@ #define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND -#define IS31FL3731_DRIVER_COUNT 1 #define IS31FL3731_LED_COUNT 20 diff --git a/keyboards/matrix/noah/config.h b/keyboards/matrix/noah/config.h index 8829345322..a4d4c5a36a 100644 --- a/keyboards/matrix/noah/config.h +++ b/keyboards/matrix/noah/config.h @@ -21,7 +21,6 @@ // rgb matrix setting #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 #define DRIVER_2_LED_TOTAL 36 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/config.h b/keyboards/mechlovin/adelais/rgb_led/rev2/config.h index ec29cdc48e..6bdd06aba8 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev2/config.h +++ b/keyboards/mechlovin/adelais/rgb_led/rev2/config.h @@ -3,7 +3,6 @@ //rgb matrix setting #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 32 #define DRIVER_2_LED_TOTAL 36 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/config.h b/keyboards/mechlovin/adelais/rgb_led/rev3/config.h index 48f585e765..ba93133857 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev3/config.h +++ b/keyboards/mechlovin/adelais/rgb_led/rev3/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE //rgb matrix setting #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_SDA -#define IS31FL3741_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 66 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses diff --git a/keyboards/mechlovin/delphine/rgb_led/config.h b/keyboards/mechlovin/delphine/rgb_led/config.h index 23a5042458..60dc290bfb 100644 --- a/keyboards/mechlovin/delphine/rgb_led/config.h +++ b/keyboards/mechlovin/delphine/rgb_led/config.h @@ -2,7 +2,6 @@ //rgb matrix setting #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_SDA -#define IS31FL3731_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 25 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) diff --git a/keyboards/mechlovin/hannah60rgb/rev2/config.h b/keyboards/mechlovin/hannah60rgb/rev2/config.h index 362acc114e..4a4f4c7556 100644 --- a/keyboards/mechlovin/hannah60rgb/rev2/config.h +++ b/keyboards/mechlovin/hannah60rgb/rev2/config.h @@ -3,7 +3,6 @@ //rgb matrix setting #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 44 #define DRIVER_2_LED_TOTAL 34 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/config.h b/keyboards/mechlovin/infinity87/rgb_rev1/config.h index 5f994b3a71..6e73aba5d9 100644 --- a/keyboards/mechlovin/infinity87/rgb_rev1/config.h +++ b/keyboards/mechlovin/infinity87/rgb_rev1/config.h @@ -74,6 +74,5 @@ #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_REACTIVE_SIMPLE #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_SDA -#define IS31FL3741_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 91 #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/mechlovin/olly/octagon/config.h b/keyboards/mechlovin/olly/octagon/config.h index 9481d8f193..88918506eb 100644 --- a/keyboards/mechlovin/olly/octagon/config.h +++ b/keyboards/mechlovin/olly/octagon/config.h @@ -22,7 +22,6 @@ along with this program. If not, see . #define I2C_DRIVER I2CD2 #define I2C1_SCL_PIN B10 #define I2C1_SDA_PIN B11 -#define IS31FL3731_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 94 #define LED_MATRIX_KEYPRESSES // reacts to keypresses #define LED_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) diff --git a/keyboards/mechlovin/zed65/mono_led/config.h b/keyboards/mechlovin/zed65/mono_led/config.h index b5d737641b..811841d7fe 100644 --- a/keyboards/mechlovin/zed65/mono_led/config.h +++ b/keyboards/mechlovin/zed65/mono_led/config.h @@ -22,7 +22,6 @@ along with this program. If not, see . #define I2C_DRIVER I2CD2 #define I2C1_SCL_PIN B10 #define I2C1_SDA_PIN B11 -#define IS31FL3731_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 70 #define LED_MATRIX_KEYPRESSES // reacts to keypresses #define LED_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) diff --git a/keyboards/melgeek/mach80/config.h b/keyboards/melgeek/mach80/config.h index 41369e503d..cc4d7bc6bf 100755 --- a/keyboards/melgeek/mach80/config.h +++ b/keyboards/melgeek/mach80/config.h @@ -26,7 +26,6 @@ //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define IS31FL3741_DRIVER_COUNT 1 #define ENABLE_RGB_MATRIX_ALPHAS_MODS #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN diff --git a/keyboards/melgeek/mj61/config.h b/keyboards/melgeek/mj61/config.h index 2033876e00..704699ece9 100644 --- a/keyboards/melgeek/mj61/config.h +++ b/keyboards/melgeek/mj61/config.h @@ -71,4 +71,3 @@ //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define IS31FL3741_DRIVER_COUNT 1 diff --git a/keyboards/melgeek/mj63/config.h b/keyboards/melgeek/mj63/config.h index 2033876e00..704699ece9 100644 --- a/keyboards/melgeek/mj63/config.h +++ b/keyboards/melgeek/mj63/config.h @@ -71,4 +71,3 @@ //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define IS31FL3741_DRIVER_COUNT 1 diff --git a/keyboards/melgeek/mj64/config.h b/keyboards/melgeek/mj64/config.h index 2033876e00..704699ece9 100644 --- a/keyboards/melgeek/mj64/config.h +++ b/keyboards/melgeek/mj64/config.h @@ -71,4 +71,3 @@ //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define IS31FL3741_DRIVER_COUNT 1 diff --git a/keyboards/melgeek/mj65/config.h b/keyboards/melgeek/mj65/config.h index 2033876e00..704699ece9 100644 --- a/keyboards/melgeek/mj65/config.h +++ b/keyboards/melgeek/mj65/config.h @@ -71,4 +71,3 @@ //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define IS31FL3741_DRIVER_COUNT 1 diff --git a/keyboards/melgeek/mojo68/config.h b/keyboards/melgeek/mojo68/config.h index cd721cb342..e661efb2a9 100755 --- a/keyboards/melgeek/mojo68/config.h +++ b/keyboards/melgeek/mojo68/config.h @@ -70,4 +70,3 @@ //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define IS31FL3741_DRIVER_COUNT 1 diff --git a/keyboards/melgeek/mojo75/config.h b/keyboards/melgeek/mojo75/config.h index 8ec9906bcc..a4e89e5a90 100644 --- a/keyboards/melgeek/mojo75/config.h +++ b/keyboards/melgeek/mojo75/config.h @@ -72,4 +72,3 @@ #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_REACTIVE_SIMPLE #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define IS31FL3741_DRIVER_COUNT 1 diff --git a/keyboards/melgeek/tegic/config.h b/keyboards/melgeek/tegic/config.h index f1cc7fcc4b..723706d610 100755 --- a/keyboards/melgeek/tegic/config.h +++ b/keyboards/melgeek/tegic/config.h @@ -23,7 +23,6 @@ //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define IS31FL3741_DRIVER_COUNT 1 #define ENABLE_RGB_MATRIX_ALPHAS_MODS #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN diff --git a/keyboards/melgeek/z70ultra/config.h b/keyboards/melgeek/z70ultra/config.h index 6fb7ad6bf2..d78cbab672 100644 --- a/keyboards/melgeek/z70ultra/config.h +++ b/keyboards/melgeek/z70ultra/config.h @@ -71,6 +71,5 @@ //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define IS31FL3741_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 69 #define DRIVER_INDICATOR_LED_TOTAL 6 diff --git a/keyboards/miller/gm862/config.h b/keyboards/miller/gm862/config.h index 002ba4fe11..2bda7f75bb 100644 --- a/keyboards/miller/gm862/config.h +++ b/keyboards/miller/gm862/config.h @@ -54,6 +54,5 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -# define IS31FL3733_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 62 #endif diff --git a/keyboards/monsgeek/m1/config.h b/keyboards/monsgeek/m1/config.h index 9ef10dac14..3963f1fbae 100644 --- a/keyboards/monsgeek/m1/config.h +++ b/keyboards/monsgeek/m1/config.h @@ -33,7 +33,6 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_OPMODE OPMODE_I2C diff --git a/keyboards/monsgeek/m3/config.h b/keyboards/monsgeek/m3/config.h index 41c9ea3cea..02c0fc6abc 100644 --- a/keyboards/monsgeek/m3/config.h +++ b/keyboards/monsgeek/m3/config.h @@ -35,7 +35,6 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_OPMODE OPMODE_I2C diff --git a/keyboards/monsgeek/m5/config.h b/keyboards/monsgeek/m5/config.h index b60db6aff7..20c69b34f1 100644 --- a/keyboards/monsgeek/m5/config.h +++ b/keyboards/monsgeek/m5/config.h @@ -34,7 +34,6 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_OPMODE OPMODE_I2C diff --git a/keyboards/monsgeek/m6/config.h b/keyboards/monsgeek/m6/config.h index e2b3e995a3..f01b8abb68 100644 --- a/keyboards/monsgeek/m6/config.h +++ b/keyboards/monsgeek/m6/config.h @@ -31,7 +31,6 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define SNLED27351_DRIVER_COUNT 2 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_SCL_PAL_MODE 4 diff --git a/keyboards/moonlander/config.h b/keyboards/moonlander/config.h index 45f03da963..3ceb45f54d 100644 --- a/keyboards/moonlander/config.h +++ b/keyboards/moonlander/config.h @@ -68,7 +68,6 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC -#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 #define DRIVER_2_LED_TOTAL 36 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/mt/mt64rgb/config.h b/keyboards/mt/mt64rgb/config.h index 2d6bfa06d9..eff38f91cc 100644 --- a/keyboards/mt/mt64rgb/config.h +++ b/keyboards/mt/mt64rgb/config.h @@ -24,7 +24,6 @@ #define RGB_MATRIX_LED_FLUSH_LIMIT 26 #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND -#define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 diff --git a/keyboards/mt/mt84/config.h b/keyboards/mt/mt84/config.h index e07ec1a6d0..34ec1be86a 100644 --- a/keyboards/mt/mt84/config.h +++ b/keyboards/mt/mt84/config.h @@ -25,9 +25,6 @@ #define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND #define IS31FL3737_I2C_ADDRESS_2 IS31FL3737_I2C_ADDRESS_VCC - - - #define IS31FL3737_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 44 #define DRIVER_2_LED_TOTAL 40 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/neson_design/700e/config.h b/keyboards/neson_design/700e/config.h index 4cecb6165a..2fdcead121 100644 --- a/keyboards/neson_design/700e/config.h +++ b/keyboards/neson_design/700e/config.h @@ -34,7 +34,6 @@ #define DRIVER_2_LED_TOTAL 32 #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC -#define IS31FL3731_DRIVER_COUNT 2 #define IS31FL3731_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL) #define USB_SUSPEND_WAKEUP_DELAY 1000 diff --git a/keyboards/neson_design/n6/config.h b/keyboards/neson_design/n6/config.h index 847b26eb25..22c12dfb97 100644 --- a/keyboards/neson_design/n6/config.h +++ b/keyboards/neson_design/n6/config.h @@ -34,5 +34,4 @@ #define DRIVER_2_LED_TOTAL 32 #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC -#define IS31FL3731_DRIVER_COUNT 2 #define IS31FL3731_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL) diff --git a/keyboards/novelkeys/nk65/config.h b/keyboards/novelkeys/nk65/config.h index bbba5cd7d8..97350e34b4 100755 --- a/keyboards/novelkeys/nk65/config.h +++ b/keyboards/novelkeys/nk65/config.h @@ -52,7 +52,6 @@ along with this program. If not, see . #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_SDA -#define IS31FL3733_DRIVER_COUNT 2 #define IS31FL3733_LED_COUNT 128 // These define which keys in the matrix are alphas/mods diff --git a/keyboards/novelkeys/nk87/config.h b/keyboards/novelkeys/nk87/config.h index 41ecb8a8e3..ff9e05cbad 100755 --- a/keyboards/novelkeys/nk87/config.h +++ b/keyboards/novelkeys/nk87/config.h @@ -52,7 +52,6 @@ along with this program. If not, see . #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_SDA -#define IS31FL3733_DRIVER_COUNT 2 #define IS31FL3733_LED_COUNT 128 // These define which keys in the matrix are alphas/mods diff --git a/keyboards/opendeck/32/rev1/config.h b/keyboards/opendeck/32/rev1/config.h index 1a84624b76..d5e824fdfb 100644 --- a/keyboards/opendeck/32/rev1/config.h +++ b/keyboards/opendeck/32/rev1/config.h @@ -17,7 +17,6 @@ // RGB matrix #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND -#define IS31FL3731_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT (4 * 8 * 3) #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_SPIRAL diff --git a/keyboards/owlab/voice65/hotswap/config.h b/keyboards/owlab/voice65/hotswap/config.h index d274892453..8599c084d2 100644 --- a/keyboards/owlab/voice65/hotswap/config.h +++ b/keyboards/owlab/voice65/hotswap/config.h @@ -30,7 +30,6 @@ along with this program. If not, see . # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 # define RGB_MATRIX_DEFAULT_VAL 128 # define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -# define IS31FL3741_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 67 // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: diff --git a/keyboards/owlab/voice65/soldered/config.h b/keyboards/owlab/voice65/soldered/config.h index 679463d515..9533e00a02 100644 --- a/keyboards/owlab/voice65/soldered/config.h +++ b/keyboards/owlab/voice65/soldered/config.h @@ -30,7 +30,6 @@ along with this program. If not, see . # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 # define RGB_MATRIX_DEFAULT_VAL 128 # define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -# define IS31FL3741_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 71 // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/phentech/rpk_001/config.h b/keyboards/phentech/rpk_001/config.h index f513dd2684..baa207f065 100644 --- a/keyboards/phentech/rpk_001/config.h +++ b/keyboards/phentech/rpk_001/config.h @@ -6,7 +6,6 @@ /* RGB Config */ #define DRIVER_1_CS B6 #define DRIVER_1_EN B7 -#define DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 67 /* SPI Config */ diff --git a/keyboards/planck/ez/config.h b/keyboards/planck/ez/config.h index f8804c4d6e..93d0823714 100644 --- a/keyboards/planck/ez/config.h +++ b/keyboards/planck/ez/config.h @@ -52,7 +52,6 @@ #define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND -#define IS31FL3737_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 47 #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/planck/light/config.h b/keyboards/planck/light/config.h index 1b8fecc8a3..6d12061b51 100644 --- a/keyboards/planck/light/config.h +++ b/keyboards/planck/light/config.h @@ -10,7 +10,6 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 25 #define DRIVER_2_LED_TOTAL 24 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/playkbtw/pk64rgb/config.h b/keyboards/playkbtw/pk64rgb/config.h index 59c3f6ab1d..67e42e44a9 100644 --- a/keyboards/playkbtw/pk64rgb/config.h +++ b/keyboards/playkbtw/pk64rgb/config.h @@ -24,7 +24,6 @@ #define RGB_MATRIX_LED_PROCESS_LIMIT 20 #define RGB_MATRIX_LED_FLUSH_LIMIT 26 #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND - #define IS31FL3733_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 diff --git a/keyboards/projectd/65/projectd_65_ansi/config.h b/keyboards/projectd/65/projectd_65_ansi/config.h index 23540640ad..8b162a2149 100644 --- a/keyboards/projectd/65/projectd_65_ansi/config.h +++ b/keyboards/projectd/65/projectd_65_ansi/config.h @@ -35,5 +35,4 @@ #define AW20216S_CS_PIN_1 A15 #define AW20216S_EN_PIN_1 C13 -#define AW20216S_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 71 diff --git a/keyboards/projectd/75/ansi/config.h b/keyboards/projectd/75/ansi/config.h index c27da26a6f..3b685c09b8 100644 --- a/keyboards/projectd/75/ansi/config.h +++ b/keyboards/projectd/75/ansi/config.h @@ -37,7 +37,6 @@ #define DRIVER_1_EN C13 #define DRIVER_2_EN C13 -#define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 70 #define DRIVER_2_LED_TOTAL 17 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/qwertykeys/qk100/ansi/config.h b/keyboards/qwertykeys/qk100/ansi/config.h index 6d0401a3dc..82766b8834 100644 --- a/keyboards/qwertykeys/qk100/ansi/config.h +++ b/keyboards/qwertykeys/qk100/ansi/config.h @@ -39,5 +39,4 @@ along with this program. If not, see . # define RGB_MATRIX_LED_FLUSH_LIMIT 26 # define RGB_MATRIX_STARTUP_VAL 128 # define DRIVER_ADDR_1 0b0110000 -# define DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 101 \ No newline at end of file diff --git a/keyboards/redragon/k667/config.h b/keyboards/redragon/k667/config.h index 7fec873187..33e26c4a39 100644 --- a/keyboards/redragon/k667/config.h +++ b/keyboards/redragon/k667/config.h @@ -20,7 +20,6 @@ #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC -#define IS31FL3733_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 45 #define DRIVER_2_LED_TOTAL 45 diff --git a/keyboards/skyloong/gk61/pro/config.h b/keyboards/skyloong/gk61/pro/config.h index 4d180bb662..8e9b5f9258 100644 --- a/keyboards/skyloong/gk61/pro/config.h +++ b/keyboards/skyloong/gk61/pro/config.h @@ -3,8 +3,6 @@ #pragma once - -#define DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 #define CAPS_LOCK_INDEX 28 #define WIN_MOD_INDEX 16 diff --git a/keyboards/skyloong/gk61/pro_48/config.h b/keyboards/skyloong/gk61/pro_48/config.h index dc31521627..df94455a9e 100644 --- a/keyboards/skyloong/gk61/pro_48/config.h +++ b/keyboards/skyloong/gk61/pro_48/config.h @@ -3,8 +3,6 @@ #pragma once - -#define DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 #define CAPS_LOCK_INDEX 28 #define WIN_MOD_INDEX 16 diff --git a/keyboards/skyloong/gk61/v1/config.h b/keyboards/skyloong/gk61/v1/config.h index c274ffa1fb..bd9cab743f 100644 --- a/keyboards/skyloong/gk61/v1/config.h +++ b/keyboards/skyloong/gk61/v1/config.h @@ -17,7 +17,6 @@ #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND -#define SNLED27351_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 #define RGB_MATRIX_FRAMEBUFFER_EFFECTS //Enable frame effects diff --git a/keyboards/smallkeyboard/config.h b/keyboards/smallkeyboard/config.h index 71868ee7ed..d98a2b6ef2 100644 --- a/keyboards/smallkeyboard/config.h +++ b/keyboards/smallkeyboard/config.h @@ -68,6 +68,5 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND -#define IS31FL3731_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 6 #endif diff --git a/keyboards/spaceholdings/nebula12/config.h b/keyboards/spaceholdings/nebula12/config.h index 512b775136..c88b219b09 100755 --- a/keyboards/spaceholdings/nebula12/config.h +++ b/keyboards/spaceholdings/nebula12/config.h @@ -74,7 +74,6 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND -#define IS31FL3731_DRIVER_COUNT 1 #define IS31FL3731_LED_COUNT 16 // These define which keys in the matrix are alphas/mods diff --git a/keyboards/spaceholdings/nebula68/config.h b/keyboards/spaceholdings/nebula68/config.h index 1ad24d364c..1b2441556b 100755 --- a/keyboards/spaceholdings/nebula68/config.h +++ b/keyboards/spaceholdings/nebula68/config.h @@ -58,7 +58,6 @@ along with this program. If not, see . #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_SDA -#define IS31FL3733_DRIVER_COUNT 2 #define IS31FL3733_LED_COUNT 128 // These define which keys in the matrix are alphas/mods diff --git a/keyboards/teleport/native/config.h b/keyboards/teleport/native/config.h index d9f3b8a303..99c82df12e 100644 --- a/keyboards/teleport/native/config.h +++ b/keyboards/teleport/native/config.h @@ -29,7 +29,6 @@ along with this program. If not, see . /* RGB Matrix driver config */ -#define IS31FL3733_DRIVER_COUNT 2 #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC #define DRIVER_1_LED_TOTAL 46 diff --git a/keyboards/terrazzo/config.h b/keyboards/terrazzo/config.h index a1062de020..d2e76f1de0 100644 --- a/keyboards/terrazzo/config.h +++ b/keyboards/terrazzo/config.h @@ -18,7 +18,6 @@ #ifdef LED_MATRIX_ENABLE #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND -#define IS31FL3731_DRIVER_COUNT 1 #define LED_MATRIX_LED_COUNT 105 #define LED_MATRIX_ROWS 15 #define LED_MATRIX_COLS 7 diff --git a/keyboards/tkc/portico/config.h b/keyboards/tkc/portico/config.h index 2a1056b4a5..265e0abbc3 100644 --- a/keyboards/tkc/portico/config.h +++ b/keyboards/tkc/portico/config.h @@ -41,7 +41,6 @@ along with this program. If not, see . # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 # define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND # define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC -# define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 31 # define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) @@ -50,7 +49,6 @@ along with this program. If not, see . // IS31FL3731 driver #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC -#define IS31FL3731_DRIVER_COUNT 2 #define IS31FL3731_LED_COUNT 67 #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/tkc/portico68v2/config.h b/keyboards/tkc/portico68v2/config.h index fdd38e3133..2c8ecf806d 100644 --- a/keyboards/tkc/portico68v2/config.h +++ b/keyboards/tkc/portico68v2/config.h @@ -18,7 +18,6 @@ along with this program. If not, see . #pragma once #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 82 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/tkc/portico75/config.h b/keyboards/tkc/portico75/config.h index 3a9b50baca..8146141bf0 100644 --- a/keyboards/tkc/portico75/config.h +++ b/keyboards/tkc/portico75/config.h @@ -73,14 +73,12 @@ along with this program. If not, see . # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 # define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -# define IS31FL3741_DRIVER_COUNT 1 # define DRIVER_1_LED_TOTAL 98 # define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL # define DRIVER_INDICATOR_LED_TOTAL 0 #else // WT_RGB IS31FL3741 driver code # define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -# define IS31FL3741_DRIVER_COUNT 1 # define IS31FL3741_LED_COUNT 98 # define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/rama_works_kara/config.h b/keyboards/wilba_tech/rama_works_kara/config.h index 09aac7a552..ba02ba652a 100644 --- a/keyboards/wilba_tech/rama_works_kara/config.h +++ b/keyboards/wilba_tech/rama_works_kara/config.h @@ -18,7 +18,6 @@ // IS31FL3731 driver #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -#define IS31FL3731_DRIVER_COUNT 2 #define IS31FL3731_LED_COUNT 72 // Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap diff --git a/keyboards/wilba_tech/rama_works_koyu/config.h b/keyboards/wilba_tech/rama_works_koyu/config.h index 512cff857b..1d57ac9e55 100644 --- a/keyboards/wilba_tech/rama_works_koyu/config.h +++ b/keyboards/wilba_tech/rama_works_koyu/config.h @@ -18,7 +18,6 @@ // IS31FL3731 driver #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -#define IS31FL3731_DRIVER_COUNT 2 #define IS31FL3731_LED_COUNT 72 // Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap diff --git a/keyboards/wilba_tech/rama_works_m10_c/config.h b/keyboards/wilba_tech/rama_works_m10_c/config.h index 1e0d943b96..736506a493 100644 --- a/keyboards/wilba_tech/rama_works_m10_c/config.h +++ b/keyboards/wilba_tech/rama_works_m10_c/config.h @@ -22,7 +22,6 @@ // IS31FL3731 driver #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND -#define IS31FL3731_DRIVER_COUNT 1 #define IS31FL3731_LED_COUNT 12 // Enable WT RGB backlight diff --git a/keyboards/wilba_tech/rama_works_m50_a/config.h b/keyboards/wilba_tech/rama_works_m50_a/config.h index 98149ffa14..bad8f7f346 100644 --- a/keyboards/wilba_tech/rama_works_m50_a/config.h +++ b/keyboards/wilba_tech/rama_works_m50_a/config.h @@ -23,7 +23,6 @@ // IS31FL3731 driver #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -#define IS31FL3731_DRIVER_COUNT 2 #define IS31FL3731_LED_COUNT 72 // Enable WT RGB backlight diff --git a/keyboards/wilba_tech/rama_works_m60_a/config.h b/keyboards/wilba_tech/rama_works_m60_a/config.h index c291ba2db3..7af0f156c8 100644 --- a/keyboards/wilba_tech/rama_works_m60_a/config.h +++ b/keyboards/wilba_tech/rama_works_m60_a/config.h @@ -18,7 +18,6 @@ // IS31FL3731 driver #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -#define IS31FL3731_DRIVER_COUNT 2 #define IS31FL3731_LED_COUNT 72 // Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap diff --git a/keyboards/wilba_tech/rama_works_m65_b/config.h b/keyboards/wilba_tech/rama_works_m65_b/config.h index 9807fbc874..0f3f228cda 100644 --- a/keyboards/wilba_tech/rama_works_m65_b/config.h +++ b/keyboards/wilba_tech/rama_works_m65_b/config.h @@ -23,7 +23,6 @@ // IS31FL3731 driver #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -#define IS31FL3731_DRIVER_COUNT 2 #define IS31FL3731_LED_COUNT 72 // Enable WT RGB backlight diff --git a/keyboards/wilba_tech/rama_works_m65_bx/config.h b/keyboards/wilba_tech/rama_works_m65_bx/config.h index 64da89ff9e..ed0d79aba3 100644 --- a/keyboards/wilba_tech/rama_works_m65_bx/config.h +++ b/keyboards/wilba_tech/rama_works_m65_bx/config.h @@ -23,7 +23,6 @@ // IS31FL3731 driver #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -#define IS31FL3731_DRIVER_COUNT 2 #define IS31FL3731_LED_COUNT 72 // Enable WT RGB backlight diff --git a/keyboards/wilba_tech/rama_works_u80_a/config.h b/keyboards/wilba_tech/rama_works_u80_a/config.h index 2a0da80fed..ddbbcfba9b 100644 --- a/keyboards/wilba_tech/rama_works_u80_a/config.h +++ b/keyboards/wilba_tech/rama_works_u80_a/config.h @@ -41,7 +41,6 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA #define IS31FL3731_I2C_ADDRESS_3 IS31FL3731_I2C_ADDRESS_SCL -#define IS31FL3731_DRIVER_COUNT 3 #define IS31FL3731_LED_COUNT 108 #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/wt60_a/config.h b/keyboards/wilba_tech/wt60_a/config.h index 25a6f25a1c..4dec42b21d 100644 --- a/keyboards/wilba_tech/wt60_a/config.h +++ b/keyboards/wilba_tech/wt60_a/config.h @@ -63,5 +63,4 @@ #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 #define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND -#define IS31FL3736_DRIVER_COUNT 1 #define IS31FL3736_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt60_b/config.h b/keyboards/wilba_tech/wt60_b/config.h index 926136f332..3a9808dfc5 100644 --- a/keyboards/wilba_tech/wt60_b/config.h +++ b/keyboards/wilba_tech/wt60_b/config.h @@ -25,7 +25,6 @@ // IS31FL3731 driver #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -#define IS31FL3731_DRIVER_COUNT 2 #define IS31FL3731_LED_COUNT 72 #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/wt60_bx/config.h b/keyboards/wilba_tech/wt60_bx/config.h index 85ab052437..1a722e2a2c 100644 --- a/keyboards/wilba_tech/wt60_bx/config.h +++ b/keyboards/wilba_tech/wt60_bx/config.h @@ -25,7 +25,6 @@ // IS31FL3731 driver #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -#define IS31FL3731_DRIVER_COUNT 2 #define IS31FL3731_LED_COUNT 72 #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/wt60_c/config.h b/keyboards/wilba_tech/wt60_c/config.h index ca7366bc32..97a6790fff 100644 --- a/keyboards/wilba_tech/wt60_c/config.h +++ b/keyboards/wilba_tech/wt60_c/config.h @@ -25,7 +25,6 @@ // IS31FL3731 driver #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -#define IS31FL3731_DRIVER_COUNT 2 #define IS31FL3731_LED_COUNT 72 #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/wt65_a/config.h b/keyboards/wilba_tech/wt65_a/config.h index 88f28ac844..9135642f59 100644 --- a/keyboards/wilba_tech/wt65_a/config.h +++ b/keyboards/wilba_tech/wt65_a/config.h @@ -63,5 +63,4 @@ #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 #define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND -#define IS31FL3736_DRIVER_COUNT 1 #define IS31FL3736_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt65_b/config.h b/keyboards/wilba_tech/wt65_b/config.h index 164caecd00..5f3671004d 100644 --- a/keyboards/wilba_tech/wt65_b/config.h +++ b/keyboards/wilba_tech/wt65_b/config.h @@ -63,5 +63,4 @@ #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 #define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND -#define IS31FL3736_DRIVER_COUNT 1 #define IS31FL3736_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt75_a/config.h b/keyboards/wilba_tech/wt75_a/config.h index a8185a6807..9dbe040508 100644 --- a/keyboards/wilba_tech/wt75_a/config.h +++ b/keyboards/wilba_tech/wt75_a/config.h @@ -63,5 +63,4 @@ #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 #define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND -#define IS31FL3736_DRIVER_COUNT 1 #define IS31FL3736_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt75_b/config.h b/keyboards/wilba_tech/wt75_b/config.h index 4834251691..9a9db88ab1 100644 --- a/keyboards/wilba_tech/wt75_b/config.h +++ b/keyboards/wilba_tech/wt75_b/config.h @@ -63,5 +63,4 @@ #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 #define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND -#define IS31FL3736_DRIVER_COUNT 1 #define IS31FL3736_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt75_c/config.h b/keyboards/wilba_tech/wt75_c/config.h index d1e81992f5..d2164ceea0 100644 --- a/keyboards/wilba_tech/wt75_c/config.h +++ b/keyboards/wilba_tech/wt75_c/config.h @@ -63,5 +63,4 @@ #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 #define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND -#define IS31FL3736_DRIVER_COUNT 1 #define IS31FL3736_LED_COUNT 96 diff --git a/keyboards/wilba_tech/wt80_a/config.h b/keyboards/wilba_tech/wt80_a/config.h index c6594c1689..bda91f562c 100644 --- a/keyboards/wilba_tech/wt80_a/config.h +++ b/keyboards/wilba_tech/wt80_a/config.h @@ -63,5 +63,4 @@ #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7 #define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND -#define IS31FL3736_DRIVER_COUNT 1 #define IS31FL3736_LED_COUNT 96 diff --git a/keyboards/wilba_tech/zeal60/config.h b/keyboards/wilba_tech/zeal60/config.h index 830dd6d78a..225c878b20 100644 --- a/keyboards/wilba_tech/zeal60/config.h +++ b/keyboards/wilba_tech/zeal60/config.h @@ -18,7 +18,6 @@ // IS31FL3731 driver #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -#define IS31FL3731_DRIVER_COUNT 2 #define IS31FL3731_LED_COUNT 72 // Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap diff --git a/keyboards/wilba_tech/zeal65/config.h b/keyboards/wilba_tech/zeal65/config.h index a7d1b81f84..71977f4090 100644 --- a/keyboards/wilba_tech/zeal65/config.h +++ b/keyboards/wilba_tech/zeal65/config.h @@ -18,7 +18,6 @@ // IS31FL3731 driver #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -#define IS31FL3731_DRIVER_COUNT 2 #define IS31FL3731_LED_COUNT 72 // Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap diff --git a/keyboards/xbows/knight/config.h b/keyboards/xbows/knight/config.h index 21b3ff6946..d28ca9eac4 100644 --- a/keyboards/xbows/knight/config.h +++ b/keyboards/xbows/knight/config.h @@ -50,7 +50,6 @@ # define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND # define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA # define IS31FL3731_I2C_ADDRESS_3 IS31FL3731_I2C_ADDRESS_SCL -# define IS31FL3731_DRIVER_COUNT 3 # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 35 # define DRIVER_3_LED_TOTAL 15 diff --git a/keyboards/xbows/knight_plus/config.h b/keyboards/xbows/knight_plus/config.h index 91d69d9408..433d8d994f 100644 --- a/keyboards/xbows/knight_plus/config.h +++ b/keyboards/xbows/knight_plus/config.h @@ -50,7 +50,6 @@ # define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND # define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA # define IS31FL3731_I2C_ADDRESS_3 IS31FL3731_I2C_ADDRESS_SCL -# define IS31FL3731_DRIVER_COUNT 3 # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 35 # define DRIVER_3_LED_TOTAL 15 diff --git a/keyboards/xbows/nature/config.h b/keyboards/xbows/nature/config.h index 4e8270ea89..1710e17c2f 100644 --- a/keyboards/xbows/nature/config.h +++ b/keyboards/xbows/nature/config.h @@ -52,7 +52,6 @@ # define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND # define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA # define IS31FL3731_I2C_ADDRESS_3 IS31FL3731_I2C_ADDRESS_SCL -# define IS31FL3731_DRIVER_COUNT 3 # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 36 # define DRIVER_3_LED_TOTAL 15 diff --git a/keyboards/xbows/numpad/config.h b/keyboards/xbows/numpad/config.h index 5beb35aa1b..df025a850d 100644 --- a/keyboards/xbows/numpad/config.h +++ b/keyboards/xbows/numpad/config.h @@ -48,6 +48,5 @@ # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out # define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_VCC -# define IS31FL3731_DRIVER_COUNT 1 # define RGB_MATRIX_LED_COUNT 22 #endif diff --git a/keyboards/xbows/ranger/config.h b/keyboards/xbows/ranger/config.h index 49d889b920..92bcfa492c 100644 --- a/keyboards/xbows/ranger/config.h +++ b/keyboards/xbows/ranger/config.h @@ -49,7 +49,6 @@ # define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND # define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SCL # define IS31FL3731_I2C_ADDRESS_3 IS31FL3731_I2C_ADDRESS_SDA -# define IS31FL3731_DRIVER_COUNT 3 # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 36 # define DRIVER_3_LED_TOTAL 15 diff --git a/keyboards/xbows/woody/config.h b/keyboards/xbows/woody/config.h index dc86093694..7d06b7abda 100644 --- a/keyboards/xbows/woody/config.h +++ b/keyboards/xbows/woody/config.h @@ -58,7 +58,6 @@ # define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND # define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -# define IS31FL3731_DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 35 # define DRIVER_2_LED_TOTAL 32 # define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/xelus/dawn60/rev1/config.h b/keyboards/xelus/dawn60/rev1/config.h index a2a127f0a4..2552942635 100644 --- a/keyboards/xelus/dawn60/rev1/config.h +++ b/keyboards/xelus/dawn60/rev1/config.h @@ -18,7 +18,6 @@ // IS31FL3731 driver #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -#define IS31FL3731_DRIVER_COUNT 2 #define IS31FL3731_LED_COUNT 64 // Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap diff --git a/keyboards/xelus/dawn60/rev1_qmk/config.h b/keyboards/xelus/dawn60/rev1_qmk/config.h index e0ffe30843..4e6d418f21 100644 --- a/keyboards/xelus/dawn60/rev1_qmk/config.h +++ b/keyboards/xelus/dawn60/rev1_qmk/config.h @@ -27,7 +27,6 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA -#define IS31FL3731_DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 32 #define DRIVER_2_LED_TOTAL 32 #define IS31FL3731_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/xelus/pachi/rgb/rev1/config.h b/keyboards/xelus/pachi/rgb/rev1/config.h index 8d86a977c1..e12b1af443 100644 --- a/keyboards/xelus/pachi/rgb/rev1/config.h +++ b/keyboards/xelus/pachi/rgb/rev1/config.h @@ -39,7 +39,6 @@ // RGB Matrix defines #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 117 #define IS31FL3741_LED_COUNT DRIVER_1_LED_TOTAL diff --git a/keyboards/xelus/pachi/rgb/rev2/config.h b/keyboards/xelus/pachi/rgb/rev2/config.h index 0afc9e2a43..f852602705 100644 --- a/keyboards/xelus/pachi/rgb/rev2/config.h +++ b/keyboards/xelus/pachi/rgb/rev2/config.h @@ -39,7 +39,6 @@ // RGB Matrix defines #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND -#define IS31FL3741_DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 117 #define IS31FL3741_LED_COUNT DRIVER_1_LED_TOTAL From 98013e25c6996b6c81a79716d57e8e5f8a364bdb Mon Sep 17 00:00:00 2001 From: gskygithub <106651989+gskygithub@users.noreply.github.com> Date: Thu, 23 Nov 2023 06:13:16 +0800 Subject: [PATCH 404/496] [Keyboard] darkproject/kd83a_bfg_edition (#18416) * Add files via upload * [keyboard] * [Keyboard] * Delete flash_spi.c * Delete flash_spi.h * Delete wb32_spi_master.c * Delete wb32_spi_master.h * [Keyboard] * Resolved requested changes * Resolved requested changes * Changed rules.mk file accordingly. * Resolved changes accordingly. * Update config.h file and rules.mk file * Removed eeprom_flash.c file * Update default/keymap.c file * Delete keyboards/darkproject/kd83a_bfg_edition directory * Add keyboard * Add keyboard * Delete darkproject/kd83a_bfg_edition directory * Resolved Changes * Resolved requested changes * keyboard * Add keyboard * Delete keyboard * Add keyboard * Delete keyboards/darkproject/kd87a_bfg_edition directory * update keymap.c file * update via/keymap.c, config.h and kd83a_bfg_edition.c files * Delete keymap.c * Update via/keymap.c, config.h and kd83a_bfg_edition.c files * update config.h file * update keymap.c file * update keymap.c file * update config.h * update kd83a_bfg_edition.c * Resolved requested changes. * Delete folder which was added accidentally. * Update keyboards/darkproject/kd83a_bfg_edition/config.h * Update keyboards/darkproject/kd83a_bfg_edition/keymaps/via/keymap.c * Update keyboards/darkproject/kd83a_bfg_edition/keymaps/via/keymap.c * Update keyboards/darkproject/kd83a_bfg_edition/keymaps/via/keymap.c * Update keyboards/darkproject/kd83a_bfg_edition/keymaps/via/keymap.c * Update keyboards/darkproject/kd83a_bfg_edition/info.json * Update keyboards/darkproject/kd83a_bfg_edition/rules.mk * Update keyboards/darkproject/kd83a_bfg_edition/info.json * update info.json file * update config.h file * Updated requested changes * update readme.md * Resolved requested changes * Update info.json file * Delete kd83a_bfg_edition.h * Delete readme.md in default folder * Update info.json file * update info.json * Updated changes * Updated changes * Resolved requested changes * Resolved requested changes --- .../darkproject/kd83a_bfg_edition/config.h | 44 +++ .../darkproject/kd83a_bfg_edition/halconf.h | 23 ++ .../darkproject/kd83a_bfg_edition/info.json | 270 ++++++++++++++++++ .../kd83a_bfg_edition/kd83a_bfg_edition.c | 188 ++++++++++++ .../kd83a_bfg_edition/kd83a_bfg_edition.h | 22 ++ .../keymaps/default/keymap.c | 78 +++++ .../keymaps/default/rules.mk | 1 + .../kd83a_bfg_edition/keymaps/via/keymap.c | 78 +++++ .../kd83a_bfg_edition/keymaps/via/rules.mk | 2 + .../darkproject/kd83a_bfg_edition/mcuconf.h | 25 ++ .../darkproject/kd83a_bfg_edition/readme.md | 25 ++ .../darkproject/kd83a_bfg_edition/rules.mk | 1 + 12 files changed, 757 insertions(+) create mode 100644 keyboards/darkproject/kd83a_bfg_edition/config.h create mode 100644 keyboards/darkproject/kd83a_bfg_edition/halconf.h create mode 100644 keyboards/darkproject/kd83a_bfg_edition/info.json create mode 100644 keyboards/darkproject/kd83a_bfg_edition/kd83a_bfg_edition.c create mode 100644 keyboards/darkproject/kd83a_bfg_edition/kd83a_bfg_edition.h create mode 100644 keyboards/darkproject/kd83a_bfg_edition/keymaps/default/keymap.c create mode 100644 keyboards/darkproject/kd83a_bfg_edition/keymaps/default/rules.mk create mode 100644 keyboards/darkproject/kd83a_bfg_edition/keymaps/via/keymap.c create mode 100644 keyboards/darkproject/kd83a_bfg_edition/keymaps/via/rules.mk create mode 100644 keyboards/darkproject/kd83a_bfg_edition/mcuconf.h create mode 100644 keyboards/darkproject/kd83a_bfg_edition/readme.md create mode 100644 keyboards/darkproject/kd83a_bfg_edition/rules.mk diff --git a/keyboards/darkproject/kd83a_bfg_edition/config.h b/keyboards/darkproject/kd83a_bfg_edition/config.h new file mode 100644 index 0000000000..9cf993b861 --- /dev/null +++ b/keyboards/darkproject/kd83a_bfg_edition/config.h @@ -0,0 +1,44 @@ +/* Copyright 2022 GSKY + + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define RGB_DISABLE_WHEN_USB_SUSPENDED + +/* External spi flash */ +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B14 +#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) + +/* SPI Config for LED Driver */ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN A5 +#define SPI_MOSI_PIN A7 +#define SPI_MISO_PIN A6 + +#define DRIVER_1_CS A15 +#define DRIVER_2_CS B15 +#define DRIVER_1_EN C13 +#define DRIVER_2_EN C13 + +#define DRIVER_COUNT 2 +#define DRIVER_1_LED_TOTAL 66 +#define DRIVER_2_LED_TOTAL 19 +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/darkproject/kd83a_bfg_edition/halconf.h b/keyboards/darkproject/kd83a_bfg_edition/halconf.h new file mode 100644 index 0000000000..8f61d3fc64 --- /dev/null +++ b/keyboards/darkproject/kd83a_bfg_edition/halconf.h @@ -0,0 +1,23 @@ +/* Copyright (C) 2022 Westberry Technology (ChangZhou) Corp., Ltd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/darkproject/kd83a_bfg_edition/info.json b/keyboards/darkproject/kd83a_bfg_edition/info.json new file mode 100644 index 0000000000..5795c11cca --- /dev/null +++ b/keyboards/darkproject/kd83a_bfg_edition/info.json @@ -0,0 +1,270 @@ +{ + "manufacturer": "Gsky", + "keyboard_name": "KD83A_BFG_Edition", + "maintainer": "Gsky", + "bootloader": "wb32-dfu", + "bootmagic": { + "matrix": [1, 3] + }, + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "C2", "pin_b": "C3"} + ] + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "indicators": { + "caps_lock": "C14" + }, + "matrix_pins": { + "cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"], + "rows": ["B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", "B12"] + }, + "processor": "WB32FQ95", + "qmk": { + "tap_keycode_delay": 10 + }, + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "center_point": [76, 25], + "driver": "aw20216", + "layout": [ + { "flags": 4, "matrix": [1, 3], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [2, 6], "x": 20, "y": 0 }, + { "flags": 4, "matrix": [3, 6], "x": 30, "y": 0 }, + { "flags": 4, "matrix": [3, 1], "x": 40, "y": 0 }, + { "flags": 4, "matrix": [3, 3], "x": 50, "y": 0 }, + { "flags": 4, "matrix": [0, 7], "x": 60, "y": 0 }, + { "flags": 4, "matrix": [6, 3], "x": 70, "y": 0 }, + { "flags": 4, "matrix": [7, 1], "x": 80, "y": 0 }, + { "flags": 4, "matrix": [7, 6], "x": 90, "y": 0 }, + { "flags": 4, "matrix": [10, 6], "x": 100, "y": 0 }, + { "flags": 4, "matrix": [10, 7], "x": 110, "y": 0 }, + { "flags": 4, "matrix": [10, 3], "x": 120, "y": 0 }, + { "flags": 4, "matrix": [10, 5], "x": 130, "y": 0 }, + { "flags": 4, "matrix": [9, 7], "x": 140, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 150, "y": 0 }, + { "flags": 4, "matrix": [1, 6], "x": 0, "y": 10 }, + { "flags": 4, "matrix": [1, 7], "x": 10, "y": 10 }, + { "flags": 4, "matrix": [2, 7], "x": 20, "y": 10 }, + { "flags": 4, "matrix": [3, 7], "x": 30, "y": 10 }, + { "flags": 4, "matrix": [4, 7], "x": 40, "y": 10 }, + { "flags": 4, "matrix": [4, 6], "x": 50, "y": 10 }, + { "flags": 4, "matrix": [5, 6], "x": 60, "y": 10 }, + { "flags": 4, "matrix": [5, 7], "x": 70, "y": 10 }, + { "flags": 4, "matrix": [6, 7], "x": 80, "y": 10 }, + { "flags": 4, "matrix": [7, 7], "x": 90, "y": 10 }, + { "flags": 4, "matrix": [8, 7], "x": 100, "y": 10 }, + { "flags": 4, "matrix": [8, 6], "x": 110, "y": 10 }, + { "flags": 4, "matrix": [6, 6], "x": 120, "y": 10 }, + { "flags": 4, "matrix": [10, 1], "x": 130, "y": 10 }, + { "flags": 4, "matrix": [11, 6], "x": 150, "y": 10 }, + { "flags": 4, "matrix": [1, 1], "x": 0, "y": 20 }, + { "flags": 4, "matrix": [1, 0], "x": 15, "y": 20 }, + { "flags": 4, "matrix": [2, 0], "x": 25, "y": 20 }, + { "flags": 4, "matrix": [3, 0], "x": 35, "y": 20 }, + { "flags": 4, "matrix": [4, 0], "x": 45, "y": 20 }, + { "flags": 4, "matrix": [4, 1], "x": 55, "y": 20 }, + { "flags": 4, "matrix": [5, 1], "x": 65, "y": 20 }, + { "flags": 4, "matrix": [5, 0], "x": 75, "y": 20 }, + { "flags": 4, "matrix": [6, 0], "x": 85, "y": 20 }, + { "flags": 4, "matrix": [7, 0], "x": 95, "y": 20 }, + { "flags": 4, "matrix": [8, 0], "x": 105, "y": 20 }, + { "flags": 4, "matrix": [8, 1], "x": 115, "y": 20 }, + { "flags": 4, "matrix": [6, 1], "x": 125, "y": 20 }, + { "flags": 4, "matrix": [10, 2], "x": 135, "y": 20 }, + { "flags": 4, "matrix": [6, 5], "x": 150, "y": 20 }, + { "flags": 4, "matrix": [2, 1], "x": 0, "y": 30 }, + { "flags": 4, "matrix": [1, 2], "x": 17, "y": 30 }, + { "flags": 8, "matrix": [2, 2], "x": 27, "y": 30 }, + { "flags": 4, "matrix": [3, 2], "x": 37, "y": 30 }, + { "flags": 4, "matrix": [4, 2], "x": 47, "y": 30 }, + { "flags": 4, "matrix": [4, 3], "x": 57, "y": 30 }, + { "flags": 4, "matrix": [5, 3], "x": 67, "y": 30 }, + { "flags": 4, "matrix": [5, 2], "x": 77, "y": 30 }, + { "flags": 4, "matrix": [6, 2], "x": 87, "y": 30 }, + { "flags": 4, "matrix": [7, 2], "x": 97, "y": 30 }, + { "flags": 4, "matrix": [8, 2], "x": 107, "y": 30 }, + { "flags": 4, "matrix": [8, 3], "x": 117, "y": 30 }, + { "flags": 4, "matrix": [10, 4], "x": 127, "y": 30 }, + { "flags": 4, "matrix": [1, 5], "x": 150, "y": 30 }, + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 40 }, + { "flags": 4, "matrix": [1, 4], "x": 22, "y": 40 }, + { "flags": 4, "matrix": [2, 4], "x": 32, "y": 40 }, + { "flags": 4, "matrix": [3, 4], "x": 42, "y": 40 }, + { "flags": 4, "matrix": [4, 4], "x": 52, "y": 40 }, + { "flags": 4, "matrix": [4, 5], "x": 62, "y": 40 }, + { "flags": 4, "matrix": [5, 5], "x": 72, "y": 40 }, + { "flags": 4, "matrix": [5, 4], "x": 82, "y": 40 }, + { "flags": 4, "matrix": [6, 4], "x": 92, "y": 40 }, + { "flags": 4, "matrix": [7, 4], "x": 102, "y": 40 }, + { "flags": 4, "matrix": [8, 5], "x": 112, "y": 40 }, + { "flags": 4, "matrix": [9, 1], "x": 122, "y": 40 }, + { "flags": 4, "matrix": [3, 5], "x": 140, "y": 40 }, + { "flags": 4, "matrix": [2, 5], "x": 150, "y": 40 }, + { "flags": 4, "matrix": [0, 6], "x": 0, "y": 50 }, + { "flags": 4, "matrix": [9, 0], "x": 12, "y": 50 }, + { "flags": 4, "matrix": [9, 3], "x": 25, "y": 50 }, + { "flags": 4, "matrix": [9, 4], "x": 37, "y": 50 }, + { "flags": 4, "matrix": [9, 5], "x": 100, "y": 50 }, + { "flags": 4, "matrix": [9, 2], "x": 110, "y": 50 }, + { "flags": 4, "matrix": [0, 4], "x": 120, "y": 50 }, + { "flags": 4, "matrix": [0, 3], "x": 130, "y": 50 }, + { "flags": 4, "matrix": [7, 3], "x": 140, "y": 50 }, + { "flags": 4, "matrix": [0, 5], "x": 150, "y": 50 }, + { "flags": 4, "matrix": [11, 0], "x": 0, "y": 1 }, + { "flags": 4, "matrix": [11, 1], "x": 0, "y": 2 } + ] + }, + "url": "", + "usb": { + "device_version": "0.0.3", + "pid": "0xE392", + "vid": "0x342D" + }, + "eeprom": { + "driver": "wear_leveling" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "ESC", "matrix": [1, 3], "x": 0, "y": 0 }, + { "label": "F1", "matrix": [2, 6], "x": 2, "y": 0 }, + { "label": "F2", "matrix": [3, 6], "x": 3, "y": 0 }, + { "label": "F3", "matrix": [3, 1], "x": 4, "y": 0 }, + { "label": "F4", "matrix": [3, 3], "x": 5, "y": 0 }, + { "label": "F5", "matrix": [0, 7], "x": 6, "y": 0 }, + { "label": "F6", "matrix": [6, 3], "x": 7, "y": 0 }, + { "label": "F7", "matrix": [7, 1], "x": 8, "y": 0 }, + { "label": "F8", "matrix": [7, 6], "x": 9, "y": 0 }, + { "label": "F9", "matrix": [10, 6], "x": 10, "y": 0 }, + { "label": "F10", "matrix": [10, 7], "x": 11, "y": 0 }, + { "label": "F11", "matrix": [10, 3], "x": 12, "y": 0 }, + { "label": "F12", "matrix": [10, 5], "x": 13, "y": 0 }, + { "label": "Printscreen", "matrix": [9, 7], "x": 14, "y": 0 }, + { "label": "Del", "matrix": [0, 2], "x": 15, "y": 0 }, + { "label": "`", "matrix": [1, 6], "x": 0, "y": 1 }, + { "label": "1", "matrix": [1, 7], "x": 1, "y": 1 }, + { "label": "2", "matrix": [2, 7], "x": 2, "y": 1 }, + { "label": "3", "matrix": [3, 7], "x": 3, "y": 1 }, + { "label": "4", "matrix": [4, 7], "x": 4, "y": 1 }, + { "label": "5", "matrix": [4, 6], "x": 5, "y": 1 }, + { "label": "6", "matrix": [5, 6], "x": 6, "y": 1 }, + { "label": "7", "matrix": [5, 7], "x": 7, "y": 1 }, + { "label": "8", "matrix": [6, 7], "x": 8, "y": 1 }, + { "label": "9", "matrix": [7, 7], "x": 9, "y": 1 }, + { "label": "0", "matrix": [8, 7], "x": 10, "y": 1 }, + { "label": "-", "matrix": [8, 6], "x": 11, "y": 1 }, + { "label": "=", "matrix": [6, 6], "x": 12, "y": 1 }, + { "label": "Backspace", "matrix": [10, 1], "w": 2, "x": 13, "y": 1 }, + { "label": "Home", "matrix": [11, 6], "x": 15, "y": 1 }, + { "label": "Tab", "matrix": [1, 1], "w": 1.5, "x": 0, "y": 2 }, + { "label": "Q", "matrix": [1, 0], "x": 1.5, "y": 2 }, + { "label": "W", "matrix": [2, 0], "x": 2.5, "y": 2 }, + { "label": "E", "matrix": [3, 0], "x": 3.5, "y": 2 }, + { "label": "R", "matrix": [4, 0], "x": 4.5, "y": 2 }, + { "label": "T", "matrix": [4, 1], "x": 5.5, "y": 2 }, + { "label": "Y", "matrix": [5, 1], "x": 6.5, "y": 2 }, + { "label": "U", "matrix": [5, 0], "x": 7.5, "y": 2 }, + { "label": "I", "matrix": [6, 0], "x": 8.5, "y": 2 }, + { "label": "O", "matrix": [7, 0], "x": 9.5, "y": 2 }, + { "label": "P", "matrix": [8, 0], "x": 10.5, "y": 2 }, + { "label": "[", "matrix": [8, 1], "x": 11.5, "y": 2 }, + { "label": "]", "matrix": [6, 1], "x": 12.5, "y": 2 }, + { "label": "\\", "matrix": [10, 2], "w": 1.5, "x": 13.5, "y": 2 }, + { "label": "End", "matrix": [6, 5], "x": 15, "y": 2 }, + { "label": "Caps Lock", "matrix": [2, 1], "w": 1.75, "x": 0, "y": 3 }, + { "label": "A", "matrix": [1, 2], "x": 1.75, "y": 3 }, + { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 3 }, + { "label": "D", "matrix": [3, 2], "x": 3.75, "y": 3 }, + { "label": "F", "matrix": [4, 2], "x": 4.75, "y": 3 }, + { "label": "G", "matrix": [4, 3], "x": 5.75, "y": 3 }, + { "label": "H", "matrix": [5, 3], "x": 6.75, "y": 3 }, + { "label": "J", "matrix": [5, 2], "x": 7.75, "y": 3 }, + { "label": "K", "matrix": [6, 2], "x": 8.75, "y": 3 }, + { "label": "L", "matrix": [7, 2], "x": 9.75, "y": 3 }, + { "label": ";", "matrix": [8, 2], "x": 10.75, "y": 3 }, + { "label": "'", "matrix": [8, 3], "x": 11.75, "y": 3 }, + { "label": "Enter", "matrix": [10, 4], "w": 2.25, "x": 12.75, "y": 3 }, + { "label": "PgUp", "matrix": [1, 5], "x": 15, "y": 3 }, + { "label": "Shift", "matrix": [0, 0], "w": 2.25, "x": 0, "y": 4 }, + { "label": "Z", "matrix": [1, 4], "x": 2.25, "y": 4 }, + { "label": "X", "matrix": [2, 4], "x": 3.25, "y": 4 }, + { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 4 }, + { "label": "V", "matrix": [4, 4], "x": 5.25, "y": 4 }, + { "label": "B", "matrix": [4, 5], "x": 6.25, "y": 4 }, + { "label": "N", "matrix": [5, 5], "x": 7.25, "y": 4 }, + { "label": "M", "matrix": [5, 4], "x": 8.25, "y": 4 }, + { "label": ",", "matrix": [6, 4], "x": 9.25, "y": 4 }, + { "label": ".", "matrix": [7, 4], "x": 10.25, "y": 4 }, + { "label": "/", "matrix": [8, 5], "x": 11.25, "y": 4 }, + { "label": "Shift", "matrix": [9, 1], "w": 1.75, "x": 12.25, "y": 4 }, + { "label": "Up", "matrix": [3, 5], "x": 14, "y": 4 }, + { "label": "PgDn", "matrix": [2, 5], "x": 15, "y": 4 }, + { "label": "Ctrl", "matrix": [0, 6], "w": 1.25, "x": 0, "y": 5 }, + { "label": "Win", "matrix": [9, 0], "w": 1.25, "x": 1.25, "y": 5 }, + { "label": "Alt", "matrix": [9, 3], "w": 1.25, "x": 2.5, "y": 5 }, + { "label": "Space", "matrix": [9, 4], "w": 6.25, "x": 3.75, "y": 5 }, + { "label": "Alt", "matrix": [9, 5], "x": 10, "y": 5 }, + { "label": "FN", "matrix": [9, 2], "x": 11, "y": 5 }, + { "label": "Ctrl", "matrix": [0, 4], "x": 12, "y": 5 }, + { "label": "Left", "matrix": [0, 3], "x": 13, "y": 5 }, + { "label": "Down", "matrix": [7, 3], "x": 14, "y": 5 }, + { "label": "Right", "matrix": [0, 5], "x": 15, "y": 5 } + ] + } + } +} diff --git a/keyboards/darkproject/kd83a_bfg_edition/kd83a_bfg_edition.c b/keyboards/darkproject/kd83a_bfg_edition/kd83a_bfg_edition.c new file mode 100644 index 0000000000..e78de78bf8 --- /dev/null +++ b/keyboards/darkproject/kd83a_bfg_edition/kd83a_bfg_edition.c @@ -0,0 +1,188 @@ +/* Copyright 2022 GSKY + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "kd83a_bfg_edition.h" + +#ifdef RGB_MATRIX_ENABLE + +const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + //{0, CS1_SW4, CS2_SW4, CS3_SW4}, // 0, k00, Esc + + {0, CS1_SW1, CS2_SW1, CS3_SW1}, // 1, k13, Esc + {0, CS1_SW2, CS2_SW2, CS3_SW2}, // 2, k26, F1 + {0, CS1_SW3, CS2_SW3, CS3_SW3}, // 3, k36, F2 + {0, CS1_SW4, CS2_SW4, CS3_SW4}, // 4, k31, F3 + {0, CS1_SW5, CS2_SW5, CS3_SW5}, // 5, k33, F4 + {0, CS1_SW6, CS2_SW6, CS3_SW6}, // 6, k07, F5 + {0, CS1_SW7, CS2_SW7, CS3_SW7}, // 7, k63, F6 + {0, CS1_SW8, CS2_SW8, CS3_SW8}, // 8, k71, F7 + {0, CS1_SW9, CS2_SW9, CS3_SW9}, // 9, k76, F8 + {0, CS1_SW10, CS2_SW10, CS3_SW10}, // 10, ka6, F9 + {0, CS1_SW11, CS2_SW11, CS3_SW11}, // 11, ka7, F10 + {0, CS1_SW12, CS2_SW12, CS3_SW12}, // 12, ka3, F11 + {1, CS1_SW1, CS2_SW1, CS3_SW1}, // 13, ka5, F12 + {1, CS4_SW2, CS5_SW2, CS6_SW2}, // 14, k97, Printscreen + {1, CS4_SW5, CS5_SW5, CS6_SW5}, // 15, k02, Del + + {0, CS4_SW1, CS5_SW1, CS6_SW1}, // 16, k16, ` + {0, CS4_SW2, CS5_SW2, CS6_SW2}, // 17, k17, 1 + {0, CS4_SW3, CS5_SW3, CS6_SW3}, // 18, k27, 2 + {0, CS4_SW4, CS5_SW4, CS6_SW4}, // 19, k37, 3 + {0, CS4_SW5, CS5_SW5, CS6_SW5}, // 20, k47, 4 + {0, CS4_SW6, CS5_SW6, CS6_SW6}, // 21, k46, 5 + {0, CS4_SW7, CS5_SW7, CS6_SW7}, // 22, k56, 6 + {0, CS4_SW8, CS5_SW8, CS6_SW8}, // 23, k57, 7 + {0, CS4_SW9, CS5_SW9, CS6_SW9}, // 24, k67, 8 + {0, CS4_SW10, CS5_SW10, CS6_SW10}, // 25, k77, 9 + {0, CS4_SW11, CS5_SW11, CS6_SW11}, // 26, k87, 0 + {0, CS4_SW12, CS5_SW12, CS6_SW12}, // 27, k86, - + {1, CS1_SW5, CS2_SW5, CS3_SW5}, // 28, k66, = + {1, CS1_SW7, CS2_SW7, CS3_SW7}, // 29, ka1, Backspace + {1, CS1_SW2, CS2_SW2, CS3_SW2}, // 30, kc6, Home + + {0, CS7_SW1, CS8_SW1, CS9_SW1}, // 31, k11, Tab + {0, CS7_SW2, CS8_SW2, CS9_SW2}, // 32, k10, Q + {0, CS7_SW3, CS8_SW3, CS9_SW3}, // 33, k20, W + {0, CS7_SW4, CS8_SW4, CS9_SW4}, // 34, k30, E + {0, CS7_SW5, CS8_SW5, CS9_SW5}, // 35, k40, R + {0, CS7_SW6, CS8_SW6, CS9_SW6}, // 36, k41, T + {0, CS7_SW7, CS8_SW7, CS9_SW7}, // 37, k51, Y + {0, CS7_SW8, CS8_SW8, CS9_SW8}, // 38, k50, U + {0, CS7_SW9, CS8_SW9, CS9_SW9}, // 39, k60, I + {0, CS7_SW10, CS8_SW10, CS9_SW10}, // 40, k70, O + {0, CS7_SW11, CS8_SW11, CS9_SW11}, // 41, k80, P + {0, CS7_SW12, CS8_SW12, CS9_SW12}, // 42, k81, [ + {1, CS1_SW8, CS2_SW8, CS3_SW8}, // 43, k61, ] + {1, CS1_SW9, CS2_SW9, CS3_SW9}, // 44, ka2, "\\" + {1, CS4_SW3, CS5_SW3, CS6_SW3}, // 45, k65, End + + {0, CS10_SW1, CS11_SW1, CS12_SW1}, // 46, k21, Caps Lock + {0, CS10_SW2, CS11_SW2, CS12_SW2}, // 47, k12, A + {0, CS10_SW3, CS11_SW3, CS12_SW3}, // 48, k22, S + {0, CS10_SW4, CS11_SW4, CS12_SW4}, // 49, k32, D + {0, CS10_SW5, CS11_SW5, CS12_SW5}, // 50, k42, F + {0, CS10_SW6, CS11_SW6, CS12_SW6}, // 51, k43, G + {0, CS10_SW7, CS11_SW7, CS12_SW7}, // 52, k53, H + {0, CS10_SW8, CS11_SW8, CS12_SW8}, // 53, k52, J + {0, CS10_SW9, CS11_SW9, CS12_SW9}, // 54, k62, K + {0, CS10_SW10, CS11_SW10, CS12_SW10}, // 55, k72, L + {0, CS10_SW11, CS11_SW11, CS12_SW11}, // 56, k82, ; + {0, CS10_SW12, CS11_SW12, CS12_SW12}, // 57, k83, ' + {1, CS1_SW11, CS2_SW11, CS3_SW11}, // 58, ka4, Enter + {1, CS4_SW4, CS5_SW4, CS6_SW4}, // 59, k15, PgUp + + {0, CS13_SW1, CS14_SW1, CS15_SW1}, // 60, k00, Shift_L + {0, CS13_SW2, CS14_SW2, CS15_SW2}, // 61, k14, Z + {0, CS13_SW3, CS14_SW3, CS15_SW3}, // 62, k24, X + {0, CS13_SW4, CS14_SW4, CS15_SW4}, // 63, k34, C + {0, CS13_SW5, CS14_SW5, CS15_SW5}, // 64, k44, V + {0, CS13_SW6, CS14_SW6, CS15_SW6}, // 65, k45, B + {0, CS13_SW7, CS14_SW7, CS15_SW7}, // 66, k55, N + {0, CS13_SW8, CS14_SW8, CS15_SW8}, // 67, k54, M + {0, CS13_SW9, CS14_SW9, CS15_SW9}, // 68, k64, , + {0, CS13_SW10, CS14_SW10, CS15_SW10}, // 69, k74, . + {0, CS13_SW11, CS14_SW11, CS15_SW11}, // 70, k85, / + {1, CS4_SW8, CS5_SW8, CS6_SW8}, // 71, k91, Shift_R + {1, CS4_SW9, CS5_SW9, CS6_SW9}, // 72, k35, Up + {1, CS4_SW7, CS5_SW7, CS6_SW7}, // 73, k25, PgDn + + {0, CS16_SW1, CS17_SW1, CS18_SW1}, // 74, k06, Ctrl_L + {0, CS16_SW2, CS17_SW2, CS18_SW2}, // 75, k90, Win_L + {0, CS16_SW3, CS17_SW3, CS18_SW3}, // 76, k93, Alt_L + {0, CS16_SW6, CS17_SW6, CS18_SW6}, // 77, k94, Space + {0, CS16_SW9, CS17_SW9, CS18_SW9}, // 78, k95, Alt_R + {0, CS16_SW10, CS17_SW10, CS18_SW10}, // 79, k92, FN + {0, CS16_SW12, CS17_SW12, CS18_SW12}, // 80, k04, Ctrl_R + {1, CS4_SW10, CS5_SW10, CS6_SW10}, // 81, k03, Left + {1, CS4_SW11, CS5_SW11, CS6_SW11}, // 82, k73, Down + {1, CS10_SW5, CS11_SW5, CS12_SW5}, // 83, k05, Right + + {1, CS10_SW10, CS11_SW10, CS12_SW10}, // 84, kb0, Z1 + {1, CS10_SW11, CS11_SW11, CS12_SW11}, // 85, kb1, Z2 +}; + +#endif + +#ifdef EEPROM_ENABLE + +#include "spi_master.h" + +void spi_init(void) { + static bool is_initialised = false; + if (!is_initialised) { + is_initialised = true; + + // Try releasing special pins for a short time + setPinInput(SPI_SCK_PIN); + setPinInput(SPI_MOSI_PIN); + setPinInput(SPI_MISO_PIN); + + chThdSleepMilliseconds(10); + + palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_ALTERNATE(SPI_SCK_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST | PAL_WB32_CURRENT_LEVEL3); + palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_ALTERNATE(SPI_MOSI_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST); + palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_ALTERNATE(SPI_MISO_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST); + } +} + +#endif + +void keyboard_pre_init_kb(void) { + setPinOutput(C0); + setPinOutput(C15); + keyboard_pre_init_user(); +}; +void housekeeping_task_kb(void) { + writePin(C15, keymap_config.no_gui); +}; + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + switch (keycode) { + + case KC_SIRI: + if (record->event.pressed) { + host_consumer_send(0xCF); + } else { + host_consumer_send(0); + } + return false; /* Skip all further processing of this key */ + default: + return true; /* Process all other keycodes normally */ + } +}; + +#if defined(ENCODER_ENABLE) +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + return false; +}; +#endif \ No newline at end of file diff --git a/keyboards/darkproject/kd83a_bfg_edition/kd83a_bfg_edition.h b/keyboards/darkproject/kd83a_bfg_edition/kd83a_bfg_edition.h new file mode 100644 index 0000000000..e2c656eb0e --- /dev/null +++ b/keyboards/darkproject/kd83a_bfg_edition/kd83a_bfg_edition.h @@ -0,0 +1,22 @@ +/* Copyright 2022 GSKY + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +enum keyboard_keycodes { + KC_SIRI = QK_KB_0 +}; diff --git a/keyboards/darkproject/kd83a_bfg_edition/keymaps/default/keymap.c b/keyboards/darkproject/kd83a_bfg_edition/keymaps/default/keymap.c new file mode 100644 index 0000000000..78324c6942 --- /dev/null +++ b/keyboards/darkproject/kd83a_bfg_edition/keymaps/default/keymap.c @@ -0,0 +1,78 @@ +/* Copyright 2022 GSKY + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. + +enum custom_layers { + Win, + Mac, + Winfn, + Macfn, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: Base Layer (Default Layer) + */ +[Win] = LAYOUT( + KC_ESC, 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_PSCR, KC_DEL, + KC_GRV, 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_BSPC, KC_HOME, + 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_END, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(Winfn),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[Mac] = LAYOUT( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_SIRI, KC_F5, KC_F6, KC_MRWD, KC_MPLY, KC_MFFD, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_DEL, + KC_GRV, 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_BSPC, KC_HOME, + 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_END, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(Macfn),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[Winfn] = LAYOUT( + QK_BOOT, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RGB_MOD, + 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, RGB_HUI, + KC_TRNS, KC_TRNS, TO(Win), 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, + KC_TRNS, GUI_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), + +[Macfn] = LAYOUT( + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RGB_MOD, + 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, RGB_HUI, + KC_TRNS, KC_TRNS, TO(Win), 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), + +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif + +layer_state_t layer_state_set_user(layer_state_t state) { + writePin(C0, layer_state_cmp(state, 1)); + return state; +}; diff --git a/keyboards/darkproject/kd83a_bfg_edition/keymaps/default/rules.mk b/keyboards/darkproject/kd83a_bfg_edition/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/darkproject/kd83a_bfg_edition/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/darkproject/kd83a_bfg_edition/keymaps/via/keymap.c b/keyboards/darkproject/kd83a_bfg_edition/keymaps/via/keymap.c new file mode 100644 index 0000000000..78324c6942 --- /dev/null +++ b/keyboards/darkproject/kd83a_bfg_edition/keymaps/via/keymap.c @@ -0,0 +1,78 @@ +/* Copyright 2022 GSKY + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. + +enum custom_layers { + Win, + Mac, + Winfn, + Macfn, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: Base Layer (Default Layer) + */ +[Win] = LAYOUT( + KC_ESC, 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_PSCR, KC_DEL, + KC_GRV, 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_BSPC, KC_HOME, + 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_END, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(Winfn),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[Mac] = LAYOUT( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_SIRI, KC_F5, KC_F6, KC_MRWD, KC_MPLY, KC_MFFD, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_DEL, + KC_GRV, 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_BSPC, KC_HOME, + 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_END, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(Macfn),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[Winfn] = LAYOUT( + QK_BOOT, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RGB_MOD, + 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, RGB_HUI, + KC_TRNS, KC_TRNS, TO(Win), 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, + KC_TRNS, GUI_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), + +[Macfn] = LAYOUT( + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RGB_MOD, + 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, RGB_HUI, + KC_TRNS, KC_TRNS, TO(Win), 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), + +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif + +layer_state_t layer_state_set_user(layer_state_t state) { + writePin(C0, layer_state_cmp(state, 1)); + return state; +}; diff --git a/keyboards/darkproject/kd83a_bfg_edition/keymaps/via/rules.mk b/keyboards/darkproject/kd83a_bfg_edition/keymaps/via/rules.mk new file mode 100644 index 0000000000..f1adcab005 --- /dev/null +++ b/keyboards/darkproject/kd83a_bfg_edition/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/darkproject/kd83a_bfg_edition/mcuconf.h b/keyboards/darkproject/kd83a_bfg_edition/mcuconf.h new file mode 100644 index 0000000000..440f78d2bc --- /dev/null +++ b/keyboards/darkproject/kd83a_bfg_edition/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright (C) 2022 Westberry Technology (ChangZhou) Corp., Ltd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE + +#undef WB32_SPI_USE_SPIM2 +#define WB32_SPI_USE_SPIM2 TRUE diff --git a/keyboards/darkproject/kd83a_bfg_edition/readme.md b/keyboards/darkproject/kd83a_bfg_edition/readme.md new file mode 100644 index 0000000000..96826c0c1b --- /dev/null +++ b/keyboards/darkproject/kd83a_bfg_edition/readme.md @@ -0,0 +1,25 @@ +# kd83a_bfg_edition +![KD83A_BFG_EDITION](https://imgur.com/UXuXerrh.png) +![KD83A_BFG_EDITION](https://imgur.com/Dn852gEh.png) + +An 83 keys keyboard, Equipped with the WestBerry Q95 microcontroller. + +* Keyboard Maintainer: [GSKY](https://github.com/gksygithub) +* Hardware Supported: KD83A_BFG_Edition +* Hardware Availability: [GSKY GitHub](https://github.com/gksygithub/keyboard) + +Make example for this keyboard (after setting up your build environment): + + make darkproject/kd83a_bfg_edition:default + +Flashing example for this keyboard: + + make darkproject/kd83a_bfg_edition:default:flash + +To reset the board into bootloader mode, do one of the following: + +* Hold the Reset switch mounted on the surface of the PCB back side after the USB cable is connected +* Hold the Escape key while connecting the USB cable (also erases persistent settings) +* Fn+ESC will reset the board to bootloader mode + +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). diff --git a/keyboards/darkproject/kd83a_bfg_edition/rules.mk b/keyboards/darkproject/kd83a_bfg_edition/rules.mk new file mode 100644 index 0000000000..07eb511a19 --- /dev/null +++ b/keyboards/darkproject/kd83a_bfg_edition/rules.mk @@ -0,0 +1 @@ +WEAR_LEVELING_DRIVER = spi_flash \ No newline at end of file From 0379d1f59e58cefa18cdb72ba1b77507d1108ae6 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 22 Nov 2023 21:08:07 -0800 Subject: [PATCH 405/496] DC60: Fix 2u Backspace Support (#22533) --- keyboards/alf/dc60/info.json | 12 ++++++------ keyboards/alf/dc60/matrix_diagram.md | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/keyboards/alf/dc60/info.json b/keyboards/alf/dc60/info.json index 906b78c10e..e0aa59f44f 100644 --- a/keyboards/alf/dc60/info.json +++ b/keyboards/alf/dc60/info.json @@ -142,7 +142,7 @@ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Backspace", "matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1}, @@ -211,7 +211,7 @@ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Backspace", "matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1}, @@ -282,7 +282,7 @@ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Backspace", "matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1}, @@ -354,7 +354,7 @@ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Backspace", "matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1}, @@ -424,7 +424,7 @@ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Backspace", "matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1}, @@ -496,7 +496,7 @@ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, - {"label": "Backspace", "matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1}, diff --git a/keyboards/alf/dc60/matrix_diagram.md b/keyboards/alf/dc60/matrix_diagram.md index 368318c1cd..d2020bda6a 100644 --- a/keyboards/alf/dc60/matrix_diagram.md +++ b/keyboards/alf/dc60/matrix_diagram.md @@ -2,12 +2,12 @@ Most of these are "best-guess." I was using photos I found on ZFrontier as a reference and I don't have the PCB on-hand. - - @noroadsleft - 2023-01-20 + +\- @noroadsleft, 2023-11-21 ``` ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ -│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ │0E │ 2u Backspace +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ │0D │ 2u Backspace ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ └─┬─────┤ │10 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ │ │ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter From cbf538aaaae837971a5b54aaddb9f92b3ac0a8c0 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 26 Nov 2023 22:50:21 +1100 Subject: [PATCH 406/496] V-USB: Add generic `send_report()` function (#22323) --- tmk_core/protocol/vusb/protocol.c | 1 - tmk_core/protocol/vusb/vusb.c | 143 +++++++++++------------------- tmk_core/protocol/vusb/vusb.h | 1 - 3 files changed, 53 insertions(+), 92 deletions(-) diff --git a/tmk_core/protocol/vusb/protocol.c b/tmk_core/protocol/vusb/protocol.c index ae99680ce4..1f64561274 100644 --- a/tmk_core/protocol/vusb/protocol.c +++ b/tmk_core/protocol/vusb/protocol.c @@ -153,7 +153,6 @@ void protocol_task(void) { if (usbConfiguration && usbInterruptIsReady()) { keyboard_task(); } - vusb_transfer_keyboard(); #ifdef RAW_ENABLE usbPoll(); diff --git a/tmk_core/protocol/vusb/vusb.c b/tmk_core/protocol/vusb/vusb.c index 3502d9e644..1750afc562 100644 --- a/tmk_core/protocol/vusb/vusb.c +++ b/tmk_core/protocol/vusb/vusb.c @@ -89,40 +89,51 @@ static uint8_t keyboard_led_state = 0; uint8_t keyboard_idle = 0; uint8_t keyboard_protocol = 1; -/* Keyboard report send buffer */ -#define KBUF_SIZE 16 -static report_keyboard_t kbuf[KBUF_SIZE]; -static uint8_t kbuf_head = 0; -static uint8_t kbuf_tail = 0; - static report_keyboard_t keyboard_report_sent; -#define VUSB_TRANSFER_KEYBOARD_MAX_TRIES 10 - -/* transfer keyboard report from buffer */ -void vusb_transfer_keyboard(void) { - for (int i = 0; i < VUSB_TRANSFER_KEYBOARD_MAX_TRIES; i++) { - if (usbInterruptIsReady()) { - if (kbuf_head != kbuf_tail) { -#ifndef KEYBOARD_SHARED_EP - usbSetInterrupt((void *)&kbuf[kbuf_tail], sizeof(report_keyboard_t)); -#else - // Ugly hack! :( - usbSetInterrupt((void *)&kbuf[kbuf_tail], sizeof(report_keyboard_t) - 1); - while (!usbInterruptIsReady()) { - usbPoll(); +static void send_report_fragment(uint8_t endpoint, void *data, size_t size) { + for (uint8_t retries = 5; retries > 0; retries--) { + switch (endpoint) { + case 1: + if (usbInterruptIsReady()) { + usbSetInterrupt(data, size); + return; } - usbSetInterrupt((void *)(&(kbuf[kbuf_tail].keys[5])), 1); -#endif - kbuf_tail = (kbuf_tail + 1) % KBUF_SIZE; - if (debug_keyboard) { - dprintf("V-USB: kbuf[%d->%d](%02X)\n", kbuf_tail, kbuf_head, (kbuf_head < kbuf_tail) ? (KBUF_SIZE - kbuf_tail + kbuf_head) : (kbuf_head - kbuf_tail)); + break; + case USB_CFG_EP3_NUMBER: + if (usbInterruptIsReady3()) { + usbSetInterrupt3(data, size); + return; } - } - break; + break; + case USB_CFG_EP4_NUMBER: + if (usbInterruptIsReady4()) { + usbSetInterrupt4(data, size); + return; + } + break; + default: + return; } + usbPoll(); - wait_ms(1); + wait_ms(5); + } +} + +static void send_report(uint8_t endpoint, void *report, size_t size) { + uint8_t *temp = (uint8_t *)report; + + // Send as many full packets as possible + for (uint8_t i = 0; i < size / 8; i++) { + send_report_fragment(endpoint, temp, 8); + temp += 8; + } + + // Send any data left over + uint8_t remainder = size % 8; + if (remainder) { + send_report_fragment(endpoint, temp, remainder); } } @@ -141,18 +152,7 @@ void raw_hid_send(uint8_t *data, uint8_t length) { return; } - uint8_t *temp = data; - for (uint8_t i = 0; i < 4; i++) { - while (!usbInterruptIsReady4()) { - usbPoll(); - } - usbSetInterrupt4(temp, 8); - temp += 8; - } - while (!usbInterruptIsReady4()) { - usbPoll(); - } - usbSetInterrupt4(0, 0); + send_report(4, data, 32); } __attribute__((weak)) void raw_hid_receive(uint8_t *data, uint8_t length) { @@ -181,19 +181,6 @@ int8_t sendchar(uint8_t c) { return 0; } -static inline bool usbSendData3(char *data, uint8_t len) { - uint8_t retries = 5; - while (!usbInterruptIsReady3()) { - if (!(retries--)) { - return false; - } - usbPoll(); - } - - usbSetInterrupt3((unsigned char *)data, len); - return true; -} - void console_task(void) { if (!usbConfiguration) { return; @@ -210,16 +197,7 @@ void console_task(void) { send_buf[send_buf_count++] = rbuf_dequeue(); } - char *temp = send_buf; - for (uint8_t i = 0; i < 4; i++) { - if (!usbSendData3(temp, 8)) { - break; - } - temp += 8; - } - - usbSendData3(0, 0); - usbPoll(); + send_report(3, send_buf, CONSOLE_BUFFER_SIZE); } #endif @@ -243,17 +221,12 @@ static uint8_t keyboard_leds(void) { } static void send_keyboard(report_keyboard_t *report) { - uint8_t next = (kbuf_head + 1) % KBUF_SIZE; - if (next != kbuf_tail) { - kbuf[kbuf_head] = *report; - kbuf_head = next; + if (!keyboard_protocol) { + send_report(1, &report->mods, 8); } else { - dprint("kbuf: full\n"); + send_report(1, report, sizeof(report_keyboard_t)); } - // NOTE: send key strokes of Macro - usbPoll(); - vusb_transfer_keyboard(); keyboard_report_sent = *report; } @@ -262,50 +235,40 @@ static void send_nkro(report_nkro_t *report) { } #ifndef KEYBOARD_SHARED_EP -# define usbInterruptIsReadyShared usbInterruptIsReady3 -# define usbSetInterruptShared usbSetInterrupt3 +# define MOUSE_IN_EPNUM 3 +# define SHARED_IN_EPNUM 3 #else -# define usbInterruptIsReadyShared usbInterruptIsReady -# define usbSetInterruptShared usbSetInterrupt +# define MOUSE_IN_EPNUM 1 +# define SHARED_IN_EPNUM 1 #endif static void send_mouse(report_mouse_t *report) { #ifdef MOUSE_ENABLE - if (usbInterruptIsReadyShared()) { - usbSetInterruptShared((void *)report, sizeof(report_mouse_t)); - } + send_report(MOUSE_IN_EPNUM, report, sizeof(report_mouse_t)); #endif } static void send_extra(report_extra_t *report) { #ifdef EXTRAKEY_ENABLE - if (usbInterruptIsReadyShared()) { - usbSetInterruptShared((void *)report, sizeof(report_extra_t)); - } + send_report(SHARED_IN_EPNUM, report, sizeof(report_extra_t)); #endif } void send_joystick(report_joystick_t *report) { #ifdef JOYSTICK_ENABLE - if (usbInterruptIsReadyShared()) { - usbSetInterruptShared((void *)report, sizeof(report_joystick_t)); - } + send_report(SHARED_IN_EPNUM, report, sizeof(report_joystick_t)); #endif } void send_digitizer(report_digitizer_t *report) { #ifdef DIGITIZER_ENABLE - if (usbInterruptIsReadyShared()) { - usbSetInterruptShared((void *)report, sizeof(report_digitizer_t)); - } + send_report(SHARED_IN_EPNUM, report, sizeof(report_digitizer_t)); #endif } void send_programmable_button(report_programmable_button_t *report) { #ifdef PROGRAMMABLE_BUTTON_ENABLE - if (usbInterruptIsReadyShared()) { - usbSetInterruptShared((void *)report, sizeof(report_programmable_button_t)); - } + send_report(SHARED_IN_EPNUM, report, sizeof(report_programmable_button_t)); #endif } diff --git a/tmk_core/protocol/vusb/vusb.h b/tmk_core/protocol/vusb/vusb.h index c5cb27ded6..ae17e5e014 100644 --- a/tmk_core/protocol/vusb/vusb.h +++ b/tmk_core/protocol/vusb/vusb.h @@ -121,4 +121,3 @@ typedef struct usbConfigurationDescriptor { extern bool vusb_suspended; host_driver_t *vusb_driver(void); -void vusb_transfer_keyboard(void); From 4601f339e48b0116ca139dd06ce55ef0b9ed598f Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 26 Nov 2023 22:50:53 +1100 Subject: [PATCH 407/496] V-USB: implement NKRO (#22398) --- tmk_core/protocol/vusb/vusb.c | 49 ++++++++++++++++++++++++++++++++--- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/tmk_core/protocol/vusb/vusb.c b/tmk_core/protocol/vusb/vusb.c index 1750afc562..d09b2f19b7 100644 --- a/tmk_core/protocol/vusb/vusb.c +++ b/tmk_core/protocol/vusb/vusb.c @@ -230,10 +230,6 @@ static void send_keyboard(report_keyboard_t *report) { keyboard_report_sent = *report; } -static void send_nkro(report_nkro_t *report) { - // TODO: Implement NKRO -} - #ifndef KEYBOARD_SHARED_EP # define MOUSE_IN_EPNUM 3 # define SHARED_IN_EPNUM 3 @@ -242,6 +238,12 @@ static void send_nkro(report_nkro_t *report) { # define SHARED_IN_EPNUM 1 #endif +static void send_nkro(report_nkro_t *report) { +#ifdef NKRO_ENABLE + send_report(3, report, sizeof(report_nkro_t)); +#endif +} + static void send_mouse(report_mouse_t *report) { #ifdef MOUSE_ENABLE send_report(MOUSE_IN_EPNUM, report, sizeof(report_mouse_t)); @@ -433,6 +435,45 @@ const PROGMEM uchar shared_hid_report[] = { # define SHARED_REPORT_STARTED #endif +#ifdef NKRO_ENABLE + // NKRO report descriptor + 0x05, 0x01, // Usage Page (Generic Desktop) + 0x09, 0x06, // Usage (Keyboard) + 0xA1, 0x01, // Collection (Application) + 0x85, REPORT_ID_NKRO, // Report ID + // Modifiers (8 bits) + 0x05, 0x07, // Usage Page (Keyboard/Keypad) + 0x19, 0xE0, // Usage Minimum (Keyboard Left Control) + 0x29, 0xE7, // Usage Maximum (Keyboard Right GUI) + 0x15, 0x00, // Logical Minimum (0) + 0x25, 0x01, // Logical Maximum (1) + 0x95, 0x08, // Report Count (8) + 0x75, 0x01, // Report Size (1) + 0x81, 0x02, // Input (Data, Variable, Absolute) + // Keycodes + 0x05, 0x07, // Usage Page (Keyboard/Keypad) + 0x19, 0x00, // Usage Minimum (0) + 0x29, NKRO_REPORT_BITS * 8 - 1, // Usage Maximum + 0x15, 0x00, // Logical Minimum (0) + 0x25, 0x01, // Logical Maximum (1) + 0x95, NKRO_REPORT_BITS * 8, // Report Count + 0x75, 0x01, // Report Size (1) + 0x81, 0x02, // Input (Data, Variable, Absolute) + + // Status LEDs (5 bits) + 0x05, 0x08, // Usage Page (LED) + 0x19, 0x01, // Usage Minimum (Num Lock) + 0x29, 0x05, // Usage Maximum (Kana) + 0x95, 0x05, // Report Count (5) + 0x75, 0x01, // Report Size (1) + 0x91, 0x02, // Output (Data, Variable, Absolute) + // LED padding (3 bits) + 0x95, 0x01, // Report Count (1) + 0x75, 0x03, // Report Size (3) + 0x91, 0x03, // Output (Constant) + 0xC0, // End Collection +#endif + #ifdef MOUSE_ENABLE // Mouse report descriptor 0x05, 0x01, // Usage Page (Generic Desktop) From 3ef06aa732ce8063e11b2f983592529883f7ecbc Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sun, 26 Nov 2023 03:59:18 -0800 Subject: [PATCH 408/496] Improve and Cleanup Shutdown callbacks (#21060) Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com> --- docs/custom_quantum_functions.md | 59 ++++++++++++++++ docs/feature_oled_driver.md | 18 +---- .../gherkin/keymaps/mjt/keymap.c | 35 +--------- .../charybdis/3x5/keymaps/bstiq/keymap.c | 12 ---- .../charybdis/3x5/keymaps/via/keymap.c | 12 ---- .../charybdis/3x6/keymaps/via/keymap.c | 12 ---- .../charybdis/4x6/keymaps/via/keymap.c | 12 ---- keyboards/bastardkb/charybdis/charybdis.c | 17 +++++ .../dilemma/3x5_2/keymaps/bstiq/keymap.c | 12 ---- .../dilemma/3x5_3/keymaps/bstiq/keymap.c | 3 +- keyboards/bastardkb/dilemma/dilemma.c | 17 +++++ keyboards/bemeier/bmek/bmek.c | 7 +- .../spin/keymaps/spidey3_pad/keymap.c | 4 +- keyboards/dumbpad/v0x/v0x.c | 6 +- .../dumbpad/v0x_dualencoder/v0x_dualencoder.c | 6 +- keyboards/dumbpad/v0x_right/v0x_right.c | 6 +- keyboards/dumbpad/v1x/v1x.c | 6 +- .../dumbpad/v1x_dualencoder/v1x_dualencoder.c | 6 +- keyboards/dumbpad/v1x_right/v1x_right.c | 6 +- keyboards/dumbpad/v3x/v3x.c | 6 +- keyboards/eco/keymaps/that_canadian/keymap.c | 38 ----------- .../hadron/ver2/keymaps/side_numpad/keymap.c | 33 --------- .../atreus50/keymaps/default/keymap.c | 48 ++----------- .../ortho5x13/keymaps/default/keymap.c | 49 ++----------- keyboards/helix/pico/keymaps/default/keymap.c | 30 -------- keyboards/helix/pico/keymaps/mtei/keymap.c | 33 --------- keyboards/helix/rev2/keymaps/default/keymap.c | 30 -------- keyboards/helix/rev2/keymaps/froggy/keymap.c | 30 -------- keyboards/helix/rev2/keymaps/yshrsmz/keymap.c | 30 -------- keyboards/matrix/abelx/abelx.c | 7 +- keyboards/matrix/m20add/m20add.c | 8 +-- keyboards/neopad/rev1/rev1.c | 6 +- keyboards/omkbd/ergodash/rev1/rev1.c | 32 --------- keyboards/planck/keymaps/altgr/common/init.h | 26 ------- keyboards/planck/keymaps/circuit/keymap.c | 38 +---------- keyboards/planck/keymaps/dbroqua/keymap.c | 38 ----------- .../planck/keymaps/dr_notsokind/keymap.c | 42 +----------- keyboards/planck/keymaps/emilyh/keymap.c | 38 ----------- .../planck/keymaps/experimental/keymap.c | 37 ---------- keyboards/planck/keymaps/gunp/keymap.c | 23 ------- .../keymaps/handwired_binaryplease/keymap.c | 37 ---------- keyboards/planck/keymaps/hiea/common/init.h | 26 ------- keyboards/planck/keymaps/hieax/common/init.h | 25 ------- keyboards/planck/keymaps/impossible/keymap.c | 40 ----------- keyboards/planck/keymaps/ishtob/keymap.c | 60 ++++------------ keyboards/planck/keymaps/jhenahan/keymap.c | 38 ----------- keyboards/planck/keymaps/lae3/keymap.c | 46 +------------ keyboards/planck/keymaps/mjt/keymap.c | 38 ----------- keyboards/planck/keymaps/mjtnumsym/keymap.c | 38 ----------- keyboards/planck/keymaps/originerd/keymap.c | 38 ----------- keyboards/planck/keymaps/premek/keymap.c | 38 ----------- .../planck/keymaps/roguepullrequest/keymap.c | 13 ++-- .../planck/keymaps/sdothum/common/init.h | 26 ------- keyboards/planck/keymaps/sgoodwin/keymap.c | 38 ----------- keyboards/planck/keymaps/smt/keymap.c | 38 ----------- .../planck/keymaps/that_canadian/keymap.c | 38 ----------- keyboards/planck/keymaps/vaire/keymap.c | 68 ++++++------------- .../keymaps/zach/zach_common_functions.c | 30 -------- keyboards/preonic/keymaps/0xdec/keymap.c | 27 -------- keyboards/preonic/keymaps/bucktooth/keymap.c | 44 ------------ keyboards/preonic/keymaps/jacwib/keymap.c | 46 ------------- keyboards/preonic/keymaps/nikchi/keymap.c | 44 ------------ keyboards/preonic/keymaps/smt/keymap.c | 44 ------------ .../preonic/keymaps/that_canadian/keymap.c | 44 ------------ .../keymaps/zach/zach_common_functions.c | 28 -------- .../community/numpad_5x6/bjohnson/keymap.c | 3 +- quantum/quantum.c | 21 ++++-- quantum/quantum.h | 4 +- users/brandonschlack/brandonschlack.c | 3 +- users/curry/curry.c | 3 +- users/drashna/callbacks.c | 17 +++-- users/drashna/callbacks.h | 2 +- users/drashna/callbacks.md | 11 ++- users/drashna/template.c | 13 ---- users/jjerrell/jjerrell.c | 20 +++--- users/jjerrell/jjerrell.h | 12 ++-- users/kuchosauronad0/kuchosauronad0.c | 15 ++-- users/kuchosauronad0/kuchosauronad0.h | 2 +- users/spidey3/init.c | 5 +- 79 files changed, 277 insertions(+), 1684 deletions(-) delete mode 100644 keyboards/omkbd/ergodash/rev1/rev1.c diff --git a/docs/custom_quantum_functions.md b/docs/custom_quantum_functions.md index 5d63f3cfb7..7a7b6ee823 100644 --- a/docs/custom_quantum_functions.md +++ b/docs/custom_quantum_functions.md @@ -283,6 +283,65 @@ void suspend_wakeup_init_user(void) { * Keyboard/Revision: `void suspend_power_down_kb(void)` and `void suspend_wakeup_init_user(void)` * Keymap: `void suspend_power_down_kb(void)` and `void suspend_wakeup_init_user(void)` + +# Keyboard Shutdown/Reboot Code + +This function gets called whenever the firmware is reset, whether it's a soft reset or reset to the bootloader. This is the spot to use for any sort of cleanup, as this happens right before the actual reset. And it can be useful for turning off different systems (such as RGB, onboard screens, etc). + +Additionally, it differentiates between the soft reset (eg, rebooting back into the firmware) or jumping to the bootloader. + +Certain tasks are performed during shutdown too. The keyboard is cleared, music and midi is stopped (if enabled), the shutdown chime is triggered (if audio is enabled), and haptic is stopped. + +If `jump_to_bootloader` is set to `true`, this indicates that the board will be entering the bootloader for a new firmware flash, whereas `false` indicates that this is happening for a soft reset and will load the firmware agaim immediately (such as when using `QK_REBOOT` or `QK_CLEAR_EEPROM`). + +As there is a keyboard and user level function, returning `false` for the user function will disable the keyboard level function, allowing for customization. + +?> Bootmagic does not trigger `shutdown_*()` as it happens before most of the initialization process. + +### Example `shutdown_kb()` Implementation + +```c +bool shutdown_kb(bool jump_to_bootloader) { + if (!shutdown_user(jump_to_bootloader)) { + return false; + } + + if (jump_to_bootloader) { + // red for bootloader + rgb_matrix_set_color_all(RGB_OFF); + } else { + // off for soft reset + rgb_matrix_set_color_all(RGB_GREEN); + } + // force flushing -- otherwise will never happen + rgb_matrix_update_pwm_buffers(); + return true; +} +``` + +### Example `shutdown_user()` Implementation + +```c +bool shutdown_user(bool jump_to_bootloader) { + if (jump_to_bootloader) { + // red for bootloader + rgb_matrix_set_color_all(RGB_RED); + } else { + // off for soft reset + rgb_matrix_set_color_all(RGB_OFF); + } + // force flushing -- otherwise will never happen + rgb_matrix_update_pwm_buffers(); + // false to not process kb level + return false; +} +``` + +### Keyboard shutdown/reboot Function Documentation + +* Keyboard/Revision: `bool shutdown_kb(bool jump_to_bootloader)` +* Keymap: `bool shutdown_user(bool jump_to_bootloader)` + # Deferred Execution :id=deferred-execution QMK has the ability to execute a callback after a specified period of time, rather than having to manually manage timers. To enable this functionality, set `DEFERRED_EXEC_ENABLE = yes` in rules.mk. diff --git a/docs/feature_oled_driver.md b/docs/feature_oled_driver.md index 452f729e14..a8bcdf2db9 100644 --- a/docs/feature_oled_driver.md +++ b/docs/feature_oled_driver.md @@ -183,22 +183,8 @@ void oled_render_boot(bool bootloader) { oled_render_dirty(true); } -bool reboot = false; - -bool uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { - - // Display a special message prior to rebooting... - if (keycode == QK_BOOT) { - reboot = true; - } - } - - return true; -} - -void shutdown_user(void) { - oled_render_boot(reboot); +bool shutdown_user(bool jump_to_bootloader) { + oled_render_boot(jump_to_bootloader); } ``` diff --git a/keyboards/40percentclub/gherkin/keymaps/mjt/keymap.c b/keyboards/40percentclub/gherkin/keymaps/mjt/keymap.c index 090fd1d296..3a5cef8fad 100644 --- a/keyboards/40percentclub/gherkin/keymaps/mjt/keymap.c +++ b/keyboards/40percentclub/gherkin/keymaps/mjt/keymap.c @@ -66,15 +66,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef AUDIO_ENABLE -float tone_startup[][2] = SONG(STARTUP_SOUND); float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_plover[][2] = SONG(PLOVER_SOUND); float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); #endif void persistant_default_layer_set(uint16_t default_layer) { @@ -166,39 +163,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif +void matrix_scan_user(void) { } -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif - //Tap Dance Definitions tap_dance_action_t tap_dance_actions[] = { //Tap once for Esc, twice for Caps Lock diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/keymap.c b/keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/keymap.c index 8f02227c01..21e823575e 100644 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/keymap.c +++ b/keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/keymap.c @@ -210,15 +210,3 @@ layer_state_t layer_state_set_kb(layer_state_t state) { // Forward-declare this helper function since it is defined in rgb_matrix.c. void rgb_matrix_update_pwm_buffers(void); #endif - -void shutdown_user(void) { -#ifdef RGBLIGHT_ENABLE - rgblight_enable_noeeprom(); - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); - rgblight_setrgb(RGB_RED); -#endif // RGBLIGHT_ENABLE -#ifdef RGB_MATRIX_ENABLE - rgb_matrix_set_color_all(RGB_RED); - rgb_matrix_update_pwm_buffers(); -#endif // RGB_MATRIX_ENABLE -} diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/via/keymap.c b/keyboards/bastardkb/charybdis/3x5/keymaps/via/keymap.c index 4a91548090..5299444ad3 100644 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/via/keymap.c +++ b/keyboards/bastardkb/charybdis/3x5/keymaps/via/keymap.c @@ -255,15 +255,3 @@ layer_state_t layer_state_set_user(layer_state_t state) { // rgb_matrix.c. void rgb_matrix_update_pwm_buffers(void); #endif - -void shutdown_user(void) { -#ifdef RGBLIGHT_ENABLE - rgblight_enable_noeeprom(); - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); - rgblight_setrgb(RGB_RED); -#endif // RGBLIGHT_ENABLE -#ifdef RGB_MATRIX_ENABLE - rgb_matrix_set_color_all(RGB_RED); - rgb_matrix_update_pwm_buffers(); -#endif // RGB_MATRIX_ENABLE -} diff --git a/keyboards/bastardkb/charybdis/3x6/keymaps/via/keymap.c b/keyboards/bastardkb/charybdis/3x6/keymaps/via/keymap.c index fd56cce25d..d78ce8b7ff 100644 --- a/keyboards/bastardkb/charybdis/3x6/keymaps/via/keymap.c +++ b/keyboards/bastardkb/charybdis/3x6/keymaps/via/keymap.c @@ -134,15 +134,3 @@ layer_state_t layer_state_set_user(layer_state_t state) { // Forward-declare this helper function since it is defined in rgb_matrix.c. void rgb_matrix_update_pwm_buffers(void); #endif - -void shutdown_user(void) { -#ifdef RGBLIGHT_ENABLE - rgblight_enable_noeeprom(); - rgblight_mode_noeeprom(1); - rgblight_setrgb(RGB_RED); -#endif // RGBLIGHT_ENABLE -#ifdef RGB_MATRIX_ENABLE - rgb_matrix_set_color_all(RGB_RED); - rgb_matrix_update_pwm_buffers(); -#endif // RGB_MATRIX_ENABLE -} diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/via/keymap.c b/keyboards/bastardkb/charybdis/4x6/keymaps/via/keymap.c index fb795829fd..a0657b02ec 100644 --- a/keyboards/bastardkb/charybdis/4x6/keymaps/via/keymap.c +++ b/keyboards/bastardkb/charybdis/4x6/keymaps/via/keymap.c @@ -157,15 +157,3 @@ layer_state_t layer_state_set_user(layer_state_t state) { // Forward-declare this helper function since it is defined in rgb_matrix.c. void rgb_matrix_update_pwm_buffers(void); #endif - -void shutdown_user(void) { -#ifdef RGBLIGHT_ENABLE - rgblight_enable_noeeprom(); - rgblight_mode_noeeprom(1); - rgblight_setrgb(RGB_RED); -#endif // RGBLIGHT_ENABLE -#ifdef RGB_MATRIX_ENABLE - rgb_matrix_set_color_all(RGB_RED); - rgb_matrix_update_pwm_buffers(); -#endif // RGB_MATRIX_ENABLE -} diff --git a/keyboards/bastardkb/charybdis/charybdis.c b/keyboards/bastardkb/charybdis/charybdis.c index c321af7aa9..c9f0e63172 100644 --- a/keyboards/bastardkb/charybdis/charybdis.c +++ b/keyboards/bastardkb/charybdis/charybdis.c @@ -382,3 +382,20 @@ void matrix_scan_kb(void) { matrix_scan_user(); } #endif // KEYBOARD_bastardkb_charybdis_3x5_blackpill || KEYBOARD_bastardkb_charybdis_4x6_blackpill + +bool shutdown_kb(bool jump_to_bootloader) { + if (!shutdown_user(jump_to_bootloader)) { + return false; + } +#ifdef RGBLIGHT_ENABLE + rgblight_enable_noeeprom(); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + rgblight_setrgb(RGB_RED); +#endif // RGBLIGHT_ENABLE +#ifdef RGB_MATRIX_ENABLE + void rgb_matrix_update_pwm_buffers(void); + rgb_matrix_set_color_all(RGB_RED); + rgb_matrix_update_pwm_buffers(); +#endif // RGB_MATRIX_ENABLE + return true; +} diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/bstiq/keymap.c b/keyboards/bastardkb/dilemma/3x5_2/keymaps/bstiq/keymap.c index e8c0441d7b..5f22184928 100644 --- a/keyboards/bastardkb/dilemma/3x5_2/keymaps/bstiq/keymap.c +++ b/keyboards/bastardkb/dilemma/3x5_2/keymaps/bstiq/keymap.c @@ -210,15 +210,3 @@ layer_state_t layer_state_set_kb(layer_state_t state) { // Forward-declare this helper function since it is defined in rgb_matrix.c. void rgb_matrix_update_pwm_buffers(void); #endif - -void shutdown_user(void) { -#ifdef RGBLIGHT_ENABLE - rgblight_enable_noeeprom(); - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); - rgblight_setrgb(RGB_RED); -#endif // RGBLIGHT_ENABLE -#ifdef RGB_MATRIX_ENABLE - rgb_matrix_set_color_all(RGB_RED); - rgb_matrix_update_pwm_buffers(); -#endif // RGB_MATRIX_ENABLE -} diff --git a/keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/keymap.c b/keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/keymap.c index 2c262521bc..b55d99b56b 100644 --- a/keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/keymap.c +++ b/keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/keymap.c @@ -210,7 +210,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { void rgb_matrix_update_pwm_buffers(void); #endif -void shutdown_user(void) { +bool shutdown_user(bool jump_to_bootloader) { #ifdef RGBLIGHT_ENABLE rgblight_enable_noeeprom(); rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); @@ -220,4 +220,5 @@ void shutdown_user(void) { rgb_matrix_set_color_all(RGB_RED); rgb_matrix_update_pwm_buffers(); #endif // RGB_MATRIX_ENABLE + return true; } diff --git a/keyboards/bastardkb/dilemma/dilemma.c b/keyboards/bastardkb/dilemma/dilemma.c index 5452f9e7f6..7c87fdcadd 100644 --- a/keyboards/bastardkb/dilemma/dilemma.c +++ b/keyboards/bastardkb/dilemma/dilemma.c @@ -343,3 +343,20 @@ void keyboard_pre_init_kb(void) { keyboard_pre_init_user(); } + +bool shutdown_kb(bool jump_to_bootloader) { + if (!shutdown_user(jump_to_bootloader)) { + return false; + } +#ifdef RGBLIGHT_ENABLE + rgblight_enable_noeeprom(); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + rgblight_setrgb(RGB_RED); +#endif // RGBLIGHT_ENABLE +#ifdef RGB_MATRIX_ENABLE + void rgb_matrix_update_pwm_buffers(void); + rgb_matrix_set_color_all(RGB_RED); + rgb_matrix_update_pwm_buffers(); +#endif // RGB_MATRIX_ENABLE + return true; +} diff --git a/keyboards/bemeier/bmek/bmek.c b/keyboards/bemeier/bmek/bmek.c index eaae446d63..dd0372aaee 100755 --- a/keyboards/bemeier/bmek/bmek.c +++ b/keyboards/bemeier/bmek/bmek.c @@ -15,9 +15,12 @@ */ #include "quantum.h" -__attribute__((weak)) -void shutdown_user(void) { +bool shutdown_kb(bool jump_to_bootloader) { + if (!shutdown_user(jump_to_bootloader)) { + return false; + } #ifdef RGBLIGHT_ENABLE rgblight_setrgb(255, 0, 0); #endif + return true; } diff --git a/keyboards/dmqdesign/spin/keymaps/spidey3_pad/keymap.c b/keyboards/dmqdesign/spin/keymaps/spidey3_pad/keymap.c index dd452dae1a..4acb0ee59b 100644 --- a/keyboards/dmqdesign/spin/keymaps/spidey3_pad/keymap.c +++ b/keyboards/dmqdesign/spin/keymaps/spidey3_pad/keymap.c @@ -147,11 +147,12 @@ void keyboard_post_init_user(void) { do_rgb_layers(layer_state, LAYER_BASE, LAYER_BASE_END); } -void shutdown_user(void) { +bool shutdown_user(bool jump_to_bootloader) { clear_rgb_layers(); rgblight_enable(); rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); rgblight_sethsv_noeeprom(HSV_RED); + return false; } void spidey_glow(void) { @@ -218,4 +219,3 @@ void post_process_record_user(uint16_t keycode, keyrecord_t *record) { break; } } - diff --git a/keyboards/dumbpad/v0x/v0x.c b/keyboards/dumbpad/v0x/v0x.c index 6c89edaa11..d7e3841d76 100644 --- a/keyboards/dumbpad/v0x/v0x.c +++ b/keyboards/dumbpad/v0x/v0x.c @@ -22,10 +22,14 @@ void keyboard_pre_init_kb(void) { keyboard_pre_init_user(); } -void shutdown_user(void) { +bool shutdown_kb(bool jump_to_bootloader) { + if (!shutdown_user(jump_to_bootloader)) { + return false; + } // Shutdown LEDs writePinLow(LED_00); writePinLow(LED_01); + return true; } layer_state_t layer_state_set_kb(layer_state_t state) { diff --git a/keyboards/dumbpad/v0x_dualencoder/v0x_dualencoder.c b/keyboards/dumbpad/v0x_dualencoder/v0x_dualencoder.c index 6c89edaa11..d7e3841d76 100644 --- a/keyboards/dumbpad/v0x_dualencoder/v0x_dualencoder.c +++ b/keyboards/dumbpad/v0x_dualencoder/v0x_dualencoder.c @@ -22,10 +22,14 @@ void keyboard_pre_init_kb(void) { keyboard_pre_init_user(); } -void shutdown_user(void) { +bool shutdown_kb(bool jump_to_bootloader) { + if (!shutdown_user(jump_to_bootloader)) { + return false; + } // Shutdown LEDs writePinLow(LED_00); writePinLow(LED_01); + return true; } layer_state_t layer_state_set_kb(layer_state_t state) { diff --git a/keyboards/dumbpad/v0x_right/v0x_right.c b/keyboards/dumbpad/v0x_right/v0x_right.c index 6c89edaa11..d7e3841d76 100644 --- a/keyboards/dumbpad/v0x_right/v0x_right.c +++ b/keyboards/dumbpad/v0x_right/v0x_right.c @@ -22,10 +22,14 @@ void keyboard_pre_init_kb(void) { keyboard_pre_init_user(); } -void shutdown_user(void) { +bool shutdown_kb(bool jump_to_bootloader) { + if (!shutdown_user(jump_to_bootloader)) { + return false; + } // Shutdown LEDs writePinLow(LED_00); writePinLow(LED_01); + return true; } layer_state_t layer_state_set_kb(layer_state_t state) { diff --git a/keyboards/dumbpad/v1x/v1x.c b/keyboards/dumbpad/v1x/v1x.c index f1b1d66c7f..1022ad0605 100644 --- a/keyboards/dumbpad/v1x/v1x.c +++ b/keyboards/dumbpad/v1x/v1x.c @@ -23,11 +23,15 @@ void keyboard_pre_init_kb(void) { keyboard_pre_init_user(); } -void shutdown_user(void) { +bool shutdown_kb(bool jump_to_bootloader) { + if (!shutdown_user(jump_to_bootloader)) { + return false; + } // Shutdown LEDs writePinLow(LED_00); writePinLow(LED_01); writePinLow(LED_02); + return true; } layer_state_t layer_state_set_kb(layer_state_t state) { diff --git a/keyboards/dumbpad/v1x_dualencoder/v1x_dualencoder.c b/keyboards/dumbpad/v1x_dualencoder/v1x_dualencoder.c index f1b1d66c7f..1022ad0605 100644 --- a/keyboards/dumbpad/v1x_dualencoder/v1x_dualencoder.c +++ b/keyboards/dumbpad/v1x_dualencoder/v1x_dualencoder.c @@ -23,11 +23,15 @@ void keyboard_pre_init_kb(void) { keyboard_pre_init_user(); } -void shutdown_user(void) { +bool shutdown_kb(bool jump_to_bootloader) { + if (!shutdown_user(jump_to_bootloader)) { + return false; + } // Shutdown LEDs writePinLow(LED_00); writePinLow(LED_01); writePinLow(LED_02); + return true; } layer_state_t layer_state_set_kb(layer_state_t state) { diff --git a/keyboards/dumbpad/v1x_right/v1x_right.c b/keyboards/dumbpad/v1x_right/v1x_right.c index f1b1d66c7f..1022ad0605 100644 --- a/keyboards/dumbpad/v1x_right/v1x_right.c +++ b/keyboards/dumbpad/v1x_right/v1x_right.c @@ -23,11 +23,15 @@ void keyboard_pre_init_kb(void) { keyboard_pre_init_user(); } -void shutdown_user(void) { +bool shutdown_kb(bool jump_to_bootloader) { + if (!shutdown_user(jump_to_bootloader)) { + return false; + } // Shutdown LEDs writePinLow(LED_00); writePinLow(LED_01); writePinLow(LED_02); + return true; } layer_state_t layer_state_set_kb(layer_state_t state) { diff --git a/keyboards/dumbpad/v3x/v3x.c b/keyboards/dumbpad/v3x/v3x.c index d0acca1947..89f13684f2 100644 --- a/keyboards/dumbpad/v3x/v3x.c +++ b/keyboards/dumbpad/v3x/v3x.c @@ -54,11 +54,15 @@ void keyboard_pre_init_kb(void) { keyboard_pre_init_user(); } -void shutdown_user(void) { +bool shutdown_kb(bool jump_to_bootloader) { + if (!shutdown_user(jump_to_bootloader)) { + return false; + } // Shutdown LEDs writePinLow(LED_00); writePinLow(LED_01); writePinLow(LED_02); + return true; } layer_state_t layer_state_set_kb(layer_state_t state) { diff --git a/keyboards/eco/keymaps/that_canadian/keymap.c b/keyboards/eco/keymaps/that_canadian/keymap.c index 0c8b53385d..edd88b184e 100644 --- a/keyboards/eco/keymaps/that_canadian/keymap.c +++ b/keyboards/eco/keymaps/that_canadian/keymap.c @@ -124,14 +124,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef AUDIO_ENABLE - -float tone_startup[][2] = SONG(STARTUP_SOUND); float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); - -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); #endif @@ -174,36 +169,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/hadron/ver2/keymaps/side_numpad/keymap.c b/keyboards/hadron/ver2/keymaps/side_numpad/keymap.c index f352b1c851..9cc621df2f 100644 --- a/keyboards/hadron/ver2/keymaps/side_numpad/keymap.c +++ b/keyboards/hadron/ver2/keymaps/side_numpad/keymap.c @@ -316,36 +316,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void matrix_init_user(void) { -#ifdef AUDIO_ENABLE - startup_user(); -#endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{cc - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/handwired/atreus50/keymaps/default/keymap.c b/keyboards/handwired/atreus50/keymaps/default/keymap.c index cbcc5fc6f8..c9de095cf8 100644 --- a/keyboards/handwired/atreus50/keymaps/default/keymap.c +++ b/keyboards/handwired/atreus50/keymaps/default/keymap.c @@ -94,20 +94,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef AUDIO_ENABLE -float tone_startup[][2] = { - {NOTE_B5, 20}, - {NOTE_B6, 8}, - {NOTE_DS6, 20}, - {NOTE_B6, 8} -}; +// float tone_startup[][2] = { +// {NOTE_B5, 20}, +// {NOTE_B6, 8}, +// {NOTE_DS6, 20}, +// {NOTE_B6, 8} +// }; float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); - -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); #endif void persistent_default_layer_set(uint16_t default_layer) { @@ -178,36 +175,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; }; - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/handwired/ortho5x13/keymaps/default/keymap.c b/keyboards/handwired/ortho5x13/keymaps/default/keymap.c index ef975a215d..d725397199 100644 --- a/keyboards/handwired/ortho5x13/keymaps/default/keymap.c +++ b/keyboards/handwired/ortho5x13/keymaps/default/keymap.c @@ -163,20 +163,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef AUDIO_ENABLE -float tone_startup[][2] = { - {NOTE_B5, 20}, - {NOTE_B6, 8}, - {NOTE_DS6, 20}, - {NOTE_B6, 8} -}; +// float tone_startup[][2] = { +// {NOTE_B5, 20}, +// {NOTE_B6, 8}, +// {NOTE_DS6, 20}, +// {NOTE_B6, 8} +// }; float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); - -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); - -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); #endif void persistent_default_layer_set(uint16_t default_layer) { @@ -247,36 +243,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; }; - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/helix/pico/keymaps/default/keymap.c b/keyboards/helix/pico/keymaps/default/keymap.c index 101a54bda6..3ee620360d 100644 --- a/keyboards/helix/pico/keymaps/default/keymap.c +++ b/keyboards/helix/pico/keymaps/default/keymap.c @@ -173,7 +173,6 @@ float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_plover[][2] = SONG(PLOVER_SOUND); float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); #endif // define variables for reactive RGB @@ -329,36 +328,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif #ifdef RGBLIGHT_ENABLE RGB_current_mode = rgblight_config.mode; #endif } - - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(50); // gets rid of tick -} - -void shutdown_user(void) -{ - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/helix/pico/keymaps/mtei/keymap.c b/keyboards/helix/pico/keymaps/mtei/keymap.c index 6a5f7d295a..9bf479df6f 100644 --- a/keyboards/helix/pico/keymaps/mtei/keymap.c +++ b/keyboards/helix/pico/keymaps/mtei/keymap.c @@ -237,7 +237,6 @@ float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_plover[][2] = SONG(PLOVER_SOUND); float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); #endif static int current_default_layer; @@ -334,35 +333,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(50); // gets rid of tick -} - -void shutdown_user(void) -{ - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/helix/rev2/keymaps/default/keymap.c b/keyboards/helix/rev2/keymaps/default/keymap.c index b777d35d45..f23ff07b4f 100644 --- a/keyboards/helix/rev2/keymaps/default/keymap.c +++ b/keyboards/helix/rev2/keymaps/default/keymap.c @@ -185,7 +185,6 @@ float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_plover[][2] = SONG(PLOVER_SOUND); float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); #endif // define variables for reactive RGB @@ -341,36 +340,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif #ifdef RGBLIGHT_ENABLE RGB_current_mode = rgblight_get_mode(); #endif } - - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick -} - -void shutdown_user(void) -{ - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/helix/rev2/keymaps/froggy/keymap.c b/keyboards/helix/rev2/keymaps/froggy/keymap.c index dc047d3118..1680147157 100644 --- a/keyboards/helix/rev2/keymaps/froggy/keymap.c +++ b/keyboards/helix/rev2/keymaps/froggy/keymap.c @@ -181,7 +181,6 @@ float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_plover[][2] = SONG(PLOVER_SOUND); float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); #endif // define variables for reactive RGB @@ -440,41 +439,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { //keyboard start-up code. Runs once when the firmware starts up. void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif #ifdef RGBLIGHT_ENABLE RGB_current_mode = rgblight_get_mode(); #endif } -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick -} - -void shutdown_user(void) -{ - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif - - //assign the right code to your layers for OLED display #define L_BASE 0 #define L_OPT 2 diff --git a/keyboards/helix/rev2/keymaps/yshrsmz/keymap.c b/keyboards/helix/rev2/keymaps/yshrsmz/keymap.c index 20fa181d77..6c060aadec 100644 --- a/keyboards/helix/rev2/keymaps/yshrsmz/keymap.c +++ b/keyboards/helix/rev2/keymaps/yshrsmz/keymap.c @@ -171,7 +171,6 @@ float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_plover[][2] = SONG(PLOVER_SOUND); float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); #endif // define variables for reactive RGB @@ -322,40 +321,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif #ifdef RGBLIGHT_ENABLE RGB_current_mode = rgblight_get_mode(); #endif } - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick -} - -void shutdown_user(void) -{ - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif - #ifdef OLED_ENABLE oled_rotation_t oled_init_user(oled_rotation_t rotation) { if (is_keyboard_master()) { diff --git a/keyboards/matrix/abelx/abelx.c b/keyboards/matrix/abelx/abelx.c index ea3e57aeaf..a05934238a 100644 --- a/keyboards/matrix/abelx/abelx.c +++ b/keyboards/matrix/abelx/abelx.c @@ -92,13 +92,8 @@ bool led_update_kb(led_t led_state) { } #define REBOOT_MAGIC 0x41544B42 -void shutdown_user(void) -{ - // set the magic number for resetting to the bootloader - *(uint32_t *)(&(RTCD1.rtc->BKP0R)) = REBOOT_MAGIC; -} void bootloader_jump(void) { - shutdown_user(); + *(uint32_t *)(&(RTCD1.rtc->BKP0R)) = REBOOT_MAGIC; NVIC_SystemReset(); } diff --git a/keyboards/matrix/m20add/m20add.c b/keyboards/matrix/m20add/m20add.c index cdcafb9779..ac483e8aab 100644 --- a/keyboards/matrix/m20add/m20add.c +++ b/keyboards/matrix/m20add/m20add.c @@ -54,13 +54,9 @@ bool led_update_kb(led_t led_state) { } #define REBOOT_MAGIC 0x41544B42 -void shutdown_user(void) -{ - // set the magic number for resetting to the bootloader - *(uint32_t *)(&(RTCD1.rtc->BKP0R)) = REBOOT_MAGIC; -} void bootloader_jump(void) { - shutdown_user(); + // set the magic number for resetting to the bootloader + *(uint32_t *)(&(RTCD1.rtc->BKP0R)) = REBOOT_MAGIC; NVIC_SystemReset(); } diff --git a/keyboards/neopad/rev1/rev1.c b/keyboards/neopad/rev1/rev1.c index 86e47c8932..c8216f4e70 100755 --- a/keyboards/neopad/rev1/rev1.c +++ b/keyboards/neopad/rev1/rev1.c @@ -22,10 +22,14 @@ void keyboard_pre_init_kb(void) { keyboard_pre_init_user(); } -void shutdown_user(void) { +bool shutdown_kb(bool jump_to_bootloader) { + if (!shutdown_user(jump_to_bootloader)) { + return false; + } // Shutdown LEDs writePinLow(LED_00); writePinLow(LED_01); + return true; } layer_state_t layer_state_set_kb(layer_state_t state) { diff --git a/keyboards/omkbd/ergodash/rev1/rev1.c b/keyboards/omkbd/ergodash/rev1/rev1.c deleted file mode 100644 index 35a313f6fd..0000000000 --- a/keyboards/omkbd/ergodash/rev1/rev1.c +++ /dev/null @@ -1,32 +0,0 @@ -#include "quantum.h" - -#ifdef AUDIO_ENABLE - float tone_startup[][2] = SONG(STARTUP_SOUND); - float tone_goodbye[][2] = SONG(GOODBYE_SOUND); -#endif - -void matrix_init_kb(void) { - - #ifdef AUDIO_ENABLE - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); - #endif - - // // green led on - // DDRD |= (1<<5); - // PORTD &= ~(1<<5); - - // // orange led on - // DDRB |= (1<<0); - // PORTB &= ~(1<<0); - - matrix_init_user(); -}; - -void shutdown_user(void) { - #ifdef AUDIO_ENABLE - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); - #endif -} diff --git a/keyboards/planck/keymaps/altgr/common/init.h b/keyboards/planck/keymaps/altgr/common/init.h index 6d0b4392fb..e6bb7101e9 100644 --- a/keyboards/planck/keymaps/altgr/common/init.h +++ b/keyboards/planck/keymaps/altgr/common/init.h @@ -6,9 +6,6 @@ void matrix_init_user(void) #ifdef STENO_ENABLE steno_set_mode(STENO_MODE_BOLT); // or STENO_MODE_GEMINI #endif -#ifdef AUDIO_ENABLE - startup_user(); -#endif } #ifdef AUDIO_ENABLE @@ -31,27 +28,4 @@ bool led_update_user(led_t led_state) return false; } #endif - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(song_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(song_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} #endif diff --git a/keyboards/planck/keymaps/circuit/keymap.c b/keyboards/planck/keymaps/circuit/keymap.c index d150905dc8..b7d2b121b9 100644 --- a/keyboards/planck/keymaps/circuit/keymap.c +++ b/keyboards/planck/keymaps/circuit/keymap.c @@ -131,7 +131,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL , _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS, KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGUP, KC_ENT , - _______, _______, _______, KC_MUTE, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END + _______, _______, _______, KC_MUTE, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END ), /* FUNCTIONS @@ -155,11 +155,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef AUDIO_ENABLE -float tone_startup[][2] = SONG(STARTUP_SOUND); float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_dvorak[][2] = SONG(DVORAK_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); #endif @@ -210,36 +207,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void matrix_init_user(void) { -#ifdef AUDIO_ENABLE - startup_user(); -#endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/planck/keymaps/dbroqua/keymap.c b/keyboards/planck/keymaps/dbroqua/keymap.c index 95d0b85408..f7d1575dad 100644 --- a/keyboards/planck/keymaps/dbroqua/keymap.c +++ b/keyboards/planck/keymaps/dbroqua/keymap.c @@ -120,16 +120,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef AUDIO_ENABLE - -float tone_startup[][2] = SONG(STARTUP_SOUND); float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_plover[][2] = SONG(PLOVER_SOUND); float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); - -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); #endif @@ -183,36 +178,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/planck/keymaps/dr_notsokind/keymap.c b/keyboards/planck/keymaps/dr_notsokind/keymap.c index ffceef11cc..f4fb3e0074 100644 --- a/keyboards/planck/keymaps/dr_notsokind/keymap.c +++ b/keyboards/planck/keymaps/dr_notsokind/keymap.c @@ -127,7 +127,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV , KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_DEL , KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_LSFT, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, _______, KC_NUHS, KC_NUBS, XXXXXXX, KC_PGUP, KC_ENT, - _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END ), /* LOWER @@ -145,7 +145,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL , KC_DEL , KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LSFT, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, S(KC_NUHS), S(KC_NUBS), XXXXXXX, KC_PGUP, KC_ENT , - _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END ), /* MEDIA AND COMMANDS @@ -163,7 +163,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { XXXXXXX, XXXXXXX, KC_WHOM, XXXXXXX, XXXXXXX, XXXXXXX, KC_AGAIN, XXXXXXX, KC_INS, XXXXXXX, KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, KC_WSCH, XXXXXXX, KC_FIND, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DM_PLY1, DM_PLY2, KC_LSFT, XXXXXXX, XXXXXXX, KC_CALC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, ZOOM_OUT, ZOOM_IN, KC_MPRV, DM_RSTP, - ONESHOT, XXXXXXX, XXXXXXX, _______, KC_VOLD, KC_MUTE, KC_MUTE, KC_VOLU, ZOOM_NML, KC_MSTP, KC_MNXT, KC_MPLY + ONESHOT, XXXXXXX, XXXXXXX, _______, KC_VOLD, KC_MUTE, KC_MUTE, KC_VOLU, ZOOM_NML, KC_MSTP, KC_MNXT, KC_MPLY ), /* ONESHOT @@ -205,14 +205,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef AUDIO_ENABLE -float tone_startup[][2] = SONG(STARTUP_SOUND); float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_numpad[][2] = SONG(NUM_LOCK_ON_SOUND); float tone_oneshot[][2] = SONG(TERMINAL_SOUND); float tone_dyn_macro_rec[][2] = SONG(SONIC_RING); float tone_dyn_macro_stop[][2] = SONG(COIN_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); #endif void press_key(uint16_t key) { @@ -303,36 +300,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void matrix_init_user(void) { -#ifdef AUDIO_ENABLE - startup_user(); -#endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/planck/keymaps/emilyh/keymap.c b/keyboards/planck/keymaps/emilyh/keymap.c index 17bbc98b7e..b226c1f6e7 100644 --- a/keyboards/planck/keymaps/emilyh/keymap.c +++ b/keyboards/planck/keymaps/emilyh/keymap.c @@ -164,16 +164,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef AUDIO_ENABLE - -float tone_startup[][2] = SONG(STARTUP_SOUND); float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_plover[][2] = SONG(PLOVER_SOUND); float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); - -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); #endif @@ -273,36 +268,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/planck/keymaps/experimental/keymap.c b/keyboards/planck/keymaps/experimental/keymap.c index 6d6752952b..deaf5afb4d 100644 --- a/keyboards/planck/keymaps/experimental/keymap.c +++ b/keyboards/planck/keymaps/experimental/keymap.c @@ -176,16 +176,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef AUDIO_ENABLE - -float tone_startup[][2] = SONG(STARTUP_SOUND); float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_plover[][2] = SONG(PLOVER_SOUND); float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); - -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); #endif @@ -339,38 +334,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; }; -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - -#ifdef AUDIO_ENABLE -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif - void leader_end_user(void) { if (leader_sequence_one_key(KC_R)) { tap_random_base64(); diff --git a/keyboards/planck/keymaps/gunp/keymap.c b/keyboards/planck/keymaps/gunp/keymap.c index 7c2f6c0bd5..9fa05d593a 100644 --- a/keyboards/planck/keymaps/gunp/keymap.c +++ b/keyboards/planck/keymaps/gunp/keymap.c @@ -282,26 +282,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return false; } #endif - -#ifdef AUDIO_ENABLE - float tone_startup[][2] = SONG(STARTUP_SOUND); - float tone_goodbye[][2] = SONG(GOODBYE_SOUND); - - float tone_ly_normal[][2] = SONG(QWERTY_SOUND); - float tone_ly_spacial[][2] = SONG(DVORAK_SOUND); - - float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); -#endif - -void startup_user(void) { -#ifdef AUDIO_ENABLE - PLAY_SONG(tone_startup); -#endif -} - -void shutdown_user(void) { -#ifdef AUDIO_ENABLE - PLAY_SONG(tone_goodbye); - stop_all_notes(); -#endif -} diff --git a/keyboards/planck/keymaps/handwired_binaryplease/keymap.c b/keyboards/planck/keymaps/handwired_binaryplease/keymap.c index 13917e516d..93e6f9b78e 100644 --- a/keyboards/planck/keymaps/handwired_binaryplease/keymap.c +++ b/keyboards/planck/keymaps/handwired_binaryplease/keymap.c @@ -163,15 +163,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef AUDIO_ENABLE -float tone_startup[][2] = SONG(STARTUP_SOUND); float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_plover[][2] = SONG(PLOVER_SOUND); float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); - -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); #endif @@ -271,36 +267,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/planck/keymaps/hiea/common/init.h b/keyboards/planck/keymaps/hiea/common/init.h index 6d0b4392fb..e6bb7101e9 100644 --- a/keyboards/planck/keymaps/hiea/common/init.h +++ b/keyboards/planck/keymaps/hiea/common/init.h @@ -6,9 +6,6 @@ void matrix_init_user(void) #ifdef STENO_ENABLE steno_set_mode(STENO_MODE_BOLT); // or STENO_MODE_GEMINI #endif -#ifdef AUDIO_ENABLE - startup_user(); -#endif } #ifdef AUDIO_ENABLE @@ -31,27 +28,4 @@ bool led_update_user(led_t led_state) return false; } #endif - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(song_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(song_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} #endif diff --git a/keyboards/planck/keymaps/hieax/common/init.h b/keyboards/planck/keymaps/hieax/common/init.h index 6d0b4392fb..d009bd69a1 100644 --- a/keyboards/planck/keymaps/hieax/common/init.h +++ b/keyboards/planck/keymaps/hieax/common/init.h @@ -6,9 +6,6 @@ void matrix_init_user(void) #ifdef STENO_ENABLE steno_set_mode(STENO_MODE_BOLT); // or STENO_MODE_GEMINI #endif -#ifdef AUDIO_ENABLE - startup_user(); -#endif } #ifdef AUDIO_ENABLE @@ -32,26 +29,4 @@ bool led_update_user(led_t led_state) } #endif -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(song_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(song_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} #endif diff --git a/keyboards/planck/keymaps/impossible/keymap.c b/keyboards/planck/keymaps/impossible/keymap.c index 9145ad79aa..8aa3eb149f 100644 --- a/keyboards/planck/keymaps/impossible/keymap.c +++ b/keyboards/planck/keymaps/impossible/keymap.c @@ -140,16 +140,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef AUDIO_ENABLE - -float tone_startup[][2] = SONG(STARTUP_SOUND); -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); - float tone_workman[][2] = SONG(QWERTY_SOUND); float tone_qwerty[][2] = SONG(COLEMAK_SOUND); float tone_plover[][2] = SONG(PLOVER_SOUND); - -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); - #endif @@ -196,36 +189,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/planck/keymaps/ishtob/keymap.c b/keyboards/planck/keymaps/ishtob/keymap.c index 75c581de19..5ec3115830 100644 --- a/keyboards/planck/keymaps/ishtob/keymap.c +++ b/keyboards/planck/keymaps/ishtob/keymap.c @@ -23,7 +23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, LT_RAI(KC_MINS), KC_ESC, KC_CAPS, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_RALT, TG_NUMLAY, KC_APP, KC_DEL ), - + /* Colemak * ,-----------------------------------------------------------------------------------. * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | @@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, _________________COLEMAK_L3________________, _________________COLEMAK_R3________________, LT_RAI(KC_MINS), KC_ESC, KC_CAPS, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_RALT, TG_NUMLAY, KC_APP, KC_DEL ), - + /* Dvorak * ,-----------------------------------------------------------------------------------. * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | @@ -59,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, _________________DVORAK_L3_________________, _________________DVORAK_R3_________________, LT_RAI(KC_MINS), KC_ESC, KC_CAPS, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_RALT, TG_NUMLAY, KC_APP, KC_DEL ), - + /* Lower * ,-----------------------------------------------------------------------------------. * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ~ | \ | @@ -77,7 +77,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, __________________LONG_FUNC_RIGHT__________________,S(KC_NUHS),S(KC_NUBS),KC_LCBR, KC_RCBR, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), - + /* Raise * ,-----------------------------------------------------------------------------------. * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | * | \ | @@ -95,7 +95,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_LEFT, KC_DOWN, KC_RIGHT,KC_MUTE, KC_VOLD, KC_1, KC_2, KC_3, KC_UP, KC_SLSH, _______, _______, _______, _______, _______, _______, KC_SPC, KC_0, _______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NUM ), - + /* Plover layer (http://opensteno.org) * ,-----------------------------------------------------------------------------------. * | # | # | # | # | # | # | # | # | # | # | # | # | @@ -107,14 +107,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Exit | | | A | O | | E | U | | | | * `-----------------------------------------------------------------------------------' */ - + [_PLOVER] = LAYOUT_ortho_4x12_wrapper( KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 , XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX ), - + /* FN layer on Esc key * ,-----------------------------------------------------------------------------------. * | | ! | @ | # | $ | % | ^ | & | * | ( | ) | + | @@ -132,7 +132,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, __________________LONG_FUNC_RIGHT__________________,S(KC_NUHS),S(KC_NUBS),KC_LCBR, KC_RCBR, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), - + /* Num Layer * ,-----------------------------------------------------------------------------------. * | | Q | Up | 4 | | | 7 | 8 | 9 | - | + | Bksp | @@ -150,7 +150,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_Z, KC_X, KC_C, KC_V, XXXXXXX, KC_P1, KC_P2, KC_P3, KC_PDOT, KC_PSLS, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, _______, _______, KC_NUM, KC_MPLY ), - + /* Mouse Layer (semi-col) * ,-----------------------------------------------------------------------------------. * | ACCL0| ACCL1| ACCL2|Email |Email2| Home | Wh_Up| WHL_L| M_Up | WHL_R|PASS| Meta | @@ -162,14 +162,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | BTN1 | | | | Citx | | * `-----------------------------------------------------------------------------------' */ - + [_MOUSECURSOR] = LAYOUT_ortho_4x12_wrapper( KC_ACL0, KC_ACL1, KC_ACL2, M_EMAIL,M_EMAIL2, KC_HOME, KC_PGUP, KC_WH_L, KC_MS_U, KC_WH_R, P_MPASS, P_META, _______, XXXXXXX, XXXXXXX, XXXXXXX, O_RTQ6H, KC_END , KC_PGDN, KC_MS_L, KC_MS_D, KC_MS_R, _______, O_DAYRN, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, KC_BTN2, KC_BTN3, KC_BTN4, KC_BTN5, _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, P_CITRIX, O_AUTODC ), - + /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. * | Reset|RGB TG|RGB ST|RGBH -|RGBH +|RGBS -|RGBS +|RGBV -|RGBV +| | | Del | @@ -187,21 +187,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, BL_DOWN,BL_UP, BL_STEP, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, CK_RST, CK_DOWN, CK_UP, CK_TOGG ) - + }; #ifdef AUDIO_ENABLE - -float tone_startup[][2] = SONG(STARTUP_SOUND); float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_plover[][2] = SONG(PLOVER_SOUND); float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); - -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); #endif @@ -307,38 +302,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { } void matrix_init_keymap(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ #ifdef RGB_MATRIX_ENABLE rgblight_mode(RGB_MATRIX_CYCLE_ALL); #endif //RGB_matrix - wait_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); } - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - wait_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif - diff --git a/keyboards/planck/keymaps/jhenahan/keymap.c b/keyboards/planck/keymaps/jhenahan/keymap.c index 21c489922d..c884e864ac 100644 --- a/keyboards/planck/keymaps/jhenahan/keymap.c +++ b/keyboards/planck/keymaps/jhenahan/keymap.c @@ -160,15 +160,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef AUDIO_ENABLE - -float tone_startup[][2] = SONG(STARTUP_SOUND); float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_workman[][2] = SONG(WORKMAN_SOUND); float tone_plover[][2] = SONG(PLOVER_SOUND); float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); - -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); #endif @@ -268,36 +263,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/planck/keymaps/lae3/keymap.c b/keyboards/planck/keymaps/lae3/keymap.c index 7b6175d543..86c89a30a4 100644 --- a/keyboards/planck/keymaps/lae3/keymap.c +++ b/keyboards/planck/keymaps/lae3/keymap.c @@ -168,17 +168,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -#ifdef AUDIO_ENABLE - -float tone_startup[][2] = SONG(STARTUP_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); - -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); - -#endif - -bool process_record_user(uint16_t keycode, keyrecord_t *record) -{ +bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case LOWER: if (record->event.pressed) { @@ -217,37 +207,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) } return true; } - -void matrix_init_user(void) -{ -#ifdef AUDIO_ENABLE - startup_user(); -#endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(100); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/planck/keymaps/mjt/keymap.c b/keyboards/planck/keymaps/mjt/keymap.c index e927627e1f..7ab0fff241 100644 --- a/keyboards/planck/keymaps/mjt/keymap.c +++ b/keyboards/planck/keymaps/mjt/keymap.c @@ -133,16 +133,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef AUDIO_ENABLE - -float tone_startup[][2] = SONG(STARTUP_SOUND); float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_dyn_macro_rec[][2] = SONG(DVORAK_SOUND); float tone_dyn_macro_play[][2] = SONG(COLEMAK_SOUND); float tone_plover[][2] = SONG(PLOVER_SOUND); float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); - -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); #endif void persistant_default_layer_set(uint16_t default_layer) { @@ -239,36 +234,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/planck/keymaps/mjtnumsym/keymap.c b/keyboards/planck/keymaps/mjtnumsym/keymap.c index 3fa05ad178..4eaafb75d6 100644 --- a/keyboards/planck/keymaps/mjtnumsym/keymap.c +++ b/keyboards/planck/keymaps/mjtnumsym/keymap.c @@ -132,16 +132,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef AUDIO_ENABLE - -float tone_startup[][2] = SONG(STARTUP_SOUND); float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_dyn_macro_rec[][2] = SONG(DVORAK_SOUND); float tone_dyn_macro_play[][2] = SONG(COLEMAK_SOUND); float tone_plover[][2] = SONG(PLOVER_SOUND); float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); - -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); #endif void persistant_default_layer_set(uint16_t default_layer) { @@ -238,36 +233,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/planck/keymaps/originerd/keymap.c b/keyboards/planck/keymaps/originerd/keymap.c index 85e5cd3b16..d7c9ffb6b5 100644 --- a/keyboards/planck/keymaps/originerd/keymap.c +++ b/keyboards/planck/keymaps/originerd/keymap.c @@ -101,12 +101,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef AUDIO_ENABLE - -float tone_startup[][2] = SONG(STARTUP_SOUND); float tone_nerd[][2] = SONG(QWERTY_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); - -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); #endif @@ -149,36 +144,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/planck/keymaps/premek/keymap.c b/keyboards/planck/keymaps/premek/keymap.c index 76d3cabfbc..839a53a6fc 100644 --- a/keyboards/planck/keymaps/premek/keymap.c +++ b/keyboards/planck/keymaps/premek/keymap.c @@ -76,16 +76,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef AUDIO_ENABLE - -float tone_startup[][2] = SONG(STARTUP_SOUND); float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_plover[][2] = SONG(PLOVER_SOUND); float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); - -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); #endif @@ -185,36 +180,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/planck/keymaps/roguepullrequest/keymap.c b/keyboards/planck/keymaps/roguepullrequest/keymap.c index 61221601e6..31cce52a5f 100644 --- a/keyboards/planck/keymaps/roguepullrequest/keymap.c +++ b/keyboards/planck/keymaps/roguepullrequest/keymap.c @@ -28,7 +28,7 @@ enum { RSHIFT, LSHIFT, TD_S, - SLASH + SLASH }; int cur_dance (tap_dance_state_t *state); @@ -116,10 +116,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TD(LSHIFT), KC_QUOT, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, TD(RSHIFT), TD(X_AT_FUN), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, ALT_TAB, KC_SPACE, KC_ENTER, MT(MOD_LCTL | MOD_LSFT, KC_LGUI), KC_PGUP, KC_PGDN, LT(_LOWER, KC_PLUS) ), - + [_UPPER] = LAYOUT_planck_grid( KC_GRAVE, KC_AMPR, KC_PERC, KC_NO, KC_NO, KC_EQL, KC_ASTR, KC_NO, KC_NO, KC_EXLM, KC_HASH, KC_TRNS, - KC_PLUS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSLS, + KC_PLUS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSLS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS ), @@ -156,7 +156,7 @@ int cur_dance (tap_dance_state_t *state) { if (state->interrupted || !state->pressed)return TRIPLE_TAP; else return TRIPLE_HOLD; } - else return 8; // magic number that i dont believe works. + else return 8; // magic number that i dont believe works. } // instance of tap for the 'X' dance. @@ -251,4 +251,7 @@ tap_dance_action_t tap_dance_actions[] = { }; -void shutdown_user(void) { clear_keyboard(); } +bool shutdown_user(bool jump_to_bootloader) { + clear_keyboard(); + return true; +} diff --git a/keyboards/planck/keymaps/sdothum/common/init.h b/keyboards/planck/keymaps/sdothum/common/init.h index 6d0b4392fb..e6bb7101e9 100644 --- a/keyboards/planck/keymaps/sdothum/common/init.h +++ b/keyboards/planck/keymaps/sdothum/common/init.h @@ -6,9 +6,6 @@ void matrix_init_user(void) #ifdef STENO_ENABLE steno_set_mode(STENO_MODE_BOLT); // or STENO_MODE_GEMINI #endif -#ifdef AUDIO_ENABLE - startup_user(); -#endif } #ifdef AUDIO_ENABLE @@ -31,27 +28,4 @@ bool led_update_user(led_t led_state) return false; } #endif - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(song_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(song_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} #endif diff --git a/keyboards/planck/keymaps/sgoodwin/keymap.c b/keyboards/planck/keymaps/sgoodwin/keymap.c index e61cd4de68..fbfe793cb8 100644 --- a/keyboards/planck/keymaps/sgoodwin/keymap.c +++ b/keyboards/planck/keymaps/sgoodwin/keymap.c @@ -120,13 +120,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef AUDIO_ENABLE - -float tone_startup[][2] = SONG(STARTUP_SOUND); float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); - -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); #endif @@ -189,36 +184,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/planck/keymaps/smt/keymap.c b/keyboards/planck/keymaps/smt/keymap.c index 6320e11fcf..7d558e4383 100644 --- a/keyboards/planck/keymaps/smt/keymap.c +++ b/keyboards/planck/keymaps/smt/keymap.c @@ -142,14 +142,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef AUDIO_ENABLE - -float tone_startup[][2] = SONG(STARTUP_SOUND); float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_dvorak[][2] = SONG(DVORAK_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); - -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); #endif @@ -221,36 +216,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/planck/keymaps/that_canadian/keymap.c b/keyboards/planck/keymaps/that_canadian/keymap.c index 9f3a415fa3..d7b8a6b356 100644 --- a/keyboards/planck/keymaps/that_canadian/keymap.c +++ b/keyboards/planck/keymaps/that_canadian/keymap.c @@ -123,14 +123,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef AUDIO_ENABLE - -float tone_startup[][2] = SONG(STARTUP_SOUND); float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); - -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); #endif @@ -173,36 +168,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/planck/keymaps/vaire/keymap.c b/keyboards/planck/keymaps/vaire/keymap.c index f58486cda8..00b49e52d7 100644 --- a/keyboards/planck/keymaps/vaire/keymap.c +++ b/keyboards/planck/keymaps/vaire/keymap.c @@ -31,42 +31,42 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT_planck_grid( - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, SFT_T(KC_ENT), + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, SFT_T(KC_ENT), MO(1), KC_LCTL, KC_LALT, KC_LGUI, MO(2), LT(5,KC_ENT), LT(4,KC_SPC), MO(3), KC_SLSH, KC_LEFT, KC_DOWN, CTL_T(KC_RGHT)), LAYOUT_planck_grid( - KC_ESC, KC_NUM, LCTL(KC_SPC), KC_UP, LSFT(KC_SPC), KC_DLR, KC_EQL, KC_P7, KC_P8, KC_P9, KC_PPLS, LCTL(KC_BSPC), - KC_TAB, FIND, KC_LEFT, KC_DOWN, KC_RGHT, KC_PERC, KC_CIRC, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_BSLS, - KC_LSFT, UNDO, CUT, COPY, PASTE, EXCEL_HOME, KC_PSCR, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_LSFT, + KC_ESC, KC_NUM, LCTL(KC_SPC), KC_UP, LSFT(KC_SPC), KC_DLR, KC_EQL, KC_P7, KC_P8, KC_P9, KC_PPLS, LCTL(KC_BSPC), + KC_TAB, FIND, KC_LEFT, KC_DOWN, KC_RGHT, KC_PERC, KC_CIRC, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_BSLS, + KC_LSFT, UNDO, CUT, COPY, PASTE, EXCEL_HOME, KC_PSCR, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_LSFT, KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, TO(1), KC_ENT, KC_SPC, KC_PENT, KC_P0, KC_PDOT, KC_PAST, KC_LCTL), LAYOUT_planck_grid( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, - KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_EQL, KC_LT, KC_GT, KC_LPRN, - KC_LSFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_MPLY, KC_MNXT, KC_PGUP, SFT_T(KC_VOLU), + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_EQL, KC_LT, KC_GT, KC_LPRN, + KC_LSFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_MPLY, KC_MNXT, KC_PGUP, SFT_T(KC_VOLU), TO(0), KC_LCTL, KC_LALT, KC_LGUI, KC_TRNS, KC_ENT, KC_SPC, MO(3), KC_PSCR, KC_MPRV, KC_PGDN, CTL_T(KC_VOLD)), LAYOUT_planck_grid( - KC_TILD, DESK_LEFT, WIN_LEFT, KC_F4, WIN_RIGHT, DESK_RIGHT, DOCS, SNAP_LEFT, SNAP_UP, SNAP_RIGHT, SNAP_DOWN, KC_DEL, - KC_CAPS, KC_QUOT, KC_LBRC, KC_LCBR, KC_LPRN, KC_BSLS, KC_SLSH, KC_RPRN, KC_RCBR, KC_RBRC, KC_DQUO, KC_QUOT, - KC_PWR, KC_SLEP, KC_WAKE, KC_HOME, BL_BRTG, BL_STEP, KC_TRNS, KC_CALC, KC_LT, KC_GT, KC_COLON, KC_LSFT, + KC_TILD, DESK_LEFT, WIN_LEFT, KC_F4, WIN_RIGHT, DESK_RIGHT, DOCS, SNAP_LEFT, SNAP_UP, SNAP_RIGHT, SNAP_DOWN, KC_DEL, + KC_CAPS, KC_QUOT, KC_LBRC, KC_LCBR, KC_LPRN, KC_BSLS, KC_SLSH, KC_RPRN, KC_RCBR, KC_RBRC, KC_DQUO, KC_QUOT, + KC_PWR, KC_SLEP, KC_WAKE, KC_HOME, BL_BRTG, BL_STEP, KC_TRNS, KC_CALC, KC_LT, KC_GT, KC_COLON, KC_LSFT, TO(0), KC_LCTL, KC_LALT, KC_LGUI, KC_LALT, KC_LCTL, KC_TRNS, KC_TRNS, AU_TOGG, MU_TOGG, MU_NEXT, LCTL(KC_RGHT)), LAYOUT_planck_grid( - TO(0), KC_LSCR, WIN_LEFT, KC_MS_WH_UP, WIN_RIGHT, KC_TRNS, KC_TRNS, KC_MS_BTN1, KC_MS_U, KC_MS_BTN2, KC_TRNS, KC_TRNS, - KC_TRNS, KC_INS, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_RIGHT, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, - QK_BOOT, KC_APP, KC_MS_ACCEL0, KC_MS_ACCEL0, KC_MS_ACCEL0, KC_TRNS, KC_TRNS, TO(0), TO(1), TO(2), TO(3), TO(4), + TO(0), KC_LSCR, WIN_LEFT, KC_MS_WH_UP, WIN_RIGHT, KC_TRNS, KC_TRNS, KC_MS_BTN1, KC_MS_U, KC_MS_BTN2, KC_TRNS, KC_TRNS, + KC_TRNS, KC_INS, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_RIGHT, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, + QK_BOOT, KC_APP, KC_MS_ACCEL0, KC_MS_ACCEL0, KC_MS_ACCEL0, KC_TRNS, KC_TRNS, TO(0), TO(1), TO(2), TO(3), TO(4), TO(0), KC_MENU, KC_TRNS, KC_TRNS, KC_LALT, KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RCTL), LAYOUT_planck_grid( - KC_BSPC, KC_P, KC_O, KC_I, KC_U, KC_Y, KC_T, KC_R, KC_E, KC_W, KC_Q, KC_BSPC, - KC_TAB, KC_SCLN, KC_L, KC_K, KC_J, KC_H, KC_G, KC_F, KC_D, KC_S, KC_A, KC_QUOT, - KC_LSFT, KC_ENT, KC_DOT, KC_COMM, KC_M, KC_N, KC_B, KC_V, KC_C, KC_X, KC_Z, SFT_T(KC_ENT), + KC_BSPC, KC_P, KC_O, KC_I, KC_U, KC_Y, KC_T, KC_R, KC_E, KC_W, KC_Q, KC_BSPC, + KC_TAB, KC_SCLN, KC_L, KC_K, KC_J, KC_H, KC_G, KC_F, KC_D, KC_S, KC_A, KC_QUOT, + KC_LSFT, KC_ENT, KC_DOT, KC_COMM, KC_M, KC_N, KC_B, KC_V, KC_C, KC_X, KC_Z, SFT_T(KC_ENT), TO(0), KC_LCTL, KC_LALT, KC_LGUI, MO(2), KC_TRNS, KC_TRNS, MO(3), KC_SLSH, KC_LEFT, KC_DOWN, LCTL(KC_RGHT)), - - + + }; @@ -76,7 +76,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { void matrix_init_user(void) { set_voice(default_voice); - startup_user(); println("Matrix Init"); } @@ -123,29 +122,4 @@ bool led_update_user(led_t led_state) old_led_state = led_state; return false; } - - -void startup_user(void) -{ - _delay_ms(30); // gets rid of tick - PLAY_SONG(tone_my_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_my_goodbye); - _delay_ms(3000); - stop_all_notes(); -} - -void audio_on_user(void) -{ - PLAY_SONG(tone_audio_on); -} - -void music_on_user(void) -{ - PLAY_SONG(tone_music_on); -} - -#endif /* AUDIO_ENABLE */ \ No newline at end of file +#endif /* AUDIO_ENABLE */ diff --git a/keyboards/planck/keymaps/zach/zach_common_functions.c b/keyboards/planck/keymaps/zach/zach_common_functions.c index ae5f44e713..e17e31c7b5 100644 --- a/keyboards/planck/keymaps/zach/zach_common_functions.c +++ b/keyboards/planck/keymaps/zach/zach_common_functions.c @@ -52,8 +52,6 @@ enum my_keycodes{ #ifdef AUDIO_ENABLE #include "audio.h" -float tone_startup[][2] = SONG(STARTUP_SOUND); -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_swcole[][2] = SONG(QWERTY_SOUND); float tone_capslock_on[][2] = SONG(CAPS_LOCK_ON_SOUND); @@ -414,32 +412,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; }; -void matrix_init_user(void){ // Run once at startup - #ifdef AUDIO_ENABLE - _delay_ms(50); // gets rid of tick - PLAY_SONG(tone_startup); - #endif -} - -#ifdef AUDIO_ENABLE -void play_goodbye_tone(void){ - PLAY_SONG(tone_goodbye); - _delay_ms(150); -} - -void shutdown_user(void){ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void){ // Run when the music layer is turned on - PLAY_SONG(tone_startup); -} - -void music_off_user(void){ // Run when music is turned off - PLAY_SONG(tone_goodbye); -} -#endif - #endif diff --git a/keyboards/preonic/keymaps/0xdec/keymap.c b/keyboards/preonic/keymaps/0xdec/keymap.c index fafa5c4460..fad47842a5 100644 --- a/keyboards/preonic/keymaps/0xdec/keymap.c +++ b/keyboards/preonic/keymaps/0xdec/keymap.c @@ -81,13 +81,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef AUDIO_ENABLE - -float tone_startup[][2] = { - {NOTE_B5, 20}, - {NOTE_B6, 8}, - {NOTE_DS6, 20}, - {NOTE_B6, 8} -}; float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_game[][2] = { {NOTE_E6, 10} ,{NOTE_E6, 10} ,{NOTE_REST, 10} ,{NOTE_E6, 10} , @@ -95,26 +88,6 @@ float tone_game[][2] = { {NOTE_G6, 10} ,{NOTE_REST, 30}, {NOTE_G5, 10} ,{NOTE_REST, 30} }; -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); - -void startup_user(void) { - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} -void shutdown_user(void) { - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) { - music_scale_user(); -} -void music_scale_user(void) { - PLAY_SONG(music_scale); -} - #endif diff --git a/keyboards/preonic/keymaps/bucktooth/keymap.c b/keyboards/preonic/keymaps/bucktooth/keymap.c index 593083f201..09602a1673 100644 --- a/keyboards/preonic/keymaps/bucktooth/keymap.c +++ b/keyboards/preonic/keymaps/bucktooth/keymap.c @@ -69,47 +69,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; - -#ifdef AUDIO_ENABLE -float tone_startup[][2] = { - {NOTE_C5, 8}, - {NOTE_E6, 4}, - {NOTE_D6, 16}, - {NOTE_G6, 8} -}; - -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); - -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); -#endif - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/preonic/keymaps/jacwib/keymap.c b/keyboards/preonic/keymaps/jacwib/keymap.c index 9de460c2a4..694c44b3c7 100644 --- a/keyboards/preonic/keymaps/jacwib/keymap.c +++ b/keyboards/preonic/keymaps/jacwib/keymap.c @@ -174,19 +174,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -#ifdef AUDIO_ENABLE -float tone_startup[][2] = { - {NOTE_D5, 8}, - {NOTE_E6, 8}, - {NOTE_D6, 8}, - {NOTE_E5, 8} -}; - -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); - -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); -#endif - void persistent_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); @@ -249,36 +236,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; }; - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/preonic/keymaps/nikchi/keymap.c b/keyboards/preonic/keymaps/nikchi/keymap.c index e14f8f0052..50589039b7 100644 --- a/keyboards/preonic/keymaps/nikchi/keymap.c +++ b/keyboards/preonic/keymaps/nikchi/keymap.c @@ -111,20 +111,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef AUDIO_ENABLE -float tone_startup[][2] = { - {NOTE_B5, 20}, - {NOTE_B6, 8}, - {NOTE_DS6, 20}, - {NOTE_B6, 8} -}; - float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); - -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); - -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); #endif void persistent_default_layer_set(uint16_t default_layer) { @@ -177,36 +166,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; }; - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/preonic/keymaps/smt/keymap.c b/keyboards/preonic/keymaps/smt/keymap.c index 7dd9545261..22f6c39a92 100644 --- a/keyboards/preonic/keymaps/smt/keymap.c +++ b/keyboards/preonic/keymaps/smt/keymap.c @@ -158,20 +158,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef AUDIO_ENABLE -float tone_startup[][2] = { - {NOTE_B5, 20}, - {NOTE_B6, 8}, - {NOTE_DS6, 20}, - {NOTE_B6, 8} -}; - float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_dvorak[][2] = SONG(DVORAK_SOUND); - -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); - -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); #endif void persistent_default_layer_set(uint16_t default_layer) { @@ -242,36 +231,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; }; - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/preonic/keymaps/that_canadian/keymap.c b/keyboards/preonic/keymaps/that_canadian/keymap.c index 8af796821c..18b2e046e8 100644 --- a/keyboards/preonic/keymaps/that_canadian/keymap.c +++ b/keyboards/preonic/keymaps/that_canadian/keymap.c @@ -135,20 +135,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef AUDIO_ENABLE -float tone_startup[][2] = { - {NOTE_B5, 20}, - {NOTE_B6, 8}, - {NOTE_DS6, 20}, - {NOTE_B6, 8} -}; - float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); - -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); - -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); #endif void persistant_default_layer_set(uint16_t default_layer) { @@ -201,36 +190,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; }; - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - -#ifdef AUDIO_ENABLE - -void startup_user(void) -{ - _delay_ms(20); // gets rid of tick - PLAY_SONG(tone_startup); -} - -void shutdown_user(void) -{ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_SONG(music_scale); -} - -#endif diff --git a/keyboards/preonic/keymaps/zach/zach_common_functions.c b/keyboards/preonic/keymaps/zach/zach_common_functions.c index ae5f44e713..ba6c402526 100644 --- a/keyboards/preonic/keymaps/zach/zach_common_functions.c +++ b/keyboards/preonic/keymaps/zach/zach_common_functions.c @@ -52,7 +52,6 @@ enum my_keycodes{ #ifdef AUDIO_ENABLE #include "audio.h" -float tone_startup[][2] = SONG(STARTUP_SOUND); float tone_goodbye[][2] = SONG(GOODBYE_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_swcole[][2] = SONG(QWERTY_SOUND); @@ -414,32 +413,5 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; }; -void matrix_init_user(void){ // Run once at startup - #ifdef AUDIO_ENABLE - _delay_ms(50); // gets rid of tick - PLAY_SONG(tone_startup); - #endif -} - -#ifdef AUDIO_ENABLE -void play_goodbye_tone(void){ - PLAY_SONG(tone_goodbye); - _delay_ms(150); -} - -void shutdown_user(void){ - PLAY_SONG(tone_goodbye); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void){ // Run when the music layer is turned on - PLAY_SONG(tone_startup); -} - -void music_off_user(void){ // Run when music is turned off - PLAY_SONG(tone_goodbye); -} -#endif #endif diff --git a/layouts/community/numpad_5x6/bjohnson/keymap.c b/layouts/community/numpad_5x6/bjohnson/keymap.c index 63b358f226..49713df2c3 100644 --- a/layouts/community/numpad_5x6/bjohnson/keymap.c +++ b/layouts/community/numpad_5x6/bjohnson/keymap.c @@ -44,10 +44,11 @@ bool led_update_user(led_t led_state) { return false; } -void shutdown_user (void) { +bool shutdown_user(bool jump_to_bootloader) { #ifdef RGBLIGHT_ENABLE rgblight_enable_noeeprom(); rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); rgblight_setrgb(RGB_RED); #endif // RGBLIGHT_ENABLE + return false; } diff --git a/quantum/quantum.c b/quantum/quantum.c index 86c6768729..6639dc2291 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -172,7 +172,7 @@ __attribute__((weak)) void post_process_record_kb(uint16_t keycode, keyrecord_t __attribute__((weak)) void post_process_record_user(uint16_t keycode, keyrecord_t *record) {} -void shutdown_quantum(void) { +void shutdown_quantum(bool jump_to_bootloader) { clear_keyboard(); #if defined(MIDI_ENABLE) && defined(MIDI_BASIC) process_midi_all_notes_off(); @@ -183,12 +183,12 @@ void shutdown_quantum(void) { # endif uint16_t timer_start = timer_read(); PLAY_SONG(goodbye_song); - shutdown_user(); + shutdown_kb(jump_to_bootloader); while (timer_elapsed(timer_start) < 250) wait_ms(1); stop_all_notes(); #else - shutdown_user(); + shutdown_kb(jump_to_bootloader); wait_ms(250); #endif #ifdef HAPTIC_ENABLE @@ -197,12 +197,12 @@ void shutdown_quantum(void) { } void reset_keyboard(void) { - shutdown_quantum(); + shutdown_quantum(true); bootloader_jump(); } void soft_reset_keyboard(void) { - shutdown_quantum(); + shutdown_quantum(false); mcu_reset(); } @@ -491,9 +491,16 @@ void set_single_persistent_default_layer(uint8_t default_layer) { // Override these functions in your keymap file to play different tunes on // different events such as startup and bootloader jump -__attribute__((weak)) void startup_user(void) {} +__attribute__((weak)) bool shutdown_user(bool jump_to_bootloader) { + return true; +} -__attribute__((weak)) void shutdown_user(void) {} +__attribute__((weak)) bool shutdown_kb(bool jump_to_bootloader) { + if (!shutdown_user(jump_to_bootloader)) { + return false; + } + return true; +} void suspend_power_down_quantum(void) { suspend_power_down_kb(); diff --git a/quantum/quantum.h b/quantum/quantum.h index e41542e4af..996e93a12f 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -255,8 +255,8 @@ void post_process_record_user(uint16_t keycode, keyrecord_t *record); void reset_keyboard(void); void soft_reset_keyboard(void); -void startup_user(void); -void shutdown_user(void); +bool shutdown_kb(bool jump_to_bootloader); +bool shutdown_user(bool jump_to_bootloader); void register_code16(uint16_t code); void unregister_code16(uint16_t code); diff --git a/users/brandonschlack/brandonschlack.c b/users/brandonschlack/brandonschlack.c index 6a9c04a73d..bcf3ebcb80 100644 --- a/users/brandonschlack/brandonschlack.c +++ b/users/brandonschlack/brandonschlack.c @@ -68,7 +68,7 @@ void shutdown_keymap(void) {} * If RGBs enabled, * then set RGB color to Red */ -void shutdown_user (void) { +bool shutdown_user(bool jump_to_bootloader) { #ifdef RGBLIGHT_ENABLE rgblight_enable_noeeprom(); rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); @@ -78,6 +78,7 @@ void shutdown_user (void) { rgb_matrix_set_color_all( 0xFF, 0x00, 0x00 ); #endif //RGB_MATRIX_ENABLE shutdown_keymap(); + return false; } __attribute__ ((weak)) diff --git a/users/curry/curry.c b/users/curry/curry.c index f29b9c3ff7..aae7377a87 100644 --- a/users/curry/curry.c +++ b/users/curry/curry.c @@ -54,7 +54,7 @@ __attribute__((weak)) void shutdown_keymap(void) {} void rgb_matrix_update_pwm_buffers(void); // On RESET, set all RGB to red, shutdown the keymap. -void shutdown_user(void) { +bool shutdown_user(bool jump_to_bootloader) { #if defined(RGBLIGHT_ENABLE) rgblight_enable_noeeprom(); rgblight_mode_noeeprom(1); @@ -66,6 +66,7 @@ void shutdown_user(void) { rgb_matrix_update_pwm_buffers(); #endif shutdown_keymap(); + return false; } __attribute__((weak)) void suspend_power_down_keymap(void) {} diff --git a/users/drashna/callbacks.c b/users/drashna/callbacks.c index cab7e5278f..2ace2ff9e6 100644 --- a/users/drashna/callbacks.c +++ b/users/drashna/callbacks.c @@ -73,8 +73,13 @@ void keyboard_post_init_user(void) { void rgb_matrix_update_pwm_buffers(void); #endif -__attribute__((weak)) void shutdown_keymap(void) {} -void shutdown_user(void) { +__attribute__((weak)) bool shutdown_keymap(bool jump_to_bootloader) { + return true; +} +bool shutdown_user(bool jump_to_bootloader) { + if (!shutdown_keymap(jump_to_bootloader)) { + return false; + } #ifdef RGBLIGHT_ENABLE rgblight_enable_noeeprom(); rgblight_mode_noeeprom(1); @@ -87,8 +92,7 @@ void shutdown_user(void) { #ifdef OLED_ENABLE oled_off(); #endif - - shutdown_keymap(); + return true; } __attribute__((weak)) void suspend_power_down_keymap(void) {} @@ -268,11 +272,6 @@ void matrix_slave_scan_user(void) { __attribute__((weak)) void housekeeping_task_keymap(void) {} void housekeeping_task_user(void) { - static bool has_ran_yet; - if (!has_ran_yet) { - has_ran_yet = true; - startup_user(); - } #ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code. run_diablo_macro_check(); #endif // TAP_DANCE_ENABLE diff --git a/users/drashna/callbacks.h b/users/drashna/callbacks.h index d3d260378d..77c0403f82 100644 --- a/users/drashna/callbacks.h +++ b/users/drashna/callbacks.h @@ -7,7 +7,7 @@ void keyboard_post_init_keymap(void); void matrix_init_secret(void); -void shutdown_keymap(void); +bool shutdown_keymap(bool jump_to_bootloader); void suspend_power_down_keymap(void); void suspend_wakeup_init_keymap(void); void matrix_scan_keymap(void); diff --git a/users/drashna/callbacks.md b/users/drashna/callbacks.md index e23f7f6d86..8ef2707fc2 100644 --- a/users/drashna/callbacks.md +++ b/users/drashna/callbacks.md @@ -53,9 +53,14 @@ void suspend_wakeup_init_user(void) { } -__attribute__ ((weak)) void shutdown_keymap(void) {} -void shutdown_user (void) { - shutdown_keymap(); +__attribute__((weak)) bool shutdown_keymap(bool jump_to_bootloader) { + return true; +} +bool shutdown_user(bool jump_to_bootloader) { + if (!shutdown_keymap(jump_to_bootloader)) { + return false; + } + return true; } __attribute__ ((weak)) void eeconfig_init_keymap(void) {} diff --git a/users/drashna/template.c b/users/drashna/template.c index c032bd1ce3..300cdbc934 100644 --- a/users/drashna/template.c +++ b/users/drashna/template.c @@ -55,16 +55,3 @@ void suspend_wakeup_init_user(void) { wait_ms(10); #endif } - -__attribute__((weak)) void startup_keymap(void) {} - -void startup_user(void) { -#ifdef RGBLIGHT_ENABLE - matrix_init_rgb(); -#endif // RGBLIGHT_ENABLE - startup_keymap(); -} - -__attribute__((weak)) void shutdown_keymap(void) {} - -void shutdown_user(void) { shutdown_keymap(); } diff --git a/users/jjerrell/jjerrell.c b/users/jjerrell/jjerrell.c index 47aa9bc042..e061977ab6 100644 --- a/users/jjerrell/jjerrell.c +++ b/users/jjerrell/jjerrell.c @@ -1,18 +1,18 @@ /** * Copyright (C) 2021 Jerrell, Jacob <@jjerrell> - * + * * This file is part of qmk_firmware. - * + * * qmk_firmware is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * qmk_firmware is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with qmk_firmware. If not, see . */ @@ -114,12 +114,16 @@ void startup_user(void) startup_keymap(); } -__attribute__((weak)) void shutdown_keymap(void) {} -void shutdown_user(void) -{ +__attribute__((weak)) bool shutdown_keymap(bool jump_to_bootloader) { + return true; +} +bool shutdown_user(bool jump_to_bootloader) { + if (!shutdown_keymap(jump_to_bootloader)) { + return false; + } wait_ms(TAP_CODE_DELAY); stop_all_notes(); - shutdown_keymap(); + return true; } __attribute__((weak)) void music_on_keymap(void) {} diff --git a/users/jjerrell/jjerrell.h b/users/jjerrell/jjerrell.h index 92b95ccc01..a5488b28ab 100644 --- a/users/jjerrell/jjerrell.h +++ b/users/jjerrell/jjerrell.h @@ -1,18 +1,18 @@ /** * Copyright (C) 2021 Jerrell, Jacob <@jjerrell> - * + * * This file is part of qmk_firmware. - * + * * qmk_firmware is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * qmk_firmware is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with qmk_firmware. If not, see . */ @@ -30,7 +30,7 @@ /************************* Userspace Layers ************************* * Keymaps can define additional layers by making the first case - * equal to `LAYER_SAFE_RANGE` + * equal to `LAYER_SAFE_RANGE` ********************************************************************/ enum userspace_layers { _WORKMAN, @@ -49,5 +49,5 @@ void dip_switch_update_keymap(uint8_t index, bool active); bool music_mask_keymap(uint16_t keycode); layer_state_t default_layer_state_set_keymap(layer_state_t state); void startup_keymap(void); -void shutdown_keymap(void); +bool shutdown_keymap(bool jump_to_bootloader); void music_on_keymap(void); diff --git a/users/kuchosauronad0/kuchosauronad0.c b/users/kuchosauronad0/kuchosauronad0.c index 2c63eadfd1..3fc66d809b 100644 --- a/users/kuchosauronad0/kuchosauronad0.c +++ b/users/kuchosauronad0/kuchosauronad0.c @@ -62,11 +62,14 @@ void keyboard_post_init_user(void){ keyboard_post_init_keymap(); } -__attribute__ ((weak)) -void shutdown_keymap(void) {} - -void shutdown_user (void) { - #ifdef RGBLIGHT_ENABLE +__attribute__((weak)) bool shutdown_keymap(bool jump_to_bootloader) { + return true; +} +bool shutdown_user(bool jump_to_bootloader) { + if (!shutdown_keymap(jump_to_bootloader)) { + return false; + } + #ifdef RGBLIGHT_ENABLE rgblight_enable_noeeprom(); rgblight_mode_noeeprom(1); rgblight_setrgb(RGB_TEAL); @@ -76,7 +79,7 @@ void shutdown_user (void) { // rgb_matrix_set_color_all( 0xFF, 0x00, 0x00 ); // while(timer_elapsed(timer_start) < 250) { wait_ms(1); } #endif //RGB_MATRIX_ENABLE - shutdown_keymap(); + return true; } __attribute__ ((weak)) diff --git a/users/kuchosauronad0/kuchosauronad0.h b/users/kuchosauronad0/kuchosauronad0.h index 5cbd517d67..244c3cbf55 100644 --- a/users/kuchosauronad0/kuchosauronad0.h +++ b/users/kuchosauronad0/kuchosauronad0.h @@ -61,7 +61,7 @@ bool mod_key_press_timer (uint16_t code, uint16_t mod_code, bool pressed); bool mod_key_press (uint16_t code, uint16_t mod_code, bool pressed, uint16_t this_timer); bool send_game_macro(const char *str, keyrecord_t *record, bool override); void matrix_init_keymap(void); -void shutdown_keymap(void); +bool shutdown_keymap(bool jump_to_bootloader); void suspend_power_down_keymap(void); void suspend_wakeup_init_keymap(void); void matrix_scan_keymap(void); diff --git a/users/spidey3/init.c b/users/spidey3/init.c index bd6ea5cac9..15789b3958 100644 --- a/users/spidey3/init.c +++ b/users/spidey3/init.c @@ -17,5 +17,8 @@ void eeconfig_init_user(void) { } #ifdef RGBLIGHT_ENABLE -void shutdown_user(void) { shutdown_user_rgb(); } +bool shutdown_user(bool jump_to_bootloader) { + shutdown_user_rgb(); + return true; +} #endif From f96a7bbd6304410e15fa6fc744a9b0fa660f1eeb Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sun, 26 Nov 2023 22:59:38 +1100 Subject: [PATCH 409/496] Cater for ECC failures in EFL wear-leveling. (#19749) Co-authored-by: Sergey Vlasov --- .../drivers/wear_leveling/wear_leveling_efl.c | 32 ++++++++++++- platforms/chibios/interrupt_handlers.c | 45 +++++++++++++++++++ platforms/chibios/platform.mk | 3 +- 3 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 platforms/chibios/interrupt_handlers.c diff --git a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c index 3e4f5ffb89..3d6ed52e5c 100644 --- a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c +++ b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c @@ -17,6 +17,9 @@ static flash_sector_t first_sector = UINT16_MAX; static flash_sector_t sector_count = UINT16_MAX; static BaseFlash * flash; +static volatile bool is_issuing_read = false; +static volatile bool ecc_error_occurred = false; + // "Automatic" detection of the flash size -- ideally ChibiOS would have this already, but alas, it doesn't. static inline uint32_t detect_flash_size(void) { #if defined(WEAR_LEVELING_EFL_FLASH_SIZE) @@ -131,11 +134,38 @@ bool backing_store_lock(void) { return true; } +static backing_store_int_t backing_store_safe_read_from_location(backing_store_int_t *loc) { + backing_store_int_t value; + is_issuing_read = true; + ecc_error_occurred = false; + value = ~(*loc); + is_issuing_read = false; + return value; +} + bool backing_store_read(uint32_t address, backing_store_int_t *value) { uint32_t offset = (base_offset + address); backing_store_int_t *loc = (backing_store_int_t *)flashGetOffsetAddress(flash, offset); - *value = ~(*loc); + backing_store_int_t tmp = backing_store_safe_read_from_location(loc); + + if (ecc_error_occurred) { + bs_dprintf("Failed to read from backing store, ECC error detected\n"); + ecc_error_occurred = false; + *value = 0; + return false; + } + + *value = tmp; + bs_dprintf("Read "); wl_dump(offset, value, sizeof(backing_store_int_t)); return true; } + +bool backing_store_allow_ecc_errors(void) { + return is_issuing_read; +} + +void backing_store_signal_ecc_error(void) { + ecc_error_occurred = true; +} diff --git a/platforms/chibios/interrupt_handlers.c b/platforms/chibios/interrupt_handlers.c new file mode 100644 index 0000000000..4ba32d58e4 --- /dev/null +++ b/platforms/chibios/interrupt_handlers.c @@ -0,0 +1,45 @@ +// Copyright 2023 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later + +/////////////////////////////////////////////////////////////////////////////// +// BEGIN: STM32 EFL Wear-leveling ECC fault handling +// +// Some STM32s have ECC checks for all flash memory access. Whenever there's an +// ECC failure, the MCU raises the NMI interrupt. Whenever we receive such an +// interrupt whilst reading the wear-leveling EEPROM area, we gracefully cater +// for it, signalling the wear-leveling code that a failure has occurred. +/////////////////////////////////////////////////////////////////////////////// + +#include +#include + +#ifdef WEAR_LEVELING_EMBEDDED_FLASH +# ifdef QMK_MCU_SERIES_STM32L4XX +# define ECC_ERRORS_TRIGGER_NMI_INTERRUPT +# define ECC_CHECK_REGISTER FLASH->ECCR +# define ECC_CHECK_FLAG FLASH_ECCR_ECCD +# endif // QMK_MCU_SERIES_STM32L4XX +#endif // WEAR_LEVELING_EMBEDDED_FLASH + +#ifdef ECC_ERRORS_TRIGGER_NMI_INTERRUPT + +extern bool backing_store_allow_ecc_errors(void); +extern void backing_store_signal_ecc_error(void); + +void NMI_Handler(void) { + if ((ECC_CHECK_REGISTER) & (ECC_CHECK_FLAG)) { + if (backing_store_allow_ecc_errors()) { + (ECC_CHECK_REGISTER) = (ECC_CHECK_FLAG); + backing_store_signal_ecc_error(); + return; + } + } + + chSysHalt("NMI"); +} + +#endif // ECC_ERRORS_TRIGGER_NMI_INTERRUPT + +/////////////////////////////////////////////////////////////////////////////// +// END: STM32 EFL Wear-leveling ECC fault handling +/////////////////////////////////////////////////////////////////////////////// diff --git a/platforms/chibios/platform.mk b/platforms/chibios/platform.mk index e42ecebdc5..f38a888012 100644 --- a/platforms/chibios/platform.mk +++ b/platforms/chibios/platform.mk @@ -277,7 +277,8 @@ PLATFORM_SRC = \ $(CHIBIOS)/os/various/syscalls.c \ $(PLATFORM_COMMON_DIR)/syscall-fallbacks.c \ $(PLATFORM_COMMON_DIR)/wait.c \ - $(PLATFORM_COMMON_DIR)/synchronization_util.c + $(PLATFORM_COMMON_DIR)/synchronization_util.c \ + $(PLATFORM_COMMON_DIR)/interrupt_handlers.c # Ensure the ASM files are not subjected to LTO -- it'll strip out interrupt handlers otherwise. QUANTUM_LIB_SRC += $(STARTUPASM) $(PORTASM) $(OSALASM) $(PLATFORMASM) From 65b5969ed56e0e7fe033400bef374de1c4dbb663 Mon Sep 17 00:00:00 2001 From: db <108231591+bactaholic@users.noreply.github.com> Date: Sun, 26 Nov 2023 05:07:32 -0700 Subject: [PATCH 410/496] New RGB Animations - 4 "Starlight" Animation Variations (#22212) --- docs/feature_rgb_matrix.md | 8 +++++ .../animations/rgb_matrix_effects.inc | 4 +++ .../rgb_matrix/animations/riverflow_anim.h | 22 +++++++++++++ .../rgb_matrix/animations/starlight_anim.h | 30 ++++++++++++++++++ .../animations/starlight_dual_hue_anim.h | 31 +++++++++++++++++++ .../animations/starlight_dual_sat_anim.h | 31 +++++++++++++++++++ 6 files changed, 126 insertions(+) create mode 100644 quantum/rgb_matrix/animations/riverflow_anim.h create mode 100644 quantum/rgb_matrix/animations/starlight_anim.h create mode 100644 quantum/rgb_matrix/animations/starlight_dual_hue_anim.h create mode 100644 quantum/rgb_matrix/animations/starlight_dual_sat_anim.h diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index 01ecff1f3f..824ff50648 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -656,6 +656,10 @@ enum rgb_matrix_effects { RGB_MATRIX_MULTISPLASH, // Full gradient & value pulse away from multiple key hits then fades value out RGB_MATRIX_SOLID_SPLASH, // Hue & value pulse away from a single key hit then fades value out RGB_MATRIX_SOLID_MULTISPLASH, // Hue & value pulse away from multiple key hits then fades value out + RGB_MATRIX_STARLIGHT, // LEDs turn on and off at random at varying brightness, maintaining user set color + RGB_MATRIX_STARLIGHT_DUAL_HUE, // LEDs turn on and off at random at varying brightness, modifies user set hue by +- 30 + RGB_MATRIX_STARLIGHT_DUAL_SAT, // LEDs turn on and off at random at varying brightness, modifies user set saturation by +- 30 + RGB_MATRIX_RIVERFLOW, // Modification to breathing animation, offset's animation depending on key location to simulate a river flowing RGB_MATRIX_EFFECT_MAX }; ``` @@ -695,6 +699,10 @@ You can enable a single effect by defining `ENABLE_[EFFECT_NAME]` in your `confi |`#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL` |Enables `RGB_MATRIX_PIXEL_FRACTAL` | |`#define ENABLE_RGB_MATRIX_PIXEL_FLOW` |Enables `RGB_MATRIX_PIXEL_FLOW` | |`#define ENABLE_RGB_MATRIX_PIXEL_RAIN` |Enables `RGB_MATRIX_PIXEL_RAIN` | +|`#define ENABLE_RGB_MATRIX_STARLIGHT` |Enables `RGB_MATRIX_STARLIGHT` | +|`#define ENABLE_RGB_MATRIX_STARLIGHT_DUAL_HUE` |Enables `RGB_MATRIX_STARLIGHT_DUAL_HUE` | +|`#define ENABLE_RGB_MATRIX_STARLIGHT_DUAL_SAT` |Enables `RGB_MATRIX_STARLIGHT_DUAL_SAT` | +|`#define ENABLE_RGB_MATRIX_RIVERFLOW` |Enables `RGB_MATRIX_RIVERFLOW` | |Framebuffer Defines |Description | |------------------------------------------------------|----------------------------------------------| diff --git a/quantum/rgb_matrix/animations/rgb_matrix_effects.inc b/quantum/rgb_matrix/animations/rgb_matrix_effects.inc index df34718838..a02238a2d1 100644 --- a/quantum/rgb_matrix/animations/rgb_matrix_effects.inc +++ b/quantum/rgb_matrix/animations/rgb_matrix_effects.inc @@ -39,3 +39,7 @@ #include "solid_reactive_nexus.h" #include "splash_anim.h" #include "solid_splash_anim.h" +#include "starlight_anim.h" +#include "starlight_dual_sat_anim.h" +#include "starlight_dual_hue_anim.h" +#include "riverflow_anim.h" \ No newline at end of file diff --git a/quantum/rgb_matrix/animations/riverflow_anim.h b/quantum/rgb_matrix/animations/riverflow_anim.h new file mode 100644 index 0000000000..79a38e7f6e --- /dev/null +++ b/quantum/rgb_matrix/animations/riverflow_anim.h @@ -0,0 +1,22 @@ +#ifdef ENABLE_RGB_MATRIX_RIVERFLOW +RGB_MATRIX_EFFECT(RIVERFLOW) +# ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS + +// inspired by @PleasureTek's Massdrop Alt LED animation + +bool RIVERFLOW(effect_params_t* params) { + RGB_MATRIX_USE_LIMITS(led_min, led_max); + for (uint8_t i = led_min; i < led_max; i++) { + HSV hsv = rgb_matrix_config.hsv; + uint16_t time = scale16by8(g_rgb_timer + (i * 315), rgb_matrix_config.speed / 8); + hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); + RGB_MATRIX_TEST_LED_FLAGS(); + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); + } + + return rgb_matrix_check_finished_leds(led_max); +} + +# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS +#endif // ENABLE_RGB_MATRIX_RIVERFLOW diff --git a/quantum/rgb_matrix/animations/starlight_anim.h b/quantum/rgb_matrix/animations/starlight_anim.h new file mode 100644 index 0000000000..33f0b61a91 --- /dev/null +++ b/quantum/rgb_matrix/animations/starlight_anim.h @@ -0,0 +1,30 @@ +#ifdef ENABLE_RGB_MATRIX_STARLIGHT +RGB_MATRIX_EFFECT(STARLIGHT) +# ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS + +void set_starlight_color(int i, effect_params_t* params) { + uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8); + HSV hsv = rgb_matrix_config.hsv; + hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); + RGB rgb = hsv_to_rgb(hsv); + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); +} + +bool STARLIGHT(effect_params_t* params) { + if (!params->init) { + if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 5)) % 5 == 0) { + int rand_led = rand() % RGB_MATRIX_LED_COUNT; + set_starlight_color(rand_led, params); + } + return false; + } + + RGB_MATRIX_USE_LIMITS(led_min, led_max); + for (int i = led_min; i < led_max; i++) { + set_starlight_color(i, params); + } + return rgb_matrix_check_finished_leds(led_max); +} + +# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS +#endif // ENABLE_RGB_MATRIX_STARLIGHT \ No newline at end of file diff --git a/quantum/rgb_matrix/animations/starlight_dual_hue_anim.h b/quantum/rgb_matrix/animations/starlight_dual_hue_anim.h new file mode 100644 index 0000000000..df6461b8b7 --- /dev/null +++ b/quantum/rgb_matrix/animations/starlight_dual_hue_anim.h @@ -0,0 +1,31 @@ +#ifdef ENABLE_RGB_MATRIX_STARLIGHT_DUAL_HUE +RGB_MATRIX_EFFECT(STARLIGHT_DUAL_HUE) +# ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS + +void set_starlight_dual_hue_color(int i, effect_params_t* params) { + uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8); + HSV hsv = rgb_matrix_config.hsv; + hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); + hsv.h = hsv.h + (rand() % (30 + 1 - -30) + -30); + RGB rgb = hsv_to_rgb(hsv); + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); +} + +bool STARLIGHT_DUAL_HUE(effect_params_t* params) { + if (!params->init) { + if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 5)) % 5 == 0) { + int rand_led = rand() % RGB_MATRIX_LED_COUNT; + set_starlight_dual_hue_color(rand_led, params); + } + return false; + } + + RGB_MATRIX_USE_LIMITS(led_min, led_max); + for (int i = led_min; i < led_max; i++) { + set_starlight_dual_hue_color(i, params); + } + return rgb_matrix_check_finished_leds(led_max); +} + +# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS +#endif // ENABLE_RGB_MATRIX_STARLIGHT_DUAL_HUE \ No newline at end of file diff --git a/quantum/rgb_matrix/animations/starlight_dual_sat_anim.h b/quantum/rgb_matrix/animations/starlight_dual_sat_anim.h new file mode 100644 index 0000000000..f6ecd48aa1 --- /dev/null +++ b/quantum/rgb_matrix/animations/starlight_dual_sat_anim.h @@ -0,0 +1,31 @@ +#ifdef ENABLE_RGB_MATRIX_STARLIGHT_DUAL_SAT +RGB_MATRIX_EFFECT(STARLIGHT_DUAL_SAT) +# ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS + +void set_starlight_dual_sat_color(int i, effect_params_t* params) { + uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8); + HSV hsv = rgb_matrix_config.hsv; + hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); + hsv.s = hsv.s + (rand() % (30 + 1 - -30) + -30); + RGB rgb = hsv_to_rgb(hsv); + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); +} + +bool STARLIGHT_DUAL_SAT(effect_params_t* params) { + if (!params->init) { + if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 5)) % 5 == 0) { + int rand_led = rand() % RGB_MATRIX_LED_COUNT; + set_starlight_dual_sat_color(rand_led, params); + } + return false; + } + + RGB_MATRIX_USE_LIMITS(led_min, led_max); + for (int i = led_min; i < led_max; i++) { + set_starlight_dual_sat_color(i, params); + } + return rgb_matrix_check_finished_leds(led_max); +} + +# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS +#endif // ENABLE_RGB_MATRIX_STARLIGHT_DUAL_SAT \ No newline at end of file From 4908d4b1ca260efecf3613e6517aa3a6f2034876 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 26 Nov 2023 18:31:20 +0000 Subject: [PATCH 411/496] Stub out community layout directory structure (#22545) --- layouts/community/60_abnt2/readme.md | 3 + layouts/community/60_ansi/readme.md | 66 +---------------- layouts/community/60_ansi_arrow/readme.md | 3 + .../60_ansi_arrow_split_bs_7u_spc/readme.md | 3 + .../60_ansi_split_bs_rshift/readme.md | 2 +- layouts/community/60_ansi_tsangan/readme.md | 3 + layouts/community/60_ansi_wkl/readme.md | 3 + .../60_ansi_wkl_split_bs_rshift/readme.md | 3 + layouts/community/60_hhkb/readme.md | 3 + layouts/community/60_iso/readme.md | 2 +- .../60_iso_split_bs_rshift/readme.md | 3 + layouts/community/60_iso_tsangan/readme.md | 3 + .../60_iso_tsangan_split_bs_rshift/readme.md | 3 + layouts/community/60_iso_wkl/readme.md | 3 + .../60_iso_wkl_split_bs_rshift/readme.md | 3 + layouts/community/60_jis/readme.md | 3 + layouts/community/60_tsangan_hhkb/readme.md | 3 + layouts/community/64_ansi/readme.md | 3 + layouts/community/64_iso/readme.md | 3 + layouts/community/65_ansi/readme.md | 3 + layouts/community/65_ansi_blocker/readme.md | 3 + .../65_ansi_blocker_split_bs/readme.md | 3 + .../65_ansi_blocker_tsangan/readme.md | 3 + .../readme.md | 3 + layouts/community/65_ansi_split_bs/readme.md | 3 + layouts/community/65_iso/readme.md | 3 + layouts/community/65_iso_blocker/readme.md | 3 + .../65_iso_blocker_split_bs/readme.md | 3 + .../65_iso_blocker_tsangan/readme.md | 3 + .../65_iso_blocker_tsangan_split_bs/readme.md | 3 + layouts/community/65_iso_split_bs/readme.md | 3 + layouts/community/66_iso/readme.md | 3 + layouts/community/68_ansi/readme.md | 2 - layouts/community/68_iso/readme.md | 3 + layouts/community/75_ansi/readme.md | 70 +------------------ layouts/community/75_iso/readme.md | 3 + layouts/community/96_ansi/readme.md | 3 + layouts/community/96_iso/readme.md | 3 + layouts/community/alice/readme.md | 3 + layouts/community/alice_split_bs/readme.md | 3 + layouts/community/ergodox/readme.md | 2 +- layouts/community/fullsize_ansi/readme.md | 3 + .../fullsize_extended_ansi/readme.md | 3 + .../community/fullsize_extended_iso/readme.md | 3 + .../community/fullsize_extended_jis/readme.md | 3 + layouts/community/fullsize_iso/readme.md | 3 + layouts/community/fullsize_jis/readme.md | 3 + layouts/community/numpad_4x4/readme.md | 3 + layouts/community/numpad_5x4/readme.md | 3 + layouts/community/numpad_6x4/readme.md | 3 + layouts/community/numpad_6x5/readme.md | 3 + layouts/community/ortho_1x1/readme.md | 3 + layouts/community/ortho_3x3/readme.md | 3 + layouts/community/ortho_4x10/readme.md | 3 + layouts/community/ortho_4x12/readme.md | 2 +- layouts/community/ortho_4x16/readme.md | 3 + layouts/community/ortho_4x4/readme.md | 2 +- layouts/community/ortho_4x6/readme.md | 3 + layouts/community/ortho_5x12/readme.md | 2 +- layouts/community/ortho_5x14/readme.md | 3 + layouts/community/ortho_5x15/readme.md | 2 +- layouts/community/ortho_5x4/readme.md | 3 + layouts/community/ortho_5x5/readme.md | 2 +- layouts/community/ortho_6x4/readme.md | 3 + layouts/community/planck_mit/readme.md | 3 + layouts/community/split_3x5_2/readme.md | 3 + layouts/community/split_3x5_3/readme.md | 3 + layouts/community/split_3x6_3/readme.md | 3 + layouts/community/tkl_ansi/readme.md | 3 + .../tkl_ansi_split_bs_rshift/readme.md | 3 + layouts/community/tkl_ansi_tsangan/readme.md | 3 + .../readme.md | 3 + layouts/community/tkl_f13_ansi/readme.md | 3 + .../tkl_f13_ansi_split_bs_rshift/readme.md | 3 + .../community/tkl_f13_ansi_tsangan/readme.md | 3 + .../readme.md | 3 + layouts/community/tkl_f13_iso/readme.md | 3 + .../tkl_f13_iso_split_bs_rshift/readme.md | 3 + .../community/tkl_f13_iso_tsangan/readme.md | 3 + .../readme.md | 3 + layouts/community/tkl_f13_jis/readme.md | 3 + layouts/community/tkl_iso/readme.md | 3 + .../tkl_iso_split_bs_rshift/readme.md | 3 + layouts/community/tkl_iso_tsangan/readme.md | 3 + .../tkl_iso_tsangan_split_bs_rshift/readme.md | 3 + layouts/community/tkl_jis/readme.md | 3 + layouts/community/tkl_nofrow_ansi/readme.md | 3 + layouts/community/tkl_nofrow_iso/readme.md | 3 + 88 files changed, 241 insertions(+), 144 deletions(-) create mode 100644 layouts/community/60_abnt2/readme.md create mode 100644 layouts/community/60_ansi_arrow/readme.md create mode 100644 layouts/community/60_ansi_arrow_split_bs_7u_spc/readme.md create mode 100644 layouts/community/60_ansi_tsangan/readme.md create mode 100644 layouts/community/60_ansi_wkl/readme.md create mode 100644 layouts/community/60_ansi_wkl_split_bs_rshift/readme.md create mode 100644 layouts/community/60_hhkb/readme.md create mode 100644 layouts/community/60_iso_split_bs_rshift/readme.md create mode 100644 layouts/community/60_iso_tsangan/readme.md create mode 100644 layouts/community/60_iso_tsangan_split_bs_rshift/readme.md create mode 100644 layouts/community/60_iso_wkl/readme.md create mode 100644 layouts/community/60_iso_wkl_split_bs_rshift/readme.md create mode 100644 layouts/community/60_jis/readme.md create mode 100644 layouts/community/60_tsangan_hhkb/readme.md create mode 100644 layouts/community/64_ansi/readme.md create mode 100644 layouts/community/64_iso/readme.md create mode 100644 layouts/community/65_ansi/readme.md create mode 100644 layouts/community/65_ansi_blocker/readme.md create mode 100644 layouts/community/65_ansi_blocker_split_bs/readme.md create mode 100644 layouts/community/65_ansi_blocker_tsangan/readme.md create mode 100644 layouts/community/65_ansi_blocker_tsangan_split_bs/readme.md create mode 100644 layouts/community/65_ansi_split_bs/readme.md create mode 100644 layouts/community/65_iso/readme.md create mode 100644 layouts/community/65_iso_blocker/readme.md create mode 100644 layouts/community/65_iso_blocker_split_bs/readme.md create mode 100644 layouts/community/65_iso_blocker_tsangan/readme.md create mode 100644 layouts/community/65_iso_blocker_tsangan_split_bs/readme.md create mode 100644 layouts/community/65_iso_split_bs/readme.md create mode 100644 layouts/community/66_iso/readme.md create mode 100644 layouts/community/68_iso/readme.md create mode 100644 layouts/community/75_iso/readme.md create mode 100644 layouts/community/96_ansi/readme.md create mode 100644 layouts/community/96_iso/readme.md create mode 100644 layouts/community/alice/readme.md create mode 100644 layouts/community/alice_split_bs/readme.md create mode 100644 layouts/community/fullsize_ansi/readme.md create mode 100644 layouts/community/fullsize_extended_ansi/readme.md create mode 100644 layouts/community/fullsize_extended_iso/readme.md create mode 100644 layouts/community/fullsize_extended_jis/readme.md create mode 100644 layouts/community/fullsize_iso/readme.md create mode 100644 layouts/community/fullsize_jis/readme.md create mode 100644 layouts/community/numpad_4x4/readme.md create mode 100644 layouts/community/numpad_5x4/readme.md create mode 100644 layouts/community/numpad_6x4/readme.md create mode 100644 layouts/community/numpad_6x5/readme.md create mode 100644 layouts/community/ortho_1x1/readme.md create mode 100644 layouts/community/ortho_3x3/readme.md create mode 100644 layouts/community/ortho_4x10/readme.md create mode 100644 layouts/community/ortho_4x16/readme.md create mode 100644 layouts/community/ortho_4x6/readme.md create mode 100644 layouts/community/ortho_5x14/readme.md create mode 100644 layouts/community/ortho_5x4/readme.md create mode 100644 layouts/community/ortho_6x4/readme.md create mode 100644 layouts/community/planck_mit/readme.md create mode 100644 layouts/community/split_3x5_2/readme.md create mode 100644 layouts/community/split_3x5_3/readme.md create mode 100644 layouts/community/split_3x6_3/readme.md create mode 100644 layouts/community/tkl_ansi/readme.md create mode 100644 layouts/community/tkl_ansi_split_bs_rshift/readme.md create mode 100644 layouts/community/tkl_ansi_tsangan/readme.md create mode 100644 layouts/community/tkl_ansi_tsangan_split_bs_rshift/readme.md create mode 100644 layouts/community/tkl_f13_ansi/readme.md create mode 100644 layouts/community/tkl_f13_ansi_split_bs_rshift/readme.md create mode 100644 layouts/community/tkl_f13_ansi_tsangan/readme.md create mode 100644 layouts/community/tkl_f13_ansi_tsangan_split_bs_rshift/readme.md create mode 100644 layouts/community/tkl_f13_iso/readme.md create mode 100644 layouts/community/tkl_f13_iso_split_bs_rshift/readme.md create mode 100644 layouts/community/tkl_f13_iso_tsangan/readme.md create mode 100644 layouts/community/tkl_f13_iso_tsangan_split_bs_rshift/readme.md create mode 100644 layouts/community/tkl_f13_jis/readme.md create mode 100644 layouts/community/tkl_iso/readme.md create mode 100644 layouts/community/tkl_iso_split_bs_rshift/readme.md create mode 100644 layouts/community/tkl_iso_tsangan/readme.md create mode 100644 layouts/community/tkl_iso_tsangan_split_bs_rshift/readme.md create mode 100644 layouts/community/tkl_jis/readme.md create mode 100644 layouts/community/tkl_nofrow_ansi/readme.md create mode 100644 layouts/community/tkl_nofrow_iso/readme.md diff --git a/layouts/community/60_abnt2/readme.md b/layouts/community/60_abnt2/readme.md new file mode 100644 index 0000000000..6f6e6a1c47 --- /dev/null +++ b/layouts/community/60_abnt2/readme.md @@ -0,0 +1,3 @@ +# 60_abnt2 + + LAYOUT_60_abnt2 diff --git a/layouts/community/60_ansi/readme.md b/layouts/community/60_ansi/readme.md index d3595074aa..1b43cab4d9 100644 --- a/layouts/community/60_ansi/readme.md +++ b/layouts/community/60_ansi/readme.md @@ -1,67 +1,3 @@ # 60_ansi -This is the standard 60% ANSI keyboard layout. - -## Requirements - -### 1. Layout defined - -A keyboard's `.h` file needs to have `LAYOUT_60_ansi` defined - -```c -#define LAYOUT_60_ansi( \ - K36, K37, K46, K47, K56, K57, K66, K67, K76, K77, K06, K07, K17, K27, \ - K34, K35, K44, K45, K54, K55, K64, K65, K75, K05, K15, K16, K25, K24, \ - K32, K33, K43, K52, K53, K63, K73, K74, K03, K04, K13, K14, K23, \ - K31, K42, K51, K61, K62, K71, K72, K01, K02, K11, K12, K21, \ - K30, K40, K50, K60, K70, K00, K10, K20 \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07 }, \ - { K10, K11, K12, K13, K14, K15, K16, K17 }, \ - { K20, K21, KC_NO, K23, K24, K25, KC_NO, K27 }, \ - { K30, K31, K32, K33, K34, K35, K36, K37 }, \ - { K40, KC_NO, K42, K43, K44, K45, K46, K47 }, \ - { K50, K51, K52, K53, K54, K55, K56, K57 }, \ - { K60, K61, K62, K63, K64, K65, K66, K67 }, \ - { K70, K71, K72, K73, K74, K75, K76, K77 } \ -} -``` - -This layout needs to match the layout defined in - - qmk_firmware/layouts/community/layout.json - -### 2. Configuring rules.mk - -`rules.mk` needs to have the following line: - - LAYOUTS = 60_ansi - -### 3. Defining a keymap - -A keymap must be defined at - - qmk_firmware/layouts/community/60_ansi/yourfoldername/keymap.c - -This keymap must have a `LAYOUT_60_ansi` layout defined. - -```c -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[BASE] = LAYOUT_60_ansi( - QK_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_BSPC, - 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPACE, MO(1), KC_RALT, KC_RGUI, KC_RCTL), - }; -``` - -## Usage - -To make generate a hex file, type - - make yourkeyboard:yourfoldername - -This hex file will contain a keymap with layout `LAYOUT_60_ansi` derived from - - qmk_firmware/layouts/community/60_ansi/yourfoldername/keymap.c + LAYOUT_60_ansi diff --git a/layouts/community/60_ansi_arrow/readme.md b/layouts/community/60_ansi_arrow/readme.md new file mode 100644 index 0000000000..5103bc3d9a --- /dev/null +++ b/layouts/community/60_ansi_arrow/readme.md @@ -0,0 +1,3 @@ +# 60_ansi_arrow + + LAYOUT_60_ansi_arrow diff --git a/layouts/community/60_ansi_arrow_split_bs_7u_spc/readme.md b/layouts/community/60_ansi_arrow_split_bs_7u_spc/readme.md new file mode 100644 index 0000000000..d60387a000 --- /dev/null +++ b/layouts/community/60_ansi_arrow_split_bs_7u_spc/readme.md @@ -0,0 +1,3 @@ +# 60_ansi_arrow_split_bs_7u_spc + + LAYOUT_60_ansi_arrow_split_bs_7u_spc diff --git a/layouts/community/60_ansi_split_bs_rshift/readme.md b/layouts/community/60_ansi_split_bs_rshift/readme.md index 479463f9a3..362392ef8e 100644 --- a/layouts/community/60_ansi_split_bs_rshift/readme.md +++ b/layouts/community/60_ansi_split_bs_rshift/readme.md @@ -1,3 +1,3 @@ # 60_ansi_split_bs_rshift - LAYOUT_60_ansi_split_bs_rshift \ No newline at end of file + LAYOUT_60_ansi_split_bs_rshift diff --git a/layouts/community/60_ansi_tsangan/readme.md b/layouts/community/60_ansi_tsangan/readme.md new file mode 100644 index 0000000000..76b4514034 --- /dev/null +++ b/layouts/community/60_ansi_tsangan/readme.md @@ -0,0 +1,3 @@ +# 60_ansi_tsangan + + LAYOUT_60_ansi_tsangan diff --git a/layouts/community/60_ansi_wkl/readme.md b/layouts/community/60_ansi_wkl/readme.md new file mode 100644 index 0000000000..c4c7e5541f --- /dev/null +++ b/layouts/community/60_ansi_wkl/readme.md @@ -0,0 +1,3 @@ +# 60_ansi_wkl + + LAYOUT_60_ansi_wkl diff --git a/layouts/community/60_ansi_wkl_split_bs_rshift/readme.md b/layouts/community/60_ansi_wkl_split_bs_rshift/readme.md new file mode 100644 index 0000000000..c34c18a0ec --- /dev/null +++ b/layouts/community/60_ansi_wkl_split_bs_rshift/readme.md @@ -0,0 +1,3 @@ +# 60_ansi_wkl_split_bs_rshift + + LAYOUT_60_ansi_wkl_split_bs_rshift diff --git a/layouts/community/60_hhkb/readme.md b/layouts/community/60_hhkb/readme.md new file mode 100644 index 0000000000..346cd6ef8a --- /dev/null +++ b/layouts/community/60_hhkb/readme.md @@ -0,0 +1,3 @@ +# 60_hhkb + + LAYOUT_60_hhkb diff --git a/layouts/community/60_iso/readme.md b/layouts/community/60_iso/readme.md index 42ff805fb6..cd1071f2f3 100644 --- a/layouts/community/60_iso/readme.md +++ b/layouts/community/60_iso/readme.md @@ -1,3 +1,3 @@ # 60_iso - LAYOUT_60_iso \ No newline at end of file + LAYOUT_60_iso diff --git a/layouts/community/60_iso_split_bs_rshift/readme.md b/layouts/community/60_iso_split_bs_rshift/readme.md new file mode 100644 index 0000000000..ff7fa16454 --- /dev/null +++ b/layouts/community/60_iso_split_bs_rshift/readme.md @@ -0,0 +1,3 @@ +# 60_iso_split_bs_rshift + + LAYOUT_60_iso_split_bs_rshift diff --git a/layouts/community/60_iso_tsangan/readme.md b/layouts/community/60_iso_tsangan/readme.md new file mode 100644 index 0000000000..edb7f9242d --- /dev/null +++ b/layouts/community/60_iso_tsangan/readme.md @@ -0,0 +1,3 @@ +# 60_iso_tsangan + + LAYOUT_60_iso_tsangan diff --git a/layouts/community/60_iso_tsangan_split_bs_rshift/readme.md b/layouts/community/60_iso_tsangan_split_bs_rshift/readme.md new file mode 100644 index 0000000000..4313926ca1 --- /dev/null +++ b/layouts/community/60_iso_tsangan_split_bs_rshift/readme.md @@ -0,0 +1,3 @@ +# 60_iso_tsangan_split_bs_rshift + + LAYOUT_60_iso_tsangan_split_bs_rshift diff --git a/layouts/community/60_iso_wkl/readme.md b/layouts/community/60_iso_wkl/readme.md new file mode 100644 index 0000000000..f109450c9b --- /dev/null +++ b/layouts/community/60_iso_wkl/readme.md @@ -0,0 +1,3 @@ +# 60_iso_wkl + + LAYOUT_60_iso_wkl diff --git a/layouts/community/60_iso_wkl_split_bs_rshift/readme.md b/layouts/community/60_iso_wkl_split_bs_rshift/readme.md new file mode 100644 index 0000000000..c1f4df013b --- /dev/null +++ b/layouts/community/60_iso_wkl_split_bs_rshift/readme.md @@ -0,0 +1,3 @@ +# 60_iso_wkl_split_bs_rshift + + LAYOUT_60_iso_wkl_split_bs_rshift diff --git a/layouts/community/60_jis/readme.md b/layouts/community/60_jis/readme.md new file mode 100644 index 0000000000..236abdfa07 --- /dev/null +++ b/layouts/community/60_jis/readme.md @@ -0,0 +1,3 @@ +# 60_jis + + LAYOUT_60_jis diff --git a/layouts/community/60_tsangan_hhkb/readme.md b/layouts/community/60_tsangan_hhkb/readme.md new file mode 100644 index 0000000000..78a0b82bee --- /dev/null +++ b/layouts/community/60_tsangan_hhkb/readme.md @@ -0,0 +1,3 @@ +# 60_tsangan_hhkb + + LAYOUT_60_tsangan_hhkb diff --git a/layouts/community/64_ansi/readme.md b/layouts/community/64_ansi/readme.md new file mode 100644 index 0000000000..64bb28197d --- /dev/null +++ b/layouts/community/64_ansi/readme.md @@ -0,0 +1,3 @@ +# 64_ansi + + LAYOUT_64_ansi diff --git a/layouts/community/64_iso/readme.md b/layouts/community/64_iso/readme.md new file mode 100644 index 0000000000..f56813d4a2 --- /dev/null +++ b/layouts/community/64_iso/readme.md @@ -0,0 +1,3 @@ +# 64_iso + + LAYOUT_64_iso diff --git a/layouts/community/65_ansi/readme.md b/layouts/community/65_ansi/readme.md new file mode 100644 index 0000000000..462b3c6a4e --- /dev/null +++ b/layouts/community/65_ansi/readme.md @@ -0,0 +1,3 @@ +# 65_ansi + + LAYOUT_65_ansi diff --git a/layouts/community/65_ansi_blocker/readme.md b/layouts/community/65_ansi_blocker/readme.md new file mode 100644 index 0000000000..03503b3479 --- /dev/null +++ b/layouts/community/65_ansi_blocker/readme.md @@ -0,0 +1,3 @@ +# 65_ansi_blocker + + LAYOUT_65_ansi_blocker diff --git a/layouts/community/65_ansi_blocker_split_bs/readme.md b/layouts/community/65_ansi_blocker_split_bs/readme.md new file mode 100644 index 0000000000..7b95eecc99 --- /dev/null +++ b/layouts/community/65_ansi_blocker_split_bs/readme.md @@ -0,0 +1,3 @@ +# 65_ansi_blocker_split_bs + + LAYOUT_65_ansi_blocker_split_bs diff --git a/layouts/community/65_ansi_blocker_tsangan/readme.md b/layouts/community/65_ansi_blocker_tsangan/readme.md new file mode 100644 index 0000000000..50d23c5178 --- /dev/null +++ b/layouts/community/65_ansi_blocker_tsangan/readme.md @@ -0,0 +1,3 @@ +# 65_ansi_blocker_tsangan + + LAYOUT_65_ansi_blocker_tsangan diff --git a/layouts/community/65_ansi_blocker_tsangan_split_bs/readme.md b/layouts/community/65_ansi_blocker_tsangan_split_bs/readme.md new file mode 100644 index 0000000000..0c6b4bc907 --- /dev/null +++ b/layouts/community/65_ansi_blocker_tsangan_split_bs/readme.md @@ -0,0 +1,3 @@ +# 65_ansi_blocker_tsangan_split_bs + + LAYOUT_65_ansi_blocker_tsangan_split_bs diff --git a/layouts/community/65_ansi_split_bs/readme.md b/layouts/community/65_ansi_split_bs/readme.md new file mode 100644 index 0000000000..3051b7066a --- /dev/null +++ b/layouts/community/65_ansi_split_bs/readme.md @@ -0,0 +1,3 @@ +# 65_ansi_split_bs + + LAYOUT_65_ansi_split_bs diff --git a/layouts/community/65_iso/readme.md b/layouts/community/65_iso/readme.md new file mode 100644 index 0000000000..bade8bfd27 --- /dev/null +++ b/layouts/community/65_iso/readme.md @@ -0,0 +1,3 @@ +# 65_iso + + LAYOUT_65_iso diff --git a/layouts/community/65_iso_blocker/readme.md b/layouts/community/65_iso_blocker/readme.md new file mode 100644 index 0000000000..129a85dce1 --- /dev/null +++ b/layouts/community/65_iso_blocker/readme.md @@ -0,0 +1,3 @@ +# 65_iso_blocker + + LAYOUT_65_iso_blocker diff --git a/layouts/community/65_iso_blocker_split_bs/readme.md b/layouts/community/65_iso_blocker_split_bs/readme.md new file mode 100644 index 0000000000..175db25268 --- /dev/null +++ b/layouts/community/65_iso_blocker_split_bs/readme.md @@ -0,0 +1,3 @@ +# 65_iso_blocker_split_bs + + LAYOUT_65_iso_blocker_split_bs diff --git a/layouts/community/65_iso_blocker_tsangan/readme.md b/layouts/community/65_iso_blocker_tsangan/readme.md new file mode 100644 index 0000000000..70e7fa82e3 --- /dev/null +++ b/layouts/community/65_iso_blocker_tsangan/readme.md @@ -0,0 +1,3 @@ +# 65_iso_blocker_tsangan + + LAYOUT_65_iso_blocker_tsangan diff --git a/layouts/community/65_iso_blocker_tsangan_split_bs/readme.md b/layouts/community/65_iso_blocker_tsangan_split_bs/readme.md new file mode 100644 index 0000000000..d2b672e005 --- /dev/null +++ b/layouts/community/65_iso_blocker_tsangan_split_bs/readme.md @@ -0,0 +1,3 @@ +# 65_iso_blocker_tsangan_split_bs + + LAYOUT_65_iso_blocker_tsangan_split_bs diff --git a/layouts/community/65_iso_split_bs/readme.md b/layouts/community/65_iso_split_bs/readme.md new file mode 100644 index 0000000000..b80f03e68a --- /dev/null +++ b/layouts/community/65_iso_split_bs/readme.md @@ -0,0 +1,3 @@ +# 65_iso_split_bs + + LAYOUT_65_iso_split_bs diff --git a/layouts/community/66_iso/readme.md b/layouts/community/66_iso/readme.md new file mode 100644 index 0000000000..db59d489a0 --- /dev/null +++ b/layouts/community/66_iso/readme.md @@ -0,0 +1,3 @@ +# 66_iso + + LAYOUT_66_iso diff --git a/layouts/community/68_ansi/readme.md b/layouts/community/68_ansi/readme.md index 2180973de8..504b914b25 100644 --- a/layouts/community/68_ansi/readme.md +++ b/layouts/community/68_ansi/readme.md @@ -1,5 +1,3 @@ # 68_ansi LAYOUT_68_ansi - -This is the 68 key ANSI layout made popular by boards such as the Magicforce 68 and Varmilo VA68M. \ No newline at end of file diff --git a/layouts/community/68_iso/readme.md b/layouts/community/68_iso/readme.md new file mode 100644 index 0000000000..f4f37bbd1e --- /dev/null +++ b/layouts/community/68_iso/readme.md @@ -0,0 +1,3 @@ +# 68_iso + + LAYOUT_68_iso diff --git a/layouts/community/75_ansi/readme.md b/layouts/community/75_ansi/readme.md index 8229571db1..df25851906 100644 --- a/layouts/community/75_ansi/readme.md +++ b/layouts/community/75_ansi/readme.md @@ -1,71 +1,3 @@ # 75_ansi -This is the standard 75% ANSI keyboard layout. - -One may argue that having 3 1u keys to the right of spacebar -is not desired as two 1.5u keys. However, most 75% boards that -come out have that as the standard. - -## Requirements - -### 1. Layout defined - -A keyboard's `.h` file needs to have `LAYOUT_75_ansi` defined - -```c -#define LAYOUT_75_ansi( \ - K5A, K5B, K5C, K5D, K5E, K5F, K5G, K5H, K5I, K5J, K5K, K5L, K5M, K5N, K5O, K5Q, \ - K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4O, K4P, \ - K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K3O, K3P, \ - K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2O, K2P, \ - K1A, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, K1M, K1N, K1O, K1P, \ - K0A, K0B, K0C, K0J, K0K, K0L, K0M, K0N, K0O, K0P \ -) { \ - { K5A, K5B, K5C, K5D, K5E, K5F, K5G, K5H, K5I, K5J, K5K, K5L, K5M, K5N, K5O, KC_NO, K5Q }, \ - { K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, KC_NO, K4O, K4P, KC_NO }, \ - { K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, KC_NO, K3O, K3P, KC_NO }, \ - { K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, KC_NO, KC_NO, K2O, K2P, KC_NO }, \ - { K1A, KC_NO, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, KC_NO, K1M, K1N, K1O, K1P, KC_NO }, \ - { K0A, K0B, K0C, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K0J, KC_NO, K0K, K0L, K0M, K0N, K0O, K0P, KC_NO } \ -} -``` - -This layout needs to match the layout defined in - - qmk_firmware/layouts/community/75_ansi/layout.json - -### 2. Configuring rules.mk - -`rules.mk` needs to have the following line: - - LAYOUTS = 75_ansi - -### 3. Defining a keymap - -A keymap must be defined at - - qmk_firmware/layouts/community/75_ansi/yourfoldername/keymap.c - -This keymap must have a `LAYOUT_75_ansi` layout defined. - -```c -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_75_ansi( - KC_ESC, 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_PSCR, KC_PAUS, KC_DEL, - KC_GRV, 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_BSPC, KC_HOME, - 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_PGUP, - 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_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT) - }; -``` - -## Usage - -To make generate a hex file, type - - make yourkeyboard:yourfoldername - -This hex file will contain a keymap with layout `LAYOUT_75_ansi` derived from - - qmk_firmware/layouts/community/75_ansi/yourfoldername/keymap.c + LAYOUT_75_ansi diff --git a/layouts/community/75_iso/readme.md b/layouts/community/75_iso/readme.md new file mode 100644 index 0000000000..8c601b7e82 --- /dev/null +++ b/layouts/community/75_iso/readme.md @@ -0,0 +1,3 @@ +# 75_iso + + LAYOUT_75_iso diff --git a/layouts/community/96_ansi/readme.md b/layouts/community/96_ansi/readme.md new file mode 100644 index 0000000000..8543655610 --- /dev/null +++ b/layouts/community/96_ansi/readme.md @@ -0,0 +1,3 @@ +# 96_ansi + + LAYOUT_96_ansi diff --git a/layouts/community/96_iso/readme.md b/layouts/community/96_iso/readme.md new file mode 100644 index 0000000000..c4dc7f6e90 --- /dev/null +++ b/layouts/community/96_iso/readme.md @@ -0,0 +1,3 @@ +# 96_iso + + LAYOUT_96_iso diff --git a/layouts/community/alice/readme.md b/layouts/community/alice/readme.md new file mode 100644 index 0000000000..a52d497169 --- /dev/null +++ b/layouts/community/alice/readme.md @@ -0,0 +1,3 @@ +# alice + + LAYOUT_alice diff --git a/layouts/community/alice_split_bs/readme.md b/layouts/community/alice_split_bs/readme.md new file mode 100644 index 0000000000..705defa818 --- /dev/null +++ b/layouts/community/alice_split_bs/readme.md @@ -0,0 +1,3 @@ +# alice_split_bs + + LAYOUT_alice_split_bs diff --git a/layouts/community/ergodox/readme.md b/layouts/community/ergodox/readme.md index ddbe1933c2..e69af2bdef 100644 --- a/layouts/community/ergodox/readme.md +++ b/layouts/community/ergodox/readme.md @@ -1,3 +1,3 @@ # ergodox - LAYOUT_ergodox \ No newline at end of file + LAYOUT_ergodox diff --git a/layouts/community/fullsize_ansi/readme.md b/layouts/community/fullsize_ansi/readme.md new file mode 100644 index 0000000000..9589abe0d7 --- /dev/null +++ b/layouts/community/fullsize_ansi/readme.md @@ -0,0 +1,3 @@ +# fullsize_ansi + + LAYOUT_fullsize_ansi diff --git a/layouts/community/fullsize_extended_ansi/readme.md b/layouts/community/fullsize_extended_ansi/readme.md new file mode 100644 index 0000000000..7cc035cde9 --- /dev/null +++ b/layouts/community/fullsize_extended_ansi/readme.md @@ -0,0 +1,3 @@ +# fullsize_extended_ansi + + LAYOUT_fullsize_extended_ansi diff --git a/layouts/community/fullsize_extended_iso/readme.md b/layouts/community/fullsize_extended_iso/readme.md new file mode 100644 index 0000000000..8688591ef1 --- /dev/null +++ b/layouts/community/fullsize_extended_iso/readme.md @@ -0,0 +1,3 @@ +# fullsize_extended_iso + + LAYOUT_fullsize_extended_iso diff --git a/layouts/community/fullsize_extended_jis/readme.md b/layouts/community/fullsize_extended_jis/readme.md new file mode 100644 index 0000000000..79a00b5084 --- /dev/null +++ b/layouts/community/fullsize_extended_jis/readme.md @@ -0,0 +1,3 @@ +# fullsize_extended_jis + + LAYOUT_fullsize_extended_jis diff --git a/layouts/community/fullsize_iso/readme.md b/layouts/community/fullsize_iso/readme.md new file mode 100644 index 0000000000..65c7a89044 --- /dev/null +++ b/layouts/community/fullsize_iso/readme.md @@ -0,0 +1,3 @@ +# fullsize_iso + + LAYOUT_fullsize_iso diff --git a/layouts/community/fullsize_jis/readme.md b/layouts/community/fullsize_jis/readme.md new file mode 100644 index 0000000000..9385325157 --- /dev/null +++ b/layouts/community/fullsize_jis/readme.md @@ -0,0 +1,3 @@ +# fullsize_jis + + LAYOUT_fullsize_jis diff --git a/layouts/community/numpad_4x4/readme.md b/layouts/community/numpad_4x4/readme.md new file mode 100644 index 0000000000..5d4b8c6e31 --- /dev/null +++ b/layouts/community/numpad_4x4/readme.md @@ -0,0 +1,3 @@ +# numpad_4x4 + + LAYOUT_numpad_4x4 diff --git a/layouts/community/numpad_5x4/readme.md b/layouts/community/numpad_5x4/readme.md new file mode 100644 index 0000000000..e3fb7171bc --- /dev/null +++ b/layouts/community/numpad_5x4/readme.md @@ -0,0 +1,3 @@ +# numpad_5x4 + + LAYOUT_numpad_5x4 diff --git a/layouts/community/numpad_6x4/readme.md b/layouts/community/numpad_6x4/readme.md new file mode 100644 index 0000000000..063700d420 --- /dev/null +++ b/layouts/community/numpad_6x4/readme.md @@ -0,0 +1,3 @@ +# numpad_6x4 + + LAYOUT_numpad_6x4 diff --git a/layouts/community/numpad_6x5/readme.md b/layouts/community/numpad_6x5/readme.md new file mode 100644 index 0000000000..0c6d0959e3 --- /dev/null +++ b/layouts/community/numpad_6x5/readme.md @@ -0,0 +1,3 @@ +# numpad_6x5 + + LAYOUT_numpad_6x5 diff --git a/layouts/community/ortho_1x1/readme.md b/layouts/community/ortho_1x1/readme.md new file mode 100644 index 0000000000..c6352dd8d5 --- /dev/null +++ b/layouts/community/ortho_1x1/readme.md @@ -0,0 +1,3 @@ +# ortho_1x1 + + LAYOUT_ortho_1x1 diff --git a/layouts/community/ortho_3x3/readme.md b/layouts/community/ortho_3x3/readme.md new file mode 100644 index 0000000000..b6b2053565 --- /dev/null +++ b/layouts/community/ortho_3x3/readme.md @@ -0,0 +1,3 @@ +# ortho_3x3 + + LAYOUT_ortho_3x3 diff --git a/layouts/community/ortho_4x10/readme.md b/layouts/community/ortho_4x10/readme.md new file mode 100644 index 0000000000..c5c29251c8 --- /dev/null +++ b/layouts/community/ortho_4x10/readme.md @@ -0,0 +1,3 @@ +# ortho_4x10 + + LAYOUT_ortho_4x10 diff --git a/layouts/community/ortho_4x12/readme.md b/layouts/community/ortho_4x12/readme.md index 6963727c6e..5273e296d8 100644 --- a/layouts/community/ortho_4x12/readme.md +++ b/layouts/community/ortho_4x12/readme.md @@ -1,3 +1,3 @@ # ortho_4x12 - LAYOUT_ortho_4x12 \ No newline at end of file + LAYOUT_ortho_4x12 diff --git a/layouts/community/ortho_4x16/readme.md b/layouts/community/ortho_4x16/readme.md new file mode 100644 index 0000000000..6dce03f51a --- /dev/null +++ b/layouts/community/ortho_4x16/readme.md @@ -0,0 +1,3 @@ +# ortho_4x16 + + LAYOUT_ortho_4x16 diff --git a/layouts/community/ortho_4x4/readme.md b/layouts/community/ortho_4x4/readme.md index b7afef7b88..2c94c4c1cd 100644 --- a/layouts/community/ortho_4x4/readme.md +++ b/layouts/community/ortho_4x4/readme.md @@ -1,3 +1,3 @@ # ortho_4x4 - LAYOUT_ortho_4x4 \ No newline at end of file + LAYOUT_ortho_4x4 diff --git a/layouts/community/ortho_4x6/readme.md b/layouts/community/ortho_4x6/readme.md new file mode 100644 index 0000000000..67c6175ee8 --- /dev/null +++ b/layouts/community/ortho_4x6/readme.md @@ -0,0 +1,3 @@ +# ortho_4x6 + + LAYOUT_ortho_4x6 diff --git a/layouts/community/ortho_5x12/readme.md b/layouts/community/ortho_5x12/readme.md index b5037efecd..956f2b7023 100644 --- a/layouts/community/ortho_5x12/readme.md +++ b/layouts/community/ortho_5x12/readme.md @@ -1,3 +1,3 @@ # ortho_5x12 - LAYOUT_ortho_5x12 \ No newline at end of file + LAYOUT_ortho_5x12 diff --git a/layouts/community/ortho_5x14/readme.md b/layouts/community/ortho_5x14/readme.md new file mode 100644 index 0000000000..bf2af9a639 --- /dev/null +++ b/layouts/community/ortho_5x14/readme.md @@ -0,0 +1,3 @@ +# ortho_5x14 + + LAYOUT_ortho_5x14 diff --git a/layouts/community/ortho_5x15/readme.md b/layouts/community/ortho_5x15/readme.md index 137af0aeb0..2fe7c7f769 100644 --- a/layouts/community/ortho_5x15/readme.md +++ b/layouts/community/ortho_5x15/readme.md @@ -1,3 +1,3 @@ # ortho_5x15 - LAYOUT_ortho_5x15 \ No newline at end of file + LAYOUT_ortho_5x15 diff --git a/layouts/community/ortho_5x4/readme.md b/layouts/community/ortho_5x4/readme.md new file mode 100644 index 0000000000..c953628ef6 --- /dev/null +++ b/layouts/community/ortho_5x4/readme.md @@ -0,0 +1,3 @@ +# ortho_5x4 + + LAYOUT_ortho_5x4 diff --git a/layouts/community/ortho_5x5/readme.md b/layouts/community/ortho_5x5/readme.md index 3dd75765d1..2922976d3a 100644 --- a/layouts/community/ortho_5x5/readme.md +++ b/layouts/community/ortho_5x5/readme.md @@ -1,3 +1,3 @@ # ortho_5x5 - LAYOUT_ortho_5x5 \ No newline at end of file + LAYOUT_ortho_5x5 diff --git a/layouts/community/ortho_6x4/readme.md b/layouts/community/ortho_6x4/readme.md new file mode 100644 index 0000000000..02b1c32d58 --- /dev/null +++ b/layouts/community/ortho_6x4/readme.md @@ -0,0 +1,3 @@ +# ortho_6x4 + + LAYOUT_ortho_6x4 diff --git a/layouts/community/planck_mit/readme.md b/layouts/community/planck_mit/readme.md new file mode 100644 index 0000000000..e1cf2c9e36 --- /dev/null +++ b/layouts/community/planck_mit/readme.md @@ -0,0 +1,3 @@ +# planck_mit + + LAYOUT_planck_mit diff --git a/layouts/community/split_3x5_2/readme.md b/layouts/community/split_3x5_2/readme.md new file mode 100644 index 0000000000..379bdac675 --- /dev/null +++ b/layouts/community/split_3x5_2/readme.md @@ -0,0 +1,3 @@ +# split_3x5_2 + + LAYOUT_split_3x5_2 diff --git a/layouts/community/split_3x5_3/readme.md b/layouts/community/split_3x5_3/readme.md new file mode 100644 index 0000000000..c24b0c0293 --- /dev/null +++ b/layouts/community/split_3x5_3/readme.md @@ -0,0 +1,3 @@ +# split_3x5_3 + + LAYOUT_split_3x5_3 diff --git a/layouts/community/split_3x6_3/readme.md b/layouts/community/split_3x6_3/readme.md new file mode 100644 index 0000000000..ced9a2e752 --- /dev/null +++ b/layouts/community/split_3x6_3/readme.md @@ -0,0 +1,3 @@ +# split_3x6_3 + + LAYOUT_split_3x6_3 diff --git a/layouts/community/tkl_ansi/readme.md b/layouts/community/tkl_ansi/readme.md new file mode 100644 index 0000000000..cd4197ef4e --- /dev/null +++ b/layouts/community/tkl_ansi/readme.md @@ -0,0 +1,3 @@ +# tkl_ansi + + LAYOUT_tkl_ansi diff --git a/layouts/community/tkl_ansi_split_bs_rshift/readme.md b/layouts/community/tkl_ansi_split_bs_rshift/readme.md new file mode 100644 index 0000000000..9eaefc20ab --- /dev/null +++ b/layouts/community/tkl_ansi_split_bs_rshift/readme.md @@ -0,0 +1,3 @@ +# tkl_ansi_split_bs_rshift + + LAYOUT_tkl_ansi_split_bs_rshift diff --git a/layouts/community/tkl_ansi_tsangan/readme.md b/layouts/community/tkl_ansi_tsangan/readme.md new file mode 100644 index 0000000000..f731757359 --- /dev/null +++ b/layouts/community/tkl_ansi_tsangan/readme.md @@ -0,0 +1,3 @@ +# tkl_ansi_tsangan + + LAYOUT_tkl_ansi_tsangan diff --git a/layouts/community/tkl_ansi_tsangan_split_bs_rshift/readme.md b/layouts/community/tkl_ansi_tsangan_split_bs_rshift/readme.md new file mode 100644 index 0000000000..eaa7fe6668 --- /dev/null +++ b/layouts/community/tkl_ansi_tsangan_split_bs_rshift/readme.md @@ -0,0 +1,3 @@ +# tkl_ansi_tsangan_split_bs_rshift + + LAYOUT_tkl_ansi_tsangan_split_bs_rshift diff --git a/layouts/community/tkl_f13_ansi/readme.md b/layouts/community/tkl_f13_ansi/readme.md new file mode 100644 index 0000000000..902a8e5395 --- /dev/null +++ b/layouts/community/tkl_f13_ansi/readme.md @@ -0,0 +1,3 @@ +# tkl_f13_ansi + + LAYOUT_tkl_f13_ansi diff --git a/layouts/community/tkl_f13_ansi_split_bs_rshift/readme.md b/layouts/community/tkl_f13_ansi_split_bs_rshift/readme.md new file mode 100644 index 0000000000..229fc74918 --- /dev/null +++ b/layouts/community/tkl_f13_ansi_split_bs_rshift/readme.md @@ -0,0 +1,3 @@ +# tkl_f13_ansi_split_bs_rshift + + LAYOUT_tkl_f13_ansi_split_bs_rshift diff --git a/layouts/community/tkl_f13_ansi_tsangan/readme.md b/layouts/community/tkl_f13_ansi_tsangan/readme.md new file mode 100644 index 0000000000..2151c877c3 --- /dev/null +++ b/layouts/community/tkl_f13_ansi_tsangan/readme.md @@ -0,0 +1,3 @@ +# tkl_f13_ansi_tsangan + + LAYOUT_tkl_f13_ansi_tsangan diff --git a/layouts/community/tkl_f13_ansi_tsangan_split_bs_rshift/readme.md b/layouts/community/tkl_f13_ansi_tsangan_split_bs_rshift/readme.md new file mode 100644 index 0000000000..7a1c4baa1b --- /dev/null +++ b/layouts/community/tkl_f13_ansi_tsangan_split_bs_rshift/readme.md @@ -0,0 +1,3 @@ +# tkl_f13_ansi_tsangan_split_bs_rshift + + LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift diff --git a/layouts/community/tkl_f13_iso/readme.md b/layouts/community/tkl_f13_iso/readme.md new file mode 100644 index 0000000000..e7bba09f3f --- /dev/null +++ b/layouts/community/tkl_f13_iso/readme.md @@ -0,0 +1,3 @@ +# tkl_f13_iso + + LAYOUT_tkl_f13_iso diff --git a/layouts/community/tkl_f13_iso_split_bs_rshift/readme.md b/layouts/community/tkl_f13_iso_split_bs_rshift/readme.md new file mode 100644 index 0000000000..4c4fc597df --- /dev/null +++ b/layouts/community/tkl_f13_iso_split_bs_rshift/readme.md @@ -0,0 +1,3 @@ +# tkl_f13_iso_split_bs_rshift + + LAYOUT_tkl_f13_iso_split_bs_rshift diff --git a/layouts/community/tkl_f13_iso_tsangan/readme.md b/layouts/community/tkl_f13_iso_tsangan/readme.md new file mode 100644 index 0000000000..377b9a014e --- /dev/null +++ b/layouts/community/tkl_f13_iso_tsangan/readme.md @@ -0,0 +1,3 @@ +# tkl_f13_iso_tsangan + + LAYOUT_tkl_f13_iso_tsangan diff --git a/layouts/community/tkl_f13_iso_tsangan_split_bs_rshift/readme.md b/layouts/community/tkl_f13_iso_tsangan_split_bs_rshift/readme.md new file mode 100644 index 0000000000..03e957dada --- /dev/null +++ b/layouts/community/tkl_f13_iso_tsangan_split_bs_rshift/readme.md @@ -0,0 +1,3 @@ +# tkl_f13_iso_tsangan_split_bs_rshift + + LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift diff --git a/layouts/community/tkl_f13_jis/readme.md b/layouts/community/tkl_f13_jis/readme.md new file mode 100644 index 0000000000..cc49ffd830 --- /dev/null +++ b/layouts/community/tkl_f13_jis/readme.md @@ -0,0 +1,3 @@ +# tkl_f13_jis + + LAYOUT_tkl_f13_jis diff --git a/layouts/community/tkl_iso/readme.md b/layouts/community/tkl_iso/readme.md new file mode 100644 index 0000000000..27281687cd --- /dev/null +++ b/layouts/community/tkl_iso/readme.md @@ -0,0 +1,3 @@ +# tkl_iso + + LAYOUT_tkl_iso diff --git a/layouts/community/tkl_iso_split_bs_rshift/readme.md b/layouts/community/tkl_iso_split_bs_rshift/readme.md new file mode 100644 index 0000000000..4fcb279dc0 --- /dev/null +++ b/layouts/community/tkl_iso_split_bs_rshift/readme.md @@ -0,0 +1,3 @@ +# tkl_iso_split_bs_rshift + + LAYOUT_tkl_iso_split_bs_rshift diff --git a/layouts/community/tkl_iso_tsangan/readme.md b/layouts/community/tkl_iso_tsangan/readme.md new file mode 100644 index 0000000000..9f20ae7ba1 --- /dev/null +++ b/layouts/community/tkl_iso_tsangan/readme.md @@ -0,0 +1,3 @@ +# tkl_iso_tsangan + + LAYOUT_tkl_iso_tsangan diff --git a/layouts/community/tkl_iso_tsangan_split_bs_rshift/readme.md b/layouts/community/tkl_iso_tsangan_split_bs_rshift/readme.md new file mode 100644 index 0000000000..08daf376bc --- /dev/null +++ b/layouts/community/tkl_iso_tsangan_split_bs_rshift/readme.md @@ -0,0 +1,3 @@ +# tkl_iso_tsangan_split_bs_rshift + + LAYOUT_tkl_iso_tsangan_split_bs_rshift diff --git a/layouts/community/tkl_jis/readme.md b/layouts/community/tkl_jis/readme.md new file mode 100644 index 0000000000..860d9b2936 --- /dev/null +++ b/layouts/community/tkl_jis/readme.md @@ -0,0 +1,3 @@ +# tkl_jis + + LAYOUT_tkl_jis diff --git a/layouts/community/tkl_nofrow_ansi/readme.md b/layouts/community/tkl_nofrow_ansi/readme.md new file mode 100644 index 0000000000..693b1245e6 --- /dev/null +++ b/layouts/community/tkl_nofrow_ansi/readme.md @@ -0,0 +1,3 @@ +# tkl_nofrow_ansi + + LAYOUT_tkl_nofrow_ansi diff --git a/layouts/community/tkl_nofrow_iso/readme.md b/layouts/community/tkl_nofrow_iso/readme.md new file mode 100644 index 0000000000..aeaa5cfd06 --- /dev/null +++ b/layouts/community/tkl_nofrow_iso/readme.md @@ -0,0 +1,3 @@ +# tkl_nofrow_iso + + LAYOUT_tkl_nofrow_iso From 1ed03f498fa204178c2696c510ac6a2cd8524e2d Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 26 Nov 2023 18:36:45 +0000 Subject: [PATCH 412/496] Remove userspace keymaps (#22544) --- .../1up60hse/keymaps/vosechu/config.h | 19 - .../1up60hse/keymaps/vosechu/keymap.c | 46 - .../1up60hse/keymaps/vosechu/readme.md | 6 - .../1up60hte/keymaps/badger/keymap.c | 59 - .../1up60rgb/keymaps/badger/keymap.c | 59 - .../pi40/mit_v1_0/keymaps/miketronic/config.h | 13 - .../pi40/mit_v1_0/keymaps/miketronic/keymap.c | 290 - .../pi40/mit_v1_0/keymaps/miketronic/rules.mk | 22 - .../keymaps/manna-harbour_miryoku/config.h | 32 - .../keymaps/manna-harbour_miryoku/keymap.c | 17 - .../nano/keymaps/drashna/config.h | 22 - .../nano/keymaps/drashna/keymap.c | 31 - .../nano/keymaps/drashna/rules.mk | 6 - keyboards/9key/keymaps/bcat/keymap.c | 39 - keyboards/9key/keymaps/bcat/readme.md | 5 - .../keymaps/manna-harbour_miryoku/config.h | 19 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - .../keymaps/manna-harbour_miryoku/rules.mk | 4 - .../shark/alpha/keymaps/ajp10304/readme.md | 126 - .../macropad/keymaps/drashna/config.h | 7 - .../macropad/keymaps/drashna/keymap.c | 100 - .../macropad/keymaps/drashna/rules.mk | 3 - .../macropad/keymaps/peterfalken/keymap.c | 98 - .../macropad/keymaps/peterfalken/rules.mk | 3 - keyboards/ai03/lunar/keymaps/zyber/keymap.c | 23 - keyboards/alpha/keymaps/hvp/keymap.c | 51 - keyboards/alps64/keymaps/mechmerlin/keymap.c | 26 - keyboards/alps64/keymaps/mechmerlin/readme.md | 10 - keyboards/alps64/keymaps/zyber/keymap.c | 33 - keyboards/arisu/keymaps/stanrc85/keymap.c | 50 - keyboards/arisu/keymaps/stanrc85/rules.mk | 1 - .../atreus/keymaps/dvorak_42_key/README.md | 21 - .../atreus/keymaps/dvorak_42_key/config.h | 15 - .../atreus/keymaps/dvorak_42_key/keymap.c | 167 - keyboards/atreus/keymaps/ibnuda/keymap.c | 47 - keyboards/atreus/keymaps/ibnuda/rules.mk | 1 - .../keymaps/manna-harbour_miryoku/config.h | 21 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - .../atreus/keymaps/ridingqwerty/config.h | 13 - .../atreus/keymaps/ridingqwerty/keymap.c | 153 - .../atreus/keymaps/ridingqwerty/readme.md | 1 - .../atreus/keymaps/ridingqwerty/rules.mk | 22 - keyboards/atreus/keymaps/talljoe/config.h | 53 - keyboards/atreus/keymaps/talljoe/keymap.c | 1 - keyboards/atreus/keymaps/talljoe/rules.mk | 1 - keyboards/atreus62/keymaps/d4mation/keymap.c | 196 - keyboards/atreus62/keymaps/d4mation/readme.md | 40 - keyboards/atreus62/keymaps/d4mation/rules.mk | 2 - keyboards/atreus62/keymaps/hvp/config.h | 4 - keyboards/atreus62/keymaps/hvp/keymap.c | 67 - keyboards/atreus62/keymaps/hvp/readme.md | 10 - keyboards/atreus62/keymaps/hvp/rules.mk | 1 - keyboards/atreus62/keymaps/jarred/config.h | 21 - keyboards/atreus62/keymaps/jarred/keymap.c | 26 - keyboards/atreus62/keymaps/pcewing/keymap.c | 76 - keyboards/atreus62/keymaps/scheiklp/config.h | 51 - keyboards/atreus62/keymaps/scheiklp/keymap.c | 43 - keyboards/atreus62/keymaps/scheiklp/readme.md | 13 - keyboards/atreus62/keymaps/scheiklp/rules.mk | 4 - .../charybdis/3x5/keymaps/drashna/config.h | 109 - .../charybdis/3x5/keymaps/drashna/halconf.h | 27 - .../charybdis/3x5/keymaps/drashna/keymap.c | 84 - .../charybdis/3x5/keymaps/drashna/mcuconf.h | 44 - .../charybdis/3x5/keymaps/drashna/rules.mk | 43 - .../keymaps/manna-harbour_miryoku/config.h | 19 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - .../keymaps/manna-harbour_miryoku/rules.mk | 4 - .../charybdis/4x6/keymaps/drashna/config.h | 69 - .../charybdis/4x6/keymaps/drashna/keymap.c | 154 - .../charybdis/4x6/keymaps/drashna/mcuconf.h | 27 - .../charybdis/4x6/keymaps/drashna/rules.mk | 52 - .../keymaps/manna-harbour_miryoku/config.h | 23 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - .../keymaps/manna-harbour_miryoku/rules.mk | 4 - .../dilemma/3x5_2/keymaps/drashna/config.h | 10 - .../dilemma/3x5_2/keymaps/drashna/halconf.h | 23 - .../dilemma/3x5_2/keymaps/drashna/keymap.c | 176 - .../dilemma/3x5_2/keymaps/drashna/mcuconf.h | 26 - .../dilemma/3x5_2/keymaps/drashna/rules.mk | 7 - .../keymaps/manna-harbour_miryoku/config.h | 23 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - keyboards/bfake/keymaps/mechmerlin/keymap.c | 51 - keyboards/bfake/keymaps/mechmerlin/readme.md | 18 - .../keymaps/manna-harbour_miryoku/config.h | 22 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - .../boardsource/lulu/keymaps/rmeli/config.h | 45 - .../boardsource/lulu/keymaps/rmeli/keymap.c | 108 - .../boardsource/lulu/keymaps/rmeli/rules.mk | 9 - .../the_mark/keymaps/stanrc85/keymap.c | 98 - .../boardwalk/keymaps/nchristus/config.h | 16 - .../boardwalk/keymaps/nchristus/keymap.c | 62 - .../boardwalk/keymaps/nchristus/readme.md | 1 - .../boardwalk/keymaps/nchristus/rules.mk | 14 - .../tmov2/keymaps/brandonschlack/keymap.c | 173 - keyboards/centromere/keymaps/mattly/keymap.c | 55 - keyboards/centromere/keymaps/mattly/rules.mk | 1 - .../quark/keymaps/ajp10304/keymap.c | 219 - .../quark/keymaps/ajp10304/readme.md | 126 - .../quark/keymaps/ajp10304/rules.mk | 1 - .../clueboard/66/keymaps/badger/keymap.c | 53 - .../contra/keymaps/losinggeneration/README.md | 30 - .../contra/keymaps/losinggeneration/config.h | 23 - .../contra/keymaps/losinggeneration/keymap.c | 40 - .../contra/keymaps/losinggeneration/rules.mk | 14 - .../converter/adb_usb/keymaps/zyber/keymap.c | 15 - .../m0110_usb/keymaps/zyber/keymap.c | 76 - .../m0110_usb/keymaps/zyber/rules.mk | 3 - .../sun_usb/type5/keymaps/sigma/keymap.c | 31 - .../sun_usb/type5/keymaps/sigma/readme.md | 12 - .../sun_usb/type5/keymaps/sigma/rules.mk | 2 - .../converter/usb_usb/keymaps/narze/README.md | 10 - .../converter/usb_usb/keymaps/narze/config.h | 43 - .../converter/usb_usb/keymaps/narze/keymap.c | 167 - .../converter/usb_usb/keymaps/narze/rules.mk | 2 - .../keymaps/brandonschlack/keymap.c | 60 - .../discipline/keymaps/noroadsleft/config.h | 20 - .../discipline/keymaps/noroadsleft/keymap.c | 72 - .../discipline/keymaps/noroadsleft/rules.mk | 1 - .../romeo/keymaps/brandonschlack/keymap.c | 111 - .../speedo/v3/keymaps/pcewing/keymap.c | 132 - .../crkbd/keymaps/cameronjlarsen/config.h | 47 - .../crkbd/keymaps/cameronjlarsen/keymap.c | 357 -- .../crkbd/keymaps/cameronjlarsen/rules.mk | 14 - keyboards/crkbd/keymaps/curry/config.h | 20 - keyboards/crkbd/keymaps/curry/keymap.c | 76 - keyboards/crkbd/keymaps/curry/rules.mk | 16 - keyboards/crkbd/keymaps/devdev/config.h | 133 - keyboards/crkbd/keymaps/devdev/keymap.c | 396 -- keyboards/crkbd/keymaps/devdev/rules.mk | 4 - keyboards/crkbd/keymaps/edvorakjp/config.h | 24 - keyboards/crkbd/keymaps/edvorakjp/keymap.c | 67 - keyboards/crkbd/keymaps/edvorakjp/oled.c | 56 - keyboards/crkbd/keymaps/edvorakjp/oled.h | 17 - keyboards/crkbd/keymaps/edvorakjp/readme.md | 21 - keyboards/crkbd/keymaps/edvorakjp/rules.mk | 28 - keyboards/crkbd/keymaps/ericgebhart/config.h | 24 - keyboards/crkbd/keymaps/ericgebhart/keymap.c | 18 - keyboards/crkbd/keymaps/hvp/config.h | 54 - keyboards/crkbd/keymaps/hvp/keymap.c | 160 - keyboards/crkbd/keymaps/hvp/readme.md | 10 - keyboards/crkbd/keymaps/hvp/rules.mk | 13 - keyboards/crkbd/keymaps/jarred/config.h | 49 - keyboards/crkbd/keymaps/jarred/keymap.c | 152 - keyboards/crkbd/keymaps/jarred/readme.md | 9 - keyboards/crkbd/keymaps/jarred/rules.mk | 31 - keyboards/crkbd/keymaps/ninjonas/README.md | 99 - keyboards/crkbd/keymaps/ninjonas/config.h | 88 - keyboards/crkbd/keymaps/ninjonas/keymap.c | 101 - keyboards/crkbd/keymaps/ninjonas/rules.mk | 7 - keyboards/crkbd/keymaps/ollyhayes/config.h | 95 - keyboards/crkbd/keymaps/ollyhayes/keymap.c | 112 - keyboards/crkbd/keymaps/ollyhayes/oled.c | 112 - keyboards/crkbd/keymaps/ollyhayes/readme.md | 67 - keyboards/crkbd/keymaps/ollyhayes/rules.mk | 16 - keyboards/crkbd/keymaps/pdl/config.h | 29 - keyboards/crkbd/keymaps/pdl/keymap.c | 62 - keyboards/crkbd/keymaps/rmeli/config.h | 67 - keyboards/crkbd/keymaps/rmeli/keymap.c | 129 - keyboards/crkbd/keymaps/rmeli/rules.mk | 11 - keyboards/crkbd/keymaps/rs/config.h | 49 - keyboards/crkbd/keymaps/rs/keymap.c | 39 - keyboards/crkbd/keymaps/rs/oled.c | 87 - keyboards/crkbd/keymaps/rs/readme.md | 19 - keyboards/crkbd/keymaps/rs/rules.mk | 31 - keyboards/crkbd/keymaps/snowe/config.h | 58 - .../crkbd/keymaps/snowe/keycode_aliases.h | 81 - keyboards/crkbd/keymaps/snowe/keymap.c | 211 - keyboards/crkbd/keymaps/snowe/rules.mk | 25 - keyboards/crkbd/keymaps/toinux/config.h | 123 - keyboards/crkbd/keymaps/toinux/glcdfont.c | 232 - keyboards/crkbd/keymaps/toinux/keycodes.h | 49 - keyboards/crkbd/keymaps/toinux/keymap.c | 259 - keyboards/crkbd/keymaps/toinux/oled.c | 112 - keyboards/crkbd/keymaps/toinux/oled.h | 71 - keyboards/crkbd/keymaps/toinux/rgb.c | 72 - keyboards/crkbd/keymaps/toinux/rules.mk | 8 - keyboards/crkbd/keymaps/tominabox1/keymap.c | 46 - .../crkbd/rev1/keymaps/dvorak_42_key/config.h | 44 - .../crkbd/rev1/keymaps/dvorak_42_key/keymap.c | 289 - .../crkbd/rev1/keymaps/dvorak_42_key/rules.mk | 8 - .../borsdorf/keymaps/zyber/keymap.c | 35 - .../doro67/multi/keymaps/konstantin/config.h | 4 - .../doro67/multi/keymaps/konstantin/keymap.c | 67 - .../doro67/multi/keymaps/konstantin/rules.mk | 18 - keyboards/doro67/multi/keymaps/zyber/keymap.c | 36 - .../keymaps/manna-harbour_miryoku/config.h | 24 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - .../dumbpad/v1x/keymaps/imchipwood/keymap.c | 95 - .../durgod/k320/keymaps/moults31/config.h | 20 - .../durgod/k320/keymaps/moults31/keymap.c | 84 - .../durgod/k320/keymaps/moults31/readme.md | 10 - .../durgod/k320/keymaps/moults31/rules.mk | 2 - keyboards/dz60/keymaps/billypython/config.h | 3 - keyboards/dz60/keymaps/billypython/keymap.c | 46 - keyboards/dz60/keymaps/billypython/rules.mk | 8 - keyboards/dz60/keymaps/doogle999/keymap.c | 74 - keyboards/dz60/keymaps/draevin/keymap.c | 46 - keyboards/dz60/keymaps/jarred/keymap.c | 21 - keyboards/dz60/keymaps/jdelkins/config.h | 54 - keyboards/dz60/keymaps/jdelkins/keymap.c | 352 -- keyboards/dz60/keymaps/jdelkins/rules.mk | 7 - keyboards/dz60/keymaps/konstantin_b/config.h | 3 - keyboards/dz60/keymaps/konstantin_b/keymap.c | 46 - keyboards/dz60/keymaps/konstantin_b/rules.mk | 21 - keyboards/dz60/keymaps/mechmerlin/config.h | 6 - keyboards/dz60/keymaps/mechmerlin/keymap.c | 40 - keyboards/dz60/keymaps/mechmerlin/readme.md | 68 - keyboards/dz60/keymaps/spotpuff/keymap.c | 95 - keyboards/dz60/keymaps/spotpuff/rules.mk | 1 - .../dz60/keymaps/twschum_b_4_10/config.h | 24 - .../dz60/keymaps/twschum_b_4_10/keymap.c | 123 - .../dz60/keymaps/twschum_b_4_10/layout.json | 4877 ----------------- .../dz60/keymaps/twschum_b_4_10/rules.mk | 15 - keyboards/dz60/keymaps/xtonhasvim/config.h | 17 - keyboards/dz60/keymaps/xtonhasvim/keymap.c | 87 - keyboards/dz60/keymaps/xtonhasvim/readme.md | 10 - .../dztech/dz60rgb/keymaps/moults31/keymap.c | 42 - .../dztech/dz60rgb/keymaps/moults31/readme.md | 11 - .../dztech/dz60rgb/keymaps/moults31/rules.mk | 1 - .../dz60rgb_ansi/keymaps/badger/keymap.c | 60 - .../dztech/dz65rgb/keymaps/haervig/keymap.c | 36 - .../dztech/dz65rgb/keymaps/haervig/rules.mk | 3 - keyboards/eco/keymaps/bcat/config.h | 33 - keyboards/eco/keymaps/bcat/keymap.c | 52 - keyboards/eco/keymaps/bcat/readme.md | 44 - keyboards/eco/keymaps/bcat/rules.mk | 3 - keyboards/ein_60/keymaps/klackygears/config.h | 27 - keyboards/ein_60/keymaps/klackygears/keymap.c | 175 - .../ein_60/keymaps/klackygears/readme.md | 1 - keyboards/ein_60/keymaps/klackygears/rules.mk | 8 - .../ergodox_ez/keymaps/danielo515/config.h | 39 - .../ergodox_ez/keymaps/danielo515/keymap.c | 326 -- .../ergodox_ez/keymaps/danielo515/rules.mk | 9 - .../keymaps/dvorak_42_key/README.md | 19 - .../ergodox_ez/keymaps/dvorak_42_key/keymap.c | 340 -- .../ergodox_ez/keymaps/ericgebhart/keymap.c | 18 - .../ergodox_ez/keymaps/ericgebhart/readme.md | 5 - keyboards/ergodox_ez/keymaps/pvinis/keymap.c | 333 -- keyboards/ergodox_ez/keymaps/pvinis/readme.md | 65 - keyboards/ergodox_ez/keymaps/pvinis/rules.mk | 1 - keyboards/ergodox_ez/keymaps/rishka/config.h | 17 - keyboards/ergodox_ez/keymaps/rishka/keymap.c | 210 - keyboards/ergodox_ez/keymaps/rishka/rules.mk | 2 - keyboards/ergodox_ez/keymaps/rmw/config.h | 53 - keyboards/ergodox_ez/keymaps/rmw/keymap-mac.c | 188 - keyboards/ergodox_ez/keymaps/rmw/keymap-win.c | 159 - keyboards/ergodox_ez/keymaps/rmw/keymap.c | 13 - keyboards/ergodox_ez/keymaps/rmw/readme.md | 11 - keyboards/ergodox_ez/keymaps/rmw/rules.mk | 1 - keyboards/ergotravel/keymaps/jarred/config.h | 26 - keyboards/ergotravel/keymaps/jarred/keymap.c | 50 - .../keymaps/manna-harbour_miryoku/config.h | 21 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - keyboards/ergotravel/keymaps/rs/config.h | 40 - keyboards/ergotravel/keymaps/rs/keymap.c | 38 - keyboards/ergotravel/keymaps/rs/readme.md | 1 - keyboards/ergotravel/keymaps/yanfali/config.h | 42 - keyboards/ergotravel/keymaps/yanfali/keymap.c | 108 - keyboards/ergotravel/keymaps/yanfali/rules.mk | 7 - .../evyd13/wasdat/keymaps/konstantin/config.h | 4 - .../evyd13/wasdat/keymaps/konstantin/keymap.c | 79 - .../evyd13/wasdat/keymaps/konstantin/rules.mk | 17 - .../keymaps/brandonschlack/config.h | 19 - .../keymaps/brandonschlack/keymap.c | 170 - .../keymaps/brandonschlack/rules.mk | 8 - keyboards/fc660c/keymaps/zyber/keymap.c | 47 - .../bigswitch/keymaps/333fred/config.h | 27 - .../bigswitch/keymaps/333fred/keymap.c | 145 - .../bigswitch/keymaps/333fred/rules.mk | 5 - .../flehrad/bigswitch/keymaps/wanleg/config.h | 42 - .../flehrad/bigswitch/keymaps/wanleg/keymap.c | 26 - .../flehrad/bigswitch/keymaps/wanleg/rules.mk | 14 - .../foostan/cornelius/keymaps/hvp/config.h | 19 - .../foostan/cornelius/keymaps/hvp/keymap.c | 66 - .../foostan/cornelius/keymaps/hvp/readme.md | 1 - .../foostan/cornelius/keymaps/hvp/rules.mk | 1 - .../foostan/cornelius/keymaps/pdl/config.h | 29 - .../foostan/cornelius/keymaps/pdl/keymap.c | 62 - .../foostan/cornelius/keymaps/pdl/readme.md | 1 - .../keymaps/manna-harbour_miryoku/config.h | 22 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - .../keymaps/manna-harbour_miryoku/config.h | 22 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - .../leaf60/universal/keymaps/jarred/keymap.c | 37 - .../leaf60/universal/keymaps/jarred/readme.md | 9 - .../leaf60/universal/keymaps/mguterl/config.h | 19 - .../leaf60/universal/keymaps/mguterl/keymap.c | 43 - .../universal/keymaps/mguterl/readme.md | 11 - .../butterstick/keymaps/dennytom/README.md | 11 - .../butterstick/keymaps/dennytom/keymap.c | 1418 ----- .../keymaps/dennytom/keymap_def.json | 309 -- .../butterstick/keymaps/dennytom/rules.mk | 8 - .../gboards/georgi/keymaps/dennytom/README.md | 11 - .../gboards/georgi/keymaps/dennytom/keymap.c | 1208 ---- .../georgi/keymaps/dennytom/keymap_def.json | 153 - .../gboards/georgi/keymaps/dennytom/rules.mk | 2 - .../gboards/gergo/keymaps/drashna/keymap.c | 99 - .../gboards/gergo/keymaps/drashna/rules.mk | 2 - .../keymaps/manna-harbour_miryoku/config.h | 21 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - keyboards/gh60/satan/keymaps/jarred/keymap.c | 22 - keyboards/gh60/satan/keymaps/jarred/readme.md | 1 - .../gmmk/gmmk2/p65/ansi/keymaps/vnmm/keymap.c | 57 - .../gmmk2/p65/ansi/keymaps/vnmm/readme.md | 10 - .../gmmk/gmmk2/p65/ansi/keymaps/vnmm/rules.mk | 2 - .../pro/rev1/ansi/keymaps/byungyoonc/config.h | 72 - .../pro/rev1/ansi/keymaps/byungyoonc/keymap.c | 132 - .../rev1/ansi/keymaps/byungyoonc/readme.md | 41 - .../keymaps/byungyoonc/rgb_matrix_user.inc | 1 - .../pro/rev1/ansi/keymaps/byungyoonc/rules.mk | 2 - .../pro/rev1/ansi/keymaps/cedrikl/keymap.c | 163 - .../ansi/keymaps/cedrikl/rgb_matrix_map.h | 185 - .../pro/rev1/ansi/keymaps/cedrikl/rules.mk | 2 - .../pro/rev1/ansi/keymaps/gourdo1/config.h | 146 - .../pro/rev1/ansi/keymaps/gourdo1/keymap.c | 713 --- .../rev1/ansi/keymaps/gourdo1/paddlegame.h | 48 - .../pro/rev1/ansi/keymaps/gourdo1/readme.md | 124 - .../ansi/keymaps/gourdo1/rgb_matrix_map.h | 410 -- .../pro/rev1/ansi/keymaps/gourdo1/rules.mk | 18 - .../pro/rev1/ansi/keymaps/jonavin/config.h | 39 - .../pro/rev1/ansi/keymaps/jonavin/keymap.c | 204 - .../pro/rev1/ansi/keymaps/jonavin/readme.md | 65 - .../ansi/keymaps/jonavin/rgb_matrix_map.h | 144 - .../pro/rev1/ansi/keymaps/jonavin/rules.mk | 12 - .../pro/rev1/ansi/keymaps/moults31/keymap.c | 92 - .../gmmk/pro/rev1/ansi/keymaps/vnmm/keymap.c | 65 - .../gmmk/pro/rev1/ansi/keymaps/vnmm/readme.md | 10 - .../gmmk/pro/rev1/ansi/keymaps/vnmm/rules.mk | 2 - .../pro/rev1/iso/keymaps/gourdo1/config.h | 146 - .../pro/rev1/iso/keymaps/gourdo1/keymap.c | 726 --- .../pro/rev1/iso/keymaps/gourdo1/paddlegame.h | 48 - .../pro/rev1/iso/keymaps/gourdo1/readme.md | 124 - .../rev1/iso/keymaps/gourdo1/rgb_matrix_map.h | 433 -- .../pro/rev1/iso/keymaps/gourdo1/rules.mk | 22 - .../pro/rev1/iso/keymaps/jonavin/config.h | 39 - .../pro/rev1/iso/keymaps/jonavin/keymap.c | 194 - .../pro/rev1/iso/keymaps/jonavin/readme.md | 53 - .../rev1/iso/keymaps/jonavin/rgb_matrix_map.h | 146 - .../pro/rev1/iso/keymaps/jonavin/rules.mk | 12 - .../gmmk/pro/rev1/iso/keymaps/vitoni/config.h | 20 - .../gmmk/pro/rev1/iso/keymaps/vitoni/keymap.c | 149 - .../pro/rev1/iso/keymaps/vitoni/readme.adoc | 104 - .../gopolar/gg86/keymaps/horrortroll/keymap.c | 89 - .../keymaps/horrortroll/oled/oled_stuff.h | 68 - .../solder/keymaps/brandonschlack/config.h | 29 - .../solder/keymaps/brandonschlack/keymap.c | 80 - .../solder/keymaps/brandonschlack/readme.md | 9 - .../solder/keymaps/brandonschlack/rules.mk | 2 - keyboards/hadron/ver3/keymaps/ishtob/keymap.c | 241 - .../hadron/ver3/keymaps/ishtob/readme.md | 2 - keyboards/hadron/ver3/keymaps/xulkal/config.h | 1 - keyboards/hadron/ver3/keymaps/xulkal/keymap.c | 73 - keyboards/hadron/ver3/keymaps/xulkal/rules.mk | 4 - .../atreus50/keymaps/ajp10304/config.h | 28 - .../atreus50/keymaps/ajp10304/keymap.c | 222 - .../atreus50/keymaps/ajp10304/readme.md | 130 - .../atreus50/keymaps/ajp10304/rules.mk | 3 - .../brain/keymaps/klackygears/config.h | 40 - .../brain/keymaps/klackygears/keymap.c | 99 - .../brain/keymaps/klackygears/rules.mk | 3 - .../handwired/d48/keymaps/anderson/keymap.c | 342 -- .../d48/keymaps/anderson/lightmode.c | 44 - .../d48/keymaps/anderson/lightmode.h | 12 - .../handwired/d48/keymaps/anderson/rules.mk | 2 - .../4x5/keymaps/ibnuda/config.h | 27 - .../4x5/keymaps/ibnuda/keymap.c | 60 - .../keymaps/manna-harbour_miryoku/config.h | 24 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - .../keymaps/manna-harbour_miryoku/config.h | 24 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - .../4x6/keymaps/scheikled/README.md | 8 - .../4x6/keymaps/scheikled/config.h | 60 - .../4x6/keymaps/scheikled/keymap.c | 63 - .../4x6/keymaps/scheikled/rules.mk | 11 - .../4x6/keymaps/scheiklp/README.md | 8 - .../4x6/keymaps/scheiklp/config.h | 47 - .../4x6/keymaps/scheiklp/keymap.c | 64 - .../4x6/keymaps/scheiklp/rules.mk | 9 - .../keymaps/manna-harbour_miryoku/config.h | 24 - .../keymaps/manna-harbour_miryoku/keymap.c | 5 - .../5x6/keymaps/333fred/config.h | 28 - .../5x6/keymaps/333fred/keymap.c | 76 - .../5x6/keymaps/333fred/rules.mk | 3 - .../keymaps/manna-harbour_miryoku/config.h | 25 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - .../5x6/keymaps/rishka/config.h | 47 - .../5x6/keymaps/rishka/keymap.c | 61 - .../5x6/keymaps/rishka/rules.mk | 3 - .../5x6/keymaps/scheiklp/README.md | 8 - .../5x6/keymaps/scheiklp/config.h | 47 - .../5x6/keymaps/scheiklp/keymap.c | 70 - .../5x6/keymaps/scheiklp/rules.mk | 10 - .../dactyl_manuform/5x6/keymaps/uqs/config.h | 9 - .../dactyl_manuform/5x6/keymaps/uqs/keymap.c | 170 - .../dactyl_manuform/5x6/keymaps/uqs/rules.mk | 1 - .../5x6_5/keymaps/333fred/config.h | 39 - .../5x6_5/keymaps/333fred/keymap.c | 581 -- .../5x6_5/keymaps/333fred/rules.mk | 4 - .../minorca/keymaps/ridingqwerty/config.h | 7 - .../minorca/keymaps/ridingqwerty/keymap.c | 123 - .../minorca/keymaps/ridingqwerty/readme.md | 1 - .../minorca/keymaps/ridingqwerty/rules.mk | 6 - .../handwired/reclined/keymaps/pdl/config.h | 23 - .../handwired/reclined/keymaps/pdl/keymap.c | 69 - .../scotto34/keymaps/scotto/config.h | 23 - .../scotto34/keymaps/scotto/keymap.c | 196 - .../scotto34/keymaps/scotto/rules.mk | 1 - .../scotto36/keymaps/scotto/config.h | 23 - .../scotto36/keymaps/scotto/keymap.c | 281 - .../scotto36/keymaps/scotto/rules.mk | 4 - .../scotto40/keymaps/scotto/config.h | 23 - .../scotto40/keymaps/scotto/keymap.c | 114 - .../scotto40/keymaps/scotto/rules.mk | 1 - .../scottoalp/keymaps/scotto/config.h | 23 - .../scottoalp/keymaps/scotto/keymap.c | 174 - .../scottoalp/keymaps/scotto/rules.mk | 1 - .../scottocmd/keymaps/scotto/config.h | 23 - .../scottocmd/keymaps/scotto/keymap.c | 511 -- .../scottocmd/keymaps/scotto/rules.mk | 2 - .../scottoergo/keymaps/scotto/config.h | 23 - .../scottoergo/keymaps/scotto/keymap.c | 174 - .../scottoergo/keymaps/scotto/rules.mk | 1 - .../scottogame/keymaps/scotto/config.h | 23 - .../scottogame/keymaps/scotto/keymap.c | 289 - .../scottogame/keymaps/scotto/rules.mk | 2 - .../scottoinvader/keymaps/scotto/config.h | 23 - .../scottoinvader/keymaps/scotto/keymap.c | 174 - .../scottoinvader/keymaps/scotto/rules.mk | 1 - .../scottomouse/keymaps/scotto/config.h | 26 - .../scottomouse/keymaps/scotto/keymap.c | 33 - .../scottomouse/keymaps/scotto/rules.mk | 1 - .../scottoslant/keymaps/scotto/config.h | 23 - .../scottoslant/keymaps/scotto/keymap.c | 69 - .../scottoslant/keymaps/scotto/rules.mk | 1 - .../scottosplit/keymaps/scotto/config.h | 23 - .../scottosplit/keymaps/scotto/keymap.c | 174 - .../scottosplit/keymaps/scotto/rules.mk | 1 - .../4x6_right/keymaps/drashna/config.h | 35 - .../4x6_right/keymaps/drashna/keymap.c | 117 - .../4x6_right/keymaps/drashna/rules.mk | 8 - .../5x6_right/keymaps/drashna/config.h | 36 - .../5x6_right/keymaps/drashna/keymap.c | 161 - .../keymaps/drashna/rgblight_breathe_table.h | 117 - .../5x6_right/keymaps/drashna/rules.mk | 54 - .../wabi/keymaps/rossman360/keymap.c | 68 - .../bad_wings/keymaps/miketronic/config.h | 16 - .../bad_wings/keymaps/miketronic/keymap.c | 258 - .../bad_wings/keymaps/miketronic/rules.mk | 31 - keyboards/helix/pico/keymaps/mtei/config.h | 18 - keyboards/helix/pico/keymaps/mtei/keymap.c | 335 -- keyboards/helix/pico/keymaps/mtei/rules.mk | 18 - .../helix/rev2/keymaps/edvorakjp/config.h | 22 - .../helix/rev2/keymaps/edvorakjp/keymap.c | 75 - keyboards/helix/rev2/keymaps/edvorakjp/oled.c | 65 - keyboards/helix/rev2/keymaps/edvorakjp/oled.h | 12 - .../helix/rev2/keymaps/edvorakjp/readme.md | 21 - .../helix/rev2/keymaps/edvorakjp/rules.mk | 33 - .../helix/rev2/keymaps/five_rows/README.md | 84 - .../helix/rev2/keymaps/five_rows/README_jp.md | 121 - .../helix/rev2/keymaps/five_rows/config.h | 16 - .../helix/rev2/keymaps/five_rows/keymap.c | 474 -- .../helix/rev2/keymaps/five_rows/rules.mk | 24 - keyboards/helix/rev2/keymaps/xulkal/config.h | 38 - keyboards/helix/rev2/keymaps/xulkal/keymap.c | 69 - keyboards/helix/rev2/keymaps/xulkal/rules.mk | 14 - .../rev3_5rows/keymaps/five_rows/config.h | 18 - .../rev3_5rows/keymaps/five_rows/keymap.c | 474 -- .../rev3_5rows/keymaps/five_rows/rules.mk | 11 - keyboards/hhkb/ansi/keymaps/brett/config.h | 14 - keyboards/hhkb/ansi/keymaps/brett/keymap.c | 119 - keyboards/hhkb/ansi/keymaps/brett/readme.md | 13 - keyboards/hhkb/ansi/keymaps/brett/rules.mk | 4 - .../hhkb/ansi/keymaps/tominabox1/.gitignore | 3 - .../hhkb/ansi/keymaps/tominabox1/keymap.c | 12 - keyboards/hhkb/jp/keymaps/dhertz/config.h | 1 - keyboards/hhkb/jp/keymaps/dhertz/keymap.c | 84 - keyboards/hhkb/jp/keymaps/dhertz/keymap.h | 7 - keyboards/hhkb/jp/keymaps/dhertz/rules.mk | 2 - .../hidtech/bastyl/keymaps/nstickney/keymap.c | 70 - .../46/keymaps/manna-harbour_miryoku/config.h | 38 - .../46/keymaps/manna-harbour_miryoku/keymap.c | 4 - .../48/keymaps/manna-harbour_miryoku/config.h | 38 - .../48/keymaps/manna-harbour_miryoku/keymap.c | 4 - .../52/keymaps/manna-harbour_miryoku/config.h | 38 - .../52/keymaps/manna-harbour_miryoku/keymap.c | 4 - keyboards/hotdox/keymaps/imchipwood/keymap.c | 151 - keyboards/hotdox/keymaps/ninjonas/README.md | 106 - keyboards/hotdox/keymaps/ninjonas/keymap.c | 348 -- keyboards/hotdox/keymaps/ninjonas/rules.mk | 1 - .../hs60/v2/ansi/keymaps/stanrc85/config.h | 38 - .../hs60/v2/ansi/keymaps/stanrc85/keymap.c | 59 - .../hs60/v2/ansi/keymaps/stanrc85/readme.md | 48 - .../hs60/v2/ansi/keymaps/stanrc85/rules.mk | 1 - .../id80/v2/ansi/keymaps/rverst/keymap.c | 80 - .../id80/v2/ansi/keymaps/rverst/readme.md | 23 - .../id80/v2/ansi/keymaps/rverst/rverst.json | 499 -- .../keymaps/dudeofawesome/README.md | 30 - .../keymaps/dudeofawesome/config.h | 9 - .../keymaps/dudeofawesome/keymap.c | 551 -- .../keymaps/dudeofawesome/layers.h | 14 - .../ergodox_infinity/keymaps/narze/config.h | 13 - .../keymaps/narze/default.png.md | 1 - .../keymaps/narze/default_highres.png.md | 1 - .../ergodox_infinity/keymaps/narze/keymap.c | 697 --- .../ergodox_infinity/keymaps/narze/readme.md | 31 - .../ergodox_infinity/keymaps/narze/rules.mk | 23 - .../keymaps/narze/visualizer.c | 94 - .../keymaps/not-quite-neo/keymap.c | 267 - .../keymaps/not-quite-neo/readme.md | 5 - .../keymaps/not-quite-neo/rules.mk | 3 - .../whitefox/keymaps/billypython/config.h | 3 - .../whitefox/keymaps/billypython/keymap.c | 46 - .../whitefox/keymaps/billypython/rules.mk | 6 - .../whitefox/keymaps/dhertz/keymap.c | 58 - .../whitefox/keymaps/dudeofawesome/keymap.c | 146 - .../whitefox/keymaps/dudeofawesome/readme.md | 20 - .../whitefox/keymaps/konstantin/config.h | 4 - .../whitefox/keymaps/konstantin/keymap.c | 67 - .../whitefox/keymaps/konstantin/rules.mk | 18 - .../bear_65/keymaps/stanrc85/keymap.c | 49 - .../bear_65/keymaps/stanrc85/rules.mk | 1 - keyboards/jd45/keymaps/talljoe/config.h | 32 - keyboards/jd45/keymaps/talljoe/keymap.c | 1 - .../keymaps/manna-harbour_miryoku/config.h | 21 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - .../hotswap/keymaps/brandonschlack/keymap.c | 102 - .../hotswap/keymaps/brandonschlack/rules.mk | 2 - .../kbd67/mkiirgb/keymaps/jonavin/config.h | 39 - .../kbd67/mkiirgb/keymaps/jonavin/keymap.c | 125 - .../kbd67/mkiirgb/keymaps/jonavin/readme.md | 41 - .../mkiirgb/keymaps/jonavin/rgb_matrix_map.h | 109 - .../kbd67/mkiirgb/keymaps/jonavin/rules.mk | 12 - .../rev2/keymaps/brandonschlack/keymap.c | 102 - .../rev2/keymaps/brandonschlack/rules.mk | 3 - .../kbdfans/kbd6x/keymaps/konstantin/config.h | 3 - .../kbdfans/kbd6x/keymaps/konstantin/keymap.c | 181 - .../kbdfans/kbd6x/keymaps/konstantin/rules.mk | 19 - .../kbdfans/kbd6x/keymaps/wanleg/keymap.c | 82 - .../kbdfans/kbd6x/keymaps/wanleg/rules.mk | 3 - .../kbd75/keymaps/noroadsleft/config.h | 22 - .../kbd75/keymaps/noroadsleft/keymap.c | 94 - .../kbd75/keymaps/noroadsleft/rules.mk | 8 - .../niu_mini/keymaps/xtonhasvim/config.h | 40 - .../niu_mini/keymaps/xtonhasvim/keymap.c | 264 - .../niu_mini/keymaps/xtonhasvim/readme.md | 9 - .../niu_mini/keymaps/xtonhasvim/rules.mk | 5 - keyboards/kc60/keymaps/noroadsleft/config.h | 36 - keyboards/kc60/keymaps/noroadsleft/keymap.c | 117 - keyboards/kc60/keymaps/noroadsleft/readme.md | 135 - keyboards/kc60/keymaps/noroadsleft/rules.mk | 6 - keyboards/keebio/bdn9/keymaps/bcat/keymap.c | 54 - keyboards/keebio/bdn9/keymaps/bcat/readme.md | 7 - .../bdn9/keymaps/brandonschlack/config.h | 34 - .../bdn9/keymaps/brandonschlack/keymap.c | 394 -- .../bdn9/keymaps/brandonschlack/readme.md | 107 - .../bdn9/keymaps/brandonschlack/rules.mk | 11 - keyboards/keebio/bdn9/keymaps/rishka/config.h | 5 - keyboards/keebio/bdn9/keymaps/rishka/keymap.c | 67 - keyboards/keebio/bdn9/keymaps/rishka/rules.mk | 1 - .../keebio/iris/keymaps/333fred/config.h | 33 - .../keebio/iris/keymaps/333fred/keymap.c | 76 - .../keebio/iris/keymaps/333fred/rules.mk | 3 - keyboards/keebio/iris/keymaps/csc027/config.h | 39 - keyboards/keebio/iris/keymaps/csc027/keymap.c | 87 - keyboards/keebio/iris/keymaps/csc027/rules.mk | 6 - .../keebio/iris/keymaps/drashna/config.h | 75 - .../keebio/iris/keymaps/drashna/keymap.c | 112 - .../keebio/iris/keymaps/drashna/rules.mk | 16 - .../keebio/iris/keymaps/edvorakjp/config.h | 18 - .../keebio/iris/keymaps/edvorakjp/keymap.c | 72 - .../keebio/iris/keymaps/edvorakjp/readme.md | 21 - .../keebio/iris/keymaps/edvorakjp/rules.mk | 18 - keyboards/keebio/iris/keymaps/gary/README.md | 18 - keyboards/keebio/iris/keymaps/gary/config.h | 7 - keyboards/keebio/iris/keymaps/gary/keymap.c | 47 - keyboards/keebio/iris/keymaps/gary/rules.mk | 2 - .../keymaps/manna-harbour_miryoku/config.h | 22 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - keyboards/keebio/iris/keymaps/mattly/config.h | 38 - keyboards/keebio/iris/keymaps/mattly/keymap.c | 70 - .../keebio/iris/keymaps/mattly/readme.md | 1 - keyboards/keebio/iris/keymaps/mnil/config.h | 38 - keyboards/keebio/iris/keymaps/mnil/keymap.c | 94 - keyboards/keebio/iris/keymaps/mnil/readme.md | 2 - keyboards/keebio/iris/keymaps/mnil/rules.mk | 1 - .../keebio/iris/keymaps/nstickney/config.h | 20 - .../keebio/iris/keymaps/nstickney/keymap.c | 53 - keyboards/keebio/iris/keymaps/pvinis/config.h | 32 - keyboards/keebio/iris/keymaps/pvinis/keymap.c | 198 - keyboards/keebio/iris/keymaps/pvinis/rules.mk | 9 - keyboards/keebio/iris/keymaps/rs/config.h | 33 - keyboards/keebio/iris/keymaps/rs/keymap.c | 45 - keyboards/keebio/iris/keymaps/rs/readme.md | 1 - keyboards/keebio/iris/keymaps/rs/rules.mk | 2 - .../keebio/iris/keymaps/sethBarberee/config.h | 30 - .../keebio/iris/keymaps/sethBarberee/keymap.c | 82 - .../keebio/iris/keymaps/sethBarberee/rules.mk | 5 - keyboards/keebio/iris/keymaps/wanleg/config.h | 30 - keyboards/keebio/iris/keymaps/wanleg/keymap.c | 76 - keyboards/keebio/iris/keymaps/wanleg/rules.mk | 5 - .../levinson/keymaps/issmirnov/README.md | 15 - .../keymaps/issmirnov/asci-keymap.txt | 55 - .../levinson/keymaps/issmirnov/config.h | 39 - .../levinson/keymaps/issmirnov/keymap.c | 124 - .../keebio/levinson/keymaps/issmirnov/rgb.c | 61 - .../keebio/levinson/keymaps/issmirnov/rgb.h | 15 - .../levinson/keymaps/issmirnov/rules.mk | 14 - .../levinson/keymaps/issmirnov/sounds.h | 9 - .../levinson/keymaps/issmirnov/template.txt | 9 - .../keymaps/losinggeneration/README.md | 28 - .../keymaps/losinggeneration/config.h | 41 - .../keymaps/losinggeneration/keymap.c | 38 - .../keymaps/losinggeneration/rules.mk | 14 - .../levinson/keymaps/rossman360/keymap.c | 135 - .../levinson/keymaps/xtonhasvim/config.h | 30 - .../levinson/keymaps/xtonhasvim/keymap.c | 237 - .../levinson/keymaps/xtonhasvim/readme.md | 9 - .../levinson/keymaps/xtonhasvim/rules.mk | 5 - .../keymaps/losinggeneration/README.md | 29 - .../nyquist/keymaps/losinggeneration/config.h | 25 - .../nyquist/keymaps/losinggeneration/keymap.c | 55 - .../nyquist/keymaps/losinggeneration/rules.mk | 14 - .../keebio/quefrency/keymaps/bcat/config.h | 26 - .../keebio/quefrency/keymaps/bcat/keymap.c | 40 - .../keebio/quefrency/keymaps/bcat/readme.md | 17 - .../keebio/quefrency/keymaps/bcat/rules.mk | 1 - .../keebio/quefrency/keymaps/draevin/keymap.c | 61 - .../keebio/quefrency/keymaps/draevin/rules.mk | 1 - .../keebio/quefrency/keymaps/jonavin/config.h | 40 - .../keebio/quefrency/keymaps/jonavin/keymap.c | 152 - .../quefrency/keymaps/jonavin/readme.md | 38 - .../keebio/quefrency/keymaps/jonavin/rules.mk | 10 - .../keebio/sinc/keymaps/draevin/keymap.c | 47 - .../keebio/sinc/keymaps/sethBarberee/config.h | 25 - .../keebio/sinc/keymaps/sethBarberee/keymap.c | 82 - .../keebio/sinc/keymaps/sethBarberee/rules.mk | 4 - .../tragicforce68/keymaps/rossman360/keymap.c | 71 - .../keymaps/rossman360/readme.md | 3 - .../tragicforce68/keymaps/rossman360/rules.mk | 2 - .../keebio/viterbi/keymaps/drashna/config.h | 61 - .../keebio/viterbi/keymaps/drashna/keymap.c | 76 - .../keebio/viterbi/keymaps/drashna/rules.mk | 25 - .../viterbi/keymaps/ericgebhart/config.h | 24 - .../viterbi/keymaps/ericgebhart/keymap.c | 18 - .../keebio/viterbi/keymaps/vosechu/config.h | 50 - .../keebio/viterbi/keymaps/vosechu/keymap.c | 91 - .../keebio/viterbi/keymaps/vosechu/rules.mk | 1 - .../atreus/keymaps/dshields/keymap.c | 45 - .../keymaps/manna-harbour_miryoku/config.h | 21 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - .../model01/keymaps/dshields/config.h | 4 - .../model01/keymaps/dshields/keymap.c | 28 - .../model01/keymaps/dshields/readme.md | 10 - .../keymaps/manna-harbour_miryoku/config.h | 26 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - .../keymaps/manna-harbour_miryoku/rules.mk | 4 - .../q2/iso_encoder/keymaps/dhertz/keymap.c | 95 - .../q2/iso_encoder/keymaps/dhertz/rules.mk | 1 - .../keychron/v1/ansi/keymaps/vnmm/keymap.c | 54 - .../keychron/v1/ansi/keymaps/vnmm/readme.md | 10 - .../keychron/v1/ansi/keymaps/vnmm/rules.mk | 1 - .../keychron/v2/ansi/keymaps/vnmm/keymap.c | 57 - .../keychron/v2/ansi/keymaps/vnmm/readme.md | 10 - .../keychron/v2/ansi/keymaps/vnmm/rules.mk | 1 - .../v3/ansi_encoder/keymaps/vnmm/keymap.c | 77 - .../v3/ansi_encoder/keymaps/vnmm/rules.mk | 2 - .../keyhive/navi10/keymaps/devdev/config.h | 35 - .../keyhive/navi10/keymaps/devdev/keymap.c | 263 - .../keyhive/navi10/keymaps/devdev/rules.mk | 2 - keyboards/keyhive/ut472/keymaps/hvp/config.h | 19 - keyboards/keyhive/ut472/keymaps/hvp/keymap.c | 67 - keyboards/keyhive/ut472/keymaps/hvp/readme.md | 10 - keyboards/keyhive/ut472/keymaps/hvp/rules.mk | 1 - .../kinesis/keymaps/ericgebhart/keymap.c | 18 - .../kinesis/keymaps/ericgebhart/readme.md | 5 - .../kinesis/keymaps/ericgebhart/rules.mk | 15 - .../little_foot/keymaps/yanfali/config.h | 10 - .../little_foot/keymaps/yanfali/keymap.c | 40 - .../little_foot/keymaps/yanfali/rules.mk | 4 - .../romac/keymaps/brandonschlack/keymap.c | 67 - .../romac/keymaps/brandonschlack/rules.mk | 8 - .../kingly_keys/romac/keymaps/jarred/keymap.c | 37 - .../romac/keymaps/stanrc85/config.h | 17 - .../romac/keymaps/stanrc85/keymap.c | 78 - .../romac/keymaps/stanrc85/rules.mk | 3 - .../wanderland/keymaps/stanrc85/config.h | 18 - .../wanderland/keymaps/stanrc85/keymap.c | 87 - .../wanderland/keymaps/stanrc85/rules.mk | 1 - .../knobgoblin/keymaps/moults31/keymap.c | 171 - .../knobgoblin/keymaps/moults31/readme.md | 3 - .../knobgoblin/keymaps/moults31/rules.mk | 3 - .../knops/mini/keymaps/mverteuil/config.h | 25 - .../knops/mini/keymaps/mverteuil/keymap.c | 306 -- .../knops/mini/keymaps/mverteuil/readme.md | 1 - .../knops/mini/keymaps/mverteuil/rules.mk | 6 - .../jj40/keymaps/ajp10304/readme.md | 126 - .../ktec/ergodone/keymaps/art/.gitignore | 1 - keyboards/ktec/ergodone/keymaps/art/keymap.c | 453 -- keyboards/ktec/ergodone/keymaps/art/rules.mk | 1 - .../keymaps/art/user_config.c.example | 6 - .../staggered/keymaps/tominabox1/keymap.c | 110 - keyboards/lets_split/keymaps/hvp/config.h | 45 - keyboards/lets_split/keymaps/hvp/keymap.c | 65 - keyboards/lets_split/keymaps/hvp/readme.md | 10 - keyboards/lets_split/keymaps/hvp/rules.mk | 2 - keyboards/lets_split/keymaps/pdl/config.h | 31 - keyboards/lets_split/keymaps/pdl/keymap.c | 69 - keyboards/lets_split/keymaps/pdl/rules.mk | 1 - keyboards/lets_split/keymaps/zer09/config.h | 51 - keyboards/lets_split/keymaps/zer09/keymap.c | 76 - keyboards/lets_split/keymaps/zer09/rules.mk | 3 - keyboards/lily58/keymaps/bcat/config.h | 21 - keyboards/lily58/keymaps/bcat/keymap.c | 74 - keyboards/lily58/keymaps/bcat/readme.md | 42 - keyboards/lily58/keymaps/bcat/rules.mk | 3 - keyboards/lily58/keymaps/curry/config.h | 21 - keyboards/lily58/keymaps/curry/keymap.c | 77 - keyboards/lily58/keymaps/curry/rules.mk | 16 - keyboards/lily58/keymaps/hvp/config.h | 59 - keyboards/lily58/keymaps/hvp/keymap.c | 124 - keyboards/lily58/keymaps/hvp/readme.md | 10 - keyboards/lily58/keymaps/hvp/rules.mk | 13 - .../keymaps/manna-harbour_miryoku/config.h | 22 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - .../lily58/keymaps/muppetjones/README.md | 13 - keyboards/lily58/keymaps/muppetjones/config.h | 41 - .../keymaps/muppetjones/features/bongo_cat.c | 127 - .../keymaps/muppetjones/features/bongo_cat.h | 14 - keyboards/lily58/keymaps/muppetjones/keymap.c | 240 - keyboards/lily58/keymaps/muppetjones/rules.mk | 17 - keyboards/lily58/keymaps/narze/config.h | 62 - keyboards/lily58/keymaps/narze/keymap.c | 467 -- keyboards/lily58/keymaps/narze/readme.md | 13 - keyboards/lily58/keymaps/narze/rules.mk | 13 - keyboards/lily58/keymaps/ninjonas/README.md | 134 - keyboards/lily58/keymaps/ninjonas/config.h | 32 - keyboards/lily58/keymaps/ninjonas/keymap.c | 196 - keyboards/lily58/keymaps/ninjonas/rules.mk | 2 - .../c39/keymaps/kuchosauronad0/config.h | 34 - .../c39/keymaps/kuchosauronad0/keymap.c | 131 - .../c39/keymaps/kuchosauronad0/readme.md | 10 - .../c39/keymaps/kuchosauronad0/rules.mk | 20 - .../launchpad/keymaps/brandonschlack/config.h | 30 - .../launchpad/keymaps/brandonschlack/keymap.c | 213 - .../keymaps/brandonschlack/readme.md | 31 - .../launchpad/keymaps/brandonschlack/rules.mk | 13 - .../launchpad/keymaps/drashna/config.h | 40 - .../launchpad/keymaps/drashna/keymap.c | 107 - .../launchpad/keymaps/drashna/rules.mk | 7 - .../lets_split_eh/keymaps/romus/README.md | 7 - .../lets_split_eh/keymaps/romus/keymap.c | 28 - .../lets_split_eh/keymaps/romus/rules.mk | 7 - .../alt/keymaps/charlesrocket/config.h | 19 - .../alt/keymaps/charlesrocket/keymap.c | 279 - .../alt/keymaps/charlesrocket/rules.mk | 3 - .../massdrop/alt/keymaps/jdelkins/config.h | 23 - .../massdrop/alt/keymaps/jdelkins/keymap.c | 500 -- .../alt/keymaps/jdelkins/rgb_matrix.h | 94 - .../massdrop/alt/keymaps/jdelkins/rules.mk | 17 - .../massdrop/alt/keymaps/jdelkins_ss/config.h | 20 - .../massdrop/alt/keymaps/jdelkins_ss/keymap.c | 279 - .../alt/keymaps/jdelkins_ss/rgb_matrix.h | 94 - .../massdrop/alt/keymaps/jdelkins_ss/rules.mk | 12 - .../massdrop/alt/keymaps/xulkal/config.h | 23 - .../massdrop/alt/keymaps/xulkal/keymap.c | 79 - .../massdrop/alt/keymaps/xulkal/rules.mk | 1 - .../massdrop/ctrl/keymaps/xulkal/config.h | 23 - .../massdrop/ctrl/keymaps/xulkal/keymap.c | 92 - .../massdrop/ctrl/keymaps/xulkal/rules.mk | 1 - .../mechkeys/alu84/keymaps/turbomech/config.h | 20 - .../mechkeys/alu84/keymaps/turbomech/keymap.c | 88 - .../alu84/keymaps/turbomech/readme.md | 93 - .../mechkeys/alu84/keymaps/turbomech/rules.mk | 2 - .../mechmini/v2/keymaps/arkag/config.h | 23 - .../mechmini/v2/keymaps/arkag/keymap.c | 63 - .../mechmini/v2/keymaps/arkag/rules.mk | 14 - .../v2/keymaps/spacebarracecar/config.h | 3 - .../v2/keymaps/spacebarracecar/keymap.c | 139 - .../v2/keymaps/spacebarracecar/readme.md | 5 - .../v2/keymaps/spacebarracecar/rules.mk | 22 - .../adelais/keymaps/brandonschlack/config.h | 30 - .../adelais/keymaps/brandonschlack/keymap.c | 271 - .../adelais/keymaps/brandonschlack/readme.md | 1 - .../mechlovin/kanu/keymaps/dhertz/keymap.c | 62 - .../bde/rev2/keymaps/miketronic/config.h | 10 - .../bde/rev2/keymaps/miketronic/keymap.c | 221 - .../bde/rev2/keymaps/miketronic/rules.mk | 12 - .../mercutio/keymaps/jonavin/config.h | 29 - .../mercutio/keymaps/jonavin/keymap.c | 268 - .../mercutio/keymaps/jonavin/readme.md | 62 - .../mercutio/keymaps/jonavin/rules.mk | 8 - .../murphpad/keymaps/jonavin/config.h | 26 - .../murphpad/keymaps/jonavin/keymap.c | 424 -- .../keymaps/jonavin/layout_landscape.h | 43 - .../murphpad/keymaps/jonavin/readme.md | 76 - .../murphpad/keymaps/jonavin/rules.mk | 5 - .../mechwild/obe/keymaps/jonavin/config.h | 39 - .../mechwild/obe/keymaps/jonavin/keymap.c | 119 - .../mechwild/obe/keymaps/jonavin/readme.md | 54 - .../mechwild/obe/keymaps/jonavin/rules.mk | 14 - keyboards/miniaxe/keymaps/wanleg/config.h | 11 - keyboards/miniaxe/keymaps/wanleg/keymap.c | 49 - keyboards/miniaxe/keymaps/wanleg/rules.mk | 18 - keyboards/minimacro5/keymaps/devdev/keymap.c | 124 - keyboards/minimacro5/keymaps/devdev/rules.mk | 2 - .../knife66/keymaps/zyber/keymap.c | 40 - keyboards/mitosis/keymaps/datagrok/config.h | 57 - keyboards/mitosis/keymaps/datagrok/keymap.c | 237 - keyboards/mitosis/keymaps/datagrok/readme.md | 274 - keyboards/mitosis/keymaps/datagrok/rules.mk | 34 - .../rebound/rev1/keymaps/curry/config.h | 7 - .../rebound/rev1/keymaps/curry/keymap.c | 71 - .../rebound/rev1/keymaps/curry/rules.mk | 1 - .../rebound/rev2/keymaps/rossman360/keymap.c | 57 - .../rebound/rev3/keymaps/rossman360/keymap.c | 113 - .../rebound/rev3/keymaps/rossman360/rules.mk | 4 - .../rebound/rev4/keymaps/ericgebhart/keymap.c | 18 - .../rev4/keymaps/ericgebhart/readme.md | 5 - .../rebound/rev4/keymaps/ericgebhart/rules.mk | 18 - .../rebound/rev4/keymaps/rossman360/keymap.c | 122 - .../rebound/rev4/keymaps/rossman360/rules.mk | 4 - .../rewind/keymaps/rossman360/keymap.c | 56 - keyboards/moonlander/keymaps/drashna/config.h | 27 - keyboards/moonlander/keymaps/drashna/keymap.c | 198 - keyboards/moonlander/keymaps/drashna/rules.mk | 8 - .../moonlander/keymaps/jjerrell/config.h | 26 - .../moonlander/keymaps/jjerrell/keymap.c | 117 - .../moonlander/keymaps/jjerrell/readme.md | 3 - .../moonlander/keymaps/jjerrell/rules.mk | 1 - .../keymaps/manna-harbour_miryoku/config.h | 23 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - keyboards/mt/split75/keymaps/art/.gitignore | 1 - keyboards/mt/split75/keymaps/art/config.h | 19 - keyboards/mt/split75/keymaps/art/keymap.c | 263 - keyboards/mt/split75/keymaps/art/rules.mk | 3 - .../split75/keymaps/art/user_config.c.example | 6 - .../mw65_rgb/keymaps/horrortroll/config.h | 36 - .../mw65_rgb/keymaps/horrortroll/keymap.c | 103 - .../keymaps/horrortroll/keymap_stuff.h | 323 -- .../keymaps/horrortroll/led/cool_diagonal.c | 22 - .../keymaps/horrortroll/led/custom_gradient.c | 74 - .../keymaps/horrortroll/led/diagonal.c | 22 - .../mw65_rgb/keymaps/horrortroll/led/kitt.c | 68 - .../rainbow_reactive_simple.c | 25 - .../rainbow_reactive_simple.h | 45 - .../horrortroll/led/random_breath_rainbow.c | 55 - .../mw65_rgb/keymaps/horrortroll/readme.md | 11 - .../keymaps/horrortroll/rgb_matrix_user.inc | 17 - .../mw65_rgb/keymaps/horrortroll/rules.mk | 6 - .../splitreus62/keymaps/scheiklp/config.h | 53 - .../splitreus62/keymaps/scheiklp/keymap.c | 56 - .../splitreus62/keymaps/scheiklp/rules.mk | 9 - .../nightmare/keymaps/brandonschlack/keymap.c | 195 - .../keymaps/brandonschlack/readme.md | 20 - .../kastenwagen48/keymaps/jonavin/config.h | 31 - .../kastenwagen48/keymaps/jonavin/keymap.c | 67 - .../kastenwagen48/keymaps/jonavin/readme.md | 54 - .../kastenwagen48/keymaps/jonavin/rules.mk | 11 - .../ergodash/rev1/keymaps/333fred/config.h | 28 - .../ergodash/rev1/keymaps/333fred/keymap.c | 79 - .../ergodash/rev1/keymaps/333fred/rules.mk | 5 - .../keymaps/yet-another-developer/config.h | 62 - .../keymaps/yet-another-developer/keymap.c | 157 - .../keymaps/yet-another-developer/rules.mk | 23 - keyboards/org60/keymaps/jarred/keymap.c | 25 - keyboards/orthodox/keymaps/drashna/README.md | 24 - keyboards/orthodox/keymaps/drashna/config.h | 80 - keyboards/orthodox/keymaps/drashna/keymap.c | 70 - keyboards/orthodox/keymaps/drashna/rules.mk | 16 - keyboards/orthodox/keymaps/pdl/config.h | 29 - keyboards/orthodox/keymaps/pdl/keymap.c | 68 - keyboards/orthodox/keymaps/pdl/rules.mk | 1 - .../percent/canoe/keymaps/dhertz/keymap.c | 62 - .../pila87/keymaps/horrortroll/keymap.c | 115 - keyboards/pinky/3/keymaps/ninjonas/README.md | 113 - keyboards/pinky/3/keymaps/ninjonas/config.h | 29 - keyboards/pinky/3/keymaps/ninjonas/keymap.c | 111 - keyboards/pinky/3/keymaps/ninjonas/rules.mk | 2 - keyboards/planck/keymaps/ajp10304/readme.md | 126 - keyboards/planck/keymaps/badger/keymap.c | 60 - .../planck/keymaps/charlesrocket/config.h | 35 - .../planck/keymaps/charlesrocket/keymap.c | 205 - .../planck/keymaps/charlesrocket/readme.md | 55 - .../planck/keymaps/charlesrocket/rules.mk | 8 - keyboards/planck/keymaps/csc027/config.h | 21 - keyboards/planck/keymaps/csc027/keymap.c | 79 - keyboards/planck/keymaps/csc027/rules.mk | 8 - keyboards/planck/keymaps/dshields/config.h | 4 - keyboards/planck/keymaps/dshields/keymap.c | 30 - keyboards/planck/keymaps/dshields/readme.md | 12 - .../planck/keymaps/dudeofawesome/config.h | 41 - .../planck/keymaps/dudeofawesome/keymap.c | 233 - .../planck/keymaps/dudeofawesome/readme.md | 22 - .../planck/keymaps/dudeofawesome/rules.mk | 7 - keyboards/planck/keymaps/hvp/config.h | 35 - keyboards/planck/keymaps/hvp/keymap.c | 186 - keyboards/planck/keymaps/hvp/readme.md | 10 - keyboards/planck/keymaps/hvp/rules.mk | 4 - keyboards/planck/keymaps/ishtob/config.h | 34 - keyboards/planck/keymaps/ishtob/keymap.c | 308 -- keyboards/planck/keymaps/ishtob/readme.md | 16 - keyboards/planck/keymaps/ishtob/rules.mk | 18 - keyboards/planck/keymaps/jdelkins/config.h | 61 - keyboards/planck/keymaps/jdelkins/keymap.c | 506 -- keyboards/planck/keymaps/jdelkins/readme.md | 13 - keyboards/planck/keymaps/jdelkins/rules.mk | 4 - keyboards/planck/keymaps/kuatsure/config.h | 33 - keyboards/planck/keymaps/kuatsure/keymap.c | 318 -- keyboards/planck/keymaps/kuatsure/readme.md | 1 - keyboards/planck/keymaps/kuatsure/rules.mk | 6 - keyboards/planck/keymaps/mattly/config.h | 39 - keyboards/planck/keymaps/mattly/keymap.c | 34 - keyboards/planck/keymaps/mattly/readme.md | 1 - keyboards/planck/keymaps/mattly/rules.mk | 2 - keyboards/planck/keymaps/mnil/config.h | 23 - keyboards/planck/keymaps/mnil/keymap.c | 60 - keyboards/planck/keymaps/mnil/readme.md | 2 - .../planck/keymaps/muppetjones/.clang-format | 26 - keyboards/planck/keymaps/muppetjones/config.h | 53 - keyboards/planck/keymaps/muppetjones/keymap.c | 403 -- .../planck/keymaps/muppetjones/readme.md | 2 - keyboards/planck/keymaps/muppetjones/rules.mk | 5 - keyboards/planck/keymaps/narze/config.h | 43 - keyboards/planck/keymaps/narze/keymap.c | 367 -- keyboards/planck/keymaps/narze/readme.md | 17 - keyboards/planck/keymaps/narze/rules.mk | 25 - .../planck/keymaps/not-quite-neo/config.h | 6 - .../planck/keymaps/not-quite-neo/keymap.c | 129 - .../planck/keymaps/not-quite-neo/readme.md | 5 - .../planck/keymaps/not-quite-neo/rules.mk | 24 - keyboards/planck/keymaps/peterfalken/config.h | 49 - keyboards/planck/keymaps/peterfalken/keymap.c | 80 - .../planck/keymaps/peterfalken/readme.md | 14 - keyboards/planck/keymaps/peterfalken/rules.mk | 8 - .../planck/keymaps/prog_qgmlwb/.gitignore | 3 - keyboards/planck/keymaps/prog_qgmlwb/config.h | 12 - keyboards/planck/keymaps/prog_qgmlwb/keymap.c | 4 - .../planck/keymaps/prog_qgmlwb/readme.md | 82 - keyboards/planck/keymaps/prog_qgmlwb/rules.mk | 6 - .../planck/keymaps/prog_qgmlwb/src/enums.h | 23 - .../planck/keymaps/prog_qgmlwb/src/layouts.c | 25 - .../planck/keymaps/prog_qgmlwb/src/layouts.h | 27 - .../planck/keymaps/prog_qgmlwb/src/normal.h | 96 - .../planck/keymaps/prog_qgmlwb/src/qgmlwb.h | 63 - .../planck/keymaps/prog_qgmlwb/src/special.h | 43 - keyboards/planck/keymaps/sigul/config.h | 36 - keyboards/planck/keymaps/sigul/keymap.c | 222 - keyboards/planck/keymaps/sigul/readme.md | 32 - keyboards/planck/keymaps/sigul/rules.mk | 1 - .../planck/keymaps/spacebarracecar/config.h | 5 - .../planck/keymaps/spacebarracecar/keymap.c | 160 - .../planck/keymaps/spacebarracecar/readme.md | 5 - .../planck/keymaps/spacebarracecar/rules.mk | 22 - .../planck/rev7/keymaps/peterfalken/config.h | 49 - .../planck/rev7/keymaps/peterfalken/keymap.c | 80 - .../planck/rev7/keymaps/peterfalken/readme.md | 14 - .../planck/rev7/keymaps/peterfalken/rules.mk | 4 - .../playkbtw/ca66/keymaps/zyber/keymap.c | 21 - .../playkbtw/ca66/keymaps/zyber/rules.mk | 1 - .../ploopyco/mouse/keymaps/drashna/config.h | 31 - .../ploopyco/mouse/keymaps/drashna/keymap.c | 48 - .../ploopyco/mouse/keymaps/drashna/rules.mk | 6 - keyboards/ploopyco/mouse/keymaps/uqs/keymap.c | 36 - keyboards/ploopyco/mouse/keymaps/uqs/rules.mk | 1 - .../keymaps/manna-harbour_miryoku/config.h | 22 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - keyboards/preonic/keymaps/arkag/config.h | 30 - keyboards/preonic/keymaps/arkag/keymap.c | 84 - keyboards/preonic/keymaps/arkag/readme.md | 1 - keyboards/preonic/keymaps/arkag/rules.mk | 17 - keyboards/preonic/keymaps/badger/keymap.c | 74 - keyboards/preonic/keymaps/badger/readme.md | 21 - .../preonic/keymaps/dudeofawesome/config.h | 43 - .../preonic/keymaps/dudeofawesome/keymap.c | 292 - .../preonic/keymaps/dudeofawesome/readme.md | 22 - .../preonic/keymaps/dudeofawesome/rules.mk | 5 - keyboards/preonic/keymaps/kuatsure/config.h | 39 - keyboards/preonic/keymaps/kuatsure/keymap.c | 190 - keyboards/preonic/keymaps/kuatsure/readme.md | 1 - keyboards/preonic/keymaps/kuatsure/rules.mk | 2 - keyboards/preonic/keymaps/mguterl/config.h | 34 - keyboards/preonic/keymaps/mguterl/keymap.c | 325 -- keyboards/preonic/keymaps/mguterl/readme.md | 18 - keyboards/preonic/keymaps/mguterl/rules.mk | 1 - keyboards/preonic/keymaps/mverteuil/config.h | 36 - keyboards/preonic/keymaps/mverteuil/keymap.c | 510 -- keyboards/preonic/keymaps/mverteuil/readme.md | 2 - keyboards/preonic/keymaps/mverteuil/rules.mk | 5 - .../preonic/keymaps/mverteuil_2x2u/config.h | 36 - .../preonic/keymaps/mverteuil_2x2u/keymap.c | 415 -- .../preonic/keymaps/mverteuil_2x2u/rules.mk | 6 - .../preonic/keymaps/peterfalken/config.h | 49 - .../preonic/keymaps/peterfalken/keymap.c | 92 - .../preonic/keymaps/peterfalken/readme.md | 14 - .../preonic/keymaps/peterfalken/rules.mk | 8 - keyboards/preonic/keymaps/rmeli/config.h | 45 - keyboards/preonic/keymaps/rmeli/keymap.c | 231 - keyboards/preonic/keymaps/rmeli/readme.md | 1 - keyboards/preonic/keymaps/rmeli/rules.mk | 12 - keyboards/preonic/keymaps/uqs/keymap.c | 117 - keyboards/preonic/keymaps/uqs/rules.mk | 14 - keyboards/preonic/keymaps/xulkal/keymap.c | 150 - keyboards/preonic/keymaps/xulkal/rules.mk | 6 - .../prime_e/keymaps/brandonschlack/config.h | 30 - .../prime_e/keymaps/brandonschlack/keymap.c | 95 - .../prime_e/keymaps/brandonschlack/rules.mk | 2 - .../primekb/prime_e/keymaps/talljoe/config.h | 33 - .../primekb/prime_e/keymaps/talljoe/keymap.c | 1 - .../prime_o/keymaps/spacebarracecar/config.h | 1 - .../prime_o/keymaps/spacebarracecar/keymap.c | 172 - .../prime_o/keymaps/spacebarracecar/readme.md | 6 - .../prime_o/keymaps/spacebarracecar/rules.mk | 22 - .../projectkb/alice/keymaps/stanrc85/keymap.c | 58 - .../prototypist/j01/keymaps/zyber/keymap.c | 40 - keyboards/redox_w/keymaps/danielo515/config.h | 5 - keyboards/redox_w/keymaps/danielo515/keymap.c | 178 - .../redox_w/keymaps/danielo515/readme.md | 2 - keyboards/redox_w/keymaps/danielo515/rules.mk | 6 - .../keymaps/manna-harbour_miryoku/config.h | 22 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - .../rgbkb/sol/keymaps/kageurufu/keymap.c | 98 - .../rgbkb/sol/keymaps/kageurufu/rules.mk | 19 - keyboards/rgbkb/sol/keymaps/xulkal/config.h | 33 - keyboards/rgbkb/sol/keymaps/xulkal/keymap.c | 78 - keyboards/rgbkb/sol/keymaps/xulkal/rules.mk | 24 - .../rgbkb/sol3/keymaps/kageurufu/config.h | 30 - .../rgbkb/sol3/keymaps/kageurufu/keymap.c | 69 - .../rgbkb/sol3/keymaps/kageurufu/rules.mk | 2 - .../rgbkb/zen/rev1/keymaps/333fred/config.h | 47 - .../rgbkb/zen/rev1/keymaps/333fred/keymap.c | 145 - .../rgbkb/zen/rev1/keymaps/333fred/rules.mk | 4 - .../rgbkb/zen/rev1/keymaps/cwebster2/config.h | 20 - .../rgbkb/zen/rev1/keymaps/cwebster2/keymap.c | 116 - .../rgbkb/zen/rev1/keymaps/cwebster2/rules.mk | 2 - .../rgbkb/zen/rev1/keymaps/kageurufu/keymap.c | 62 - .../zygomorph/keymaps/kageurufu/config.h | 24 - .../zygomorph/keymaps/kageurufu/keymap.c | 85 - .../zygomorph/keymaps/kageurufu/readme.md | 132 - .../zygomorph/keymaps/kageurufu/rules.mk | 39 - .../rgbkb/zygomorph/keymaps/xulkal/keymap.c | 69 - .../rgbkb/zygomorph/keymaps/xulkal/rules.mk | 42 - .../naked48/keymaps/scheiklp/config.h | 9 - .../naked48/keymaps/scheiklp/keymap.c | 68 - .../naked48/keymaps/scheiklp/readme.md | 37 - .../naked48/keymaps/scheiklp/rules.mk | 5 - .../naked60/keymaps/333fred/config.h | 24 - .../naked60/keymaps/333fred/keymap.c | 75 - .../keymaps/manna-harbour_miryoku/config.h | 21 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - .../scotto34/keymaps/scotto/config.h | 23 - .../scotto34/keymaps/scotto/keymap.c | 246 - .../scotto34/keymaps/scotto/rules.mk | 1 - .../shapeshifter4060/keymaps/vosechu/keymap.c | 53 - .../keymaps/vosechu/readme.md | 82 - keyboards/sofle/keymaps/devdev/config.h | 128 - keyboards/sofle/keymaps/devdev/keymap.c | 573 -- keyboards/sofle/keymaps/devdev/rules.mk | 7 - .../keymaps/manna-harbour_miryoku/config.h | 22 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - .../kyria/keymaps/cameronjlarsen/config.h | 47 - .../kyria/keymaps/cameronjlarsen/keymap.c | 357 -- .../kyria/keymaps/cameronjlarsen/readme.md | 249 - .../kyria/keymaps/cameronjlarsen/rules.mk | 12 - .../splitkb/kyria/keymaps/cjuniet/config.h | 46 - .../kyria/keymaps/cjuniet/default.json | 33 - .../splitkb/kyria/keymaps/cjuniet/keymap.c | 121 - .../splitkb/kyria/keymaps/cjuniet/rules.mk | 6 - .../splitkb/kyria/keymaps/cwebster2/config.h | 48 - .../splitkb/kyria/keymaps/cwebster2/keymap.c | 411 -- .../splitkb/kyria/keymaps/cwebster2/rules.mk | 5 - .../splitkb/kyria/keymaps/drashna/chconf.h | 24 - .../splitkb/kyria/keymaps/drashna/config.h | 90 - .../splitkb/kyria/keymaps/drashna/halconf.h | 24 - .../splitkb/kyria/keymaps/drashna/keymap.c | 229 - .../splitkb/kyria/keymaps/drashna/mcuconf.h | 35 - .../splitkb/kyria/keymaps/drashna/rules.mk | 40 - .../kyria/keymaps/ericgebhart/config.h | 25 - .../kyria/keymaps/ericgebhart/keymap.c | 18 - .../kyria/keymaps/ericgebhart/rules.mk | 3 - .../keymaps/manna-harbour_miryoku/config.h | 36 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - .../kyria/keymaps/muppetjones/.clang-format | 26 - .../kyria/keymaps/muppetjones/README.md | 11 - .../kyria/keymaps/muppetjones/config.h | 57 - .../kyria/keymaps/muppetjones/keymap.c | 276 - .../kyria/keymaps/muppetjones/rules.mk | 11 - .../splitkb/kyria/keymaps/ninjonas/README.md | 113 - .../splitkb/kyria/keymaps/ninjonas/config.h | 37 - .../splitkb/kyria/keymaps/ninjonas/keymap.c | 118 - .../splitkb/kyria/keymaps/ninjonas/oled.c | 210 - .../splitkb/kyria/keymaps/ninjonas/rules.mk | 6 - keyboards/splitkb/kyria/keymaps/rmw/config.h | 43 - keyboards/splitkb/kyria/keymaps/rmw/keymap.c | 160 - keyboards/splitkb/kyria/keymaps/rmw/readme.md | 9 - keyboards/splitkb/kyria/keymaps/rmw/rules.mk | 4 - keyboards/splitkb/kyria/keymaps/uqs/config.h | 12 - keyboards/splitkb/kyria/keymaps/uqs/keymap.c | 153 - keyboards/splitkb/kyria/keymaps/uqs/rules.mk | 1 - .../splitkb/kyria/keymaps/zigotica/config.h | 43 - .../splitkb/kyria/keymaps/zigotica/keymap.c | 58 - .../splitkb/kyria/keymaps/zigotica/oled.c | 87 - .../splitkb/kyria/keymaps/zigotica/oled.h | 18 - .../splitkb/kyria/keymaps/zigotica/rules.mk | 10 - .../splitkb/zima/keymaps/drashna/config.h | 37 - .../splitkb/zima/keymaps/drashna/keymap.c | 145 - .../splitkb/zima/keymaps/drashna/rules.mk | 3 - .../launch_1/keymaps/peterfalken/config.h | 43 - .../launch_1/keymaps/peterfalken/keymap.c | 90 - .../launch_1/keymaps/peterfalken/readme.md | 14 - keyboards/tada68/keymaps/jarred/keymap.c | 39 - keyboards/tada68/keymaps/jarred/readme.md | 9 - keyboards/tada68/keymaps/jarred/rules.mk | 2 - keyboards/tada68/keymaps/rupa/config.h | 3 - keyboards/tada68/keymaps/rupa/keymap.c | 38 - keyboards/tada68/keymaps/rupa/readme.md | 19 - keyboards/tada68/keymaps/rupa/rules.mk | 3 - .../keymaps/manna-harbour_miryoku/config.h | 40 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - .../keymaps/manna-harbour_miryoku/rules.mk | 4 - .../liminal/keymaps/brandonschlack/keymap.c | 115 - .../bananasplit/keymaps/talljoe/config.h | 33 - .../bananasplit/keymaps/talljoe/keymap.c | 1 - .../minivan/keymaps/hvp/config.h | 4 - .../minivan/keymaps/hvp/keymap.c | 54 - .../minivan/keymaps/hvp/readme.md | 10 - .../minivan/keymaps/hvp/rules.mk | 2 - .../minivan/keymaps/talljoe-minivan/config.h | 65 - .../minivan/keymaps/talljoe-minivan/keymap.c | 1 - .../minivan/keymaps/talljoe-minivan/rules.mk | 3 - .../minivan/keymaps/tominabox1/keymap.c | 74 - .../tkc/osav2/keymaps/brandonschlack/config.h | 30 - .../tkc/osav2/keymaps/brandonschlack/keymap.c | 243 - .../tkc/osav2/keymaps/brandonschlack/rules.mk | 9 - keyboards/tkc/osav2/keymaps/stanrc85/keymap.c | 58 - .../tkc/tkc1800/keymaps/yanfali/keymap.c | 90 - .../tkc/tkc1800/keymaps/yanfali/rules.mk | 1 - keyboards/tmo50/keymaps/talljoe/config.h | 33 - keyboards/tmo50/keymaps/talljoe/keymap.c | 44 - .../keymaps/manna-harbour_miryoku/config.h | 19 - .../keymaps/manna-harbour_miryoku/keymap.c | 4 - .../divergetm2/keymaps/xtonhasvim/config.h | 23 - .../divergetm2/keymaps/xtonhasvim/keymap.c | 155 - .../divergetm2/keymaps/xtonhasvim/readme.md | 9 - .../divergetm2/keymaps/xtonhasvim/rules.mk | 3 - .../v60_type_r/keymaps/xtonhasvim/config.h | 24 - .../v60_type_r/keymaps/xtonhasvim/keymap.c | 195 - .../v60_type_r/keymaps/xtonhasvim/readme.md | 20 - .../v60_type_r/keymaps/xtonhasvim/rules.mk | 5 - .../neuron/keymaps/brandonschlack/keymap.c | 132 - .../rama_works_m60_a/keymaps/mguterl/keymap.c | 82 - .../keymaps/mguterl/readme.md | 15 - .../rama_works_m60_a/keymaps/mguterl/rules.mk | 1 - .../rama_works_m60_a/keymaps/zyber/config.h | 6 - .../rama_works_m60_a/keymaps/zyber/keymap.c | 42 - .../rama_works_m60_a/keymaps/zyber/rules.mk | 1 - .../zeal60/keymaps/sethBarberee/config.h | 37 - .../zeal60/keymaps/sethBarberee/keymap.c | 46 - .../zeal60/keymaps/sethBarberee/rules.mk | 2 - .../wilba_tech/zeal65/keymaps/zyber/config.h | 31 - .../wilba_tech/zeal65/keymaps/zyber/keymap.c | 39 - .../1key/keymaps/dudeofawesome/README.md | 18 - .../1key/keymaps/dudeofawesome/config.h | 24 - .../1key/keymaps/dudeofawesome/keymap.c | 50 - .../1key/keymaps/dudeofawesome/rules.mk | 1 - .../micro/keymaps/peterfalken/config.h | 7 - .../micro/keymaps/peterfalken/keymap.c | 113 - .../micro/keymaps/peterfalken/readme.md | 14 - .../micro/keymaps/peterfalken/rules.mk | 3 - .../work_board/keymaps/drashna/config.h | 22 - .../work_board/keymaps/drashna/keymap.c | 167 - .../work_board/keymaps/drashna/rules.mk | 10 - .../work_board/keymaps/peterfalken/keymap.c | 88 - .../work_board/keymaps/peterfalken/readme.md | 14 - .../work_board/keymaps/peterfalken/rules.mk | 3 - keyboards/xiudi/xd004/keymaps/narze/keymap.c | 24 - keyboards/xiudi/xd004/keymaps/narze/readme.md | 13 - .../xiudi/xd75/keymaps/billypython/config.h | 14 - .../xiudi/xd75/keymaps/billypython/keymap.c | 119 - .../xiudi/xd75/keymaps/billypython/rules.mk | 15 - .../xiudi/xd75/keymaps/ericgebhart/config.h | 21 - .../xiudi/xd75/keymaps/ericgebhart/keymap.c | 18 - .../xiudi/xd75/keymaps/ericgebhart/rules.mk | 3 - keyboards/xiudi/xd75/keymaps/jarred/keymap.c | 37 - keyboards/xiudi/xd75/keymaps/jarred/readme.md | 1 - .../xiudi/xd75/keymaps/scheiklp/config.h | 29 - .../xiudi/xd75/keymaps/scheiklp/keymap.c | 101 - .../xiudi/xd75/keymaps/scheiklp/readme.md | 9 - .../xiudi/xd75/keymaps/scheiklp/rules.mk | 9 - .../xiudi/xd75/keymaps/zigotica/config.h | 27 - .../xiudi/xd75/keymaps/zigotica/keymap.c | 63 - .../xiudi/xd75/keymaps/zigotica/rules.mk | 6 - .../yanghu/unicorne/keymaps/bcat/config.h | 19 - .../yanghu/unicorne/keymaps/bcat/keymap.c | 83 - .../yanghu/unicorne/keymaps/bcat/readme.md | 33 - .../yanghu/unicorne/keymaps/bcat/rules.mk | 1 - .../soldered/keymaps/konstantin/config.h | 3 - .../soldered/keymaps/konstantin/keymap.c | 77 - .../soldered/keymaps/konstantin/rules.mk | 19 - keyboards/z12/keymaps/zigotica/config.h | 29 - keyboards/z12/keymaps/zigotica/encoder.c | 110 - keyboards/z12/keymaps/zigotica/encoder.h | 18 - keyboards/z12/keymaps/zigotica/keymap.c | 189 - keyboards/z12/keymaps/zigotica/oled.c | 56 - keyboards/z12/keymaps/zigotica/oled.h | 18 - keyboards/z12/keymaps/zigotica/readme.md | 3 - keyboards/z12/keymaps/zigotica/rules.mk | 4 - keyboards/z34/keymaps/zigotica/config.h | 26 - keyboards/z34/keymaps/zigotica/keymap.c | 57 - keyboards/z34/keymaps/zigotica/rules.mk | 7 - .../60_ansi/brandonschlack-ansi/keymap.c | 83 - .../60_ansi/brandonschlack-ansi/rules.mk | 1 - .../60_ansi/manna-harbour_miryoku/config.h | 68 - .../60_ansi/manna-harbour_miryoku/keymap.c | 4 - .../60_ansi/mechmerlin-ansi/keymap.c | 33 - .../60_ansi/mechmerlin-ansi/readme.md | 15 - .../60_ansi/mechmerlin-ansi/rules.mk | 1 - .../community/60_ansi/stanrc85-ansi/keymap.c | 51 - .../community/60_ansi/stanrc85-ansi/readme.md | 57 - .../community/60_ansi/stanrc85-ansi/rules.mk | 1 - .../community/60_ansi/talljoe-ansi/config.h | 33 - .../community/60_ansi/talljoe-ansi/keymap.c | 1 - .../community/60_ansi/talljoe-ansi/rules.mk | 1 - layouts/community/60_ansi/xyverz/keymap.c | 125 - .../mrsendyyk/keymap.c | 142 - .../mrsendyyk/readme.md | 78 - .../mrsendyyk/rules.mk | 1 - .../60_ansi_split_bs_rshift/bcat/keymap.c | 50 - .../60_ansi_split_bs_rshift/bcat/readme.md | 24 - .../brandonschlack-split/keymap.c | 83 - .../brandonschlack-split/rules.mk | 1 - .../mechmerlin-split/keymap.c | 33 - .../mechmerlin-split/readme.md | 20 - .../mechmerlin-split/rules.mk | 1 - .../60_ansi_split_bs_rshift/talljoe/config.h | 83 - .../60_ansi_split_bs_rshift/talljoe/keymap.c | 1 - .../60_ansi_split_bs_rshift/talljoe/rules.mk | 1 - .../talljoe/solarized.c | 39 - .../talljoe/solarized.h | 40 - .../60_ansi_split_bs_rshift/yanfali/keymap.c | 31 - .../community/60_hhkb/talljoe-hhkb/config.h | 37 - .../community/60_hhkb/talljoe-hhkb/keymap.c | 1 - .../community/60_hhkb/talljoe-hhkb/rules.mk | 1 - layouts/community/60_hhkb/yanfali/keymap.c | 51 - layouts/community/60_iso/bifbofii/keymap.c | 201 - layouts/community/60_iso/bifbofii/readme.md | 108 - layouts/community/60_iso/bifbofii/rules.mk | 1 - layouts/community/60_iso/unxmaal/README.md | 22 - layouts/community/60_iso/unxmaal/config.h | 36 - layouts/community/60_iso/unxmaal/keymap.c | 115 - layouts/community/60_iso/unxmaal/rules.mk | 7 - .../community/60_tsangan_hhkb/bcat/keymap.c | 48 - .../community/60_tsangan_hhkb/bcat/readme.md | 44 - .../brandonschlack-tsngn/keymap.c | 84 - .../brandonschlack-tsngn/readme.md | 11 - .../brandonschlack-tsngn/rules.mk | 1 - .../60_tsangan_hhkb/dohmain/keymap.c | 43 - .../60_tsangan_hhkb/dohmain/readme.md | 37 - .../60_tsangan_hhkb/yanfali/keymap.c | 25 - .../60_tsangan_hhkb/yanfali_wkl/keymap.c | 25 - layouts/community/65_ansi/mechmerlin/keymap.c | 57 - .../community/65_ansi/mechmerlin/readme.md | 10 - layouts/community/65_ansi/mechmerlin/rules.mk | 0 layouts/community/65_ansi/yanfali/keymap.c | 40 - .../65_ansi_blocker/brandonschlack/config.h | 62 - .../65_ansi_blocker/brandonschlack/keymap.c | 117 - .../65_ansi_blocker/brandonschlack/readme.md | 15 - .../65_ansi_blocker/brandonschlack/rules.mk | 7 - .../65_ansi_blocker/mechmerlin/keymap.c | 44 - .../65_ansi_blocker/mechmerlin/readme.md | 12 - .../65_ansi_blocker/mechmerlin/rules.mk | 1 - .../65_ansi_blocker/spidey3/config.h | 12 - .../65_ansi_blocker/spidey3/keymap.c | 41 - .../65_ansi_blocker/spidey3/readme.md | 14 - .../65_ansi_blocker/spidey3/rules.mk | 10 - .../65_ansi_blocker/stanrc85/keymap.c | 51 - .../65_ansi_blocker_split_bs/bcat/keymap.c | 41 - .../65_ansi_blocker_split_bs/bcat/readme.md | 17 - .../brandonschlack-split/config.h | 62 - .../brandonschlack-split/keymap.c | 105 - .../brandonschlack-split/readme.md | 15 - .../brandonschlack-split/rules.mk | 2 - layouts/community/66_ansi/mechmerlin/config.h | 1 - layouts/community/66_ansi/mechmerlin/keymap.c | 25 - .../community/66_ansi/mechmerlin/readme.md | 13 - layouts/community/66_ansi/mechmerlin/rules.mk | 1 - layouts/community/66_ansi/skully/config.h | 12 - layouts/community/66_ansi/skully/keymap.c | 35 - layouts/community/66_ansi/skully/readme.md | 5 - layouts/community/66_ansi/xyverz/config.h | 6 - layouts/community/66_ansi/xyverz/keymap.c | 122 - layouts/community/66_ansi/xyverz/rules.mk | 3 - layouts/community/68_ansi/mechmerlin/keymap.c | 25 - layouts/community/68_ansi/mechmerlin/rules.mk | 1 - .../community/75_ansi/brandonschlack/keymap.c | 105 - .../75_ansi/brandonschlack/readme.md | 7 - .../community/75_ansi/brandonschlack/rules.mk | 5 - .../75_ansi/mechmerlin-75_ansi/keymap.c | 29 - .../75_ansi/mechmerlin-75_ansi/readme.md | 9 - .../75_ansi/mechmerlin-75_ansi/rules.mk | 1 - layouts/community/75_ansi/spidey3/config.h | 7 - layouts/community/75_ansi/spidey3/keymap.c | 33 - layouts/community/75_ansi/spidey3/readme.md | 14 - layouts/community/75_ansi/spidey3/rules.mk | 10 - layouts/community/75_ansi/yanfali/keymap.c | 25 - .../alice/manna-harbour_miryoku/config.h | 23 - .../alice/manna-harbour_miryoku/keymap.c | 4 - .../community/alice/stanrc85-alice/keymap.c | 52 - .../community/alice/stanrc85-alice/readme.md | 57 - .../community/alice/stanrc85-alice/rules.mk | 1 - .../manna-harbour_miryoku/config.h | 22 - .../manna-harbour_miryoku/keymap.c | 4 - layouts/community/ergodox/333fred/README.md | 125 - layouts/community/ergodox/333fred/config.h | 26 - layouts/community/ergodox/333fred/keymap.c | 314 -- layouts/community/ergodox/333fred/rules.mk | 2 - layouts/community/ergodox/adnw_k_o_y/keymap.c | 161 - .../community/ergodox/adnw_k_o_y/readme.md | 7 - layouts/community/ergodox/adnw_p_u_q/config.h | 9 - layouts/community/ergodox/adnw_p_u_q/keymap.c | 335 -- .../community/ergodox/adnw_p_u_q/readme.md | 17 - layouts/community/ergodox/andrew_osx/keymap.c | 163 - layouts/community/ergodox/belak/LICENSE | 21 - layouts/community/ergodox/belak/README.md | 79 - layouts/community/ergodox/belak/keymap.c | 362 -- layouts/community/ergodox/belak/rules.mk | 4 - layouts/community/ergodox/bepo_alt/keymap.c | 127 - layouts/community/ergodox/bepo_alt/readme.md | 66 - layouts/community/ergodox/bepo_alt/rules.mk | 5 - layouts/community/ergodox/berfarah/config.h | 8 - layouts/community/ergodox/berfarah/keymap.c | 286 - layouts/community/ergodox/berfarah/readme.md | 93 - layouts/community/ergodox/berfarah/rules.mk | 16 - .../community/ergodox/choromanski/keymap.c | 284 - .../community/ergodox/choromanski/readme.md | 138 - layouts/community/ergodox/colemak/keymap.c | 160 - layouts/community/ergodox/colemak/readme.md | 4 - .../ergodox/colemak_code_friendly/keymap.c | 333 -- .../ergodox/colemak_code_friendly/readme.md | 106 - .../ergodox/colemak_code_friendly/rules.mk | 7 - .../ergodox/colemak_osx_pc_no/keymap.c | 285 - .../ergodox/colemak_osx_pc_no/readme.md | 23 - .../ergodox/colemak_programmer/keymap.c | 256 - .../ergodox/colemak_programmer/readme.md | 23 - .../ergodox/colemak_programmer/rules.mk | 1 - layouts/community/ergodox/dave/keymap.c | 174 - layouts/community/ergodox/dave/readme.md | 38 - layouts/community/ergodox/deadcyclo/keymap.c | 386 -- layouts/community/ergodox/deadcyclo/readme.md | 79 - layouts/community/ergodox/deadcyclo/rules.mk | 2 - layouts/community/ergodox/dragon788/keymap.c | 205 - layouts/community/ergodox/drashna/README.md | 25 - layouts/community/ergodox/drashna/config.h | 51 - layouts/community/ergodox/drashna/keymap.c | 289 - layouts/community/ergodox/drashna/notes.txt | 6 - layouts/community/ergodox/drashna/rules.mk | 20 - .../community/ergodox/dvorak/dvorak.png.md | 1 - layouts/community/ergodox/dvorak/keymap.c | 160 - .../community/ergodox/dvorak_emacs/keymap.c | 133 - .../community/ergodox/dvorak_emacs/readme.md | 70 - .../ergodox/dvorak_emacs_software/keymap.c | 134 - .../ergodox/dvorak_emacs_software/readme.md | 74 - .../ergodox/dvorak_intl_squisher/keymap.c | 161 - .../ergodox/dvorak_intl_squisher/readme.md | 29 - .../community/ergodox/dvorak_plover/README.md | 14 - .../community/ergodox/dvorak_plover/keymap.c | 206 - .../ergodox/dvorak_svorak_a5/keymap.c | 209 - .../ergodox/dvorak_svorak_a5/readme.md | 42 - .../community/ergodox/emacs_osx_dk/keymap.c | 160 - .../community/ergodox/emacs_osx_dk/readme.md | 10 - .../community/ergodox/german-kinergo/keymap.c | 186 - .../ergodox/german-kinergo/readme.md | 35 - .../community/ergodox/german-lukas/README.md | 12 - .../community/ergodox/german-lukas/keymap.c | 212 - layouts/community/ergodox/german/keymap.c | 161 - layouts/community/ergodox/guni/keymap.c | 109 - layouts/community/ergodox/guni/readme.txt | 133 - layouts/community/ergodox/haegin/keymap.c | 248 - layouts/community/ergodox/haegin/readme.md | 5 - layouts/community/ergodox/haegin/rules.mk | 1 - layouts/community/ergodox/issmirnov/README.md | 49 - .../ergodox/issmirnov/asci-keymap.txt | 95 - layouts/community/ergodox/issmirnov/build.sh | 2 - layouts/community/ergodox/issmirnov/config.h | 3 - layouts/community/ergodox/issmirnov/keymap.c | 250 - layouts/community/ergodox/issmirnov/push.sh | 2 - .../community/ergodox/issmirnov/template.txt | 17 - layouts/community/ergodox/j3rn/keymap.c | 163 - layouts/community/ergodox/j3rn/readme.md | 37 - .../community/ergodox/jackhumbert/config.h | 21 - .../community/ergodox/jackhumbert/keymap.c | 119 - layouts/community/ergodox/jacobono/keymap.c | 249 - layouts/community/ergodox/jacobono/readme.md | 34 - layouts/community/ergodox/jafo/jafo-Notes | 10 - layouts/community/ergodox/jafo/keymap.c | 161 - layouts/community/ergodox/jafo/readme.md | 20 - layouts/community/ergodox/jgarr/keymap.c | 160 - layouts/community/ergodox/jjerrell/config.h | 21 - layouts/community/ergodox/jjerrell/keymap.c | 129 - layouts/community/ergodox/jjerrell/readme.md | 5 - layouts/community/ergodox/jjerrell/rules.mk | 14 - layouts/community/ergodox/kastyle/keymap.c | 165 - layouts/community/ergodox/kastyle/readme.md | 14 - layouts/community/ergodox/kejadlen/config.h | 5 - layouts/community/ergodox/kejadlen/keymap.c | 93 - layouts/community/ergodox/kejadlen/rules.mk | 13 - layouts/community/ergodox/kines-ish/keymap.c | 160 - layouts/community/ergodox/kines-ish/readme.md | 19 - .../ergodox/manna-harbour_miryoku/config.h | 78 - .../ergodox/manna-harbour_miryoku/keymap.c | 4 - layouts/community/ergodox/maz/keymap.c | 205 - layouts/community/ergodox/maz/readme.md | 121 - .../community/ergodox/mclennon_osx/README.md | 5 - .../community/ergodox/mclennon_osx/keymap.c | 120 - .../ergodox/meagerfindings/README.md | 109 - .../community/ergodox/meagerfindings/config.h | 24 - .../community/ergodox/meagerfindings/keymap.c | 557 -- .../community/ergodox/meagerfindings/rules.mk | 3 - layouts/community/ergodox/mpiechotka/keymap.c | 259 - .../community/ergodox/mpiechotka/readme.md | 6 - layouts/community/ergodox/msc/keymap.c | 160 - layouts/community/ergodox/msc/readme.md | 32 - layouts/community/ergodox/naps62/keymap.c | 163 - layouts/community/ergodox/naps62/readme.md | 29 - .../ergodox/neo2_on_qwertz_hardware/keymap.c | 384 -- .../ergodox/neo2_on_qwertz_hardware/keymap.md | 194 - .../norwegian_programmer_osx_pc/keymap.c | 201 - .../norwegian_programmer_osx_pc/readme.md | 30 - .../keymap.c | 201 - .../readme.md | 30 - layouts/community/ergodox/ordinary/keymap.c | 260 - .../ergodox/ordinary/ordinary-base.txt | 27 - .../ergodox/ordinary/ordinary-media.txt | 27 - .../ergodox/ordinary/ordinary-special.txt | 27 - .../ergodox/ordinary/ordinary-symbol.txt | 27 - layouts/community/ergodox/ordinary/readme.md | 101 - .../community/ergodox/ordinary_osx/keymap.c | 260 - .../ergodox/ordinary_osx/ordinary-base.txt | 27 - .../ergodox/ordinary_osx/ordinary-media.txt | 27 - .../ergodox/ordinary_osx/ordinary-special.txt | 27 - .../ergodox/ordinary_osx/ordinary-symbol.txt | 27 - .../community/ergodox/ordinary_osx/readme.md | 3 - .../ergodox/osx_de_adnw_koy/keymap.c | 141 - .../osx_de_adnw_koy_highres.png.md | 1 - layouts/community/ergodox/osx_fr/keymap.c | 163 - .../ergodox/osx_kinesis_pnut/keymap.c | 167 - layouts/community/ergodox/osx_neo2/config.h | 7 - layouts/community/ergodox/osx_neo2/keymap.c | 720 --- layouts/community/ergodox/osx_neo2/layers.h | 9 - layouts/community/ergodox/osx_neo2/readme.md | 219 - .../keymap.c | 221 - .../readme.md | 38 - .../rules.mk | 2 - layouts/community/ergodox/phoenix/keymap.c | 160 - layouts/community/ergodox/phoenix/readme.md | 10 - layouts/community/ergodox/plover/keymap.c | 204 - layouts/community/ergodox/plums/keymap.c | 155 - layouts/community/ergodox/plums/readme.md | 11 - .../ergodox/qwerty_code_friendly/keymap.c | 686 --- .../ergodox/qwerty_code_friendly/readme.md | 232 - .../community/ergodox/reset_eeprom/keymap.c | 118 - .../ergodox/robot_test_layout/keymap.c | 133 - .../ergodox/robot_test_layout/readme.md | 5 - .../romanzolotarev-norman-osx/keymap.c | 35 - .../romanzolotarev-norman-osx/readme.md | 41 - .../keymap.c | 109 - .../readme.md | 50 - .../romanzolotarev-norman-plover-osx/keymap.c | 109 - .../readme.md | 50 - .../romanzolotarev-norman-qwerty-osx/keymap.c | 63 - .../readme.md | 34 - layouts/community/ergodox/sethbc/keymap.c | 99 - layouts/community/ergodox/sethbc/readme.md | 4 - layouts/community/ergodox/sethbc/rules.mk | 1 - .../community/ergodox/siroken3/default.png.md | 1 - .../ergodox/siroken3/default_highres.png.md | 1 - layouts/community/ergodox/siroken3/keymap.c | 163 - layouts/community/ergodox/siroken3/readme.md | 15 - layouts/community/ergodox/sneako/keymap.c | 163 - layouts/community/ergodox/sneako/readme.md | 6 - .../community/ergodox/software_neo2/keymap.c | 119 - layouts/community/ergodox/supercoder/config.h | 4 - layouts/community/ergodox/supercoder/keymap.c | 59 - .../community/ergodox/supercoder/readme.md | 28 - layouts/community/ergodox/supercoder/rules.mk | 6 - .../community/ergodox/swedish-lindhe/keymap.c | 190 - .../ergodox/swedish-lindhe/readme.md | 50 - layouts/community/ergodox/swedish/keymap.c | 225 - layouts/community/ergodox/swedish/readme.md | 36 - layouts/community/ergodox/techtomas/keymap.c | 205 - layouts/community/ergodox/techtomas/readme.md | 57 - layouts/community/ergodox/teckinesis/keymap.c | 218 - .../teckinesis/ordinary-special.png.md | 1 - .../ergodox/teckinesis/ordinary-special.txt | 27 - .../community/ergodox/teckinesis/readme.md | 45 - .../ergodox/teckinesis/teckinesis-base.json | 434 -- .../ergodox/teckinesis/teckinesis-media.json | 436 -- .../ergodox/teckinesis/teckinesis-symbol.json | 422 -- .../community/ergodox/tkuichooseyou/README.md | 13 - .../community/ergodox/tkuichooseyou/keymap.c | 160 - .../community/ergodox/tonyabra_osx/keymap.c | 160 - .../community/ergodox/tonyabra_osx/readme.md | 5 - .../twentylives_dvorak_with_hebrew/keymap.c | 197 - .../twentylives_dvorak_with_hebrew/readme.md | 10 - layouts/community/ergodox/videck/config.h | 8 - layouts/community/ergodox/videck/keymap.c | 179 - layouts/community/ergodox/videck/readme.md | 26 - layouts/community/ergodox/videck/rules.mk | 17 - layouts/community/ergodox/videck/videck.json | 443 -- .../ergodox/workman_osx_mdw/keymap.c | 409 -- layouts/community/ergodox/xyverz/keymap.c | 268 - layouts/community/ergodox/xyverz/readme.md | 103 - .../ergodox/yoruian/90-ergodox-yoruian.conf | 6 - layouts/community/ergodox/yoruian/README | 102 - .../community/ergodox/yoruian/ergodox_yoruian | 34 - layouts/community/ergodox/yoruian/keymap.c | 51 - layouts/community/ergodox/yoruian/rules.mk | 11 - layouts/community/ergodox/yoruian/yoruian.h | 57 - .../ergodox/zweihander-macos/config.h | 14 - .../ergodox/zweihander-macos/keymap.c | 178 - .../ergodox/zweihander-macos/readme.markdown | 82 - .../ergodox/zweihander-macos/rules.mk | 6 - .../community/numpad_5x4/mrsendyyk/keymap.c | 34 - .../community/numpad_5x4/mrsendyyk/readme.md | 14 - .../community/numpad_5x4/mrsendyyk/rules.mk | 1 - .../community/numpad_5x6/bjohnson/config.h | 32 - .../community/numpad_5x6/bjohnson/keymap.c | 54 - .../community/numpad_5x6/bjohnson/rules.mk | 5 - layouts/community/numpad_5x6/drashna/config.h | 36 - layouts/community/numpad_5x6/drashna/keymap.c | 39 - layouts/community/numpad_5x6/drashna/rules.mk | 8 - .../community/ortho_1x4/belgorath/keymap.c | 24 - layouts/community/ortho_3x10/wanleg/config.h | 26 - layouts/community/ortho_3x10/wanleg/keymap.c | 34 - layouts/community/ortho_3x10/wanleg/readme.md | 80 - layouts/community/ortho_3x10/wanleg/rules.mk | 1 - .../ortho_4x10/manna-harbour_miryoku/config.h | 36 - .../ortho_4x10/manna-harbour_miryoku/keymap.c | 4 - layouts/community/ortho_4x10/scotto/keymap.c | 74 - .../community/ortho_4x12/ajp10304/keymap.c | 219 - .../community/ortho_4x12/ajp10304/readme.md | 126 - .../community/ortho_4x12/ajp10304/rules.mk | 3 - .../community/ortho_4x12/alfrdmalr/config.h | 5 - .../community/ortho_4x12/alfrdmalr/keymap.c | 44 - .../community/ortho_4x12/alfrdmalr/rules.mk | 0 .../community/ortho_4x12/bakingpy/config.h | 29 - .../community/ortho_4x12/bakingpy/keymap.c | 200 - .../community/ortho_4x12/bakingpy/readme.md | 108 - .../community/ortho_4x12/bakingpy/rules.mk | 13 - .../community/ortho_4x12/bifbofii/keymap.c | 173 - .../community/ortho_4x12/bifbofii/readme.md | 89 - .../community/ortho_4x12/bifbofii/rules.mk | 1 - .../ortho_4x12/brandonschlack/config.h | 52 - .../ortho_4x12/brandonschlack/keymap.c | 221 - .../ortho_4x12/brandonschlack/readme.md | 20 - .../ortho_4x12/brandonschlack/rules.mk | 10 - .../community/ortho_4x12/bredfield/config.h | 4 - .../community/ortho_4x12/bredfield/keymap.c | 175 - .../community/ortho_4x12/bredfield/readme.md | 105 - .../community/ortho_4x12/buswerks/config.h | 22 - .../community/ortho_4x12/buswerks/keymap.c | 174 - .../community/ortho_4x12/buswerks/readme.md | 12 - .../community/ortho_4x12/buswerks/rules.mk | 9 - layouts/community/ortho_4x12/callum/config.h | 14 - layouts/community/ortho_4x12/callum/keymap.c | 1 - .../ortho_4x12/colemak_mod_dh_wide/config.h | 27 - .../ortho_4x12/colemak_mod_dh_wide/keymap.c | 137 - .../ortho_4x12/colemak_mod_dh_wide/readme.md | 5 - layouts/community/ortho_4x12/drashna/config.h | 153 - layouts/community/ortho_4x12/drashna/keymap.c | 288 - .../community/ortho_4x12/drashna/readme.md | 2 - layouts/community/ortho_4x12/drashna/rules.mk | 51 - .../community/ortho_4x12/ergodoxish/config.h | 27 - .../community/ortho_4x12/ergodoxish/keymap.c | 210 - .../ortho_4x12/grahampheath/config.h | 32 - .../ortho_4x12/grahampheath/keymap.c | 297 - .../ortho_4x12/grahampheath/rules.mk | 0 .../ortho_4x12/greatwizard/README.md | 149 - .../community/ortho_4x12/greatwizard/config.h | 24 - .../community/ortho_4x12/greatwizard/keymap.c | 209 - .../community/ortho_4x12/greatwizard/rules.mk | 7 - .../community/ortho_4x12/jackhumbert/config.h | 51 - .../community/ortho_4x12/jackhumbert/keymap.c | 158 - .../ortho_4x12/jackhumbert/readme.md | 9 - layouts/community/ortho_4x12/jarred/keymap.c | 23 - layouts/community/ortho_4x12/jarred/readme.md | 22 - .../community/ortho_4x12/jjerrell/config.h | 57 - .../community/ortho_4x12/jjerrell/keymap.c | 227 - .../community/ortho_4x12/jjerrell/readme.md | 7 - .../community/ortho_4x12/jjerrell/rules.mk | 8 - layouts/community/ortho_4x12/jotix/keymap.c | 95 - layouts/community/ortho_4x12/jotix/readme.md | 6 - layouts/community/ortho_4x12/jotix/rules.mk | 2 - layouts/community/ortho_4x12/juno/config.h | 38 - layouts/community/ortho_4x12/juno/keymap.c | 450 -- layouts/community/ortho_4x12/juno/readme.md | 16 - layouts/community/ortho_4x12/juno/rules.mk | 14 - layouts/community/ortho_4x12/junonum/config.h | 40 - layouts/community/ortho_4x12/junonum/keymap.c | 379 -- .../community/ortho_4x12/junonum/readme.md | 17 - layouts/community/ortho_4x12/junonum/rules.mk | 22 - .../ortho_4x12/manna-harbour_miryoku/config.h | 47 - .../ortho_4x12/manna-harbour_miryoku/keymap.c | 4 - layouts/community/ortho_4x12/mguterl/config.h | 36 - layouts/community/ortho_4x12/mguterl/keymap.c | 354 -- .../community/ortho_4x12/mguterl/readme.md | 20 - layouts/community/ortho_4x12/mguterl/rules.mk | 1 - .../community/ortho_4x12/mindsound/config.h | 34 - .../community/ortho_4x12/mindsound/flicker.h | 5 - .../community/ortho_4x12/mindsound/keymap.c | 222 - .../community/ortho_4x12/mindsound/readme.md | 19 - .../community/ortho_4x12/mindsound/rules.mk | 26 - .../community/ortho_4x12/neo2marin/config.h | 23 - .../community/ortho_4x12/neo2marin/keymap.c | 175 - .../community/ortho_4x12/neo2marin/readme.md | 105 - .../community/ortho_4x12/neo2marin/rules.mk | 6 - layouts/community/ortho_4x12/peej/keymap.c | 73 - layouts/community/ortho_4x12/rs/config.h | 1 - layouts/community/ortho_4x12/rs/keymap.c | 52 - layouts/community/ortho_4x12/rs/readme.md | 1 - .../community/ortho_4x12/symbolic/README.md | 75 - .../community/ortho_4x12/symbolic/config.h | 35 - .../community/ortho_4x12/symbolic/keymap.c | 229 - layouts/community/ortho_4x12/talljoe/config.h | 33 - layouts/community/ortho_4x12/talljoe/keymap.c | 1 - layouts/community/ortho_4x12/trguhq/config.h | 27 - layouts/community/ortho_4x12/trguhq/keymap.c | 29 - layouts/community/ortho_4x12/trguhq/readme.md | 36 - layouts/community/ortho_4x12/trguhq/rules.mk | 1 - .../community/ortho_4x12/trguhq/trguhq.json | 361 -- layouts/community/ortho_4x12/wanleg/config.h | 49 - layouts/community/ortho_4x12/wanleg/keymap.c | 96 - layouts/community/ortho_4x12/wanleg/readme.md | 46 - layouts/community/ortho_4x12/wanleg/rules.mk | 15 - layouts/community/ortho_4x12/xyverz/config.h | 39 - layouts/community/ortho_4x12/xyverz/keymap.c | 159 - layouts/community/ortho_4x12/xyverz/readme.md | 99 - layouts/community/ortho_4x12/xyverz/rules.mk | 11 - layouts/community/ortho_4x4/jotix/keymap.c | 74 - layouts/community/ortho_4x4/jotix/readme.md | 3 - .../community/ortho_5x12/333fred/README.md | 75 - layouts/community/ortho_5x12/333fred/config.h | 28 - layouts/community/ortho_5x12/333fred/keymap.c | 128 - layouts/community/ortho_5x12/333fred/rules.mk | 2 - .../community/ortho_5x12/alfrdmalr/config.h | 5 - .../community/ortho_5x12/alfrdmalr/keymap.c | 49 - .../community/ortho_5x12/alfrdmalr/rules.mk | 0 .../ortho_5x12/brandonschlack/config.h | 52 - .../ortho_5x12/brandonschlack/keymap.c | 216 - .../ortho_5x12/brandonschlack/readme.md | 19 - .../ortho_5x12/brandonschlack/rules.mk | 10 - layouts/community/ortho_5x12/drashna/config.h | 47 - layouts/community/ortho_5x12/drashna/keymap.c | 131 - layouts/community/ortho_5x12/drashna/rules.mk | 24 - .../ortho_5x12/greatwizard/README.md | 233 - .../community/ortho_5x12/greatwizard/config.h | 25 - .../community/ortho_5x12/greatwizard/keymap.c | 342 -- .../community/ortho_5x12/greatwizard/rules.mk | 8 - .../ortho_5x12/manna-harbour_miryoku/config.h | 50 - .../ortho_5x12/manna-harbour_miryoku/keymap.c | 4 - layouts/community/ortho_5x12/peej/keymap.c | 54 - layouts/community/ortho_5x12/riblee/config.h | 18 - layouts/community/ortho_5x12/riblee/keymap.c | 205 - layouts/community/ortho_5x12/riblee/readme.md | 111 - layouts/community/ortho_5x12/riblee/rules.mk | 2 - layouts/community/ortho_5x12/rs/config.h | 1 - layouts/community/ortho_5x12/rs/keymap.c | 63 - layouts/community/ortho_5x12/rs/readme.md | 1 - layouts/community/ortho_5x12/xyverz/config.h | 36 - layouts/community/ortho_5x12/xyverz/keymap.c | 178 - layouts/community/ortho_5x12/xyverz/rules.mk | 32 - layouts/community/ortho_5x14/peej/keymap.c | 88 - .../ortho_5x14/yet-another-developer/config.h | 31 - .../ortho_5x14/yet-another-developer/keymap.c | 208 - .../ortho_5x14/yet-another-developer/rules.mk | 1 - .../ortho_5x15/manna-harbour_miryoku/config.h | 38 - .../ortho_5x15/manna-harbour_miryoku/keymap.c | 4 - layouts/community/ortho_5x15/wanleg/config.h | 13 - layouts/community/ortho_5x15/wanleg/keymap.c | 274 - layouts/community/ortho_5x15/wanleg/rules.mk | 11 - .../community/planck_mit/guidoism/config.h | 23 - .../planck_mit/guidoism/generate_c.py | 75 - .../planck_mit/guidoism/guidoism.json | 1 - .../community/planck_mit/guidoism/keymap.c | 183 - .../community/planck_mit/guidoism/keys.json | 315 -- .../community/planck_mit/guidoism/readme.md | 107 - .../planck_mit/manna-harbour_miryoku/config.h | 19 - .../planck_mit/manna-harbour_miryoku/keymap.c | 4 - .../manna-harbour_miryoku/config.h | 19 - .../manna-harbour_miryoku/keymap.c | 4 - .../manna-harbour_miryoku/rules.mk | 4 - layouts/community/split_3x5_2/scotto/keymap.c | 78 - .../manna-harbour_miryoku/config.h | 19 - .../manna-harbour_miryoku/keymap.c | 4 - layouts/community/split_3x5_3/scotto/keymap.c | 75 - layouts/community/split_3x6_3/bcat/config.h | 28 - layouts/community/split_3x6_3/bcat/keymap.c | 70 - layouts/community/split_3x6_3/bcat/readme.md | 131 - layouts/community/split_3x6_3/bcat/rules.mk | 8 - .../community/split_3x6_3/drashna/chconf.h | 11 - .../community/split_3x6_3/drashna/config.h | 102 - .../community/split_3x6_3/drashna/glcdfont.c | 232 - .../community/split_3x6_3/drashna/halconf.h | 23 - .../community/split_3x6_3/drashna/keymap.c | 307 -- .../community/split_3x6_3/drashna/mcuconf.h | 32 - .../community/split_3x6_3/drashna/rules.mk | 57 - .../manna-harbour_miryoku/config.h | 21 - .../manna-harbour_miryoku/keymap.c | 4 - .../tkl_ansi/brandonschlack/config.h | 29 - .../tkl_ansi/brandonschlack/keymap.c | 98 - .../tkl_ansi/brandonschlack/readme.md | 55 - .../tkl_ansi/brandonschlack/rules.mk | 4 - .../community/tkl_ansi/talljoe-tkl/config.h | 35 - .../community/tkl_ansi/talljoe-tkl/keymap.c | 1 - .../community/tkl_ansi/talljoe-tkl/rules.mk | 1 - layouts/community/tkl_ansi/xyverz/keymap.c | 69 - layouts/community/tkl_ansi/xyverz/readme.md | 1 - layouts/community/tkl_ansi/yanfali/keymap.c | 25 - users/333fred/333fred.c | 144 - users/333fred/333fred.h | 51 - users/333fred/config.h | 27 - users/333fred/layout_macros.h | 66 - users/333fred/rgb.c | 50 - users/333fred/rules.mk | 10 - users/ajp10304/ajp10304.c | 176 - users/ajp10304/ajp10304.h | 63 - users/ajp10304/readme.md | 141 - users/ajp10304/rules.mk | 1 - users/alfrdmalr/alfrdmalr.c | 91 - users/alfrdmalr/alfrdmalr.h | 286 - users/alfrdmalr/config.h | 7 - users/alfrdmalr/readme.md | 46 - users/alfrdmalr/rules.mk | 8 - users/anderson/dmc12.c | 46 - users/anderson/dmc12.h | 9 - users/anderson/seq.c | 38 - users/anderson/seq.h | 14 - users/anderson/smoothled.c | 34 - users/anderson/smoothled.h | 6 - users/arkag/arkag.c | 456 -- users/arkag/arkag.h | 105 - users/arkag/config.h | 22 - users/arkag/readme.md | 42 - users/arkag/rules.mk | 4 - users/art/.gitignore | 3 - users/art/art.c | 722 --- users/art/art.h | 107 - users/art/art_user_config.h.example | 7 - users/art/config.h | 14 - users/art/custom_definitions.h.example | 8 - users/art/funcs/led_funcs.c | 55 - users/art/funcs/led_funcs.h | 17 - users/art/funcs/string_funcs.c | 307 -- users/art/funcs/string_funcs.h | 14 - users/art/rules.mk | 15 - users/art/secr.h.example | 9 - users/badger/README.md | 31 - users/badger/badger.c | 49 - users/badger/badger.h | 109 - users/badger/ortho.c | 151 - users/badger/ortho.h | 58 - users/badger/rules.mk | 2 - users/bcat/bcat.c | 61 - users/bcat/bcat.h | 58 - users/bcat/bcat_oled.c | 216 - users/bcat/bcat_oled.h | 55 - users/bcat/bcat_oled_pet.h | 73 - users/bcat/bcat_oled_pet_isda.c | 134 - users/bcat/bcat_oled_pet_luna.c | 168 - users/bcat/bcat_rgblight.c | 22 - users/bcat/compile.sh | 52 - users/bcat/config.h | 150 - users/bcat/readme.md | 51 - users/bcat/rules.mk | 68 - users/billypython/billypython.c | 32 - users/billypython/billypython.h | 34 - users/billypython/config.h | 17 - users/billypython/rules.mk | 6 - users/billypython/tap_dance.c | 33 - users/billypython/tap_dance.h | 9 - users/brandonschlack/brandonschlack.c | 211 - users/brandonschlack/brandonschlack.h | 84 - users/brandonschlack/config.h | 55 - users/brandonschlack/process_records.c | 172 - users/brandonschlack/process_records.h | 152 - users/brandonschlack/readme.md | 48 - users/brandonschlack/rgb_bs.c | 146 - users/brandonschlack/rgb_bs.h | 35 - users/brandonschlack/rgb_theme.h | 50 - users/brandonschlack/rgb_theme_user.inc | 95 - users/brandonschlack/rules.mk | 34 - users/brandonschlack/tap_dances.c | 91 - users/brandonschlack/tap_dances.h | 52 - users/brett/brett.c | 61 - users/brett/brett.h | 25 - users/brett/rules.mk | 1 - users/byungyoonc/byungyoonc.c | 48 - users/byungyoonc/byungyoonc.h | 27 - users/byungyoonc/readme.md | 14 - users/byungyoonc/rules.mk | 1 - .../byungyoonc/saturated_solid_multisplash.h | 50 - users/callum/callum.c | 130 - users/callum/oneshot.c | 57 - users/callum/oneshot.h | 31 - users/callum/readme.md | 99 - users/callum/rules.mk | 3 - users/callum/swapper.c | 27 - users/callum/swapper.h | 20 - users/cameronjlarsen/features/oneshot.c | 66 - users/cameronjlarsen/features/oneshot.h | 41 - users/cameronjlarsen/rules.mk | 5 - users/cbbrowne/cbbrowne.c | 0 users/cbbrowne/cbbrowne.h | 39 - users/cbbrowne/rules.mk | 1 - users/cedrikl/cedrikl.c | 36 - users/cedrikl/cedrikl.h | 21 - users/cedrikl/config.h | 25 - users/cedrikl/rules.mk | 4 - users/charlesrocket/apl.c | 183 - users/charlesrocket/rules.mk | 3 - users/cjuniet/cjuniet.c | 13 - users/cjuniet/cjuniet.h | 5 - users/cjuniet/glcdfont.c | 230 - users/cjuniet/readme.md | 14 - users/cjuniet/rules.mk | 1 - users/csc027/csc027.c | 70 - users/csc027/csc027.h | 46 - users/csc027/custom_audio.c | 34 - users/csc027/custom_audio.h | 25 - users/csc027/custom_rgb.c | 42 - users/csc027/custom_rgb.h | 26 - users/csc027/defines.h | 345 -- users/csc027/rules.mk | 11 - users/csc027/usb_led.c | 49 - users/csc027/usb_led.h | 20 - users/curry/.gitignore | 1 - users/curry/LICENSE | 14 - users/curry/README.md | 30 - users/curry/config.h | 112 - users/curry/curry.c | 133 - users/curry/curry.h | 67 - users/curry/glcdfont.c | 232 - users/curry/leader_user.c | 31 - users/curry/leader_user.h | 3 - users/curry/oled.c | 172 - users/curry/process_records.c | 76 - users/curry/process_records.h | 101 - users/curry/rgb_lighting_user.c | 331 -- users/curry/rgb_lighting_user.h | 19 - users/curry/rgb_matrix_user.c | 153 - users/curry/rgb_matrix_user.h | 7 - users/curry/rgblight_breathe_table.h | 118 - users/curry/rules.mk | 71 - users/curry/tap_dances.c | 4 - users/curry/tap_dances.h | 1 - users/curry/wrappers.h | 88 - users/cwebster2/config.h | 56 - users/cwebster2/cwebster2.c | 65 - users/cwebster2/cwebster2.h | 51 - users/cwebster2/keycodes.c | 54 - users/cwebster2/keycodes.h | 27 - users/cwebster2/my_miryoku.h | 77 - users/cwebster2/rules.mk | 13 - users/d4mation/config.h | 1 - users/d4mation/d4mation.c | 37 - users/d4mation/d4mation.h | 17 - users/d4mation/macros.c | 160 - users/d4mation/macros.h | 23 - users/d4mation/rules.mk | 15 - users/d4mation/tap-dance.c | 6 - users/d4mation/tap-dance.h | 7 - users/d4mation/tap-hold.c | 28 - users/d4mation/tap-hold.h | 5 - users/d4mation/zalgo.c | 21 - users/d4mation/zalgo.h | 5 - users/danielo515/alt_tab.c | 38 - users/danielo515/alt_tab.h | 4 - users/danielo515/combo.c | 44 - users/danielo515/combo.h | 2 - users/danielo515/config.h | 9 - users/danielo515/danielo515.c | 124 - users/danielo515/danielo515.h | 7 - users/danielo515/process_records.c | 197 - users/danielo515/process_records.h | 108 - users/danielo515/readme.md | 14 - users/danielo515/rules.mk | 11 - users/danielo515/tap_dance.c | 139 - users/danielo515/tap_dance.h | 81 - users/datagrok/README.md | 63 - users/datagrok/feature_cdeq.c | 47 - users/datagrok/feature_cdeq.h | 2 - .../feature_default_layers_selector.c | 46 - .../feature_default_layers_selector.h | 69 - users/davidkristoffersen/davidkristoffersen.h | 18 - users/davidkristoffersen/hardware/readme.md | 3 - .../davidkristoffersen/hardware/split_space.c | 23 - .../davidkristoffersen/hardware/split_space.h | 16 - users/davidkristoffersen/macros/debug.c | 36 - users/davidkristoffersen/macros/language.c | 40 - users/davidkristoffersen/macros/macros.c | 16 - users/davidkristoffersen/macros/macros.h | 23 - users/davidkristoffersen/macros/norwegian.h | 19 - users/davidkristoffersen/macros/readme.md | 3 - users/davidkristoffersen/post_config.h | 8 - users/davidkristoffersen/readme.md | 3 - users/davidkristoffersen/rules.mk | 12 - users/davidkristoffersen/util/functions.c | 111 - users/davidkristoffersen/util/functions.h | 30 - users/davidkristoffersen/util/readme.md | 3 - users/dennytom/chording_engine/README.md | 376 -- users/dennytom/chording_engine/chord.py | 465 -- users/dennytom/chording_engine/engine.part.1 | 163 - users/dennytom/chording_engine/engine.part.2 | 323 -- users/dennytom/chording_engine/engine.part.3 | 404 -- .../chording_engine/keymap_def.schema.json | 337 -- users/dennytom/chording_engine/parser.py | 231 - .../chording_engine/state_machine.dot | 49 - .../chording_engine/state_machine.svg | 235 - .../dennytom/chording_engine/tests/minunit.h | 288 - users/dennytom/chording_engine/tests/test.c | 1259 ----- .../chording_engine/tests/test_full.sh | 11 - .../tests/test_keymap_def.json | 145 - .../chording_engine/tests/test_quick.sh | 6 - users/devdev/config.h | 30 - users/devdev/glcdfont.c | 465 -- users/dhertz/config.h | 9 - users/dhertz/dhertz.c | 109 - users/dhertz/dhertz.h | 28 - users/dhertz/rules.mk | 1 - users/doogle999/doogle999.c | 460 -- users/doogle999/doogle999.h | 99 - users/doogle999/readme.md | 41 - users/doogle999/rules.mk | 14 - users/draevin/LICENSE | 14 - users/draevin/README.md | 38 - users/draevin/config.h | 26 - users/draevin/draevin.c | 59 - users/draevin/draevin.h | 39 - users/draevin/rules.mk | 12 - users/draevin/wrappers.h | 49 - users/drashna/.gitignore | 3 - users/drashna/.gitlab-ci.yml | 24 - users/drashna/audio_config.h | 33 - users/drashna/autocorrect_data.h | 93 - users/drashna/bootmagic_better.c | 56 - users/drashna/callbacks.c | 292 - users/drashna/callbacks.h | 26 - users/drashna/callbacks.md | 71 - users/drashna/config.h | 115 - users/drashna/drashna.c | 319 -- users/drashna/drashna.h | 115 - users/drashna/eeconfig_users.c | 53 - users/drashna/eeconfig_users.h | 12 - users/drashna/keyrecords/dynamic_macros.c | 283 - users/drashna/keyrecords/dynamic_macros.h | 50 - users/drashna/keyrecords/keycodes.md | 13 - users/drashna/keyrecords/process_records.c | 200 - users/drashna/keyrecords/process_records.h | 150 - users/drashna/keyrecords/readme.md | 7 - users/drashna/keyrecords/secrets.md | 122 - users/drashna/keyrecords/tap_dance.md | 121 - users/drashna/keyrecords/tap_dances.c | 67 - users/drashna/keyrecords/tap_dances.h | 31 - users/drashna/keyrecords/tapping.c | 66 - users/drashna/keyrecords/unicode.c | 446 -- users/drashna/keyrecords/unicode.h | 21 - users/drashna/keyrecords/unicode.md | 27 - users/drashna/keyrecords/wrappers.h | 266 - users/drashna/keyrecords/wrappers.md | 11 - users/drashna/oled/drashna_font.h | 1060 ---- users/drashna/oled/oled_assets.h | 207 - users/drashna/oled/oled_config.h | 40 - users/drashna/oled/oled_stuff.c | 830 --- users/drashna/oled/oled_stuff.h | 169 - users/drashna/oled/readme.md | 42 - users/drashna/oled/rules.mk | 12 - users/drashna/pointing/pointing.c | 118 - users/drashna/pointing/pointing.h | 11 - users/drashna/pointing/pointing_config.h | 6 - users/drashna/pointing/readme.md | 19 - users/drashna/post_config.h | 143 - users/drashna/readme.md | 17 - users/drashna/rgb/readme.md | 52 - users/drashna/rgb/rgb_matrix_config.h | 106 - users/drashna/rgb/rgb_matrix_stuff.c | 190 - users/drashna/rgb/rgb_matrix_stuff.h | 17 - users/drashna/rgb/rgb_stuff.c | 165 - users/drashna/rgb/rgb_stuff.h | 15 - users/drashna/rgb/rgblight_config.h | 12 - users/drashna/rgblight_breathe_table.h | 121 - users/drashna/rules.mk | 136 - users/drashna/split/readme.md | 29 - users/drashna/split/split_config.h | 26 - users/drashna/split/transport_sync.c | 201 - users/drashna/split/transport_sync.h | 28 - users/drashna/template.c | 57 - users/drashna/template.h | 18 - users/dshields/config.h | 64 - users/dshields/dshields.c | 57 - users/dshields/dshields.h | 65 - users/dshields/rules.mk | 31 - users/dudeofawesome/dudeofawesome.c | 1 - users/dudeofawesome/dudeofawesome.h | 29 - users/dudeofawesome/rules.mk | 1 - users/dvorak_42_key/config.h | 8 - users/dvorak_42_key/dvorak_42_key.c | 205 - users/dvorak_42_key/dvorak_42_key.h | 161 - users/dvorak_42_key/rules.mk | 7 - users/dvorak_42_key/vscode_macros.h | 35 - users/edvorakjp/edvorakjp.c | 22 - users/edvorakjp/edvorakjp.h | 90 - users/edvorakjp/edvorakjp_process_record.c | 89 - users/edvorakjp/edvorakjp_status.c | 56 - users/edvorakjp/edvorakjp_tap_dance.c | 78 - users/edvorakjp/readme.md | 67 - users/edvorakjp/rules.mk | 7 - users/ericgebhart/base_layers/accents.h | 90 - users/ericgebhart/base_layers/alt.h | 150 - users/ericgebhart/base_layers/base_layers.h | 58 - users/ericgebhart/base_layers/beakl.h | 158 - users/ericgebhart/base_layers/bepo.h | 114 - users/ericgebhart/base_layers/carpalx.h | 46 - users/ericgebhart/base_layers/dvorak.h | 73 - users/ericgebhart/base_layers/gap.h | 67 - users/ericgebhart/base_layers/hands_down.h | 147 - users/ericgebhart/base_layers/keymaps.txt | 300 - users/ericgebhart/base_layers/maks.h | 61 - users/ericgebhart/base_layers/qwerty.h | 69 - users/ericgebhart/base_layers/toprows.h | 56 - users/ericgebhart/config.h | 321 -- users/ericgebhart/defs/accented_keys.def | 101 - users/ericgebhart/defs/alt_shift.def | 6 - users/ericgebhart/defs/altlocal_keys.def | 208 - users/ericgebhart/defs/combos.def | 139 - users/ericgebhart/defs/custom_keys.def | 86 - users/ericgebhart/defs/encoders.def | 65 - users/ericgebhart/defs/key_overrides.def | 23 - users/ericgebhart/defs/mod_lock.def | 19 - users/ericgebhart/defs/not_dead.def | 19 - users/ericgebhart/defs/nshot.def | 45 - users/ericgebhart/defs/oneshot.def | 17 - users/ericgebhart/defs/send_string.def | 7 - users/ericgebhart/defs/smart_lock.def | 123 - users/ericgebhart/defs/swapper.def | 3 - users/ericgebhart/defs/tap_hold.def | 68 - users/ericgebhart/defs/unicode.def | 5 - users/ericgebhart/ericgebhart.c | 42 - users/ericgebhart/ericgebhart.h | 28 - users/ericgebhart/extensions/accented_keys.c | 50 - users/ericgebhart/extensions/accented_keys.h | 19 - users/ericgebhart/extensions/alt_shift.c | 99 - users/ericgebhart/extensions/altlocal_keys.c | 82 - users/ericgebhart/extensions/altlocal_keys.h | 56 - .../extensions/console_key_logger.c | 38 - .../extensions/console_key_logger.h | 19 - users/ericgebhart/extensions/encoders.c | 83 - users/ericgebhart/extensions/encoders.h | 46 - users/ericgebhart/extensions/extensions.c | 91 - users/ericgebhart/extensions/extensions.h | 22 - users/ericgebhart/extensions/key_overrides.h | 53 - users/ericgebhart/extensions/keycodes.h | 523 -- users/ericgebhart/extensions/keymap_combo.h | 136 - users/ericgebhart/extensions/mod_lock.c | 81 - users/ericgebhart/extensions/mod_lock.h | 39 - users/ericgebhart/extensions/not_dead.c | 36 - users/ericgebhart/extensions/nshot_mod.c | 154 - users/ericgebhart/extensions/nshot_mod.h | 45 - users/ericgebhart/extensions/oneshot.c | 217 - users/ericgebhart/extensions/oneshot.h | 37 - .../ericgebhart/extensions/process_locales.h | 29 - users/ericgebhart/extensions/process_nshot.h | 21 - .../extensions/process_smart_lock.h | 19 - users/ericgebhart/extensions/quick_tap.c | 37 - users/ericgebhart/extensions/send_string.c | 40 - users/ericgebhart/extensions/smart_lock.c | 117 - users/ericgebhart/extensions/smart_lock.h | 103 - users/ericgebhart/extensions/swapper.c | 58 - users/ericgebhart/extensions/swapper.h | 37 - users/ericgebhart/extensions/tap_dances.c | 277 - users/ericgebhart/extensions/tap_dances.h | 19 - users/ericgebhart/extensions/tap_hold.c | 165 - users/ericgebhart/extensions/tap_hold.h | 20 - users/ericgebhart/extensions/unicode.c | 34 - users/ericgebhart/extensions/unicode.h | 24 - users/ericgebhart/keyboards/keyboards.h | 115 - users/ericgebhart/keyboards/layouts.h | 771 --- users/ericgebhart/keymap/keymap.c | 142 - users/ericgebhart/keymap/map_accented.h | 26 - users/ericgebhart/keymap/map_alt.h | 69 - users/ericgebhart/keymap/map_beakl.h | 48 - users/ericgebhart/keymap/map_bepo.h | 40 - users/ericgebhart/keymap/map_carpalx.h | 25 - users/ericgebhart/keymap/map_dvorak.h | 31 - users/ericgebhart/keymap/map_funcs.h | 127 - users/ericgebhart/keymap/map_gap.h | 31 - users/ericgebhart/keymap/map_hd.h | 117 - users/ericgebhart/keymap/map_keypads.h | 66 - users/ericgebhart/keymap/map_maks.h | 34 - users/ericgebhart/keymap/map_qwerty.h | 25 - users/ericgebhart/keymap/map_symbols.h | 56 - users/ericgebhart/keymap/map_toprows.h | 45 - users/ericgebhart/lang/lang.h | 106 - users/ericgebhart/lang/lang_map.h | 78 - users/ericgebhart/lang/locale_layers.h | 27 - users/ericgebhart/lang/locales.c | 60 - users/ericgebhart/lang/locales.h | 42 - users/ericgebhart/layer_names/base_names.h | 173 - users/ericgebhart/layer_names/func_names.h | 38 - users/ericgebhart/layer_names/layer_names.h | 75 - users/ericgebhart/layer_names/util_names.h | 59 - users/ericgebhart/layers/edge_keys.h | 420 -- users/ericgebhart/layers/keypads.h | 236 - users/ericgebhart/layers/layers.h | 112 - users/ericgebhart/layers/nav.h | 199 - users/ericgebhart/layers/symbols.h | 225 - users/ericgebhart/layers/thumbs.h | 276 - users/ericgebhart/layers/toprows.h | 80 - users/ericgebhart/layers/utility.h | 125 - users/ericgebhart/listen_keylogger.sh | 1 - users/ericgebhart/miryoku_hd_gold_config.h | 323 -- users/ericgebhart/mod_layers/alt_mods.h | 129 - users/ericgebhart/mod_layers/hrm_gacs.h | 130 - .../ericgebhart/mod_layers/hrm_gacs_miryoku.h | 130 - users/ericgebhart/mod_layers/hrm_gasc.h | 130 - users/ericgebhart/mod_layers/hrm_sacg.h | 130 - users/ericgebhart/mod_layers/hrs_nav.h | 126 - users/ericgebhart/mod_layers/mod_layer.h | 155 - users/ericgebhart/mod_layers/trns_mods.h | 129 - users/ericgebhart/oled/oled_cartes.c | 325 -- users/ericgebhart/oled/oled_layers.c | 252 - users/ericgebhart/oled/oled_stuff.c | 189 - users/ericgebhart/oled/oled_stuff.h | 61 - users/ericgebhart/process_records.c | 51 - users/ericgebhart/readme.md | 1584 ------ users/ericgebhart/rules.mk | 87 - users/gary/gary.c | 1 - users/gary/gary.h | 42 - users/gary/readme.md | 14 - users/gary/rules.mk | 1 - users/gourdo1/autocorrect/autocorrection.c | 182 - users/gourdo1/autocorrect/autocorrection.h | 40 - .../gourdo1/autocorrect/autocorrection_data.h | 722 --- .../autocorrect/autocorrection_data.h (large) | 722 --- .../autocorrect/autocorrection_data.h (small) | 152 - .../autocorrect/autocorrection_dict.txt | 473 -- .../autocorrect/make_autocorrection_data.py | 303 - users/gourdo1/custom_double_taps.h | 101 - users/gourdo1/gourdo1.c | 631 --- users/gourdo1/gourdo1.h | 148 - users/gourdo1/gourdo1_encoder.c | 238 - users/gourdo1/rules.mk | 31 - users/greatwizard/config.h | 40 - users/greatwizard/fn.h | 21 - users/greatwizard/game.c | 27 - users/greatwizard/game.h | 21 - users/greatwizard/git.c | 127 - users/greatwizard/git.h | 39 - users/greatwizard/greatwizard.c | 113 - users/greatwizard/greatwizard.h | 135 - users/greatwizard/keymap_helpers.h | 61 - users/greatwizard/ortho.c | 21 - users/greatwizard/ortho.h | 24 - users/greatwizard/programmer.c | 174 - users/greatwizard/programmer.h | 31 - users/greatwizard/readme.md | 32 - users/greatwizard/rules.mk | 31 - users/greatwizard/tap_dances.c | 105 - users/greatwizard/tap_dances.h | 65 - users/greatwizard/underglow.c | 109 - users/greatwizard/underglow.h | 24 - users/haervig/config.h | 19 - users/haervig/haervig.c | 234 - users/haervig/haervig.h | 297 - users/haervig/readme.md | 11 - users/haervig/rules.mk | 5 - users/horrortroll/config.h | 64 - users/horrortroll/horrortroll.c | 165 - users/horrortroll/horrortroll.h | 49 - users/horrortroll/led/cool_diagonal.c | 22 - users/horrortroll/led/custom_gradient.c | 74 - .../led/flower_blooming/flower_blooming.c | 27 - .../led/flower_blooming/flower_blooming.h | 36 - users/horrortroll/led/random_breath_rainbow.c | 55 - users/horrortroll/readme.md | 24 - users/horrortroll/rgb_matrix_user.inc | 13 - users/horrortroll/rules.mk | 6 - users/hvp/config.h | 19 - users/hvp/hvp.c | 2 - users/hvp/hvp.h | 43 - users/hvp/per_key.c | 43 - users/hvp/readme.md | 1 - users/hvp/rules.mk | 9 - users/hvp/tap_dances.c | 103 - users/hvp/tap_dances.h | 29 - users/ibnuda/abstraction.c | 17 - users/ibnuda/abstraction.h | 117 - users/ibnuda/combo.c | 1 - users/ibnuda/combo.h | 96 - users/ibnuda/config.h | 5 - users/ibnuda/ibnuda.c | 1 - users/ibnuda/ibnuda.h | 5 - users/ibnuda/readme.md | 14 - users/ibnuda/rules.mk | 8 - users/ibnuda/wrapper.h | 8 - users/imchipwood/imchipwood.c | 141 - users/imchipwood/imchipwood.h | 51 - users/imchipwood/rules.mk | 2 - users/ishtob/config.h | 68 - users/ishtob/ishtob.c | 69 - users/ishtob/ishtob.h | 237 - users/ishtob/readme.md | 87 - users/ishtob/rules.mk | 7 - users/issmirnov/config.h | 41 - users/issmirnov/issmirnov.c | 41 - users/issmirnov/issmirnov.h | 35 - users/issmirnov/rows.h | 55 - users/issmirnov/rules.mk | 25 - users/issmirnov/tap_tog.c | 52 - users/issmirnov/tap_tog.h | 10 - users/jackhumbert/jackhumbert.c | 1 - users/jackhumbert/jackhumbert.h | 6 - users/jackhumbert/readme.md | 14 - users/jackhumbert/rules.mk | 1 - users/jarred/config.h | 49 - users/jarred/jarred.c | 97 - users/jarred/jarred.h | 172 - users/jarred/readme.md | 17 - users/jarred/rules.mk | 16 - users/jdelkins/.gitignore | 1 - users/jdelkins/jdelkins.c | 287 - users/jdelkins/jdelkins.h | 134 - users/jdelkins/rules.mk | 15 - users/jjerrell/.gitignore | 1 - users/jjerrell/config.h | 26 - users/jjerrell/jjerrell.c | 135 - users/jjerrell/jjerrell.h | 53 - users/jjerrell/process_records.c | 139 - users/jjerrell/process_records.h | 41 - users/jjerrell/readme.md | 50 - users/jjerrell/rules.mk | 27 - users/jjerrell/wrappers.h | 329 -- users/jonavin/config.h | 34 - users/jonavin/jonavin.c | 233 - users/jonavin/jonavin.h | 130 - users/jonavin/jonavin_encoder.c | 219 - users/jonavin/readme.md | 124 - users/jonavin/rules.mk | 29 - users/kageurufu/config.h | 4 - users/kageurufu/custom_rgb.c | 18 - users/kageurufu/custom_rgb.h | 3 - users/kageurufu/kageurufu.c | 12 - users/kageurufu/kageurufu.h | 5 - users/kageurufu/layouts.h | 58 - users/kageurufu/process_records.c | 44 - users/kageurufu/process_records.h | 27 - users/kageurufu/readme.md | 14 - users/kageurufu/rules.mk | 14 - users/klackygears/klackygears.c | 75 - users/klackygears/klackygears.h | 72 - users/klackygears/readme.md | 15 - users/klackygears/rules.mk | 6 - users/klackygears/tap_dances.c | 184 - users/klackygears/tap_dances.h | 37 - users/klackygears/wrappers.h | 220 - users/konstantin/config.h | 63 - users/konstantin/konstantin.c | 144 - users/konstantin/konstantin.h | 104 - users/konstantin/post_config.h | 22 - users/konstantin/rgb.c | 42 - users/konstantin/rgb.h | 29 - users/konstantin/rules.mk | 18 - users/konstantin/tap_dance.c | 135 - users/konstantin/tap_dance.h | 45 - users/konstantin/unicode.c | 23 - users/konstantin/unicode.h | 50 - users/kuatsure/kuatsure.c | 122 - users/kuatsure/kuatsure.h | 65 - users/kuatsure/readme.md | 14 - users/kuatsure/rules.mk | 4 - users/kuchosauronad0/.gitignore | 3 - users/kuchosauronad0/combo.c | 27 - users/kuchosauronad0/combo.h | 20 - users/kuchosauronad0/config.h | 88 - users/kuchosauronad0/encoder.c | 64 - users/kuchosauronad0/encoder.h | 4 - users/kuchosauronad0/kuchosauronad0.c | 200 - users/kuchosauronad0/kuchosauronad0.h | 109 - users/kuchosauronad0/leader_user.c | 113 - users/kuchosauronad0/leader_user.h | 6 - users/kuchosauronad0/process_records.c | 244 - users/kuchosauronad0/process_records.h | 91 - users/kuchosauronad0/readme.md | 217 - users/kuchosauronad0/rgblight_user.c | 156 - users/kuchosauronad0/rgblight_user.h | 23 - users/kuchosauronad0/rules.mk | 49 - users/kuchosauronad0/tap_dances.c | 55 - users/kuchosauronad0/tap_dances.h | 26 - users/kuchosauronad0/template.c | 125 - users/kuchosauronad0/template.h | 18 - users/kuchosauronad0/unicode.c | 62 - users/kuchosauronad0/unicode.h | 64 - users/kuchosauronad0/wrappers.h | 212 - users/losinggeneration/README.md | 185 - .../losinggeneration-common.h | 71 - .../losinggeneration-config.h | 29 - .../losinggeneration-keymap.h | 379 -- users/losinggeneration/rules.mk | 12 - users/manna-harbour_miryoku/config.h | 39 - users/manna-harbour_miryoku/custom_config.h | 7 - users/manna-harbour_miryoku/custom_rules.mk | 3 - .../manna-harbour_miryoku.c | 91 - .../manna-harbour_miryoku.h | 51 - .../miryoku_layer_alternatives.h | 389 -- .../miryoku_babel/miryoku_layer_list.h | 23 - .../miryoku_babel/miryoku_layer_selection.h | 277 - users/manna-harbour_miryoku/post_rules.mk | 42 - users/manna-harbour_miryoku/readme.org | 801 --- users/manna-harbour_miryoku/rules.mk | 15 - users/mattly/config.h | 5 - users/mattly/mattly.c | 78 - users/mattly/mattly.h | 121 - users/mattly/readme.md | 10 - users/mattly/rules.mk | 4 - users/mechmerlin/changelog.md | 44 - users/mechmerlin/config.h | 44 - users/mechmerlin/mechmerlin.c | 27 - users/mechmerlin/mechmerlin.h | 19 - users/mechmerlin/readme.md | 57 - users/mechmerlin/rules.mk | 2 - users/mguterl/config.h | 0 users/mguterl/mguterl.c | 1 - users/mguterl/mguterl.h | 67 - users/mguterl/readme.md | 14 - users/mguterl/rules.mk | 1 - users/miketronic/config.h | 12 - users/miketronic/miketronic.c | 17 - users/miketronic/miketronic.h | 63 - users/miketronic/process_records.c | 151 - users/miketronic/process_records.h | 38 - users/miketronic/readme.md | 25 - users/miketronic/rules.mk | 4 - users/miketronic/tapdances.c | 33 - users/miketronic/tapdances.h | 57 - users/miketronic/wrappers.h | 226 - users/miles2go/babblePaste.c | 223 - users/miles2go/babblePaste.h | 383 -- users/miles2go/babblePaste.md | 244 - users/miles2go/babl_chromeos.c | 103 - users/miles2go/babl_emacs.c | 86 - users/miles2go/babl_kitty.c | 153 - users/miles2go/babl_linux.c | 102 - users/miles2go/babl_mac.c | 152 - users/miles2go/babl_nano.c | 77 - users/miles2go/babl_readmux.c | 86 - users/miles2go/babl_vi.c | 77 - users/miles2go/babl_windows.c | 151 - users/miles2go/config.h | 60 - .../handwired/ms_sculpt_mobile/config.h | 50 - .../handwired/ms_sculpt_mobile/keymap.c | 461 -- .../handwired/ms_sculpt_mobile/readme.md | 10 - .../handwired/ms_sculpt_mobile/rules.mk | 24 - users/miles2go/milestogo.c | 153 - users/miles2go/milestogo.h | 302 - users/miles2go/readme.md | 10 - users/miles2go/rules.mk | 10 - users/mnil/config.h | 22 - users/mnil/mnil.c | 146 - users/mnil/mnil.h | 85 - users/mnil/readme.md | 23 - users/mnil/rules.mk | 7 - users/moults31/gdb.c | 59 - users/moults31/gdb.h | 21 - users/moults31/moults31.c | 114 - users/moults31/moults31.h | 61 - users/moults31/obs.c | 80 - users/moults31/obs.h | 21 - users/moults31/readme.md | 5 - users/moults31/rules.mk | 10 - users/moults31/vscode.c | 90 - users/moults31/vscode.h | 21 - users/mtei/config.h | 46 - users/mtei/cpp_map.h | 84 - users/mtei/debug_config.h | 6 - users/mtei/encoder_update_user.c | 33 - users/mtei/key_blocks.h | 40 - users/mtei/layer_number_util.h | 17 - .../matrix_output_unselect_delay_ondemand.c | 18 - users/mtei/oled_display.c | 147 - users/mtei/pseudo_sprintf.c | 53 - users/mtei/pseudo_sprintf.h | 8 - users/mtei/rules.mk | 9 - users/mtei/user_featues.mk | 60 - users/mtei/user_options.mk | 127 - users/muppetjones/.clang-format | 26 - users/muppetjones/config.h | 38 - users/muppetjones/features/casemodes.c | 247 - users/muppetjones/features/casemodes.h | 47 - users/muppetjones/features/combos.c | 35 - users/muppetjones/features/combos.h | 17 - users/muppetjones/features/dancelayers.c | 98 - users/muppetjones/features/dancelayers.h | 82 - users/muppetjones/features/etchamouse.c | 101 - users/muppetjones/features/etchamouse.h | 59 - users/muppetjones/features/rgblayers.c | 69 - users/muppetjones/features/rgblayers.h | 22 - users/muppetjones/muppetjones.c | 52 - users/muppetjones/muppetjones.h | 55 - users/muppetjones/readme.md | 23 - users/muppetjones/readme/dancelayers.md | 73 - users/muppetjones/readme/etchamouse.md | 69 - users/muppetjones/readme/rgblayers.md | 59 - users/muppetjones/readme/tapmods.md | 25 - users/muppetjones/readme/wrappers.md | 153 - users/muppetjones/rules.mk | 25 - users/muppetjones/tapmods.h | 77 - users/muppetjones/wrappers.h | 247 - users/mverteuil/.gitignore | 1 - users/mverteuil/mverteuil.c | 2 - users/mverteuil/mverteuil.h | 21 - users/mverteuil/rules.mk | 1 - users/narze/narze.c | 1 - users/narze/narze.h | 13 - users/narze/readme.md | 37 - users/narze/rules.mk | 5 - users/narze/superduper.c | 66 - users/narze/superduper.h | 7 - users/nchristus/nchristus.c | 18 - users/nchristus/nchristus.h | 87 - users/nchristus/rules.mk | 0 users/ninjonas/.gitignore | 1 - users/ninjonas/README.md | 117 - users/ninjonas/combos.c | 55 - users/ninjonas/config.h | 20 - users/ninjonas/encoder.c | 105 - users/ninjonas/ninjonas.c | 39 - users/ninjonas/ninjonas.h | 148 - users/ninjonas/oled.c | 112 - users/ninjonas/process_records.c | 117 - users/ninjonas/process_records.h | 30 - users/ninjonas/rules.mk | 16 - users/ninjonas/tap_dances.c | 122 - users/ninjonas/tap_dances.h | 37 - users/noroadsleft/noroadsleft.c | 140 - users/noroadsleft/noroadsleft.h | 37 - users/noroadsleft/readme.md | 85 - users/noroadsleft/rules.mk | 1 - users/not-quite-neo/nqn-basic-layout.h | 124 - users/not-quite-neo/nqn-common.h | 9 - .../nqn-keys-on-quertz-de-latin1.h | 73 - users/not-quite-neo/readme.md | 24 - users/nstickney/config.h | 63 - users/nstickney/nstickney.c | 96 - users/nstickney/nstickney.h | 39 - users/nstickney/readme.md | 49 - users/nstickney/rules.mk | 36 - users/nstickney/unicodemap.h | 106 - users/ollyhayes/ollyhayes.c | 153 - users/ollyhayes/ollyhayes.h | 41 - users/ollyhayes/rules.mk | 1 - users/pcewing/README.md | 85 - users/pcewing/key_repeater.c | 168 - users/pcewing/key_repeater.h | 68 - users/pcewing/rules.mk | 1 - users/pdl/pdl.c | 216 - users/pdl/pdl.h | 135 - users/pdl/rules.mk | 1 - users/peej/layout.h | 150 - users/peej/peej.c | 68 - users/peej/peej.h | 78 - users/peej/rules.mk | 1 - users/peterfalken/config.h | 23 - users/peterfalken/peterfalken.c | 20 - users/peterfalken/peterfalken.h | 27 - users/peterfalken/readme.md | 14 - users/peterfalken/rules.mk | 18 - users/pvinis/config.h | 7 - users/pvinis/pvinis.c | 98 - users/pvinis/pvinis.h | 172 - users/pvinis/rules.mk | 19 - users/riblee/readme.md | 14 - users/riblee/riblee.c | 174 - users/riblee/riblee.h | 59 - users/riblee/rules.mk | 1 - users/ridingqwerty/config.h | 10 - users/ridingqwerty/dict.h | 1012 ---- users/ridingqwerty/process_records.c | 486 -- users/ridingqwerty/process_records.h | 58 - users/ridingqwerty/ridingqwerty.c | 65 - users/ridingqwerty/ridingqwerty.h | 61 - users/ridingqwerty/rules.mk | 24 - users/ridingqwerty/tapdances.c | 33 - users/ridingqwerty/tapdances.h | 9 - users/ridingqwerty/unicode.c | 7 - users/ridingqwerty/unicode.h | 295 - users/ridingqwerty/wrappers.h | 156 - users/rishka/rishka.c | 1 - users/rishka/rishka.h | 74 - users/rishka/rules.mk | 1 - users/rmeli/.gitignore | 2 - users/rmeli/config.h | 40 - users/rmeli/keyrecords/tap_dances.c | 139 - users/rmeli/keyrecords/tap_dances.h | 71 - users/rmeli/keyrecords/unicode.h | 86 - users/rmeli/keyrecords/wrappers.h | 178 - users/rmeli/oled/oled.c | 102 - users/rmeli/oled/oled.h | 26 - users/rmeli/readme.md | 14 - users/rmeli/rmeli.h | 32 - users/rmeli/rules.mk | 26 - users/rmw/encoder_functions.c | 53 - users/rmw/encoder_functions.h | 11 - users/rmw/rmw.c | 1 - users/rmw/rmw.h | 87 - users/rmw/rules.mk | 9 - users/rmw/tapdances.c | 389 -- users/rmw/tapdances.h | 46 - users/romus/README.md | 45 - users/romus/config.h | 8 - users/romus/romus.c | 509 -- users/romus/romus.h | 270 - users/romus/rules.mk | 21 - users/rossman360/readme.md | 14 - users/rossman360/rossman360.c | 85 - users/rossman360/rossman360.h | 38 - users/rossman360/rules.mk | 5 - users/rs/karabiner.json | 154 - users/rs/readme.md | 30 - users/rs/rs.c | 74 - users/rs/rs.h | 48 - users/rs/rules.mk | 1 - users/rupa/config.h | 11 - users/rupa/process_records.c | 118 - users/rupa/process_records.h | 21 - users/rupa/readme.md | 7 - users/rupa/rules.mk | 5 - users/rupa/rupa.c | 82 - users/rupa/rupa.h | 82 - users/rupa/unicode.c | 172 - users/rupa/unicode.h | 77 - users/rupa/wrappers.h | 122 - users/rverst/config.h | 45 - users/rverst/readme.md | 18 - users/rverst/rules.mk | 9 - users/rverst/rverst.c | 425 -- users/rverst/rverst.h | 85 - users/rverst/unicode.h | 31 - users/scheiklp/koy_keys_on_quertz_de_latin1.h | 64 - users/scotto/config.h | 25 - users/scotto/readme.md | 17 - users/scotto/rules.mk | 11 - users/scotto/scotto.c | 15 - users/scotto/scotto.h | 69 - users/scotto/tap_dance.c | 154 - users/scotto/tap_dance.h | 39 - users/sethBarberee/config.h | 82 - users/sethBarberee/readme.md | 6 - users/sethBarberee/rgb_light.c | 52 - users/sethBarberee/rgb_light.h | 21 - users/sethBarberee/rules.mk | 10 - users/sethBarberee/sethBarberee.c | 100 - users/sethBarberee/sethBarberee.h | 55 - users/sethBarberee/tap_dance.c | 89 - users/sethBarberee/tap_dance.h | 43 - users/sethBarberee/wrappers.h | 71 - users/sigma/config.h | 21 - users/sigma/rules.mk | 3 - users/sigma/sigma.c | 271 - users/sigma/sigma.h | 58 - users/sigul/.gitignore | 2 - users/sigul/README.md | 17 - users/sigul/config.h | 21 - users/sigul/rules.mk | 8 - users/sigul/sigul.c | 100 - users/sigul/sigul.h | 42 - users/snowe/luna.c | 229 - users/snowe/luna.h | 31 - users/snowe/ocean_dream.c | 556 -- users/snowe/ocean_dream.h | 103 - users/snowe/oled_setup.c | 146 - users/snowe/oled_setup.h | 30 - users/snowe/readme.md | 10 - users/snowe/readme_ocean_dream.md | 258 - users/snowe/rules.mk | 27 - users/snowe/snowe.h | 42 - users/snowe/wrappers.h | 92 - users/spacebarracecar/config.h | 2 - users/spacebarracecar/readme.md | 111 - users/spacebarracecar/rules.mk | 5 - users/spacebarracecar/spacebarracecar.c | 352 -- users/spacebarracecar/spacebarracecar.h | 247 - users/spidey3/config.h | 45 - users/spidey3/init.c | 24 - users/spidey3/layer_rgb.c | 486 -- users/spidey3/readme.md | 14 - users/spidey3/rules.mk | 15 - users/spidey3/spidey3.c | 384 -- users/spidey3/spidey3.h | 81 - users/spidey3/spidey3_unicode.c | 28 - users/spidey3/spidey3_unicode.h | 31 - users/spotpuff/rules.mk | 1 - users/stanrc85/config.h | 38 - users/stanrc85/indicator_layers_sneakbox.c | 28 - users/stanrc85/layer_rgb.c | 29 - users/stanrc85/readme.md | 57 - users/stanrc85/rgb_layers.c | 36 - users/stanrc85/rgb_timeout.c | 62 - users/stanrc85/rgblight_layers.c | 30 - users/stanrc85/rgblight_layers_osa.c | 68 - users/stanrc85/rules.mk | 55 - users/stanrc85/stanrc85.c | 133 - users/stanrc85/stanrc85.h | 55 - users/stanrc85/startup_fanfare.c | 43 - users/talljoe/config.h | 22 - users/talljoe/macros.c | 40 - users/talljoe/macros.h | 27 - users/talljoe/readme.md | 7 - users/talljoe/rules.mk | 18 - users/talljoe/talljoe.c | 229 - users/talljoe/talljoe.h | 184 - users/talljoe/tapdance/actions/td.function.c | 35 - users/talljoe/tapdance/actions/td.grave.c | 36 - users/talljoe/tapdance/actions/td.lock.c | 35 - users/talljoe/tapdance/actions/td.semicolon.c | 54 - users/talljoe/tapdance/tapdance.h | 26 - users/talljoe/tapdance/tapdance_actions.c | 28 - users/talljoe/tapdance/td_setup.c | 70 - users/talljoe/tapdance/td_setup.h | 29 - users/toinux/keymap_qwerty_fr.h | 153 - users/tominabox1/.gitignore | 2 - users/tominabox1/config.h | 87 - users/tominabox1/dimple_rgb.c | 433 -- users/tominabox1/doug.c | 232 - users/tominabox1/readme.md | 5 - users/tominabox1/rules.mk | 25 - users/tominabox1/tominabox1.c | 281 - users/tominabox1/tominabox1.h | 56 - users/tominabox1/wrappers.h | 142 - users/turbomech/backupturbomech.c | 390 -- users/turbomech/turbomech.c | 124 - users/turbomech/turbomech.h | 50 - users/twschum/config.h | 0 users/twschum/readme.md | 14 - users/twschum/rules.mk | 5 - users/twschum/twschum.c | 256 - users/twschum/twschum.h | 131 - users/twschum/xtonhasvim.c | 593 -- users/twschum/xtonhasvim.h | 62 - users/uqs/config.h | 38 - users/uqs/rules.mk | 24 - users/uqs/uqs.c | 575 -- users/uqs/uqs.h | 77 - users/vitoni/readme.adoc | 16 - users/vitoni/rgb_matrix_effects.c | 236 - users/vitoni/rgb_matrix_effects.h | 174 - users/vitoni/rules.mk | 4 - users/vitoni/utils.c | 129 - users/vitoni/utils.h | 80 - users/vitoni/vitoni.c | 131 - users/vitoni/vitoni.h | 30 - users/vnmm/config.h | 70 - users/vnmm/keymap_user.h | 41 - users/vnmm/readme.md | 10 - users/vnmm/rgb_matrix_user.c | 140 - users/vnmm/rgb_matrix_user.h | 28 - users/vnmm/rules.mk | 5 - users/vnmm/vnmm.c | 23 - users/vnmm/vnmm.h | 21 - users/vosechu/config.h | 19 - users/vosechu/readme.md | 14 - users/vosechu/rules.mk | 1 - users/vosechu/vosechu.c | 25 - users/vosechu/vosechu.h | 89 - users/wanleg/config.h | 47 - users/wanleg/readme.md | 125 - users/wanleg/rules.mk | 45 - users/wanleg/tapdances.c | 264 - users/wanleg/wanleg.c | 176 - users/wanleg/wanleg.h | 322 -- users/xtonhasvim/fancylighting.c | 172 - users/xtonhasvim/fancylighting.h | 36 - users/xtonhasvim/readme.md | 10 - users/xtonhasvim/rules.mk | 2 - users/xtonhasvim/xtonhasvim.c | 643 --- users/xtonhasvim/xtonhasvim.h | 65 - users/xulkal/config.h | 36 - users/xulkal/custom_encoder.c | 73 - users/xulkal/custom_encoder.h | 2 - users/xulkal/custom_keycodes.h | 40 - users/xulkal/custom_oled.c | 189 - users/xulkal/custom_oled.h | 2 - users/xulkal/custom_rgb.c | 64 - users/xulkal/custom_rgb.h | 17 - users/xulkal/custom_tap_dance.c | 59 - users/xulkal/custom_tap_dance.h | 23 - users/xulkal/layouts.h | 119 - users/xulkal/process_records.c | 62 - users/xulkal/process_records.h | 18 - users/xulkal/rules.mk | 32 - users/xulkal/xulkal.c | 1 - users/xulkal/xulkal.h | 6 - users/yanfali/config.h | 30 - users/yanfali/rules.mk | 38 - users/yet-another-developer/.gitignore | 2 - users/yet-another-developer/README.md | 7 - users/yet-another-developer/combo.c | 27 - users/yet-another-developer/combo.h | 20 - users/yet-another-developer/config.h | 46 - users/yet-another-developer/leader_user.c | 41 - users/yet-another-developer/leader_user.h | 6 - users/yet-another-developer/process_records.c | 193 - users/yet-another-developer/process_records.h | 109 - users/yet-another-developer/rules.mk | 50 - users/yet-another-developer/tap_dances.c | 55 - users/yet-another-developer/tap_dances.h | 26 - users/yet-another-developer/unicode.c | 62 - users/yet-another-developer/unicode.h | 64 - users/yet-another-developer/wrappers.h | 166 - .../yet-another-developer.c | 160 - .../yet-another-developer.h | 87 - users/zer09/config.h | 23 - users/zer09/lights.c | 189 - users/zer09/lights.h | 45 - users/zer09/rules.mk | 2 - users/zer09/tap_dance.c | 203 - users/zer09/tap_dance.h | 55 - users/zer09/zer09.c | 89 - users/zer09/zer09.h | 25 - users/zigotica/combos.c | 37 - users/zigotica/combos.h | 17 - users/zigotica/rows.h | 211 - users/zigotica/rules.mk | 18 - users/zigotica/tapdances.c | 34 - users/zigotica/tapdances.h | 24 - users/zigotica/zigotica.c | 14 - users/zigotica/zigotica.h | 51 - users/zyber/config.h | 9 - users/zyber/rules.mk | 8 - users/zyber/zyber.c | 137 - users/zyber/zyber.h | 33 - 2738 files changed, 207314 deletions(-) delete mode 100644 keyboards/1upkeyboards/1up60hse/keymaps/vosechu/config.h delete mode 100644 keyboards/1upkeyboards/1up60hse/keymaps/vosechu/keymap.c delete mode 100644 keyboards/1upkeyboards/1up60hse/keymaps/vosechu/readme.md delete mode 100644 keyboards/1upkeyboards/1up60hte/keymaps/badger/keymap.c delete mode 100644 keyboards/1upkeyboards/1up60rgb/keymaps/badger/keymap.c delete mode 100644 keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/config.h delete mode 100644 keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/keymap.c delete mode 100644 keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/rules.mk delete mode 100644 keyboards/3w6/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/3w6/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/40percentclub/nano/keymaps/drashna/config.h delete mode 100644 keyboards/40percentclub/nano/keymaps/drashna/keymap.c delete mode 100644 keyboards/40percentclub/nano/keymaps/drashna/rules.mk delete mode 100644 keyboards/9key/keymaps/bcat/keymap.c delete mode 100644 keyboards/9key/keymaps/bcat/readme.md delete mode 100644 keyboards/a_dux/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/a_dux/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/a_dux/keymaps/manna-harbour_miryoku/rules.mk delete mode 100644 keyboards/acheron/shark/alpha/keymaps/ajp10304/readme.md delete mode 100644 keyboards/adafruit/macropad/keymaps/drashna/config.h delete mode 100644 keyboards/adafruit/macropad/keymaps/drashna/keymap.c delete mode 100644 keyboards/adafruit/macropad/keymaps/drashna/rules.mk delete mode 100644 keyboards/adafruit/macropad/keymaps/peterfalken/keymap.c delete mode 100644 keyboards/adafruit/macropad/keymaps/peterfalken/rules.mk delete mode 100644 keyboards/ai03/lunar/keymaps/zyber/keymap.c delete mode 100755 keyboards/alpha/keymaps/hvp/keymap.c delete mode 100644 keyboards/alps64/keymaps/mechmerlin/keymap.c delete mode 100644 keyboards/alps64/keymaps/mechmerlin/readme.md delete mode 100644 keyboards/alps64/keymaps/zyber/keymap.c delete mode 100644 keyboards/arisu/keymaps/stanrc85/keymap.c delete mode 100644 keyboards/arisu/keymaps/stanrc85/rules.mk delete mode 100644 keyboards/atreus/keymaps/dvorak_42_key/README.md delete mode 100644 keyboards/atreus/keymaps/dvorak_42_key/config.h delete mode 100644 keyboards/atreus/keymaps/dvorak_42_key/keymap.c delete mode 100644 keyboards/atreus/keymaps/ibnuda/keymap.c delete mode 100644 keyboards/atreus/keymaps/ibnuda/rules.mk delete mode 100644 keyboards/atreus/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/atreus/keymaps/ridingqwerty/config.h delete mode 100644 keyboards/atreus/keymaps/ridingqwerty/keymap.c delete mode 100644 keyboards/atreus/keymaps/ridingqwerty/readme.md delete mode 100644 keyboards/atreus/keymaps/ridingqwerty/rules.mk delete mode 100644 keyboards/atreus/keymaps/talljoe/config.h delete mode 100644 keyboards/atreus/keymaps/talljoe/keymap.c delete mode 100644 keyboards/atreus/keymaps/talljoe/rules.mk delete mode 100644 keyboards/atreus62/keymaps/d4mation/keymap.c delete mode 100644 keyboards/atreus62/keymaps/d4mation/readme.md delete mode 100644 keyboards/atreus62/keymaps/d4mation/rules.mk delete mode 100644 keyboards/atreus62/keymaps/hvp/config.h delete mode 100644 keyboards/atreus62/keymaps/hvp/keymap.c delete mode 100644 keyboards/atreus62/keymaps/hvp/readme.md delete mode 100644 keyboards/atreus62/keymaps/hvp/rules.mk delete mode 100644 keyboards/atreus62/keymaps/jarred/config.h delete mode 100644 keyboards/atreus62/keymaps/jarred/keymap.c delete mode 100644 keyboards/atreus62/keymaps/pcewing/keymap.c delete mode 100644 keyboards/atreus62/keymaps/scheiklp/config.h delete mode 100644 keyboards/atreus62/keymaps/scheiklp/keymap.c delete mode 100644 keyboards/atreus62/keymaps/scheiklp/readme.md delete mode 100644 keyboards/atreus62/keymaps/scheiklp/rules.mk delete mode 100644 keyboards/bastardkb/charybdis/3x5/keymaps/drashna/config.h delete mode 100644 keyboards/bastardkb/charybdis/3x5/keymaps/drashna/halconf.h delete mode 100644 keyboards/bastardkb/charybdis/3x5/keymaps/drashna/keymap.c delete mode 100644 keyboards/bastardkb/charybdis/3x5/keymaps/drashna/mcuconf.h delete mode 100644 keyboards/bastardkb/charybdis/3x5/keymaps/drashna/rules.mk delete mode 100644 keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/rules.mk delete mode 100644 keyboards/bastardkb/charybdis/4x6/keymaps/drashna/config.h delete mode 100644 keyboards/bastardkb/charybdis/4x6/keymaps/drashna/keymap.c delete mode 100644 keyboards/bastardkb/charybdis/4x6/keymaps/drashna/mcuconf.h delete mode 100644 keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk delete mode 100644 keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/rules.mk delete mode 100644 keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/config.h delete mode 100644 keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/halconf.h delete mode 100644 keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/keymap.c delete mode 100644 keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/mcuconf.h delete mode 100644 keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/rules.mk delete mode 100644 keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/bfake/keymaps/mechmerlin/keymap.c delete mode 100644 keyboards/bfake/keymaps/mechmerlin/readme.md delete mode 100644 keyboards/boardsource/lulu/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/boardsource/lulu/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/boardsource/lulu/keymaps/rmeli/config.h delete mode 100644 keyboards/boardsource/lulu/keymaps/rmeli/keymap.c delete mode 100644 keyboards/boardsource/lulu/keymaps/rmeli/rules.mk delete mode 100644 keyboards/boardsource/the_mark/keymaps/stanrc85/keymap.c delete mode 100644 keyboards/boardwalk/keymaps/nchristus/config.h delete mode 100644 keyboards/boardwalk/keymaps/nchristus/keymap.c delete mode 100644 keyboards/boardwalk/keymaps/nchristus/readme.md delete mode 100644 keyboards/boardwalk/keymaps/nchristus/rules.mk delete mode 100644 keyboards/cannonkeys/tmov2/keymaps/brandonschlack/keymap.c delete mode 100644 keyboards/centromere/keymaps/mattly/keymap.c delete mode 100644 keyboards/centromere/keymaps/mattly/rules.mk delete mode 100644 keyboards/checkerboards/quark/keymaps/ajp10304/keymap.c delete mode 100644 keyboards/checkerboards/quark/keymaps/ajp10304/readme.md delete mode 100644 keyboards/checkerboards/quark/keymaps/ajp10304/rules.mk delete mode 100644 keyboards/clueboard/66/keymaps/badger/keymap.c delete mode 100644 keyboards/contra/keymaps/losinggeneration/README.md delete mode 100644 keyboards/contra/keymaps/losinggeneration/config.h delete mode 100644 keyboards/contra/keymaps/losinggeneration/keymap.c delete mode 100644 keyboards/contra/keymaps/losinggeneration/rules.mk delete mode 100644 keyboards/converter/adb_usb/keymaps/zyber/keymap.c delete mode 100644 keyboards/converter/m0110_usb/keymaps/zyber/keymap.c delete mode 100644 keyboards/converter/m0110_usb/keymaps/zyber/rules.mk delete mode 100644 keyboards/converter/sun_usb/type5/keymaps/sigma/keymap.c delete mode 100644 keyboards/converter/sun_usb/type5/keymaps/sigma/readme.md delete mode 100644 keyboards/converter/sun_usb/type5/keymaps/sigma/rules.mk delete mode 100644 keyboards/converter/usb_usb/keymaps/narze/README.md delete mode 100644 keyboards/converter/usb_usb/keymaps/narze/config.h delete mode 100644 keyboards/converter/usb_usb/keymaps/narze/keymap.c delete mode 100644 keyboards/converter/usb_usb/keymaps/narze/rules.mk delete mode 100644 keyboards/coseyfannitutti/discipline/keymaps/brandonschlack/keymap.c delete mode 100644 keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/config.h delete mode 100644 keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c delete mode 100644 keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/rules.mk delete mode 100644 keyboards/coseyfannitutti/romeo/keymaps/brandonschlack/keymap.c delete mode 100644 keyboards/cozykeys/speedo/v3/keymaps/pcewing/keymap.c delete mode 100644 keyboards/crkbd/keymaps/cameronjlarsen/config.h delete mode 100644 keyboards/crkbd/keymaps/cameronjlarsen/keymap.c delete mode 100644 keyboards/crkbd/keymaps/cameronjlarsen/rules.mk delete mode 100644 keyboards/crkbd/keymaps/curry/config.h delete mode 100644 keyboards/crkbd/keymaps/curry/keymap.c delete mode 100644 keyboards/crkbd/keymaps/curry/rules.mk delete mode 100644 keyboards/crkbd/keymaps/devdev/config.h delete mode 100644 keyboards/crkbd/keymaps/devdev/keymap.c delete mode 100644 keyboards/crkbd/keymaps/devdev/rules.mk delete mode 100644 keyboards/crkbd/keymaps/edvorakjp/config.h delete mode 100644 keyboards/crkbd/keymaps/edvorakjp/keymap.c delete mode 100644 keyboards/crkbd/keymaps/edvorakjp/oled.c delete mode 100644 keyboards/crkbd/keymaps/edvorakjp/oled.h delete mode 100644 keyboards/crkbd/keymaps/edvorakjp/readme.md delete mode 100644 keyboards/crkbd/keymaps/edvorakjp/rules.mk delete mode 100755 keyboards/crkbd/keymaps/ericgebhart/config.h delete mode 100644 keyboards/crkbd/keymaps/ericgebhart/keymap.c delete mode 100644 keyboards/crkbd/keymaps/hvp/config.h delete mode 100644 keyboards/crkbd/keymaps/hvp/keymap.c delete mode 100644 keyboards/crkbd/keymaps/hvp/readme.md delete mode 100644 keyboards/crkbd/keymaps/hvp/rules.mk delete mode 100644 keyboards/crkbd/keymaps/jarred/config.h delete mode 100644 keyboards/crkbd/keymaps/jarred/keymap.c delete mode 100644 keyboards/crkbd/keymaps/jarred/readme.md delete mode 100644 keyboards/crkbd/keymaps/jarred/rules.mk delete mode 100644 keyboards/crkbd/keymaps/ninjonas/README.md delete mode 100644 keyboards/crkbd/keymaps/ninjonas/config.h delete mode 100644 keyboards/crkbd/keymaps/ninjonas/keymap.c delete mode 100644 keyboards/crkbd/keymaps/ninjonas/rules.mk delete mode 100644 keyboards/crkbd/keymaps/ollyhayes/config.h delete mode 100644 keyboards/crkbd/keymaps/ollyhayes/keymap.c delete mode 100644 keyboards/crkbd/keymaps/ollyhayes/oled.c delete mode 100644 keyboards/crkbd/keymaps/ollyhayes/readme.md delete mode 100644 keyboards/crkbd/keymaps/ollyhayes/rules.mk delete mode 100644 keyboards/crkbd/keymaps/pdl/config.h delete mode 100644 keyboards/crkbd/keymaps/pdl/keymap.c delete mode 100644 keyboards/crkbd/keymaps/rmeli/config.h delete mode 100644 keyboards/crkbd/keymaps/rmeli/keymap.c delete mode 100644 keyboards/crkbd/keymaps/rmeli/rules.mk delete mode 100644 keyboards/crkbd/keymaps/rs/config.h delete mode 100644 keyboards/crkbd/keymaps/rs/keymap.c delete mode 100644 keyboards/crkbd/keymaps/rs/oled.c delete mode 100644 keyboards/crkbd/keymaps/rs/readme.md delete mode 100644 keyboards/crkbd/keymaps/rs/rules.mk delete mode 100644 keyboards/crkbd/keymaps/snowe/config.h delete mode 100644 keyboards/crkbd/keymaps/snowe/keycode_aliases.h delete mode 100644 keyboards/crkbd/keymaps/snowe/keymap.c delete mode 100644 keyboards/crkbd/keymaps/snowe/rules.mk delete mode 100644 keyboards/crkbd/keymaps/toinux/config.h delete mode 100644 keyboards/crkbd/keymaps/toinux/glcdfont.c delete mode 100644 keyboards/crkbd/keymaps/toinux/keycodes.h delete mode 100644 keyboards/crkbd/keymaps/toinux/keymap.c delete mode 100644 keyboards/crkbd/keymaps/toinux/oled.c delete mode 100644 keyboards/crkbd/keymaps/toinux/oled.h delete mode 100644 keyboards/crkbd/keymaps/toinux/rgb.c delete mode 100644 keyboards/crkbd/keymaps/toinux/rules.mk delete mode 100755 keyboards/crkbd/keymaps/tominabox1/keymap.c delete mode 100644 keyboards/crkbd/rev1/keymaps/dvorak_42_key/config.h delete mode 100644 keyboards/crkbd/rev1/keymaps/dvorak_42_key/keymap.c delete mode 100644 keyboards/crkbd/rev1/keymaps/dvorak_42_key/rules.mk delete mode 100644 keyboards/cutie_club/borsdorf/keymaps/zyber/keymap.c delete mode 100644 keyboards/doro67/multi/keymaps/konstantin/config.h delete mode 100644 keyboards/doro67/multi/keymaps/konstantin/keymap.c delete mode 100644 keyboards/doro67/multi/keymaps/konstantin/rules.mk delete mode 100644 keyboards/doro67/multi/keymaps/zyber/keymap.c delete mode 100644 keyboards/draculad/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/draculad/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/dumbpad/v1x/keymaps/imchipwood/keymap.c delete mode 100644 keyboards/durgod/k320/keymaps/moults31/config.h delete mode 100644 keyboards/durgod/k320/keymaps/moults31/keymap.c delete mode 100644 keyboards/durgod/k320/keymaps/moults31/readme.md delete mode 100644 keyboards/durgod/k320/keymaps/moults31/rules.mk delete mode 100644 keyboards/dz60/keymaps/billypython/config.h delete mode 100644 keyboards/dz60/keymaps/billypython/keymap.c delete mode 100644 keyboards/dz60/keymaps/billypython/rules.mk delete mode 100644 keyboards/dz60/keymaps/doogle999/keymap.c delete mode 100644 keyboards/dz60/keymaps/draevin/keymap.c delete mode 100644 keyboards/dz60/keymaps/jarred/keymap.c delete mode 100644 keyboards/dz60/keymaps/jdelkins/config.h delete mode 100644 keyboards/dz60/keymaps/jdelkins/keymap.c delete mode 100644 keyboards/dz60/keymaps/jdelkins/rules.mk delete mode 100644 keyboards/dz60/keymaps/konstantin_b/config.h delete mode 100644 keyboards/dz60/keymaps/konstantin_b/keymap.c delete mode 100644 keyboards/dz60/keymaps/konstantin_b/rules.mk delete mode 100644 keyboards/dz60/keymaps/mechmerlin/config.h delete mode 100644 keyboards/dz60/keymaps/mechmerlin/keymap.c delete mode 100644 keyboards/dz60/keymaps/mechmerlin/readme.md delete mode 100644 keyboards/dz60/keymaps/spotpuff/keymap.c delete mode 100644 keyboards/dz60/keymaps/spotpuff/rules.mk delete mode 100644 keyboards/dz60/keymaps/twschum_b_4_10/config.h delete mode 100644 keyboards/dz60/keymaps/twschum_b_4_10/keymap.c delete mode 100644 keyboards/dz60/keymaps/twschum_b_4_10/layout.json delete mode 100644 keyboards/dz60/keymaps/twschum_b_4_10/rules.mk delete mode 100644 keyboards/dz60/keymaps/xtonhasvim/config.h delete mode 100644 keyboards/dz60/keymaps/xtonhasvim/keymap.c delete mode 100644 keyboards/dz60/keymaps/xtonhasvim/readme.md delete mode 100644 keyboards/dztech/dz60rgb/keymaps/moults31/keymap.c delete mode 100644 keyboards/dztech/dz60rgb/keymaps/moults31/readme.md delete mode 100644 keyboards/dztech/dz60rgb/keymaps/moults31/rules.mk delete mode 100644 keyboards/dztech/dz60rgb_ansi/keymaps/badger/keymap.c delete mode 100644 keyboards/dztech/dz65rgb/keymaps/haervig/keymap.c delete mode 100644 keyboards/dztech/dz65rgb/keymaps/haervig/rules.mk delete mode 100644 keyboards/eco/keymaps/bcat/config.h delete mode 100644 keyboards/eco/keymaps/bcat/keymap.c delete mode 100644 keyboards/eco/keymaps/bcat/readme.md delete mode 100644 keyboards/eco/keymaps/bcat/rules.mk delete mode 100644 keyboards/ein_60/keymaps/klackygears/config.h delete mode 100644 keyboards/ein_60/keymaps/klackygears/keymap.c delete mode 100644 keyboards/ein_60/keymaps/klackygears/readme.md delete mode 100644 keyboards/ein_60/keymaps/klackygears/rules.mk delete mode 100644 keyboards/ergodox_ez/keymaps/danielo515/config.h delete mode 100644 keyboards/ergodox_ez/keymaps/danielo515/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/danielo515/rules.mk delete mode 100644 keyboards/ergodox_ez/keymaps/dvorak_42_key/README.md delete mode 100644 keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/ericgebhart/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/ericgebhart/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/pvinis/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/pvinis/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/pvinis/rules.mk delete mode 100644 keyboards/ergodox_ez/keymaps/rishka/config.h delete mode 100644 keyboards/ergodox_ez/keymaps/rishka/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/rishka/rules.mk delete mode 100644 keyboards/ergodox_ez/keymaps/rmw/config.h delete mode 100644 keyboards/ergodox_ez/keymaps/rmw/keymap-mac.c delete mode 100644 keyboards/ergodox_ez/keymaps/rmw/keymap-win.c delete mode 100644 keyboards/ergodox_ez/keymaps/rmw/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/rmw/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/rmw/rules.mk delete mode 100644 keyboards/ergotravel/keymaps/jarred/config.h delete mode 100644 keyboards/ergotravel/keymaps/jarred/keymap.c delete mode 100644 keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/ergotravel/keymaps/rs/config.h delete mode 100644 keyboards/ergotravel/keymaps/rs/keymap.c delete mode 100644 keyboards/ergotravel/keymaps/rs/readme.md delete mode 100644 keyboards/ergotravel/keymaps/yanfali/config.h delete mode 100644 keyboards/ergotravel/keymaps/yanfali/keymap.c delete mode 100644 keyboards/ergotravel/keymaps/yanfali/rules.mk delete mode 100644 keyboards/evyd13/wasdat/keymaps/konstantin/config.h delete mode 100644 keyboards/evyd13/wasdat/keymaps/konstantin/keymap.c delete mode 100644 keyboards/evyd13/wasdat/keymaps/konstantin/rules.mk delete mode 100644 keyboards/evyd13/wonderland/keymaps/brandonschlack/config.h delete mode 100755 keyboards/evyd13/wonderland/keymaps/brandonschlack/keymap.c delete mode 100755 keyboards/evyd13/wonderland/keymaps/brandonschlack/rules.mk delete mode 100644 keyboards/fc660c/keymaps/zyber/keymap.c delete mode 100644 keyboards/flehrad/bigswitch/keymaps/333fred/config.h delete mode 100644 keyboards/flehrad/bigswitch/keymaps/333fred/keymap.c delete mode 100644 keyboards/flehrad/bigswitch/keymaps/333fred/rules.mk delete mode 100644 keyboards/flehrad/bigswitch/keymaps/wanleg/config.h delete mode 100644 keyboards/flehrad/bigswitch/keymaps/wanleg/keymap.c delete mode 100644 keyboards/flehrad/bigswitch/keymaps/wanleg/rules.mk delete mode 100644 keyboards/foostan/cornelius/keymaps/hvp/config.h delete mode 100644 keyboards/foostan/cornelius/keymaps/hvp/keymap.c delete mode 100644 keyboards/foostan/cornelius/keymaps/hvp/readme.md delete mode 100644 keyboards/foostan/cornelius/keymaps/hvp/rules.mk delete mode 100644 keyboards/foostan/cornelius/keymaps/pdl/config.h delete mode 100644 keyboards/foostan/cornelius/keymaps/pdl/keymap.c delete mode 100644 keyboards/foostan/cornelius/keymaps/pdl/readme.md delete mode 100644 keyboards/for_science/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/fortitude60/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/fortitude60/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/foxlab/leaf60/universal/keymaps/jarred/keymap.c delete mode 100644 keyboards/foxlab/leaf60/universal/keymaps/jarred/readme.md delete mode 100644 keyboards/foxlab/leaf60/universal/keymaps/mguterl/config.h delete mode 100644 keyboards/foxlab/leaf60/universal/keymaps/mguterl/keymap.c delete mode 100644 keyboards/foxlab/leaf60/universal/keymaps/mguterl/readme.md delete mode 100644 keyboards/gboards/butterstick/keymaps/dennytom/README.md delete mode 100644 keyboards/gboards/butterstick/keymaps/dennytom/keymap.c delete mode 100644 keyboards/gboards/butterstick/keymaps/dennytom/keymap_def.json delete mode 100644 keyboards/gboards/butterstick/keymaps/dennytom/rules.mk delete mode 100644 keyboards/gboards/georgi/keymaps/dennytom/README.md delete mode 100644 keyboards/gboards/georgi/keymaps/dennytom/keymap.c delete mode 100644 keyboards/gboards/georgi/keymaps/dennytom/keymap_def.json delete mode 100644 keyboards/gboards/georgi/keymaps/dennytom/rules.mk delete mode 100644 keyboards/gboards/gergo/keymaps/drashna/keymap.c delete mode 100644 keyboards/gboards/gergo/keymaps/drashna/rules.mk delete mode 100644 keyboards/gboards/gergo/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/gboards/gergo/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/gh60/satan/keymaps/jarred/keymap.c delete mode 100644 keyboards/gh60/satan/keymaps/jarred/readme.md delete mode 100644 keyboards/gmmk/gmmk2/p65/ansi/keymaps/vnmm/keymap.c delete mode 100644 keyboards/gmmk/gmmk2/p65/ansi/keymaps/vnmm/readme.md delete mode 100644 keyboards/gmmk/gmmk2/p65/ansi/keymaps/vnmm/rules.mk delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/config.h delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/keymap.c delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/readme.md delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/rgb_matrix_user.inc delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/rules.mk delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/keymap.c delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/rgb_matrix_map.h delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/rules.mk delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/config.h delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/paddlegame.h delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/readme.md delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rgb_matrix_map.h delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rules.mk delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/config.h delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/keymap.c delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/readme.md delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/rgb_matrix_map.h delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/rules.mk delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/moults31/keymap.c delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/vnmm/keymap.c delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/vnmm/readme.md delete mode 100644 keyboards/gmmk/pro/rev1/ansi/keymaps/vnmm/rules.mk delete mode 100644 keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/config.h delete mode 100644 keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/keymap.c delete mode 100644 keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/paddlegame.h delete mode 100644 keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/readme.md delete mode 100644 keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/rgb_matrix_map.h delete mode 100644 keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/rules.mk delete mode 100644 keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/config.h delete mode 100644 keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/keymap.c delete mode 100644 keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/readme.md delete mode 100644 keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/rgb_matrix_map.h delete mode 100644 keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/rules.mk delete mode 100644 keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/config.h delete mode 100644 keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/keymap.c delete mode 100644 keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/readme.adoc delete mode 100644 keyboards/gopolar/gg86/keymaps/horrortroll/keymap.c delete mode 100644 keyboards/gopolar/gg86/keymaps/horrortroll/oled/oled_stuff.h delete mode 100644 keyboards/gray_studio/think65/solder/keymaps/brandonschlack/config.h delete mode 100644 keyboards/gray_studio/think65/solder/keymaps/brandonschlack/keymap.c delete mode 100644 keyboards/gray_studio/think65/solder/keymaps/brandonschlack/readme.md delete mode 100644 keyboards/gray_studio/think65/solder/keymaps/brandonschlack/rules.mk delete mode 100644 keyboards/hadron/ver3/keymaps/ishtob/keymap.c delete mode 100644 keyboards/hadron/ver3/keymaps/ishtob/readme.md delete mode 100644 keyboards/hadron/ver3/keymaps/xulkal/config.h delete mode 100644 keyboards/hadron/ver3/keymaps/xulkal/keymap.c delete mode 100644 keyboards/hadron/ver3/keymaps/xulkal/rules.mk delete mode 100644 keyboards/handwired/atreus50/keymaps/ajp10304/config.h delete mode 100644 keyboards/handwired/atreus50/keymaps/ajp10304/keymap.c delete mode 100644 keyboards/handwired/atreus50/keymaps/ajp10304/readme.md delete mode 100644 keyboards/handwired/atreus50/keymaps/ajp10304/rules.mk delete mode 100644 keyboards/handwired/brain/keymaps/klackygears/config.h delete mode 100644 keyboards/handwired/brain/keymaps/klackygears/keymap.c delete mode 100644 keyboards/handwired/brain/keymaps/klackygears/rules.mk delete mode 100644 keyboards/handwired/d48/keymaps/anderson/keymap.c delete mode 100644 keyboards/handwired/d48/keymaps/anderson/lightmode.c delete mode 100644 keyboards/handwired/d48/keymaps/anderson/lightmode.h delete mode 100644 keyboards/handwired/d48/keymaps/anderson/rules.mk delete mode 100644 keyboards/handwired/dactyl_manuform/4x5/keymaps/ibnuda/config.h delete mode 100644 keyboards/handwired/dactyl_manuform/4x5/keymaps/ibnuda/keymap.c delete mode 100644 keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/handwired/dactyl_manuform/4x6/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/handwired/dactyl_manuform/4x6/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/README.md delete mode 100644 keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/config.h delete mode 100644 keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/keymap.c delete mode 100644 keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/rules.mk delete mode 100644 keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/README.md delete mode 100644 keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/config.h delete mode 100644 keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/keymap.c delete mode 100644 keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/rules.mk delete mode 100644 keyboards/handwired/dactyl_manuform/4x6_5/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/handwired/dactyl_manuform/4x6_5/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/config.h delete mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/keymap.c delete mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/rules.mk delete mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/config.h delete mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/keymap.c delete mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/rules.mk delete mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/README.md delete mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/config.h delete mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/keymap.c delete mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/rules.mk delete mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/uqs/config.h delete mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/uqs/keymap.c delete mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/uqs/rules.mk delete mode 100644 keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/config.h delete mode 100644 keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/keymap.c delete mode 100644 keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/rules.mk delete mode 100644 keyboards/handwired/minorca/keymaps/ridingqwerty/config.h delete mode 100644 keyboards/handwired/minorca/keymaps/ridingqwerty/keymap.c delete mode 100644 keyboards/handwired/minorca/keymaps/ridingqwerty/readme.md delete mode 100644 keyboards/handwired/minorca/keymaps/ridingqwerty/rules.mk delete mode 100644 keyboards/handwired/reclined/keymaps/pdl/config.h delete mode 100644 keyboards/handwired/reclined/keymaps/pdl/keymap.c delete mode 100644 keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/config.h delete mode 100644 keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/keymap.c delete mode 100644 keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/rules.mk delete mode 100644 keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/config.h delete mode 100644 keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/keymap.c delete mode 100644 keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/rules.mk delete mode 100644 keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/config.h delete mode 100644 keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/keymap.c delete mode 100644 keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/rules.mk delete mode 100644 keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/config.h delete mode 100644 keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/keymap.c delete mode 100644 keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/rules.mk delete mode 100644 keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/config.h delete mode 100644 keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/keymap.c delete mode 100644 keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/rules.mk delete mode 100644 keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/config.h delete mode 100644 keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/keymap.c delete mode 100644 keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/rules.mk delete mode 100644 keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/config.h delete mode 100644 keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/keymap.c delete mode 100644 keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/rules.mk delete mode 100644 keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/config.h delete mode 100644 keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/keymap.c delete mode 100644 keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/rules.mk delete mode 100644 keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/config.h delete mode 100644 keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/keymap.c delete mode 100644 keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/rules.mk delete mode 100644 keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/config.h delete mode 100644 keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/keymap.c delete mode 100644 keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/rules.mk delete mode 100644 keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/config.h delete mode 100644 keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/keymap.c delete mode 100644 keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/rules.mk delete mode 100644 keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/config.h delete mode 100644 keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/keymap.c delete mode 100644 keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/rules.mk delete mode 100644 keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/config.h delete mode 100644 keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/keymap.c delete mode 100644 keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rgblight_breathe_table.h delete mode 100644 keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rules.mk delete mode 100644 keyboards/handwired/wabi/keymaps/rossman360/keymap.c delete mode 100644 keyboards/hazel/bad_wings/keymaps/miketronic/config.h delete mode 100644 keyboards/hazel/bad_wings/keymaps/miketronic/keymap.c delete mode 100644 keyboards/hazel/bad_wings/keymaps/miketronic/rules.mk delete mode 100644 keyboards/helix/pico/keymaps/mtei/config.h delete mode 100644 keyboards/helix/pico/keymaps/mtei/keymap.c delete mode 100644 keyboards/helix/pico/keymaps/mtei/rules.mk delete mode 100644 keyboards/helix/rev2/keymaps/edvorakjp/config.h delete mode 100644 keyboards/helix/rev2/keymaps/edvorakjp/keymap.c delete mode 100644 keyboards/helix/rev2/keymaps/edvorakjp/oled.c delete mode 100644 keyboards/helix/rev2/keymaps/edvorakjp/oled.h delete mode 100644 keyboards/helix/rev2/keymaps/edvorakjp/readme.md delete mode 100644 keyboards/helix/rev2/keymaps/edvorakjp/rules.mk delete mode 100644 keyboards/helix/rev2/keymaps/five_rows/README.md delete mode 100644 keyboards/helix/rev2/keymaps/five_rows/README_jp.md delete mode 100644 keyboards/helix/rev2/keymaps/five_rows/config.h delete mode 100644 keyboards/helix/rev2/keymaps/five_rows/keymap.c delete mode 100644 keyboards/helix/rev2/keymaps/five_rows/rules.mk delete mode 100644 keyboards/helix/rev2/keymaps/xulkal/config.h delete mode 100644 keyboards/helix/rev2/keymaps/xulkal/keymap.c delete mode 100644 keyboards/helix/rev2/keymaps/xulkal/rules.mk delete mode 100644 keyboards/helix/rev3_5rows/keymaps/five_rows/config.h delete mode 100644 keyboards/helix/rev3_5rows/keymaps/five_rows/keymap.c delete mode 100644 keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk delete mode 100644 keyboards/hhkb/ansi/keymaps/brett/config.h delete mode 100644 keyboards/hhkb/ansi/keymaps/brett/keymap.c delete mode 100644 keyboards/hhkb/ansi/keymaps/brett/readme.md delete mode 100644 keyboards/hhkb/ansi/keymaps/brett/rules.mk delete mode 100644 keyboards/hhkb/ansi/keymaps/tominabox1/.gitignore delete mode 100644 keyboards/hhkb/ansi/keymaps/tominabox1/keymap.c delete mode 100644 keyboards/hhkb/jp/keymaps/dhertz/config.h delete mode 100644 keyboards/hhkb/jp/keymaps/dhertz/keymap.c delete mode 100644 keyboards/hhkb/jp/keymaps/dhertz/keymap.h delete mode 100644 keyboards/hhkb/jp/keymaps/dhertz/rules.mk delete mode 100644 keyboards/hidtech/bastyl/keymaps/nstickney/keymap.c delete mode 100644 keyboards/hillside/46/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/hillside/46/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/hillside/48/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/hillside/48/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/hillside/52/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/hillside/52/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/hotdox/keymaps/imchipwood/keymap.c delete mode 100644 keyboards/hotdox/keymaps/ninjonas/README.md delete mode 100644 keyboards/hotdox/keymaps/ninjonas/keymap.c delete mode 100644 keyboards/hotdox/keymaps/ninjonas/rules.mk delete mode 100644 keyboards/hs60/v2/ansi/keymaps/stanrc85/config.h delete mode 100644 keyboards/hs60/v2/ansi/keymaps/stanrc85/keymap.c delete mode 100644 keyboards/hs60/v2/ansi/keymaps/stanrc85/readme.md delete mode 100644 keyboards/hs60/v2/ansi/keymaps/stanrc85/rules.mk delete mode 100644 keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c delete mode 100644 keyboards/idobao/id80/v2/ansi/keymaps/rverst/readme.md delete mode 100644 keyboards/idobao/id80/v2/ansi/keymaps/rverst/rverst.json delete mode 100644 keyboards/input_club/ergodox_infinity/keymaps/dudeofawesome/README.md delete mode 100644 keyboards/input_club/ergodox_infinity/keymaps/dudeofawesome/config.h delete mode 100644 keyboards/input_club/ergodox_infinity/keymaps/dudeofawesome/keymap.c delete mode 100644 keyboards/input_club/ergodox_infinity/keymaps/dudeofawesome/layers.h delete mode 100644 keyboards/input_club/ergodox_infinity/keymaps/narze/config.h delete mode 100644 keyboards/input_club/ergodox_infinity/keymaps/narze/default.png.md delete mode 100644 keyboards/input_club/ergodox_infinity/keymaps/narze/default_highres.png.md delete mode 100644 keyboards/input_club/ergodox_infinity/keymaps/narze/keymap.c delete mode 100644 keyboards/input_club/ergodox_infinity/keymaps/narze/readme.md delete mode 100644 keyboards/input_club/ergodox_infinity/keymaps/narze/rules.mk delete mode 100644 keyboards/input_club/ergodox_infinity/keymaps/narze/visualizer.c delete mode 100644 keyboards/input_club/ergodox_infinity/keymaps/not-quite-neo/keymap.c delete mode 100644 keyboards/input_club/ergodox_infinity/keymaps/not-quite-neo/readme.md delete mode 100644 keyboards/input_club/ergodox_infinity/keymaps/not-quite-neo/rules.mk delete mode 100644 keyboards/input_club/whitefox/keymaps/billypython/config.h delete mode 100644 keyboards/input_club/whitefox/keymaps/billypython/keymap.c delete mode 100644 keyboards/input_club/whitefox/keymaps/billypython/rules.mk delete mode 100644 keyboards/input_club/whitefox/keymaps/dhertz/keymap.c delete mode 100644 keyboards/input_club/whitefox/keymaps/dudeofawesome/keymap.c delete mode 100644 keyboards/input_club/whitefox/keymaps/dudeofawesome/readme.md delete mode 100644 keyboards/input_club/whitefox/keymaps/konstantin/config.h delete mode 100644 keyboards/input_club/whitefox/keymaps/konstantin/keymap.c delete mode 100644 keyboards/input_club/whitefox/keymaps/konstantin/rules.mk delete mode 100644 keyboards/jacky_studio/bear_65/keymaps/stanrc85/keymap.c delete mode 100644 keyboards/jacky_studio/bear_65/keymaps/stanrc85/rules.mk delete mode 100644 keyboards/jd45/keymaps/talljoe/config.h delete mode 100644 keyboards/jd45/keymaps/talljoe/keymap.c delete mode 100644 keyboards/jorne/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/jorne/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/kbdfans/kbd67/hotswap/keymaps/brandonschlack/keymap.c delete mode 100644 keyboards/kbdfans/kbd67/hotswap/keymaps/brandonschlack/rules.mk delete mode 100644 keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/config.h delete mode 100644 keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/keymap.c delete mode 100644 keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/readme.md delete mode 100644 keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/rgb_matrix_map.h delete mode 100644 keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/rules.mk delete mode 100644 keyboards/kbdfans/kbd67/rev2/keymaps/brandonschlack/keymap.c delete mode 100644 keyboards/kbdfans/kbd67/rev2/keymaps/brandonschlack/rules.mk delete mode 100644 keyboards/kbdfans/kbd6x/keymaps/konstantin/config.h delete mode 100644 keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c delete mode 100644 keyboards/kbdfans/kbd6x/keymaps/konstantin/rules.mk delete mode 100644 keyboards/kbdfans/kbd6x/keymaps/wanleg/keymap.c delete mode 100644 keyboards/kbdfans/kbd6x/keymaps/wanleg/rules.mk delete mode 100644 keyboards/kbdfans/kbd75/keymaps/noroadsleft/config.h delete mode 100644 keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c delete mode 100644 keyboards/kbdfans/kbd75/keymaps/noroadsleft/rules.mk delete mode 100644 keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/config.h delete mode 100644 keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/keymap.c delete mode 100644 keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/readme.md delete mode 100644 keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/rules.mk delete mode 100644 keyboards/kc60/keymaps/noroadsleft/config.h delete mode 100644 keyboards/kc60/keymaps/noroadsleft/keymap.c delete mode 100644 keyboards/kc60/keymaps/noroadsleft/readme.md delete mode 100644 keyboards/kc60/keymaps/noroadsleft/rules.mk delete mode 100644 keyboards/keebio/bdn9/keymaps/bcat/keymap.c delete mode 100644 keyboards/keebio/bdn9/keymaps/bcat/readme.md delete mode 100644 keyboards/keebio/bdn9/keymaps/brandonschlack/config.h delete mode 100644 keyboards/keebio/bdn9/keymaps/brandonschlack/keymap.c delete mode 100644 keyboards/keebio/bdn9/keymaps/brandonschlack/readme.md delete mode 100644 keyboards/keebio/bdn9/keymaps/brandonschlack/rules.mk delete mode 100644 keyboards/keebio/bdn9/keymaps/rishka/config.h delete mode 100644 keyboards/keebio/bdn9/keymaps/rishka/keymap.c delete mode 100644 keyboards/keebio/bdn9/keymaps/rishka/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/333fred/config.h delete mode 100644 keyboards/keebio/iris/keymaps/333fred/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/333fred/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/csc027/config.h delete mode 100644 keyboards/keebio/iris/keymaps/csc027/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/csc027/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/drashna/config.h delete mode 100644 keyboards/keebio/iris/keymaps/drashna/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/drashna/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/edvorakjp/config.h delete mode 100644 keyboards/keebio/iris/keymaps/edvorakjp/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/edvorakjp/readme.md delete mode 100644 keyboards/keebio/iris/keymaps/edvorakjp/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/gary/README.md delete mode 100644 keyboards/keebio/iris/keymaps/gary/config.h delete mode 100644 keyboards/keebio/iris/keymaps/gary/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/gary/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/mattly/config.h delete mode 100644 keyboards/keebio/iris/keymaps/mattly/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/mattly/readme.md delete mode 100644 keyboards/keebio/iris/keymaps/mnil/config.h delete mode 100644 keyboards/keebio/iris/keymaps/mnil/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/mnil/readme.md delete mode 100644 keyboards/keebio/iris/keymaps/mnil/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/nstickney/config.h delete mode 100644 keyboards/keebio/iris/keymaps/nstickney/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/pvinis/config.h delete mode 100644 keyboards/keebio/iris/keymaps/pvinis/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/pvinis/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/rs/config.h delete mode 100644 keyboards/keebio/iris/keymaps/rs/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/rs/readme.md delete mode 100644 keyboards/keebio/iris/keymaps/rs/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/sethBarberee/config.h delete mode 100644 keyboards/keebio/iris/keymaps/sethBarberee/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/sethBarberee/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/wanleg/config.h delete mode 100644 keyboards/keebio/iris/keymaps/wanleg/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/wanleg/rules.mk delete mode 100644 keyboards/keebio/levinson/keymaps/issmirnov/README.md delete mode 100644 keyboards/keebio/levinson/keymaps/issmirnov/asci-keymap.txt delete mode 100644 keyboards/keebio/levinson/keymaps/issmirnov/config.h delete mode 100644 keyboards/keebio/levinson/keymaps/issmirnov/keymap.c delete mode 100644 keyboards/keebio/levinson/keymaps/issmirnov/rgb.c delete mode 100644 keyboards/keebio/levinson/keymaps/issmirnov/rgb.h delete mode 100644 keyboards/keebio/levinson/keymaps/issmirnov/rules.mk delete mode 100644 keyboards/keebio/levinson/keymaps/issmirnov/sounds.h delete mode 100644 keyboards/keebio/levinson/keymaps/issmirnov/template.txt delete mode 100644 keyboards/keebio/levinson/keymaps/losinggeneration/README.md delete mode 100644 keyboards/keebio/levinson/keymaps/losinggeneration/config.h delete mode 100644 keyboards/keebio/levinson/keymaps/losinggeneration/keymap.c delete mode 100644 keyboards/keebio/levinson/keymaps/losinggeneration/rules.mk delete mode 100644 keyboards/keebio/levinson/keymaps/rossman360/keymap.c delete mode 100644 keyboards/keebio/levinson/keymaps/xtonhasvim/config.h delete mode 100644 keyboards/keebio/levinson/keymaps/xtonhasvim/keymap.c delete mode 100644 keyboards/keebio/levinson/keymaps/xtonhasvim/readme.md delete mode 100644 keyboards/keebio/levinson/keymaps/xtonhasvim/rules.mk delete mode 100644 keyboards/keebio/nyquist/keymaps/losinggeneration/README.md delete mode 100644 keyboards/keebio/nyquist/keymaps/losinggeneration/config.h delete mode 100644 keyboards/keebio/nyquist/keymaps/losinggeneration/keymap.c delete mode 100644 keyboards/keebio/nyquist/keymaps/losinggeneration/rules.mk delete mode 100644 keyboards/keebio/quefrency/keymaps/bcat/config.h delete mode 100644 keyboards/keebio/quefrency/keymaps/bcat/keymap.c delete mode 100644 keyboards/keebio/quefrency/keymaps/bcat/readme.md delete mode 100644 keyboards/keebio/quefrency/keymaps/bcat/rules.mk delete mode 100644 keyboards/keebio/quefrency/keymaps/draevin/keymap.c delete mode 100644 keyboards/keebio/quefrency/keymaps/draevin/rules.mk delete mode 100644 keyboards/keebio/quefrency/keymaps/jonavin/config.h delete mode 100644 keyboards/keebio/quefrency/keymaps/jonavin/keymap.c delete mode 100644 keyboards/keebio/quefrency/keymaps/jonavin/readme.md delete mode 100644 keyboards/keebio/quefrency/keymaps/jonavin/rules.mk delete mode 100644 keyboards/keebio/sinc/keymaps/draevin/keymap.c delete mode 100644 keyboards/keebio/sinc/keymaps/sethBarberee/config.h delete mode 100644 keyboards/keebio/sinc/keymaps/sethBarberee/keymap.c delete mode 100644 keyboards/keebio/sinc/keymaps/sethBarberee/rules.mk delete mode 100755 keyboards/keebio/tragicforce68/keymaps/rossman360/keymap.c delete mode 100644 keyboards/keebio/tragicforce68/keymaps/rossman360/readme.md delete mode 100644 keyboards/keebio/tragicforce68/keymaps/rossman360/rules.mk delete mode 100644 keyboards/keebio/viterbi/keymaps/drashna/config.h delete mode 100644 keyboards/keebio/viterbi/keymaps/drashna/keymap.c delete mode 100644 keyboards/keebio/viterbi/keymaps/drashna/rules.mk delete mode 100644 keyboards/keebio/viterbi/keymaps/ericgebhart/config.h delete mode 100644 keyboards/keebio/viterbi/keymaps/ericgebhart/keymap.c delete mode 100644 keyboards/keebio/viterbi/keymaps/vosechu/config.h delete mode 100644 keyboards/keebio/viterbi/keymaps/vosechu/keymap.c delete mode 100644 keyboards/keebio/viterbi/keymaps/vosechu/rules.mk delete mode 100644 keyboards/keyboardio/atreus/keymaps/dshields/keymap.c delete mode 100644 keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/keyboardio/model01/keymaps/dshields/config.h delete mode 100644 keyboards/keyboardio/model01/keymaps/dshields/keymap.c delete mode 100644 keyboards/keyboardio/model01/keymaps/dshields/readme.md delete mode 100644 keyboards/keyboardio/model01/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/keyboardio/model01/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/keyboardio/model01/keymaps/manna-harbour_miryoku/rules.mk delete mode 100644 keyboards/keychron/q2/iso_encoder/keymaps/dhertz/keymap.c delete mode 100644 keyboards/keychron/q2/iso_encoder/keymaps/dhertz/rules.mk delete mode 100644 keyboards/keychron/v1/ansi/keymaps/vnmm/keymap.c delete mode 100644 keyboards/keychron/v1/ansi/keymaps/vnmm/readme.md delete mode 100644 keyboards/keychron/v1/ansi/keymaps/vnmm/rules.mk delete mode 100644 keyboards/keychron/v2/ansi/keymaps/vnmm/keymap.c delete mode 100644 keyboards/keychron/v2/ansi/keymaps/vnmm/readme.md delete mode 100644 keyboards/keychron/v2/ansi/keymaps/vnmm/rules.mk delete mode 100644 keyboards/keychron/v3/ansi_encoder/keymaps/vnmm/keymap.c delete mode 100644 keyboards/keychron/v3/ansi_encoder/keymaps/vnmm/rules.mk delete mode 100644 keyboards/keyhive/navi10/keymaps/devdev/config.h delete mode 100644 keyboards/keyhive/navi10/keymaps/devdev/keymap.c delete mode 100644 keyboards/keyhive/navi10/keymaps/devdev/rules.mk delete mode 100644 keyboards/keyhive/ut472/keymaps/hvp/config.h delete mode 100644 keyboards/keyhive/ut472/keymaps/hvp/keymap.c delete mode 100644 keyboards/keyhive/ut472/keymaps/hvp/readme.md delete mode 100644 keyboards/keyhive/ut472/keymaps/hvp/rules.mk delete mode 100644 keyboards/kinesis/keymaps/ericgebhart/keymap.c delete mode 100644 keyboards/kinesis/keymaps/ericgebhart/readme.md delete mode 100644 keyboards/kinesis/keymaps/ericgebhart/rules.mk delete mode 100644 keyboards/kingly_keys/little_foot/keymaps/yanfali/config.h delete mode 100644 keyboards/kingly_keys/little_foot/keymaps/yanfali/keymap.c delete mode 100644 keyboards/kingly_keys/little_foot/keymaps/yanfali/rules.mk delete mode 100644 keyboards/kingly_keys/romac/keymaps/brandonschlack/keymap.c delete mode 100644 keyboards/kingly_keys/romac/keymaps/brandonschlack/rules.mk delete mode 100644 keyboards/kingly_keys/romac/keymaps/jarred/keymap.c delete mode 100644 keyboards/kingly_keys/romac/keymaps/stanrc85/config.h delete mode 100644 keyboards/kingly_keys/romac/keymaps/stanrc85/keymap.c delete mode 100644 keyboards/kingly_keys/romac/keymaps/stanrc85/rules.mk delete mode 100644 keyboards/kiwikey/wanderland/keymaps/stanrc85/config.h delete mode 100644 keyboards/kiwikey/wanderland/keymaps/stanrc85/keymap.c delete mode 100644 keyboards/kiwikey/wanderland/keymaps/stanrc85/rules.mk delete mode 100644 keyboards/knobgoblin/keymaps/moults31/keymap.c delete mode 100644 keyboards/knobgoblin/keymaps/moults31/readme.md delete mode 100644 keyboards/knobgoblin/keymaps/moults31/rules.mk delete mode 100644 keyboards/knops/mini/keymaps/mverteuil/config.h delete mode 100644 keyboards/knops/mini/keymaps/mverteuil/keymap.c delete mode 100644 keyboards/knops/mini/keymaps/mverteuil/readme.md delete mode 100644 keyboards/knops/mini/keymaps/mverteuil/rules.mk delete mode 100644 keyboards/kprepublic/jj40/keymaps/ajp10304/readme.md delete mode 100644 keyboards/ktec/ergodone/keymaps/art/.gitignore delete mode 100644 keyboards/ktec/ergodone/keymaps/art/keymap.c delete mode 100644 keyboards/ktec/ergodone/keymaps/art/rules.mk delete mode 100644 keyboards/ktec/ergodone/keymaps/art/user_config.c.example delete mode 100644 keyboards/lazydesigners/dimple/staggered/keymaps/tominabox1/keymap.c delete mode 100644 keyboards/lets_split/keymaps/hvp/config.h delete mode 100644 keyboards/lets_split/keymaps/hvp/keymap.c delete mode 100644 keyboards/lets_split/keymaps/hvp/readme.md delete mode 100644 keyboards/lets_split/keymaps/hvp/rules.mk delete mode 100644 keyboards/lets_split/keymaps/pdl/config.h delete mode 100644 keyboards/lets_split/keymaps/pdl/keymap.c delete mode 100644 keyboards/lets_split/keymaps/pdl/rules.mk delete mode 100644 keyboards/lets_split/keymaps/zer09/config.h delete mode 100644 keyboards/lets_split/keymaps/zer09/keymap.c delete mode 100644 keyboards/lets_split/keymaps/zer09/rules.mk delete mode 100644 keyboards/lily58/keymaps/bcat/config.h delete mode 100644 keyboards/lily58/keymaps/bcat/keymap.c delete mode 100644 keyboards/lily58/keymaps/bcat/readme.md delete mode 100644 keyboards/lily58/keymaps/bcat/rules.mk delete mode 100644 keyboards/lily58/keymaps/curry/config.h delete mode 100644 keyboards/lily58/keymaps/curry/keymap.c delete mode 100644 keyboards/lily58/keymaps/curry/rules.mk delete mode 100644 keyboards/lily58/keymaps/hvp/config.h delete mode 100644 keyboards/lily58/keymaps/hvp/keymap.c delete mode 100644 keyboards/lily58/keymaps/hvp/readme.md delete mode 100644 keyboards/lily58/keymaps/hvp/rules.mk delete mode 100644 keyboards/lily58/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/lily58/keymaps/muppetjones/README.md delete mode 100644 keyboards/lily58/keymaps/muppetjones/config.h delete mode 100644 keyboards/lily58/keymaps/muppetjones/features/bongo_cat.c delete mode 100644 keyboards/lily58/keymaps/muppetjones/features/bongo_cat.h delete mode 100644 keyboards/lily58/keymaps/muppetjones/keymap.c delete mode 100644 keyboards/lily58/keymaps/muppetjones/rules.mk delete mode 100644 keyboards/lily58/keymaps/narze/config.h delete mode 100644 keyboards/lily58/keymaps/narze/keymap.c delete mode 100644 keyboards/lily58/keymaps/narze/readme.md delete mode 100644 keyboards/lily58/keymaps/narze/rules.mk delete mode 100644 keyboards/lily58/keymaps/ninjonas/README.md delete mode 100644 keyboards/lily58/keymaps/ninjonas/config.h delete mode 100644 keyboards/lily58/keymaps/ninjonas/keymap.c delete mode 100644 keyboards/lily58/keymaps/ninjonas/rules.mk delete mode 100644 keyboards/maple_computing/c39/keymaps/kuchosauronad0/config.h delete mode 100644 keyboards/maple_computing/c39/keymaps/kuchosauronad0/keymap.c delete mode 100644 keyboards/maple_computing/c39/keymaps/kuchosauronad0/readme.md delete mode 100644 keyboards/maple_computing/c39/keymaps/kuchosauronad0/rules.mk delete mode 100644 keyboards/maple_computing/launchpad/keymaps/brandonschlack/config.h delete mode 100644 keyboards/maple_computing/launchpad/keymaps/brandonschlack/keymap.c delete mode 100644 keyboards/maple_computing/launchpad/keymaps/brandonschlack/readme.md delete mode 100644 keyboards/maple_computing/launchpad/keymaps/brandonschlack/rules.mk delete mode 100644 keyboards/maple_computing/launchpad/keymaps/drashna/config.h delete mode 100644 keyboards/maple_computing/launchpad/keymaps/drashna/keymap.c delete mode 100644 keyboards/maple_computing/launchpad/keymaps/drashna/rules.mk delete mode 100644 keyboards/maple_computing/lets_split_eh/keymaps/romus/README.md delete mode 100644 keyboards/maple_computing/lets_split_eh/keymaps/romus/keymap.c delete mode 100644 keyboards/maple_computing/lets_split_eh/keymaps/romus/rules.mk delete mode 100644 keyboards/massdrop/alt/keymaps/charlesrocket/config.h delete mode 100644 keyboards/massdrop/alt/keymaps/charlesrocket/keymap.c delete mode 100644 keyboards/massdrop/alt/keymaps/charlesrocket/rules.mk delete mode 100644 keyboards/massdrop/alt/keymaps/jdelkins/config.h delete mode 100644 keyboards/massdrop/alt/keymaps/jdelkins/keymap.c delete mode 100644 keyboards/massdrop/alt/keymaps/jdelkins/rgb_matrix.h delete mode 100644 keyboards/massdrop/alt/keymaps/jdelkins/rules.mk delete mode 100644 keyboards/massdrop/alt/keymaps/jdelkins_ss/config.h delete mode 100644 keyboards/massdrop/alt/keymaps/jdelkins_ss/keymap.c delete mode 100644 keyboards/massdrop/alt/keymaps/jdelkins_ss/rgb_matrix.h delete mode 100644 keyboards/massdrop/alt/keymaps/jdelkins_ss/rules.mk delete mode 100644 keyboards/massdrop/alt/keymaps/xulkal/config.h delete mode 100644 keyboards/massdrop/alt/keymaps/xulkal/keymap.c delete mode 100644 keyboards/massdrop/alt/keymaps/xulkal/rules.mk delete mode 100644 keyboards/massdrop/ctrl/keymaps/xulkal/config.h delete mode 100644 keyboards/massdrop/ctrl/keymaps/xulkal/keymap.c delete mode 100644 keyboards/massdrop/ctrl/keymaps/xulkal/rules.mk delete mode 100644 keyboards/mechkeys/alu84/keymaps/turbomech/config.h delete mode 100644 keyboards/mechkeys/alu84/keymaps/turbomech/keymap.c delete mode 100644 keyboards/mechkeys/alu84/keymaps/turbomech/readme.md delete mode 100644 keyboards/mechkeys/alu84/keymaps/turbomech/rules.mk delete mode 100644 keyboards/mechkeys/mechmini/v2/keymaps/arkag/config.h delete mode 100644 keyboards/mechkeys/mechmini/v2/keymaps/arkag/keymap.c delete mode 100644 keyboards/mechkeys/mechmini/v2/keymaps/arkag/rules.mk delete mode 100644 keyboards/mechkeys/mechmini/v2/keymaps/spacebarracecar/config.h delete mode 100644 keyboards/mechkeys/mechmini/v2/keymaps/spacebarracecar/keymap.c delete mode 100644 keyboards/mechkeys/mechmini/v2/keymaps/spacebarracecar/readme.md delete mode 100644 keyboards/mechkeys/mechmini/v2/keymaps/spacebarracecar/rules.mk delete mode 100644 keyboards/mechlovin/adelais/keymaps/brandonschlack/config.h delete mode 100644 keyboards/mechlovin/adelais/keymaps/brandonschlack/keymap.c delete mode 100644 keyboards/mechlovin/adelais/keymaps/brandonschlack/readme.md delete mode 100644 keyboards/mechlovin/kanu/keymaps/dhertz/keymap.c delete mode 100644 keyboards/mechwild/bde/rev2/keymaps/miketronic/config.h delete mode 100644 keyboards/mechwild/bde/rev2/keymaps/miketronic/keymap.c delete mode 100644 keyboards/mechwild/bde/rev2/keymaps/miketronic/rules.mk delete mode 100644 keyboards/mechwild/mercutio/keymaps/jonavin/config.h delete mode 100755 keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c delete mode 100644 keyboards/mechwild/mercutio/keymaps/jonavin/readme.md delete mode 100644 keyboards/mechwild/mercutio/keymaps/jonavin/rules.mk delete mode 100644 keyboards/mechwild/murphpad/keymaps/jonavin/config.h delete mode 100644 keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c delete mode 100644 keyboards/mechwild/murphpad/keymaps/jonavin/layout_landscape.h delete mode 100644 keyboards/mechwild/murphpad/keymaps/jonavin/readme.md delete mode 100644 keyboards/mechwild/murphpad/keymaps/jonavin/rules.mk delete mode 100644 keyboards/mechwild/obe/keymaps/jonavin/config.h delete mode 100644 keyboards/mechwild/obe/keymaps/jonavin/keymap.c delete mode 100644 keyboards/mechwild/obe/keymaps/jonavin/readme.md delete mode 100644 keyboards/mechwild/obe/keymaps/jonavin/rules.mk delete mode 100644 keyboards/miniaxe/keymaps/wanleg/config.h delete mode 100644 keyboards/miniaxe/keymaps/wanleg/keymap.c delete mode 100644 keyboards/miniaxe/keymaps/wanleg/rules.mk delete mode 100644 keyboards/minimacro5/keymaps/devdev/keymap.c delete mode 100644 keyboards/minimacro5/keymaps/devdev/rules.mk delete mode 100644 keyboards/misterknife/knife66/keymaps/zyber/keymap.c delete mode 100644 keyboards/mitosis/keymaps/datagrok/config.h delete mode 100644 keyboards/mitosis/keymaps/datagrok/keymap.c delete mode 100644 keyboards/mitosis/keymaps/datagrok/readme.md delete mode 100644 keyboards/mitosis/keymaps/datagrok/rules.mk delete mode 100644 keyboards/montsinger/rebound/rev1/keymaps/curry/config.h delete mode 100644 keyboards/montsinger/rebound/rev1/keymaps/curry/keymap.c delete mode 100644 keyboards/montsinger/rebound/rev1/keymaps/curry/rules.mk delete mode 100644 keyboards/montsinger/rebound/rev2/keymaps/rossman360/keymap.c delete mode 100644 keyboards/montsinger/rebound/rev3/keymaps/rossman360/keymap.c delete mode 100644 keyboards/montsinger/rebound/rev3/keymaps/rossman360/rules.mk delete mode 100644 keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/keymap.c delete mode 100644 keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/readme.md delete mode 100644 keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/rules.mk delete mode 100644 keyboards/montsinger/rebound/rev4/keymaps/rossman360/keymap.c delete mode 100644 keyboards/montsinger/rebound/rev4/keymaps/rossman360/rules.mk delete mode 100644 keyboards/montsinger/rewind/keymaps/rossman360/keymap.c delete mode 100644 keyboards/moonlander/keymaps/drashna/config.h delete mode 100644 keyboards/moonlander/keymaps/drashna/keymap.c delete mode 100644 keyboards/moonlander/keymaps/drashna/rules.mk delete mode 100644 keyboards/moonlander/keymaps/jjerrell/config.h delete mode 100644 keyboards/moonlander/keymaps/jjerrell/keymap.c delete mode 100644 keyboards/moonlander/keymaps/jjerrell/readme.md delete mode 100644 keyboards/moonlander/keymaps/jjerrell/rules.mk delete mode 100644 keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/mt/split75/keymaps/art/.gitignore delete mode 100644 keyboards/mt/split75/keymaps/art/config.h delete mode 100644 keyboards/mt/split75/keymaps/art/keymap.c delete mode 100644 keyboards/mt/split75/keymaps/art/rules.mk delete mode 100644 keyboards/mt/split75/keymaps/art/user_config.c.example delete mode 100644 keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/config.h delete mode 100644 keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap.c delete mode 100644 keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap_stuff.h delete mode 100644 keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/cool_diagonal.c delete mode 100644 keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/custom_gradient.c delete mode 100644 keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/diagonal.c delete mode 100644 keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/kitt.c delete mode 100644 keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.c delete mode 100644 keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.h delete mode 100644 keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/random_breath_rainbow.c delete mode 100644 keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/readme.md delete mode 100644 keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/rgb_matrix_user.inc delete mode 100644 keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/rules.mk delete mode 100644 keyboards/nacly/splitreus62/keymaps/scheiklp/config.h delete mode 100644 keyboards/nacly/splitreus62/keymaps/scheiklp/keymap.c delete mode 100644 keyboards/nacly/splitreus62/keymaps/scheiklp/rules.mk delete mode 100644 keyboards/nightmare/keymaps/brandonschlack/keymap.c delete mode 100644 keyboards/nightmare/keymaps/brandonschlack/readme.md delete mode 100644 keyboards/nopunin10did/kastenwagen48/keymaps/jonavin/config.h delete mode 100644 keyboards/nopunin10did/kastenwagen48/keymaps/jonavin/keymap.c delete mode 100644 keyboards/nopunin10did/kastenwagen48/keymaps/jonavin/readme.md delete mode 100644 keyboards/nopunin10did/kastenwagen48/keymaps/jonavin/rules.mk delete mode 100644 keyboards/omkbd/ergodash/rev1/keymaps/333fred/config.h delete mode 100644 keyboards/omkbd/ergodash/rev1/keymaps/333fred/keymap.c delete mode 100644 keyboards/omkbd/ergodash/rev1/keymaps/333fred/rules.mk delete mode 100644 keyboards/omkbd/ergodash/rev1/keymaps/yet-another-developer/config.h delete mode 100644 keyboards/omkbd/ergodash/rev1/keymaps/yet-another-developer/keymap.c delete mode 100644 keyboards/omkbd/ergodash/rev1/keymaps/yet-another-developer/rules.mk delete mode 100644 keyboards/org60/keymaps/jarred/keymap.c delete mode 100644 keyboards/orthodox/keymaps/drashna/README.md delete mode 100644 keyboards/orthodox/keymaps/drashna/config.h delete mode 100644 keyboards/orthodox/keymaps/drashna/keymap.c delete mode 100644 keyboards/orthodox/keymaps/drashna/rules.mk delete mode 100644 keyboards/orthodox/keymaps/pdl/config.h delete mode 100644 keyboards/orthodox/keymaps/pdl/keymap.c delete mode 100644 keyboards/orthodox/keymaps/pdl/rules.mk delete mode 100644 keyboards/percent/canoe/keymaps/dhertz/keymap.c delete mode 100644 keyboards/phage_studio/pila87/keymaps/horrortroll/keymap.c delete mode 100644 keyboards/pinky/3/keymaps/ninjonas/README.md delete mode 100644 keyboards/pinky/3/keymaps/ninjonas/config.h delete mode 100644 keyboards/pinky/3/keymaps/ninjonas/keymap.c delete mode 100644 keyboards/pinky/3/keymaps/ninjonas/rules.mk delete mode 100644 keyboards/planck/keymaps/ajp10304/readme.md delete mode 100644 keyboards/planck/keymaps/badger/keymap.c delete mode 100644 keyboards/planck/keymaps/charlesrocket/config.h delete mode 100644 keyboards/planck/keymaps/charlesrocket/keymap.c delete mode 100644 keyboards/planck/keymaps/charlesrocket/readme.md delete mode 100644 keyboards/planck/keymaps/charlesrocket/rules.mk delete mode 100644 keyboards/planck/keymaps/csc027/config.h delete mode 100644 keyboards/planck/keymaps/csc027/keymap.c delete mode 100644 keyboards/planck/keymaps/csc027/rules.mk delete mode 100644 keyboards/planck/keymaps/dshields/config.h delete mode 100644 keyboards/planck/keymaps/dshields/keymap.c delete mode 100644 keyboards/planck/keymaps/dshields/readme.md delete mode 100644 keyboards/planck/keymaps/dudeofawesome/config.h delete mode 100644 keyboards/planck/keymaps/dudeofawesome/keymap.c delete mode 100644 keyboards/planck/keymaps/dudeofawesome/readme.md delete mode 100644 keyboards/planck/keymaps/dudeofawesome/rules.mk delete mode 100644 keyboards/planck/keymaps/hvp/config.h delete mode 100644 keyboards/planck/keymaps/hvp/keymap.c delete mode 100644 keyboards/planck/keymaps/hvp/readme.md delete mode 100644 keyboards/planck/keymaps/hvp/rules.mk delete mode 100755 keyboards/planck/keymaps/ishtob/config.h delete mode 100644 keyboards/planck/keymaps/ishtob/keymap.c delete mode 100644 keyboards/planck/keymaps/ishtob/readme.md delete mode 100644 keyboards/planck/keymaps/ishtob/rules.mk delete mode 100644 keyboards/planck/keymaps/jdelkins/config.h delete mode 100644 keyboards/planck/keymaps/jdelkins/keymap.c delete mode 100644 keyboards/planck/keymaps/jdelkins/readme.md delete mode 100644 keyboards/planck/keymaps/jdelkins/rules.mk delete mode 100644 keyboards/planck/keymaps/kuatsure/config.h delete mode 100644 keyboards/planck/keymaps/kuatsure/keymap.c delete mode 100644 keyboards/planck/keymaps/kuatsure/readme.md delete mode 100644 keyboards/planck/keymaps/kuatsure/rules.mk delete mode 100644 keyboards/planck/keymaps/mattly/config.h delete mode 100644 keyboards/planck/keymaps/mattly/keymap.c delete mode 100644 keyboards/planck/keymaps/mattly/readme.md delete mode 100644 keyboards/planck/keymaps/mattly/rules.mk delete mode 100644 keyboards/planck/keymaps/mnil/config.h delete mode 100644 keyboards/planck/keymaps/mnil/keymap.c delete mode 100644 keyboards/planck/keymaps/mnil/readme.md delete mode 100644 keyboards/planck/keymaps/muppetjones/.clang-format delete mode 100644 keyboards/planck/keymaps/muppetjones/config.h delete mode 100644 keyboards/planck/keymaps/muppetjones/keymap.c delete mode 100644 keyboards/planck/keymaps/muppetjones/readme.md delete mode 100644 keyboards/planck/keymaps/muppetjones/rules.mk delete mode 100644 keyboards/planck/keymaps/narze/config.h delete mode 100644 keyboards/planck/keymaps/narze/keymap.c delete mode 100644 keyboards/planck/keymaps/narze/readme.md delete mode 100644 keyboards/planck/keymaps/narze/rules.mk delete mode 100644 keyboards/planck/keymaps/not-quite-neo/config.h delete mode 100644 keyboards/planck/keymaps/not-quite-neo/keymap.c delete mode 100644 keyboards/planck/keymaps/not-quite-neo/readme.md delete mode 100644 keyboards/planck/keymaps/not-quite-neo/rules.mk delete mode 100644 keyboards/planck/keymaps/peterfalken/config.h delete mode 100644 keyboards/planck/keymaps/peterfalken/keymap.c delete mode 100644 keyboards/planck/keymaps/peterfalken/readme.md delete mode 100644 keyboards/planck/keymaps/peterfalken/rules.mk delete mode 100644 keyboards/planck/keymaps/prog_qgmlwb/.gitignore delete mode 100644 keyboards/planck/keymaps/prog_qgmlwb/config.h delete mode 100644 keyboards/planck/keymaps/prog_qgmlwb/keymap.c delete mode 100644 keyboards/planck/keymaps/prog_qgmlwb/readme.md delete mode 100644 keyboards/planck/keymaps/prog_qgmlwb/rules.mk delete mode 100644 keyboards/planck/keymaps/prog_qgmlwb/src/enums.h delete mode 100644 keyboards/planck/keymaps/prog_qgmlwb/src/layouts.c delete mode 100644 keyboards/planck/keymaps/prog_qgmlwb/src/layouts.h delete mode 100644 keyboards/planck/keymaps/prog_qgmlwb/src/normal.h delete mode 100644 keyboards/planck/keymaps/prog_qgmlwb/src/qgmlwb.h delete mode 100644 keyboards/planck/keymaps/prog_qgmlwb/src/special.h delete mode 100644 keyboards/planck/keymaps/sigul/config.h delete mode 100644 keyboards/planck/keymaps/sigul/keymap.c delete mode 100644 keyboards/planck/keymaps/sigul/readme.md delete mode 100644 keyboards/planck/keymaps/sigul/rules.mk delete mode 100644 keyboards/planck/keymaps/spacebarracecar/config.h delete mode 100644 keyboards/planck/keymaps/spacebarracecar/keymap.c delete mode 100644 keyboards/planck/keymaps/spacebarracecar/readme.md delete mode 100644 keyboards/planck/keymaps/spacebarracecar/rules.mk delete mode 100644 keyboards/planck/rev7/keymaps/peterfalken/config.h delete mode 100644 keyboards/planck/rev7/keymaps/peterfalken/keymap.c delete mode 100644 keyboards/planck/rev7/keymaps/peterfalken/readme.md delete mode 100644 keyboards/planck/rev7/keymaps/peterfalken/rules.mk delete mode 100644 keyboards/playkbtw/ca66/keymaps/zyber/keymap.c delete mode 100644 keyboards/playkbtw/ca66/keymaps/zyber/rules.mk delete mode 100644 keyboards/ploopyco/mouse/keymaps/drashna/config.h delete mode 100644 keyboards/ploopyco/mouse/keymaps/drashna/keymap.c delete mode 100644 keyboards/ploopyco/mouse/keymaps/drashna/rules.mk delete mode 100644 keyboards/ploopyco/mouse/keymaps/uqs/keymap.c delete mode 100644 keyboards/ploopyco/mouse/keymaps/uqs/rules.mk delete mode 100644 keyboards/pluckey/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/pluckey/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/preonic/keymaps/arkag/config.h delete mode 100644 keyboards/preonic/keymaps/arkag/keymap.c delete mode 100644 keyboards/preonic/keymaps/arkag/readme.md delete mode 100644 keyboards/preonic/keymaps/arkag/rules.mk delete mode 100644 keyboards/preonic/keymaps/badger/keymap.c delete mode 100644 keyboards/preonic/keymaps/badger/readme.md delete mode 100644 keyboards/preonic/keymaps/dudeofawesome/config.h delete mode 100644 keyboards/preonic/keymaps/dudeofawesome/keymap.c delete mode 100644 keyboards/preonic/keymaps/dudeofawesome/readme.md delete mode 100644 keyboards/preonic/keymaps/dudeofawesome/rules.mk delete mode 100644 keyboards/preonic/keymaps/kuatsure/config.h delete mode 100644 keyboards/preonic/keymaps/kuatsure/keymap.c delete mode 100644 keyboards/preonic/keymaps/kuatsure/readme.md delete mode 100644 keyboards/preonic/keymaps/kuatsure/rules.mk delete mode 100644 keyboards/preonic/keymaps/mguterl/config.h delete mode 100644 keyboards/preonic/keymaps/mguterl/keymap.c delete mode 100644 keyboards/preonic/keymaps/mguterl/readme.md delete mode 100644 keyboards/preonic/keymaps/mguterl/rules.mk delete mode 100644 keyboards/preonic/keymaps/mverteuil/config.h delete mode 100644 keyboards/preonic/keymaps/mverteuil/keymap.c delete mode 100644 keyboards/preonic/keymaps/mverteuil/readme.md delete mode 100644 keyboards/preonic/keymaps/mverteuil/rules.mk delete mode 100644 keyboards/preonic/keymaps/mverteuil_2x2u/config.h delete mode 100644 keyboards/preonic/keymaps/mverteuil_2x2u/keymap.c delete mode 100644 keyboards/preonic/keymaps/mverteuil_2x2u/rules.mk delete mode 100644 keyboards/preonic/keymaps/peterfalken/config.h delete mode 100644 keyboards/preonic/keymaps/peterfalken/keymap.c delete mode 100644 keyboards/preonic/keymaps/peterfalken/readme.md delete mode 100644 keyboards/preonic/keymaps/peterfalken/rules.mk delete mode 100644 keyboards/preonic/keymaps/rmeli/config.h delete mode 100644 keyboards/preonic/keymaps/rmeli/keymap.c delete mode 100644 keyboards/preonic/keymaps/rmeli/readme.md delete mode 100644 keyboards/preonic/keymaps/rmeli/rules.mk delete mode 100644 keyboards/preonic/keymaps/uqs/keymap.c delete mode 100644 keyboards/preonic/keymaps/uqs/rules.mk delete mode 100644 keyboards/preonic/keymaps/xulkal/keymap.c delete mode 100644 keyboards/preonic/keymaps/xulkal/rules.mk delete mode 100644 keyboards/primekb/prime_e/keymaps/brandonschlack/config.h delete mode 100644 keyboards/primekb/prime_e/keymaps/brandonschlack/keymap.c delete mode 100644 keyboards/primekb/prime_e/keymaps/brandonschlack/rules.mk delete mode 100644 keyboards/primekb/prime_e/keymaps/talljoe/config.h delete mode 100644 keyboards/primekb/prime_e/keymaps/talljoe/keymap.c delete mode 100644 keyboards/primekb/prime_o/keymaps/spacebarracecar/config.h delete mode 100644 keyboards/primekb/prime_o/keymaps/spacebarracecar/keymap.c delete mode 100644 keyboards/primekb/prime_o/keymaps/spacebarracecar/readme.md delete mode 100644 keyboards/primekb/prime_o/keymaps/spacebarracecar/rules.mk delete mode 100644 keyboards/projectkb/alice/keymaps/stanrc85/keymap.c delete mode 100644 keyboards/prototypist/j01/keymaps/zyber/keymap.c delete mode 100644 keyboards/redox_w/keymaps/danielo515/config.h delete mode 100644 keyboards/redox_w/keymaps/danielo515/keymap.c delete mode 100644 keyboards/redox_w/keymaps/danielo515/readme.md delete mode 100644 keyboards/redox_w/keymaps/danielo515/rules.mk delete mode 100644 keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/rgbkb/sol/keymaps/kageurufu/keymap.c delete mode 100644 keyboards/rgbkb/sol/keymaps/kageurufu/rules.mk delete mode 100644 keyboards/rgbkb/sol/keymaps/xulkal/config.h delete mode 100644 keyboards/rgbkb/sol/keymaps/xulkal/keymap.c delete mode 100644 keyboards/rgbkb/sol/keymaps/xulkal/rules.mk delete mode 100644 keyboards/rgbkb/sol3/keymaps/kageurufu/config.h delete mode 100644 keyboards/rgbkb/sol3/keymaps/kageurufu/keymap.c delete mode 100644 keyboards/rgbkb/sol3/keymaps/kageurufu/rules.mk delete mode 100644 keyboards/rgbkb/zen/rev1/keymaps/333fred/config.h delete mode 100644 keyboards/rgbkb/zen/rev1/keymaps/333fred/keymap.c delete mode 100644 keyboards/rgbkb/zen/rev1/keymaps/333fred/rules.mk delete mode 100644 keyboards/rgbkb/zen/rev1/keymaps/cwebster2/config.h delete mode 100644 keyboards/rgbkb/zen/rev1/keymaps/cwebster2/keymap.c delete mode 100644 keyboards/rgbkb/zen/rev1/keymaps/cwebster2/rules.mk delete mode 100644 keyboards/rgbkb/zen/rev1/keymaps/kageurufu/keymap.c delete mode 100644 keyboards/rgbkb/zygomorph/keymaps/kageurufu/config.h delete mode 100644 keyboards/rgbkb/zygomorph/keymaps/kageurufu/keymap.c delete mode 100644 keyboards/rgbkb/zygomorph/keymaps/kageurufu/readme.md delete mode 100644 keyboards/rgbkb/zygomorph/keymaps/kageurufu/rules.mk delete mode 100644 keyboards/rgbkb/zygomorph/keymaps/xulkal/keymap.c delete mode 100644 keyboards/rgbkb/zygomorph/keymaps/xulkal/rules.mk delete mode 100644 keyboards/salicylic_acid3/naked48/keymaps/scheiklp/config.h delete mode 100644 keyboards/salicylic_acid3/naked48/keymaps/scheiklp/keymap.c delete mode 100644 keyboards/salicylic_acid3/naked48/keymaps/scheiklp/readme.md delete mode 100644 keyboards/salicylic_acid3/naked48/keymaps/scheiklp/rules.mk delete mode 100644 keyboards/salicylic_acid3/naked60/keymaps/333fred/config.h delete mode 100644 keyboards/salicylic_acid3/naked60/keymaps/333fred/keymap.c delete mode 100644 keyboards/satt/vision/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/satt/vision/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/scottokeebs/scotto34/keymaps/scotto/config.h delete mode 100644 keyboards/scottokeebs/scotto34/keymaps/scotto/keymap.c delete mode 100644 keyboards/scottokeebs/scotto34/keymaps/scotto/rules.mk delete mode 100644 keyboards/shapeshifter4060/keymaps/vosechu/keymap.c delete mode 100644 keyboards/shapeshifter4060/keymaps/vosechu/readme.md delete mode 100644 keyboards/sofle/keymaps/devdev/config.h delete mode 100644 keyboards/sofle/keymaps/devdev/keymap.c delete mode 100644 keyboards/sofle/keymaps/devdev/rules.mk delete mode 100644 keyboards/sofle/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/splitkb/kyria/keymaps/cameronjlarsen/config.h delete mode 100644 keyboards/splitkb/kyria/keymaps/cameronjlarsen/keymap.c delete mode 100644 keyboards/splitkb/kyria/keymaps/cameronjlarsen/readme.md delete mode 100644 keyboards/splitkb/kyria/keymaps/cameronjlarsen/rules.mk delete mode 100644 keyboards/splitkb/kyria/keymaps/cjuniet/config.h delete mode 100644 keyboards/splitkb/kyria/keymaps/cjuniet/default.json delete mode 100644 keyboards/splitkb/kyria/keymaps/cjuniet/keymap.c delete mode 100644 keyboards/splitkb/kyria/keymaps/cjuniet/rules.mk delete mode 100644 keyboards/splitkb/kyria/keymaps/cwebster2/config.h delete mode 100644 keyboards/splitkb/kyria/keymaps/cwebster2/keymap.c delete mode 100644 keyboards/splitkb/kyria/keymaps/cwebster2/rules.mk delete mode 100644 keyboards/splitkb/kyria/keymaps/drashna/chconf.h delete mode 100644 keyboards/splitkb/kyria/keymaps/drashna/config.h delete mode 100644 keyboards/splitkb/kyria/keymaps/drashna/halconf.h delete mode 100644 keyboards/splitkb/kyria/keymaps/drashna/keymap.c delete mode 100644 keyboards/splitkb/kyria/keymaps/drashna/mcuconf.h delete mode 100644 keyboards/splitkb/kyria/keymaps/drashna/rules.mk delete mode 100755 keyboards/splitkb/kyria/keymaps/ericgebhart/config.h delete mode 100644 keyboards/splitkb/kyria/keymaps/ericgebhart/keymap.c delete mode 100644 keyboards/splitkb/kyria/keymaps/ericgebhart/rules.mk delete mode 100644 keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/splitkb/kyria/keymaps/muppetjones/.clang-format delete mode 100644 keyboards/splitkb/kyria/keymaps/muppetjones/README.md delete mode 100644 keyboards/splitkb/kyria/keymaps/muppetjones/config.h delete mode 100644 keyboards/splitkb/kyria/keymaps/muppetjones/keymap.c delete mode 100644 keyboards/splitkb/kyria/keymaps/muppetjones/rules.mk delete mode 100644 keyboards/splitkb/kyria/keymaps/ninjonas/README.md delete mode 100644 keyboards/splitkb/kyria/keymaps/ninjonas/config.h delete mode 100644 keyboards/splitkb/kyria/keymaps/ninjonas/keymap.c delete mode 100644 keyboards/splitkb/kyria/keymaps/ninjonas/oled.c delete mode 100644 keyboards/splitkb/kyria/keymaps/ninjonas/rules.mk delete mode 100644 keyboards/splitkb/kyria/keymaps/rmw/config.h delete mode 100644 keyboards/splitkb/kyria/keymaps/rmw/keymap.c delete mode 100644 keyboards/splitkb/kyria/keymaps/rmw/readme.md delete mode 100644 keyboards/splitkb/kyria/keymaps/rmw/rules.mk delete mode 100644 keyboards/splitkb/kyria/keymaps/uqs/config.h delete mode 100644 keyboards/splitkb/kyria/keymaps/uqs/keymap.c delete mode 100644 keyboards/splitkb/kyria/keymaps/uqs/rules.mk delete mode 100644 keyboards/splitkb/kyria/keymaps/zigotica/config.h delete mode 100644 keyboards/splitkb/kyria/keymaps/zigotica/keymap.c delete mode 100644 keyboards/splitkb/kyria/keymaps/zigotica/oled.c delete mode 100644 keyboards/splitkb/kyria/keymaps/zigotica/oled.h delete mode 100644 keyboards/splitkb/kyria/keymaps/zigotica/rules.mk delete mode 100644 keyboards/splitkb/zima/keymaps/drashna/config.h delete mode 100644 keyboards/splitkb/zima/keymaps/drashna/keymap.c delete mode 100644 keyboards/splitkb/zima/keymaps/drashna/rules.mk delete mode 100644 keyboards/system76/launch_1/keymaps/peterfalken/config.h delete mode 100644 keyboards/system76/launch_1/keymaps/peterfalken/keymap.c delete mode 100644 keyboards/system76/launch_1/keymaps/peterfalken/readme.md delete mode 100644 keyboards/tada68/keymaps/jarred/keymap.c delete mode 100644 keyboards/tada68/keymaps/jarred/readme.md delete mode 100644 keyboards/tada68/keymaps/jarred/rules.mk delete mode 100644 keyboards/tada68/keymaps/rupa/config.h delete mode 100755 keyboards/tada68/keymaps/rupa/keymap.c delete mode 100755 keyboards/tada68/keymaps/rupa/readme.md delete mode 100644 keyboards/tada68/keymaps/rupa/rules.mk delete mode 100644 keyboards/takashicompany/minizone/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/takashicompany/minizone/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/takashicompany/minizone/keymaps/manna-harbour_miryoku/rules.mk delete mode 100644 keyboards/the_royal/liminal/keymaps/brandonschlack/keymap.c delete mode 100644 keyboards/thevankeyboards/bananasplit/keymaps/talljoe/config.h delete mode 100644 keyboards/thevankeyboards/bananasplit/keymaps/talljoe/keymap.c delete mode 100644 keyboards/thevankeyboards/minivan/keymaps/hvp/config.h delete mode 100644 keyboards/thevankeyboards/minivan/keymaps/hvp/keymap.c delete mode 100644 keyboards/thevankeyboards/minivan/keymaps/hvp/readme.md delete mode 100644 keyboards/thevankeyboards/minivan/keymaps/hvp/rules.mk delete mode 100644 keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/config.h delete mode 100644 keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/keymap.c delete mode 100644 keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/rules.mk delete mode 100644 keyboards/thevankeyboards/minivan/keymaps/tominabox1/keymap.c delete mode 100644 keyboards/tkc/osav2/keymaps/brandonschlack/config.h delete mode 100755 keyboards/tkc/osav2/keymaps/brandonschlack/keymap.c delete mode 100755 keyboards/tkc/osav2/keymaps/brandonschlack/rules.mk delete mode 100644 keyboards/tkc/osav2/keymaps/stanrc85/keymap.c delete mode 100644 keyboards/tkc/tkc1800/keymaps/yanfali/keymap.c delete mode 100644 keyboards/tkc/tkc1800/keymaps/yanfali/rules.mk delete mode 100644 keyboards/tmo50/keymaps/talljoe/config.h delete mode 100644 keyboards/tmo50/keymaps/talljoe/keymap.c delete mode 100644 keyboards/torn/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/unikeyboard/divergetm2/keymaps/xtonhasvim/config.h delete mode 100644 keyboards/unikeyboard/divergetm2/keymaps/xtonhasvim/keymap.c delete mode 100644 keyboards/unikeyboard/divergetm2/keymaps/xtonhasvim/readme.md delete mode 100644 keyboards/unikeyboard/divergetm2/keymaps/xtonhasvim/rules.mk delete mode 100644 keyboards/v60_type_r/keymaps/xtonhasvim/config.h delete mode 100644 keyboards/v60_type_r/keymaps/xtonhasvim/keymap.c delete mode 100644 keyboards/v60_type_r/keymaps/xtonhasvim/readme.md delete mode 100644 keyboards/v60_type_r/keymaps/xtonhasvim/rules.mk delete mode 100644 keyboards/walletburner/neuron/keymaps/brandonschlack/keymap.c delete mode 100644 keyboards/wilba_tech/rama_works_m60_a/keymaps/mguterl/keymap.c delete mode 100644 keyboards/wilba_tech/rama_works_m60_a/keymaps/mguterl/readme.md delete mode 100644 keyboards/wilba_tech/rama_works_m60_a/keymaps/mguterl/rules.mk delete mode 100644 keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/config.h delete mode 100644 keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/keymap.c delete mode 100644 keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/rules.mk delete mode 100644 keyboards/wilba_tech/zeal60/keymaps/sethBarberee/config.h delete mode 100644 keyboards/wilba_tech/zeal60/keymaps/sethBarberee/keymap.c delete mode 100644 keyboards/wilba_tech/zeal60/keymaps/sethBarberee/rules.mk delete mode 100644 keyboards/wilba_tech/zeal65/keymaps/zyber/config.h delete mode 100644 keyboards/wilba_tech/zeal65/keymaps/zyber/keymap.c delete mode 100644 keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/README.md delete mode 100644 keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/config.h delete mode 100755 keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/keymap.c delete mode 100644 keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/rules.mk delete mode 100644 keyboards/work_louder/micro/keymaps/peterfalken/config.h delete mode 100644 keyboards/work_louder/micro/keymaps/peterfalken/keymap.c delete mode 100644 keyboards/work_louder/micro/keymaps/peterfalken/readme.md delete mode 100644 keyboards/work_louder/micro/keymaps/peterfalken/rules.mk delete mode 100644 keyboards/work_louder/work_board/keymaps/drashna/config.h delete mode 100644 keyboards/work_louder/work_board/keymaps/drashna/keymap.c delete mode 100644 keyboards/work_louder/work_board/keymaps/drashna/rules.mk delete mode 100644 keyboards/work_louder/work_board/keymaps/peterfalken/keymap.c delete mode 100644 keyboards/work_louder/work_board/keymaps/peterfalken/readme.md delete mode 100644 keyboards/work_louder/work_board/keymaps/peterfalken/rules.mk delete mode 100644 keyboards/xiudi/xd004/keymaps/narze/keymap.c delete mode 100644 keyboards/xiudi/xd004/keymaps/narze/readme.md delete mode 100644 keyboards/xiudi/xd75/keymaps/billypython/config.h delete mode 100644 keyboards/xiudi/xd75/keymaps/billypython/keymap.c delete mode 100644 keyboards/xiudi/xd75/keymaps/billypython/rules.mk delete mode 100644 keyboards/xiudi/xd75/keymaps/ericgebhart/config.h delete mode 100644 keyboards/xiudi/xd75/keymaps/ericgebhart/keymap.c delete mode 100644 keyboards/xiudi/xd75/keymaps/ericgebhart/rules.mk delete mode 100644 keyboards/xiudi/xd75/keymaps/jarred/keymap.c delete mode 100644 keyboards/xiudi/xd75/keymaps/jarred/readme.md delete mode 100644 keyboards/xiudi/xd75/keymaps/scheiklp/config.h delete mode 100644 keyboards/xiudi/xd75/keymaps/scheiklp/keymap.c delete mode 100644 keyboards/xiudi/xd75/keymaps/scheiklp/readme.md delete mode 100644 keyboards/xiudi/xd75/keymaps/scheiklp/rules.mk delete mode 100644 keyboards/xiudi/xd75/keymaps/zigotica/config.h delete mode 100644 keyboards/xiudi/xd75/keymaps/zigotica/keymap.c delete mode 100644 keyboards/xiudi/xd75/keymaps/zigotica/rules.mk delete mode 100644 keyboards/yanghu/unicorne/keymaps/bcat/config.h delete mode 100644 keyboards/yanghu/unicorne/keymaps/bcat/keymap.c delete mode 100644 keyboards/yanghu/unicorne/keymaps/bcat/readme.md delete mode 100644 keyboards/yanghu/unicorne/keymaps/bcat/rules.mk delete mode 100644 keyboards/ymdk/melody96/soldered/keymaps/konstantin/config.h delete mode 100644 keyboards/ymdk/melody96/soldered/keymaps/konstantin/keymap.c delete mode 100644 keyboards/ymdk/melody96/soldered/keymaps/konstantin/rules.mk delete mode 100644 keyboards/z12/keymaps/zigotica/config.h delete mode 100644 keyboards/z12/keymaps/zigotica/encoder.c delete mode 100644 keyboards/z12/keymaps/zigotica/encoder.h delete mode 100644 keyboards/z12/keymaps/zigotica/keymap.c delete mode 100644 keyboards/z12/keymaps/zigotica/oled.c delete mode 100644 keyboards/z12/keymaps/zigotica/oled.h delete mode 100644 keyboards/z12/keymaps/zigotica/readme.md delete mode 100644 keyboards/z12/keymaps/zigotica/rules.mk delete mode 100644 keyboards/z34/keymaps/zigotica/config.h delete mode 100644 keyboards/z34/keymaps/zigotica/keymap.c delete mode 100644 keyboards/z34/keymaps/zigotica/rules.mk delete mode 100644 layouts/community/60_ansi/brandonschlack-ansi/keymap.c delete mode 100644 layouts/community/60_ansi/brandonschlack-ansi/rules.mk delete mode 100644 layouts/community/60_ansi/manna-harbour_miryoku/config.h delete mode 100644 layouts/community/60_ansi/manna-harbour_miryoku/keymap.c delete mode 100644 layouts/community/60_ansi/mechmerlin-ansi/keymap.c delete mode 100644 layouts/community/60_ansi/mechmerlin-ansi/readme.md delete mode 100644 layouts/community/60_ansi/mechmerlin-ansi/rules.mk delete mode 100644 layouts/community/60_ansi/stanrc85-ansi/keymap.c delete mode 100644 layouts/community/60_ansi/stanrc85-ansi/readme.md delete mode 100644 layouts/community/60_ansi/stanrc85-ansi/rules.mk delete mode 100644 layouts/community/60_ansi/talljoe-ansi/config.h delete mode 100644 layouts/community/60_ansi/talljoe-ansi/keymap.c delete mode 100644 layouts/community/60_ansi/talljoe-ansi/rules.mk delete mode 100644 layouts/community/60_ansi/xyverz/keymap.c delete mode 100644 layouts/community/60_ansi_arrow_split_bs_7u_spc/mrsendyyk/keymap.c delete mode 100644 layouts/community/60_ansi_arrow_split_bs_7u_spc/mrsendyyk/readme.md delete mode 100644 layouts/community/60_ansi_arrow_split_bs_7u_spc/mrsendyyk/rules.mk delete mode 100644 layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c delete mode 100644 layouts/community/60_ansi_split_bs_rshift/bcat/readme.md delete mode 100644 layouts/community/60_ansi_split_bs_rshift/brandonschlack-split/keymap.c delete mode 100644 layouts/community/60_ansi_split_bs_rshift/brandonschlack-split/rules.mk delete mode 100644 layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/keymap.c delete mode 100644 layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/readme.md delete mode 100644 layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/rules.mk delete mode 100644 layouts/community/60_ansi_split_bs_rshift/talljoe/config.h delete mode 100644 layouts/community/60_ansi_split_bs_rshift/talljoe/keymap.c delete mode 100644 layouts/community/60_ansi_split_bs_rshift/talljoe/rules.mk delete mode 100644 layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.c delete mode 100644 layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.h delete mode 100644 layouts/community/60_ansi_split_bs_rshift/yanfali/keymap.c delete mode 100644 layouts/community/60_hhkb/talljoe-hhkb/config.h delete mode 100644 layouts/community/60_hhkb/talljoe-hhkb/keymap.c delete mode 100644 layouts/community/60_hhkb/talljoe-hhkb/rules.mk delete mode 100644 layouts/community/60_hhkb/yanfali/keymap.c delete mode 100755 layouts/community/60_iso/bifbofii/keymap.c delete mode 100755 layouts/community/60_iso/bifbofii/readme.md delete mode 100644 layouts/community/60_iso/bifbofii/rules.mk delete mode 100644 layouts/community/60_iso/unxmaal/README.md delete mode 100644 layouts/community/60_iso/unxmaal/config.h delete mode 100644 layouts/community/60_iso/unxmaal/keymap.c delete mode 100644 layouts/community/60_iso/unxmaal/rules.mk delete mode 100644 layouts/community/60_tsangan_hhkb/bcat/keymap.c delete mode 100644 layouts/community/60_tsangan_hhkb/bcat/readme.md delete mode 100644 layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/keymap.c delete mode 100644 layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/readme.md delete mode 100644 layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/rules.mk delete mode 100644 layouts/community/60_tsangan_hhkb/dohmain/keymap.c delete mode 100644 layouts/community/60_tsangan_hhkb/dohmain/readme.md delete mode 100644 layouts/community/60_tsangan_hhkb/yanfali/keymap.c delete mode 100644 layouts/community/60_tsangan_hhkb/yanfali_wkl/keymap.c delete mode 100644 layouts/community/65_ansi/mechmerlin/keymap.c delete mode 100644 layouts/community/65_ansi/mechmerlin/readme.md delete mode 100644 layouts/community/65_ansi/mechmerlin/rules.mk delete mode 100755 layouts/community/65_ansi/yanfali/keymap.c delete mode 100644 layouts/community/65_ansi_blocker/brandonschlack/config.h delete mode 100644 layouts/community/65_ansi_blocker/brandonschlack/keymap.c delete mode 100644 layouts/community/65_ansi_blocker/brandonschlack/readme.md delete mode 100644 layouts/community/65_ansi_blocker/brandonschlack/rules.mk delete mode 100644 layouts/community/65_ansi_blocker/mechmerlin/keymap.c delete mode 100644 layouts/community/65_ansi_blocker/mechmerlin/readme.md delete mode 100644 layouts/community/65_ansi_blocker/mechmerlin/rules.mk delete mode 100644 layouts/community/65_ansi_blocker/spidey3/config.h delete mode 100644 layouts/community/65_ansi_blocker/spidey3/keymap.c delete mode 100644 layouts/community/65_ansi_blocker/spidey3/readme.md delete mode 100644 layouts/community/65_ansi_blocker/spidey3/rules.mk delete mode 100644 layouts/community/65_ansi_blocker/stanrc85/keymap.c delete mode 100644 layouts/community/65_ansi_blocker_split_bs/bcat/keymap.c delete mode 100644 layouts/community/65_ansi_blocker_split_bs/bcat/readme.md delete mode 100644 layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/config.h delete mode 100644 layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/keymap.c delete mode 100644 layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/readme.md delete mode 100644 layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/rules.mk delete mode 100644 layouts/community/66_ansi/mechmerlin/config.h delete mode 100644 layouts/community/66_ansi/mechmerlin/keymap.c delete mode 100644 layouts/community/66_ansi/mechmerlin/readme.md delete mode 100644 layouts/community/66_ansi/mechmerlin/rules.mk delete mode 100644 layouts/community/66_ansi/skully/config.h delete mode 100644 layouts/community/66_ansi/skully/keymap.c delete mode 100644 layouts/community/66_ansi/skully/readme.md delete mode 100644 layouts/community/66_ansi/xyverz/config.h delete mode 100644 layouts/community/66_ansi/xyverz/keymap.c delete mode 100644 layouts/community/66_ansi/xyverz/rules.mk delete mode 100644 layouts/community/68_ansi/mechmerlin/keymap.c delete mode 100644 layouts/community/68_ansi/mechmerlin/rules.mk delete mode 100644 layouts/community/75_ansi/brandonschlack/keymap.c delete mode 100644 layouts/community/75_ansi/brandonschlack/readme.md delete mode 100644 layouts/community/75_ansi/brandonschlack/rules.mk delete mode 100644 layouts/community/75_ansi/mechmerlin-75_ansi/keymap.c delete mode 100644 layouts/community/75_ansi/mechmerlin-75_ansi/readme.md delete mode 100644 layouts/community/75_ansi/mechmerlin-75_ansi/rules.mk delete mode 100644 layouts/community/75_ansi/spidey3/config.h delete mode 100644 layouts/community/75_ansi/spidey3/keymap.c delete mode 100644 layouts/community/75_ansi/spidey3/readme.md delete mode 100644 layouts/community/75_ansi/spidey3/rules.mk delete mode 100644 layouts/community/75_ansi/yanfali/keymap.c delete mode 100644 layouts/community/alice/manna-harbour_miryoku/config.h delete mode 100644 layouts/community/alice/manna-harbour_miryoku/keymap.c delete mode 100644 layouts/community/alice/stanrc85-alice/keymap.c delete mode 100644 layouts/community/alice/stanrc85-alice/readme.md delete mode 100644 layouts/community/alice/stanrc85-alice/rules.mk delete mode 100644 layouts/community/alice_split_bs/manna-harbour_miryoku/config.h delete mode 100644 layouts/community/alice_split_bs/manna-harbour_miryoku/keymap.c delete mode 100644 layouts/community/ergodox/333fred/README.md delete mode 100644 layouts/community/ergodox/333fred/config.h delete mode 100644 layouts/community/ergodox/333fred/keymap.c delete mode 100644 layouts/community/ergodox/333fred/rules.mk delete mode 100644 layouts/community/ergodox/adnw_k_o_y/keymap.c delete mode 100644 layouts/community/ergodox/adnw_k_o_y/readme.md delete mode 100644 layouts/community/ergodox/adnw_p_u_q/config.h delete mode 100644 layouts/community/ergodox/adnw_p_u_q/keymap.c delete mode 100644 layouts/community/ergodox/adnw_p_u_q/readme.md delete mode 100644 layouts/community/ergodox/andrew_osx/keymap.c delete mode 100644 layouts/community/ergodox/belak/LICENSE delete mode 100644 layouts/community/ergodox/belak/README.md delete mode 100644 layouts/community/ergodox/belak/keymap.c delete mode 100644 layouts/community/ergodox/belak/rules.mk delete mode 100644 layouts/community/ergodox/bepo_alt/keymap.c delete mode 100644 layouts/community/ergodox/bepo_alt/readme.md delete mode 100644 layouts/community/ergodox/bepo_alt/rules.mk delete mode 100644 layouts/community/ergodox/berfarah/config.h delete mode 100644 layouts/community/ergodox/berfarah/keymap.c delete mode 100644 layouts/community/ergodox/berfarah/readme.md delete mode 100644 layouts/community/ergodox/berfarah/rules.mk delete mode 100644 layouts/community/ergodox/choromanski/keymap.c delete mode 100644 layouts/community/ergodox/choromanski/readme.md delete mode 100644 layouts/community/ergodox/colemak/keymap.c delete mode 100644 layouts/community/ergodox/colemak/readme.md delete mode 100644 layouts/community/ergodox/colemak_code_friendly/keymap.c delete mode 100644 layouts/community/ergodox/colemak_code_friendly/readme.md delete mode 100644 layouts/community/ergodox/colemak_code_friendly/rules.mk delete mode 100644 layouts/community/ergodox/colemak_osx_pc_no/keymap.c delete mode 100644 layouts/community/ergodox/colemak_osx_pc_no/readme.md delete mode 100644 layouts/community/ergodox/colemak_programmer/keymap.c delete mode 100644 layouts/community/ergodox/colemak_programmer/readme.md delete mode 100644 layouts/community/ergodox/colemak_programmer/rules.mk delete mode 100644 layouts/community/ergodox/dave/keymap.c delete mode 100644 layouts/community/ergodox/dave/readme.md delete mode 100644 layouts/community/ergodox/deadcyclo/keymap.c delete mode 100644 layouts/community/ergodox/deadcyclo/readme.md delete mode 100644 layouts/community/ergodox/deadcyclo/rules.mk delete mode 100644 layouts/community/ergodox/dragon788/keymap.c delete mode 100644 layouts/community/ergodox/drashna/README.md delete mode 100644 layouts/community/ergodox/drashna/config.h delete mode 100644 layouts/community/ergodox/drashna/keymap.c delete mode 100644 layouts/community/ergodox/drashna/notes.txt delete mode 100644 layouts/community/ergodox/drashna/rules.mk delete mode 100644 layouts/community/ergodox/dvorak/dvorak.png.md delete mode 100644 layouts/community/ergodox/dvorak/keymap.c delete mode 100644 layouts/community/ergodox/dvorak_emacs/keymap.c delete mode 100644 layouts/community/ergodox/dvorak_emacs/readme.md delete mode 100644 layouts/community/ergodox/dvorak_emacs_software/keymap.c delete mode 100644 layouts/community/ergodox/dvorak_emacs_software/readme.md delete mode 100644 layouts/community/ergodox/dvorak_intl_squisher/keymap.c delete mode 100644 layouts/community/ergodox/dvorak_intl_squisher/readme.md delete mode 100644 layouts/community/ergodox/dvorak_plover/README.md delete mode 100644 layouts/community/ergodox/dvorak_plover/keymap.c delete mode 100644 layouts/community/ergodox/dvorak_svorak_a5/keymap.c delete mode 100644 layouts/community/ergodox/dvorak_svorak_a5/readme.md delete mode 100644 layouts/community/ergodox/emacs_osx_dk/keymap.c delete mode 100644 layouts/community/ergodox/emacs_osx_dk/readme.md delete mode 100644 layouts/community/ergodox/german-kinergo/keymap.c delete mode 100644 layouts/community/ergodox/german-kinergo/readme.md delete mode 100644 layouts/community/ergodox/german-lukas/README.md delete mode 100644 layouts/community/ergodox/german-lukas/keymap.c delete mode 100644 layouts/community/ergodox/german/keymap.c delete mode 100644 layouts/community/ergodox/guni/keymap.c delete mode 100644 layouts/community/ergodox/guni/readme.txt delete mode 100644 layouts/community/ergodox/haegin/keymap.c delete mode 100644 layouts/community/ergodox/haegin/readme.md delete mode 100644 layouts/community/ergodox/haegin/rules.mk delete mode 100644 layouts/community/ergodox/issmirnov/README.md delete mode 100644 layouts/community/ergodox/issmirnov/asci-keymap.txt delete mode 100755 layouts/community/ergodox/issmirnov/build.sh delete mode 100644 layouts/community/ergodox/issmirnov/config.h delete mode 100644 layouts/community/ergodox/issmirnov/keymap.c delete mode 100755 layouts/community/ergodox/issmirnov/push.sh delete mode 100644 layouts/community/ergodox/issmirnov/template.txt delete mode 100644 layouts/community/ergodox/j3rn/keymap.c delete mode 100644 layouts/community/ergodox/j3rn/readme.md delete mode 100644 layouts/community/ergodox/jackhumbert/config.h delete mode 100644 layouts/community/ergodox/jackhumbert/keymap.c delete mode 100644 layouts/community/ergodox/jacobono/keymap.c delete mode 100644 layouts/community/ergodox/jacobono/readme.md delete mode 100644 layouts/community/ergodox/jafo/jafo-Notes delete mode 100644 layouts/community/ergodox/jafo/keymap.c delete mode 100644 layouts/community/ergodox/jafo/readme.md delete mode 100644 layouts/community/ergodox/jgarr/keymap.c delete mode 100644 layouts/community/ergodox/jjerrell/config.h delete mode 100644 layouts/community/ergodox/jjerrell/keymap.c delete mode 100644 layouts/community/ergodox/jjerrell/readme.md delete mode 100644 layouts/community/ergodox/jjerrell/rules.mk delete mode 100644 layouts/community/ergodox/kastyle/keymap.c delete mode 100644 layouts/community/ergodox/kastyle/readme.md delete mode 100644 layouts/community/ergodox/kejadlen/config.h delete mode 100644 layouts/community/ergodox/kejadlen/keymap.c delete mode 100644 layouts/community/ergodox/kejadlen/rules.mk delete mode 100644 layouts/community/ergodox/kines-ish/keymap.c delete mode 100644 layouts/community/ergodox/kines-ish/readme.md delete mode 100644 layouts/community/ergodox/manna-harbour_miryoku/config.h delete mode 100644 layouts/community/ergodox/manna-harbour_miryoku/keymap.c delete mode 100644 layouts/community/ergodox/maz/keymap.c delete mode 100644 layouts/community/ergodox/maz/readme.md delete mode 100644 layouts/community/ergodox/mclennon_osx/README.md delete mode 100644 layouts/community/ergodox/mclennon_osx/keymap.c delete mode 100644 layouts/community/ergodox/meagerfindings/README.md delete mode 100644 layouts/community/ergodox/meagerfindings/config.h delete mode 100644 layouts/community/ergodox/meagerfindings/keymap.c delete mode 100644 layouts/community/ergodox/meagerfindings/rules.mk delete mode 100644 layouts/community/ergodox/mpiechotka/keymap.c delete mode 100644 layouts/community/ergodox/mpiechotka/readme.md delete mode 100644 layouts/community/ergodox/msc/keymap.c delete mode 100644 layouts/community/ergodox/msc/readme.md delete mode 100644 layouts/community/ergodox/naps62/keymap.c delete mode 100644 layouts/community/ergodox/naps62/readme.md delete mode 100644 layouts/community/ergodox/neo2_on_qwertz_hardware/keymap.c delete mode 100644 layouts/community/ergodox/neo2_on_qwertz_hardware/keymap.md delete mode 100644 layouts/community/ergodox/norwegian_programmer_osx_pc/keymap.c delete mode 100644 layouts/community/ergodox/norwegian_programmer_osx_pc/readme.md delete mode 100644 layouts/community/ergodox/norwegian_programmer_osx_pc_colemak/keymap.c delete mode 100644 layouts/community/ergodox/norwegian_programmer_osx_pc_colemak/readme.md delete mode 100644 layouts/community/ergodox/ordinary/keymap.c delete mode 100644 layouts/community/ergodox/ordinary/ordinary-base.txt delete mode 100644 layouts/community/ergodox/ordinary/ordinary-media.txt delete mode 100644 layouts/community/ergodox/ordinary/ordinary-special.txt delete mode 100644 layouts/community/ergodox/ordinary/ordinary-symbol.txt delete mode 100644 layouts/community/ergodox/ordinary/readme.md delete mode 100644 layouts/community/ergodox/ordinary_osx/keymap.c delete mode 100644 layouts/community/ergodox/ordinary_osx/ordinary-base.txt delete mode 100644 layouts/community/ergodox/ordinary_osx/ordinary-media.txt delete mode 100644 layouts/community/ergodox/ordinary_osx/ordinary-special.txt delete mode 100644 layouts/community/ergodox/ordinary_osx/ordinary-symbol.txt delete mode 100644 layouts/community/ergodox/ordinary_osx/readme.md delete mode 100644 layouts/community/ergodox/osx_de_adnw_koy/keymap.c delete mode 100644 layouts/community/ergodox/osx_de_adnw_koy/osx_de_adnw_koy_highres.png.md delete mode 100644 layouts/community/ergodox/osx_fr/keymap.c delete mode 100644 layouts/community/ergodox/osx_kinesis_pnut/keymap.c delete mode 100644 layouts/community/ergodox/osx_neo2/config.h delete mode 100644 layouts/community/ergodox/osx_neo2/keymap.c delete mode 100644 layouts/community/ergodox/osx_neo2/layers.h delete mode 100644 layouts/community/ergodox/osx_neo2/readme.md delete mode 100644 layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/keymap.c delete mode 100644 layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/readme.md delete mode 100644 layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/rules.mk delete mode 100644 layouts/community/ergodox/phoenix/keymap.c delete mode 100644 layouts/community/ergodox/phoenix/readme.md delete mode 100644 layouts/community/ergodox/plover/keymap.c delete mode 100644 layouts/community/ergodox/plums/keymap.c delete mode 100644 layouts/community/ergodox/plums/readme.md delete mode 100644 layouts/community/ergodox/qwerty_code_friendly/keymap.c delete mode 100644 layouts/community/ergodox/qwerty_code_friendly/readme.md delete mode 100644 layouts/community/ergodox/reset_eeprom/keymap.c delete mode 100644 layouts/community/ergodox/robot_test_layout/keymap.c delete mode 100644 layouts/community/ergodox/robot_test_layout/readme.md delete mode 100644 layouts/community/ergodox/romanzolotarev-norman-osx/keymap.c delete mode 100644 layouts/community/ergodox/romanzolotarev-norman-osx/readme.md delete mode 100644 layouts/community/ergodox/romanzolotarev-norman-plover-osx-hjkl/keymap.c delete mode 100644 layouts/community/ergodox/romanzolotarev-norman-plover-osx-hjkl/readme.md delete mode 100644 layouts/community/ergodox/romanzolotarev-norman-plover-osx/keymap.c delete mode 100644 layouts/community/ergodox/romanzolotarev-norman-plover-osx/readme.md delete mode 100644 layouts/community/ergodox/romanzolotarev-norman-qwerty-osx/keymap.c delete mode 100644 layouts/community/ergodox/romanzolotarev-norman-qwerty-osx/readme.md delete mode 100644 layouts/community/ergodox/sethbc/keymap.c delete mode 100644 layouts/community/ergodox/sethbc/readme.md delete mode 100644 layouts/community/ergodox/sethbc/rules.mk delete mode 100644 layouts/community/ergodox/siroken3/default.png.md delete mode 100644 layouts/community/ergodox/siroken3/default_highres.png.md delete mode 100644 layouts/community/ergodox/siroken3/keymap.c delete mode 100644 layouts/community/ergodox/siroken3/readme.md delete mode 100644 layouts/community/ergodox/sneako/keymap.c delete mode 100644 layouts/community/ergodox/sneako/readme.md delete mode 100644 layouts/community/ergodox/software_neo2/keymap.c delete mode 100644 layouts/community/ergodox/supercoder/config.h delete mode 100644 layouts/community/ergodox/supercoder/keymap.c delete mode 100644 layouts/community/ergodox/supercoder/readme.md delete mode 100644 layouts/community/ergodox/supercoder/rules.mk delete mode 100644 layouts/community/ergodox/swedish-lindhe/keymap.c delete mode 100644 layouts/community/ergodox/swedish-lindhe/readme.md delete mode 100644 layouts/community/ergodox/swedish/keymap.c delete mode 100644 layouts/community/ergodox/swedish/readme.md delete mode 100644 layouts/community/ergodox/techtomas/keymap.c delete mode 100644 layouts/community/ergodox/techtomas/readme.md delete mode 100644 layouts/community/ergodox/teckinesis/keymap.c delete mode 100644 layouts/community/ergodox/teckinesis/ordinary-special.png.md delete mode 100644 layouts/community/ergodox/teckinesis/ordinary-special.txt delete mode 100644 layouts/community/ergodox/teckinesis/readme.md delete mode 100644 layouts/community/ergodox/teckinesis/teckinesis-base.json delete mode 100644 layouts/community/ergodox/teckinesis/teckinesis-media.json delete mode 100644 layouts/community/ergodox/teckinesis/teckinesis-symbol.json delete mode 100644 layouts/community/ergodox/tkuichooseyou/README.md delete mode 100644 layouts/community/ergodox/tkuichooseyou/keymap.c delete mode 100644 layouts/community/ergodox/tonyabra_osx/keymap.c delete mode 100644 layouts/community/ergodox/tonyabra_osx/readme.md delete mode 100644 layouts/community/ergodox/twentylives_dvorak_with_hebrew/keymap.c delete mode 100644 layouts/community/ergodox/twentylives_dvorak_with_hebrew/readme.md delete mode 100644 layouts/community/ergodox/videck/config.h delete mode 100644 layouts/community/ergodox/videck/keymap.c delete mode 100644 layouts/community/ergodox/videck/readme.md delete mode 100644 layouts/community/ergodox/videck/rules.mk delete mode 100644 layouts/community/ergodox/videck/videck.json delete mode 100644 layouts/community/ergodox/workman_osx_mdw/keymap.c delete mode 100644 layouts/community/ergodox/xyverz/keymap.c delete mode 100644 layouts/community/ergodox/xyverz/readme.md delete mode 100644 layouts/community/ergodox/yoruian/90-ergodox-yoruian.conf delete mode 100644 layouts/community/ergodox/yoruian/README delete mode 100644 layouts/community/ergodox/yoruian/ergodox_yoruian delete mode 100644 layouts/community/ergodox/yoruian/keymap.c delete mode 100644 layouts/community/ergodox/yoruian/rules.mk delete mode 100644 layouts/community/ergodox/yoruian/yoruian.h delete mode 100644 layouts/community/ergodox/zweihander-macos/config.h delete mode 100644 layouts/community/ergodox/zweihander-macos/keymap.c delete mode 100644 layouts/community/ergodox/zweihander-macos/readme.markdown delete mode 100644 layouts/community/ergodox/zweihander-macos/rules.mk delete mode 100644 layouts/community/numpad_5x4/mrsendyyk/keymap.c delete mode 100644 layouts/community/numpad_5x4/mrsendyyk/readme.md delete mode 100644 layouts/community/numpad_5x4/mrsendyyk/rules.mk delete mode 100644 layouts/community/numpad_5x6/bjohnson/config.h delete mode 100644 layouts/community/numpad_5x6/bjohnson/keymap.c delete mode 100644 layouts/community/numpad_5x6/bjohnson/rules.mk delete mode 100644 layouts/community/numpad_5x6/drashna/config.h delete mode 100644 layouts/community/numpad_5x6/drashna/keymap.c delete mode 100644 layouts/community/numpad_5x6/drashna/rules.mk delete mode 100644 layouts/community/ortho_1x4/belgorath/keymap.c delete mode 100644 layouts/community/ortho_3x10/wanleg/config.h delete mode 100644 layouts/community/ortho_3x10/wanleg/keymap.c delete mode 100644 layouts/community/ortho_3x10/wanleg/readme.md delete mode 100644 layouts/community/ortho_3x10/wanleg/rules.mk delete mode 100644 layouts/community/ortho_4x10/manna-harbour_miryoku/config.h delete mode 100644 layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c delete mode 100644 layouts/community/ortho_4x10/scotto/keymap.c delete mode 100644 layouts/community/ortho_4x12/ajp10304/keymap.c delete mode 100644 layouts/community/ortho_4x12/ajp10304/readme.md delete mode 100644 layouts/community/ortho_4x12/ajp10304/rules.mk delete mode 100644 layouts/community/ortho_4x12/alfrdmalr/config.h delete mode 100644 layouts/community/ortho_4x12/alfrdmalr/keymap.c delete mode 100644 layouts/community/ortho_4x12/alfrdmalr/rules.mk delete mode 100644 layouts/community/ortho_4x12/bakingpy/config.h delete mode 100644 layouts/community/ortho_4x12/bakingpy/keymap.c delete mode 100644 layouts/community/ortho_4x12/bakingpy/readme.md delete mode 100644 layouts/community/ortho_4x12/bakingpy/rules.mk delete mode 100644 layouts/community/ortho_4x12/bifbofii/keymap.c delete mode 100644 layouts/community/ortho_4x12/bifbofii/readme.md delete mode 100644 layouts/community/ortho_4x12/bifbofii/rules.mk delete mode 100644 layouts/community/ortho_4x12/brandonschlack/config.h delete mode 100644 layouts/community/ortho_4x12/brandonschlack/keymap.c delete mode 100644 layouts/community/ortho_4x12/brandonschlack/readme.md delete mode 100644 layouts/community/ortho_4x12/brandonschlack/rules.mk delete mode 100644 layouts/community/ortho_4x12/bredfield/config.h delete mode 100644 layouts/community/ortho_4x12/bredfield/keymap.c delete mode 100644 layouts/community/ortho_4x12/bredfield/readme.md delete mode 100644 layouts/community/ortho_4x12/buswerks/config.h delete mode 100644 layouts/community/ortho_4x12/buswerks/keymap.c delete mode 100644 layouts/community/ortho_4x12/buswerks/readme.md delete mode 100644 layouts/community/ortho_4x12/buswerks/rules.mk delete mode 100644 layouts/community/ortho_4x12/callum/config.h delete mode 100644 layouts/community/ortho_4x12/callum/keymap.c delete mode 100644 layouts/community/ortho_4x12/colemak_mod_dh_wide/config.h delete mode 100644 layouts/community/ortho_4x12/colemak_mod_dh_wide/keymap.c delete mode 100644 layouts/community/ortho_4x12/colemak_mod_dh_wide/readme.md delete mode 100644 layouts/community/ortho_4x12/drashna/config.h delete mode 100644 layouts/community/ortho_4x12/drashna/keymap.c delete mode 100644 layouts/community/ortho_4x12/drashna/readme.md delete mode 100644 layouts/community/ortho_4x12/drashna/rules.mk delete mode 100644 layouts/community/ortho_4x12/ergodoxish/config.h delete mode 100644 layouts/community/ortho_4x12/ergodoxish/keymap.c delete mode 100644 layouts/community/ortho_4x12/grahampheath/config.h delete mode 100644 layouts/community/ortho_4x12/grahampheath/keymap.c delete mode 100644 layouts/community/ortho_4x12/grahampheath/rules.mk delete mode 100644 layouts/community/ortho_4x12/greatwizard/README.md delete mode 100644 layouts/community/ortho_4x12/greatwizard/config.h delete mode 100644 layouts/community/ortho_4x12/greatwizard/keymap.c delete mode 100644 layouts/community/ortho_4x12/greatwizard/rules.mk delete mode 100644 layouts/community/ortho_4x12/jackhumbert/config.h delete mode 100644 layouts/community/ortho_4x12/jackhumbert/keymap.c delete mode 100644 layouts/community/ortho_4x12/jackhumbert/readme.md delete mode 100644 layouts/community/ortho_4x12/jarred/keymap.c delete mode 100644 layouts/community/ortho_4x12/jarred/readme.md delete mode 100644 layouts/community/ortho_4x12/jjerrell/config.h delete mode 100644 layouts/community/ortho_4x12/jjerrell/keymap.c delete mode 100644 layouts/community/ortho_4x12/jjerrell/readme.md delete mode 100644 layouts/community/ortho_4x12/jjerrell/rules.mk delete mode 100644 layouts/community/ortho_4x12/jotix/keymap.c delete mode 100644 layouts/community/ortho_4x12/jotix/readme.md delete mode 100644 layouts/community/ortho_4x12/jotix/rules.mk delete mode 100644 layouts/community/ortho_4x12/juno/config.h delete mode 100644 layouts/community/ortho_4x12/juno/keymap.c delete mode 100644 layouts/community/ortho_4x12/juno/readme.md delete mode 100644 layouts/community/ortho_4x12/juno/rules.mk delete mode 100644 layouts/community/ortho_4x12/junonum/config.h delete mode 100644 layouts/community/ortho_4x12/junonum/keymap.c delete mode 100644 layouts/community/ortho_4x12/junonum/readme.md delete mode 100644 layouts/community/ortho_4x12/junonum/rules.mk delete mode 100644 layouts/community/ortho_4x12/manna-harbour_miryoku/config.h delete mode 100644 layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c delete mode 100644 layouts/community/ortho_4x12/mguterl/config.h delete mode 100644 layouts/community/ortho_4x12/mguterl/keymap.c delete mode 100644 layouts/community/ortho_4x12/mguterl/readme.md delete mode 100644 layouts/community/ortho_4x12/mguterl/rules.mk delete mode 100644 layouts/community/ortho_4x12/mindsound/config.h delete mode 100644 layouts/community/ortho_4x12/mindsound/flicker.h delete mode 100644 layouts/community/ortho_4x12/mindsound/keymap.c delete mode 100644 layouts/community/ortho_4x12/mindsound/readme.md delete mode 100644 layouts/community/ortho_4x12/mindsound/rules.mk delete mode 100644 layouts/community/ortho_4x12/neo2marin/config.h delete mode 100644 layouts/community/ortho_4x12/neo2marin/keymap.c delete mode 100644 layouts/community/ortho_4x12/neo2marin/readme.md delete mode 100644 layouts/community/ortho_4x12/neo2marin/rules.mk delete mode 100644 layouts/community/ortho_4x12/peej/keymap.c delete mode 100644 layouts/community/ortho_4x12/rs/config.h delete mode 100644 layouts/community/ortho_4x12/rs/keymap.c delete mode 100644 layouts/community/ortho_4x12/rs/readme.md delete mode 100644 layouts/community/ortho_4x12/symbolic/README.md delete mode 100644 layouts/community/ortho_4x12/symbolic/config.h delete mode 100644 layouts/community/ortho_4x12/symbolic/keymap.c delete mode 100644 layouts/community/ortho_4x12/talljoe/config.h delete mode 100644 layouts/community/ortho_4x12/talljoe/keymap.c delete mode 100644 layouts/community/ortho_4x12/trguhq/config.h delete mode 100644 layouts/community/ortho_4x12/trguhq/keymap.c delete mode 100644 layouts/community/ortho_4x12/trguhq/readme.md delete mode 100644 layouts/community/ortho_4x12/trguhq/rules.mk delete mode 100644 layouts/community/ortho_4x12/trguhq/trguhq.json delete mode 100644 layouts/community/ortho_4x12/wanleg/config.h delete mode 100644 layouts/community/ortho_4x12/wanleg/keymap.c delete mode 100644 layouts/community/ortho_4x12/wanleg/readme.md delete mode 100644 layouts/community/ortho_4x12/wanleg/rules.mk delete mode 100644 layouts/community/ortho_4x12/xyverz/config.h delete mode 100644 layouts/community/ortho_4x12/xyverz/keymap.c delete mode 100644 layouts/community/ortho_4x12/xyverz/readme.md delete mode 100644 layouts/community/ortho_4x12/xyverz/rules.mk delete mode 100644 layouts/community/ortho_4x4/jotix/keymap.c delete mode 100644 layouts/community/ortho_4x4/jotix/readme.md delete mode 100644 layouts/community/ortho_5x12/333fred/README.md delete mode 100644 layouts/community/ortho_5x12/333fred/config.h delete mode 100644 layouts/community/ortho_5x12/333fred/keymap.c delete mode 100644 layouts/community/ortho_5x12/333fred/rules.mk delete mode 100644 layouts/community/ortho_5x12/alfrdmalr/config.h delete mode 100644 layouts/community/ortho_5x12/alfrdmalr/keymap.c delete mode 100644 layouts/community/ortho_5x12/alfrdmalr/rules.mk delete mode 100644 layouts/community/ortho_5x12/brandonschlack/config.h delete mode 100644 layouts/community/ortho_5x12/brandonschlack/keymap.c delete mode 100644 layouts/community/ortho_5x12/brandonschlack/readme.md delete mode 100644 layouts/community/ortho_5x12/brandonschlack/rules.mk delete mode 100644 layouts/community/ortho_5x12/drashna/config.h delete mode 100644 layouts/community/ortho_5x12/drashna/keymap.c delete mode 100644 layouts/community/ortho_5x12/drashna/rules.mk delete mode 100644 layouts/community/ortho_5x12/greatwizard/README.md delete mode 100644 layouts/community/ortho_5x12/greatwizard/config.h delete mode 100644 layouts/community/ortho_5x12/greatwizard/keymap.c delete mode 100644 layouts/community/ortho_5x12/greatwizard/rules.mk delete mode 100644 layouts/community/ortho_5x12/manna-harbour_miryoku/config.h delete mode 100644 layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c delete mode 100644 layouts/community/ortho_5x12/peej/keymap.c delete mode 100644 layouts/community/ortho_5x12/riblee/config.h delete mode 100644 layouts/community/ortho_5x12/riblee/keymap.c delete mode 100644 layouts/community/ortho_5x12/riblee/readme.md delete mode 100644 layouts/community/ortho_5x12/riblee/rules.mk delete mode 100644 layouts/community/ortho_5x12/rs/config.h delete mode 100644 layouts/community/ortho_5x12/rs/keymap.c delete mode 100644 layouts/community/ortho_5x12/rs/readme.md delete mode 100644 layouts/community/ortho_5x12/xyverz/config.h delete mode 100644 layouts/community/ortho_5x12/xyverz/keymap.c delete mode 100644 layouts/community/ortho_5x12/xyverz/rules.mk delete mode 100644 layouts/community/ortho_5x14/peej/keymap.c delete mode 100644 layouts/community/ortho_5x14/yet-another-developer/config.h delete mode 100644 layouts/community/ortho_5x14/yet-another-developer/keymap.c delete mode 100644 layouts/community/ortho_5x14/yet-another-developer/rules.mk delete mode 100644 layouts/community/ortho_5x15/manna-harbour_miryoku/config.h delete mode 100644 layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c delete mode 100644 layouts/community/ortho_5x15/wanleg/config.h delete mode 100644 layouts/community/ortho_5x15/wanleg/keymap.c delete mode 100644 layouts/community/ortho_5x15/wanleg/rules.mk delete mode 100644 layouts/community/planck_mit/guidoism/config.h delete mode 100644 layouts/community/planck_mit/guidoism/generate_c.py delete mode 100644 layouts/community/planck_mit/guidoism/guidoism.json delete mode 100644 layouts/community/planck_mit/guidoism/keymap.c delete mode 100644 layouts/community/planck_mit/guidoism/keys.json delete mode 100644 layouts/community/planck_mit/guidoism/readme.md delete mode 100644 layouts/community/planck_mit/manna-harbour_miryoku/config.h delete mode 100644 layouts/community/planck_mit/manna-harbour_miryoku/keymap.c delete mode 100644 layouts/community/split_3x5_2/manna-harbour_miryoku/config.h delete mode 100644 layouts/community/split_3x5_2/manna-harbour_miryoku/keymap.c delete mode 100644 layouts/community/split_3x5_2/manna-harbour_miryoku/rules.mk delete mode 100644 layouts/community/split_3x5_2/scotto/keymap.c delete mode 100644 layouts/community/split_3x5_3/manna-harbour_miryoku/config.h delete mode 100644 layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c delete mode 100644 layouts/community/split_3x5_3/scotto/keymap.c delete mode 100644 layouts/community/split_3x6_3/bcat/config.h delete mode 100644 layouts/community/split_3x6_3/bcat/keymap.c delete mode 100644 layouts/community/split_3x6_3/bcat/readme.md delete mode 100644 layouts/community/split_3x6_3/bcat/rules.mk delete mode 100644 layouts/community/split_3x6_3/drashna/chconf.h delete mode 100644 layouts/community/split_3x6_3/drashna/config.h delete mode 100644 layouts/community/split_3x6_3/drashna/glcdfont.c delete mode 100644 layouts/community/split_3x6_3/drashna/halconf.h delete mode 100644 layouts/community/split_3x6_3/drashna/keymap.c delete mode 100644 layouts/community/split_3x6_3/drashna/mcuconf.h delete mode 100644 layouts/community/split_3x6_3/drashna/rules.mk delete mode 100644 layouts/community/split_3x6_3/manna-harbour_miryoku/config.h delete mode 100644 layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c delete mode 100644 layouts/community/tkl_ansi/brandonschlack/config.h delete mode 100644 layouts/community/tkl_ansi/brandonschlack/keymap.c delete mode 100644 layouts/community/tkl_ansi/brandonschlack/readme.md delete mode 100644 layouts/community/tkl_ansi/brandonschlack/rules.mk delete mode 100644 layouts/community/tkl_ansi/talljoe-tkl/config.h delete mode 100644 layouts/community/tkl_ansi/talljoe-tkl/keymap.c delete mode 100644 layouts/community/tkl_ansi/talljoe-tkl/rules.mk delete mode 100644 layouts/community/tkl_ansi/xyverz/keymap.c delete mode 100644 layouts/community/tkl_ansi/xyverz/readme.md delete mode 100644 layouts/community/tkl_ansi/yanfali/keymap.c delete mode 100644 users/333fred/333fred.c delete mode 100644 users/333fred/333fred.h delete mode 100644 users/333fred/config.h delete mode 100644 users/333fred/layout_macros.h delete mode 100644 users/333fred/rgb.c delete mode 100644 users/333fred/rules.mk delete mode 100644 users/ajp10304/ajp10304.c delete mode 100644 users/ajp10304/ajp10304.h delete mode 100644 users/ajp10304/readme.md delete mode 100644 users/ajp10304/rules.mk delete mode 100644 users/alfrdmalr/alfrdmalr.c delete mode 100644 users/alfrdmalr/alfrdmalr.h delete mode 100644 users/alfrdmalr/config.h delete mode 100644 users/alfrdmalr/readme.md delete mode 100644 users/alfrdmalr/rules.mk delete mode 100644 users/anderson/dmc12.c delete mode 100644 users/anderson/dmc12.h delete mode 100644 users/anderson/seq.c delete mode 100644 users/anderson/seq.h delete mode 100644 users/anderson/smoothled.c delete mode 100644 users/anderson/smoothled.h delete mode 100644 users/arkag/arkag.c delete mode 100644 users/arkag/arkag.h delete mode 100644 users/arkag/config.h delete mode 100644 users/arkag/readme.md delete mode 100644 users/arkag/rules.mk delete mode 100644 users/art/.gitignore delete mode 100644 users/art/art.c delete mode 100644 users/art/art.h delete mode 100644 users/art/art_user_config.h.example delete mode 100644 users/art/config.h delete mode 100644 users/art/custom_definitions.h.example delete mode 100644 users/art/funcs/led_funcs.c delete mode 100644 users/art/funcs/led_funcs.h delete mode 100644 users/art/funcs/string_funcs.c delete mode 100644 users/art/funcs/string_funcs.h delete mode 100644 users/art/rules.mk delete mode 100644 users/art/secr.h.example delete mode 100644 users/badger/README.md delete mode 100644 users/badger/badger.c delete mode 100644 users/badger/badger.h delete mode 100644 users/badger/ortho.c delete mode 100644 users/badger/ortho.h delete mode 100644 users/badger/rules.mk delete mode 100644 users/bcat/bcat.c delete mode 100644 users/bcat/bcat.h delete mode 100644 users/bcat/bcat_oled.c delete mode 100644 users/bcat/bcat_oled.h delete mode 100644 users/bcat/bcat_oled_pet.h delete mode 100644 users/bcat/bcat_oled_pet_isda.c delete mode 100644 users/bcat/bcat_oled_pet_luna.c delete mode 100644 users/bcat/bcat_rgblight.c delete mode 100755 users/bcat/compile.sh delete mode 100644 users/bcat/config.h delete mode 100644 users/bcat/readme.md delete mode 100644 users/bcat/rules.mk delete mode 100644 users/billypython/billypython.c delete mode 100644 users/billypython/billypython.h delete mode 100644 users/billypython/config.h delete mode 100644 users/billypython/rules.mk delete mode 100644 users/billypython/tap_dance.c delete mode 100644 users/billypython/tap_dance.h delete mode 100644 users/brandonschlack/brandonschlack.c delete mode 100644 users/brandonschlack/brandonschlack.h delete mode 100644 users/brandonschlack/config.h delete mode 100644 users/brandonschlack/process_records.c delete mode 100644 users/brandonschlack/process_records.h delete mode 100644 users/brandonschlack/readme.md delete mode 100644 users/brandonschlack/rgb_bs.c delete mode 100644 users/brandonschlack/rgb_bs.h delete mode 100644 users/brandonschlack/rgb_theme.h delete mode 100644 users/brandonschlack/rgb_theme_user.inc delete mode 100644 users/brandonschlack/rules.mk delete mode 100644 users/brandonschlack/tap_dances.c delete mode 100644 users/brandonschlack/tap_dances.h delete mode 100644 users/brett/brett.c delete mode 100644 users/brett/brett.h delete mode 100644 users/brett/rules.mk delete mode 100644 users/byungyoonc/byungyoonc.c delete mode 100644 users/byungyoonc/byungyoonc.h delete mode 100644 users/byungyoonc/readme.md delete mode 100644 users/byungyoonc/rules.mk delete mode 100644 users/byungyoonc/saturated_solid_multisplash.h delete mode 100644 users/callum/callum.c delete mode 100644 users/callum/oneshot.c delete mode 100644 users/callum/oneshot.h delete mode 100644 users/callum/readme.md delete mode 100644 users/callum/rules.mk delete mode 100644 users/callum/swapper.c delete mode 100644 users/callum/swapper.h delete mode 100644 users/cameronjlarsen/features/oneshot.c delete mode 100644 users/cameronjlarsen/features/oneshot.h delete mode 100644 users/cameronjlarsen/rules.mk delete mode 100644 users/cbbrowne/cbbrowne.c delete mode 100644 users/cbbrowne/cbbrowne.h delete mode 100644 users/cbbrowne/rules.mk delete mode 100644 users/cedrikl/cedrikl.c delete mode 100644 users/cedrikl/cedrikl.h delete mode 100644 users/cedrikl/config.h delete mode 100644 users/cedrikl/rules.mk delete mode 100644 users/charlesrocket/apl.c delete mode 100644 users/charlesrocket/rules.mk delete mode 100644 users/cjuniet/cjuniet.c delete mode 100644 users/cjuniet/cjuniet.h delete mode 100644 users/cjuniet/glcdfont.c delete mode 100644 users/cjuniet/readme.md delete mode 100644 users/cjuniet/rules.mk delete mode 100644 users/csc027/csc027.c delete mode 100644 users/csc027/csc027.h delete mode 100644 users/csc027/custom_audio.c delete mode 100644 users/csc027/custom_audio.h delete mode 100644 users/csc027/custom_rgb.c delete mode 100644 users/csc027/custom_rgb.h delete mode 100644 users/csc027/defines.h delete mode 100644 users/csc027/rules.mk delete mode 100644 users/csc027/usb_led.c delete mode 100644 users/csc027/usb_led.h delete mode 100644 users/curry/.gitignore delete mode 100644 users/curry/LICENSE delete mode 100644 users/curry/README.md delete mode 100644 users/curry/config.h delete mode 100644 users/curry/curry.c delete mode 100644 users/curry/curry.h delete mode 100644 users/curry/glcdfont.c delete mode 100644 users/curry/leader_user.c delete mode 100644 users/curry/leader_user.h delete mode 100644 users/curry/oled.c delete mode 100644 users/curry/process_records.c delete mode 100644 users/curry/process_records.h delete mode 100644 users/curry/rgb_lighting_user.c delete mode 100644 users/curry/rgb_lighting_user.h delete mode 100644 users/curry/rgb_matrix_user.c delete mode 100644 users/curry/rgb_matrix_user.h delete mode 100644 users/curry/rgblight_breathe_table.h delete mode 100644 users/curry/rules.mk delete mode 100644 users/curry/tap_dances.c delete mode 100644 users/curry/tap_dances.h delete mode 100644 users/curry/wrappers.h delete mode 100644 users/cwebster2/config.h delete mode 100644 users/cwebster2/cwebster2.c delete mode 100644 users/cwebster2/cwebster2.h delete mode 100644 users/cwebster2/keycodes.c delete mode 100644 users/cwebster2/keycodes.h delete mode 100644 users/cwebster2/my_miryoku.h delete mode 100644 users/cwebster2/rules.mk delete mode 100644 users/d4mation/config.h delete mode 100644 users/d4mation/d4mation.c delete mode 100644 users/d4mation/d4mation.h delete mode 100644 users/d4mation/macros.c delete mode 100644 users/d4mation/macros.h delete mode 100644 users/d4mation/rules.mk delete mode 100644 users/d4mation/tap-dance.c delete mode 100644 users/d4mation/tap-dance.h delete mode 100644 users/d4mation/tap-hold.c delete mode 100644 users/d4mation/tap-hold.h delete mode 100644 users/d4mation/zalgo.c delete mode 100644 users/d4mation/zalgo.h delete mode 100644 users/danielo515/alt_tab.c delete mode 100644 users/danielo515/alt_tab.h delete mode 100644 users/danielo515/combo.c delete mode 100644 users/danielo515/combo.h delete mode 100644 users/danielo515/config.h delete mode 100644 users/danielo515/danielo515.c delete mode 100644 users/danielo515/danielo515.h delete mode 100644 users/danielo515/process_records.c delete mode 100644 users/danielo515/process_records.h delete mode 100644 users/danielo515/readme.md delete mode 100644 users/danielo515/rules.mk delete mode 100644 users/danielo515/tap_dance.c delete mode 100644 users/danielo515/tap_dance.h delete mode 100644 users/datagrok/README.md delete mode 100644 users/datagrok/feature_cdeq.c delete mode 100644 users/datagrok/feature_cdeq.h delete mode 100644 users/datagrok/feature_default_layers_selector.c delete mode 100644 users/datagrok/feature_default_layers_selector.h delete mode 100644 users/davidkristoffersen/davidkristoffersen.h delete mode 100644 users/davidkristoffersen/hardware/readme.md delete mode 100644 users/davidkristoffersen/hardware/split_space.c delete mode 100644 users/davidkristoffersen/hardware/split_space.h delete mode 100644 users/davidkristoffersen/macros/debug.c delete mode 100644 users/davidkristoffersen/macros/language.c delete mode 100644 users/davidkristoffersen/macros/macros.c delete mode 100644 users/davidkristoffersen/macros/macros.h delete mode 100644 users/davidkristoffersen/macros/norwegian.h delete mode 100644 users/davidkristoffersen/macros/readme.md delete mode 100644 users/davidkristoffersen/post_config.h delete mode 100644 users/davidkristoffersen/readme.md delete mode 100644 users/davidkristoffersen/rules.mk delete mode 100644 users/davidkristoffersen/util/functions.c delete mode 100644 users/davidkristoffersen/util/functions.h delete mode 100644 users/davidkristoffersen/util/readme.md delete mode 100644 users/dennytom/chording_engine/README.md delete mode 100644 users/dennytom/chording_engine/chord.py delete mode 100644 users/dennytom/chording_engine/engine.part.1 delete mode 100644 users/dennytom/chording_engine/engine.part.2 delete mode 100644 users/dennytom/chording_engine/engine.part.3 delete mode 100644 users/dennytom/chording_engine/keymap_def.schema.json delete mode 100644 users/dennytom/chording_engine/parser.py delete mode 100644 users/dennytom/chording_engine/state_machine.dot delete mode 100644 users/dennytom/chording_engine/state_machine.svg delete mode 100644 users/dennytom/chording_engine/tests/minunit.h delete mode 100644 users/dennytom/chording_engine/tests/test.c delete mode 100644 users/dennytom/chording_engine/tests/test_full.sh delete mode 100644 users/dennytom/chording_engine/tests/test_keymap_def.json delete mode 100644 users/dennytom/chording_engine/tests/test_quick.sh delete mode 100644 users/devdev/config.h delete mode 100644 users/devdev/glcdfont.c delete mode 100644 users/dhertz/config.h delete mode 100644 users/dhertz/dhertz.c delete mode 100644 users/dhertz/dhertz.h delete mode 100644 users/dhertz/rules.mk delete mode 100644 users/doogle999/doogle999.c delete mode 100644 users/doogle999/doogle999.h delete mode 100644 users/doogle999/readme.md delete mode 100644 users/doogle999/rules.mk delete mode 100644 users/draevin/LICENSE delete mode 100644 users/draevin/README.md delete mode 100644 users/draevin/config.h delete mode 100644 users/draevin/draevin.c delete mode 100644 users/draevin/draevin.h delete mode 100644 users/draevin/rules.mk delete mode 100644 users/draevin/wrappers.h delete mode 100644 users/drashna/.gitignore delete mode 100644 users/drashna/.gitlab-ci.yml delete mode 100644 users/drashna/audio_config.h delete mode 100644 users/drashna/autocorrect_data.h delete mode 100644 users/drashna/bootmagic_better.c delete mode 100644 users/drashna/callbacks.c delete mode 100644 users/drashna/callbacks.h delete mode 100644 users/drashna/callbacks.md delete mode 100644 users/drashna/config.h delete mode 100644 users/drashna/drashna.c delete mode 100644 users/drashna/drashna.h delete mode 100644 users/drashna/eeconfig_users.c delete mode 100644 users/drashna/eeconfig_users.h delete mode 100644 users/drashna/keyrecords/dynamic_macros.c delete mode 100644 users/drashna/keyrecords/dynamic_macros.h delete mode 100644 users/drashna/keyrecords/keycodes.md delete mode 100644 users/drashna/keyrecords/process_records.c delete mode 100644 users/drashna/keyrecords/process_records.h delete mode 100644 users/drashna/keyrecords/readme.md delete mode 100644 users/drashna/keyrecords/secrets.md delete mode 100644 users/drashna/keyrecords/tap_dance.md delete mode 100644 users/drashna/keyrecords/tap_dances.c delete mode 100644 users/drashna/keyrecords/tap_dances.h delete mode 100644 users/drashna/keyrecords/tapping.c delete mode 100644 users/drashna/keyrecords/unicode.c delete mode 100644 users/drashna/keyrecords/unicode.h delete mode 100644 users/drashna/keyrecords/unicode.md delete mode 100644 users/drashna/keyrecords/wrappers.h delete mode 100644 users/drashna/keyrecords/wrappers.md delete mode 100644 users/drashna/oled/drashna_font.h delete mode 100644 users/drashna/oled/oled_assets.h delete mode 100644 users/drashna/oled/oled_config.h delete mode 100644 users/drashna/oled/oled_stuff.c delete mode 100644 users/drashna/oled/oled_stuff.h delete mode 100644 users/drashna/oled/readme.md delete mode 100644 users/drashna/oled/rules.mk delete mode 100644 users/drashna/pointing/pointing.c delete mode 100644 users/drashna/pointing/pointing.h delete mode 100644 users/drashna/pointing/pointing_config.h delete mode 100644 users/drashna/pointing/readme.md delete mode 100644 users/drashna/post_config.h delete mode 100644 users/drashna/readme.md delete mode 100644 users/drashna/rgb/readme.md delete mode 100644 users/drashna/rgb/rgb_matrix_config.h delete mode 100644 users/drashna/rgb/rgb_matrix_stuff.c delete mode 100644 users/drashna/rgb/rgb_matrix_stuff.h delete mode 100644 users/drashna/rgb/rgb_stuff.c delete mode 100644 users/drashna/rgb/rgb_stuff.h delete mode 100644 users/drashna/rgb/rgblight_config.h delete mode 100644 users/drashna/rgblight_breathe_table.h delete mode 100644 users/drashna/rules.mk delete mode 100644 users/drashna/split/readme.md delete mode 100644 users/drashna/split/split_config.h delete mode 100644 users/drashna/split/transport_sync.c delete mode 100644 users/drashna/split/transport_sync.h delete mode 100644 users/drashna/template.c delete mode 100644 users/drashna/template.h delete mode 100644 users/dshields/config.h delete mode 100644 users/dshields/dshields.c delete mode 100644 users/dshields/dshields.h delete mode 100644 users/dshields/rules.mk delete mode 100644 users/dudeofawesome/dudeofawesome.c delete mode 100644 users/dudeofawesome/dudeofawesome.h delete mode 100644 users/dudeofawesome/rules.mk delete mode 100644 users/dvorak_42_key/config.h delete mode 100644 users/dvorak_42_key/dvorak_42_key.c delete mode 100644 users/dvorak_42_key/dvorak_42_key.h delete mode 100644 users/dvorak_42_key/rules.mk delete mode 100644 users/dvorak_42_key/vscode_macros.h delete mode 100644 users/edvorakjp/edvorakjp.c delete mode 100644 users/edvorakjp/edvorakjp.h delete mode 100644 users/edvorakjp/edvorakjp_process_record.c delete mode 100644 users/edvorakjp/edvorakjp_status.c delete mode 100644 users/edvorakjp/edvorakjp_tap_dance.c delete mode 100644 users/edvorakjp/readme.md delete mode 100644 users/edvorakjp/rules.mk delete mode 100644 users/ericgebhart/base_layers/accents.h delete mode 100644 users/ericgebhart/base_layers/alt.h delete mode 100644 users/ericgebhart/base_layers/base_layers.h delete mode 100644 users/ericgebhart/base_layers/beakl.h delete mode 100644 users/ericgebhart/base_layers/bepo.h delete mode 100644 users/ericgebhart/base_layers/carpalx.h delete mode 100644 users/ericgebhart/base_layers/dvorak.h delete mode 100644 users/ericgebhart/base_layers/gap.h delete mode 100644 users/ericgebhart/base_layers/hands_down.h delete mode 100644 users/ericgebhart/base_layers/keymaps.txt delete mode 100644 users/ericgebhart/base_layers/maks.h delete mode 100644 users/ericgebhart/base_layers/qwerty.h delete mode 100644 users/ericgebhart/base_layers/toprows.h delete mode 100644 users/ericgebhart/config.h delete mode 100644 users/ericgebhart/defs/accented_keys.def delete mode 100644 users/ericgebhart/defs/alt_shift.def delete mode 100644 users/ericgebhart/defs/altlocal_keys.def delete mode 100644 users/ericgebhart/defs/combos.def delete mode 100644 users/ericgebhart/defs/custom_keys.def delete mode 100644 users/ericgebhart/defs/encoders.def delete mode 100644 users/ericgebhart/defs/key_overrides.def delete mode 100644 users/ericgebhart/defs/mod_lock.def delete mode 100644 users/ericgebhart/defs/not_dead.def delete mode 100644 users/ericgebhart/defs/nshot.def delete mode 100644 users/ericgebhart/defs/oneshot.def delete mode 100644 users/ericgebhart/defs/send_string.def delete mode 100644 users/ericgebhart/defs/smart_lock.def delete mode 100644 users/ericgebhart/defs/swapper.def delete mode 100644 users/ericgebhart/defs/tap_hold.def delete mode 100644 users/ericgebhart/defs/unicode.def delete mode 100755 users/ericgebhart/ericgebhart.c delete mode 100755 users/ericgebhart/ericgebhart.h delete mode 100644 users/ericgebhart/extensions/accented_keys.c delete mode 100644 users/ericgebhart/extensions/accented_keys.h delete mode 100644 users/ericgebhart/extensions/alt_shift.c delete mode 100644 users/ericgebhart/extensions/altlocal_keys.c delete mode 100644 users/ericgebhart/extensions/altlocal_keys.h delete mode 100644 users/ericgebhart/extensions/console_key_logger.c delete mode 100644 users/ericgebhart/extensions/console_key_logger.h delete mode 100644 users/ericgebhart/extensions/encoders.c delete mode 100644 users/ericgebhart/extensions/encoders.h delete mode 100644 users/ericgebhart/extensions/extensions.c delete mode 100644 users/ericgebhart/extensions/extensions.h delete mode 100644 users/ericgebhart/extensions/key_overrides.h delete mode 100755 users/ericgebhart/extensions/keycodes.h delete mode 100644 users/ericgebhart/extensions/keymap_combo.h delete mode 100644 users/ericgebhart/extensions/mod_lock.c delete mode 100644 users/ericgebhart/extensions/mod_lock.h delete mode 100644 users/ericgebhart/extensions/not_dead.c delete mode 100644 users/ericgebhart/extensions/nshot_mod.c delete mode 100644 users/ericgebhart/extensions/nshot_mod.h delete mode 100644 users/ericgebhart/extensions/oneshot.c delete mode 100644 users/ericgebhart/extensions/oneshot.h delete mode 100644 users/ericgebhart/extensions/process_locales.h delete mode 100644 users/ericgebhart/extensions/process_nshot.h delete mode 100644 users/ericgebhart/extensions/process_smart_lock.h delete mode 100644 users/ericgebhart/extensions/quick_tap.c delete mode 100644 users/ericgebhart/extensions/send_string.c delete mode 100644 users/ericgebhart/extensions/smart_lock.c delete mode 100644 users/ericgebhart/extensions/smart_lock.h delete mode 100644 users/ericgebhart/extensions/swapper.c delete mode 100644 users/ericgebhart/extensions/swapper.h delete mode 100755 users/ericgebhart/extensions/tap_dances.c delete mode 100755 users/ericgebhart/extensions/tap_dances.h delete mode 100644 users/ericgebhart/extensions/tap_hold.c delete mode 100644 users/ericgebhart/extensions/tap_hold.h delete mode 100644 users/ericgebhart/extensions/unicode.c delete mode 100644 users/ericgebhart/extensions/unicode.h delete mode 100644 users/ericgebhart/keyboards/keyboards.h delete mode 100644 users/ericgebhart/keyboards/layouts.h delete mode 100644 users/ericgebhart/keymap/keymap.c delete mode 100644 users/ericgebhart/keymap/map_accented.h delete mode 100644 users/ericgebhart/keymap/map_alt.h delete mode 100644 users/ericgebhart/keymap/map_beakl.h delete mode 100644 users/ericgebhart/keymap/map_bepo.h delete mode 100644 users/ericgebhart/keymap/map_carpalx.h delete mode 100644 users/ericgebhart/keymap/map_dvorak.h delete mode 100644 users/ericgebhart/keymap/map_funcs.h delete mode 100644 users/ericgebhart/keymap/map_gap.h delete mode 100644 users/ericgebhart/keymap/map_hd.h delete mode 100644 users/ericgebhart/keymap/map_keypads.h delete mode 100644 users/ericgebhart/keymap/map_maks.h delete mode 100644 users/ericgebhart/keymap/map_qwerty.h delete mode 100644 users/ericgebhart/keymap/map_symbols.h delete mode 100644 users/ericgebhart/keymap/map_toprows.h delete mode 100644 users/ericgebhart/lang/lang.h delete mode 100644 users/ericgebhart/lang/lang_map.h delete mode 100644 users/ericgebhart/lang/locale_layers.h delete mode 100644 users/ericgebhart/lang/locales.c delete mode 100644 users/ericgebhart/lang/locales.h delete mode 100644 users/ericgebhart/layer_names/base_names.h delete mode 100644 users/ericgebhart/layer_names/func_names.h delete mode 100644 users/ericgebhart/layer_names/layer_names.h delete mode 100644 users/ericgebhart/layer_names/util_names.h delete mode 100644 users/ericgebhart/layers/edge_keys.h delete mode 100644 users/ericgebhart/layers/keypads.h delete mode 100755 users/ericgebhart/layers/layers.h delete mode 100644 users/ericgebhart/layers/nav.h delete mode 100644 users/ericgebhart/layers/symbols.h delete mode 100644 users/ericgebhart/layers/thumbs.h delete mode 100644 users/ericgebhart/layers/toprows.h delete mode 100644 users/ericgebhart/layers/utility.h delete mode 100755 users/ericgebhart/listen_keylogger.sh delete mode 100644 users/ericgebhart/miryoku_hd_gold_config.h delete mode 100644 users/ericgebhart/mod_layers/alt_mods.h delete mode 100644 users/ericgebhart/mod_layers/hrm_gacs.h delete mode 100644 users/ericgebhart/mod_layers/hrm_gacs_miryoku.h delete mode 100644 users/ericgebhart/mod_layers/hrm_gasc.h delete mode 100644 users/ericgebhart/mod_layers/hrm_sacg.h delete mode 100644 users/ericgebhart/mod_layers/hrs_nav.h delete mode 100644 users/ericgebhart/mod_layers/mod_layer.h delete mode 100644 users/ericgebhart/mod_layers/trns_mods.h delete mode 100644 users/ericgebhart/oled/oled_cartes.c delete mode 100644 users/ericgebhart/oled/oled_layers.c delete mode 100755 users/ericgebhart/oled/oled_stuff.c delete mode 100755 users/ericgebhart/oled/oled_stuff.h delete mode 100755 users/ericgebhart/process_records.c delete mode 100755 users/ericgebhart/readme.md delete mode 100755 users/ericgebhart/rules.mk delete mode 100644 users/gary/gary.c delete mode 100644 users/gary/gary.h delete mode 100644 users/gary/readme.md delete mode 100644 users/gary/rules.mk delete mode 100644 users/gourdo1/autocorrect/autocorrection.c delete mode 100644 users/gourdo1/autocorrect/autocorrection.h delete mode 100644 users/gourdo1/autocorrect/autocorrection_data.h delete mode 100644 users/gourdo1/autocorrect/autocorrection_data.h (large) delete mode 100644 users/gourdo1/autocorrect/autocorrection_data.h (small) delete mode 100644 users/gourdo1/autocorrect/autocorrection_dict.txt delete mode 100644 users/gourdo1/autocorrect/make_autocorrection_data.py delete mode 100644 users/gourdo1/custom_double_taps.h delete mode 100644 users/gourdo1/gourdo1.c delete mode 100644 users/gourdo1/gourdo1.h delete mode 100644 users/gourdo1/gourdo1_encoder.c delete mode 100644 users/gourdo1/rules.mk delete mode 100644 users/greatwizard/config.h delete mode 100644 users/greatwizard/fn.h delete mode 100644 users/greatwizard/game.c delete mode 100644 users/greatwizard/game.h delete mode 100644 users/greatwizard/git.c delete mode 100644 users/greatwizard/git.h delete mode 100644 users/greatwizard/greatwizard.c delete mode 100644 users/greatwizard/greatwizard.h delete mode 100644 users/greatwizard/keymap_helpers.h delete mode 100644 users/greatwizard/ortho.c delete mode 100644 users/greatwizard/ortho.h delete mode 100644 users/greatwizard/programmer.c delete mode 100644 users/greatwizard/programmer.h delete mode 100644 users/greatwizard/readme.md delete mode 100644 users/greatwizard/rules.mk delete mode 100644 users/greatwizard/tap_dances.c delete mode 100644 users/greatwizard/tap_dances.h delete mode 100644 users/greatwizard/underglow.c delete mode 100644 users/greatwizard/underglow.h delete mode 100644 users/haervig/config.h delete mode 100644 users/haervig/haervig.c delete mode 100644 users/haervig/haervig.h delete mode 100644 users/haervig/readme.md delete mode 100644 users/haervig/rules.mk delete mode 100644 users/horrortroll/config.h delete mode 100644 users/horrortroll/horrortroll.c delete mode 100644 users/horrortroll/horrortroll.h delete mode 100644 users/horrortroll/led/cool_diagonal.c delete mode 100644 users/horrortroll/led/custom_gradient.c delete mode 100644 users/horrortroll/led/flower_blooming/flower_blooming.c delete mode 100644 users/horrortroll/led/flower_blooming/flower_blooming.h delete mode 100644 users/horrortroll/led/random_breath_rainbow.c delete mode 100644 users/horrortroll/readme.md delete mode 100644 users/horrortroll/rgb_matrix_user.inc delete mode 100644 users/horrortroll/rules.mk delete mode 100644 users/hvp/config.h delete mode 100644 users/hvp/hvp.c delete mode 100644 users/hvp/hvp.h delete mode 100644 users/hvp/per_key.c delete mode 100644 users/hvp/readme.md delete mode 100644 users/hvp/rules.mk delete mode 100644 users/hvp/tap_dances.c delete mode 100644 users/hvp/tap_dances.h delete mode 100644 users/ibnuda/abstraction.c delete mode 100644 users/ibnuda/abstraction.h delete mode 100644 users/ibnuda/combo.c delete mode 100644 users/ibnuda/combo.h delete mode 100644 users/ibnuda/config.h delete mode 100644 users/ibnuda/ibnuda.c delete mode 100644 users/ibnuda/ibnuda.h delete mode 100644 users/ibnuda/readme.md delete mode 100644 users/ibnuda/rules.mk delete mode 100644 users/ibnuda/wrapper.h delete mode 100644 users/imchipwood/imchipwood.c delete mode 100644 users/imchipwood/imchipwood.h delete mode 100644 users/imchipwood/rules.mk delete mode 100755 users/ishtob/config.h delete mode 100644 users/ishtob/ishtob.c delete mode 100644 users/ishtob/ishtob.h delete mode 100644 users/ishtob/readme.md delete mode 100755 users/ishtob/rules.mk delete mode 100644 users/issmirnov/config.h delete mode 100644 users/issmirnov/issmirnov.c delete mode 100644 users/issmirnov/issmirnov.h delete mode 100644 users/issmirnov/rows.h delete mode 100644 users/issmirnov/rules.mk delete mode 100644 users/issmirnov/tap_tog.c delete mode 100644 users/issmirnov/tap_tog.h delete mode 100644 users/jackhumbert/jackhumbert.c delete mode 100644 users/jackhumbert/jackhumbert.h delete mode 100644 users/jackhumbert/readme.md delete mode 100644 users/jackhumbert/rules.mk delete mode 100644 users/jarred/config.h delete mode 100644 users/jarred/jarred.c delete mode 100644 users/jarred/jarred.h delete mode 100644 users/jarred/readme.md delete mode 100644 users/jarred/rules.mk delete mode 100644 users/jdelkins/.gitignore delete mode 100644 users/jdelkins/jdelkins.c delete mode 100644 users/jdelkins/jdelkins.h delete mode 100644 users/jdelkins/rules.mk delete mode 100644 users/jjerrell/.gitignore delete mode 100644 users/jjerrell/config.h delete mode 100644 users/jjerrell/jjerrell.c delete mode 100644 users/jjerrell/jjerrell.h delete mode 100644 users/jjerrell/process_records.c delete mode 100644 users/jjerrell/process_records.h delete mode 100644 users/jjerrell/readme.md delete mode 100644 users/jjerrell/rules.mk delete mode 100644 users/jjerrell/wrappers.h delete mode 100644 users/jonavin/config.h delete mode 100644 users/jonavin/jonavin.c delete mode 100644 users/jonavin/jonavin.h delete mode 100644 users/jonavin/jonavin_encoder.c delete mode 100644 users/jonavin/readme.md delete mode 100644 users/jonavin/rules.mk delete mode 100644 users/kageurufu/config.h delete mode 100644 users/kageurufu/custom_rgb.c delete mode 100644 users/kageurufu/custom_rgb.h delete mode 100644 users/kageurufu/kageurufu.c delete mode 100644 users/kageurufu/kageurufu.h delete mode 100644 users/kageurufu/layouts.h delete mode 100644 users/kageurufu/process_records.c delete mode 100644 users/kageurufu/process_records.h delete mode 100644 users/kageurufu/readme.md delete mode 100644 users/kageurufu/rules.mk delete mode 100644 users/klackygears/klackygears.c delete mode 100644 users/klackygears/klackygears.h delete mode 100644 users/klackygears/readme.md delete mode 100644 users/klackygears/rules.mk delete mode 100644 users/klackygears/tap_dances.c delete mode 100644 users/klackygears/tap_dances.h delete mode 100644 users/klackygears/wrappers.h delete mode 100644 users/konstantin/config.h delete mode 100644 users/konstantin/konstantin.c delete mode 100644 users/konstantin/konstantin.h delete mode 100644 users/konstantin/post_config.h delete mode 100644 users/konstantin/rgb.c delete mode 100644 users/konstantin/rgb.h delete mode 100644 users/konstantin/rules.mk delete mode 100644 users/konstantin/tap_dance.c delete mode 100644 users/konstantin/tap_dance.h delete mode 100644 users/konstantin/unicode.c delete mode 100644 users/konstantin/unicode.h delete mode 100644 users/kuatsure/kuatsure.c delete mode 100644 users/kuatsure/kuatsure.h delete mode 100644 users/kuatsure/readme.md delete mode 100644 users/kuatsure/rules.mk delete mode 100644 users/kuchosauronad0/.gitignore delete mode 100644 users/kuchosauronad0/combo.c delete mode 100644 users/kuchosauronad0/combo.h delete mode 100644 users/kuchosauronad0/config.h delete mode 100644 users/kuchosauronad0/encoder.c delete mode 100644 users/kuchosauronad0/encoder.h delete mode 100644 users/kuchosauronad0/kuchosauronad0.c delete mode 100644 users/kuchosauronad0/kuchosauronad0.h delete mode 100644 users/kuchosauronad0/leader_user.c delete mode 100644 users/kuchosauronad0/leader_user.h delete mode 100644 users/kuchosauronad0/process_records.c delete mode 100644 users/kuchosauronad0/process_records.h delete mode 100644 users/kuchosauronad0/readme.md delete mode 100644 users/kuchosauronad0/rgblight_user.c delete mode 100644 users/kuchosauronad0/rgblight_user.h delete mode 100644 users/kuchosauronad0/rules.mk delete mode 100644 users/kuchosauronad0/tap_dances.c delete mode 100644 users/kuchosauronad0/tap_dances.h delete mode 100644 users/kuchosauronad0/template.c delete mode 100644 users/kuchosauronad0/template.h delete mode 100644 users/kuchosauronad0/unicode.c delete mode 100644 users/kuchosauronad0/unicode.h delete mode 100644 users/kuchosauronad0/wrappers.h delete mode 100644 users/losinggeneration/README.md delete mode 100644 users/losinggeneration/losinggeneration-common.h delete mode 100644 users/losinggeneration/losinggeneration-config.h delete mode 100644 users/losinggeneration/losinggeneration-keymap.h delete mode 100644 users/losinggeneration/rules.mk delete mode 100644 users/manna-harbour_miryoku/config.h delete mode 100644 users/manna-harbour_miryoku/custom_config.h delete mode 100644 users/manna-harbour_miryoku/custom_rules.mk delete mode 100644 users/manna-harbour_miryoku/manna-harbour_miryoku.c delete mode 100644 users/manna-harbour_miryoku/manna-harbour_miryoku.h delete mode 100644 users/manna-harbour_miryoku/miryoku_babel/miryoku_layer_alternatives.h delete mode 100644 users/manna-harbour_miryoku/miryoku_babel/miryoku_layer_list.h delete mode 100644 users/manna-harbour_miryoku/miryoku_babel/miryoku_layer_selection.h delete mode 100644 users/manna-harbour_miryoku/post_rules.mk delete mode 100644 users/manna-harbour_miryoku/readme.org delete mode 100644 users/manna-harbour_miryoku/rules.mk delete mode 100644 users/mattly/config.h delete mode 100644 users/mattly/mattly.c delete mode 100644 users/mattly/mattly.h delete mode 100644 users/mattly/readme.md delete mode 100644 users/mattly/rules.mk delete mode 100644 users/mechmerlin/changelog.md delete mode 100644 users/mechmerlin/config.h delete mode 100644 users/mechmerlin/mechmerlin.c delete mode 100644 users/mechmerlin/mechmerlin.h delete mode 100644 users/mechmerlin/readme.md delete mode 100644 users/mechmerlin/rules.mk delete mode 100644 users/mguterl/config.h delete mode 100644 users/mguterl/mguterl.c delete mode 100644 users/mguterl/mguterl.h delete mode 100644 users/mguterl/readme.md delete mode 100644 users/mguterl/rules.mk delete mode 100644 users/miketronic/config.h delete mode 100644 users/miketronic/miketronic.c delete mode 100644 users/miketronic/miketronic.h delete mode 100644 users/miketronic/process_records.c delete mode 100644 users/miketronic/process_records.h delete mode 100644 users/miketronic/readme.md delete mode 100644 users/miketronic/rules.mk delete mode 100644 users/miketronic/tapdances.c delete mode 100644 users/miketronic/tapdances.h delete mode 100644 users/miketronic/wrappers.h delete mode 100644 users/miles2go/babblePaste.c delete mode 100644 users/miles2go/babblePaste.h delete mode 100644 users/miles2go/babblePaste.md delete mode 100644 users/miles2go/babl_chromeos.c delete mode 100644 users/miles2go/babl_emacs.c delete mode 100644 users/miles2go/babl_kitty.c delete mode 100644 users/miles2go/babl_linux.c delete mode 100644 users/miles2go/babl_mac.c delete mode 100644 users/miles2go/babl_nano.c delete mode 100644 users/miles2go/babl_readmux.c delete mode 100644 users/miles2go/babl_vi.c delete mode 100644 users/miles2go/babl_windows.c delete mode 100644 users/miles2go/config.h delete mode 100644 users/miles2go/keymaps/handwired/ms_sculpt_mobile/config.h delete mode 100644 users/miles2go/keymaps/handwired/ms_sculpt_mobile/keymap.c delete mode 100644 users/miles2go/keymaps/handwired/ms_sculpt_mobile/readme.md delete mode 100644 users/miles2go/keymaps/handwired/ms_sculpt_mobile/rules.mk delete mode 100644 users/miles2go/milestogo.c delete mode 100644 users/miles2go/milestogo.h delete mode 100644 users/miles2go/readme.md delete mode 100644 users/miles2go/rules.mk delete mode 100644 users/mnil/config.h delete mode 100644 users/mnil/mnil.c delete mode 100644 users/mnil/mnil.h delete mode 100644 users/mnil/readme.md delete mode 100644 users/mnil/rules.mk delete mode 100644 users/moults31/gdb.c delete mode 100644 users/moults31/gdb.h delete mode 100644 users/moults31/moults31.c delete mode 100644 users/moults31/moults31.h delete mode 100644 users/moults31/obs.c delete mode 100644 users/moults31/obs.h delete mode 100644 users/moults31/readme.md delete mode 100644 users/moults31/rules.mk delete mode 100644 users/moults31/vscode.c delete mode 100644 users/moults31/vscode.h delete mode 100644 users/mtei/config.h delete mode 100644 users/mtei/cpp_map.h delete mode 100644 users/mtei/debug_config.h delete mode 100644 users/mtei/encoder_update_user.c delete mode 100644 users/mtei/key_blocks.h delete mode 100644 users/mtei/layer_number_util.h delete mode 100644 users/mtei/matrix_output_unselect_delay_ondemand.c delete mode 100644 users/mtei/oled_display.c delete mode 100644 users/mtei/pseudo_sprintf.c delete mode 100644 users/mtei/pseudo_sprintf.h delete mode 100644 users/mtei/rules.mk delete mode 100644 users/mtei/user_featues.mk delete mode 100644 users/mtei/user_options.mk delete mode 100644 users/muppetjones/.clang-format delete mode 100644 users/muppetjones/config.h delete mode 100644 users/muppetjones/features/casemodes.c delete mode 100644 users/muppetjones/features/casemodes.h delete mode 100644 users/muppetjones/features/combos.c delete mode 100644 users/muppetjones/features/combos.h delete mode 100644 users/muppetjones/features/dancelayers.c delete mode 100644 users/muppetjones/features/dancelayers.h delete mode 100644 users/muppetjones/features/etchamouse.c delete mode 100644 users/muppetjones/features/etchamouse.h delete mode 100644 users/muppetjones/features/rgblayers.c delete mode 100644 users/muppetjones/features/rgblayers.h delete mode 100644 users/muppetjones/muppetjones.c delete mode 100644 users/muppetjones/muppetjones.h delete mode 100644 users/muppetjones/readme.md delete mode 100644 users/muppetjones/readme/dancelayers.md delete mode 100644 users/muppetjones/readme/etchamouse.md delete mode 100644 users/muppetjones/readme/rgblayers.md delete mode 100644 users/muppetjones/readme/tapmods.md delete mode 100644 users/muppetjones/readme/wrappers.md delete mode 100644 users/muppetjones/rules.mk delete mode 100644 users/muppetjones/tapmods.h delete mode 100644 users/muppetjones/wrappers.h delete mode 100644 users/mverteuil/.gitignore delete mode 100644 users/mverteuil/mverteuil.c delete mode 100644 users/mverteuil/mverteuil.h delete mode 100644 users/mverteuil/rules.mk delete mode 100644 users/narze/narze.c delete mode 100644 users/narze/narze.h delete mode 100644 users/narze/readme.md delete mode 100644 users/narze/rules.mk delete mode 100644 users/narze/superduper.c delete mode 100644 users/narze/superduper.h delete mode 100644 users/nchristus/nchristus.c delete mode 100644 users/nchristus/nchristus.h delete mode 100644 users/nchristus/rules.mk delete mode 100644 users/ninjonas/.gitignore delete mode 100644 users/ninjonas/README.md delete mode 100644 users/ninjonas/combos.c delete mode 100644 users/ninjonas/config.h delete mode 100644 users/ninjonas/encoder.c delete mode 100644 users/ninjonas/ninjonas.c delete mode 100644 users/ninjonas/ninjonas.h delete mode 100644 users/ninjonas/oled.c delete mode 100644 users/ninjonas/process_records.c delete mode 100644 users/ninjonas/process_records.h delete mode 100644 users/ninjonas/rules.mk delete mode 100644 users/ninjonas/tap_dances.c delete mode 100644 users/ninjonas/tap_dances.h delete mode 100644 users/noroadsleft/noroadsleft.c delete mode 100644 users/noroadsleft/noroadsleft.h delete mode 100644 users/noroadsleft/readme.md delete mode 100644 users/noroadsleft/rules.mk delete mode 100644 users/not-quite-neo/nqn-basic-layout.h delete mode 100644 users/not-quite-neo/nqn-common.h delete mode 100644 users/not-quite-neo/nqn-keys-on-quertz-de-latin1.h delete mode 100644 users/not-quite-neo/readme.md delete mode 100644 users/nstickney/config.h delete mode 100644 users/nstickney/nstickney.c delete mode 100644 users/nstickney/nstickney.h delete mode 100644 users/nstickney/readme.md delete mode 100644 users/nstickney/rules.mk delete mode 100644 users/nstickney/unicodemap.h delete mode 100644 users/ollyhayes/ollyhayes.c delete mode 100644 users/ollyhayes/ollyhayes.h delete mode 100644 users/ollyhayes/rules.mk delete mode 100644 users/pcewing/README.md delete mode 100644 users/pcewing/key_repeater.c delete mode 100644 users/pcewing/key_repeater.h delete mode 100644 users/pcewing/rules.mk delete mode 100644 users/pdl/pdl.c delete mode 100644 users/pdl/pdl.h delete mode 100644 users/pdl/rules.mk delete mode 100644 users/peej/layout.h delete mode 100644 users/peej/peej.c delete mode 100644 users/peej/peej.h delete mode 100644 users/peej/rules.mk delete mode 100644 users/peterfalken/config.h delete mode 100644 users/peterfalken/peterfalken.c delete mode 100644 users/peterfalken/peterfalken.h delete mode 100644 users/peterfalken/readme.md delete mode 100644 users/peterfalken/rules.mk delete mode 100644 users/pvinis/config.h delete mode 100644 users/pvinis/pvinis.c delete mode 100644 users/pvinis/pvinis.h delete mode 100644 users/pvinis/rules.mk delete mode 100644 users/riblee/readme.md delete mode 100644 users/riblee/riblee.c delete mode 100644 users/riblee/riblee.h delete mode 100644 users/riblee/rules.mk delete mode 100644 users/ridingqwerty/config.h delete mode 100644 users/ridingqwerty/dict.h delete mode 100644 users/ridingqwerty/process_records.c delete mode 100644 users/ridingqwerty/process_records.h delete mode 100644 users/ridingqwerty/ridingqwerty.c delete mode 100644 users/ridingqwerty/ridingqwerty.h delete mode 100644 users/ridingqwerty/rules.mk delete mode 100644 users/ridingqwerty/tapdances.c delete mode 100644 users/ridingqwerty/tapdances.h delete mode 100644 users/ridingqwerty/unicode.c delete mode 100644 users/ridingqwerty/unicode.h delete mode 100644 users/ridingqwerty/wrappers.h delete mode 100644 users/rishka/rishka.c delete mode 100644 users/rishka/rishka.h delete mode 100644 users/rishka/rules.mk delete mode 100644 users/rmeli/.gitignore delete mode 100644 users/rmeli/config.h delete mode 100644 users/rmeli/keyrecords/tap_dances.c delete mode 100644 users/rmeli/keyrecords/tap_dances.h delete mode 100644 users/rmeli/keyrecords/unicode.h delete mode 100644 users/rmeli/keyrecords/wrappers.h delete mode 100644 users/rmeli/oled/oled.c delete mode 100644 users/rmeli/oled/oled.h delete mode 100644 users/rmeli/readme.md delete mode 100644 users/rmeli/rmeli.h delete mode 100644 users/rmeli/rules.mk delete mode 100644 users/rmw/encoder_functions.c delete mode 100644 users/rmw/encoder_functions.h delete mode 100644 users/rmw/rmw.c delete mode 100644 users/rmw/rmw.h delete mode 100644 users/rmw/rules.mk delete mode 100644 users/rmw/tapdances.c delete mode 100644 users/rmw/tapdances.h delete mode 100644 users/romus/README.md delete mode 100644 users/romus/config.h delete mode 100644 users/romus/romus.c delete mode 100644 users/romus/romus.h delete mode 100644 users/romus/rules.mk delete mode 100644 users/rossman360/readme.md delete mode 100644 users/rossman360/rossman360.c delete mode 100644 users/rossman360/rossman360.h delete mode 100644 users/rossman360/rules.mk delete mode 100644 users/rs/karabiner.json delete mode 100644 users/rs/readme.md delete mode 100644 users/rs/rs.c delete mode 100644 users/rs/rs.h delete mode 100644 users/rs/rules.mk delete mode 100644 users/rupa/config.h delete mode 100644 users/rupa/process_records.c delete mode 100644 users/rupa/process_records.h delete mode 100644 users/rupa/readme.md delete mode 100644 users/rupa/rules.mk delete mode 100644 users/rupa/rupa.c delete mode 100644 users/rupa/rupa.h delete mode 100644 users/rupa/unicode.c delete mode 100644 users/rupa/unicode.h delete mode 100644 users/rupa/wrappers.h delete mode 100644 users/rverst/config.h delete mode 100644 users/rverst/readme.md delete mode 100644 users/rverst/rules.mk delete mode 100644 users/rverst/rverst.c delete mode 100644 users/rverst/rverst.h delete mode 100644 users/rverst/unicode.h delete mode 100644 users/scheiklp/koy_keys_on_quertz_de_latin1.h delete mode 100644 users/scotto/config.h delete mode 100644 users/scotto/readme.md delete mode 100644 users/scotto/rules.mk delete mode 100644 users/scotto/scotto.c delete mode 100644 users/scotto/scotto.h delete mode 100644 users/scotto/tap_dance.c delete mode 100644 users/scotto/tap_dance.h delete mode 100644 users/sethBarberee/config.h delete mode 100644 users/sethBarberee/readme.md delete mode 100644 users/sethBarberee/rgb_light.c delete mode 100644 users/sethBarberee/rgb_light.h delete mode 100644 users/sethBarberee/rules.mk delete mode 100644 users/sethBarberee/sethBarberee.c delete mode 100644 users/sethBarberee/sethBarberee.h delete mode 100644 users/sethBarberee/tap_dance.c delete mode 100644 users/sethBarberee/tap_dance.h delete mode 100644 users/sethBarberee/wrappers.h delete mode 100644 users/sigma/config.h delete mode 100644 users/sigma/rules.mk delete mode 100644 users/sigma/sigma.c delete mode 100644 users/sigma/sigma.h delete mode 100644 users/sigul/.gitignore delete mode 100644 users/sigul/README.md delete mode 100644 users/sigul/config.h delete mode 100644 users/sigul/rules.mk delete mode 100644 users/sigul/sigul.c delete mode 100644 users/sigul/sigul.h delete mode 100644 users/snowe/luna.c delete mode 100644 users/snowe/luna.h delete mode 100644 users/snowe/ocean_dream.c delete mode 100644 users/snowe/ocean_dream.h delete mode 100644 users/snowe/oled_setup.c delete mode 100644 users/snowe/oled_setup.h delete mode 100644 users/snowe/readme.md delete mode 100644 users/snowe/readme_ocean_dream.md delete mode 100644 users/snowe/rules.mk delete mode 100644 users/snowe/snowe.h delete mode 100644 users/snowe/wrappers.h delete mode 100644 users/spacebarracecar/config.h delete mode 100644 users/spacebarracecar/readme.md delete mode 100644 users/spacebarracecar/rules.mk delete mode 100644 users/spacebarracecar/spacebarracecar.c delete mode 100644 users/spacebarracecar/spacebarracecar.h delete mode 100644 users/spidey3/config.h delete mode 100644 users/spidey3/init.c delete mode 100644 users/spidey3/layer_rgb.c delete mode 100644 users/spidey3/readme.md delete mode 100644 users/spidey3/rules.mk delete mode 100644 users/spidey3/spidey3.c delete mode 100644 users/spidey3/spidey3.h delete mode 100644 users/spidey3/spidey3_unicode.c delete mode 100644 users/spidey3/spidey3_unicode.h delete mode 100644 users/spotpuff/rules.mk delete mode 100644 users/stanrc85/config.h delete mode 100644 users/stanrc85/indicator_layers_sneakbox.c delete mode 100644 users/stanrc85/layer_rgb.c delete mode 100644 users/stanrc85/readme.md delete mode 100644 users/stanrc85/rgb_layers.c delete mode 100644 users/stanrc85/rgb_timeout.c delete mode 100644 users/stanrc85/rgblight_layers.c delete mode 100644 users/stanrc85/rgblight_layers_osa.c delete mode 100644 users/stanrc85/rules.mk delete mode 100644 users/stanrc85/stanrc85.c delete mode 100644 users/stanrc85/stanrc85.h delete mode 100644 users/stanrc85/startup_fanfare.c delete mode 100644 users/talljoe/config.h delete mode 100644 users/talljoe/macros.c delete mode 100644 users/talljoe/macros.h delete mode 100644 users/talljoe/readme.md delete mode 100644 users/talljoe/rules.mk delete mode 100644 users/talljoe/talljoe.c delete mode 100644 users/talljoe/talljoe.h delete mode 100644 users/talljoe/tapdance/actions/td.function.c delete mode 100644 users/talljoe/tapdance/actions/td.grave.c delete mode 100644 users/talljoe/tapdance/actions/td.lock.c delete mode 100644 users/talljoe/tapdance/actions/td.semicolon.c delete mode 100644 users/talljoe/tapdance/tapdance.h delete mode 100644 users/talljoe/tapdance/tapdance_actions.c delete mode 100644 users/talljoe/tapdance/td_setup.c delete mode 100644 users/talljoe/tapdance/td_setup.h delete mode 100644 users/toinux/keymap_qwerty_fr.h delete mode 100644 users/tominabox1/.gitignore delete mode 100644 users/tominabox1/config.h delete mode 100644 users/tominabox1/dimple_rgb.c delete mode 100644 users/tominabox1/doug.c delete mode 100644 users/tominabox1/readme.md delete mode 100644 users/tominabox1/rules.mk delete mode 100644 users/tominabox1/tominabox1.c delete mode 100644 users/tominabox1/tominabox1.h delete mode 100644 users/tominabox1/wrappers.h delete mode 100644 users/turbomech/backupturbomech.c delete mode 100644 users/turbomech/turbomech.c delete mode 100644 users/turbomech/turbomech.h delete mode 100644 users/twschum/config.h delete mode 100644 users/twschum/readme.md delete mode 100644 users/twschum/rules.mk delete mode 100644 users/twschum/twschum.c delete mode 100644 users/twschum/twschum.h delete mode 100644 users/twschum/xtonhasvim.c delete mode 100644 users/twschum/xtonhasvim.h delete mode 100644 users/uqs/config.h delete mode 100644 users/uqs/rules.mk delete mode 100644 users/uqs/uqs.c delete mode 100644 users/uqs/uqs.h delete mode 100644 users/vitoni/readme.adoc delete mode 100644 users/vitoni/rgb_matrix_effects.c delete mode 100644 users/vitoni/rgb_matrix_effects.h delete mode 100644 users/vitoni/rules.mk delete mode 100644 users/vitoni/utils.c delete mode 100644 users/vitoni/utils.h delete mode 100644 users/vitoni/vitoni.c delete mode 100644 users/vitoni/vitoni.h delete mode 100644 users/vnmm/config.h delete mode 100644 users/vnmm/keymap_user.h delete mode 100644 users/vnmm/readme.md delete mode 100644 users/vnmm/rgb_matrix_user.c delete mode 100644 users/vnmm/rgb_matrix_user.h delete mode 100644 users/vnmm/rules.mk delete mode 100644 users/vnmm/vnmm.c delete mode 100644 users/vnmm/vnmm.h delete mode 100644 users/vosechu/config.h delete mode 100644 users/vosechu/readme.md delete mode 100644 users/vosechu/rules.mk delete mode 100644 users/vosechu/vosechu.c delete mode 100644 users/vosechu/vosechu.h delete mode 100644 users/wanleg/config.h delete mode 100644 users/wanleg/readme.md delete mode 100644 users/wanleg/rules.mk delete mode 100644 users/wanleg/tapdances.c delete mode 100644 users/wanleg/wanleg.c delete mode 100644 users/wanleg/wanleg.h delete mode 100644 users/xtonhasvim/fancylighting.c delete mode 100644 users/xtonhasvim/fancylighting.h delete mode 100644 users/xtonhasvim/readme.md delete mode 100644 users/xtonhasvim/rules.mk delete mode 100644 users/xtonhasvim/xtonhasvim.c delete mode 100644 users/xtonhasvim/xtonhasvim.h delete mode 100644 users/xulkal/config.h delete mode 100644 users/xulkal/custom_encoder.c delete mode 100644 users/xulkal/custom_encoder.h delete mode 100644 users/xulkal/custom_keycodes.h delete mode 100644 users/xulkal/custom_oled.c delete mode 100644 users/xulkal/custom_oled.h delete mode 100644 users/xulkal/custom_rgb.c delete mode 100644 users/xulkal/custom_rgb.h delete mode 100644 users/xulkal/custom_tap_dance.c delete mode 100644 users/xulkal/custom_tap_dance.h delete mode 100644 users/xulkal/layouts.h delete mode 100644 users/xulkal/process_records.c delete mode 100644 users/xulkal/process_records.h delete mode 100644 users/xulkal/rules.mk delete mode 100644 users/xulkal/xulkal.c delete mode 100644 users/xulkal/xulkal.h delete mode 100644 users/yanfali/config.h delete mode 100644 users/yanfali/rules.mk delete mode 100644 users/yet-another-developer/.gitignore delete mode 100644 users/yet-another-developer/README.md delete mode 100644 users/yet-another-developer/combo.c delete mode 100644 users/yet-another-developer/combo.h delete mode 100644 users/yet-another-developer/config.h delete mode 100644 users/yet-another-developer/leader_user.c delete mode 100644 users/yet-another-developer/leader_user.h delete mode 100644 users/yet-another-developer/process_records.c delete mode 100644 users/yet-another-developer/process_records.h delete mode 100644 users/yet-another-developer/rules.mk delete mode 100644 users/yet-another-developer/tap_dances.c delete mode 100644 users/yet-another-developer/tap_dances.h delete mode 100644 users/yet-another-developer/unicode.c delete mode 100644 users/yet-another-developer/unicode.h delete mode 100644 users/yet-another-developer/wrappers.h delete mode 100644 users/yet-another-developer/yet-another-developer.c delete mode 100644 users/yet-another-developer/yet-another-developer.h delete mode 100644 users/zer09/config.h delete mode 100644 users/zer09/lights.c delete mode 100644 users/zer09/lights.h delete mode 100644 users/zer09/rules.mk delete mode 100644 users/zer09/tap_dance.c delete mode 100644 users/zer09/tap_dance.h delete mode 100644 users/zer09/zer09.c delete mode 100644 users/zer09/zer09.h delete mode 100644 users/zigotica/combos.c delete mode 100644 users/zigotica/combos.h delete mode 100644 users/zigotica/rows.h delete mode 100644 users/zigotica/rules.mk delete mode 100644 users/zigotica/tapdances.c delete mode 100644 users/zigotica/tapdances.h delete mode 100644 users/zigotica/zigotica.c delete mode 100644 users/zigotica/zigotica.h delete mode 100644 users/zyber/config.h delete mode 100644 users/zyber/rules.mk delete mode 100644 users/zyber/zyber.c delete mode 100644 users/zyber/zyber.h diff --git a/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/config.h b/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/config.h deleted file mode 100644 index 65293382cf..0000000000 --- a/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright 2018 Chuck "@vosechu" Lauer Vose - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -// place overrides here diff --git a/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/keymap.c b/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/keymap.c deleted file mode 100644 index eeca330838..0000000000 --- a/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/keymap.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright 2018 Chuck "@vosechu" Lauer Vose - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -#define SPACEFN LT(1, KC_SPC) -#define CTL_GRV CTL_T(KC_GRV) -#define ALT_TAB ALT_T(KC_TAB) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_ansi( - KC_ESC , 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_BSPC , - 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_CAPS , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_QUOT , KC_ENT , - KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_RSFT , - CTL_GRV , ALT_TAB , KC_LGUI , SPACEFN , KC_RALT , KC_RGUI , MO(1) , KC_RCTL - ), - - [1] = LAYOUT_60_ansi( - 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_DEL , - KC_TRNS , KC_TRNS , KC_UP , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_PSCR , KC_SCRL , KC_PAUS , KC_TRNS , - KC_TRNS , KC_LEFT , KC_DOWN , KC_RGHT , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_INS , KC_HOME , KC_PGUP , KC_TRNS , - KC_TRNS , KC_VOLU , KC_VOLD , KC_MUTE , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_END , KC_PGDN , KC_TRNS , - KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , MO(2) , KC_TRNS , KC_TRNS - ), - - [2] = LAYOUT_60_ansi( - 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 , QK_BOOT, - BL_TOGG , BL_UP , BL_DOWN , BL_STEP , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , - RGB_TOG , RGB_MOD , RGB_HUI , RGB_SAI , RGB_VAI , RGB_SPI , RGB_M_P , RGB_M_B , RGB_M_R , RGB_M_SW , KC_TRNS , KC_TRNS , KC_TRNS , - KC_TRNS , RGB_RMOD , RGB_HUD , RGB_SAD , RGB_VAD , RGB_SPD , RGB_M_SN , RGB_M_K , RGB_M_X , RGB_M_G , KC_TRNS , KC_TRNS , - KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS - ) -}; diff --git a/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/readme.md b/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/readme.md deleted file mode 100644 index 97e9453b7c..0000000000 --- a/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/readme.md +++ /dev/null @@ -1,6 +0,0 @@ -# 1up60hse keymap made by vosechu - -Tweaks from default - -* Add in SpaceFN so arrows are reachable with just left hand (leaving right free for mousing). -* Also add tab/grv under the alt/ctrl keys to make those easier to reach. diff --git a/keyboards/1upkeyboards/1up60hte/keymaps/badger/keymap.c b/keyboards/1upkeyboards/1up60hte/keymaps/badger/keymap.c deleted file mode 100644 index 197c449122..0000000000 --- a/keyboards/1upkeyboards/1up60hte/keymaps/badger/keymap.c +++ /dev/null @@ -1,59 +0,0 @@ -/* -Copyright 2020 Dan White - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#include "badger.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY_MAC] = LAYOUT_tsangan( - KC_GRV, 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_BSPC, KC_DEL, - 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, - MOVE_MAC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, CFG_MAC, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, ADJUST, KC_RALT, KC_RGUI), - - [_MOVE_MAC] = LAYOUT_tsangan( - MAC_FRC, MM_LEFT, MM_RGHT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_0, IJ_TOP, IJ_BOTT, _______, _______, - KC_BACK, IJ_STEP, IJ_INTO, IJ_OUT, IJ_RUN, IJ_STOP, _______, WD_BACK, KC_HOME, KC_END, WD_FRWD, IJ_BACK, IJ_FWD, KC_NEXT, - _______, MM_LH, MM_MAX, MM_RH, IJ_FIND, IJ_IMPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CM_RIGHT, CM_DOWN, _______, - _______, MM_UH, MM_BH, MAC_CPY, MAC_PST, IJ_IMPH, _______, IJ_REN, IJ_IMPL, IJ_DECL, IJ_USAG, _______, _______, - _______, _______, _______, _______, _______, _______, _______), - - [_QWERTY_LINUX] = LAYOUT_tsangan( - KC_GRV, 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_BSPC, KC_DEL, - 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, - MOVE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, CFG_LNX, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, ADJUST, KC_RALT, KC_RGUI), - - [_MOVE_LINUX] = LAYOUT_tsangan( - KC_GRV, VD_1, VD_2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - KC_BACK, WM_VD1, WM_UH, WM_VD2, QK_BOOT, KC_MSTP, KC_MPLY, KC_PGUP, KC_HOME, KC_END, KC_PGDN, _______, _______, KC_NEXT, - _______, WM_LH, WM_MAX, WM_RH, WD_FRWD, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CS_RIGHT, CS_DOWN, _______, - _______, WM_VD3, WM_BH, OS_COPY, OS_PAST, WD_BACK, KC_MNXT, KC_MUTE, KC_WBAK, KC_WFWD, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______), - - [_ADJUST] = LAYOUT_tsangan( - KC_ESC, 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_WREF, KC_MSTP, KC_MPLY, KC_PGUP, _______, _______, KC_PGDN, KC_VOLD, KC_VOLU, KC_INS, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, KC_CAPS, _______, KC_MPRV, KC_MNXT, KC_MUTE, KC_WBAK, KC_WFWD, KC_WSCH, _______, _______, - _______, _______, _______, _______, _______, _______, _______), - - [_CONFIG] = LAYOUT_tsangan( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - _______, NK_ON, NK_OFF, EE_CLR, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, - _______, GE_SWAP, GE_NORM, DB_TOGG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_SPI, RGB_M_B, _______, _______, RGB_TOG, _______, - _______, DF_1, DF_2, _______, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_SPD, RGB_M_K, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______) -}; diff --git a/keyboards/1upkeyboards/1up60rgb/keymaps/badger/keymap.c b/keyboards/1upkeyboards/1up60rgb/keymaps/badger/keymap.c deleted file mode 100644 index 214316cd65..0000000000 --- a/keyboards/1upkeyboards/1up60rgb/keymaps/badger/keymap.c +++ /dev/null @@ -1,59 +0,0 @@ -/* -Copyright 2020 Dan White -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#include "badger.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY_MAC] = LAYOUT_60_ansi_tsangan_split_rshift( - KC_GRV, 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_BSPC, - 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, - MOVE_MAC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, CFG_MAC, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, ADJUST, KC_RALT, KC_RGUI), - - [_MOVE_MAC] = LAYOUT_60_ansi_tsangan_split_rshift( - MAC_FRC, MM_LEFT, MM_RGHT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_0, IJ_TOP, IJ_BOTT, KC_DEL, - KC_BACK, IJ_STEP, IJ_INTO, IJ_OUT, IJ_RUN, IJ_STOP, _______, WD_BACK, KC_HOME, KC_END, WD_FRWD, IJ_BACK, IJ_FWD, KC_NEXT, - _______, MM_LH, MM_MAX, MM_RH, IJ_FIND, IJ_IMPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CM_RIGHT, CM_DOWN, _______, - _______, MM_UH, MM_BH, MAC_CPY, MAC_PST, IJ_IMPH, _______, IJ_REN, IJ_IMPL, IJ_DECL, IJ_USAG, _______, _______, - _______, _______, _______, _______, _______, _______, _______), - - [_QWERTY_LINUX] = LAYOUT_60_ansi_tsangan_split_rshift( - KC_GRV, 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_BSPC, - 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, - MOVE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, CFG_LNX, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, ADJUST, KC_LALT, KC_RGUI), - - [_MOVE_LINUX] = LAYOUT_60_ansi_tsangan_split_rshift( - KC_GRV, VD_1, VD_2, VD_3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - KC_BACK, WM_VD1, WM_UH, WM_VD2, QK_BOOT, KC_MSTP, KC_MPLY, KC_PGUP, KC_HOME, KC_END, KC_PGDN, _______, _______, KC_NEXT, - _______, WM_LH, WM_MAX, WM_RH, WD_FRWD, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CS_RIGHT, CS_DOWN, _______, - _______, WM_VD3, WM_BH, OS_COPY, OS_PAST, WD_BACK, KC_MNXT, KC_MUTE, KC_WBAK, KC_WFWD, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______), - - [_ADJUST] = LAYOUT_60_ansi_tsangan_split_rshift( - KC_ESC, 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_DEL, - _______, _______, _______, _______, KC_WREF, KC_MSTP, KC_MPLY, KC_PGUP, _______, _______, KC_PGDN, KC_VOLD, KC_VOLU, KC_INS, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, DF_1, DF_2, KC_CAPS, _______, KC_MPRV, KC_MNXT, KC_MUTE, KC_WBAK, KC_WFWD, KC_WSCH, _______, _______, - _______, _______, _______, _______, _______, _______, _______), - - [_CONFIG] = LAYOUT_60_ansi_tsangan_split_rshift( - _______, 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_DEL, - _______, NK_ON, NK_OFF, EE_CLR, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, - _______, GE_SWAP, GE_NORM, DB_TOGG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_SPI, RGB_M_B, _______, _______, RGB_TOG, _______, - _______, LAG_SWP, LAG_NRM, _______, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_SPD, RGB_M_K, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______) -}; - diff --git a/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/config.h b/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/config.h deleted file mode 100644 index 834b7ee0ab..0000000000 --- a/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/config.h +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2023 @miketronic -- Mike B -// SPDX-License-Identifier: GPL-2.0+ - -#pragma once - -# define TAPPING_TERM 160 -# define TAPPING_TERM_PER_KEY -# define HOLD_ON_OTHER_KEY_PRESS -# define QUICK_TAP_TERM TAPPING_TERM / 2 -# define QUICK_TAP_TERM_PER_KEY - - - diff --git a/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/keymap.c b/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/keymap.c deleted file mode 100644 index 636aad675b..0000000000 --- a/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/keymap.c +++ /dev/null @@ -1,290 +0,0 @@ -// Copyright 2023 @miketronic -- Mike B -// SPDX-License-Identifier: GPL-2.0+ - -#include "miketronic.h" - - - - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* Workman - * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐ - * │ TAB │ Q │ D │ R │ W │ B │ │ J │ F │ U │ P │ BSPC│ BSPC│ - * │ ESC │ ESC │ │ │ │ SYM │ │ SYM │ │ │ │ │ │ - * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤ - * │ TAB │ A │ S │ H ┃ T ┃ G │ │ Y ┃ N ┃ E │ O │ I │ │ - * │SHIFT│ │ │ ┃ EX ┃ │ │ ┃ ┃ │ │ENTER│ENTER│ - * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤ - * │SHIFT| Z │ X │ M │ C │ V │ │ K │ L │ SPC │ SPC │ / │ UP | - * │ │ │ │ │ │ │ │ │ │ , │ . │ │RIGHT| - * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ - * │ FN │CTRL │ OS │ ALT │LOWER│ │ │ │RAISE│ SS │CLIP │COPY │ DN │ - * │ │ │ │ │ │ │ │ │ │ │ │PASTE│LEFT │ - * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘ - */ - - [_WM] = LAYOUT_ortho_4x12_wrapper ( - RGB_TOG, - _____________WORKMAN_412_001_L_____________, _____________WORKMAN_412_001_R_____________, - _____________WORKMAN_412_002_L_____________, _____________WORKMAN_412_002_R_____________, - _____________WORKMAN_412_003_L_____________, _____________WORKMAN_412_003_R_____________, - _____________WORKMAN_412_004_L_____________, _____________WORKMAN_412_004_R_____________ - ), - - [_QW] = LAYOUT_ortho_4x12_wrapper ( - RGB_TOG, - KC_TAB, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC, - KC_ESC, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT, - KC_LSFT, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_ENT, - _____________WORKMAN_412_004_L_____________, _____________WORKMAN_412_004_R_____________ - ), - - - - - /* Lower - * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐ - * │ │ () │ [] │ /\ │ │ │ │ │ 7 │ 8 │ 9 │ │ │ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤ - * │ │ @ # │ & % │ ┃ ┃ │ │ ┃ 4 ┃ 5 │ 6 │ │ │ - * │ │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │ │ - * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤ - * │ │ │ │ │ │ │ │ 0 │ 1 │ 2 │ 3 │ │ UP │ - * │ │ │ │ │ │ │ │ │ │ 0 │ │ │RIGHT│ - * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │ │ │ │LOWER│ │ │ │BPSC │ SPC │ . │ │ DN │ - * │ │ │ │ │ │ │ │ │ │ │ ENT │ │LEFT │ - * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘ - */ - [_LOWER] = LAYOUT_ortho_4x12_wrapper ( - KC_MUTE, - _______________LOWER_412_L1________________, _______________LOWER_412_R1________________, - _______________LOWER_412_L2________________, _______________LOWER_412_R2________________, - _______________LOWER_412_L3________________, _______________LOWER_412_R3________________, - _______________LOWER_412_L4________________, _______________LOWER_412_R4________________ - ), - - - /* RAISE - * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐ - * │BOOT │DEBUG│ │ │ │MAKE │ │ │ │ F7 │ F8 │ F9 │ F10 │ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤ - * │ │ RGB | RGB | RGB ┃ RGB ┃ WM │ │ ┃ / \ ┃ F4 │ F5 │ F6 │ F11 │ - * │ │ TOG │ MOD │ HUI ┃ HUD ┃ │ │ ┃ ┃ │ │ │ │ - * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤ - * │ │ RGB │ RGB │ RGB │ RGB │ QW │ │ │ _ │ F1 | F2 | F3 │ F12 │ - * │ │ SAI │ SAD │ VAI │ VAD │ │ │ │ - │ │ │ │ │ - * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │ │ │ │ │ │ │ │RAISE│ │ │ │ │ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘ - */ - [_RAISE] = LAYOUT_ortho_4x12_wrapper ( - KC_MUTE, - _______________RAISE_412_L1________________, _______________RAISE_412_R1________________, - _______________RAISE_412_L2________________, _______________RAISE_412_R2________________, - _______________RAISE_412_L3________________, _______________RAISE_412_R3________________, - _________________BLANK_6___________________, _________________BLANK_6___________________ - ), - - - /* EXTRAS - * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐ - * │ │ ! │ │ │ │ │ │ │ /\ | [ | ] | ; │ │ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤ - * │SHIFT│ | |EXTRA┃ ┃ │ │ ┃ @ # ┃ & % | | ' | │ - * │ │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │ │ - * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤ - * │ │ │ │ │ │ │ │ │ │ , | . | ? │ │ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘ - */ - [_EX] = LAYOUT_ortho_4x12_wrapper ( - KC_MUTE, - ______________EXTRAS_412_L1________________, ______________EXTRAS_412_R1________________, - ______________EXTRAS_412_L2________________, ______________EXTRAS_412_R2________________, - ______________EXTRAS_412_L3________________, ______________EXTRAS_412_R3________________, - ______________EXTRAS_412_L4________________, ______________EXTRAS_412_R4________________ - ), - - - - /* FUNCTION - * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐ - * │COPY │CLIP │ SS │ │ │ │ │ │ /\ │ UP │ │ │ DEL │ - * │PASTE│ │ │ │ │ │ │ │ │ │ │ │ │ - * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤ - * │TAB │ M05 | M06 | M07 ┃ M08 ┃ │ │ ┃LEFT ┃DOWN │RIGHT│ │UP │ - * │SHIFT│ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │RIGHT│ - * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤ - * │ │ M01 │ M02 │ M03 │ M04 │ │ │ │ │ , | . | ? │DOWN │ - * │ │ │ │ │ │ │ │ │ │ │ │ │LEFT │ - * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │RGB1 │RGB2 │RGB3 │RGB4 │ │ │ │ │ │ │ │ │ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘ - */ - [_FN] = LAYOUT_ortho_4x12_wrapper ( - KC_MUTE, - _____________FUNCTION_412_L1_______________, _____________FUNCTION_412_R1_______________, - _____________FUNCTION_412_L2_______________, _____________FUNCTION_412_R2_______________, - _____________FUNCTION_412_L3_______________, _____________FUNCTION_412_R3_______________, - _____________FUNCTION_412_L4_______________, _____________FUNCTION_412_R4_______________ - ), - - - /* SYMBOLS - * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐ - * │ | $ | ^ | < | > │ SYMB│ │ SYMB│ | | [ | ] | - | | - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤ - * │ | % | : | ; ┃ + ┃ = │ │ ┃ ┃ ( | ) | _ | | - * │ │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │ │ - * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤ - * | | & | ' | " | * | # │ │ ! | ? | / | \ | @ | | - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘ - */ - - [_SYMB] = LAYOUT_ortho_4x12_wrapper ( - KC_MUTE, - _______, _____________SYMBOLS_310_L1________________, _____________SYMBOLS_310_R1________________, _______, - _______, _____________SYMBOLS_310_L2________________, _____________SYMBOLS_310_R2________________, _______, - _______, _____________SYMBOLS_310_L3________________, _____________SYMBOLS_310_R3________________, _______, - _________________BLANK_6___________________, _________________BLANK_6___________________ - ) - -}; - -#ifndef NUM_DIRECTIONS -# define NUM_DIRECTIONS 2 -#endif - -#if defined(ENCODER_MAP_ENABLE) && defined(KEYBOARD_1upkeyboards_pi40_mit_v1_0) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_WM] = { ENCODER_CCW_CW(LCTL(KC_V), LCTL(KC_C)) }, - [_QW] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [_LOWER] = { ENCODER_CCW_CW(____, ____) }, - [_RAISE] = { ENCODER_CCW_CW(____, ____) }, - [_EX] = { ENCODER_CCW_CW(____, ____) }, - [_FN] = { ENCODER_CCW_CW(RGB_MOD, RGB_RMOD) }, - [_SYMB] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } -}; -#endif - - -#ifdef OLED_ENABLE -bool oled_task_user(void) { - // Host Keyboard Layer Status - oled_write_P(PSTR("Layer: "), false); - - switch (get_highest_layer(layer_state)) { - case _LOWER: - oled_write_P(PSTR("LOWER"), false); - break; - case _RAISE: - oled_write_P(PSTR("RAISE"), false); - break; - case _EX: - oled_write_P(PSTR("EXTRA"), false); - break; - case _FN: - oled_write_P(PSTR("FUNCTION"), false); - break; - case _WM: - oled_write_P(PSTR("WORKMAN"), false); - break; - case _SYMB: - oled_write_P(PSTR("SYMBOLS"), false); - break; - default: - // Or use the write_ln shortcut over adding '\n' to the end of your string - oled_write_ln_P(PSTR("HOME"), false); - } - -// Host Keyboard LED Status - // led_t led_state = host_keyboard_led_state(); - // oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); - // oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); - // oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); - - return false; -} -#endif - - -bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case SFT_T(KC_A): - // Do not force the mod-tap key press to be handled as a modifier - // if any other key was pressed while the mod-tap key is held down. - return false; - case TEX: - return false; - case CTRLX: - return false; - case FNZ: - return false; - case MGUI: - return false; - case VLOWER: - return false; - case KRAISE: - return false; - default: - // Force the dual-role key press to be handled as a modifier if any - // other key was pressed while the mod-tap key is held down. - return true; - } -} - -#ifdef AUDIO_ENABLE -float leader_start_song[][2] = SONG(ONE_UP_SOUND); -float leader_succeed_song[][2] = SONG(ALL_STAR); -float leader_fail_song[][2] = SONG(RICK_ROLL); -#endif - -void matrix_scan_user(void); - -void leader_start_user(void) { -#ifdef AUDIO_ENABLE - PLAY_SONG(leader_start_song); -#endif -} - -bool did_leader_succeed; - -void leader_end_user(void) { - did_leader_succeed = false; - - if (leader_sequence_one_key(KC_E)) { - SEND_STRING(SS_LCTL(SS_LSFT("t"))); - did_leader_succeed = true; - } else if (leader_sequence_two_keys(KC_E, KC_D)) { - SEND_STRING(SS_LGUI("r") "cmd\n" SS_LCTL("c")); - did_leader_succeed = true; - } else if (leader_sequence_two_keys(KC_A, KC_T)) { - SEND_STRING("@guidehouse.com"); - did_leader_succeed = true; - } - - -#ifdef AUDIO_ENABLE - if (did_leader_succeed) { - PLAY_SONG(leader_succeed_song); - } else { - PLAY_SONG(leader_fail_song); - } -#endif -} \ No newline at end of file diff --git a/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/rules.mk b/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/rules.mk deleted file mode 100644 index b446776377..0000000000 --- a/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/rules.mk +++ /dev/null @@ -1,22 +0,0 @@ -# Common feature for all keyboards -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -EXTRAKEY_ENABLE = yes # Audio control and System control -TAP_DANCE_ENABLE = yes # Tap Dance keys -NKRO_ENABLE = yes # Enable N-Key Rollover -MACROS_ENABLED = yes - - -# Keyboard specific -AUTO_SHIFT_ENABLE = no -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -MOUSEKEY_ENABLE = no # Mouse keys - -LEADER_ENABLE = yes -RGB_MATRIX_ENABLE = yes -ENCODER_ENABLE = yes -ENCODER_MAP_ENABLE = yes -OLED_ENABLE = yes diff --git a/keyboards/3w6/keymaps/manna-harbour_miryoku/config.h b/keyboards/3w6/keymaps/manna-harbour_miryoku/config.h deleted file mode 100644 index fb567ad7d3..0000000000 --- a/keyboards/3w6/keymaps/manna-harbour_miryoku/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright 2021 weteor - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- - -#pragma once - -#define LAYOUT_miryoku( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT( \ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - K32, K33, K34, K35, K36, K37 \ -) diff --git a/keyboards/3w6/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/3w6/keymaps/manna-harbour_miryoku/keymap.c deleted file mode 100644 index 74df5e0fe1..0000000000 --- a/keyboards/3w6/keymaps/manna-harbour_miryoku/keymap.c +++ /dev/null @@ -1,17 +0,0 @@ -/* Copyright 2021 weteor - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- diff --git a/keyboards/40percentclub/nano/keymaps/drashna/config.h b/keyboards/40percentclub/nano/keymaps/drashna/config.h deleted file mode 100644 index 411ee8a81b..0000000000 --- a/keyboards/40percentclub/nano/keymaps/drashna/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define ANALOG_JOYSTICK_X_AXIS_PIN B4 -#define ANALOG_JOYSTICK_Y_AXIS_PIN B5 - -#define ANALOG_JOYSTICK_CLICK_PIN E6 diff --git a/keyboards/40percentclub/nano/keymaps/drashna/keymap.c b/keyboards/40percentclub/nano/keymaps/drashna/keymap.c deleted file mode 100644 index 04da4d16ec..0000000000 --- a/keyboards/40percentclub/nano/keymaps/drashna/keymap.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "drashna.h" -#include "analog.h" -#include "pointing_device.h" - -#define KC_X0 LT(_FN, KC_ESC) - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT( - KC_VOLU, KC_MPLY, KC_MPRV, QK_BOOT, - KC_VOLD, KC_MUTE, KC_MNXT, QK_BOOT - ), - -}; -// clang-format on diff --git a/keyboards/40percentclub/nano/keymaps/drashna/rules.mk b/keyboards/40percentclub/nano/keymaps/drashna/rules.mk deleted file mode 100644 index aa7966a8b5..0000000000 --- a/keyboards/40percentclub/nano/keymaps/drashna/rules.mk +++ /dev/null @@ -1,6 +0,0 @@ -POINTING_DEVICE_ENABLE = yes -POINTING_DEVICE_DRIVER = analog_joystick -RGBLIGHT_ENABLE = no -CONSOLE_ENABLE = no - -BOOTLOADER = qmk-dfu diff --git a/keyboards/9key/keymaps/bcat/keymap.c b/keyboards/9key/keymaps/bcat/keymap.c deleted file mode 100644 index 5a9ba1a88e..0000000000 --- a/keyboards/9key/keymaps/bcat/keymap.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright 2021 Jonathan Rascher - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -#include "bcat.h" - -#define KY_LOCK LGUI(KC_L) /* Chrome OS: Lock screen */ -#define KY_MICM LSG(KC_1) /* Meet Shortcuts: Mute mic */ -#define KY_MICU LSG(KC_2) /* Meet Shortcuts: Unmute mic */ -#define KY_RHAND LSG(KC_3) /* Meet Shortcuts: Raise/lower hand */ - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - [LAYER_DEFAULT] = LAYOUT( - KC_MPLY, KC_VOLU, KY_RHAND, - KY_LOCK, KC_VOLD, KY_MICU, - LY_FN1, KC_MUTE, KY_MICM - ), - [LAYER_FUNCTION_1] = LAYOUT( - EE_CLR, _______, QK_BOOT, - _______, _______, _______, - _______, _______, _______ - ), - // clang-format on -}; diff --git a/keyboards/9key/keymaps/bcat/readme.md b/keyboards/9key/keymaps/bcat/readme.md deleted file mode 100644 index d38ae5463b..0000000000 --- a/keyboards/9key/keymaps/bcat/readme.md +++ /dev/null @@ -1,5 +0,0 @@ -# bcat's 9-Key layout - -This is a super simple PCB-mount macropad with nine keys, used on my -work-from-home Chromebox for media/volume control and to activate some global -shortcuts for Google Meet. diff --git a/keyboards/a_dux/keymaps/manna-harbour_miryoku/config.h b/keyboards/a_dux/keymaps/manna-harbour_miryoku/config.h deleted file mode 100644 index dbbff11bb6..0000000000 --- a/keyboards/a_dux/keymaps/manna-harbour_miryoku/config.h +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2021 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . - -#pragma once - -#define LAYOUT_miryoku( \ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT( \ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - K33, K34, K35, K36 \ -) diff --git a/keyboards/a_dux/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/a_dux/keymaps/manna-harbour_miryoku/keymap.c deleted file mode 100644 index dbab7f9820..0000000000 --- a/keyboards/a_dux/keymaps/manna-harbour_miryoku/keymap.c +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/a_dux/keymaps/manna-harbour_miryoku/rules.mk b/keyboards/a_dux/keymaps/manna-harbour_miryoku/rules.mk deleted file mode 100644 index ef40279cbc..0000000000 --- a/keyboards/a_dux/keymaps/manna-harbour_miryoku/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -# Copyright 2021 Manna Harbour -# https://github.com/manna-harbour/miryoku - -MIRYOKU_KLUDGE_THUMBCOMBOS=yes diff --git a/keyboards/acheron/shark/alpha/keymaps/ajp10304/readme.md b/keyboards/acheron/shark/alpha/keymaps/ajp10304/readme.md deleted file mode 100644 index e091e5d318..0000000000 --- a/keyboards/acheron/shark/alpha/keymaps/ajp10304/readme.md +++ /dev/null @@ -1,126 +0,0 @@ -# AJP10304 Custom Shark Layout -# Also available for the Planck, Quark, JJ40 and Atreus50 - -**Note:** In the tables below where there are two characters on a key, -the second is the output when shift is applied. - -**Note:** The below tables assume a UK layout. - -#### Flashing -Refer to the README.md of the keyboard you want to flash. - -##### Main Qwerty Layer - -* Tab: when held, operates as shift. -* Enter: when held, operates as shift. -* MENU: perform right-click - -| | | | | | | | | | | | | -| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:| -| Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | -| Tab | A | S | D | F | G | H | J | K | L | ;: | Enter| -| Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft | -| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 | - -##### Main Colemak-DHm Layer - -| | | | | | | | | | | | | -| ---- |:----:| :---:|:---:|:-----:|:----:|:-----:|:-----:|:-----:|:----:|:----:| ----:| -| Esc | Q | W | F | P | B | J | L | U | Y | ;: | Bksp | -| Tab | A | R | S | T | G | M | N | E | I | O | Enter| -| Shft | Z | X | C | D | V | K | H | ,< | .> | /? | Shft | -| Fn | Ctrl | Alt | GUI | Lower | Bksp | Space | Raise | Shift | MENU | Ctrl | Fn2 | - -##### Function Layer -Activated when `fn` held in the above `qwerty` layer. - -| | | | | | | | | | | | | -| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| -| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | -| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT| -| Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift | -| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn2 | - -##### Lower Layer -Activated when `Lower` is held in the above `qwerty` layer. - -* Numbers are along the top row, their shifted counterparts are on row 2. -* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word. -* WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word. - -| | | | | | | | | | | | | -| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| -| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp | -| ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks| -| Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift | -| | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play | - -##### Raise Layer -Activated when `Raise` is held in the above `qwerty` layer. - -* Preferred layer for typing brackets. -* Allows for cursor navigation to be used solely with the right hand. -* WRDSEL: Select the word where the cursor is. -* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping. - -| | | | | | | | | | | | | -| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:| -| ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC| -| ` | | | ( | ) | | | HOME | UP | END | |ZOOM +| -| | | | { | } | ||<| LEFT | DOWN |RIGHT |>||ZOOM -| -| Mouse | | | | | Alt | Enter |Raise | | | | | - -##### Lower + Raise -Activated when `Lower` and `Raise` are held together in the above `qwerty` layer. - -* Audio controls in the same position as cursor keys from the `Raise` layer. -* ????: Runs a macro for outputting a text string. Do not use this store passwords. -* Reset: Enter bootloader for flashing firmware to the keyboard. -* CAPS: Toggle caps lock. -* Macro functions: Allows recording of macros. To start recording the macro, press either REC1 or REC2. -To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2. -* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER, -MRSE with RAISE, MFNC with FUNC and MFNC2 with FUNC2 respectively. - -| | | | | | | | | | | | | -| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|:-------:| -| ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del | -| CAPS | | | | | PLAY1|PLAY2 | Mute | Vol+ | Play | | Qwerty | -| MAC | | | | | STOP1|STOP2 | Prev | Vol- | Next | | Colemak | -| | | | | | | | | DYN | | | | - -##### Function 2 Layer -Activated when `fn` held in the above `qwerty` layer. -* WRDSEL: Select the word where the cursor is. -* LNDEL: Delete the line where the cursor is. -* LNSEL: Select the line where the cursor is. -* DUP: Duplicate the selected text. -* LNJOIN: Join the line where the cursor is with the following line. -* MODE: Print either `PC` or `OSX` depending on what layer mode is active. - -| | | | | | | | | | | | | -| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| -| | |WRDSEL| | | | LNDEL| | | | | | -| | | LNSEL| DUP | | | | |LNJOIN| | | | -| | UNDO | CUT | COPY | PASTE| | | | | | | MODE | -| | | | | | | | | | | | | - -##### Mouse Layer -Activated when `fn` and `raise` held together. - -| | | | | | | | | | | | | -| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| -| ESC | | | | | | W_L | W_UP | BTN3 | W_DWN| W_R | | -| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | | -| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN | RIGHT| | | -| | | | | | | | | | | | | - -##### Number Pad Layout -Activated when holding `Esc` key. - -| | | | | | | | | | | | | -| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| -| | | | | | |NMLOCK| 7 | 8 | 9 | / | | -| | | | | | | | 4 | 5 | 6 | * | | -| | | | | | | | 1 | 2 | 3 | + | | -| | | | | | | | 0 | . | , | - | | diff --git a/keyboards/adafruit/macropad/keymaps/drashna/config.h b/keyboards/adafruit/macropad/keymaps/drashna/config.h deleted file mode 100644 index 4d85f039be..0000000000 --- a/keyboards/adafruit/macropad/keymaps/drashna/config.h +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2023 Christopher Courtney, aka Drashna Jael're (@drashna) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 -#define TAPPING_TERM 499 diff --git a/keyboards/adafruit/macropad/keymaps/drashna/keymap.c b/keyboards/adafruit/macropad/keymaps/drashna/keymap.c deleted file mode 100644 index d87e4afd66..0000000000 --- a/keyboards/adafruit/macropad/keymaps/drashna/keymap.c +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright 2023 Christopher Courtney, aka Drashna Jael're (@drashna) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "drashna.h" - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - LT(1,KC_MUTE), - KC_ENT, KC_0, KC_BSPC, - KC_7, KC_8, KC_9, - KC_4, KC_5, KC_6, - KC_1, KC_2, KC_3 - ), - [1] = LAYOUT( - _______, - CK_TOGG, AU_TOGG, _______, - _______, _______, _______, - _______, _______, _______, - _______, _______, _______ - ), -}; -// clang-format on - -#ifdef ENCODER_MAP_ENABLE -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [1] = {ENCODER_CCW_CW(RGB_RMOD, RGB_MOD)}, -}; -#endif - -void render_oled_title(bool side) { - oled_write_P(PSTR(" Macropad "), true); -} - -void render_rgb_mode(uint8_t col, uint8_t line); - -void l_render_keylock_status(led_t led_usb_state, uint8_t col, uint8_t line) { - oled_set_cursor(col, line); -#ifdef CAPS_WORD_ENABLE - led_usb_state.caps_lock |= is_caps_word_on(); -#endif - oled_write_P(PSTR(OLED_RENDER_LOCK_NUML), led_usb_state.num_lock); - oled_write_P(PSTR(" "), false); - oled_write_P(PSTR(OLED_RENDER_LOCK_CAPS), led_usb_state.caps_lock); - oled_write_P(PSTR(" "), false); - oled_write_P(PSTR(OLED_RENDER_LOCK_SCLK), led_usb_state.scroll_lock); -} - -bool oled_task_keymap(void) { - oled_write_raw_P(header_image, sizeof(header_image)); - oled_set_cursor(0, 1); - oled_write_raw_P(row_2_image, sizeof(row_2_image)); - oled_set_cursor(4, 0); - render_oled_title(false); - - render_kitty(0, 2); - render_matrix_scan_rate(1, 7, 2); - -#ifdef AUDIO_ENABLE - oled_set_cursor(7, 4); - bool l_is_audio_on = is_audio_on(); - - static const char PROGMEM audio_status[2][3] = {{0xE0, 0xE1, 0}, {0xE2, 0xE3, 0}}; - oled_write_P(audio_status[l_is_audio_on], false); - -# ifdef AUDIO_CLICKY - bool l_is_clicky_on = is_clicky_on(); - static const char PROGMEM audio_clicky_status[2][3] = {{0xF4, 0xF5, 0}, {0xF6, 0xF7, 0}}; - oled_write_P(audio_clicky_status[l_is_clicky_on && l_is_audio_on], false); -# endif -#endif - - static const char PROGMEM cat_mode[3] = {0xF8, 0xF9, 0}; - oled_write_P(cat_mode, get_keyboard_lock()); - -#ifdef RGB_MATIRX_ENABLE - static const char PROGMEM rgb_layer_status[2][3] = {{0xEE, 0xEF, 0}, {0xF0, 0xF1, 0}}; - oled_write_P(rgb_layer_status[rgb_matrix_is_enabled()], false); -#endif - -#ifdef HAPTIC_ENABLE - static const char PROGMEM nukem_good[2] = {0xFA, 0}; - oled_write_P(haptic_get_enable() ? nukem_good : PSTR(" "), false); -#endif - - l_render_keylock_status(host_keyboard_led_state(), 7, 5); - render_rgb_mode(1, 6); - - for (uint8_t i = 1; i < 7; i++) { - oled_set_cursor(0, i); - oled_write_raw_P(display_border, sizeof(display_border)); - oled_set_cursor(21, i); - oled_write_raw_P(display_border, sizeof(display_border)); - } - oled_set_cursor(0, 7); - oled_write_raw_P(footer_image, sizeof(footer_image)); - - return false; -} diff --git a/keyboards/adafruit/macropad/keymaps/drashna/rules.mk b/keyboards/adafruit/macropad/keymaps/drashna/rules.mk deleted file mode 100644 index ea090a5756..0000000000 --- a/keyboards/adafruit/macropad/keymaps/drashna/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -ENCODER_MAP_ENABLE = yes -DEBUG_MATRIX_SCAN_RATE_ENABLE = api -WPM_ENABLE = yes diff --git a/keyboards/adafruit/macropad/keymaps/peterfalken/keymap.c b/keyboards/adafruit/macropad/keymaps/peterfalken/keymap.c deleted file mode 100644 index f232a99861..0000000000 --- a/keyboards/adafruit/macropad/keymaps/peterfalken/keymap.c +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2023 Peter.Falken (@PeterFalken) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "peterfalken.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_MUTE, - KC_7, KC_8, KC_9, - KC_4, KC_5, KC_6, - KC_1, KC_2, KC_3, - KC_ENT, KC_0, KC_BSPC - ) -}; - -#ifdef ENCODER_MAP_ENABLE -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, -}; -#endif - -#ifdef OLED_ENABLE -static void render_qmk_logo(void) { - static const char PROGMEM qmk_logo[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x3f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, - 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x83, 0x83, 0x83, 0x83, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, - 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x83, 0x83, 0x83, 0x83, 0x03, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x81, 0x83, 0x83, 0x83, 0x83, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x83, 0x83, 0x83, 0x83, 0x81, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x07, 0x1f, 0x3f, 0x7f, 0x7e, 0xf8, 0xf0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, - 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xf0, 0xf8, 0x7e, 0x7f, 0x3f, 0x1f, 0x07, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xc0, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xff, - 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xfc, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, - 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - - oled_write_raw_P(qmk_logo, sizeof(qmk_logo)); -} - -bool oled_task_user(void) { - render_qmk_logo(); - return true; -} -#endif // OLED_ENABLE diff --git a/keyboards/adafruit/macropad/keymaps/peterfalken/rules.mk b/keyboards/adafruit/macropad/keymaps/peterfalken/rules.mk deleted file mode 100644 index 59ffb099c2..0000000000 --- a/keyboards/adafruit/macropad/keymaps/peterfalken/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -# Setup QMK features -ENCODER_MAP_ENABLE = yes -RGB_MATRIX_ENABLE = no # Disable RGB key matrix diff --git a/keyboards/ai03/lunar/keymaps/zyber/keymap.c b/keyboards/ai03/lunar/keymaps/zyber/keymap.c deleted file mode 100644 index 5e2c9f3178..0000000000 --- a/keyboards/ai03/lunar/keymaps/zyber/keymap.c +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2022 ZyBeR (@ZyberSE) -// SPDX-License-Identifier: GPL-2.0 - -#include "zyber.h" - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( /* Base */ - KC_ESC, KC_1, KC_2, KC_3, TD(SSHT), KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, 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, TD(LBRC), KC_RBRC, KC_BSLS, KC_PGDN, - L1_EXPL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(QUOT), KC_ENT, KC_DEL, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, MO(1), - KC_LCTL, ROPT_SRH,KC_LCMD, _______, LCMD_T(KC_SPC), _______, ROPT_SRH, KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT( /* FN */ - QK_BOOT, 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_DEL, KC_DEL, KC_PAUS, - C_BLK, _______, KC_UP, _______, _______, _______, KC_NUM, KC_P7, KC_P8, KC_P9, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_SCRL, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_VOLD, KC_VOLU, KC_P4, KC_P5, KC_P6, _______, _______, _______, _______, - _______, KC_RCTL, KC_RGUI, KC_RALT, _______, _______, KC_P0, KC_P1, KC_P2, KC_P3, _______, _______, KC_PGUP, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END - ) -}; - diff --git a/keyboards/alpha/keymaps/hvp/keymap.c b/keyboards/alpha/keymaps/hvp/keymap.c deleted file mode 100755 index 13071b0830..0000000000 --- a/keyboards/alpha/keymaps/hvp/keymap.c +++ /dev/null @@ -1,51 +0,0 @@ -#include QMK_KEYBOARD_H - -enum layer_names { - HOME, - MODS, - MODS2, - OTHER, -}; - -enum custom_keycodes { - MACRO1 = SAFE_RANGE -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { - switch (keycode) { - case MACRO1: - SEND_STRING("I'm so sorry... -PyroL"); - return false; - } - } - return true; -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [HOME] = LAYOUT( - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, MT(MOD_LCTL,KC_P), - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, MT(MOD_LSFT,KC_ENT), - KC_Z, KC_X, KC_C, LT(MODS2,KC_V), LT(MODS, KC_SPC), LT(OTHER,KC_B), KC_N, KC_M), - - [MODS] = LAYOUT( - KC_TAB, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_BSPC, - KC_LSFT, KC_ESC, _______, KC_SCLN, KC_QUOT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, - KC_LCTL, KC_LGUI, KC_LALT, _______, _______, KC_COMM, KC_DOT, KC_SLSH), - - [MODS2] = LAYOUT( - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_ESC, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, _______, - RGB_VAI, RGB_VAD, RGB_HUI, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU), - - [OTHER] = LAYOUT( - KC_ESC, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, - 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_NO, KC_NO, KC_NO), -}; - -void matrix_init_user(void) { -} - -void matrix_scan_user(void) { -} \ No newline at end of file diff --git a/keyboards/alps64/keymaps/mechmerlin/keymap.c b/keyboards/alps64/keymaps/mechmerlin/keymap.c deleted file mode 100644 index 9b6d1cd717..0000000000 --- a/keyboards/alps64/keymaps/mechmerlin/keymap.c +++ /dev/null @@ -1,26 +0,0 @@ -#include QMK_KEYBOARD_H -#include "mechmerlin.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* 0: qwerty */ - [_BL] = LAYOUT_infinity( - QK_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_BSLS, KC_BSPC, - 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_CTCP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TG(_AL), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FL), KC_RALT, KC_RGUI, KC_RCTL), - - [_FL] = LAYOUT_infinity( - 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_F13, KC_DEL, - 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_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - - [_AL] = LAYOUT_infinity( - 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_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_TRNS, KC_TRNS, KC_TRNS, RSFT_T(KC_UP), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT), -}; diff --git a/keyboards/alps64/keymaps/mechmerlin/readme.md b/keyboards/alps64/keymaps/mechmerlin/readme.md deleted file mode 100644 index 896e7ec3cb..0000000000 --- a/keyboards/alps64/keymaps/mechmerlin/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# MechMerlin Alps64 Infinity Keymap - -This is the 60% infinity layout used by u/merlin36, host of the [MechMerlin](www.youtube.com/mechmerlin) -YouTube channel. - -## Keymap Notes -- `Caps Lock` can be held to act as a `Left Control` - -### Build -To build the firmware file associated with this keymap, simply run `make alps64:mechmerlin`. diff --git a/keyboards/alps64/keymaps/zyber/keymap.c b/keyboards/alps64/keymaps/zyber/keymap.c deleted file mode 100644 index 5d7cf1a64d..0000000000 --- a/keyboards/alps64/keymaps/zyber/keymap.c +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2022 ZyBeR (@ZyberSE) -// SPDX-License-Identifier: GPL-2.0 - -#include "zyber.h" - -enum keyboard_layers { - _BL = 0, - _FL -}; - -// Custom #defined keycodes (shorter macros for readability) -#define KC_CTES CTL_T(KC_ESC) -#define KC_RSUP RSFT_T(KC_UP) -#define KC_FNDN LT(_FL, KC_DOWN) -#define KC_RGLT RCMD_T(KC_LEFT) -#define KC_RCRT RCTL_T(KC_RIGHT) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BL] = LAYOUT_aek_103( - KC_GRV, 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_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSLS, - CTRL_C_UP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(QUOT), KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSUP, - MO(_FL), KC_LALT, KC_LGUI, KC_SPC, KC_RGLT, KC_FNDN, KC_RCRT - ), - [_FL] = LAYOUT_aek_103( - KC_ESC, 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_DEL, - _______, KC_HOME, KC_UP, KC_END, _______, _______, _______, _______, KC_MUTE, _______, _______, KC_PGDN, KC_PGUP, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_SCRL, KC_VOLD, KC_VOLU, KC_PAUS, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, QK_BOOT, _______, _______, _______ - ) -}; diff --git a/keyboards/arisu/keymaps/stanrc85/keymap.c b/keyboards/arisu/keymaps/stanrc85/keymap.c deleted file mode 100644 index 417b1663b5..0000000000 --- a/keyboards/arisu/keymaps/stanrc85/keymap.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright 2021 Stanrc85 - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H -#include "stanrc85.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT( - KC_GRV, 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_BSPC, 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_CTLE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, MO(_FN2_60), - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LALT, LT_BPCF, KC_LGUI, LT_SPCF, TD_TWIN, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [_DEFAULT] = LAYOUT( - QK_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_BSLS, KC_GRV, 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_BSPC, 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_ENT, MO(_FN2_60), - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LALT, KC_SPC, MO(_FN1_60), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [_FN1_60] = LAYOUT( - KC_TILD, 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_DEL, KC_DEL, _______, - _______, _______, CA_QUOT, _______, CA_SCLN, KC_VOLU, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PSCR, _______, _______, KC_INS, _______, - KC_CAPS, _______, _______, KC_LCTL, KC_LSFT, KC_VOLD, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, - _______, KC_RDP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_FN2_60] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MAKE, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, TG(_DEFAULT) - ) -}; diff --git a/keyboards/arisu/keymaps/stanrc85/rules.mk b/keyboards/arisu/keymaps/stanrc85/rules.mk deleted file mode 100644 index 9db643c8e6..0000000000 --- a/keyboards/arisu/keymaps/stanrc85/rules.mk +++ /dev/null @@ -1 +0,0 @@ -USER_NAME := stanrc85 \ No newline at end of file diff --git a/keyboards/atreus/keymaps/dvorak_42_key/README.md b/keyboards/atreus/keymaps/dvorak_42_key/README.md deleted file mode 100644 index 86ce738023..0000000000 --- a/keyboards/atreus/keymaps/dvorak_42_key/README.md +++ /dev/null @@ -1,21 +0,0 @@ -Overview -======== - -This is a dvorak based layout for the Atreus. Its basic key layout is similar to the ergodox_ez "dvorak_42_key" layout. In fact this layout was created for seamless switching between the Ergodox EZ and Atreus. - -How to build and flash ----------------------- - -to build; -make atreus:dvorak_42_key - -to flash: -avrdude -p atmega32u4 -c avr109 -U flash:w:atreus_dvorak_42_key.hex -P COM7 - -Layers ------- -* BASE: basic dvorak layout -* KEYNAV: arrow-key navigation. Momentary toggle held by thumb allows the right hand to navigate through text as well as copy/paste/cut, page up/page down -* KEYSEL: similar to KEYNAV, except for shift-selection -* COMBINED: this is a layer that combines numbers, brackets and special characters. !@#$%^&*( can be type by shift+COMBINED+1/2/3/etc.. -* MOUSE: mouse navigation, as well as browser tab-left/tab-right shortcuts \ No newline at end of file diff --git a/keyboards/atreus/keymaps/dvorak_42_key/config.h b/keyboards/atreus/keymaps/dvorak_42_key/config.h deleted file mode 100644 index ac5db196d9..0000000000 --- a/keyboards/atreus/keymaps/dvorak_42_key/config.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -// place overrides here - -// mouse speed - -#define MOUSEKEY_INTERVAL 15 -#define MOUSEKEY_DELAY 100 -#define MOUSEKEY_TIME_TO_MAX 100 -#define MOUSEKEY_MAX_SPEED 3 - -#define MOUSEKEY_WHEEL_DELAY 500 -#define MOUSEKEY_WHEEL_DELTA 1 -#define MOUSEKEY_WHEEL_MAX_SPEED 1 -#define MOUSEKEY_WHEEL_TIME_TO_MAX 100 diff --git a/keyboards/atreus/keymaps/dvorak_42_key/keymap.c b/keyboards/atreus/keymaps/dvorak_42_key/keymap.c deleted file mode 100644 index c6a628e217..0000000000 --- a/keyboards/atreus/keymaps/dvorak_42_key/keymap.c +++ /dev/null @@ -1,167 +0,0 @@ - -#include QMK_KEYBOARD_H - -// layers -#define BASE 0 -#define KEYNAV 1 -#define KEYSEL 2 -#define COMBINED 3 -#define BROWSER_CONTROL 4 - -// aliases -// shell -#define SHELL_DEL_WORD RCTL(KC_W) - -// comment out to use android studio macros instead -#define USE_VSCODE_MACROS - -// android studio shortcuts -#define AS_TABLEFT LALT(KC_LEFT) -#define AS_TABRIGHT LALT(KC_RIGHT) -#define AS_SYMBOL LCTL(LALT(KC_N)) -#define AS_CLASS LCTL(KC_N) -#define AS_FINDUSAGE LALT(KC_F7) -#define AS_BACK LCTL(LALT(KC_LEFT)) -#define AS_GO_DECLARATION LCTL(KC_B) -#define AS_GO_IMPLEMENTATION LCTL(LALT(KC_B)) -#define AS_CLOSETAB LCTL(KC_F4) -#define AS_CLOSETOOLWINDOW LCTL(LSFT(KC_F4)) -#define AS_ALTENTER LALT(KC_ENTER) - -// visual studio code shortcuts -#define VS_FILE LCTL(KC_P) -#define VS_OPEN_FILE LCTL(KC_O) -#define VS_LINE LCTL(KC_G) -#define VS_SYMBOLEDITOR LCTL(LSFT(KC_O)) -#define VS_DEFINITION MEH(KC_F5) -#define VS_IMPLEMENTATION MEH(KC_F6) -#define VS_REFERENCES MEH(KC_F7) -#define VS_BACK LALT(KC_LEFT) -#define VS_BRACKET LCTL(LSFT(KC_BSLS)) -#define VS_TABLEFT MEH(KC_F1) -#define VS_TABRIGHT MEH(KC_F2) -#define VS_CLOSETAB MEH(KC_F3) -#define VS_CLOSEPANEL LCTL(LSFT(KC_W)) -#define VS_GROUP_1 LCTL(KC_1) -#define VS_GROUP_2 LCTL(KC_2) -#define VS_TERMINAL LCTL(KC_GRAVE) -#define VS_BUILD LCTL(LSFT(KC_B)) -#define VS_COMMANDS MEH(KC_F4) -#define VS_CMT_BLOCK LSFT(LALT(KC_A)) -#define VS_CMT_LINE LCTL(KC_SLSH) -#define VS_DEL_LINE LCTL(LSFT(KC_K)) -#define VS_COPYLINEDOWN LSFT(LALT(KC_DOWN)) -// visual studio bookmark commands -#define VS_BM_LIST LCTL(LALT(KC_L)) -#define VS_BM_LISTALL LCTL(LALT(KC_A)) -#define VS_BM_PREV LCTL(LALT(KC_P)) -#define VS_BM_NEXT LCTL(LALT(KC_N)) -#define VS_BM_TOGGLE LCTL(LALT(KC_K)) -#define VS_BM_CLEARALL LCTL(LALT(KC_C)) -// visual studio code navigation shortcuts -#define VS_FOCUS_EDITOR MEH(KC_F8) -#define VS_FOCUS_TERMINAL MEH(KC_F9) -#define VS_TOGGLE_TERMINAL MEH(KC_F10) -#define VS_CLEAR_TERMINAL MEH(KC_F11) -#define VS_TERMINAL_PREV MEH(KC_F12) -#define VS_TERMINAL_NEXT MEH(KC_F13) -#define VS_TERMINAL_NEW MEH(KC_F14) -#define VS_TERMINAL_DETACH MEH(KC_F15) -#define VS_TERMINAL_RENAME MEH(KC_F16) -#define VS_JUMPY MEH(KC_F17) - -/* -// VS code bookmark prev/next requires the following in vscode shortcuts config - { - "key": "ctrl+alt+p", - "command": "bookmarks.jumpToPrevious" - }, - { - "key": "ctrl+alt+n", - "command": "bookmarks.jumpToNext" - }, -*/ - -enum custom_keycodes { - PLACEHOLDER = SAFE_RANGE, // can always be here - - // Windows 10 macros - W10_TASKVIEW, - W10_WORKSPACE_LEFT, - W10_WORKSPACE_RIGHT, - -}; - -// building/flashing instructions: -// make atreus/astar:dvorak_42_key:flash -// or -// qmk compile -kb atreus -km dvorak_42_key - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [BASE] = LAYOUT( - KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, - KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, - KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, - OSM(MOD_LSFT), OSM(MOD_LCTL), MO(KEYSEL), MO(BROWSER_CONTROL), MO(COMBINED), MO(KEYNAV), KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_CAPS, OSM(MOD_LSFT) - ), - -#ifdef USE_VSCODE_MACROS -// use visual studio code macros on the KEYNAV layer - [KEYNAV] = LAYOUT( - KC_ESC, VS_DEFINITION, RCTL(KC_Z), RCTL(KC_S), MEH(KC_A), MEH(KC_B), KC_HOME, KC_UP, KC_END, KC_PGUP, - VS_BACK, VS_SYMBOLEDITOR, RSFT(KC_TAB), KC_TAB, SHELL_DEL_WORD, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), - VS_LINE, VS_FILE, VS_TABLEFT, VS_TABRIGHT, VS_CLOSETAB, KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_PGDN, - VS_COMMANDS, VS_CMT_LINE, VS_BM_PREV, VS_BM_NEXT, VS_BM_TOGGLE, KC_TRNS, KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_DELETE, LCTL(KC_DELETE) - ), -#else -// use android studio macros on the KEYNAV layer - [KEYNAV] = LAYOUT( - KC_ESC, AS_GO_IMPLEMENTATION, RCTL(KC_Z), RCTL(KC_S), MEH(KC_A), MEH(KC_B), KC_HOME, KC_UP, KC_END, KC_PGUP, - AS_BACK, AS_SYMBOL, RSFT(KC_TAB), KC_TAB, SHELL_DEL_WORD, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), - AS_FINDUSAGE, AS_CLASS, AS_TABLEFT, AS_TABRIGHT, AS_CLOSETAB, KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_PGDN, - AS_CLOSETOOLWINDOW, AS_GO_DECLARATION, KC_TRNS, KC_TRNS, AS_ALTENTER, KC_TRNS, KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_DELETE, LCTL(KC_DELETE) - ), -#endif - - [KEYSEL] = LAYOUT( - MEH(KC_G), MEH(KC_H),MEH(KC_I), MEH(KC_J), MEH(KC_K), KC_TRNS, RSFT(KC_HOME), RSFT(KC_UP), RSFT(KC_END), RSFT(KC_PGUP), - MEH(KC_L), MEH(KC_M),MEH(KC_N), MEH(KC_O), MEH(KC_P), RSFT(RCTL(KC_LEFT)), RSFT(KC_LEFT), RSFT(KC_DOWN), RSFT(KC_RIGHT), RSFT(RCTL(KC_RIGHT)), - MEH(KC_Q), MEH(KC_R),MEH(KC_S), MEH(KC_T), MEH(KC_U), KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), RSFT(KC_PGDN), - QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_DELETE, LCTL(KC_DELETE) - ), - - [COMBINED] = LAYOUT( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PLUS, KC_7, KC_8, KC_9, KC_ASTR, - KC_LPRN, KC_RPRN, KC_LBRC, KC_RBRC, KC_UNDS, KC_MINS, KC_4, KC_5, KC_6, KC_SLSH, - KC_COLN, KC_DQUO, KC_LCBR, KC_RCBR, KC_AMPR, KC_EQUAL, KC_1, KC_2, KC_3, KC_QUES, - KC_TRNS, KC_TILD, KC_GRAVE, KC_CIRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_DOT, KC_PIPE, KC_BSLS - ), - - [BROWSER_CONTROL] = LAYOUT( - MEH(KC_C), KC_BTN3, KC_MS_U, KC_BTN1, KC_BTN2, KC_UP, KC_PGUP, KC_PGDN, KC_MS_WH_UP, MEH(KC_9), - MEH(KC_D), KC_MS_L, KC_MS_D, KC_MS_R, MEH(KC_6), KC_DOWN, RSFT(RCTL(KC_TAB)), RCTL(KC_TAB), KC_MS_WH_DOWN, LALT(KC_LEFT), - MEH(KC_E), W10_TASKVIEW, W10_WORKSPACE_LEFT, W10_WORKSPACE_RIGHT, MEH(KC_7), MEH(KC_8), RCTL(KC_1), RCTL(KC_9), KC_F6, KC_F5, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RCTL(KC_W), RCTL(KC_T), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if(record->event.pressed) { - switch (keycode) { - // windows 10 workspace shortcuts - case W10_TASKVIEW: - tap_code16(G(KC_TAB)); - return true; - break; - case W10_WORKSPACE_LEFT: - tap_code16(G(C(KC_LEFT))); - return true; - break; - case W10_WORKSPACE_RIGHT: - tap_code16(G(C(KC_RIGHT))); - break; - } - } - - return true; -} diff --git a/keyboards/atreus/keymaps/ibnuda/keymap.c b/keyboards/atreus/keymaps/ibnuda/keymap.c deleted file mode 100644 index 3bdfccad98..0000000000 --- a/keyboards/atreus/keymaps/ibnuda/keymap.c +++ /dev/null @@ -1,47 +0,0 @@ -#include QMK_KEYBOARD_H - -#include "ibnuda.h" - -// clang-format off -#define LAYOUT_atreus_base( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ - K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ - K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \ - KTA, KTB, KTC, KTD \ - ) \ - LAYOUT_wrapper( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ - K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ - K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \ - ___, ___, ___, ___, KTA, KTB, KTC, KTD, ___, ___, ___, ___ \ - ) -#define LAYOUT_atreus_base_wrapper(...) LAYOUT_atreus_base(__VA_ARGS__) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_BASE] = LAYOUT_atreus_base_wrapper( - ________________DVORAK_L1_______________, ________________DVORAK_R1_______________, - ________________DVORAK_L2_______________, ________________DVORAK_R2_______________, - ________________DVORAK_L3_______________, ________________DVORAK_R3_______________, - LW_BSPC,SFT_ESC, ALT_ENT,RS_SPC -), - -[_RAISE] = LAYOUT_atreus_base_wrapper( - ________________RAISE_L1________________, ________________RAISE_R1________________, - ________________RAISE_L2________________, ________________RAISE_R2________________, - ________________RAISE_L3________________, ________________RAISE_R3________________, - ADDDD, _______, _______,_______ -), -[_LOWER] = LAYOUT_atreus_base_wrapper( - ________________LOWER_L1________________, ________________LOWER_R1________________, - ________________LOWER_L2________________, ________________LOWER_R2________________, - ________________LOWER_L3________________, ________________LOWER_R3________________, - _______,_______, _______,ADDDD -), -[_ADJUST] = LAYOUT_atreus_base_wrapper( - ________________ADJUST_L1_______________, ________________ADJUST_R1_______________, - ________________ADJUST_L2_______________, ________________ADJUST_R2_______________, - ________________ADJUST_L3_______________, ________________ADJUST_R3_______________, - _______,_______, _______,_______ -), -}; -// clang-format on diff --git a/keyboards/atreus/keymaps/ibnuda/rules.mk b/keyboards/atreus/keymaps/ibnuda/rules.mk deleted file mode 100644 index 14227c90d7..0000000000 --- a/keyboards/atreus/keymaps/ibnuda/rules.mk +++ /dev/null @@ -1 +0,0 @@ -LTO_ENABLE=yes diff --git a/keyboards/atreus/keymaps/manna-harbour_miryoku/config.h b/keyboards/atreus/keymaps/manna-harbour_miryoku/config.h deleted file mode 100644 index 30a066fa5b..0000000000 --- a/keyboards/atreus/keymaps/manna-harbour_miryoku/config.h +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX\ -) diff --git a/keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c deleted file mode 100644 index dbab7f9820..0000000000 --- a/keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/atreus/keymaps/ridingqwerty/config.h b/keyboards/atreus/keymaps/ridingqwerty/config.h deleted file mode 100644 index 349d7b1c49..0000000000 --- a/keyboards/atreus/keymaps/ridingqwerty/config.h +++ /dev/null @@ -1,13 +0,0 @@ -#pragma once - -#undef MATRIX_ROWS -#define MATRIX_ROWS 8 - -#undef MATRIX_COLS -#define MATRIX_COLS 6 - -#undef MATRIX_ROW_PINS -#define MATRIX_ROW_PINS { A6, A7, A8, A15, B11, B12, A14, A13 } - -#undef MATRIX_COL_PINS -#define MATRIX_COL_PINS { B5, B4, B3, B2, B1, B0 } diff --git a/keyboards/atreus/keymaps/ridingqwerty/keymap.c b/keyboards/atreus/keymaps/ridingqwerty/keymap.c deleted file mode 100644 index 9b0826402e..0000000000 --- a/keyboards/atreus/keymaps/ridingqwerty/keymap.c +++ /dev/null @@ -1,153 +0,0 @@ -/* Copyright 2019 George Koenig - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H -#include "ridingqwerty.h" - -/* Atreus - ┏━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┓ ┏━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┓ - ┃ Q │ W │ E │ R │ T ┃ ┃ Y │ U │ I │ O │ P ┃ - ┠────────┼────────┼────────┼────────┼────────┨ ┠────────┼────────┼────────┼────────┼────────┨ - /┃ ¶ A │ S │ D │ F │ G ┃ ┃ H │ J │ K │ L │ 🔢 ; ┃ - ┠────────┼────────┼────────┼────────┼────────┞━━━━━━━━┳━━━━━━━━┞────────┼────────┼────────┼────────┼────────┨ - /┃ ⇧ Z │ X │ C │ V │ B │ ┃ │ N │ M │ , │ 𝔽 . │ ⇧ / ┃ - ┠────────┼────────┼────────┼────────┼────────┤ ¶ ⎋ ┃ ❦ ⇥ ├────────┼────────┼────────┼────────┼────────┨ - ┃ ⎈ ⎋ │ ⌘ ⇥ │ ⎇ [ │ ⇧ ] │ 🔢 ⌫ │ ┃ │ ★ ␣ │ ⇧ - │ ⎇ = │ ⌘ ' │ ⎈ ↵ ┃ - ┗━━━━━━━━┷━━━━━━━━┷━━━━━━━━┷━━━━━━━━┷━━━━━━━━┷━━━━━━━━┻━━━━━━━━┷━━━━━━━━┷━━━━━━━━┷━━━━━━━━┷━━━━━━━━┷━━━━━━━━┛ - MODS // LAYERS // MODS // -*/ - -#define LAYOUT_atreus( \ - K00, K01, K02, K03, K04, K40, K41, K42, K43, K44, \ - K10, K11, K12, K13, K14, K50, K51, K52, K53, K54, \ - K20, K21, K22, K23, K24, K60, K61, K62, K63, K64, \ - K30, K31, K32, K33, K34, K35, K70, K71, K72, K73, K74, K75 \ -) { \ - { K00, K01, K02, K03, K04, KC_NO }, \ - { K10, K11, K12, K13, K14, KC_NO }, \ - { K20, K21, K22, K23, K24, KC_NO }, \ - { K30, K31, K32, K33, K34, K35 }, \ - { K44, K43, K42, K41, K40, KC_NO }, \ - { K54, K53, K52, K51, K50, KC_NO }, \ - { K64, K63, K62, K61, K60, KC_NO }, \ - { K75, K74, K73, K72, K71, K70 } \ -} - -//#define ALPHA UP(UCM_LDEL, UCM_UDEL) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_atreus_wrapper( /* Qwerty */ - ________________ATREUS_L1__________________, ________________ATREUS_R1__________________, - ________________ATREUS_L2__________________, ________________ATREUS_R2__________________, - ________________ATREUS_L3__________________, ________________ATREUS_R3__________________, - ________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________ - ), - [_DVORAK] = LAYOUT_atreus_wrapper( /* Qwerty */ - ________________DVORAK_L1__________________, ________________DVORAK_R1__________________, - ________________DVORAK_L2__________________, ________________DVORAK_R2__________________, - ________________DVORAK_L3__________________, ________________DVORAK_R3__________________, - ________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________ - ), - [_COLEMAK] = LAYOUT_atreus_wrapper( /* Qwerty */ - ________________COLEMAK_L1_________________, ________________COLEMAK_R1_________________, - ________________COLEMAK_L2_________________, ________________COLEMAK_R2_________________, - ________________COLEMAK_L3_________________, ________________COLEMAK_R3_________________, - ________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________ - ), -//#if defined(UNICODEMAP_ENABLE) -//#ifdef UNICODE_H -#ifdef UNICODEMAP_ENABLE - [_GREEK] = LAYOUT_atreus_wrapper( - ________________GREEK_L1___________________, ________________GREEK_R1___________________, - ________________GREEK_L2___________________, ________________GREEK_R2___________________, - ________________GREEK_L3___________________, ________________GREEK_R3___________________, - ________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________ - ), - [_RUSSIAN] = LAYOUT_atreus_wrapper( - ________________CYRLC_L1___________________, ________________CYRLC_R1___________________, - ________________CYRLC_L2___________________, ________________CYRLC_R2___________________, - ________________CYRLC_L3___________________, ________________CYRLC_R3___________________, - ________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________CYRLC_R4___________________ - ), - [_RUNES] = LAYOUT_atreus_wrapper( - ________________FTHRK_L1___________________, ________________FTHRK_R1___________________, - ________________FTHRK_L2___________________, ________________FTHRK_R2___________________, - ________________FTHRK_L3___________________, ________________FTHRK_R3___________________, - ________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________ - ), - [_HIRA1] = LAYOUT_atreus_wrapper( - ________________JIS1_L1____________________, ________________JIS1_R1____________________, - ________________JIS1_L2____________________, ________________JIS1_R2____________________, - ________________JIS1_L3____________________, ________________JIS1_R3____________________, - ________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________ - ), - [_HIRA2] = LAYOUT_atreus_wrapper( - ________________JIS2_L1____________________, ________________JIS2_R1____________________, - ________________JIS2_L2____________________, ________________JIS2_R2____________________, - ________________JIS2_L3____________________, ________________JIS2_R3____________________, - ________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________ - ), -#endif - [_EDITOR] = LAYOUT_atreus_wrapper( /* ED_A, ED_ESC */ - ________________EDITOR_L1__________________, ________________EDITOR_R1__________________, - ________________EDITOR_L2__________________, ________________EDITOR_R2__________________, - ________________EDITOR_L3__________________, ________________EDITOR_R3__________________, - _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______ - ), - [_NUMBER] = LAYOUT_atreus_wrapper( /* NM_SCLN, NM_BSPC */ - ________________NUMROW_L1__________________, ________________NUMROW_R1__________________, - ________________NUMROW_R1__________________, ________________NUMPAD_R2__________________, - ___________________________________________, ________________NUMPAD_R3__________________, - ___________________________________________, ________________, ________________NUMPAD_R4__________________ - ), - [_SYMBOL] = LAYOUT_atreus_wrapper( /* SM_SPC */ - ________________SYMROW_L1__________________, ________________SYMROW_R1__________________, - ________________SYMROW_R1__________________, ________________SYMROW_R1__________________, - _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSLS, - KC_LBRC, _______, _______, _______, _______, ________________, _______, _______, _______, _______, KC_RBRC - ), - [_F_KEYS] = LAYOUT_atreus_wrapper( /* FK_DOT */ - ________________FKEYROW_L1_________________, ________________FKEYROW_R1_________________, - ________________FKEYROW_R1_________________, ________________FKEYROW_L1_________________, - KC_F11, KC_F12, _______, _______, _______, KC_F11, KC_F12, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_DEBUG] = LAYOUT_atreus_wrapper( /* shhhh... */ - ________________DEBUG_L1___________________, ________________DEBUG_R1___________________, - ________________DEBUG_L2___________________, ________________DEBUG_R2___________________, - ________________DEBUG_L3___________________, ________________DEBUG_R3___________________, - _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______ - ), - [_SECRET] = LAYOUT_atreus_wrapper( /* shhhh... */ -/* - _______, _______, _______, RUSTY, FUEL, _______, _______, _______, _______, _______, - AR1ST, SYSNOC, _______, _______, _______, _______, _______, _______, OS_LAB, _______, - CDLOCAL, _______, C0RE, VAXIS, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -*/ - ________________SECRET_L1__________________, ________________SECRET_R1__________________, - ________________SECRET_L2__________________, ________________SECRET_R2__________________, - ________________SECRET_L3__________________, ________________SECRET_R3__________________, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - - ), - [_FINAL] = LAYOUT_atreus( /* . */ - _______, _______, _______, _______, TESTING, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; diff --git a/keyboards/atreus/keymaps/ridingqwerty/readme.md b/keyboards/atreus/keymaps/ridingqwerty/readme.md deleted file mode 100644 index 936df36099..0000000000 --- a/keyboards/atreus/keymaps/ridingqwerty/readme.md +++ /dev/null @@ -1 +0,0 @@ -This is a handwired Atreus42 using a Proton C diff --git a/keyboards/atreus/keymaps/ridingqwerty/rules.mk b/keyboards/atreus/keymaps/ridingqwerty/rules.mk deleted file mode 100644 index ecead0e01b..0000000000 --- a/keyboards/atreus/keymaps/ridingqwerty/rules.mk +++ /dev/null @@ -1,22 +0,0 @@ -# MCU name -MCU = STM32F303 -BOARD = QMK_PROTON_C - -# Bootloader selection -BOOTLOADER = stm32-dfu - -# Build Options -# comment out to disable the options. -# -BACKLIGHT_ENABLE = no -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # USB Nkey Rollover -AUDIO_ENABLE = yes # Doot -RGBLIGHT_ENABLE = no -TAP_DANCE_ENABLE = no -UNICODE_ENABLE = no -UNICODEMAP_ENABLE = yes diff --git a/keyboards/atreus/keymaps/talljoe/config.h b/keyboards/atreus/keymaps/talljoe/config.h deleted file mode 100644 index 71c7864b7c..0000000000 --- a/keyboards/atreus/keymaps/talljoe/config.h +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright 2020 Joseph Wasson - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define SPACE_COUNT 3 - -#define TEMPLATE_TKL( \ - KESC, KF01, KF02, KF03, KF04, KF05, KF06, KF07, KF08, KF09, KF10, KF11, KF12, KSCL, KPRS, KADJ, \ - KGRV, K_1 , K_2 , K_3 , K_4 , K_5 , K_6 , K_7 , K_8 , K_9 , K_0 , KMIN, KEQL, KBSP, KINS, KHOM, KPUP, \ - KTAB, K_Q , K_W , K_E , K_R , K_T , K_Y , K_U , K_I , K_O , K_P , KLBR, KRBR, KBLS, KDEL, KEND, LPDN, \ - KCAP, K_A , K_S , K_D , K_F , K_G , K_H , K_J , K_K , K_L , KSMI, KQUO, KENT, \ - KLSH, K_Z , K_X , K_C , K_V , K_B , K_N , K_M , KCMA, KDOT, KSLS, KRSH, K_UP, \ - KLCT, KLOS, KLAL, KSP3, KSP2, KSP1, KRAL, KROS, KRCT, KPTT, K_LT, K_DN, K_RT \ -) LAYOUT( \ - K_Q , K_W , K_E , K_R , K_T , K_Y , K_U , K_I , K_O , K_P , \ - K_A , K_S , K_D , K_F , K_G , K_H , K_J , K_K , K_L , KSMI, \ - K_Z , K_X , K_C , K_V , K_B , K_N , K_M , KCMA, KDOT, KSLS, \ - KTAB, KLOS, KLAL, KLSH, KSP3, KSP2, KCAP, KSP1, KRSH, KBLS, KQUO, KADJ \ -) - -#define TEMPLATE_NUM( \ - KGRV, K_1 , K_2 , K_3 , K_4 , K_5 , K_6 , K_7 , K_8 , K_9 , K_0 , KMIN, KEQL, KBSL, KESC, \ - KTAB, K_Q , K_W , K_E , K_R , K_T , K_Y , K_U , K_I , K_O , K_P , KLBR, KRBR, KBSP, \ - KCAP, K_A , K_S , K_D , K_F , K_G , K_H , K_J , K_K , K_L , KSMI, KQUO, KENT, \ - KLSH, K_Z , K_X , K_C , K_V , K_B , K_N , K_M , KCMA, KDOT, KSLS, KRSH, KADJ, \ - KLCT, KLOS, KLAL, KSP3, KSP2, KSP1, KRAL, KROS, KRCT, KPTT \ -) LAYOUT( \ - K_Q , K_W , K_E , K_R , K_T , K_Y , K_U , K_I , K_O , K_P , \ - K_A , K_S , K_D , K_F , K_G , K_H , K_J , K_K , K_L , KSMI, \ - K_Z , K_X , K_C , K_V , K_B , K_N , K_M , KCMA, KDOT, KSLS, \ - KTAB, KLOS, KLAL, KLSH, KSP3, KSP2, KCAP, KSP1, KRAL, KROS, KQUO, KADJ \ -) - -#define TEMPLATE_RESET LAYOUT( \ - QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ -) diff --git a/keyboards/atreus/keymaps/talljoe/keymap.c b/keyboards/atreus/keymaps/talljoe/keymap.c deleted file mode 100644 index 7812add812..0000000000 --- a/keyboards/atreus/keymaps/talljoe/keymap.c +++ /dev/null @@ -1 +0,0 @@ -// This space intentionally left blank diff --git a/keyboards/atreus/keymaps/talljoe/rules.mk b/keyboards/atreus/keymaps/talljoe/rules.mk deleted file mode 100644 index 92007fe8ad..0000000000 --- a/keyboards/atreus/keymaps/talljoe/rules.mk +++ /dev/null @@ -1 +0,0 @@ -USER_NAME := talljoe diff --git a/keyboards/atreus62/keymaps/d4mation/keymap.c b/keyboards/atreus62/keymaps/d4mation/keymap.c deleted file mode 100644 index e01f5b9ec6..0000000000 --- a/keyboards/atreus62/keymaps/d4mation/keymap.c +++ /dev/null @@ -1,196 +0,0 @@ -#include QMK_KEYBOARD_H -#include "d4mation.h" - -enum layer_names { - _DVR, - _QWR, - _LOWER, - _RAISE, - _NUM, - _ADJUST -}; - -enum keymap_custom_keycodes { - LOWER = NEW_SAFE_RANGE, - RAISE -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* Default/Dvorak layer - * ,-----------------------------------------. ,-----------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | / | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Tab | ' | , | . | P | Y | | F | G | C | R | L | = | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Ctrl | A | O | E | U | I |,------.,------.| D | H | T | N | S | - | - * |------+------+------+------+------+------|| || ||------+------+------+------+------+------| - * |Shift | ; | Q | J | K | X ||Super ||Enter || B | M | W | V | Z | \ | - * |------+------+------+------+------+------|| || ||------+------+------+------+------+------| - * | NUM | Alt | Home | End |Lower | Bksp |`------'`------'|Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------' `-----------------------------------------' - */ - - [_DVR] = LAYOUT( - _GRAVE_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_SLSH, - KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_EQL, - KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, - TD(SHIFT_CAPS), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_BSLS, - TG(_NUM), KC_RALT, KC_HOME, KC_END, LOWER, KC_BSPC, KC_LGUI, KC_ENT, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT - ), - - /* Qwerty layer, more "standard" for other people who may need to use my keyboard or for games where using Qwerty is just easier - * ,-----------------------------------------. ,-----------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Ctrl | A | S | D | F | G |,------.,------.| H | J | K | L | ; | ' | - * |------+------+------+------+------+------|| || ||------+------+------+------+------+------| - * |Shift | Z | X | C | V | B ||Super ||Enter || N | M | , | . | / | = | - * |------+------+------+------+------+------|| || ||------+------+------+------+------+------| - * | NUM | Alt | Home | End |Lower | Bksp |`------'`------'|Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------' `-----------------------------------------' - */ - - [_QWR] = LAYOUT( - _GRAVE_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - TD(SHIFT_CAPS), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_EQL, - TG(_NUM), KC_RALT, KC_HOME, KC_END, LOWER, KC_BSPC, KC_LGUI, KC_ENT, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT - ), - - /* "Lower" layer - * ,-----------------------------------------. ,-----------------------------------------. - * | F11 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F12 | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | | | |SLEEP | | | | | SCRGB| | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | | | | | |,------.,------.| | | | { | } | | - * |------+------+------+------+------+------|| || ||------+------+------+------+------+------| - * | | | | | | || || || | Mute | VolD | VolU | | | - * |------+------+------+------+------+------|| || ||------+------+------+------+------+------| - * | | |PageUp|PgDown| | Del |`------'`------'| Ins | | | | | | - * `-----------------------------------------' `-----------------------------------------' - */ - - [_LOWER] = LAYOUT( - KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, - _______, _______, _______, _______, SLEEP, _______, _______, _______, SCRGB, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LCBR, KC_RCBR, _______, - _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - _______, _______, KC_PGUP, KC_PGDN, _______, KC_DEL, _______, _______, KC_INS, _______, _______, _______, _______, _______ - ), - - /* "Raise" layer - * ,-----------------------------------------. ,-----------------------------------------. - * | F11 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F12 | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | || ?> | | | |ZALGO | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | Shrug|Lenny |Magic |Disfac| |,------.,------.| | | | [ | ] | | - * |------+------+------+------+------+------|| || ||------+------+------+------+------+------| - * | | Ameno| Tflip| Tput | | || || || | Prev | Play | Next | | | - * |------+------+------+------+------+------|| || ||------+------+------+------+------+------| - * | | |PageUp|PgDown| | Del |`------'`------'| Ins | | | | | | - * `-----------------------------------------' `-----------------------------------------' - */ - - [_RAISE] = LAYOUT( - KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, - _______, _______, PHPOPEN, PHPCLSE, _______, _______, ZALGO, _______, _______, _______, _______, _______, - _______, SHRUG, LENNY, MAGIC, DISFACE, _______, _______, _______, _______, KC_LBRC, KC_RBRC,_______, - _______, AMENO, TFLIP, TPUT, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, - _______, _______, KC_PGUP, KC_PGDN, _______, KC_DEL, _______, _______, KC_INS, _______, _______, _______, _______, _______ - ), - - /* "Numpad" layer - * ,-----------------------------------------. ,-----------------------------------------. - * | | | / | * | - | | | | | / | * | - | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | 7 | 8 | 9 | + | | | | 7 | 8 | 9 | + | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | 4 | 5 | 6 | + | |,------.,------.| | 4 | 5 | 6 | + | | - * |------+------+------+------+------+------|| || ||------+------+------+------+------+------| - * | | 1 | 2 | 3 | Enter| || || || | 1 | 2 | 3 | Enter| | - * |------+------+------+------+------+------|| || ||------+------+------+------+------+------| - * | | 0 | 0 | . | Enter| |`------'`------'| | 0 | 0 | . | Enter| | - * `-----------------------------------------' `-----------------------------------------' - */ - - [_NUM] = LAYOUT( - _______, _______, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, KC_PSLS, KC_PAST, KC_PMNS, _______, - _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_PPLS, _______, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_PPLS, _______, - _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______, - _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, _______, - _______, KC_KP_0, KC_KP_0, KC_PDOT, KC_PENT, _______, _______, _______, _______, KC_KP_0, KC_KP_0, KC_PDOT, KC_PENT, _______ - ), - - /* "Adjust" layer, only active if both "Lower" and "Raise" are active at the same time - * All unused keys are blanked out for this layer - * ,-----------------------------------------. ,-----------------------------------------. - * | NO | NO | NO | NO | NO | NO | | NO | NO | NO | NO | NO | NO | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | NO |QK_BOOT | NO | NO | NO | NO | | NO | NO | NO | NO | NO | NO | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | NO | NO | NO |UC WIN|UC OSX| NO |,------.,------.| NO |Dvorak|Qwerty| NO | NO | NO | - * |------+------+------+------+------+------|| Swap || ||------+------+------+------+------+------| - * | NO | NO | NO | NO | NO | NO || to || Swap || NO | NO | NO | NO | NO | NO | - * |------+------+------+------+------+------|| Ctrl || Back ||------+------+------+------+------+------| - * | NO | NO | NO | NO | | NO |`------'`------'| NO | | NO | NO | NO | NO | - * `-----------------------------------------' `-----------------------------------------' - */ - - [_ADJUST] = LAYOUT( - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, UC_WIN, UC_MAC, XXXXXXX, XXXXXXX, DF(_DVR),DF(_QWR),XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, CG_SWAP, CG_NORM, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX - ), - -}; - -/* Runs just one time when the keyboard initializes. */ -void eeconfig_init_keymap( void ) { - set_unicode_input_mode( UNICODE_MODE_MACOS ); -}; - -bool process_record_keymap( uint16_t keycode, keyrecord_t *record ) { - - switch ( keycode ) { - - case LOWER: - - if ( record->event.pressed ) { - layer_on( _LOWER ); - update_tri_layer( _LOWER, _RAISE, _ADJUST ); - } - else { - layer_off( _LOWER ); - update_tri_layer( _LOWER, _RAISE, _ADJUST ); - } - - return false; - break; - - case RAISE : - - if ( record->event.pressed ) { - layer_on( _RAISE ); - update_tri_layer( _LOWER, _RAISE, _ADJUST ); - } - else { - layer_off( _RAISE ); - update_tri_layer( _LOWER, _RAISE, _ADJUST ); - } - - return false; - break; - - } - - return true; - -}; \ No newline at end of file diff --git a/keyboards/atreus62/keymaps/d4mation/readme.md b/keyboards/atreus62/keymaps/d4mation/readme.md deleted file mode 100644 index 5642e8e432..0000000000 --- a/keyboards/atreus62/keymaps/d4mation/readme.md +++ /dev/null @@ -1,40 +0,0 @@ -# d4mation's keymap for the Atreus62 - -This is a bit of a work in-progress, but for the most part I like what I have done here. - -I switched to Dvorak some time ago and software-based support in most OS's for Dvorak isn't very great, so this keymap by default is set to Dvorak. - -## Table of Contents - -* [Layers](#layers) - - [Base layer](#base) - - [Num](#num) - - [Lower](#lower) - - [Raise](#raise) - - [Adjust](#adjust) - -# Layers - -## Base - -* By default, this layer is Dvorak. But using the Adjust layer you can switch to Qwerty -* Double-tapping Shift enables and disables Caps Lock -* Quickly tapping the Grave accent key will output a Grave Accent, but holding it for 200ms will output the ESC key instead - -## Num - -This layer gets toggled off and on to place a numpad on both the left and right sides of the keyboard. - -## Lower - -This layer holds some handy shortcuts that I use often, like the screen grab shortcut and sleep shortcut in OS X. - -It also has quick access to {} as they are inaccessible in the base layer - -## Raise - -Aside from quick access to [] and Play/Pause/Next/Previous, this layer is mostly just goofy things I decided to program into the keyboard because I could. There's a bunch of [kaomoji](https://en.wikipedia.org/wiki/Emoticon#Japanese_style_(kaomoji))/"unicode smileys" and I added a toggle switch to enable a [Zalgo Text](https://zalgo.org/) mode. - -## Adjust - -This layer is a "here be dragons" layer. It can only be accessed by holding down the keys for Lower and Raise at the same time. I added exclusively keys that drastically transformed the keyboard's layout or function on this layer. The ability to switch to Qwerty is on this layer, a way to switch CTRL and CMD back and forth is on this layer, and a hotkey to enter bootloader mode also exists. diff --git a/keyboards/atreus62/keymaps/d4mation/rules.mk b/keyboards/atreus62/keymaps/d4mation/rules.mk deleted file mode 100644 index 517f2700e1..0000000000 --- a/keyboards/atreus62/keymaps/d4mation/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -UNICODE_ENABLE = yes -TAP_DANCE_ENABLE = yes \ No newline at end of file diff --git a/keyboards/atreus62/keymaps/hvp/config.h b/keyboards/atreus62/keymaps/hvp/config.h deleted file mode 100644 index 8013c0cb6d..0000000000 --- a/keyboards/atreus62/keymaps/hvp/config.h +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once - -#define TAPPING_TERM 150 -#define PERMISSIVE_HOLD diff --git a/keyboards/atreus62/keymaps/hvp/keymap.c b/keyboards/atreus62/keymaps/hvp/keymap.c deleted file mode 100644 index 1a49f838fa..0000000000 --- a/keyboards/atreus62/keymaps/hvp/keymap.c +++ /dev/null @@ -1,67 +0,0 @@ - -#include QMK_KEYBOARD_H -#include "hvp.c" - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. - -#define LT3_ESC LT(3, KC_ESC) -#define LT4_TAB LT(4, KC_TAB) -#define LT1_ENT LT(1, KC_ENTER) -#define LT2_BSP LT(2, KC_BSPC) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - LAYOUT( /* qwerty */ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC , - LT4_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC , - LT3_ESC, KC_A, KC_S, KC_D, LT(3,KC_F), LT(4,KC_G), KC_H, KC_J, KC_K, KC_L, TD(TD1), TD(TD2) , - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), SC_SENT , - KC_LCTL, KC_APP, _______, KC_LGUI, KC_LALT,SFT_T(KC_SPC), LT2_BSP, LT1_ENT, SFT_T(KC_SPC), KC_LSFT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT - ), - - LAYOUT( /* Right */ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS , - KC_DEL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC , - KC_DEL, _______, _______, _______, _______, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END - ), - - LAYOUT(/* Left */ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS , - KC_TILDE, KC_EXCLAIM, KC_AT, KC_HASH, KC_DOLLAR, KC_PERCENT, KC_CIRCUMFLEX, KC_AMPERSAND, KC_ASTERISK, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_BSPC, - KC_DELETE, _______, _______, _______, _______, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS, - _______ , _______ , _______ , _______ , _______ , KC_LEFT_CURLY_BRACE , KC_RIGHT_CURLY_BRACE ,KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TILD, - _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_HOME, KC_PGDN, KC_PGUP, KC_END - ), - - - LAYOUT(/* Esc */ - 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - KC_NO, KC_NO, KC_NO, D_NAVI, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO , - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_NO, KC_NO , - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MSTP, KC_MPLY, KC_NO, KC_MUTE, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT - ), - - - - LAYOUT(/* Tab */ - _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______ , - _______, _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______ , - _______, _______, _______, _______, _______, _______, KC_0, KC_1, KC_2, KC_3, _______, _______ , - KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - /* - [_TRNS] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - */ -}; diff --git a/keyboards/atreus62/keymaps/hvp/readme.md b/keyboards/atreus62/keymaps/hvp/readme.md deleted file mode 100644 index 766533d3be..0000000000 --- a/keyboards/atreus62/keymaps/hvp/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -Keyboard: Atreus62 -Keys: 62 keyed ortho staggered keyboard with a split layout and num row. -Layout: Swedish characters on main layer using tap dance. Built for Eurkey keyboard layout. -Flash instructions: Flash using avrdude, will req the hvp user space to compile. - -> make make atreus62:hvp:avrdude - -Links: -Github - https://github.com/qmk/qmk_firmware/tree/master/keyboards/atreus62 -Eurkey layout - https://eurkey.steffen.bruentjen.eu/ diff --git a/keyboards/atreus62/keymaps/hvp/rules.mk b/keyboards/atreus62/keymaps/hvp/rules.mk deleted file mode 100644 index 1ba2fa8fbe..0000000000 --- a/keyboards/atreus62/keymaps/hvp/rules.mk +++ /dev/null @@ -1 +0,0 @@ -TAP_DANCE_ENABLE = yes \ No newline at end of file diff --git a/keyboards/atreus62/keymaps/jarred/config.h b/keyboards/atreus62/keymaps/jarred/config.h deleted file mode 100644 index 34ab0baaf0..0000000000 --- a/keyboards/atreus62/keymaps/jarred/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2018 Jarred Steenvoorden - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -// My hand wire diodes are in the opposite direction to the Atreus62 PCB -#undef DIODE_DIRECTION -#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/atreus62/keymaps/jarred/keymap.c b/keyboards/atreus62/keymaps/jarred/keymap.c deleted file mode 100644 index 7a49b2890c..0000000000 --- a/keyboards/atreus62/keymaps/jarred/keymap.c +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright 2018 Jarred Steenvoorden - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H -#include "jarred.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = LAYOUT_atreus62_grid_wrapper(BLANK_12, QWERTY_1_12, QWERTY_2_12, QWERTY_3_12, QWERTY_L4, KC_NO, KC_NO, QWERTY_R4), - [_LW] = LAYOUT_atreus62_grid_wrapper(BLANK_12, LOWER_1_12 , LOWER_2_12 , LOWER_3_12 , LOWER_L4 , KC_NO, KC_NO, LOWER_R4 ), - [_NV] = LAYOUT_atreus62_grid_wrapper(BLANK_12, NAV_1_12 , NAV_2_12 , NAV_3_12 , NAV_L4 , KC_NO, KC_NO, NAV_R4 ), - [_NP] = LAYOUT_atreus62_grid_wrapper(BLANK_12, NUMPAD_1_12, NUMPAD_2_12, NUMPAD_3_12, NUMPAD_L4, KC_NO, KC_NO, NUMPAD_R4), - [_MS] = LAYOUT_atreus62_grid_wrapper(BLANK_12, MOUSE_1_12 , MOUSE_2_12 , MOUSE_3_12 , MOUSE_L4 , KC_NO, KC_NO, MOUSE_R4 ) -}; diff --git a/keyboards/atreus62/keymaps/pcewing/keymap.c b/keyboards/atreus62/keymaps/pcewing/keymap.c deleted file mode 100644 index c8dfd5734b..0000000000 --- a/keyboards/atreus62/keymaps/pcewing/keymap.c +++ /dev/null @@ -1,76 +0,0 @@ -#include QMK_KEYBOARD_H - -#define FN MO(_FN) -#define TODO KC_NO - -enum atreus62_layers { - _DEFAULT, - _FN, - _RESET -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* Default layer - * ,-----------------------------------------. ,-----------------------------------------. - * | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Esc | A | S | D | F | G |,------.,------.| H | J | K | L | ; | " | - * |------+------+------+------+------+------|| || ||------+------+------+------+------+------| - * |Shift | Z | X | C | V | B ||Delete||Enter || N | M | , | . | / |Shift | - * |------+------+------+------+------+------|| || ||------+------+------+------+------+------| - * | Ctrl | Win | Alt | ` | Fn | Bksp |`------'`------'|Space | Fn | | Alt | Win | Ctrl | - * `-----------------------------------------' `-----------------------------------------' - */ - [_DEFAULT] = LAYOUT( /* qwerty */ - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, KC_GRV, FN, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, FN, TODO, KC_RALT, KC_RGUI, KC_RCTL - ), - - /* Function layer - * ,-----------------------------------------. ,-----------------------------------------. - * | | | | | | | | | F10 | F11 | F12 | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | Home | Up | End | PgUp | | | PrSc | F7 | F8 | F9 | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Caps | Left | Down |Right | PgDn | |,------.,------.|Pause | F4 | F5 | F6 | | | - * |------+------+------+------+------+------|| || ||------+------+------+------+------+------| - * | | { | } | [ | ] | || || ||Insert| F1 | F2 | F3 | | | - * |------+------+------+------+------+------|| || ||------+------+------+------+------+------| - * | | | | | | |`------'`------'| | | | | | | - * `-----------------------------------------' `-----------------------------------------' - */ - [_FN] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, KC_F10, KC_F11, KC_F12, _______, TO(_RESET), - _______, KC_HOME, KC_UP, KC_END, KC_PGDN, _______, KC_PSCR, KC_F7, KC_F8, KC_F9, _______, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGUP, _______, KC_PAUS, KC_F4, KC_F5, KC_F6, _______, _______, - _______, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, _______, KC_INS, KC_F1, KC_F2, KC_F3, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - /* - * This layer makes it possible to reset the firmware; don't get rid of it and make sure there is a way to activate it. - */ - [_RESET] = LAYOUT( - TO(_DEFAULT), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT - ) - - /* - [_TRNS] = LAYOUT( - 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_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_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 - ), - */ -}; diff --git a/keyboards/atreus62/keymaps/scheiklp/config.h b/keyboards/atreus62/keymaps/scheiklp/config.h deleted file mode 100644 index d8b7abe8d3..0000000000 --- a/keyboards/atreus62/keymaps/scheiklp/config.h +++ /dev/null @@ -1,51 +0,0 @@ -/* Copyright 2017 Benjamin Kesselring - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once -// place overrides here -#define AUTO_SHIFT_TIMEOUT 125 -#define NO_AUTO_SHIFT_SPECIAL -#define NO_AUTO_SHIFT_NUMERIC - -// require two taps for a TT layer switch (default 5) -#define TAPPING_TOGGLE 2 - -// Mouse control -// constant mode (velocity) -#define MK_3_SPEED -// KC_ACL0 < KC_ACL1 < unmodified < KC_ACL2 - -// Cursor offset per movement (unmodified) -#define MK_C_OFFSET_UNMOD 20 -// Time between cursor movements (unmodified) -#define MK_C_INTERVAL_UNMOD 1 -/* #define MK_C_INTERVAL_UNMOD 16 */ - -// Cursor offset per movement (KC_ACL0) -#define MK_C_OFFSET_0 1 -// Time between cursor movements (KC_ACL0) -#define MK_C_INTERVAL_0 10 - -// Cursor offset per movement (KC_ACL1) -#define MK_C_OFFSET_1 4 -// Time between cursor movements (KC_ACL1) -#define MK_C_INTERVAL_1 16 - -// Cursor offset per movement (KC_ACL2) -#define MK_C_OFFSET_2 20 -/* #define MK_C_OFFSET_2 32 */ -// Time between cursor movements (KC_ACL2) -#define MK_C_INTERVAL_2 16 diff --git a/keyboards/atreus62/keymaps/scheiklp/keymap.c b/keyboards/atreus62/keymaps/scheiklp/keymap.c deleted file mode 100644 index 13ad3e4f51..0000000000 --- a/keyboards/atreus62/keymaps/scheiklp/keymap.c +++ /dev/null @@ -1,43 +0,0 @@ -#include QMK_KEYBOARD_H -#include "koy_keys_on_quertz_de_latin1.h" -// Layer shorthand -#define _1 0 -#define _3 1 -#define _4 2 -#define _7 3 - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_1] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_TAB, KC_K, KC_DOT, KC_O, KC_COMM, N_Y, KC_V, KC_G, KC_C, KC_L, N_SS, N_Z, - MO(_3), KC_H, KC_A, KC_E, KC_I, KC_U, KC_D, KC_T, KC_R, KC_N, KC_S, KC_F, - KC_LSFT, KC_X, KC_Q, N_AE, N_UE, N_OE, KC_B, KC_P, KC_W, KC_M, KC_J, KC_RSFT, - KC_LCTL, N_COPY, N_PASTE, KC_LGUI, KC_LALT, KC_SPC, KC_ENTER, KC_RCTL, MO(_3), MO(_4), KC_TRNS, KC_TRNS, KC_CAPS, TT(_7) - ), - - [_3] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_BSPC, - KC_TAB, N_DOTS, N_USC, N_LSQBR, N_RSQBR, N_CIRC, N_EXKL, N_LT, N_GT, N_EQ, N_AMP, N_ACUT, - KC_TRNS, N_BSLS, N_SLSH, N_LCUBR, N_RCUBR, N_ASTR, N_QUES, N_LPARN, N_RPARN, N_MINS, N_COLN, N_AT, - KC_LSFT, N_HASH, N_DLR, N_PIPE, N_TILD, N_GRAVE, N_PLUS, N_PERC, N_QUOT, N_SING, N_SEMI, KC_RSFT, - KC_LCTL, N_COPY, N_PASTE, KC_LGUI, KC_LALT, KC_SPC, KC_ENTER, KC_TRNS, KC_TRNS, KC_RCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [_4] = LAYOUT( - KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, - KC_TAB, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_KP_SLASH, KC_7, KC_8, KC_9, KC_KP_MINUS, KC_TRNS, - KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, KC_KP_ASTERISK, KC_4, KC_5, KC_6, KC_KP_PLUS, KC_TRNS, - KC_LSFT, KC_ESC, KC_TAB, KC_INS, KC_ENTER, N_UNDO, KC_KP_ENTER, KC_1, KC_2, KC_3, KC_KP_DOT, KC_RSFT, - KC_LCTL, N_COPY, N_PASTE, KC_LGUI, KC_LALT, KC_0, KC_ENTER, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [_7] = LAYOUT( - KC_ESC, KC_TRNS, KC_TRNS, KC_MS_BTN3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, - KC_TAB, KC_MS_WH_UP, KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, KC_MS_WH_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_MS_ACCEL0, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LSFT, KC_MS_ACCEL1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LCTL, KC_MS_ACCEL2, KC_TRNS, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; diff --git a/keyboards/atreus62/keymaps/scheiklp/readme.md b/keyboards/atreus62/keymaps/scheiklp/readme.md deleted file mode 100644 index b5590b6f2f..0000000000 --- a/keyboards/atreus62/keymaps/scheiklp/readme.md +++ /dev/null @@ -1,13 +0,0 @@ -# KOY Layout for the atreus62 pcb board -Compile the layout -```bash -qmk compile -kb atreus62 -km scheiklp -``` -disable this service that interfers with the pro micro -``` -sudo systemctl stop ModemManager.service -``` -and flash it to the board -```bash -qmk flash -kb atreus62 -km scheiklp -``` diff --git a/keyboards/atreus62/keymaps/scheiklp/rules.mk b/keyboards/atreus62/keymaps/scheiklp/rules.mk deleted file mode 100644 index 681e7507b4..0000000000 --- a/keyboards/atreus62/keymaps/scheiklp/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -AUTO_SHIFT_ENABLE = yes -CONSOLE_ENABLE = no -COMMAND_ENABLE = no -NKRO_ENABLE = yes diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/config.h b/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/config.h deleted file mode 100644 index 6d24808af2..0000000000 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/config.h +++ /dev/null @@ -1,109 +0,0 @@ -/* - -Copyright 2021 Quentin LEBASTARD - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#ifdef KEYBOARD_bastardkb_charybdis_3x5_blackpill - -# undef MATRIX_ROW_PINS -# define MATRIX_ROW_PINS \ - { B12, B13, B14, B15 } -# undef MATRIX_COL_PINS -# define MATRIX_COL_PINS \ - { A15, B3, B4, B5, B6 } - -# undef MATRIX_ROW_PINS_RIGHT -# define MATRIX_ROW_PINS_RIGHT \ - { B12, B13, B14, B15 } -# undef MATRIX_COL_PINS_RIGHT -# define MATRIX_COL_PINS_RIGHT \ - { A15, B3, B4, B5, B6 } - -# define USB_VBUS_PIN B10 -# undef SPLIT_HAND_PIN -# define SPLIT_HAND_PIN C14 // high = left, low = right - -// WS2812 RGB LED strip input and number of LEDs -# undef WS2812_DI_PIN -# define WS2812_DI_PIN A1 -# undef RGB_MATRIX_MAXIMUM_BRIGHTNESS -# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 -# define WS2812_PWM_DRIVER PWMD2 // default: PWMD2 -# define WS2812_PWM_CHANNEL 2 // default: 2 -# define WS2812_PWM_PAL_MODE 1 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2 -# define WS2812_EXTERNAL_PULLUP -//#define WS2812_PWM_COMPLEMENTARY_OUTPUT // Define for a complementary timer output (TIMx_CHyN); omit for a normal timer output (TIMx_CHy). -# undef WS2812_DMA_STREAM -# define WS2812_DMA_STREAM STM32_DMA1_STREAM7 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. -# define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. -# define WS2812_PWM_TARGET_PERIOD 800000 - -# define DEBUG_LED_PIN C13 - -/* Audio config */ -# define AUDIO_PIN B1 -# define AUDIO_PWM_DRIVER PWMD3 -# define AUDIO_PWM_CHANNEL 4 -# define AUDIO_PWM_PAL_MODE 2 - -/* serial.c configuration for split keyboard */ -# undef SOFT_SERIAL_PIN -# define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. -# undef SERIAL_USART_TX_PIN -# define SERIAL_USART_TX_PIN A2 -# undef SERIAL_USART_RX_PIN -# define SERIAL_USART_RX_PIN A3 -# define SERIAL_USART_DRIVER SD2 -# define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7 -# define SERIAL_USART_RX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7 -# define SERIAL_USART_TIMEOUT 100 // USART driver timeout. default 100 -# define SERIAL_USART_SPEED 921600 -// #define SERIAL_USART_PIN_SWAP // swap RX and TX pins on master -// To use the highest possible baudrate (3.75Mbit/s) uncomment the following -// line, this can result in dropped communications so lower the speed if there -// are many timeouts. -// #define SERIAL_USART_SPEED (STM32_PCLK2 >> 4) - -# define CRC8_USE_TABLE -# define CRC8_OPTIMIZE_SPEED - -/* spi config for eeprom and pmw3360 sensor */ -# define SPI_DRIVER SPID1 -# define SPI_SCK_PIN A5 -# define SPI_SCK_PAL_MODE 5 -# define SPI_MOSI_PIN A7 -# define SPI_MOSI_PAL_MODE 5 -# define SPI_MISO_PIN A6 -# define SPI_MISO_PAL_MODE 5 - -/* eeprom config */ -# define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4 -# define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 64 -// #define EXTERNAL_EEPROM_BYTE_COUNT 8196 -// #define EXTERNAL_EEPROM_PAGE_SIZE 32 -// #define EXTERNAL_EEPROM_ADDRESS_SIZE 2 - -/* pmw3360 config */ -# undef PMW33XX_CS_PIN -# define PMW33XX_CS_PIN B0 -#endif - -#define CHARYBDIS_MINIMUM_DEFAULT_DPI 1200 -#define CHARYBDIS_DEFAULT_DPI_CONFIG_STEP 400 -#define CHARYBDIS_MINIMUM_SNIPING_DPI 200 -#define CHARYBDIS_SNIPING_DPI_CONFIG_STEP 100 diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/halconf.h b/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/halconf.h deleted file mode 100644 index 3b254172b4..0000000000 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/halconf.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright 2020 Nick Brassel (tzarc) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#pragma once - -#if defined(KEYBOARD_bastardkb_charybdis_3x5_blackpill) -# define HAL_USE_PWM TRUE -# define HAL_USE_SERIAL TRUE -# define HAL_USE_I2C TRUE -# define HAL_USE_SPI TRUE -# define SPI_USE_WAIT TRUE -# define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -#include_next diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/keymap.c b/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/keymap.c deleted file mode 100644 index e458a84373..0000000000 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/keymap.c +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2021 Quentin LEBASTARD - * Copyright 2021 Drashna Jael're @drashna - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "drashna.h" - -#define LAYOUT_charybdis_3x5_wrapper(...) LAYOUT_charybdis_3x5(__VA_ARGS__) -#define LAYOUT_charybdis_3x5_base( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ - K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ - K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \ - ) \ - LAYOUT_charybdis_3x5 ( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ - ALT_T(K11), K12, K13, K14, GUI_T(K15), LGUI_T(K16), K17, K18, K19, LALT_T(K1A), \ - CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), \ - LSFT_T(KC_GRV), KC_SPC, BK_LWER, DL_RAIS, RSFT_T(KC_ENT) \ - ) -#define LAYOUT_charybdis_3x5_base_wrapper(...) LAYOUT_charybdis_3x5_base(__VA_ARGS__) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_DEFAULT_LAYER_1] = LAYOUT_charybdis_3x5_base_wrapper( - _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, - _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, - _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ - ), - - [_DEFAULT_LAYER_2] = LAYOUT_charybdis_3x5_base_wrapper( - ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________, - ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________, - ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________ - ), - [_DEFAULT_LAYER_3] = LAYOUT_charybdis_3x5_base_wrapper( - _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, - _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, - _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ - ), - - [_DEFAULT_LAYER_4] = LAYOUT_charybdis_3x5_base_wrapper( - _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, - _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, - _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ - ), - - [_MOUSE] = LAYOUT_charybdis_3x5( - _______, _______, _______, _______, _______, KC_WH_U, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, - _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, - _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, - _______, SNIPING, _______, _______, _______ - ), - [_LOWER] = LAYOUT_charybdis_3x5_wrapper( - _________________LOWER_L1__________________, _________________LOWER_R1__________________, - _________________LOWER_L2__________________, _________________LOWER_R2__________________, - _________________LOWER_L3__________________, _________________LOWER_R3__________________, - _______, _______, _______, _______, AUTO_CTN - ), - [_RAISE] = LAYOUT_charybdis_3x5_wrapper( - _________________RAISE_L1__________________, _________________RAISE_R1__________________, - _________________RAISE_L2__________________, _________________RAISE_R2__________________, - _________________RAISE_L3__________________, _________________RAISE_R3__________________, - QK_RBT, _______, _______, _______, _______ - ), - [_ADJUST] = LAYOUT_charybdis_3x5_wrapper( - _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, - _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, - _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, - EE_CLR, KC_NUKE, _______, _______, QK_BOOT - ), -}; diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/mcuconf.h b/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/mcuconf.h deleted file mode 100644 index 3defeed4dd..0000000000 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/mcuconf.h +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright 2020 Nick Brassel (tzarc) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - -#if defined(KEYBOARD_bastardkb_charybdis_3x5_blackpill) -# undef STM32_I2C_USE_I2C1 -# define STM32_I2C_USE_I2C1 TRUE - -// #undef STM32_I2C_I2C1_RX_DMA_STREAM -// #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) -# undef STM32_I2C_I2C1_TX_DMA_STREAM -# define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1) - -# undef STM32_PWM_USE_TIM2 -# define STM32_PWM_USE_TIM2 TRUE - -# undef STM32_PWM_USE_TIM3 -# define STM32_PWM_USE_TIM3 TRUE - -# undef STM32_SPI_USE_SPI1 -# define STM32_SPI_USE_SPI1 TRUE - -# undef STM32_SERIAL_USE_USART2 -# define STM32_SERIAL_USE_USART2 TRUE - -# undef STM32_ST_USE_TIMER -# define STM32_ST_USE_TIMER 5 -#endif diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/rules.mk b/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/rules.mk deleted file mode 100644 index 029b4a498b..0000000000 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/rules.mk +++ /dev/null @@ -1,43 +0,0 @@ -RGB_MATRIX_ENABLE = no -CUSTOM_UNICODE_ENABLE = no -CUSTOM_POINTING_DEVICE = no -CUSTOM_SPLIT_TRANSPORT_SYNC = no - - -ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/3x5/blackpill) - # Bootloader selection - BOOTLOADER := tinyuf2 - - LTO_ENABLE := no - - AUDIO_SUPPORTED = yes - AUDIO_ENABLE = yes - AUDIO_DRIVER = pwm_hardware - - OVERLOAD_FEATURES = yes -endif - -ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/3x5/v2/stemcell) - OVERLOAD_FEATURES = yes -endif -ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/3x5/v2/splinky) - OVERLOAD_FEATURES = yes -endif - - -ifeq ($(strip $(OVERLOAD_FEATURES)), yes) - BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite - KEYBOARD_SHARED_EP = yes - MOUSE_SHARED_EP = yes - - MOUSEKEY_ENABLE = yes - NKRO_ENABLE = yes - CONSOLE_ENABLE = yes - RGB_MATRIX_ENABLE = yes - - AUTOCORRECT_ENABLE = yes - - CUSTOM_UNICODE_ENABLE = yes - CUSTOM_POINTING_DEVICE = yes - CUSTOM_SPLIT_TRANSPORT_SYNC = yes -endif diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/config.h b/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/config.h deleted file mode 100644 index 935444af1b..0000000000 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/config.h +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2022 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . - -#pragma once - -#define LAYOUT_miryoku( \ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT_charybdis_3x5( \ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - K32, K33, K34, K35, K36 \ -) diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/keymap.c deleted file mode 100644 index dbab7f9820..0000000000 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/keymap.c +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/rules.mk b/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/rules.mk deleted file mode 100644 index ef40279cbc..0000000000 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -# Copyright 2021 Manna Harbour -# https://github.com/manna-harbour/miryoku - -MIRYOKU_KLUDGE_THUMBCOMBOS=yes diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/config.h b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/config.h deleted file mode 100644 index 7fa9826125..0000000000 --- a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/config.h +++ /dev/null @@ -1,69 +0,0 @@ -/** - * Copyright 2021 Charly Delay (@0xcharly) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#pragma once - -#if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill) -# undef MATRIX_COL_PINS -# define MATRIX_COL_PINS \ - { B0, B1, B12, B3, B4, B5 } - -# define USB_VBUS_PIN B10 -# define DEBUG_LED_PIN C13 - -# define AUDIO_PIN B7 -# define AUDIO_PWM_DRIVER PWMD4 -# define AUDIO_PWM_CHANNEL 2 -# define AUDIO_PWM_PAL_MODE 2 -# define AUDIO_INIT_DELAY -# define AUDIO_ENABLE_TONE_MULTIPLEXING -# define AUDIO_TONE_MULTIPLEXING_RATE_DEFAULT 10 - -# define SERIAL_USART_SPEED (1 * 1024 * 1024) - -# undef POINTING_DEVICE_CS_PIN -# define POINTING_DEVICE_CS_PIN A15 // b14 -# define PMW33XX_LIFTOFF_DISTANCE 0b1111 - -# define RGB_MATRIX_LED_FLUSH_LIMIT 33 -# define RGB_MATRIX_LED_PROCESS_LIMIT 29 -#endif - -#undef ROTATIONAL_TRANSFORM_ANGLE -#define ROTATIONAL_TRANSFORM_ANGLE 25 -#define POINTING_DEVICE_ROTATION_270 - -/* RGB Matrix. */ -#undef RGB_MATRIX_MAXIMUM_BRIGHTNESS -#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 - -#define CHARYBDIS_MINIMUM_DEFAULT_DPI 1200 -#define CHARYBDIS_DEFAULT_DPI_CONFIG_STEP 400 -#define CHARYBDIS_MINIMUM_SNIPING_DPI 200 -#define CHARYBDIS_SNIPING_DPI_CONFIG_STEP 100 - -#define CHARYBDIS_CONFIG_SYNC - -#define BOOTMAGIC_LITE_ROW 0 -#define BOOTMAGIC_LITE_COLUMN 0 -#define BOOTMAGIC_LITE_ROW_RIGHT 5 -#define BOOTMAGIC_LITE_COLUMN_RIGHT 0 -#define BOOTMAGIC_LITE_EEPROM_ROW 1 -#define BOOTMAGIC_LITE_EEPROM_COLUMN 0 -#define BOOTMAGIC_LITE_EEPROM_ROW_RIGHT 1 -#define BOOTMAGIC_LITE_EEPROM_COLUMN_RIGHT 0 - -#define DEBOUNCE 15 diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/keymap.c b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/keymap.c deleted file mode 100644 index 31d1e92a7f..0000000000 --- a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/keymap.c +++ /dev/null @@ -1,154 +0,0 @@ -/** - * Copyright 2021 Charly Delay (@0xcharly) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include "drashna.h" - -// clang-format off -#define LAYOUT_charybdis_4x6_wrapper(...) LAYOUT_charybdis_4x6(__VA_ARGS__) -#define LAYOUT_charybdis_4x6_base( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ - K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ - K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \ - ) \ - LAYOUT_charybdis_4x6_wrapper( \ - KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, UC_CLUE, \ - SH_TT, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, SH_TT, \ - LALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(K1B), \ - OS_LSFT,CTL_T(K21),ALT_T(K22),GUI_T(K23),K24,K25, K26,K27,RGUI_T(K28),RALT_T(K29),RCTL_T(K2A), OS_RSFT, \ - SFT_T(KC_GRV), OS_LALT, OS_LGUI, TT(_MOUSE), KC_ENT, \ - KC_SPC, BK_LWER, DL_RAIS \ - ) - -#define LAYOUT_base_wrapper(...) LAYOUT_charybdis_4x6_base(__VA_ARGS__) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper( - _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, - _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, - _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ - ), - - [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper( - ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________, - ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________, - ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________ - ), - [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper( - _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, - _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, - _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ - ), - - [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper( - _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, - _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, - _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ - ), - - [_GAMEPAD] = LAYOUT_charybdis_4x6( - KC_ESC, KC_NO, KC_1, KC_2, KC_3, KC_4, _______, _______, _______, _______, _______, _______, - KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, _______, _______, _______, _______, _______, _______, - KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, _______, _______, _______, _______, _______, _______, - KC_LCTL, KC_LSFT, KC_Z, KC_X, KC_C, KC_H, _______, _______, _______, _______, _______, _______, - KC_V, _______, _______, _______, TG_GAME, - KC_SPC, KC_H, _______ - ), - [_DIABLO] = LAYOUT_charybdis_4x6( - KC_ESC, KC_V, KC_D, KC_LALT, KC_NO, KC_NO, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, - KC_TAB, KC_S, KC_I, KC_F, KC_M, KC_T, _______, _______, _______, _______, _______, _______, - KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, _______, _______, _______, _______, _______, _______, - KC_LCTL, KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, KC_Z, _______, _______, _______, _______, _______, _______, - KC_G, _______, _______, TO(_DIABLOII), TG_DBLO, - KC_LSFT, KC_LCTL, _______ - ), - [_DIABLOII] = LAYOUT_charybdis_4x6( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_GRV, _______, _______, _______, _______, _______, _______, - KC_TAB, KC_A, KC_T, KC_Q, KC_I, KC_M, _______, _______, _______, _______, _______, _______, - KC_S, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, _______, _______, _______, - KC_LCTL, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, _______, _______, - KC_DIABLO_CLEAR, _______, _______, _______, TG(_DIABLOII), - SFT_T(KC_SPACE), ALT_T(KC_Q), _______ - ), - [_MOUSE] = LAYOUT_charybdis_4x6( - _______, _______, _______, _______, _______, _______, _______, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, PD_JIGGLER, - _______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, _______, DRGSCRL, - _______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, SNIPING, - _______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______, - _______, _______, _______, _______, _______, - _______, _______, _______ - ), - - [_LOWER] = LAYOUT_charybdis_4x6_wrapper( - KC_F12, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, KC_F11, - _______, _________________LOWER_L1__________________, _________________LOWER_R1__________________, _______, - _______, _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE, - _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______, - _______, _______, _______, _______, _______, - _______, _______, _______ - ), - - [_RAISE] = LAYOUT_charybdis_4x6_wrapper( - KC_F12, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, KC_F11, - KC_GRV, _________________RAISE_L1__________________, _________________RAISE_R1__________________, _______, - _______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS, - _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______, - _______, _______, _______, _______, _______, - _______, _______, _______ - ), - - [_ADJUST] = LAYOUT_charybdis_4x6_wrapper( - QK_MAKE, KC_WIDE,KC_AUSSIE,KC_SCRIPT,KC_ZALGO,KC_SUPER, KC_NOMODE,KC_COMIC,KC_REGIONAL,TG_GAME,TG_DBLO, QK_BOOT, - VRSN, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, EE_CLR, - KEYLOCK, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, TG_MODS, - UC_NEXT, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, KC_MPLY, - QK_RBT, AUTO_CTN, _______, _______, KC_NUKE, - _______, _______, _______ - ) -}; -// clang-format on - -void keyboard_post_init_keymap(void) { -#ifdef RGB_MATRIX_ENABLE - g_led_config.flags[53] = g_led_config.flags[54] = g_led_config.flags[55] = g_led_config.flags[0] = g_led_config.flags[1] = g_led_config.flags[2] = g_led_config.flags[3] = g_led_config.flags[29] = g_led_config.flags[30] = g_led_config.flags[31] = g_led_config.flags[32] = LED_FLAG_MODIFIER; -#endif -} - -#if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill) -void keyboard_pre_init_keymap(void) { - setPinInputHigh(A0); -} -#endif - -#ifdef SWAP_HANDS_ENABLE -const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { - /* Left hand, matrix positions */ - {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}, {5, 5}}, - {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}, {5, 6}}, - {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}, {5, 7}}, - {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}}, - {{2, 9}, {4, 9}, {5, 9}, {1, 9}, {0, 9}, {3, 9}}, - /* Right hand, matrix positions */ - {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}}, - {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}}, - {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, {5, 2}}, - {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}}, - {{0, 4}, {3, 4}, {2, 4}, {5, 4}, {4, 4}, {2, 4}} -}; - -# ifdef ENCODER_MAP_ENABLE -const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {1, 0}; -# endif -#endif diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/mcuconf.h b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/mcuconf.h deleted file mode 100644 index 0541043c53..0000000000 --- a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/mcuconf.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright 2020 Nick Brassel (tzarc) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - -#if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill) -# undef STM32_PWM_USE_ADVANCED -# define STM32_PWM_USE_ADVANCED TRUE - -# undef STM32_PWM_USE_TIM4 -# define STM32_PWM_USE_TIM4 TRUE -#endif diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk deleted file mode 100644 index ef6b7cd24b..0000000000 --- a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk +++ /dev/null @@ -1,52 +0,0 @@ -CUSTOM_UNICODE_ENABLE = no -CUSTOM_POINTING_DEVICE = no -CUSTOM_SPLIT_TRANSPORT_SYNC = no -PER_KEY_TAPPING = yes - -ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/4x6/blackpill) - # MCU name - # Bootloader selection - BOOTLOADER := tinyuf2 - - AUDIO_ENABLE = yes # Audio output - AUDIO_SUPPORTED = yes # is set to no in kb, needs to be forcibly enabled - AUDIO_DRIVER = pwm_hardware - - BACKLIGHT_DRIVER = pwm - - OVERLOAD_FEATURES = yes -endif - -ifeq ($(strip $(MCU)), atmega32u4) - LTO_ENABLE = yes - BOOTLOADER = qmk-hid - BOOTLOADER_SIZE = 512 - EXTRAKEY_ENABLE = no -else - OVERLOAD_FEATURES = yes -endif - -ifeq ($(strip $(OVERLOAD_FEATURES)), yes) - BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite - MOUSEKEY_ENABLE = yes # Mouse keys - EXTRAKEY_ENABLE = yes # Audio control and System control - CONSOLE_ENABLE = yes # Console for debug - COMMAND_ENABLE = no # Commands for debug and configuration - NKRO_ENABLE = yes # Enable N-Key Rollover - RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow - - MOUSE_SHARED_EP = no - - AUTOCORRECT_ENABLE = yes - CAPS_WORD_ENABLE = yes - SWAP_HANDS_ENABLE = yes - TAP_DANCE_ENABLE = yes - WPM_ENABLE = yes - LTO_ENABLE = no - # OPT = 3 - - CUSTOM_UNICODE_ENABLE = yes - CUSTOM_POINTING_DEVICE = yes - CUSTOM_SPLIT_TRANSPORT_SYNC = yes - -endif diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/config.h b/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/config.h deleted file mode 100644 index aa8dc85054..0000000000 --- a/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/config.h +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2022 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT_charybdis_4x6( \ -XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, \ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ -XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX, \ - K32, K33, K34, K35, K36, \ - XXX, K32, K37 \ -) diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/keymap.c deleted file mode 100644 index dbab7f9820..0000000000 --- a/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/keymap.c +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/rules.mk b/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/rules.mk deleted file mode 100644 index ef40279cbc..0000000000 --- a/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -# Copyright 2021 Manna Harbour -# https://github.com/manna-harbour/miryoku - -MIRYOKU_KLUDGE_THUMBCOMBOS=yes diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/config.h b/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/config.h deleted file mode 100644 index 7c46c83310..0000000000 --- a/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/config.h +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define CIRQUE_PINNACLE_TAP_ENABLE -#define POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE -#define POINTING_DEVICE_GESTURES_SCROLL_ENABLE - -#define OLED_DISPLAY_128X128 diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/halconf.h b/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/halconf.h deleted file mode 100644 index 906bd65197..0000000000 --- a/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/halconf.h +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Copyright 2022 Charly Delay (@0xcharly) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define HAL_USE_SPI TRUE -#define HAL_USE_I2C TRUE - -#include_next diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/keymap.c b/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/keymap.c deleted file mode 100644 index bf75e97841..0000000000 --- a/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/keymap.c +++ /dev/null @@ -1,176 +0,0 @@ -/** - * Copyright 2022 Charly Delay (@0xcharly) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "drashna.h" - -// clang-format off -#define LAYOUT_split_3x5_2_wrapper(...) LAYOUT_split_3x5_2(__VA_ARGS__) -#define LAYOUT_split_3x5_2_base( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ - K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ - K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \ - ) \ - LAYOUT_split_3x5_2 ( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ - ALT_T(K11), K12, K13, K14, GUI_T(K15), LGUI_T(K16), K17, K18, K19, LALT_T(K1A), \ - CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), \ - KC_SPC, BK_LWER, DL_RAIS, RSFT_T(KC_ENT) \ - ) - -#define LAYOUT_split_3x5_2_base_wrapper(...) LAYOUT_split_3x5_2_base(__VA_ARGS__) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_DEFAULT_LAYER_1] = LAYOUT_split_3x5_2_base_wrapper( - _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, - _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, - _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ - ), - - [_DEFAULT_LAYER_2] = LAYOUT_split_3x5_2_base_wrapper( - ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________, - ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________, - ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________ - ), - [_DEFAULT_LAYER_3] = LAYOUT_split_3x5_2_base_wrapper( - _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, - _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, - _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ - ), - - [_DEFAULT_LAYER_4] = LAYOUT_split_3x5_2_base_wrapper( - _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, - _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, - _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ - ), - - [_MOUSE] = LAYOUT_split_3x5_2( - _______, _______, _______, _______, _______, KC_WH_U, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, - _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, - _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, - SNIPING, _______, _______, _______ - ), - [_LOWER] = LAYOUT_split_3x5_2_wrapper( - _________________LOWER_L1__________________, _________________LOWER_R1__________________, - _________________LOWER_L2__________________, _________________LOWER_R2__________________, - _________________LOWER_L3__________________, _________________LOWER_R3__________________, - _______, _______, _______, AUTO_CTN - ), - [_RAISE] = LAYOUT_split_3x5_2_wrapper( - _________________RAISE_L1__________________, _________________RAISE_R1__________________, - _________________RAISE_L2__________________, _________________RAISE_R2__________________, - _________________RAISE_L3__________________, _________________RAISE_R3__________________, - _______, _______, _______, _______ - ), - [_ADJUST] = LAYOUT_split_3x5_2_wrapper( - _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, - _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, - _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, - KC_NUKE, _______, _______, QK_BOOT - ), -}; - -#if defined(OLED_ENABLE) && defined(OLED_DISPLAY_128X128) -# ifdef UNICODE_COMMON_ENABLE -# include "process_unicode_common.h" -# include "keyrecords/unicode.h" -# endif - -extern const char PROGMEM display_border[3]; - -extern bool is_oled_enabled; - - -bool oled_task_keymap(void) { - static const char PROGMEM header_image[] = { - 0, 192, 32, 16, 8, 4, 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, 7, 15, 31, 63, 127, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 127, 63, 31, 15, 7, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 8, 16, 32, 192, 0, - // 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 7, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 7, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 0 - }; - oled_write_raw_P(header_image, sizeof(header_image)); - oled_set_cursor(7, 0); - oled_write_P(PSTR("Dilemma"), true); - - render_default_layer_state(1, 1); - render_layer_state(1, 2); - render_kitty(0, 5); - render_wpm(1, 7, 5); -# if defined(POINTING_DEVICE_ENABLE) - render_pointing_dpi_status(dilemma_get_pointer_sniping_enabled() ? dilemma_get_pointer_sniping_dpi() : dilemma_get_pointer_default_dpi(), 1, 7, 6); - render_mouse_mode(17, 6); -# elif defined(WPM_ENABLE) && defined(DEBUG_MATRIX_SCAN_RATE) - render_matrix_scan_rate(1, 7, 6); -# endif - render_bootmagic_status(7, 7); - render_user_status(1, 9); - - render_mod_status(get_mods() | get_oneshot_mods(), 1, 10); - render_keylock_status(host_keyboard_led_state(), 1, 11); - render_unicode_mode(1, 12); - -// render_rgb_hsv(1, 13); - oled_set_cursor(1, 13); - oled_write_P(PSTR("OS: "), false); - extern os_variant_t os_type; - switch (os_type) { - case OS_LINUX: - oled_write_ln_P(PSTR("Linux"), false); - break; - case OS_WINDOWS: - oled_write_ln_P(PSTR("Windows"), false); - break; - case OS_MACOS: - oled_write_ln_P(PSTR("MacOS"), false); - break; - case OS_IOS: - oled_write_ln_P(PSTR("iOS"), false); - break; - default: - break; - } - - render_keylogger_status(1, 14); - - for (uint8_t i = 1; i < 15; i++) { - oled_set_cursor(0, i); - oled_write_raw_P(display_border, sizeof(display_border)); - oled_set_cursor(21, i); - oled_write_raw_P(display_border, sizeof(display_border)); - } - - static const char PROGMEM footer_image[] = {0, 3, 4, 8, 16, 32, 64, 128, 128, 128, 128, 128, 128, 128, 192, 224, 240, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 240, 224, 192, 128, 128, 128, 128, 128, 128, 128, 64, 32, 16, 8, 4, 3, 0}; - oled_set_cursor(0, 15); - oled_write_raw_P(footer_image, sizeof(footer_image)); - - return false; -} -#endif - - -#ifdef SWAP_HANDS_ENABLE -const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { - /* Left hand, matrix positions */ - {{0, 4}, {3, 4}, {2, 4}, {5, 4}, {4, 4}}, - {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}}, - {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}}, - {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}}, - /* Right hand, matrix positions */ - {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}}, - {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}}, - {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}}, - {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}}, - }; -#endif diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/mcuconf.h b/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/mcuconf.h deleted file mode 100644 index f194dd225c..0000000000 --- a/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/mcuconf.h +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Copyright 2022 Charly Delay (@0xcharly) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include_next - -#undef RP_SPI_USE_SPI1 -#define RP_SPI_USE_SPI1 TRUE - -#undef RP_I2C_USE_I2C1 -#define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/rules.mk b/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/rules.mk deleted file mode 100644 index a1be9cb8fd..0000000000 --- a/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/rules.mk +++ /dev/null @@ -1,7 +0,0 @@ -SWAP_HANDS_ENABLE = no -AUTOCORRECT_ENABLE = yes -CAPS_WORD_ENABLE = yes -CONSOLE_ENABLE = yes -KEYLOGGER_ENABLE = no -WPM_ENABLE = yes -OLED_ENABLE = yes diff --git a/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h b/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h deleted file mode 100644 index 5a3153ae37..0000000000 --- a/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT_split_4x6_5( \ -XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, \ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ -XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX, \ - K32, K33, K34, K35, K36, K37, \ - XXX, XXX, XXX, XXX \ -) diff --git a/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c deleted file mode 100644 index dbab7f9820..0000000000 --- a/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/bfake/keymaps/mechmerlin/keymap.c b/keyboards/bfake/keymaps/mechmerlin/keymap.c deleted file mode 100644 index fec728d87e..0000000000 --- a/keyboards/bfake/keymaps/mechmerlin/keymap.c +++ /dev/null @@ -1,51 +0,0 @@ -/* -Copyright 2017 Luiz Ribeiro - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_all( - QK_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_NO, KC_BSPC, - 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TG(2), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(1), KC_RALT, KC_RGUI, KC_RCTL - ), - [1] = LAYOUT_all( - 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_NO, KC_DEL, - 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_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - MO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - [2] = LAYOUT_all( - 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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT - ), - - [3] = LAYOUT_all( - 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, QK_BOOT, 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_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 - ), -}; - diff --git a/keyboards/bfake/keymaps/mechmerlin/readme.md b/keyboards/bfake/keymaps/mechmerlin/readme.md deleted file mode 100644 index b85b6537c1..0000000000 --- a/keyboards/bfake/keymaps/mechmerlin/readme.md +++ /dev/null @@ -1,18 +0,0 @@ -MechMerlin's FaceW Sprit Edition Layout -====================== - -This is the preferred 60% layout used by u/merlin36, host of the [MechMerlin YouTube channel](www.youtube.com/mechmerlin). - -## Keyboard Notes -- The FaceW Sprit Edition can be purchased on [mechanicalkeyboards.com](www.mechanicalkeyboards.com) -- Uses ps2avru instead of ps2avrgb -- To put in reset mode hold `q` while inserting the USB cable -- Use flashing instructions from ps2avrgb QMK port - -## Keymap Notes -- Does not support any form of inswitch lighting as Merlin hates them. -- Arrow toggle switch to the right of right shift -- Reset is FN + Left Shift + R - -### Build -To build this keymap, simply run `make bfake:mechmerlin` from the qmk_firmware directory. diff --git a/keyboards/boardsource/lulu/keymaps/manna-harbour_miryoku/config.h b/keyboards/boardsource/lulu/keymaps/manna-harbour_miryoku/config.h deleted file mode 100644 index b4249396da..0000000000 --- a/keyboards/boardsource/lulu/keymaps/manna-harbour_miryoku/config.h +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku(\ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT(\ -XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX,\ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX,\ -XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX,\ - XXX, K32, K33, K34, K35, K36, K37, XXX\ -) diff --git a/keyboards/boardsource/lulu/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/boardsource/lulu/keymaps/manna-harbour_miryoku/keymap.c deleted file mode 100644 index dbab7f9820..0000000000 --- a/keyboards/boardsource/lulu/keymaps/manna-harbour_miryoku/keymap.c +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/boardsource/lulu/keymaps/rmeli/config.h b/keyboards/boardsource/lulu/keymaps/rmeli/config.h deleted file mode 100644 index 171eaed0db..0000000000 --- a/keyboards/boardsource/lulu/keymaps/rmeli/config.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -Copyright 2022 Rocco Meli <@RMeli> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define MASTER_LEFT // Left side is the master -#define SPLIT_LED_STATE_ENABLE - -#ifdef RGB_MATRIX_ENABLE -// Configure RGB Matrix -# define RGB_MATRIX_KEYPRESSES // enable keypress effects -# define RGB_MATRIX_LED_FLUSH_LIMIT 16 -# define RGB_DISABLE_WHEN_USB_SUSPENDED -# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR -# define RGB_MATRIX_DEFAULT_HUE 10 -# define RGB_MATRIX_DEFAULT_SAT 255 -# define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS -// Disable RGB Matrix effects (from lulu/config.h) -# undef ENABLE_RGB_MATRIX_ALPHAS_MODS -# undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN -# undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT -# undef ENABLE_RGB_MATRIX_BREATHING -# undef ENABLE_RGB_MATRIX_BAND_SAT -# undef ENABLE_RGB_MATRIX_BAND_VAL -// Enable RGB Matrix effects -# define ENABLE_RGB_MATRIX_BREATHING -# define ENABLE_RGB_MATRIX_TYPING_HEATMAP -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -# define ENABLE_RGB_MATRIX_SOLID_COLOR -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -#endif diff --git a/keyboards/boardsource/lulu/keymaps/rmeli/keymap.c b/keyboards/boardsource/lulu/keymaps/rmeli/keymap.c deleted file mode 100644 index f9be18ee2d..0000000000 --- a/keyboards/boardsource/lulu/keymaps/rmeli/keymap.c +++ /dev/null @@ -1,108 +0,0 @@ -/* -Copyright 2022 Cole Smith -Copyright 2022 Rocco Meli <@RMeli> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -#include "rmeli.h" - -enum layers { - _QWERTY, - _COLEMAK_DH, - _RAISE, - _LOWER, - _ADJUST, -}; - -#define RAISE MO(_RAISE) -#define LOWER MO(_LOWER) - -#define QWY_DF DF(_QWERTY) -#define CMK_DF DF(_COLEMAK_DH) - -// clang-format off -#define __________THUMB_LEFT_x4___________ KC_LALT, KC_LGUI, LOWER, KC_SPC -#define __________THUMB_RIGHT_x4__________ KC_ENT, RAISE, KC_LCTL, KC_RGUI -// clang-format on - -/* LAYOUT - * - * ,-----------------------------. ,-----------------------------. - * | | | | | | | | | | | | | | - * |----+----+----+----+----+----| |----+----+----+----+----+----| - * | | | | | | | | | | | | | | - * |----+----+----+----+----+----| |----+----+----+----+----+----| - * | | | | | | |-----. ,-----| | | | | | | - * |----+----+----+----+----+----| | | |----+----+----+----+----+----| - * | | | | | | |-----| |-----| | | | | | | - * `----------------------------/ / \ \----------------------------' - * | | | | / / \ \ | | | | - * | | | |/ / \ \ | | | | - * `--------------''-----' '------''--------------' - */ - -// Define wrapper for standard LULU layout -#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_QWERTY] = LAYOUT_wrapper( - ___________________NUMBER_LEFT_x6___________________, ___________________NUMBER_RIGHT_x6__________________, - ___________________QWERTY_L1_x6_____________________, ___________________QWERTY_R1_x6_____________________, - ___________________QWERTY_L2_x6_____________________, ___________________QWERTY_R2_x6_____________________, - ___________________QWERTY_L3_x6_____________________, KC_LBRC, KC_RBRC, ___________________QWERTY_R3_x6_____________________, - __________THUMB_LEFT_x4___________, __________THUMB_RIGHT_x4__________ - ), - - [_COLEMAK_DH] = LAYOUT_wrapper( - ___________________NUMBER_LEFT_x6___________________, ___________________NUMBER_RIGHT_x6__________________, - ________________COLEMAK_MOD_DH_L1_x6________________, ________________COLEMAK_MOD_DH_R1_x6________________, - ________________COLEMAK_MOD_DH_L2_x6________________, ________________COLEMAK_MOD_DH_R2_x6________________, - ________________COLEMAK_MOD_DH_L3_x6________________, KC_LBRC, KC_RBRC, ________________COLEMAK_MOD_DH_R3_x6________________, - __________THUMB_LEFT_x4___________, __________THUMB_RIGHT_x4__________ - ), - - [_LOWER] = LAYOUT_wrapper( - ____________________FUNC_LEFT_x6____________________, ____________________FUNC_RIGHT_x6___________________, - _______, ______________NUMBER_LEFT_x5_______________, ______________NUMBER_RIGHT_x5______________, _______, - _______, ______________UNICODE_L2_x5________________, ________________NAV_R2_x5__________________, XXXXXXX, - _______, ______________UNICODE_L3_x5________________, _______, _______, ________________NAV_R3_x5__________________, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ), - - [_RAISE] = LAYOUT_wrapper( - ___________________NUMBER_LEFT_x6___________________, ___________________NUMBER_RIGHT_x6__________________, - ___________________SYMBOL_LEFT_x6___________________, ___________________SYMBOL_RIGHT_x6__________________, - _______, ____________NAV_VIM_x4____________, XXXXXXX, ____________________SYMBOL_R2_x6____________________, - _______, _________________NONE_5x___________________, _______, _______, ____________________SYMBOL_R3_x6____________________, - _______, _______, _______, _______, _______, _______, _______, _______ - ), - - [_ADJUST] = LAYOUT_wrapper( - QK_BOOT, _________________NONE_5x___________________, ______________________NONE_6x_______________________, - XXXXXXX, _________________NONE_5x___________________, _______________CONFIG_R1_x5________________, QWY_DF, - RGB_TOG, ________________RGB_L2_x5__________________, _______________CONFIG_R2_x5________________, XXXXXXX, - XXXXXXX, ________________RGB_L3_x5__________________, _______, _______, _______________CONFIG_R3_x5________________, CMK_DF, - _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; -// clang-format on - -layer_state_t layer_state_set_user(layer_state_t state) { - return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); -} diff --git a/keyboards/boardsource/lulu/keymaps/rmeli/rules.mk b/keyboards/boardsource/lulu/keymaps/rmeli/rules.mk deleted file mode 100644 index 035e9814e2..0000000000 --- a/keyboards/boardsource/lulu/keymaps/rmeli/rules.mk +++ /dev/null @@ -1,9 +0,0 @@ -TAP_DANCE_ENABLE = yes -AUTO_SHIFT_ENABLE = no // disable auto-shift with home row mods - -UNICODEMAP_ENABLE = yes -NKRO_ENABLE = yes -MAGIC_ENABLE = yes - -RGBLIGHT_ENABLE = no -RGB_MATRIX_ENABLE = yes \ No newline at end of file diff --git a/keyboards/boardsource/the_mark/keymaps/stanrc85/keymap.c b/keyboards/boardsource/the_mark/keymaps/stanrc85/keymap.c deleted file mode 100644 index 5b37bb6667..0000000000 --- a/keyboards/boardsource/the_mark/keymaps/stanrc85/keymap.c +++ /dev/null @@ -1,98 +0,0 @@ -/* Copyright 2020 Stanrc85 - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H -#include "stanrc85.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Base */ -[_QWERTY] = LAYOUT_all( - KC_ESC, 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_BSPC, KC_BSPC, KC_MPLY, - 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, CA_SCLN, - KC_CTLE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, CA_QUOT, - KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, LT_SPCF, LT_SPCF, LT_SPCF, TD_TWIN, MO(_FN2_60), KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT -), -[_DEFAULT] = LAYOUT_all( - KC_ESC, 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_BSPC, KC_BSPC, KC_MPLY, - 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, CA_SCLN, - KC_CTLE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, CA_QUOT, - KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, LT_SPCF, LT_SPCF, LT_SPCF, TD_TWIN, MO(_FN2_60), KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT -), -[_FN1_60] = LAYOUT_all( - KC_TILD, 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_DEL, KC_DEL, _______, - _______, _______, CA_QUOT, KC_VOLU, CA_SCLN, _______, _______, KC_HOME, KC_UP, KC_END, KC_PSCR, _______, _______, KC_INS, _______, - KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_MPLY, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, - _______, _______, KC_RDP, _______, _______, _______, _______, _______, KC_WBAK, KC_WFWD, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), -[_FN2_60] = LAYOUT_all( - RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, RGB_SAI, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MAKE, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TG(_DEFAULT) -) - -}; - - -bool rgb_matrix_indicators_user(void) { - uint8_t layer = get_highest_layer(layer_state); - switch (layer) { - case _FN1_60: - rgb_matrix_set_color(10, 0, 0, 255); - break; - case _FN2_60: - rgb_matrix_set_color(10, 255, 255, 255); - break; - case _DEFAULT: - rgb_matrix_set_color(10, 0, 255, 0); - break; - default: - break; - } - if (host_keyboard_led_state().caps_lock) { - rgb_matrix_set_color(10, 255, 0, 0); - } - return false; -} - -void matrix_init_kb(void){ - -#ifdef RGB_MATRIX_ENABLE - - g_led_config = (led_config_t){ { - // Key Matrix to LED Index - { 10 , 10 , 9 , 9 , 8 , 7 , 7 , 6 , 5 , 5 , 4 , 3 , 3 , 2 , 1 , 1 }, - { 11 , 11 , 9 , 9 , 8 , 7 , 7 , 6 , 5 , 5 , 4 , 3 , 3 , 2 , 0 , 1 }, - { 12 , 12 , 9 , 9 , 8 , 7 , 7 , 6 , 5 , 5 , 4 , 3 , 3 , 2 , 23 , 1 }, - { 13 , 13 , 14 , 14 , 15 , 16 , 16 , 17 , 18 , 18 , 19 , 20 , 20 , 21 , 22 , 22 }, - { 13 , 13 , 14 , 14 , 15 , 16 , 16 , 17 , 18 , 18 , 19 , 20 , 20 , 21 , 22 , 22 }, - }, { - // LED Index to Physical Position - {224, 42}, {224, 21}, {209, 21}, {179, 21}, {164, 21}, {134, 21}, {119, 21}, {89, 21}, {74, 21}, {45, 21}, {30, 21}, {30, 42}, - {30, 64}, {30, 85}, {45, 85}, {74, 85}, {89, 85}, {119, 85}, {134, 85}, {164, 85}, {179, 85}, {209, 85}, {224, 85}, {224, 64} - }, { - // LED Index to Flag - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL - } }; - -#endif - matrix_init_user(); -} diff --git a/keyboards/boardwalk/keymaps/nchristus/config.h b/keyboards/boardwalk/keymaps/nchristus/config.h deleted file mode 100644 index a2530241f4..0000000000 --- a/keyboards/boardwalk/keymaps/nchristus/config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once diff --git a/keyboards/boardwalk/keymaps/nchristus/keymap.c b/keyboards/boardwalk/keymaps/nchristus/keymap.c deleted file mode 100644 index df642bcd6f..0000000000 --- a/keyboards/boardwalk/keymaps/nchristus/keymap.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -// Layer shorthand -#define _QW 0 - -#define LOWER LT(1, KC_SPC) -#define RAISE LT(2, KC_ENT) - -#define CTRLESC CTL_T(KC_ESC) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap _QWE: Base Layer (Default Layer) */ - [_QW] = LAYOUT_ortho_hhkb( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, _______, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - CTRLESC, KC_A, KC_S, KC_D, KC_F, KC_G, _______, _______, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - MO(3), KC_LCTL, KC_LALT, KC_LGUI, RAISE, LOWER, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT - ), - - /* Keymap LOWER: Lower Layer */ - [1] = LAYOUT_ortho_hhkb( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______ - ), - - /* Keymap RAISE: Raise Layer */ - [2] = LAYOUT_ortho_hhkb( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, XXXXXXX, _______, _______, _______, _______ - ), - - /* Keymap _FL: Function Layer */ - [3] = LAYOUT_ortho_hhkb( - QK_BOOT, _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; diff --git a/keyboards/boardwalk/keymaps/nchristus/readme.md b/keyboards/boardwalk/keymaps/nchristus/readme.md deleted file mode 100644 index 73cf19b06f..0000000000 --- a/keyboards/boardwalk/keymaps/nchristus/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for Boardwalk diff --git a/keyboards/boardwalk/keymaps/nchristus/rules.mk b/keyboards/boardwalk/keymaps/nchristus/rules.mk deleted file mode 100644 index b07a6475be..0000000000 --- a/keyboards/boardwalk/keymaps/nchristus/rules.mk +++ /dev/null @@ -1,14 +0,0 @@ -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -RGBLIGHT_ENABLE = yes diff --git a/keyboards/cannonkeys/tmov2/keymaps/brandonschlack/keymap.c b/keyboards/cannonkeys/tmov2/keymaps/brandonschlack/keymap.c deleted file mode 100644 index 2a95402863..0000000000 --- a/keyboards/cannonkeys/tmov2/keymaps/brandonschlack/keymap.c +++ /dev/null @@ -1,173 +0,0 @@ -/* Copyright 2020 Brandon Schlack - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H -#include "brandonschlack.h" - -/** - * Layer Names - * - * Layers mostly used for macro keys - */ -#define _REEDER _M1 -#define _NAV _M2 -#define _MOUSE _M3 - -/** - * Keycodes & Macros - */ -#define TG_BASE TO(_BASE) -#define TG_REDR TO(_REEDER) -#define TG_NAV TO(_NAV) -#define TG_MOUS TO(_MOUSE) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /** - * Base - * ┌───┬┬┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │Esc│││Tab  │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│Bck│ - * ├───┼┼┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ - * │PgU│││HyEsc │ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│ - * ├───┼┼┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤ - * │PgD│││Shift   │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│Shft│ Fn│ - * ├───┼┼┼┬┬┬┬┬┬┬┬┴──┬┴───┴┬──┴───┴─┬─┴───┴───┴┬──┴──┬┴──┬┼┬┬┬┬┼┬┬┬┤ - * │End│││││││││││Opt│Cmd  │        │          │  Cmd│Ctl│││││││││││ - * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘ - */ - [_BASE] = LAYOUT_default( - KC_ESC, 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_BSPC, - KC_PGUP, HY_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_PGDN, KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, PLY_FN1, - KC_END, KC_LOPT, KC_LCMD, SPC_RAI, SPC_RAI, KC_RCMD, KC_RCTL - ), - /** - * Reeder - * ┌───┬┬┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │ P │││     │   │   │   │   │   │   │   │   │   │   │   │   │   │ - * ├───┼┼┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ - * │ K │││      │   │   │   │   │   │   │   │   │   │   │   │      │ - * ├───┼┼┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤ - * │ J │││        │   │   │   │   │   │   │   │   │   │   │    │   │ - * ├───┼┼┼┬┬┬┬┬┬┬┬┴──┬┴───┴┬──┴───┴─┬─┴───┴───┴┬──┴──┬┴──┬┼┬┬┬┬┼┬┬┬┤ - * │ N │││││││││││   │     │        │          │     │   │││││││││││ - * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘ - */ - [_REEDER] = LAYOUT_default( - KC_P, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_K, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_J, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_N, _______, _______, _______, _______, _______, _______ - ), - /** - * Nav - * ┌───┬┬┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │ → │││     │   │   │   │   │   │   │   │   │   │   │   │   │   │ - * ├───┼┼┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ - * │ ↑ │││      │   │   │   │   │   │   │   │   │   │   │   │      │ - * ├───┼┼┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤ - * │ ↓ │││        │   │   │   │   │   │   │   │   │   │   │    │   │ - * ├───┼┼┼┬┬┬┬┬┬┬┬┴──┬┴───┴┬──┴───┴─┬─┴───┴───┴┬──┴──┬┴──┬┼┬┬┬┬┼┬┬┬┤ - * │ ← │││││││││││   │     │        │          │     │   │││││││││││ - * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘ - */ - [_NAV] = LAYOUT_default( - KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_DOWN, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_LEFT, _______, _______, _______, _______, _______, _______ - ), - /** - * Mouse - * ┌───┬┬┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │WhU│││     │   │   │   │   │   │   │   │   │   │   │   │   │   │ - * ├───┼┼┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ - * │ ↑ │││      │   │   │   │   │   │   │   │   │   │   │   │      │ - * ├───┼┼┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤ - * │ ↓ │││        │   │   │   │   │   │   │   │   │   │   │    │   │ - * ├───┼┼┼┬┬┬┬┬┬┬┬┴──┬┴───┴┬──┴───┴─┬─┴───┴───┴┬──┴──┬┴──┬┼┬┬┬┬┼┬┬┬┤ - * │WhD│││││││││││   │     │        │          │     │   │││││││││││ - * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘ - */ - [_MOUSE] = LAYOUT_default( - MC_WH_U, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_DOWN, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - MC_WH_D, _______, _______, _______, _______, _______, _______ - ), - /** - * Lower - * ┌───┬┬┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │Nxt│││Del  │BrD│BrU│Msn│LHP│   │   │   │   │   │   │ ↑ │Mut│SlD│ - * ├───┼┼┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ - * │VlU│││HyCaps│   │   │NxW│PvT│Bck│Fwd│NxT│   │   │ ← │ → │ Play │ - * ├───┼┼┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤ - * │VlD│││        │   │   │   │1PX│1Ps│   │   │   │   │ ↓ │    │   │ - * ├───┼┼┼┬┬┬┬┬┬┬┬┴──┬┴───┴┬──┴───┴─┬─┴───┴───┴┬──┴──┬┴──┬┼┬┬┬┬┼┬┬┬┤ - * │Prv│││││││││││   │     │        │          │     │   │││││││││││ - * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘ - */ - [_LOWER] = LAYOUT_default( - KC_MNXT, KC_DEL, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, _______, _______, _______, _______, _______, _______, KC_UP, KC_MUTE, MC_SLPD, - KC_VOLU, HY_CAPS, _______, _______, NXT_WIN, PRV_TAB, MC_BACK, MC_FWRD, NXT_TAB, _______, _______, KC_LEFT, KC_RGHT, KC_MPLY, - KC_VOLD, _______, XXXXXXX, _______, _______, _______, PX_AFLL, OP_AFLL, _______, _______, _______, _______, KC_DOWN, _______, _______, - KC_MPRV, _______, _______, _______, _______, _______, _______ - ), - - /** - * Raise - * ┌───┬┬┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │Hom│││~ `  │! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│   │ - * ├───┼┼┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ - * │PgU│││      │ F1│ F2│ F3│ F4│ F5│ F6│_ -│+ =│   │   │   │      │ - * ├───┼┼┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤ - * │PgD│││        │ F7│ F8│ F9│F10│F11│F12│   │   │   │| \│    │   │ - * ├───┼┼┼┬┬┬┬┬┬┬┬┴──┬┴───┴┬──┴───┴─┬─┴───┴───┴┬──┴──┬┴──┬┼┬┬┬┬┼┬┬┬┤ - * │End│││││││││││   │     │        │          │     │   │││││││││││ - * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘ - */ - [_RAISE] = LAYOUT_default( - KC_HOME, KC_GRV, 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_PGUP, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, _______, _______, _______, _______, - KC_PGDN, _______, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, KC_BSLS, _______, _______, - KC_END, _______, _______, _______, _______, _______, _______ - ), - /** - * Adjust - * ┌───┬┬┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │Bse│││Make │   │   │EEP│RST│   │   │   │   │   │   │   │   │   │ - * ├───┼┼┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ - * │Rdr│││      │   │   │   │   │   │   │   │   │   │   │   │      │ - * ├───┼┼┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤ - * │Nav│││        │   │   │   │   │   │   │   │   │   │   │    │   │ - * ├───┼┼┼┬┬┬┬┬┬┬┬┴──┬┴───┴┬──┴───┴─┬─┴───┴───┴┬──┴──┬┴──┬┼┬┬┬┬┼┬┬┬┤ - * │Mse│││││││││││   │     │        │          │     │   │││││││││││ - * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘ - */ - [_ADJUST] = LAYOUT_default( - TG_BASE, QM_MAKE, _______, _______, EE_CLR, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, - TG_REDR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - TG_NAV, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - TG_MOUS, _______, _______, _______, _______, _______, _______ - ), -}; - -void keyboard_post_init_keymap(void) { - rgblight_disable_noeeprom(); -} - -layer_state_t layer_state_set_keymap(layer_state_t state) { - return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); -} diff --git a/keyboards/centromere/keymaps/mattly/keymap.c b/keyboards/centromere/keymaps/mattly/keymap.c deleted file mode 100644 index bee7e98e12..0000000000 --- a/keyboards/centromere/keymaps/mattly/keymap.c +++ /dev/null @@ -1,55 +0,0 @@ -#include QMK_KEYBOARD_H -#include "mattly.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - // I apparently soldered in my switches on the wrong sides of the boards, so this is mirrored - - [_BASE_MAC] = LAYOUT_split_3x6_3( - KC_SCLN, KC_P, O_CTL, I_ALT, U_GUI, KC_Y, KC_T, R_GUI, E_ALT, W_CTL, KC_Q, KC_BSPC, - KC_QUOT, MINSCTL, L_ALT, K_GUI, J_SFT, KC_H, KC_G, F_SFT, D_GUI, S_ALT, A_CTL, KC_CAPS, - KC_ENT, KC_SLSH, KC_DOT, KC_COMM, KC_M, KC_N, KC_B, KC_V, KC_C, KC_X, KC_Z, NAVLOCK, - DEL_WRP, BSP_SYM, SPC_SFT, SPC_SFT, TAB_NUM, ESC_HYP - ), - - [_OVER_WIN] = LAYOUT_split_3x6_3( - _______, _______, O_GUI, _______, U_CTL, _______, _______, R_CTL, _______, W_GUI, _______, _______, - _______, MINSGUI, _______, K_CTL, _______, _______, _______, _______, D_CTL, _______, A_GUI, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______ - ), - - - [_SYMBOL] = LAYOUT_split_3x6_3( - _______, XXXXXXX, KC_ASTR, KC_PLUS, KC_RABK, KC_LABK, KC_RBRC, KC_LBRC, KC_TILD, KC_GRV, KC_AMPR, _______, - _______, KC_UNDS, KC_AT, KC_EXLM, KC_COLN, KC_SCLN, KC_RPRN, KC_LPRN, KC_EQL, KC_PERC, KC_DLR, _______, - _______, KC_QUES, KC_BSLS, KC_PIPE, KC_DQUO, KC_QUOT, KC_RCBR, KC_LCBR, KC_HASH, KC_CIRC, KC_HASH, XXXXXXX, - _______, _______, _______, _______, _______, _______ - ), - - [_NAVNUM] = LAYOUT_split_3x6_3( - KC_PLUS, KC_DOT, KC_P9, KC_P8, KC_P7, KC_DLR, KC_PGUP, M_FWORD, KC_UP, M_BWORD, M_NAVFW, M_NXWIN, - KC_MINS, KC_EQL, KC_P6, KC_P5, KC_P4, KC_PERC, KC_PGDN, KC_RGHT, KC_DOWN, KC_LEFT, M_NAVBK, M_PVWIN, - KC_ASTR, KC_COMM, KC_P3, KC_P2, KC_P1, KC_P0, M_NXTAB, KC_END, XXXXXXX, KC_HOME, M_PVTAB, _______, - KC_P0, _______, _______, _______, _______, _______ - ), - [_NAVNUM_WIN] = LAYOUT_split_3x6_3( - _______, _______, _______, _______, _______, _______, _______, W_FWORD, _______, W_BWORD, W_NAVFW, W_NXWIN, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, W_NAVBK, W_PVWIN, - _______, _______, _______, _______, _______, _______, W_NXTAB, _______, _______, _______, W_PVTAB, _______, - _______, _______, _______, _______, _______, _______ - ), - - [_FUNCT] = LAYOUT_split_3x6_3( - KC_F15, KC_F12, KC_F9, KC_F8, KC_F7, KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, - KC_F14, KC_F11, KC_F6, KC_F5, KC_F4, KC_MUTE, XXXXXXX, TOG_WIN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_F13, KC_F10, KC_F3, KC_F2, KC_F1, KC_VOLD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - _______, _______, _______, _______, _______, _______ - ), - [_FUNCT_WIN] = LAYOUT_split_3x6_3( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______ - ), -}; diff --git a/keyboards/centromere/keymaps/mattly/rules.mk b/keyboards/centromere/keymaps/mattly/rules.mk deleted file mode 100644 index 0a5b666e85..0000000000 --- a/keyboards/centromere/keymaps/mattly/rules.mk +++ /dev/null @@ -1 +0,0 @@ -MOUSEKEY_ENABLE = no diff --git a/keyboards/checkerboards/quark/keymaps/ajp10304/keymap.c b/keyboards/checkerboards/quark/keymaps/ajp10304/keymap.c deleted file mode 100644 index b5b4721ce6..0000000000 --- a/keyboards/checkerboards/quark/keymaps/ajp10304/keymap.c +++ /dev/null @@ -1,219 +0,0 @@ -/* Copyright 2021 Alan Pocklington - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "ajp10304.h" -#include "keymap_uk.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Qwerty - * ,-----------------------------------------------------------------------------------. - * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Tab | A | S | D | F | G | H | J | K | L | ;: | Enter| - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 | - * `-----------------------------------------------------------------------------------' - */ -[_QWERTY] = LAYOUT_ortho_4x12( - LT(_NUMPAD, KC_ESC), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC , - MT(MOD_LSFT, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MT(MOD_RSFT, KC_ENT) , - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT , - MO(_FUNC), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LSFT, KC_BTN2, KC_RCTL, MO(_FUNC2) -), - -/* Colemak-DHm - * ,-----------------------------------------------------------------------------------. - * | Esc | Q | W | F | P | B | J | L | U | Y | ;: | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Tab | A | R | S | T | G | M | N | E | I | O | Enter| - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shft | Z | X | C | D | V | K | H | ,< | .> | /? | Shft | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 | - * `-----------------------------------------------------------------------------------' - */ -[_COLEMAK] = LAYOUT_ortho_4x12( - LT(_NUMPAD, KC_ESC), KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC , - MT(MOD_LSFT, KC_TAB), KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, MT(MOD_RSFT, KC_ENT) , - KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT , - MO(_FUNC), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LSFT, KC_BTN2, KC_RCTL, MO(_FUNC2) -), - -/* Function - * ,-----------------------------------------------------------------------------------. - * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT| - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn | - * `-----------------------------------------------------------------------------------' - */ -[_FUNC] = LAYOUT_ortho_4x12( - 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT , - KC_LSFT, KC_NUBS, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL, KC_BSLS, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) , - _______, _______, _______, _______, _______, _______, _______, MO(_MOUSE), _______, _______, _______, _______ -), - -/* Lower - * ,-----------------------------------------------------------------------------------. - * | 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks| - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_LOWER] = LAYOUT_ortho_4x12( - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_BSPC , - LSFT(KC_1), LSFT(KC_2), LSFT(KC_3), LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LSFT(KC_0), LCTL(KC_DEL), LCTL(KC_BSPC) , - SC_LSPO, KC_NUBS, KC_GRAVE, KC_NONUS_HASH, KC_QUOT, KC_MINS, KC_EQL, KC_NONUS_HASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) , - _______, _______, _______, _______, _______, KC_DEL, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY -), - -/* Raise - * ,-----------------------------------------------------------------------------------. - * | ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC| - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | ` | | | ( | ) | | | HOME | UP | END | |ZOOM +| - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | { | } | | |< | LEFT | DOWN |RIGHT | >| |ZOOM -| - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Mouse| | | | | Alt | Enter|Raise | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_RAISE] = LAYOUT_ortho_4x12( - KC_GRV, XXXXXXX, M_WORD_SEL, KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDN, XXXXXXX, KC_PSCR , - KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) , - _______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) , - MO(_MOUSE), _______, _______, _______, _______, KC_LALT, KC_ENT, _______, XXXXXXX, _______, _______, _______ -), - -/* Adjust (Lower + Raise) - * ,------------------------------------------------------------------------------------. - * | ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del | - * |------+------+------+------+------+-------------+------+------+------+------+-------| - * | CAPS | | | | | PLAY1| PLAY2| Mute | Vol+ | Play | |Qwerty | - * |------+------+------+------+------+------|------+------+------+------+------+-------| - * | PC/MC| | | | | STOP | STOP | Prev | Vol- | Next | |Colemak| - * |------+------+------+------+------+------+------+------+------+------+------+-------| - * | | | | | | | | | | | | - * `------------------------------------------------------------------------------------' - */ -[_ADJUST] = LAYOUT_ortho_4x12( - M_CUSTOM, QK_BOOT, QWERTY, BL_ON, BL_OFF, DM_REC1, DM_REC2, _______, _______, _______, _______, KC_DEL , - KC_CAPS, RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, DM_PLY1, DM_PLY2, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, QWERTY , - TG(_MAC), RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, DM_RSTP, DM_RSTP, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, COLEMAK , - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), - -/* Mouse - * ,-----------------------------------------------------------------------------------. - * | ESC | | | | | | | | BTN3 | | | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN |RIGHT | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_MOUSE] = LAYOUT_ortho_4x12( - KC_ESC , _______, _______, _______, _______, _______, _______, _______, KC_MS_BTN3, _______, _______, _______, - KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _______, _______, - KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), - -/* Num Pad - * ,-----------------------------------------------------------------------------------. - * | ESC | | | | | |NMLOCK| 7 | 8 | 9 | / | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | | | | | 4 | 5 | 6 | * | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | | | 1 | 2 | 3 | + | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | | | 0 | . | , | - | | - * `-----------------------------------------------------------------------------------' - */ -[_NUMPAD] = LAYOUT_ortho_4x12( - _______, _______, _______, _______, _______, _______, KC_NUM, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_SLASH, _______, - _______, _______, _______, _______, _______, _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_ASTERISK, _______, - _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_PLUS, _______, - _______, _______, _______, _______, _______, _______, _______, KC_KP_0, KC_KP_DOT, KC_COMM, KC_KP_MINUS, _______ -), - -/* Function 2 (Right hand side) - * ,-----------------------------------------------------------------------------------. - * | | |WRDSEL| | | | LNDEL| | | | | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | LNSEL| DUP | | | | |LNJOIN| | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | UNDO | CUT | COPY | PASTE| | | | | | | MODE | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_FUNC2] = LAYOUT_ortho_4x12( - _______, _______, M_WORD_SEL, _______, _______, _______, M_LINE_DEL, _______, _______, _______, _______, _______, - _______, _______, M_LINE_SEL, M_DUP, _______, _______, _______, M_JOIN, _______, _______, _______, _______, - _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______, _______, _______, _______, _______, M_MODE, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), - -[_MAC]= LAYOUT_ortho_4x12( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - MFNC, _______, _______, _______, MLWR, _______, _______, MRSE, _______, _______, _______, MFNC2 -), - -[_MLWR] = LAYOUT_ortho_4x12( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), - -[_MRSE] = LAYOUT_ortho_4x12( - _______, _______, M_WORD_SEL_MAC, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - _______, _______, _______, _______, _______, _______, _______, LCTL(KC_A), _______, LCTL(KC_E), _______, LGUI(KC_EQL) , - _______, _______, _______, _______, _______, _______, LALT(KC_LEFT), _______, _______, _______, LALT(KC_RIGHT), LGUI(KC_MINS) , - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), - -[_MFNC]= LAYOUT_ortho_4x12( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT) , - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), - -[_MFNC2] = LAYOUT_ortho_4x12( - _______, _______, M_WORD_SEL_MAC, _______, _______, _______, M_LINE_DEL_MAC, _______, _______, _______, _______, _______, - _______, _______, M_LINE_SEL_MAC, M_DUP_MAC, _______, _______, _______, M_JOIN_MAC, _______, _______, _______, _______, - _______, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), _______, _______, _______, _______, _______, _______, M_MODE_MAC, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -) - -}; diff --git a/keyboards/checkerboards/quark/keymaps/ajp10304/readme.md b/keyboards/checkerboards/quark/keymaps/ajp10304/readme.md deleted file mode 100644 index 5c9169fa47..0000000000 --- a/keyboards/checkerboards/quark/keymaps/ajp10304/readme.md +++ /dev/null @@ -1,126 +0,0 @@ -# AJP10304 Custom Quark Layout -# Also available for the Planck, JJ40 and Atreus50 - -**Note:** In the tables below where there are two characters on a key, -the second is the output when shift is applied. - -**Note:** The below tables assume a UK layout. - -#### Flashing -Refer to the README.md of the keyboard you want to flash. - -##### Main Qwerty Layer - -* Tab: when held, operates as shift. -* Enter: when held, operates as shift. -* MENU: perform right-click - -| | | | | | | | | | | | | -| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:| -| Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | -| Tab | A | S | D | F | G | H | J | K | L | ;: | Enter| -| Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft | -| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 | - -##### Main Colemak-DHm Layer - -| | | | | | | | | | | | | -| ---- |:----:| :---:|:---:|:-----:|:----:|:-----:|:-----:|:-----:|:----:|:----:| ----:| -| Esc | Q | W | F | P | B | J | L | U | Y | ;: | Bksp | -| Tab | A | R | S | T | G | M | N | E | I | O | Enter| -| Shft | Z | X | C | D | V | K | H | ,< | .> | /? | Shft | -| Fn | Ctrl | Alt | GUI | Lower | Bksp | Space | Raise | Shift | MENU | Ctrl | Fn2 | - -##### Function Layer -Activated when `fn` held in the above `qwerty` layer. - -| | | | | | | | | | | | | -| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| -| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | -| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT| -| Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift | -| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn2 | - -##### Lower Layer -Activated when `Lower` is held in the above `qwerty` layer. - -* Numbers are along the top row, their shifted counterparts are on row 2. -* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word. -* WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word. - -| | | | | | | | | | | | | -| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| -| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp | -| ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks| -| Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift | -| | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play | - -##### Raise Layer -Activated when `Raise` is held in the above `qwerty` layer. - -* Preferred layer for typing brackets. -* Allows for cursor navigation to be used solely with the right hand. -* WRDSEL: Select the word where the cursor is. -* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping. - -| | | | | | | | | | | | | -| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:| -| ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC| -| ` | | | ( | ) | | | HOME | UP | END | |ZOOM +| -| | | | { | } | ||<| LEFT | DOWN |RIGHT |>||ZOOM -| -| Mouse | | | | | Alt | Enter |Raise | | | | | - -##### Lower + Raise -Activated when `Lower` and `Raise` are held together in the above `qwerty` layer. - -* Audio controls in the same position as cursor keys from the `Raise` layer. -* ????: Runs a macro for outputting a text string. Do not use this store passwords. -* Reset: Enter bootloader for flashing firmware to the keyboard. -* CAPS: Toggle caps lock. -* Macro functions: Allows recording of macros. To start recording the macro, press either REC1 or REC2. -To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2. -* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER, -MRSE with RAISE, MFNC with FUNC and MFNC2 with FUNC2 respectively. - -| | | | | | | | | | | | | -| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|:-------:| -| ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del | -| CAPS | | | | | PLAY1|PLAY2 | Mute | Vol+ | Play | | Qwerty | -| MAC | | | | | STOP1|STOP2 | Prev | Vol- | Next | | Colemak | -| | | | | | | | | DYN | | | | - -##### Function 2 Layer -Activated when `fn` held in the above `qwerty` layer. -* WRDSEL: Select the word where the cursor is. -* LNDEL: Delete the line where the cursor is. -* LNSEL: Select the line where the cursor is. -* DUP: Duplicate the selected text. -* LNJOIN: Join the line where the cursor is with the following line. -* MODE: Print either `PC` or `OSX` depending on what layer mode is active. - -| | | | | | | | | | | | | -| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| -| | |WRDSEL| | | | LNDEL| | | | | | -| | | LNSEL| DUP | | | | |LNJOIN| | | | -| | UNDO | CUT | COPY | PASTE| | | | | | | MODE | -| | | | | | | | | | | | | - -##### Mouse Layer -Activated when `fn` and `raise` held together. - -| | | | | | | | | | | | | -| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| -| ESC | | | | | | W_L | W_UP | BTN3 | W_DWN| W_R | | -| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | | -| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN | RIGHT| | | -| | | | | | | | | | | | | - -##### Number Pad Layout -Activated when holding `Esc` key. - -| | | | | | | | | | | | | -| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| -| | | | | | |NMLOCK| 7 | 8 | 9 | / | | -| | | | | | | | 4 | 5 | 6 | * | | -| | | | | | | | 1 | 2 | 3 | + | | -| | | | | | | | 0 | . | , | - | | diff --git a/keyboards/checkerboards/quark/keymaps/ajp10304/rules.mk b/keyboards/checkerboards/quark/keymaps/ajp10304/rules.mk deleted file mode 100644 index 6c605daecf..0000000000 --- a/keyboards/checkerboards/quark/keymaps/ajp10304/rules.mk +++ /dev/null @@ -1 +0,0 @@ -MOUSEKEY_ENABLE = yes diff --git a/keyboards/clueboard/66/keymaps/badger/keymap.c b/keyboards/clueboard/66/keymaps/badger/keymap.c deleted file mode 100644 index 4c40e5ec19..0000000000 --- a/keyboards/clueboard/66/keymaps/badger/keymap.c +++ /dev/null @@ -1,53 +0,0 @@ -/* -Copyright 2020 Dan White - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#include "badger.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY_LINUX] = LAYOUT_66_ansi( - KC_GRV, 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_BSPC, KC_HOME, - 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_END, - MOVE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, ADJUST, KC_RGUI, KC_LALT, KC_LEFT, KC_DOWN, KC_RGHT), - - [_MOVE_LINUX] = LAYOUT_66_ansi( - KC_ESC, VD_1, VD_2, VD_3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, IJ_UP, IJ_DOWN, KC_DEL, KC_PGUP, - _______, IJ_STEP, IJ_INTO, IJ_OUT, IJ_RUN, IJ_STOP, IJ_OUT, KC_PGUP, KC_HOME, KC_END, KC_PGDN, IJ_BACK, IJ_FWD, KC_INS, KC_PGDN, - _______, WM_LH, WM_UH, WM_RH, WD_FRWD, MAC_POP, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CS_RIGHT, CS_DOWN, _______, - _______, MM_UH, MM_BH, MAC_CPY, MAC_PST, WD_BACK, KC_MNXT, IJ_REN, IJ_IMPL, IJ_DECL, IJ_USAG, _______, KC_BRIU, - _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_BRID, KC_END), - - [_QWERTY_MAC] = LAYOUT_66_ansi( - KC_GRV, 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_BSPC, KC_HOME, - 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_END, - MOVE_MAC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, ADJUST, KC_RGUI, KC_LALT, KC_LEFT, KC_DOWN, KC_RGHT), - - [_MOVE_MAC] = LAYOUT_66_ansi( - KC_ESC, M_VD1, M_VD2, M_VD3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, IJ_UP, IJ_DOWN, KC_DEL, KC_PGUP, - _______, IJ_STEP, IJ_INTO, IJ_OUT, IJ_RUN, IJ_STOP, IJ_OUT, KC_PGUP, KC_HOME, KC_END, KC_PGDN, IJ_BACK, IJ_FWD, KC_INS, KC_PGDN, - _______, MM_LH, MM_MAX, MM_RH, WD_FRWD, MAC_POP, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CM_RIGHT, CM_DOWN, _______, - _______, MM_UH, MM_BH, MAC_CPY, MAC_PST, WD_BACK, KC_MNXT, IJ_REN, IJ_IMPL, IJ_DECL, IJ_USAG, _______, KC_BRIU, - _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_BRID, KC_END), - - [_ADJUST] = LAYOUT_66_ansi( - KC_ESC, 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_DEL, KC_VOLU, - _______, NK_ON, NK_OFF, EE_CLR, QK_BOOT, KC_MSTP, KC_MPLY, KC_PGUP, KC_HOME, KC_END, KC_PGDN, AG_SWAP, AG_NORM, KC_INS, KC_VOLD, - _______, GE_SWAP, GE_NORM, DB_TOGG, AG_SWAP, AG_NORM, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, - _______, DF_1, DF_2, KC_CAPS, _______, KC_MPRV, KC_MNXT, KC_MUTE, KC_WBAK, KC_WFWD, _______, _______, KC_BRIU, - _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_BRID, KC_END) -}; - diff --git a/keyboards/contra/keymaps/losinggeneration/README.md b/keyboards/contra/keymaps/losinggeneration/README.md deleted file mode 100644 index affd2fb9b4..0000000000 --- a/keyboards/contra/keymaps/losinggeneration/README.md +++ /dev/null @@ -1,30 +0,0 @@ -losinggeneration's Contra Layout -============================ - -This build uses the MIT layout. - -See description of the layout in the common folder -[here](../../../../users/losinggeneration/README.md) - -## Features -- Adjust - - Removed AGSwap, AGNorm, & Del - - Added Caps Lock, F1-F12 in a 4x3 grid, arrow cluster, - and layer transitions to the new layers. - - Moved Reset & Audio control to the right side - -## Layouts - -### Adjust (Lower + Raise) - -``` - ,-----------------------------------------------------------------------------------. - | | F1 | F2 | F3 | F4 | | RESET| Game |Numpad|Mouse | |Sleep | - |------+------+------+------+------+------+------+------+------+------+------+------| - | | F5 | F6 | F7 | F8 | | |Qwerty|Colmak|Workmn|Dvorak| | - |------+------+------+------+------+------+------+------+------+------+------+------| - | CAPS | F9 | F10 | F11 | F12 | | | | | | Up | | - |------+------+------+------+------+-------------+------+------+------+------+------| - | | | | | | | | XXX | Left | Down |Right | - `-----------------------------------------------------------------------------------' -``` diff --git a/keyboards/contra/keymaps/losinggeneration/config.h b/keyboards/contra/keymaps/losinggeneration/config.h deleted file mode 100644 index 4a64e977c9..0000000000 --- a/keyboards/contra/keymaps/losinggeneration/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2017 Danny Nguyen -Copyright 2018 Harley Laue - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -long with this program. If not, see . -*/ - -#pragma once - -#define USE_MIT_LAYOUT - -#define TAPPING_TERM 250 diff --git a/keyboards/contra/keymaps/losinggeneration/keymap.c b/keyboards/contra/keymaps/losinggeneration/keymap.c deleted file mode 100644 index c7fb08b8d8..0000000000 --- a/keyboards/contra/keymaps/losinggeneration/keymap.c +++ /dev/null @@ -1,40 +0,0 @@ -#include QMK_KEYBOARD_H -#include "losinggeneration-config.h" -#include "losinggeneration-keymap.h" - -extern keymap_config_t keymap_config; - -#define MT_CAPS LSFT_T(KC_CAPS) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -[_QWERTY] = CATMAP( QWERTY_LAYER ), -[_COLEMAK] = CATMAP( COLEMAK_LAYER ), -[_WORKMAN] = CATMAP( WORKMAN_LAYER ), -[_DVORAK] = CATMAP( DVORAK_LAYER ), -[_GAME] = CATMAP( GAME_LAYER ), -[_NUMPAD] = CATMAP( NUMPAD_LAYER ), -[_MOUSE] = CATMAP( MOUSE_LAYER ), -[_LOWER] = CATMAP( LOWER_LAYER ), -[_RAISE] = CATMAP( RAISE_LAYER ), - -/* Adjust (Lower + Raise) - * ,-----------------------------------------------------------------------------------. - * | | F1 | F2 | F3 | F4 | | QK_BOOT| Game |Numpad|Mouse | |Sleep | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | F5 | F6 | F7 | F8 | | |Qwerty|Colmak|Workmn|Dvorak| | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | CAPS | F9 | F10 | F11 | F12 | | | | | | Up | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | XXX | Left | Down |Right | - * `-----------------------------------------------------------------------------------' - */ -[_ADJUST] = CATMAP( - _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , _______, QK_BOOT, TO_GAME, TO_NUM , TO_MS , _______, KC_SLEP, - _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , _______, _______, QWERTY , COLEMAK, WORKMAN, DVORAK , _______, - MT_CAPS, KC_F9 , KC_F10, KC_F11 , KC_F12 , _______, _______, _______, _______, _______, KC_UP , _______, - _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT -) - -}; - diff --git a/keyboards/contra/keymaps/losinggeneration/rules.mk b/keyboards/contra/keymaps/losinggeneration/rules.mk deleted file mode 100644 index 34b0ba318f..0000000000 --- a/keyboards/contra/keymaps/losinggeneration/rules.mk +++ /dev/null @@ -1,14 +0,0 @@ -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -AUDIO_ENABLE = no # Audio output on port C6 -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -COMMAND_ENABLE = no # Commands for debug and configuration -CONSOLE_ENABLE = no # Console for debug(+400) -MIDI_ENABLE = no # MIDI controls -NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. - diff --git a/keyboards/converter/adb_usb/keymaps/zyber/keymap.c b/keyboards/converter/adb_usb/keymaps/zyber/keymap.c deleted file mode 100644 index a34b46d6de..0000000000 --- a/keyboards/converter/adb_usb/keymaps/zyber/keymap.c +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2022 ZyBeR (@ZyberSE) -// SPDX-License-Identifier: GPL-2.0 - -#include "zyber.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - LAYOUT_ext_ansi( - KC_ESC, 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_PSCR,KC_SCRL,KC_PAUS, KC_EJCT, - KC_GRV, KC_1, KC_2, KC_3, TD(SSHT), KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_EQL, KC_PSLS, KC_PAST, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PMNS, - KC_LCAP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(QUOT), KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT - ), -}; diff --git a/keyboards/converter/m0110_usb/keymaps/zyber/keymap.c b/keyboards/converter/m0110_usb/keymaps/zyber/keymap.c deleted file mode 100644 index c3b85313ce..0000000000 --- a/keyboards/converter/m0110_usb/keymaps/zyber/keymap.c +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2022 ZyBeR (@ZyberSE) -// SPDX-License-Identifier: GPL-2.0 - -#include "zyber.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* Default: - * M0110 M0120 - * ,---------------------------------------------------------. ,---------------. - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| |Nlk| =| /| *| - * |---------------------------------------------------------| |---------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| Å| ¨|Ent| | 7| 8| 9| -| - * |------------------------------------------------------| e| |---------------| - * |Ctrl | A| S| D| F| G| H| J| K| L| Ö| Ä| '| r| | 4| 5| 6| +| - * |---------------------------------------------------------| |---------------| - * |Shft| §| Z| X| C| V| B| N| M| ,| .| /| -|Shft| | 1| 2| 3| | - * `---------------------------------------------------------' |-----------|Ent| - * |Opt|Mac | Space |Fn |Opt| | 0| .| | - * `-----------------------------------------------' `---------------' - * M0110A - * ,---------------------------------------------------------. ,---------------. - * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| |Nlk| =| /| *| - * |---------------------------------------------------------| |---------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | 7| 8| 9| -| - * |-----------------------------------------------------' | |---------------| - * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return| | 4| 5| 6| +| - * |---------------------------------------------------------| |---------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shft|Up | | 1| 2| 3| | - * |---------------------------------------------------------| |-----------|Ent| - * |Opt |Mac | Space | \|Lft|Rgt|Dn | | 0| .| | - * `---------------------------------------------------------' `---------------' - */ - - [0] = LAYOUT_iso( - QK_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_BSPC, KC_NUM, KC_EQL, KC_PSLS, KC_PAST, - 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_ENT, KC_P7, KC_P8, KC_P9, KC_PMNS, - CTRL_C_UP, 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_P4, KC_P5, KC_P6, KC_PPLS, - 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_P1, KC_P2, KC_P3, KC_PENT, - KC_LALT, KC_LGUI, KC_SPC, MO(1), LT(1, KC_BSLS), KC_DOWN), - - - /* Cursor Layer: - * M0110 M0120 - * ,---------------------------------------------------------. ,---------------. - * |RES| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delet| |Nlk| =| /| *| - * |---------------------------------------------------------| |---------------| - * |Tab |Hom| Up|PgU|Rst| | | |Psc|Slk|Pau|Up |INS| | | 7| 8| 9| -| - * |---------------------------------------------------------| |---------------| - * |Ctrl |Lef|Dow|Rig| | | | |Hom|PgU|Lef|Rig|Return| | 4| 5| 6| +| - * |---------------------------------------------------------| |---------------| - * |Shift |End| |PgD| | | | |End|PgD|Dow|Shift | | 1| 2| 3| | - * `---------------------------------------------------------' |-----------|Ent| - * |Opt|Mac | Space |Fn |Opt| | 0| .| | - * `-----------------------------------------------' `---------------' - * M0110A - * ,---------------------------------------------------------. ,---------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delet| |Nlk| =| /| *| - * |---------------------------------------------------------| |---------------| - * |Tab |Hom| Up|PgU| | | | |Psc|Slk|Pau|Up |INS| | | 7| 8| 9| -| - * |-----------------------------------------------------' | |---------------| - * |Caps |Lef|Dow|Rig| | | | |Hom|PgU|Lef|Rig|Return| | 4| 5| 6| +| - * |---------------------------------------------------------| |---------------| - * |Ctrl |End| |PgD| | | | |End|PgD|Dow|Shft|PgU| | 1| 2| 3| | - * |---------------------------------------------------------| |-----------|Ent| - * |Opt |Mac | Space | \|Hom|End|PgD| | 0| .| | - * `---------------------------------------------------------' `---------------' - */ - - [1] = LAYOUT_iso( - QK_BOOT, 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_DEL, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______), -}; diff --git a/keyboards/converter/m0110_usb/keymaps/zyber/rules.mk b/keyboards/converter/m0110_usb/keymaps/zyber/rules.mk deleted file mode 100644 index adaa1b5696..0000000000 --- a/keyboards/converter/m0110_usb/keymaps/zyber/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -F_CPU = 16000000 -BOOTLOADER = atmel-dfu -CONSOLE_ENABLE = no diff --git a/keyboards/converter/sun_usb/type5/keymaps/sigma/keymap.c b/keyboards/converter/sun_usb/type5/keymaps/sigma/keymap.c deleted file mode 100644 index 3996b7d2e1..0000000000 --- a/keyboards/converter/sun_usb/type5/keymaps/sigma/keymap.c +++ /dev/null @@ -1,31 +0,0 @@ -/* -Copyright 2018 Yann Hodique @sigma - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H -#include "sigma.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = - { - [_QWERTY] = LAYOUT_us_unix( - QK_LEAD, KC_SCRT, 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_PSCR,KC_SCRL,KC_PAUS, KC_MUTE,KC_VOLD,KC_VOLU,KC_OS_LOCK, - KC_STOP, KC_OS_REDO, KC_ESC,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_BSLS,KC_GRV, KC_INS, KC_HOME,KC_PGUP, KC_NUM, KC_PSLS,KC_PAST,KC_PMNS, - VRSN, KC_OS_UNDO, 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_BSPC, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_MAKE, KC_OS_COPY, KC_LCTL, KC_A,KC_S,KC_D,KC_F,KC_G,KC_H,KC_J,KC_K,KC_L,KC_SCLN,KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, - KC_EXECUTE,KC_OS_PASTE, KC_LSFT, KC_Z,KC_X,KC_C,KC_V,KC_B,KC_N,KC_M,KC_COMM,KC_DOT,KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_FIND, KC_OS_CUT, KC_CAPS,KC_LGUI,KC_LALT, KC_SPC, KC_RGUI,KC_APP,KC_RALT, KC_LEFT,KC_DOWN,KC_RGHT, KC_P0, KC_PDOT - ), - }; diff --git a/keyboards/converter/sun_usb/type5/keymaps/sigma/readme.md b/keyboards/converter/sun_usb/type5/keymaps/sigma/readme.md deleted file mode 100644 index 6ae011f866..0000000000 --- a/keyboards/converter/sun_usb/type5/keymaps/sigma/readme.md +++ /dev/null @@ -1,12 +0,0 @@ -Overview -======== - -This is my personal Sun Type 5 configuration. - -How to build ------------- - - make converter/sun_usb/type5:sigma:teensy - -Layers ------- diff --git a/keyboards/converter/sun_usb/type5/keymaps/sigma/rules.mk b/keyboards/converter/sun_usb/type5/keymaps/sigma/rules.mk deleted file mode 100644 index f1de332c0c..0000000000 --- a/keyboards/converter/sun_usb/type5/keymaps/sigma/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -BOOTLOADER = halfkay -UNICODE_ENABLE = yes diff --git a/keyboards/converter/usb_usb/keymaps/narze/README.md b/keyboards/converter/usb_usb/keymaps/narze/README.md deleted file mode 100644 index eb9dbbf60b..0000000000 --- a/keyboards/converter/usb_usb/keymaps/narze/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# narze's layout for usb-usb converter - -## Key features -- Qwerty + [Colemak](https://colemak.com) layouts, and you can type Qwerty on software-level Colemak as well. Very useful for gaming or when your friend wanna type something but don't use Colemak. -- [(S)uper (D)uper Mode](/users/narze/readme.md) - -## Build instructions -- `cd /path/to/qmk_firmware` -- Ensure latest libraries are loaded `make git-submodule` -- Build & flash : `make converter/usb_usb:narze:flash` diff --git a/keyboards/converter/usb_usb/keymaps/narze/config.h b/keyboards/converter/usb_usb/keymaps/narze/config.h deleted file mode 100644 index a7fccc4187..0000000000 --- a/keyboards/converter/usb_usb/keymaps/narze/config.h +++ /dev/null @@ -1,43 +0,0 @@ -#pragma once - -/* - * MIDI options - */ - -/* enable basic MIDI features: - - MIDI notes can be sent when in Music mode is on -*/ -#define MIDI_BASIC - -/* enable advanced MIDI features: - - MIDI notes can be added to the keymap - - Octave shift and transpose - - Virtual sustain, portamento, and modulation wheel - - etc. -*/ -//#define MIDI_ADVANCED - -/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ -//#define MIDI_TONE_KEYCODE_OCTAVES 2 - -#undef TAPPING_TERM -#define TAPPING_TERM 100 - -#define COMBO_TERM 20 - -#define PERMISSIVE_HOLD - -#define SUPER_DUPER_SOUND S__NOTE(_B1) - -#define MOUSEKEY_DELAY 100 - -#define USB_POLLING_INTERVAL_MS 1 - -#ifdef AUDIO_ENABLE - #define STARTUP_SONG SONG(PLANCK_SOUND) - - #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ - SONG(COLEMAK_SOUND), \ - SONG(DVORAK_SOUND) \ - } -#endif diff --git a/keyboards/converter/usb_usb/keymaps/narze/keymap.c b/keyboards/converter/usb_usb/keymaps/narze/keymap.c deleted file mode 100644 index 7b1b0ec445..0000000000 --- a/keyboards/converter/usb_usb/keymaps/narze/keymap.c +++ /dev/null @@ -1,167 +0,0 @@ -#include QMK_KEYBOARD_H -#include "narze.h" -#include "keymap_colemak.h" - -enum usb_usb_layers { - _QWERTY, - _COLEMAK, - _QWOC, - _SUPERDUPER, -}; - -enum usb_usb_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - QWOC, - SUPERDUPER, - SDTOGG, // Toggle SuperDuper - GUI_UNDS, - LSFT_LPRN, - RSFT_RPRN, -}; - -#define HPR_ESC ALL_T(KC_ESC) -#define SFT_ENT SFT_T(KC_ENT) -#define BRWS_L S(LGUI(KC_LBRC)) -#define BRWS_R S(LGUI(KC_RBRC)) - -enum process_combo_event { - CB_SUPERDUPER, -}; - -const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = { - /* 0: plain Qwerty without layer switching - * ,---------------. ,---------------. ,---------------. - * |F13|F14|F15|F16| |F17|F18|F19|F20| |F21|F22|F23|F24| - * ,---. |---------------| |---------------| |---------------| ,-----------. ,---------------. ,-------. - * |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| |VDn|VUp|Mut|Pwr| | Help | - * `---' `---------------' `---------------' `---------------' `-----------' `---------------' `-------' - * ,-----------------------------------------------------------. ,-----------. ,---------------. ,-------. - * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|JPY|Bsp| |Ins|Hom|PgU| |NmL| /| *| -| |Stp|Agn| - * |-----------------------------------------------------------| |-----------| |---------------| |-------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | |Del|End|PgD| | 7| 8| 9| +| |Mnu|Und| - * |-----------------------------------------------------------| `-----------' |---------------| |-------| - * |CapsL | A| S| D| F| G| H| J| K| L| ;| :| #|Retn| | 4| 5| 6|KP,| |Sel|Cpy| - * |-----------------------------------------------------------| ,---. |---------------| |-------| - * |Shft| <| Z| X| C| V| B| N| M| ,| ,| /| RO|Shift | |Up | | 1| 2| 3|KP=| |Exe|Pst| - * |-----------------------------------------------------------| ,-----------. |---------------| |-------| - * |Ctl|Gui|Alt|MHEN|HNJ| Space |H/E|HENK|KANA|Alt|Gui|App|Ctl| |Lef|Dow|Rig| | 0 | .|Ent| |Fnd|Cut| - * `-----------------------------------------------------------' `-----------' `---------------' `-------' - */ - [_QWERTY] = LAYOUT_all( - KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, - KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, KC_VOLD, KC_VOLU, KC_MUTE, KC_PWR, KC_HELP, - KC_GRV, 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_INT3, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_STOP, KC_AGIN, - 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_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_MENU, KC_UNDO, - HPR_ESC, 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_P4, KC_P5, KC_P6, KC_PCMM, KC_SLCT, KC_COPY, - LSFT_LPRN,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, RSFT_RPRN, KC_UP, KC_P1, KC_P2, KC_P3, KC_PEQL, KC_EXEC, KC_PSTE, - KC_LCTL, KC_LALT, GUI_UNDS,KC_INT5, KC_LNG2, KC_SPC, KC_LNG1, KC_INT4, KC_INT2, KC_BSPC, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT, KC_FIND, KC_CUT - ), - [_COLEMAK] = LAYOUT_all( - KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, - KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, KC_VOLD, KC_VOLU, KC_MUTE, KC_PWR, KC_HELP, - KC_GRV, 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_INT3, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_STOP, KC_AGIN, - 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_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_MENU, KC_UNDO, - HPR_ESC, 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_P4, KC_P5, KC_P6, KC_PCMM, KC_SLCT, KC_COPY, - LSFT_LPRN,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, RSFT_RPRN, KC_UP, KC_P1, KC_P2, KC_P3, KC_PEQL, KC_EXEC, KC_PSTE, - KC_LCTL, KC_LALT, GUI_UNDS,KC_INT5, KC_LNG2, KC_SPC, KC_LNG1, KC_INT4, KC_INT2, KC_BSPC, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT, KC_FIND, KC_CUT - ), - [_QWOC] = LAYOUT_all( - KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, - KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, KC_VOLD, KC_VOLU, KC_MUTE, KC_PWR, KC_HELP, - KC_GRV, 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_INT3, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_STOP, KC_AGIN, - 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_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_MENU, KC_UNDO, - HPR_ESC, 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_P4, KC_P5, KC_P6, KC_PCMM, KC_SLCT, KC_COPY, - LSFT_LPRN,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, RSFT_RPRN, KC_UP, KC_P1, KC_P2, KC_P3, KC_PEQL, KC_EXEC, KC_PSTE, - KC_LCTL, KC_LALT, GUI_UNDS,KC_INT5, KC_LNG2, KC_SPC, KC_LNG1, KC_INT4, KC_INT2, KC_BSPC, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT, KC_FIND, KC_CUT - ), - [_SUPERDUPER] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, BRWS_L, BRWS_R, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_SPC, KC_LALT, _______, _______, KC_BSPC, KC_LGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), -}; - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - - set_superduper_key_combo_layer(_QWERTY); - } - return false; - - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - - set_superduper_key_combo_layer(_COLEMAK); - } - return false; - - case QWOC: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWOC); - - set_superduper_key_combo_layer(_QWOC); - } - return false; - - case SDTOGG: - if (record->event.pressed) { - toggle_superduper_mode(); - } - return false; - - // Macros - - // 1. Hold for LGUI, tap for Underscore - case GUI_UNDS: - perform_space_cadet(record, keycode, KC_LGUI, KC_LSFT, KC_MINS); - return false; - - // 2. Hold for LSHIFT, tap for Parens open - case LSFT_LPRN: - perform_space_cadet(record, keycode, KC_LSFT, KC_LSFT, KC_9); - return false; - - // 3. Hold for RSHIFT, tap for Parens close - case RSFT_RPRN: - perform_space_cadet(record, keycode, KC_RSFT, KC_RSFT, KC_0); - return false; - - default: - return true; - } - return true; -} - -void matrix_setup(void) { - set_superduper_key_combos(); -} - -void process_combo_event(uint16_t combo_index, bool pressed) { - if (pressed) { - switch(combo_index) { - case CB_SUPERDUPER: - layer_on(_SUPERDUPER); - break; - } - } else { - layer_off(_SUPERDUPER); - unregister_mods(MOD_BIT(KC_LGUI) | MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT)); // Sometimes mods are held, unregister them - } -} diff --git a/keyboards/converter/usb_usb/keymaps/narze/rules.mk b/keyboards/converter/usb_usb/keymaps/narze/rules.mk deleted file mode 100644 index 2d982de628..0000000000 --- a/keyboards/converter/usb_usb/keymaps/narze/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -EXTRAKEY_ENABLE = no -COMBO_ENABLE = yes diff --git a/keyboards/coseyfannitutti/discipline/keymaps/brandonschlack/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/brandonschlack/keymap.c deleted file mode 100644 index e5b110790d..0000000000 --- a/keyboards/coseyfannitutti/discipline/keymaps/brandonschlack/keymap.c +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright 2019 Brandon Schlack - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H -#include "brandonschlack.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Base Layer - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ - * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ Bckspc│Hom│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ - * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│| \│PgU│ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ - * │HyCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│PgD│ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ - * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift│ Up│End│ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┤ - * │Ctrl│ Opt│ Cmd│ Space │ Cmd │FnPly│Lef│Dow│Rig│ - * └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘ - */ -[_BASE] = LAYOUT_65_ansi_2_right_mods( - KC_ESC, 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_BSPC, KC_HOME, - 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_PGUP, - HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, PLY_FN1, KC_LEFT, KC_DOWN, KC_RGHT -), -/* Function Layer - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ - * │` ~│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│ Del │SlD│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ - * │ │ │ │ │ │ │ │ │ │ │F13│F14│F15│ LHP │VlU│ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │VlD│ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ - * │ │ │ │ │ │RST│ │Mke│Prv│Nxt│Ply│ │PgU│Mut│ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┤ - * │ │ │ │ │ │ │Hom│PgD│End│ - * └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘ - */ -[_FN1] = LAYOUT_65_ansi_2_right_mods( - 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_DEL, MC_SLPD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F13, KC_F14, KC_F15, MC_LHPD, KC_VOLU, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, - _______, _______, _______, _______, _______, QK_BOOT, _______, QM_MAKE, KC_MPRV, KC_MNXT, KC_MPLY, _______, KC_PGUP, KC_MUTE, - _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END -) -}; diff --git a/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/config.h b/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/config.h deleted file mode 100644 index 1c1f66c89f..0000000000 --- a/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright 2021 James Young (@noroadsleft) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define ANSI_NUBS_ROW 3 -#define ANSI_NUBS_COL 2 diff --git a/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c deleted file mode 100644 index 1c7f42f210..0000000000 --- a/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c +++ /dev/null @@ -1,72 +0,0 @@ -/* Copyright 2021-2022 James Young (@noroadsleft) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "noroadsleft.h" - -enum layer_names { - _DV, - _QW, - _NP, - _FN, - _SY -}; - -#define FN_CAPS LT(_FN, KC_CAPS) -#define CTL_GRV MT(MOD_LCTL, KC_GRV) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_DV] = LAYOUT_65_ansi( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_HOME, - KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_PGUP, - FN_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_PGDN, - KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_UP, KC_END, - CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [_QW] = LAYOUT_65_ansi( - KC_ESC, 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_BSPC, KC_HOME, - 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_PGUP, - FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [_NP] = LAYOUT_65_ansi( - _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, _______, _______, _______, - _______, _______, _______, _______, KC_E, KC_F, _______, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PSLS, KC_PEQL, _______, _______, - _______, _______, _______, _______, KC_C, KC_D, _______, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_PMNS, KC_PENT, _______, - _______, _______, _______, _______, KC_A, KC_B, _______, KC_P0, _______, KC_PDOT, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - [_FN] = LAYOUT_65_ansi( - 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_DEL, DM_REC1, - _______, KC_CALC, KC_APP, _______, _______, _______, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SCRL, KC_PAUS, DM_REC2, - _______, M_SALL, _______, _______, G_PWD, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, DM_RSTP, DM_PLY1, - _______, M_UNDO, M_CUT, M_COPY, M_PASTE, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, TO(_SY), _______, _______, DM_PLY2, - _______, _______, _______, TG(_NP), _______, _______, _______, _______, _______, _______ - ), - - [_SY] = LAYOUT_65_ansi( - TG(_SY), TO(_DV), TO(_QW), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, DB_TOGG, XXXXXXX, VRSN, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX - ) - -}; diff --git a/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/rules.mk b/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/rules.mk deleted file mode 100644 index 9e6797ed30..0000000000 --- a/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DYNAMIC_MACRO_ENABLE = yes diff --git a/keyboards/coseyfannitutti/romeo/keymaps/brandonschlack/keymap.c b/keyboards/coseyfannitutti/romeo/keymaps/brandonschlack/keymap.c deleted file mode 100644 index dd95901367..0000000000 --- a/keyboards/coseyfannitutti/romeo/keymaps/brandonschlack/keymap.c +++ /dev/null @@ -1,111 +0,0 @@ -/* Copyright 2020 Brandon Schlack - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H -#include "brandonschlack.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Base Layer -* ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ -* │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Bspc│ -* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ -* │HyEsc │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Enter│ -* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤ -* │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│ ?/Sft│ -* ├────┬───┼───┼───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤ -* │Ctrl│Opt│Cmd│ Space │ Cmd│Opt│ Lwr│ -* └────┴───┴───┴────────────────────────┴────┴───┴────┘ -*/ -[_BASE] = LAYOUT_ansi_40( - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - HY_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SF_SLSH, - KC_LCTL, KC_LOPT, KC_LCMD, SPC_RAI, KC_RCMD, KC_ROPT, LOWER -), -/* Lower -* ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ -* │Del │BrD│BrU│Msn│LHP│   │   │   │PgU│Hom│End│ SlpD│ -* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ -* │HyCaps│Mut│VlU│NxW│PvT│Bck│Fwd│NxT│PgD│ ↑ │ Play│ -* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤ -* │ │Prv│VlD│Nxt│1PX│1Ps│   │ ← │ ↓ │ → │ │ -* ├────┬───┼───┼───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤ -* │ │ │ │ │ │ │ │ -* └────┴───┴───┴────────────────────────┴────┴───┴────┘ -*/ -[_LOWER] = LAYOUT_ansi_40( - KC_DEL, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, _______, _______, _______, KC_PGUP, KC_HOME, KC_END, MC_SLPD, - HY_CAPS, KC_MUTE, KC_VOLU, NXT_WIN, PRV_TAB, MC_BACK, MC_FWRD, NXT_TAB, KC_PGDN, KC_UP, KC_MPLY, - _______, KC_MPRV, KC_VOLD, KC_MNXT, PX_AFLL, OP_AFLL, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, - _______, _______, _______, _______, _______, _______, _______ -), -/* Raise -* ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ -* │~ `  │! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│ │ -* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ -* │     │ F1│ F2│ F3│ F4│ F5│ F6│_ -│+ =│: ;│ " '│ -* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤ -* │ │ F7│ F8│ F9│F10│F11│F12│   │{ [│} ]│ |\Sft│ -* ├────┬───┼───┼───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤ -* │ │ │ │ │    │   │    │ -* └────┴───┴───┴────────────────────────┴────┴───┴────┘ -*/ -[_RAISE] = LAYOUT_ansi_40( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_SCLN, KC_QUOT, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_LBRC, KC_RBRC, SF_BSLS, - _______, _______, _______, _______, _______, _______, _______ -), -/* Adjust/Macro Layer -* ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ -* │Make │   │   │EEP│RST│ │ │ │ │ │ │     │ -* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ -* │ │ │ │ │ │ │ │ │ │ │ │ -* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤ -* │ │ │ │ │ │ │ │ │ │ │ │ -* ├────┬───┼───┼───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤ -* │ │ │ │ │ │ │ │ -* └────┴───┴───┴────────────────────────┴────┴───┴────┘ -*/ -[_ADJUST] = LAYOUT_ansi_40( - QM_MAKE, _______, _______, EE_CLR, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______ -) -/* Blank Layer -* ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ -* │ │ │ │ │ │ │ │ │ │ │ │ │ -* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ -* │ │ │ │ │ │ │ │ │ │ │ │ -* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤ -* │ │ │ │ │ │ │ │ │ │ │ │ -* ├────┬───┼───┼───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤ -* │ │ │ │ │ │ │ │ -* └────┴───┴───┴────────────────────────┴────┴───┴────┘ -*/ -/* -[BLANK] = LAYOUT_ansi_40( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______ -) -*/ -}; - -layer_state_t layer_state_set_keymap(layer_state_t state) { - return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); -} diff --git a/keyboards/cozykeys/speedo/v3/keymaps/pcewing/keymap.c b/keyboards/cozykeys/speedo/v3/keymaps/pcewing/keymap.c deleted file mode 100644 index 51fb5ca67c..0000000000 --- a/keyboards/cozykeys/speedo/v3/keymaps/pcewing/keymap.c +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright 2022 Paul Ewing - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -#include "key_repeater.h" - -#include - -enum { - LAYER_DEFAULT, - LAYER_FN, - LAYER_MACRO, - - __LAYER_COUNT, -}; - -#define TO_MACRO TO(LAYER_MACRO) -#define TO_DFLT TO(LAYER_DEFAULT) -#define MO_FN MO(LAYER_FN) - -#define RGB_N RGB_MOD // Rotate to next RGB mode -#define RGB_P RGB_RMOD // Rotate to next RGB mode - -#define KC_YANK LCTL(KC_INS) // Copy shortcut in most terminal emulators -#define KC_PUT LSFT(KC_INS) // Paste shortcut in most terminal emulators - -// Custom keycodes -enum { - SH_TOG = SAFE_RANGE, // Toggle shift - SH_BTN1, // Shift left click - RP_BTN1, // Click repeatedly while key is held -}; - -const uint16_t PROGMEM keymaps[__LAYER_COUNT][MATRIX_ROWS][MATRIX_COLS] = { - -[LAYER_DEFAULT] = LAYOUT( - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_UP, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LEFT, KC_RGHT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DOWN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, KC_GRV, MO_FN, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, KC_LBRC, KC_RBRC, KC_RALT, KC_RGUI, KC_RCTL -), - -[LAYER_FN] = LAYOUT( - RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, QK_BOOT, - _______, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, RGB_TOG, KC_YANK, KC_GRV, KC_LBRC, KC_RBRC, KC_PUT, _______, - KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_INS, RGB_N, RGB_P, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_PAUS, RGB_M_P, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, - _______, _______, _______, _______, _______, _______, _______, TO_MACRO, _______, _______, _______, _______, _______, _______ -), - -[LAYER_MACRO] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, RP_BTN1, SH_TOG, _______, _______, _______, _______, _______, _______, _______, - TO_DFLT, _______, _______, KC_BTN1, SH_BTN1, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, KC_1, KC_6, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, KC_BTN1, _______, _______, _______, _______, _______, _______, _______, _______ -), - -}; - -static bool shift_enabled = false; - -static struct key_repeater_t* click_repeater = NULL; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case SH_TOG: - if (record->event.pressed) { - if (shift_enabled) { - unregister_code(KC_LSFT); - } else { - register_code(KC_LSFT); - } - shift_enabled = !shift_enabled; - } - return false; // Skip all further processing of this key - case SH_BTN1: - if (record->event.pressed) { - register_code(KC_LSFT); - register_code(KC_BTN1); - } else { - unregister_code(KC_BTN1); - unregister_code(KC_LSFT); - } - return false; - case RP_BTN1: - if (record->event.pressed) { - kr_enable(click_repeater); - } else { - kr_disable(click_repeater); - } - return false; - default: - return true; // Process all other keycodes normally - } -} - -void keyboard_post_init_user(void) { - // Seed the random number generator which is used by the key repeater - srand(timer_read32()); - - // Configure and instantiate a key repeater for mouse button 1 "rapid fire" - struct key_repeater_config_t cfg = { - .key = KC_BTN1, - .key_duration_min = 20, - .key_duration_max = 50, - .wait_duration_min = 90, - .wait_duration_max = 140, - }; - - click_repeater = kr_new(&cfg); -} - -void matrix_scan_user(void) { - kr_poll(click_repeater); -} diff --git a/keyboards/crkbd/keymaps/cameronjlarsen/config.h b/keyboards/crkbd/keymaps/cameronjlarsen/config.h deleted file mode 100644 index 1d83214a77..0000000000 --- a/keyboards/crkbd/keymaps/cameronjlarsen/config.h +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright 2022 Cameron Larsen <@cameronjlarsen> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - - -/* Select hand configuration */ -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -#define TAPPING_FORCE_HOLD -#define TAPPING_TERM 135 - -#define CAPS_WORD_IDLE_TIMEOUT 5000 // Turn off Caps Word after 5 seconds. - -#ifdef RGBLIGHT_ENABLE - #define RGBLIGHT_EFFECT_BREATHING - #define RGBLIGHT_EFFECT_RAINBOW_MOOD - #define RGBLIGHT_EFFECT_RAINBOW_SWIRL - #define RGBLIGHT_EFFECT_SNAKE - #define RGBLIGHT_EFFECT_KNIGHT - #define RGBLIGHT_EFFECT_CHRISTMAS - #define RGBLIGHT_EFFECT_STATIC_GRADIENT - #define RGBLIGHT_EFFECT_RGB_TEST - #define RGBLIGHT_EFFECT_ALTERNATING - #define RGBLIGHT_EFFECT_TWINKLE - #define RGBLIGHT_LIMIT_VAL 120 - #define RGBLIGHT_HUE_STEP 10 - #define RGBLIGHT_SAT_STEP 17 - #define RGBLIGHT_VAL_STEP 17 -#endif - -#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" diff --git a/keyboards/crkbd/keymaps/cameronjlarsen/keymap.c b/keyboards/crkbd/keymaps/cameronjlarsen/keymap.c deleted file mode 100644 index 54ad19dc0b..0000000000 --- a/keyboards/crkbd/keymaps/cameronjlarsen/keymap.c +++ /dev/null @@ -1,357 +0,0 @@ -/* Copyright 2022 Cameron Larsen <@cameronjlarsen> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H -#include -#include "features/oneshot.h" - -enum layers { - _QWERTY = 0, - SYM, - NAV, - FUN, -}; -// Aliases for readability -#define QWERTY DF(_QWERTY) -#define LA_SYM LT(SYM, KC_TAB) -#define LA_NAV MO(NAV) - -// One shot mods -enum keycodes { - OS_SHFT = QK_USER, - OS_CTRL, - OS_ALT, - OS_GUI, -}; - -// Note: LAlt/Enter (ALT_ENT) is not the same thing as the keyboard shortcut Alt+Enter. -// The notation `mod/tap` denotes a key that activates the modifier `mod` when held down, and -// produces the key `tap` when tapped (i.e. pressed and released). - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* - * Base Layer: QWERTY - * - * Inspiration: - * - * https://github.com/serebrov/qmk_firmware/blob/custom/keyboards/kyria/keymaps/kyria-mini/keymap.c - * - * Notes: - * - F & J enables CAPSWORD, disables after 5 seconds - * - Left thumb CTRL and SHIFT are one shot - * - Enter is moved to ; location and ; is moved to Sym layer - * - ESC can be accessed by NAV and G - * - BKSP is accessed by NAV and Enter - * - Tab is accessed by tapping SYM layer - * - FUN layer is accessed by holding NAV and SYM layers at the same time - * - * ,----------------------------------. ,----------------------------------. - * | Q | W | E | R | T | | Y | U | I | O | P | - * |------+------+------+------+------| |------+------+------+------+------| - * | A | S | D | F | G | | H | J | K | L | Enter| - * |------+------+------+------+------. ,------+------+------+------+------| - * | Z | X | C | V | B | | N | M | , < | . > | / ? | - * `------+------+------+------+------+------. ,------+------+------+------+-------------' - * | OSM | OSM | Nav | | Sym | Space| GUI | - * | Ctrl | Shift| | | Tab | | | - * `---------------------' `--------------------' - */ - [_QWERTY] = LAYOUT_split_3x5_3( - KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , - KC_A , KC_S , KC_D , KC_F , KC_G , KC_H, KC_J , KC_K , KC_L , KC_ENT , - KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N, KC_M ,KC_COMM, KC_DOT , KC_SLSH, - OS_CTRL, OS_SHFT, LA_NAV , LA_SYM , KC_SPC, OS_GUI - ), - -/* - * Sym Layer: Numbers and symbols - * - * Notes: - * - Symbols are grouped together and shifted symbols from middle row are on bottom row - * - Exception is angle brackets - * - * ,----------------------------------. ,----------------------------------. - * | 1 ! | 2 @ | 3 # | 4 $ | 5 % | | 6 ^ | 7 & | 8 * | 9 ( | 0 ) | - * |------+------+------+------+------| |------+------+------+------+------| - * | ` | ( | ) | ' | = | | \ | - | [ | ] | ; | - * |------+------+------+------+------+ +------+------+------+------+------| - * | ~ | < | > | " | + | | | | _ | { | } | : | - * `-------------+------+------+------+------. ,------+------+------+------+-------------' - * | | | | | | | | - * | | | | | | | | - * `--------------------' `--------------------' - */ - [SYM] = LAYOUT_split_3x5_3( - KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , - KC_GRV , KC_LPRN, KC_RPRN, KC_QUOT, KC_EQL , KC_BSLS, KC_MINS, KC_LBRC, KC_RBRC, KC_SCLN, - KC_TILD, KC_LABK, KC_RABK, KC_DQUO, KC_PLUS, KC_PIPE, KC_UNDS, KC_LCBR, KC_RCBR, KC_COLN, - _______, _______, _______, _______, _______, _______ - ), - -/* - * Nav Layer: Navigation, Media - * - * Notes: - * - Vim style navigation keys - * - Volume and Media Keys - * - BKSP on Enter - * - DEL on / - * - Esc on G - * - * ,----------------------------------. ,----------------------------------. - * | | | | BriUp| BriDn| | Home | PgDn | PgUp | End |PrtScr| - * |------+------+------+------+------| |------+------+------+------+------| - * | GUI | Alt | Ctrl | Shift| Esc | | ← | ↓ | ↑ | → | Bksp | - * |------+------+------+------+------+ +------+------+------+------+------| - * | | Vol- | Mute | Vol+ |NumLck| | MPrev| MPlay| MStop| MNext|Delete| - * `-------------+------+------+------+------. ,------+------+------+------+-------------' - * | | | | | | | | - * | | | | | | | | - * `--------------------' `--------------------' - */ - [NAV] = LAYOUT_split_3x5_3( - _______, _______, _______, KC_BRIU, KC_BRID, KC_HOME, KC_PGDN, KC_PGUP, KC_END , KC_PSCR, - OS_GUI , OS_ALT , OS_CTRL, OS_SHFT, KC_ESC , KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_BSPC, - _______, KC_VOLD, KC_MUTE, KC_VOLU, KC_NUM , KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, KC_DEL , - _______, _______, _______, _______, _______, _______ - ), - -/* - * Function Layer: Function keys - * - * Notes: - * - F1-F10 on bottom row - * - F11-F12 on index finger inner row - * - Homerow mods - * - Num keys on top row - * - * ,----------------------------------. ,----------------------------------. - * | 1 ! | 2 @ | 3 # | 4 $ | 5 % | | 6 ^ | 7 & | 8 * | 9 ( | 0 ) | - * |------+------+------+------+------| |------+------+------+------+------| - * | GUI | Alt | Ctrl | Shift| F11 | | F12 | Shift| Ctrl | Alt | GUI | - * |------+------+------+------+------+ +------+------+------+------+------| - * | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | - * `-------------+------+------+------+------. ,------+------+------+------+-------------' - * | | | | | | | | - * | | | | | | | | - * `--------------------' `--------------------' - */ - [FUN] = LAYOUT_split_3x5_3( - KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , - OS_GUI , OS_ALT , OS_CTRL, OS_SHFT, KC_F11 , KC_F12 , OS_SHFT, OS_CTRL, OS_ALT , OS_GUI , - KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , - _______, _______, _______, _______, _______, _______ - ), - -}; - -enum combo_events { - CAPS_COMBO -}; - -const uint16_t PROGMEM caps_combo[] = {KC_F, KC_J, COMBO_END}; - -combo_t key_combos[] = { - [CAPS_COMBO] = COMBO_ACTION(caps_combo), - // Other combos...C -}; - -void process_combo_event(uint16_t combo_index, bool pressed) { - switch(combo_index) { - case CAPS_COMBO: - if (pressed) { - caps_word_on(); // Activate Caps Word! - } - break; - - // Other combos... - } -} - -bool is_oneshot_cancel_key(uint16_t keycode){ - switch (keycode) { - case LA_NAV: - return true; - default: - return false; - } -} - -bool is_oneshot_ignored_key(uint16_t keycode){ - switch (keycode) { - case LA_NAV: - case LA_SYM: - case OS_SHFT: - case OS_CTRL: - case OS_ALT: - case OS_GUI: - return true; - default: - return false; - } -} - -oneshot_state os_shft_state = os_up_unqueued; -oneshot_state os_ctrl_state = os_up_unqueued; -oneshot_state os_alt_state = os_up_unqueued; -oneshot_state os_cmd_state = os_up_unqueued; - - - -bool caps_word_press_user(uint16_t keycode) { - switch (keycode) { - // Keycodes that continue Caps Word, with shift applied. - case KC_A ... KC_Z: - case KC_MINS: - add_weak_mods(MOD_BIT(KC_LSFT)); // Apply shift to the next key. - return true; - - // Keycodes that continue Caps Word, without shifting. - case KC_1 ... KC_0: - case KC_BSPC: - case KC_DEL: - case KC_UNDS: - return true; - - default: - return false; // Deactivate Caps Word. - } -} - - -layer_state_t layer_state_set_user(layer_state_t state){ - return update_tri_layer_state(state, SYM, NAV, FUN); -} - -#ifdef OLED_ENABLE -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - if (!is_keyboard_master()) { - return OLED_ROTATION_180; // flips the display 180 degrees if offhand - } - return rotation; -} - -void oled_render_layer_state(void) { - oled_write_P(PSTR("Layer: "), false); - switch (get_highest_layer(layer_state | default_layer_state)) { - case _QWERTY: - oled_write_ln_P(PSTR("QWERTY"), false); - break; - case SYM: - oled_write_ln_P(PSTR("Sym"), false); - break; - case NAV: - oled_write_ln_P(PSTR("Nav"), false); - break; - case FUN: - oled_write_ln_P(PSTR("Function"), false); - break; - default: - oled_write_ln_P(PSTR("Undefined"), false); - } -} - -char keylog_str[24] = {}; - -const char code_to_name[60] = { - ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', - 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', - 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', - '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', - 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', - '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; - -void set_keylog(uint16_t keycode, keyrecord_t *record) { - char name = ' '; - if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || - (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; } - if (keycode < 60) { - name = code_to_name[keycode]; - } - - // update keylog - snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c", - record->event.key.row, record->event.key.col, - keycode, name); -} - -void oled_render_keylog(void) { - oled_write(keylog_str, false); -} - -void render_bootmagic_status(bool status) { - /* Show Ctrl-Gui Swap options */ - static const char PROGMEM logo[][2][3] = { - {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, - {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, - }; - if (status) { - oled_write_ln_P(logo[0][0], false); - oled_write_ln_P(logo[0][1], false); - } else { - oled_write_ln_P(logo[1][0], false); - oled_write_ln_P(logo[1][1], false); - } -} - -void oled_render_logo(void) { - static const char PROGMEM crkbd_logo[] = { - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, - 0}; - oled_write_P(crkbd_logo, false); -} - -bool oled_task_user(void) { - if (is_keyboard_master()) { - oled_render_layer_state(); - oled_render_keylog(); - } else { - oled_render_logo(); - } - return false; -} - -bool process_record_user(uint16_t keycode, keyrecord_t* record) { - if (!process_caps_word(keycode, record)) { return false; } - // Your macros ... - update_oneshot( - &os_shft_state, KC_LSFT, OS_SHFT, - keycode, record - ); - - update_oneshot( - &os_ctrl_state, KC_LCTL, OS_CTRL, - keycode, record - ); - - update_oneshot( - &os_alt_state, KC_LALT, OS_ALT, - keycode, record - ); - - update_oneshot( - &os_cmd_state, KC_LGUI, OS_GUI, - keycode, record - ); - if (record->event.pressed) { - set_keylog(keycode, record); - } - return true; -} - -#endif diff --git a/keyboards/crkbd/keymaps/cameronjlarsen/rules.mk b/keyboards/crkbd/keymaps/cameronjlarsen/rules.mk deleted file mode 100644 index f0b00f3cf0..0000000000 --- a/keyboards/crkbd/keymaps/cameronjlarsen/rules.mk +++ /dev/null @@ -1,14 +0,0 @@ -BOOTMAGIC_ENABLE = no -BOOLOADER = atmel-dfu -OLED_ENABLE = yes -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -COMMAND_ENABLE = no # Disables the command feature -COMBO_ENABLE = yes -MOUSEKEY_ENABLE = no -CONSOLE_ENABLE = no -AUDIO_ENABLE = no -MIDI_ENABLE = no -BLUETOOTH_ENABLE = no -BACKLIGHT_ENABLE = no -CAPS_WORD_ENABLE = yes -CUSTOM_ONESHOT_ENABLE = yes diff --git a/keyboards/crkbd/keymaps/curry/config.h b/keyboards/crkbd/keymaps/curry/config.h deleted file mode 100644 index a82b4439cf..0000000000 --- a/keyboards/crkbd/keymaps/curry/config.h +++ /dev/null @@ -1,20 +0,0 @@ -#pragma once - -#define EE_HANDS - -#define OLED_DISABLE_TIMEOUT -#define TAPPING_TERM_PER_KEY - -#if defined(RGB_MATRIX_ENABLE) -# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 -# define RGB_MATRIX_HUE_STEP 8 -# define RGB_MATRIX_SAT_STEP 8 -# define RGB_MATRIX_VAL_STEP 5 -# define RGB_MATRIX_SPD_STEP 10 -#endif - -// comment out unnecessary layouts -#define ENABLE_QWERTY -#define ENABLE_COLEMAK -#define ENABLE_DVORAK -#define ENABLE_WORKMAN diff --git a/keyboards/crkbd/keymaps/curry/keymap.c b/keyboards/crkbd/keymaps/curry/keymap.c deleted file mode 100644 index 5157a22379..0000000000 --- a/keyboards/crkbd/keymaps/curry/keymap.c +++ /dev/null @@ -1,76 +0,0 @@ -#include "curry.h" - -#define LAYOUT_crkbd_base( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ - K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ - K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \ - ) \ - LAYOUT_wrapper( \ - KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \ - MT_TAB, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \ - OS_LSFT, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, OS_RSFT, \ - QK_LEAD,OS_LALT, SP_LWER, ET_RAIS, KC_BSPC, KC_RGUI \ - ) -#define LAYOUT_crkbd_base_wrapper(...) LAYOUT_crkbd_base(__VA_ARGS__) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -#if defined(ENABLE_QWERTY) - [_QWERTY] = LAYOUT_crkbd_base_wrapper( - _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, - _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, - _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ - ), -#endif - -#if defined(ENABLE_COLEMAK) - [_COLEMAK] = LAYOUT_crkbd_base_wrapper( - _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, - _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, - _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ - ), -#endif - -#if defined(ENABLE_DVORAK) - [_DVORAK] = LAYOUT_crkbd_base_wrapper( - _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, - _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, - _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ - ), -#endif - -#if defined(ENABLE_WORKMAN) - [_WORKMAN] = LAYOUT_crkbd_base_wrapper( - _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, - _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, - _________________WORKMAN_L3________________, _________________WORKMAN_R3________________ - ), -#endif - - [_MODS] = LAYOUT_wrapper( - _______, ___________________BLANK___________________, ___________________BLANK___________________, _______, - _______, ___________________BLANK___________________, ___________________BLANK___________________, _______, - KC_LSFT, ___________________BLANK___________________, ___________________BLANK___________________, KC_RSFT, - _______, _______, _______, _______, _______, _______ - ), - - [_LOWER] = LAYOUT_wrapper( - KC_F11, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F12, - KC_GRV, _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE, - _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______, - _______, _______, _______, _______, _______, _______ - ), - - [_RAISE] = LAYOUT_wrapper( - _______, _________________RAISE_L1__________________, _________________RAISE_R1__________________, _______, - _______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS, - _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______, - _______, _______, _______, _______, _______, _______ - ), - - [_ADJUST] = LAYOUT_wrapper( - KC_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RST, - VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EE_CLR, - MG_NKRO, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, RGB_IDL, - _______, _______, _______, _______, TG_MODS, _______ - ) -}; diff --git a/keyboards/crkbd/keymaps/curry/rules.mk b/keyboards/crkbd/keymaps/curry/rules.mk deleted file mode 100644 index fc0e7e1924..0000000000 --- a/keyboards/crkbd/keymaps/curry/rules.mk +++ /dev/null @@ -1,16 +0,0 @@ -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no -CONSOLE_ENABLE = no -COMMAND_ENABLE = no - -RGBLIGHT_ENABLE = no -RGB_MATRIX_ENABLE = yes - -OLED_ENABLE = yes - -BOOTLOADER = atmel-dfu -SPLIT_TRANSPORT = mirror diff --git a/keyboards/crkbd/keymaps/devdev/config.h b/keyboards/crkbd/keymaps/devdev/config.h deleted file mode 100644 index 337a86df8e..0000000000 --- a/keyboards/crkbd/keymaps/devdev/config.h +++ /dev/null @@ -1,133 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert -Copyright 2021 Dane Evans - - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -//#define USE_MATRIX_I2C - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -#define CUSTOM_FONT - -#define CUSTOM_LAYER_READ //if you remove this it causes issues - needs better guarding - -#define QUICK_TAP_TERM 0 -#define TAPPING_TERM 200 - -#define RGBLIGHT_SLEEP -// -#define RGBLIGHT_LAYERS - -#ifdef RGBLIGHT_ENABLE - #undef RGBLED_NUM - - #define RGBLIGHT_EFFECT_BREATHING - #define RGBLIGHT_EFFECT_RAINBOW_MOOD - #define RGBLIGHT_EFFECT_RAINBOW_SWIRL - #define RGBLIGHT_EFFECT_SNAKE - #define RGBLIGHT_EFFECT_KNIGHT - //#define RGBLIGHT_EFFECT_CHRISTMAS - //#define RGBLIGHT_EFFECT_STATIC_GRADIENT - //#define RGBLIGHT_EFFECT_RGB_TEST - //#define RGBLIGHT_EFFECT_ALTERNATING - //#define RGBLIGHT_EFFECT_TWINKLE - - //#define RGBLED_NUM 54 - //#define RGBLED_SPLIT 27 - //#define RGBLED_SPLIT { 27, 27 } // haven't figured out how to use this yet - - #define RGBLED_NUM 27 - #define RGBLIGHT_LIMIT_VAL 120 - #define RGBLIGHT_HUE_STEP 10 - #define RGBLIGHT_SAT_STEP 17 - #define RGBLIGHT_VAL_STEP 17 -#endif - -#ifdef RGB_MATRIX_ENABLE -# define RGB_MATRIX_KEYPRESSES // reacts to keypresses -// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) -# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended -# define RGB_MATRIX_FRAMEBUFFER_EFFECTS -// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) -// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) -# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. - -#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_GRADIENT_LEFT_RIGHT - -# define RGB_MATRIX_HUE_STEP 8 -# define RGB_MATRIX_SAT_STEP 8 -# define RGB_MATRIX_VAL_STEP 8 -# define RGB_MATRIX_SPD_STEP 10 - -// RGB Matrix Animation modes. Explicitly enabled -// For full list of effects, see: -// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects -// # define ENABLE_RGB_MATRIX_ALPHAS_MODS -# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN -# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT -# define ENABLE_RGB_MATRIX_BREATHING -# define ENABLE_RGB_MATRIX_BAND_SAT -# define ENABLE_RGB_MATRIX_BAND_VAL -# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT -# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL -# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT -# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL -# define ENABLE_RGB_MATRIX_CYCLE_ALL -# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT -# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN -# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN -# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL -# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL -# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL -# define ENABLE_RGB_MATRIX_DUAL_BEACON -# define ENABLE_RGB_MATRIX_RAINBOW_BEACON -# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS -# define ENABLE_RGB_MATRIX_RAINDROPS -# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS -# define ENABLE_RGB_MATRIX_HUE_BREATHING -# define ENABLE_RGB_MATRIX_HUE_PENDULUM -# define ENABLE_RGB_MATRIX_HUE_WAVE -# define ENABLE_RGB_MATRIX_PIXEL_RAIN -# define ENABLE_RGB_MATRIX_PIXEL_FLOW -# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL -// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined -// # define ENABLE_RGB_MATRIX_TYPING_HEATMAP -# define ENABLE_RGB_MATRIX_DIGITAL_RAIN -// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE -// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -# define ENABLE_RGB_MATRIX_SPLASH -# define ENABLE_RGB_MATRIX_MULTISPLASH -# define ENABLE_RGB_MATRIX_SOLID_SPLASH -# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -#endif diff --git a/keyboards/crkbd/keymaps/devdev/keymap.c b/keyboards/crkbd/keymaps/devdev/keymap.c deleted file mode 100644 index 0327101157..0000000000 --- a/keyboards/crkbd/keymaps/devdev/keymap.c +++ /dev/null @@ -1,396 +0,0 @@ -/* Copyright 2020 Dane Evans - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -// CRKBD - -#include QMK_KEYBOARD_H - - -char layer_state_str[24]; - - - enum userspace_layers { - _DEFAULTS = 0, - _COLEMAK = 0, - _COLEMAKDH, - _QWERTY, - _NUM, - _SYM, - _COMMAND, - _NUMPAD, - _SWITCH, - _MOVE, - -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - // colemak - [_COLEMAK] = LAYOUT( - //,-----------------------------------------------------. ,-----------------------------------------------------. - LT(_NUMPAD,KC_TAB), KC_Q, KC_W, KC_F, KC_P, KC_G, LT(_SWITCH,KC_J), KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LSFT, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I,LT(_NUMPAD,KC_O),KC_QUOT, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LGUI, MO(_NUM), KC_SPC, KC_ENT, MO(_SYM), KC_LALT - //`--------------------------' `--------------------------' - ), - - // colemak DH - [_COLEMAKDH] = LAYOUT( - //,-----------------------------------------------------. ,-----------------------------------------------------. - LT(_NUMPAD,KC_TAB), KC_Q, KC_W, KC_F, KC_P, KC_B, LT(_SWITCH,KC_J), KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LSFT, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I,LT(_NUMPAD,KC_O),KC_QUOT, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LCTL, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LGUI, MO(_NUM), KC_SPC, KC_ENT, MO(_SYM), KC_LALT - //`--------------------------' `--------------------------' - ), - - // qwerty - [_QWERTY] = LAYOUT( - //,-----------------------------------------------------. ,-----------------------------------------------------. - KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, LT(_SWITCH,KC_Y), KC_U, KC_I, KC_O, KC_P, KC_TRNS, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(_NUMPAD,KC_SCLN), KC_TRNS, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - //`--------------------------' `--------------------------' - ), - - - - // numbers - L thumb - [_NUM] = LAYOUT( - //,-----------------------------------------------------. ,-----------------------------------------------------. - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_PGUP, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_DEL, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_WH_D, KC_PGDN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_COMMAND), KC_TRNS - //`--------------------------' `--------------------------' - ), - - // symbols - R thumb - [_SYM] = LAYOUT( - //,-----------------------------------------------------. ,-----------------------------------------------------. - KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_TRNS, MO(_COMMAND), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - //`--------------------------' `--------------------------' - ), - - // commands - both thumbs - [_COMMAND] = LAYOUT( - //,-----------------------------------------------------. ,-----------------------------------------------------. - QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, DF(1), DF(0), C(G(KC_LEFT)), KC_NO, KC_NO, C(G(KC_RGHT)), KC_NO, KC_NO, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_NO, DF(2), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - //`--------------------------' `--------------------------' - ), - - // numpad - [_NUMPAD] = LAYOUT( - //,-----------------------------------------------------. ,-----------------------------------------------------. - LT(0,KC_NO), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_CIRC, KC_P7, KC_P8, KC_P9, KC_ASTR, KC_BSPC, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINS, KC_P4, KC_P5, KC_P6, KC_EQL, KC_DEL, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PLUS, KC_P1, KC_P2, KC_P3, KC_SLSH, KC_NO, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - OSM(MOD_MEH), KC_NO, KC_TRNS, KC_ENT, KC_P0, KC_PDOT - //`--------------------------' `--------------------------' - ), - - // layer switcher - [_SWITCH] = LAYOUT( - //,-----------------------------------------------------. ,-----------------------------------------------------. - TO(0), TO(1), TO(2), TO(3), TO(4), TO(5), KC_NO, TO(7), KC_NO, KC_NO, KC_NO, QK_BOOT, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_NO, KC_NO, KC_BRIU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, EE_CLR, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_SYSTEM_SLEEP, KC_NO, KC_BRID, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO - //`--------------------------' `--------------------------' - - ), - - // amovement - [_MOVE] = LAYOUT( - //,-----------------------------------------------------. ,-----------------------------------------------------. - LT(0,KC_NO), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_UP, KC_PGUP, KC_NO, KC_NO, KC_NO, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_ENT, KC_RGHT, KC_NO, KC_NO, KC_NO, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_APP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_END, KC_DOWN, KC_PGDN, KC_DEL, KC_NO, KC_NO, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO - //`--------------------------' `--------------------------' - ) - -}; - - -// it appears that these are different to the board numbering. -// when you specify n here, it lightss up n+1 on the board diagram - actually may be an entirely different pattern - -// _QWERTY, -// Light on inner column and underglow -const rgblight_segment_t PROGMEM layer_qwerty_lights[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 10, HSV_AZURE} -); - -// _COLEMAKDH, -// Light on inner column and underglow -const rgblight_segment_t PROGMEM layer_colemakdh_lights[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 10, HSV_RED} -); - -// _NUM, -// Light on inner column and underglow -const rgblight_segment_t PROGMEM layer_num_lights[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 10, HSV_TEAL} -); -// _SYMBOL, -// Light on inner column and underglow -const rgblight_segment_t PROGMEM layer_symbol_lights[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 10, HSV_BLUE} -); -// _COMMAND, -// Light on inner column and underglow -const rgblight_segment_t PROGMEM layer_command_lights[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 10, HSV_PURPLE} -); - - -//_NUMPAD -//havent worked out how to do each side individually either -const rgblight_segment_t PROGMEM layer_numpad_lights[] = RGBLIGHT_LAYER_SEGMENTS( -{0, 10, HSV_ORANGE} -); -const rgblight_segment_t PROGMEM layer_numpad_rh_lights[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 10, HSV_ORANGE}, - {10, 5, HSV_BLUE}, - {15, 3, HSV_BLUE}, - {18, 3, HSV_BLUE} -); - -// _MOVE, -// Light on inner column and underglow -const rgblight_segment_t PROGMEM layer_move_lights[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 10, HSV_PINK} -); - -// _SWITCHER // light up top row -const rgblight_segment_t PROGMEM layer_switcher_lights[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 6, HSV_GREEN}, - {9, 2, HSV_GREEN}, - {17, 2, HSV_GREEN}, - {23, 2, HSV_GREEN} -); - - -// Now define the array of layers. Later layers take precedence -const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( - layer_qwerty_lights, - layer_colemakdh_lights, - layer_num_lights,// overrides layer 1 - layer_symbol_lights, - layer_command_lights, - layer_numpad_lights, - layer_numpad_rh_lights, - layer_move_lights, - layer_switcher_lights // Overrides other layers -); - -void keyboard_post_init_user(void) { - // Enable the LED layers - rgblight_layers = my_rgb_layers; - rgblight_mode(10);// haven't found a way to set this in a more useful way - -} - - -layer_state_t layer_state_set_user(layer_state_t state) { - rgblight_set_layer_state(0, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_QWERTY)); - rgblight_set_layer_state(1, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_QWERTY)); - - rgblight_set_layer_state(2, layer_state_cmp(state, _NUM)); - rgblight_set_layer_state(3, layer_state_cmp(state, _SYM)); - rgblight_set_layer_state(4, layer_state_cmp(state, _COMMAND)); - rgblight_set_layer_state(5, layer_state_cmp(state, _NUMPAD)); - if (!is_keyboard_master()) - rgblight_set_layer_state(6, layer_state_cmp(state, _NUMPAD)); - rgblight_set_layer_state(7, layer_state_cmp(state, _MOVE)); - rgblight_set_layer_state(8, layer_state_cmp(state, _SWITCH)); - return state; -} - -/* -bool led_update_user(led_t led_state) { - rgblight_set_layer_state(0, led_state.caps_lock); - return true; -} -*/ - -#ifdef OLED_ENABLE -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - if (!is_keyboard_master()) { - return OLED_ROTATION_180; // flips the display 180 degrees if offhand - } - return rotation; -} -// When add source files to SRC in rules.mk, you can use functions. -const char *read_layer_state(void); -const char *read_logo(void); -void set_keylog(uint16_t keycode, keyrecord_t *record); -const char *read_keylog(void); -const char *read_keylogs(void); - - -const char *read_mode_icon(bool swap); -// const char *read_host_led_state(void); -// void set_timelog(void); -// const char *read_timelog(void); - - -void oled_render_layer_state(void) { - char string [24]; - switch (get_highest_layer(default_layer_state|layer_state)) - { - case _QWERTY: - oled_write_ln_P(PSTR("Layer: QWERTY"),false); - break; - case _COLEMAK: - oled_write_ln_P(PSTR("Layer: COLEMAK"),false); - break; - case _COLEMAKDH: - oled_write_ln_P(PSTR("Layer: COLEMAKDH"),false); - break; - case _NUM: - oled_write_ln_P(PSTR("Layer: Numbers"),false); - break; - case _SYM: - oled_write_ln_P(PSTR("Layer: Symbols"),false); - break; - case _COMMAND: - oled_write_ln_P(PSTR("Layer: Command"),false); - break; - case _NUMPAD: - oled_write_ln_P(PSTR("Layer: Numpad"),false); - break; - case _MOVE: - oled_write_ln_P(PSTR("Layer: Movement"),false); - break; - case _SWITCH: - oled_write_ln_P(PSTR("Layer: Layer Switch"),false); - break; - default: -#if defined (LAYER_STATE_32BIT) - snprintf(string, sizeof(string), "%ld",layer_state); -#else - snprintf(string, sizeof(string), "%d",layer_state); -#endif - oled_write_P(PSTR("Layer: Undef-"),false); - oled_write_ln(string, false); - } -} - -char keylog_str[24] = {}; -const char code_to_name[60] = { - ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', - 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', - 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', - '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', - 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', - '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; - -void set_keylog(uint16_t keycode, keyrecord_t *record) { - char name = ' '; - if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || - (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; } - if (keycode < 60) { - name = code_to_name[keycode]; - } - - // update keylog - snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c", - record->event.key.row, record->event.key.col, - keycode, name); -} - -void oled_render_keylog(void) { - oled_write(keylog_str, false); -} - -void render_bootmagic_status(bool status) { - /* Show Ctrl-Gui Swap options */ - static const char PROGMEM logo[][2][3] = { - {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, - {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, - }; - if (status) { - oled_write_ln_P(logo[0][0], false); - oled_write_ln_P(logo[0][1], false); - } else { - oled_write_ln_P(logo[1][0], false); - oled_write_ln_P(logo[1][1], false); - } -} - -void oled_render_logo(void) { - static const char PROGMEM crkbd_logo[] = { - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, - 0}; - oled_write_P(crkbd_logo, false); -} - -bool oled_task_user(void) { - if (is_keyboard_master()) { - oled_render_layer_state(); - oled_render_keylog(); - } else { - oled_render_logo(); - } - return false; -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { - set_keylog(keycode, record); - } - return true; -} -#endif // OLED_ENABLE diff --git a/keyboards/crkbd/keymaps/devdev/rules.mk b/keyboards/crkbd/keymaps/devdev/rules.mk deleted file mode 100644 index 4d53cc7564..0000000000 --- a/keyboards/crkbd/keymaps/devdev/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -MOUSEKEY_ENABLE = yes -EXTRAKEY_ENABLE = yes -RGBLIGHT_ENABLE = yes -OLED_ENABLE = yes diff --git a/keyboards/crkbd/keymaps/edvorakjp/config.h b/keyboards/crkbd/keymaps/edvorakjp/config.h deleted file mode 100644 index 94896f6898..0000000000 --- a/keyboards/crkbd/keymaps/edvorakjp/config.h +++ /dev/null @@ -1,24 +0,0 @@ -#pragma once - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -#define SWAP_SCLN - -// #define QUICK_TAP_TERM 0 -#define TAPPING_TERM 300 - -#ifdef RGBLIGHT_ENABLE -# undef RGBLED_NUM -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -# define RGBLED_NUM 27 -# define RGBLIGHT_LIMIT_VAL 100 -# define RGBLIGHT_HUE_STEP 10 -# define RGBLIGHT_SAT_STEP 17 -# define RGBLIGHT_VAL_STEP 17 -#endif // RGBLIGHT_ENABLE - -#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" diff --git a/keyboards/crkbd/keymaps/edvorakjp/keymap.c b/keyboards/crkbd/keymaps/edvorakjp/keymap.c deleted file mode 100644 index 0cc8a0c4ba..0000000000 --- a/keyboards/crkbd/keymaps/edvorakjp/keymap.c +++ /dev/null @@ -1,67 +0,0 @@ -#include QMK_KEYBOARD_H -#ifdef PROTOCOL_LUFA -# include "split_util.h" -#endif - -#include "edvorakjp.h" - -#define LAYOUT_wrapper(...) LAYOUT_split_3x6_3(__VA_ARGS__) - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [L_EDVORAKJP_BASE] = LAYOUT_wrapper( - //,-----------------------------------------------------. ,-----------------------------------------------------. - KC_GRV, __EDVORAKJP_BASE_L1__ , __EDVORAKJP_BASE_R1__ , KC_BSLS, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_EQL, __EDVORAKJP_BASE_L2__ , __EDVORAKJP_BASE_R2__ , KC_MINS, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_ESC, __EDVORAKJP_BASE_L3__ , __EDVORAKJP_BASE_R3__ , KC_SLSH, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - LA_TAB, LS_SPC,LOWER_TD, RAISE_TD, RC_BSPC, RG_ENT - //`--------------------------' `--------------------------' - ), - - [L_EDVORAKJP_LOWER] = LAYOUT_wrapper( - //,-----------------------------------------------------. ,-----------------------------------------------------. - XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_L__ , XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_R__ , XXXXXXX, XXXXXXX, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - __EDVORAKJP_FUNCTION_L__ , __EDVORAKJP_FUNCTION_R__ , - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_TRNS, XXXXXXX, KC_MAC, RC_DEL, KC_TRNS - //`--------------------------' `--------------------------' - ), - - [L_EDVORAKJP_RAISE] = LAYOUT_wrapper( - //,-----------------------------------------------------. ,-----------------------------------------------------. - XXXXXXX, XXXXXXX, __EDVORAKJP_SYMBOL_L__ , __EDVORAKJP_SYMBOL_R__ , XXXXXXX, XXXXXXX, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - XXXXXXX, __EDVORAKJP_NUMBER_L__ , __EDVORAKJP_NUMBER_R__ , XXXXXXX, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_TRNS, KC_WIN, XXXXXXX, KC_TRNS, KC_TRNS - //`--------------------------' `--------------------------' - ) -}; -// clang-format on - -#ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT -layer_state_t layer_state_set_keymap(layer_state_t state) { - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); - switch (get_highest_layer(state)) { - case L_EDVORAKJP_LOWER: - rgblight_sethsv_noeeprom(HSV_RED); - break; - case L_EDVORAKJP_RAISE: - rgblight_sethsv_noeeprom(HSV_GREEN); - break; - default: // for any other layers, or the default layer - rgblight_mode(RGBLIGHT_MODE_STATIC_GRADIENT + 3); - rgblight_sethsv(HSV_RED); - break; - } - return state; -} -#endif diff --git a/keyboards/crkbd/keymaps/edvorakjp/oled.c b/keyboards/crkbd/keymaps/edvorakjp/oled.c deleted file mode 100644 index cd75f8e277..0000000000 --- a/keyboards/crkbd/keymaps/edvorakjp/oled.c +++ /dev/null @@ -1,56 +0,0 @@ -#include -#include -#include "oled.h" - -#ifdef OLED_ENABLE -void render_host_led_state(void) { oled_write(read_host_led_state(), false); } - -void render_layer_state(void) { - char layer_name[17]; - oled_write_P(PSTR("Layer: "), false); - - switch (get_highest_layer(layer_state)) { - case L_EDVORAKJP_BASE: - oled_write_ln_P(PSTR("Default"), false); - break; - case L_EDVORAKJP_LOWER: - oled_write_ln_P(PSTR("Lower"), false); - break; - case L_EDVORAKJP_RAISE: - oled_write_ln_P(PSTR("Raise"), false); - break; - default: - snprintf(layer_name, sizeof(layer_name), "Undef-%ld", layer_state); - oled_write_ln(layer_name, false); - } -} - -void render_logo(void) { oled_write(read_logo(), false); } - -void render_mode_icon(bool is_windows) { - static const char logo[][2][3] = { - {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, - {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, - }; - static char mode_icon[10]; - - snprintf(mode_icon, sizeof(mode_icon), "%s\n%s ", logo[is_windows][0], logo[is_windows][1]); - oled_write(mode_icon, false); -} - -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - // flips the display 180 degrees if offhand - return is_keyboard_left() ? rotation : rotation ^ OLED_ROTATION_180; -} - -bool oled_task_user(void) { - if (is_keyboard_left()) { - render_mode_icon(!get_enable_kc_lang()); - render_layer_state(); - render_host_led_state(); - } else { - render_logo(); - } - return false; -} -#endif // OLED_ENABLE diff --git a/keyboards/crkbd/keymaps/edvorakjp/oled.h b/keyboards/crkbd/keymaps/edvorakjp/oled.h deleted file mode 100644 index d9939c83a0..0000000000 --- a/keyboards/crkbd/keymaps/edvorakjp/oled.h +++ /dev/null @@ -1,17 +0,0 @@ -#pragma once - -#include "edvorakjp.h" - -extern bool japanese_mode; - -// method prototypes defined in crkbd/lib -extern const char *read_host_led_state(void); -extern const char *read_logo(void); -extern const char *read_mode_icon(bool swap); - -void render_host_led_state(void); -void render_layer_state(void); -void render_logo(void); -void render_mode_icon(bool is_windows); -oled_rotation_t oled_init_user(oled_rotation_t rotation); -void oled_task_user(void); diff --git a/keyboards/crkbd/keymaps/edvorakjp/readme.md b/keyboards/crkbd/keymaps/edvorakjp/readme.md deleted file mode 100644 index dd406523d2..0000000000 --- a/keyboards/crkbd/keymaps/edvorakjp/readme.md +++ /dev/null @@ -1,21 +0,0 @@ -# edvorakjp - -Epaew's Enhanced Dvorak layout for Japanese Programmer -see [here](/users/edvorakjp) for more informations. - -## License - -Copyright 2018 Ryo Maeda epaew.333@gmail.com @epaew - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . diff --git a/keyboards/crkbd/keymaps/edvorakjp/rules.mk b/keyboards/crkbd/keymaps/edvorakjp/rules.mk deleted file mode 100644 index c019c30756..0000000000 --- a/keyboards/crkbd/keymaps/edvorakjp/rules.mk +++ /dev/null @@ -1,28 +0,0 @@ -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys(+4700) -EXTRAKEY_ENABLE = no # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. -SWAP_HANDS_ENABLE = no # Enable one-hand typing -TAP_DANCE_ENABLE = yes -OLED_ENABLE = yes - -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - -# If you want to change the display of OLED, you need to change here -SRC += ./lib/host_led_state_reader.c \ - ./lib/logo_reader.c \ - ./lib/mode_icon_reader.c \ - oled.c diff --git a/keyboards/crkbd/keymaps/ericgebhart/config.h b/keyboards/crkbd/keymaps/ericgebhart/config.h deleted file mode 100755 index d1844f6807..0000000000 --- a/keyboards/crkbd/keymaps/ericgebhart/config.h +++ /dev/null @@ -1,24 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -// otherwise the other promicro v3 isn't found -#define SPLIT_USB_DETECT diff --git a/keyboards/crkbd/keymaps/ericgebhart/keymap.c b/keyboards/crkbd/keymaps/ericgebhart/keymap.c deleted file mode 100644 index c534fe3c6d..0000000000 --- a/keyboards/crkbd/keymaps/ericgebhart/keymap.c +++ /dev/null @@ -1,18 +0,0 @@ -/* - Copyright 2018-2022 Eric Gebhart - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -// See: users/ericgebhart. diff --git a/keyboards/crkbd/keymaps/hvp/config.h b/keyboards/crkbd/keymaps/hvp/config.h deleted file mode 100644 index 1a9ac69498..0000000000 --- a/keyboards/crkbd/keymaps/hvp/config.h +++ /dev/null @@ -1,54 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -//#define USE_MATRIX_I2C - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -//#define QUICK_TAP_TERM 0 -//#define TAPPING_TERM 100 - -#define TAPPING_TERM 150 -#define PERMISSIVE_HOLD - -#ifdef RGBLIGHT_ENABLE -# undef RGBLED_NUM -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_SNAKE -# define RGBLIGHT_EFFECT_KNIGHT -# define RGBLIGHT_EFFECT_CHRISTMAS -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -# define RGBLIGHT_EFFECT_RGB_TEST -# define RGBLIGHT_EFFECT_ALTERNATING -# define RGBLIGHT_EFFECT_TWINKLE -# define RGBLED_NUM 27 -# define RGBLIGHT_LIMIT_VAL 120 -# define RGBLIGHT_HUE_STEP 10 -# define RGBLIGHT_SAT_STEP 17 -# define RGBLIGHT_VAL_STEP 17 -#endif diff --git a/keyboards/crkbd/keymaps/hvp/keymap.c b/keyboards/crkbd/keymaps/hvp/keymap.c deleted file mode 100644 index fc57fc1bb0..0000000000 --- a/keyboards/crkbd/keymaps/hvp/keymap.c +++ /dev/null @@ -1,160 +0,0 @@ -#include QMK_KEYBOARD_H -#include "hvp.c" - -#ifdef RGBLIGHT_ENABLE -//Following line allows macro to read current RGB settings -extern rgblight_config_t rgblight_config; -#endif - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QWERTY 0 -#define _LOWER 1 -#define _RAISE 2 -#define _ADJUST 3 - -enum custom_keycodes { - QWERTY = SAFE_RANGE, - LOWER, - RAISE, - ADJUST -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_split_3x6_3( - //,-----------------------------------------. ,-----------------------------------------. - LT(_ADJUST,KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_BSPC, - //|------+------+------+------+------+------| |------+------+------+------+------+------| - LSFT_T(KC_ESC), KC_A, KC_S, KC_D, LT(3,KC_F), KC_G, KC_H, KC_J, KC_K, KC_L,TD(TD1),TD(TD2), - //|------+------+------+------+------+------| |------+------+------+------+------+------| - KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM,KC_DOT,TD(TD3),SC_SENT, - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - KC_LGUI, LT(1,KC_SPC),MT(MOD_LSFT, KC_SPC), MT(MOD_LSFT,KC_ENT), LT(2,KC_SPC),KC_LALT - //`--------------------' `--------------------' - ), - - [_RAISE] = LAYOUT_split_3x6_3( - //,-----------------------------------------. ,-----------------------------------------. - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_BSPC, - //|------+------+------+------+------+------| |------+------+------+------+------+------| - KC_DEL, _______, _______, _______, _______, _______, _______,KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - //|------+------+------+------+------+------| |------+------+------+------+------+------| - KC_LCTL, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - _______, _______, _______, _______, _______, _______ - //`--------------------' `--------------------' - ), - - [_LOWER] = LAYOUT_split_3x6_3( - //,-----------------------------------------. ,-----------------------------------------. - KC_TAB,KC_EXLM,KC_AT,KC_HASH,KC_DLR,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSPC, - //|------+------+------+------+------+------| |------+------+------+------+------+------| - KC_DEL, _______, _______, _______, _______, _______, _______,KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS, - //|------+------+------+------+------+------| |------+------+------+------+------+------| - KC_LCTL, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TILD, - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - _______, _______, _______, _______, _______, _______ - //`--------------------' `--------------------' - ), - - [_ADJUST] = LAYOUT_split_3x6_3( - //,-----------------------------------------. ,-----------------------------------------. - _______,KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - //|------+------+------+------+------+------| |------+------+------+------+------+------| - KC_F1,_______,_______,D_NAVI,_______,_______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, - //|------+------+------+------+------+------| |------+------+------+------+------+------| - QK_BOOT,KC_PSCR,_______,_______,_______,_______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - _______, KC_VOLD,KC_MPLY, KC_MNXT, KC_VOLU,_______ - //`--------------------' `--------------------' - ) -}; - -int RGB_current_mode; - -// Setting ADJUST layer RGB back to default -void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { - layer_on(layer3); - } else { - layer_off(layer3); - } -} - -void matrix_init_user(void) { - #ifdef RGBLIGHT_ENABLE - RGB_current_mode = rgblight_config.mode; - #endif -} - -#ifdef OLED_ENABLE - -// When add source files to SRC in rules.mk, you can use functions. -const char *read_layer_state(void); -const char *read_logo(void); -void set_keylog(uint16_t keycode, keyrecord_t *record); -const char *read_keylog(void); -const char *read_keylogs(void); - -// const char *read_mode_icon(bool swap); -// const char *read_host_led_state(void); -// void set_timelog(void); -// const char *read_timelog(void); - -bool oled_task_user(void) { - if (is_keyboard_master()) { - // If you want to change the display of OLED, you need to change here - oled_write(read_layer_state(), false); - oled_write(read_keylog(), false); - //oled_write_ln(read_keylogs(), false); - //oled_write_ln(read_mode_icon(keymap_config.swap_lalt_lgui), false); - //oled_write_ln(read_host_led_state()), false; - //oled_write_ln(read_timelog(), false); - } else { - oled_write(read_logo(), false); - } - return false; -} - -#endif - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { -#ifdef OLED_ENABLE - set_keylog(keycode, record); -#endif - // set_timelog(); - } - - switch (keycode) { - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } - return false; - case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } - return false; - case ADJUST: - if (record->event.pressed) { - layer_on(_ADJUST); - } else { - layer_off(_ADJUST); - } - return false; - break; - } - return true; -} diff --git a/keyboards/crkbd/keymaps/hvp/readme.md b/keyboards/crkbd/keymaps/hvp/readme.md deleted file mode 100644 index 3ccdc12193..0000000000 --- a/keyboards/crkbd/keymaps/hvp/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -Keyboard: Corne Keyboard (CRKBD) -Keys: A split keyboard with 3x6 vertically staggered keys and 3 thumb keys. -Layout: Swedish characters on main layer using tapdance. Built for eurkey keyboard layout. -Flash instructions: Flash using avrdude, will req the hvp user space to compile. - -> make crkbd:hvp:avrdude - -Links: -Github - https://github.com/qmk/qmk_firmware/tree/master/keyboards/crkbd -Eurkey layout - https://eurkey.steffen.bruentjen.eu/ diff --git a/keyboards/crkbd/keymaps/hvp/rules.mk b/keyboards/crkbd/keymaps/hvp/rules.mk deleted file mode 100644 index 3091ed20af..0000000000 --- a/keyboards/crkbd/keymaps/hvp/rules.mk +++ /dev/null @@ -1,13 +0,0 @@ -# If you want to change the display of OLED, you need to change here -SRC += ./lib/rgb_state_reader.c \ - ./lib/layer_state_reader.c \ - ./lib/logo_reader.c \ - ./lib/keylogger.c \ - # ./lib/mode_icon_reader.c \ - # ./lib/host_led_state_reader.c \ - # ./lib/timelogger.c \ - -TAP_DANCE_ENABLE = yes -EXTRAKEY_ENABLE = yes # Audio control and System control -OLED_ENABLE = yes -# LOCAL_GLCDFONT = yes diff --git a/keyboards/crkbd/keymaps/jarred/config.h b/keyboards/crkbd/keymaps/jarred/config.h deleted file mode 100644 index c95deb1abb..0000000000 --- a/keyboards/crkbd/keymaps/jarred/config.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -//#define USE_MATRIX_I2C - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -//#define QUICK_TAP_TERM 0 -//#define TAPPING_TERM 100 - -#undef RGBLED_NUM -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 27 -#define RGBLIGHT_LIMIT_VAL 120 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/crkbd/keymaps/jarred/keymap.c b/keyboards/crkbd/keymaps/jarred/keymap.c deleted file mode 100644 index b0e181b37f..0000000000 --- a/keyboards/crkbd/keymaps/jarred/keymap.c +++ /dev/null @@ -1,152 +0,0 @@ -#include QMK_KEYBOARD_H -#include "jarred.h" - -#ifdef PROTOCOL_LUFA - #include "lufa.h" - #include "split_util.h" -#endif - -#ifdef RGBLIGHT_ENABLE -//Following line allows macro to read current RGB settings -extern rgblight_config_t rgblight_config; -#endif - -#define LAYOUT_crkbd_base( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \ - K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \ - K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ - K31, K32, K33, K34, K35, K36 \ - ) - -#define LAYOUT_crkbd_wrapper(...) LAYOUT_split_3x6_3(__VA_ARGS__) - -#define QWERTY_4_CRKBD KC_LCTL, MO(_LW), KC_SPC, KC_ENT, MO(_LW), KC_RALT - -#define BLANK_4_CRKBD KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = LAYOUT_crkbd_wrapper( - QWERTY_1_12, - QWERTY_2_12, - QWERTY_3_12, - QWERTY_4_DOX - ), - - [_LW] = LAYOUT_crkbd_wrapper( - LOWER_1_12, - LOWER_2_12, - LOWER_3_12, - LOWER_4_DOX - ), - - [_NV] = LAYOUT_crkbd_wrapper( - NAV_1_12, - NAV_2_12, - NAV_3_12, - NAV_4_DOX - ), - - [_NP] = LAYOUT_crkbd_wrapper( - NUMPAD_1_12, - NUMPAD_2_12, - NUMPAD_3_12, - NUMPAD_4_DOX - ), - - [_MS] = LAYOUT_crkbd_wrapper( - MOUSE_1_12, - MOUSE_2_12, - MOUSE_3_12, - MOUSE_4_DOX - ) -}; - -#ifdef OLED_ENABLE - -// When add source files to SRC in rules.mk, you can use functions. -const char *read_logo(void); -void set_keylog(uint16_t keycode, keyrecord_t *record); -const char *read_keylog(void); -const char *read_keylogs(void); - -char matrix_line_str[24]; - -const char *read_layer_state(void) { - uint8_t layer = get_highest_layer(layer_state); - - strcpy(matrix_line_str, "Layer: "); - - switch (layer) - { - case _QW: - strcat(matrix_line_str, "Default"); - break; - case _LW: - strcat(matrix_line_str, "Lower"); - break; - case _NV: - strcat(matrix_line_str, "Navigation"); - break; - case _NP: - strcat(matrix_line_str, "Adjust"); - break; - case _MS: - strcat(matrix_line_str, "Mouse"); - break; - default: - sprintf(matrix_line_str + strlen(matrix_line_str), "Unknown (%d)", layer); - } - - return matrix_line_str; -} - -const char *read_usb_state(void) { - - strcpy(matrix_line_str, "USB : "); - - switch (USB_DeviceState) { - case DEVICE_STATE_Unattached: - strcat(matrix_line_str, "Unattached"); - break; - case DEVICE_STATE_Suspended: - strcat(matrix_line_str, "Suspended"); - break; - case DEVICE_STATE_Configured: - strcat(matrix_line_str, "Connected"); - break; - case DEVICE_STATE_Powered: - strcat(matrix_line_str, "Powered"); - break; - case DEVICE_STATE_Default: - strcat(matrix_line_str, "Default"); - break; - case DEVICE_STATE_Addressed: - strcat(matrix_line_str, "Addressed"); - break; - default: - strcat(matrix_line_str, "Invalid"); - } - - return matrix_line_str; -} - -bool oled_task_user(void) { - if (is_keyboard_master()) { - oled_write_ln(read_layer_state(), false); - oled_write_ln(read_usb_state(), false); - oled_write_ln(read_keylogs(), false); - } else { - oled_write(read_logo(), false); - } - return false; -} - -#endif - -bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { - set_keylog(keycode, record); - } - - return true; -} diff --git a/keyboards/crkbd/keymaps/jarred/readme.md b/keyboards/crkbd/keymaps/jarred/readme.md deleted file mode 100644 index 15e355bbca..0000000000 --- a/keyboards/crkbd/keymaps/jarred/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -# Jarred's CRKBD Layout - -Check out [user space readme](../../../../users/jarred/readme.md) for more info - -# Build - -``` -make crkbd:jarred:avrdude -``` diff --git a/keyboards/crkbd/keymaps/jarred/rules.mk b/keyboards/crkbd/keymaps/jarred/rules.mk deleted file mode 100644 index efa378b099..0000000000 --- a/keyboards/crkbd/keymaps/jarred/rules.mk +++ /dev/null @@ -1,31 +0,0 @@ - -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys(+4700) -EXTRAKEY_ENABLE = no # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. -SWAP_HANDS_ENABLE = no # Enable one-hand typing -OLED_ENABLE = yes - -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - -# If you want to change the display of OLED, you need to change here -SRC += ./lib/rgb_state_reader.c \ - ./lib/logo_reader.c \ - ./lib/keylogger.c \ - #./lib/layer_state_reader.c \ - # ./lib/mode_icon_reader.c \ - # ./lib/host_led_state_reader.c \ - # ./lib/timelogger.c \ diff --git a/keyboards/crkbd/keymaps/ninjonas/README.md b/keyboards/crkbd/keymaps/ninjonas/README.md deleted file mode 100644 index 84b55906f8..0000000000 --- a/keyboards/crkbd/keymaps/ninjonas/README.md +++ /dev/null @@ -1,99 +0,0 @@ -# ninjonas Keymap for [Corne Keyboard (crkbd)](https://github.com/foostan/crkbd) - -## Keymap -This keymap is designed based off my typing habits and is subject to change. Information about custom user macros and tap dances can be found [here](../../../../users/ninjonas). - -More information about the crkbd keyboard can be found [here](https://thomasbaart.nl/2018/11/26/corne-keyboard-helidox-build-log/) - -### QWERTY -```c - //,----------------------------------------------------. ,----------------------------------------------------. - // Tab, Q, W, E, R, T, Y, U, I, O, P, \ - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - // ESC, A, S, D, F, G, H, J, K, L, ;, ' - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - // LShift, Z, X, C, V, B, N, M, ,, ., /, = - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - // Cmd, Ctrl, Space, Enter, BackSP, Del - //`---------------------' `---------------------' -``` - -### DVORAK -```c - //,----------------------------------------------------. ,----------------------------------------------------. - // Tab, ', ,, ., P, Y, F, G, C, R, L, \ - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - // ESC, A, O, E, U, I, D, H, T, N, S, / - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - // LShift, ;, Q, J, K, X, B, M, W, V, Z, = - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - // Cmd, Ctrl, Space, Enter, BackSP, Del - //`---------------------' `---------------------' -``` - -### COLEMAK -```c - //,----------------------------------------------------. ,----------------------------------------------------. - // Tab, Q, W, F, P, G, J, L, U, Y, ;, \ - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - // ESC, A, R, S, T, D, H, N, E, I, O, ' - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - // LShift, Z, X, C, V, B, K, M, ,, ., /, = - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - // Cmd, Ctrl, Space, Enter, BackSP, Del - //`---------------------' `---------------------' -``` - -### LOWER -```c - //,----------------------------------------------------. ,----------------------------------------------------. - // , , KC_BRIU, Play, Mute, K_CSCN, PgUp, Home, Up, End, , K_MDSH - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - // , , KC_BRID, Next, VolUp, , PgDn, Left, Down, Right, K_LOCK, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - // , , , Prev, VolDn, [, ], , , M_CODE, M_XXX1, M_PYNV, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - // , , , , , - //`---------------------' `---------------------' -``` - -### RAISE -```c - //,----------------------------------------------------. ,----------------------------------------------------. - // `, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, - - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - // ~, !, @, #, $, %, ^, &, *, (, ), _ - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - // F11, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F12 - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - // , , , , , - //`---------------------' `---------------------' -``` - -### ADJUST -```c - //,----------------------------------------------------. ,----------------------------------------------------. - // M_MAKE, EE_CLR , , , , , RGB_TOG, , , COLEMAK, DVORAK, QWERTY, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - // M_VRSN, M_MALL, , RGB_SAI, RGB_HUI, RGB_VAI, , , , , , , - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - // M_FLSH, , , RGB_SAD, RGB_HUD, RGB_VAD, RGB_M_P, RGB_M_B,RGB_M_SW, , , , - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - // , , , , , - //`---------------------' `---------------------' -``` - - \ No newline at end of file diff --git a/keyboards/crkbd/keymaps/ninjonas/config.h b/keyboards/crkbd/keymaps/ninjonas/config.h deleted file mode 100644 index fa3711ce8f..0000000000 --- a/keyboards/crkbd/keymaps/ninjonas/config.h +++ /dev/null @@ -1,88 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define TAPPING_TERM 200 - -#define MASTER_LEFT - -#define QUICK_TAP_TERM 0 - -#ifdef RGB_MATRIX_ENABLE - #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 - #define RGB_MATRIX_HUE_STEP 10 - #define RGB_MATRIX_SAT_STEP 10 - #define RGB_MATRIX_VAL_STEP 10 - #define RGB_MATRIX_SPD_STEP 10 - // #define RGB_MATRIX_KEYPRESSES - #define RGB_MATRIX_FRAMEBUFFER_EFFECTS - -// BEGIN: Disable RGB Effects -//#undef ENABLE_RGB_MATRIX_SOLID_COLOR -//#undef ENABLE_RGB_MATRIX_ALPHAS_MODS -//#undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN -# undef ENABLE_RGB_MATRIX_BREATHING -# undef ENABLE_RGB_MATRIX_BAND_SAT -# undef ENABLE_RGB_MATRIX_BAND_VAL -// #undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT -# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL -# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT -# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL -# undef ENABLE_RGB_MATRIX_CYCLE_ALL -# undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT -# undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN -# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN -# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL -# undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -# undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL -# undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL -# undef ENABLE_RGB_MATRIX_DUAL_BEACON -# undef ENABLE_RGB_MATRIX_RAINBOW_BEACON -# undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS -# undef ENABLE_RGB_MATRIX_RAINDROPS -# undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS - -// BEGIN: RGB_MATRIX_FRAMEBUFFER_EFFECTS -# undef ENABLE_RGB_MATRIX_TYPING_HEATMAP -// #undef ENABLE_RGB_MATRIX_DIGITAL_RAIN -// END: RGB_MATRIX_FRAMEBUFFER_EFFECTS - -// BEGIN: RGB_MATRIX_KEYPRESSES -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -# undef ENABLE_RGB_MATRIX_SPLASH -# undef ENABLE_RGB_MATRIX_MULTISPLASH -# undef ENABLE_RGB_MATRIX_SOLID_SPLASH -# undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -// END: RGB_MATRIX_KEYPRESSES -// END: Disable RGB Effects -#endif - -#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" -#define OLED_DISABLE_TIMEOUT - -#define LAYOUT LAYOUT_split_3x6_3 diff --git a/keyboards/crkbd/keymaps/ninjonas/keymap.c b/keyboards/crkbd/keymaps/ninjonas/keymap.c deleted file mode 100644 index 66b89f3a98..0000000000 --- a/keyboards/crkbd/keymaps/ninjonas/keymap.c +++ /dev/null @@ -1,101 +0,0 @@ -#include QMK_KEYBOARD_H -#include "ninjonas.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_wrapper( - //,----------------------------------------------------. ,----------------------------------------------------. - _____________________QWERTY_L1______________________, _____________________QWERTY_R1______________________, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - _____________________QWERTY_L2______________________, _____________________QWERTY_R2______________________, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - _____________________QWERTY_L3______________________, _____________________QWERTY_R3______________________, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - ________MOD_LEFT_________, ________MOD_RIGHT________ - //`---------------------' `---------------------' - ), - - [_DVORAK] = LAYOUT_wrapper( - //,----------------------------------------------------. ,----------------------------------------------------. - _____________________DVORAK_L1______________________, _____________________DVORAK_R1______________________, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - _____________________DVORAK_L2______________________, _____________________DVORAK_R2______________________, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - _____________________DVORAK_L3______________________, _____________________DVORAK_R3______________________, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - ________MOD_LEFT_________, ________MOD_RIGHT________ - //`---------------------' `---------------------' - ), - - [_COLEMAK] = LAYOUT_wrapper( - //,----------------------------------------------------. ,----------------------------------------------------. - _____________________COLEMAK_L1_____________________, _____________________COLEMAK_R1_____________________, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - _____________________COLEMAK_L2_____________________, _____________________COLEMAK_R2_____________________, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - _____________________COLEMAK_L3_____________________, _____________________COLEMAK_R3_____________________, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - ________MOD_LEFT_________, ________MOD_RIGHT________ - //`---------------------' `---------------------' - ), - - [_LOWER] = LAYOUT_wrapper( - //,----------------------------------------------------. ,----------------------------------------------------. - _____________________LOWER_L1_______________________, _____________________LOWER_R1_______________________, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - _____________________LOWER_L2_______________________, _____________________LOWER_R2_______________________, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - _____________________LOWER_L3_______________________, _____________________LOWER_R3_______________________, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - _______,_______,_______, _______,_______,_______ - //`---------------------' `---------------------' - ), - - [_RAISE] = LAYOUT_wrapper( - //,----------------------------------------------------. ,----------------------------------------------------. - _____________________NUM_LEFT_______________________, _____________________NUM_RIGHT______________________, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - _____________________SYM_LEFT_______________________, _____________________SYM_RIGHT______________________, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - _____________________FUNC_LEFT______________________, _____________________FUNC_RIGHT_____________________, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - _______,_______,_______, _______,_______,_______ - //`---------------------' `---------------------' - ), - - [_ADJUST] = LAYOUT_wrapper( - //,----------------------------------------------------. ,----------------------------------------------------. - _____________________ADJUST_L1______________________, _____________________ADJUST_R1______________________, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - _____________________ADJUST_L2______________________, _____________________ADJUST_R2______________________, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - _____________________ADJUST_L3______________________, _____________________ADJUST_R3______________________, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - _______,_______,_______, _______,_______,_______ - //`---------------------' `---------------------' - ), - - [_NUMPAD] = LAYOUT_wrapper( - //,----------------------------------------------------. ,----------------------------------------------------. - _______, _______, _______, _______, _______, _______, _____________________NUMPAD_1_______________________, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - _______, _______, _______, _______, _______, _______, _____________________NUMPAD_2_______________________, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - _______, _______, _______, _______, _______, _______, _____________________NUMPAD_3_______________________, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - _______,_______,_______, _______,_______,_______ - //`---------------------' `---------------------' - ), -/* - [_TEMPLATE] = LAYOUT_wrapper( - //,----------------------------------------------------. ,----------------------------------------------------. - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| - _______,_______,_______, _______,_______,_______ - //`---------------------' `---------------------' - ), -*/ -}; diff --git a/keyboards/crkbd/keymaps/ninjonas/rules.mk b/keyboards/crkbd/keymaps/ninjonas/rules.mk deleted file mode 100644 index 6dd34f26d7..0000000000 --- a/keyboards/crkbd/keymaps/ninjonas/rules.mk +++ /dev/null @@ -1,7 +0,0 @@ -RGB_MATRIX_ENABLE = yes -MOUSEKEY_ENABLE = no -OLED_ENABLE = yes -LTO_ENABLE = yes - -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/crkbd/keymaps/ollyhayes/config.h b/keyboards/crkbd/keymaps/ollyhayes/config.h deleted file mode 100644 index 9ad1ce2c58..0000000000 --- a/keyboards/crkbd/keymaps/ollyhayes/config.h +++ /dev/null @@ -1,95 +0,0 @@ -/* Copyright 2022 Olly Hayes (@ollyhayes) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define EE_HANDS - -#define QUICK_TAP_TERM 0 -#define TAPPING_TERM 100 - -#define NO_ACTION_ONESHOT - -#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" - -#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX - -#ifdef RGB_MATRIX_ENABLE -# define RGB_MATRIX_KEYPRESSES // reacts to keypresses -// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) -# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended -# define RGB_MATRIX_FRAMEBUFFER_EFFECTS -// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) -// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) -# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. -# define RGB_MATRIX_HUE_STEP 8 -# define RGB_MATRIX_SAT_STEP 8 -# define RGB_MATRIX_VAL_STEP 8 -# define RGB_MATRIX_SPD_STEP 10 - - -// RGB Matrix Animation modes. Explicitly enabled -// For full list of effects, see: -// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects -# define ENABLE_RGB_MATRIX_SOLID_COLOR -// # define ENABLE_RGB_MATRIX_ALPHAS_MODS -// # define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN -// # define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT -// # define ENABLE_RGB_MATRIX_BREATHING -// # define ENABLE_RGB_MATRIX_BAND_SAT -// # define ENABLE_RGB_MATRIX_BAND_VAL -// # define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT -// # define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL -// # define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT -// # define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL -// # define ENABLE_RGB_MATRIX_CYCLE_ALL -// # define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT -// # define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN -// # define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -// # define ENABLE_RGB_MATRIX_CYCLE_OUT_IN -// # define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL -// # define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL -// # define ENABLE_RGB_MATRIX_CYCLE_SPIRAL -// # define ENABLE_RGB_MATRIX_DUAL_BEACON -// # define ENABLE_RGB_MATRIX_RAINBOW_BEACON -# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS -// # define ENABLE_RGB_MATRIX_RAINDROPS -// # define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS -// # define ENABLE_RGB_MATRIX_HUE_BREATHING -// # define ENABLE_RGB_MATRIX_HUE_PENDULUM -// # define ENABLE_RGB_MATRIX_HUE_WAVE -// # define ENABLE_RGB_MATRIX_PIXEL_RAIN -// # define ENABLE_RGB_MATRIX_PIXEL_FLOW -// # define ENABLE_RGB_MATRIX_PIXEL_FRACTAL -// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined -# define ENABLE_RGB_MATRIX_TYPING_HEATMAP -# define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 200 -// # define ENABLE_RGB_MATRIX_DIGITAL_RAIN -// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE -// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -// # define ENABLE_RGB_MATRIX_SPLASH -// # define ENABLE_RGB_MATRIX_MULTISPLASH -// # define ENABLE_RGB_MATRIX_SOLID_SPLASH -// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH - -#endif diff --git a/keyboards/crkbd/keymaps/ollyhayes/keymap.c b/keyboards/crkbd/keymaps/ollyhayes/keymap.c deleted file mode 100644 index 5b9bc6cd4e..0000000000 --- a/keyboards/crkbd/keymaps/ollyhayes/keymap.c +++ /dev/null @@ -1,112 +0,0 @@ -/* Copyright 2022 Olly Hayes (@ollyhayes) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H -#include "ollyhayes.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [BASE] = LAYOUT_split_3x6_3( -// +------------+------+------+---------+----------+---------+--------+----------+---------+--------+---------+---------+ - NUM_SWITCH , KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , KC_SCLN , KC_BSPC , - KC_ESC , KC_A , KC_R , KC_S , KC_T , KC_D , KC_H , KC_N , KC_E , KC_I , KC_O , KC_ENT , - KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_K , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_RSFT , - KC_LCTL , MO(PUNC) , MO(ARR) , KC_SPC , MO(PUNC) , KC_RCTL -// +------------+------+------+---------+----------+---------+--------+----------+---------+--------+---------+---------+ - ), - - [QWERTY] = LAYOUT_split_3x6_3( -// +---------+------+------+---------+---------+---------+---------+---------+---------+--------+---------+---------+ - KC_TRNS , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_TRNS , - KC_TRNS , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_TRNS , - KC_TRNS , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_TRNS , - KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS -// +---------+------+------+---------+---------+---------+---------+---------+---------+--------+---------+---------+ - ), - - [GAMES] = LAYOUT_split_3x6_3( -// +---------+------+------+---------+---------+----------+---------+---------+---------+--------+---------+---------+ - KC_TRNS , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_TRNS , - KC_TRNS , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_TRNS , - KC_TRNS , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_TRNS , - KC_TRNS , KC_LALT , KC_SPACE , MO(ARR) , KC_TRNS , KC_TRNS -// +---------+------+------+---------+---------+----------+---------+---------+---------+--------+---------+---------+ - ), - - [NUM] = LAYOUT_split_3x6_3( -// +---------+---------------+------+--------+---------+-----------+-----------+------+--------+------+---------+---------+ - KC_TRNS , MO(FUNCTIONS) , KC_1 , KC_2 , KC_3 , DF(BASE) , C(KC_GRV) , KC_7 , KC_8 , KC_9 , KC_TRNS , KC_TRNS , - KC_TRNS , MO(MEDIA) , KC_4 , KC_5 , KC_6 , DF(GAMES) , KC_NO , KC_4 , KC_5 , KC_6 , KC_TRNS , KC_TRNS , - KC_TRNS , KC_0 , KC_7 , KC_8 , KC_9 , DF(QWERTY), KC_NO , KC_1 , KC_2 , KC_3 , KC_TRNS , KC_TRNS , - KC_DOT , KC_TRNS , KC_TAB , KC_TRNS , KC_0 , KC_DOT -// +---------+---------------+------+--------+---------+-----------+-----------+------+--------+------+---------+---------+ - ), - - [FUNCTIONS] = LAYOUT_split_3x6_3( -// +---------------+---------+---------+---------+---------+---------+---------+---------+---------+-------+---------+---------+ - KC_TRNS , KC_TRNS , KC_TRNS , KC_F8 , KC_F9 , KC_F12 , KC_F12 , KC_F7 , KC_F8 , KC_F9 , KC_TRNS , KC_TRNS , - TG(FUNCTIONS) , KC_TRNS , KC_F4 , KC_F5 , KC_F6 , KC_F11 , KC_F11 , KC_F4 , KC_F5 , KC_F6 , KC_TRNS , KC_TRNS , - KC_TRNS , KC_TRNS , KC_F1 , KC_F2 , KC_F3 , KC_F10 , KC_F10 , KC_F1 , KC_F2 , KC_F3 , KC_TRNS , KC_TRNS , - KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS -// +---------------+---------+---------+---------+---------+---------+---------+---------+---------+-------+---------+---------+ - ), - - [ARR] = LAYOUT_split_3x6_3( -// +---------+---------+-----------+---------+---------+------------+-----------+---------+---------+-----------+---------+---------+ - KC_TRNS , KC_TRNS , KC_HOME , KC_PGUP , KC_PGDN , KC_END , KC_HOME , KC_PGDN , KC_PGUP , KC_END , KC_TRNS , KC_TRNS , - KC_ENT , KC_DEL , KC_LEFT , KC_UP , KC_DOWN , KC_RGHT , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT , KC_DEL , KC_TRNS , - KC_TRNS , KC_INS , C(KC_LEFT), KC_LGUI , KC_LALT , C(KC_RGHT) , C(KC_LEFT), DOWN4 , UP4 , C(KC_RGHT), KC_INS , KC_TRNS , - KC_TRNS , KC_F12 , KC_TRNS , KC_TRNS , KC_F12 , KC_TRNS -// +---------+---------+-----------+---------+---------+------------+-----------+---------+---------+-----------+---------+---------+ - ), - - [PUNC] = LAYOUT_split_3x6_3( -// +---------+------------+-----------+-----------+-------------+------------+------------+-------------+------------+------------+-----------+---------+ - ALTTAB , S(KC_1) , S(KC_2) , UC(0x20ac), S(KC_4) , S(KC_5) , S(KC_6) , S(KC_7) , S(KC_8) , S(KC_9) , S(KC_0) , KC_TRNS , - KC_TRNS , S(KC_NUBS) , S(KC_GRV) , KC_LBRC , KC_RBRC , S(KC_NUHS) , KC_QUOT , S(KC_LBRC) , S(KC_RBRC) , KC_MINS , S(KC_EQL) , KC_TRNS , - KC_TRNS , KC_NUBS , KC_GRV , KC_LGUI , KC_LALT , KC_NUHS , S(KC_QUOT) , KC_LALT , KC_LGUI , S(KC_MINS) , KC_EQL , KC_TRNS , - KC_TRNS , MO(DUBPUNC) , KC_MPLY , KC_TRNS , MO(DUBPUNC) , KC_TRNS -// +---------+------------+-----------+-----------+-------------+------------+------------+-------------+------------+------------+-----------+---------+ - ), - - [MEDIA] = LAYOUT_split_3x6_3( -// +------------+-----------+---------+---------+---------+----------------+----------------+---------+---------+---------+----------+---------+ - QK_BOOT , RGB_RMOD , RGB_MOD , RGB_TOG , RGB_HUD , RGB_HUI , RGB_HUD , RGB_HUI , RGB_TOG , RGB_RMOD, RGB_MOD , KC_SLEP , - KC_TRNS , KC_TRNS , KC_TRNS , KC_VOLD , KC_VOLU , RGB_MODE_PLAIN , RGB_MODE_PLAIN , KC_VOLD , KC_VOLU , KC_TRNS , KC_TRNS , KC_TRNS , - KC_TRNS , KC_TRNS , RGB_VAD , RGB_VAI , RGB_SAD , RGB_SAI , RGB_SAD , RGB_SAI , RGB_VAD , RGB_VAI , KC_TRNS , KC_TRNS , - KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS -// +------------+-----------+---------+---------+---------+----------------+----------------+---------+---------+---------+----------+---------+ - ), - - [DUBPUNC] = LAYOUT_split_3x6_3( -// +---------+----------+-----------+-----------+------------+---------+-----------+---------+----------+---------+----------+---------+ - KC_TRNS , KC_TRNS , KC_TRNS , UC(0x00a3), KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , U_UMLAUT , KC_TRNS , KC_TRNS , KC_TRNS , - KC_TRNS , A_UMLAUT , KC_TRNS , UC(0x00df), UC(0x2713) , KC_TRNS , UC(0x00b0), KC_TRNS , KC_TRNS , KC_TRNS , O_UMLAUT , KC_TRNS , - KC_TRNS , KC_TRNS , UC(0x2717), 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 -// +---------+----------+-----------+-----------+------------+---------+-----------+---------+----------+---------+----------+---------+ - ) -}; - -/* -[TEMPLATE] = LAYOUT_split_3x6_3( -// +--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+ - 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_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 -// +--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+ -), -*/ diff --git a/keyboards/crkbd/keymaps/ollyhayes/oled.c b/keyboards/crkbd/keymaps/ollyhayes/oled.c deleted file mode 100644 index 33db85fbb7..0000000000 --- a/keyboards/crkbd/keymaps/ollyhayes/oled.c +++ /dev/null @@ -1,112 +0,0 @@ -/* Copyright 2022 Olly Hayes (@ollyhayes) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H -#include "ollyhayes.h" - -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - if (!is_keyboard_master()) { - return OLED_ROTATION_180; // flips the display 180 degrees if offhand - } - return rotation; -} - -#define L_BASE 0 -#define L_NUM 8 -#define L_FUNCTIONS 16 -#define L_ARR 32 -#define L_PUNC 64 -#define L_DUBPUNC 128 -#define L_MEDIA 256 - -#define DL_COLEMAK 1 -#define DL_QWERTY 2 -#define DL_GAMES 4 - -void oled_render_layer_state(void) { - oled_write_P(PSTR("Layer: "), false); - switch (layer_state) { - case L_BASE: - switch (default_layer_state) { - case DL_QWERTY: - oled_write_ln_P(PSTR("Qwerty"), false); - break; - case DL_GAMES: - oled_write_ln_P(PSTR("Games"), false); - break; - case DL_COLEMAK: - default: - oled_write_ln_P(PSTR("Colemak"), false); - break; - } - break; - case L_NUM: - oled_write_ln_P(PSTR("Numbers"), false); - break; - case L_FUNCTIONS: - case L_FUNCTIONS|L_NUM: - oled_write_ln_P(PSTR("Functions"), false); - break; - case L_ARR: - oled_write_ln_P(PSTR("Navigation"), false); - break; - case L_PUNC: - oled_write_ln_P(PSTR("Punctuation"), false); - break; - case L_MEDIA: - case L_MEDIA|L_NUM: - oled_write_ln_P(PSTR("Media"), false); - break; - case L_DUBPUNC: - case L_DUBPUNC|L_PUNC: - oled_write_ln_P(PSTR("Specials"), false); - break; - } -} - -void oled_render_timer(void) { - static uint16_t microticks = 0; - static uint16_t ticks = 0; - - if (microticks++ % 1000 == 0) { - ticks++; - } - - oled_write_P(PSTR("Ticks: "), false); - oled_write_ln(get_u16_str(ticks, ' '), false); -} - -void oled_render_presses(void) { - oled_write_P(PSTR("Presses: "), false); - oled_write_ln(get_u16_str(key_presses, ' '), false); -} - -void oled_render_rgb_mode(void) { - oled_write_P(PSTR("Animation: "), false); - oled_write_ln(get_u8_str(rgb_matrix_get_mode(), ' '), false); -} - -bool oled_task_user(void) { - if (is_keyboard_master()) { - oled_render_layer_state(); - } - oled_render_timer(); - if (is_keyboard_master()) { - oled_render_presses(); - } - oled_render_rgb_mode(); - return false; -} diff --git a/keyboards/crkbd/keymaps/ollyhayes/readme.md b/keyboards/crkbd/keymaps/ollyhayes/readme.md deleted file mode 100644 index 9e63f780ff..0000000000 --- a/keyboards/crkbd/keymaps/ollyhayes/readme.md +++ /dev/null @@ -1,67 +0,0 @@ -# ollyhayes's keymap for [Corne Keyboard (crkbd)](https://github.com/foostan/crkbd) - -## Keymap - -After many years of changing my keymap often and reperatedly, I finally came to a stable version. I've been using this for a while now with only small tweaks every so often. - -All layers are activated only whilst the layer key is held, except the default layers. - -Lots of keys are repeated on both sides. I find this really useful for two reasons: - -* I like to have the option to use the opposite hand to hold modifiers shift/ctrl etc as the hand pressing the key, I find this really comfortable. -* When using the mouse, I like to be able to do common things with just my left hand. - -### Colemak - -The base layer: - -![colemak](https://i.imgur.com/uxLJzul.png) - -### Navigation - -All things for moving the cursor around, inspired by vim. - -* `c←` is ctrl+left -* `↓↓↓↓` is ↓ pressed four times - -![navigation](https://i.imgur.com/xfkA0ze.png) - -### Symbols - -The shifted number row and all brackets and other symbols. - -* `a/t` is alt-tab for window switching in windows/linux. Using some special code to release alt when the punc key is released, this works quite nicely. - -![symbols](https://i.imgur.com/t9Jygs1.png) - -### Specials - -Some extra symbols (linux only for now) that work by sending UTF sequences. Layer activated by holding both punctuation layer keys. - -![specials](https://i.imgur.com/AtPWKrA.png) - -### Numbers - -Numbpads (left version is reversed so 1, 2, 3 are easy to reach with one hand (like on a regular keyboard). - -Also the keys to switch the default layer are here. - -![numbers](https://i.imgur.com/9XXcAXK.png) - -### Functions - -Function keys, nothing too interesting. - -![functions](https://i.imgur.com/ttrw3FJ.png) - -### Games (default layer) - -Used for some games, qwerty with space bar and alt for the left hand. - -![games](https://i.imgur.com/zVvHWKd.png) - -### Qwerty (default layer) - -Mostly for guests. - -![qwerty](https://i.imgur.com/Bqs1bjV.png) diff --git a/keyboards/crkbd/keymaps/ollyhayes/rules.mk b/keyboards/crkbd/keymaps/ollyhayes/rules.mk deleted file mode 100644 index f2bf2ce07b..0000000000 --- a/keyboards/crkbd/keymaps/ollyhayes/rules.mk +++ /dev/null @@ -1,16 +0,0 @@ -SRC += oled.c - -OLED_ENABLE = yes - -EXTRAKEY_ENABLE = yes -UNICODE_ENABLE = yes - -RGBLIGHT_ENABLE = no -RGB_MATRIX_ENABLE = yes -# RGB_MATRIX_CUSTOM_USER = yes - -VIRTSER_ENABLE = yes - -LTO_ENABLE = yes - -MOUSEKEY_ENABLE = no diff --git a/keyboards/crkbd/keymaps/pdl/config.h b/keyboards/crkbd/keymaps/pdl/config.h deleted file mode 100644 index f2a5a522ea..0000000000 --- a/keyboards/crkbd/keymaps/pdl/config.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert -Copyright 2021 Daniel Perrett - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - - -#define TAPPING_TOGGLE 2 -#define TAPPING_TERM 200 - -#define COMBO_PDL -#define COMBO_TERM 100 diff --git a/keyboards/crkbd/keymaps/pdl/keymap.c b/keyboards/crkbd/keymaps/pdl/keymap.c deleted file mode 100644 index 1060a92650..0000000000 --- a/keyboards/crkbd/keymaps/pdl/keymap.c +++ /dev/null @@ -1,62 +0,0 @@ -/* Copyright 2022 Daniel Perrett - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H -#include "pdl.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_wrapper( - MY_FESC, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC, - KC_TAB, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, MY_SQUO, - MY_SBSL, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, MY_CENT, - KC_LCTL, NAVIGN, KC_SPC, MY_SSPC, NUMBRS, NAVIGN - ), - [_PROXIM] = LAYOUT_wrapper( - MY_FESC, _________________PROXIM_L1_________________, _________________PROXIM_R1_________________, KC_BSPC, - KC_TAB, _________________PROXIM_L2_________________, _________________PROXIM_R2_________________, MY_ASCL, - MY_SBSL, _________________PROXIM_L3_________________, _________________PROXIM_R3_________________, MY_CENT, - KC_LCTL, NAVIGN, KC_SPC, MY_SSPC, NUMBRS, NAVIGN - ), - [_NAVIGN] = LAYOUT_wrapper( - _______, _________________NAVIGN_L1_________________, _______, _______, _______, _______, _______, _______, - _______, _________________NAVIGN_L2_________________, _______, _______, _______, _______, _______, _______, - _______, _________________NAVIGN_L3_________________, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______ - ), - [_PUNCTN] = LAYOUT_wrapper( - _______, _______, _______, _______, _______, _______, _________________PUNCTN_R1_________________, _______, - _______, _______, _______, _______, _______, _______, _________________PUNCTN_R2_________________, _______, - _______, _______, _______, _______, _______, _______, _________________PUNCTN_R3_________________, _______, - _______, _______, _______, _______, _______, _______ - ), - [_NUMBRS] = LAYOUT_wrapper( - _______, _________________NUMBRS_L1_________________, _______, _______, _______, _______, _______, _______, - _______, _________________NUMBRS_L2_________________, _______, _______, _______, _______, _______, _______, - _______, _________________NUMBRS_L3_________________, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______ - ), - [_CODING] = LAYOUT_wrapper( - _______, _______, _______, _______, _______, _______, _________________CODING_R1_________________, _______, - _______, _______, _______, _______, _______, _______, _________________CODING_R2_________________, _______, - _______, _______, _______, _______, _______, _______, _________________CODING_R3_________________, _______, - _______, _______, _______, _______, _______, _______ - ), - [_FUNCTN] = LAYOUT_wrapper( - _______, _________________FUNCTN_L1_________________, _________________FUNCTN_R1_________________, MY_CAD, - _______, _________________FUNCTN_L2_________________, _________________FUNCTN_R2_________________, KC_PSCR, - _______, _________________FUNCTN_L3_________________, _________________FUNCTN_R3_________________, _______, - _______, _______, _______, _______, _______, _______ - ) -}; diff --git a/keyboards/crkbd/keymaps/rmeli/config.h b/keyboards/crkbd/keymaps/rmeli/config.h deleted file mode 100644 index 86104fbacb..0000000000 --- a/keyboards/crkbd/keymaps/rmeli/config.h +++ /dev/null @@ -1,67 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert -Copyright 2021 Rocco Meli <@RMeli> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define MASTER_LEFT // Left side is the master -#define SPLIT_LED_STATE_ENABLE - -#ifdef RGB_MATRIX_ENABLE -// RGB matrix options -# define RGB_MATRIX_KEYPRESSES // enable keypress effects -# define RGB_MATRIX_LED_FLUSH_LIMIT 16 -# define RGB_DISABLE_WHEN_USB_SUSPENDED -// Disable unwanted R2G effects (from r2g/config.h) -# undef ENABLE_RGB_MATRIX_ALPHAS_MODS -# undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN -# undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT -# define ENABLE_RGB_MATRIX_BREATHING -# undef ENABLE_RGB_MATRIX_BAND_SAT -# undef ENABLE_RGB_MATRIX_BAND_VAL -# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT -# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL -# undef ENABLE_RGB_MATRIX_CYCLE_ALL -# undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -# undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL -# undef ENABLE_RGB_MATRIX_RAINDROPS -# undef ENABLE_RGB_MATRIX_HUE_BREATHING -# undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL -# define ENABLE_RGB_MATRIX_TYPING_HEATMAP -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -# undef ENABLE_RGB_MATRIX_SPLASH -# undef ENABLE_RGB_MATRIX_SOLID_SPLASH -// Enable effects -# define ENABLE_RGB_MATRIX_SOLID_COLOR -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -// Default effect -# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR -# define RGB_MATRIX_DEFAULT_HUE 10 -# define RGB_MATRIX_DEFAULT_SAT 255 -# define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS -#endif - -// https://github.com/qmk/qmk_firmware/blob/develop/docs/squeezing_avr.md -#undef LOCKING_SUPPORT_ENABLE -#undef LOCKING_RESYNC_ENABLE -#define NO_MUSIC_MODE -#define LAYER_STATE_8BIT // Limit to 8 layers diff --git a/keyboards/crkbd/keymaps/rmeli/keymap.c b/keyboards/crkbd/keymaps/rmeli/keymap.c deleted file mode 100644 index 5a04e8150f..0000000000 --- a/keyboards/crkbd/keymaps/rmeli/keymap.c +++ /dev/null @@ -1,129 +0,0 @@ -/* -Copyright 2019 @foostan -Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) -Copyright 2021 Rocco Meli <@RMeli> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -#include "rmeli.h" - -// + -------------------- + -// + RGB MATRIX CALLBACKS | -// + -------------------- + - -// LED numbers: -// https://github.com/foostan/crkbd/blob/main/corne-classic/doc/buildguide_en.md - -// Change LED color to red when CAPS LOCK is active -bool rgb_matrix_indicators_user(void) { - if (host_keyboard_led_state().caps_lock) { - rgb_matrix_set_color(26, 255, 0, 0); - // Only works with SPLIT_LED_STATE_ENABLE - rgb_matrix_set_color(53, 255, 0, 0); - } - return false; -} - -// + ---- + -// + OLED | -// + ---- + - -bool oled_task_user(void) { - if (is_keyboard_master()) { - oled_render_rocco(); - } else { - oled_render_meli(); - } - return false; -} - -// + ------- + -// + KEY MAP | -// + ------- + - -// Layer names -enum layer_names { - _QWERTY, - _COLEMAK_DH, - _DWN, - _UP, - _CONFIG, -}; - -// Layer names shortcuts -#define _QWY 0 -#define _CMK 1 -#define _CFG 4 - -#define ______THUMB_LEFT_x3______ KC_LGUI, MO(_DWN), KC_SPC -#define ______THUMB_RIGHT_x3_____ KC_ENT, MO(_UP), KC_RCTL - -// LAYOUT -// -// |-----------------------------| |-----------------------------| -// | | | | | | | | | | | | | | -// |----+----+----+----+----+----| |----+----+----+----+----+----| -// | | | | | | | | | | | | | | -// |----+----+----+----+----+----| |----+----+----+----+----+----| -// | | | | | | | | | | | | | | -// |----+----+----+----+----+----+----| |----+----+----+----+----+----+----| -// | | | | | | | | -// |--------------| |--------------| - -// Define wrapper for standard CRKB layout -#define LAYOUT_wrapper(...) LAYOUT_split_3x6_3(__VA_ARGS__) - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_QWERTY] = LAYOUT_wrapper( - // clang-format off - ___________________QWERTY_L1_x6_____________________, ___________________QWERTY_R1_x6_____________________, - ___________________QWERTY_L2_x6_____________________, ___________________QWERTY_R2_x6_____________________, - ___________________QWERTY_L3_x6_____________________, ___________________QWERTY_R3_x6_____________________, - ______THUMB_LEFT_x3______, ______THUMB_RIGHT_x3_____ - ), - - [_COLEMAK_DH] = LAYOUT_wrapper( - ________________COLEMAK_MOD_DH_L1_x6________________, ________________COLEMAK_MOD_DH_R1_x6________________, - ________________COLEMAK_MOD_DH_L2_x6________________, ________________COLEMAK_MOD_DH_R2_x6________________, - ________________COLEMAK_MOD_DH_L3_x6________________, ________________COLEMAK_MOD_DH_R3_x6________________, - ______THUMB_LEFT_x3______, ______THUMB_RIGHT_x3_____ - ), - - [_DWN] = LAYOUT_wrapper( - _______, ______________NUMBER_LEFT_x5_______________, ______________NUMBER_RIGHT_x5______________, _______, - _______, ______________UNICODE_L2_x5________________, ________________NAV_R2_x5__________________, XXXXXXX, - _______, ______________UNICODE_L3_x5________________, ________________NAV_R3_x5__________________, _______, - KC_LGUI, _______, _______, _______,MO(_CFG), _______ - ), - - [_UP] = LAYOUT_wrapper( - ___________________SYMBOL_LEFT_x6___________________, ___________________SYMBOL_RIGHT_x6__________________, - _______, ____________NAV_VIM_x4____________, XXXXXXX, ____________________SYMBOL_R2_x6____________________, - _______, _________________NONE_5x___________________, ____________________SYMBOL_R3_x6____________________, - _______,MO(_CFG), _______, _______, _______, _______ - ), - - [_CONFIG] = LAYOUT_wrapper( - QK_BOOT, _________________NONE_5x___________________, _______________CONFIG_R1_x5________________,DF(_QWY), - RGB_TOG, ________________RGB_L2_x5__________________, _______________CONFIG_R2_x5________________, XXXXXXX, - XXXXXXX, ________________RGB_L3_x5__________________, _______________CONFIG_R3_x5________________,DF(_CMK), - _______, _______, _______, _______, _______, _______ - ) -}; -// clang-format on diff --git a/keyboards/crkbd/keymaps/rmeli/rules.mk b/keyboards/crkbd/keymaps/rmeli/rules.mk deleted file mode 100644 index 107c493978..0000000000 --- a/keyboards/crkbd/keymaps/rmeli/rules.mk +++ /dev/null @@ -1,11 +0,0 @@ -OLED_ENABLE = yes - -TAP_DANCE_ENABLE = yes -AUTO_SHIFT_ENABLE = no // disable auto-shift with home row mods - -UNICODEMAP_ENABLE = yes -NKRO_ENABLE = yes -MAGIC_ENABLE = yes - -RGBLIGHT_ENABLE = no -RGB_MATRIX_ENABLE = yes diff --git a/keyboards/crkbd/keymaps/rs/config.h b/keyboards/crkbd/keymaps/rs/config.h deleted file mode 100644 index bbdb0d8106..0000000000 --- a/keyboards/crkbd/keymaps/rs/config.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -//#define USE_MATRIX_I2C - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -#define QUICK_TAP_TERM 0 -#define TAPPING_TERM 300 - -#undef RGBLED_NUM -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 27 -#define RGBLIGHT_LIMIT_VAL 120 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/crkbd/keymaps/rs/keymap.c b/keyboards/crkbd/keymaps/rs/keymap.c deleted file mode 100644 index 7e2a2e066e..0000000000 --- a/keyboards/crkbd/keymaps/rs/keymap.c +++ /dev/null @@ -1,39 +0,0 @@ -#include QMK_KEYBOARD_H -#include "rs.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT( - //,----+----+----+----+----+----. ,----+----+----+----+----+----. - KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_EQL , - //|----+----+----+----+----+----| |----+----+----+----+----+----| - KC_ESCC, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L ,KC_SCLN,KC_QUOT, - //|----+----+----+----+----+----+ |----+----+----+----+----+----| - KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_ENTS, - //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' - KC_LALT,KC_LGUI,KC_SPC , KC_BSPC,KC_CODE,KC_FN - // `----+----+----' `+---+----+----'c - ), - [_CODE] = LAYOUT( - //,----+----+----+----+----+----. ,----+----+----+----+----+----. - KC_GRV ,KC_EXLM, KC_AT ,KC_HASH, KC_DLR,KC_PERC, KC_CIRC,KC_LPLT,KC_ASTR,KC_RPGT,KC_NEQL,_______, - //|----+----+----+----+----+----| |----+----+----+----+----+----| - _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_MINS,KC_LBRC, KC_UP ,KC_RBRC,_______,KC_BSLS, - //|----+----+----+----+----+----+ |----+----+----+----+----+----| - _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_AMPR,KC_LEFT,KC_DOWN,KC_RGHT,_______,KC_PIPE, - //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' - _______,_______,KC_DOT , _______,_______,_______ - // `----+----+----' `----+----+----' - ), - [_FN] = LAYOUT( - //,----+----+----+----+----+----. ,----+----+----+----+----+----. - _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10, KC_F11, - //|----+----+----+----+----+----| |----+----+----+----+----+----| - KC_LTOG,KC_LHUI,KC_LSAI,KC_LVAI,KC_LRST,KC_BRMU, KC_VOLU,_______,KC_PGUP,_______,_______,_______, - //|----+----+----+----+----+----+ |----+----+----+----+----+----| - KC_LMOD,KC_LHUD,KC_LSAD,KC_LVAD,KC_RST ,KC_BRMD, KC_VOLD,KC_CTRA,KC_PGDN,KC_CTRE,_______,_______, - //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' - _______,_______,_______, KC_MUTE,_______,_______ - // `----+----+----' `----+----+----' - ), -}; - diff --git a/keyboards/crkbd/keymaps/rs/oled.c b/keyboards/crkbd/keymaps/rs/oled.c deleted file mode 100644 index a4c71daac2..0000000000 --- a/keyboards/crkbd/keymaps/rs/oled.c +++ /dev/null @@ -1,87 +0,0 @@ -#ifdef OLED_ENABLE -#include QMK_KEYBOARD_H -#ifdef PROTOCOL_LUFA -#include "lufa.h" -#include "split_util.h" -#endif - -// When add source files to SRC in rules.mk, you can use functions. -const char *read_logo(void); -const char *read_keylog(void); -const char *read_keylogs(void); -void set_keylog(uint16_t keycode, keyrecord_t *record); - -void matrix_scan_user(void) { iota_gfx_task(); } - -typedef struct { - uint8_t state; - char name[8]; -} LAYER_DISPLAY_NAME; - -#define LAYER_DISPLAY_MAX 5 -const LAYER_DISPLAY_NAME layer_display_name[LAYER_DISPLAY_MAX] = { - {0, "Base"}, - {2, "Code"}, - {4, "Fn"}, - {6, "Fn+Code"}, - {__UINT8_MAX__, "?"}, -}; -static uint8_t layer_name_idx; -static char layer_status_buf[24] = "Layer: Base\n"; - -#ifdef RGBLIGHT_ENABLE -// Following line allows macro to read current RGB settings -extern rgblight_config_t rgblight_config; -void update_keymap_status(void) { - snprintf(layer_status_buf, sizeof(layer_status_buf) - 1, "Layer:%s RGB: %d\n", - layer_display_name[layer_name_idx].name, rgblight_config.mode); -} -#else -void update_keymap_status(void) { - snprintf(layer_status_buf, sizeof(layer_status_buf) - 1, "Layer:%s\n", - layer_display_name[layer_name_idx].name); -} -#endif - -void matrix_init_user(void) { - update_keymap_status(); -} - -// declared in users/rs/rs.c -void rgb_mod_changed_keymap(void) { - update_keymap_status(); -} - -// declared in users/rs/rs.c -void keylog_set_keymap(uint16_t keycode, keyrecord_t *record) { - set_keylog(keycode, record); -} - -layer_state_t layer_state_set_user(layer_state_t state) { - for (layer_name_idx = 0; layer_name_idx < LAYER_DISPLAY_MAX; ++layer_name_idx) { - if (state == 0 && layer_display_name[layer_name_idx].state == default_layer_state) { - break; - } else if (state != 0 && layer_display_name[layer_name_idx].state == state) { - break; - } - } - update_keymap_status(); - return state; -} - -static inline void render_keymap_status(struct CharacterMatrix *matrix) { - oled_write(layer_status_buf); -} - -bool oled_task_user(void) { - if (is_keyboard_master()) { - render_keymap_status(matrix); - oled_write_ln(read_keylog(), false); - oled_write_ln(read_keylogs(), false); - } else { - oled_write(read_logo(), false); - } - return false; -} - -#endif diff --git a/keyboards/crkbd/keymaps/rs/readme.md b/keyboards/crkbd/keymaps/rs/readme.md deleted file mode 100644 index d7f7bb6459..0000000000 --- a/keyboards/crkbd/keymaps/rs/readme.md +++ /dev/null @@ -1,19 +0,0 @@ -# RS40: Code Friendly 40% Keymap - -This keymap is an evolution of my previous keymap optimized for coding with a 60% keyboards like the Iris. I tried to keep the simplicity of my previous keymap with all the keys necessary for coding on a single layer in addition to the base one. - -Because I sometime have to use my internal keyboard I my macbook, a karabiner configuration is also provided to get most of the features of this keyboard, including the code layer / backspace on right command key etc. - -See [rs readme](../../../../users/rs/readme.md) for a list of other keyboards supported by this keymap. - -## Base Layer - -[![](http://poitr.us/moooMf+)](http://www.keyboard-layout-editor.com/##@_backcolor=%23d8c1f5&switchMount=cherry&pcb:false&plate:true%3B&@_x:3&c=%236750f2&t=%2344b8b8&a:7%3B&=E&_x:8%3B&=I%3B&@_y:-0.87&x:2%3B&=W&_x:1%3B&=R&_x:6%3B&=U&_x:1%3B&=O%3B&@_y:-0.8799999999999999&x:5%3B&=T&_x:4%3B&=Y%3B&@_y:-0.87&c=%233a1ee6&t=%23b84465%3B&=Tab&_c=%236750f2&t=%2344b8b8%3B&=Q&_x:12%3B&=P&_c=%233a1ee6&t=%23b84465&a:5%3B&=+%0A%2F=%3B&@_y:-0.3799999999999999&x:3&c=%236750f2&t=%2344b8b8&a:7%3B&=D&_x:8%3B&=K%3B&@_y:-0.8700000000000001&x:2%3B&=S&_x:1%3B&=F&_x:6%3B&=J&_x:1%3B&=L%3B&@_y:-0.8799999999999999&x:5%3B&=G&_x:4%3B&=H%3B&@_y:-0.8700000000000001&c=%233a1ee6&t=%23b84465&a:5%3B&=Esc%0ACtrl&_c=%236750f2&t=%2344b8b8&a:7%3B&=A&_x:12&a:5%3B&=%2F:%0A%2F%3B&_c=%233a1ee6&t=%23b84465%3B&=%22%0A'%3B&@_y:-0.3799999999999999&x:3&c=%236750f2&t=%2344b8b8&a:7%3B&=C&_x:8&a:5%3B&=%3C%0A,%3B&@_y:-0.8700000000000001&x:2&a:7%3B&=X&_x:1%3B&=V&_x:6%3B&=M&_x:1&a:5%3B&=%3E%0A.%3B&@_y:-0.8799999999999999&x:5&a:7%3B&=B&_x:4%3B&=N%3B&@_y:-0.8700000000000001&c=%233a1ee6&t=%23b84465%3B&=Shift&_c=%236750f2&t=%2344b8b8%3B&=Z&_x:12&a:5%3B&=%3F%0A%2F%2F&_c=%233a1ee6&t=%23b84465&a:7%3B&=Enter%3B&@_y:-0.17999999999999972&x:11.75%3B&=Fn%3B&@_ry:0.25&y:2.95&x:3.3%3B&=Alt%3B&@_r:12&ry:1.75&y:0.5&x:4.8%3B&=Cmd%3B&@_r:35&rx:6.5&ry:4.25&y:-0.75&x:-0.75&c=%23d12424&t=%23ffffff&h:1.5%3B&=Space%3B&@_r:-35&rx:13&y:-2.75&x:-3.0999999999999996&h:1.5%3B&=Back%20Space%3B&@_r:-12&rx:0&ry:0&y:5.55&x:9.55&c=%233a1ee6&t=%23b84465%3B&=Code) - -## Code Layer - -[![](http://poitr.us/GvljvC+)](http://www.keyboard-layout-editor.com/##@_backcolor=%23d8c1f5&switchMount=cherry&pcb:false&plate:true%3B&@_x:3&c=%236750f2&t=%2344b8b8&a:7%3B&=%23&_x:8%3B&=*%3B&@_y:-0.87&x:2%3B&=%2F@&_x:1%3B&=$&_x:6&a:5%3B&=%3C%0A(&_x:1%3B&=%3E%0A)%3B&@_y:-0.8799999999999999&x:5&a:7%3B&=%25&_x:4%3B&=%5E%3B&@_y:-0.87&c=%233a1ee6&t=%23b84465%3B&=Tab&_c=%236750f2&t=%2344b8b8%3B&=!&_x:12%3B&=!%2F=&_c=%233a1ee6&t=%23b84465&a:5%3B&=+%0A%2F=%3B&@_y:-0.3799999999999999&x:3&c=%236750f2&t=%2344b8b8&a:7%3B&=3&_x:8%3B&=↑%3B&@_y:-0.8700000000000001&x:2%3B&=2&_x:1%3B&=4&_x:6&a:5%3B&=%7B%0A%5B&_x:1%3B&=%7D%0A%5D%3B&@_y:-0.8799999999999999&x:5&a:7%3B&=5&_x:4&a:5%3B&=%2F_%0A-%3B&@_y:-0.8700000000000001&c=%233a1ee6&t=%23b84465%3B&=Esc%0ACtrl&_c=%236750f2&t=%2344b8b8&a:7%3B&=1&_x:12&a:5%3B&=%2F:%0A%2F%3B&_c=%233a1ee6&t=%23b84465%3B&=%7C%0A%5C%3B&@_y:-0.3799999999999999&x:3&c=%236750f2&t=%2344b8b8&a:7%3B&=8&_x:8%3B&=↓%3B&@_y:-0.8700000000000001&x:2%3B&=7&_x:1%3B&=9&_x:6%3B&=←&_x:1%3B&=→%3B&@_y:-0.8799999999999999&x:5%3B&=0&_x:4%3B&=%2F&%3B&@_y:-0.8700000000000001&c=%233a1ee6&t=%23b84465%3B&=Shift&_c=%236750f2&t=%2344b8b8%3B&=6&_x:12&a:5%3B&=%3F%0A%2F%2F&_c=%233a1ee6&t=%23b84465&a:7%3B&=Enter%3B&@_y:-0.17999999999999972&x:11.75%3B&=Fn%3B&@_ry:0.25&y:2.95&x:3.3%3B&=Alt%3B&@_r:12&ry:1.75&y:0.5&x:4.8%3B&=Cmd%3B&@_r:35&rx:6.5&ry:4.25&y:-0.75&x:-0.75&c=%23d12424&t=%23ffffff&h:1.5%3B&=.%3B&@_r:-35&rx:13&y:-2.75&x:-3.0999999999999996&h:1.5%3B&=Back%20Space%3B&@_r:-12&rx:0&ry:0&y:5.55&x:9.55&c=%233a1ee6&t=%23b84465%3B&=Code) - -## Fn Layer - -[![](http://poitr.us/OXwmBK+)](http://www.keyboard-layout-editor.com/##@_backcolor=%23d8c1f5&switchMount=cherry&pcb:false&plate:true%3B&@_x:3&c=%236750f2&t=%2344b8b8&a:7%3B&=F3&_x:8%3B&=F8%3B&@_y:-0.87&x:2%3B&=F2&_x:1%3B&=F4&_x:6%3B&=F7&_x:1%3B&=F9%3B&@_y:-0.8799999999999999&x:5%3B&=F5&_x:4%3B&=F6%3B&@_y:-0.87&c=%233a1ee6&t=%23b84465%3B&=&_c=%236750f2&t=%2344b8b8%3B&=F1&_x:12%3B&=F10&_c=%233a1ee6&t=%23b84465%3B&=F11%3B&@_y:-0.3799999999999999&x:3&c=%236750f2&t=%2344b8b8%3B&=RGB%20Value+&_x:8%3B&=Page%20Up%3B&@_y:-0.8700000000000001&x:2%3B&=RGB%20Sat+&_x:1%3B&=RGB%20Reset&_x:6%3B&=&_x:1%3B&=%3B&@_y:-0.8799999999999999&x:5%3B&=Bright+&_x:4%3B&=Vol+%3B&@_y:-0.8700000000000001&c=%233a1ee6&t=%23b84465%3B&=RGB%20Toggle&_c=%236750f2&t=%2344b8b8%3B&=RGB%20Hue+&_x:12%3B&=&_c=%233a1ee6&t=%23b84465%3B&=%3B&@_y:-0.3799999999999999&x:3&c=%236750f2&t=%2344b8b8%3B&=RGB%20Value-&_x:8%3B&=Page%20Down%3B&@_y:-0.8700000000000001&x:2%3B&=RGB%20Sat-&_x:1%3B&=Reset&_x:6%3B&=Ctrl+A&_x:1%3B&=Ctrl+E%3B&@_y:-0.8799999999999999&x:5%3B&=Bright-&_x:4%3B&=Vol-%3B&@_y:-0.8700000000000001&c=%233a1ee6&t=%23b84465%3B&=RGB%20Mode&_c=%236750f2&t=%2344b8b8%3B&=RGB%20Hue-&_x:12%3B&=&_c=%233a1ee6&t=%23b84465%3B&=%3B&@_y:-0.17999999999999972&x:11.75%3B&=Fn%3B&@_ry:0.25&y:2.95&x:3.3%3B&=%3B&@_r:12&ry:1.75&y:0.5&x:4.8%3B&=%3B&@_r:35&rx:6.5&ry:4.25&y:-0.75&x:-0.75&c=%23d12424&t=%23ffffff&h:1.5%3B&=%3B&@_r:-35&rx:13&y:-2.75&x:-3.0999999999999996&h:1.5%3B&=Mute%3B&@_r:-12&rx:0&ry:0&y:5.55&x:9.55&c=%233a1ee6&t=%23b84465%3B&=Code) \ No newline at end of file diff --git a/keyboards/crkbd/keymaps/rs/rules.mk b/keyboards/crkbd/keymaps/rs/rules.mk deleted file mode 100644 index 5a76c38f38..0000000000 --- a/keyboards/crkbd/keymaps/rs/rules.mk +++ /dev/null @@ -1,31 +0,0 @@ - -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. -SWAP_HANDS_ENABLE = no # Enable one-hand typing -TAP_DANCE_ENABLE = no - -BOOTLOADER = atmel-dfu - -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - -# If you want to change the display of OLED, you need to change here -SRC += oled.c \ - ./lib/rgb_state_reader.c \ - ./lib/layer_state_reader.c \ - ./lib/logo_reader.c \ - ./lib/keylogger.c \ diff --git a/keyboards/crkbd/keymaps/snowe/config.h b/keyboards/crkbd/keymaps/snowe/config.h deleted file mode 100644 index 82097c503a..0000000000 --- a/keyboards/crkbd/keymaps/snowe/config.h +++ /dev/null @@ -1,58 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -//#define USE_MATRIX_I2C - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -#define QUICK_TAP_TERM 0 -#define TAPPING_TERM 200 - -#undef PERMISSIVE_HOLD - -#ifdef RGBLIGHT_ENABLE - #undef RGBLED_NUM -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE - #define RGBLED_NUM 27 - #define RGBLIGHT_LIMIT_VAL 120 - #define RGBLIGHT_HUE_STEP 10 - #define RGBLIGHT_SAT_STEP 17 - #define RGBLIGHT_VAL_STEP 17 -#endif - -#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" - -#define LAYER_STATE_8BIT -#define SPLIT_WPM_ENABLE diff --git a/keyboards/crkbd/keymaps/snowe/keycode_aliases.h b/keyboards/crkbd/keymaps/snowe/keycode_aliases.h deleted file mode 100644 index c19fb11d4b..0000000000 --- a/keyboards/crkbd/keymaps/snowe/keycode_aliases.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright 2020 Drashna Jaelre <@drashna> - * Copyright 2021 Tyler Thrailkill <@snowe/@snowe2010> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define GUI_ESC GUI_T(KC_ESC) -#define CTL_ESC CTL_T(KC_ESC) -#define SH_BKSP SFT_T(KC_BSPC) -#define SP_RAIS LT(_UPPER, KC_SPC) - -#define LOWER MO(_LOWER) -#define RAISE MO(_UPPER) -#define ADJUST MO(_ADJUST) -#define TG_MODS TG(_MODS) -//#define TG_GAME TG(_GAMEPAD) -//#define OS_LWR OSL(_LOWER) -//#define OS_RSE OSL(_UPPER) - -//#define KC_SEC1 KC_SECRET_1 -//#define KC_SEC2 KC_SECRET_2 -//#define KC_SEC3 KC_SECRET_3 -//#define KC_SEC4 KC_SECRET_4 -//#define KC_SEC5 KC_SECRET_5 - -#define QWERTY KC_QWERTY -#define DVORAK KC_DVORAK -#define COLEMAK KC_COLEMAK -#define WORKMAN KC_WORKMAN - -#define KC_RESET QK_BOOT -#define KC_RST KC_RESET - -#ifdef SWAP_HANDS_ENABLE -# define KC_C1R3 SH_TT -#else // SWAP_HANDS_ENABLE -# define KC_C1R3 KC_BSPC -#endif // SWAP_HANDS_ENABLE - -#define BK_LWER LT(_LOWER, KC_BSPC) -#define SP_LWER LT(_LOWER, KC_SPC) -#define DL_RAIS LT(_UPPER, KC_DEL) -#define ET_RAIS LT(_UPPER, KC_ENTER) -#define SFT_ENT SFT_T(KC_ENTER) -#define SP_RAIS LT(_UPPER, KC_SPC) - -/* OSM keycodes, to keep things clean and easy to change */ -#define KC_MLSF OSM(MOD_LSFT) -#define KC_MRSF OSM(MOD_RSFT) - -#define OS_LGUI OSM(MOD_LGUI) -#define OS_RGUI OSM(MOD_RGUI) -#define OS_LSFT OSM(MOD_LSFT) -#define OS_RSFT OSM(MOD_RSFT) -#define OS_LCTL OSM(MOD_LCTL) -#define OS_RCTL OSM(MOD_RCTL) -#define OS_LALT OSM(MOD_LALT) -#define OS_RALT OSM(MOD_RALT) -#define OS_MEH OSM(MOD_MEH) -#define OS_HYPR OSM(MOD_HYPR) - -#define ALT_APP ALT_T(KC_APP) - -#define MG_NKRO MAGIC_TOGGLE_NKRO - -#define UC_IRNY UC(0x2E2E) -#define UC_CLUE UC(0x203D) diff --git a/keyboards/crkbd/keymaps/snowe/keymap.c b/keyboards/crkbd/keymaps/snowe/keymap.c deleted file mode 100644 index c605089bfb..0000000000 --- a/keyboards/crkbd/keymaps/snowe/keymap.c +++ /dev/null @@ -1,211 +0,0 @@ -/* -Copyright 2019 @foostan -Copyright 2020 Drashna Jaelre <@drashna> -Copyright 2021 Tyler Thrailkill <@snowe/@snowe2010> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H -#include "snowe.h" - -// Symbols chart -// ↯ hyper key (ctrl, alt, shift, super) -// ⌘ command -// ⌥ option -// ⌃ control -// ⇧ shift -// ⌫ backspace -// ⌦ delete -// ⎋ escape -// ↩ enter - -/* Wrapper - * ,-----------------------------------------------. .-----------------------------------------------. - * | Tab | K01 | K02 | K03 | K04 | K05 | | K06 | K07 | K08 | K09 | K0A | | - * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| - * | ⌘/⎋ | ⌃/K11 | K12 | K13 | K14 | K15 | | K16 | K17 | K18 | K19 | ⌥/K1A | | - * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| - * | ↯/⌦ | ⌥/K21 | K22 | K23 | K24 | K25 | | K26 | K27 | K28 | K29 | ⌃/K2A | | - * `-----------------------. | | .-----------------------' - * |-------+-------+-------| |-------+-------+-------| - * | ⌃ | ⇧/↩ | ⌫/LWR | | ␣/RAY | ␣ | R ⌥ | - * `-----------------------' '-----------------------' - */ -// clang-format off -#define LAYOUT_crkbd_base( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ - K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ - K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \ - ) \ - LAYOUT_wrapper( \ - KC_TAB, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \ - GUI_ESC, CTL_T(K11), K12, K13, K14, K15, K16, K17, K18, K19, ALT_T(K1A), KC_QUOT, \ - HYPR_T(KC_DEL), ALT_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), KC_BSLS, \ - KC_LCTL, LOWER, SH_BKSP, KC_ENTER, SP_RAIS, KC_LALT \ - ) -// clang-format on -#define LAYOUT_crkbd_base_wrapper(...) LAYOUT_crkbd_base(__VA_ARGS__) -// clang-format off -#define LAYOUT_crkbd_no_hold_shortcuts( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ - K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ - K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \ - ) \ - LAYOUT_wrapper( \ - KC_TAB, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \ - GUI_ESC, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \ - KC_LSFT, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, KC_BSLS, \ - KC_LCTL, LOWER, KC_BSPC, KC_ENTER, SP_RAIS, KC_LALT \ - ) -// clang-format on -#define LAYOUT_crkbd_no_hold_shortcuts_wrapper(...) LAYOUT_crkbd_no_hold_shortcuts(__VA_ARGS__) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - /* QWERTY - * ,-----------------------------------------------. .-----------------------------------------------. - * | | Q | W | E | R | T | | Y | U | I | O | P | | - * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| - * | | A | S | D | F | G | | H | J | K | L | ; | ' | - * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| - * | | Z | X | C | V | B | | N | M | , | . | / | | - * `-----------------------. | | .-----------------------' - * |-------+-------+-------| |-------+-------+-------| - * | | | | | | | | - * `-----------------------' '-----------------------' - */ - [_MAIN] = LAYOUT_crkbd_base_wrapper( - _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, - _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, - _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ - ), - [_GAMING] = LAYOUT_crkbd_no_hold_shortcuts_wrapper( - _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, - _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, - _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ - ), - - /* Lower - * ,-----------------------------------------------. .-----------------------------------------------. - * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | - * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| - * | | | | | | | | | _ | + | [ | ] | | - * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| - * | | | | | | | | | ← | ↑ | ↓ | → | | - * `-----------------------. | | .-----------------------' - * |-------+-------+-------| |-------+-------+-------| - * | | | | | | | | - * `-----------------------' '-----------------------' - */ - [_LOWER] = LAYOUT_wrapper( - KC_TILDE, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F11, - KC_F12 , _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE, - _______ , _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______, - _______, _______, _______, _______, _______, _______ - ), - - - /* - * ,-----------------------------------------------. .-----------------------------------------------. - * | | | | | | | | | | | | | | - * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| - * | | | | | | | | | | | | | | - * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| - * | | | | | | | | | | | | | | - * `-----------------------. | | .-----------------------' - * |-------+-------+-------| |-------+-------+-------| - * | | | | | | | | - * `-----------------------' '-----------------------' - */ - /* Raise - * ,-----------------------------------------------. .-----------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | - * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| - * | | | | | | | | | ← | ↑ | ↓ | → | | - * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| - * | | | | | | | | | home |pg down| pg up | end | | - * `-----------------------. | | .-----------------------' - * |-------+-------+-------| |-------+-------+-------| - * | | | | | | | | - * `-----------------------' '-----------------------' - */ - [_UPPER] = LAYOUT_wrapper( - KC_GRV, _________________RAISE_L1__________________, _________________RAISE_R1__________________, _______, - _______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS, - _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______, - _______, _______, _______, _______, _______, _______ - ), - - [_ADJUST] = LAYOUT_wrapper( - _______, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RESET, - _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EE_CLR, - _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, KC_MPLY, - _______, _______, _______, _______, _______, _______ - ) - // clang-format on -}; - -layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _UPPER, _ADJUST); } - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_LCTL: - case KC_RCTL: -#ifdef OCEAN_DREAM_ENABLE - is_calm = (record->event.pressed) ? true : false; -#endif -#ifdef LUNA_ENABLE - if (record->event.pressed) { - isSneaking = true; - } else { - isSneaking = false; - } -#endif - break; - case KC_SPC: -#ifdef LUNA_ENABLE - if (record->event.pressed) { - isJumping = true; - showedJump = false; - } else { - isJumping = false; - } -#endif - break; - } - return true; -} - -// uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { -// switch (keycode) { -// case ALT_T(KC_A): -// case SH_BKSP: -// return TAPPING_TERM + 500; -// default: -// return TAPPING_TERM; -// } -//} -// -// bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) { -// if (keycode == ALT_T(KC_A) || keycode == SH_BKSP) { -// return false; -// } -// switch (keycode) { -// case QK_MOD_TAP ... QK_MOD_TAP_MAX: -// return true; -// default: -// return false; -// } -//} diff --git a/keyboards/crkbd/keymaps/snowe/rules.mk b/keyboards/crkbd/keymaps/snowe/rules.mk deleted file mode 100644 index 10cf2fa97c..0000000000 --- a/keyboards/crkbd/keymaps/snowe/rules.mk +++ /dev/null @@ -1,25 +0,0 @@ -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -AUDIO_ENABLE = no # Audio output on port C6 -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. -LEADER_ENABLE = no -MIDI_ENABLE = no # MIDI controls -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -SWAP_HANDS_ENABLE = no # Enable one-hand typing -RGBLIGHT_TWINKLE = no -OLED_ENABLE = yes -RGB_MATRIX_ENABLE = yes - -OCEAN_DREAM_ENABLE = yes -LUNA_ENABLE = no # disabled so travis build succeeds - -# if firmware size over limit, try this option -LTO_ENABLE = yes - -WPM_ENABLE = yes diff --git a/keyboards/crkbd/keymaps/toinux/config.h b/keyboards/crkbd/keymaps/toinux/config.h deleted file mode 100644 index 83fe82aa8d..0000000000 --- a/keyboards/crkbd/keymaps/toinux/config.h +++ /dev/null @@ -1,123 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -//#define USE_MATRIX_I2C - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -//#define QUICK_TAP_TERM 0 -//#define TAPPING_TERM 100 - -#ifdef RGBLIGHT_ENABLE - #define RGBLIGHT_EFFECT_BREATHING - // #define RGBLIGHT_EFFECT_RAINBOW_MOOD - // #define RGBLIGHT_EFFECT_RAINBOW_SWIRL - #define RGBLIGHT_EFFECT_SNAKE - #define RGBLIGHT_EFFECT_KNIGHT - #define RGBLIGHT_EFFECT_CHRISTMAS - #define RGBLIGHT_EFFECT_STATIC_GRADIENT - #define RGBLIGHT_EFFECT_RGB_TEST - #define RGBLIGHT_EFFECT_ALTERNATING - #define RGBLIGHT_EFFECT_TWINKLE - #define RGBLIGHT_LIMIT_VAL 120 - #define RGBLIGHT_HUE_STEP 10 - #define RGBLIGHT_SAT_STEP 17 - #define RGBLIGHT_VAL_STEP 17 -#endif - -#ifdef RGB_MATRIX_ENABLE -# define RGB_MATRIX_KEYPRESSES // reacts to keypresses -// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) -# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended -# define RGB_MATRIX_FRAMEBUFFER_EFFECTS -// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) -// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) -# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. -# define RGB_MATRIX_HUE_STEP 8 -# define RGB_MATRIX_SAT_STEP 8 -# define RGB_MATRIX_VAL_STEP 8 -# define RGB_MATRIX_SPD_STEP 10 - -/* Enable the animations you want/need. You may need to enable only a small number of these because * - * they take up a lot of space. Enable and confirm that you can still successfully compile your firmware. */ -// RGB Matrix Animation modes. Explicitly enabled -// For full list of effects, see: -// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects -# undef ENABLE_RGB_MATRIX_ALPHAS_MODS -# undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN -# undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT -# undef ENABLE_RGB_MATRIX_BREATHING -# undef ENABLE_RGB_MATRIX_BAND_SAT -# undef ENABLE_RGB_MATRIX_BAND_VAL -# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT -# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL -# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT -# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL -# undef ENABLE_RGB_MATRIX_CYCLE_ALL -# undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT -# undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN -# undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN -# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL -# undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL -# undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL -# undef ENABLE_RGB_MATRIX_DUAL_BEACON -# undef ENABLE_RGB_MATRIX_RAINBOW_BEACON -# undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS -# undef ENABLE_RGB_MATRIX_RAINDROPS -# undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS -# undef ENABLE_RGB_MATRIX_HUE_BREATHING -# undef ENABLE_RGB_MATRIX_HUE_PENDULUM -# undef ENABLE_RGB_MATRIX_HUE_WAVE -# undef ENABLE_RGB_MATRIX_PIXEL_RAIN -# undef ENABLE_RGB_MATRIX_PIXEL_FLOW -# undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL -// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined -# undef ENABLE_RGB_MATRIX_TYPING_HEATMAP -# undef ENABLE_RGB_MATRIX_DIGITAL_RAIN -// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -# define ENABLE_RGB_MATRIX_SPLASH -# undef ENABLE_RGB_MATRIX_MULTISPLASH -# undef ENABLE_RGB_MATRIX_SOLID_SPLASH -# undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -#endif - -#define OLED_FONT_H "keyboards/crkbd/keymaps/toinux/glcdfont.c" - -#define SPLIT_LAYER_STATE_ENABLE -// #define SPLIT_LED_STATE_ENABLE - -#define LAYER_STATE_16BIT - -#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY diff --git a/keyboards/crkbd/keymaps/toinux/glcdfont.c b/keyboards/crkbd/keymaps/toinux/glcdfont.c deleted file mode 100644 index 74cce5a952..0000000000 --- a/keyboards/crkbd/keymaps/toinux/glcdfont.c +++ /dev/null @@ -1,232 +0,0 @@ -// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. -// See gfxfont.h for newer custom bitmap font info. - -#include "progmem.h" - -// Standard ASCII 5x7 font -const unsigned char font[] PROGMEM = { - 0x24, 0x7E, 0x24, 0x24, 0x7E, 0x24, - 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, - 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, - 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, - 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, - 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, - 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, - 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, - 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, - 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, - 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, - 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, - 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, - 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, - 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, - 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, - 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, - 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, - 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, - 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, - 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, - 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, - 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, - 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, - 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, - 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, - 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, - 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, - 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, - 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, - 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, - 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, - 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, - 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, - 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, - 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, - 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, - 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, - 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, - 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, - 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, - 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, - 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, - 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, - 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, - 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, - 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, - 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, - 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, - 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, - 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, - 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, - 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, - 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, - 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, - 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, - 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, - 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, - 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, - 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, - 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, - 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, - 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, - 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, - 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, - 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, - 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, - 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, - 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, - 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, - 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, - 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, - 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, - 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, - 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, - 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, - 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, - 0x20, 0xD4, 0x54, 0x78, 0x40, 0x00, - 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, - 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, - 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, - 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, - 0x48, 0x54, 0x54, 0x54, 0x28, 0x00, - 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, - 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, - 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, - 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, - 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, - 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, - 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, - 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, - 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, - 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, - 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, - 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, - 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, - 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, - 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, - 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, - 0x4C, 0x50, 0x50, 0x50, 0x3C, 0x00, - 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, - 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, - 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, - 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, - 0x83, 0xC3, 0xC3, 0xC3, 0x9B, 0x03, - 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x36, 0x32, 0x32, 0x32, 0x32, 0x32, - 0x32, 0xE6, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0xFE, - 0xFF, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, - 0x80, 0x80, 0x80, 0x80, 0x9E, 0x81, - 0x80, 0x9E, 0x80, 0x80, 0x80, 0x80, - 0xFF, 0xEF, 0xD7, 0x0F, 0xDF, 0xDF, - 0xDF, 0xDF, 0x0F, 0xD7, 0xEF, 0xFF, - 0x01, 0x11, 0x29, 0xF1, 0x21, 0x21, - 0x21, 0x21, 0xF1, 0x29, 0x11, 0x01, - 0x00, 0x00, 0x00, 0xFC, 0xFE, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xEF, - 0xDF, 0xBF, 0x7F, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFE, 0xFC, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFC, 0x02, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x09, 0x11, - 0x21, 0x41, 0x81, 0x01, 0x01, 0x01, - 0x01, 0x02, 0xFC, 0x00, 0x00, 0x00, - 0x3E, 0xFF, 0xF8, 0xF8, 0xFF, 0x3E, - 0x00, 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, - 0x63, 0x73, 0x7B, 0x6F, 0x67, 0x63, - 0x07, 0x7F, 0x7F, 0x07, 0x7F, 0x7F, - 0x08, 0x08, 0x7F, 0x3E, 0x1C, 0x08, - 0x08, 0x1C, 0x3E, 0x7F, 0x08, 0x08, - 0x63, 0x7F, 0x7F, 0x63, 0x7F, 0x3E, - 0x1F, 0x3F, 0x63, 0x63, 0x3F, 0x1F, - 0x73, 0x3B, 0x1F, 0x1F, 0x3B, 0x73, - 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8F, 0x8C, 0x0C, 0x0C, 0x0F, 0x0C, - 0x8C, 0xAC, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x80, 0x83, 0x82, 0x82, 0x9E, 0x88, - 0x84, 0x82, 0x81, 0x80, 0x80, 0x80, - 0xFF, 0xEF, 0xD7, 0xE0, 0xF7, 0xF7, - 0xF7, 0xF7, 0xE0, 0xD7, 0xEF, 0xFF, - 0x00, 0x10, 0x28, 0x1F, 0x08, 0x08, - 0x08, 0x08, 0x1F, 0x28, 0x10, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xEF, - 0xF7, 0xFB, 0xFD, 0xFE, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, - 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, - 0xFF, 0xFF, 0xBD, 0x81, 0x81, 0x00, - 0x63, 0x7F, 0x7F, 0x63, 0x7F, 0x3E, - 0x3E, 0x7F, 0x77, 0x77, 0x77, 0x77, - 0x08, 0x08, 0x7F, 0x3E, 0x1C, 0x08, - 0x08, 0x1C, 0x3E, 0x7F, 0x08, 0x08, - 0x7F, 0x7F, 0x03, 0x03, 0x7F, 0x7F, - 0x1C, 0x1C, 0x1C, 0x1C, 0x7F, 0x7F, - 0x03, 0x7F, 0x7F, 0x63, 0x7F, 0x1F, - 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xD9, 0x99, 0x9B, 0x9E, 0x9E, 0x9B, - 0x99, 0xD9, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFC, 0xFD, 0xFD, 0xE1, 0xF7, - 0xFB, 0xFD, 0xFE, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x7F, 0xBF, 0xDF, 0xE1, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x80, 0x40, 0x3C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x3F, 0x7F, 0xFF, - 0xFF, 0x1F, 0xDF, 0xDF, 0xC3, 0xF7, - 0xEF, 0xDF, 0xBF, 0x7F, 0xFF, 0xFF, - 0xFF, 0x7F, 0x3F, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x3F, 0x40, 0x80, - 0x00, 0xE0, 0x20, 0x20, 0x3C, 0x08, - 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, - 0x80, 0x40, 0x3F, 0x00, 0x00, 0x00, - 0x00, 0x7F, 0xE3, 0xE3, 0x7F, 0x00, - 0x00, 0x07, 0x0F, 0x0F, 0x0F, 0x07, - 0x1C, 0x3E, 0x77, 0x63, 0x63, 0x63, - 0x63, 0x73, 0x7B, 0x6F, 0x67, 0x63, - 0x08, 0x08, 0x7F, 0x3E, 0x1C, 0x08, - 0x08, 0x1C, 0x3E, 0x7F, 0x08, 0x08, - 0x7F, 0x7F, 0x03, 0x03, 0x7F, 0x7F, - 0x7F, 0x7F, 0x03, 0x03, 0x7F, 0x7F, - 0x3E, 0x7F, 0x63, 0x63, 0x63, 0x63, - 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, -}; diff --git a/keyboards/crkbd/keymaps/toinux/keycodes.h b/keyboards/crkbd/keymaps/toinux/keycodes.h deleted file mode 100644 index 0d7c1e3260..0000000000 --- a/keyboards/crkbd/keymaps/toinux/keycodes.h +++ /dev/null @@ -1,49 +0,0 @@ -/* Copyright 2022 @toinux - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -enum crkbd_layers { - _BASE, - _GAMING, - _GAMING2, - _ACCENTS, - _LOWER, - _RAISE, - _FUN, - _NAV, - _MOUSE, - _ADJUST -}; - -#define CTRLSC LCTL_T(KC_ESC) -#define QUORCTL RCTL_T(KC_QUOT) -#define MOSCLN LT(_MOUSE,KC_SCLN) -#define ACCENTS LT(_ACCENTS,KC_RALT) -#define FUN LT(_FUN,KC_SPC) -#define LOWER MO(_LOWER) -#define RAISE MO(_RAISE) -#define SPCNAV LT(_NAV,KC_SPC) -#define SFTENT MT(MOD_RSFT,KC_ENT) -#define TABLGUI LGUI_T(KC_TAB) -#define BASE DF(_BASE) -#define GAMING DF(_GAMING) -#define GAMING2 MO(_GAMING2) - -#define SC_F1 LSFT(LCTL(KC_F1)) -#define SC_F2 LSFT(LCTL(KC_F2)) -#define SC_F3 LSFT(LCTL(KC_F3)) -#define SC_F4 LSFT(LCTL(KC_F4)) diff --git a/keyboards/crkbd/keymaps/toinux/keymap.c b/keyboards/crkbd/keymaps/toinux/keymap.c deleted file mode 100644 index 3742ed9b82..0000000000 --- a/keyboards/crkbd/keymaps/toinux/keymap.c +++ /dev/null @@ -1,259 +0,0 @@ -/* -Copyright 2019 @foostan -Copyright 2020 Drashna Jaelre <@drashna> -Copyright 2022 @toinux - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H -#include "users/toinux/keymap_qwerty_fr.h" -#include "keycodes.h" - -#ifdef OLED_ENABLE -#include "oled.h" -#endif - -// TEMPLATE -// ,-----------------------------------------------------. ,-----------------------------------------------------. -// | | | | | | | | | | | | | | -// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -// | | | | | | | | | | | | | | -// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -// | | | | | | | | | | | | | | -// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------' -// | | | | | | | | -// `--------------------------' `--------------------------' - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -// Base -// ,-----------------------------------------------------. ,-----------------------------------------------------. -// |Tab/LGui| Q | W | E | R | T | | Y | U | I | O | P | Bksp | -// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -// | CtrlSc | A | S | D | F | G | | H | J | K | L | ;/Mous | '/Rctl | -// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -// | Shift | Z | X | C | V | B | | N | M | , | . | / | SftEnT | -// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------' -// | LALT | LOWER |Spc/FUN | | Spc/NAV| RAISE |ACCENTS | -// `--------------------------' `--------------------------' - [_BASE] = LAYOUT_split_3x6_3( - TABLGUI, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - CTRLSC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, MOSCLN, QUORCTL, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFTENT, - KC_LALT, LOWER, FUN, SPCNAV, RAISE, ACCENTS - - ), - -// Gaming -// ,-----------------------------------------------------. ,-----------------------------------------------------. -// | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | -// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -// | Ctrl | A | S | D | F | G | | H | J | K | L | ;/Mous | ' | -// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -// | Shift | Z | X | C | V | B | | N | M | , | . | / | SftEnT | -// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------' -// | LALT |GAMING2 | Space | | Spc/NAV| RAISE |ACCENTS | -// `--------------------------' `--------------------------' - [_GAMING] = LAYOUT_split_3x6_3( - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, MOSCLN, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFTENT, - KC_LALT, GAMING2, KC_SPC, SPCNAV, RAISE, ACCENTS - - ), - -// Gaming 2 -// ,-----------------------------------------------------. ,-----------------------------------------------------. -// | Tab | 1 | 2 | 3 | 4 | 5 | | | | | | | | -// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -// | Esc | 6 | 7 | 8 | 9 | 0 | | | | | | | | -// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -// | LGui | Base | | Vol- | Vol+ | Mute | | | | | | | | -// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------' -// | | | | | | | | -// `--------------------------' `--------------------------' - [_GAMING2] = LAYOUT_split_3x6_3( - KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_LGUI, BASE, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - _______, _______, _______, _______, _______, _______ - - ), - -// Accents, see http://marin.jb.free.fr/qwerty-fr/ -// ,-----------------------------------------------------. ,-----------------------------------------------------. -// | | â | é | è | ê | € | | û | ù | î | ô | œ | | -// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -// | | à | æ | ë | | « | | » | ü | ï | ö | ° | | -// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -// | | à | | ç | | | | | | | | | | -// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------' -// | | | | | | | | -// `--------------------------' `--------------------------' - [_ACCENTS] = LAYOUT_split_3x6_3( - _______, QF_ACIR, QF_EACU, QF_EGRV, QF_ECIR, QF_EURO, QF_UCIR, QF_UGRV, QF_ICIR, QF_OCIR, QF_OE, _______, - _______, QF_AGRV, QF_AE, QF_EDIA, _______, QF_LDAQ, QF_RDAQ, QF_UDIA, QF_IDIA, QF_ODIA, QF_DEG, _______, - _______, QF_AGRV, _______, QF_CCED, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______ - - ), - -// Lower -// ,-----------------------------------------------------. ,-----------------------------------------------------. -// | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | Del | -// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -// | | SC_F1 | SC_F2 | SC_F3 | SC_F4 | | | | _ | + | { | } | | | -// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -// | | Gaming | | Vol- | Vol+ | Mute | | | | | | | | -// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------' -// | | | | | | | | -// `--------------------------' `--------------------------' - [_LOWER] = LAYOUT_split_3x6_3( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, - _______, SC_F1, SC_F2, SC_F3, SC_F4, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - _______, GAMING, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, - _______, _______, _______, _______, _______, _______ - - ), - -// Raise -// ,-----------------------------------------------------. ,-----------------------------------------------------. -// | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | -// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -// | | | | | | | | | - | = | [ | ] | \ | -// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -// | | | | | | | | | | | | | | -// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------' -// | | | | | | | | -// `--------------------------' `--------------------------' - [_RAISE] = LAYOUT_split_3x6_3( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, - _______, _______, _______, _______, _______, _______ - - ), - -// Functions and keypad -// ,-----------------------------------------------------. ,-----------------------------------------------------. -// | | F1 | F2 | F2 | F4 | | | | 7 | 8 | 9 | | | -// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -// | | F5 | F6 | F7 | F8 | | | | 4 | 5 | 6 | - | / | -// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -// | | F9 | F10 | F11 | F12 | | | | 1 | 2 | 3 | + | * | -// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------' -// | | | | | = | 0 | . | -// `--------------------------' `--------------------------' - [_FUN] = LAYOUT_split_3x6_3( - _______, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, KC_P7, KC_P8, KC_P9, XXXXXXX, _______, - _______, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, XXXXXXX, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PSLS, - _______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_PAST, - _______, _______, _______, KC_PENT, KC_P0, KC_PDOT - - ), - -// Navigation and function keys -// ,-----------------------------------------------------. ,-----------------------------------------------------. -// | | F1 | F2 | F2 | F4 | | | | Pg Up | Up | Pg Dn | Ins | Del | -// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -// | | F5 | F6 | F7 | F8 | | | Home | Left | Down | Right | | | -// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -// | | F9 | F10 | F11 | F12 | | | Space | End | | | | | -// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------' -// | | | | | | | | -// `--------------------------' `--------------------------' - [_NAV] = LAYOUT_split_3x6_3( - _______, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, KC_PGUP, KC_UP, KC_PGDN, KC_INS, KC_DEL, - _______, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, - _______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, KC_SPC, KC_END, XXXXXXX, XXXXXXX, XXXXXXX, _______, - _______, _______, _______, _______, _______, _______ - - ), - -// Mouse -// ,-----------------------------------------------------. ,-----------------------------------------------------. -// | | | Wh up | Ms up | Wh dn | | | | | | | | | -// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -// | | | Ms lft | Ms dn | Ms rgt | | | | btn1 | btn3 | btn2 | | | -// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -// | | | Wh lft | | Wh rgt | | | | | | | | | -// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------' -// | | | | | | | | -// `--------------------------' `--------------------------' - [_MOUSE] = LAYOUT_split_3x6_3( - _______, _______, KC_WH_U, KC_MS_U, KC_WH_D, _______, _______, _______, _______, _______, _______, _______, - _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_BTN1, KC_BTN3, KC_BTN2, _______, _______, - _______, _______, KC_WH_L, _______, KC_WH_R, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______ - - ), - -// Adjust -// ,-----------------------------------------------------. ,-----------------------------------------------------. -// | Reset | | | | | Print | | Num | Caps | Scroll | | | | -// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -// | On/Off | Hue ↑ | Sat ↑ | Brght ↑| | | | | | | | | | -// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -// | Cycle | Hue ↓ | Sat ↓ | Brght ↓| | | | | | | | | | -// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------' -// | | | | | | | | -// `--------------------------' `--------------------------' - [_ADJUST] = LAYOUT_split_3x6_3( - QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, KC_NUM, KC_CAPS, KC_SCRL, XXXXXXX, XXXXXXX, XXXXXXX, - RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - _______, _______, _______, _______, _______, _______ - ) -}; - -layer_state_t layer_state_set_user(layer_state_t state) { - return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); -} - -bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case CTRLSC: - return true; - default: - return false; - } -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - -#ifdef OLED_ENABLE - if (record->event.pressed) { - set_keylog(keycode, record); - } -#endif // OLED_ENABLE - - switch (keycode) { - case FUN: - if (!host_keyboard_led_state().num_lock) { - tap_code(KC_NUM_LOCK); - } - return true; - break; - } - return true; -} - -void keyboard_post_init_user(void) { -#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) - rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); - rgb_matrix_sethsv_noeeprom(HSV_OFF); -#endif -} diff --git a/keyboards/crkbd/keymaps/toinux/oled.c b/keyboards/crkbd/keymaps/toinux/oled.c deleted file mode 100644 index df2a693d8d..0000000000 --- a/keyboards/crkbd/keymaps/toinux/oled.c +++ /dev/null @@ -1,112 +0,0 @@ -/* Copyright 2022 @toinux - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - -#include QMK_KEYBOARD_H -#include "keycodes.h" -#include "oled.h" - -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - if (!is_keyboard_master()) { - return OLED_ROTATION_180; // flips the display 180 degrees if offhand - } - return rotation; -} - - -void oled_render_mod_status(void) { - - const uint8_t modifiers = get_mods() | get_oneshot_mods(); - - for (uint8_t i = 0; i < 2; i++) { - oled_set_cursor(9,i); - oled_write_P(gui_icon[(modifiers & MOD_MASK_GUI) ? 1 : 0][i], false); - oled_write_P(ctrl_icon[(modifiers & MOD_MASK_CTRL) ? 1 : 0][i], false); - oled_set_cursor(9,i+2); - oled_write_P(alt_icon[(modifiers & MOD_MASK_ALT) ? 1 : 0][i], false); - oled_write_P(shift_icon[(modifiers & MOD_MASK_SHIFT) ? 1 : 0][i], false); - } - -} - -void oled_render_layer_state(void) { - - char c = 0x9F - get_highest_layer(layer_state|default_layer_state); - - oled_set_cursor(20,0); - oled_write_char(0X00, false); - - oled_set_cursor(20,1); - oled_write_char(c, false); - c += 32; - oled_set_cursor(20,2); - oled_write_char(c, false); - c += 32; - oled_set_cursor(20,3); - oled_write_char(c, false); - -} - -void oled_render_led_state(void) { - // oled_advance_page(false) instead of oled_write_ln_P to not break OLED_TIMEOUT - oled_write_P(PSTR("NUM"), host_keyboard_led_state().num_lock); - oled_advance_page(false); - oled_write_P(PSTR("CAP"), host_keyboard_led_state().caps_lock); - oled_advance_page(false); - oled_write_P(PSTR("SCL"), host_keyboard_led_state().scroll_lock); - oled_advance_page(false); -} - -uint8_t last_row = 0; -uint8_t last_col = 0; - -void set_keylog(uint16_t keycode, keyrecord_t *record) { - last_row = record->event.key.row; - last_col = record->event.key.col; -} - -void oled_render_keylog(void) { - oled_write_char(last_row + '0', false); - oled_write_char('x', false); - oled_write_char(last_col + '0', false); -} - -void oled_render_logo(void) { - static const char PROGMEM kpu_logo[][3] = { - {0x82, 0x83, 0}, - {0x80, 0x81, 0}, - {0xa0, 0xa1, 0}, - {0xc0, 0xc1, 0} - }; - for (uint8_t i = 0; i < 4; i++) { - oled_write_ln_P(kpu_logo[i], false); - } - -} - -bool oled_task_user(void) { - if (is_keyboard_master ()) { - oled_render_led_state(); - oled_render_keylog(); - oled_render_mod_status(); - oled_render_layer_state(); - } else { - oled_render_logo(); - oled_scroll_right(); - oled_scroll_set_speed(4); - } - return false; -} diff --git a/keyboards/crkbd/keymaps/toinux/oled.h b/keyboards/crkbd/keymaps/toinux/oled.h deleted file mode 100644 index 30be16e602..0000000000 --- a/keyboards/crkbd/keymaps/toinux/oled.h +++ /dev/null @@ -1,71 +0,0 @@ -/* Copyright 2022 @toinux - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -static const char PROGMEM ctrl_icon[2][2][4] = { - { - // off - {0x93, 0x94, 0x95, 0}, - {0xB3, 0xB4, 0xB5, 0}, - }, - { - // on - {0x8F ,0x90, 0x91, 0}, - {0xAF ,0xB0, 0xB1, 0}, - } -}; - -static const char PROGMEM shift_icon[2][2][4] = { - { - // off - {0xD3, 0xD4, 0xB5, 0}, - {0xA8, 0xA9, 0xD5, 0}, - }, - { - // on - {0xCF ,0xD0, 0xB1, 0}, - {0xC8 ,0xC9, 0xD1, 0}, - } -}; - -static const char PROGMEM gui_icon[2][2][4] = { - { - // off - {0x92, 0x8C, 0x8D, 0}, - {0xB2, 0xAC, 0xAD, 0}, - }, - { - // on - {0x8E ,0x8A, 0x8B, 0}, - {0xAE ,0xAA, 0xAB, 0}, - } -}; - -static const char PROGMEM alt_icon[2][2][4] = { - { - // off - {0xB2, 0xCC, 0xCD, 0}, - {0xD2, 0x88, 0x89, 0}, - }, - { - // on - {0xAE ,0xCA, 0xCB, 0}, - {0xCE ,0x86, 0x87, 0}, - } -}; - -void set_keylog(uint16_t keycode, keyrecord_t *record); diff --git a/keyboards/crkbd/keymaps/toinux/rgb.c b/keyboards/crkbd/keymaps/toinux/rgb.c deleted file mode 100644 index 2b1a226602..0000000000 --- a/keyboards/crkbd/keymaps/toinux/rgb.c +++ /dev/null @@ -1,72 +0,0 @@ -/* Copyright 2022 @toinux - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - -#include QMK_KEYBOARD_H -#include "keycodes.h" - -static const char gaming_leds[] = {18, 22, 19, 16}; -static const char gaming2_leds[] = {23, 18, 17, 10, 9, 22, 19, 16, 11, 8}; -static const char nav_leds[] = {38, 43, 44, 46}; -static const char fun_leds[] = {45, 44, 37, 46, 43, 38, 47, 42, 39, 40}; -static const char mouse_leds[] = {11, 16, 17, 19}; -static const char adjust_leds[] = {6, 33}; - -bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { - if (host_keyboard_led_state().caps_lock) { - rgb_matrix_set_color(26, RGB_RED); - } - switch(get_highest_layer(layer_state|default_layer_state)) { - case _GAMING: - if (is_keyboard_master()) { - for (uint8_t i = 0; i < 4; i++) { - rgb_matrix_set_color(gaming_leds[i], 0x88, 0x00, 0x00); - } - } - break; - case _GAMING2: - if (is_keyboard_master()) { - for (uint8_t i = 0; i < 10; i++) { - rgb_matrix_set_color(gaming2_leds[i], RGB_GREEN); - } - } - break; - case _NAV: - for (uint8_t i = 0; i < 4; i++) { - rgb_matrix_set_color(nav_leds[i], RGB_BLUE); - } - break; - case _FUN: - for (uint8_t i = 0; i < 10; i++) { - rgb_matrix_set_color(fun_leds[i], RGB_GREEN); - } - break; - case _ADJUST: - for (uint8_t i = 0; i < 2; i++) { - rgb_matrix_set_color(adjust_leds[i], RGB_RED); - } - break; - case _MOUSE: - if (is_keyboard_master()) { - for (uint8_t i = 0; i < 4; i++) { - rgb_matrix_set_color(mouse_leds[i], RGB_PURPLE); - } - } - break; - - } - return false; -} diff --git a/keyboards/crkbd/keymaps/toinux/rules.mk b/keyboards/crkbd/keymaps/toinux/rules.mk deleted file mode 100644 index 59b90c792c..0000000000 --- a/keyboards/crkbd/keymaps/toinux/rules.mk +++ /dev/null @@ -1,8 +0,0 @@ -MOUSEKEY_ENABLE = yes # Mouse keys -RGBLIGHT_ENABLE = no -RGB_MATRIX_ENABLE = yes -OLED_ENABLE = yes -LTO_ENABLE = yes -BOOTLOADER = atmel-dfu - -SRC += ./oled.c ./rgb.c diff --git a/keyboards/crkbd/keymaps/tominabox1/keymap.c b/keyboards/crkbd/keymaps/tominabox1/keymap.c deleted file mode 100755 index d58911194e..0000000000 --- a/keyboards/crkbd/keymaps/tominabox1/keymap.c +++ /dev/null @@ -1,46 +0,0 @@ -#include QMK_KEYBOARD_H -#include "tominabox1.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_wrapper( - ___________________CRKBD1__________________, - ___________________CRKBD2__________________, - ___________________CRKBD3__________________, - ___________________CRKBD4__________________ - ), - - [_RAISE] = LAYOUT_wrapper( - ___________________RAISE1__________________, - ___________________RAISE2__________________, - ___________________CRKBD_RAISE3____________, - ___________________CRKBD_RAISE4____________ - ), - - [_LOWER] = LAYOUT_wrapper( - _________________LOWER_1___________________, - _________________LOWER_2___________________, - ___________________CRKBD_LOW3______________, - ___________________CRKBD_LOW4______________ - ), - - [_ADJUST] = LAYOUT_wrapper( - ___________________ADJST1__________________, - ___________________CRKBD_ADJST2____________, - ___________________CRKBD_ADJST3____________, - ___________________CRKBD_ADJST4____________ - ), - - [_ARROW] = LAYOUT_wrapper( - ___________________ARROW1__________________, - ___________________ARROW2__________________, - ___________________ARROW3__________________, - ___________________ARROW4__________________ - ), - [_FKEY] = LAYOUT_wrapper( - ___________________FKEY1___________________, - ___________________FKEY2___________________, - ___________________CRKBD_FKEY3_____________, - ___________________CRKBD_FKEY4_____________ - ) - -}; diff --git a/keyboards/crkbd/rev1/keymaps/dvorak_42_key/config.h b/keyboards/crkbd/rev1/keymaps/dvorak_42_key/config.h deleted file mode 100644 index fcf6befb16..0000000000 --- a/keyboards/crkbd/rev1/keymaps/dvorak_42_key/config.h +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2022 LucW (@luc-languagetools) -// SPDX-License-Identifier: GPL-2.0-or-later - - -#pragma once - - -/* Select hand configuration */ - -// #define MASTER_LEFT -#define MASTER_RIGHT -// #define EE_HANDS - -//#define QUICK_TAP_TERM 0 -//#define TAPPING_TERM 100 - -// #define DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD -#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD - -// MOUSE SETTINGS -// ============== - -#define MOUSEKEY_TIME_TO_MAX 200 - -#define RGBLIGHT_LAYERS - -#ifdef RGBLIGHT_ENABLE - #define RGBLIGHT_LIMIT_VAL 90 - // #define RGBLIGHT_LIMIT_VAL 0 - #define RGBLIGHT_HUE_STEP 10 - #define RGBLIGHT_SAT_STEP 17 - #define RGBLIGHT_VAL_STEP 17 -#endif - -#ifdef RGB_MATRIX_ENABLE - // #define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON - // #define RGB_MATRIX_KEYPRESSES // reacts to keypresses - // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE - // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE - // #define ENABLE_RGB_MATRIX_SPLASH - //#define ENABLE_RGB_MATRIX_SOLID_SPLASH -#endif - -#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" diff --git a/keyboards/crkbd/rev1/keymaps/dvorak_42_key/keymap.c b/keyboards/crkbd/rev1/keymaps/dvorak_42_key/keymap.c deleted file mode 100644 index 43bbd9a617..0000000000 --- a/keyboards/crkbd/rev1/keymaps/dvorak_42_key/keymap.c +++ /dev/null @@ -1,289 +0,0 @@ -// Copyright 2022 LucW (@luc-languagetools) -// SPDX-License-Identifier: GPL-2.0-or-later - - -#include QMK_KEYBOARD_H -#include -#include "dvorak_42_key.h" - -// to build: qmk compile -kb crkbd/rev1 -km dvorak_42_key - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [BASE] = LAYOUT_split_3x6_3( - //,-----------------------------------------------------. ,-----------------------------------------------------. - OSL(VSCODE), KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_TAB, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -OSL(SHELL_NAV), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, TD(TD_DEL_WORD_DEL), - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -OSM(MOD_LSFT),KC_SEMICOLON, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, OSM(MOD_LSFT), - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - MO(BROWSER_CONTROL), MO(COMBINED),MO(KEYNAV), KC_ENTER, KC_SPACE, OSL(SHORTCUTS) - //`--------------------------' `--------------------------' - - ), - - [KEYNAV] = LAYOUT_split_3x6_3( - //,-----------------------------------------------------. ,-----------------------------------------------------. -KC_ESC, RCTL(KC_ENTER), RCTL(KC_K), RCTL(KC_Z), RCTL(KC_S), RCTL(KC_N), KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_DELETE, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -KC_TRNS, MO(KEYSEL), KC_TRNS, RSFT(KC_TAB), KC_TAB, RCTL(KC_F), LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), KC_BSPC, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -KC_TRNS, RCTL(KC_P), RCTL(KC_O), RCTL(KC_A), RCTL(KC_B), NP_DUPE_LINE, KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_PGDN, RCTL(KC_DELETE), - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - //`--------------------------' `--------------------------' - ), - - - [KEYSEL] = LAYOUT_split_3x6_3( - //,-----------------------------------------------------. ,-----------------------------------------------------. - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RSFT(KC_HOME), RSFT(KC_UP), RSFT(KC_END), RSFT(KC_PGUP), KC_TRNS, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RSFT(RCTL(KC_LEFT)), RSFT(KC_LEFT), RSFT(KC_DOWN), RSFT(KC_RIGHT), RSFT(RCTL(KC_RIGHT)), KC_TRNS, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), RSFT(KC_PGDN), KC_TRNS, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - //`--------------------------' `--------------------------' - ), - - - [SHELL_NAV] = LAYOUT_split_3x6_3( - //,-----------------------------------------------------. ,-----------------------------------------------------. -TO(BASE),SHELL_GIT_DIFF, SHELL_PGREP, SHELL_PLESS, SHELL_LESS, KC_TRNS, RCTL(KC_D), KC_HOME, KC_UP, KC_END, RCTL(KC_L), RCTL(KC_X), - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -OSL(SHELL_SCREEN),SHELL_GIT_STATUS,SHELL_CDPRE,SHELL_LSLTR,SHELL_LS, SHELL_LSLA, LALT(KC_B), KC_LEFT, KC_DOWN, KC_RIGHT, LALT(KC_F), RCTL(KC_W), - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -KC_TRNS,SHELL_SCREEN_LIST, SHELL_SCREENRD, SHELL_SCREEN_NEW, SHELL_TAILF, KC_TRNS, RCTL(KC_U), LALT(KC_DOT), RCTL(KC_R), KC_BTN2, RCTL(KC_K), RCTL(KC_C), - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_TRNS, KC_TRNS, LCTL(LSFT(KC_V)), KC_TRNS, KC_TRNS - //`--------------------------' `--------------------------' - ), - - [SHELL_SCREEN] = LAYOUT_split_3x6_3( - //,-----------------------------------------------------. ,-----------------------------------------------------. -TO(BASE),KC_TRNS, SCREEN_READREG_3, SCREEN_READREG_2, SCREEN_READREG_1,KC_TRNS, KC_TRNS, SCREEN_7, SCREEN_8, SCREEN_9, SCREEN_RENAME, KC_TRNS, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -TO(BASE),KC_TRNS,SCREEN_PASTEREG_3,SCREEN_PASTEREG_2,SCREEN_PASTEREG_1,SCREEN_DETACH, SCREEN_TAB_LEFT, SCREEN_4, SCREEN_5, SCREEN_6, SCREEN_TAB_RIGHT, SCREEN_COPY_MODE, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, SCREEN_1, SCREEN_2, SCREEN_3, SCREEN_NUMBER, SCREEN_PASTE, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_TRNS, KC_TRNS, SCREEN_KILL, SCREEN_NEW_TAB, SCREEN_0 - //`--------------------------' `--------------------------' - ), - - [VSCODE] = LAYOUT_split_3x6_3( - //,-----------------------------------------------------. ,-----------------------------------------------------. -TO(BASE), KC_TRNS, VS_FIND_FILES, VS_CMT_BLOCK, VS_CMT_LINE, VS_BM_LISTALL, VS_COPYLINEDOWN, VS_REFERENCES, VS_DEFINITION, VS_IMPLEMENTATION, VS_LINE, VS_BRACKET, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -KC_TRNS, KC_TRNS, VS_TOGGLE_TERMINAL, VS_FOCUS_TERMINAL, VS_FOCUS_EDITOR, VS_BM_LIST, VS_CLOSETAB, VS_TABLEFT, VS_TABRIGHT, VS_SYMBOLEDITOR, VS_FILE, VS_BACK, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, VS_BM_CLEARALL, VS_JUMPY, VS_BM_PREV, VS_BM_NEXT, VS_GROUP_1, VS_GROUP_2, VS_BM_TOGGLE, -//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_TRNS, VS_DEL_LEFT, VS_DEL_RIGHT, VS_DEL_LINE, VS_JUMPY, VS_COMMANDS - //`--------------------------' `--------------------------' - ), - - [COMBINED] = LAYOUT_split_3x6_3( - //,-----------------------------------------------------. ,-----------------------------------------------------. - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PLUS, KC_7, KC_8, KC_9, KC_ASTR, KC_PIPE, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_GRAVE, KC_LPRN, KC_RPRN, KC_LBRC, KC_RBRC, KC_UNDS, KC_MINUS, KC_4, KC_5, KC_6, KC_SLSH, KC_BSLS, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_CIRC, KC_COLN, KC_DQUO, KC_LCBR, KC_RCBR, KC_AMPR, KC_EQUAL, KC_1, KC_2, KC_3, KC_QUES, KC_DOT, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0 - //`--------------------------' `--------------------------' - ), - - // chrome OS keyboard shortcuts: https://support.google.com/chromebook/answer/183101?hl=en - // search key == windows key - [BROWSER_CONTROL] = LAYOUT_split_3x6_3( - //,-----------------------------------------------------. ,-----------------------------------------------------. -KC_TRNS, KC_TRNS, KC_BTN3, KC_MS_U, KC_BTN1, KC_BTN2, KC_UP, KC_PGUP, KC_PGDN, KC_MS_WH_UP, KC_TRNS, KC_TRNS, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - CO_WS_LEFT, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_DOWN, RCTL(KC_PGUP), RCTL(KC_PGDN), KC_MS_WH_DOWN, LALT(KC_LEFT), CO_WS_RIGHT, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -KC_TRNS, RCTL(LSFT(KC_TAB)), RCTL(KC_TAB), WINDOWS10_WORKSPACE_LEFT, WINDOWS10_WORKSPACE_RIGHT, WINDOWS10_TASK_VIEW, KC_TRNS, RCTL(KC_1), RCTL(KC_9), LCTL(KC_L), KC_F5, KC_TRNS, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_TRNS, KC_TRNS, RCTL(KC_W), RCTL(KC_T), KC_TRNS - //`--------------------------' `--------------------------' - ), - - - [SHORTCUTS] = LAYOUT_split_3x6_3( - //,-----------------------------------------------------. ,-----------------------------------------------------. - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, MEH(KC_F1), MEH(KC_F2), MEH(KC_F3), MEH(KC_F4), MEH(KC_F5), MEH(KC_F6), - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MEH(KC_F7), MEH(KC_F8), MEH(KC_F9), MEH(KC_F10), MEH(KC_F11), MEH(KC_F12), - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| -KC_TRNS, OSM(MOD_LSFT), OSM(MOD_LGUI), OSM(MOD_LALT), OSM(MOD_LCTL), KC_TRNS, MEH(KC_F13), MEH(KC_F14), MEH(KC_F15), MEH(KC_F16), MEH(KC_F17), MEH(KC_F18), - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(SHORTCUTS), TO(BASE) - //`--------------------------' `--------------------------' - ), - - /* - // empty layer - [15] = LAYOUT_split_3x6_3( - //,-----------------------------------------------------. ,-----------------------------------------------------. - 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_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 - //`--------------------------' `--------------------------' - ), - */ - - -}; - -#ifdef OLED_ENABLE -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - if (!is_keyboard_master()) { - return OLED_ROTATION_180; // flips the display 180 degrees if offhand - } - // return rotation; - return OLED_ROTATION_180; -} - - -#define DISPLAY_LAYER_NAME(LAYER_NAME, LAYER_STRING) \ - if(get_highest_layer(layer_state) == LAYER_NAME) { \ - oled_write_ln_P(PSTR(LAYER_STRING), false); \ - return;\ - }\ - - -void oled_render_layer_state(void) { - // if caps word is enabled, show - if(is_caps_word_on()) { - oled_write_ln_P(PSTR("CAPS WORD"), false); - return; - } - DISPLAY_LAYER_NAME(SHORTCUTS, "SHORTCUTS"); - DISPLAY_LAYER_NAME(VSCODE, "VSCODE"); - DISPLAY_LAYER_NAME(COMBINED, "SYMBOLS"); - DISPLAY_LAYER_NAME(BROWSER_CONTROL, "BROWSER"); - DISPLAY_LAYER_NAME(SHELL_SCREEN, "SHELL SCREEN"); - DISPLAY_LAYER_NAME(SHELL_NAV, "SHELL NAV"); - DISPLAY_LAYER_NAME(KEYSEL, "KEYSEL"); - DISPLAY_LAYER_NAME(KEYNAV, "KEYNAV"); - DISPLAY_LAYER_NAME(BASE, "BASE"); - -} - -const rgblight_segment_t PROGMEM rgb_layer_off[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 0, 0} -); - -const rgblight_segment_t PROGMEM rgb_layer_blue[] = RGBLIGHT_LAYER_SEGMENTS( - {0, RGBLED_NUM, HSV_BLUE} -); - -const rgblight_segment_t PROGMEM rgb_layer_purple[] = RGBLIGHT_LAYER_SEGMENTS( - {0, RGBLED_NUM, HSV_PURPLE} -); - -const rgblight_segment_t PROGMEM rgb_layer_red[] = RGBLIGHT_LAYER_SEGMENTS( - {0, RGBLED_NUM, HSV_RED} -); - -const rgblight_segment_t PROGMEM rgb_layer_orange[] = RGBLIGHT_LAYER_SEGMENTS( - {0, RGBLED_NUM, HSV_ORANGE} -); - -const rgblight_segment_t PROGMEM rgb_layer_yellow[] = RGBLIGHT_LAYER_SEGMENTS( - {0, RGBLED_NUM, HSV_YELLOW} -); - -const rgblight_segment_t PROGMEM rgb_layer_green[] = RGBLIGHT_LAYER_SEGMENTS( - {0, RGBLED_NUM, HSV_GREEN} -); - -const rgblight_segment_t PROGMEM rgb_layer_pink[] = RGBLIGHT_LAYER_SEGMENTS( - {0, RGBLED_NUM, HSV_PINK} -); - - -// Now define the array of layers. Later layers take precedence -const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( - rgb_layer_off, - rgb_layer_blue, - rgb_layer_purple, - rgb_layer_red, - rgb_layer_orange, - rgb_layer_yellow, - rgb_layer_green, - rgb_layer_pink -); - -void keyboard_post_init_user(void) { - // Enable the LED layers - rgblight_layers = my_rgb_layers; -} - -layer_state_t default_layer_state_set_user(layer_state_t state) { - rgblight_set_layer_state(0, layer_state_cmp(state, BASE)); - return state; -} - -layer_state_t layer_state_set_user(layer_state_t state) { - - - rgblight_set_layer_state(1, layer_state_cmp(state, KEYNAV)); - rgblight_set_layer_state(2, layer_state_cmp(state, KEYSEL)); - - - rgblight_set_layer_state(3, layer_state_cmp(state, SHELL_NAV)); - rgblight_set_layer_state(4, layer_state_cmp(state, SHELL_SCREEN)); - - rgblight_set_layer_state(5, layer_state_cmp(state, SHORTCUTS)); - - rgblight_set_layer_state(6, layer_state_cmp(state, VSCODE)); - - return state; -} - -void caps_word_set_user(bool active) { - // will enable/disable rgb layer 7 based on whether caps word is active - rgblight_set_layer_state(7, active); -} - -void render_bootmagic_status(bool status) { - /* Show Ctrl-Gui Swap options */ - static const char PROGMEM logo[][2][3] = { - {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, - {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, - }; - if (status) { - oled_write_ln_P(logo[0][0], false); - oled_write_ln_P(logo[0][1], false); - } else { - oled_write_ln_P(logo[1][0], false); - oled_write_ln_P(logo[1][1], false); - } -} - -void oled_render_logo(void) { - static const char PROGMEM crkbd_logo[] = { - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, - 0}; - oled_write_P(crkbd_logo, false); -} - -bool oled_task_user(void) { - if (is_keyboard_master( )) { - oled_render_layer_state(); - } else { - oled_render_logo(); - } - return false; -} - -#endif // OLED_ENABLE diff --git a/keyboards/crkbd/rev1/keymaps/dvorak_42_key/rules.mk b/keyboards/crkbd/rev1/keymaps/dvorak_42_key/rules.mk deleted file mode 100644 index 9fe565335a..0000000000 --- a/keyboards/crkbd/rev1/keymaps/dvorak_42_key/rules.mk +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright 2022 LucW (@luc-languagetools) -# SPDX-License-Identifier: GPL-2.0-or-later - -MOUSEKEY_ENABLE = yes # Mouse keys -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. -# RGB_MATRIX_ENABLE = no -OLED_ENABLE = yes -LTO_ENABLE = yes diff --git a/keyboards/cutie_club/borsdorf/keymaps/zyber/keymap.c b/keyboards/cutie_club/borsdorf/keymaps/zyber/keymap.c deleted file mode 100644 index 468a16f92d..0000000000 --- a/keyboards/cutie_club/borsdorf/keymaps/zyber/keymap.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright 2020 Cutie Club - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H -#include "zyber.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Base */ - [0] = LAYOUT_rshift( - KC_ESC, 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_BSPC, LGUI(KC_LEFT), - 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, LGUI(KC_RIGHT), - L1_EXPL, 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_RSFT, KC_UP, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT - ), - [1] = LAYOUT_rshift( - QK_BOOT, 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_DEL, KC_VOLU, - KC_GRV, 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_VOLD, - 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_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; diff --git a/keyboards/doro67/multi/keymaps/konstantin/config.h b/keyboards/doro67/multi/keymaps/konstantin/config.h deleted file mode 100644 index 3c2583e2d4..0000000000 --- a/keyboards/doro67/multi/keymaps/konstantin/config.h +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once - -#define LAYER_FN -#define LAYER_NUMPAD diff --git a/keyboards/doro67/multi/keymaps/konstantin/keymap.c b/keyboards/doro67/multi/keymaps/konstantin/keymap.c deleted file mode 100644 index 02687f8248..0000000000 --- a/keyboards/doro67/multi/keymaps/konstantin/keymap.c +++ /dev/null @@ -1,67 +0,0 @@ -#include QMK_KEYBOARD_H -#include "konstantin.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Base layer - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │PSc│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bspc │Del│ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ - * │FnCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgU│ - * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ - * │LSft│RAG│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │RShift│ ↑ │PgD│ - * ├────┼───┴┬──┴─┬─┴───┴───┴┬──┴─┬─┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ - * │LCtl│LGui│LAlt│ Space │FnLk│ Fn │RAlG│RCtl│ │ ← │ ↓ │ → │ - * └────┴────┴────┴──────────┴────┴────────┴────┴────┘ └───┴───┴───┘ - */ - [L_BASE] = LAYOUT_multi( - KC_ESC, 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_BSLS, KC_GRV, KC_PSCR, - 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_BSPC, KC_DEL, - FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, - KC_LSFT, RAL_RGU, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, FNLK, FN, RAL_RGU, KC_RCTL, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT - ), - - /* Fn layer - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Num│SLk│Pau│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ - * │ M4 │M2 │M↑ │M1 │M3 │M5 │ │UCM│ │Stp│Ply│Prv│Nxt│Clear│Ins│ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ - * │ │M← │M↓ │M→ │MW↑│ │ │ │ │ │ │ │ │Top│ - * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ - * │ │ │MA0│MA2│MW←│MW→│ │ │App│Vo-│Vo+│Mut│ │PgU│Btm│ - * ├────┼───┴┬──┴─┬─┴───┴───┴┬──┴─┬─┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ - * │ │DtPR│DtNA│ MW↓ │ │ │ │ │ │Hom│PgD│End│ - * └────┴────┴────┴──────────┴────┴────────┴────┴────┘ └───┴───┴───┘ - */ - [L_FN] = LAYOUT_multi( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, NUMPAD, KC_SCRL, KC_PAUS, - KC_BTN4, KC_BTN2, KC_MS_U, KC_BTN1, KC_BTN3, KC_BTN5, _______, UC_NEXT, _______, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, CLEAR, KC_INS, - _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U, _______, _______, _______, _______, _______, _______, _______, _______, TOP, - _______, _______, KC_ACL0, KC_ACL2, KC_WH_L, KC_WH_R, _______, _______, KC_APP, KC_VOLD, KC_VOLU, KC_MUTE, _______, KC_PGUP, BOTTOM, - _______, DST_P_R, DST_N_A, KC_WH_D, _______, _______, _______, _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END - ), - - /* Numpad layer - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │ │ │ │ │ │ │ │P7 │P8 │P9 │P- │ − │ = │Num│ │ │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ - * │ │ │ │ │ │ │ │P4 │P5 │P6 │P+ │ ( │ ) │ │ │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ - * │ │ │ │ │ │ │ │P1 │P2 │P3 │P* │ × │ PEnter │ │ - * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ - * │ │ │ │ │ │ │ │P0 │P0 │ , │P. │P/ │ ÷ │ │ │ - * ├────┼───┴┬──┴─┬─┴───┴───┴┬──┴─┬─┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ - * │ │ │ │ │ │ │ │ │ │ │ │ │ - * └────┴────┴────┴──────────┴────┴────────┴────┴────┘ └───┴───┴───┘ - */ - [L_NUMPAD] = LAYOUT_multi( - _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, MINUS, EQUALS, NUMPAD, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, L_PAREN, R_PAREN, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PAST, TIMES, KC_PENT, _______, - _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_P0, COMMA, KC_PDOT, KC_PSLS, DIVIDE, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, _______, _______ - ), -}; diff --git a/keyboards/doro67/multi/keymaps/konstantin/rules.mk b/keyboards/doro67/multi/keymaps/konstantin/rules.mk deleted file mode 100644 index 7bab7513ed..0000000000 --- a/keyboards/doro67/multi/keymaps/konstantin/rules.mk +++ /dev/null @@ -1,18 +0,0 @@ -# Generic features -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -COMMAND_ENABLE = yes -CONSOLE_ENABLE = yes -EXTRAKEY_ENABLE = yes -MOUSEKEY_ENABLE = yes -NKRO_ENABLE = yes -TAP_DANCE_ENABLE = yes -UNICODEMAP_ENABLE = yes - -# Keyboard-specific features -BACKLIGHT_ENABLE = no -VIA_ENABLE = yes - -# Firmware size reduction -GRAVE_ESC_ENABLE = no -MAGIC_ENABLE = no -SPACE_CADET_ENABLE = no diff --git a/keyboards/doro67/multi/keymaps/zyber/keymap.c b/keyboards/doro67/multi/keymaps/zyber/keymap.c deleted file mode 100644 index 05200e8855..0000000000 --- a/keyboards/doro67/multi/keymaps/zyber/keymap.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright 2019 ShadeDream - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H -#include "zyber.h" - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_multi( - KC_ESC, 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_BSPC, KC_F2, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSLS, KC_PGUP, - LCTL(KC_UP), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(QUOT), KC_ENT, KC_PGDN, - KC_LSFT, KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_HOME, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_NO, KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_multi( - QK_BOOT, 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_TRNS, , - BL_TOGG, BL_STEP, BL_DOWN, BL_UP, 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_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_END, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - -}; \ No newline at end of file diff --git a/keyboards/draculad/keymaps/manna-harbour_miryoku/config.h b/keyboards/draculad/keymaps/manna-harbour_miryoku/config.h deleted file mode 100644 index e49cb1539f..0000000000 --- a/keyboards/draculad/keymaps/manna-harbour_miryoku/config.h +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2022 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . - -#pragma once - -#undef LAYER_STATE_8BIT - -#define XXX KC_NO - -#define LAYOUT_miryoku( \ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT( \ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - XXX, XXX, \ - K32, K33, K34, K35, K36, K37 \ -) diff --git a/keyboards/draculad/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/draculad/keymaps/manna-harbour_miryoku/keymap.c deleted file mode 100644 index dbab7f9820..0000000000 --- a/keyboards/draculad/keymaps/manna-harbour_miryoku/keymap.c +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/dumbpad/v1x/keymaps/imchipwood/keymap.c b/keyboards/dumbpad/v1x/keymaps/imchipwood/keymap.c deleted file mode 100644 index 96a98b11c5..0000000000 --- a/keyboards/dumbpad/v1x/keymaps/imchipwood/keymap.c +++ /dev/null @@ -1,95 +0,0 @@ -/* Copyright 2020 imchipwood - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H -#include "imchipwood.h" - -enum custom_layers { - _BASE, - _SUB, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - BASE LAYER - /-----------------------------------------------------` - | | 7 | 8 | 9 | Bkspc | - | |---------|---------|---------|---------| - | | 4 | 5 | 6 | + | - | |---------|---------|---------|---------| - | | 1 | 2 | 3 | * | - |-------------|---------|---------|---------|---------| - | Play/Pause | TT(SUB) | 0 | . | Enter | - \-----------------------------------------------------' - */ - [_BASE] = LAYOUT( - KC_P7, KC_P8, KC_P9, KC_BSPC, - KC_P4, KC_P5, KC_P6, KC_KP_PLUS, - KC_P1, KC_P2, KC_P3, KC_KP_ASTERISK, - MEH_T(KC_MPLY), TT(_SUB), KC_P0, KC_PDOT, KC_KP_ENTER - ), - /* - SUB LAYER - /-----------------------------------------------------` - | | F7 | F8 | F9 | Del/NLK | - | |---------|---------|---------|---------| - | | F4 | F5 | F6 | - | - | |---------|---------|---------|---------| - | | F1 | F2 | F3 | / | - |-------------|---------|---------|---------|---------| - | MUTE | | LSFT | LCTL | = | - \-----------------------------------------------------' - */ - [_SUB] = LAYOUT( - TD(ALT_F7), KC_F8, KC_F9, TD(DEL_NLCK), - KC_F4, TD(CTL_F5), KC_F6, KC_KP_MINUS, - KC_F1, TD(ALT_F2), KC_F3, KC_KP_SLASH, - KC_MUTE, _______, OSM(MOD_LSFT), OSM(MOD_LCTL), KC_KP_EQUAL - ) -}; - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { - switch (get_highest_layer(layer_state)) { - case _BASE: - // main layer - volume up/down - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - break; - - case _SUB: - // sub layer - next/previous track - if (clockwise) { - tap_code(KC_MNXT); - } else { - tap_code(KC_MPRV); - } - break; - - default: - // default - volume up/down - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - break; - } - } - return true; -} diff --git a/keyboards/durgod/k320/keymaps/moults31/config.h b/keyboards/durgod/k320/keymaps/moults31/config.h deleted file mode 100644 index 01f47b8c10..0000000000 --- a/keyboards/durgod/k320/keymaps/moults31/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2021 moults31 - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/durgod/k320/keymaps/moults31/keymap.c b/keyboards/durgod/k320/keymaps/moults31/keymap.c deleted file mode 100644 index cdda3964e8..0000000000 --- a/keyboards/durgod/k320/keymaps/moults31/keymap.c +++ /dev/null @@ -1,84 +0,0 @@ -/* Copyright 2021 moults31 - * Adapted from kuenhlee and Don Kjer and Coirault - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -#include "moults31.h" - -// Layer shorthand -enum _layer { - _BASE, - _FUNC, - _LAYER3 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap _BASE: Base Layer (Default Layer) - * ,-----------------------------------------------------------. ,--------------. - * |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus| - * |-----------------------------------------------------------| |--------------| - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp| - * |-----------------------------------------------------------| |--------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | Del| End|PgDn| - * |------------------------------------------------------ Ret | `--------------' - * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #| | - * |-----------------------------------------------------------| ,----. - * |Shift| \| Z| X| C| V| B| N| M| ,| .| /|Shift | | Up | - * |-----------------------------------------------------------| ,-------------. - * |Ctrl|Gui |Alt | Space |Alt | Fn |App |Ctrl| |Lft| Dn |Rig | - * `-----------------------------------------------------------' `-------------' - */ - [_BASE] = LAYOUT_tkl_ansi( /* Base Layer */ - KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, - KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FUNC),KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - /* Keymap _FUNC: Function Layer - * ,-----------------------------------------------------------. ,--------------. - * | |Play|Stop|Prev|Next| |Mute|Vol+|Vol-| | | | | | | | | | | - * |-----------------------------------------------------------| |--------------| - * | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| |--------------| - * | | | | | | | | | | | | | | | | | | | - * |------------------------------------------------------- | `--------------' - * | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,----. - * | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,-------------. - * | | | | | |Func | | | | | | | - * `-----------------------------------------------------------' `-------------' - */ - [_FUNC] = LAYOUT_tkl_ansi( /* Function Layer */ - _______, KC_MPLY, KC_MSTP, KC_MRWD, KC_MFFD, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, M_VSC_VIEWSIZEINC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, M_VSC_EDGRPPRV, M_VSC_VIEWSIZEDEC, M_VSC_EDGRPNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, M_VSC_MVEDTRPRVGRP, _______, M_VSC_MVEDTRNXTGRP - ), - [_LAYER3] = LAYOUT_tkl_ansi( /* Function Layer */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), -}; - diff --git a/keyboards/durgod/k320/keymaps/moults31/readme.md b/keyboards/durgod/k320/keymaps/moults31/readme.md deleted file mode 100644 index e3a3f150f3..0000000000 --- a/keyboards/durgod/k320/keymaps/moults31/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# The default keymap for Durgod Taurus K320. - -Layer 0 : Standard Keys TKL layout - -Layer 1 : Media control and VScode navigation -- Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7 - -## Supported PCBs - -This keymap intended for use on Durgod K320 ANSI diff --git a/keyboards/durgod/k320/keymaps/moults31/rules.mk b/keyboards/durgod/k320/keymaps/moults31/rules.mk deleted file mode 100644 index 36b7ba9cbc..0000000000 --- a/keyboards/durgod/k320/keymaps/moults31/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -VIA_ENABLE = yes -LTO_ENABLE = yes diff --git a/keyboards/dz60/keymaps/billypython/config.h b/keyboards/dz60/keymaps/billypython/config.h deleted file mode 100644 index 4b511eb848..0000000000 --- a/keyboards/dz60/keymaps/billypython/config.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -#define LAYER_FN diff --git a/keyboards/dz60/keymaps/billypython/keymap.c b/keyboards/dz60/keymaps/billypython/keymap.c deleted file mode 100644 index 66ce559c1a..0000000000 --- a/keyboards/dz60/keymaps/billypython/keymap.c +++ /dev/null @@ -1,46 +0,0 @@ -#include QMK_KEYBOARD_H -#include "billypython.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Base layer - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bspc │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │FnCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ - * ├──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┬───┤ - * │LShift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │RSC│ ↑ │Del│ - * ├────┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┼───┼───┼───┼───┤ - * │LCtl│LGui│LAlt│ Space │RAl│FnL│ ← │ ↓ │ → │ - * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ - */ - [L_BASE] = LAYOUT_directional( - KC_ESC, 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_BSLS, KC_GRV, - 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_BSPC, - FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSF_RCT, KC_UP, KC_DEL, - KC_LCTL, KC_LGUI, KC_LALT, XXXXXXX, KC_SPC, XXXXXXX, KC_RALT, FN_FNLK, KC_LEFT, KC_DOWN, KC_RGHT - ), - - /* Function layer - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │PSc│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ - * │ M4 │M2 │M↑ │M1 │M3 │M5 │ │PgU│ ↑ │PgD│Ply│Prv│Nxt│Clear│ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │ │M← │M↓ │M→ │MW↑│ │Hom│ ← │ ↓ │ → │End│ │ │ - * ├──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┬───┤ - * │ │MA0│MA2│MW←│MW→│ │ │ │Vo-│Vo+│Mut│App│PgU│Ins│ - * ├────┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┼───┼───┼───┼───┤ - * │ │ │ │ MW↓ │ │ │Hom│PgD│End│ - * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ - */ - [L_FN] = LAYOUT_directional( - _______, 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_PSCR, - KC_BTN4, KC_BTN2, KC_MS_U, KC_BTN1, KC_BTN3, KC_BTN5, _______, KC_PGUP, KC_UP, KC_PGDN, KC_MPLY, KC_MPRV, KC_MNXT, CLEAR, - _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______, _______, - _______, KC_ACL0, KC_ACL2, KC_WH_L, KC_WH_R, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_APP, KC_PGUP, KC_INS, - _______, _______, _______, XXXXXXX, KC_WH_D, XXXXXXX, _______, _______, KC_HOME, KC_PGDN, KC_END - ), -}; diff --git a/keyboards/dz60/keymaps/billypython/rules.mk b/keyboards/dz60/keymaps/billypython/rules.mk deleted file mode 100644 index 3b7016f570..0000000000 --- a/keyboards/dz60/keymaps/billypython/rules.mk +++ /dev/null @@ -1,8 +0,0 @@ -BACKLIGHT_ENABLE = no -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -COMMAND_ENABLE = yes -CONSOLE_ENABLE = yes -EXTRAKEY_ENABLE = yes -MOUSEKEY_ENABLE = yes -RGBLIGHT_ENABLE = no -TAP_DANCE_ENABLE = yes diff --git a/keyboards/dz60/keymaps/doogle999/keymap.c b/keyboards/dz60/keymaps/doogle999/keymap.c deleted file mode 100644 index 60fe258e25..0000000000 --- a/keyboards/dz60/keymaps/doogle999/keymap.c +++ /dev/null @@ -1,74 +0,0 @@ -#include QMK_KEYBOARD_H - -#include "doogle999.h" - -#define ______ KC_NO - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Base layer - * ,-----------------------------------------------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace | - * |-----------------------------------------------------------------------------------------+ - * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | - * |-----------------------------------------------------------------------------------------+ - * | Fn | A | S | D | F | G | H | J | K | L | ; | ' | Enter | - * |-----------------------------------------------------------------------------------------+ - * | Shift | Z | X | C | V | B | N | M | , | . | Shift | U | Del | - * |-----------------------------------------------------------------------------------------+ - * | Ctrl | Cmd | Alt | Space | / | Fn | L | D | R | - * `-----------------------------------------------------------------------------------------' - */ - - LAYOUT_directional( - KC_ESC, 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_BSPC, - 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, - MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, ______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_DELETE, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SLSH, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT - ), - -/* Fn layer - * ,-----------------------------------------------------------------------------------------. - * | ~ | F1 | F2 | F3 | F4 | F5 | F6 | f7 | F8 | F9 | F10 | F11 | F12 | Backspace | - * |-----------------------------------------------------------------------------------------+ - * | Reset | NP1 | NP2 | NP3 | NP4 | NP5 | NP6 | NP7 | NP8 | NP9 | NP0 |VolD |VolU | Mute | - * |-----------------------------------------------------------------------------------------+ - * | | | | | | | | | | BlD | BlI | BlT | Menu | - * |-----------------------------------------------------------------------------------------+ - * | Shift | Cyc+| Cyc-| Val+| Val-| Hue+| Hue-| Sat+| Sat-| Tog | Shift | Pup | Ins | - * |-----------------------------------------------------------------------------------------+ - * | Ctrl | Cmd | Alt | Space |HwCal| |Home | Pdn | End | - * `-----------------------------------------------------------------------------------------' - */ - - LAYOUT_directional( - 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_CALC, - QK_BOOT, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_0, KC_VOLD, KC_VOLU, KC_MUTE, - ______, ______, ______, ______, ______, ______, ______, ______, ______, BL_DOWN,BL_UP, BL_TOGG, KC_APP, - KC_LSFT, ______, RGB_MOD, RGB_RMOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_TOG, KC_RSFT, KC_PGUP, KC_INSERT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, TO(2), ______, KC_HOME, KC_PGDN, KC_END - ), - - /* Hardware calculator layer - * ,-----------------------------------------------------------------------------------------. - * |EndCa| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace | - * |-----------------------------------------------------------------------------------------+ - * | | Q | | E | | T | | | | | P | | | | - * |-----------------------------------------------------------------------------------------+ - * | | | S | | | | | | | L | | | Calc | - * |-----------------------------------------------------------------------------------------+ - * | Shift | | | | C | | | | | . | Shift | | | - * |-----------------------------------------------------------------------------------------+ - * | | | | | / | | | | | - * `-----------------------------------------------------------------------------------------' - */ - - LAYOUT_directional( - ENDCALC, 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_BSPC, - ______, KC_Q, ______, KC_E, ______, KC_T, ______, ______, ______, ______, KC_P, ______, ______, ______, - ______, ______, KC_S, ______, ______, ______, ______, ______, ______, KC_L, ______, ______, CALC, - KC_LSFT, ______, ______, ______, KC_C, ______, ______, ______, ______, ______, KC_DOT, KC_RSFT, ______, ______, - ______, ______, ______, ______, ______, ______, KC_SLSH, ______, ______, ______, ______ - ), -}; \ No newline at end of file diff --git a/keyboards/dz60/keymaps/draevin/keymap.c b/keyboards/dz60/keymaps/draevin/keymap.c deleted file mode 100644 index b22dfb5561..0000000000 --- a/keyboards/dz60/keymaps/draevin/keymap.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright 2020 Draevin Luke @draevin - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H -#include "draevin.h" - -#define LAYOUT_wrapped(...) LAYOUT(__VA_ARGS__) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_CM] = LAYOUT_wrapped ( - HYPR_T(KC_ESC), ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, KC_LBRC, KC_RBRC, KC_BSLS, - KC_BSPC, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT, KC_ENT, - TD(TD_CAPS), XXXXXXX, _________________COLEMAK_L3________________, _________________COLEMAK_R3________________, KC_RSFT, MO(_FN), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN), KC_SPC, KC_RCTL, KC_RALT, XXXXXXX, KC_RGUI, KC_HYPR - ), - - [_QW] = LAYOUT_wrapped ( - HYPR_T(KC_ESC), ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, - KC_TAB, _________________QWERTY_L1_________________, _________________QWERTY_L1_________________, KC_LBRC, KC_RBRC, KC_BSLS, - KC_BSPC, _________________QWERTY_L2_________________, _________________QWERTY_L2_________________, KC_QUOT, KC_ENT, - TD(TD_CAPS), XXXXXXX, _________________QWERTY_L3_________________, _________________QWERTY_L3_________________, KC_RSFT, MO(_FN), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN), KC_SPC, KC_RCTL, KC_RALT, XXXXXXX, KC_RGUI, KC_HYPR - ), - - [_FN] = LAYOUT_wrapped ( - KC_GRV, _________________FROW_LEFT_________________, _________________FROW_RIGHT________________, KC_F11, KC_F12, _______, _______, - _______, ___________________FN_L1___________________, ___________________FN_R1___________________, _______, _______, KC_MAKE, - _______, ___________________FN_L2___________________, ___________________FN_R2___________________, _______, _______, - _______, XXXXXXX, ___________________BLANK___________________, ___________________FN_R3___________________, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CM_QW - ) -}; diff --git a/keyboards/dz60/keymaps/jarred/keymap.c b/keyboards/dz60/keymaps/jarred/keymap.c deleted file mode 100644 index 32ad434f6f..0000000000 --- a/keyboards/dz60/keymaps/jarred/keymap.c +++ /dev/null @@ -1,21 +0,0 @@ -#include QMK_KEYBOARD_H - -#define _QW 0 -#define _NV 1 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_QW] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, XXXXXXX, KC_BSPC, - 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, - MO(_NV), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, - KC_LSFT, XXXXXXX,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,XXXXXXX, - KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT,KC_RGUI, XXXXXXX,KC_APP, KC_RCTL), - - [_NV] = 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 ,XXXXXXX,_______, - _______,RGB_TOG,RGB_MOD,_______,KC_DEL ,KC_BSPC,_______,KC_HOME,KC_UP ,KC_END ,KC_INS ,_______,_______,_______, - _______,RGB_HUI,RGB_HUD,KC_LSFT,KC_LCTL,KC_ENT ,_______,KC_LEFT,KC_DOWN,KC_RGHT,KC_DEL ,KC_DEL , _______, - _______,XXXXXXX,RGB_SAD,RGB_SAI,_______,_______,_______,_______,KC_PGUP,KC_PGDN,_______,_______,_______,XXXXXXX, - _______,RGB_VAD,RGB_VAI, _______,_______,_______, _______,_______,XXXXXXX, QK_BOOT,_______) -}; diff --git a/keyboards/dz60/keymaps/jdelkins/config.h b/keyboards/dz60/keymaps/jdelkins/config.h deleted file mode 100644 index 9d50abd3ec..0000000000 --- a/keyboards/dz60/keymaps/jdelkins/config.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - Copyright 2020 Joel Elkins - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -#pragma once - -/* My hhkb variant - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ - * │10 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │1e │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │20 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ - * │30 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d │3e │ - * ├────┬───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┼───┤ - * │40 │41 │43 │44 │46 │48 │4a │4b │4c │4d │4e │ - * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───┴───┘ - */ - -#define LAYOUT_hhkb_split( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ - k10, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ - k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ - k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3e, \ - k40, k41, k43, k44, k46, k48, k4a, k4b, k4c, k4d, k4e \ -) { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ - { k10, KC_NO, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ - { k20, KC_NO, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, KC_NO }, \ - { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d, k3e }, \ - { k40, k41, KC_NO, k43, k44, KC_NO, k46, KC_NO, k48, KC_NO, k4a, k4b, k4c, k4d, k4e } \ -} - -#define AUTO_SHIFT_TIMEOUT 160 -#define AUTO_SHIFT_REPEAT -#define RGBLIGHT_LAYERS -#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF -#define LEADER_TIMEOUT 400 -#define LEADER_PER_KEY_TIMING -#define USB_MAX_POWER_CONSUMPTION 100 diff --git a/keyboards/dz60/keymaps/jdelkins/keymap.c b/keyboards/dz60/keymaps/jdelkins/keymap.c deleted file mode 100644 index 2a989fe545..0000000000 --- a/keyboards/dz60/keymaps/jdelkins/keymap.c +++ /dev/null @@ -1,352 +0,0 @@ -/* - Copyright 2020 Joel Elkins - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -#include "jdelkins.h" - -#undef LAYOUT -#define LAYOUT LAYOUT_hhkb_split - -#define IDLE_TIMEOUT 360 - -uint16_t rgb_idle_seconds = 0; -uint16_t rgb_timer; -uint16_t bspc_timer; -bool rgb_was_enabled; - -enum { - MY_BSPC = USER_SAFE_RANGE, -}; - -// Tap Dance - -int ctl_state = 0; - -void ctl_finished(tap_dance_state_t *state, void *user_data) { - ctl_state = cur_dance(state); - switch (ctl_state) { - case SINGLE_TAP: leader_start(); break; - case SINGLE_HOLD: register_code(KC_LCTL); break; - case DOUBLE_TAP: tap_code(KC_RCTL); break; - case DOUBLE_HOLD: register_code(KC_RCTL); break; - case TRIPLE_TAP: tap_code(KC_RCTL); tap_code(KC_RCTL); break; - case TRIPLE_HOLD: tap_code(KC_RCTL); register_code(KC_RCTL); break; - } -} - -void ctl_reset(tap_dance_state_t *state, void *user_data) { - switch (ctl_state) { - case SINGLE_HOLD: unregister_code(KC_LCTL); break; - case DOUBLE_HOLD: - case TRIPLE_HOLD: unregister_code(KC_RCTL); break; - } - ctl_state = 0; -} - -void g_finished(tap_dance_state_t *state, void *user_data) { - switch (cur_dance(state)) { - case SINGLE_TAP: - tap_code16(C(KC_END)); - break; - case DOUBLE_TAP: - tap_code16(C(KC_HOME)); - break; - } -} - -int kp_state = 0; - -void kp_finished(tap_dance_state_t *state, void *user_data) { - kp_state = hold_cur_dance(state); - switch (kp_state) { - case SINGLE_TAP: - tap_code(KC_SPC); - break; - default: - layer_invert(_KP); - break; - } -} - -void kp_reset(tap_dance_state_t *state, void *user_data) { - switch (kp_state) { - case SINGLE_HOLD: - case DOUBLE_HOLD: - case TRIPLE_HOLD: - layer_invert(_KP); - break; - } -} - -enum { - TD_LDCTL, - TD_G, - TD_KP, -}; - -tap_dance_action_t tap_dance_actions[] = { - [TD_LDCTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ctl_finished, ctl_reset), - [TD_G] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, g_finished, NULL), - [TD_KP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, kp_finished, kp_reset), -}; - -// Layers - -const uint16_t PROGMEM keymaps[_LAYER_MAX][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT( - KC_ESC, 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_BSPC, KC_GRV, - 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, - MY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_ADJUST), - TD(TD_LDCTL), MY_GUI, MY_ALT, MY_BSPC, TD(TD_KP), MY_SPC, KC_RGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT - ), - [_RPT] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_GAME] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_LCTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, KC_LALT, KC_SPC, KC_LALT, _______, _______, _______, _______, _______, _______ - ), - [_FUNC] = 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_DEL, KC_F13, - _______, _______, FW_WRD, KB_EOL, TG(_RPT), _______, KB_COPY, KC_PGUP, _______, _______, KB_PASTE, KC_SCRL, _______, MY_CALC, - KC_RCTL, KB_BOL, _______, KC_PGDN, _______, TD(TD_G), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, - _______, _______, KC_DEL, _______, _______, BK_WRD, _______, _______, _______, _______, _______, _______, KC_NO, - KC_RCTL, MY_RGUI, MY_RALT, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END - ), - [_KP] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_ASTERISK, _______, _______, _______, _______, _______, _______, - KC_NUM, _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, _______, _______, _______, - _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_SLASH, _______, TG(_KP), - _______, _______, _______, _______, _______, KC_KP_0, KC_KP_DOT, _______, _______, _______, _______ - ), - [_ADJUST] = 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_SCRL, KC_F13, - _______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, KC_PSCR, KC_BRID, KC_BRIU, KC_MUTE, - KC_RCTL, RGB_RMOD, RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, TG(_KP), _______, _______, _______, KC_MPLY, - _______, RGB_TOG, KB_MAKE, KB_FLSH, KB_VRSN, KB_BOOT, _______, TG_SYS, _______, _______, _______, _______, _______, - KC_RCTL, MY_RGUI, MY_RALT, KC_DEL, _______, _______, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT - ), -}; - -const rgblight_segment_t PROGMEM rpt_layer[] = RGBLIGHT_LAYER_SEGMENTS( - {8, 8, HSV_PINK} -); - -const rgblight_segment_t PROGMEM game_layer[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 1, HSV_RED}, - {7, 2, HSV_RED}, - {15, 1, HSV_RED} -); - -const rgblight_segment_t PROGMEM func_layer[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 16, HSV_GREEN} -); - -const rgblight_segment_t PROGMEM kp_layer[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 16, HSV_ORANGE} -); - -const rgblight_segment_t PROGMEM adjust_layer[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 16, HSV_BLUE} -); - -const rgblight_segment_t PROGMEM capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( - {10, 4, HSV_WHITE} -); - -const rgblight_segment_t PROGMEM numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 2, HSV_PURPLE}, - {14, 2, HSV_PURPLE} -); - - -enum rgb_layer_index { - L_RPT, - L_GAME, - L_FUNC, - L_KP, - L_ADJUST, - L_CAPSLOCK, - L_NUMLOCK, -}; - -const rgblight_segment_t * const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( - [L_RPT] = rpt_layer, - [L_GAME] = game_layer, - [L_FUNC] = func_layer, - [L_KP] = kp_layer, - [L_ADJUST] = adjust_layer, - [L_CAPSLOCK] = capslock_layer, - [L_NUMLOCK] = numlock_layer -); - -layer_state_t layer_state_set_keymap(layer_state_t state) { - rgblight_set_layer_state(L_RPT, layer_state_cmp(state, _RPT)); - rgblight_set_layer_state(L_GAME, layer_state_cmp(state, _GAME)); - rgblight_set_layer_state(L_FUNC, layer_state_cmp(state, _FUNC)); - rgblight_set_layer_state(L_KP, layer_state_cmp(state, _KP)); - rgblight_set_layer_state(L_ADJUST, layer_state_cmp(state, _ADJUST)); - rgblight_set_layer_state(L_CAPSLOCK, CAPSLOCK_ON); - rgblight_set_layer_state(L_NUMLOCK, NUMLOCK_ON && layer_state_cmp(state, _KP)); - if (layer_state_cmp(state, _GAME) || layer_state_cmp(state, _RPT)) - autoshift_disable(); - else - autoshift_enable(); - return state; -} - -bool led_update_user(led_t led_state) { - rgblight_set_layer_state(L_CAPSLOCK, led_state.caps_lock); - rgblight_set_layer_state(L_NUMLOCK, led_state.num_lock && layer_state_is(_KP)); - return true; -} - -void keyboard_post_init_keymap(void) { - rgblight_layers = my_rgb_layers; - rgb_was_enabled = rgblight_is_enabled(); - bspc_timer = 0; -} - -void leader_end_user(void) { - // layer navigation - if (leader_sequence_one_key(KC_R)) { layer_invert(_RPT); } - if (leader_sequence_one_key(KC_G)) { layer_invert(_GAME); } - if (leader_sequence_one_key(KC_K)) { layer_invert(_KP); } - if (leader_sequence_one_key(KC_KP_5)) { layer_invert(_KP); } - - // tmux navigation - if (leader_sequence_one_key(KC_L)) { SEND_STRING(SS_LCTL("a") "n"); } - if (leader_sequence_one_key(KC_H)) { SEND_STRING(SS_LCTL("a") "p"); } - if (leader_sequence_one_key(KC_N)) { SEND_STRING(SS_LCTL("a") "c"); } - if (leader_sequence_one_key(KC_W)) { SEND_STRING(SS_LCTL("a") "x"); } - if (leader_sequence_one_key(KC_MINS)) { SEND_STRING(SS_LCTL("a") "-"); } - if (leader_sequence_one_key(KC_QUOT)) { SEND_STRING(SS_LCTL("a") "\""); } - if (leader_sequence_one_key(KC_1)) { SEND_STRING(SS_LCTL("a") "1"); } - if (leader_sequence_one_key(KC_2)) { SEND_STRING(SS_LCTL("a") "2"); } - if (leader_sequence_one_key(KC_3)) { SEND_STRING(SS_LCTL("a") "3"); } - if (leader_sequence_one_key(KC_4)) { SEND_STRING(SS_LCTL("a") "4"); } - if (leader_sequence_one_key(KC_5)) { SEND_STRING(SS_LCTL("a") "5"); } - if (leader_sequence_one_key(KC_6)) { SEND_STRING(SS_LCTL("a") "6"); } - if (leader_sequence_one_key(KC_7)) { SEND_STRING(SS_LCTL("a") "7"); } - if (leader_sequence_one_key(KC_8)) { SEND_STRING(SS_LCTL("a") "8"); } - if (leader_sequence_one_key(KC_9)) { SEND_STRING(SS_LCTL("a") "9"); } - - // secrets - if (leader_sequence_two_keys(KC_SCLN, KC_M)) { send_secret_string(0); } - if (leader_sequence_two_keys(KC_SCLN, KC_COMM)) { send_secret_string(1); } - if (leader_sequence_two_keys(KC_SCLN, KC_DOT)) { send_secret_string(2); } - if (leader_sequence_two_keys(KC_SCLN, KC_J)) { send_secret_string(3); } - if (leader_sequence_two_keys(KC_SCLN, KC_K)) { send_secret_string(4); } - if (leader_sequence_two_keys(KC_SCLN, KC_L)) { send_secret_string(5); } - - // fast control-C - if (leader_sequence_one_key(KC_C)) { tap_code16(C(KC_C)); } - - // neovim: terminal escape - if (leader_sequence_one_key(KC_BSLS)) { - tap_code16(C(KC_BSLS)); - tap_code16(C(KC_N)); - } -} - -void matrix_scan_keymap(void) { - if (rgblight_is_enabled() && timer_elapsed(rgb_timer) > 1000) { - rgb_idle_seconds++; - rgb_timer = timer_read(); - } - if (rgb_idle_seconds > IDLE_TIMEOUT) { - rgb_was_enabled = rgblight_is_enabled(); - rgblight_disable_noeeprom(); - rgb_idle_seconds = 0; - } - // if MY_BSPC is held down too long, pretend like it wasn't and start - // pressing backspace - if (bspc_timer > 0 && timer_elapsed(bspc_timer) > LEADER_TIMEOUT) { - layer_off(_FUNC); - bspc_timer = 0; - register_code(KC_BSPC); - } -} - -bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { - static bool bspc_del = false; - static bool bspc_initiated_func = false; - bool rc = true; - - rgb_idle_seconds = 0; - if (!rgblight_is_enabled() && rgb_was_enabled) - rgblight_enable_noeeprom(); - - switch (keycode) { - case MY_BSPC: - if (record->event.pressed) { - if (IS_LAYER_ON(_FUNC)) { - // special case: if _FUNC was turned on by another key, - // treat this as KC_DEL and don't do anything else - bspc_del = true; - register_code(KC_DEL); - return false; - } else { - bspc_timer = timer_read(); - bspc_initiated_func = true; - layer_on(_FUNC); - } - } else { - if (bspc_del) { - // special case: if _FUNC was turned on by another key, - // treat this as KC_DEL and don't do anything else - unregister_code(KC_DEL); - bspc_del = false; - return false; - } - - if (bspc_initiated_func) { - layer_off(_FUNC); - bspc_initiated_func = false; - } - - if (bspc_timer > 0) { - // here the key was pressed and released before the timer - // expired, so treat as a backspace tap and pretend we - // never activated _FUNC - bspc_timer = 0; - tap_code(KC_BSPC); - } else { - // the timer went off, so KC_BSPC was registered in - // matrix_scan_keymap. unregister it now - unregister_code(KC_BSPC); - } - } - return false; // special case, return now without resetting timer - // other paths should set rc and break - break; - } - - // if something was pressed while MY_BSPC was held down, keep it pressed by - // disabling the timer - bspc_timer = 0; - return rc; -} - diff --git a/keyboards/dz60/keymaps/jdelkins/rules.mk b/keyboards/dz60/keymaps/jdelkins/rules.mk deleted file mode 100644 index 2eacc54ea1..0000000000 --- a/keyboards/dz60/keymaps/jdelkins/rules.mk +++ /dev/null @@ -1,7 +0,0 @@ -LEADER_ENABLE = yes -MOUSEKEY_ENABLE = no -CONSOLE_ENABLE = no -NKRO_ENABLE = no -TAP_DANCE_ENABLE = yes -AUTO_SHIFT_ENABLE = yes -LTO_ENABLE = yes diff --git a/keyboards/dz60/keymaps/konstantin_b/config.h b/keyboards/dz60/keymaps/konstantin_b/config.h deleted file mode 100644 index 4b511eb848..0000000000 --- a/keyboards/dz60/keymaps/konstantin_b/config.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -#define LAYER_FN diff --git a/keyboards/dz60/keymaps/konstantin_b/keymap.c b/keyboards/dz60/keymaps/konstantin_b/keymap.c deleted file mode 100644 index 3718669fa5..0000000000 --- a/keyboards/dz60/keymaps/konstantin_b/keymap.c +++ /dev/null @@ -1,46 +0,0 @@ -#include QMK_KEYBOARD_H -#include "konstantin.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Base layer - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bspc │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │FnCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤ - * │ LShift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │RSft /│ ↑ │FnF│ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤ - * │LCtl│LGui│LAlt│ Space │RAG│RCt│ ← │ ↓ │ → │ - * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ - */ - [L_BASE] = LAYOUT_60_b_ansi( - KC_ESC, 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_BSLS, KC_GRV, - 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_BSPC, - FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSF_SLS, KC_UP, FN_FNLK, - KC_LCTL, KC_LGUI, KC_LALT, XXXXXXX, KC_SPC, XXXXXXX, RAL_RGU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - /* Fn layer - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│PSc│Ins│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ - * │ M4 │M2 │M↑ │M1 │M3 │M5 │ │ │ │Stp│Ply│Prv│Nxt│ Del │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │ │M← │M↓ │M→ │MW↑│ │ │ │ │ │ │ │ │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤ - * │ │MA0│MA2│MW←│MW→│ │ │App│Vo-│Vo+│ Mute │PgU│ │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤ - * │ │DtPR│DtNA│ MW↓ │ │ │Hom│PgD│End│ - * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ - */ - [L_FN] = LAYOUT_60_b_ansi( - _______, 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_PSCR, KC_INS, - KC_BTN4, KC_BTN2, KC_MS_U, KC_BTN1, KC_BTN3, KC_BTN5, _______, _______, _______, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, KC_DEL, - _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_ACL0, KC_ACL2, KC_WH_L, KC_WH_R, _______, _______, KC_APP, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______, - _______, DST_P_R, DST_N_A, XXXXXXX, KC_WH_D, XXXXXXX, _______, _______, KC_HOME, KC_PGDN, KC_END - ), -}; diff --git a/keyboards/dz60/keymaps/konstantin_b/rules.mk b/keyboards/dz60/keymaps/konstantin_b/rules.mk deleted file mode 100644 index 18ea01311f..0000000000 --- a/keyboards/dz60/keymaps/konstantin_b/rules.mk +++ /dev/null @@ -1,21 +0,0 @@ -USER_NAME := konstantin - -# Generic features -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -COMMAND_ENABLE = yes -CONSOLE_ENABLE = yes -EXTRAKEY_ENABLE = yes -MOUSEKEY_ENABLE = yes -NKRO_ENABLE = yes -TAP_DANCE_ENABLE = yes -UNICODEMAP_ENABLE = no - -# Keyboard-specific features -BACKLIGHT_ENABLE = no -RGBLIGHT_ENABLE = no -VIA_ENABLE = yes - -# Firmware size reduction -GRAVE_ESC_ENABLE = no -MAGIC_ENABLE = no -SPACE_CADET_ENABLE = no diff --git a/keyboards/dz60/keymaps/mechmerlin/config.h b/keyboards/dz60/keymaps/mechmerlin/config.h deleted file mode 100644 index 92d4cfb50a..0000000000 --- a/keyboards/dz60/keymaps/mechmerlin/config.h +++ /dev/null @@ -1,6 +0,0 @@ -#pragma once - -// Turn off RGB when computer goes to sleep -#ifdef RGBLIGHT_ENABLE -#define RGBLIGHT_SLEEP -#endif // RGBLIGHT_ENABLE diff --git a/keyboards/dz60/keymaps/mechmerlin/keymap.c b/keyboards/dz60/keymaps/mechmerlin/keymap.c deleted file mode 100644 index 795ba24798..0000000000 --- a/keyboards/dz60/keymaps/mechmerlin/keymap.c +++ /dev/null @@ -1,40 +0,0 @@ -#include QMK_KEYBOARD_H - -enum keyboard_layers { - _BL = 0, // Base Layer - _FL, // Function Layer - _CL // Control Layer -}; - -// Custom #defined keycodes (shorter macros for readability) -#define KC_CTCP LCTL_T(KC_CAPS) -#define KC_RSSH RSFT_T(KC_SLSH) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BL] = LAYOUT_60_b_ansi( - QK_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_BSPC, KC_BSPC, - 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_CTCP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSSH, KC_UP, KC_DEL, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - - [_FL] = LAYOUT_60_b_ansi( - 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_DEL, KC_DEL, - 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_CAPS, 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_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_PGUP, MO(_CL), - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END), - - [_CL] = LAYOUT_60_b_ansi( - QK_BOOT, 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, KC_TRNS, - RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) -}; - -// Set underglow RGB leds to yellow -// Find the list of available colors in quantum/color.h -void matrix_init_user(void) { - rgblight_sethsv_noeeprom(HSV_YELLOW); -} diff --git a/keyboards/dz60/keymaps/mechmerlin/readme.md b/keyboards/dz60/keymaps/mechmerlin/readme.md deleted file mode 100644 index bb8fbf84b3..0000000000 --- a/keyboards/dz60/keymaps/mechmerlin/readme.md +++ /dev/null @@ -1,68 +0,0 @@ -# MechMerlin's DZ60 Keymap - -The purpose of this keymap is to provide examples on how to do some common QMK features. - -Make example for this keyboard (after setting up your build environment): - - make dz60:mechmerlin - -## Merlin's DZ60 Hardware Info ---- - -The DZ60 is a 60% pcb produced by KBDFans. It comes in two variants, USB Mini B and USB C. It supports many many layouts. It also supports both backlight and RGB underglow. The USB C variant does not have a hardware reset switch. USB C to C is not supported. - -Merlin's DZ60 uses -- Layout B, in QMK this is LAYOUT_60_b_ansi. -- USB C -- 50g Zilents -- Arrows are 78g Zilents -- KPRepublic XD64 Case - -## Layers ---- - -Merlin's keymap has three different layers. To switch layers you can use the `MO(X)` keycode, where `X` is the layer you want to switch to. - -### _BL - -This is the base layer also known as layer 0. It is a standard QWERTY layout. It has the `_FL` layer switch key. - -### _FL - -This is the function layer also known as layer 1. It utiizes the following: -- Function Keys -- Navigation Keys -- Audio keys such as Mute, Volume Down and Volume Up. -- `_CL` layer switch key - -### _CL - -This is the control layer also known as layer 2. It utilizes the following: -- RGB Controls -- `RESET` key - -## Non Standard Keycodes ---- -### RESET - -As long `BOOTMAGIC_ENABLE` is set to `yes` in `rules.mk`, the DZ60 can be put into bootloader mode by holding the `Escape` key while plugging in. However sometmes this doesn't work or is troublesome to do, might as well use the `RESET` keycode to accomplish this. - -### RSFT_T(KC_SLSH) - -Layout B is missing the `?` key and is instead replaced with a `right shift`. This keycode makes it so that the key can be tapped for `?` and held for `right shift`. - -### LCTL_T(KC_CAPS) - -`Caps Lock` is only ever used by tapping, why not use it as a `control` key when held? This keycode makes it so that the key can be tapped for `caps lock` and held for `control`. - - -## RGB Lighting ---- - -### RGBLIGHT_SLEEP - -This is set in `mechmerlin/config.h` so that when the computer goes to sleep, the RGB lights will also go to sleep on the keyboard. They will turn back on when the computer wakes. - -### RGB Underglow Color: Yellow - -This is set in `mechmerlin/keymap.c` in the `matrix_init_user` function. The list of available colors can be found in [`quantum/color.h`](https://github.com/qmk/qmk_firmware/blob/master/quantum/color.h). diff --git a/keyboards/dz60/keymaps/spotpuff/keymap.c b/keyboards/dz60/keymaps/spotpuff/keymap.c deleted file mode 100644 index c4f5cd9555..0000000000 --- a/keyboards/dz60/keymaps/spotpuff/keymap.c +++ /dev/null @@ -1,95 +0,0 @@ - /* Copyright 2020 Philip Chan - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H - -//Layers -enum layer_names { - _QWERTY, - _FN, - _MEDIA, -}; - -//Custom Keymap Definitions -#define KC_CAD LALT(LCTL(KC_DEL)) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Qwerty Base layer - * ,-----------------------------------------------------------------------------------------. - * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSpc| Del | - * |-----------------------------------------------------------------------------------------+ - * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | - * |-----------------------------------------------------------------------------------------+ - * | `/_Media| A | S | D | F | G | H | J | K | L | ; | ' | Enter | - * |-----------------------------------------------------------------------------------------+ - * | Shift | Z | X | C | V | B | N | M | , | . | / |PgUp | Up |PgDn | - * |-----------------------------------------------------------------------------------------+ - * | LCtrl | LGui | LAlt | Space | Fn | Space |Home | End |Left |Down |Right| - * `----------------------------------------------------------------------------------------' - */ - - [_QWERTY] = LAYOUT_directional( - KC_ESC, 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_BSPC, KC_DEL, - 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, - LT(_MEDIA,KC_GRV), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_PGUP, KC_UP, KC_PGDN, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN), KC_SPC, KC_HOME, KC_END, KC_LEFT, KC_DOWN, KC_RGHT - ), - -/* F-Key/Lighting/whatever layer - * ,-----------------------------------------------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F0 | F11 | F12 | | Ins | - * |-----------------------------------------------------------------------------------------+ - * | |R_Tog|R_HUI|R_SAI|R_VAI| | | | | | | | | KC_CAD | - * |-----------------------------------------------------------------------------------------+ - * | Caps | |R_HUD|R_SAD| | | | | | | SLCK|PAUSE| Print Screen| - * |-----------------------------------------------------------------------------------------+ - * | Trns |R_M_P|R_M_B|R_M_R|R_M_SW|R_M_S|R_M_K|R_M_X|R_M_G| | | |BLUP | | - * |-----------------------------------------------------------------------------------------+ - * | Trns | Trns | Trns | | Trns | | | |BLTog|BLDN |BLInc| - * `----------------------------------------------------------------------------------------' - */ - - [_FN] = LAYOUT_directional( - XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, KC_INS, - XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAD, - KC_CAPS, XXXXXXX, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SCRL, KC_PAUS, KC_PSCR, - _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, XXXXXXX, XXXXXXX, XXXXXXX, BL_UP, XXXXXXX, - _______, _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, BL_TOGG, BL_DOWN, BL_STEP - ), - -/* SFX/Multimedia/Numpad layer - * ,-----------------------------------------------------------------------------------------. - * | | | | | | |NumLk| | / | * | - | = | |Trns |Trns | - * |-----------------------------------------------------------------------------------------+ - * | | | Prev | Play| Next| | | 7 | 8 | 9 | + | | | QK_BOOT | - * |-----------------------------------------------------------------------------------------+ - * | Trns | |Mute | VUp | VDn | | | 4 | 5 | 6 | + | | Trns | - * |-----------------------------------------------------------------------------------------+ - * | Trns | | | | | | | 1 | 2 | 3 |NumEN| | | | - * |-----------------------------------------------------------------------------------------+ - * | Trns | Trns | Trns | Trns | Trns | 0 | . | | | | | - * `----------------------------------------------------------------------------------------' - */ - - [_MEDIA] = LAYOUT_directional( - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NUM, XXXXXXX, KC_PSLS, KC_PAST, KC_PMNS, KC_PEQL, XXXXXXX, _______, _______, - XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, KC_P7, KC_P8, KC_P9, KC_PPLS, XXXXXXX, XXXXXXX, QK_BOOT, - _______, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, KC_P4, KC_P5, KC_P6, KC_PPLS, XXXXXXX, _______, - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_P1, KC_P2, KC_P3, KC_PENT, XXXXXXX, XXXXXXX, XXXXXXX, - _______, _______, _______, _______, _______, KC_P0, KC_PDOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX - ) -}; diff --git a/keyboards/dz60/keymaps/spotpuff/rules.mk b/keyboards/dz60/keymaps/spotpuff/rules.mk deleted file mode 100644 index 7b4abdbc1b..0000000000 --- a/keyboards/dz60/keymaps/spotpuff/rules.mk +++ /dev/null @@ -1 +0,0 @@ -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite diff --git a/keyboards/dz60/keymaps/twschum_b_4_10/config.h b/keyboards/dz60/keymaps/twschum_b_4_10/config.h deleted file mode 100644 index 15cabda364..0000000000 --- a/keyboards/dz60/keymaps/twschum_b_4_10/config.h +++ /dev/null @@ -1,24 +0,0 @@ -#pragma once - -// number of taps for TT Tap-Toggle keys to toggle -#ifdef TAPPING_TOGGLE -#undef TAPPING_TOGGLE -#endif -#define TAPPING_TOGGLE 2 - -// time in ms that counts as a "tap" for various features -#ifdef TAPPING_TERM -#undef TAPPING_TERM -#endif -#define TAPPING_TERM 100 - -// https://docs.qmk.fm/features/mouse-keys#configuring-the-behavior-of-mousekeys -#define MOUSEKEY_DELAY 0 -#define MOUSEKEY_INTERVAL 20 -#define MOUSEKEY_MAX_SPEED 10 -#define MOUSEKEY_TIME_TO_MAX 15 -#define MOUSEKEY_WHEEL_MAX_SPEED 1 -#define MOUSEKEY_WHEEL_TIME_TO_MAX 255 - -// flags from user/twschum/ -#define TWSCHUM_TAPPING_CTRL_PREFIX 1 diff --git a/keyboards/dz60/keymaps/twschum_b_4_10/keymap.c b/keyboards/dz60/keymaps/twschum_b_4_10/keymap.c deleted file mode 100644 index a2cba4fe67..0000000000 --- a/keyboards/dz60/keymaps/twschum_b_4_10/keymap.c +++ /dev/null @@ -1,123 +0,0 @@ -#include QMK_KEYBOARD_H -#include "twschum.h" - -/* DZ60 layout using following options (from layouts diagram on KBDfans): - * - plate B (2.25u lshift) - * - opt 4 (1.75, 1, 1 on rshift) - * - opt 10 (2.75, 1.25, 2.25 on space, 5x1u bottom right keys) - * http://www.keyboard-layout-editor.com/#/gists/225f0f4dcf6671405f744fabe314627c - */ - - -#define LAYOUT_b_4_10( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, \ - K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ - K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ - K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K312, K313, K314, \ - K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414 \ - ) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, XXXXXXX, K014 }, \ - { K100, XXXXXXX, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ - { K200, XXXXXXX, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, XXXXXXX }, \ - { K300, XXXXXXX, K302, K303, K304, K305, K306, K307, K308, K309, K310, XXXXXXX, K312, K313, K314 }, \ - { K400, K401, XXXXXXX, K403, K404, XXXXXXX, K406, XXXXXXX, K408, XXXXXXX, K410, K411, K412, K413, K414 } \ -} - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* base 60% qwerty */ - LAYOUT_b_4_10( - // |--------|----1---|----2---|----3---|---4----|---5----|---6----|---7----|---8----|---9----|---0----|-- - ---|-- = ---||------2.0-------| - KC_ESC, 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_BSPC, - // |--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------||----------------| - // - // |----1.5-----||---Q----|---W----|---E----|---R----|---T----|---Y----|---U----|---I----|---O----|---P----|---[----|---]----|----1.5-----| - 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, - // |------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------| - // - // |----1.75------||---A----|---S----|---D----|---F----|---G----|---H----|---J----|---K----|---L----|---;----|---'----|------2.25--------|| - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - // |--------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------------|| - // - // |------2.25--------|---Z----|---X----|---C----|---V----|---B----|---N----|---M----|---,----|---.----||----1.75------|--------|--------|| - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, /*SFT_T*/KC_SLSH, KC_UP, VIM_START, - // |------------------|--------|--------|--------|--------|--------|--------|--------|--------|--------||--------------|--------|--------|| - // - // |---1.25---|---1.25---||---1.25---||--------2.75----------||---1.25---|------2.25--------||--------|--------|--------|--------|--------| - MO(_Fn), KC_LALT, KC_LGUI, KC_SPC, TT(_Nav), MO(_Fn), TG(_Num), TT(_Cfg), KC_LEFT, KC_DOWN, KC_RGHT - // |----------|----------||----------||----------------------||----------|------------------||--------|--------|--------|--------|--------| - ), - - /* vim mode */ - LAYOUT_b_4_10( - VIM_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, VIM_W, VIM_E, KC_R, _______, VIM_Y, VIM_U, VIM_I, VIM_O, VIM_P, _______, _______, _______, - _______, VIM_A, VIM_S, VIM_D, _______, VIM_G, VIM_H, VIM_J, VIM_K, VIM_L, _______, _______, _______, - VIM_SHIFT, _______, VIM_X, VIM_C, VIM_V, VIM_B, _______, _______, VIM_COMMA, VIM_PERIOD, _______, _______, VIM_ESC, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - /* primary fn layer */ - LAYOUT_b_4_10( - // |--------|----1---|----2---|----3---|---4----|---5----|---6----|---7----|---8----|---9----|---0----|-- - ---|-- = ---||------2.0-------| - 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_DEL, - // |--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------||----------------| - // - // |----1.5-----||---Q----|---W----|---E----|---R----|---T----|---Y----|---U----|---I----|---O----|---P----|---[----|---]----|----1.5-----| - KC_TAB, CODE_PASTE, KC_HOME, KC_UP, KC_END, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, LESS_PD, XXXXXXX, XXXXXXX, CODE_PASTE, - // |------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------| - // - // |----1.75------||---A----|---S----|---D----|---F----|---G----|---H----|---J----|---K----|---L----|---;----|---'----|------2.25--------|| - KC_CAPS, SALT_CMD, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, KC_ENT, - // |--------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------------|| - // - // |------2.25--------|---Z----|---X----|---C----|---V----|---B----|---N----|---M----|---,----|---.----||----1.75------|--------|--------|| - KC_LSFT, KC_MPRV, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, _______, _______, XXXXXXX, XXXXXXX, QK_LOCK, KC_PGUP, KC_INS, - // |------------------|--------|--------|--------|--------|--------|--------|--------|--------|--------||--------------|--------|--------|| - // - // |---1.25---|---1.25---||---1.25---||--------2.75----------||---1.25---|------2.25--------||--------|--------|--------|--------|--------| - KC_MEH, KC_LALT, KC_LGUI, KC_MEDIA_PLAY_PAUSE, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END - // |----------|----------||----------||----------------------||----------|------------------||--------|--------|--------|--------|--------| - ), - - /* mouse navigation */ - LAYOUT_b_4_10( - TO(_Base), KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, XXXXXXX, XXXXXXX, KC_SLEP, KC_PGDN, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_LCTL, KC_MS_BTN3, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, XXXXXXX, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_UP, KC_MS_WH_RIGHT, XXXXXXX, XXXXXXX, XXXXXXX, - KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_BTN1, _______, _______, _______, _______, _______, _______, _______ - ), - - /* numpad layer */ - LAYOUT_b_4_10( - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSPC, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, KC_KP_PLUS, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_SLASH, KC_KP_ASTERISK, XXXXXXX, KC_ENT, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_DOT, KC_KP_ENTER, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_0, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX - ), - - - /* RGB lighting controls and keyboard config, reset */ - LAYOUT_b_4_10( - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG_L0_RGB, XXXXXXX, XXXXXXX, TO(_None), - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUD, - EN_CTRL_SHORTCUTS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG_LAYER_RGB, RGB_MODE_PLAIN, RGB_MODE_FORWARD, KC_RSFT, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MAKE, XXXXXXX, XXXXXXX, RGB_TOG, RGB_VAI, RGB_HUI, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, RGB_SAD, RGB_VAD, RGB_SAI - ), - - /* soft "off" state where none of the keystroke register */ - LAYOUT_b_4_10( - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TO(_Base), - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX - ), -}; - -uint8_t vim_cmd_layer(void) { - return _Vim; -} diff --git a/keyboards/dz60/keymaps/twschum_b_4_10/layout.json b/keyboards/dz60/keymaps/twschum_b_4_10/layout.json deleted file mode 100644 index cd484f9d89..0000000000 --- a/keyboards/dz60/keymaps/twschum_b_4_10/layout.json +++ /dev/null @@ -1,4877 +0,0 @@ -{ - "configKeymap":{ - "keys":[ - "K00", - "K01", - "K02", - "K03", - "K04", - "K05", - "K06", - "K07", - "K08", - "K09", - "K0A", - "K0B", - "K0C", - "K0D", - "K2D", - "K10", - "K11", - "K12", - "K13", - "K14", - "K15", - "K16", - "K17", - "K18", - "K19", - "K1A", - "K1B", - "K1C", - "K1D", - "K20", - "K21", - "K22", - "K23", - "K24", - "K25", - "K26", - "K27", - "K28", - "K29", - "K2A", - "K2B", - "K2C", - "K30", - "K31", - "K32", - "K33", - "K34", - "K35", - "K36", - "K37", - "K38", - "K39", - "K3A", - "K3B", - "K3C", - "K3D", - "K40", - "K41", - "K42", - "K44", - "K45", - "K46", - "K48", - "K49", - "K4A", - "K4B", - "K4C" - ], - "positions":[ - [ - "K00", - "K01", - "K02", - "K03", - "K04", - "K05", - "K06", - "K07", - "K08", - "K09", - "K0A", - "K0B", - "K0C", - "K0D" - ], - [ - "K10", - "K11", - "K12", - "K13", - "K14", - "K15", - "K16", - "K17", - "K18", - "K19", - "K1A", - "K1B", - "K1C", - "K1D" - ], - [ - "K20", - "K21", - "K22", - "K23", - "K24", - "K25", - "K26", - "K27", - "K28", - "K29", - "K2A", - "K2B", - "K2C", - "K2D" - ], - [ - "K30", - "K31", - "K32", - "K33", - "K34", - "K35", - "K36", - "K37", - "K38", - "K39", - "K3A", - "K3B", - "K3C", - "K3D" - ], - [ - "K40", - "K41", - "K42", - "KC_NO", - "K44", - "K45", - "K46", - "KC_NO", - "K48", - "K49", - "K4A", - "K4B", - "K4C", - "KC_NO" - ] - ] - }, - "keySections":[ - { - "row1":[ - { - "id":"k00", - "value":"ESC", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k01", - "value":"1", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k02", - "value":"2", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k03", - "value":"3", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k04", - "value":"4", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k05", - "value":"5", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k06", - "value":"6", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k07", - "value":"7", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k08", - "value":"8", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k09", - "value":"9", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k0A", - "value":"0", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k0B", - "value":"MINS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k0C", - "value":"EQL", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ], - "backspace":[ - [ - { - "id":"k0D", - "value":"BSPC", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k200", - "zone":"Backspace" - }, - { - "id":"k2D", - "value":"NO", - "type":"nodisplay", - "showMenu":false - } - ], - [ - { - "id":"k0D", - "value":"PSCR", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100", - "zone":"Backspace" - }, - { - "id":"k2D", - "value":"PAUS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100", - "zone":"Backspace" - } - ] - ], - "row2":[ - { - "id":"k10", - "value":"TAB", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - }, - { - "id":"k11", - "value":"Q", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k12", - "value":"W", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k13", - "value":"E", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k14", - "value":"R", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k15", - "value":"T", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k16", - "value":"Y", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k17", - "value":"U", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k18", - "value":"I", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k19", - "value":"O", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k1A", - "value":"P", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k1B", - "value":"LBRC", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k1C", - "value":"RBRC", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ], - "row2pipe":[ - [ - { - "id":"k1D", - "value":"BSLS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150", - "zone":"Enter" - } - ], - [ - { - "id":"k1D", - "value":"ENT", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"kISO", - "zone":"Enter" - } - ] - ], - "caps":[ - [ - { - "id":"k20", - "value":"LCTL", - "type":"normal", - "secondary":"LCTL", - "showMenu":false, - "shape":"k175", - "zone":"Caps Lock" - } - ], - [ - { - "id":"k20", - "value":"CAPS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k175stepped", - "zone":"Caps Lock" - } - ] - ], - "row3":[ - { - "id":"k21", - "value":"A", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k22", - "value":"S", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k23", - "value":"D", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k24", - "value":"F", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k25", - "value":"G", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k26", - "value":"H", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k27", - "value":"J", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k28", - "value":"K", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k29", - "value":"L", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k2A", - "value":"SCLN", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k2B", - "value":"QUOT", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ], - "enter":[ - [ - { - "id":"k2C", - "value":"ENT", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k225", - "zone":"Enter" - } - ], - [ - { - "id":"k2C", - "value":"NUHS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100", - "zone":"Enter" - } - ] - ], - "leftShift":[ - [ - { - "id":"k30", - "value":"LSFT", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k225", - "zone":"Left Shift" - }, - { - "id":"k31", - "value":"NO", - "type":"nodisplay", - "showMenu":false - } - ], - [ - { - "id":"k30", - "value":"LSFT", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125", - "zone":"Left Shift" - }, - { - "id":"k31", - "value":"NUBS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100", - "zone":"Left Shift" - } - ] - ], - "row4":[ - { - "id":"k32", - "value":"Z", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k33", - "value":"X", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k34", - "value":"C", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k35", - "value":"V", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k36", - "value":"B", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k37", - "value":"N", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k38", - "value":"M", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k39", - "value":"COMM", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k3A", - "value":"DOT", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ], - "rightShift":[ - [ - { - "id":"k3B", - "value":"SLSH", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100", - "zone":"Right Shift" - }, - { - "id":"k3C", - "value":"RSFT", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275", - "zone":"Right Shift" - }, - { - "id":"k3D", - "value":"NO", - "type":"nodisplay" - } - ], - [ - { - "id":"k3B", - "value":"SLSH", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100", - "zone":"Right Shift" - }, - { - "id":"k3C", - "value":"RSFT", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k175", - "zone":"Right Shift" - }, - { - "id":"k3D", - "value":"L1", - "type":"momentary", - "secondary":null, - "showMenu":false, - "shape":"k100", - "zone":"Right Shift" - } - ], - [ - { - "id":"k3B", - "value":"SLSH", - "type":"tapkey", - "secondary":"RSFT", - "showMenu":false, - "shape":"k175", - "zone":"Right Shift" - }, - { - "id":"k3C", - "value":"UP", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100", - "zone":"Right Shift" - }, - { - "id":"k3D", - "value":"HYPR", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100", - "zone":"Right Shift" - } - ] - ], - "row5":[ - [ - { - "id":"k40", - "value":"MEH", - "type":"normal", - "secondary":"MEH", - "showMenu":false, - "shape":"k125", - "zone":"Bottom Row" - }, - { - "id":"k41", - "value":"LALT", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125", - "zone":"Bottom Row" - }, - { - "id":"k42", - "value":"LGUI", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125", - "zone":"Bottom Row" - } - ], - [ - { - "id":"k40", - "value":"LCTL", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150", - "zone":"Bottom Row" - }, - { - "id":"k41", - "value":"LGUI", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100", - "zone":"Bottom Row" - }, - { - "id":"k42", - "value":"LALT", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150", - "zone":"Bottom Row" - } - ] - ], - "space":[ - [ - [ - { - "id":"k44", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k45", - "value":"SPC", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k625", - "zone":"Space" - }, - { - "id":"k46", - "value":"NO", - "type":"nodisplay" - } - ], - [ - { - "id":"k44", - "value":"SPC", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275", - "zone":"Space" - }, - { - "id":"k45", - "value":"L2", - "type":"taptoggle", - "secondary":null, - "showMenu":false, - "shape":"k125", - "zone":"Space" - }, - { - "id":"k46", - "value":"L1", - "type":"momentary", - "secondary":null, - "showMenu":false, - "shape":"k225", - "zone":"Space" - } - ], - [ - { - "id":"k44", - "value":"ENT", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k225", - "zone":"Space" - }, - { - "id":"k45", - "value":"BL_STEP", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125", - "zone":"Space" - }, - { - "id":"k46", - "value":"SPC", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275", - "zone":"Space" - } - ] - ], - [ - [ - { - "id":"k44", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k45", - "value":"SPC", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k700", - "zone":"Space" - }, - { - "id":"k46", - "value":"NO", - "type":"nodisplay" - } - ], - [ - { - "id":"k44", - "value":"ENT", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275", - "zone":"Space" - }, - { - "id":"k45", - "value":"BL_STEP", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150", - "zone":"Space" - }, - { - "id":"k46", - "value":"SPC", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275", - "zone":"Space" - } - ] - ] - ], - "bottomRight":[ - [ - [ - { - "id":"k48", - "value":"RGUI", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125", - "zone":"Bottom Right" - }, - { - "id":"k49", - "value":"RALT", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125", - "zone":"Bottom Right" - }, - { - "id":"k4A", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k4B", - "value":"APP", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125", - "zone":"Bottom Right" - }, - { - "id":"k4C", - "value":"RCTL", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125", - "zone":"Bottom Right" - } - ], - [ - { - "id":"k48", - "value":"L3", - "type":"taptoggle", - "secondary":null, - "showMenu":false, - "shape":"k100", - "zone":"Bottom Right" - }, - { - "id":"k49", - "value":"L4", - "type":"direct", - "secondary":null, - "showMenu":false, - "shape":"k100", - "zone":"Bottom Right" - }, - { - "id":"k4A", - "value":"LEFT", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100", - "zone":"Bottom Right" - }, - { - "id":"k4B", - "value":"DOWN", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100", - "zone":"Bottom Right" - }, - { - "id":"k4C", - "value":"RIGHT", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100", - "zone":"Bottom Right" - } - ] - ], - [ - [ - { - "id":"k48", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k49", - "value":"RALT", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150", - "zone":"Bottom Right" - }, - { - "id":"k4A", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k4B", - "value":"APP", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100", - "zone":"Bottom Right" - }, - { - "id":"k4C", - "value":"RCTL", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150", - "zone":"Bottom Right" - } - ], - [ - { - "id":"k48", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k49", - "value":"RALT", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100", - "zone":"Bottom Right" - }, - { - "id":"k4A", - "value":"LEFT", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100", - "zone":"Bottom Right" - }, - { - "id":"k4B", - "value":"DOWN", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100", - "zone":"Bottom Right" - }, - { - "id":"k4C", - "value":"RIGHT", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100", - "zone":"Bottom Right" - } - ] - ] - ] - }, - { - "row1":[ - { - "id":"k00", - "value":"GRV", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k01", - "value":"F1", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k02", - "value":"F2", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k03", - "value":"F3", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k04", - "value":"F4", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k05", - "value":"F5", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k06", - "value":"F6", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k07", - "value":"F7", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k08", - "value":"F8", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k09", - "value":"F9", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k0A", - "value":"F10", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k0B", - "value":"F11", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k0C", - "value":"F12", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ], - "backspace":[ - [ - { - "id":"k0D", - "value":"DEL", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k200" - }, - { - "id":"k2D", - "value":"NO", - "type":"nodisplay", - "showMenu":false - } - ], - [ - { - "id":"k0D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k2D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ] - ], - "row2":[ - { - "id":"k10", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - }, - { - "id":"k11", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k12", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k13", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k14", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k15", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k16", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k17", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k18", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k19", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k1A", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k1B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k1C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ], - "row2pipe":[ - [ - { - "id":"k1D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - } - ], - [ - { - "id":"k1D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"kISO" - } - ] - ], - "caps":[ - [ - { - "id":"k20", - "value":"CAPS", - "type":"normal", - "secondary":"LCTL", - "showMenu":false, - "shape":"k175" - } - ], - [ - { - "id":"k20", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k175stepped" - } - ] - ], - "row3":[ - { - "id":"k21", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k22", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k23", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k24", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k25", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k26", - "value":"LEFT", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k27", - "value":"DOWN", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k28", - "value":"UP", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k29", - "value":"RIGHT", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k2A", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k2B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ], - "enter":[ - [ - { - "id":"k2C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k225" - } - ], - [ - { - "id":"k2C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ] - ], - "leftShift":[ - [ - { - "id":"k30", - "value":"LSFT", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k225" - }, - { - "id":"k31", - "value":"NO", - "type":"nodisplay", - "showMenu":false - } - ], - [ - { - "id":"k30", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k31", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ] - ], - "row4":[ - { - "id":"k32", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k33", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k34", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k35", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k36", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k37", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k38", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k39", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k3A", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ], - "rightShift":[ - [ - { - "id":"k3B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k3C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275" - }, - { - "id":"k3D", - "value":"NO", - "type":"nodisplay" - } - ], - [ - { - "id":"k3B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k3C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k175" - }, - { - "id":"k3D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ], - [ - { - "id":"k3B", - "value":"TRNS", - "type":"normal", - "secondary":"RSFT", - "showMenu":false, - "shape":"k175" - }, - { - "id":"k3C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k3D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ] - ], - "row5":[ - [ - { - "id":"k40", - "value":"TRNS", - "type":"normal", - "secondary":"MEH", - "showMenu":false, - "shape":"k125" - }, - { - "id":"k41", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k42", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - } - ], - [ - { - "id":"k40", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - }, - { - "id":"k41", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k42", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - } - ] - ], - "space":[ - [ - [ - { - "id":"k44", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k45", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k625" - }, - { - "id":"k46", - "value":"NO", - "type":"nodisplay" - } - ], - [ - { - "id":"k44", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275" - }, - { - "id":"k45", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k46", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k225" - } - ], - [ - { - "id":"k44", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k225" - }, - { - "id":"k45", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k46", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275" - } - ] - ], - [ - [ - { - "id":"k44", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k45", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k700" - }, - { - "id":"k46", - "value":"NO", - "type":"nodisplay" - } - ], - [ - { - "id":"k44", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275" - }, - { - "id":"k45", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - }, - { - "id":"k46", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275" - } - ] - ] - ], - "bottomRight":[ - [ - [ - { - "id":"k48", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k49", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k4A", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k4B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k4C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - } - ], - [ - { - "id":"k48", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k49", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4A", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ] - ], - [ - [ - { - "id":"k48", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k49", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - }, - { - "id":"k4A", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k4B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - } - ], - [ - { - "id":"k48", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k49", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4A", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ] - ] - ] - }, - { - "row1":[ - { - "id":"k00", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k01", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k02", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k03", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k04", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k05", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k06", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k07", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k08", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k09", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k0A", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k0B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k0C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ], - "backspace":[ - [ - { - "id":"k0D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k200" - }, - { - "id":"k2D", - "value":"NO", - "type":"nodisplay", - "showMenu":false - } - ], - [ - { - "id":"k0D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k2D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ] - ], - "row2":[ - { - "id":"k10", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - }, - { - "id":"k11", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k12", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k13", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k14", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k15", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k16", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k17", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k18", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k19", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k1A", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k1B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k1C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ], - "row2pipe":[ - [ - { - "id":"k1D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - } - ], - [ - { - "id":"k1D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"kISO" - } - ] - ], - "caps":[ - [ - { - "id":"k20", - "value":"TRNS", - "type":"normal", - "secondary":"LCTL", - "showMenu":false, - "shape":"k175" - } - ], - [ - { - "id":"k20", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k175stepped" - } - ] - ], - "row3":[ - { - "id":"k21", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k22", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k23", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k24", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k25", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k26", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k27", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k28", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k29", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k2A", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k2B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ], - "enter":[ - [ - { - "id":"k2C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k225" - } - ], - [ - { - "id":"k2C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ] - ], - "leftShift":[ - [ - { - "id":"k30", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k225" - }, - { - "id":"k31", - "value":"NO", - "type":"nodisplay", - "showMenu":false - } - ], - [ - { - "id":"k30", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k31", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ] - ], - "row4":[ - { - "id":"k32", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k33", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k34", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k35", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k36", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k37", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k38", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k39", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k3A", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ], - "rightShift":[ - [ - { - "id":"k3B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k3C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275" - }, - { - "id":"k3D", - "value":"NO", - "type":"nodisplay" - } - ], - [ - { - "id":"k3B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k3C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k175" - }, - { - "id":"k3D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ], - [ - { - "id":"k3B", - "value":"TRNS", - "type":"normal", - "secondary":"RSFT", - "showMenu":false, - "shape":"k175" - }, - { - "id":"k3C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k3D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ] - ], - "row5":[ - [ - { - "id":"k40", - "value":"TRNS", - "type":"normal", - "secondary":"MEH", - "showMenu":false, - "shape":"k125" - }, - { - "id":"k41", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k42", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - } - ], - [ - { - "id":"k40", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - }, - { - "id":"k41", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k42", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - } - ] - ], - "space":[ - [ - [ - { - "id":"k44", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k45", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k625" - }, - { - "id":"k46", - "value":"NO", - "type":"nodisplay" - } - ], - [ - { - "id":"k44", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275" - }, - { - "id":"k45", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k46", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k225" - } - ], - [ - { - "id":"k44", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k225" - }, - { - "id":"k45", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k46", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275" - } - ] - ], - [ - [ - { - "id":"k44", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k45", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k700" - }, - { - "id":"k46", - "value":"NO", - "type":"nodisplay" - } - ], - [ - { - "id":"k44", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275" - }, - { - "id":"k45", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - }, - { - "id":"k46", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275" - } - ] - ] - ], - "bottomRight":[ - [ - [ - { - "id":"k48", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k49", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k4A", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k4B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k4C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - } - ], - [ - { - "id":"k48", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k49", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4A", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ] - ], - [ - [ - { - "id":"k48", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k49", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - }, - { - "id":"k4A", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k4B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - } - ], - [ - { - "id":"k48", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k49", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4A", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ] - ] - ] - }, - { - "row1":[ - { - "id":"k00", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k01", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k02", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k03", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k04", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k05", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k06", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k07", - "value":"PSLS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k08", - "value":"PAST", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k09", - "value":"PEQL", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k0A", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k0B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k0C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ], - "backspace":[ - [ - { - "id":"k0D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k200" - }, - { - "id":"k2D", - "value":"NO", - "type":"nodisplay", - "showMenu":false - } - ], - [ - { - "id":"k0D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k2D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ] - ], - "row2":[ - { - "id":"k10", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - }, - { - "id":"k11", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k12", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k13", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k14", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k15", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k16", - "value":"P7", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k17", - "value":"P8", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k18", - "value":"P8", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k19", - "value":"PMNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k1A", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k1B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k1C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ], - "row2pipe":[ - [ - { - "id":"k1D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - } - ], - [ - { - "id":"k1D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"kISO" - } - ] - ], - "caps":[ - [ - { - "id":"k20", - "value":"TRNS", - "type":"normal", - "secondary":"LCTL", - "showMenu":false, - "shape":"k175" - } - ], - [ - { - "id":"k20", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k175stepped" - } - ] - ], - "row3":[ - { - "id":"k21", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k22", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k23", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k24", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k25", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k26", - "value":"P4", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k27", - "value":"P5", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k28", - "value":"P6", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k29", - "value":"PPLS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k2A", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k2B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ], - "enter":[ - [ - { - "id":"k2C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k225" - } - ], - [ - { - "id":"k2C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ] - ], - "leftShift":[ - [ - { - "id":"k30", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k225" - }, - { - "id":"k31", - "value":"NO", - "type":"nodisplay", - "showMenu":false - } - ], - [ - { - "id":"k30", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k31", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ] - ], - "row4":[ - { - "id":"k32", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k33", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k34", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k35", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k36", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k37", - "value":"P1", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k38", - "value":"P2", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k39", - "value":"P3", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k3A", - "value":"PDOT", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ], - "rightShift":[ - [ - { - "id":"k3B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k3C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275" - }, - { - "id":"k3D", - "value":"NO", - "type":"nodisplay" - } - ], - [ - { - "id":"k3B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k3C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k175" - }, - { - "id":"k3D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ], - [ - { - "id":"k3B", - "value":"PENT", - "type":"normal", - "secondary":"RSFT", - "showMenu":false, - "shape":"k175" - }, - { - "id":"k3C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k3D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ] - ], - "row5":[ - [ - { - "id":"k40", - "value":"TRNS", - "type":"normal", - "secondary":"MEH", - "showMenu":false, - "shape":"k125" - }, - { - "id":"k41", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k42", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - } - ], - [ - { - "id":"k40", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - }, - { - "id":"k41", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k42", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - } - ] - ], - "space":[ - [ - [ - { - "id":"k44", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k45", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k625" - }, - { - "id":"k46", - "value":"NO", - "type":"nodisplay" - } - ], - [ - { - "id":"k44", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275" - }, - { - "id":"k45", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k46", - "value":"P0", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k225" - } - ], - [ - { - "id":"k44", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k225" - }, - { - "id":"k45", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k46", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275" - } - ] - ], - [ - [ - { - "id":"k44", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k45", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k700" - }, - { - "id":"k46", - "value":"NO", - "type":"nodisplay" - } - ], - [ - { - "id":"k44", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275" - }, - { - "id":"k45", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - }, - { - "id":"k46", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275" - } - ] - ] - ], - "bottomRight":[ - [ - [ - { - "id":"k48", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k49", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k4A", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k4B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k4C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - } - ], - [ - { - "id":"k48", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k49", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4A", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ] - ], - [ - [ - { - "id":"k48", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k49", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - }, - { - "id":"k4A", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k4B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - } - ], - [ - { - "id":"k48", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k49", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4A", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ] - ] - ] - }, - { - "row1":[ - { - "id":"k00", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k01", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k02", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k03", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k04", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k05", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k06", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k07", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k08", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k09", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k0A", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k0B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k0C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ], - "backspace":[ - [ - { - "id":"k0D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k200" - }, - { - "id":"k2D", - "value":"NO", - "type":"nodisplay", - "showMenu":false - } - ], - [ - { - "id":"k0D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k2D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ] - ], - "row2":[ - { - "id":"k10", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - }, - { - "id":"k11", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k12", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k13", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k14", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k15", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k16", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k17", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k18", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k19", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k1A", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k1B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k1C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ], - "row2pipe":[ - [ - { - "id":"k1D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - } - ], - [ - { - "id":"k1D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"kISO" - } - ] - ], - "caps":[ - [ - { - "id":"k20", - "value":"TRNS", - "type":"normal", - "secondary":"LCTL", - "showMenu":false, - "shape":"k175" - } - ], - [ - { - "id":"k20", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k175stepped" - } - ] - ], - "row3":[ - { - "id":"k21", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k22", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k23", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k24", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k25", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k26", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k27", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k28", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k29", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k2A", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k2B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ], - "enter":[ - [ - { - "id":"k2C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k225" - } - ], - [ - { - "id":"k2C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ] - ], - "leftShift":[ - [ - { - "id":"k30", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k225" - }, - { - "id":"k31", - "value":"NO", - "type":"nodisplay", - "showMenu":false - } - ], - [ - { - "id":"k30", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k31", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ] - ], - "row4":[ - { - "id":"k32", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k33", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k34", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k35", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k36", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k37", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k38", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k39", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k3A", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ], - "rightShift":[ - [ - { - "id":"k3B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k3C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275" - }, - { - "id":"k3D", - "value":"NO", - "type":"nodisplay" - } - ], - [ - { - "id":"k3B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k3C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k175" - }, - { - "id":"k3D", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ], - [ - { - "id":"k3B", - "value":"TRNS", - "type":"normal", - "secondary":"RSFT", - "showMenu":false, - "shape":"k175" - }, - { - "id":"k3C", - "value":"HOME", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k3D", - "value":"PGUP", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ] - ], - "row5":[ - [ - { - "id":"k40", - "value":"TRNS", - "type":"normal", - "secondary":"MEH", - "showMenu":false, - "shape":"k125" - }, - { - "id":"k41", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k42", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - } - ], - [ - { - "id":"k40", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - }, - { - "id":"k41", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k42", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - } - ] - ], - "space":[ - [ - [ - { - "id":"k44", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k45", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k625" - }, - { - "id":"k46", - "value":"NO", - "type":"nodisplay" - } - ], - [ - { - "id":"k44", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275" - }, - { - "id":"k45", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k46", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k225" - } - ], - [ - { - "id":"k44", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k225" - }, - { - "id":"k45", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k46", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275" - } - ] - ], - [ - [ - { - "id":"k44", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k45", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k700" - }, - { - "id":"k46", - "value":"NO", - "type":"nodisplay" - } - ], - [ - { - "id":"k44", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275" - }, - { - "id":"k45", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - }, - { - "id":"k46", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k275" - } - ] - ] - ], - "bottomRight":[ - [ - [ - { - "id":"k48", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k49", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k4A", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k4B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - }, - { - "id":"k4C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k125" - } - ], - [ - { - "id":"k48", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k49", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4A", - "value":"DEL", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4B", - "value":"HOME", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4C", - "value":"PGDN", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ] - ], - [ - [ - { - "id":"k48", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k49", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - }, - { - "id":"k4A", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k4B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k150" - } - ], - [ - { - "id":"k48", - "value":"NO", - "type":"nodisplay" - }, - { - "id":"k49", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4A", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4B", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - }, - { - "id":"k4C", - "value":"TRNS", - "type":"normal", - "secondary":null, - "showMenu":false, - "shape":"k100" - } - ] - ] - ] - } - ], - "layoutName":"twschum_DZ60_b_4_10_v1.2", - "timestamp":1525116588644 -} diff --git a/keyboards/dz60/keymaps/twschum_b_4_10/rules.mk b/keyboards/dz60/keymaps/twschum_b_4_10/rules.mk deleted file mode 100644 index 932a64748d..0000000000 --- a/keyboards/dz60/keymaps/twschum_b_4_10/rules.mk +++ /dev/null @@ -1,15 +0,0 @@ -# Build Options -# override the options specified in dz60/rules.mk -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE = yes # USB Nkey Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -KEY_LOCK_ENABLE = yes - -# Enables including users/twschum/twschum.h -USER_NAME := twschum diff --git a/keyboards/dz60/keymaps/xtonhasvim/config.h b/keyboards/dz60/keymaps/xtonhasvim/config.h deleted file mode 100644 index b1f549e0ba..0000000000 --- a/keyboards/dz60/keymaps/xtonhasvim/config.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef CONFIG_KEYMAP_H -#define CONFIG_KEYMAP_H - -#include "../../config.h" - -// help for fast typist+dual function keys? -#define PERMISSIVE_HOLD - -/* speed up mousekeys a bit */ -#define MOUSEKEY_DELAY 50 -#define MOUSEKEY_INTERVAL 20 -#define MOUSEKEY_MAX_SPEED 8 -#define MOUSEKEY_TIME_TO_MAX 30 -#define MOUSEKEY_WHEEL_MAX_SPEED 8 -#define MOUSEKEY_WHEEL_TIME_TO_MAX 40 - -#endif diff --git a/keyboards/dz60/keymaps/xtonhasvim/keymap.c b/keyboards/dz60/keymaps/xtonhasvim/keymap.c deleted file mode 100644 index 997ae91547..0000000000 --- a/keyboards/dz60/keymaps/xtonhasvim/keymap.c +++ /dev/null @@ -1,87 +0,0 @@ -#include QMK_KEYBOARD_H -#include "xtonhasvim.h" - -enum layers { - _QWERTY, - _FUN, - _MOVE, - _MOUSE, - _CMD -}; - -extern uint8_t vim_cmd_layer(void) { return _CMD; } - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_QWERTY] = LAYOUT( - KC_GRV, 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_NO, KC_BSPC, - 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, - LCTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(_MOVE,KC_SCLN), KC_QUOT, KC_ENT, - KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, - LSFT(KC_LALT), KC_LALT, KC_LGUI, VIM_START, TG(_MOUSE), KC_SPC, KC_RGUI, KC_RALT, X_____X, KC_RCTL, MO(_FUN)), - - [_FUN] = 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_DEL, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, QK_BOOT, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, BL_DOWN,BL_TOGG, BL_UP, BL_STEP, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(_QWERTY)), - - [_MOVE] = LAYOUT( - X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, - X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, KC_HOME, KC_PGDN, KC_PGUP, KC_END, X_____X, X_____X, X_____X, X_____X, - X_____X, X_____X, LGUI(KC_LBRC), LGUI(LSFT(KC_LBRC)), LGUI(LSFT(KC_RBRC)), LGUI(KC_RBRC), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, X_____X, X_____X, X_____X, - _______, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(_QWERTY)), - - - [_MOUSE] = LAYOUT( - X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, - X_____X, X_____X, X_____X, KC_MS_UP, X_____X, X_____X, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_UP, KC_MS_WH_RIGHT, X_____X, X_____X, X_____X, X_____X, - X_____X, X_____X,KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, X_____X, X_____X, KC_MS_BTN1, KC_MS_BTN2, KC_MS_BTN3, X_____X, X_____X, X_____X, - _______, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(_QWERTY)), - - [_CMD] = LAYOUT( - X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, - X_____X, X_____X, VIM_W, VIM_E, X_____X, X_____X, VIM_Y, VIM_U, VIM_I, VIM_O, VIM_P, X_____X, X_____X, X_____X, - VIM_ESC, VIM_A, VIM_S, VIM_D, X_____X, VIM_G, VIM_H, VIM_J, VIM_K, VIM_L, X_____X, X_____X, X_____X, - VIM_SHIFT, X_____X, X_____X, VIM_X, VIM_C, VIM_V, VIM_B, X_____X, X_____X, VIM_COMMA, VIM_PERIOD, X_____X, VIM_SHIFT,X_____X, - _______, _______, _______, TO(_QWERTY), X_____X, X_____X, _______, _______, _______, _______, TO(_QWERTY)), - -}; - -#define LED_BIT 1 << 2 -#define LED_MASK ~(1 << 2) - -void user_led_on(void) { - DDRB |= LED_BIT; - PORTB &= LED_MASK; -} - -void user_led_off(void) { - DDRB &= ~LED_BIT; - PORTB &= LED_MASK; -} - -void matrix_init_user(void) { - user_led_off(); -} - -layer_state_t layer_state_set_user(layer_state_t state) { - static uint32_t last_state = 0; - - if(last_state != state) { - switch (get_highest_layer(state)) { - case _CMD: - user_led_on(); - break; - default: - user_led_off(); - break; - } - last_state = state; - } - return state; -} diff --git a/keyboards/dz60/keymaps/xtonhasvim/readme.md b/keyboards/dz60/keymaps/xtonhasvim/readme.md deleted file mode 100644 index 5d0e38a3eb..0000000000 --- a/keyboards/dz60/keymaps/xtonhasvim/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# Xton has a DZ60 and it's Vimtastic! - -Mine has a split spacebar, no arrowkeys and an opaque case. Changes from the default layout: - -* Vim mode toggled by hitting left spacebar (see `users/xtonhasvim`). Reusing the capslock LED to indicate VIM is on. -* Momentary directional control by holding down `;`. -* Mousekeys toggled with middle space button. -* Escape is dual-function with control (which replaces capslock AS IT SHOULD BE). -* Bottom left key is the "halp my kb doesn't work" key that always dumps you back to QWERTY. - diff --git a/keyboards/dztech/dz60rgb/keymaps/moults31/keymap.c b/keyboards/dztech/dz60rgb/keymaps/moults31/keymap.c deleted file mode 100644 index a659770f82..0000000000 --- a/keyboards/dztech/dz60rgb/keymaps/moults31/keymap.c +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2021 moults31 - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - QK_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_BSPC, - 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, - CTL_T(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_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_DOT, KC_SLSH, KC_RSHFT, KC_UP, LT(2, KC_DEL), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_COMM, MO(1), 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_DEL, - _______, _______, KC_UP, _______, _______, _______, KC_CALC, _______, KC_INS, _______, KC_PSCR, KC_HOME, KC_END, QK_BOOT, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, EE_CLR, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, KC_MPLY, KC_VOLU, KC_MUTE, - _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT - ), - [2] = LAYOUT( - RGB_MOD, 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_DEL, - _______, _______, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, QK_BOOT, - _______, RGB_SAD, RGB_HUD, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_VAI, _______, - _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_VAD, RGB_SPD - ), -}; diff --git a/keyboards/dztech/dz60rgb/keymaps/moults31/readme.md b/keyboards/dztech/dz60rgb/keymaps/moults31/readme.md deleted file mode 100644 index 19bccf13e6..0000000000 --- a/keyboards/dztech/dz60rgb/keymaps/moults31/readme.md +++ /dev/null @@ -1,11 +0,0 @@ -# moults31 DZ60RBG V2 Layout - -Similar to the default dz60rgb v2 layout with some minor changes for quality of life in programming. - -Brief summary of improvements over default: -* More intuitive media keys in layer 1 -* More intuitive RGB control keys in layer 2 -* Standard left-alt -* Anne Pro 2 style home/end placement in layer 1 -* Grave key moved to right-alt position for easier ctrl-grave vscode shortcut -* Removed layer 4 (mac layout?) diff --git a/keyboards/dztech/dz60rgb/keymaps/moults31/rules.mk b/keyboards/dztech/dz60rgb/keymaps/moults31/rules.mk deleted file mode 100644 index 1e5b99807c..0000000000 --- a/keyboards/dztech/dz60rgb/keymaps/moults31/rules.mk +++ /dev/null @@ -1 +0,0 @@ -VIA_ENABLE = yes diff --git a/keyboards/dztech/dz60rgb_ansi/keymaps/badger/keymap.c b/keyboards/dztech/dz60rgb_ansi/keymaps/badger/keymap.c deleted file mode 100644 index 3de7e1c194..0000000000 --- a/keyboards/dztech/dz60rgb_ansi/keymaps/badger/keymap.c +++ /dev/null @@ -1,60 +0,0 @@ -/* -Copyright 2020 Dan White - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#include "badger.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY_MAC] = LAYOUT_60_ansi( - KC_GRV, 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_BSPC, - 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, - MOVE_MAC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, ADJUST, KC_RGUI, KC_RALT, MAC_POP), - - [_MOVE_MAC] = LAYOUT_60_ansi( - MAC_FRC, MM_LEFT, MM_RGHT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_0, IJ_TOP, IJ_BOTT, KC_DEL, - KC_BACK, IJ_STEP, IJ_INTO, IJ_OUT, IJ_RUN, IJ_STOP, _______, WD_BACK, KC_HOME, KC_END, WD_FRWD, IJ_BACK, IJ_FWD, KC_NEXT, - _______, MM_LH, MM_MAX, MM_RH, IJ_FIND, IJ_IMPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CM_RIGHT, CM_DOWN, _______, - _______, MM_UH, MM_BH, MAC_CPY, MAC_PST, IJ_IMPH, _______, IJ_REN, IJ_IMPL, IJ_DECL, IJ_USAG, _______, - _______, _______, _______, _______, _______, _______, _______, _______), - - [_QWERTY_LINUX] = LAYOUT_60_ansi( - KC_GRV, 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_BSPC, - 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, - MOVE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, ADJUST, KC_LALT, KC_RGUI, KC_RCTL), - - [_MOVE_LINUX] = LAYOUT_60_ansi( - KC_GRV, VD_1, VD_2, VD_3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - KC_BACK, WM_VD1, WM_UH, WM_VD2, QK_BOOT, KC_MSTP, KC_MPLY, KC_PGUP, KC_HOME, KC_END, KC_PGDN, _______, _______, KC_NEXT, - _______, WM_LH, WM_MAX, WM_RH, WD_FRWD, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CS_RIGHT, CS_DOWN, _______, - _______, WM_VD3, WM_BH, OS_COPY, OS_PAST, WD_BACK, KC_MNXT, KC_MUTE, KC_WBAK, KC_WFWD, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______), - - [_ADJUST] = LAYOUT_60_ansi( - KC_ESC, 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_DEL, - _______, _______, _______, _______, KC_WREF, KC_MSTP, KC_MPLY, KC_PGUP, _______, _______, KC_PGDN, KC_VOLD, KC_VOLU, KC_INS, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, DF_1, DF_2, KC_CAPS, _______, KC_MPRV, KC_MNXT, KC_MUTE, KC_WBAK, KC_WFWD, KC_WSCH, _______, - _______, _______, _______, _______, _______, _______, _______, MO(_CONFIG)), - - [_CONFIG] = LAYOUT_60_ansi( - _______, 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_DEL, - _______, NK_ON, NK_OFF, EE_CLR, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, - _______, GE_SWAP, GE_NORM, DB_TOGG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_SPI, RGB_M_B, _______, _______, RGB_TOG, _______, - _______, LAG_SWP, LAG_NRM, _______, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_SPD, RGB_M_K, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______) -}; - diff --git a/keyboards/dztech/dz65rgb/keymaps/haervig/keymap.c b/keyboards/dztech/dz65rgb/keymaps/haervig/keymap.c deleted file mode 100644 index f2ccd311e8..0000000000 --- a/keyboards/dztech/dz65rgb/keymaps/haervig/keymap.c +++ /dev/null @@ -1,36 +0,0 @@ -/* -Copyright 2021 Jakob Hærvig - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H -#include "haervig.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_65_ansi( - QK_GESC, DK_1, CU_2, DK_3, CU_4, DK_5, CU_6, CU_7, CU_8, CU_9, CU_0, CU_MINS, CU_EQL, CU_BSPC, KC_HOME, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, CU_LBRC, CU_RBRC, CU_BSLS, KC_PGUP, - CTL_T(KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, CU_SCLN, CU_QUOT, KC_ENT, KC_PGDN, - CU_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, CU_COMM, CU_DOT, CU_SLSH, CU_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, MO(1), KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_65_ansi( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; diff --git a/keyboards/dztech/dz65rgb/keymaps/haervig/rules.mk b/keyboards/dztech/dz65rgb/keymaps/haervig/rules.mk deleted file mode 100644 index 676050bfce..0000000000 --- a/keyboards/dztech/dz65rgb/keymaps/haervig/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -# Userspace defines -DANISH_ENABLE = yes # Enable Custom US Ansi Keycodes for PC with Danish set as input language -RGB_MATRIX_ENABLE = no # Disable the ugly RGB light \ No newline at end of file diff --git a/keyboards/eco/keymaps/bcat/config.h b/keyboards/eco/keymaps/bcat/config.h deleted file mode 100644 index 1a3fd81199..0000000000 --- a/keyboards/eco/keymaps/bcat/config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright 2020 Jonathan Rascher - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define BCAT_ORTHO_LAYERS - -/* WS2812B RGB LED strip hand wired to Elite-C. */ -#define WS2812_DI_PIN B7 -#define RGBLED_NUM 15 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/eco/keymaps/bcat/keymap.c b/keyboards/eco/keymaps/bcat/keymap.c deleted file mode 100644 index 610610f5a5..0000000000 --- a/keyboards/eco/keymaps/bcat/keymap.c +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright 2020 Jonathan Rascher - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -#include "bcat.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // clang-format off - /* Default layer: http://www.keyboard-layout-editor.com/#/gists/2c11371c7a5f7cd08a0132631d3d3281 */ - [LAYER_DEFAULT] = LAYOUT( - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - XXXXXXX, XXXXXXX, KC_LALT, KC_LCTL, LY_LWR, KC_SPC, XXXXXXX, XXXXXXX, KC_ENT, LY_RSE, KC_RALT, KC_RGUI, XXXXXXX, XXXXXXX - ), - /* Lower layer: http://www.keyboard-layout-editor.com/#/gists/11256970dc0552886a82382ee02fa415 */ - [LAYER_LOWER] = LAYOUT( - MC_ALTT, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, - KY_CSPC, KY_ZMRST, KY_ZMOUT, KY_ZMIN, KC_WBAK, KC_WFWD, _______, _______, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TILD, - _______, KC_APP, KC_PSCR, KC_SCRL, KC_PAUS, KC_LGUI, _______, _______, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_GRV, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - /* Raise layer: http://www.keyboard-layout-editor.com/#/gists/308a8be75e0b85902dc18db1b2546862 */ - [LAYER_RAISE] = LAYOUT( - KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______, - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_F11, KC_DEL, - _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_F12, KC_INS, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - /* Adjust layer: http://www.keyboard-layout-editor.com/#/gists/b18aafa0327d7e83eaf485546c067a21 */ - [LAYER_ADJUST] = LAYOUT( - _______, _______, KC_MPLY, KC_VOLU, KC_MSTP, _______, _______, _______, EE_CLR, QK_BOOT, _______, _______, _______, _______, - _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_VAI, RGB_MOD, RGB_SPI, _______, - _______, _______, _______, KC_MUTE, _______, _______, _______, _______, RGB_HUI, RGB_SAD, RGB_SAI, RGB_HUD, RGB_SPD, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______ - ), - // clang-format on -}; diff --git a/keyboards/eco/keymaps/bcat/readme.md b/keyboards/eco/keymaps/bcat/readme.md deleted file mode 100644 index fd9e1bea73..0000000000 --- a/keyboards/eco/keymaps/bcat/readme.md +++ /dev/null @@ -1,44 +0,0 @@ -# bcat's Eco layout - -This is a cute little 4x14 ortholinear keyboard. I've set it up using an -unsplit, ortho version of my [split 3x6 + 3 thumb -keys](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/split_3x6_3/bcat) -(Crkbd) layout, with the following changes: - -* The alpha keys are separated by an extra two columns in the middle to provide -a little more hand separation, similar to a split keyboard. - -* The top three rows of the extra middle columns feature navigation keys and -brackets/braces. I don't really use dedicated keys for these, but I had the -keycaps, so I figured I may as well put them there. - -* I have a Left Alt and Right Super key on the bottom row just like my -[Lily58](https://github.com/qmk/qmk_firmware/tree/master/keyboards/lily58/keymaps/bcat). - -* The two keys in each bottom corner are unbound, as is the 2U spacebar in the -center of the bottom row. These keys are too inconvenient to reach, and there's -nothing really useful to bind them to anyway. - -## Default layer - -![Default layer layout](https://i.imgur.com/uRUT2cY.png) - -([KLE](http://www.keyboard-layout-editor.com/#/gists/2c11371c7a5f7cd08a0132631d3d3281)) - -## Lower layer - -![Lower layer layout](https://i.imgur.com/8SR0M9x.png) - -([KLE](http://www.keyboard-layout-editor.com/#/gists/11256970dc0552886a82382ee02fa415)) - -## Raise layer - -![Raise layer layout](https://i.imgur.com/U7KERR3.png) - -([KLE](http://www.keyboard-layout-editor.com/#/gists/308a8be75e0b85902dc18db1b2546862)) - -## Adjust layer - -![Adjust layer layout](https://i.imgur.com/63vm0ke.png) - -([KLE](http://www.keyboard-layout-editor.com/#/gists/b18aafa0327d7e83eaf485546c067a21)) diff --git a/keyboards/eco/keymaps/bcat/rules.mk b/keyboards/eco/keymaps/bcat/rules.mk deleted file mode 100644 index 684d8e4e85..0000000000 --- a/keyboards/eco/keymaps/bcat/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -BOOTLOADER = atmel-dfu # Elite-C - -RGBLIGHT_ENABLE = yes diff --git a/keyboards/ein_60/keymaps/klackygears/config.h b/keyboards/ein_60/keymaps/klackygears/config.h deleted file mode 100644 index 91c51cb51c..0000000000 --- a/keyboards/ein_60/keymaps/klackygears/config.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright 2021 klackygears - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - - - -#define PERMISSIVE_HOLD -#define TAPPING_TERM 150 - - -#ifdef RGB_MATRIX_ENABLE - #define RGB_MATRIX_KEYPRESSES -#endif diff --git a/keyboards/ein_60/keymaps/klackygears/keymap.c b/keyboards/ein_60/keymaps/klackygears/keymap.c deleted file mode 100644 index ab5a31ee9f..0000000000 --- a/keyboards/ein_60/keymaps/klackygears/keymap.c +++ /dev/null @@ -1,175 +0,0 @@ -/* Copyright 2020 klackygears - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H -#include "klackygears.h" -#include "stdio.h" - -//For an explanation of what's going on here with the keymap wrappers, check out drashna's user folder. -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_WINBASE] = LAYOUT_wrapper( - KC_ESC, _______________DVORAK_L1___________________, KC_MUTE, _______________DVORAK_R1___________________, KC_BSPC, - AU_TOGG, _______________DVORAK_L2___________________, _______________DVORAK_R2___________________, RGB_TOG, - CK_TOGG, _______________WINDVK_L3___________________, _______________WINDVK_R3___________________, RGB_MOD, - KC_1, KC_2, KC_3, ________WIN_THUMB_L______, KC_SPC, ________WIN_THUMB_R______, KC_1, KC_2, KC_GAMER - ), - [_MACBASE] = LAYOUT_wrapper( - KC_ESC, _______________DVORAK_L1___________________, _______, _______________DVORAK_R1___________________, KC_BSPC, - RGB_TOG, _______________DVORAK_L2___________________, _______________DVORAK_R2___________________, RGB_TOG, - RGB_MOD, _______________MACDVK_L3___________________, _______________MACDVK_R3___________________, RGB_MOD, - _______, _______, _______, ________MAC_THUMB_L______, _______, ________MAC_THUMB_R______, _______, _______, _______ - ), - [_QWERTY] = LAYOUT_wrapper( - KC_ESC, _________________COLEMAK_L1________________, KC_ESC, _________________QWERTY_R1_________________, KC_BSPC, - KC_CAPS, _________________COLEMAK_L2________________, _________________QWERTY_R2_________________, KC_ENT, - KC_LSFT, _________________COLEMAK_L3________________, _________________QWERTY_R3_________________, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, _______, MO(_MNMB), MO(_SYMB), KC_SPC, MO(_SYMB), MO(_MNMB), KC_RGUI,_______, MO(_MDIA), MO(_FUNC) - ), - - //Borderlands - [_GAMER] = LAYOUT_wrapper( - KC_ESC, KC_R, KC_G, KC_W, KC_E, KC_1, _______, _________________RGB_1_____________________, KC_WINBASE, - KC_TAB, KC_V, KC_A, KC_S, KC_D, KC_2, _________________RGB_2_____________________, _______, - KC_C, KC_I, KC_F, KC_Q, KC_4, KC_3, _________________MEDIA_____________________, _______, - KC_Z, KC_X, KC_K, KC_LCTL, KC_LSFT, KC_SPC, KC_SPC, KC_F12, KC_P, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT - ), - - [_SYMB] = LAYOUT_wrapper( - _______, _________________PUNC_L1_ALT_______________, _______, _________________PUNC_R1___________________, _______, - _______, _________________PUNC_L3___________________, _________________PUNC_R2___________________, _______, - RGB_MOD, _________________PUNC_L3_ALT_______________, _________________PUNC_R3___________________, _______, - _______, _______, KC_NUM, KC_SCRL, KC_DEL, _______, _______, _______, KC_CAPS, _______, _______, _______, _______ - ), - - [_FUNC] = LAYOUT_wrapper( - _______, _____________FUNC_L1_______________________, _______, _______, _____________FUNC_1_______________, _______, - _______, ________MAC_MISSION_CTRL__________, LGUI(KC_L), _______, _____________FUNC_2_______________, _______, - RGB_MOD, _____________FUNC_L3_______________________, _______, _____________FUNC_3_______________, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_CAPS, _______, _______, _______, _______ - ), - - [_MNMB] = LAYOUT_wrapper( - _______, _________________MACNAV_L1_________________, _______, _________________NUMB_R1___________________, _______, - _______, _________________MACNAV_L2_________________, _________________NUMB_R2___________________, _______, - RGB_MOD, _________________MACNAV_L3_________________, _________________NUMB_R3_MAC_______________, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RSFT_T(KC_ENT), KC_RSFT, _______, _______, _______ - ), - - - [_NUMB] = LAYOUT_wrapper( - _______, _________________WINNAV_L1_________________, _______, _________________NUMB_R1___________________, _______, - _______, _________________WINNAV_L2_________________, _________________NUMB_R2___________________, _______, - RGB_MOD, _________________WINNAV_L3_________________, _________________NUMB_R3_WIN_______________, _______, - _______, _______, _______, TO(_WINBASE), _______, _______, _______, _______, RSFT_T(KC_ENT), KC_RSFT, _______, _______, _______ - ), - - [_MDIA] = LAYOUT_wrapper( - _______, _________________LYOUT_____________________, _______, _________________RGB_1_____________________, RGB_TOG, - _______, MU_TOGG, _______, _______, _______, CK_UP, _________________RGB_2_____________________, _______, - RGB_MOD, MU_NEXT, MU_TOGG, CK_TOGG, CK_RST, CK_DOWN, _________________MEDIA_____________________, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) - -}; - - -#ifdef OLED_ENABLE - - char wpm_str[10]; - -static void render_ein60_logo(void) { - static const char PROGMEM ein60_logo[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 11,251,139,139,139,139,139,139,139,139,139,139,139, 11, 15, 0,240,240, 16,240, 0,240,240, 16,240,224,192,128, 0, 0, 0, 0,240, 16,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,255, 11,251,139,139,139,139,139,139,139,139,139,139,139,143,128, 0, 0, 0, 0,254,255, 11,251, 11, 11, 11, 11,139,203,235,123,187,219,235,251,255, 7,252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 4,253,197,197,197,197,197,197,197,197,197,197,199,192,192, 0,255,255, 0,255, 0,255,255, 0,254, 13, 27, 55,111,222,188,120,255, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 0,255,197,197,197,197,197,197,197,197,197,197,253,253,255,131,254, 0, 0,255,255, 0,255,184,220,238,247,219,205,198,195,193,192,255,255,255,128,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 0, 3, 3, 2, 3, 0, 3, 3, 2, 3, 0, 0, 0, 0, 0, 1, 3, 2, 2, 3, 0, 8, 28, 20, 20, 20, 20, 20, 28, 8, 0, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 0, 0, 0, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }; - oled_write_raw_P(ein60_logo, sizeof(ein60_logo)); - } - - - -static void render_status(void) { -//bool oled_task_user(void) { - - // Host Keyboard Layer Status - oled_write_P(PSTR("Layer: "), false); - switch (get_highest_layer(layer_state)) { - case _WINBASE: - oled_write_P(PSTR("Base\n"), false); - break; - case _SYMB: - oled_write_P(PSTR("Symbol\n"), false); - break; - case _FUNC: - oled_write_P(PSTR("FN\n"), false); - break; - case _MNMB: - oled_write_P(PSTR("Numbpad Mac\n"), false); - break; - case _NUMB: - oled_write_P(PSTR("Numbpad\n"), false); - break; - case _MDIA: - oled_write_P(PSTR("Media\n"), false); - break; - default: - // Or use the write_ln shortcut over adding '\n' to the end of your string - oled_write_ln_P(PSTR("Undefined"), false); - } - - // Host Keyboard LED Status - led_t led_state = host_keyboard_led_state(); - oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); - oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); - oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); - - - sprintf(wpm_str, "WPM: %03d", get_current_wpm()); - oled_set_cursor(1,2); - oled_write(wpm_str, false); - -} - -bool oled_task_user(void) { - - render_status(); - oled_write_ln_P(PSTR(""), false); - render_ein60_logo(); - - return false; -} - -#endif - - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { /* First encoder */ - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } else if (index == 1) { /* Second encoder */ - if (clockwise) { - tap_code(KC_DOWN); - } else { - tap_code(KC_UP); - } - } - return true; -} diff --git a/keyboards/ein_60/keymaps/klackygears/readme.md b/keyboards/ein_60/keymaps/klackygears/readme.md deleted file mode 100644 index f97a08bd09..0000000000 --- a/keyboards/ein_60/keymaps/klackygears/readme.md +++ /dev/null @@ -1 +0,0 @@ -This is the klackygears userspace keymap for EIN_60. My userspace is heavily based on Drashna's userspace and draws a lot of features from him. diff --git a/keyboards/ein_60/keymaps/klackygears/rules.mk b/keyboards/ein_60/keymaps/klackygears/rules.mk deleted file mode 100644 index 885ab5bafe..0000000000 --- a/keyboards/ein_60/keymaps/klackygears/rules.mk +++ /dev/null @@ -1,8 +0,0 @@ - -# Build Options -# change yes to no to disable -ENCODER_ENABLE = yes # Enables the use of one or more encoders -WPM_ENABLE = yes # Enables the WPM counter on the OLED -RGB_MATRIX_ENABLE = yes # Enable for pretty RGB matrix effects -AUDIO_ENABLE = yes -TAP_DANCE_ENABLE = yes diff --git a/keyboards/ergodox_ez/keymaps/danielo515/config.h b/keyboards/ergodox_ez/keymaps/danielo515/config.h deleted file mode 100644 index 7428cccc82..0000000000 --- a/keyboards/ergodox_ez/keymaps/danielo515/config.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - Set any config.h overrides for your specific keymap here. - See config.h options at https://docs.qmk.fm/#/config_options?id=the-configh-file -*/ -#pragma once - -#define TAPPING_TERM 200 - -#define ONESHOT_TAP_TOGGLE 3 - -#define RGBLIGHT_SLEEP - -#undef MOUSEKEY_TIME_TO_MAX -#define MOUSEKEY_TIME_TO_MAX 50 - -#undef MOUSEKEY_WHEEL_TIME_TO_MAX -#define MOUSEKEY_WHEEL_TIME_TO_MAX 60 - -#undef DEBOUNCE -#define DEBOUNCE 45 -// Memory saving -#ifdef CONSOLE_ENABLE -# define NO_DEBUG -# define NO_PRINT -#endif - -#define NO_ACTION_MACRO -#define NO_ACTION_FUNCTION - -#undef RGBLIGHT_EFFECT_BREATHING -#undef RGBLIGHT_EFFECT_RAINBOW_MOOD -#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL -#undef RGBLIGHT_EFFECT_SNAKE -#undef RGBLIGHT_EFFECT_KNIGHT -#undef RGBLIGHT_EFFECT_CHRISTMAS -#undef RGBLIGHT_EFFECT_STATIC_GRADIENT -#undef RGBLIGHT_EFFECT_RGB_TEST -#undef RGBLIGHT_EFFECT_ALTERNATING -#undef RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/ergodox_ez/keymaps/danielo515/keymap.c b/keyboards/ergodox_ez/keymaps/danielo515/keymap.c deleted file mode 100644 index 281ac956e0..0000000000 --- a/keyboards/ergodox_ez/keymaps/danielo515/keymap.c +++ /dev/null @@ -1,326 +0,0 @@ -#include QMK_KEYBOARD_H -#include "version.h" -#include "danielo515.h" - -/* STUPID JS code to split by ergodox rows. Call the format function with the unformatted array -sliceBy = groups => items => groups.reduce(({start, acc},size) => ({ - acc: (acc.push(items.slice(start,start+size)),acc ), - start: start + size -}), {acc:[],start:0}).acc -findMaxLen = items => items.reduce((max,curr) => max < curr.length ? curr.length : max,0) -setLen = len => strings => strings.map(str => str.padEnd(len, " ")); -const format = string => { - const items = string.split(/,\s*(?![^()]*\))/) - const group = sliceBy([7,7,6,7,5,2,1,3]) - const resize = setLen(findMaxLen(items)); - const joinstr = ',\n' - const leftItems = group(items.slice(0,items.length/2)) - const rightItems = group(items.slice(items.length/2)) - const [left,right] = [leftItems.map(resize).join(joinstr),rightItems.map(resize).join(joinstr)] - return `\n${left},\n\n${right}\n` -} -*/ - -#define OSM_SF_CMD OSM(MOD_LGUI | MOD_LSFT) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT_ergodox( - KC_EQL ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,OSM(MOD_HYPR) , - KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,TD(PASTE_DANCE) , - KC_DELETE ,KC_A ,LT(3,KC_S) ,LT(2,KC_D) ,LT(4,KC_F) ,KC_G , - KC_GRAVE ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,TD(COPY_CUT) , - KC_BSLS ,OSM(MOD_LCTL) ,OSM(MOD_LALT) ,KC_LEFT ,KC_RIGHT , - OSM_SF_CMD ,KC_PLUS , - KC_INSERT , - OSM(MOD_LSFT) ,LT(2,KC_BSPC) ,OSM(MOD_LGUI) , - - - TO(1) ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,LT(3,KC_0) ,KC_DQUO , - KC_UNDS ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,RSFT_T(KC_MINUS) , - HYPR_H ,ALT_J ,CTL_K ,LT(6,KC_L) ,TD_CLN ,CMD_QUOT , - ALT_TAB ,KC_N ,MEH_T(KC_M) ,KC_COMMA ,KC_DOT ,KC_SLASH ,LT(4,KC_KP_ASTERISK), - LT(4,KC_ENTER) ,KC_DOWN ,KC_LBRC ,KC_RBRC ,OSL(2) , - KC_AUDIO_MUTE ,KC_ESCAPE , - KC_END , - KC_COLN ,QK_LEAD ,LT(4,KC_SPACE) - ), - - [1] = LAYOUT_ergodox( - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,AC_E ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - LT(5, KC_DELETE),AC_A ,KC_TRANSPARENT ,KC_TRANSPARENT ,FIND ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT , - OSM(MOD_LSFT) ,KC_TRANSPARENT ,KC_TRANSPARENT , - TO(8) ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_ENTER ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT), - - [2] = LAYOUT_ergodox( - KC_TRANSPARENT,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_TRANSPARENT, - KC_TRANSPARENT,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_PIPE ,KC_CALCULATOR , - KC_TRANSPARENT,KC_HASH ,KC_DLR ,KC_TRANSPARENT,KC_RPRN ,KC_GRAVE , - KC_TRANSPARENT,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,KC_TRANSPARENT, - KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT, - KC_TRANSPARENT,KC_TRANSPARENT, - RGB_HUI , - KC_TRANSPARENT,KC_TRANSPARENT,RGB_HUD , - KC_DELETE ,KC_A ,KC_B ,KC_C ,KC_D ,KC_E ,KC_BSPC , - KC_ENTER ,KC_F ,KC_7 ,KC_8 ,KC_9 ,KC_PERC ,KC_TRANSPARENT, - KC_HASH ,KC_4 ,KC_5 ,KC_6 ,KC_PLUS ,KC_KP_ASTERISK, - KC_KP_ENTER ,KC_COLON ,KC_1 ,KC_2 ,KC_3 ,KC_SLASH ,KC_BSLS , - KC_0 ,KC_COMMA ,KC_DOT ,KC_EQUAL ,KC_TRANSPARENT, - RGB_TOG ,RGB_SLD , - RGB_VAI , - RGB_VAD ,KC_BSPC ,KC_SPACE - ), - - [3] = LAYOUT_ergodox( - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_LABK ,KC_RABK ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_AT ,KC_TRANSPARENT ,KC_EQL ,F_ARROW ,KC_GRAVE , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_LBRC ,KC_RBRC ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,IARROW ,ARROW , - KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT , - // Right hand - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - LALT(LSFT(KC_UP)) ,KC_HASH ,KC_LCBR ,KC_RCBR ,KC_KP_ASTERISK ,KC_PERC ,KC_DLR , - KC_AMPR ,KC_LPRN ,KC_RPRN ,CLN_EQ ,KC_KP_PLUS ,KC_PIPE , - LALT(LSFT(KC_DOWN)),KC_EXLM ,KC_TILD ,KC_CIRC ,ARROW ,KC_BSLS ,KC_BSLS , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - QK_BOOT ,KC_TRANSPARENT , - KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_SPACE -), - - [4] = LAYOUT_ergodox( - KC_TRANSPARENT ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_TRANSPARENT , - KC_TRANSPARENT ,LCTL(KC_Q) ,LCTL(KC_DOWN) ,LGUI(KC_DOWN) ,WIN_LEFT_HALF ,WIN_RIGHT_HALF ,LALT(LSFT(KC_UP)) , - LCTL(LSFT(KC_P)) ,LCTL(KC_A) ,SAVE ,LCTL(KC_D) ,KC_TRANSPARENT ,RGUI(KC_R) , - LCTL(LSFT(KC_F)) ,UNDO ,CUT ,KC_PSCR ,KC_TRANSPARENT ,LGUI(KC_RIGHT) ,LALT(LSFT(KC_DOWN)), - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - - LALT(KC_F4) ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_F11 , - LALT(KC_UP) ,LSFT(KC_HOME) ,LSFT(KC_LEFT) ,KC_UP ,LSFT(KC_RIGHT) ,LSFT(KC_END) ,KC_F13 , - KC_HOME ,KC_LEFT ,KC_DOWN ,KC_RIGHT ,KC_END ,KC_F12 , - LALT(KC_DOWN) ,LSFT(KC_INSERT) ,LCTL(LSFT(KC_J)) ,LSFT(KC_UP) ,KC_PGUP ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,LSFT(KC_DOWN) ,KC_PGDN ,WIN_TO_LEFT ,WIN_TO_RIGHT , - KC_TRANSPARENT ,KC_SYSTEM_SLEEP , - KC_TRANSPARENT , - KC_TRANSPARENT ,KC_BSPC ,KC_TRANSPARENT - ), - - [5] = LAYOUT_ergodox( - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,LCTL(KC_TAB) ,LCTL(LSFT(KC_TAB)) ,LGUI(KC_D) ,LCTL(KC_F) ,KC_TRANSPARENT , - LGUI(KC_L) ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,LSFT(KC_F9) ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,LCTL(LGUI(KC_LEFT)) ,LCTL(LGUI(KC_RIGHT)),KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,LCTL(KC_T) ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT -), - - [6] = LAYOUT_ergodox( - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_MS_ACCEL2 ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_MS_WH_DOWN ,KC_MS_UP ,KC_MS_WH_UP ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_MS_LEFT ,KC_MS_DOWN ,KC_MS_RIGHT ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_MS_BTN3 ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT , - KC_MS_BTN1 ,KC_MS_BTN2 ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_PGUP ,LCTL(LGUI(KC_RIGHT)),KC_MS_WH_UP ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT , - LGUI(RCTL(KC_LEFT)) ,KC_MS_WH_DOWN ,LCTL(KC_C) ,KC_TRANSPARENT ,KC_MEDIA_STOP ,KC_MEDIA_PLAY_PAUSE , - KC_PGDN ,LCTL(LSFT(KC_N)) ,LCTL(LSFT(KC_J)) ,KC_MEDIA_PREV_TRACK ,KC_MEDIA_NEXT_TRACK ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_AUDIO_VOL_UP ,KC_AUDIO_VOL_DOWN ,KC_AUDIO_MUTE ,KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT , - KC_TRANSPARENT , - KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT - ), - - [7] = LAYOUT_ergodox( - KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT, - KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT, - KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT, - KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT, - KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT, - KC_TRANSPARENT,KC_TRANSPARENT, - KC_TRANSPARENT, - KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT, - - KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT, - KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_UP ,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT, - KC_TRANSPARENT,KC_LEFT ,KC_DOWN ,KC_RIGHT ,KC_TRANSPARENT,KC_TRANSPARENT, - KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT, - KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT, - KC_TRANSPARENT,KC_TRANSPARENT, - KC_TRANSPARENT, - KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT - ), - - [8] = LAYOUT_ergodox( - KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT, - KC_TRANSPARENT,KC_Q ,KC_W ,KC_E ,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT, - KC_ENTER ,KC_A ,KC_S ,KC_D ,KC_F ,KC_TRANSPARENT, - KC_TRANSPARENT,KC_Z ,KC_X ,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT, - KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT, - KC_TRANSPARENT,KC_TRANSPARENT, - KC_TRANSPARENT, - KC_SPACE ,KC_LSFT ,KC_TRANSPARENT, - - TO(0) ,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT, - KC_PGDN ,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT, - KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT, - KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT, - KC_ENTER ,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT, - KC_TRANSPARENT,KC_TRANSPARENT, - KC_TRANSPARENT, - KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT - ), -}; -// Used for blinking leds on layers higher than 7 -uint16_t blink_timer = 0; -uint16_t blink_elapsed = 0; -bool blink_led_1 = false; -bool blink_led_2 = false; -bool blink_led_3 = false; - -void matrix_scan_kb(void){ - // first 7 layers do not need to blink - if(blink_led_1 || blink_led_2 || blink_led_3){ - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - blink_elapsed = timer_elapsed(blink_timer); - if(blink_elapsed > 2000) { blink_timer = timer_read();} - if(blink_elapsed < 1000) { - if(blink_led_1) ergodox_right_led_1_on(); - if(blink_led_2) ergodox_right_led_2_on(); - if(blink_led_3) ergodox_right_led_3_on(); - } - } - matrix_scan_user(); -}; - -layer_state_t layer_state_set_user(layer_state_t state) -{ - - uint8_t layer = get_highest_layer(state); - - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - blink_led_1=false; - blink_led_2=false; - blink_led_3=false; - - switch (layer) - { - case 0: - rgblight_setrgb(0, 200, 200); - break; - case 1: - ergodox_right_led_1_on(); - rgblight_setrgb(0, 200, 0); // green - break; - case 2: - ergodox_right_led_2_on(); - rgblight_setrgb(0, 0, 255); - break; - case 3: - ergodox_right_led_3_on(); - rgblight_setrgb(255, 0, 0); - break; - case 4: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - rgblight_setrgb(200, 65, 0); - break; - case 5: - ergodox_right_led_1_on(); - ergodox_right_led_3_on(); - rgblight_setrgb(0, 80, 33); - break; - case 6: - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - rgblight_setrgb(0, 10, 200); - break; - case 7: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - rgblight_setrgb(90, 150, 90); - break; - case 8: - blink_led_1=true; - rgblight_setrgb(100, 0, 100); - break; - case 9: - rgblight_setrgb(200, 150, 90); - break; -// default: -// rgblight_setrgb(0, 200, 200); -// break; - } - return state; -}; - -// use leds to indicate when a one shot mod is on -void oneshot_mods_changed_user(uint8_t mods) { - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - // One shot checks - if (mods & MOD_MASK_SHIFT) { - ergodox_right_led_1_on(); - } - if (mods & MOD_MASK_CTRL) { - ergodox_right_led_2_on(); - } - if (mods & MOD_MASK_ALT) { - ergodox_right_led_3_on(); - } - // if (mods & MOD_MASK_GUI) { - // println("Oneshot mods GUI"); - // } - } - -void oneshot_locked_mods_changed_user(uint8_t mods) { - oneshot_mods_changed_user(mods); -} - -//=============== alt_tab callbacks -void alt_tab_activated(void){ - layer_on(7); // activate motion layer -} -void alt_tab_deactivated(void){ - layer_off(7); // activate motion layer -} diff --git a/keyboards/ergodox_ez/keymaps/danielo515/rules.mk b/keyboards/ergodox_ez/keymaps/danielo515/rules.mk deleted file mode 100644 index 99ab4f0e18..0000000000 --- a/keyboards/ergodox_ez/keymaps/danielo515/rules.mk +++ /dev/null @@ -1,9 +0,0 @@ -# Set any rules.mk overrides for your specific keymap here. -# See rules at https://docs.qmk.fm/#/config_options?id=the-rulesmk-file -LTO_ENABLE = yes -AUTO_SHIFT_ENABLE = no -TAP_DANCE_ENABLE = yes # Enable the tap dance feature. -LEADER_ENABLE = yes -CONSOLE_ENABLE = no -RGBLIGHT_ENABLE = yes -COMBO_ENABLE = yes diff --git a/keyboards/ergodox_ez/keymaps/dvorak_42_key/README.md b/keyboards/ergodox_ez/keymaps/dvorak_42_key/README.md deleted file mode 100644 index 5730a61051..0000000000 --- a/keyboards/ergodox_ez/keymaps/dvorak_42_key/README.md +++ /dev/null @@ -1,19 +0,0 @@ -Overview -======== - -This is a dvorak based layout for the Ergodox EZ. Its basic key layout is similar to the Atreus "dvorak_42_key" layout. In fact this layout was created for seamless switching between the Ergodox EZ and Atreus. On the base layer, the keys that don't exist on the Atreus are mapped to MEH shortcuts and can be interpreted by Autohotkey. This layout only makes use of the 42 keys that the Atreus also has for the main functionality. - -How to build ------------- -make ergodox_ez:dvorak_42_key:teensy - -Layers ------- -* BASE: basic dvorak layout -* KEYNAV: arrow-key navigation. Momentary toggle held by thumb allows the right hand to navigate through text as well as copy/paste/cut, page up/page down -* KEYSEL: similar to KEYNAV, except for shift-selection -* COMBINED: this is a layer that combines numbers, brackets and special characters. !@#$%^&*( can be typed by shift+COMBINED+1/2/3/etc.. -* BROWSER_CONTROL: primarily browser left/right tab, open new tab/delete tab, but also mouse keys. -* SHELL_NAV: Linux Bash shortcuts (move forward/backward in command line, Ctrl+C, recall last argument, etc -* SHELL_SCREEN: Linux screen (run multiple terminals in one window) shortcuts such as open new tabs, switch between tabs -* SCREEN_NAV: special layer for copy/pasting within Linux screen, allows using various copy/paste buffers \ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c b/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c deleted file mode 100644 index f8fce23ce5..0000000000 --- a/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c +++ /dev/null @@ -1,340 +0,0 @@ -// Copyright 2022 LucW (@luc-languagetools) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H -#include "debug.h" -#include "action_layer.h" -#include "version.h" -#include "dvorak_42_key.h" - - -// to build this keymap -// make ergodox_ez:dvorak_42_key:teensy -// or: -// qmk compile -kb ergodox_ez -km dvorak_42_key -// flashing from rpi: -// sudo teensy_loader_cli -v -w .build/ergodox_ez_dvorak_42_key.hex --mcu atmega32u4 - -// keeping fork up to date: -// https://help.github.com/articles/configuring-a-remote-for-a-fork/ -// https://help.github.com/articles/syncing-a-fork/ -// pushing dev branch -// git push origin dev:dev - -// debounce settings -// remove these after getting a new keyboard -// #define DEBOUNCE 50 - - - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [BASE] = LAYOUT_ergodox( - // left hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - OSL(VSCODE), KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, KC_TRNS, - OSL(SHELL_NAV), KC_A, KC_O, KC_E, KC_U, KC_I, - OSL(SHELL_SCREEN), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, MO(VSCODE), - MEH(KC_0), OSM(MOD_LSFT), OSM(MOD_LCTL), MO(KEYSEL), MO(BROWSER_CONTROL), - - // left thumb cluster - KC_TRNS,KC_TRNS, - KC_TRNS, - MO(COMBINED),MO(KEYNAV), KC_TRNS, - - // right hand - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MEH(KC_7), - MEH(KC_1), KC_F, KC_G, KC_C, KC_R, KC_L, KC_TAB, - KC_D, KC_H, KC_T, KC_N, KC_S, RCTL(KC_BSPC), - MEH(KC_2), KC_B, KC_M, KC_W, KC_V, KC_Z, MEH(KC_8), - KC_BSPC, RCTL(KC_BSPC), KC_CAPS, OSM(MOD_LSFT),MEH(KC_9), - - // right thumb cluster - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_ENTER, KC_SPACE - - ), - - [KEYNAV] = LAYOUT_ergodox( - // left hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_ESC, RCTL(KC_ENTER), RCTL(KC_K), RCTL(KC_Z), RCTL(KC_S), RCTL(KC_N), KC_TRNS, - KC_TRNS, MO(KEYSEL), KC_TRNS, RSFT(KC_TAB), KC_TAB, RCTL(KC_F), - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NP_DUPE_LINE, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - // left thumb cluster - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - - - // right hand - KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MEH(KC_G), - KC_TRNS,KC_NO, KC_HOME, KC_UP, KC_END, KC_PGUP, MEH(KC_H), - LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), MEH(KC_I), - KC_TRNS,KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_PGDN, MEH(KC_J), - KC_BSPC, RCTL(KC_BSPC), KC_DELETE, LCTL(KC_DELETE), MEH(KC_K), - - // right thumb cluster - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS - ), - - // key selection layer - [KEYSEL] = LAYOUT_ergodox( - // left hand - 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_TRNS, KC_TRNS, - // bottom row - QK_BOOT,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - // thumb cluster - KC_TRNS,KC_TRNS, - KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS, - // right hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, RSFT(KC_HOME), RSFT(KC_UP), RSFT(KC_END), RSFT(KC_PGUP), KC_TRNS, - RSFT(RCTL(KC_LEFT)), RSFT(KC_LEFT), RSFT(KC_DOWN), RSFT(KC_RIGHT), RSFT(RCTL(KC_RIGHT)), KC_TRNS, - KC_TRNS, KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), RSFT(KC_PGDN), KC_TRNS, - // bottom row - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - // thumb cluster - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS - ), - - // shell navigation layer - [SHELL_NAV] = LAYOUT_ergodox( - // left hand - KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS,SHELL_GIT_DIFF, SHELL_PGREP, SHELL_PLESS, SHELL_LESS, KC_TRNS, KC_TRNS, - KC_TRNS,SHELL_GIT_STATUS, SHELL_CDPRE, SHELL_LSLTR, SHELL_LS, SHELL_LSLA, - KC_TRNS,SHELL_SCREEN_LIST, SHELL_SCREENRD, SHELL_SCREEN_NEW, SHELL_TAILF, KC_TRNS, KC_TRNS, - // bottom row - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - // thumb cluster - KC_TRNS,KC_TRNS, - KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS, - // right hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RCTL(KC_D), KC_HOME, KC_UP, KC_END, RCTL(KC_L), RCTL(KC_X), - LALT(KC_B), KC_LEFT, KC_DOWN, KC_RIGHT, LALT(KC_F), RCTL(KC_W), - KC_TRNS, RCTL(KC_U), LALT(KC_DOT), RCTL(KC_R), KC_BTN2, RCTL(KC_K), RCTL(KC_C), - // bottom row - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - // thumb cluster - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS - ), - - - // linux screen layer - [SHELL_SCREEN] = LAYOUT_ergodox( - // left hand - KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS,KC_TRNS, SCREEN_READREG_3, SCREEN_READREG_2, SCREEN_READREG_1, KC_TRNS, KC_TRNS, - KC_TRNS,KC_TRNS, SCREEN_PASTEREG_3, SCREEN_PASTEREG_2, SCREEN_PASTEREG_1, SCREEN_DETACH, - KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - // bottom row - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - // thumb cluster - KC_TRNS,KC_TRNS, - KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS, - // right hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, SCREEN_7, SCREEN_8, SCREEN_9, SCREEN_RENAME, KC_TRNS, - SCREEN_TAB_LEFT, SCREEN_4, SCREEN_5, SCREEN_6, SCREEN_TAB_RIGHT, SCREEN_COPY_MODE, - KC_TRNS, KC_TRNS, SCREEN_1, SCREEN_2, SCREEN_3, SCREEN_NUMBER, SCREEN_PASTE, - // bottom row - SCREEN_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - // thumb cluster - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, SCREEN_KILL, SCREEN_NEW_TAB - ), - - // android studio shortcuts - [ANDROID_STUDIO] = LAYOUT_ergodox( - // left hand - KC_NO, 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_TRNS, - // bottom row - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - // thumb cluster - KC_TRNS,KC_TRNS, - KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS, - // right hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - AS_CMT_LINE, AS_COPYLINEDOWN, AS_FINDUSAGE, AS_GO_DECLARATION, AS_GO_IMPLEMENTATION, AS_LINE, AS_BRACKET, - AS_CLOSETAB, AS_TABLEFT, AS_TABRIGHT, AS_SYMBOL, AS_CLASS, AS_BACK, - AS_CMT_BLOCK, KC_TRNS, AS_BM_PREV, AS_BM_NEXT, KC_TRNS, AS_CLOSETOOLWINDOW, AS_BM_TOGGLE, - // bottom row - KC_TRNS, AS_BM_LIST, KC_TRNS, KC_TRNS, KC_TRNS, - // thumb cluster - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, AS_DEL_LINE, KC_TRNS - ), - - // vscode shortcuts shortcuts - [VSCODE] = LAYOUT_ergodox( - // left hand - KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, VS_CMT_BLOCK, VS_CMT_LINE, VS_BM_LISTALL, KC_TRNS, - KC_TRNS, KC_TRNS, VS_TOGGLE_TERMINAL, VS_FOCUS_TERMINAL, VS_FOCUS_EDITOR, VS_BM_LIST, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, VS_BM_CLEARALL, KC_TRNS, - // bottom row - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - // thumb cluster - KC_TRNS,KC_TRNS, - KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS, - // right hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, VS_COPYLINEDOWN, VS_REFERENCES, VS_DEFINITION, VS_IMPLEMENTATION, VS_LINE, VS_BRACKET, - VS_CLOSETAB, VS_TABLEFT, VS_TABRIGHT, VS_SYMBOLEDITOR, VS_FILE, VS_BACK, - KC_TRNS, VS_JUMPY, VS_BM_PREV, VS_BM_NEXT, VS_GROUP_1, VS_GROUP_2, VS_BM_TOGGLE, - // bottom row - VS_COMMANDS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - // thumb cluster - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, VS_DEL_LINE, KC_TRNS - ), - - - [COMBINED] = LAYOUT_ergodox( - - // left hand - KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS,KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, - KC_TRNS,KC_LPRN, KC_RPRN, KC_LBRC, KC_RBRC, KC_UNDS, - KC_TRNS,KC_COLN, KC_DQUO, KC_LCBR, KC_RCBR, KC_AMPR, KC_TRNS, - // bottom row - KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - // thumb cluster - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - - // right hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_PLUS, KC_7, KC_8, KC_9, KC_ASTR, KC_PIPE, - KC_MINS, KC_4, KC_5, KC_6, KC_SLSH, KC_BSLS, - KC_TRNS, KC_EQUAL, KC_1, KC_2, KC_3, KC_QUES, KC_DOT, - // bottom row - KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - // thumb cluster - KC_TRNS,KC_TRNS, - KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS), - - - [BROWSER_CONTROL] = LAYOUT_ergodox( - // left hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_BTN3, KC_MS_U, KC_BTN1, KC_BTN2, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, WINDOWS10_WORKSPACE_LEFT, WINDOWS10_WORKSPACE_RIGHT, WINDOWS10_TASK_VIEW, KC_TRNS, - // bottom row - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_UP, KC_PGUP, KC_PGDN, KC_MS_WH_UP, KC_TRNS, KC_TRNS, - KC_DOWN, RCTL(KC_PGUP), RCTL(KC_PGDN),KC_MS_WH_DOWN, LALT(KC_LEFT), KC_TRNS, - KC_TRNS, KC_TRNS, RCTL(KC_1), RCTL(KC_9), KC_F6, KC_F5, KC_TRNS, - // bottom row - RCTL(LSFT(KC_TAB)), RCTL(KC_TAB), KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, RCTL(KC_W), RCTL(KC_T) - ), - - - // shortcuts to be intercepted by autohotkey - [SHORTCUTS] = LAYOUT_ergodox( - // left hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - KC_TRNS, OSM(MOD_LSFT), OSM(MOD_LGUI), OSM(MOD_LALT), OSM(MOD_LCTL), KC_TRNS, KC_TRNS, - // bottom row - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - // thumb cluster - KC_TRNS,KC_TRNS, - KC_TRNS, - KC_TRNS,DF(BASE),KC_TRNS, - // right hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, - KC_TRNS, MEH(KC_I), MEH(KC_J), MEH(KC_K), MEH(KC_L), MEH(KC_M), MEH(KC_N), - MEH(KC_O), MEH(KC_P), MEH(KC_Q), MEH(KC_R), MEH(KC_S), MEH(KC_T), - KC_TRNS, MEH(KC_U), MEH(KC_V), MEH(KC_W), MEH(KC_X), MEH(KC_Y), MEH(KC_Z), - // bottom row - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - // thumb cluster - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS - ), - - -}; - - - - - -bool led_update_user(led_t led_state) { - if (led_state.caps_lock) { - ergodox_right_led_1_on(); - } else { - ergodox_right_led_1_off(); - } - return false; -} - - -void matrix_scan_user(void) { - - uint8_t layer = get_highest_layer(layer_state); - - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - switch (layer) { - case COMBINED: - ergodox_right_led_2_on(); - break; - case SHELL_NAV: - case SHELL_SCREEN: - case KEYNAV: - case KEYSEL: - case VSCODE: - ergodox_right_led_3_on(); - break; - case BROWSER_CONTROL: - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - break; - case SHORTCUTS: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - break; - default: - break; - } - -}; diff --git a/keyboards/ergodox_ez/keymaps/ericgebhart/keymap.c b/keyboards/ergodox_ez/keymaps/ericgebhart/keymap.c deleted file mode 100644 index c534fe3c6d..0000000000 --- a/keyboards/ergodox_ez/keymaps/ericgebhart/keymap.c +++ /dev/null @@ -1,18 +0,0 @@ -/* - Copyright 2018-2022 Eric Gebhart - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -// See: users/ericgebhart. diff --git a/keyboards/ergodox_ez/keymaps/ericgebhart/readme.md b/keyboards/ergodox_ez/keymaps/ericgebhart/readme.md deleted file mode 100644 index 4f71bf39ee..0000000000 --- a/keyboards/ergodox_ez/keymaps/ericgebhart/readme.md +++ /dev/null @@ -1,5 +0,0 @@ -Overview -======== - -These are my ergodox_ez keymaps. There isn't much here. Go take a look at my Userspace readme. -That's where all the code is. diff --git a/keyboards/ergodox_ez/keymaps/pvinis/keymap.c b/keyboards/ergodox_ez/keymaps/pvinis/keymap.c deleted file mode 100644 index b99b2c7ffc..0000000000 --- a/keyboards/ergodox_ez/keymaps/pvinis/keymap.c +++ /dev/null @@ -1,333 +0,0 @@ -// pvinis ergodox ez -// ,------------------------------------. ┌────┬────┬────┬────┬────┬────┬──────┐ -// | | | | | | | | │ │ │ │ │ │ │ │ -// |------+----+----+----+----+---------| ├────┼────┼────┼────┼────┼────┼──────┤ -// | | | | | | | | │ │ │ │ │ │ │ │ -// |------+----+----+----x----x----| | │ ├────╆━━━━╅────┼────┼────┼──────┤ -// | | | | | | |----| ├────┤ ┃ ┃ │ │ │ │ -// |------+----+----+----x----x----| | │ ├────╄━━━━╃────┼────┼────┼──────┤ -// | | | | | | | | │ │ │ │ │ │ │ │ -// `------+----+----+----+----+---------' └────┴────┼────┼────┼────┼────┼────┬─┘ -// | | | | | | │ │ │ │ │ │ -// `------------------------' └────┴────┴────┴────┴────┘ -// ,---------. ┌────┬────┐ -// | | | │ │ │ -// ,----+----+----| ├────┼────┼────┐ -// | | | | │ │ │ │ -// | | |----| ├────┤ │ │ -// | | | | │ │ │ │ -// `--------------' └────┴────┴────┘ - -#include QMK_KEYBOARD_H -#include "pvinis.h" - -// layers -enum { - MOUSE = 8, -}; - -// extra keys -enum { - NONE = 30, - TD_LAYR, // SYSCTL and MOUSE layer switch -}; - -// application selection -// this is sending ctrl-alt-gui-, and this is picked up by hammerspoon -#define AP_SLCK ALLM(KC_S) -#define AP_XCOD ALLM(KC_X) -#define AP_MSGR ALLM(KC_M) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // ,------------------------------------. ,------------------------------------. - // |4xFLSH| | | | | |Opt | | | | | | | | | - // |------+----+----+----+----+---------| |----+----+----+----+----+----+------| - // | Tab | | | | | | | | | | | | | | | - // |------+----+----+----x----x----| | | |----x----x----+----+----+------| - // |EscCtl| | | | | |----| |----| | | | | | Ent | - // |------+----+----+----x----x----| | | |----x----x----+----+----+------| - // |LShift| | | | | | | | | | | | | |RShift| - // `------+----+----+----+----+---------' `---------+----+----+----+----+------' - // | | | |Cmd |LOWR| |RASE|RAlt| | | | - // `------------------------' `------------------------' - // ,---------. ,---------. - // |QWER| | | | | - // ,----+----+----| |----+----+----. - // | Ba | L | | | | | | - // | ck |Shi |----| |----| |Spc | - // | spc| ft | | | | | | - // `--------------' `--------------' - [LR_BASE] = LAYOUT_ergodox_pretty_wrapper( - // clang-format off - TD_3FLS, _______, _______, _______, _______, _______, KC_LALT, _______, _______, _______, _______, _______, _______, _______, - KC_TAB , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - PV_ESCC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT , - KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT, - _______, _______, _______, KC_LGUI, SYMBOL , SYSCTL , KC_RALT, _______, _______, _______, - QWERTY , CARPALX, _______, _______, - _______, _______, - KC_BSPC, _______, _______, _______, _______, KC_SPC - // clang-format on - ), - - // ,------------------------------------. ,------------------------------------. - // | | NUMBERS_L | | | - | NUMBERS_R | = | - // |------+----+----+----+----+---------| |----+----+----+----+----+----+------| - // | | | [ | | ] | | | - // |------+ | | | | +------| - // | | QWERTY_L |----| |----| QWERTY_R | | - // |------+ | ( | | ) | +------| - // | | | | | | | | - // `------+----+----+----+----+---------' `---------+----+----+----+----+------' - // | | ` | | | | | | | | ' | | - // `------------------------' `------------------------' - // ,---------. ,---------. - // | | | | | | - // ,----+----+----| |----+----+----. - // | | | | | | | | - // | | |----| |----| | | - // | | | | | | | | - // `--------------' `--------------' - // See `users/pvinis/pvinis.h` - [LR_QWERTY] = LAYOUT_ergodox_pretty_wrapper( - // clang-format off - _______, ________________NUMBERS_L__________________, _______, KC_MINS, ________________NUMBERS_R__________________, KC_EQL , - _______, _________________QWERTY_L1_________________, KC_LBRC, KC_RBRC, _________________QWERTY_R1_________________, _______, - _______, _____________MOD_QWERTY_L2_________________, _____________MOD_QWERTY_R2_________________, _______, - _______, _________________QWERTY_L3_________________, KC_LPRN, KC_RPRN, _________________QWERTY_R3_________________, _______, - _______, KC_GRV, _______, _______, _______, _______, _______, _______, KC_QUOT , _______, - _______, _______, _______, _______, - _______, _______, - _______, _______, _______, _______, _______, _______ - // clang-format off - ), - - // ,------------------------------------. ,------------------------------------. - // | | NUMBERS_L | | | | NUMBERS_R | | - // |------+----+----+----+----+---------| |----+----+----+----+----+----+------| - // | | | | | | | | - // |------+ | | | | +------| - // | | CARPALX_L |----| |----| CARPALX_R | | - // |------+ | | | | +------| - // | | | | | | | | - // `------+----+----+----+----+---------' `---------+----+----+----+----+------' - // | | | | | | | | | | | | - // `------------------------' `------------------------' - // ,---------. ,---------. - // | | | | | | - // ,----+----+----| |----+----+----. - // | | | | | | | | - // | | |----| |----| | | - // | | | | | | | | - // `--------------' `--------------' - // See `users/pvinis/pvinis.h` - [LR_CARPALX] = LAYOUT_ergodox_pretty_wrapper( - // clang-format off - _______, ________________NUMBERS_L__________________, _______, _______, ________________NUMBERS_R__________________, _______, - _______, ________________CARPALX_L1_________________, _______, _______, ________________CARPALX_R1_________________, _______, - _______, ________________CARPALX_L2_________________, ________________CARPALX_R2_________________, _______, - _______, ________________CARPALX_L3_________________, _______, _______, ________________CARPALX_R3_________________, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, - _______, _______, - _______, _______, _______, _______, _______, _______ - // clang-format on - ), - - // See `users/pvinis/pvinis.h` - [LR_SYMBOL] = LAYOUT_ergodox_pretty_wrapper( - // clang-format off - _______, ______________________F_L__________________, KC_F11 , KC_F12 , ______________________F_R__________________, _______, - _______, _________________SYMBOL_L1_________________, _______, _______, _________________SYMBOL_R1_________________, _______, - _______, _________________SYMBOL_L2_________________, _________________SYMBOL_R2_________________, _______, - _______, _________________SYMBOL_L3_________________, _______, _______, _________________SYMBOL_R3_________________, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, - _______, _______, - _______, _______, _______, _______, _______, _______ - // clang-format off - ), - - // See `users/pvinis/pvinis.h` - [LR_SYSCTL] = LAYOUT_ergodox_pretty_wrapper( - // clang-format off - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _________________SYSCTL_R1_________________, _______, - _______, _______, _______, _______, _______, _______, _________________SYSCTL_R2_________________, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _________________SYSCTL_R3_________________, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - - _______, _______, _______, _______, - _______, _______, - _______, _______, _______, _______, _______, _______ - // clang-format on - ), - - // See `users/pvinis/pvinis.h` - [LR_KBCTL] = LAYOUT_ergodox_pretty_wrapper( - // clang-format off - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, __________________KBCTL_R1_________________, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, __________________KBCTL_R2_________________, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, __________________KBCTL_R3_________________, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX - // clang-format on - ), - - /* MOUSE - * a keymap to control my system. - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ^ | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | | | MsUp | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------| |MsLeft| MsDn |MsRght| | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | |MidClk| - * ,------|------|------| |------+------+------. - * | | | | | |Left |Right | - * | | |------| |------| Click| Click| - * | | | ^ | | | | | - * `--------------------' `--------------------' - */ - [MOUSE] = LAYOUT_ergodox_pretty( - // clang-format off - KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - - ,KC_NO ,KC_NO - ,KC_NO - ,KC_NO ,KC_NO ,KC_TRNS - - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_MS_U ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - - ,KC_NO ,KC_NO - ,KC_NO - ,KC_NO ,KC_NO ,KC_NO - // clang-format on - ), -}; - -// keyboard initialization -void keyboard_post_init_user_keymap(void) { - ergodox_led_all_on(); - for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) { - ergodox_led_all_set(i); - wait_ms(5); - } - wait_ms(1000); - for (int i = LED_BRIGHTNESS_LO; i > 0; i--) { - ergodox_led_all_set(i); - wait_ms(10); - } - ergodox_led_all_off(); - - // restore default brightness for future use - ergodox_led_all_set(LED_BRIGHTNESS_HI); -} - -// light up leds based on the layer -layer_state_t layer_state_set_user_keymap(layer_state_t state) { - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - switch (get_highest_layer(state)) { - case LR_SYSCTL: - ergodox_right_led_3_on(); // blue - break; - case LR_KBCTL: - ergodox_right_led_1_on(); // red - break; - case LR_SYMBOL: - ergodox_right_led_2_on(); // green - break; - default: - break; - } - return state; -} - -// tap dances - -// flash keyboard on 4x tap, with leds -// void flash_each_tap(tap_dance_state_t *state, void *user_data) { -// switch (state->count) { -// case 1: -// ergodox_right_led_3_on(); -// break; -// case 2: -// ergodox_right_led_2_on(); -// break; -// case 3: -// ergodox_right_led_1_on(); -// break; -// case 4: -// ergodox_right_led_3_off(); -// wait_ms(50); -// ergodox_right_led_2_off(); -// wait_ms(50); -// ergodox_right_led_1_off(); -// break; -// } -// } - -// void flash_dance_finished(tap_dance_state_t *state, void *user_data) { -// if (state->count >= 4) { -// reset_keyboard(); -// reset_tap_dance(state); -// } -// } - -// void flash_dance_reset(tap_dance_state_t *state, void *user_data) { -// ergodox_right_led_1_off(); -// wait_ms(50); -// ergodox_right_led_2_off(); -// wait_ms(50); -// ergodox_right_led_3_off(); -// } - -// SYSCTL on first tap, MOUSE ON second tap -// void layers_dance_finished(tap_dance_state_t *state, void *user_data) { -// uint8_t layer = get_highest_layer(layer_state); - -// switch(state->count) { -// case 1: -// switch(layer) { -// case LR_SYSCTL: -// layer_off(LR_SYSCTL); -// break; -// case MOUSE: -// layer_off(MOUSE); -// break; -// default: -// layer_on(LR_SYSCTL); -// break; -// } -// break; -// case 2: -// layer_on(MOUSE); -// break; -// } -// } - -// tap_dance_action_t tap_dance_actions[] = { -// [TD_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED( flash_each_tap, flash_dance_finished, flash_dance_reset ), -// [TD_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, layers_dance_finished, NULL ), -// }; diff --git a/keyboards/ergodox_ez/keymaps/pvinis/readme.md b/keyboards/ergodox_ez/keymaps/pvinis/readme.md deleted file mode 100644 index af27210541..0000000000 --- a/keyboards/ergodox_ez/keymaps/pvinis/readme.md +++ /dev/null @@ -1,65 +0,0 @@ -pvinis' keymap -============== - -This is a getting-used-to keymap for the [ErgoDox EZ][ez]. It's very much a work in progress. - -[ez]: https://ergodox-ez.com/ - -## Table of Contents - -* [Todo](#todo) -* [Layouts](#layouts) - - [Base layer](#base-layer) - - [Beginner layer](#beginner-layer) - - [QWERTY layer](#qwerty-layer) - - [CARPALX layer](#carpalx-layer) - - [System Control layer](#system-control-layer) - - [Template layers](#template-layers) -* [Building](#building) - -# Todo - -- [ ] Generate images from keymap -- [ ] Implement algernon's heatmap -- [ ] Implement `KC_POP` - -# Layouts - -## Base layer - -This is the base layer that contains the common buttons of all keymaps. Right now, it has the top left button as a `flash` button when it's tapped 4 times, and the two thumb islands. The islands contain the `space` and `enter` keys on the right, the `backspace` and `shift` on the left, and all the 1x1 keys are just layer switches. -Every time I connect the keyboard, I press the `BEGIN` layer switch, and then start typing. -Recently, I added a few application "shortcuts", that basically call `ctrl`+`alt`+`cmd`+``, and `` is `S` for Slack, `X` for Xcode, `M` for Messenger. Using [Hammerspoon][hammerspoon], I show/hide the application. - -[hammerspoon]: http://www.hammerspoon.org/ - -## Beginner layer - -This is a basic keymap I use right now until I'm comfortable typing on the Ergodox. Currently uses a QWERTY layout, and the `([{}])` on the middle keys. Not a perfect layout, and its going to go away at some point, but for now thats my daily driver. - -## QWERTY layer - -This is basically the same as the `BEGIN` layer, but it might go away. I'm not using it, but I should have a QWERTY layout on the keyboard, in case someone else wants to try it out, or if I completely forget how keyboards work! At some point, this and the `BEGIN` layer will become one. - -## CARPALX layer - -This is here as a placeholder. I want to transition to [Carpalx QGMLWY][carpalx] or [White][white] at some point. They both look very interesting and more comfortable to type on, but after I'm confident with typing on the Ergodox. - -[carpalx]: http://mkweb.bcgsc.ca/carpalx/?full_optimization -[white]: https://github.com/mw8/white_keyboard_layout - -## System Control layer - -This one is a layer that, in time, will have controls like mouse movement, volume up/down, mute, sleep, restart, shutdown, etc. - -## Template layers - -I have two commented out layers that are just templates, so I can easily create a new layer. - -# Building - -``` -$ git clone https://github.com/qmk/qmk_firmware.git -$ cd qmk_firmware/keyboards/ergodox/keymaps/pvinis -$ make -``` diff --git a/keyboards/ergodox_ez/keymaps/pvinis/rules.mk b/keyboards/ergodox_ez/keymaps/pvinis/rules.mk deleted file mode 100644 index e5ddcae8d9..0000000000 --- a/keyboards/ergodox_ez/keymaps/pvinis/rules.mk +++ /dev/null @@ -1 +0,0 @@ -TAP_DANCE_ENABLE = yes diff --git a/keyboards/ergodox_ez/keymaps/rishka/config.h b/keyboards/ergodox_ez/keymaps/rishka/config.h deleted file mode 100644 index c8f8180bcc..0000000000 --- a/keyboards/ergodox_ez/keymaps/rishka/config.h +++ /dev/null @@ -1,17 +0,0 @@ -#pragma once - -#define PERMISSIVE_HOLD - -#undef MOUSEKEY_TIME_TO_MAX -#define MOUSEKEY_TIME_TO_MAX 0 - -#undef MOUSEKEY_WHEEL_MAX_SPEED -#undef MOUSEKEY_WHEEL_TIME_TO_MAX - -#define MOUSEKEY_WHEEL_MAX_SPEED 1 -#define MOUSEKEY_WHEEL_TIME_TO_MAX 0 - -#define MK_C_OFFSET_1 20 -#define MK_C_OFFSET_2 30 - -#undef MK_MOMENTARY_ACCEL diff --git a/keyboards/ergodox_ez/keymaps/rishka/keymap.c b/keyboards/ergodox_ez/keymaps/rishka/keymap.c deleted file mode 100644 index f6ca540e63..0000000000 --- a/keyboards/ergodox_ez/keymaps/rishka/keymap.c +++ /dev/null @@ -1,210 +0,0 @@ - -#include QMK_KEYBOARD_H -#include "version.h" -#include "rishka.h" -enum layers { - BASE, // default layer - WIN, // Switch keys that are needed in windows - SYMB, // symbols - MDIA, // media keys - GAME, // Gamepad setup - FIRMWARE // Layer to trigger reset/refresh -}; -enum custom_keycodes { - VRSN = SAFE_RANGE, - RGB_SLD -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -[BASE] = LAYOUT_ergodox_pretty_wrapper( - KC_EQL, ________________NUMBERS_L__________________, TG(WIN), OSX_LOCK, ________________NUMBERS_R__________________, KC_MINS, - KC_DEL, _________________QWERTY_L1_________________, TG(SYMB), TG(SYMB), _________________QWERTY_R1_________________, KC_BSLS, - KC_BSPC, _____________MOD_QWERTY_L2_________________, _____________MOD_QWERTY_R2_________________, LT(MDIA, KC_QUOT), - OS_LSFT, _________________QWERTY_L3_________________, ALL_T(KC_NO), TG(MDIA), _________________QWERTY_R3_________________, OS_RSFT, - LT(SYMB,KC_GRV), KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, OSL(SYMB), - ALT_T(KC_APP), TG(GAME), KC_LALT, CTL_T(KC_ESC), - LT(FIRMWARE, KC_HOME), KC_PGUP, - KC_SPC, GUI_T(KC_BSPC), ALT_T(KC_END), GUI_T(KC_PGDN), CTL_T(KC_TAB), ALT_T(KC_ENT) -), - -[WIN] = LAYOUT_ergodox_pretty_wrapper( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_F1, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_TAB, _________________QWERTY_L2_________________, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, KC_LGUI, _______, _______, _______, _______, _______, _______, _______, - KC_LCTL, _______, KC_LALT, _______, _______, _______, _______, _______, _______, _______, - _______, KC_ESC, _______, _______, - _______, _______, - _______, KC_BSPC, KC_LALT, KC_PGDN, CTL_T(KC_TAB), _______ -), - -[SYMB] = LAYOUT_ergodox_pretty_wrapper( -VRSN, ______________________F_L__________________, KC_F11, KC_F12 , ______________________F_R__________________, KC_NUM, -_______, _________________SYMBOL_L1_________________, _______, _______, _________________SYMBOL_R1_________________, _______, -_______, _________________SYMBOL_L2_________________, _________________SYMBOL_R2_________________, _______, -_______, _________________SYMBOL_L3_________________, _______, _______, _________________SYMBOL_R3_________________, _______, -_______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PSLS, _______, - RGB_MOD, RGB_VAI, RGB_HUI, RGB_SLD, - RGB_VAD, RGB_HUD, - _______, _______, _______, RGB_TOG, _______, _______ -), - -[MDIA] = LAYOUT_ergodox( - // left hand - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, KC_MS_U, _______, KC_WH_U, _______, - _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, KC_BTN1, KC_BTN2, - _______, KC_BTN5, - KC_BTN4, - KC_BTN1, KC_BTN2, KC_BTN3, - // right hand - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, KC_WH_U, _______, _______, _______, - _______, KC_WH_L, KC_WH_D, KC_WH_R, _______, KC_MPLY, - _______, _______, _______, KC_MPRV, KC_MNXT, _______, _______, - KC_VOLU, KC_VOLD, KC_MUTE, _______, _______, - _______, _______, - _______, - KC_ACL2, KC_ACL1, KC_ACL0 -), - -[GAME] = LAYOUT_ergodox( - // left hand - KC_ESCAPE, KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, - KC_F1, KC_Y, KC_Q, KC_W, KC_E, KC_R, KC_T, - KC_TAB, KC_LSFT, KC_A, KC_S, KC_D, KC_F, - KC_LCTL, KC_B, KC_Z, KC_X, KC_C, KC_V, KC_G, - LT(BASE, KC_L), KC_J, KC_I, KC_O, KC_M, - KC_ESCAPE, _______, - KC_ENTER, - KC_SPACE, KC_LCTL, KC_LALT, - // right hand - KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), GUI_T(KC_QUOT), - MEH_T(KC_NO), KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, - KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, TT(SYMB), - KC_LALT, CTL_T(KC_ESC), - KC_PGUP, - KC_PGDN, KC_TAB, KC_ENT -), - -[FIRMWARE] = LAYOUT_ergodox( - // left hand - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, - _______, _______, - _______, - QK_BOOT, _______, _______, - // right hand - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, - _______, _______, - _______, - _______, _______, EE_CLR -), -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { - switch (keycode) { - case VRSN: - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); - return false; - #ifdef RGBLIGHT_ENABLE - case RGB_SLD: - rgblight_mode(1); - return false; - #endif - } - } - return true; -} - -// Runs just one time when the keyboard initializes. -void keyboard_post_init_user(void) { -#ifdef RGBLIGHT_COLOR_LAYER_0 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0); -#endif -}; - -// Runs whenever there is a layer state change. -layer_state_t layer_state_set_user(layer_state_t state) { - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - - uint8_t layer = get_highest_layer(state); - switch (layer) { - case 0: - #ifdef RGBLIGHT_COLOR_LAYER_0 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0); - #else - #ifdef RGBLIGHT_ENABLE - rgblight_init(); - #endif - #endif - break; - case 1: - ergodox_right_led_1_on(); - #ifdef RGBLIGHT_COLOR_LAYER_1 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_1); - #endif - break; - case 2: - ergodox_right_led_2_on(); - #ifdef RGBLIGHT_COLOR_LAYER_2 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_2); - #endif - break; - case 3: - ergodox_right_led_3_on(); - #ifdef RGBLIGHT_COLOR_LAYER_3 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_3); - #endif - break; - case 4: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - #ifdef RGBLIGHT_COLOR_LAYER_4 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_4); - #endif - break; - case 5: - ergodox_right_led_1_on(); - ergodox_right_led_3_on(); - #ifdef RGBLIGHT_COLOR_LAYER_5 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_5); - #endif - break; - case 6: - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - #ifdef RGBLIGHT_COLOR_LAYER_6 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_6); - #endif - break; - case 7: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - #ifdef RGBLIGHT_COLOR_LAYER_7 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_7); - #endif - break; - default: - break; - } - - return state; -}; diff --git a/keyboards/ergodox_ez/keymaps/rishka/rules.mk b/keyboards/ergodox_ez/keymaps/rishka/rules.mk deleted file mode 100644 index c867f89718..0000000000 --- a/keyboards/ergodox_ez/keymaps/rishka/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# TAP_DANCE_ENABLE = yes -MOUSEKEY_ENABLE = yes diff --git a/keyboards/ergodox_ez/keymaps/rmw/config.h b/keyboards/ergodox_ez/keymaps/rmw/config.h deleted file mode 100644 index 1b7528a4a7..0000000000 --- a/keyboards/ergodox_ez/keymaps/rmw/config.h +++ /dev/null @@ -1,53 +0,0 @@ -/* -Copyright 2012 Jun Wako -Copyright 2013 Oleg Kostyuk -Edited like hell 2017+ by Reed Williams - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#pragma once - -#define MACOSX - -#define USB_MAX_POWER_CONSUMPTION 500 - -/* Set 0 if debouncing isn't needed */ -#undef DEBOUNCE -#define DEBOUNCE 5 - - -#define ONESHOT_TIMEOUT 900 // how long before oneshot times out -//#define ONESHOT_TAP_TOGGLE 2 // how many taps before oneshot toggle is triggered - -#undef LOCKING_SUPPORT_ENABLE -#undef LOCKING_RESYNC_ENABLE - -#undef MOUSEKEY_DELAY -#define MOUSEKEY_DELAY 20 -#undef MOUSEKEY_MAX_SPEED -#define MOUSEKEY_MAX_SPEED 6 -#undef MOUSEKEY_TIME_TO_MAX -#define MOUSEKEY_TIME_TO_MAX 254 -#undef MOUSEKEY_WHEEL_MAX_SPEED -#define MOUSEKEY_WHEEL_MAX_SPEED 10 -#undef MOUSEKEY_WHEEL_TIME_TO_MAX -#define MOUSEKEY_WHEEL_TIME_TO_MAX 254 - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION -//#define DEBUG_MATRIX_SCAN_RATE diff --git a/keyboards/ergodox_ez/keymaps/rmw/keymap-mac.c b/keyboards/ergodox_ez/keymaps/rmw/keymap-mac.c deleted file mode 100644 index 9d230aaae0..0000000000 --- a/keyboards/ergodox_ez/keymaps/rmw/keymap-mac.c +++ /dev/null @@ -1,188 +0,0 @@ -#include "rmw.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [QWERTY] = LAYOUT_ergodox( - TD(FRBK2), KC_1, KC_2, KC_3, KC_4, KC_5, KC_F4, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TO(EDIT), - OSL(EDIT), KC_A, LT(NUMPAD,KC_S), KC_D, LT(FSYM,KC_F), KC_G, - LCTL(KC_LEFT), KC_Z, KC_X, KC_C, KC_V, SFT_T(KC_B), KC_TAB, - TD(CTLALL), OSL(ADJUST), TD(GUCTL), TD(SGCA), TD(AGC), - OS_CMD, OS_CTL , - KC_ESCAPE, - KC_BSPC, TD(SHENT), OSL(EDIT), - - KC_F5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - TO(NUMPAD), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, LT(JSYM,KC_J), KC_K, KC_L, LT(EDIT,KC_SCLN), KC_QUOTE, - CTL_T(KC_B), KC_N, KC_M, KC_COMM, KC_DOT, LT(MEDIA,KC_SLSH), LCTL(KC_RIGHT), - TD(GCA), TD(CTLALL), KC_LBRC, KC_RBRC, KC_MS_BTN1, - OS_CALT, KC_TAB, - KC_DEL, - KC_CAPS, SFTENT, KC_SPC), - - - [MINIMAK4] = LAYOUT_ergodox( - TD(FRBK2), KC_1, KC_2, KC_3, KC_4, KC_5, KC_F4, - KC_TAB, KC_Q, KC_W, KC_D, KC_R, KC_K, TO(EDIT), - OSL(EDIT), KC_A, LT(NUMPAD,KC_S), KC_T, LT(FSYM,KC_F), KC_G, - OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, SFT_T(KC_B), KC_TAB, - TD(CTLALL), OSL(ADJUST), TD(GUCTL), TD(SGCA), TD(AGC), - OS_CMD, OS_CTL , - KC_ESCAPE, - KC_BSPC, TD(SHENT), OSL(EDIT), - KC_F5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - TO(NUMPAD), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, LT(JSYM,KC_J), KC_E, KC_L, LT(EDIT,KC_SCLN), KC_QUOTE, - CTL_T(KC_B), KC_N, KC_M, KC_COMM, KC_DOT, LT(MEDIA,KC_SLSH), KC_MS_BTN1, - TD(GCA), TD(CTLALL), LGUI(KC_GRV), KC_RBRC, KC_MS_BTN1, - OS_ALT, KC_TAB, - KC_DEL, - KC_CAPS, SFT_T(KC_ENT), KC_SPC), - - [NUMPAD] = LAYOUT_ergodox(VRSN, KC_F11, KC_F12, KC_F1, KC_F2, KC_F3, _______, - _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, TO(QWERTY), - _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, - _______, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_Y), _______, - _______, _______, _______, _______, _______, - _______, _______, KC_PSCR, _______, _______, TO(QWERTY), - - _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, - TO(EDIT), _______, KC_7, KC_8, KC_9, KC_KP_MINUS, _______, - _______, KC_4, KC_5, KC_6, KC_KP_PLUS, _______, - _______, KC_COMM, KC_1, KC_2, KC_3, KC_KP_SLASH, _______, - KC_0, KC_DOT, KC_EQUAL, KC_KP_ASTERISK, _______, - _______, _______, KC_INSERT, TO(EDIT), _______, _______), - - [EDIT] = LAYOUT_ergodox(_______, _______, KC_MS_WH_UP, KC_MS_BTN1, KC_MS_BTN2, _______, _______, - _______, LGUI(LALT(KC_ESCAPE)), KC_MS_WH_DOWN, LALT(S(KC_LEFT)), LALT(S(KC_RIGHT)), _______, TO(NUMPAD), - _______, _______, LGUI(KC_GRV), LALT(KC_LEFT), LALT(KC_RIGHT), _______, - LCTL(KC_RIGHT), LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_Y), _______, - _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, TO(NUMPAD), - _______, _______, _______, S(KC_UP), _______, _______, KC_DELETE, - TO(QWERTY), LGUI(KC_T), KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, _______, - LGUI(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LGUI(KC_RIGHT), _______, - _______, S(LGUI(KC_LEFT)), S(KC_LEFT), S(KC_DOWN), S(KC_RIGHT), S(LGUI(KC_RIGHT)), LCTL(KC_LEFT), - _______, _______, FORM_GET, FORM_PUT, _______, - _______, _______, _______, S(KC_F10), _______, _______), - - [FSYM] = LAYOUT_ergodox(_______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, KC_TILD, KC_EXLM, _______, _______, - LCTL(KC_RIGHT), _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, - _______, _______, _______, DEL_WRD, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, KC_CIRC, KC_AMPR , KC_ASTR, KC_GRV , _______, _______, - KC_EQUAL, KC_MINUS, KC_UNDS, KC_BSLS, KC_COLON, KC_DQT , - _______, _______, KC_PLUS , KC_SLSH, KC_PIPE, _______ , _______, - _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______), - - [JSYM] = LAYOUT_ergodox(_______, _______, _______, _______, _______, _______, _______, - _______, KC_GRV, KC_AT , KC_LCBR, KC_RCBR, _______, _______, - _______, KC_HASH, KC_DLR , KC_LPRN, KC_RPRN, KC_LEFT, - _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, _______, _______, - _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, KC_QUES, KC_SLSH, KC_COLON, _______, - _______, _______, _______, _______, _______, _______, LCTL(KC_LEFT), - _______, _______, _______, _______, _______, - _______, _______, _______, _______, LGUI(KC_DOWN), _______), - - [MEDIA] = LAYOUT_ergodox(_______, _______, KC_MS_BTN4, _______, KC_MS_BTN5, _______, _______, - _______, KC_MS_WH_UP, KC_MS_WH_LEFT, KC_MS_UP, KC_MS_WH_RIGHT, _______, _______, - _______, KC_MS_WH_DOWN, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, - _______, _______, KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, - _______, _______, _______, _______, KC_MS_BTN3, - _______, _______, _______, KC_MS_BTN1, KC_MS_BTN2, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, KC_AUDIO_VOL_DOWN, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, _______, _______, - KC_MEDIA_REWIND, KC_MEDIA_FAST_FORWARD, _______, _______, _______, - _______, _______, _______, _______, KC_MS_BTN1, KC_MEDIA_PLAY_PAUSE), - - [ADJUST] = LAYOUT_ergodox(_______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, TO(EDIT), TO(NUMPAD), TO(FSYM), TO(JSYM), TO(MEDIA), - _______, _______, _______, _______, _______, _______, _______, - _______, TO(QWERTY), DF(MINIMAK4), DF(QWERTY), _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______), - -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case VRSN: - if (record->event.pressed) { - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); - } - return false; - case FORM_GET: - if (record->event.pressed) { - tap_code(KC_BTN1); - tap_code16(G(KC_A)); - tap_code16(G(KC_C)); - } - return false; - case FORM_PUT: - if (record->event.pressed) { - tap_code(KC_BTN1); - tap_code16(G(KC_A)); - tap_code16(G(KC_V)); - } - return false; - } - return true; -} - -layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { - case QWERTY: - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - break; - case NUMPAD: - ergodox_right_led_1_on(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - break; - case EDIT: - ergodox_right_led_1_off(); - ergodox_right_led_2_on(); - ergodox_right_led_3_off(); - break; - case FSYM: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - ergodox_right_led_3_off(); - break; - case JSYM: - ergodox_right_led_1_on(); - ergodox_right_led_2_off(); - ergodox_right_led_3_on(); - break; - case MEDIA: - ergodox_right_led_1_off(); - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - break; - case ADJUST: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - break; - } - return state; -} diff --git a/keyboards/ergodox_ez/keymaps/rmw/keymap-win.c b/keyboards/ergodox_ez/keymaps/rmw/keymap-win.c deleted file mode 100644 index aada71fd4f..0000000000 --- a/keyboards/ergodox_ez/keymaps/rmw/keymap-win.c +++ /dev/null @@ -1,159 +0,0 @@ -#include "rmw.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [QWERTY] = LAYOUT_ergodox( // LEFT HAND - TD(FRBK), KC_1, KC_2, KC_3, KC_4, KC_5, KC_F4, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TO(EDIT), - OSL(EDIT), KC_A, LT(NUMPAD,KC_S), KC_D, LT(FSYM,KC_F), KC_G, - OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, SFT_T(KC_B), KC_TAB, - TD(CTLAND), OSL(ADJUST), TD(SCAG), TD(TDGUI), TD(ACG), - OS_ALT, OS_CTL , - KC_ESCAPE, - KC_BSPC, TD(SHENT), OSL(EDIT), - - // RIGHT HAND - KC_F5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - TO(NUMPAD), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, LT(JSYM,KC_J), KC_K, KC_L, LT(EDIT,KC_SCLN), KC_QUOTE, - CTL_T(KC_B), KC_N, KC_M, KC_COMM, KC_DOT, LT(MEDIA,KC_SLSH), TD(SHENT), - TD(CAG), TD(TDGUI), KC_LBRC, KC_RBRC, KC_MS_BTN1, - OS_ALT, KC_TAB, - KC_DEL, - KC_CAPS, SFT_T(KC_ENT), KC_SPC), - - - [NUMPAD] = LAYOUT_ergodox(VRSN, KC_F11, KC_F12, KC_F1, KC_F2, KC_F3, _______, - _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, TO(0), - _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, - _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), LCTL(KC_Y), _______, - _______, _______, _______, _______, _______, - _______, _______, KC_PSCR, _______, _______, TO(0), - - _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, - TO(EDIT), _______, KC_7, KC_8, KC_9, KC_KP_MINUS, _______, - _______, KC_4, KC_5, KC_6, KC_KP_PLUS, _______, - _______, KC_COMM, KC_1, KC_2, KC_3, KC_KP_SLASH, _______, - KC_0, KC_DOT, KC_EQUAL, KC_KP_ASTERISK, _______, - _______, _______, KC_INSERT, TO(EDIT), _______, _______), - - [EDIT] = LAYOUT_ergodox(KC_ESCAPE, LALT(LCTL(KC_DELETE)), KC_MS_WH_UP, KC_MS_BTN1, KC_MS_BTN2, _______, _______, - _______, LCTL(S(KC_ESCAPE)), KC_MS_WH_DOWN, LCTL(S(KC_LEFT)), LCTL(S(KC_RIGHT)), _______, TO(NUMPAD), - _______, _______, KC_LEFT, LCTL(KC_LEFT), LCTL(KC_RIGHT), _______, - _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), LCTL(KC_Y), _______, - _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, TO(NUMPAD), - _______, _______, _______, S(KC_UP), _______, _______, KC_DELETE, - TO(0), LCTL(KC_T), KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, _______, - KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, _______, - _______, S(KC_HOME), S(KC_LEFT), S(KC_DOWN), S(KC_RIGHT), S(KC_END), _______, - _______, _______, _______, _______, _______, - _______, _______, _______, S(KC_F10), _______, _______), - - [FSYM] = LAYOUT_ergodox(_______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, KC_TILD, KC_EXLM, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, KC_CIRC, KC_AMPR , KC_ASTR, KC_GRV , _______, _______, - KC_EQUAL, KC_MINUS, KC_UNDS, KC_BSLS, KC_COLON, KC_DQT , - _______, _______, KC_PLUS , KC_SLSH, KC_PIPE, _______ , _______, - _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______), - - [JSYM] = LAYOUT_ergodox(_______, _______, _______, _______, _______, _______, _______, - _______, KC_GRV, KC_AT , KC_LCBR, KC_RCBR, _______, _______, - _______, KC_HASH, KC_DLR , KC_LPRN, KC_RPRN, KC_LEFT, - _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, _______, _______, - _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, KC_QUES, KC_SLSH, KC_COLON, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______), - - [MEDIA] = LAYOUT_ergodox(_______, _______, KC_MS_BTN4, _______, KC_MS_BTN5, _______, _______, - _______, KC_MS_WH_UP, KC_MS_WH_LEFT, KC_MS_UP, KC_MS_WH_RIGHT, _______, _______, - _______, KC_MS_WH_DOWN, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, - _______, _______, KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, - _______, _______, _______, _______, KC_MS_BTN3, - _______, _______, _______, KC_MS_BTN1, KC_MS_BTN2, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, KC_AUDIO_VOL_DOWN, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, _______, _______, - KC_MEDIA_PREV_TRACK, KC_MEDIA_NEXT_TRACK, _______, _______, _______, - _______, _______, _______, _______, KC_MS_BTN1, KC_MEDIA_PLAY_PAUSE), - - [ADJUST] = LAYOUT_ergodox(_______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, TO(EDIT), TO(NUMPAD), TO(FSYM), TO(JSYM), TO(MEDIA), - _______, _______, _______, _______, _______, _______, _______, - _______, TO(QWERTY), _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______), - -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - // dynamically generate these. - case VRSN: - if (record->event.pressed) { - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); - } - return false; - } - return true; -} - - -layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { - case QWERTY: - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - break; - case NUMPAD: - ergodox_right_led_1_on(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - break; - case EDIT: - ergodox_right_led_1_off(); - ergodox_right_led_2_on(); - ergodox_right_led_3_off(); - break; - case FSYM: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - ergodox_right_led_3_off(); - break; - case JSYM: - ergodox_right_led_1_on(); - ergodox_right_led_2_off(); - ergodox_right_led_3_on(); - break; - case MEDIA: - ergodox_right_led_1_off(); - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - break; - case ADJUST: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - break; - } - return state; -} diff --git a/keyboards/ergodox_ez/keymaps/rmw/keymap.c b/keyboards/ergodox_ez/keymaps/rmw/keymap.c deleted file mode 100644 index d2cff99429..0000000000 --- a/keyboards/ergodox_ez/keymaps/rmw/keymap.c +++ /dev/null @@ -1,13 +0,0 @@ -#include QMK_KEYBOARD_H -#include "version.h" - -#define LONGPRESS_DELAY 180 -#define LAYER_TOGGLE_DELAY 350 - -#ifdef MACOSX -#include "keymap-mac.c" -#endif - -#ifdef WINDOWS -#include "keymap-win.c" -#endif diff --git a/keyboards/ergodox_ez/keymaps/rmw/readme.md b/keyboards/ergodox_ez/keymaps/rmw/readme.md deleted file mode 100644 index 36e0d1de00..0000000000 --- a/keyboards/ergodox_ez/keymaps/rmw/readme.md +++ /dev/null @@ -1,11 +0,0 @@ -# RMW Ergodox_EZ Layout - -This is the keymap I use on the Ergodox_EZ I use for work. I write reports and code in a variety of languages on this board and the various layers provide plenty of flexibility for navigating, editing text, and writing code and prose. - -I switched to a Mac in the past year, so my keymap now mostly gets used in the Mac mode; simply edit the keymap.c file to uncomment \#include keymap-win.c and comment out \#include keymap-mac.c to change back to the Windows version, but I haven't been updating that map as I've made changes moving forward on the Mac version. - -## The theory of this keymap - -The base layer is either QWERTY or MINIMAK4, as desired. Overlaid on that base layer are various layers triggered by one-shots, TOs, and LTs. Tapdances are used to cram lots of mods into few keys and provide freedom to hit combinations with either hand. Mods and layer things are one-shot (where reasonable) because I prefer that. - -An EDIT layer provides text navigation, selection, and editing capabilities in home position. The EXCEL layer offers a numpad and various spreadsheet-useful navigations and operations. Holding S will put the numpad under your right hand in home position. Keys F and J offer various useful symbols (mostly) on the opposite hand when held, including \[\]\(\)\{\} under the left pointer and middle fingers on bottom, middle, and top rows respectively. The MEDIA layer provides media controls (obvs) and some mouse movement and nav, in case I don't feel like reaching for the trackball/trackpad/mouse. diff --git a/keyboards/ergodox_ez/keymaps/rmw/rules.mk b/keyboards/ergodox_ez/keymaps/rmw/rules.mk deleted file mode 100644 index 31e0fcf293..0000000000 --- a/keyboards/ergodox_ez/keymaps/rmw/rules.mk +++ /dev/null @@ -1 +0,0 @@ -TAP_DANCE_ENABLE=yes diff --git a/keyboards/ergotravel/keymaps/jarred/config.h b/keyboards/ergotravel/keymaps/jarred/config.h deleted file mode 100644 index c2948493ed..0000000000 --- a/keyboards/ergotravel/keymaps/jarred/config.h +++ /dev/null @@ -1,26 +0,0 @@ -/* -Copyright 2017 Pierre Constantineau - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define USE_I2C - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS diff --git a/keyboards/ergotravel/keymaps/jarred/keymap.c b/keyboards/ergotravel/keymaps/jarred/keymap.c deleted file mode 100644 index adedebe6ef..0000000000 --- a/keyboards/ergotravel/keymaps/jarred/keymap.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright 2018 Jarred Steenvoorden - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H -#include "jarred.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = LAYOUT_ergotravel_grid_wrapper( - QWERTY_L1, KC_NO, KC_NO, QWERTY_R1, - QWERTY_L2, KC_NO, KC_NO, QWERTY_R2, - QWERTY_L3, KC_NO, KC_NO, QWERTY_R3, - QWERTY_4_12), - - [_LW] = LAYOUT_ergotravel_grid_wrapper( - LOWER_L1, KC_NO, KC_NO, LOWER_R1, - LOWER_L2, KC_NO, KC_NO, LOWER_R2, - LOWER_L3, KC_NO, KC_NO, LOWER_R3, - LOWER_4_12), - - [_NV] = LAYOUT_ergotravel_grid_wrapper( - NAV_L1, KC_NO, KC_NO, NAV_R1, - NAV_L2, KC_NO, KC_NO, NAV_R2, - NAV_L3, KC_NO, KC_NO, NAV_R3, - NAV_4_12), - - [_NP] = LAYOUT_ergotravel_grid_wrapper( - NUMPAD_L1, KC_NO, KC_NO, NUMPAD_R1, - NUMPAD_L2, KC_NO, KC_NO, NUMPAD_R2, - NUMPAD_L3, KC_NO, KC_NO, NUMPAD_R3, - NUMPAD_4_12), - - [_MS] = LAYOUT_ergotravel_grid_wrapper( - MOUSE_L1, KC_NO, KC_NO, MOUSE_R1, - MOUSE_L2, KC_NO, KC_NO, MOUSE_R2, - MOUSE_L3, KC_NO, KC_NO, MOUSE_R3, - MOUSE_4_12) -}; diff --git a/keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h b/keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h deleted file mode 100644 index 40cf1e3752..0000000000 --- a/keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT( \ -XXX, K00, K01, K02, K03, K04, XXX, XXX, K05, K06, K07, K08, K09, XXX, \ -XXX, K10, K11, K12, K13, K14, XXX, XXX, K15, K16, K17, K18, K19, XXX, \ -XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ -XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX \ -) diff --git a/keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c deleted file mode 100644 index dbab7f9820..0000000000 --- a/keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/ergotravel/keymaps/rs/config.h b/keyboards/ergotravel/keymaps/rs/config.h deleted file mode 100644 index 53487d0f92..0000000000 --- a/keyboards/ergotravel/keymaps/rs/config.h +++ /dev/null @@ -1,40 +0,0 @@ -/* -Copyright 2017 Pierre Constantineau - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -#undef RGBLED_NUM -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 12 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/ergotravel/keymaps/rs/keymap.c b/keyboards/ergotravel/keymaps/rs/keymap.c deleted file mode 100644 index f8c6de56bc..0000000000 --- a/keyboards/ergotravel/keymaps/rs/keymap.c +++ /dev/null @@ -1,38 +0,0 @@ -#include QMK_KEYBOARD_H -#include "rs.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT( - //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. - KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_GRV, KC_BSLS, KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_EQL , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - KC_ESCC, KC_A , KC_S , KC_D , KC_F , KC_G ,KC_PIPE, KC_MINS, KC_H , KC_J , KC_K , KC_L ,KC_SCLN,KC_QUOT, - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_SPC, KC_BSPC, KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_ENTS, - //|----+----+----+----+----+----+----. .----+----+----+----+----+----+----| - KC_FN ,_______,KC_LCTL,KC_LALT,KC_LGUI, KC_SPC, KC_BSPC, KC_CODE,KC_LEFT, KC_UP ,KC_DOWN,KC_RIGHT - //`----+----+----+--+-+----/----/ \----\----+----+----+----+----' - ), - [_CODE] = LAYOUT( - //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. - KC_GRV ,KC_EXLM, KC_AT ,KC_HASH, KC_DLR,KC_PERC,_______, _______,KC_CIRC,KC_LPLT,KC_ASTR,KC_RPGT,KC_NEQL,_______, - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 ,_______, _______,KC_MINS,KC_LBRC, KC_UP ,KC_RBRC,_______,KC_BSLS, - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_DOT, _______,KC_AMPR,KC_LEFT,KC_DOWN,KC_RGHT,_______,KC_PIPE, - //|----+----+----+----+----+----+----. .----+----+----+----+----+----+----| - _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______ - //`----+----+----+----+----/----/ \----\----+----+----+----+----' - ), - [_FN] = LAYOUT( - //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. - _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 ,_______, _______, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10,KC_F11 , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - _______,_______,_______,_______,_______,_______,KC_BRMU, _______,_______,_______,KC_PGUP,_______,_______,_______, - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - _______,_______,_______,_______,_______, KC_RST,KC_BRMD, KC_VOLU,_______,KC_CTRA,KC_PGDN,KC_CTRE,_______,_______, - //|----+----+----+----+----+----+----. .----+----+----+----+----+----+----| - _______,_______,_______,_______,_______,_______, KC_VOLD,KC_MUTE,_______,_______,_______,_______ - //`----+----+----+----+----/----/ \----\----+----+----+----+----' - ), -}; diff --git a/keyboards/ergotravel/keymaps/rs/readme.md b/keyboards/ergotravel/keymaps/rs/readme.md deleted file mode 100644 index d23ab66877..0000000000 --- a/keyboards/ergotravel/keymaps/rs/readme.md +++ /dev/null @@ -1 +0,0 @@ -See [rs readme](../../../../users/rs/readme.md). \ No newline at end of file diff --git a/keyboards/ergotravel/keymaps/yanfali/config.h b/keyboards/ergotravel/keymaps/yanfali/config.h deleted file mode 100644 index 194503df2d..0000000000 --- a/keyboards/ergotravel/keymaps/yanfali/config.h +++ /dev/null @@ -1,42 +0,0 @@ -/* -Copyright 2017 Pierre Constantineau - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -#undef RGBLED_NUM -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 12 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - -#define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_LGUI))) diff --git a/keyboards/ergotravel/keymaps/yanfali/keymap.c b/keyboards/ergotravel/keymaps/yanfali/keymap.c deleted file mode 100644 index b2b62484a9..0000000000 --- a/keyboards/ergotravel/keymaps/yanfali/keymap.c +++ /dev/null @@ -1,108 +0,0 @@ -#include QMK_KEYBOARD_H - -extern keymap_config_t keymap_config; - -#define _QWERTY 0 -#define _LOWER 1 -#define _RAISE 2 -#define _ADJUST 16 - -enum custom_keycodes { - QWERTY = SAFE_RANGE, - LOWER, - RAISE, - ADJUST, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_QWERTY] = LAYOUT( - //,---------------------+--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------+--------. - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINUS, - //|---------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - MT(MOD_LCTL, KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_LCBR, KC_RCBR, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - //|---------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO, KC_NO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - //|---------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - ADJUST, ADJUST, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_BSPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT - //`---------------------+--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------+--------' - ), - - [_LOWER] = LAYOUT( - //,--------+--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------+--------. - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_Y, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - _______, _______, _______, _______, _______, _______, _______, RAISE, _______, _______, _______, _______ - //`--------+--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------+--------' - ), - - - [_RAISE] = LAYOUT( - //,--------+--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------+--------. - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - _______, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, _______, KC_Y, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - _______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - _______, _______, _______, _______, _______, _______, _______, RAISE, _______, _______, _______, _______ - //`--------+--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------+--------' - ), - - [_ADJUST] = LAYOUT( - //,--------+--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------+--------. - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - _______, _______, _______, _______, _______, _______, _______, RAISE, _______, _______, _______, _______ - //`--------+--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------+--------' - ) - -}; - - - - - - - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case ADJUST: - if (record->event.pressed) { - layer_on(_ADJUST); - } else { - layer_off(_ADJUST); - } - return false; - break; - } - return true; -} diff --git a/keyboards/ergotravel/keymaps/yanfali/rules.mk b/keyboards/ergotravel/keymaps/yanfali/rules.mk deleted file mode 100644 index ab3621cd7e..0000000000 --- a/keyboards/ergotravel/keymaps/yanfali/rules.mk +++ /dev/null @@ -1,7 +0,0 @@ -BOOTLOADER = qmk-dfu - -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. -LTO_ENABLE = yes diff --git a/keyboards/evyd13/wasdat/keymaps/konstantin/config.h b/keyboards/evyd13/wasdat/keymaps/konstantin/config.h deleted file mode 100644 index 3c2583e2d4..0000000000 --- a/keyboards/evyd13/wasdat/keymaps/konstantin/config.h +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once - -#define LAYER_FN -#define LAYER_NUMPAD diff --git a/keyboards/evyd13/wasdat/keymaps/konstantin/keymap.c b/keyboards/evyd13/wasdat/keymaps/konstantin/keymap.c deleted file mode 100644 index fcbab46b72..0000000000 --- a/keyboards/evyd13/wasdat/keymaps/konstantin/keymap.c +++ /dev/null @@ -1,79 +0,0 @@ -#include QMK_KEYBOARD_H -#include "konstantin.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Base layer - * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐ - * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12││PSc│SLk│Pau│ - * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘ - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ - * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bspace ││Ins│Hom│PgU│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ - * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ ││Del│End│PgD│ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐Ent │└───┴───┴───┘ - * │FnCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ \ │ │ - * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐ - * │LSft│RAG│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ RShift │ │ ↑ │ - * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐ - * │LCtl│LGui│LAlt│ Space │RAlt│RGui│FnFL│RCtl││ ← │ ↓ │ → │ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ - */ - [L_BASE] = LAYOUT_tkl_iso( - KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, - KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, KC_PGDN, - FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, - KC_LSFT, RAL_RGU, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, FN_FNLK, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - /* Fn layer - * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │Num│Mut│ - * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘ - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ - * │ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ Clear ││Ply│Stp│Vo+│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ - * │ M4 │M2 │M↑ │M1 │M3 │M5 │ │UCM│ │ │ │ │ │ ││Prv│Nxt│Vo-│ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │└───┴───┴───┘ - * │ │M← │M↓ │M→ │MW↑│ │ │ │ │ │ │ │ │ │ - * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐ - * │ │ │MA0│MA2│MW←│MW→│ │ │App│ │ │ │ │ │PgU│ - * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐ - * │ │DtPR│DtNA│ MW↓ │ │ │ │ ││Hom│PgD│End│ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ - */ - [L_FN] = LAYOUT_tkl_iso( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NUMPAD, KC_MUTE, - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, CLEAR, KC_MPLY, KC_MSTP, KC_VOLU, - KC_BTN4, KC_BTN2, KC_MS_U, KC_BTN1, KC_BTN3, KC_BTN5, _______, UC_NEXT, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, - _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, KC_ACL0, KC_ACL2, KC_WH_L, KC_WH_R, _______, _______, KC_APP, _______, _______, _______, _______, KC_PGUP, - _______, DST_P_R, DST_N_A, KC_WH_D, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END - ), - - /* Numpad layer - * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │Num│ │ - * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘ - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ - * │ │ │ │ │ │ │ │P7 │P8 │P9 │P- │ − │ = │ ││ │ │ │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ - * │ │ │ │ │ │ │ │P4 │P5 │P6 │P+ │ ( │ ) │ ││ │ │ │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐PEnt│└───┴───┴───┘ - * │ │ │ │ │ │ │ │P1 │P2 │P3 │P* │ × │ │ │ - * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐ - * │ │ │ │ │ │ │ │P0 │P0 │ , │P. │P/ │ ÷ │ │ │ - * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐ - * │ │ │ │ │ │ │ │ ││ │ │ │ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ - */ - [L_NUMPAD] = LAYOUT_tkl_iso( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NUMPAD, _______, - _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, MINUS, EQUALS, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, L_PAREN, R_PAREN, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PAST, TIMES, _______, KC_PENT, - _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_P0, COMMA, KC_PDOT, KC_PSLS, DIVIDE, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), -}; diff --git a/keyboards/evyd13/wasdat/keymaps/konstantin/rules.mk b/keyboards/evyd13/wasdat/keymaps/konstantin/rules.mk deleted file mode 100644 index e5fc55e912..0000000000 --- a/keyboards/evyd13/wasdat/keymaps/konstantin/rules.mk +++ /dev/null @@ -1,17 +0,0 @@ -# Generic features -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -COMMAND_ENABLE = yes -CONSOLE_ENABLE = yes -EXTRAKEY_ENABLE = yes -MOUSEKEY_ENABLE = yes -NKRO_ENABLE = yes -TAP_DANCE_ENABLE = yes -UNICODEMAP_ENABLE = yes - -# Keyboard-specific features -VIA_ENABLE = yes - -# Firmware size reduction -GRAVE_ESC_ENABLE = no -MAGIC_ENABLE = no -SPACE_CADET_ENABLE = no diff --git a/keyboards/evyd13/wonderland/keymaps/brandonschlack/config.h b/keyboards/evyd13/wonderland/keymaps/brandonschlack/config.h deleted file mode 100644 index 38383cffc2..0000000000 --- a/keyboards/evyd13/wonderland/keymaps/brandonschlack/config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright 2019 Brandon Schlack - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#pragma once - -#define USE_LEDS_FOR_LAYERS -#define STOPLIGHT_LED diff --git a/keyboards/evyd13/wonderland/keymaps/brandonschlack/keymap.c b/keyboards/evyd13/wonderland/keymaps/brandonschlack/keymap.c deleted file mode 100755 index b8b62981df..0000000000 --- a/keyboards/evyd13/wonderland/keymaps/brandonschlack/keymap.c +++ /dev/null @@ -1,170 +0,0 @@ -/* Copyright 2019 Brandon Schlack - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H -#include "brandonschlack.h" - -// LEDs -#define TOP_LED B1 -#define MIDDLE_LED B2 -#define BOTTOM_LED B3 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_BASE] = LAYOUT( - KC_HOME, KC_ESC, 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_BSLS, KC_GRV, - 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_BSPC, - KC_PGDN, HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, PLY_FN1, - KC_LOPT, KC_LCMD, SPC_RAI, KC_LCTL, SPC_RAI, KC_RCMD, KC_ROPT -), -[_FN1] = LAYOUT( - KC_MUTE, QM_MAKE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MC_LHPD, MC_SLPD, - KC_VOLU, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, KC_HOME, KC_UP, KC_END, KC_DEL, - KC_VOLD, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, KC_MPRV, KC_MNXT, KC_PGDN, KC_UP, KC_MPLY, - _______, RGB_LYR, RGB_THM, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, RGT_SFT, _______, - _______, _______, _______, _______, _______, _______, _______ - -), -[_FN2] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______ - -), -[_ADJUST] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______ - -) -/* -[_BLANK] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______ - -) -*/ -}; - -#ifdef STOPLIGHT_LED -bool is_led_stoplight_active = false; -uint8_t led_stoplight_index = 0; -uint16_t led_stoplight_timer = 0; -void matrix_scan_led_stoplight(void); - -void led_stoplight_start(void) { - writePinHigh(TOP_LED); - writePinHigh(MIDDLE_LED); - writePinHigh(BOTTOM_LED); - - is_led_stoplight_active = true; - led_stoplight_timer = timer_read(); -}; - -void led_stoplight_set(pin_t pin) { - writePinLow(pin); -}; - -void led_stoplight_end(void) { - // Reset timer and status variables - led_stoplight_index = 0; - is_led_stoplight_active = false; - led_stoplight_timer = 0; - led_update_kb(host_keyboard_led_state()); -}; - -void matrix_scan_led_stoplight(void) { - if (is_led_stoplight_active) { - if (timer_elapsed(led_stoplight_timer) > (1000 * (led_stoplight_index + 1))) { - switch (led_stoplight_index){ - case 0: - led_stoplight_set(TOP_LED); - led_stoplight_index++; - break; - case 1: - led_stoplight_set(MIDDLE_LED); - led_stoplight_index++; - break; - case 2: - led_stoplight_set(BOTTOM_LED); - led_stoplight_index++; - break; - default: - led_stoplight_index = 0; - is_led_stoplight_active = false; - led_stoplight_timer = 0; - led_update_kb(host_keyboard_led_state()); - break; - } - } - } -}; -#endif - -void keyboard_post_init_keymap(void) { -#ifdef STOPLIGHT_LED - led_stoplight_start(); -#endif -}; - -void matrix_scan_keymap(void) { -#ifdef STOPLIGHT_LED - matrix_scan_led_stoplight(); -#endif -}; - -#ifdef USE_LEDS_FOR_LAYERS -// example of how to use LEDs as layer indicators -static uint8_t top = 0; -static uint8_t middle = 0; - -layer_state_t layer_state_set_keymap(layer_state_t state) { - top = middle = 0; - state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); - - switch (get_highest_layer(state)) { - case _FN1: - top = 1; - break; - case _FN2: - middle = 1; - break; - case _ADJUST: - top = 1; - middle = 1; - break; - default: // for any other layers, or the default layer - break; - } - return state; -} - -// override kb level function -bool led_update_user(led_t usb_led) { - if (!is_led_stoplight_active) { - writePin(TOP_LED, !top); - writePin(MIDDLE_LED, !middle); - writePin(BOTTOM_LED, !usb_led.caps_lock); // still use bottom for Caps Lock - }; - return false; // we are using LEDs for something else override kb -} -#endif diff --git a/keyboards/evyd13/wonderland/keymaps/brandonschlack/rules.mk b/keyboards/evyd13/wonderland/keymaps/brandonschlack/rules.mk deleted file mode 100755 index 80361c34fd..0000000000 --- a/keyboards/evyd13/wonderland/keymaps/brandonschlack/rules.mk +++ /dev/null @@ -1,8 +0,0 @@ -# Build Options -# comment out to disable the options. -# -MOUSEKEY_ENABLE = yes # Mouse keys -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -VELOCIKEY_ENABLE = no - diff --git a/keyboards/fc660c/keymaps/zyber/keymap.c b/keyboards/fc660c/keymaps/zyber/keymap.c deleted file mode 100644 index 60178359ef..0000000000 --- a/keyboards/fc660c/keymaps/zyber/keymap.c +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2022 ZyBeR (@ZyberSE) -// SPDX-License-Identifier: GPL-2.0 - -#include "zyber.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* BASE layer: Default Layer - * ,--------------------------------------------------------------------------------------------------. - * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace | | ` | - * |-----------------------------------------------------------------------------------------+ +-----+ - * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp | | Del | - * |-----------------------------------------------------------------------------------------+ +-----+ - * | Explode | A | S | D | F | G | H | J | K | L | ; | ' | Enter | - * |--------------------------------------------------------------------------------------------+ - * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Up | - * +--------------------------------------------------------------------------------------------+-----+ - * | Ctrl | Alt | Cmd | Space | Alt | Ctrl | Fn | Left| Down|Right| - * `--------------------------------------------------------------------------------------------------´ - */ - [0] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, TD(SSHT), KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSLS, KC_DEL, - L1_EXPL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(QUOT), KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, ROPT_SRH, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL, MO(1), KC_LEFT,KC_DOWN,KC_RGHT - ), - /* FN layer - * ,--------------------------------------------------------------------------------------------------. - * | Esc| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | |C_BLK| - * |-----------------------------------------------------------------------------------------+ +-----+ - * | | | | | | | | |PrtSc| Slck| Paus| | | | | | - * |-----------------------------------------------------------------------------------------+ +-----+ - * | | Vol-| Vol+| Mute|Eject| | | | Home| PgUp| | | | - * |--------------------------------------------------------------------------------------------+ - * | | Prev| Play| Next| | | | | End | PgDn| | | | - * +--------------------------------------------------------------------------------------------+-----+ - * | | | | | | | | | | | - * `--------------------------------------------------------------------------------------------------´ - */ - [1] = LAYOUT( - QK_BOOT,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, C_BLK, - _______,_______,_______,_______,_______,_______,_______,_______,KC_PSCR,KC_SCRL,KC_PAUS,_______,_______,_______, _______, - _______,KC_VOLD,KC_VOLU,KC_MUTE,KC_EJCT,_______,_______,_______,KC_HOME,KC_PGUP,_______,_______, _______, - _______,KC_MPRV,KC_MPLY,KC_MNXT,_______,_______,_______,_______,KC_END, KC_PGDN,_______,_______, _______, - _______,_______,_______, _______, _______,_______,MO(1), _______,_______,_______ - ) -}; diff --git a/keyboards/flehrad/bigswitch/keymaps/333fred/config.h b/keyboards/flehrad/bigswitch/keymaps/333fred/config.h deleted file mode 100644 index 6e9219115c..0000000000 --- a/keyboards/flehrad/bigswitch/keymaps/333fred/config.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - Copyright (c) 2020 Fred Silberberg - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. -*/ - -#pragma once - -// Long tapping term on the big switch, because it takes so long to press -#define TAPPING_TERM 500 -#define PERMISSIVE_HOLD diff --git a/keyboards/flehrad/bigswitch/keymaps/333fred/keymap.c b/keyboards/flehrad/bigswitch/keymaps/333fred/keymap.c deleted file mode 100644 index d323bcc2c4..0000000000 --- a/keyboards/flehrad/bigswitch/keymaps/333fred/keymap.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - Copyright (c) 2020 Fred Silberberg - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. -*/ - -#include QMK_KEYBOARD_H - -typedef enum { - SINGLE_TAP, SINGLE_HOLD, DOUBLE, TRIPLE, QUAD -} tap_dance_state_enum; - -enum { - TD_KEY = 0 -}; - -static tap_dance_state_enum tap_dance_state; -static bool tap_dance_active = false; -static uint16_t timer; - -void dance_cycle(bool override_timer) { - if (tap_dance_active) - { - if (timer_elapsed(timer) > 100 || override_timer) - { - switch (tap_dance_state) - { - case SINGLE_HOLD: - { - rgblight_increase_hue_noeeprom(); - break; - } - - case DOUBLE: - { - rgblight_step_noeeprom(); - break; - } - - case TRIPLE: - { - rgblight_toggle_noeeprom(); - break; - } - - default: - // Not needed - break; - } - - timer = timer_read(); - } - } -} - -void dance_finished(tap_dance_state_t *state, void* user_data) { - // Determine the current state - switch (state->count) - { - case 1: - { - if (state->interrupted || state->pressed == 0) tap_dance_state = SINGLE_TAP; - else tap_dance_state = SINGLE_HOLD; - break; - } - case 2: - { - tap_dance_state = DOUBLE; - break; - } - case 3: - { - tap_dance_state = TRIPLE; - break; - } - default: - { - tap_dance_state = QUAD; - break; - } - } - - switch (tap_dance_state) - { - case SINGLE_TAP: - { - // VS Build: CTRL+SHIFT+B - send_string_with_delay_P(PSTR(SS_DOWN(X_LCTL) SS_DOWN(X_LSFT) "b" SS_UP(X_LSFT) SS_UP(X_LCTL)), 10); - tap_dance_active = false; - break; - } - - case SINGLE_HOLD: - case DOUBLE: - case TRIPLE: - { - // These are handled by the matrix_scan, which will register the appropriate rgb - // functions every scan - tap_dance_active = true; - timer = timer_read(); - dance_cycle(true); - break; - } - - case QUAD: - { - // Reprogram - reset_keyboard(); - break; - } - } -} - -void dance_reset(tap_dance_state_t *state, void* user_data) -{ - tap_dance_active = false; -} - -tap_dance_action_t tap_dance_actions[] = { - [TD_KEY] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_finished, dance_reset) -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT(TD(TD_KEY)) -}; - -void matrix_scan_user(void) { - dance_cycle(false); -} diff --git a/keyboards/flehrad/bigswitch/keymaps/333fred/rules.mk b/keyboards/flehrad/bigswitch/keymaps/333fred/rules.mk deleted file mode 100644 index 20aaadacbc..0000000000 --- a/keyboards/flehrad/bigswitch/keymaps/333fred/rules.mk +++ /dev/null @@ -1,5 +0,0 @@ -# I'm not using things from my userpace in this one -USER_NAME = disable - -RGBLIGHT_ENABLE = yes -TAP_DANCE_ENABLE = yes diff --git a/keyboards/flehrad/bigswitch/keymaps/wanleg/config.h b/keyboards/flehrad/bigswitch/keymaps/wanleg/config.h deleted file mode 100644 index bb638ce599..0000000000 --- a/keyboards/flehrad/bigswitch/keymaps/wanleg/config.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright 2018 wanleg - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -// place overrides here -#undef MATRIX_ROW_PINS -#define MATRIX_ROW_PINS { B4 } -#undef MATRIX_COL_PINS -#define MATRIX_COL_PINS { B6 } - -/* COL2ROW, ROW2COL*/ -#undef DIODE_DIRECTION -#define DIODE_DIRECTION COL2ROW - -#define BACKLIGHT_PIN B5 -#define BACKLIGHT_BREATHING -#define BACKLIGHT_LEVELS 3 -#define BREATHING_PERIOD 5 - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#undef DEBOUNCE -#define DEBOUNCE 5 - -// set flashing LED with QMK DFU -#define QMK_LED B0 - -// set audio pin -#define AUDIO_PIN C6 diff --git a/keyboards/flehrad/bigswitch/keymaps/wanleg/keymap.c b/keyboards/flehrad/bigswitch/keymaps/wanleg/keymap.c deleted file mode 100644 index 4a34640466..0000000000 --- a/keyboards/flehrad/bigswitch/keymaps/wanleg/keymap.c +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright 2018 wanleg - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H -#include "wanleg.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT( /* Base */ -TD(CAD_TD) -), -[1] = LAYOUT( /*Secondary*/ -TD(BSW_TAP_DANCE) -), -}; \ No newline at end of file diff --git a/keyboards/flehrad/bigswitch/keymaps/wanleg/rules.mk b/keyboards/flehrad/bigswitch/keymaps/wanleg/rules.mk deleted file mode 100644 index d6c3b1880e..0000000000 --- a/keyboards/flehrad/bigswitch/keymaps/wanleg/rules.mk +++ /dev/null @@ -1,14 +0,0 @@ -#If using a ProMicro and it has the QMK DFU bootloader instead of Caterina, -#run "make : dfu=qmk" when compiling to ensure it is flagged properly after being flashed -ifeq ($(strip $(dfu)), qmk) - BOOTLOADER = qmk-dfu -endif - -AUDIO_ENABLE = yes # Audio output on port C6 -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = no # Commands for debug and configuration -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID diff --git a/keyboards/foostan/cornelius/keymaps/hvp/config.h b/keyboards/foostan/cornelius/keymaps/hvp/config.h deleted file mode 100644 index a2a492ff27..0000000000 --- a/keyboards/foostan/cornelius/keymaps/hvp/config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright 2018 Carlos Filoteo - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once -#define TAPPING_TERM 200 -#define TAPPING_TERM_PER_KEY diff --git a/keyboards/foostan/cornelius/keymaps/hvp/keymap.c b/keyboards/foostan/cornelius/keymaps/hvp/keymap.c deleted file mode 100644 index 247eaf7a4e..0000000000 --- a/keyboards/foostan/cornelius/keymaps/hvp/keymap.c +++ /dev/null @@ -1,66 +0,0 @@ -/* Copyright 2020 foostan - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H -#include "hvp.c" - -#define LT3_ESC LT(3, KC_ESC) -#define LT4_TAB LT(5, KC_TAB) -#define LT2 LT(2, KC_LEFT_CURLY_BRACE) -#define LT1 LT(1, KC_RIGHT_CURLY_BRACE) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT( - LT4_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - LT3_ESC, MT(MOD_LGUI, KC_A), MT(MOD_LALT, KC_S), MT(MOD_LSFT, KC_D), MT(MOD_LCTL, KC_F), LT(4,KC_G), MT(MOD_RCTL, KC_H), MT(MOD_RSFT, KC_J), MT(MOD_RALT,KC_K), MT(MOD_RGUI,KC_L), TD(TD1), TD(TD2), - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), SC_SENT, - SC_LCPO, KC_LCTL, KC_LGUI, KC_LALT, LT2, KC_SPC, KC_ENT, LT1, KC_RALT, KC_RGUI, KC_RCTL, SC_RSPC - ), - -[1] = LAYOUT( /* Right */ - KC_TILDE, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_DEL, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, XXXXXXX, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV, - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - -[2] = LAYOUT( /* Left */ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_DEL, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, XXXXXXX, XXXXXXX, - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, XXXXXXX, XXXXXXX, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - -[3] = LAYOUT( /* Esc */ - 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_DELETE, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, XXXXXXX, XXXXXXX, - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, - _______, _______, _______, _______, _______, KC_MUTE, KC_MPLY, KC_MSTP, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT - ), - -[4] = LAYOUT( - _______, LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), LGUI(KC_6), LGUI(KC_7), KC_7, KC_8, KC_9, KC_BSPC, - _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_4, KC_5, KC_6, KC_0, - _______, _______, _______, _______, _______, _______, XXXXXXX, KC_0, KC_1, KC_2, KC_3, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - -[5] = LAYOUT( - _______, G(S(KC_1)), G(S(KC_2)), G(S(KC_3)), G(S(KC_4)), G(S(KC_5)), G(S(KC_6)), G(S(KC_7)), G(S(KC_8)), G(S(KC_9)), G(S(KC_0)), _______, - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NUM - ), -}; diff --git a/keyboards/foostan/cornelius/keymaps/hvp/readme.md b/keyboards/foostan/cornelius/keymaps/hvp/readme.md deleted file mode 100644 index cb35bd8a29..0000000000 --- a/keyboards/foostan/cornelius/keymaps/hvp/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for cornelius diff --git a/keyboards/foostan/cornelius/keymaps/hvp/rules.mk b/keyboards/foostan/cornelius/keymaps/hvp/rules.mk deleted file mode 100644 index 1ba2fa8fbe..0000000000 --- a/keyboards/foostan/cornelius/keymaps/hvp/rules.mk +++ /dev/null @@ -1 +0,0 @@ -TAP_DANCE_ENABLE = yes \ No newline at end of file diff --git a/keyboards/foostan/cornelius/keymaps/pdl/config.h b/keyboards/foostan/cornelius/keymaps/pdl/config.h deleted file mode 100644 index f2a5a522ea..0000000000 --- a/keyboards/foostan/cornelius/keymaps/pdl/config.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert -Copyright 2021 Daniel Perrett - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - - -#define TAPPING_TOGGLE 2 -#define TAPPING_TERM 200 - -#define COMBO_PDL -#define COMBO_TERM 100 diff --git a/keyboards/foostan/cornelius/keymaps/pdl/keymap.c b/keyboards/foostan/cornelius/keymaps/pdl/keymap.c deleted file mode 100644 index 3b71280ad8..0000000000 --- a/keyboards/foostan/cornelius/keymaps/pdl/keymap.c +++ /dev/null @@ -1,62 +0,0 @@ -/* Copyright 2021 Daniel Perrett - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H -#include "pdl.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_wrapper( - MY_FESC, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC, - KC_TAB, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, MY_SQUO, - MY_SBSL, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, NUMBRS, NAVIGN, KC_SPC, MY_SSPC, NUMBRS, NAVIGN, MY_AMNU, FUNCTN, MY_CENT - ), - [_PROXIM] = LAYOUT_wrapper( - MY_FESC, _________________PROXIM_L1_________________, _________________PROXIM_R1_________________, KC_BSPC, - KC_TAB, _________________PROXIM_L2_________________, _________________PROXIM_R2_________________, MY_ASCL, - MY_SBSL, _________________PROXIM_L3_________________, _________________PROXIM_R3_________________, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, NUMBRS, NAVIGN, KC_SPC, MY_SSPC, NUMBRS, NAVIGN, MY_AMNU, FUNCTN, MY_CENT - ), - [_NAVIGN] = LAYOUT_wrapper( - _______, _________________NAVIGN_L1_________________, _______, _______, _______, _______, _______, _______, - _______, _________________NAVIGN_L2_________________, _______, _______, _______, _______, _______, _______, - _______, _________________NAVIGN_L3_________________, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_PUNCTN] = LAYOUT_wrapper( - _______, _______, _______, _______, _______, _______, _________________PUNCTN_R1_________________, _______, - _______, _______, _______, _______, _______, _______, _________________PUNCTN_R2_________________, _______, - _______, _______, _______, _______, _______, _______, _________________PUNCTN_R3_________________, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_NUMBRS] = LAYOUT_wrapper( - _______, _________________NUMBRS_L1_________________, _______, _______, _______, _______, _______, _______, - _______, _________________NUMBRS_L2_________________, _______, _______, _______, _______, _______, _______, - _______, _________________NUMBRS_L3_________________, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_CODING] = LAYOUT_wrapper( - _______, _______, _______, _______, _______, _______, _________________CODING_R1_________________, _______, - _______, _______, _______, _______, _______, _______, _________________CODING_R2_________________, _______, - _______, _______, _______, _______, _______, _______, _________________CODING_R3_________________, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_FUNCTN] = LAYOUT_wrapper( - _______, _________________FUNCTN_L1_________________, _________________FUNCTN_R1_________________, MY_CAD, - _______, _________________FUNCTN_L2_________________, _________________FUNCTN_R2_________________, KC_PSCR, - _______, _________________FUNCTN_L3_________________, _________________FUNCTN_R3_________________, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; diff --git a/keyboards/foostan/cornelius/keymaps/pdl/readme.md b/keyboards/foostan/cornelius/keymaps/pdl/readme.md deleted file mode 100644 index 59bb03d18b..0000000000 --- a/keyboards/foostan/cornelius/keymaps/pdl/readme.md +++ /dev/null @@ -1 +0,0 @@ -# A keymap for cornelius used by pdl diff --git a/keyboards/for_science/keymaps/manna-harbour_miryoku/config.h b/keyboards/for_science/keymaps/manna-harbour_miryoku/config.h deleted file mode 100644 index c05e920287..0000000000 --- a/keyboards/for_science/keymaps/manna-harbour_miryoku/config.h +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT(\ -XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ - K32, K33, K34, K35, K36, K37\ -) diff --git a/keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c deleted file mode 100644 index dbab7f9820..0000000000 --- a/keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/fortitude60/keymaps/manna-harbour_miryoku/config.h b/keyboards/fortitude60/keymaps/manna-harbour_miryoku/config.h deleted file mode 100644 index e335d5d8b8..0000000000 --- a/keyboards/fortitude60/keymaps/manna-harbour_miryoku/config.h +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku(\ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT(\ -XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX,\ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX,\ -XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX,\ - XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX\ -) diff --git a/keyboards/fortitude60/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/fortitude60/keymaps/manna-harbour_miryoku/keymap.c deleted file mode 100644 index dbab7f9820..0000000000 --- a/keyboards/fortitude60/keymaps/manna-harbour_miryoku/keymap.c +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/foxlab/leaf60/universal/keymaps/jarred/keymap.c b/keyboards/foxlab/leaf60/universal/keymaps/jarred/keymap.c deleted file mode 100644 index 63374f401f..0000000000 --- a/keyboards/foxlab/leaf60/universal/keymaps/jarred/keymap.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Copyright 2019 Jarred Steenvoorden - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H -#include "jarred.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_QW] = LAYOUT_60_hhkb( - KC_ESC , 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_BSLS, KC_GRV , - 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_BSPC, - NAVI , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , - KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_ENT , - KC_LCTL, KC_LGUI, KC_SPC , KC_RALT, KC_RCTL - ), - - [_NV] = LAYOUT_60_hhkb( - 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_DEL , KC_BSPC, _______, KC_HOME, KC_UP , KC_END , KC_INS , _______, _______, _______, - _______, _______, _______, KC_LSFT, KC_LCTL, KC_ENT , _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , KC_DEL , _______, - _______ , _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, _______, _______, - _______, _______, ALT_TAB , _______, QK_BOOT - ), - -}; diff --git a/keyboards/foxlab/leaf60/universal/keymaps/jarred/readme.md b/keyboards/foxlab/leaf60/universal/keymaps/jarred/readme.md deleted file mode 100644 index 6b0a57a1e6..0000000000 --- a/keyboards/foxlab/leaf60/universal/keymaps/jarred/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -# Jarred's Leaf60 Layout - -Check out [user space readme](../../../../../../users/jarred/readme.md) for more info - -# Flash - -``` -make foxlab/leaf60/universal:jarred:dfu -``` diff --git a/keyboards/foxlab/leaf60/universal/keymaps/mguterl/config.h b/keyboards/foxlab/leaf60/universal/keymaps/mguterl/config.h deleted file mode 100644 index d8f6533c6b..0000000000 --- a/keyboards/foxlab/leaf60/universal/keymaps/mguterl/config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright 2019 Fox Lab - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -// place overrides here diff --git a/keyboards/foxlab/leaf60/universal/keymaps/mguterl/keymap.c b/keyboards/foxlab/leaf60/universal/keymaps/mguterl/keymap.c deleted file mode 100644 index 22dede0696..0000000000 --- a/keyboards/foxlab/leaf60/universal/keymaps/mguterl/keymap.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright 2019 Fox Lab - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H -#include "mguterl.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_QWERTY] = LAYOUT_all( - QK_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_BSLS, KC_GRV, - HPR_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_BSPC, - ESC_CTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(UTIL), - KC_LALT, KC_LALT, KC_LGUI, SPC_UTL, SPC_UTL, SPC_UTL, KC_RALT, MO(1), KC_RGUI, KC_RCTL), - - [_GAMING] = LAYOUT_all( - KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_TAB, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, KC_SPC, _______, _______, _______, _______, _______), - - [_UTIL] = LAYOUT_all( - QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - TG_GAME, KC_MPLY, KC_MPRV, KC_MNXT, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, _______, _______, - _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) - - -}; diff --git a/keyboards/foxlab/leaf60/universal/keymaps/mguterl/readme.md b/keyboards/foxlab/leaf60/universal/keymaps/mguterl/readme.md deleted file mode 100644 index 7f1d982bce..0000000000 --- a/keyboards/foxlab/leaf60/universal/keymaps/mguterl/readme.md +++ /dev/null @@ -1,11 +0,0 @@ -# Michael Guterl's Leaf60 WKL Layout - -Check out my [userspace](/users/mguterl) for the custom keycodes that are used -in keymap.c. - -This is a pretty standard 60% WKL layout. I add a couple of layers to add -some conveniences and add vimkeys for navigation. - -```sh -make foxlab/leaf60/universal:mguterl:flash -``` diff --git a/keyboards/gboards/butterstick/keymaps/dennytom/README.md b/keyboards/gboards/butterstick/keymaps/dennytom/README.md deleted file mode 100644 index a75bcc7506..0000000000 --- a/keyboards/gboards/butterstick/keymaps/dennytom/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# # Dennytom's Butterstick Layout - -This keymap is using a custom chording engine. Head out to my (DennyTom) user space to find the source files and details. - -To make a real keymap from the JSON file, run - -```sh -python3 parser.py keymap_def.json keymap.c -``` - -Somehow it fits the whole keyboard on 20 keys. For longer typing sessions, use the ASET NIOP mode. \ No newline at end of file diff --git a/keyboards/gboards/butterstick/keymaps/dennytom/keymap.c b/keyboards/gboards/butterstick/keymaps/dennytom/keymap.c deleted file mode 100644 index c90431cd9d..0000000000 --- a/keyboards/gboards/butterstick/keymaps/dennytom/keymap.c +++ /dev/null @@ -1,1418 +0,0 @@ -#include QMK_KEYBOARD_H - -#define CHORD_TIMEOUT 100 -#define DANCE_TIMEOUT 200 -#define LEADER_TIMEOUT 750 -#define TAP_TIMEOUT 50 -#define LONG_PRESS_MULTIPLIER 3 -#define DYNAMIC_MACRO_MAX_LENGTH 20 -#define COMMAND_MAX_LENGTH 5 -#define LEADER_MAX_LENGTH 5 -#define HASH_TYPE uint32_t -#define NUMBER_OF_KEYS 20 -#define DEFAULT_PSEUDOLAYER QWERTY - -#define H_TOP1 ((HASH_TYPE) 1 << 0) -#define H_TOP2 ((HASH_TYPE) 1 << 1) -#define H_TOP3 ((HASH_TYPE) 1 << 2) -#define H_TOP4 ((HASH_TYPE) 1 << 3) -#define H_TOP5 ((HASH_TYPE) 1 << 4) -#define H_TOP6 ((HASH_TYPE) 1 << 5) -#define H_TOP7 ((HASH_TYPE) 1 << 6) -#define H_TOP8 ((HASH_TYPE) 1 << 7) -#define H_TOP9 ((HASH_TYPE) 1 << 8) -#define H_TOP0 ((HASH_TYPE) 1 << 9) -#define H_BOT1 ((HASH_TYPE) 1 << 10) -#define H_BOT2 ((HASH_TYPE) 1 << 11) -#define H_BOT3 ((HASH_TYPE) 1 << 12) -#define H_BOT4 ((HASH_TYPE) 1 << 13) -#define H_BOT5 ((HASH_TYPE) 1 << 14) -#define H_BOT6 ((HASH_TYPE) 1 << 15) -#define H_BOT7 ((HASH_TYPE) 1 << 16) -#define H_BOT8 ((HASH_TYPE) 1 << 17) -#define H_BOT9 ((HASH_TYPE) 1 << 18) -#define H_BOT0 ((HASH_TYPE) 1 << 19) - -enum internal_keycodes { - TOP1 = SAFE_RANGE, - TOP2, TOP3, TOP4, TOP5, TOP6, TOP7, TOP8, TOP9, TOP0, BOT1, BOT2, BOT3, BOT4, BOT5, BOT6, BOT7, BOT8, BOT9, BOT0, - FIRST_INTERNAL_KEYCODE = TOP1, - LAST_INTERNAL_KEYCODE = BOT0 -}; - -enum pseudolayers { - ALWAYS_ON, QWERTY, NUM, MOV, MOUSE, ASETNIOP, ASETNIOP_123, ASETNIOP_FN -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_butter(TOP1, TOP2, TOP3, TOP4, TOP5, TOP6, TOP7, TOP8, TOP9, TOP0, BOT1, BOT2, BOT3, BOT4, BOT5, BOT6, BOT7, BOT8, BOT9, BOT0), -}; -size_t keymapsCount = 1; - -uint8_t keycodes_buffer_array[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -uint8_t command_buffer[] = { - 0, 0, 0, 0, 0 -}; - -uint16_t leader_buffer[] = { - 0, 0, 0, 0, 0 -}; - -uint8_t dynamic_macro_buffer[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -enum chord_states { - IDLE, - READY, - ACTIVATED, - DEACTIVATED, - PRESS_FROM_ACTIVE, - FINISHED_FROM_ACTIVE, - IDLE_IN_DANCE, - READY_IN_DANCE, - FINISHED, - LOCKED, - READY_LOCKED, - RESTART, - IN_ONE_SHOT -}; - -struct Chord { - uint32_t keycodes_hash; - uint8_t pseudolayer; - uint8_t* state; - uint8_t* counter; - uint16_t value1; - uint8_t value2; - void (*function) (const struct Chord*); -}; - -uint8_t current_pseudolayer = DEFAULT_PSEUDOLAYER; -bool lock_next = false; -uint16_t chord_timer = 0; -uint16_t dance_timer = 0; -bool autoshift_mode = true; -uint8_t keycode_index = 0; -uint8_t command_mode = 0; -uint8_t command_ind = 0; -bool in_leader_mode = false; -uint8_t leader_ind = 0; -uint16_t leader_timer = 0; -uint8_t dynamic_macro_mode = false; -uint8_t dynamic_macro_ind = 0; -bool a_key_went_through = false; -struct Chord* last_chord = NULL; - -bool handle_US_ANSI_shifted_keys(int16_t keycode, bool in) { - bool is_US_ANSI_shifted = true; - - int16_t regular_keycode = KC_NO; - switch (keycode) { - case KC_TILDE: - regular_keycode = KC_GRAVE; - break; - case KC_EXCLAIM: - regular_keycode = KC_1; - break; - case KC_AT: - regular_keycode = KC_2; - break; - case KC_HASH: - regular_keycode = KC_3; - break; - case KC_DOLLAR: - regular_keycode = KC_4; - break; - case KC_PERCENT: - regular_keycode = KC_5; - break; - case KC_CIRCUMFLEX: - regular_keycode = KC_6; - break; - case KC_AMPERSAND: - regular_keycode = KC_7; - break; - case KC_ASTERISK: - regular_keycode = KC_8; - break; - case KC_LEFT_PAREN: - regular_keycode = KC_9; - break; - case KC_RIGHT_PAREN: - regular_keycode = KC_0; - break; - case KC_UNDERSCORE: - regular_keycode = KC_MINUS; - break; - case KC_PLUS: - regular_keycode = KC_EQUAL; - break; - case KC_LEFT_CURLY_BRACE: - regular_keycode = KC_LEFT_BRACKET; - break; - case KC_RIGHT_CURLY_BRACE: - regular_keycode = KC_RIGHT_BRACKET; - break; - case KC_PIPE: - regular_keycode = KC_BACKSLASH; - break; - case KC_COLON: - regular_keycode = KC_SEMICOLON; - break; - case KC_DOUBLE_QUOTE: - regular_keycode = KC_QUOTE; - break; - case KC_LEFT_ANGLE_BRACKET: - regular_keycode = KC_COMMA; - break; - case KC_RIGHT_ANGLE_BRACKET: - regular_keycode = KC_DOT; - break; - case KC_QUESTION: - regular_keycode = KC_SLASH; - break; - default: - is_US_ANSI_shifted = false; - } - if (is_US_ANSI_shifted) { - if (in) { - register_code(KC_LSFT); - register_code(regular_keycode); - } else { - unregister_code(regular_keycode); - unregister_code(KC_LSFT); - } - } - return is_US_ANSI_shifted; -} - -void key_in(int16_t keycode) { - if (command_mode == 1 && command_ind < COMMAND_MAX_LENGTH) { - command_buffer[command_ind] = keycode; - command_ind++; - a_key_went_through = true; - } else if (in_leader_mode && leader_ind < LEADER_MAX_LENGTH) { - leader_buffer[leader_ind] = keycode; - leader_ind++; - a_key_went_through = true; - } else if (dynamic_macro_mode && dynamic_macro_ind < DYNAMIC_MACRO_MAX_LENGTH) { - dynamic_macro_buffer[dynamic_macro_ind] = keycode; - dynamic_macro_ind++; - a_key_went_through = true; - } else { - if (!handle_US_ANSI_shifted_keys(keycode, true)) { - register_code(keycode); - } - send_keyboard_report(); - a_key_went_through = true; - } -} - -void key_out(int16_t keycode) { - if (command_mode == 0) { - if (!handle_US_ANSI_shifted_keys(keycode, false)) { - if (command_mode == 0 && in_leader_mode == false && dynamic_macro_mode == false) { - unregister_code(keycode); - } - } - send_keyboard_report(); - } -} - -void tap_key(int16_t keycode) { - key_in(keycode); - wait_ms(TAP_TIMEOUT); - key_out(keycode); -} -void single_dance(const struct Chord* self) { - switch (*self->state) { - case ACTIVATED: - key_in(self->value1); - break; - case DEACTIVATED: - key_out(self->value1); - *self->state = IDLE; - break; - case RESTART: - key_out(self->value1); - break; - default: - break; - } -} - -void key_layer_dance(const struct Chord* self) { - switch (*self->state) { - case ACTIVATED: - current_pseudolayer = self->value2; - a_key_went_through = false; - break; - case DEACTIVATED: - case RESTART: - if (!a_key_went_through) { - tap_key(self->value1); - } - current_pseudolayer = self->pseudolayer; - *self->state = IDLE; // does not have effect if the state was RESTART - break; - default: - break; - } -} - -void key_mod_dance(const struct Chord* self) { - switch (*self->state) { - case ACTIVATED: - key_in(self->value2); - a_key_went_through = false; - break; - case DEACTIVATED: - case RESTART: - key_out(self->value2); - if (!a_key_went_through) { - tap_key(self->value1); - } - *self->state = IDLE; // does not have effect if the state was RESTART - break; - default: - break; - } -} - -void key_key_dance(const struct Chord* self) { - switch (*self->state) { - case ACTIVATED: - break; - case DEACTIVATED: - tap_key(self->value1); - *self->state = IDLE; - break; - case FINISHED: - case PRESS_FROM_ACTIVE: - key_in(self->value2); - break; - case RESTART: - key_out(self->value2); - break; - default: - break; - } -} - -void autoshift_dance_impl(const struct Chord* self) { - switch (*self->state) { - case ACTIVATED: - *self->counter = 0; - break; - case DEACTIVATED: - case RESTART: - tap_key(self->value1); - *self->state = IDLE; - break; - case FINISHED_FROM_ACTIVE: - if (*self->counter == (LONG_PRESS_MULTIPLIER - 2)) { - key_in(KC_LSFT); - tap_key(self->value1); - key_out(KC_LSFT); - *self->state = IDLE; - // the skip to IDLE is usually just a lag optimization, - // in this case it has a logic function, on a short - // press (still longer than a tap) the key does not get shifted - } else { - *self->counter += 1; - *self->state = PRESS_FROM_ACTIVE; - dance_timer = timer_read(); - } - break; - default: - break; - } -} - -void autoshift_dance(const struct Chord* self) { - if (autoshift_mode) { - autoshift_dance_impl(self); - } else { - single_dance(self); - } -} - -void autoshift_toggle(const struct Chord* self){ - if (*self->state == ACTIVATED) { - autoshift_mode = !autoshift_mode; - *self->state = IDLE; - } -} - -void temp_pseudolayer(const struct Chord* self) { - switch (*self->state) { - case ACTIVATED: - current_pseudolayer = self->value1; - break; - case DEACTIVATED: - current_pseudolayer = self->pseudolayer; - *self->state = IDLE; - break; - case RESTART: - current_pseudolayer = self->pseudolayer; - break; - default: - break; - } -} - -void perm_pseudolayer(const struct Chord* self) { - if (*self->state == ACTIVATED) { - current_pseudolayer = self->value1; - *self->state = IDLE; - } -} - -void switch_layer(const struct Chord* self) { - if (*self->state == ACTIVATED) { - layer_move(self->value1); - *self->state = IDLE; - } -} - -void lock(const struct Chord* self) { - if (*self->state == ACTIVATED) { - lock_next = true; - *self->state = IDLE; - } -} - -void one_shot_key(const struct Chord* self) { - switch (*self->state) { - case ACTIVATED: - break; - case DEACTIVATED: - key_in(self->value1); - *self->state = IN_ONE_SHOT; - break; - case FINISHED: - case PRESS_FROM_ACTIVE: - key_in(self->value1); - a_key_went_through = false; - break; - case RESTART: - if (a_key_went_through) { - key_out(self->value1); - } else { - *self->state = IN_ONE_SHOT; - } - default: - break; - } -} - -void one_shot_layer(const struct Chord* self) { - switch (*self->state) { - case ACTIVATED: - break; - case DEACTIVATED: - current_pseudolayer = self->value1; - *self->state = IN_ONE_SHOT; - break; - case FINISHED: - case PRESS_FROM_ACTIVE: - current_pseudolayer = self->value1; - a_key_went_through = false; - break; - case RESTART: - if (a_key_went_through) { - current_pseudolayer = self->pseudolayer; - } else { - *self->state = IN_ONE_SHOT; - } - default: - break; - } -} - -void command(const struct Chord* self) { - if (*self->state == ACTIVATED) { - command_mode++; - *self->state = IDLE; - } -} - -bool identical(uint16_t* buffer1, uint16_t* buffer2) { - bool same = true; - for (int i = 0; i < LEADER_MAX_LENGTH; i++) { - same = same && (buffer1[i] == buffer2[i]); - } - return same; -} - -void leader(const struct Chord* self) { - if (*self->state == ACTIVATED) { - in_leader_mode = true; - *self->state = IDLE; - } -} - -void dynamic_macro_record(const struct Chord* self) { - if (*self->state == ACTIVATED) { - for (int i = 0; i < DYNAMIC_MACRO_MAX_LENGTH; i++) { - dynamic_macro_buffer[i] = 0; - } - dynamic_macro_mode = true; - *self->state = IDLE; - } -} - -void dynamic_macro_next(const struct Chord* self) { - if (*self->state == ACTIVATED) { - if (dynamic_macro_mode && dynamic_macro_ind < DYNAMIC_MACRO_MAX_LENGTH) { - dynamic_macro_buffer[dynamic_macro_ind] = 0; - dynamic_macro_ind++; - } - *self->state = IDLE; - } -} - -void dynamic_macro_end(const struct Chord* self) { - if (*self->state == ACTIVATED) { - if (dynamic_macro_mode) { - dynamic_macro_mode = false; - } - *self->state = IDLE; - } -} - -void dynamic_macro_play(const struct Chord* self) { - if (*self->state == ACTIVATED) { - int ind_start = 0; - while (ind_start < DYNAMIC_MACRO_MAX_LENGTH) { - for (int i = ind_start; i < DYNAMIC_MACRO_MAX_LENGTH; i++) { - if (dynamic_macro_buffer[i] == 0) { - break; - } - register_code(dynamic_macro_buffer[i]); - } - send_keyboard_report(); - wait_ms(TAP_TIMEOUT); - for (int i = ind_start; i < DYNAMIC_MACRO_MAX_LENGTH; i++) { - if (dynamic_macro_buffer[i] == 0) { - ind_start = i + 1; - break; - } - unregister_code(dynamic_macro_buffer[i]); - } - send_keyboard_report(); - } - *self->state = IDLE; - } -} - -void clear(const struct Chord* self); - -void reset_keyboard_kb(void){ -#ifdef WATCHDOG_ENABLE - MCUSR = 0; - wdt_disable(); - wdt_reset(); -#endif - reset_keyboard(); -} - -void reset(const struct Chord* self) { - if (*self->state == ACTIVATED) { - reset_keyboard_kb(); - } -} - -uint8_t state_0 = IDLE; -const struct Chord chord_0 PROGMEM = {H_TOP1 + H_TOP2 + H_BOT1 + H_BOT2, ALWAYS_ON, &state_0, NULL, 0, 0, lock}; -uint8_t state_1 = IDLE; -const struct Chord chord_1 PROGMEM = {H_TOP2 + H_TOP3 + H_BOT2 + H_BOT3, ALWAYS_ON, &state_1, NULL, 0, 0, autoshift_toggle}; -uint8_t state_2 = IDLE; -const struct Chord chord_2 PROGMEM = {H_TOP5 + H_TOP6 + H_BOT5 + H_BOT6, ALWAYS_ON, &state_2, NULL, 0, 0, command}; -uint8_t state_3 = IDLE; -const struct Chord chord_3 PROGMEM = {H_TOP1 + H_TOP2 + H_TOP9 + H_TOP0 + H_BOT1 + H_BOT2 + H_BOT9 + H_BOT0, ALWAYS_ON, &state_3, NULL, 0, 0, clear}; -uint8_t state_4 = IDLE; -uint8_t counter_4 = 0; -const struct Chord chord_4 PROGMEM = {H_TOP1, QWERTY, &state_4, &counter_4, KC_Q, 0, autoshift_dance}; -uint8_t state_5 = IDLE; -uint8_t counter_5 = 0; -const struct Chord chord_5 PROGMEM = {H_TOP2, QWERTY, &state_5, &counter_5, KC_W, 0, autoshift_dance}; -uint8_t state_6 = IDLE; -uint8_t counter_6 = 0; -const struct Chord chord_6 PROGMEM = {H_TOP3, QWERTY, &state_6, &counter_6, KC_E, 0, autoshift_dance}; -uint8_t state_7 = IDLE; -uint8_t counter_7 = 0; -const struct Chord chord_7 PROGMEM = {H_TOP4, QWERTY, &state_7, &counter_7, KC_R, 0, autoshift_dance}; -uint8_t state_8 = IDLE; -uint8_t counter_8 = 0; -const struct Chord chord_8 PROGMEM = {H_TOP5, QWERTY, &state_8, &counter_8, KC_T, 0, autoshift_dance}; -uint8_t state_9 = IDLE; -uint8_t counter_9 = 0; -const struct Chord chord_9 PROGMEM = {H_TOP6, QWERTY, &state_9, &counter_9, KC_Y, 0, autoshift_dance}; -uint8_t state_10 = IDLE; -uint8_t counter_10 = 0; -const struct Chord chord_10 PROGMEM = {H_TOP7, QWERTY, &state_10, &counter_10, KC_U, 0, autoshift_dance}; -uint8_t state_11 = IDLE; -uint8_t counter_11 = 0; -const struct Chord chord_11 PROGMEM = {H_TOP8, QWERTY, &state_11, &counter_11, KC_I, 0, autoshift_dance}; -uint8_t state_12 = IDLE; -uint8_t counter_12 = 0; -const struct Chord chord_12 PROGMEM = {H_TOP9, QWERTY, &state_12, &counter_12, KC_O, 0, autoshift_dance}; -uint8_t state_13 = IDLE; -uint8_t counter_13 = 0; -const struct Chord chord_13 PROGMEM = {H_TOP0, QWERTY, &state_13, &counter_13, KC_P, 0, autoshift_dance}; -uint8_t state_14 = IDLE; -uint8_t counter_14 = 0; -const struct Chord chord_14 PROGMEM = {H_TOP1 + H_BOT1, QWERTY, &state_14, &counter_14, KC_A, 0, autoshift_dance}; -uint8_t state_15 = IDLE; -uint8_t counter_15 = 0; -const struct Chord chord_15 PROGMEM = {H_TOP2 + H_BOT2, QWERTY, &state_15, &counter_15, KC_S, 0, autoshift_dance}; -uint8_t state_16 = IDLE; -uint8_t counter_16 = 0; -const struct Chord chord_16 PROGMEM = {H_TOP3 + H_BOT3, QWERTY, &state_16, &counter_16, KC_D, 0, autoshift_dance}; -uint8_t state_17 = IDLE; -uint8_t counter_17 = 0; -const struct Chord chord_17 PROGMEM = {H_TOP4 + H_BOT4, QWERTY, &state_17, &counter_17, KC_F, 0, autoshift_dance}; -uint8_t state_18 = IDLE; -uint8_t counter_18 = 0; -const struct Chord chord_18 PROGMEM = {H_TOP5 + H_BOT5, QWERTY, &state_18, &counter_18, KC_G, 0, autoshift_dance}; -uint8_t state_19 = IDLE; -uint8_t counter_19 = 0; -const struct Chord chord_19 PROGMEM = {H_TOP6 + H_BOT6, QWERTY, &state_19, &counter_19, KC_H, 0, autoshift_dance}; -uint8_t state_20 = IDLE; -uint8_t counter_20 = 0; -const struct Chord chord_20 PROGMEM = {H_TOP7 + H_BOT7, QWERTY, &state_20, &counter_20, KC_J, 0, autoshift_dance}; -uint8_t state_21 = IDLE; -uint8_t counter_21 = 0; -const struct Chord chord_21 PROGMEM = {H_TOP8 + H_BOT8, QWERTY, &state_21, &counter_21, KC_K, 0, autoshift_dance}; -uint8_t state_22 = IDLE; -uint8_t counter_22 = 0; -const struct Chord chord_22 PROGMEM = {H_TOP9 + H_BOT9, QWERTY, &state_22, &counter_22, KC_L, 0, autoshift_dance}; -uint8_t state_23 = IDLE; -uint8_t counter_23 = 0; -const struct Chord chord_23 PROGMEM = {H_TOP0 + H_BOT0, QWERTY, &state_23, &counter_23, KC_SEMICOLON, 0, autoshift_dance}; -uint8_t state_24 = IDLE; -uint8_t counter_24 = 0; -const struct Chord chord_24 PROGMEM = {H_BOT1, QWERTY, &state_24, &counter_24, KC_Z, 0, autoshift_dance}; -uint8_t state_25 = IDLE; -uint8_t counter_25 = 0; -const struct Chord chord_25 PROGMEM = {H_BOT2, QWERTY, &state_25, &counter_25, KC_X, 0, autoshift_dance}; -uint8_t state_26 = IDLE; -uint8_t counter_26 = 0; -const struct Chord chord_26 PROGMEM = {H_BOT3, QWERTY, &state_26, &counter_26, KC_C, 0, autoshift_dance}; -uint8_t state_27 = IDLE; -uint8_t counter_27 = 0; -const struct Chord chord_27 PROGMEM = {H_BOT4, QWERTY, &state_27, &counter_27, KC_V, 0, autoshift_dance}; -uint8_t state_28 = IDLE; -uint8_t counter_28 = 0; -const struct Chord chord_28 PROGMEM = {H_BOT5, QWERTY, &state_28, &counter_28, KC_B, 0, autoshift_dance}; -uint8_t state_29 = IDLE; -uint8_t counter_29 = 0; -const struct Chord chord_29 PROGMEM = {H_BOT6, QWERTY, &state_29, &counter_29, KC_N, 0, autoshift_dance}; -uint8_t state_30 = IDLE; -uint8_t counter_30 = 0; -const struct Chord chord_30 PROGMEM = {H_BOT7, QWERTY, &state_30, &counter_30, KC_M, 0, autoshift_dance}; -uint8_t state_31 = IDLE; -uint8_t counter_31 = 0; -const struct Chord chord_31 PROGMEM = {H_BOT8, QWERTY, &state_31, &counter_31, KC_COMMA, 0, autoshift_dance}; -uint8_t state_32 = IDLE; -uint8_t counter_32 = 0; -const struct Chord chord_32 PROGMEM = {H_BOT9, QWERTY, &state_32, &counter_32, KC_DOT, 0, autoshift_dance}; -uint8_t state_33 = IDLE; -uint8_t counter_33 = 0; -const struct Chord chord_33 PROGMEM = {H_BOT0, QWERTY, &state_33, &counter_33, KC_SLASH, 0, autoshift_dance}; -uint8_t state_34 = IDLE; -const struct Chord chord_34 PROGMEM = {H_TOP1 + H_TOP2, QWERTY, &state_34, NULL, KC_ESC, 0, single_dance}; -uint8_t state_35 = IDLE; -const struct Chord chord_35 PROGMEM = {H_TOP2 + H_TOP3, QWERTY, &state_35, NULL, MOV, 0, temp_pseudolayer}; -uint8_t state_36 = IDLE; -const struct Chord chord_36 PROGMEM = {H_TOP3 + H_TOP4, QWERTY, &state_36, NULL, KC_TAB, 0, single_dance}; -uint8_t state_37 = IDLE; -const struct Chord chord_37 PROGMEM = {H_TOP5 + H_TOP6, QWERTY, &state_37, NULL, KC_RGUI, 0, one_shot_key}; -uint8_t state_38 = IDLE; -const struct Chord chord_38 PROGMEM = {H_TOP7 + H_TOP8, QWERTY, &state_38, NULL, KC_INS, 0, single_dance}; -uint8_t state_39 = IDLE; -const struct Chord chord_39 PROGMEM = {H_TOP8 + H_TOP9, QWERTY, &state_39, NULL, KC_DEL, 0, single_dance}; -uint8_t state_40 = IDLE; -const struct Chord chord_40 PROGMEM = {H_TOP9 + H_TOP0, QWERTY, &state_40, NULL, KC_BSPC, 0, single_dance}; -uint8_t state_41 = IDLE; -const struct Chord chord_41 PROGMEM = {H_TOP9 + H_TOP0 + H_BOT9 + H_BOT0, QWERTY, &state_41, NULL, KC_ENTER, 0, single_dance}; -uint8_t state_42 = IDLE; -const struct Chord chord_42 PROGMEM = {H_BOT1 + H_BOT2, QWERTY, &state_42, NULL, KC_LSFT, 0, one_shot_key}; -uint8_t state_43 = IDLE; -const struct Chord chord_43 PROGMEM = {H_BOT2 + H_BOT3, QWERTY, &state_43, NULL, KC_LCTL, 0, one_shot_key}; -uint8_t state_44 = IDLE; -const struct Chord chord_44 PROGMEM = {H_BOT3 + H_BOT4, QWERTY, &state_44, NULL, KC_LALT, 0, one_shot_key}; -uint8_t state_45 = IDLE; -const struct Chord chord_45 PROGMEM = {H_BOT4 + H_BOT5, QWERTY, &state_45, NULL, NUM, 0, one_shot_layer}; -uint8_t state_46 = IDLE; -const struct Chord chord_46 PROGMEM = {H_BOT5 + H_BOT6, QWERTY, &state_46, NULL, KC_LGUI, 0, one_shot_key}; -uint8_t state_47 = IDLE; -const struct Chord chord_47 PROGMEM = {H_BOT6 + H_BOT7, QWERTY, &state_47, NULL, NUM, 0, one_shot_layer}; -uint8_t state_48 = IDLE; -const struct Chord chord_48 PROGMEM = {H_BOT7 + H_BOT8, QWERTY, &state_48, NULL, KC_RALT, 0, one_shot_key}; -uint8_t state_49 = IDLE; -const struct Chord chord_49 PROGMEM = {H_BOT8 + H_BOT9, QWERTY, &state_49, NULL, KC_RCTL, 0, one_shot_key}; -uint8_t state_50 = IDLE; -const struct Chord chord_50 PROGMEM = {H_BOT9 + H_BOT0, QWERTY, &state_50, NULL, KC_RSFT, 0, one_shot_key}; -uint8_t state_51 = IDLE; -const struct Chord chord_51 PROGMEM = {H_BOT1 + H_BOT0, QWERTY, &state_51, NULL, KC_SPACE, 0, single_dance}; -uint8_t state_52 = IDLE; -const struct Chord chord_52 PROGMEM = {H_TOP1 + H_TOP2 + H_TOP3 + H_TOP4, QWERTY, &state_52, NULL, MOUSE, 0, temp_pseudolayer}; -uint8_t state_53 = IDLE; -const struct Chord chord_53 PROGMEM = {H_TOP1 + H_TOP2 + H_TOP3 + H_TOP4, QWERTY, &state_53, NULL, ASETNIOP, 0, perm_pseudolayer}; -uint8_t state_54 = IDLE; -uint8_t counter_54 = 0; -const struct Chord chord_54 PROGMEM = {H_TOP1, NUM, &state_54, &counter_54, KC_1, 0, autoshift_dance}; -uint8_t state_55 = IDLE; -uint8_t counter_55 = 0; -const struct Chord chord_55 PROGMEM = {H_TOP2, NUM, &state_55, &counter_55, KC_2, 0, autoshift_dance}; -uint8_t state_56 = IDLE; -uint8_t counter_56 = 0; -const struct Chord chord_56 PROGMEM = {H_TOP3, NUM, &state_56, &counter_56, KC_3, 0, autoshift_dance}; -uint8_t state_57 = IDLE; -uint8_t counter_57 = 0; -const struct Chord chord_57 PROGMEM = {H_TOP4, NUM, &state_57, &counter_57, KC_4, 0, autoshift_dance}; -uint8_t state_58 = IDLE; -uint8_t counter_58 = 0; -const struct Chord chord_58 PROGMEM = {H_TOP5, NUM, &state_58, &counter_58, KC_5, 0, autoshift_dance}; -uint8_t state_59 = IDLE; -uint8_t counter_59 = 0; -const struct Chord chord_59 PROGMEM = {H_TOP6, NUM, &state_59, &counter_59, KC_6, 0, autoshift_dance}; -uint8_t state_60 = IDLE; -uint8_t counter_60 = 0; -const struct Chord chord_60 PROGMEM = {H_TOP7, NUM, &state_60, &counter_60, KC_7, 0, autoshift_dance}; -uint8_t state_61 = IDLE; -uint8_t counter_61 = 0; -const struct Chord chord_61 PROGMEM = {H_TOP8, NUM, &state_61, &counter_61, KC_8, 0, autoshift_dance}; -uint8_t state_62 = IDLE; -uint8_t counter_62 = 0; -const struct Chord chord_62 PROGMEM = {H_TOP9, NUM, &state_62, &counter_62, KC_9, 0, autoshift_dance}; -uint8_t state_63 = IDLE; -uint8_t counter_63 = 0; -const struct Chord chord_63 PROGMEM = {H_TOP0, NUM, &state_63, &counter_63, KC_0, 0, autoshift_dance}; -uint8_t state_64 = IDLE; -const struct Chord chord_64 PROGMEM = {H_TOP1 + H_BOT1, NUM, &state_64, NULL, KC_F1, 0, single_dance}; -uint8_t state_65 = IDLE; -const struct Chord chord_65 PROGMEM = {H_TOP2 + H_BOT2, NUM, &state_65, NULL, KC_F2, 0, single_dance}; -uint8_t state_66 = IDLE; -const struct Chord chord_66 PROGMEM = {H_TOP3 + H_BOT3, NUM, &state_66, NULL, KC_F3, 0, single_dance}; -uint8_t state_67 = IDLE; -const struct Chord chord_67 PROGMEM = {H_TOP4 + H_BOT4, NUM, &state_67, NULL, KC_F4, 0, single_dance}; -uint8_t state_68 = IDLE; -const struct Chord chord_68 PROGMEM = {H_TOP5 + H_BOT5, NUM, &state_68, NULL, KC_F5, 0, single_dance}; -uint8_t state_69 = IDLE; -const struct Chord chord_69 PROGMEM = {H_TOP6 + H_BOT6, NUM, &state_69, NULL, KC_F6, 0, single_dance}; -uint8_t state_70 = IDLE; -const struct Chord chord_70 PROGMEM = {H_TOP7 + H_BOT7, NUM, &state_70, NULL, KC_F7, 0, single_dance}; -uint8_t state_71 = IDLE; -const struct Chord chord_71 PROGMEM = {H_TOP8 + H_BOT8, NUM, &state_71, NULL, KC_F8, 0, single_dance}; -uint8_t state_72 = IDLE; -const struct Chord chord_72 PROGMEM = {H_TOP9 + H_BOT9, NUM, &state_72, NULL, KC_F9, 0, single_dance}; -uint8_t state_73 = IDLE; -const struct Chord chord_73 PROGMEM = {H_TOP0 + H_BOT0, NUM, &state_73, NULL, KC_F10, 0, single_dance}; -uint8_t state_74 = IDLE; -uint8_t counter_74 = 0; -const struct Chord chord_74 PROGMEM = {H_BOT1, NUM, &state_74, &counter_74, KC_GRAVE, 0, autoshift_dance}; -uint8_t state_75 = IDLE; -uint8_t counter_75 = 0; -const struct Chord chord_75 PROGMEM = {H_BOT2, NUM, &state_75, &counter_75, KC_MINUS, 0, autoshift_dance}; -uint8_t state_76 = IDLE; -uint8_t counter_76 = 0; -const struct Chord chord_76 PROGMEM = {H_BOT3, NUM, &state_76, &counter_76, KC_EQUAL, 0, autoshift_dance}; -uint8_t state_77 = IDLE; -uint8_t counter_77 = 0; -const struct Chord chord_77 PROGMEM = {H_BOT4, NUM, &state_77, &counter_77, KC_LEFT_BRACKET, 0, autoshift_dance}; -uint8_t state_78 = IDLE; -uint8_t counter_78 = 0; -const struct Chord chord_78 PROGMEM = {H_BOT5, NUM, &state_78, &counter_78, KC_RIGHT_BRACKET, 0, autoshift_dance}; -uint8_t state_79 = IDLE; -uint8_t counter_79 = 0; -const struct Chord chord_79 PROGMEM = {H_BOT6, NUM, &state_79, &counter_79, KC_BACKSLASH, 0, autoshift_dance}; -uint8_t state_80 = IDLE; -uint8_t counter_80 = 0; -const struct Chord chord_80 PROGMEM = {H_BOT7, NUM, &state_80, &counter_80, KC_QUOTE, 0, autoshift_dance}; -uint8_t state_81 = IDLE; -const struct Chord chord_81 PROGMEM = {H_BOT9, NUM, &state_81, NULL, KC_F11, 0, single_dance}; -uint8_t state_82 = IDLE; -const struct Chord chord_82 PROGMEM = {H_BOT0, NUM, &state_82, NULL, KC_F12, 0, single_dance}; -uint8_t state_83 = IDLE; -const struct Chord chord_83 PROGMEM = {H_TOP1 + H_TOP2, NUM, &state_83, NULL, KC_ESC, 0, single_dance}; -uint8_t state_84 = IDLE; -const struct Chord chord_84 PROGMEM = {H_TOP3 + H_TOP4, NUM, &state_84, NULL, KC_TAB, 0, single_dance}; -uint8_t state_85 = IDLE; -const struct Chord chord_85 PROGMEM = {H_TOP5 + H_TOP6, NUM, &state_85, NULL, KC_RGUI, 0, one_shot_key}; -uint8_t state_86 = IDLE; -const struct Chord chord_86 PROGMEM = {H_TOP7 + H_TOP8, NUM, &state_86, NULL, KC_INS, 0, single_dance}; -uint8_t state_87 = IDLE; -const struct Chord chord_87 PROGMEM = {H_TOP8 + H_TOP9, NUM, &state_87, NULL, KC_DEL, 0, single_dance}; -uint8_t state_88 = IDLE; -const struct Chord chord_88 PROGMEM = {H_TOP9 + H_TOP0, NUM, &state_88, NULL, KC_BSPC, 0, single_dance}; -uint8_t state_89 = IDLE; -const struct Chord chord_89 PROGMEM = {H_TOP9 + H_TOP0 + H_BOT9 + H_BOT0, NUM, &state_89, NULL, KC_ENTER, 0, single_dance}; -uint8_t state_90 = IDLE; -const struct Chord chord_90 PROGMEM = {H_BOT1 + H_BOT2, NUM, &state_90, NULL, KC_LSFT, 0, one_shot_key}; -uint8_t state_91 = IDLE; -const struct Chord chord_91 PROGMEM = {H_BOT2 + H_BOT3, NUM, &state_91, NULL, KC_LCTL, 0, one_shot_key}; -uint8_t state_92 = IDLE; -const struct Chord chord_92 PROGMEM = {H_BOT3 + H_BOT4, NUM, &state_92, NULL, KC_LALT, 0, one_shot_key}; -uint8_t state_93 = IDLE; -const struct Chord chord_93 PROGMEM = {H_BOT5 + H_BOT6, NUM, &state_93, NULL, KC_LGUI, 0, one_shot_key}; -uint8_t state_94 = IDLE; -const struct Chord chord_94 PROGMEM = {H_BOT7 + H_BOT8, NUM, &state_94, NULL, KC_RALT, 0, one_shot_key}; -uint8_t state_95 = IDLE; -const struct Chord chord_95 PROGMEM = {H_BOT8 + H_BOT9, NUM, &state_95, NULL, KC_RCTL, 0, one_shot_key}; -uint8_t state_96 = IDLE; -const struct Chord chord_96 PROGMEM = {H_BOT9 + H_BOT0, NUM, &state_96, NULL, KC_RSFT, 0, one_shot_key}; -uint8_t state_97 = IDLE; -const struct Chord chord_97 PROGMEM = {H_BOT1 + H_BOT0, NUM, &state_97, NULL, KC_SPACE, 0, single_dance}; -uint8_t state_98 = IDLE; -const struct Chord chord_98 PROGMEM = {H_TOP7, MOV, &state_98, NULL, KC_HOME, 0, single_dance}; -uint8_t state_99 = IDLE; -const struct Chord chord_99 PROGMEM = {H_TOP8, MOV, &state_99, NULL, KC_UP, 0, single_dance}; -uint8_t state_100 = IDLE; -const struct Chord chord_100 PROGMEM = {H_TOP9, MOV, &state_100, NULL, KC_END, 0, single_dance}; -uint8_t state_101 = IDLE; -const struct Chord chord_101 PROGMEM = {H_TOP0, MOV, &state_101, NULL, KC_PGUP, 0, single_dance}; -uint8_t state_102 = IDLE; -const struct Chord chord_102 PROGMEM = {H_BOT3, MOV, &state_102, NULL, KC_LSFT, 0, single_dance}; -uint8_t state_103 = IDLE; -const struct Chord chord_103 PROGMEM = {H_BOT4, MOV, &state_103, NULL, KC_LCTL, 0, single_dance}; -uint8_t state_104 = IDLE; -const struct Chord chord_104 PROGMEM = {H_BOT5, MOV, &state_104, NULL, KC_LALT, 0, single_dance}; -uint8_t state_105 = IDLE; -const struct Chord chord_105 PROGMEM = {H_BOT6, MOV, &state_105, NULL, KC_LGUI, 0, single_dance}; -uint8_t state_106 = IDLE; -const struct Chord chord_106 PROGMEM = {H_BOT7, MOV, &state_106, NULL, KC_LEFT, 0, single_dance}; -uint8_t state_107 = IDLE; -const struct Chord chord_107 PROGMEM = {H_BOT8, MOV, &state_107, NULL, KC_DOWN, 0, single_dance}; -uint8_t state_108 = IDLE; -const struct Chord chord_108 PROGMEM = {H_BOT9, MOV, &state_108, NULL, KC_RIGHT, 0, single_dance}; -uint8_t state_109 = IDLE; -const struct Chord chord_109 PROGMEM = {H_BOT0, MOV, &state_109, NULL, KC_PGDN, 0, single_dance}; -uint8_t state_110 = IDLE; -const struct Chord chord_110 PROGMEM = {H_TOP7, MOUSE, &state_110, NULL, KC_BTN1, 0, single_dance}; -uint8_t state_111 = IDLE; -const struct Chord chord_111 PROGMEM = {H_TOP8, MOUSE, &state_111, NULL, KC_MS_U, 0, single_dance}; -uint8_t state_112 = IDLE; -const struct Chord chord_112 PROGMEM = {H_TOP9, MOUSE, &state_112, NULL, KC_BTN2, 0, single_dance}; -uint8_t state_113 = IDLE; -const struct Chord chord_113 PROGMEM = {H_TOP0, MOUSE, &state_113, NULL, KC_WH_U, 0, single_dance}; -uint8_t state_114 = IDLE; -const struct Chord chord_114 PROGMEM = {H_BOT3, MOUSE, &state_114, NULL, KC_LSFT, 0, single_dance}; -uint8_t state_115 = IDLE; -const struct Chord chord_115 PROGMEM = {H_BOT4, MOUSE, &state_115, NULL, KC_LCTL, 0, single_dance}; -uint8_t state_116 = IDLE; -const struct Chord chord_116 PROGMEM = {H_BOT5, MOUSE, &state_116, NULL, KC_LALT, 0, single_dance}; -uint8_t state_117 = IDLE; -const struct Chord chord_117 PROGMEM = {H_BOT6, MOUSE, &state_117, NULL, KC_LGUI, 0, single_dance}; -uint8_t state_118 = IDLE; -const struct Chord chord_118 PROGMEM = {H_BOT7, MOUSE, &state_118, NULL, KC_MS_L, 0, single_dance}; -uint8_t state_119 = IDLE; -const struct Chord chord_119 PROGMEM = {H_BOT8, MOUSE, &state_119, NULL, KC_MS_D, 0, single_dance}; -uint8_t state_120 = IDLE; -const struct Chord chord_120 PROGMEM = {H_BOT9, MOUSE, &state_120, NULL, KC_MS_R, 0, single_dance}; -uint8_t state_121 = IDLE; -const struct Chord chord_121 PROGMEM = {H_BOT0, MOUSE, &state_121, NULL, KC_WH_D, 0, single_dance}; -uint8_t state_122 = IDLE; -const struct Chord chord_122 PROGMEM = {H_TOP1, ASETNIOP, &state_122, NULL, KC_A, 0, single_dance}; -uint8_t state_123 = IDLE; -const struct Chord chord_123 PROGMEM = {H_TOP2, ASETNIOP, &state_123, NULL, KC_S, 0, single_dance}; -uint8_t state_124 = IDLE; -const struct Chord chord_124 PROGMEM = {H_TOP3, ASETNIOP, &state_124, NULL, KC_E, 0, single_dance}; -uint8_t state_125 = IDLE; -const struct Chord chord_125 PROGMEM = {H_TOP4, ASETNIOP, &state_125, NULL, KC_T, 0, single_dance}; -uint8_t state_126 = IDLE; -const struct Chord chord_126 PROGMEM = {H_TOP7, ASETNIOP, &state_126, NULL, KC_N, 0, single_dance}; -uint8_t state_127 = IDLE; -const struct Chord chord_127 PROGMEM = {H_TOP8, ASETNIOP, &state_127, NULL, KC_I, 0, single_dance}; -uint8_t state_128 = IDLE; -const struct Chord chord_128 PROGMEM = {H_TOP9, ASETNIOP, &state_128, NULL, KC_O, 0, single_dance}; -uint8_t state_129 = IDLE; -const struct Chord chord_129 PROGMEM = {H_TOP0, ASETNIOP, &state_129, NULL, KC_P, 0, single_dance}; -uint8_t state_130 = IDLE; -const struct Chord chord_130 PROGMEM = {H_TOP1 + H_TOP2, ASETNIOP, &state_130, NULL, KC_W, 0, single_dance}; -uint8_t state_131 = IDLE; -const struct Chord chord_131 PROGMEM = {H_TOP2 + H_TOP3, ASETNIOP, &state_131, NULL, KC_D, 0, single_dance}; -uint8_t state_132 = IDLE; -const struct Chord chord_132 PROGMEM = {H_TOP3 + H_TOP4, ASETNIOP, &state_132, NULL, KC_R, 0, single_dance}; -uint8_t state_133 = IDLE; -const struct Chord chord_133 PROGMEM = {H_TOP4 + H_TOP7, ASETNIOP, &state_133, NULL, KC_B, 0, single_dance}; -uint8_t state_134 = IDLE; -const struct Chord chord_134 PROGMEM = {H_TOP7 + H_TOP8, ASETNIOP, &state_134, NULL, KC_H, 0, single_dance}; -uint8_t state_135 = IDLE; -const struct Chord chord_135 PROGMEM = {H_TOP8 + H_TOP9, ASETNIOP, &state_135, NULL, KC_L, 0, single_dance}; -uint8_t state_136 = IDLE; -const struct Chord chord_136 PROGMEM = {H_TOP9 + H_TOP0, ASETNIOP, &state_136, NULL, KC_SEMICOLON, 0, single_dance}; -uint8_t state_137 = IDLE; -const struct Chord chord_137 PROGMEM = {H_TOP1 + H_TOP3, ASETNIOP, &state_137, NULL, KC_X, 0, single_dance}; -uint8_t state_138 = IDLE; -const struct Chord chord_138 PROGMEM = {H_TOP2 + H_TOP4, ASETNIOP, &state_138, NULL, KC_C, 0, single_dance}; -uint8_t state_139 = IDLE; -const struct Chord chord_139 PROGMEM = {H_TOP3 + H_TOP7, ASETNIOP, &state_139, NULL, KC_Y, 0, single_dance}; -uint8_t state_140 = IDLE; -const struct Chord chord_140 PROGMEM = {H_TOP4 + H_TOP8, ASETNIOP, &state_140, NULL, KC_V, 0, single_dance}; -uint8_t state_141 = IDLE; -const struct Chord chord_141 PROGMEM = {H_TOP7 + H_TOP9, ASETNIOP, &state_141, NULL, KC_U, 0, single_dance}; -uint8_t state_142 = IDLE; -const struct Chord chord_142 PROGMEM = {H_TOP1 + H_TOP4, ASETNIOP, &state_142, NULL, KC_F, 0, single_dance}; -uint8_t state_143 = IDLE; -const struct Chord chord_143 PROGMEM = {H_TOP2 + H_TOP7, ASETNIOP, &state_143, NULL, KC_J, 0, single_dance}; -uint8_t state_144 = IDLE; -const struct Chord chord_144 PROGMEM = {H_TOP3 + H_TOP8, ASETNIOP, &state_144, NULL, KC_COMMA, 0, single_dance}; -uint8_t state_145 = IDLE; -const struct Chord chord_145 PROGMEM = {H_TOP4 + H_TOP9, ASETNIOP, &state_145, NULL, KC_G, 0, single_dance}; -uint8_t state_146 = IDLE; -const struct Chord chord_146 PROGMEM = {H_TOP7 + H_TOP0, ASETNIOP, &state_146, NULL, KC_M, 0, single_dance}; -uint8_t state_147 = IDLE; -const struct Chord chord_147 PROGMEM = {H_TOP1 + H_TOP7, ASETNIOP, &state_147, NULL, KC_Q, 0, single_dance}; -uint8_t state_148 = IDLE; -const struct Chord chord_148 PROGMEM = {H_TOP2 + H_TOP8, ASETNIOP, &state_148, NULL, KC_K, 0, single_dance}; -uint8_t state_149 = IDLE; -const struct Chord chord_149 PROGMEM = {H_TOP3 + H_TOP9, ASETNIOP, &state_149, NULL, KC_MINUS, 0, single_dance}; -uint8_t state_150 = IDLE; -const struct Chord chord_150 PROGMEM = {H_TOP4 + H_TOP0, ASETNIOP, &state_150, NULL, KC_BSPC, 0, single_dance}; -uint8_t state_151 = IDLE; -const struct Chord chord_151 PROGMEM = {H_TOP1 + H_TOP8, ASETNIOP, &state_151, NULL, KC_Z, 0, single_dance}; -uint8_t state_152 = IDLE; -const struct Chord chord_152 PROGMEM = {H_TOP2 + H_TOP9, ASETNIOP, &state_152, NULL, KC_DOT, 0, single_dance}; -uint8_t state_153 = IDLE; -const struct Chord chord_153 PROGMEM = {H_TOP3 + H_TOP0, ASETNIOP, &state_153, NULL, KC_QUOTE, 0, single_dance}; -uint8_t state_154 = IDLE; -const struct Chord chord_154 PROGMEM = {H_TOP1 + H_TOP9, ASETNIOP, &state_154, NULL, KC_LEFT_BRACKET, 0, single_dance}; -uint8_t state_155 = IDLE; -const struct Chord chord_155 PROGMEM = {H_TOP2 + H_TOP0, ASETNIOP, &state_155, NULL, KC_RIGHT_BRACKET, 0, single_dance}; -uint8_t state_156 = IDLE; -const struct Chord chord_156 PROGMEM = {H_TOP1 + H_TOP0, ASETNIOP, &state_156, NULL, KC_SLASH, 0, single_dance}; -uint8_t state_157 = IDLE; -const struct Chord chord_157 PROGMEM = {H_TOP5, ASETNIOP, &state_157, NULL, KC_ESC, 0, single_dance}; -uint8_t state_158 = IDLE; -const struct Chord chord_158 PROGMEM = {H_TOP6, ASETNIOP, &state_158, NULL, KC_DEL, 0, single_dance}; -uint8_t state_159 = IDLE; -const struct Chord chord_159 PROGMEM = {H_BOT4, ASETNIOP, &state_159, NULL, KC_LSFT, 0, single_dance}; -uint8_t state_160 = IDLE; -const struct Chord chord_160 PROGMEM = {H_BOT5, ASETNIOP, &state_160, NULL, KC_LCTL, 0, single_dance}; -uint8_t state_161 = IDLE; -const struct Chord chord_161 PROGMEM = {H_BOT6, ASETNIOP, &state_161, NULL, KC_LALT, 0, single_dance}; -uint8_t state_162 = IDLE; -uint8_t counter_162 = 0; -const struct Chord chord_162 PROGMEM = {H_BOT7, ASETNIOP, &state_162, &counter_162, KC_SPACE, ASETNIOP_123, key_layer_dance}; -uint8_t state_163 = IDLE; -const struct Chord chord_163 PROGMEM = {H_TOP5 + H_TOP6, ASETNIOP, &state_163, NULL, KC_LGUI, 0, single_dance}; -uint8_t state_164 = IDLE; -const struct Chord chord_164 PROGMEM = {H_TOP1 + H_TOP2 + H_TOP3 + H_TOP4, ASETNIOP, &state_164, NULL, QWERTY, 0, perm_pseudolayer}; -uint8_t state_165 = IDLE; -const struct Chord chord_165 PROGMEM = {H_BOT4 + H_BOT7, ASETNIOP, &state_165, NULL, ASETNIOP_FN, 0, temp_pseudolayer}; -uint8_t state_166 = IDLE; -const struct Chord chord_166 PROGMEM = {H_TOP1, ASETNIOP_123, &state_166, NULL, KC_1, 0, single_dance}; -uint8_t state_167 = IDLE; -const struct Chord chord_167 PROGMEM = {H_TOP2, ASETNIOP_123, &state_167, NULL, KC_2, 0, single_dance}; -uint8_t state_168 = IDLE; -const struct Chord chord_168 PROGMEM = {H_TOP3, ASETNIOP_123, &state_168, NULL, KC_3, 0, single_dance}; -uint8_t state_169 = IDLE; -const struct Chord chord_169 PROGMEM = {H_TOP4, ASETNIOP_123, &state_169, NULL, KC_4, 0, single_dance}; -uint8_t state_170 = IDLE; -const struct Chord chord_170 PROGMEM = {H_TOP7, ASETNIOP_123, &state_170, NULL, KC_7, 0, single_dance}; -uint8_t state_171 = IDLE; -const struct Chord chord_171 PROGMEM = {H_TOP8, ASETNIOP_123, &state_171, NULL, KC_8, 0, single_dance}; -uint8_t state_172 = IDLE; -const struct Chord chord_172 PROGMEM = {H_TOP9, ASETNIOP_123, &state_172, NULL, KC_9, 0, single_dance}; -uint8_t state_173 = IDLE; -const struct Chord chord_173 PROGMEM = {H_TOP0, ASETNIOP_123, &state_173, NULL, KC_0, 0, single_dance}; -uint8_t state_174 = IDLE; -const struct Chord chord_174 PROGMEM = {H_TOP3 + H_TOP4, ASETNIOP_123, &state_174, NULL, KC_5, 0, single_dance}; -uint8_t state_175 = IDLE; -const struct Chord chord_175 PROGMEM = {H_TOP4 + H_TOP7, ASETNIOP_123, &state_175, NULL, KC_EQUAL, 0, single_dance}; -uint8_t state_176 = IDLE; -const struct Chord chord_176 PROGMEM = {H_TOP7 + H_TOP8, ASETNIOP_123, &state_176, NULL, KC_6, 0, single_dance}; -uint8_t state_177 = IDLE; -const struct Chord chord_177 PROGMEM = {H_TOP8 + H_TOP9, ASETNIOP_123, &state_177, NULL, KC_BACKSLASH, 0, single_dance}; -uint8_t state_178 = IDLE; -const struct Chord chord_178 PROGMEM = {H_TOP9 + H_TOP0, ASETNIOP_123, &state_178, NULL, KC_SEMICOLON, 0, single_dance}; -uint8_t state_179 = IDLE; -const struct Chord chord_179 PROGMEM = {H_TOP4 + H_TOP0, ASETNIOP_123, &state_179, NULL, KC_BSPC, 0, single_dance}; -uint8_t state_180 = IDLE; -const struct Chord chord_180 PROGMEM = {H_TOP5, ASETNIOP_123, &state_180, NULL, KC_ESC, 0, single_dance}; -uint8_t state_181 = IDLE; -const struct Chord chord_181 PROGMEM = {H_TOP6, ASETNIOP_123, &state_181, NULL, KC_DEL, 0, single_dance}; -uint8_t state_182 = IDLE; -const struct Chord chord_182 PROGMEM = {H_BOT4, ASETNIOP_123, &state_182, NULL, KC_LSFT, 0, single_dance}; -uint8_t state_183 = IDLE; -const struct Chord chord_183 PROGMEM = {H_BOT5, ASETNIOP_123, &state_183, NULL, KC_LCTL, 0, single_dance}; -uint8_t state_184 = IDLE; -const struct Chord chord_184 PROGMEM = {H_BOT6, ASETNIOP_123, &state_184, NULL, KC_LALT, 0, single_dance}; -uint8_t state_185 = IDLE; -const struct Chord chord_185 PROGMEM = {H_TOP5 + H_TOP6, ASETNIOP_123, &state_185, NULL, KC_LGUI, 0, single_dance}; -uint8_t state_186 = IDLE; -const struct Chord chord_186 PROGMEM = {H_TOP1, ASETNIOP_FN, &state_186, NULL, KC_HOME, 0, single_dance}; -uint8_t state_187 = IDLE; -const struct Chord chord_187 PROGMEM = {H_TOP2, ASETNIOP_FN, &state_187, NULL, KC_PGDN, 0, single_dance}; -uint8_t state_188 = IDLE; -const struct Chord chord_188 PROGMEM = {H_TOP3, ASETNIOP_FN, &state_188, NULL, KC_PGUP, 0, single_dance}; -uint8_t state_189 = IDLE; -const struct Chord chord_189 PROGMEM = {H_TOP4, ASETNIOP_FN, &state_189, NULL, KC_END, 0, single_dance}; -uint8_t state_190 = IDLE; -const struct Chord chord_190 PROGMEM = {H_TOP7, ASETNIOP_FN, &state_190, NULL, KC_LEFT, 0, single_dance}; -uint8_t state_191 = IDLE; -const struct Chord chord_191 PROGMEM = {H_TOP8, ASETNIOP_FN, &state_191, NULL, KC_DOWN, 0, single_dance}; -uint8_t state_192 = IDLE; -const struct Chord chord_192 PROGMEM = {H_TOP9, ASETNIOP_FN, &state_192, NULL, KC_UP, 0, single_dance}; -uint8_t state_193 = IDLE; -const struct Chord chord_193 PROGMEM = {H_TOP0, ASETNIOP_FN, &state_193, NULL, KC_RIGHT, 0, single_dance}; -uint8_t state_194 = IDLE; -const struct Chord chord_194 PROGMEM = {H_TOP1 + H_TOP2, ASETNIOP_FN, &state_194, NULL, KC_F1, 0, single_dance}; -uint8_t state_195 = IDLE; -const struct Chord chord_195 PROGMEM = {H_TOP2 + H_TOP3, ASETNIOP_FN, &state_195, NULL, KC_F2, 0, single_dance}; -uint8_t state_196 = IDLE; -const struct Chord chord_196 PROGMEM = {H_TOP3 + H_TOP4, ASETNIOP_FN, &state_196, NULL, KC_F3, 0, single_dance}; -uint8_t state_197 = IDLE; -const struct Chord chord_197 PROGMEM = {H_TOP4 + H_TOP7, ASETNIOP_FN, &state_197, NULL, KC_F4, 0, single_dance}; -uint8_t state_198 = IDLE; -const struct Chord chord_198 PROGMEM = {H_TOP7 + H_TOP8, ASETNIOP_FN, &state_198, NULL, KC_F5, 0, single_dance}; -uint8_t state_199 = IDLE; -const struct Chord chord_199 PROGMEM = {H_TOP8 + H_TOP9, ASETNIOP_FN, &state_199, NULL, KC_F6, 0, single_dance}; -uint8_t state_200 = IDLE; -const struct Chord chord_200 PROGMEM = {H_TOP9 + H_TOP0, ASETNIOP_FN, &state_200, NULL, KC_F7, 0, single_dance}; -uint8_t state_201 = IDLE; -const struct Chord chord_201 PROGMEM = {H_TOP1 + H_TOP3, ASETNIOP_FN, &state_201, NULL, KC_F10, 0, single_dance}; -uint8_t state_202 = IDLE; -const struct Chord chord_202 PROGMEM = {H_TOP8 + H_TOP0, ASETNIOP_FN, &state_202, NULL, KC_F8, 0, single_dance}; -uint8_t state_203 = IDLE; -const struct Chord chord_203 PROGMEM = {H_TOP1 + H_TOP4, ASETNIOP_FN, &state_203, NULL, KC_F11, 0, single_dance}; -uint8_t state_204 = IDLE; -const struct Chord chord_204 PROGMEM = {H_TOP7 + H_TOP0, ASETNIOP_FN, &state_204, NULL, KC_F9, 0, single_dance}; -uint8_t state_205 = IDLE; -const struct Chord chord_205 PROGMEM = {H_TOP1 + H_TOP7, ASETNIOP_FN, &state_205, NULL, KC_F12, 0, single_dance}; -uint8_t state_206 = IDLE; -const struct Chord chord_206 PROGMEM = {H_TOP4 + H_TOP0, ASETNIOP_FN, &state_206, NULL, KC_BSPC, 0, single_dance}; -uint8_t state_207 = IDLE; -const struct Chord chord_207 PROGMEM = {H_TOP5, ASETNIOP_FN, &state_207, NULL, KC_ESC, 0, single_dance}; -uint8_t state_208 = IDLE; -const struct Chord chord_208 PROGMEM = {H_TOP6, ASETNIOP_FN, &state_208, NULL, KC_DEL, 0, single_dance}; -uint8_t state_209 = IDLE; -const struct Chord chord_209 PROGMEM = {H_BOT4, ASETNIOP_FN, &state_209, NULL, KC_LSFT, 0, single_dance}; -uint8_t state_210 = IDLE; -const struct Chord chord_210 PROGMEM = {H_BOT5, ASETNIOP_FN, &state_210, NULL, KC_LCTL, 0, single_dance}; -uint8_t state_211 = IDLE; -const struct Chord chord_211 PROGMEM = {H_BOT6, ASETNIOP_FN, &state_211, NULL, KC_LALT, 0, single_dance}; -uint8_t state_212 = IDLE; -const struct Chord chord_212 PROGMEM = {H_TOP5 + H_TOP6, ASETNIOP_FN, &state_212, NULL, KC_LGUI, 0, single_dance}; - -const struct Chord* const list_of_chords[] PROGMEM = { - &chord_0, &chord_1, &chord_2, &chord_3, &chord_4, &chord_5, &chord_6, &chord_7, &chord_8, &chord_9, &chord_10, &chord_11, &chord_12, &chord_13, &chord_14, &chord_15, &chord_16, &chord_17, &chord_18, &chord_19, &chord_20, &chord_21, &chord_22, &chord_23, &chord_24, &chord_25, &chord_26, &chord_27, &chord_28, &chord_29, &chord_30, &chord_31, &chord_32, &chord_33, &chord_34, &chord_35, &chord_36, &chord_37, &chord_38, &chord_39, &chord_40, &chord_41, &chord_42, &chord_43, &chord_44, &chord_45, &chord_46, &chord_47, &chord_48, &chord_49, &chord_50, &chord_51, &chord_52, &chord_53, &chord_54, &chord_55, &chord_56, &chord_57, &chord_58, &chord_59, &chord_60, &chord_61, &chord_62, &chord_63, &chord_64, &chord_65, &chord_66, &chord_67, &chord_68, &chord_69, &chord_70, &chord_71, &chord_72, &chord_73, &chord_74, &chord_75, &chord_76, &chord_77, &chord_78, &chord_79, &chord_80, &chord_81, &chord_82, &chord_83, &chord_84, &chord_85, &chord_86, &chord_87, &chord_88, &chord_89, &chord_90, &chord_91, &chord_92, &chord_93, &chord_94, &chord_95, &chord_96, &chord_97, &chord_98, &chord_99, &chord_100, &chord_101, &chord_102, &chord_103, &chord_104, &chord_105, &chord_106, &chord_107, &chord_108, &chord_109, &chord_110, &chord_111, &chord_112, &chord_113, &chord_114, &chord_115, &chord_116, &chord_117, &chord_118, &chord_119, &chord_120, &chord_121, &chord_122, &chord_123, &chord_124, &chord_125, &chord_126, &chord_127, &chord_128, &chord_129, &chord_130, &chord_131, &chord_132, &chord_133, &chord_134, &chord_135, &chord_136, &chord_137, &chord_138, &chord_139, &chord_140, &chord_141, &chord_142, &chord_143, &chord_144, &chord_145, &chord_146, &chord_147, &chord_148, &chord_149, &chord_150, &chord_151, &chord_152, &chord_153, &chord_154, &chord_155, &chord_156, &chord_157, &chord_158, &chord_159, &chord_160, &chord_161, &chord_162, &chord_163, &chord_164, &chord_165, &chord_166, &chord_167, &chord_168, &chord_169, &chord_170, &chord_171, &chord_172, &chord_173, &chord_174, &chord_175, &chord_176, &chord_177, &chord_178, &chord_179, &chord_180, &chord_181, &chord_182, &chord_183, &chord_184, &chord_185, &chord_186, &chord_187, &chord_188, &chord_189, &chord_190, &chord_191, &chord_192, &chord_193, &chord_194, &chord_195, &chord_196, &chord_197, &chord_198, &chord_199, &chord_200, &chord_201, &chord_202, &chord_203, &chord_204, &chord_205, &chord_206, &chord_207, &chord_208, &chord_209, &chord_210, &chord_211, &chord_212 -}; - -const uint16_t** const leader_triggers PROGMEM = NULL; -void (*leader_functions[]) (void) = {}; - -#define NUMBER_OF_CHORDS 213 -#define NUMBER_OF_LEADER_COMBOS 0 - -bool are_hashed_keycodes_in_sound(HASH_TYPE keycodes_hash, HASH_TYPE sound) { - return (keycodes_hash & sound) == keycodes_hash; -} - -uint8_t keycode_to_index(uint16_t keycode) { - return keycode - FIRST_INTERNAL_KEYCODE; -} - -void sound_keycode_array(uint16_t keycode) { - uint8_t index = keycode_to_index(keycode); - keycode_index++; - keycodes_buffer_array[index] = keycode_index; -} - -void silence_keycode_hash_array(HASH_TYPE keycode_hash) { - for (int i = 0; i < NUMBER_OF_KEYS; i++) { - bool index_in_hash = ((HASH_TYPE) 1 << i) & keycode_hash; - if (index_in_hash) { - uint8_t current_val = keycodes_buffer_array[i]; - keycodes_buffer_array[i] = 0; - for (int j = 0; j < NUMBER_OF_KEYS; j++) { - if (keycodes_buffer_array[j] > current_val) { - keycodes_buffer_array[j]--; - } - } - keycode_index--; - } - } -} - -bool are_hashed_keycodes_in_array(HASH_TYPE keycode_hash) { - for (int i = 0; i < NUMBER_OF_KEYS; i++) { - bool index_in_hash = ((HASH_TYPE) 1 << i) & keycode_hash; - bool index_in_array = (bool) keycodes_buffer_array[i]; - if (index_in_hash && !index_in_array) { - return false; - } - } - return true; -} - -void kill_one_shots(void) { - struct Chord chord_storage; - struct Chord* chord_ptr; - struct Chord* chord; - - for (int i = 0; i < NUMBER_OF_CHORDS; i++) { - chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]); - memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord)); - chord = &chord_storage; - - if (*chord->state == IN_ONE_SHOT) { - *chord->state = RESTART; - chord->function(chord); - if (*chord->state == RESTART) { - *chord->state = IDLE; - } - } - } -} - -void process_finished_dances(void) { - struct Chord chord_storage; - struct Chord* chord_ptr; - struct Chord* chord; - - for (int i = 0; i < NUMBER_OF_CHORDS; i++) { - chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]); - memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord)); - chord = &chord_storage; - - if (*chord->state == ACTIVATED) { - *chord->state = PRESS_FROM_ACTIVE; - chord->function(chord); - if (a_key_went_through) { - kill_one_shots(); - } - dance_timer = timer_read(); - } else if (*chord->state == IDLE_IN_DANCE) { - *chord->state = FINISHED; - chord->function(chord); - if (*chord->state == FINISHED) { - *chord->state = RESTART; - if (*chord->state == RESTART) { - *chord->state = IDLE; - } - } - } else if (*chord->state == PRESS_FROM_ACTIVE) { - *chord->state = FINISHED_FROM_ACTIVE; - chord->function(chord); - if (a_key_went_through) { - kill_one_shots(); - } - dance_timer = timer_read(); - } - } -} - -uint8_t keycodes_buffer_array_min(uint8_t* first_keycode_index) { - for (int i = 0; i < NUMBER_OF_KEYS; i++) { - if (keycodes_buffer_array[i] == 1) { - if (first_keycode_index != NULL) { - *first_keycode_index = (uint8_t) i; - } - return 1; - } - } - return 0; -} - -void remove_subchords(void) { - struct Chord chord_storage; - struct Chord* chord_ptr; - struct Chord* chord; - - for (int i = 0; i < NUMBER_OF_CHORDS; i++) { - chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]); - memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord)); - chord = &chord_storage; - - if (!(*chord->state == READY || *chord->state == READY_IN_DANCE || *chord->state == READY_LOCKED)) { - continue; - } - - struct Chord chord_storage_2; - struct Chord* chord_ptr_2; - struct Chord* chord_2; - for (int j = 0; j < NUMBER_OF_CHORDS; j++) { - if (i == j) {continue;} - - chord_ptr_2 = (struct Chord*) pgm_read_word (&list_of_chords[j]); - memcpy_P(&chord_storage_2, chord_ptr_2, sizeof(struct Chord)); - chord_2 = &chord_storage_2; - - if (are_hashed_keycodes_in_sound(chord_2->keycodes_hash, chord->keycodes_hash)) { - if (*chord_2->state == READY) { - *chord_2->state = IDLE; - } - if (*chord_2->state == READY_IN_DANCE) { - *chord_2->state = IDLE_IN_DANCE; - } - if (*chord_2->state == READY_LOCKED) { - *chord_2->state = LOCKED; - } - } - } - } -} - -void process_ready_chords(void) { - uint8_t first_keycode_index = 0; - while (keycodes_buffer_array_min(&first_keycode_index)) { - // find ready chords - struct Chord chord_storage; - struct Chord* chord_ptr; - struct Chord* chord; - - for (int i = 0; i < NUMBER_OF_CHORDS; i++) { - chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]); - memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord)); - chord = &chord_storage; - - // if the chord does not contain the first keycode - bool contains_first_keycode = ((uint32_t) 1 << first_keycode_index) & chord->keycodes_hash; - if (!contains_first_keycode) { - continue; - } - - if (!are_hashed_keycodes_in_array(chord->keycodes_hash)){ - continue; - } - - if (*chord->state == LOCKED) { - *chord->state = READY_LOCKED; - continue; - } - - if (!(chord->pseudolayer == current_pseudolayer || chord->pseudolayer == ALWAYS_ON)) { - continue; - } - - if (*chord->state == IDLE) { - *chord->state = READY; - continue; - } - - if (*chord->state == IDLE_IN_DANCE) { - *chord->state = READY_IN_DANCE; - } - } - - // remove subchords - remove_subchords(); - - // execute logic - // this should be only one chord - for (int i = 0; i < NUMBER_OF_CHORDS; i++) { - chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]); - memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord)); - chord = &chord_storage; - - if (*chord->state == READY_LOCKED) { - *chord->state = RESTART; - chord->function(chord); - if (*chord->state == RESTART) { - *chord->state = IDLE; - } - break; - } - - if (*chord->state == READY || *chord->state == READY_IN_DANCE) { - if (last_chord && last_chord != chord) { - process_finished_dances(); - } - - bool lock_next_prev_state = lock_next; - - *chord->state = ACTIVATED; - chord->function(chord); - dance_timer = timer_read(); - - if (lock_next && lock_next == lock_next_prev_state) { - lock_next = false; - *chord->state = PRESS_FROM_ACTIVE; - chord->function(chord); - if (*chord->state == PRESS_FROM_ACTIVE) { - *chord->state = LOCKED; - } - if (a_key_went_through) { - kill_one_shots(); - } - } - break; - } - } - - // silence notes - silence_keycode_hash_array(chord->keycodes_hash); - } -} - -void deactivate_active_chords(uint16_t keycode) { - HASH_TYPE hash = (HASH_TYPE)1 << (keycode - SAFE_RANGE); - bool broken; - struct Chord chord_storage; - struct Chord* chord_ptr; - struct Chord* chord; - - for (int i = 0; i < NUMBER_OF_CHORDS; i++) { - chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]); - memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord)); - chord = &chord_storage; - - broken = are_hashed_keycodes_in_sound(hash, chord->keycodes_hash); - if (!broken) { - continue; - } - - switch (*chord->state) { - case ACTIVATED: - *chord->state = DEACTIVATED; - chord->function(chord); - - if (*chord->state == DEACTIVATED) { - dance_timer = timer_read(); - *chord->state = IDLE_IN_DANCE; - } - if (*chord->state != IN_ONE_SHOT) { - kill_one_shots(); - } - break; - case PRESS_FROM_ACTIVE: - case FINISHED_FROM_ACTIVE: - *chord->state = RESTART; - chord->function(chord); - if (*chord->state == RESTART) { - *chord->state = IDLE; - } - kill_one_shots(); - break; - default: - break; - } - } - -} - -void process_command(void) { - command_mode = 0; - for (int i = 0; i < COMMAND_MAX_LENGTH; i++) { - if (command_buffer[i]) { - register_code(command_buffer[i]); - } - send_keyboard_report(); - } - wait_ms(TAP_TIMEOUT); - for (int i = 0; i < COMMAND_MAX_LENGTH; i++) { - if (command_buffer[i]) { - unregister_code(command_buffer[i]); - } - send_keyboard_report(); - } - for (int i = 0; i < COMMAND_MAX_LENGTH; i++) { - command_buffer[i] = 0; - } - command_ind = 0; -} - -void process_leader(void) { - in_leader_mode = false; - for (int i = 0; i < NUMBER_OF_LEADER_COMBOS; i++) { - uint16_t trigger[LEADER_MAX_LENGTH]; - memcpy_P(trigger, leader_triggers[i], LEADER_MAX_LENGTH * sizeof(uint16_t)); - - if (identical(leader_buffer, trigger)) { - (*leader_functions[i])(); - break; - } - } - for (int i = 0; i < LEADER_MAX_LENGTH; i++) { - leader_buffer[i] = 0; - } -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (keycode < FIRST_INTERNAL_KEYCODE || keycode > LAST_INTERNAL_KEYCODE) { - return true; - } - - if (record->event.pressed) { - sound_keycode_array(keycode); - } else { - process_ready_chords(); - deactivate_active_chords(keycode); - } - chord_timer = timer_read(); - leader_timer = timer_read(); - - return false; -} - -void matrix_scan_user(void) { - bool chord_timer_expired = timer_elapsed(chord_timer) > CHORD_TIMEOUT; - if (chord_timer_expired && keycodes_buffer_array_min(NULL)) { - process_ready_chords(); - } - - bool dance_timer_expired = timer_elapsed(dance_timer) > DANCE_TIMEOUT; - if (dance_timer_expired) { // would love to have && in_dance but not sure how - process_finished_dances(); - } - - bool in_command_mode = command_mode == 2; - if (in_command_mode) { - process_command(); - } - - bool leader_timer_expired = timer_elapsed(leader_timer) > LEADER_TIMEOUT; - if (leader_timer_expired && in_leader_mode) { - process_leader(); - } - -} - -void clear(const struct Chord* self) { - if (*self->state == ACTIVATED) { - // kill all chords - struct Chord chord_storage; - struct Chord* chord_ptr; - struct Chord* chord; - - for (int i = 0; i < NUMBER_OF_CHORDS; i++) { - chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]); - memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord)); - chord = &chord_storage; - - *chord->state = IDLE; - - if (chord->counter) { - *chord->counter = 0; - } - } - - // clear keyboard - clear_keyboard(); - send_keyboard_report(); - - // switch to default pseudolayer - current_pseudolayer = DEFAULT_PSEUDOLAYER; - - // clear all keyboard states - lock_next = false; - autoshift_mode = true; - command_mode = 0; - in_leader_mode = false; - leader_ind = 0; - dynamic_macro_mode = false; - a_key_went_through = false; - - for (int i = 0; i < DYNAMIC_MACRO_MAX_LENGTH; i++) { - dynamic_macro_buffer[i] = 0; - } - } -} \ No newline at end of file diff --git a/keyboards/gboards/butterstick/keymaps/dennytom/keymap_def.json b/keyboards/gboards/butterstick/keymaps/dennytom/keymap_def.json deleted file mode 100644 index 16f02ca529..0000000000 --- a/keyboards/gboards/butterstick/keymaps/dennytom/keymap_def.json +++ /dev/null @@ -1,309 +0,0 @@ -{ - "keys": [ - "TOP1", "TOP2", "TOP3", "TOP4", "TOP5", "TOP6", "TOP7", "TOP8", "TOP9", "TOP0", - "BOT1", "BOT2", "BOT3", "BOT4", "BOT5", "BOT6", "BOT7", "BOT8", "BOT9", "BOT0" - ], - "parameters": { - "layout_function_name": "LAYOUT_butter", - "chord_timeout": 100, - "dance_timeout": 200, - "leader_timeout": 750, - "tap_timeout": 50, - "command_max_length": 5, - "leader_max_length": 5, - "dynamic_macro_max_length": 20, - "string_max_length": 16, - "long_press_multiplier": 3, - "default_pseudolayer": "QWERTY" - }, - "layers": [ - { - "type": "auto" - } - ], - "chord_sets": [ - { - "name": "rows", - "chords": [ - ["TOP1"], ["TOP2"], ["TOP3"], ["TOP4"], ["TOP5"], ["TOP6"], ["TOP7"], ["TOP8"], ["TOP9"], ["TOP0"], - ["TOP1", "BOT1"], ["TOP2", "BOT2"], ["TOP3", "BOT3"], ["TOP4", "BOT4"], ["TOP5", "BOT5"], ["TOP6", "BOT6"], ["TOP7", "BOT7"], ["TOP8", "BOT8"], ["TOP9", "BOT9"], ["TOP0", "BOT0"], - ["BOT1"], ["BOT2"], ["BOT3"], ["BOT4"], ["BOT5"], ["BOT6"], ["BOT7"], ["BOT8"], ["BOT9"], ["BOT0"] - ] - }, - { - "name": "cols", - "chords": [ - ["TOP1", "TOP2"], ["TOP2", "TOP3"], ["TOP3", "TOP4"], ["TOP4", "TOP5"], ["TOP5", "TOP6"], ["TOP6", "TOP7"], ["TOP7", "TOP8"], ["TOP8", "TOP9"], ["TOP9", "TOP0"], - ["TOP1", "TOP2", "BOT1", "BOT2"], ["TOP2", "TOP3", "BOT2", "BOT3"], ["TOP3", "TOP4", "BOT3", "BOT4"], ["TOP4", "TOP5", "BOT4", "BOT5"], ["TOP5", "TOP6", "BOT5", "BOT6"], ["TOP6", "TOP7", "BOT6", "BOT7"], ["TOP7", "TOP8", "BOT7", "BOT8"], ["TOP8", "TOP9", "BOT8", "BOT9"], ["TOP9", "TOP0", "BOT9", "BOT0"], - ["BOT1", "BOT2"], ["BOT2", "BOT3"], ["BOT3", "BOT4"], ["BOT4", "BOT5"], ["BOT5", "BOT6"], ["BOT6", "BOT7"], ["BOT7", "BOT8"], ["BOT8", "BOT9"], ["BOT9", "BOT0"] - ] - }, - { - "name": "asetniop", - "chords": [ - ["TOP1"], ["TOP2"], ["TOP3"], ["TOP4"], ["TOP7"], ["TOP8"], ["TOP9"], ["TOP0"], - ["TOP1", "TOP2"], ["TOP2", "TOP3"], ["TOP3", "TOP4"], ["TOP4", "TOP7"], ["TOP7", "TOP8"], ["TOP8", "TOP9"], ["TOP9", "TOP0"], - ["TOP1", "TOP3"], ["TOP2", "TOP4"], ["TOP3", "TOP7"], ["TOP4", "TOP8"], ["TOP7", "TOP9"], ["TOP8", "TOP0"], - ["TOP1", "TOP4"], ["TOP2", "TOP7"], ["TOP3", "TOP8"], ["TOP4", "TOP9"], ["TOP7", "TOP0"], - ["TOP1", "TOP7"], ["TOP2", "TOP8"], ["TOP3", "TOP9"], ["TOP4", "TOP0"], - ["TOP1", "TOP8"], ["TOP2", "TOP9"], ["TOP3", "TOP0"], - ["TOP1", "TOP9"], ["TOP2", "TOP0"], - ["TOP1", "TOP0"] - ] - } - ], - "pseudolayers": [ - { - "name": "ALWAYS_ON", - "chords": [ - { - "type": "chord_set", - "set": "cols", - "keycodes": [ - " ", " ", " ", " ", " ", " ", " ", " ", " ", - "LOCK", " AT", " ", " ", " CMD", " ", " ", " ", " ", - " ", " ", " ", " ", " ", " ", " ", " ", " " - ] - }, - { - "type": "visual", - "chord": [ - "X", "X", " ", " ", " ", " ", " ", " ", "X", "X", - "X", "X", " ", " ", " ", " ", " ", " ", "X", "X" - ], - "keycode": "CLEAR_KB" - } - ] - }, - { - "name": "QWERTY", - "chords": [ - { - "type": "chord_set", - "set": "rows", - "keycodes": [ - "AS(Q)", "AS(W)", "AS(E)", "AS(R)", "AS(T)", "AS(Y)", "AS(U)", "AS(I)", "AS(O)", "AS(P)", - "AS(A)", "AS(S)", "AS(D)", "AS(F)", "AS(G)", "AS(H)", "AS(J)", "AS(K)", "AS(L)", "AS(;)", - "AS(Z)", "AS(X)", "AS(C)", "AS(V)", "AS(B)", "AS(N)", "AS(M)", "AS(,)", "AS(.)", "AS(/)" - ] - }, - { - "type": "chord_set", - "set": "cols", - "keycodes": [ - " ESC", "MO(MOV)", " TAB", " ", "O(RGUI)", " ", " INS", " DEL", " BSPC", - " ", " ", " ", " ", " ", " ", " ", " ", " ENTER", - "O(LSFT)", "O(LCTL)", "O(LALT)", "O(NUM)", "O(LGUI)", "O(NUM)", "O(RALT)", "O(RCTL)", "O(RSFT)" - ] - }, - { - "type": "simple", - "chord": ["BOT1", "BOT0"], - "keycode": "SPACE" - }, - { - "type": "visual", - "chord": [ - "X", "X", "X", "X", " ", " ", " ", " ", " ", " ", - " ", " ", " ", " ", " ", " ", " ", " ", " ", " " - ], - "keycode": "MO(MOUSE)" - }, - { - "type": "visual", - "chord": [ - "X", "X", "X", "X", " ", " ", "X", "X", "X", "X", - " ", " ", " ", " ", " ", " ", " ", " ", " ", " " - ], - "keycode": "DF(ASETNIOP)" - } - ] - }, - { - "name": "NUM", - "chords": [ - { - "type": "chord_set", - "set": "rows", - "keycodes": [ - "AS(1)", "AS(2)", "AS(3)", "AS(4)", "AS(5)", "AS(6)", "AS(7)", "AS(8)", "AS(9)", "AS(0)", - " F1", " F2", " F3", " F4", " F5", " F6", " F7", " F8", " F9", " F10", - "AS(`)", "AS(-)", "AS(=)", "AS([)", "AS(])", "AS(\\)", "AS(')", " ", " F11", " F12" - ] - }, - { - "type": "chord_set", - "set": "cols", - "keycodes": [ - " ESC", " ", " TAB", " ", "O(RGUI)", " ", " INS", " DEL", " BSPC", - " ", " ", " ", " ", " ", " ", " ", " ", " ENTER", - "O(LSFT)", "O(LCTL)", "O(LALT)", " ", "O(LGUI)", " ", "O(RALT)", "O(RCTL)", " O(RSFT)" - ] - }, - { - "type": "simple", - "chord": ["BOT1", "BOT0"], - "keycode": "SPACE" - } - ] - }, - { - "name": "MOV", - "chords": [ - { - "type": "chord_set", - "set": "rows", - "keycodes": [ - " ", " ", " ", " ", " ", " ", " HOME", " UP", " END", " PGUP", - " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", - " ", " ", " LSFT", " LCTL", " LALT", " LGUI", " LEFT", " DOWN", "RIGHT", " PGDN" - ] - } - ] - }, - { - "name": "MOUSE", - "chords": [ - { - "type": "chord_set", - "set": "rows", - "keycodes": [ - " ", " ", " ", " ", " ", " ", " BTN1", " MS_U", " BTN2", " WH_U", - " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", - " ", " ", " LSFT", " LCTL", " LALT", " LGUI", " MS_L", " MS_D", " MS_R", " WH_D" - ] - } - ] - }, - { - "name": "ASETNIOP", - "chords": [ - { - "type": "chord_set", - "set": "asetniop", - "keycodes": [ - "A", "S", "E", "T", "N", "I", "O", "P", - "W", "D", "R", "B", "H", "L", ";", - "X", "C", "Y", "V", "U", "", - "F", "J", ",", "G", "M", - "Q", "K", "-", "BSPC", - "Z", ".", "'", - "[", "]", - "/" - ] - }, - { - "type": "chord_set", - "set": "rows", - "keycodes": [ - " ", " ", " ", " ", " ESC", " DEL", " ", " ", " ", " ", - " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", - " ", " ", " ", "LSFT", "LCTL", "LALT", "KL(SPACE, ASETNIOP_123)", "", "", "" - ] - }, - { - "type": "chord_set", - "set": "cols", - "keycodes": [ - " ", " ", " ", " ", "LGUI", " ", " ", " ", " ", - " ", " ", " ", " ", " ", " ", " ", " ", " ", - " ", " ", " ", " ", " ", " ", " ", " ", " " - ] - }, - { - "type": "visual", - "chord": [ - "X", "X", "X", "X", " ", " ", " ", " ", " ", " ", - " ", " ", " ", " ", " ", " ", " ", " ", " ", " " - ], - "keycode": "DF(QWERTY)" - }, - { - "type": "visual", - "chord": [ - " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", - " ", " ", " ", "X", " ", " ", "X", " ", " ", " " - ], - "keycode": "MO(ASETNIOP_FN)" - } - ] - }, - { - "name": "ASETNIOP_123", - "chords": [ - { - "type": "chord_set", - "set": "asetniop", - "keycodes": [ - "1", "2", "3", "4", "7", "8", "9", "0", - " ", " ", "5", "=", "6", "\\", ";", - " ", " ", " ", " ", " ", " ", - " ", " ", " ", " ", " ", - " ", " ", " ", "BSPC", - " ", " ", " ", - " ", " ", - " " - ] - }, - { - "type": "chord_set", - "set": "rows", - "keycodes": [ - " ", " ", " ", " ", " ESC", " DEL", " ", " ", " ", " ", - " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", - " ", " ", " ", "LSFT", "LCTL", "LALT", " ", " ", " ", " " - ] - }, - { - "type": "chord_set", - "set": "cols", - "keycodes": [ - " ", " ", " ", " ", "LGUI", " ", " ", " ", " ", - " ", " ", " ", " ", " ", " ", " ", " ", " ", - " ", " ", " ", " ", " ", " ", " ", " ", " " - ] - } - ] - }, - { - "name": "ASETNIOP_FN", - "chords": [ - { - "type": "chord_set", - "set": "asetniop", - "keycodes": [ - "HOME", "PGDN", "PGUP", " END", "LEFT", "DOWN", " UP", "RIGHT", - " F1", " F2", " F3", " F4", " F5", " F6", " F7", - " F10", " ", " ", " ", " ", " F8", - " F11", " ", " ", " ", " F9", - " F12", " ", " ", "BSPC", - " ", " ", " ", - " ", " ", - " " - ] - }, - { - "type": "chord_set", - "set": "rows", - "keycodes": [ - " ", " ", " ", " ", " ESC", " DEL", " ", " ", " ", " ", - " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", - " ", " ", " ", "LSFT", "LCTL", "LALT", " ", " ", " ", " " - ] - }, - { - "type": "chord_set", - "set": "cols", - "keycodes": [ - " ", " ", " ", " ", "LGUI", " ", " ", " ", " ", - " ", " ", " ", " ", " ", " ", " ", " ", " ", - " ", " ", " ", " ", " ", " ", " ", " ", " " - ] - } - ] - } - ], - "leader_sequences": [], - "extra_code": "", - "extra_dependencies": [] -} \ No newline at end of file diff --git a/keyboards/gboards/butterstick/keymaps/dennytom/rules.mk b/keyboards/gboards/butterstick/keymaps/dennytom/rules.mk deleted file mode 100644 index 1155f72c04..0000000000 --- a/keyboards/gboards/butterstick/keymaps/dennytom/rules.mk +++ /dev/null @@ -1,8 +0,0 @@ -MOUSEKEY_ENABLE = yes -EXTRAKEY_ENABLE = yes -CONSOLE_ENABLE = no -# COMMAND_ENABLE = no -NKRO_ENABLE = yes - -TMPVAR := $(SRC) -SRC = $(filter-out sten.c, $(TMPVAR)) \ No newline at end of file diff --git a/keyboards/gboards/georgi/keymaps/dennytom/README.md b/keyboards/gboards/georgi/keymaps/dennytom/README.md deleted file mode 100644 index 14bc1d2045..0000000000 --- a/keyboards/gboards/georgi/keymaps/dennytom/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# # Dennytom's Georgi Layout - -This keymap is using a custom chording engine. Head out to my (DennyTom) user space to find the source files and details. - -To make a real keymap from the JSON file, run - -```sh -python3 parser.py keymap_def.json keymap.c -``` - -Likely will change with use. I enjoy the modifiers on the "home row". \ No newline at end of file diff --git a/keyboards/gboards/georgi/keymaps/dennytom/keymap.c b/keyboards/gboards/georgi/keymaps/dennytom/keymap.c deleted file mode 100644 index 902d2271d7..0000000000 --- a/keyboards/gboards/georgi/keymaps/dennytom/keymap.c +++ /dev/null @@ -1,1208 +0,0 @@ -#include QMK_KEYBOARD_H - -#define H_TOP1 ((HASH_TYPE) 1 << 0) -#define H_TOP2 ((HASH_TYPE) 1 << 1) -#define H_TOP3 ((HASH_TYPE) 1 << 2) -#define H_TOP4 ((HASH_TYPE) 1 << 3) -#define H_TOP5 ((HASH_TYPE) 1 << 4) -#define H_TOP6 ((HASH_TYPE) 1 << 5) -#define H_TOP7 ((HASH_TYPE) 1 << 6) -#define H_TOP8 ((HASH_TYPE) 1 << 7) -#define H_TOP9 ((HASH_TYPE) 1 << 8) -#define H_TOP10 ((HASH_TYPE) 1 << 9) -#define H_TOP11 ((HASH_TYPE) 1 << 10) -#define H_TOP12 ((HASH_TYPE) 1 << 11) -#define H_BOT1 ((HASH_TYPE) 1 << 12) -#define H_BOT2 ((HASH_TYPE) 1 << 13) -#define H_BOT3 ((HASH_TYPE) 1 << 14) -#define H_BOT4 ((HASH_TYPE) 1 << 15) -#define H_BOT5 ((HASH_TYPE) 1 << 16) -#define H_BOT6 ((HASH_TYPE) 1 << 17) -#define H_BOT7 ((HASH_TYPE) 1 << 18) -#define H_BOT8 ((HASH_TYPE) 1 << 19) -#define H_BOT9 ((HASH_TYPE) 1 << 20) -#define H_BOT10 ((HASH_TYPE) 1 << 21) -#define H_BOT11 ((HASH_TYPE) 1 << 22) -#define H_BOT12 ((HASH_TYPE) 1 << 23) -#define H_THU1 ((HASH_TYPE) 1 << 24) -#define H_THU2 ((HASH_TYPE) 1 << 25) -#define H_THU3 ((HASH_TYPE) 1 << 26) -#define H_THU4 ((HASH_TYPE) 1 << 27) -#define H_THU5 ((HASH_TYPE) 1 << 28) -#define H_THU6 ((HASH_TYPE) 1 << 29) - -enum internal_keycodes { - TOP1 = SAFE_RANGE, - TOP2, TOP3, TOP4, TOP5, TOP6, TOP7, TOP8, TOP9, TOP10, TOP11, TOP12, BOT1, BOT2, BOT3, BOT4, BOT5, BOT6, BOT7, BOT8, BOT9, BOT10, BOT11, BOT12, THU1, THU2, THU3, THU4, THU5, THU6, - FIRST_INTERNAL_KEYCODE = TOP1, - LAST_INTERNAL_KEYCODE = THU6 -}; - -enum pseudolayers { - ALWAYS_ON, QWERTY, NUM, FNC, NAV, MOUSE -}; - -#define CHORD_TIMEOUT 100 -#define DANCE_TIMEOUT 200 -#define LEADER_TIMEOUT 750 -#define TAP_TIMEOUT 50 -#define LONG_PRESS_MULTIPLIER 3 -#define DYNAMIC_MACRO_MAX_LENGTH 20 -#define COMMAND_MAX_LENGTH 5 -#define STRING_MAX_LENGTH 16 -#define LEADER_MAX_LENGTH 5 -#define HASH_TYPE uint32_t -#define NUMBER_OF_KEYS 30 -#define DEFAULT_PSEUDOLAYER QWERTY - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_georgi(TOP1, TOP2, TOP3, TOP4, TOP5, TOP6, TOP7, TOP8, TOP9, TOP10, TOP11, TOP12, BOT1, BOT2, BOT3, BOT4, BOT5, BOT6, BOT7, BOT8, BOT9, BOT10, BOT11, BOT12, THU1, THU2, THU3, THU4, THU5, THU6), -}; -size_t keymapsCount = 1; - -uint8_t keycodes_buffer_array[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -uint8_t command_buffer[] = { - 0, 0, 0, 0, 0 -}; - -uint16_t leader_buffer[] = { - 0, 0, 0, 0, 0 -}; - -uint8_t dynamic_macro_buffer[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -enum chord_states { - IDLE, - READY, - ACTIVATED, - DEACTIVATED, - PRESS_FROM_ACTIVE, - FINISHED_FROM_ACTIVE, - IDLE_IN_DANCE, - READY_IN_DANCE, - FINISHED, - LOCKED, - READY_LOCKED, - RESTART, - IN_ONE_SHOT -}; - -struct Chord { - uint32_t keycodes_hash; - uint8_t pseudolayer; - uint8_t* state; - uint8_t* counter; - uint16_t value1; - uint8_t value2; - void (*function) (const struct Chord*); -}; - -uint8_t current_pseudolayer = DEFAULT_PSEUDOLAYER; -bool lock_next = false; -uint16_t chord_timer = 0; -uint16_t dance_timer = 0; -bool autoshift_mode = true; -uint8_t keycode_index = 0; -uint8_t command_mode = 0; -uint8_t command_ind = 0; -bool in_leader_mode = false; -uint8_t leader_ind = 0; -uint16_t leader_timer = 0; -uint8_t dynamic_macro_mode = false; -uint8_t dynamic_macro_ind = 0; -bool a_key_went_through = false; -struct Chord* last_chord = NULL; - -bool handle_US_ANSI_shifted_keys(int16_t keycode, bool in) { - bool is_US_ANSI_shifted = true; - - int16_t regular_keycode = KC_NO; - switch (keycode) { - case KC_TILDE: - regular_keycode = KC_GRAVE; - break; - case KC_EXCLAIM: - regular_keycode = KC_1; - break; - case KC_AT: - regular_keycode = KC_2; - break; - case KC_HASH: - regular_keycode = KC_3; - break; - case KC_DOLLAR: - regular_keycode = KC_4; - break; - case KC_PERCENT: - regular_keycode = KC_5; - break; - case KC_CIRCUMFLEX: - regular_keycode = KC_6; - break; - case KC_AMPERSAND: - regular_keycode = KC_7; - break; - case KC_ASTERISK: - regular_keycode = KC_8; - break; - case KC_LEFT_PAREN: - regular_keycode = KC_9; - break; - case KC_RIGHT_PAREN: - regular_keycode = KC_0; - break; - case KC_UNDERSCORE: - regular_keycode = KC_MINUS; - break; - case KC_PLUS: - regular_keycode = KC_EQUAL; - break; - case KC_LEFT_CURLY_BRACE: - regular_keycode = KC_LEFT_BRACKET; - break; - case KC_RIGHT_CURLY_BRACE: - regular_keycode = KC_RIGHT_BRACKET; - break; - case KC_PIPE: - regular_keycode = KC_BACKSLASH; - break; - case KC_COLON: - regular_keycode = KC_SEMICOLON; - break; - case KC_DOUBLE_QUOTE: - regular_keycode = KC_QUOTE; - break; - case KC_LEFT_ANGLE_BRACKET: - regular_keycode = KC_COMMA; - break; - case KC_RIGHT_ANGLE_BRACKET: - regular_keycode = KC_DOT; - break; - case KC_QUESTION: - regular_keycode = KC_SLASH; - break; - default: - is_US_ANSI_shifted = false; - } - if (is_US_ANSI_shifted) { - if (in) { - register_code(KC_LSFT); - register_code(regular_keycode); - } else { - unregister_code(regular_keycode); - unregister_code(KC_LSFT); - } - } - return is_US_ANSI_shifted; -} - -void key_in(int16_t keycode) { - if (command_mode == 1 && command_ind < COMMAND_MAX_LENGTH) { - command_buffer[command_ind] = keycode; - command_ind++; - a_key_went_through = true; - } else if (in_leader_mode && leader_ind < LEADER_MAX_LENGTH) { - leader_buffer[leader_ind] = keycode; - leader_ind++; - a_key_went_through = true; - } else if (dynamic_macro_mode && dynamic_macro_ind < DYNAMIC_MACRO_MAX_LENGTH) { - dynamic_macro_buffer[dynamic_macro_ind] = keycode; - dynamic_macro_ind++; - a_key_went_through = true; - } else { - if (!handle_US_ANSI_shifted_keys(keycode, true)) { - register_code(keycode); - } - send_keyboard_report(); - a_key_went_through = true; - } -} - -void key_out(int16_t keycode) { - if (command_mode == 0) { - if (!handle_US_ANSI_shifted_keys(keycode, false)) { - if (command_mode == 0 && in_leader_mode == false && dynamic_macro_mode == false) { - unregister_code(keycode); - } - } - send_keyboard_report(); - } -} - -void tap_key(int16_t keycode) { - key_in(keycode); - wait_ms(TAP_TIMEOUT); - key_out(keycode); -} -const char * const strings[] PROGMEM = { - -}; -void single_dance(const struct Chord* self) { - switch (*self->state) { - case ACTIVATED: - key_in(self->value1); - break; - case DEACTIVATED: - key_out(self->value1); - *self->state = IDLE; - break; - case RESTART: - key_out(self->value1); - break; - default: - break; - } -} - -void key_layer_dance(const struct Chord* self) { - switch (*self->state) { - case ACTIVATED: - current_pseudolayer = self->value2; - a_key_went_through = false; - break; - case DEACTIVATED: - case RESTART: - if (!a_key_went_through) { - tap_key(self->value1); - } - current_pseudolayer = self->pseudolayer; - *self->state = IDLE; // does not have effect if the state was RESTART - break; - default: - break; - } -} - -void key_mod_dance(const struct Chord* self) { - switch (*self->state) { - case ACTIVATED: - key_in(self->value2); - a_key_went_through = false; - break; - case DEACTIVATED: - case RESTART: - key_out(self->value2); - if (!a_key_went_through) { - tap_key(self->value1); - } - *self->state = IDLE; // does not have effect if the state was RESTART - break; - default: - break; - } -} - -void key_key_dance(const struct Chord* self) { - switch (*self->state) { - case ACTIVATED: - break; - case DEACTIVATED: - tap_key(self->value1); - *self->state = IDLE; - break; - case FINISHED: - case PRESS_FROM_ACTIVE: - key_in(self->value2); - break; - case RESTART: - key_out(self->value2); - break; - default: - break; - } -} - -void autoshift_dance_impl(const struct Chord* self) { - switch (*self->state) { - case ACTIVATED: - *self->counter = 0; - break; - case DEACTIVATED: - case RESTART: - tap_key(self->value1); - *self->state = IDLE; - break; - case FINISHED_FROM_ACTIVE: - if (*self->counter == (LONG_PRESS_MULTIPLIER - 2)) { - key_in(KC_LSFT); - tap_key(self->value1); - key_out(KC_LSFT); - *self->state = IDLE; - // the skip to IDLE is usually just a lag optimization, - // in this case it has a logic function, on a short - // press (still longer than a tap) the key does not get shifted - } else { - *self->counter += 1; - *self->state = PRESS_FROM_ACTIVE; - dance_timer = timer_read(); - } - break; - default: - break; - } -} - -void autoshift_dance(const struct Chord* self) { - if (autoshift_mode) { - autoshift_dance_impl(self); - } else { - single_dance(self); - } -} - -void autoshift_toggle(const struct Chord* self){ - if (*self->state == ACTIVATED) { - autoshift_mode = !autoshift_mode; - *self->state = IDLE; - } -} - -void temp_pseudolayer(const struct Chord* self) { - switch (*self->state) { - case ACTIVATED: - current_pseudolayer = self->value1; - break; - case DEACTIVATED: - current_pseudolayer = self->pseudolayer; - *self->state = IDLE; - break; - case RESTART: - current_pseudolayer = self->pseudolayer; - break; - default: - break; - } -} - -void temp_pseudolayer_alt(const struct Chord* self) { - switch (*self->state) { - case ACTIVATED: - current_pseudolayer = self->value1; - break; - case DEACTIVATED: - current_pseudolayer = self->value2; - *self->state = IDLE; - break; - case RESTART: - current_pseudolayer = self->value2; - break; - default: - break; - } -} - -void perm_pseudolayer(const struct Chord* self) { - if (*self->state == ACTIVATED) { - current_pseudolayer = self->value1; - *self->state = IDLE; - } -} - -void switch_layer(const struct Chord* self) { - if (*self->state == ACTIVATED) { - layer_move(self->value1); - *self->state = IDLE; - } -} - -void lock(const struct Chord* self) { - if (*self->state == ACTIVATED) { - lock_next = true; - *self->state = IDLE; - } -} - -void one_shot_key(const struct Chord* self) { - switch (*self->state) { - case ACTIVATED: - break; - case DEACTIVATED: - key_in(self->value1); - *self->state = IN_ONE_SHOT; - break; - case FINISHED: - case PRESS_FROM_ACTIVE: - key_in(self->value1); - a_key_went_through = false; - break; - case RESTART: - if (a_key_went_through) { - key_out(self->value1); - } else { - *self->state = IN_ONE_SHOT; - } - default: - break; - } -} - -void one_shot_layer(const struct Chord* self) { - switch (*self->state) { - case ACTIVATED: - break; - case DEACTIVATED: - current_pseudolayer = self->value1; - *self->state = IN_ONE_SHOT; - break; - case FINISHED: - case PRESS_FROM_ACTIVE: - current_pseudolayer = self->value1; - a_key_went_through = false; - break; - case RESTART: - if (a_key_went_through) { - current_pseudolayer = self->pseudolayer; - } else { - *self->state = IN_ONE_SHOT; - } - default: - break; - } -} - -void command(const struct Chord* self) { - if (*self->state == ACTIVATED) { - command_mode++; - *self->state = IDLE; - } -} - -bool identical(uint16_t* buffer1, uint16_t* buffer2) { - bool same = true; - for (int i = 0; i < LEADER_MAX_LENGTH; i++) { - same = same && (buffer1[i] == buffer2[i]); - } - return same; -} - -void leader(const struct Chord* self) { - if (*self->state == ACTIVATED) { - in_leader_mode = true; - *self->state = IDLE; - } -} - -void dynamic_macro_record(const struct Chord* self) { - if (*self->state == ACTIVATED) { - for (int i = 0; i < DYNAMIC_MACRO_MAX_LENGTH; i++) { - dynamic_macro_buffer[i] = 0; - } - dynamic_macro_mode = true; - *self->state = IDLE; - } -} - -void dynamic_macro_next(const struct Chord* self) { - if (*self->state == ACTIVATED) { - if (dynamic_macro_mode && dynamic_macro_ind < DYNAMIC_MACRO_MAX_LENGTH) { - dynamic_macro_buffer[dynamic_macro_ind] = 0; - dynamic_macro_ind++; - } - *self->state = IDLE; - } -} - -void dynamic_macro_end(const struct Chord* self) { - if (*self->state == ACTIVATED) { - if (dynamic_macro_mode) { - dynamic_macro_mode = false; - } - *self->state = IDLE; - } -} - -void dynamic_macro_play(const struct Chord* self) { - if (*self->state == ACTIVATED) { - int ind_start = 0; - while (ind_start < DYNAMIC_MACRO_MAX_LENGTH) { - for (int i = ind_start; i < DYNAMIC_MACRO_MAX_LENGTH; i++) { - if (dynamic_macro_buffer[i] == 0) { - break; - } - register_code(dynamic_macro_buffer[i]); - } - send_keyboard_report(); - wait_ms(TAP_TIMEOUT); - for (int i = ind_start; i < DYNAMIC_MACRO_MAX_LENGTH; i++) { - if (dynamic_macro_buffer[i] == 0) { - ind_start = i + 1; - break; - } - unregister_code(dynamic_macro_buffer[i]); - } - send_keyboard_report(); - } - *self->state = IDLE; - } -} - -void string_in(const struct Chord* self) { - if (*self->state == ACTIVATED) { - char buffer[STRING_MAX_LENGTH]; - strcpy_P(buffer, (char*)pgm_read_word(&(strings[self->value1]))); - send_string(buffer); - } -} - -void clear(const struct Chord* self); - -void reset_keyboard_kb(void){ -#ifdef WATCHDOG_ENABLE - MCUSR = 0; - wdt_disable(); - wdt_reset(); -#endif - reset_keyboard(); -} - -void reset(const struct Chord* self) { - if (*self->state == ACTIVATED) { - reset_keyboard_kb(); - } -} - -uint8_t state_0 = IDLE; -const struct Chord chord_0 PROGMEM = {H_TOP1 + H_TOP12 + H_BOT1 + H_BOT12, ALWAYS_ON, &state_0, NULL, 0, 0, clear}; -uint8_t state_1 = IDLE; -const struct Chord chord_1 PROGMEM = {H_TOP6 + H_TOP7 + H_BOT6 + H_BOT7, ALWAYS_ON, &state_1, NULL, 0, 0, command}; -uint8_t state_2 = IDLE; -const struct Chord chord_2 PROGMEM = {H_TOP1, QWERTY, &state_2, NULL, KC_ESC, 0, single_dance}; -uint8_t state_3 = IDLE; -const struct Chord chord_3 PROGMEM = {H_TOP2, QWERTY, &state_3, NULL, KC_Q, 0, single_dance}; -uint8_t state_4 = IDLE; -const struct Chord chord_4 PROGMEM = {H_TOP3, QWERTY, &state_4, NULL, KC_W, 0, single_dance}; -uint8_t state_5 = IDLE; -const struct Chord chord_5 PROGMEM = {H_TOP4, QWERTY, &state_5, NULL, KC_E, 0, single_dance}; -uint8_t state_6 = IDLE; -const struct Chord chord_6 PROGMEM = {H_TOP5, QWERTY, &state_6, NULL, KC_R, 0, single_dance}; -uint8_t state_7 = IDLE; -const struct Chord chord_7 PROGMEM = {H_TOP6, QWERTY, &state_7, NULL, KC_T, 0, single_dance}; -uint8_t state_8 = IDLE; -const struct Chord chord_8 PROGMEM = {H_TOP7, QWERTY, &state_8, NULL, KC_Y, 0, single_dance}; -uint8_t state_9 = IDLE; -const struct Chord chord_9 PROGMEM = {H_TOP8, QWERTY, &state_9, NULL, KC_U, 0, single_dance}; -uint8_t state_10 = IDLE; -const struct Chord chord_10 PROGMEM = {H_TOP9, QWERTY, &state_10, NULL, KC_I, 0, single_dance}; -uint8_t state_11 = IDLE; -const struct Chord chord_11 PROGMEM = {H_TOP10, QWERTY, &state_11, NULL, KC_O, 0, single_dance}; -uint8_t state_12 = IDLE; -const struct Chord chord_12 PROGMEM = {H_TOP11, QWERTY, &state_12, NULL, KC_P, 0, single_dance}; -uint8_t state_13 = IDLE; -const struct Chord chord_13 PROGMEM = {H_TOP12, QWERTY, &state_13, NULL, KC_BACKSLASH, 0, single_dance}; -uint8_t state_14 = IDLE; -const struct Chord chord_14 PROGMEM = {H_TOP1 + H_BOT1, QWERTY, &state_14, NULL, KC_INS, 0, single_dance}; -uint8_t state_15 = IDLE; -const struct Chord chord_15 PROGMEM = {H_TOP2 + H_BOT2, QWERTY, &state_15, NULL, KC_A, 0, single_dance}; -uint8_t state_16 = IDLE; -uint8_t counter_16 = 0; -const struct Chord chord_16 PROGMEM = {H_TOP3 + H_BOT3, QWERTY, &state_16, &counter_16, KC_S, KC_LALT, key_key_dance}; -uint8_t state_17 = IDLE; -const struct Chord chord_17 PROGMEM = {H_TOP4 + H_BOT4, QWERTY, &state_17, NULL, KC_D, KC_LCTL, key_mod_dance}; -uint8_t state_18 = IDLE; -const struct Chord chord_18 PROGMEM = {H_TOP5 + H_BOT5, QWERTY, &state_18, NULL, KC_F, KC_LSFT, key_mod_dance}; -uint8_t state_19 = IDLE; -uint8_t counter_19 = 0; -const struct Chord chord_19 PROGMEM = {H_TOP6 + H_BOT6, QWERTY, &state_19, &counter_19, KC_G, KC_LGUI, key_key_dance}; -uint8_t state_20 = IDLE; -uint8_t counter_20 = 0; -const struct Chord chord_20 PROGMEM = {H_TOP7 + H_BOT7, QWERTY, &state_20, &counter_20, KC_H, KC_RGUI, key_key_dance}; -uint8_t state_21 = IDLE; -const struct Chord chord_21 PROGMEM = {H_TOP8 + H_BOT8, QWERTY, &state_21, NULL, KC_J, KC_RSFT, key_mod_dance}; -uint8_t state_22 = IDLE; -const struct Chord chord_22 PROGMEM = {H_TOP9 + H_BOT9, QWERTY, &state_22, NULL, KC_K, KC_RCTL, key_mod_dance}; -uint8_t state_23 = IDLE; -uint8_t counter_23 = 0; -const struct Chord chord_23 PROGMEM = {H_TOP10 + H_BOT10, QWERTY, &state_23, &counter_23, KC_L, KC_RALT, key_key_dance}; -uint8_t state_24 = IDLE; -const struct Chord chord_24 PROGMEM = {H_TOP11 + H_BOT11, QWERTY, &state_24, NULL, KC_SEMICOLON, 0, single_dance}; -uint8_t state_25 = IDLE; -const struct Chord chord_25 PROGMEM = {H_BOT1, QWERTY, &state_25, NULL, KC_TAB, 0, single_dance}; -uint8_t state_26 = IDLE; -const struct Chord chord_26 PROGMEM = {H_BOT2, QWERTY, &state_26, NULL, KC_Z, 0, single_dance}; -uint8_t state_27 = IDLE; -const struct Chord chord_27 PROGMEM = {H_BOT3, QWERTY, &state_27, NULL, KC_X, 0, single_dance}; -uint8_t state_28 = IDLE; -const struct Chord chord_28 PROGMEM = {H_BOT4, QWERTY, &state_28, NULL, KC_C, 0, single_dance}; -uint8_t state_29 = IDLE; -const struct Chord chord_29 PROGMEM = {H_BOT5, QWERTY, &state_29, NULL, KC_V, 0, single_dance}; -uint8_t state_30 = IDLE; -const struct Chord chord_30 PROGMEM = {H_BOT6, QWERTY, &state_30, NULL, KC_B, 0, single_dance}; -uint8_t state_31 = IDLE; -const struct Chord chord_31 PROGMEM = {H_BOT7, QWERTY, &state_31, NULL, KC_N, 0, single_dance}; -uint8_t state_32 = IDLE; -const struct Chord chord_32 PROGMEM = {H_BOT8, QWERTY, &state_32, NULL, KC_M, 0, single_dance}; -uint8_t state_33 = IDLE; -const struct Chord chord_33 PROGMEM = {H_BOT9, QWERTY, &state_33, NULL, KC_COMMA, 0, single_dance}; -uint8_t state_34 = IDLE; -const struct Chord chord_34 PROGMEM = {H_BOT10, QWERTY, &state_34, NULL, KC_DOT, 0, single_dance}; -uint8_t state_35 = IDLE; -const struct Chord chord_35 PROGMEM = {H_BOT11, QWERTY, &state_35, NULL, KC_SLASH, 0, single_dance}; -uint8_t state_36 = IDLE; -const struct Chord chord_36 PROGMEM = {H_BOT12, QWERTY, &state_36, NULL, KC_QUOTE, 0, single_dance}; -uint8_t state_37 = IDLE; -const struct Chord chord_37 PROGMEM = {H_THU1, QWERTY, &state_37, NULL, KC_ENTER, 0, single_dance}; -uint8_t state_38 = IDLE; -uint8_t counter_38 = 0; -const struct Chord chord_38 PROGMEM = {H_THU2, QWERTY, &state_38, &counter_38, KC_SPC, NUM, key_layer_dance}; -uint8_t state_39 = IDLE; -uint8_t counter_39 = 0; -const struct Chord chord_39 PROGMEM = {H_THU3, QWERTY, &state_39, &counter_39, KC_BSPC, NAV, key_layer_dance}; -uint8_t state_40 = IDLE; -const struct Chord chord_40 PROGMEM = {H_THU4, QWERTY, &state_40, NULL, KC_DEL, 0, single_dance}; -uint8_t state_41 = IDLE; -uint8_t counter_41 = 0; -const struct Chord chord_41 PROGMEM = {H_THU5, QWERTY, &state_41, &counter_41, KC_SPC, FNC, key_layer_dance}; -uint8_t state_42 = IDLE; -const struct Chord chord_42 PROGMEM = {H_THU6, QWERTY, &state_42, NULL, KC_ENTER, 0, single_dance}; -uint8_t state_43 = IDLE; -const struct Chord chord_43 PROGMEM = {H_THU2 + H_THU3, QWERTY, &state_43, NULL, MOUSE, 0, temp_pseudolayer}; -uint8_t state_44 = IDLE; -const struct Chord chord_44 PROGMEM = {H_TOP1, NUM, &state_44, NULL, KC_GRAVE, 0, single_dance}; -uint8_t state_45 = IDLE; -const struct Chord chord_45 PROGMEM = {H_TOP2, NUM, &state_45, NULL, KC_1, 0, single_dance}; -uint8_t state_46 = IDLE; -const struct Chord chord_46 PROGMEM = {H_TOP3, NUM, &state_46, NULL, KC_2, 0, single_dance}; -uint8_t state_47 = IDLE; -const struct Chord chord_47 PROGMEM = {H_TOP4, NUM, &state_47, NULL, KC_3, 0, single_dance}; -uint8_t state_48 = IDLE; -const struct Chord chord_48 PROGMEM = {H_TOP5, NUM, &state_48, NULL, KC_4, 0, single_dance}; -uint8_t state_49 = IDLE; -const struct Chord chord_49 PROGMEM = {H_TOP6, NUM, &state_49, NULL, KC_5, 0, single_dance}; -uint8_t state_50 = IDLE; -const struct Chord chord_50 PROGMEM = {H_TOP7, NUM, &state_50, NULL, KC_6, 0, single_dance}; -uint8_t state_51 = IDLE; -const struct Chord chord_51 PROGMEM = {H_TOP8, NUM, &state_51, NULL, KC_7, 0, single_dance}; -uint8_t state_52 = IDLE; -const struct Chord chord_52 PROGMEM = {H_TOP9, NUM, &state_52, NULL, KC_8, 0, single_dance}; -uint8_t state_53 = IDLE; -const struct Chord chord_53 PROGMEM = {H_TOP10, NUM, &state_53, NULL, KC_9, 0, single_dance}; -uint8_t state_54 = IDLE; -const struct Chord chord_54 PROGMEM = {H_TOP11, NUM, &state_54, NULL, KC_0, 0, single_dance}; -uint8_t state_55 = IDLE; -const struct Chord chord_55 PROGMEM = {H_TOP12, NUM, &state_55, NULL, KC_MINUS, 0, single_dance}; -uint8_t state_56 = IDLE; -const struct Chord chord_56 PROGMEM = {H_TOP3 + H_BOT3, NUM, &state_56, NULL, KC_LALT, 0, single_dance}; -uint8_t state_57 = IDLE; -const struct Chord chord_57 PROGMEM = {H_TOP4 + H_BOT4, NUM, &state_57, NULL, KC_LCTL, 0, single_dance}; -uint8_t state_58 = IDLE; -const struct Chord chord_58 PROGMEM = {H_TOP5 + H_BOT5, NUM, &state_58, NULL, KC_LSFT, 0, single_dance}; -uint8_t state_59 = IDLE; -const struct Chord chord_59 PROGMEM = {H_TOP6 + H_BOT6, NUM, &state_59, NULL, KC_LGUI, 0, single_dance}; -uint8_t state_60 = IDLE; -const struct Chord chord_60 PROGMEM = {H_TOP7 + H_BOT7, NUM, &state_60, NULL, KC_RGUI, 0, single_dance}; -uint8_t state_61 = IDLE; -const struct Chord chord_61 PROGMEM = {H_TOP8 + H_BOT8, NUM, &state_61, NULL, KC_RSFT, 0, single_dance}; -uint8_t state_62 = IDLE; -const struct Chord chord_62 PROGMEM = {H_TOP9 + H_BOT9, NUM, &state_62, NULL, KC_RCTL, 0, single_dance}; -uint8_t state_63 = IDLE; -const struct Chord chord_63 PROGMEM = {H_TOP10 + H_BOT10, NUM, &state_63, NULL, KC_RALT, 0, single_dance}; -uint8_t state_64 = IDLE; -const struct Chord chord_64 PROGMEM = {H_BOT12, NUM, &state_64, NULL, KC_EQUAL, 0, single_dance}; -uint8_t state_65 = IDLE; -const struct Chord chord_65 PROGMEM = {H_TOP2, FNC, &state_65, NULL, KC_F1, 0, single_dance}; -uint8_t state_66 = IDLE; -const struct Chord chord_66 PROGMEM = {H_TOP3, FNC, &state_66, NULL, KC_F2, 0, single_dance}; -uint8_t state_67 = IDLE; -const struct Chord chord_67 PROGMEM = {H_TOP4, FNC, &state_67, NULL, KC_F3, 0, single_dance}; -uint8_t state_68 = IDLE; -const struct Chord chord_68 PROGMEM = {H_TOP5, FNC, &state_68, NULL, KC_F4, 0, single_dance}; -uint8_t state_69 = IDLE; -const struct Chord chord_69 PROGMEM = {H_TOP6, FNC, &state_69, NULL, KC_F5, 0, single_dance}; -uint8_t state_70 = IDLE; -const struct Chord chord_70 PROGMEM = {H_TOP7, FNC, &state_70, NULL, KC_F6, 0, single_dance}; -uint8_t state_71 = IDLE; -const struct Chord chord_71 PROGMEM = {H_TOP8, FNC, &state_71, NULL, KC_F7, 0, single_dance}; -uint8_t state_72 = IDLE; -const struct Chord chord_72 PROGMEM = {H_TOP9, FNC, &state_72, NULL, KC_F8, 0, single_dance}; -uint8_t state_73 = IDLE; -const struct Chord chord_73 PROGMEM = {H_TOP10, FNC, &state_73, NULL, KC_F9, 0, single_dance}; -uint8_t state_74 = IDLE; -const struct Chord chord_74 PROGMEM = {H_TOP11, FNC, &state_74, NULL, KC_F10, 0, single_dance}; -uint8_t state_75 = IDLE; -const struct Chord chord_75 PROGMEM = {H_TOP12, FNC, &state_75, NULL, KC_F11, 0, single_dance}; -uint8_t state_76 = IDLE; -const struct Chord chord_76 PROGMEM = {H_TOP3 + H_BOT3, FNC, &state_76, NULL, KC_LALT, 0, single_dance}; -uint8_t state_77 = IDLE; -const struct Chord chord_77 PROGMEM = {H_TOP4 + H_BOT4, FNC, &state_77, NULL, KC_LCTL, 0, single_dance}; -uint8_t state_78 = IDLE; -const struct Chord chord_78 PROGMEM = {H_TOP5 + H_BOT5, FNC, &state_78, NULL, KC_LSFT, 0, single_dance}; -uint8_t state_79 = IDLE; -const struct Chord chord_79 PROGMEM = {H_TOP6 + H_BOT6, FNC, &state_79, NULL, KC_LGUI, 0, single_dance}; -uint8_t state_80 = IDLE; -const struct Chord chord_80 PROGMEM = {H_TOP7 + H_BOT7, FNC, &state_80, NULL, KC_RGUI, 0, single_dance}; -uint8_t state_81 = IDLE; -const struct Chord chord_81 PROGMEM = {H_TOP8 + H_BOT8, FNC, &state_81, NULL, KC_RSFT, 0, single_dance}; -uint8_t state_82 = IDLE; -const struct Chord chord_82 PROGMEM = {H_TOP9 + H_BOT9, FNC, &state_82, NULL, KC_RCTL, 0, single_dance}; -uint8_t state_83 = IDLE; -const struct Chord chord_83 PROGMEM = {H_TOP10 + H_BOT10, FNC, &state_83, NULL, KC_RALT, 0, single_dance}; -uint8_t state_84 = IDLE; -const struct Chord chord_84 PROGMEM = {H_BOT12, FNC, &state_84, NULL, KC_F12, 0, single_dance}; -uint8_t state_85 = IDLE; -const struct Chord chord_85 PROGMEM = {H_TOP8, NAV, &state_85, NULL, KC_HOME, 0, single_dance}; -uint8_t state_86 = IDLE; -const struct Chord chord_86 PROGMEM = {H_TOP9, NAV, &state_86, NULL, KC_UP, 0, single_dance}; -uint8_t state_87 = IDLE; -const struct Chord chord_87 PROGMEM = {H_TOP10, NAV, &state_87, NULL, KC_END, 0, single_dance}; -uint8_t state_88 = IDLE; -const struct Chord chord_88 PROGMEM = {H_TOP11, NAV, &state_88, NULL, KC_PGUP, 0, single_dance}; -uint8_t state_89 = IDLE; -const struct Chord chord_89 PROGMEM = {H_TOP3 + H_BOT3, NAV, &state_89, NULL, KC_LALT, 0, single_dance}; -uint8_t state_90 = IDLE; -const struct Chord chord_90 PROGMEM = {H_TOP4 + H_BOT4, NAV, &state_90, NULL, KC_LCTL, 0, single_dance}; -uint8_t state_91 = IDLE; -const struct Chord chord_91 PROGMEM = {H_TOP5 + H_BOT5, NAV, &state_91, NULL, KC_LSFT, 0, single_dance}; -uint8_t state_92 = IDLE; -const struct Chord chord_92 PROGMEM = {H_TOP6 + H_BOT6, NAV, &state_92, NULL, KC_LGUI, 0, single_dance}; -uint8_t state_93 = IDLE; -const struct Chord chord_93 PROGMEM = {H_BOT8, NAV, &state_93, NULL, KC_LEFT, 0, single_dance}; -uint8_t state_94 = IDLE; -const struct Chord chord_94 PROGMEM = {H_BOT9, NAV, &state_94, NULL, KC_DOWN, 0, single_dance}; -uint8_t state_95 = IDLE; -const struct Chord chord_95 PROGMEM = {H_BOT10, NAV, &state_95, NULL, KC_RIGHT, 0, single_dance}; -uint8_t state_96 = IDLE; -const struct Chord chord_96 PROGMEM = {H_BOT11, NAV, &state_96, NULL, KC_PGDN, 0, single_dance}; -uint8_t state_97 = IDLE; -const struct Chord chord_97 PROGMEM = {H_TOP8, MOUSE, &state_97, NULL, KC_BTN1, 0, single_dance}; -uint8_t state_98 = IDLE; -const struct Chord chord_98 PROGMEM = {H_TOP9, MOUSE, &state_98, NULL, KC_MS_U, 0, single_dance}; -uint8_t state_99 = IDLE; -const struct Chord chord_99 PROGMEM = {H_TOP10, MOUSE, &state_99, NULL, KC_BTN2, 0, single_dance}; -uint8_t state_100 = IDLE; -const struct Chord chord_100 PROGMEM = {H_TOP11, MOUSE, &state_100, NULL, KC_WH_U, 0, single_dance}; -uint8_t state_101 = IDLE; -const struct Chord chord_101 PROGMEM = {H_TOP3 + H_BOT3, MOUSE, &state_101, NULL, KC_LALT, 0, single_dance}; -uint8_t state_102 = IDLE; -const struct Chord chord_102 PROGMEM = {H_TOP4 + H_BOT4, MOUSE, &state_102, NULL, KC_LCTL, 0, single_dance}; -uint8_t state_103 = IDLE; -const struct Chord chord_103 PROGMEM = {H_TOP5 + H_BOT5, MOUSE, &state_103, NULL, KC_LSFT, 0, single_dance}; -uint8_t state_104 = IDLE; -const struct Chord chord_104 PROGMEM = {H_TOP6 + H_BOT6, MOUSE, &state_104, NULL, KC_LGUI, 0, single_dance}; -uint8_t state_105 = IDLE; -const struct Chord chord_105 PROGMEM = {H_BOT8, MOUSE, &state_105, NULL, KC_MS_L, 0, single_dance}; -uint8_t state_106 = IDLE; -const struct Chord chord_106 PROGMEM = {H_BOT9, MOUSE, &state_106, NULL, KC_MS_D, 0, single_dance}; -uint8_t state_107 = IDLE; -const struct Chord chord_107 PROGMEM = {H_BOT10, MOUSE, &state_107, NULL, KC_MS_R, 0, single_dance}; -uint8_t state_108 = IDLE; -const struct Chord chord_108 PROGMEM = {H_BOT11, MOUSE, &state_108, NULL, KC_WH_D, 0, single_dance}; - -const struct Chord* const list_of_chords[] PROGMEM = { - &chord_0, &chord_1, &chord_2, &chord_3, &chord_4, &chord_5, &chord_6, &chord_7, &chord_8, &chord_9, &chord_10, &chord_11, &chord_12, &chord_13, &chord_14, &chord_15, &chord_16, &chord_17, &chord_18, &chord_19, &chord_20, &chord_21, &chord_22, &chord_23, &chord_24, &chord_25, &chord_26, &chord_27, &chord_28, &chord_29, &chord_30, &chord_31, &chord_32, &chord_33, &chord_34, &chord_35, &chord_36, &chord_37, &chord_38, &chord_39, &chord_40, &chord_41, &chord_42, &chord_43, &chord_44, &chord_45, &chord_46, &chord_47, &chord_48, &chord_49, &chord_50, &chord_51, &chord_52, &chord_53, &chord_54, &chord_55, &chord_56, &chord_57, &chord_58, &chord_59, &chord_60, &chord_61, &chord_62, &chord_63, &chord_64, &chord_65, &chord_66, &chord_67, &chord_68, &chord_69, &chord_70, &chord_71, &chord_72, &chord_73, &chord_74, &chord_75, &chord_76, &chord_77, &chord_78, &chord_79, &chord_80, &chord_81, &chord_82, &chord_83, &chord_84, &chord_85, &chord_86, &chord_87, &chord_88, &chord_89, &chord_90, &chord_91, &chord_92, &chord_93, &chord_94, &chord_95, &chord_96, &chord_97, &chord_98, &chord_99, &chord_100, &chord_101, &chord_102, &chord_103, &chord_104, &chord_105, &chord_106, &chord_107, &chord_108 -}; - -const uint16_t** const leader_triggers PROGMEM = NULL; -void (*leader_functions[]) (void) = {}; - -#define NUMBER_OF_CHORDS 109 -#define NUMBER_OF_LEADER_COMBOS 0 - -bool are_hashed_keycodes_in_sound(HASH_TYPE keycodes_hash, HASH_TYPE sound) { - return (keycodes_hash & sound) == keycodes_hash; -} - -uint8_t keycode_to_index(uint16_t keycode) { - return keycode - FIRST_INTERNAL_KEYCODE; -} - -void sound_keycode_array(uint16_t keycode) { - uint8_t index = keycode_to_index(keycode); - keycode_index++; - keycodes_buffer_array[index] = keycode_index; -} - -void silence_keycode_hash_array(HASH_TYPE keycode_hash) { - for (int i = 0; i < NUMBER_OF_KEYS; i++) { - bool index_in_hash = ((HASH_TYPE) 1 << i) & keycode_hash; - if (index_in_hash) { - uint8_t current_val = keycodes_buffer_array[i]; - keycodes_buffer_array[i] = 0; - for (int j = 0; j < NUMBER_OF_KEYS; j++) { - if (keycodes_buffer_array[j] > current_val) { - keycodes_buffer_array[j]--; - } - } - keycode_index--; - } - } -} - -bool are_hashed_keycodes_in_array(HASH_TYPE keycode_hash) { - for (int i = 0; i < NUMBER_OF_KEYS; i++) { - bool index_in_hash = ((HASH_TYPE) 1 << i) & keycode_hash; - bool index_in_array = (bool) keycodes_buffer_array[i]; - if (index_in_hash && !index_in_array) { - return false; - } - } - return true; -} - -void kill_one_shots(void) { - struct Chord chord_storage; - struct Chord* chord_ptr; - struct Chord* chord; - - for (int i = 0; i < NUMBER_OF_CHORDS; i++) { - chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]); - memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord)); - chord = &chord_storage; - - if (*chord->state == IN_ONE_SHOT) { - *chord->state = RESTART; - chord->function(chord); - if (*chord->state == RESTART) { - *chord->state = IDLE; - } - } - } -} - -void process_finished_dances(void) { - struct Chord chord_storage; - struct Chord* chord_ptr; - struct Chord* chord; - - for (int i = 0; i < NUMBER_OF_CHORDS; i++) { - chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]); - memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord)); - chord = &chord_storage; - - if (*chord->state == ACTIVATED) { - *chord->state = PRESS_FROM_ACTIVE; - chord->function(chord); - if (a_key_went_through) { - kill_one_shots(); - } - dance_timer = timer_read(); - } else if (*chord->state == IDLE_IN_DANCE) { - *chord->state = FINISHED; - chord->function(chord); - if (*chord->state == FINISHED) { - *chord->state = RESTART; - if (*chord->state == RESTART) { - *chord->state = IDLE; - } - } - } else if (*chord->state == PRESS_FROM_ACTIVE) { - *chord->state = FINISHED_FROM_ACTIVE; - chord->function(chord); - if (a_key_went_through) { - kill_one_shots(); - } - dance_timer = timer_read(); - } - } -} - -uint8_t keycodes_buffer_array_min(uint8_t* first_keycode_index) { - for (int i = 0; i < NUMBER_OF_KEYS; i++) { - if (keycodes_buffer_array[i] == 1) { - if (first_keycode_index != NULL) { - *first_keycode_index = (uint8_t) i; - } - return 1; - } - } - return 0; -} - -void remove_subchords(void) { - struct Chord chord_storage; - struct Chord* chord_ptr; - struct Chord* chord; - - for (int i = 0; i < NUMBER_OF_CHORDS; i++) { - chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]); - memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord)); - chord = &chord_storage; - - if (!(*chord->state == READY || *chord->state == READY_IN_DANCE || *chord->state == READY_LOCKED)) { - continue; - } - - struct Chord chord_storage_2; - struct Chord* chord_ptr_2; - struct Chord* chord_2; - for (int j = 0; j < NUMBER_OF_CHORDS; j++) { - if (i == j) {continue;} - - chord_ptr_2 = (struct Chord*) pgm_read_word (&list_of_chords[j]); - memcpy_P(&chord_storage_2, chord_ptr_2, sizeof(struct Chord)); - chord_2 = &chord_storage_2; - - if (are_hashed_keycodes_in_sound(chord_2->keycodes_hash, chord->keycodes_hash)) { - if (*chord_2->state == READY) { - *chord_2->state = IDLE; - } - if (*chord_2->state == READY_IN_DANCE) { - *chord_2->state = IDLE_IN_DANCE; - } - if (*chord_2->state == READY_LOCKED) { - *chord_2->state = LOCKED; - } - } - } - } -} - -void process_ready_chords(void) { - uint8_t first_keycode_index = 0; - while (keycodes_buffer_array_min(&first_keycode_index)) { - // find ready chords - struct Chord chord_storage; - struct Chord* chord_ptr; - struct Chord* chord; - - for (int i = 0; i < NUMBER_OF_CHORDS; i++) { - chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]); - memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord)); - chord = &chord_storage; - - // if the chord does not contain the first keycode - bool contains_first_keycode = ((uint32_t) 1 << first_keycode_index) & chord->keycodes_hash; - if (!contains_first_keycode) { - continue; - } - - if (!are_hashed_keycodes_in_array(chord->keycodes_hash)){ - continue; - } - - if (*chord->state == LOCKED) { - *chord->state = READY_LOCKED; - continue; - } - - if (!(chord->pseudolayer == current_pseudolayer || chord->pseudolayer == ALWAYS_ON)) { - continue; - } - - if (*chord->state == IDLE) { - *chord->state = READY; - continue; - } - - if (*chord->state == IDLE_IN_DANCE) { - *chord->state = READY_IN_DANCE; - } - } - - // remove subchords - remove_subchords(); - - // execute logic - // this should be only one chord - for (int i = 0; i < NUMBER_OF_CHORDS; i++) { - chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]); - memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord)); - chord = &chord_storage; - - if (*chord->state == READY_LOCKED) { - *chord->state = RESTART; - chord->function(chord); - if (*chord->state == RESTART) { - *chord->state = IDLE; - } - break; - } - - if (*chord->state == READY || *chord->state == READY_IN_DANCE) { - if (last_chord && last_chord != chord) { - process_finished_dances(); - } - - bool lock_next_prev_state = lock_next; - - *chord->state = ACTIVATED; - chord->function(chord); - dance_timer = timer_read(); - - if (lock_next && lock_next == lock_next_prev_state) { - lock_next = false; - *chord->state = PRESS_FROM_ACTIVE; - chord->function(chord); - if (*chord->state == PRESS_FROM_ACTIVE) { - *chord->state = LOCKED; - } - if (a_key_went_through) { - kill_one_shots(); - } - } - break; - } - } - - // silence notes - silence_keycode_hash_array(chord->keycodes_hash); - } -} - -void deactivate_active_chords(uint16_t keycode) { - HASH_TYPE hash = (HASH_TYPE)1 << (keycode - SAFE_RANGE); - bool broken; - struct Chord chord_storage; - struct Chord* chord_ptr; - struct Chord* chord; - - for (int i = 0; i < NUMBER_OF_CHORDS; i++) { - chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]); - memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord)); - chord = &chord_storage; - - broken = are_hashed_keycodes_in_sound(hash, chord->keycodes_hash); - if (!broken) { - continue; - } - - switch (*chord->state) { - case ACTIVATED: - *chord->state = DEACTIVATED; - chord->function(chord); - - if (*chord->state == DEACTIVATED) { - dance_timer = timer_read(); - *chord->state = IDLE_IN_DANCE; - } - if (*chord->state != IN_ONE_SHOT) { - kill_one_shots(); - } - break; - case PRESS_FROM_ACTIVE: - case FINISHED_FROM_ACTIVE: - *chord->state = RESTART; - chord->function(chord); - if (*chord->state == RESTART) { - *chord->state = IDLE; - } - kill_one_shots(); - break; - default: - break; - } - } - -} - -void process_command(void) { - command_mode = 0; - for (int i = 0; i < COMMAND_MAX_LENGTH; i++) { - if (command_buffer[i]) { - register_code(command_buffer[i]); - } - send_keyboard_report(); - } - wait_ms(TAP_TIMEOUT); - for (int i = 0; i < COMMAND_MAX_LENGTH; i++) { - if (command_buffer[i]) { - unregister_code(command_buffer[i]); - } - send_keyboard_report(); - } - for (int i = 0; i < COMMAND_MAX_LENGTH; i++) { - command_buffer[i] = 0; - } - command_ind = 0; -} - -void process_leader(void) { - in_leader_mode = false; - for (int i = 0; i < NUMBER_OF_LEADER_COMBOS; i++) { - uint16_t trigger[LEADER_MAX_LENGTH]; - memcpy_P(trigger, leader_triggers[i], LEADER_MAX_LENGTH * sizeof(uint16_t)); - - if (identical(leader_buffer, trigger)) { - (*leader_functions[i])(); - break; - } - } - for (int i = 0; i < LEADER_MAX_LENGTH; i++) { - leader_buffer[i] = 0; - } -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (keycode < FIRST_INTERNAL_KEYCODE || keycode > LAST_INTERNAL_KEYCODE) { - return true; - } - - if (record->event.pressed) { - sound_keycode_array(keycode); - } else { - process_ready_chords(); - deactivate_active_chords(keycode); - } - chord_timer = timer_read(); - leader_timer = timer_read(); - - return false; -} - -void matrix_scan_user(void) { - bool chord_timer_expired = timer_elapsed(chord_timer) > CHORD_TIMEOUT; - if (chord_timer_expired && keycodes_buffer_array_min(NULL)) { - process_ready_chords(); - } - - bool dance_timer_expired = timer_elapsed(dance_timer) > DANCE_TIMEOUT; - if (dance_timer_expired) { // would love to have && in_dance but not sure how - process_finished_dances(); - } - - bool in_command_mode = command_mode == 2; - if (in_command_mode) { - process_command(); - } - - bool leader_timer_expired = timer_elapsed(leader_timer) > LEADER_TIMEOUT; - if (leader_timer_expired && in_leader_mode) { - process_leader(); - } - -} - -void clear(const struct Chord* self) { - if (*self->state == ACTIVATED) { - // kill all chords - struct Chord chord_storage; - struct Chord* chord_ptr; - struct Chord* chord; - - for (int i = 0; i < NUMBER_OF_CHORDS; i++) { - chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]); - memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord)); - chord = &chord_storage; - - *chord->state = IDLE; - - if (chord->counter) { - *chord->counter = 0; - } - } - - // clear keyboard - clear_keyboard(); - send_keyboard_report(); - - // switch to default pseudolayer - current_pseudolayer = DEFAULT_PSEUDOLAYER; - - // clear all keyboard states - lock_next = false; - autoshift_mode = true; - command_mode = 0; - in_leader_mode = false; - leader_ind = 0; - dynamic_macro_mode = false; - a_key_went_through = false; - - for (int i = 0; i < DYNAMIC_MACRO_MAX_LENGTH; i++) { - dynamic_macro_buffer[i] = 0; - } - } -} \ No newline at end of file diff --git a/keyboards/gboards/georgi/keymaps/dennytom/keymap_def.json b/keyboards/gboards/georgi/keymaps/dennytom/keymap_def.json deleted file mode 100644 index 232ccafadf..0000000000 --- a/keyboards/gboards/georgi/keymaps/dennytom/keymap_def.json +++ /dev/null @@ -1,153 +0,0 @@ -{ - "keys": [ - "TOP1", "TOP2", "TOP3", "TOP4", "TOP5", "TOP6", "TOP7", "TOP8", "TOP9", "TOP10", "TOP11", "TOP12", - "BOT1", "BOT2", "BOT3", "BOT4", "BOT5", "BOT6", "BOT7", "BOT8", "BOT9", "BOT10", "BOT11", "BOT12", - "THU1", "THU2", "THU3", "THU4", "THU5", "THU6" - ], - "parameters": { - "layout_function_name": "LAYOUT_georgi", - "chord_timeout": 100, - "dance_timeout": 200, - "leader_timeout": 750, - "tap_timeout": 50, - "command_max_length": 5, - "leader_max_length": 5, - "dynamic_macro_max_length": 20, - "string_max_length": 16, - "long_press_multiplier": 3, - "default_pseudolayer": "QWERTY" - }, - "layers": [ - { - "type": "auto" - } - ], - "chord_sets": [ - { - "name": "rows", - "chords": - [ - ["TOP1"], ["TOP2"], ["TOP3"], ["TOP4"], ["TOP5"], ["TOP6"], ["TOP7"], ["TOP8"], ["TOP9"], ["TOP10"], ["TOP11"], ["TOP12"], - ["TOP1", "BOT1"], ["TOP2", "BOT2"], ["TOP3", "BOT3"], ["TOP4", "BOT4"], ["TOP5", "BOT5"], ["TOP6", "BOT6"], ["TOP7", "BOT7"], ["TOP8", "BOT8"], ["TOP9", "BOT9"], ["TOP10", "BOT10"], ["TOP11", "BOT11"], ["TOP12", "BOT12"], - ["BOT1"], ["BOT2"], ["BOT3"], ["BOT4"], ["BOT5"], ["BOT6"], ["BOT7"], ["BOT8"], ["BOT9"], ["BOT10"], ["BOT11"], ["BOT12"], - ["THU1"], ["THU2"], ["THU3"], ["THU4"], ["THU5"], ["THU6"] - ] - } - ], - "pseudolayers": [ - { - "name": "ALWAYS_ON", - "chords": [ - { - "type": "visual", - "chord": [ - "X", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X", - "X", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X", - " ", " ", " ", " ", " ", " " - ], - "keycode": "CLEAR_KB" - }, - { - "type": "visual", - "chord": [ - " ", " ", " ", " ", " ", "X", "X", " ", " ", " ", " ", " ", - " ", " ", " ", " ", " ", "X", "X", " ", " ", " ", " ", " ", - " ", " ", " ", " ", " ", " " - ], - "keycode": "CMD" - } - ] - }, - { - "name": "QWERTY", - "chords": [ - { - "type": "chord_set", - "set": "rows", - "keycodes": [ - "ESC", "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "\\", - "INS", "A", "KK(S, LALT)", "KM(D, LCTL)", "KM(F, LSFT)", "KK(G, LGUI)", "KK(H, RGUI)", "KM(J, RSFT)", "KM(K, RCTL)", "KK(L, RALT)", ";", " ", - "TAB", "Z", "X", "C", "V", "B", "N", "M", ",", ".", "/", "'", - "","","","","","" - ] - }, - { - "type": "visual_array", - "keys": ["THU1", "THU2", "THU3", "THU4", "THU5", "THU6"], - "dictionary": [ - ["X", " ", " ", " ", " ", " ", "ENTER"], - [" ", "X", " ", " ", " ", " ", "KL(SPC, NUM)"], - [" ", " ", "X", " ", " ", " ", "KL(BSPC, NAV)"], - [" ", " ", " ", "X", " ", " ", "DEL"], - [" ", " ", " ", " ", "X", " ", "KL(SPC, FNC)"], - [" ", " ", " ", " ", " ", "X", "ENTER"], - [" ", "X", "X", " ", " ", " ", "MO(MOUSE)"] - ] - } - ] - }, - { - "name": "NUM", - "chords": [ - { - "type": "chord_set", - "set": "rows", - "keycodes": [ - "`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-", - " ", " ", "LALT", "LCTL", "LSFT", "LGUI", "RGUI", "RSFT", "RCTL", "RALT", " ", " ", - " ", " ", " ", " ", " ", " ", " ", " ", " ", "[", "]", "=", - " ", " ", " ", " ", " ", " " - ] - } - ] - }, - { - "name": "FNC", - "chords": [ - { - "type": "chord_set", - "set": "rows", - "keycodes": [ - " ", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", - " ", " ", "LALT", "LCTL", "LSFT", "LGUI", "RGUI", "RSFT", "RCTL", "RALT", " ", " ", - " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "F12", - " ", " ", " ", " ", " ", " " - ] - } - ] - }, - { - "name": "NAV", - "chords": [ - { - "type": "chord_set", - "set": "rows", - "keycodes": [ - " ", " ", " ", " ", " ", " ", " ", "HOME", "UP", "END", "PGUP", " ", - " ", " ", "LALT", "LCTL", "LSFT", "LGUI", " ", " ", " ", " ", " ", " ", - " ", " ", " ", " ", " ", " ", " ", "LEFT", "DOWN", "RIGHT", "PGDN", " ", - " ", " ", " ", " ", " ", " " - ] - } - ] - }, - { - "name": "MOUSE", - "chords": [ - { - "type": "chord_set", - "set": "rows", - "keycodes": [ - " ", " ", " ", " ", " ", " ", " ", "BTN1", "MS_U", "BTN2", "WH_U", " ", - " ", " ", "LALT", "LCTL", "LSFT", "LGUI", " ", " ", " ", " ", " ", " ", - " ", " ", " ", " ", " ", " ", " ", "MS_L", "MS_D", "MS_R", "WH_D", " ", - " ", " ", " ", " ", " ", " " - ] - } - ] - } - ], - "leader_sequences": [], - "extra_code": "", - "extra_dependencies": [] -} \ No newline at end of file diff --git a/keyboards/gboards/georgi/keymaps/dennytom/rules.mk b/keyboards/gboards/georgi/keymaps/dennytom/rules.mk deleted file mode 100644 index af3726f14a..0000000000 --- a/keyboards/gboards/georgi/keymaps/dennytom/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -MOUSEKEY_ENABLE = yes -CONSOLE_ENABLE = no diff --git a/keyboards/gboards/gergo/keymaps/drashna/keymap.c b/keyboards/gboards/gergo/keymaps/drashna/keymap.c deleted file mode 100644 index 4f7d6b5dfa..0000000000 --- a/keyboards/gboards/gergo/keymaps/drashna/keymap.c +++ /dev/null @@ -1,99 +0,0 @@ -/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "drashna.h" - -/* - * The `LAYOUT_gergo_base` macro is a template to allow the use of identical - * modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so - * that there is no need to set them up for each layout, and modify all of - * them if I want to change them. This helps to keep consistency and ease - * of use. K## is a placeholder to pass through the individual keycodes - */ -// clang-format off -#define LAYOUT_gergo_wrapper(...) LAYOUT_gergo(__VA_ARGS__) -#define LAYOUT_gergo_base( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ - K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ - K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \ - ) \ - LAYOUT_gergo_wrapper( \ - KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_PIPE, \ - LALT_T(KC_TAB), K11, K12, K13, K14, K15, _______, _______, K16, K17, K18, K19, K1A, RALT_T(K1B), \ - OS_LSFT, CTL_T(K21), K22, K23, K24, K25, _______, _______, _______, _______, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \ - KC_GRV, KC_SPC, BK_LWER, OS_LALT, OS_RGUI, DL_RAIS, KC_ENT, _______ \ - ) - -#define LAYOUT_base_wrapper(...) LAYOUT_gergo_base(__VA_ARGS__) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper( - _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, - _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, - _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ - ), - - [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper( - ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________, - ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________, - ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________ - ), - [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper( - _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, - _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, - _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ - ), - - [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper( - _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, - _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, - _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ - ), - - [_LOWER] = LAYOUT_gergo_wrapper( - KC_F12, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F11, - _______, _________________LOWER_L2__________________, _______, _______, _________________LOWER_R2__________________, KC_PIPE, - _______, _________________LOWER_L3__________________, _______, _______, _______, _______, _________________LOWER_R3__________________, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ), - - [_RAISE] = LAYOUT_gergo_wrapper( - _______, _________________RAISE_L1__________________, _________________RAISE_R1__________________, _______, - _______, _________________RAISE_L2__________________, _______, _______, _________________RAISE_R2__________________, KC_BSLS, - _______, _________________RAISE_L3__________________, _______, _______, _______, _______, _________________RAISE_R3__________________, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ), - - [_ADJUST] = LAYOUT_gergo_wrapper( - QK_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, QK_BOOT, - VRSN, _________________ADJUST_L2_________________, _______, KC_NUKE, _________________ADJUST_R2_________________, EE_CLR, - _______, _________________ADJUST_L3_________________, _______, _______, _______, _______, _________________ADJUST_R3_________________, TG_MODS, - _______, _______, _______, _______, _______, _______, _______, _______ - ), - -}; - -/* Keymap template - - [SYMB] = LAYOUT_gergo_wrapper( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ), - - */ -// clang-format on diff --git a/keyboards/gboards/gergo/keymaps/drashna/rules.mk b/keyboards/gboards/gergo/keymaps/drashna/rules.mk deleted file mode 100644 index ec81d11e9c..0000000000 --- a/keyboards/gboards/gergo/keymaps/drashna/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -CONSOLE_ENABLE = no -COMMAND_ENABLE = no diff --git a/keyboards/gboards/gergo/keymaps/manna-harbour_miryoku/config.h b/keyboards/gboards/gergo/keymaps/manna-harbour_miryoku/config.h deleted file mode 100644 index e86d030fd7..0000000000 --- a/keyboards/gboards/gergo/keymaps/manna-harbour_miryoku/config.h +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku(\ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT_gergo(\ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX,\ -XXX, K10, K11, K12, K13, K14, XXX, XXX, K15, K16, K17, K18, K19, XXX,\ -XXX, K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29, XXX,\ - K32, K33, K34, XXX, XXX, K35, K36, K37\ -) diff --git a/keyboards/gboards/gergo/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/gboards/gergo/keymaps/manna-harbour_miryoku/keymap.c deleted file mode 100644 index dbab7f9820..0000000000 --- a/keyboards/gboards/gergo/keymaps/manna-harbour_miryoku/keymap.c +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/gh60/satan/keymaps/jarred/keymap.c b/keyboards/gh60/satan/keymaps/jarred/keymap.c deleted file mode 100644 index 7f7436bea7..0000000000 --- a/keyboards/gh60/satan/keymaps/jarred/keymap.c +++ /dev/null @@ -1,22 +0,0 @@ -#include QMK_KEYBOARD_H - -#define _QW 0 -#define _NV 1 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -[_QW] = LAYOUT_60_ansi( - KC_ESC, 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_BSPC, - 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, - MO(_NV), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_APP, KC_RCTL), - -[_NV] = LAYOUT_60_ansi( - 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_DEL ,KC_BSPC,_______,KC_HOME,KC_UP ,KC_END ,KC_INS ,_______,_______,_______, - _______,_______,_______,KC_LSFT,KC_LCTL,KC_ENT ,_______,KC_LEFT,KC_DOWN,KC_RGHT,KC_DEL ,KC_DEL , _______, - _______,_______,_______,_______,_______,_______,_______,KC_PGUP,KC_PGDN,_______,_______,_______, - _______,_______,_______, _______, _______,_______, QK_BOOT, _______), - -}; diff --git a/keyboards/gh60/satan/keymaps/jarred/readme.md b/keyboards/gh60/satan/keymaps/jarred/readme.md deleted file mode 100644 index 522cb19b65..0000000000 --- a/keyboards/gh60/satan/keymaps/jarred/readme.md +++ /dev/null @@ -1 +0,0 @@ -# Jarred's Satan GH60 layout diff --git a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vnmm/keymap.c b/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vnmm/keymap.c deleted file mode 100644 index 6d88e11674..0000000000 --- a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vnmm/keymap.c +++ /dev/null @@ -1,57 +0,0 @@ -/* Copyright 2022 Eugenio Pastoral - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H -#include "vnmm.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap WIN_BASE: Base Layer (Default Layer) - */ -[WIN_BASE] = LAYOUT( - QK_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_BSPC, KC_DEL, - 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_PGUP, - 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_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, WIN_F, KC_LEFT, KC_DOWN, KC_RGHT), - - /* Keymap MAC_BASE: Alternate base layer available if I end up on macbook. - */ -[MAC_BASE] = LAYOUT( - QK_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_BSPC, KC_DEL, - 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_PGUP, - 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_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MAC_F, KC_LEFT, KC_DOWN, KC_RGHT), - - - /* Keymap WIN_FN: Function Layer WIN_BASE - */ -[WIN_FN] = 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, _______, _______, - RGB_TOG, RGB_MOD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, - _______, RGB_RMOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, KC_VOLU, KC_MPLY, - EE_CLR, _______, _______, QK_BOOT, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT), - - /* Keymap MAC_FN: Function Layer for MAC_BASE - */ -[MAC_FN] = 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, _______, _______, - RGB_TOG, RGB_MOD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, - _______, RGB_RMOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, KC_VOLU, KC_MPLY, - EE_CLR, _______, _______, QK_BOOT, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT), -}; diff --git a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vnmm/readme.md b/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vnmm/readme.md deleted file mode 100644 index d39bdb6e8d..0000000000 --- a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vnmm/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# Vnmm's ANSI GMMKV2 65% Layout - -This keymap builds on archrovisual's but with some changes and uses the default key placements - -## Features - -- Alphabet keys light up red when caps lock is on -- Pressing FN shows keys that have a definition -- Via enabled -- Quick reset with fn+space diff --git a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vnmm/rules.mk b/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vnmm/rules.mk deleted file mode 100644 index 96d2d189b2..0000000000 --- a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vnmm/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -VIA_ENABLE = yes -MOUSEKEY_ENABLE = no diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/config.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/config.h deleted file mode 100644 index 16ac4f2407..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/config.h +++ /dev/null @@ -1,72 +0,0 @@ -/* Copyright 2021 Choi Byungyoon - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define RGB_MATRIX_KEYPRESSES - -// RGB Matrix Animation modes. Explicitly enabled -// For full list of effects, see: -// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects -// #define ENABLE_RGB_MATRIX_ALPHAS_MODS -// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN -// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT -// #define ENABLE_RGB_MATRIX_BREATHING -#undef ENABLE_RGB_MATRIX_BAND_SAT -#undef ENABLE_RGB_MATRIX_BAND_VAL -#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT -#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL -#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT -#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL -// #define ENABLE_RGB_MATRIX_CYCLE_ALL -// #define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT -// #define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN -// #define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN -#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL -#undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL -#undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL -#undef ENABLE_RGB_MATRIX_DUAL_BEACON -#undef ENABLE_RGB_MATRIX_RAINBOW_BEACON -#undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS -// #define ENABLE_RGB_MATRIX_RAINDROPS -// #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS -#undef ENABLE_RGB_MATRIX_HUE_BREATHING -#undef ENABLE_RGB_MATRIX_HUE_PENDULUM -#undef ENABLE_RGB_MATRIX_HUE_WAVE -// #define ENABLE_RGB_MATRIX_PIXEL_RAIN -#undef ENABLE_RGB_MATRIX_PIXEL_FLOW -#undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL -// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined -// #define ENABLE_RGB_MATRIX_TYPING_HEATMAP -// #define ENABLE_RGB_MATRIX_DIGITAL_RAIN -// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined -// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE -#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -#undef ENABLE_RGB_MATRIX_SPLASH -// #define ENABLE_RGB_MATRIX_MULTISPLASH -#undef ENABLE_RGB_MATRIX_SOLID_SPLASH -// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH - -#undef DEBOUNCE -/* High debounce time is required to avoid key chattering because of the debouncing algorithm sym_eager_pk */ -#define DEBOUNCE 40 diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/keymap.c deleted file mode 100644 index 487e6dc04e..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/keymap.c +++ /dev/null @@ -1,132 +0,0 @@ -/* Copyright 2021 Choi Byungyoon - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H -#include "byungyoonc.h" - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Prt Rotary(Mic Mute) -// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc TaskMgr -// Tab Q W E R T Y U I O P [ ] \ Del -// Caps A S D F G H J K L ; " Enter Home -// Sh_L Z X C V B N M , . ? Sh_R Up End -// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right - - [0] = LAYOUT( - KC_ESC, 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_PSCR, KC_MMUT, - KC_GRV, 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_BSPC, KC_TASK, - 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_DEL, - 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_ENT, KC_HOME, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [1] = LAYOUT( - _______, KC_BRID, KC_BRIU, KC_CALC, KC_MSEL, RGB_VAD, RGB_VAI, KC_MRWD, KC_MPLY, KC_MFFD, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - _______, KC_SEC1, KC_SEC2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DB_TOGG, _______, - _______, _______, _______, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, - _______, _______, _______, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RGB_HUI, RGB_HUD, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RGB_MOD, _______, - _______, GUI_TOG, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI - ), - - -}; -// clang-format on - -bool process_record_user_kb(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { - rgblight_increase_hue(); - } - return true; -} - -#if defined(ENCODER_ENABLE) -bool encoder_update_user(uint8_t index, bool clockwise) { - uint8_t mod_state = get_mods(); - if (mod_state & MOD_MASK_CTRL) { - unregister_mods(MOD_MASK_CTRL); - if (clockwise) { - tap_code16(LCTL(KC_RGHT)); - } else { - tap_code16(LCTL(KC_LEFT)); - } - set_mods(mod_state); - } else { - if (clockwise) { - tap_code16(KC_VOLU); - } else { - tap_code16(KC_VOLD); - } - } - //return true; //set to return false to counteract enabled encoder in pro.c - return false; -} -#endif // ENCODER_ENABLE - -static void set_rgb_caps_leds(void); - -static void set_rgb_caps_leds(void) { - rgb_matrix_set_color(73, 0xFF, 0x77, 0x77); // Left side LED 3 - rgb_matrix_set_color(74, 0xFF, 0x77, 0x77); // Right side LED 3 - rgb_matrix_set_color(76, 0xFF, 0x77, 0x77); // Left side LED 4 - rgb_matrix_set_color(77, 0xFF, 0x77, 0x77); // Right side LED 4 - rgb_matrix_set_color(80, 0xFF, 0x77, 0x77); // Left side LED 5 - rgb_matrix_set_color(81, 0xFF, 0x77, 0x77); // Right side LED 5 - rgb_matrix_set_color(83, 0xFF, 0x77, 0x77); // Left side LED 6 - rgb_matrix_set_color(84, 0xFF, 0x77, 0x77); // Right side LED 6 - rgb_matrix_set_color(3, 0xFF, 0x77, 0x77); // CAPS LED -} - -static void set_rgb_nlck_notset_leds(void); - -static void set_rgb_wlck_leds(void); - -static void set_rgb_nlck_notset_leds(void) { - rgb_matrix_set_color(67, 0x77, 0x77, 0xFF); // Left side LED 1 - rgb_matrix_set_color(68, 0x77, 0x77, 0xFF); // Right side LED 1 - rgb_matrix_set_color(70, 0x77, 0x77, 0xFF); // Left side LED 2 - rgb_matrix_set_color(71, 0x77, 0x77, 0xFF); // Right side LED 2 -} - -static void set_rgb_wlck_leds(void) { - rgb_matrix_set_color(87, 0x77, 0xFF, 0x77); // Left side LED 7 - rgb_matrix_set_color(88, 0x77, 0xFF, 0x77); // Right side LED 7 - rgb_matrix_set_color(91, 0x77, 0xFF, 0x77); // Left side LED 8 - rgb_matrix_set_color(92, 0x77, 0xFF, 0x77); // Right side LED 8 -} - -bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { - led_t led_state = host_keyboard_led_state(); - if (led_state.caps_lock) { - set_rgb_caps_leds(); - } - if (!led_state.num_lock) { - set_rgb_nlck_notset_leds(); - } - if (keymap_config.no_gui) { - set_rgb_wlck_leds(); - } - return false; -} - -void matrix_output_unselect_delay(uint8_t line, bool key_pressed) { - for (int i = 0; i < 20; i++) { - wait_cpuclock(STM32_SYSCLK / 1000000L); - } -} diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/readme.md b/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/readme.md deleted file mode 100644 index d340bf86ed..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/readme.md +++ /dev/null @@ -1,41 +0,0 @@ -byungyoonc's GMMK Pro Layout -============================ - -## Keymap - -### Base Layer -![GMMK Pro Base Layer Layout Image](https://i.imgur.com/VvEL08Q.png) - -Made a bit of a change on the leftmost side of the keyboard to set Home and End closer to the arrow keys. Also uses a shortcut for Windows Task Manager, Windows PowerToys microphone mute. - -### Fn Layer -![GMMK Pro Fn Layer Layout Image](https://i.imgur.com/uQy2gSh.png) - -F-row media functions roughly matches the Keychron keyboard's layout. - -Added Debug key for faster debugging iteration. - -Supports Secrets input by Fn + Numbers. - -The rest are pretty self-explanatory RGB controls, a GUI toggle and an NKRO toggle. - -## Rotary Encoder Rotation -Volume control when no mods, Ctrl+Left/Right when Ctrl is pressed while rotating the encoder. - -## RGB Indicators -Uses side strap RGB as the RGB indicators. -- Top third lights on when the Num Lock is turned off. -- Middle third lights on when the Caps Lock is turned on. -- Bottom third lights on when the GUI is disabled (via `GUI_TOG`). - -## Debounce -Uses the `DEBOUNCE_TYPE` of `sym_eager_pk` for the shortest response time possible, and `DEBOUNCE` time of `40` in order to eliminate any key chattering. - -## NKRO -N-key rollover is turned on by default. - -## RGB Matrix -Keypresses effects are enabled. -Disabled default several RGB effects. -Added custom RGB matrix effect `saturated_solid_multisplash`. -Every keypress increases the RGB hue value. diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/rgb_matrix_user.inc b/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/rgb_matrix_user.inc deleted file mode 100644 index 0d61e19f4c..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/rgb_matrix_user.inc +++ /dev/null @@ -1 +0,0 @@ -#include "saturated_solid_multisplash.h" diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/rules.mk b/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/rules.mk deleted file mode 100644 index 08f832c51b..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -DEBOUNCE_TYPE = sym_eager_pk -RGB_MATRIX_CUSTOM_USER = yes diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/keymap.c deleted file mode 100644 index c00ba602f7..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/keymap.c +++ /dev/null @@ -1,163 +0,0 @@ -/* Copyright 2021 Cedrik Lussier @cedrikl -.* Directly inspired from the work of jonavin https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/ansi/keymaps/jonavin - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H -#include "rgb_matrix_map.h" -#include "cedrikl.h" - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Prt Rotary(Mute) -// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Del -// Tab Q W E R T Y U I O P [ ] \ PgUp -// Caps A S D F G H J K L ; " Enter PgDn -// Sh_L Z X C V B N M , . ? Sh_R Up End -// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right - - - // The FN key by default maps to a momentary toggle to layer 1 to provide access to the QK_BOOT key (to put the board into bootloader mode). Without - // this mapping, you have to open the case to hit the button on the bottom of the PCB (near the USB cable attachment) while plugging in the USB - // cable to get the board into bootloader mode - definitely not fun when you're working on your QMK builds. Remove this and put it back to KC_RGUI - // if that's your preference. - // - // To put the keyboard in bootloader mode, use FN+backslash. If you accidentally put it into bootloader, you can just unplug the USB cable and - // it'll be back to normal when you plug it back in. - // - // This keyboard defaults to 6KRO instead of NKRO for compatibility reasons (some KVMs and BIOSes are incompatible with NKRO). - // Since this is, among other things, a "gaming" keyboard, a key combination to enable NKRO on the fly is provided for convenience. - // Press Fn+N to toggle between 6KRO and NKRO. This setting is persisted to the EEPROM and thus persists between restarts. - [0] = LAYOUT( - KC_ESC, 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_DEL, KC_MUTE, - KC_GRV, 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_BSPC, KC_HOME, - 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_PGUP, - 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_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [1] = LAYOUT( - EE_CLR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, KC_MUTE, - KC_NUM, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, KC_BSPC, KC_PSCR, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_PSLS, KC_PAST, KC_BSLS, KC_PGUP, - KC_CAPS, RGB_VAD, RGB_TOG, RGB_VAI, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_PENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_PDOT, KC_SLSH, KC_RSFT, KC_UP, KC_INS, - KC_LCTL, KC_RGUI, KC_LALT, KC_SPC, KC_RALT, KC_NO, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ) -}; -// clang-format on - -#ifdef ENCODER_ENABLE - bool encoder_update_user(uint8_t index, bool clockwise) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - //return true; //set to return false to counteract enabled encoder in pro.c - return false; - } -#endif // ENCODER_ENABLE - - -#ifdef RGB_MATRIX_ENABLE -//void set_layer_rgb(uint8_t led_min, uint8_t led_max, int layer) { -// const ledmap *l = &(ledmaps[layer]); -// -// -// -// for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { -// HSV hsv = { -// .h = (*l)[i][0], -// .s = (*l)[i][1], -// .v = val, -// }; -// -// if (hsv.h || hsv.s) { -// RGB rgb = hsv_to_rgb(hsv); -// RGB_MATRIX_INDICATOR_SET_COLOR(i, rgb.r, rgb.g, rgb.b); -// } -// } -//} - - // These shorthands are used below to set led colors on each matrix cycle - void loop_colorset(const uint8_t *indices, int array_size, const HSV target_color) { - HSV work_color = target_color; - work_color.v = rgb_matrix_get_val(); - - RGB final_color = hsv_to_rgb(work_color); - - for (int i = 0; i < array_size; i++) { - rgb_matrix_set_color(indices[i], final_color.r, final_color.g, final_color.b); // Set color A here - } - } - - // Capslock, Scroll lock and Numlock indicator on Left side lights. - bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { - loop_colorset(LED_REGION_A, ARRAY_SIZE(LED_REGION_A), - hsv_cl_blue); - loop_colorset(LED_REGION_B, ARRAY_SIZE(LED_REGION_B), - hsv_cl_purple); - loop_colorset(LED_REGION_L_SIDE, ARRAY_SIZE(LED_REGION_L_SIDE), - hsv_cl_purple); - loop_colorset(LED_REGION_R_SIDE, ARRAY_SIZE(LED_REGION_R_SIDE), - hsv_cl_purple); - - switch(get_highest_layer(layer_state)){ // special handling per layer - case 1: //layer 1 - //rgb_matrix_set_color_all(RGB_AZURE); - loop_colorset(LED_REGION_NUMPAD, - ARRAY_SIZE(LED_REGION_NUMPAD), hsv_cl_numpad); - loop_colorset(LED_REGION_OTHER, ARRAY_SIZE(LED_REGION_OTHER), - hsv_cl_mods); - break; - default: //layer 0 - // - break; - break; - } - - HSV bad_hsv = hsv_cl_bad; - bad_hsv.v = rgb_matrix_get_val(); - RGB bad_rgb = hsv_to_rgb(bad_hsv); - led_t led_state = host_keyboard_led_state(); - - if (!led_state.num_lock) { // on if NUM lock is OFF - rgb_matrix_set_color(LED_R1, bad_rgb.r, bad_rgb.g, bad_rgb.b); - rgb_matrix_set_color(LED_R2, bad_rgb.r, bad_rgb.g, bad_rgb.b); - rgb_matrix_set_color(LED_R3, bad_rgb.r, bad_rgb.g, bad_rgb.b); - rgb_matrix_set_color(LED_R4, bad_rgb.r, bad_rgb.g, bad_rgb.b); - rgb_matrix_set_color(LED_R5, bad_rgb.r, bad_rgb.g, bad_rgb.b); - rgb_matrix_set_color(LED_R6, bad_rgb.r, bad_rgb.g, bad_rgb.b); - rgb_matrix_set_color(LED_R7, bad_rgb.r, bad_rgb.g, bad_rgb.b); - rgb_matrix_set_color(LED_R8, bad_rgb.r, bad_rgb.g, bad_rgb.b); - } - if (led_state.caps_lock) { - rgb_matrix_set_color(LED_L1, bad_rgb.r, bad_rgb.g, bad_rgb.b); - rgb_matrix_set_color(LED_L2, bad_rgb.r, bad_rgb.g, bad_rgb.b); - rgb_matrix_set_color(LED_L3, bad_rgb.r, bad_rgb.g, bad_rgb.b); - rgb_matrix_set_color(LED_L4, bad_rgb.r, bad_rgb.g, bad_rgb.b); - rgb_matrix_set_color(LED_L5, bad_rgb.r, bad_rgb.g, bad_rgb.b); - rgb_matrix_set_color(LED_L6, bad_rgb.r, bad_rgb.g, bad_rgb.b); - rgb_matrix_set_color(LED_L7, bad_rgb.r, bad_rgb.g, bad_rgb.b); - rgb_matrix_set_color(LED_L8, bad_rgb.r, bad_rgb.g, bad_rgb.b); - loop_colorset(LED_REGION_CAPS, ARRAY_SIZE(LED_REGION_CAPS), - hsv_cl_bad); - } - return false; - } -#endif diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/rgb_matrix_map.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/rgb_matrix_map.h deleted file mode 100644 index 484f64b74c..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/rgb_matrix_map.h +++ /dev/null @@ -1,185 +0,0 @@ -/* Copyright 2021 Cedrik Lussier @cedrikl -.* Directly inspired from the work of jonavin https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/ansi/keymaps/jonavin - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifdef RGB_MATRIX_ENABLE - - // Custom RGB Colours - const HSV hsv_cl_blue = {150, 255, 255}; - const HSV hsv_cl_purple = {188, 255, 255}; - const HSV hsv_cl_numpad = {85, 255, 255}; - const HSV hsv_cl_mods = {42, 255, 255}; - const HSV hsv_cl_bad = {0, 255, 255}; - - // RGB LED locations - enum led_location_map { - LED_ESC, // 0, ESC, k13 - LED_GRV, // 1, ~, k16 - LED_TAB, // 2, Tab, k11 - LED_CAPS, // 3, Caps, k21 - LED_LSFT, // 4, Sh_L, k00 - LED_LCTL, // 5, Ct_L, k06 - LED_F1, // 6, F1, k26 - LED_1, // 7, 1, k17 - LED_Q, // 8, Q, k10 - LED_A, // 9, A, k12 - LED_Z, // 10, Z, k14 - LED_LWIN, // 11, Win_L, k90 - LED_F2, // 12, F2, k36 - LED_2, // 13, 2, k27 - LED_W, // 14, W, k20 - LED_S, // 15, S, k22 - LED_X, // 16, X, k24 - LED_LALT, // 17, Alt_L, k93 - LED_F3, // 18, F3, k31 - LED_3, // 19, 3, k37 - LED_E, // 20, E, k30 - LED_D, // 21, D, k32 - LED_C, // 22, C, k34 - LED_F4, // 23, F4, k33 - LED_4, // 24, 4, k47 - LED_R, // 25, R, k40 - LED_F, // 26, F, k42 - LED_V, // 27, V, k44 - LED_F5, // 28, F5, k07 - LED_5, // 29, 5, k46 - LED_T, // 30, T, k41 - LED_G, // 31, G, k43 - LED_B, // 32, B, k45 - LED_SPC, // 33, SPACE, k94 - LED_F6, // 34, F6, k63 - LED_6, // 35, 6, k56 - LED_Y, // 36, Y, k51 - LED_H, // 37, H, k53 - LED_N, // 38, N, k55 - LED_F7, // 39, F7, k71 - LED_7, // 40, 7, k57 - LED_U, // 41, U, k50 - LED_J, // 42, J, k52 - LED_M, // 43, M, k54 - LED_F8, // 44, F8, k76 - LED_8, // 45, 8, k67 - LED_I, // 46, I, k60 - LED_K, // 47, K, k62 - LED_COMM, // 48, ,, k64 - LED_RALT, // 49, Alt_R, k95 - LED_F9, // 50, F9, ka6 - LED_9, // 51, 9, k77 - LED_O, // 52, O, k70 - LED_L, // 53, L, k72 - LED_DOT, // 54, ., k74 - LED_FN, // 55, FN, k92 - LED_F10, // 56, F10, ka7 - LED_0, // 57, 0, k87 - LED_P, // 58, P, k80 - LED_SCLN, // 59, ;, k82 - LED_SLSH, // 60, ?, k85 - LED_F11, // 61, F11, ka3 - LED_MINS, // 62, -, k86 - LED_LBRC, // 63, [, k81 - LED_QUOT, // 64, ", k83 - LED_RCTL, // 65, Ct_R, k04 - LED_F12, // 66, F12, ka5 - LED_L1, // 67, LED, l01 - LED_R1, // 68, LED, l11 - LED_DEL, // 69, Prt, k97 -- remapped to DEL - LED_L2, // 70, LED, l02 - LED_R2, // 71, LED, l12 - LED_HOME, // 72, Del, k65 - LED_L3, // 73, LED, l03 - LED_R3, // 74, LED, l13 - LED_PGUP, // 75, PgUp, k15 - LED_L4, // 76, LED, l04 - LED_R4, // 77, LED, l14 - LED_EQL, // 78, =, k66 - LED_RGHT, // 79, Right, k05 - LED_L5, // 80, LED, l05 - LED_R5, // 81, LED, l15 - LED_END, // 82, End, k75 - LED_L6, // 83, LED, l06 - LED_R6, // 84, LED, l16 - LED_BSPC, // 85, BSpc, ka1 - LED_PGDN, // 86, PgDn, k25 - LED_L7, // 87, LED, l07 - LED_R7, // 88, LED, l17 - LED_RBRC, // 89, ], k61 - LED_RSFT, // 90, Sh_R, k91 - LED_L8, // 91, LED, l08 - LED_R8, // 92, LED, l18 - LED_BSLS, // 93, \, ka2 - LED_UP, // 94, Up, k35 - LED_LEFT, // 95, Left, k03 - LED_ENT, // 96, Enter, ka4 - LED_DOWN // 97, Down, k73 - }; - -const uint8_t LED_REGION_L_SIDE[] = {LED_L1, LED_L2, LED_L3, LED_L4, LED_L5, LED_L6, LED_L7,LED_L8}; -const uint8_t LED_REGION_R_SIDE[] = {LED_R1, LED_R2, LED_R3, LED_R4, LED_R5, LED_R6, LED_R7,LED_R8}; - - //const uint8_t LED_MATRIX[] = { - // LED_ESC, LED_F1, LED_F2, LED_F3, LED_F4, LED_F5, LED_F6, LED_F7, LED_F8, LED_F9, LED_F10, LED_F11, LED_F12, LED_DEL, - // LED_GRV, LED_1, LED_2, LED_3, LED_4, LED_5, LED_6, LED_7, LED_8, LED_9, LED_0, LED_MINS, LED_EQL, LED_BSPC, LED_HOME, - // LED_TAB, LED_Q, LED_W, LED_E, LED_R, LED_T, LED_Y, LED_U, LED_I, LED_O, LED_P, LED_LBRC, LED_RBRC, LED_BSLS, LED_PGUP, - // LED_CAPS, LED_A, LED_S, LED_D, LED_F, LED_G, LED_H, LED_J, LED_K, LED_L, LED_SCLN, LED_QUOT, LED_ENT, LED_PGDN, - // LED_LSFT, LED_Z, LED_X, LED_C, LED_V, LED_B, LED_N, LED_M, LED_COMM, LED_DOT, LED_SLSH, LED_RSFT, LED_UP, LED_END, - // LED_LCTL, LED_LWIN, LED_LALT, LED_SPC, LED_RALT, LED_FN, LED_RCTL, LED_LEFT, LED_DOWN, LED_RGHT - //}; - - const uint8_t LED_REGION_A[] = { - LED_ESC, LED_F9, LED_F10, LED_F11, LED_F12, LED_DEL, - LED_GRV, LED_1, LED_0, LED_MINS, LED_EQL, LED_BSPC, LED_HOME, - LED_TAB, LED_Q, LED_P, LED_LBRC, LED_RBRC, LED_BSLS, LED_PGUP, - LED_CAPS, LED_A, LED_SCLN, LED_QUOT, LED_ENT, LED_PGDN, - LED_LSFT, LED_Z, LED_SLSH, LED_RSFT, LED_UP, LED_END, - LED_LCTL, LED_LWIN, LED_LALT, LED_RCTL, LED_LEFT, LED_DOWN, LED_RGHT - }; - const uint8_t LED_REGION_B[] = { - LED_F1, LED_F2, LED_F3, LED_F4, LED_F5, LED_F6, LED_F7, LED_F8, - LED_2, LED_3, LED_4, LED_5, LED_6, LED_7, LED_8, LED_9, - LED_W, LED_E, LED_R, LED_T, LED_Y, LED_U, LED_I, LED_O, - LED_S, LED_D, LED_F, LED_G, LED_H, LED_J, LED_K, LED_L, - LED_X, LED_C, LED_V, LED_B, LED_N, LED_M, LED_COMM, LED_DOT, - LED_SPC, LED_RALT, LED_FN - }; - - const uint8_t LED_REGION_NUMPAD[] = { - - LED_GRV, LED_1, LED_2, LED_3, LED_4, LED_5, LED_6, LED_7, LED_8, LED_9, LED_0, LED_MINS, LED_EQL, - LED_LBRC, LED_RBRC, - LED_ENT, - LED_DOT - - }; - - const uint8_t LED_REGION_OTHER[] = { - LED_ESC, LED_DEL, - LED_HOME, - - LED_A, LED_S, LED_D, - LED_END, - LED_LWIN - }; - - const uint8_t LED_REGION_CAPS[] = { - - LED_GRV, LED_1, - LED_TAB, LED_Q, - LED_CAPS, LED_A, - LED_LSFT, - LED_LCTL - }; - -#endif diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/rules.mk b/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/rules.mk deleted file mode 100644 index 4b7ed8bf0b..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -IDLE_TIMEOUT_ENABLE = yes -STARTUP_NUMLOCK_ON = yes diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/config.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/config.h deleted file mode 100644 index a0fbedde49..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/config.h +++ /dev/null @@ -1,146 +0,0 @@ -/* Copyright 2021 Jonavin Eng @Jonavin - Copyright 2022 gourdo1 - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -// Force n-key rollover -#define FORCE_NKRO - -// Set TT to two taps -#define TAPPING_TOGGLE 2 - -#ifdef COMMAND_ENABLE -#define IS_COMMAND() (get_mods() == MOD_MASK_CTRL) //debug commands accessed by holding down both CTRLs: https://github.com/qmk/qmk_firmware/blob/master/docs/feature_command.md -#endif - -// Caps Word configuration -#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD -#define CAPS_WORD_IDLE_TIMEOUT 10000 // Automatically turn off after x milliseconds of idle. 0 to never timeout. - -// Handle GRAVESC combo keys -#define GRAVE_ESC_ALT_OVERRIDE -// Always send Escape if Alt is pressed -#define GRAVE_ESC_CTRL_OVERRIDE -// Always send Escape if Control is pressed - -// #define TAPPING_TERM 180 -#define TAPPING_TERM 300 -#define TAPPING_TERM_PER_KEY - -#ifdef RGB_MATRIX_ENABLE - #define RGB_DISABLE_WHEN_USB_SUSPENDED - #define RGB_MATRIX_KEYPRESSES // Enables REACTIVE & SPLASH modes - #define RGB_MATRIX_FRAMEBUFFER_EFFECTS // Enables Heatmap, Rain - - // RGB step values - #define RGBLIGHT_HUE_STEP 32 // The number of steps to cycle through the hue by (default 10) - #define RGBLIGHT_SAT_STEP 17 // The number of steps to increment the saturation by (default 17) - #define RGBLIGHT_VAL_STEP 17 // The number of steps to increment the brightness by (default 17) - - // Startup values, when none have been set - #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_REACTIVE // Sets the default effect mode, if none has been set (was RGB_MATRIX_SOLID_COLOR) - #define RGB_MATRIX_DEFAULT_HUE 24 // Sets the default hue value, if none has been set - #define RGB_MATRIX_DEFAULT_SAT 255 // Sets the default saturation value, if none has been set - #define RGB_MATRIX_DEFAULT_VAL 127 // Sets the default brightness value, if none has been set - #define RGB_MATRIX_DEFAULT_SPD 127 // Sets the default animation speed, if none has been set - - // Uncomment any #undef line below to turn OFF any default enabled RGB background effect (enabled in keyboards/gmmk/pro/config.h). - #undef ENABLE_RGB_MATRIX_ALPHAS_MODS // Solid color (seems redundant; seems same as RGB_MATRIX_SOLID_COLOR?) - //#undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static, horizontal rainbow - //#undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Static, vertical Rainbow - //#undef ENABLE_RGB_MATRIX_BREATHING // Breathing animation using selected HSV color - #undef ENABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right (with white) - //#undef ENABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right (with black) - #undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades sat (with white) - //#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness (with black) - #undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Single hue spinning spiral fades brightness (with white) - //#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness (with black) - //#undef ENABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard cycling through rainbow - //#undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient moving left to right - //#undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom - #undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradient chevron scrolling left to right (too similar to cycle left right) - //#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN // Rainbow circles coming to center. - #undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Two Rainbow circles coming to 1/3 and 2/3 points. (seems mostly redundant with above) - #undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL // Built-in cycling pinwheel (seems redundant with below) - //#undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard - #undef ENABLE_RGB_MATRIX_RAINBOW_BEACON // Spinning rainbow (more distracting transitions) - //#undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Spinning rainbow (smoother) - #undef ENABLE_RGB_MATRIX_DUAL_BEACON // Two rainbows spinning around keyboard (distracting, busy) - #undef ENABLE_RGB_MATRIX_RAINDROPS // Sustained raindrops of blue, green, yellow (confusing to use with RGB layers) - //#undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Sustained raindrops of blue, purple, pink, green (confusing to use with RGB layers, but slightly better than above) - #undef ENABLE_RGB_MATRIX_HUE_BREATHING // Hue shifts up a slight amount at the same time, then shifts back (very subtle) - #undef ENABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight amount in a wave to the right, then back to the left (very subtle) - #undef ENABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight amount and then back down in a wave to the right (very subtle) - //#undef ENABLE_RGB_MATRIX_PIXEL_RAIN // Non-sustained raindrops of pastel colors - #undef ENABLE_RGB_MATRIX_PIXEL_FLOW // More active version of pixel rain with quick cycling (unusable, very distracting) - #undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL // Same as Pixel Flow but with current HSV only (somewhat distracting) - //Only enabled if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined - //#undef ENABLE_RGB_MATRIX_TYPING_HEATMAP // Fading heatmap that follows keystrokes (has buggy side LEDs that glow red) - //#undef ENABLE_RGB_MATRIX_DIGITAL_RAIN // The Matrix (has buggy side LEDs that glow red) - //Only enabled if RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined - //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Key hits shown in current hue - all other keys black - //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE // Keyboard lights up in chosen hue, key hits shown in complementary hue (try this as default?) - #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse around a single key hit then fades value out (Single key) - //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // same as above but more intense (Multi-key) - #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Column and Row single current color fade (Single key) - //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Column and Row single color fade. (Multi-key) - #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of key hit then fades (Single key) - //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multi-key hit then fades - //#undef ENABLE_RGB_MATRIX_SPLASH // Full rainbow pulses from key hit. All else black. - #undef ENABLE_RGB_MATRIX_MULTISPLASH // Full rainbow pulses from multi-keys. All else black. (distracting on multiple keystroke hits) - #undef ENABLE_RGB_MATRIX_SOLID_SPLASH // Single color pulses from key hit. All else black. (distracting on multiple key hits) - //#undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Single color pulses from muli-keys. All else black. -#endif //RGB_MATRIX_ENABLE - -// Add a layer for colemak -- set "COLEMAK_LAYER_ENABLE = yes" in rules.mk to enable -#if defined COLEMAK_LAYER_ENABLE - #ifdef GAME_ENABLE - #define DYNAMIC_KEYMAP_LAYER_COUNT 6 - #define _COLEMAK 5 - #else - #define DYNAMIC_KEYMAP_LAYER_COUNT 5 - #define _COLEMAK 4 - #endif //GAME_ENABLE -#endif // COLEMAK_LAYER_ENABLE - -/* -// Mouse Keys Accelerated Mode Definitions -#define MOUSEKEY_DELAY 3 // Delay between pressing a movement key and cursor movement (default: 10) -#define MOUSEKEY_INTERVAL 13 // Time between cursor movements in milliseconds (default: 20); Try setting to 1000/monitor refresh for smooth movement. -#define MOUSEKEY_MOVE_DELTA 8 // Step size (default: 8) -#define MOUSEKEY_MAX_SPEED 9 // Maximum cursor speed at which acceleration stops (default: 10) -#define MOUSEKEY_TIME_TO_MAX 150 // Time until maximum cursor speed is reached (default: 30) -#define MOUSEKEY_WHEEL_DELAY 0 // Delay between pressing a wheel key and wheel movement (default: 10) -#define MOUSEKEY_WHEEL_INTERVAL 80 // Time between wheel movements (default: 80) -#define MOUSEKEY_WHEEL_MAX_SPEED 8 // Maximum number of scroll steps per scroll action (default: 8) -#define MOUSEKEY_WHEEL_TIME_TO_MAX 40 // Time until maximum scroll speed is reached (default: 40) -*/ - -// Mouse Keys Kinetic Mode Definitions -#define MK_KINETIC_SPEED // Enable Kinetic mode: Uses a quadratic curve on cursor speed to allow precise movements at the beginning and increases speed thereafter. -#define MOUSEKEY_DELAY 3 // Delay between pressing a movement key and cursor movement (default: 10) -#define MOUSEKEY_INTERVAL 13 // Time between cursor movements in milliseconds (default: 20); Try setting to 1000/monitor refresh for smooth movement. -#define MOUSEKEY_MOVE_DELTA 5 // Step size for accelerating from initial to base speed (default: 8) -#define MOUSEKEY_MOVE_MAX 50 // use instead of BASE SPEED to limit speed in Kinetic mode -#define MOUSEKEY_INITIAL_SPEED 100 // Initial speed of the cursor in pixels per second (default: 100) -//#define MOUSEKEY_BASE_SPEED 800 // (broken in QMK 0.16.0) Maximum cursor speed at which acceleration stops (default: 1000) -#define MOUSEKEY_DECELERATED_SPEED 400 // Decelerated cursor speed (default: 400) -#define MOUSEKEY_ACCELERATED_SPEED 2000 // Accelerated cursor speed (default: 3000) -#define MOUSEKEY_WHEEL_INITIAL_MOVEMENTS 16 // Initial number of movements of the mouse wheel (default: 16) -#define MOUSEKEY_WHEEL_BASE_MOVEMENTS 32 // Maximum number of movements at which acceleration stops (default: 32) -#define MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS 48 // Accelerated wheel movements (default: 48) -#define MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS 8 // Decelerated wheel movements (default: 8) diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c deleted file mode 100644 index 64954feeaf..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c +++ /dev/null @@ -1,713 +0,0 @@ -/* Copyright 2021 Glorious, LLC - Copyright 2021 Jonavin Eng @Jonavin - Copyright 2022 gourdo1 - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -// Note: Many advanced functions referenced in this file are defined in /users/gourdo1/gourdo1.c - -#include QMK_KEYBOARD_H - -#include "rgb_matrix_map.h" - -#include "gourdo1.h" - -#include "paddlegame.h" - -#include - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* Base Layout - * - * ,-------------------------------------------------------------------------------------------------------------. - * | Esc || F1 | F2 | F3 | F4 || F5 | F6 | F7 | F8 || F9 | F10 | F11 | F12 || Home || Mute | - * |=============================================================================================================| - * | ` ~ | 1 ! | 2 @ | 3 # | 4 $ | 5 % | 6 ^ | 7 & | 8 * | 9 ( | 0 ) | - _ | = + | Backspc || Del | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+----------++------| - * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ } | ] } | \ | || PgUp | - * |---------+------+------+------+------+------+------+------+------+------+------+------+------+-------++------| - * | Capslock | A | S | D | F | G | H | J | K | L | ; : | ' " | Enter || PgDn | - * |------------+------+------+------+-----+------+------+------+------+------+------+------|----+========+------| - * | LShift | Z | X | C | V | B | N | M | , < | . > | / ? | RShift || Up || End | - * |--------------+------+------+------+------+------+------+------+------+------+------+--+=====++------++======| - * | Ctrl | Win | LAlt | Space | RAlt | Fn | Ctrl || Left | Down | Rght | - * `------------------------------------------------------------------------------------------------------------' - */ - - [_BASE] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, LEFTOFENC, ENCFUNC, - KC_GRV, 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_BSPC, BELOWENC, - 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_PGUP, - CAPSNUM, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - /* FN1 Layout - * - * ,-------------------------------------------------------------------------------------------------------------. - * | Esc ||MyCmp |WbHom | Calc |MdSel ||MdPrv |MdNxt |MdPly |MdStp ||VolDn |VolUp |PrScr |ScrLk ||Pause ||Sleep | - * |=============================================================================================================| - * | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |RGBTOD|RGBTOI| ________ ||RGBTOG| - * |------+------+------+------+------+------+------+------+------+------+------+------+------+----------++------| - * | ______ |RGBSAD|RGBVAI|RGBSAI| NKRO | ____ |YAHOO | ____ | ____ |OUTLK |Pause | ____ | ____ |QK_BOOT|| Home | - * |---------+------+------+------+------+------+------+------+------+------+------+------+------+-------++------| - * | Capslock |RGBHUD|RGBVAD|RGBHUI| ____|GMAIL |HTMAIL| ____ | ____ | ____ | ____ | ____ | __________ || End | - * |------------+------+------+------+-----+------+------+------+------+------+------+------|----+========+------| - * | __________ |RGBNIT| ____ | ____ | ____ | ____ |NumLk | ____ | ____ |DOTCOM| CAD | ______ ||RGBMOD|| ____ | - * |--------------+------+------+------+------+------+------+------+------+------+------+--+=====++------++======| - * | ____ | WinKyLk | ____ | _____ | ____ | ____ | ____ ||RGBSPD|RGBRMD|RGBSPI| - * `------------------------------------------------------------------------------------------------------------' - */ - - #ifdef GAME_ENABLE - [_FN1] = LAYOUT( - EE_CLR, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, KC_SLEP, - PRNCONF, TG_CAPS, TG_PAD, TG_ESC, TG_DEL, TG_TDCAP,TG_ENC, TG_INS,TG_SPCMOD,TG_AUTOCR, _______, RGB_TOD, RGB_TOI, _______, RGB_TOG, - _______, RGB_SAD, RGB_VAI, RGB_SAI, NK_TOGG, _______, YAHOO, _______, _______, OUTLOOK, TG(_GAME),SWAP_L, SWAP_R, QK_BOOT, KC_HOME, - KC_CAPS, RGB_HUD, RGB_VAD, RGB_HUI, _______, GMAIL, HOTMAIL, _______, _______, LOCKPC, _______, _______, _______, KC_END, - _______, RGB_NITE,_______, _______, _______, QK_BOOT, KC_NUM, _______, _______, DOTCOM, KC_CAD, _______, RGB_MOD, _______, - _______, WINLOCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI - ), - - [_GAME] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - #else - [_FN1] = LAYOUT( - EE_CLR, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, KC_SLEP, - PRNCONF, TG_CAPS, TG_PAD, TG_ESC, TG_DEL, TG_TDCAP,TG_ENC, TG_INS,TG_SPCMOD,TG_AUTOCR, _______, RGB_TOD, RGB_TOI, _______, RGB_TOG, - _______, RGB_SAD, RGB_VAI, RGB_SAI, NK_TOGG, _______, YAHOO, _______, _______, OUTLOOK, KC_PAUS, SWAP_L, SWAP_R, QK_BOOT, KC_HOME, - KC_CAPS, RGB_HUD, RGB_VAD, RGB_HUI, _______, GMAIL, HOTMAIL, _______, _______, LOCKPC, _______, _______, _______, KC_END, - _______, RGB_NITE,_______, _______, _______, QK_BOOT, KC_NUM, _______, _______, DOTCOM, KC_CAD, _______, RGB_MOD, _______, - _______, WINLOCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI - ), - #endif //GAME_ENABLE - - /* _NUMPADMOUSE Layout - * Note: A symbol preceded by "P" is a Numpad-encoded version of the key -- any app that differentiates will recognize the char as coming from a physical numpad. - * ,-------------------------------------------------------------------------------------------------------------. - * | ____ || ____ | ____ | ____ | ____ || ____ | ____ | ____ | ____ || ____ | ____ | ____ | ____ || ____ || ____ | - * |=============================================================================================================| - * | ____ | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P0 | P- | P+ | ________ || ____ | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+----------++------| - * | ______ | PGUP | Up | PGDN | None | None | None | P4 | P5 | P6 | P+ | ____ | ____ | _____ || WhUp | - * |---------+------+------+------+------+------+------+------+------+------+------+------+------+-------++------| - * | ________ | Left | Down | Rght | None| None | None | P1 | P2 | P3 | P* | ____ | P-Enter || WhDn | - * |------------+------+------+------+-----+------+------+------+------+------+------+------|----+========+------| - * | __________ | None | ____ | ____ | ____ | None | None | 0 | 00 | P. | P/ | MBt1 ||MS_UP || MBt2 | - * |--------------+------+------+------+------+------+------+------+------+------+------+--+=====++------++======| - * | ____ | ____ | ____ | _____ | ____ | ____ | MBt3 ||MS_LT |MS_DN |MS_RT | - * `------------------------------------------------------------------------------------------------------------' - */ - - [_NUMPADMOUSE] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, _______, _______, - _______, KC_PGUP, KC_UP, KC_PGDN, KC_NO, KC_NO, KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, _______, _______, KC_WH_U, - _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_PAST, _______, KC_PENT, KC_WH_D, - _______, KC_NO, _______, _______, _______, _______, _______, KC_P0, KC_00, KC_PDOT, KC_PSLS, KC_BTN1, KC_MS_U, KC_BTN2, - _______, _______, _______, KC_PENT, _______, _______, KC_BTN3, KC_MS_L, KC_MS_D, KC_MS_R - ), - - [_MOUSEKEY] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_U, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_D, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, - _______, _______, _______, _______, _______, _______, KC_BTN3, KC_MS_L, KC_MS_D, KC_MS_R - ), - - #ifdef COLEMAK_LAYER_ENABLE - [_COLEMAK] = LAYOUT( - _______, 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_GRV, 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_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - _______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_PGDN, - _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - _______, _______, _______, KC_SPC, KC_RALT, _______, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - #endif // COLEMAK_LAYER_ENABLE -}; - -#if defined(ENCODER_ENABLE) && !defined(ENCODER_DEFAULTACTIONS_ENABLE) // Encoder Functionality when not using userspace defaults -void encoder_action_rgbhue(bool clockwise) { - if (clockwise) - rgblight_increase_hue_noeeprom(); - else - rgblight_decrease_hue_noeeprom(); -} - -bool encoder_update_user(uint8_t index, bool clockwise) { - uint8_t mods_state = get_mods(); - if (mods_state & MOD_BIT(KC_LSFT)) { // If you are holding L shift, encoder changes layers - encoder_action_layerchange(clockwise); - } else if (mods_state & MOD_BIT(KC_RSFT)) { // If you are holding R shift, Page up/dn - unregister_mods(MOD_BIT(KC_RSFT)); - encoder_action_navpage(clockwise); - register_mods(MOD_BIT(KC_RSFT)); - } else if (mods_state & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next/prev word - encoder_action_navword(clockwise); - } else if (mods_state & MOD_BIT(KC_RCTL)) { // if holding Right Ctrl, change rgb hue/colour - encoder_action_rgbhue(clockwise); - } else if (mods_state & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next/prev track - encoder_action_mediatrack(clockwise); - } else { - switch (get_highest_layer(layer_state)) { - case _FN1: - #ifdef IDLE_TIMEOUT_ENABLE - timeout_update_threshold(clockwise); - #endif - break; - #ifdef GAME_ENABLE - case _GAME: - // Game: Paddle movement - if (damage_count == 0) { - if (clockwise) { - if (paddle_pos_full < 15) ++paddle_pos_full; - } else { - if (paddle_pos_full > 0) --paddle_pos_full; - } - } - break; - #endif //GAME_ENABLE - default: - encoder_action_volume(clockwise); // Otherwise it just changes volume - break; - } - } - //return true; //set to return false to counteract enabled encoder in pro.c - return false; -} -#endif // ENCODER_ENABLE && !ENCODER_DEFAULTACTIONS_ENABLE - -#ifdef RGB_MATRIX_ENABLE - -// Game logic -#ifdef GAME_ENABLE -void init_ball(uint8_t i) { - i &= 1; - ball[i].on = true; - ball[i].up = false; - ball[i].y = 0; - ball[i].x = rand() % 16; - - // Set initial ball state - if (ball[i].x < 8) { - ball[i].left = false; - } else { - ball[i].x -= 4; - ball[i].left = true; - } - - // 1/4 chance of being an enemy ball after level 6 - if (level_number > 3) { - ball[i].enemy = ((rand() % 4) == 0); - } else { - ball[i].enemy = false; - } -} - -void hurt_paddle(void) { - if (paddle_lives > 0) { - --paddle_lives; - } - damage_timer = timer_read(); - damage_count = 10; - - // Reset board - init_ball(0); - ball[1].on = false; -} -#endif //GAME_ENABLE - -// Capslock, Scroll lock and Numlock indicator on Left side lights. -bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { - if (get_rgb_nightmode()) rgb_matrix_set_color_all(RGB_OFF); - - led_t led_state = host_keyboard_led_state(); - - // Scroll Lock RGB setup - if (led_state.scroll_lock) { - rgb_matrix_set_color(LED_L3, RGB_RED); - rgb_matrix_set_color(LED_L4, RGB_RED); - rgb_matrix_set_color(LED_TAB, RGB_RED); - rgb_matrix_set_color(LED_F12, RGB_RED); - } - -/* - // System NumLock warning indicator RGB setup - #ifdef INVERT_NUMLOCK_INDICATOR - if (!led_state.num_lock) { // on if NUM lock is OFF to bring attention to overlay numpad not functional when enabled - rgb_matrix_set_color(LED_GRV, RGB_ORANGE2); - rgb_matrix_set_color(LED_L1, RGB_ORANGE2); - rgb_matrix_set_color(LED_L2, RGB_ORANGE2); - rgb_matrix_set_color(LED_N, RGB_ORANGE2); - rgb_matrix_set_color(LED_FN, RGB_ORANGE2); - } - #else - if (led_state.num_lock) { // Normal, on if NUM lock is ON - rgb_matrix_set_color(LED_GRV, RGB_ORANGE2); - rgb_matrix_set_color(LED_L1, RGB_ORANGE2); - rgb_matrix_set_color(LED_L2, RGB_ORANGE2); - rgb_matrix_set_color(LED_N, RGB_ORANGE2); - rgb_matrix_set_color(LED_FN, RGB_ORANGE2); - } - #endif // INVERT_NUMLOCK_INDICATOR -*/ - - // CapsLock RGB setup - if (led_state.caps_lock) { - if (user_config.rgb_hilite_caps) { - for (uint8_t i = 0; i < ARRAYSIZE(LED_LIST_LETTERS); i++) { - rgb_matrix_set_color(LED_LIST_LETTERS[i], RGB_CHARTREUSE); - } - rgb_matrix_set_color(LED_L7, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_L8, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_LSFT, RGB_CHARTREUSE); - } - else { - rgb_matrix_set_color(LED_L7, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_L8, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_LSFT, RGB_CHARTREUSE); - } - } - - // Winkey disabled (gaming) mode RGB setup - if (keymap_config.no_gui) { - rgb_matrix_set_color(LED_LWIN, RGB_RED); //light up Winkey red when disabled - rgb_matrix_set_color(LED_W, RGB_CHARTREUSE); //light up gaming keys with WSAD higlighted - rgb_matrix_set_color(LED_S, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_A, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_D, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_Q, RGB_ORANGE2); - rgb_matrix_set_color(LED_E, RGB_ORANGE2); - rgb_matrix_set_color(LED_R, RGB_ORANGE2); - rgb_matrix_set_color(LED_TAB, RGB_ORANGE2); - rgb_matrix_set_color(LED_F, RGB_ORANGE2); - rgb_matrix_set_color(LED_Z, RGB_ORANGE2); - rgb_matrix_set_color(LED_X, RGB_ORANGE2); - rgb_matrix_set_color(LED_C, RGB_ORANGE2); - rgb_matrix_set_color(LED_V, RGB_ORANGE2); - rgb_matrix_set_color(LED_SPC, RGB_ORANGE2); - rgb_matrix_set_color(LED_LCTL, RGB_ORANGE2); - rgb_matrix_set_color(LED_LSFT, RGB_ORANGE2); - } - - // Fn selector mode RGB setup - switch (get_highest_layer(layer_state)) { // special handling per layer - case _FN1: // on Fn layer select what the encoder does when pressed - rgb_matrix_set_color(LED_FN, RGB_RED); //FN key - - //NEW RGB LIGHTING TO RING KEYBOARD ON FN LAYER ACTIVATION: - for (uint8_t j = 0; j < ARRAYSIZE(LED_LIST_FUNCROW); j++) { - rgb_matrix_set_color(LED_LIST_FUNCROW[j], RGB_RED); - } - rgb_matrix_set_color(LED_LCTL, RGB_RED); - rgb_matrix_set_color(LED_LALT, RGB_RED); - rgb_matrix_set_color(LED_SPC, RGB_RED); - rgb_matrix_set_color(LED_LWIN, RGB_RED); - //rgb_matrix_set_color(LED_RALT, RGB_RED); - rgb_matrix_set_color(LED_FN, RGB_OFFBLUE); - //rgb_matrix_set_color(LED_RCTL, RGB_RED); - rgb_matrix_set_color(LED_BSLS, RGB_RED); - rgb_matrix_set_color(LED_L1, RGB_RED); - rgb_matrix_set_color(LED_L2, RGB_RED); - rgb_matrix_set_color(LED_L3, RGB_RED); - rgb_matrix_set_color(LED_L4, RGB_RED); - rgb_matrix_set_color(LED_L5, RGB_RED); - rgb_matrix_set_color(LED_L6, RGB_RED); - rgb_matrix_set_color(LED_L7, RGB_RED); - rgb_matrix_set_color(LED_L8, RGB_RED); - rgb_matrix_set_color(LED_DOWN, RGB_RED); - rgb_matrix_set_color(LED_LEFT, RGB_RED); - rgb_matrix_set_color(LED_RIGHT, RGB_RED); - rgb_matrix_set_color(LED_R1, RGB_RED); - rgb_matrix_set_color(LED_R2, RGB_RED); - rgb_matrix_set_color(LED_R3, RGB_RED); - rgb_matrix_set_color(LED_R4, RGB_RED); - rgb_matrix_set_color(LED_R5, RGB_RED); - rgb_matrix_set_color(LED_R6, RGB_RED); - rgb_matrix_set_color(LED_R7, RGB_RED); - rgb_matrix_set_color(LED_R8, RGB_RED); - rgb_matrix_set_color(LED_MINS, RGB_OFFBLUE); - rgb_matrix_set_color(LED_EQL, RGB_OFFBLUE); - - // Indicator for paddle game enabled in build - #ifdef GAME_ENABLE - rgb_matrix_set_color(LED_P, RGB_CHARTREUSE); - #else - rgb_matrix_set_color(LED_P, RGB_RED); - #endif // GAME_ENABLE - - // System NumLock warning indicator RGB setup - #ifdef INVERT_NUMLOCK_INDICATOR - if (!led_state.num_lock) { // on if NUM lock is OFF to bring attention to overlay numpad not functional when enabled - rgb_matrix_set_color(LED_N, RGB_ORANGE2); - } - #else - if (led_state.num_lock) { // Normal, on if NUM lock is ON - rgb_matrix_set_color(LED_N, RGB_ORANGE2); - } - #endif // INVERT_NUMLOCK_INDICATOR - - //Add RGB statuses for user.config toggles - if (user_config.rgb_hilite_caps) { - rgb_matrix_set_color(LED_1, RGB_GREEN); - } else { - rgb_matrix_set_color(LED_1, RGB_PURPLE); - } - if (user_config.rgb_hilite_numpad) { - rgb_matrix_set_color(LED_2, RGB_GREEN); - } else { - rgb_matrix_set_color(LED_2, RGB_PURPLE); - } - if (user_config.esc_double_tap_to_baselyr) { - rgb_matrix_set_color(LED_3, RGB_GREEN); - } else { - rgb_matrix_set_color(LED_3, RGB_PURPLE); - } - if (user_config.del_right_home_top) { - rgb_matrix_set_color(LED_4, RGB_GREEN); - } else { - rgb_matrix_set_color(LED_4, RGB_PURPLE); - } - if (user_config.double_tap_shift_for_capslock) { - rgb_matrix_set_color(LED_5, RGB_GREEN); - } else { - rgb_matrix_set_color(LED_5, RGB_PURPLE); - } - if (user_config.encoder_press_mute_or_media) { - rgb_matrix_set_color(LED_6, RGB_GREEN); - } else { - rgb_matrix_set_color(LED_6, RGB_PURPLE); - } - if (user_config.ins_on_shft_bkspc_or_del) { - rgb_matrix_set_color(LED_7, RGB_GREEN); - } else { - rgb_matrix_set_color(LED_7, RGB_PURPLE); - } - if (user_config.disable_space_mods) { - rgb_matrix_set_color(LED_8, RGB_GREEN); - } else { - rgb_matrix_set_color(LED_8, RGB_PURPLE); - } - if (user_config.autocorrect) { - rgb_matrix_set_color(LED_9, RGB_GREEN); - } else { - rgb_matrix_set_color(LED_9, RGB_PURPLE); - } - - // Add RGB Timeout Indicator -- shows 0 to 139 using F row and num row; larger numbers using 16bit code - uint16_t timeout_threshold = get_timeout_threshold(); - if (timeout_threshold <= 10) rgb_matrix_set_color(LED_LIST_FUNCROW[timeout_threshold], RGB_BLUE); - else if (timeout_threshold < 140) { - rgb_matrix_set_color(LED_LIST_FUNCROW[(timeout_threshold / 10)], RGB_CYAN); - rgb_matrix_set_color(LED_LIST_FUNCROW[(timeout_threshold % 10)], RGB_BLUE); - } else { // >= 140 minutes, just show these 3 lights - rgb_matrix_set_color(LED_LIST_FUNCROW[10], RGB_CYAN); - rgb_matrix_set_color(LED_LIST_FUNCROW[11], RGB_CYAN); - rgb_matrix_set_color(LED_LIST_FUNCROW[12], RGB_CYAN); - } - break; - - // Numpad & Mouse Keys overlay RGB - case _NUMPADMOUSE: - #ifdef INVERT_NUMLOCK_INDICATOR - if (!led_state.num_lock) { // on if NUM lock is OFF to bring attention to overlay numpad not functional when enabled - rgb_matrix_set_color(LED_N, RGB_ORANGE2); - } - #else - if (led_state.num_lock) { // Normal, on if NUM lock is ON - rgb_matrix_set_color(LED_N, RGB_ORANGE2); - } - #endif // INVERT_NUMLOCK_INDICATOR - if (user_config.rgb_hilite_numpad) { - for (uint8_t i = 0; i < ARRAYSIZE(LED_LIST_NUMPAD); i++) { - rgb_matrix_set_color(LED_LIST_NUMPAD[i], RGB_OFFBLUE); - } - rgb_matrix_set_color(LED_L5, RGB_OFFBLUE); - rgb_matrix_set_color(LED_L6, RGB_OFFBLUE); - rgb_matrix_set_color(LED_CAPS, RGB_OFFBLUE); - rgb_matrix_set_color(LED_UP, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_DOWN, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_LEFT, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_RIGHT, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_RCTL, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_RSFT, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_END, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_PGUP, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_PGDN, RGB_CHARTREUSE); - } else { - rgb_matrix_set_color(LED_L5, RGB_OFFBLUE); - rgb_matrix_set_color(LED_L6, RGB_OFFBLUE); - rgb_matrix_set_color(LED_CAPS, RGB_OFFBLUE); - } - break; - - // MOUSEKEYS mode RGB - case _MOUSEKEY: - rgb_matrix_set_color(LED_UP, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_DOWN, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_LEFT, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_RIGHT, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_RCTL, RGB_CYAN); - rgb_matrix_set_color(LED_RSFT, RGB_CYAN); - rgb_matrix_set_color(LED_END, RGB_CYAN); - rgb_matrix_set_color(LED_PGUP, RGB_OFFBLUE); - rgb_matrix_set_color(LED_PGDN, RGB_OFFBLUE); - break; - - // Colemak layer RGB - #ifdef COLEMAK_LAYER_ENABLE - case _COLEMAK: - for (uint8_t i = 0; i < ARRAYSIZE(LED_SIDE_RIGHT); i++) { - rgb_matrix_set_color(LED_SIDE_RIGHT[i], RGB_MAGENTA); - rgb_matrix_set_color(LED_SIDE_LEFT[i], RGB_MAGENTA); - } - break; - #endif - - // Paddle game logic - #ifdef GAME_ENABLE - case _GAME: - if (!game_start) { - srand((unsigned int) timer_read()); - - // Store user light settings - last_hsv = rgb_matrix_get_hsv(); - rgb_matrix_sethsv_noeeprom(0, 0, 0); - - paddle_pos_full = 8; - paddle_lives = 4; - bounce_count = 0; - level_number = 0; - damage_count = 0; - - init_ball(0); - ball[1].on = false; - ball_timer = timer_read(); - - game_start = true; - } - - // Set level indicator - if (level_number < 12) { - rgb_matrix_set_color(GAME_R0[level_number], RGB_BLUE); - } - - // Set life bar - for (uint8_t i = 0; i < paddle_lives; i++) { - rgb_matrix_set_color(GAME_LIVES[i], RGB_GREEN); - } - - uint8_t paddle_pos = paddle_pos_full >> 1; - - if (damage_count > 0) { - // Flash paddle when receiving damage - if (timer_elapsed(damage_timer) > 500) { - --damage_count; - damage_timer = timer_read(); - } - if ((damage_count & 1) == 0) { - for (uint8_t i = 0; i < 3; i++) { - rgb_matrix_set_color(GAME_PADDLE[paddle_pos + i], RGB_RED); - } - } - if (damage_count == 0) { - ball_timer = timer_read(); - } - - } else if (paddle_lives == 0) { - // Game over - for (uint8_t i = 0; i < ARRAY_SIZE(LED_GAME_OVER); i++) { - rgb_matrix_set_color(LED_GAME_OVER[i], RGB_RED); - } - - } else if (level_number >= 12) { - // You win - if (rgb_value.r == 0xff && rgb_value.g < 0xff) { - if (rgb_value.b > 0) { - --rgb_value.b; - } else { - ++rgb_value.g; - } - } else if (rgb_value.g == 0xff && rgb_value.b < 0xff) { - if (rgb_value.r > 0) { - --rgb_value.r; - } else { - ++rgb_value.b; - } - } else if (rgb_value.b == 0xff && rgb_value.r < 0xff) { - if (rgb_value.g > 0) { - --rgb_value.g; - } else { - ++rgb_value.r; - } - } - - for (uint8_t i = 0; i < 3; i++) { - rgb_matrix_set_color(GAME_PADDLE[paddle_pos + i], rgb_value.r, rgb_value.g, rgb_value.b); - } - rgb_matrix_set_color(GAME_SMILE1[paddle_pos], rgb_value.r, rgb_value.g, rgb_value.b); - rgb_matrix_set_color(GAME_SMILE1[paddle_pos + 3], rgb_value.r, rgb_value.g, rgb_value.b); - rgb_matrix_set_color(GAME_SMILE2[paddle_pos], rgb_value.r, rgb_value.g, rgb_value.b); - rgb_matrix_set_color(GAME_SMILE2[paddle_pos + 3], rgb_value.r, rgb_value.g, rgb_value.b); - - } else { - // normal game loop - - // Set paddle position - for (uint8_t i = 0; i < 3; i++) { - rgb_matrix_set_color(GAME_PADDLE[paddle_pos + i], RGB_GREEN); - } - - // Ball movement logic happens at intervals - if (timer_elapsed(ball_timer) > GAME_TIMER[level_number]) { - for (int i = 0; i < 2; ++i) { - if (ball[i].on) { - // Ball movement - if (ball[i].up) { - if (ball[i].y > 0) { - --ball[i].y; - if (!ball[i].left) ++ball[i].x; - } else { - // Count reflections. If > 10, increase level - ++bounce_count; - if (bounce_count >= 10) { - bounce_count = 0; - ++level_number; - } - ball[i].on = false; - } - } else { - ++ball[i].y; - if (ball[i].left) --ball[i].x; - if (ball[i].y > 4) { - // Remove a life if ball isn't returned and isn't enemy - if (!ball[i].enemy) { - hurt_paddle(); - i = 2; - } else { - ball[i].on = false; - } - } - } - } - } - if (ball[0].y == 4 && !ball[1].on) { - init_ball(1); - } - if (ball[1].y == 4 && !ball[0].on) { - init_ball(0); - } - if (!ball[0].on && !ball[1].on) { - init_ball(0); - } - ball_timer = timer_read(); - } - - // Other ball stuff - for (int i = 0; i < 2; ++i) { - if (ball[i].on) { - // Ball deflection logic - if (!ball[i].up && ball[i].y == 4 && (ball[i].x == paddle_pos || ball[i].x == paddle_pos - 1 || ball[i].x == paddle_pos + 1)) { - if (!ball[i].enemy) { - --ball[i].y; - if (!ball[i].left) { - ++ball[i].x; - } - ball[i].up = true; - } else { - hurt_paddle(); - i = 2; - } - } - - // Ball display - switch (ball[i].y) { - case 0: - if (ball[i].enemy) { - rgb_matrix_set_color(GAME_R0[ball[i].x], RGB_RED); - } else { - rgb_matrix_set_color(GAME_R0[ball[i].x], RGB_WHITE); - } - break; - - case 1: - if (ball[i].enemy) { - rgb_matrix_set_color(GAME_R1[ball[i].x], RGB_RED); - } else { - rgb_matrix_set_color(GAME_R1[ball[i].x], RGB_WHITE); - } - break; - - case 2: - if (ball[i].enemy) { - rgb_matrix_set_color(GAME_R2[ball[i].x], RGB_RED); - } else { - rgb_matrix_set_color(GAME_R2[ball[i].x], RGB_WHITE); - } - break; - - case 3: - if (ball[i].enemy) { - rgb_matrix_set_color(GAME_R3[ball[i].x], RGB_RED); - } else { - rgb_matrix_set_color(GAME_R3[ball[i].x], RGB_WHITE); - } - break; - - case 4: - if (ball[i].enemy) { - rgb_matrix_set_color(GAME_R4[ball[i].x], RGB_RED); - } else { - rgb_matrix_set_color(GAME_R4[ball[i].x], RGB_WHITE); - } - break; - } - } - } - } - break; - #endif //GAME_ENABLE - default: - #ifdef GAME_ENABLE - if (game_start) { - // Reset lighting settings - game_start = false; - rgb_matrix_sethsv_noeeprom(last_hsv.h, last_hsv.s, last_hsv.v); - } - #endif //GAME_ENABLE - break; - } - return false; -} -#endif - -void keyboard_post_init_keymap(void) { - // keyboard_post_init_user() moved to userspace - #ifdef RGB_MATRIX_ENABLE - activate_rgb_nightmode(false); // Set to true if you want to startup in nightmode, otherwise use Fn + Z to toggle - #endif -} diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/paddlegame.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/paddlegame.h deleted file mode 100644 index 3d33975cfe..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/paddlegame.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright 2021 Glorious, LLC - Copyright 2021 Tomas Guinan - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifdef GAME_ENABLE -const uint16_t GAME_TIMER[] = { - 400, 350, 300, 250, 400, 350, 300, 250, 225, 200, 175, 150 -}; - -bool game_start = false; -HSV last_hsv; -static uint8_t paddle_pos_full; -static uint8_t paddle_lives; -static uint8_t level_number; -static uint8_t bounce_count; -static uint8_t damage_count; -static uint16_t damage_timer; -static uint16_t ball_timer; - -struct BallStruct -{ - uint8_t x; - uint8_t y; - bool on; - bool up; - bool left; - bool enemy; -}; - -struct BallStruct ball[2]; - -void init_ball(uint8_t i); -void hurt_paddle(void); - -#endif //GAME_ENABLE \ No newline at end of file diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/readme.md b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/readme.md deleted file mode 100644 index aebccf6d14..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/readme.md +++ /dev/null @@ -1,124 +0,0 @@ -# [gourdo1's](mailto:gourdo1@outlook.com) GMMK Pro Keyboard Layouts - -These Windows-centric layouts are based on Jonavin's GMMK Pro [layout](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin) with many additions, fixes, a revamped keymap, persistent user customizations, updated layers, Pascal Getreuer's [autocorrect](https://getreuer.info/posts/keyboards/autocorrection/), Tomas Guinan's [paddle game](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame) and expanded RGB controls and effects. - -![image](https://raw.githubusercontent.com/gourdo1/media/main/susuwatari.jpg) - -* Up-to-date [Changelog](https://github.com/gourdo1/gmmkpro-media/blob/main/changelog.md) -* Latest [ANSI firmware](https://github.com/gourdo1/gmmkpro-media/raw/main/gmmk_pro_rev1_ansi_gourdo1.bin) download. (Flash with [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases)) -* Latest [ISO firmware](https://github.com/gourdo1/gmmkpro-media/raw/main/gmmk_pro_rev1_iso_gourdo1.bin) download. (Flash with [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases)) -* Printable Keyboard [Cheatsheet](https://github.com/gourdo1/gmmkpro-media/raw/main/GMMK_Pro_Cheatsheet.pdf) - -## Features - -### Core Functionality - -* Support for both [ANSI](https://keebnews.com/ansi-vs-iso/) and [ISO](https://keebnews.com/ansi-vs-iso/) keyboard layouts. -* Quick & Easy Customization: Open a text editor and hit [FN]` (tilde on ANSI; the key left of '1' on ISO layouts) to view toggle-able settings. -* [VIA](https://www.caniusevia.com/) support enabled. -* AutoCorrection: Pascal Getreuer's AutoCorrect code incorporated with 400 word dictionary on words > 4 characters. -* Most [default Glorious shortcuts](https://cdn.shopify.com/s/files/1/0549/2681/files/GMMK_Pro_User_Guide.pdf) enabled -* [N-key Rollover](https://en.wikipedia.org/wiki/Rollover_\(keyboard\)#n-key_rollover) (NKRO) -- toggled with [FN]R -* 1000Hz polling rate with 5ms debounce time for quick response in games. -* Mouse Keys! Don't want to move your hands off the keyboard or you didn't bring it with you? Use cursor keys to move the mouse. -* Overlay numpad on 789-UIOP-JKL;-M,. & Space-bar mapped to Enter key for rapid number entry. -* Gaming mode ([FN]Win-key) locks out Win-key and double-tap Shift Capslock; Also RGB highlights WSAD and nearby gaming keys. -* Caps Word enabled: To capitalize the next word only, press and release left and right shift at the same time. -* Multi-monitor app moving shortcuts: [FN] ],[ (square brackets) to move current app window to next monitor. -* Capslock toggled by double tap of Left Shift key or FN + Capslock (RGB green highlighted). -* Paddle game accessible via [FN]P. Hit [FN]P again or double tap [ESC] to exit. -* Single-handed shortcut for Ctrl-Alt-Delete: [FN]/ -* Single-handed shortcut for WinKey-L (lock Windows): [FN]L -* Domain shortcuts: [FN]. for .com, [FN]O for outlook.com, [FN]Y for yahoo.com, [FN]H for hotmail.com, [FN]G for gmail.com. -* [Bootloader mode](https://github.com/qmk/qmk_firmware/blob/master/docs/newbs_flashing.md) accessible via [FN]Backslash for ANSI and FN(key next to Left Shift) for ISO -* PrtScrn, Scroll Lock, Pause/Break are top right on the keyboard: [FN]F11, [FN]F12, [FN]F13 -* [Colemak](https://colemak.com/) key layout support (Accessible via Left Shift + turn Encoder clockwise until side LEDs light up purple) -* Double tap ESC any time to revert to base layer. -* RGB backlight effects expanded to include framebuffer effects and reactive keypress modes. -* RGB backlight now remembers last color & effect settings after power down. - -### Quick & Easy Customization -* Below features can be toggled by holding [FN] and pressing the number corresponding to that feature. Changes are saved to EEPROM for persistence. -* Print current settings by opening a text editor and pressing [FN]~ (the key left of '1' on ISO layout keyboards) -* Quick view current settings by holding [FN] and viewing RGB under number keys (green means ON, violet means OFF) - -#### Toggle-able Settings: - 1. CapsLock RGB - Highlight under alpha keys - 2. Numpad RGB - Highlight under numpad layer keys - 3. ESC key - Double tap ESC key to go to base layer - 4. Swap DEL and HOME - Default is DEL to the right of BKSPC & HOME is above BKSPC - 5. Capslock function - Toggle between double tap LShift for CapsLock with Numpad on CapsLock key (default) and standard CapsLock - 6. Encoder button - Default mutes volume; alternate plays/pauses media - 7. Insert function - Toggle between SHIFT-BKSPC and SHIFT-DEL - 8. Modded-Space override - Use standard Space in place of modded-Space functions - 9. AutoCorrect - Internal (English) AutoCorrect; default is enabled - 0. (ISO layouts only) CapsLock highlights extended alpha keys - -### Numpad + Mouse Keys (Capslock key) - -* Overlay numpad + [Mouse Keys](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_mouse_keys.md) are accessed through Capslock key hold (temp) or double press (locked) with RGB highlighting -* Numpad uses Space-bar as Enter for rapid number entry. -* This layer disables much of the keyboard, except X/C/V for cut/copy/paste, WASD for cursor, Q/E for PgUp/PgDn, cursor keys become mouse keys, surrounding keys become mouse buttons and all number keys become numpad versions (so Alt char codes work regardless of which set you use) -* FN and N keys light up orange if system numlock is off (inverted status), indicating numpad keys will not deliver expected output ([FN]N to toggle) -* Double zero on comma key. -* [Mouse Keys](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_mouse_keys.md) allow you to use the mouse without taking your hand off the keyboard. -* Mouse controls are: Cursor keys = move mouse; RShift = button1, End = button2, RCtrl = button3, PgUp/PgDn = Scroll wheel -* Mouse Keys can also be accessed as a standalone layer by Left Shift-turning the Encoder until the cursor keys light up green - -### Encoder Functionality - -* Default knob turn changes volume; button press toggles mute -* Exponential encoder: quick repeated volume up doubles increase; quick repeated volume down triples decrease. -* FN + knob turn changes RGB idle timeout -* FN + knob push puts PC to Sleep -* holding Left Shift changes layers -* holding Right Shift navigates page up/down -* holding Left Ctrl navigates prev/next word -* holding Right Ctrl changes RGB hue/color -* holding Left Alt changes media prev/next track - -### Paddle Game - -* Based on [Tomas Guinan's excellent GMMK Pro paddle game](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame) -* Paddle Game playable by pressing [FN]P (P lights up green in FN layer if game is enabled in firmware, otherwise it lights up red) -* Use rotary encoder to control paddle -* Contains 12 levels, indicated by blue LED on F-key row -* Player has 4 lives, indicated by nav cluster -* Deflect white balls while avoiding red ones -* Use [FN]P, double tap ESC or otherwise change layer to quit game - -### Global RGB Controls - -* RGB backlight lighting effect: [FN]up/down -* RGB backlight effect speed: [FN]left/right -* RGB backlight hue cycle: [FN]A/D -* RGB backlight brightness: [FN]W/S -* RGB backlight saturation: [FN]Q/E -* RGB backlight night mode toggle: [FN]Z (indicators still work) -* RGB backlight timeout: [FN]Encoder or "-" and "=" (default 15 minutes) - * F-key row indicator lights (cyan and blue) in FN layer display the current backlight timeout in minutes -* [FN]Z to turn off RGB backlighting (indicator lights still work); press again to toggle -* Left side RGB indicators in order from top: Scroll Lock (red), Numpad (blue), Capslock (green). - -### Advanced Controls - -* [FN]\ or [FN]B to get to bootloader mode (use key next to Left Shift on ISO) -* [FN][ESC] to clear EEPROM -* [FN]R to toggle N-key Rollover -* [FN]N to toggle system numlock -* [FN]/ is single-handed shortcut to Ctrl-Alt-Delete -* [FN]L is single-handed shortcut to Win-L (lock Windows) -* [FN][Encoder press] to sleep Windows PC - -## Layer Diagrams (ANSI) -### Base layer -![image](https://raw.githubusercontent.com/gourdo1/gmmkpro-media/main/base.png) - -### FN Layer -![image](https://raw.githubusercontent.com/gourdo1/gmmkpro-media/main/fn1.png) - -### Layer 2 (Numpad) -![image](https://raw.githubusercontent.com/gourdo1/gmmkpro-media/main/numpad.png) - -### COLEMAK layer -![image](https://user-images.githubusercontent.com/71780717/131235050-980d2f54-2d23-4ae8-a83f-9fcdbe60d6cb.png) diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rgb_matrix_map.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rgb_matrix_map.h deleted file mode 100644 index f1609a4bb3..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rgb_matrix_map.h +++ /dev/null @@ -1,410 +0,0 @@ -/* Copyright 2021 Jonavin Eng @Jonavin - Copyright 2022 gourdo1 - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifdef RGB_MATRIX_ENABLE - -//Define variables for Game -bool fn_active = false; -RGB rgb_value; - -// Custom GMMK Pro-specific RGB color customizations (defaults found in quantum/color.h) -#define RGB_GODSPEED 0x00, 0xE4, 0xFF // color for matching keycaps -#define RGB_NAUTILUS 0x00, 0xA4, 0xA9 // Nautilus Font colors -#define RGB_OFFBLUE 0x00, 0x80, 0xFF // new color: blue with a hint of green -#define RGB_DKRED 0x28, 0x00, 0x00 // new color: dark red -#define RGB_ORANGE2 0xFF, 0x28, 0x00 // fix: reduced green from 80 to 28 -#define RGB_PURPLE2 0x80, 0x00, 0xFF // fix: increased red from 7A to 80 -#define RGB_SPRINGGREEN2 0x00, 0xFF, 0x10 // fix: blue was 80, now 10 -#define RGB_YELLOW2 0xFF, 0xB0, 0x00 // fix: green was FF, now B0 -#define RGB_OFF RGB_BLACK - -// Added by gourdo1 for RGB testing -// Red Green Blue Expected GMMK Pro result -#define RGB_TEST1 0xFF, 0x00, 0x00 // Q - red good! -#define RGB_TEST2 0x0F, 0xFF, 0x00 // W - green good! -#define RGB_TEST3 0x00, 0x00, 0xFF // E - blue good! -#define RGB_TEST4 0xFF, 0xB0, 0x00 // R - yellow slightly green heavy - reduced green LED by quite a bit -#define RGB_TEST5 0x00, 0xFF, 0xFF // T - cyan good! -#define RGB_TEST6 0xFF, 0x00, 0xFF // Y - magenta very slightly blue heavy? -#define RGB_TEST7 0xFF, 0x28, 0x00 // U - orange very green heavy at default -#define RGB_TEST8 0xFF, 0x00, 0x80 // I - pink good! -#define RGB_TEST9 0x80, 0xFF, 0x00 // O - chartreus good! -#define RGB_TEST10 0x00, 0xFF, 0x10 // P - springgrn fixed: was too blue because green LED has blue in it already -#define RGB_TEST11 0x00, 0x80, 0xFF // A - grn blue good! -#define RGB_TEST12 0x80, 0x00, 0xFF // S - purple good! - -// RGB LED locations -enum led_location_map { - LED_ESC, // 0, ESC, k13 - LED_GRV, // 1, ~, k16 - LED_TAB, // 2, Tab, k11 - LED_CAPS, // 3, Caps, k21 - LED_LSFT, // 4, Sh_L, k00 - LED_LCTL, // 5, Ct_L, k06 - LED_F1, // 6, F1, k26 - LED_1, // 7, 1, k17 - LED_Q, // 8, Q, k10 - LED_A, // 9, A, k12 - LED_Z, // 10, Z, k14 - LED_LWIN, // 11, Win_L, k90 - LED_F2, // 12, F2, k36 - LED_2, // 13, 2, k27 - LED_W, // 14, W, k20 - LED_S, // 15, S, k22 - LED_X, // 16, X, k24 - LED_LALT, // 17, Alt_L, k93 - LED_F3, // 18, F3, k31 - LED_3, // 19, 3, k37 - LED_E, // 20, E, k30 - LED_D, // 21, D, k32 - LED_C, // 22, C, k34 - LED_F4, // 23, F4, k33 - LED_4, // 24, 4, k47 - LED_R, // 25, R, k40 - LED_F, // 26, F, k42 - LED_V, // 27, V, k44 - LED_F5, // 28, F5, k07 - LED_5, // 29, 5, k46 - LED_T, // 30, T, k41 - LED_G, // 31, G, k43 - LED_B, // 32, B, k45 - LED_SPC, // 33, SPACE, k94 - LED_F6, // 34, F6, k63 - LED_6, // 35, 6, k56 - LED_Y, // 36, Y, k51 - LED_H, // 37, H, k53 - LED_N, // 38, N, k55 - LED_F7, // 39, F7, k71 - LED_7, // 40, 7, k57 - LED_U, // 41, U, k50 - LED_J, // 42, J, k52 - LED_M, // 43, M, k54 - LED_F8, // 44, F8, k76 - LED_8, // 45, 8, k67 - LED_I, // 46, I, k60 - LED_K, // 47, K, k62 - LED_COMM, // 48, ,, k64 - LED_RALT, // 49, Alt_R, k95 - LED_F9, // 50, F9, ka6 - LED_9, // 51, 9, k77 - LED_O, // 52, O, k70 - LED_L, // 53, L, k72 - LED_DOT, // 54, ., k74 - LED_FN, // 55, FN, k92 - LED_F10, // 56, F10, ka7 - LED_0, // 57, 0, k87 - LED_P, // 58, P, k80 - LED_SCLN, // 59, ;, k82 - LED_SLSH, // 60, ?, k85 - LED_F11, // 61, F11, ka3 - LED_MINS, // 62, -, k86 - LED_LBRC, // 63, [, k81 - LED_QUOT, // 64, ", k83 - LED_RCTL, // 65, Ct_R, k04 - LED_F12, // 66, F12, ka5 - LED_L1, // 67, LED, l01 - LED_R1, // 68, LED, l11 - LED_INS, // 69, Prt, k97 -- remapped to INS - LED_L2, // 70, LED, l02 - LED_R2, // 71, LED, l12 - LED_DEL, // 72, Del, k65 - LED_L3, // 73, LED, l03 - LED_R3, // 74, LED, l13 - LED_PGUP, // 75, PgUp, k15 - LED_L4, // 76, LED, l04 - LED_R4, // 77, LED, l14 - LED_EQL, // 78, =, k66 - LED_RIGHT, // 79, Right, k05 - LED_L5, // 80, LED, l05 - LED_R5, // 81, LED, l15 - LED_END, // 82, End, k75 - LED_L6, // 83, LED, l06 - LED_R6, // 84, LED, l16 - LED_BSPC, // 85, BSpc, ka1 - LED_PGDN, // 86, PgDn, k25 - LED_L7, // 87, LED, l07 - LED_R7, // 88, LED, l17 - LED_RBRC, // 89, ], k61 - LED_RSFT, // 90, Sh_R, k91 - LED_L8, // 91, LED, l08 - LED_R8, // 92, LED, l18 - LED_BSLS, // 93, \, ka2 - LED_UP, // 94, Up, k35 - LED_LEFT, // 95, Left, k03 - LED_ENT, // 96, Enter, ka4 - LED_DOWN // 97, Down, k73 -}; - -const uint8_t LED_LIST_WASD[] = { - LED_W, - LED_A, - LED_S, - LED_D -}; - -const uint8_t LED_LIST_ARROWS[] = { - LED_LEFT, - LED_RIGHT, - LED_UP, - LED_DOWN -}; - -const uint8_t LED_LIST_FUNCROW[] = { - LED_ESC, - LED_F1, - LED_F2, - LED_F3, - LED_F4, - LED_F5, - LED_F6, - LED_F7, - LED_F8, - LED_F9, - LED_F10, - LED_F11, - LED_F12, - LED_INS -}; - -const uint8_t LED_LIST_NUMROW[] = { - LED_GRV, - LED_1, - LED_2, - LED_3, - LED_4, - LED_5, - LED_6, - LED_7, - LED_8, - LED_9, - LED_0, - LED_MINS, - LED_EQL, - LED_BSPC, - LED_DEL -}; - -const uint8_t LED_LIST_LETTERS[] = { -/* LED_1, - LED_2, - LED_3, - LED_4, - LED_5, - LED_6, - LED_7, - LED_8, - LED_9, - LED_0, */ - LED_Q, - LED_W, - LED_E, - LED_R, - LED_T, - LED_Y, - LED_U, - LED_I, - LED_O, - LED_P, - LED_A, - LED_S, - LED_D, - LED_F, - LED_G, - LED_H, - LED_J, - LED_K, - LED_L, - LED_Z, - LED_X, - LED_C, - LED_V, - LED_B, - LED_N, - LED_M -}; - -const uint8_t LED_LIST_NUMPAD[] = { - LED_1, - LED_2, - LED_3, - LED_4, - LED_5, - LED_6, - LED_7, - LED_8, - LED_9, - LED_0, - LED_MINS, - LED_EQL, - LED_U, - LED_I, - LED_O, - LED_P, - LED_J, - LED_K, - LED_L, - LED_SCLN, - LED_ENT, - LED_M, - LED_COMM, - LED_DOT, - LED_SLSH, - LED_END, - LED_RIGHT -}; - -const uint8_t LED_SIDE_LEFT[] = { - LED_L1, - LED_L2, - LED_L3, - LED_L4, - LED_L5, - LED_L6, - LED_L7, - LED_L8 -}; - -const uint8_t LED_SIDE_RIGHT[] = { - LED_R1, - LED_R2, - LED_R3, - LED_R4, - LED_R5, - LED_R6, - LED_R7, - LED_R8 -}; - -#ifdef GAME_ENABLE -// Game LED rules -const uint8_t GAME_LIVES[] = { - LED_DEL, - LED_PGUP, - LED_PGDN, - LED_END -}; -const uint8_t GAME_PADDLE[] = { - LED_Z, - LED_X, - LED_C, - LED_V, - LED_B, - LED_N, - LED_M, - LED_COMM, - LED_DOT, - LED_SLSH -}; -const uint8_t GAME_SMILE1[] = { - LED_A, - LED_S, - LED_D, - LED_F, - LED_G, - LED_H, - LED_J, - LED_K, - LED_L, - LED_SCLN, - LED_QUOT -}; -const uint8_t GAME_SMILE2[] = { - LED_2, - LED_3, - LED_4, - LED_5, - LED_6, - LED_7, - LED_8, - LED_9, - LED_0, - LED_MINS, - LED_EQL -}; -const uint8_t GAME_R4[] = { - LED_X, - LED_C, - LED_V, - LED_B, - LED_N, - LED_M, - LED_COMM, - LED_DOT -}; -const uint8_t GAME_R3[] = { - LED_S, - LED_D, - LED_F, - LED_G, - LED_H, - LED_J, - LED_K, - LED_L, - LED_SCLN -}; -const uint8_t GAME_R2[] = { - LED_W, - LED_E, - LED_R, - LED_T, - LED_Y, - LED_U, - LED_I, - LED_O, - LED_P, - LED_LBRC -}; -const uint8_t GAME_R1[] = { - LED_2, - LED_3, - LED_4, - LED_5, - LED_6, - LED_7, - LED_8, - LED_9, - LED_0, - LED_MINS, - LED_EQL -}; -const uint8_t GAME_R0[] = { - LED_F1, - LED_F2, - LED_F3, - LED_F4, - LED_F5, - LED_F6, - LED_F7, - LED_F8, - LED_F9, - LED_F10, - LED_F11, - LED_F12 -}; -const uint8_t LED_GAME_OVER[] = { - LED_5, - LED_8, - LED_F, - LED_G, - LED_H, - LED_J, - LED_C, - LED_M -}; -#endif //GAME_ENABLE - -#endif \ No newline at end of file diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rules.mk b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rules.mk deleted file mode 100644 index 3a6786af68..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rules.mk +++ /dev/null @@ -1,18 +0,0 @@ -LTO_ENABLE = yes # link time optimization -- achieves a smaller compiled size -CONSOLE_ENABLE = no -COMMAND_ENABLE = no -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -VIA_ENABLE = yes - -MOUSEKEY_ENABLE = yes -TAP_DANCE_ENABLE = no -CAPS_WORD_ENABLE = yes # Enable built-in Caps Word functionality -IDLE_TIMEOUT_ENABLE = yes -STARTUP_NUMLOCK_ON = yes -ENCODER_DEFAULTACTIONS_ENABLE = no -COLEMAK_LAYER_ENABLE = yes # Enable Colemak layer / set to no to disable -INVERT_NUMLOCK_INDICATOR = yes -GAME_ENABLE ?= yes # Enable Paddle Game / set to no to disable -ifeq ($(strip $(GAME_ENABLE)), yes) - OPT_DEFS += -DGAME_ENABLE -endif diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/config.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/config.h deleted file mode 100644 index 52f82bd60e..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/config.h +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright 2021 Jonavin Eng - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define TAPPING_TOGGLE 2 -// TT set to two taps - -/* Handle GRAVESC combo keys */ -#define GRAVE_ESC_ALT_OVERRIDE - //Always send Escape if Alt is pressed -#define GRAVE_ESC_CTRL_OVERRIDE - //Always send Escape if Control is pressed - -#define TAPPING_TERM 180 - -#ifdef RGB_MATRIX_ENABLE - #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR - #define RGB_DISABLE_WHEN_USB_SUSPENDED -#endif - -// add fifth layer for colemak -- set "COLEMAK_LAYER_ENABLE = yes" in rules.mk to enable -#if defined COLEMAK_LAYER_ENABLE - #define DYNAMIC_KEYMAP_LAYER_COUNT 5 - #define _COLEMAK 4 -#endif // COLEMAK_LAYER_ENABLE diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/keymap.c deleted file mode 100644 index 7cb2d9f6fe..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/keymap.c +++ /dev/null @@ -1,204 +0,0 @@ -/* Copyright 2021 Glorious, LLC - Copyright 2021 Jonavin - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H -#include "rgb_matrix_map.h" -#include "jonavin.h" - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Ins Rotary(Mute) -// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Del -// Tab Q W E R T Y U I O P [ ] \ PgUp -// Caps A S D F G H J K L ; " Enter PgDn -// Sh_L Z X C V B N M , . ? Sh_R Up End -// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right - - - [_BASE] = LAYOUT( - KC_ESC, 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_INS, KC_MUTE, - KC_GRV, 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_BSPC, KC_DEL, - 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_PGUP, - TT(_LOWER), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, - KC_LSFTCAPSWIN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [_FN1] = LAYOUT( - _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_CALC, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, - _______, _______, RGB_VAI, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, QK_BOOT, KC_HOME, - KC_CAPS, _______, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, - _______, RGB_NITE,RGB_HUI, _______, _______, _______, KC_NUM, _______, RGB_TOD, RGB_TOI, _______, _______, RGB_MOD, _______, - _______, KC_WINLCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI - ), - - [_LOWER] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, _______, _______, - _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, KC_TAB, KC_P4, KC_P5, KC_P6, KC_PDOT, _______, _______, _______, KC_HOME, - _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_P1, KC_P2, KC_P3, KC_NO, KC_PAST, KC_PENT, KC_END, - _______, KC_NO, KC_DEL, KC_INS, KC_NO, KC_NO, KC_NO, KC_P0, KC_00, KC_PDOT, KC_PSLS, _______, RCTL(KC_PGUP), _______, - _______, _______, _______, KC_BSPC, _______, _______, _______, RCTL(KC_LEFT), RCTL(KC_PGDN), RCTL(KC_RIGHT) - ), - - [_RAISE] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - -#ifdef COLEMAK_LAYER_ENABLE - [_COLEMAK] = LAYOUT( - KC_ESC, 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_INS, KC_MUTE, - KC_GRV, 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_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - TT(_LOWER), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_PGDN, - KC_LSFTCAPSWIN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), -#endif // COLEMAK_LAYER_ENABLE -}; - -#if defined(ENCODER_ENABLE) && !defined(ENCODER_DEFAULTACTIONS_ENABLE) // Encoder Functionality when not using userspace defaults - void encoder_action_rgbhue(bool clockwise) { - if (clockwise) - rgblight_increase_hue_noeeprom(); - else - rgblight_decrease_hue_noeeprom(); - } - - bool encoder_update_user(uint8_t index, bool clockwise) { - uint8_t mods_state = get_mods(); - if (mods_state & MOD_BIT(KC_LSFT) ) { // If you are holding L shift, encoder changes layers - encoder_action_layerchange(clockwise); - } else if (mods_state & MOD_BIT(KC_RSFT) ) { // If you are holding R shift, Page up/dn - unregister_mods(MOD_BIT(KC_RSFT)); - encoder_action_navpage(clockwise); - register_mods(MOD_BIT(KC_RSFT)); - } else if (mods_state & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next/prev word - encoder_action_navword(clockwise); - } else if (mods_state & MOD_BIT(KC_RCTL)) { // if holding Right Ctrl, change rgb hue/colour - encoder_action_rgbhue(clockwise); - } else if (mods_state & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next/prev track - encoder_action_mediatrack(clockwise); - } else { - switch(get_highest_layer(layer_state)) { - case _FN1: - #ifdef IDLE_TIMEOUT_ENABLE - timeout_update_threshold(clockwise); - #endif - break; - default: - encoder_action_volume(clockwise); // Otherwise it just changes volume - break; - } - } - //return true; //set to return false to counteract enabled encoder in pro.c - return false; - } -#endif // ENCODER_ENABLE && !ENCODER_DEFAULTACTIONS_ENABLE - -#ifdef RGB_MATRIX_ENABLE - // Capslock, Scroll lock and Numlock indicator on Left side lights. - bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { - led_t led_state = host_keyboard_led_state(); - if (get_rgb_nightmode()) rgb_matrix_set_color_all(RGB_OFF); - if (led_state.scroll_lock) { - rgb_matrix_set_color(LED_L1, RGB_GREEN); - rgb_matrix_set_color(LED_L2, RGB_GREEN); - } - - #ifdef INVERT_NUMLOCK_INDICATOR - if (!led_state.num_lock) { // on if NUM lock is OFF - rgb_matrix_set_color(LED_L3, RGB_MAGENTA); - rgb_matrix_set_color(LED_L4, RGB_MAGENTA); - } - #else - if (led_state.num_lock) { // Normal, on if NUM lock is ON - rgb_matrix_set_color(LED_L3, RGB_MAGENTA); - rgb_matrix_set_color(LED_L4, RGB_MAGENTA); - } - #endif // INVERT_NUMLOCK_INDICATOR - - if (led_state.caps_lock) { - rgb_matrix_set_color(LED_L5, RGB_RED); - rgb_matrix_set_color(LED_L6, RGB_RED); - rgb_matrix_set_color(LED_L7, RGB_RED); - } - if (keymap_config.no_gui) { - rgb_matrix_set_color(LED_LWIN, RGB_RED); //light up Win key when disabled - } - switch(get_highest_layer(layer_state)){ // special handling per layer - case _FN1: // on Fn layer select what the encoder does when pressed - rgb_matrix_set_color(LED_R2, RGB_RED); - rgb_matrix_set_color(LED_R3, RGB_RED); - rgb_matrix_set_color(LED_R4, RGB_RED); - rgb_matrix_set_color(LED_FN, RGB_RED); //FN key - - // Add RGB Timeout Indicator -- shows 0 to 139 using F row and num row; larger numbers using 16bit code - uint16_t timeout_threshold = get_timeout_threshold(); - if (timeout_threshold <= 10) rgb_matrix_set_color(LED_LIST_FUNCROW[timeout_threshold], RGB_RED); - else if (timeout_threshold < 140) { - rgb_matrix_set_color(LED_LIST_FUNCROW[(timeout_threshold / 10)], RGB_RED); - rgb_matrix_set_color(LED_LIST_NUMROW[(timeout_threshold % 10)], RGB_RED); - } else { // >= 140 minutes, just show these 3 lights - rgb_matrix_set_color(LED_LIST_NUMROW[10], RGB_RED); - rgb_matrix_set_color(LED_LIST_NUMROW[11], RGB_RED); - rgb_matrix_set_color(LED_LIST_NUMROW[12], RGB_RED); - } - break; - case _LOWER: - for (uint8_t i=0; i or encoder - - setting to zero disables timeout - - indicators in FN layer using RGB in FN and number rows to show the timeout in minutes - - LED address location map as enum definition in rgb_matrix_map.h - - LED group lists for arrows, numpad, F row, num row, left and right side LEDs - - default startup in single mode with default colour - - Capslock, Scroll Lock, and Num Lock (not set) indicator on left side LED - - Layer indicator on right side LED - - Fn key light up red when Fn layer activate - - Win Key light up red when Win Lock mode enabled - - Layer 2 activation lights up Numpad area - - Fn + Z to turn off all RGB lights except rgb indicators; press again to toggle - -rules.mk OPTIONS - Active features from userspace -STARTUP_NUMLOCK_ON = yes - - turns on NUMLOCK by default - -ENCODER_DEFAULTACTIONS_ENABLE = yes - - Enabled default encoder funtions - -TD_LSFT_CAPSLOCK_ENABLE = yes - - This will enable double tap on Left Shift to toggle CAPSLOCK when using KC_LSFTCAPS - -IDLE_TIMEOUT_ENABLE = yes - - Enables Timer functionality; for RGB idle timeouts that can be changed dynamically - -INVERT_NUMLOCK_INDICATOR - - inverts the Num lock indicator, LED is on when num lokc is off - -COLEMAK_LAYER_ENABLE = yes - - Enabled optional 5th layer for COLEMAK layout - - Use Shift and encoder to enter 5th layer, right led indicator lights up BLUE - -## All layers diagram -Default layer -![image](https://user-images.githubusercontent.com/71780717/124177658-82324880-da7e-11eb-9421-b69100131062.png) - -Fn Layer -![image](https://user-images.githubusercontent.com/71780717/131255937-06c9691b-835f-4c94-93e6-6d1dc3de272b.png) - -Layer 2 (Caps Lock Mod) -![image](https://user-images.githubusercontent.com/71780717/124177683-8b231a00-da7e-11eb-9434-e2475f679a54.png) - -Optional COLEMAK layer -![image](https://user-images.githubusercontent.com/71780717/131235050-980d2f54-2d23-4ae8-a83f-9fcdbe60d6cb.png) diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/rgb_matrix_map.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/rgb_matrix_map.h deleted file mode 100644 index 1ee5388905..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/rgb_matrix_map.h +++ /dev/null @@ -1,144 +0,0 @@ -/* Copyright 2021 Jonavin Eng - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifdef RGB_MATRIX_ENABLE - - // Custom RGB Colours - #define RGB_GODSPEED 0x00, 0xE4, 0xFF // colour for matching keycaps - #define RGB_NAUTILUS 0x00, 0xA4, 0xA9 // Naurilus Font colours - - // RGB LED locations - enum led_location_map { - LED_ESC, // 0, ESC, k13 - LED_GRV, // 1, ~, k16 - LEB_TAB, // 2, Tab, k11 - LED_CAPS, // 3, Caps, k21 - LED_LSFT, // 4, Sh_L, k00 - LED_LCTL, // 5, Ct_L, k06 - LED_F1, // 6, F1, k26 - LED_1, // 7, 1, k17 - LED_Q, // 8, Q, k10 - LED_A, // 9, A, k12 - LED_Z, // 10, Z, k14 - LED_LWIN, // 11, Win_L, k90 - LED_F2, // 12, F2, k36 - LED_2, // 13, 2, k27 - LED_W, // 14, W, k20 - LED_S, // 15, S, k22 - LED_X, // 16, X, k24 - LED_LALT, // 17, Alt_L, k93 - LED_F3, // 18, F3, k31 - LED_3, // 19, 3, k37 - LED_E, // 20, E, k30 - LED_D, // 21, D, k32 - LED_C, // 22, C, k34 - LED_F4, // 23, F4, k33 - LED_4, // 24, 4, k47 - LED_R, // 25, R, k40 - LED_F, // 26, F, k42 - LED_V, // 27, V, k44 - LED_F5, // 28, F5, k07 - LED_5, // 29, 5, k46 - LED_T, // 30, T, k41 - LED_G, // 31, G, k43 - LED_B, // 32, B, k45 - LED_SPC, // 33, SPACE, k94 - LED_F6, // 34, F6, k63 - LED_6, // 35, 6, k56 - LED_Y, // 36, Y, k51 - LED_H, // 37, H, k53 - LED_N, // 38, N, k55 - LED_F7, // 39, F7, k71 - LED_7, // 40, 7, k57 - LED_U, // 41, U, k50 - LED_J, // 42, J, k52 - LED_M, // 43, M, k54 - LED_F8, // 44, F8, k76 - LED_8, // 45, 8, k67 - LED_I, // 46, I, k60 - LED_K, // 47, K, k62 - LED_COMM, // 48, ,, k64 - LED_RALT, // 49, Alt_R, k95 - LED_F9, // 50, F9, ka6 - LED_9, // 51, 9, k77 - LED_O, // 52, O, k70 - LED_L, // 53, L, k72 - LED_DOT, // 54, ., k74 - LED_FN, // 55, FN, k92 - LED_F10, // 56, F10, ka7 - LED_0, // 57, 0, k87 - LED_P, // 58, P, k80 - LED_SCLN, // 59, ;, k82 - LED_SLSH, // 60, ?, k85 - LED_F11, // 61, F11, ka3 - LED_MINS, // 62, -, k86 - LED_LBRC, // 63, [, k81 - LED_QUOT, // 64, ", k83 - LED_RCTL, // 65, Ct_R, k04 - LED_F12, // 66, F12, ka5 - LED_L1, // 67, LED, l01 - LED_R1, // 68, LED, l11 - LED_INS, // 69, Prt, k97 -- remapped to INS - LED_L2, // 70, LED, l02 - LED_R2, // 71, LED, l12 - LED_DEL, // 72, Del, k65 - LED_L3, // 73, LED, l03 - LED_R3, // 74, LED, l13 - LED_PGUP, // 75, PgUp, k15 - LED_L4, // 76, LED, l04 - LED_R4, // 77, LED, l14 - LED_EQL, // 78, =, k66 - LED_RIGHT, // 79, Right, k05 - LED_L5, // 80, LED, l05 - LED_R5, // 81, LED, l15 - LED_END, // 82, End, k75 - LED_L6, // 83, LED, l06 - LED_R6, // 84, LED, l16 - LED_BSPC, // 85, BSpc, ka1 - LED_PGDN, // 86, PgDn, k25 - LED_L7, // 87, LED, l07 - LED_R7, // 88, LED, l17 - LED_RBRC, // 89, ], k61 - LED_RSFT, // 90, Sh_R, k91 - LED_L8, // 91, LED, l08 - LED_R8, // 92, LED, l18 - LED_BSLS, // 93, \, ka2 - LED_UP, // 94, Up, k35 - LED_LEFT, // 95, Left, k03 - LED_ENT, // 96, Enter, ka4 - LED_DOWN // 97, Down, k73 - }; - - const uint8_t LED_LIST_WASD[] = { LED_W, LED_A, LED_S, LED_D }; - - const uint8_t LED_LIST_ARROWS[] = { LED_LEFT, LED_RIGHT, LED_UP, LED_DOWN }; - - const uint8_t LED_LIST_FUNCROW[] = { LED_ESC, LED_F1, LED_F2, LED_F3, LED_F4, LED_F5, LED_F6, LED_F7, LED_F8, LED_F9, LED_F10, LED_F11, LED_F12, LED_INS}; - - const uint8_t LED_LIST_NUMROW[] = { LED_GRV, LED_1, LED_2, LED_3, LED_4, LED_5, LED_6, LED_7, LED_8, LED_9, LED_0, LED_MINS, LED_EQL, LED_BSPC, LED_DEL}; - - const uint8_t LED_LIST_NUMPAD[] = { - LED_7, LED_8, LED_9, - LED_U, LED_I, LED_O, - LED_J, LED_K, LED_L, - LED_M, LED_COMM, LED_DOT - }; - - const uint8_t LED_SIDE_LEFT[] = { LED_L1, LED_L2, LED_L3, LED_L4, LED_L5, LED_L6, LED_L7, LED_L8}; - - const uint8_t LED_SIDE_RIGHT[] = { LED_R1, LED_R2, LED_R3, LED_R4, LED_R5, LED_R6, LED_R7, LED_R8}; - -#endif diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/rules.mk b/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/rules.mk deleted file mode 100644 index 1ffc2058a2..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/rules.mk +++ /dev/null @@ -1,12 +0,0 @@ -VIA_ENABLE = yes -MOUSEKEY_ENABLE = no -TAP_DANCE_ENABLE = yes -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite - -TD_LSFT_CAPSLOCK_ENABLE = yes -IDLE_TIMEOUT_ENABLE = yes -STARTUP_NUMLOCK_ON = yes -ENCODER_DEFAULTACTIONS_ENABLE = no - -COLEMAK_LAYER_ENABLE = yes #Enable Colemak layer / set to no to disable -INVERT_NUMLOCK_INDICATOR = yes diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/moults31/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/moults31/keymap.c deleted file mode 100644 index 759c4034c0..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/moults31/keymap.c +++ /dev/null @@ -1,92 +0,0 @@ -/* Copyright 2021 Glorious, LLC - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -#include "moults31.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Prt Rotary(Mute) -// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Del -// Tab Q W E R T Y U I O P [ ] \ PgUp -// Caps A S D F G H J K L ; " Enter PgDn -// Sh_L Z X C V B N M , . ? Sh_R Up End -// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right - - - // The FN key by default maps to a momentary toggle to layer 1 to provide access to the QK_BOOT key (to put the board into bootloader mode). Without - // this mapping, you have to open the case to hit the button on the bottom of the PCB (near the USB cable attachment) while plugging in the USB - // cable to get the board into bootloader mode - definitely not fun when you're working on your QMK builds. Remove this and put it back to KC_RGUI - // if that's your preference. - // - // To put the keyboard in bootloader mode, use FN+backslash. If you accidentally put it into bootloader, you can just unplug the USB cable and - // it'll be back to normal when you plug it back in. - [0] = LAYOUT( - KC_ESC, 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_PSCR, KC_MPLY, - KC_GRV, 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_BSPC, KC_HOME, - 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_END, - 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_ENT, KC_DEL, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(2), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [1] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, KC_CALC, _______, KC_INS, _______, KC_PSCR, _______, _______, QK_BOOT, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - [2] = LAYOUT( - M_GDB_STOP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, M_VSC_DBGCNSLFOCUS, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, M_VSC_VIEWSIZEINC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, M_VSC_EDGRPPRV, M_VSC_VIEWSIZEDEC, M_VSC_EDGRPNXT, _______, _______, _______, _______, _______, _______, _______, _______, M_GDB_PLAY, M_GDB_PAUSE, - _______, M_VSC_FILEPRV, M_VSC_FILENXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, M_GDB_STEPOUT, _______, - _______, _______, _______, _______, _______, _______, _______, M_GDB_RESTART, M_GDB_STEPIN, M_GDB_STEPOVER - ), - -}; - - -bool encoder_update_user(uint8_t index, bool clockwise) { - const layer_state_t curr_layer = get_highest_layer(layer_state); - if(curr_layer == 2) { - if (clockwise) { - moults31_tap_custom_code(M_VSC_FILENXT); - } else { - moults31_tap_custom_code(M_VSC_FILEPRV); - } - } - else if(curr_layer == 1) { - if (clockwise) { - moults31_tap_custom_code(M_VSC_VIEWSIZEINC); - } else { - moults31_tap_custom_code(M_VSC_VIEWSIZEDEC); - } - } - else { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - return false; -} diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/vnmm/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/vnmm/keymap.c deleted file mode 100644 index e6627959c4..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/vnmm/keymap.c +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright 2021 Glorious, LLC - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H -#include "vnmm.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [WIN_BASE] = LAYOUT( - KC_ESC, 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_PSCR, KC_MUTE, - KC_GRV, 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_BSPC, KC_DEL, - 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_PGUP, - 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_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, WIN_F, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [MAC_BASE] = LAYOUT( - KC_ESC, 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_PSCR, KC_MUTE, - KC_GRV, 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_BSPC, KC_DEL, - 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_PGUP, - 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_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, WIN_F, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [WIN_FN] = LAYOUT( - _______, DF_WIN, DF_MAC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RGB_TOG, RGB_MOD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_RMOD,RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, - EE_CLR, _______, _______, QK_BOOT, _______, _______, _______, KC_MPRV, _______, KC_MNXT - ), - - [MAC_FN] = LAYOUT( - _______, DF_WIN, DF_MAC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RGB_TOG, RGB_MOD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_RMOD,RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, - EE_CLR, _______, _______, QK_BOOT, _______, _______, _______, KC_MPRV, _______, KC_MNXT - ), -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [WIN_FN] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, - [MAC_FN] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, -}; -#endif diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/vnmm/readme.md b/keyboards/gmmk/pro/rev1/ansi/keymaps/vnmm/readme.md deleted file mode 100644 index 28738e9bfc..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/vnmm/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# Vnmm's ANSI GMMK pro layout - -This keymap builds on the default but with a more sensible FN layer. - -## Features - -- Alphabet keys light up red when caps lock is on or shift is pressed -- Pressing FN shows keys that have a definition -- Via enabled -- Reset to bootloader with FN+Space diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/vnmm/rules.mk b/keyboards/gmmk/pro/rev1/ansi/keymaps/vnmm/rules.mk deleted file mode 100644 index f1adcab005..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/vnmm/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -VIA_ENABLE = yes -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/config.h b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/config.h deleted file mode 100644 index a0fbedde49..0000000000 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/config.h +++ /dev/null @@ -1,146 +0,0 @@ -/* Copyright 2021 Jonavin Eng @Jonavin - Copyright 2022 gourdo1 - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -// Force n-key rollover -#define FORCE_NKRO - -// Set TT to two taps -#define TAPPING_TOGGLE 2 - -#ifdef COMMAND_ENABLE -#define IS_COMMAND() (get_mods() == MOD_MASK_CTRL) //debug commands accessed by holding down both CTRLs: https://github.com/qmk/qmk_firmware/blob/master/docs/feature_command.md -#endif - -// Caps Word configuration -#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD -#define CAPS_WORD_IDLE_TIMEOUT 10000 // Automatically turn off after x milliseconds of idle. 0 to never timeout. - -// Handle GRAVESC combo keys -#define GRAVE_ESC_ALT_OVERRIDE -// Always send Escape if Alt is pressed -#define GRAVE_ESC_CTRL_OVERRIDE -// Always send Escape if Control is pressed - -// #define TAPPING_TERM 180 -#define TAPPING_TERM 300 -#define TAPPING_TERM_PER_KEY - -#ifdef RGB_MATRIX_ENABLE - #define RGB_DISABLE_WHEN_USB_SUSPENDED - #define RGB_MATRIX_KEYPRESSES // Enables REACTIVE & SPLASH modes - #define RGB_MATRIX_FRAMEBUFFER_EFFECTS // Enables Heatmap, Rain - - // RGB step values - #define RGBLIGHT_HUE_STEP 32 // The number of steps to cycle through the hue by (default 10) - #define RGBLIGHT_SAT_STEP 17 // The number of steps to increment the saturation by (default 17) - #define RGBLIGHT_VAL_STEP 17 // The number of steps to increment the brightness by (default 17) - - // Startup values, when none have been set - #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_REACTIVE // Sets the default effect mode, if none has been set (was RGB_MATRIX_SOLID_COLOR) - #define RGB_MATRIX_DEFAULT_HUE 24 // Sets the default hue value, if none has been set - #define RGB_MATRIX_DEFAULT_SAT 255 // Sets the default saturation value, if none has been set - #define RGB_MATRIX_DEFAULT_VAL 127 // Sets the default brightness value, if none has been set - #define RGB_MATRIX_DEFAULT_SPD 127 // Sets the default animation speed, if none has been set - - // Uncomment any #undef line below to turn OFF any default enabled RGB background effect (enabled in keyboards/gmmk/pro/config.h). - #undef ENABLE_RGB_MATRIX_ALPHAS_MODS // Solid color (seems redundant; seems same as RGB_MATRIX_SOLID_COLOR?) - //#undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static, horizontal rainbow - //#undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Static, vertical Rainbow - //#undef ENABLE_RGB_MATRIX_BREATHING // Breathing animation using selected HSV color - #undef ENABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right (with white) - //#undef ENABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right (with black) - #undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades sat (with white) - //#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness (with black) - #undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Single hue spinning spiral fades brightness (with white) - //#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness (with black) - //#undef ENABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard cycling through rainbow - //#undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient moving left to right - //#undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom - #undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradient chevron scrolling left to right (too similar to cycle left right) - //#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN // Rainbow circles coming to center. - #undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Two Rainbow circles coming to 1/3 and 2/3 points. (seems mostly redundant with above) - #undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL // Built-in cycling pinwheel (seems redundant with below) - //#undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard - #undef ENABLE_RGB_MATRIX_RAINBOW_BEACON // Spinning rainbow (more distracting transitions) - //#undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Spinning rainbow (smoother) - #undef ENABLE_RGB_MATRIX_DUAL_BEACON // Two rainbows spinning around keyboard (distracting, busy) - #undef ENABLE_RGB_MATRIX_RAINDROPS // Sustained raindrops of blue, green, yellow (confusing to use with RGB layers) - //#undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Sustained raindrops of blue, purple, pink, green (confusing to use with RGB layers, but slightly better than above) - #undef ENABLE_RGB_MATRIX_HUE_BREATHING // Hue shifts up a slight amount at the same time, then shifts back (very subtle) - #undef ENABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight amount in a wave to the right, then back to the left (very subtle) - #undef ENABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight amount and then back down in a wave to the right (very subtle) - //#undef ENABLE_RGB_MATRIX_PIXEL_RAIN // Non-sustained raindrops of pastel colors - #undef ENABLE_RGB_MATRIX_PIXEL_FLOW // More active version of pixel rain with quick cycling (unusable, very distracting) - #undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL // Same as Pixel Flow but with current HSV only (somewhat distracting) - //Only enabled if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined - //#undef ENABLE_RGB_MATRIX_TYPING_HEATMAP // Fading heatmap that follows keystrokes (has buggy side LEDs that glow red) - //#undef ENABLE_RGB_MATRIX_DIGITAL_RAIN // The Matrix (has buggy side LEDs that glow red) - //Only enabled if RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined - //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Key hits shown in current hue - all other keys black - //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE // Keyboard lights up in chosen hue, key hits shown in complementary hue (try this as default?) - #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse around a single key hit then fades value out (Single key) - //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // same as above but more intense (Multi-key) - #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Column and Row single current color fade (Single key) - //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Column and Row single color fade. (Multi-key) - #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of key hit then fades (Single key) - //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multi-key hit then fades - //#undef ENABLE_RGB_MATRIX_SPLASH // Full rainbow pulses from key hit. All else black. - #undef ENABLE_RGB_MATRIX_MULTISPLASH // Full rainbow pulses from multi-keys. All else black. (distracting on multiple keystroke hits) - #undef ENABLE_RGB_MATRIX_SOLID_SPLASH // Single color pulses from key hit. All else black. (distracting on multiple key hits) - //#undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Single color pulses from muli-keys. All else black. -#endif //RGB_MATRIX_ENABLE - -// Add a layer for colemak -- set "COLEMAK_LAYER_ENABLE = yes" in rules.mk to enable -#if defined COLEMAK_LAYER_ENABLE - #ifdef GAME_ENABLE - #define DYNAMIC_KEYMAP_LAYER_COUNT 6 - #define _COLEMAK 5 - #else - #define DYNAMIC_KEYMAP_LAYER_COUNT 5 - #define _COLEMAK 4 - #endif //GAME_ENABLE -#endif // COLEMAK_LAYER_ENABLE - -/* -// Mouse Keys Accelerated Mode Definitions -#define MOUSEKEY_DELAY 3 // Delay between pressing a movement key and cursor movement (default: 10) -#define MOUSEKEY_INTERVAL 13 // Time between cursor movements in milliseconds (default: 20); Try setting to 1000/monitor refresh for smooth movement. -#define MOUSEKEY_MOVE_DELTA 8 // Step size (default: 8) -#define MOUSEKEY_MAX_SPEED 9 // Maximum cursor speed at which acceleration stops (default: 10) -#define MOUSEKEY_TIME_TO_MAX 150 // Time until maximum cursor speed is reached (default: 30) -#define MOUSEKEY_WHEEL_DELAY 0 // Delay between pressing a wheel key and wheel movement (default: 10) -#define MOUSEKEY_WHEEL_INTERVAL 80 // Time between wheel movements (default: 80) -#define MOUSEKEY_WHEEL_MAX_SPEED 8 // Maximum number of scroll steps per scroll action (default: 8) -#define MOUSEKEY_WHEEL_TIME_TO_MAX 40 // Time until maximum scroll speed is reached (default: 40) -*/ - -// Mouse Keys Kinetic Mode Definitions -#define MK_KINETIC_SPEED // Enable Kinetic mode: Uses a quadratic curve on cursor speed to allow precise movements at the beginning and increases speed thereafter. -#define MOUSEKEY_DELAY 3 // Delay between pressing a movement key and cursor movement (default: 10) -#define MOUSEKEY_INTERVAL 13 // Time between cursor movements in milliseconds (default: 20); Try setting to 1000/monitor refresh for smooth movement. -#define MOUSEKEY_MOVE_DELTA 5 // Step size for accelerating from initial to base speed (default: 8) -#define MOUSEKEY_MOVE_MAX 50 // use instead of BASE SPEED to limit speed in Kinetic mode -#define MOUSEKEY_INITIAL_SPEED 100 // Initial speed of the cursor in pixels per second (default: 100) -//#define MOUSEKEY_BASE_SPEED 800 // (broken in QMK 0.16.0) Maximum cursor speed at which acceleration stops (default: 1000) -#define MOUSEKEY_DECELERATED_SPEED 400 // Decelerated cursor speed (default: 400) -#define MOUSEKEY_ACCELERATED_SPEED 2000 // Accelerated cursor speed (default: 3000) -#define MOUSEKEY_WHEEL_INITIAL_MOVEMENTS 16 // Initial number of movements of the mouse wheel (default: 16) -#define MOUSEKEY_WHEEL_BASE_MOVEMENTS 32 // Maximum number of movements at which acceleration stops (default: 32) -#define MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS 48 // Accelerated wheel movements (default: 48) -#define MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS 8 // Decelerated wheel movements (default: 8) diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/keymap.c b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/keymap.c deleted file mode 100644 index 44fed8fd29..0000000000 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/keymap.c +++ /dev/null @@ -1,726 +0,0 @@ -/* Copyright 2021 Glorious, LLC - Copyright 2021 Jonavin Eng @Jonavin - Copyright 2022 RustyBrakes (ISO conversion) - Copyright 2022 gourdo1 - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -// Note: Many advanced functions referenced in this file are defined in /users/gourdo1/gourdo1.c - -#include QMK_KEYBOARD_H - -#include "rgb_matrix_map.h" - -#include "gourdo1.h" - -#include "paddlegame.h" - -#include - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* Base Layout - * - * ,-------------------------------------------------------------------------------------------------------------. - * | Esc || F1 | F2 | F3 | F4 || F5 | F6 | F7 | F8 || F9 | F10 | F11 | F12 || Home || Mute | - * |=============================================================================================================| - * | ISO | 1 ! | 2 @ | 3 # | 4 $ | 5 % | 6 ^ | 7 & | 8 * | 9 ( | 0 ) | - _ | = + | Backspc || Del | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+----------++------| - * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ } | ] } | || PgUp | - * |---------+------+------+------+------+------+------+------+------+------+------+------+------+ ++------| - * | Capslock | A | S | D | F | G | H | J | K | L | ; : | ' " | ISO| Enter || PgDn | - * |------------+------+------+------+-----+------+------+------+------+------+------+------|----+========+------| - * | LShift | ISO | Z | X | C | V | B | N | M | , < | . > | / ? | RShift || Up || End | - * |--------------+------+------+------+------+------+------+------+------+------+------+--+=====++------++======| - * | Ctrl | Win | LAlt | Space | RAlt | Fn | Ctrl || Left | Down | Rght | - * `------------------------------------------------------------------------------------------------------------' - */ - - [_BASE] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, LEFTOFENC, ENCFUNC, - KC_GRV, 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_BSPC, BELOWENC, - 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_PGUP, - CAPSNUM, 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_PGDN, - 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_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - /* FN1 Layout - * - * ,-------------------------------------------------------------------------------------------------------------. - * | Esc ||MyCmp |WbHom | Calc |MdSel ||MdPrv |MdNxt |MdPly |MdStp ||VolDn |VolUp |PrScr |ScrLk ||Pause ||Sleep | - * |=============================================================================================================| - * | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |RGBTOD|RGBTOI| ________ ||RGBTOG| - * |------+------+------+------+------+------+------+------+------+------+------+------+------+----------++------| - * | ______ |RGBSAD|RGBVAI|RGBSAI| NKRO | ____ |YAHOO | ____ | ____ |OUTLK |Pause | ____ | ____ | || Home | - * |---------+------+------+------+------+------+------+------+------+------+------+------+------+ ++------| - * | Capslock |RGBHUD|RGBVAD|RGBHUI| ____|GMAIL |HTMAIL| ____ | ____ | ____ | ____ | ____ | ___ | ____ || End | - * |------------+------+------+------+-----+------+------+------+------+------+------+------|----+========+------| - * | ____ |QK_BOOT|RGBNIT| ____ | ____ | ____ | ____ |NumLk | ____ | ____ |DOTCOM| CAD | ______ ||RGBMOD|| ____ | - * |--------------+------+------+------+------+------+------+------+------+------+------+--+=====++------++======| - * | ____ | WinKyLk | ____ | _____ | ____ | ____ | ____ ||RGBSPD|RGBRMD|RGBSPI| - * `------------------------------------------------------------------------------------------------------------' - */ - - #ifdef GAME_ENABLE - [_FN1] = LAYOUT( - EE_CLR, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, KC_SLEP, - PRNCONF, TG_CAPS, TG_PAD, TG_ESC, TG_DEL, TG_TDCAP,TG_ENC, TG_INS,TG_SPCMOD,TG_AUTOCR,TG_ENGCAP,RGB_TOD,RGB_TOI, _______, RGB_TOG, - _______, RGB_SAD, RGB_VAI, RGB_SAI, NK_TOGG, _______, YAHOO, _______, _______, OUTLOOK, TG(_GAME),SWAP_L, SWAP_R, KC_HOME, - KC_CAPS, RGB_HUD, RGB_VAD, RGB_HUI, _______, GMAIL, HOTMAIL, _______, _______, LOCKPC, _______, _______, _______, _______, KC_END, - _______, QK_BOOT, RGB_NITE,_______, _______, _______, QK_BOOT, KC_NUM, _______, _______, DOTCOM, KC_CAD, _______, RGB_MOD, _______, - _______, WINLOCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI - ), - - [_GAME] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - #else - [_FN1] = LAYOUT( - EE_CLR, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, KC_SLEP, - PRNCONF, TG_CAPS, TG_PAD, TG_ESC, TG_DEL, TG_TDCAP,TG_ENC, TG_INS,TG_SPCMOD,TG_AUTOCR,TG_ENGCAP,RGB_TOD,RGB_TOI, _______, RGB_TOG, - _______, RGB_SAD, RGB_VAI, RGB_SAI, NK_TOGG, _______, YAHOO, _______, _______, OUTLOOK, KC_PAUS, SWAP_L, SWAP_R, KC_HOME, - KC_CAPS, RGB_HUD, RGB_VAD, RGB_HUI, _______, GMAIL, HOTMAIL, _______, _______, LOCKPC, _______, _______, _______, _______, KC_END, - _______, QK_BOOT, RGB_NITE,_______, _______, _______, QK_BOOT, KC_NUM, _______, _______, DOTCOM, KC_CAD, _______, RGB_MOD, _______, - _______, WINLOCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI - ), - #endif //GAME_ENABLE - - /* _NUMPADMOUSE Layout - * Note: A symbol preceded by "P" is a Numpad-encoded version of the key -- any app that differentiates will recognize the char as coming from a physical numpad. - * ,-------------------------------------------------------------------------------------------------------------. - * | ____ || ____ | ____ | ____ | ____ || ____ | ____ | ____ | ____ || ____ | ____ | ____ | ____ || ____ || ____ | - * |=============================================================================================================| - * | ____ | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P0 | P- | P+ | ________ || ____ | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+----------++------| - * | ______ | PGUP | Up | PGDN | None | None | None | P4 | P5 | P6 | P+ | ____ | ____ | || WhUp | - * |---------+------+------+------+------+------+------+------+------+------+------+------+------+ ++------| - * | ________ | Left | Down | Rght | None| None | None | P1 | P2 | P3 | P* | ___ | ___ |P-Enter|| WhDn | - * |------------+------+------+------+-----+------+------+------+------+------+------+------|----+========+------| - * | __________ | None | ____ | ____ | ____ | None | None | 0 | 00 | P. | P/ | MBt1 ||MS_UP || MBt2 | - * |--------------+------+------+------+------+------+------+------+------+------+------+--+=====++------++======| - * | ____ | ____ | ____ | _____ | ____ | ____ | MBt3 ||MS_LT |MS_DN |MS_RT | - * `------------------------------------------------------------------------------------------------------------' - */ - - [_NUMPADMOUSE] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, _______, _______, - _______, KC_PGUP, KC_UP, KC_PGDN, KC_NO, KC_NO, KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, _______, KC_WH_U, - _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_PAST, _______, _______, KC_PENT, KC_WH_D, - _______, _______, KC_NO, _______, _______, _______, _______, _______, KC_P0, KC_00, KC_PDOT, KC_PSLS, KC_BTN1, KC_MS_U, KC_BTN2, - _______, _______, _______, KC_PENT, _______, _______, KC_BTN3, KC_MS_L, KC_MS_D, KC_MS_R - ), - - [_MOUSEKEY] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_U, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_D, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, - _______, _______, _______, _______, _______, _______, KC_BTN3, KC_MS_L, KC_MS_D, KC_MS_R - ), - - #ifdef COLEMAK_LAYER_ENABLE - [_COLEMAK] = LAYOUT( - _______, 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_GRV, 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_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_PGUP, - _______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, - _______, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - _______, _______, _______, KC_SPC, KC_RALT, _______, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - #endif // COLEMAK_LAYER_ENABLE -}; - -#if defined(ENCODER_ENABLE) && !defined(ENCODER_DEFAULTACTIONS_ENABLE) // Encoder Functionality when not using userspace defaults -void encoder_action_rgbhue(bool clockwise) { - if (clockwise) - rgblight_increase_hue_noeeprom(); - else - rgblight_decrease_hue_noeeprom(); -} - -bool encoder_update_user(uint8_t index, bool clockwise) { - uint8_t mods_state = get_mods(); - if (mods_state & MOD_BIT(KC_LSFT)) { // If you are holding L shift, encoder changes layers - encoder_action_layerchange(clockwise); - } else if (mods_state & MOD_BIT(KC_RSFT)) { // If you are holding R shift, Page up/dn - unregister_mods(MOD_BIT(KC_RSFT)); - encoder_action_navpage(clockwise); - register_mods(MOD_BIT(KC_RSFT)); - } else if (mods_state & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next/prev word - encoder_action_navword(clockwise); - } else if (mods_state & MOD_BIT(KC_RCTL)) { // if holding Right Ctrl, change rgb hue/colour - encoder_action_rgbhue(clockwise); - } else if (mods_state & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next/prev track - encoder_action_mediatrack(clockwise); - } else { - switch (get_highest_layer(layer_state)) { - case _FN1: - #ifdef IDLE_TIMEOUT_ENABLE - timeout_update_threshold(clockwise); - #endif - break; - #ifdef GAME_ENABLE - case _GAME: - // Game: Paddle movement - if (damage_count == 0) { - if (clockwise) { - if (paddle_pos_full < 15) ++paddle_pos_full; - } else { - if (paddle_pos_full > 0) --paddle_pos_full; - } - } - break; - #endif //GAME_ENABLE - default: - encoder_action_volume(clockwise); // Otherwise it just changes volume - break; - } - } - //return true; //set to return false to counteract enabled encoder in pro.c - return false; -} -#endif // ENCODER_ENABLE && !ENCODER_DEFAULTACTIONS_ENABLE - -#ifdef RGB_MATRIX_ENABLE - -// Game logic -#ifdef GAME_ENABLE -void init_ball(uint8_t i) { - i &= 1; - ball[i].on = true; - ball[i].up = false; - ball[i].y = 0; - ball[i].x = rand() % 16; - - // Set initial ball state - if (ball[i].x < 8) { - ball[i].left = false; - } else { - ball[i].x -= 4; - ball[i].left = true; - } - - // 1/4 chance of being an enemy ball after level 6 - if (level_number > 3) { - ball[i].enemy = ((rand() % 4) == 0); - } else { - ball[i].enemy = false; - } -} - -void hurt_paddle(void) { - if (paddle_lives > 0) { - --paddle_lives; - } - damage_timer = timer_read(); - damage_count = 10; - - // Reset board - init_ball(0); - ball[1].on = false; -} -#endif //GAME_ENABLE - -// Capslock, Scroll lock and Numlock indicator on Left side lights. -bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { - if (get_rgb_nightmode()) rgb_matrix_set_color_all(RGB_OFF); - - led_t led_state = host_keyboard_led_state(); - - // Scroll Lock RGB setup - if (led_state.scroll_lock) { - rgb_matrix_set_color(LED_L3, RGB_RED); - rgb_matrix_set_color(LED_L4, RGB_RED); - rgb_matrix_set_color(LED_TAB, RGB_RED); - rgb_matrix_set_color(LED_F12, RGB_RED); - } - -/* - // System NumLock warning indicator RGB setup - #ifdef INVERT_NUMLOCK_INDICATOR - if (!led_state.num_lock) { // on if NUM lock is OFF to bring attention to overlay numpad not functional when enabled - rgb_matrix_set_color(LED_GRV, RGB_ORANGE2); - rgb_matrix_set_color(LED_L1, RGB_ORANGE2); - rgb_matrix_set_color(LED_L2, RGB_ORANGE2); - rgb_matrix_set_color(LED_N, RGB_ORANGE2); - rgb_matrix_set_color(LED_FN, RGB_ORANGE2); - } - #else - if (led_state.num_lock) { // Normal, on if NUM lock is ON - rgb_matrix_set_color(LED_GRV, RGB_ORANGE2); - rgb_matrix_set_color(LED_L1, RGB_ORANGE2); - rgb_matrix_set_color(LED_L2, RGB_ORANGE2); - rgb_matrix_set_color(LED_N, RGB_ORANGE2); - rgb_matrix_set_color(LED_FN, RGB_ORANGE2); - } - #endif // INVERT_NUMLOCK_INDICATOR -*/ - - // CapsLock RGB setup - if (led_state.caps_lock) { - if (user_config.rgb_hilite_caps) { - if (user_config.rgb_english_caps) { - for (uint8_t i = 0; i < ARRAYSIZE(LED_LIST_LETTERS); i++) { - rgb_matrix_set_color(LED_LIST_LETTERS[i], RGB_CHARTREUSE); - } - } - else { - for (uint8_t i = 0; i < ARRAYSIZE(LED_LIST_LETTERS_DE); i++) { - rgb_matrix_set_color(LED_LIST_LETTERS_DE[i], RGB_CHARTREUSE); - } - } - rgb_matrix_set_color(LED_L7, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_L8, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_LSFT, RGB_CHARTREUSE); - } - else { - rgb_matrix_set_color(LED_L7, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_L8, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_LSFT, RGB_CHARTREUSE); - } - } - - // Winkey disabled (gaming) mode RGB setup - if (keymap_config.no_gui) { - rgb_matrix_set_color(LED_LWIN, RGB_RED); //light up Winkey red when disabled - rgb_matrix_set_color(LED_W, RGB_CHARTREUSE); //light up gaming keys with WSAD higlighted - rgb_matrix_set_color(LED_S, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_A, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_D, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_Q, RGB_ORANGE2); - rgb_matrix_set_color(LED_E, RGB_ORANGE2); - rgb_matrix_set_color(LED_R, RGB_ORANGE2); - rgb_matrix_set_color(LED_TAB, RGB_ORANGE2); - rgb_matrix_set_color(LED_F, RGB_ORANGE2); - rgb_matrix_set_color(LED_Z, RGB_ORANGE2); - rgb_matrix_set_color(LED_X, RGB_ORANGE2); - rgb_matrix_set_color(LED_C, RGB_ORANGE2); - rgb_matrix_set_color(LED_V, RGB_ORANGE2); - rgb_matrix_set_color(LED_SPC, RGB_ORANGE2); - rgb_matrix_set_color(LED_LCTL, RGB_ORANGE2); - rgb_matrix_set_color(LED_LSFT, RGB_ORANGE2); - } - - // Fn selector mode RGB setup - switch (get_highest_layer(layer_state)) { // special handling per layer - case _FN1: // on Fn layer select what the encoder does when pressed - rgb_matrix_set_color(LED_FN, RGB_RED); //FN key - - //NEW RGB LIGHTING TO RING KEYBOARD ON FN LAYER ACTIVATION: - for (uint8_t j = 0; j < ARRAYSIZE(LED_LIST_FUNCROW); j++) { - rgb_matrix_set_color(LED_LIST_FUNCROW[j], RGB_RED); - } - rgb_matrix_set_color(LED_LCTL, RGB_RED); - rgb_matrix_set_color(LED_LALT, RGB_RED); - rgb_matrix_set_color(LED_SPC, RGB_RED); - rgb_matrix_set_color(LED_LWIN, RGB_RED); - //rgb_matrix_set_color(LED_RALT, RGB_RED); - rgb_matrix_set_color(LED_FN, RGB_OFFBLUE); - //rgb_matrix_set_color(LED_RCTL, RGB_RED); - rgb_matrix_set_color(LED_BSLS, RGB_RED); - rgb_matrix_set_color(LED_L1, RGB_RED); - rgb_matrix_set_color(LED_L2, RGB_RED); - rgb_matrix_set_color(LED_L3, RGB_RED); - rgb_matrix_set_color(LED_L4, RGB_RED); - rgb_matrix_set_color(LED_L5, RGB_RED); - rgb_matrix_set_color(LED_L6, RGB_RED); - rgb_matrix_set_color(LED_L7, RGB_RED); - rgb_matrix_set_color(LED_L8, RGB_RED); - rgb_matrix_set_color(LED_DOWN, RGB_RED); - rgb_matrix_set_color(LED_LEFT, RGB_RED); - rgb_matrix_set_color(LED_RIGHT, RGB_RED); - rgb_matrix_set_color(LED_R1, RGB_RED); - rgb_matrix_set_color(LED_R2, RGB_RED); - rgb_matrix_set_color(LED_R3, RGB_RED); - rgb_matrix_set_color(LED_R4, RGB_RED); - rgb_matrix_set_color(LED_R5, RGB_RED); - rgb_matrix_set_color(LED_R6, RGB_RED); - rgb_matrix_set_color(LED_R7, RGB_RED); - rgb_matrix_set_color(LED_R8, RGB_RED); - rgb_matrix_set_color(LED_MINS, RGB_OFFBLUE); - rgb_matrix_set_color(LED_EQL, RGB_OFFBLUE); - - // Indicator for paddle game enabled in build - #ifdef GAME_ENABLE - rgb_matrix_set_color(LED_P, RGB_CHARTREUSE); - #else - rgb_matrix_set_color(LED_P, RGB_RED); - #endif // GAME_ENABLE - - // System NumLock warning indicator RGB setup - #ifdef INVERT_NUMLOCK_INDICATOR - if (!led_state.num_lock) { // on if NUM lock is OFF to bring attention to overlay numpad not functional when enabled - rgb_matrix_set_color(LED_N, RGB_ORANGE2); - } - #else - if (led_state.num_lock) { // Normal, on if NUM lock is ON - rgb_matrix_set_color(LED_N, RGB_ORANGE2); - } - #endif // INVERT_NUMLOCK_INDICATOR - - //Add RGB statuses for user.config toggles - if (user_config.rgb_hilite_caps) { - rgb_matrix_set_color(LED_1, RGB_GREEN); - } else { - rgb_matrix_set_color(LED_1, RGB_PURPLE); - } - if (user_config.rgb_hilite_numpad) { - rgb_matrix_set_color(LED_2, RGB_GREEN); - } else { - rgb_matrix_set_color(LED_2, RGB_PURPLE); - } - if (user_config.esc_double_tap_to_baselyr) { - rgb_matrix_set_color(LED_3, RGB_GREEN); - } else { - rgb_matrix_set_color(LED_3, RGB_PURPLE); - } - if (user_config.del_right_home_top) { - rgb_matrix_set_color(LED_4, RGB_GREEN); - } else { - rgb_matrix_set_color(LED_4, RGB_PURPLE); - } - if (user_config.double_tap_shift_for_capslock) { - rgb_matrix_set_color(LED_5, RGB_GREEN); - } else { - rgb_matrix_set_color(LED_5, RGB_PURPLE); - } - if (user_config.encoder_press_mute_or_media) { - rgb_matrix_set_color(LED_6, RGB_GREEN); - } else { - rgb_matrix_set_color(LED_6, RGB_PURPLE); - } - if (user_config.ins_on_shft_bkspc_or_del) { - rgb_matrix_set_color(LED_7, RGB_GREEN); - } else { - rgb_matrix_set_color(LED_7, RGB_PURPLE); - } - if (user_config.disable_space_mods) { - rgb_matrix_set_color(LED_8, RGB_GREEN); - } else { - rgb_matrix_set_color(LED_8, RGB_PURPLE); - } - if (user_config.autocorrect) { - rgb_matrix_set_color(LED_9, RGB_GREEN); - } else { - rgb_matrix_set_color(LED_9, RGB_PURPLE); - } - if (user_config.rgb_english_caps) { - rgb_matrix_set_color(LED_0, RGB_GREEN); - } else { - rgb_matrix_set_color(LED_0, RGB_PURPLE); - } - - // Add RGB Timeout Indicator -- shows 0 to 139 using F row and num row; larger numbers using 16bit code - uint16_t timeout_threshold = get_timeout_threshold(); - if (timeout_threshold <= 10) rgb_matrix_set_color(LED_LIST_FUNCROW[timeout_threshold], RGB_BLUE); - else if (timeout_threshold < 140) { - rgb_matrix_set_color(LED_LIST_FUNCROW[(timeout_threshold / 10)], RGB_CYAN); - rgb_matrix_set_color(LED_LIST_FUNCROW[(timeout_threshold % 10)], RGB_BLUE); - } else { // >= 140 minutes, just show these 3 lights - rgb_matrix_set_color(LED_LIST_FUNCROW[10], RGB_CYAN); - rgb_matrix_set_color(LED_LIST_FUNCROW[11], RGB_CYAN); - rgb_matrix_set_color(LED_LIST_FUNCROW[12], RGB_CYAN); - } - break; - - // Numpad & Mouse Keys overlay RGB - case _NUMPADMOUSE: - #ifdef INVERT_NUMLOCK_INDICATOR - if (!led_state.num_lock) { // on if NUM lock is OFF to bring attention to overlay numpad not functional when enabled - rgb_matrix_set_color(LED_N, RGB_ORANGE2); - } - #else - if (led_state.num_lock) { // Normal, on if NUM lock is ON - rgb_matrix_set_color(LED_N, RGB_ORANGE2); - } - #endif // INVERT_NUMLOCK_INDICATOR - if (user_config.rgb_hilite_numpad) { - for (uint8_t i = 0; i < ARRAYSIZE(LED_LIST_NUMPAD); i++) { - rgb_matrix_set_color(LED_LIST_NUMPAD[i], RGB_OFFBLUE); - } - rgb_matrix_set_color(LED_L5, RGB_OFFBLUE); - rgb_matrix_set_color(LED_L6, RGB_OFFBLUE); - rgb_matrix_set_color(LED_CAPS, RGB_OFFBLUE); - rgb_matrix_set_color(LED_UP, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_DOWN, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_LEFT, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_RIGHT, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_RCTL, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_RSFT, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_END, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_PGUP, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_PGDN, RGB_CHARTREUSE); - } else { - rgb_matrix_set_color(LED_L5, RGB_OFFBLUE); - rgb_matrix_set_color(LED_L6, RGB_OFFBLUE); - rgb_matrix_set_color(LED_CAPS, RGB_OFFBLUE); - } - break; - - // MOUSEKEYS mode RGB - case _MOUSEKEY: - rgb_matrix_set_color(LED_UP, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_DOWN, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_LEFT, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_RIGHT, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_RCTL, RGB_CYAN); - rgb_matrix_set_color(LED_RSFT, RGB_CYAN); - rgb_matrix_set_color(LED_END, RGB_CYAN); - rgb_matrix_set_color(LED_PGUP, RGB_OFFBLUE); - rgb_matrix_set_color(LED_PGDN, RGB_OFFBLUE); - break; - - // Colemak layer RGB - #ifdef COLEMAK_LAYER_ENABLE - case _COLEMAK: - for (uint8_t i = 0; i < ARRAYSIZE(LED_SIDE_RIGHT); i++) { - rgb_matrix_set_color(LED_SIDE_RIGHT[i], RGB_MAGENTA); - rgb_matrix_set_color(LED_SIDE_LEFT[i], RGB_MAGENTA); - } - break; - #endif - - // Paddle game logic - #ifdef GAME_ENABLE - case _GAME: - if (!game_start) { - srand((unsigned int) timer_read()); - - // Store user light settings - last_hsv = rgb_matrix_get_hsv(); - rgb_matrix_sethsv_noeeprom(0, 0, 0); - - paddle_pos_full = 8; - paddle_lives = 4; - bounce_count = 0; - level_number = 0; - damage_count = 0; - - init_ball(0); - ball[1].on = false; - ball_timer = timer_read(); - - game_start = true; - } - - // Set level indicator - if (level_number < 12) { - rgb_matrix_set_color(GAME_R0[level_number], RGB_BLUE); - } - - // Set life bar - for (uint8_t i = 0; i < paddle_lives; i++) { - rgb_matrix_set_color(GAME_LIVES[i], RGB_GREEN); - } - - uint8_t paddle_pos = paddle_pos_full >> 1; - - if (damage_count > 0) { - // Flash paddle when receiving damage - if (timer_elapsed(damage_timer) > 500) { - --damage_count; - damage_timer = timer_read(); - } - if ((damage_count & 1) == 0) { - for (uint8_t i = 0; i < 3; i++) { - rgb_matrix_set_color(GAME_PADDLE[paddle_pos + i], RGB_RED); - } - } - if (damage_count == 0) { - ball_timer = timer_read(); - } - - } else if (paddle_lives == 0) { - // Game over - for (uint8_t i = 0; i < ARRAY_SIZE(LED_GAME_OVER); i++) { - rgb_matrix_set_color(LED_GAME_OVER[i], RGB_RED); - } - - } else if (level_number >= 12) { - // You win - if (rgb_value.r == 0xff && rgb_value.g < 0xff) { - if (rgb_value.b > 0) { - --rgb_value.b; - } else { - ++rgb_value.g; - } - } else if (rgb_value.g == 0xff && rgb_value.b < 0xff) { - if (rgb_value.r > 0) { - --rgb_value.r; - } else { - ++rgb_value.b; - } - } else if (rgb_value.b == 0xff && rgb_value.r < 0xff) { - if (rgb_value.g > 0) { - --rgb_value.g; - } else { - ++rgb_value.r; - } - } - - for (uint8_t i = 0; i < 3; i++) { - rgb_matrix_set_color(GAME_PADDLE[paddle_pos + i], rgb_value.r, rgb_value.g, rgb_value.b); - } - rgb_matrix_set_color(GAME_SMILE1[paddle_pos], rgb_value.r, rgb_value.g, rgb_value.b); - rgb_matrix_set_color(GAME_SMILE1[paddle_pos + 3], rgb_value.r, rgb_value.g, rgb_value.b); - rgb_matrix_set_color(GAME_SMILE2[paddle_pos], rgb_value.r, rgb_value.g, rgb_value.b); - rgb_matrix_set_color(GAME_SMILE2[paddle_pos + 3], rgb_value.r, rgb_value.g, rgb_value.b); - - } else { - // normal game loop - - // Set paddle position - for (uint8_t i = 0; i < 3; i++) { - rgb_matrix_set_color(GAME_PADDLE[paddle_pos + i], RGB_GREEN); - } - - // Ball movement logic happens at intervals - if (timer_elapsed(ball_timer) > GAME_TIMER[level_number]) { - for (int i = 0; i < 2; ++i) { - if (ball[i].on) { - // Ball movement - if (ball[i].up) { - if (ball[i].y > 0) { - --ball[i].y; - if (!ball[i].left) ++ball[i].x; - } else { - // Count reflections. If > 10, increase level - ++bounce_count; - if (bounce_count >= 10) { - bounce_count = 0; - ++level_number; - } - ball[i].on = false; - } - } else { - ++ball[i].y; - if (ball[i].left) --ball[i].x; - if (ball[i].y > 4) { - // Remove a life if ball isn't returned and isn't enemy - if (!ball[i].enemy) { - hurt_paddle(); - i = 2; - } else { - ball[i].on = false; - } - } - } - } - } - if (ball[0].y == 4 && !ball[1].on) { - init_ball(1); - } - if (ball[1].y == 4 && !ball[0].on) { - init_ball(0); - } - if (!ball[0].on && !ball[1].on) { - init_ball(0); - } - ball_timer = timer_read(); - } - - // Other ball stuff - for (int i = 0; i < 2; ++i) { - if (ball[i].on) { - // Ball deflection logic - if (!ball[i].up && ball[i].y == 4 && (ball[i].x == paddle_pos || ball[i].x == paddle_pos - 1 || ball[i].x == paddle_pos + 1)) { - if (!ball[i].enemy) { - --ball[i].y; - if (!ball[i].left) { - ++ball[i].x; - } - ball[i].up = true; - } else { - hurt_paddle(); - i = 2; - } - } - - // Ball display - switch (ball[i].y) { - case 0: - if (ball[i].enemy) { - rgb_matrix_set_color(GAME_R0[ball[i].x], RGB_RED); - } else { - rgb_matrix_set_color(GAME_R0[ball[i].x], RGB_WHITE); - } - break; - - case 1: - if (ball[i].enemy) { - rgb_matrix_set_color(GAME_R1[ball[i].x], RGB_RED); - } else { - rgb_matrix_set_color(GAME_R1[ball[i].x], RGB_WHITE); - } - break; - - case 2: - if (ball[i].enemy) { - rgb_matrix_set_color(GAME_R2[ball[i].x], RGB_RED); - } else { - rgb_matrix_set_color(GAME_R2[ball[i].x], RGB_WHITE); - } - break; - - case 3: - if (ball[i].enemy) { - rgb_matrix_set_color(GAME_R3[ball[i].x], RGB_RED); - } else { - rgb_matrix_set_color(GAME_R3[ball[i].x], RGB_WHITE); - } - break; - - case 4: - if (ball[i].enemy) { - rgb_matrix_set_color(GAME_R4[ball[i].x], RGB_RED); - } else { - rgb_matrix_set_color(GAME_R4[ball[i].x], RGB_WHITE); - } - break; - } - } - } - } - break; - #endif //GAME_ENABLE - default: - #ifdef GAME_ENABLE - if (game_start) { - // Reset lighting settings - game_start = false; - rgb_matrix_sethsv_noeeprom(last_hsv.h, last_hsv.s, last_hsv.v); - } - #endif //GAME_ENABLE - break; - } - return false; -} -#endif - -void keyboard_post_init_keymap(void) { - // keyboard_post_init_user() moved to userspace - #ifdef RGB_MATRIX_ENABLE - activate_rgb_nightmode(false); // Set to true if you want to startup in nightmode, otherwise use Fn + Z to toggle - #endif -} diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/paddlegame.h b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/paddlegame.h deleted file mode 100644 index 3d33975cfe..0000000000 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/paddlegame.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright 2021 Glorious, LLC - Copyright 2021 Tomas Guinan - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifdef GAME_ENABLE -const uint16_t GAME_TIMER[] = { - 400, 350, 300, 250, 400, 350, 300, 250, 225, 200, 175, 150 -}; - -bool game_start = false; -HSV last_hsv; -static uint8_t paddle_pos_full; -static uint8_t paddle_lives; -static uint8_t level_number; -static uint8_t bounce_count; -static uint8_t damage_count; -static uint16_t damage_timer; -static uint16_t ball_timer; - -struct BallStruct -{ - uint8_t x; - uint8_t y; - bool on; - bool up; - bool left; - bool enemy; -}; - -struct BallStruct ball[2]; - -void init_ball(uint8_t i); -void hurt_paddle(void); - -#endif //GAME_ENABLE \ No newline at end of file diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/readme.md b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/readme.md deleted file mode 100644 index aebccf6d14..0000000000 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/readme.md +++ /dev/null @@ -1,124 +0,0 @@ -# [gourdo1's](mailto:gourdo1@outlook.com) GMMK Pro Keyboard Layouts - -These Windows-centric layouts are based on Jonavin's GMMK Pro [layout](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin) with many additions, fixes, a revamped keymap, persistent user customizations, updated layers, Pascal Getreuer's [autocorrect](https://getreuer.info/posts/keyboards/autocorrection/), Tomas Guinan's [paddle game](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame) and expanded RGB controls and effects. - -![image](https://raw.githubusercontent.com/gourdo1/media/main/susuwatari.jpg) - -* Up-to-date [Changelog](https://github.com/gourdo1/gmmkpro-media/blob/main/changelog.md) -* Latest [ANSI firmware](https://github.com/gourdo1/gmmkpro-media/raw/main/gmmk_pro_rev1_ansi_gourdo1.bin) download. (Flash with [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases)) -* Latest [ISO firmware](https://github.com/gourdo1/gmmkpro-media/raw/main/gmmk_pro_rev1_iso_gourdo1.bin) download. (Flash with [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases)) -* Printable Keyboard [Cheatsheet](https://github.com/gourdo1/gmmkpro-media/raw/main/GMMK_Pro_Cheatsheet.pdf) - -## Features - -### Core Functionality - -* Support for both [ANSI](https://keebnews.com/ansi-vs-iso/) and [ISO](https://keebnews.com/ansi-vs-iso/) keyboard layouts. -* Quick & Easy Customization: Open a text editor and hit [FN]` (tilde on ANSI; the key left of '1' on ISO layouts) to view toggle-able settings. -* [VIA](https://www.caniusevia.com/) support enabled. -* AutoCorrection: Pascal Getreuer's AutoCorrect code incorporated with 400 word dictionary on words > 4 characters. -* Most [default Glorious shortcuts](https://cdn.shopify.com/s/files/1/0549/2681/files/GMMK_Pro_User_Guide.pdf) enabled -* [N-key Rollover](https://en.wikipedia.org/wiki/Rollover_\(keyboard\)#n-key_rollover) (NKRO) -- toggled with [FN]R -* 1000Hz polling rate with 5ms debounce time for quick response in games. -* Mouse Keys! Don't want to move your hands off the keyboard or you didn't bring it with you? Use cursor keys to move the mouse. -* Overlay numpad on 789-UIOP-JKL;-M,. & Space-bar mapped to Enter key for rapid number entry. -* Gaming mode ([FN]Win-key) locks out Win-key and double-tap Shift Capslock; Also RGB highlights WSAD and nearby gaming keys. -* Caps Word enabled: To capitalize the next word only, press and release left and right shift at the same time. -* Multi-monitor app moving shortcuts: [FN] ],[ (square brackets) to move current app window to next monitor. -* Capslock toggled by double tap of Left Shift key or FN + Capslock (RGB green highlighted). -* Paddle game accessible via [FN]P. Hit [FN]P again or double tap [ESC] to exit. -* Single-handed shortcut for Ctrl-Alt-Delete: [FN]/ -* Single-handed shortcut for WinKey-L (lock Windows): [FN]L -* Domain shortcuts: [FN]. for .com, [FN]O for outlook.com, [FN]Y for yahoo.com, [FN]H for hotmail.com, [FN]G for gmail.com. -* [Bootloader mode](https://github.com/qmk/qmk_firmware/blob/master/docs/newbs_flashing.md) accessible via [FN]Backslash for ANSI and FN(key next to Left Shift) for ISO -* PrtScrn, Scroll Lock, Pause/Break are top right on the keyboard: [FN]F11, [FN]F12, [FN]F13 -* [Colemak](https://colemak.com/) key layout support (Accessible via Left Shift + turn Encoder clockwise until side LEDs light up purple) -* Double tap ESC any time to revert to base layer. -* RGB backlight effects expanded to include framebuffer effects and reactive keypress modes. -* RGB backlight now remembers last color & effect settings after power down. - -### Quick & Easy Customization -* Below features can be toggled by holding [FN] and pressing the number corresponding to that feature. Changes are saved to EEPROM for persistence. -* Print current settings by opening a text editor and pressing [FN]~ (the key left of '1' on ISO layout keyboards) -* Quick view current settings by holding [FN] and viewing RGB under number keys (green means ON, violet means OFF) - -#### Toggle-able Settings: - 1. CapsLock RGB - Highlight under alpha keys - 2. Numpad RGB - Highlight under numpad layer keys - 3. ESC key - Double tap ESC key to go to base layer - 4. Swap DEL and HOME - Default is DEL to the right of BKSPC & HOME is above BKSPC - 5. Capslock function - Toggle between double tap LShift for CapsLock with Numpad on CapsLock key (default) and standard CapsLock - 6. Encoder button - Default mutes volume; alternate plays/pauses media - 7. Insert function - Toggle between SHIFT-BKSPC and SHIFT-DEL - 8. Modded-Space override - Use standard Space in place of modded-Space functions - 9. AutoCorrect - Internal (English) AutoCorrect; default is enabled - 0. (ISO layouts only) CapsLock highlights extended alpha keys - -### Numpad + Mouse Keys (Capslock key) - -* Overlay numpad + [Mouse Keys](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_mouse_keys.md) are accessed through Capslock key hold (temp) or double press (locked) with RGB highlighting -* Numpad uses Space-bar as Enter for rapid number entry. -* This layer disables much of the keyboard, except X/C/V for cut/copy/paste, WASD for cursor, Q/E for PgUp/PgDn, cursor keys become mouse keys, surrounding keys become mouse buttons and all number keys become numpad versions (so Alt char codes work regardless of which set you use) -* FN and N keys light up orange if system numlock is off (inverted status), indicating numpad keys will not deliver expected output ([FN]N to toggle) -* Double zero on comma key. -* [Mouse Keys](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_mouse_keys.md) allow you to use the mouse without taking your hand off the keyboard. -* Mouse controls are: Cursor keys = move mouse; RShift = button1, End = button2, RCtrl = button3, PgUp/PgDn = Scroll wheel -* Mouse Keys can also be accessed as a standalone layer by Left Shift-turning the Encoder until the cursor keys light up green - -### Encoder Functionality - -* Default knob turn changes volume; button press toggles mute -* Exponential encoder: quick repeated volume up doubles increase; quick repeated volume down triples decrease. -* FN + knob turn changes RGB idle timeout -* FN + knob push puts PC to Sleep -* holding Left Shift changes layers -* holding Right Shift navigates page up/down -* holding Left Ctrl navigates prev/next word -* holding Right Ctrl changes RGB hue/color -* holding Left Alt changes media prev/next track - -### Paddle Game - -* Based on [Tomas Guinan's excellent GMMK Pro paddle game](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame) -* Paddle Game playable by pressing [FN]P (P lights up green in FN layer if game is enabled in firmware, otherwise it lights up red) -* Use rotary encoder to control paddle -* Contains 12 levels, indicated by blue LED on F-key row -* Player has 4 lives, indicated by nav cluster -* Deflect white balls while avoiding red ones -* Use [FN]P, double tap ESC or otherwise change layer to quit game - -### Global RGB Controls - -* RGB backlight lighting effect: [FN]up/down -* RGB backlight effect speed: [FN]left/right -* RGB backlight hue cycle: [FN]A/D -* RGB backlight brightness: [FN]W/S -* RGB backlight saturation: [FN]Q/E -* RGB backlight night mode toggle: [FN]Z (indicators still work) -* RGB backlight timeout: [FN]Encoder or "-" and "=" (default 15 minutes) - * F-key row indicator lights (cyan and blue) in FN layer display the current backlight timeout in minutes -* [FN]Z to turn off RGB backlighting (indicator lights still work); press again to toggle -* Left side RGB indicators in order from top: Scroll Lock (red), Numpad (blue), Capslock (green). - -### Advanced Controls - -* [FN]\ or [FN]B to get to bootloader mode (use key next to Left Shift on ISO) -* [FN][ESC] to clear EEPROM -* [FN]R to toggle N-key Rollover -* [FN]N to toggle system numlock -* [FN]/ is single-handed shortcut to Ctrl-Alt-Delete -* [FN]L is single-handed shortcut to Win-L (lock Windows) -* [FN][Encoder press] to sleep Windows PC - -## Layer Diagrams (ANSI) -### Base layer -![image](https://raw.githubusercontent.com/gourdo1/gmmkpro-media/main/base.png) - -### FN Layer -![image](https://raw.githubusercontent.com/gourdo1/gmmkpro-media/main/fn1.png) - -### Layer 2 (Numpad) -![image](https://raw.githubusercontent.com/gourdo1/gmmkpro-media/main/numpad.png) - -### COLEMAK layer -![image](https://user-images.githubusercontent.com/71780717/131235050-980d2f54-2d23-4ae8-a83f-9fcdbe60d6cb.png) diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/rgb_matrix_map.h b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/rgb_matrix_map.h deleted file mode 100644 index abcdb82aeb..0000000000 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/rgb_matrix_map.h +++ /dev/null @@ -1,433 +0,0 @@ -/* Copyright 2021 Jonavin Eng @Jonavin - Copyright 2022 gourdo1 - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifdef RGB_MATRIX_ENABLE - -//Define variables for Game -bool fn_active = false; -RGB rgb_value; - -// Custom GMMK Pro-specific RGB color customizations (defaults found in quantum/color.h) -#define RGB_GODSPEED 0x00, 0xE4, 0xFF // color for matching keycaps -#define RGB_NAUTILUS 0x00, 0xA4, 0xA9 // Nautilus Font colors -#define RGB_OFFBLUE 0x00, 0x80, 0xFF // new color: blue with a hint of green -#define RGB_DKRED 0x28, 0x00, 0x00 // new color: dark red -#define RGB_ORANGE2 0xFF, 0x28, 0x00 // fix: reduced green from 80 to 28 -#define RGB_PURPLE2 0x80, 0x00, 0xFF // fix: increased red from 7A to 80 -#define RGB_SPRINGGREEN2 0x00, 0xFF, 0x10 // fix: blue was 80, now 10 -#define RGB_YELLOW2 0xFF, 0xB0, 0x00 // fix: green was FF, now B0 -#define RGB_OFF RGB_BLACK - -// Added by gourdo1 for RGB testing -// Red Green Blue Expected GMMK Pro result -#define RGB_TEST1 0xFF, 0x00, 0x00 // Q - red good! -#define RGB_TEST2 0x0F, 0xFF, 0x00 // W - green good! -#define RGB_TEST3 0x00, 0x00, 0xFF // E - blue good! -#define RGB_TEST4 0xFF, 0xB0, 0x00 // R - yellow slightly green heavy - reduced green LED by quite a bit -#define RGB_TEST5 0x00, 0xFF, 0xFF // T - cyan good! -#define RGB_TEST6 0xFF, 0x00, 0xFF // Y - magenta very slightly blue heavy? -#define RGB_TEST7 0xFF, 0x28, 0x00 // U - orange very green heavy at default -#define RGB_TEST8 0xFF, 0x00, 0x80 // I - pink good! -#define RGB_TEST9 0x80, 0xFF, 0x00 // O - chartreus good! -#define RGB_TEST10 0x00, 0xFF, 0x10 // P - springgrn fixed: was too blue because green LED has blue in it already -#define RGB_TEST11 0x00, 0x80, 0xFF // A - grn blue good! -#define RGB_TEST12 0x80, 0x00, 0xFF // S - purple good! - -// RGB LED locations -enum led_location_map { - LED_ESC, // 0, ESC, k13 - LED_GRV, // 1, `, k16 - LED_TAB, // 2, Tab, k11 - LED_CAPS, // 3, Caps, k21 - LED_LSFT, // 4, Sh_L, k00 - LED_LCTL, // 5, Ct_L, k06 - LED_F1, // 6, F1, k26 - LED_1, // 7, 1, k17 - LED_Q, // 8, Q, k10 - LED_A, // 9, A, k12 - LED_Z, // 10, Z, k14 - LED_LWIN, // 11, Win_L, k90 - LED_F2, // 12, F2, k36 - LED_2, // 13, 2, k27 - LED_W, // 14, W, k20 - LED_S, // 15, S, k22 - LED_X, // 16, X, k24 - LED_LALT, // 17, Alt_L, k93 - LED_F3, // 18, F3, k31 - LED_3, // 19, 3, k37 - LED_E, // 20, E, k30 - LED_D, // 21, D, k32 - LED_C, // 22, C, k34 - LED_F4, // 23, F4, k33 - LED_4, // 24, 4, k47 - LED_R, // 25, R, k40 - LED_F, // 26, F, k42 - LED_V, // 27, V, k44 - LED_F5, // 28, F5, k07 - LED_5, // 29, 5, k46 - LED_T, // 30, T, k41 - LED_G, // 31, G, k43 - LED_B, // 32, B, k45 - LED_SPC, // 33, SPACE, k94 - LED_F6, // 34, F6, k63 - LED_6, // 35, 6, k56 - LED_Y, // 36, Y, k51 - LED_H, // 37, H, k53 - LED_N, // 38, N, k55 - LED_F7, // 39, F7, k71 - LED_7, // 40, 7, k57 - LED_U, // 41, U, k50 - LED_J, // 42, J, k52 - LED_M, // 43, M, k54 - LED_F8, // 44, F8, k76 - LED_8, // 45, 8, k67 - LED_I, // 46, I, k60 - LED_K, // 47, K, k62 - LED_COMM, // 48, ,, k64 - LED_RALT, // 49, Alt_R, k95 - LED_F9, // 50, F9, ka6 - LED_9, // 51, 9, k77 - LED_O, // 52, O, k70 - LED_L, // 53, L, k72 - LED_DOT, // 54, ., k74 - LED_FN, // 55, FN, k92 - LED_F10, // 56, F10, ka7 - LED_0, // 57, 0, k87 - LED_P, // 58, P, k80 - LED_SCLN, // 59, ;, k82 - LED_SLSH, // 60, ?, k85 - LED_F11, // 61, F11, ka3 - LED_MINS, // 62, -, k86 - LED_LBRC, // 63, [, k81 - LED_QUOT, // 64, ", k83 - LED_RCTL, // 65, Ct_R, k04 - LED_F12, // 66, F12, ka5 - LED_BSLS, // 67, \, k23 - LED_L1, // 68, LED, l01 - LED_R1, // 69, LED, l11 - LED_PRT, // 70, Prt, k97 - LED_L2, // 71, LED, l02 - LED_R2, // 72, LED, l12 - LED_DEL, // 73, Del, k65 - LED_L3, // 74, LED, l03 - LED_R3, // 75, LED, l13 - LED_PGUP, // 76, PgUp, k15 - LED_L4, // 77, LED, l04 - LED_R4, // 78, LED, l14 - LED_EQL, // 79, =, k66 - LED_RIGHT, // 80, Right, k05 - LED_L5, // 81, LED, l05 - LED_R5, // 82, LED, l15 - LED_END, // 83, End, k75 - LED_L6, // 84, LED, l06 - LED_R6, // 85, LED, l16 - LED_BSPC, // 86, BSpc, ka1 - LED_PGDN, // 87, PgDn, k25 - LED_L7, // 88, LED, l07 - LED_R7, // 89, LED, l17 - LED_RBRC, // 90, ], k61 - LED_RSFT, // 91, Sh_R, k91 - LED_L8, // 92, LED, l08 - LED_R8, // 93, LED, l18 - LED_UP, // 94, Up, k35 - LED_HASH, // 95, #, k84 - LED_LEFT, // 96, Left, k03 - LED_ENT, // 97, Enter, ka4 - LED_DOWN // 98, Down, k73 -}; - -const uint8_t LED_LIST_WASD[] = { - LED_W, - LED_A, - LED_S, - LED_D -}; - -const uint8_t LED_LIST_ARROWS[] = { - LED_LEFT, - LED_RIGHT, - LED_UP, - LED_DOWN -}; - -const uint8_t LED_LIST_FUNCROW[] = { - LED_ESC, - LED_F1, - LED_F2, - LED_F3, - LED_F4, - LED_F5, - LED_F6, - LED_F7, - LED_F8, - LED_F9, - LED_F10, - LED_F11, - LED_F12, - LED_PRT -}; - -const uint8_t LED_LIST_NUMROW[] = { - LED_GRV, - LED_1, - LED_2, - LED_3, - LED_4, - LED_5, - LED_6, - LED_7, - LED_8, - LED_9, - LED_0, - LED_MINS, - LED_EQL, - LED_BSPC, - LED_DEL -}; - -const uint8_t LED_LIST_LETTERS[] = { - LED_Q, - LED_W, - LED_E, - LED_R, - LED_T, - LED_Y, - LED_U, - LED_I, - LED_O, - LED_P, - LED_A, - LED_S, - LED_D, - LED_F, - LED_G, - LED_H, - LED_J, - LED_K, - LED_L, - LED_Z, - LED_X, - LED_C, - LED_V, - LED_B, - LED_N, - LED_M -}; - -const uint8_t LED_LIST_LETTERS_DE[] = { - LED_Q, - LED_W, - LED_E, - LED_R, - LED_T, - LED_Y, - LED_U, - LED_I, - LED_O, - LED_P, - LED_A, - LED_S, - LED_D, - LED_F, - LED_G, - LED_H, - LED_J, - LED_K, - LED_L, - LED_Z, - LED_X, - LED_C, - LED_V, - LED_B, - LED_N, - LED_M, - LED_SCLN, - LED_LBRC, - LED_QUOT -}; - -const uint8_t LED_LIST_NUMPAD[] = { - LED_1, - LED_2, - LED_3, - LED_4, - LED_5, - LED_6, - LED_7, - LED_8, - LED_9, - LED_0, - LED_MINS, - LED_EQL, - LED_U, - LED_I, - LED_O, - LED_P, - LED_J, - LED_K, - LED_L, - LED_SCLN, - LED_ENT, - LED_M, - LED_COMM, - LED_DOT, - LED_SLSH, - LED_END, - LED_RIGHT -}; - -const uint8_t LED_SIDE_LEFT[] = { - LED_L1, - LED_L2, - LED_L3, - LED_L4, - LED_L5, - LED_L6, - LED_L7, - LED_L8 -}; - -const uint8_t LED_SIDE_RIGHT[] = { - LED_R1, - LED_R2, - LED_R3, - LED_R4, - LED_R5, - LED_R6, - LED_R7, - LED_R8 -}; - -#ifdef GAME_ENABLE -// Game LED rules -const uint8_t GAME_LIVES[] = { - LED_DEL, - LED_PGUP, - LED_PGDN, - LED_END -}; -const uint8_t GAME_PADDLE[] = { - LED_Z, - LED_X, - LED_C, - LED_V, - LED_B, - LED_N, - LED_M, - LED_COMM, - LED_DOT, - LED_SLSH -}; -const uint8_t GAME_SMILE1[] = { - LED_A, - LED_S, - LED_D, - LED_F, - LED_G, - LED_H, - LED_J, - LED_K, - LED_L, - LED_SCLN, - LED_QUOT -}; -const uint8_t GAME_SMILE2[] = { - LED_2, - LED_3, - LED_4, - LED_5, - LED_6, - LED_7, - LED_8, - LED_9, - LED_0, - LED_MINS, - LED_EQL -}; -const uint8_t GAME_R4[] = { - LED_X, - LED_C, - LED_V, - LED_B, - LED_N, - LED_M, - LED_COMM, - LED_DOT -}; -const uint8_t GAME_R3[] = { - LED_S, - LED_D, - LED_F, - LED_G, - LED_H, - LED_J, - LED_K, - LED_L, - LED_SCLN -}; -const uint8_t GAME_R2[] = { - LED_W, - LED_E, - LED_R, - LED_T, - LED_Y, - LED_U, - LED_I, - LED_O, - LED_P, - LED_LBRC -}; -const uint8_t GAME_R1[] = { - LED_2, - LED_3, - LED_4, - LED_5, - LED_6, - LED_7, - LED_8, - LED_9, - LED_0, - LED_MINS, - LED_EQL -}; -const uint8_t GAME_R0[] = { - LED_F1, - LED_F2, - LED_F3, - LED_F4, - LED_F5, - LED_F6, - LED_F7, - LED_F8, - LED_F9, - LED_F10, - LED_F11, - LED_F12 -}; -const uint8_t LED_GAME_OVER[] = { - LED_5, - LED_8, - LED_F, - LED_G, - LED_H, - LED_J, - LED_C, - LED_M -}; -#endif //GAME_ENABLE - -#endif \ No newline at end of file diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/rules.mk b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/rules.mk deleted file mode 100644 index 1eb14ebbef..0000000000 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/rules.mk +++ /dev/null @@ -1,22 +0,0 @@ -LTO_ENABLE = yes # link time optimization -- achieves a smaller compiled size -CONSOLE_ENABLE = no -COMMAND_ENABLE = no -MOUSEKEY_ENABLE = yes - -VIA_ENABLE = yes -TAP_DANCE_ENABLE = no -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -CAPS_WORD_ENABLE = yes # Enable built-in Caps Word functionality - -TD_LSFT_CAPSLOCK_ENABLE = yes -IDLE_TIMEOUT_ENABLE = yes -STARTUP_NUMLOCK_ON = yes -ENCODER_DEFAULTACTIONS_ENABLE = no - -COLEMAK_LAYER_ENABLE = yes # Enable Colemak layer / set to no to disable -INVERT_NUMLOCK_INDICATOR = yes - -GAME_ENABLE ?= yes # Enable Paddle Game / set to no to disable -ifeq ($(strip $(GAME_ENABLE)), yes) - OPT_DEFS += -DGAME_ENABLE -endif diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/config.h b/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/config.h deleted file mode 100644 index 539f78874a..0000000000 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/config.h +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright 2021 Jonavin Eng - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define TAPPING_TOGGLE 2 -// TT set to two taps - -/* Handle GRAVESC combo keys */ -#define GRAVE_ESC_ALT_OVERRIDE - //Always send Escape if Alt is pressed -#define GRAVE_ESC_CTRL_OVERRIDE - //Always send Escape if Control is pressed - -#define TAPPING_TERM 180 - -#ifdef RGB_MATRIX_ENABLE -# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR -# define RGB_DISABLE_WHEN_USB_SUSPENDED -#endif - -// add fifth layer for colemak -- set "COLEMAK_LAYER_ENABLE = yes" in rules.mk to enable -#if defined COLEMAK_LAYER_ENABLE -# define DYNAMIC_KEYMAP_LAYER_COUNT 5 -# define _COLEMAK 4 -#endif // COLEMAK_LAYER_ENABLE diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/keymap.c b/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/keymap.c deleted file mode 100644 index 82359551d1..0000000000 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/keymap.c +++ /dev/null @@ -1,194 +0,0 @@ -/* Copyright 2021 Glorious, LLC - Copyright 2021 Jonavin - Copyright 2022 RustyBrakes (ISO conversion) - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H -#include "rgb_matrix_map.h" -#include "jonavin.h" - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Ins Rotary(Mute) -// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Del -// Tab Q W E R T Y U I O P [ ] PgUp -// Caps A S D F G H J K L ; " # Enter PgDn -// Sh_L \ Z X C V B N M , . ? Sh_R Up End -// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right - - - [_BASE] = LAYOUT( - KC_ESC, 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_INS, KC_MUTE, - KC_GRV, 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_BSPC, KC_DEL, - 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_PGUP, - TT(_LOWER), 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_PGDN, - KC_LSFTCAPSWIN, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [_FN1] = LAYOUT( - _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_CALC, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, - _______, _______, RGB_VAI, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, KC_HOME, - KC_CAPS, _______, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, - _______, QK_BOOT, RGB_NITE,RGB_HUI, _______, _______, _______, KC_NUM, _______, RGB_TOD, RGB_TOI, _______, _______, RGB_MOD, _______, - _______, KC_WINLCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI - ), - - [_LOWER] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, _______, _______, - _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, KC_TAB, KC_P4, KC_P5, KC_P6, KC_PDOT, _______, _______, KC_HOME, - _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_P1, KC_P2, KC_P3, KC_NO, KC_PAST, _______, KC_PENT, KC_END, - _______, _______, KC_NO, KC_DEL, KC_INS, KC_NO, KC_NO, KC_NO, KC_P0, KC_00, KC_PDOT, KC_PSLS, _______, RCTL(KC_PGUP), _______, - _______, _______, _______, KC_BSPC, _______, _______, _______, RCTL(KC_LEFT), RCTL(KC_PGDN), RCTL(KC_RIGHT) - ), - -#ifdef COLEMAK_LAYER_ENABLE - [_COLEMAK] = LAYOUT( - KC_ESC, 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_INS, KC_MUTE, - KC_GRV, 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_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_PGUP, - TT(_LOWER), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, - KC_LSFTCAPSWIN, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), -#endif // COLEMAK_LAYER_ENABLE -}; - -#if defined(ENCODER_ENABLE) && !defined(ENCODER_DEFAULTACTIONS_ENABLE) // Encoder Functionality when not using userspace defaults - void encoder_action_rgbhue(bool clockwise) { - if (clockwise) - rgblight_increase_hue_noeeprom(); - else - rgblight_decrease_hue_noeeprom(); - } - - bool encoder_update_user(uint8_t index, bool clockwise) { - uint8_t mods_state = get_mods(); - if (mods_state & MOD_BIT(KC_LSFT) ) { // If you are holding L shift, encoder changes layers - encoder_action_layerchange(clockwise); - } else if (mods_state & MOD_BIT(KC_RSFT) ) { // If you are holding R shift, Page up/dn - unregister_mods(MOD_BIT(KC_RSFT)); - encoder_action_navpage(clockwise); - register_mods(MOD_BIT(KC_RSFT)); - } else if (mods_state & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next/prev word - encoder_action_navword(clockwise); - } else if (mods_state & MOD_BIT(KC_RCTL)) { // if holding Right Ctrl, change rgb hue/colour - encoder_action_rgbhue(clockwise); - } else if (mods_state & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next/prev track - encoder_action_mediatrack(clockwise); - } else { - switch(get_highest_layer(layer_state)) { - case _FN1: - #ifdef IDLE_TIMEOUT_ENABLE - timeout_update_threshold(clockwise); - #endif - break; - default: - encoder_action_volume(clockwise); // Otherwise it just changes volume - break; - } - } - //return true; //set to return false to counteract enabled encoder in pro.c - return false; - } -#endif // ENCODER_ENABLE && !ENCODER_DEFAULTACTIONS_ENABLE - -#ifdef RGB_MATRIX_ENABLE - // Capslock, Scroll lock and Numlock indicator on Left side lights. - bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { - led_t led_state = host_keyboard_led_state(); - if (get_rgb_nightmode()) rgb_matrix_set_color_all(RGB_OFF); - if (led_state.scroll_lock) { - rgb_matrix_set_color(LED_L1, RGB_GREEN); - rgb_matrix_set_color(LED_L2, RGB_GREEN); - } - - #ifdef INVERT_NUMLOCK_INDICATOR - if (!led_state.num_lock) { // on if NUM lock is OFF - rgb_matrix_set_color(LED_L3, RGB_MAGENTA); - rgb_matrix_set_color(LED_L4, RGB_MAGENTA); - } - #else - if (led_state.num_lock) { // Normal, on if NUM lock is ON - rgb_matrix_set_color(LED_L3, RGB_MAGENTA); - rgb_matrix_set_color(LED_L4, RGB_MAGENTA); - } - #endif // INVERT_NUMLOCK_INDICATOR - - if (led_state.caps_lock) { - rgb_matrix_set_color(LED_L5, RGB_RED); - rgb_matrix_set_color(LED_L6, RGB_RED); - rgb_matrix_set_color(LED_L7, RGB_RED); - } - if (keymap_config.no_gui) { - rgb_matrix_set_color(LED_LWIN, RGB_RED); //light up Win key when disabled - } - switch(get_highest_layer(layer_state)){ // special handling per layer - case _FN1: // on Fn layer select what the encoder does when pressed - rgb_matrix_set_color(LED_R2, RGB_RED); - rgb_matrix_set_color(LED_R3, RGB_RED); - rgb_matrix_set_color(LED_R4, RGB_RED); - rgb_matrix_set_color(LED_FN, RGB_RED); //FN key - - // Add RGB Timeout Indicator -- shows 0 to 139 using F row and num row; larger numbers using 16bit code - uint16_t timeout_threshold = get_timeout_threshold(); - if (timeout_threshold <= 10) rgb_matrix_set_color(LED_LIST_FUNCROW[timeout_threshold], RGB_RED); - else if (timeout_threshold < 140) { - rgb_matrix_set_color(LED_LIST_FUNCROW[(timeout_threshold / 10)], RGB_RED); - rgb_matrix_set_color(LED_LIST_NUMROW[(timeout_threshold % 10)], RGB_RED); - } else { // >= 140 minutes, just show these 3 lights - rgb_matrix_set_color(LED_LIST_NUMROW[10], RGB_RED); - rgb_matrix_set_color(LED_LIST_NUMROW[11], RGB_RED); - rgb_matrix_set_color(LED_LIST_NUMROW[12], RGB_RED); - } - break; - case _LOWER: - for (uint8_t i=0; i or encoder - - setting to zero disables timeout - - indicators in FN layer using RGB in FN and number rows to show the timeout in minutes - - LED address location map as enum definition in rgb_matrix_map.h - - LED group lists for arrows, numpad, F row, num row, left and right side LEDs - - default startup in single mode with default colour - - Capslock, Scroll Lock, and Num Lock (not set) indicator on left side LED - - Layer indicator on right side LED - - Fn key light up red when Fn layer activate - - Win Key light up red when Win Lock mode enabled - - Layer 2 activation lights up Numpad area - - Fn + Z to turn off all RGB lights except rgb indicators; press again to toggle - -rules.mk OPTIONS - Active features from userspace -STARTUP_NUMLOCK_ON = yes - - turns on NUMLOCK by default - -ENCODER_DEFAULTACTIONS_ENABLE = yes - - Enabled default encoder funtions - -TD_LSFT_CAPSLOCK_ENABLE = yes - - This will enable double tap on Left Shift to toggle CAPSLOCK when using KC_LSFTCAPS - -IDLE_TIMEOUT_ENABLE = yes - - Enables Timer functionality; for RGB idle timeouts that can be changed dynamically - -INVERT_NUMLOCK_INDICATOR - - inverts the Num lock indicator, LED is on when num lokc is off - -COLEMAK_LAYER_ENABLE = yes - - Enabled optional 5th layer for COLEMAK layout - - Use Shift and encoder to enter 5th layer, right led indicator lights up BLUE diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/rgb_matrix_map.h b/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/rgb_matrix_map.h deleted file mode 100644 index 1aa31f2a0f..0000000000 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/rgb_matrix_map.h +++ /dev/null @@ -1,146 +0,0 @@ -/* Copyright 2021 Jonavin Eng - * Copyright 2022 RustyBrakes (ISO conversion) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifdef RGB_MATRIX_ENABLE - - // Custom RGB Colours - #define RGB_GODSPEED 0x00, 0xE4, 0xFF // colour for matching keycaps - #define RGB_NAUTILUS 0x00, 0xA4, 0xA9 // Naurilus Font colours - - // RGB LED locations - enum led_location_map { - LED_ESC, // 0, ESC, k13 - LED_GRV, // 1, `, k16 - LEB_TAB, // 2, Tab, k11 - LED_CAPS, // 3, Caps, k21 - LED_LSFT, // 4, Sh_L, k00 - LED_LCTL, // 5, Ct_L, k06 - LED_F1, // 6, F1, k26 - LED_1, // 7, 1, k17 - LED_Q, // 8, Q, k10 - LED_A, // 9, A, k12 - LED_Z, // 10, Z, k14 - LED_LWIN, // 11, Win_L, k90 - LED_F2, // 12, F2, k36 - LED_2, // 13, 2, k27 - LED_W, // 14, W, k20 - LED_S, // 15, S, k22 - LED_X, // 16, X, k24 - LED_LALT, // 17, Alt_L, k93 - LED_F3, // 18, F3, k31 - LED_3, // 19, 3, k37 - LED_E, // 20, E, k30 - LED_D, // 21, D, k32 - LED_C, // 22, C, k34 - LED_F4, // 23, F4, k33 - LED_4, // 24, 4, k47 - LED_R, // 25, R, k40 - LED_F, // 26, F, k42 - LED_V, // 27, V, k44 - LED_F5, // 28, F5, k07 - LED_5, // 29, 5, k46 - LED_T, // 30, T, k41 - LED_G, // 31, G, k43 - LED_B, // 32, B, k45 - LED_SPC, // 33, SPACE, k94 - LED_F6, // 34, F6, k63 - LED_6, // 35, 6, k56 - LED_Y, // 36, Y, k51 - LED_H, // 37, H, k53 - LED_N, // 38, N, k55 - LED_F7, // 39, F7, k71 - LED_7, // 40, 7, k57 - LED_U, // 41, U, k50 - LED_J, // 42, J, k52 - LED_M, // 43, M, k54 - LED_F8, // 44, F8, k76 - LED_8, // 45, 8, k67 - LED_I, // 46, I, k60 - LED_K, // 47, K, k62 - LED_COMM, // 48, ,, k64 - LED_RALT, // 49, Alt_R, k95 - LED_F9, // 50, F9, ka6 - LED_9, // 51, 9, k77 - LED_O, // 52, O, k70 - LED_L, // 53, L, k72 - LED_DOT, // 54, ., k74 - LED_FN, // 55, FN, k92 - LED_F10, // 56, F10, ka7 - LED_0, // 57, 0, k87 - LED_P, // 58, P, k80 - LED_SCLN, // 59, ;, k82 - LED_SLSH, // 60, /, k85 - LED_F11, // 61, F11, ka3 - LED_MINS, // 62, -, k86 - LED_LBRC, // 63, [, k81 - LED_QUOT, // 64, ", k83 - LED_RCTL, // 65, Ct_R, k04 - LED_F12, // 66, F12, ka5 - LED_BSLS, // 67, \, k23 - LED_L1, // 68, LED, l01 - LED_R1, // 69, LED, l11 - LED_PRT, // 70, Prt, k97 - LED_L2, // 71, LED, l02 - LED_R2, // 72, LED, l12 - LED_DEL, // 73, Del, k65 - LED_L3, // 74, LED, l03 - LED_R3, // 75, LED, l13 - LED_PGUP, // 76, PgUp, k15 - LED_L4, // 77, LED, l04 - LED_R4, // 78, LED, l14 - LED_EQL, // 79, =, k66 - LED_RIGHT, // 80, Right, k05 - LED_L5, // 81, LED, l05 - LED_R5, // 82, LED, l15 - LED_END, // 83, End, k75 - LED_L6, // 84, LED, l06 - LED_R6, // 85, LED, l16 - LED_BSPC, // 86, BSpc, ka1 - LED_PGDN, // 87, PgDn, k25 - LED_L7, // 88, LED, l07 - LED_R7, // 89, LED, l17 - LED_RBRC, // 90, ], k61 - LED_RSFT, // 91, Sh_R, k91 - LED_L8, // 92, LED, l08 - LED_R8, // 93, LED, l18 - LED_UP, // 94, Up, k35 - LED_HASH, // 95, #, k84 - LED_LEFT, // 96, Left, k03 - LED_ENT, // 97, Enter, ka4 - LED_DOWN // 98, Down, k73 - }; - - const uint8_t LED_LIST_WASD[] = { LED_W, LED_A, LED_S, LED_D }; - - const uint8_t LED_LIST_ARROWS[] = { LED_LEFT, LED_RIGHT, LED_UP, LED_DOWN }; - - const uint8_t LED_LIST_FUNCROW[] = { LED_ESC, LED_F1, LED_F2, LED_F3, LED_F4, LED_F5, LED_F6, LED_F7, LED_F8, LED_F9, LED_F10, LED_F11, LED_F12, LED_PRT}; - - const uint8_t LED_LIST_NUMROW[] = { LED_GRV, LED_1, LED_2, LED_3, LED_4, LED_5, LED_6, LED_7, LED_8, LED_9, LED_0, LED_MINS, LED_EQL, LED_BSPC, LED_DEL}; - - const uint8_t LED_LIST_NUMPAD[] = { - LED_7, LED_8, LED_9, - LED_U, LED_I, LED_O, - LED_J, LED_K, LED_L, - LED_M, LED_COMM, LED_DOT - }; - - const uint8_t LED_SIDE_LEFT[] = { LED_L1, LED_L2, LED_L3, LED_L4, LED_L5, LED_L6, LED_L7, LED_L8}; - - const uint8_t LED_SIDE_RIGHT[] = { LED_R1, LED_R2, LED_R3, LED_R4, LED_R5, LED_R6, LED_R7, LED_R8}; - -#endif diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/rules.mk b/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/rules.mk deleted file mode 100644 index 1ffc2058a2..0000000000 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/rules.mk +++ /dev/null @@ -1,12 +0,0 @@ -VIA_ENABLE = yes -MOUSEKEY_ENABLE = no -TAP_DANCE_ENABLE = yes -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite - -TD_LSFT_CAPSLOCK_ENABLE = yes -IDLE_TIMEOUT_ENABLE = yes -STARTUP_NUMLOCK_ON = yes -ENCODER_DEFAULTACTIONS_ENABLE = no - -COLEMAK_LAYER_ENABLE = yes #Enable Colemak layer / set to no to disable -INVERT_NUMLOCK_INDICATOR = yes diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/config.h b/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/config.h deleted file mode 100644 index 91fce71359..0000000000 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/config.h +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2021 Victor Toni (@vitoni) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#if defined(RGB_MATRIX_ENABLE) - #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR - // number of milliseconds to wait until turning off RGB automatically - #define RGB_MATRIX_TIMEOUT 300000 // 300 seconds / 5 min - // start fading out before getting disabled - // fading out is timed (depending on the rgb_matrix_config.speed) to have finished before reaching RGB_MATRIX_TIMEOUT - #define RGB_DISABLE_WITH_FADE_OUT - #define RGB_DISABLE_WHEN_USB_SUSPENDED - // number of milliseconds to wait until activating RGB idle effects - #define RGB_IDLE_TIMEOUT 4500 // 4.5 seconds - // activate breathe effect when idle - #define RGB_IDLE_BREATHE - // fade in when we have been suspended - #define RGB_FADE_IN -#endif diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/keymap.c b/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/keymap.c deleted file mode 100644 index 2c8a67ef9b..0000000000 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/keymap.c +++ /dev/null @@ -1,149 +0,0 @@ -// Copyright 2021 Glorious, LLC , -// Copyright 2021 Victor Toni (@vitoni) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -#include "vitoni.h" - -enum layer_names { - _BASE, - _MOV, - _RGB -}; - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Prt Rotary(Mute) -// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Del -// Tab Q W E R T Y U I O P [ ] PgUp -// Caps A S D F G H J K L ; " # Enter PgDn -// Sh_L / Z X C V B N M , . ? Sh_R Up End -// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right - - - // - // This keyboard defaults to 6KRO instead of NKRO for compatibility reasons (some KVMs and BIOSes are incompatible with NKRO). - // Since this is, among other things, a "gaming" keyboard, a key combination to enable NKRO on the fly is provided for convenience. - // Press CAPS+N to toggle between 6KRO and NKRO. This setting is persisted to the EEPROM and thus persists between restarts. - [_BASE] = LAYOUT( - KC_ESC, 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_PSCR, KC_MUTE, - KC_GRV, 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_BSPC, KC_DEL, - 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_PGUP, - MO(_MOV), 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_PGDN, - 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_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, TG(_RGB),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [_MOV] = LAYOUT( - QK_BOOT, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_PGUP, _______, - _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END - ), - - [_RGB] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, RGB_MOD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_SPI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, RGB_SPD, - _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_HUI - ), - -}; -// clang-format on - -#if defined(ENCODER_ENABLE) -bool encoder_update_user(uint8_t index, bool clockwise) { - switch (get_highest_layer(layer_state)) { - case _MOV: - if (clockwise) { - tap_code16(C(KC_TAB)); - } else { - tap_code16(S(C(KC_TAB))); - } - break; -#if defined(RGB_MATRIX_ENABLE) - case _RGB: - if (clockwise) { - rgb_matrix_increase_val_noeeprom(); - } else { - rgb_matrix_decrease_val_noeeprom(); - } - break; -#endif // RGB_MATRIX_ENABLE - default: - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - break; - } - //return true; //set to return false to counteract enabled encoder in pro.c - return false; -} -#endif // ENCODER_ENABLE - -#if defined(RGB_MATRIX_ENABLE) -/* -* Set up default RGB color. -*/ -void rgb_matrix_set_default_color(void) { - rgb_matrix_sethsv_noeeprom_user(HSV_CHARTREUSE); -} - -/* -* Set up RGB defaults. -*/ -void rgb_matrix_configure_default_settings(void) { - rgb_matrix_set_default_color(); -} - -void keyboard_post_init_user(void) { - rgb_matrix_enable_noeeprom(); - rgb_matrix_configure_default_settings(); -} - -/* -* Use RGB underglow to indicate specific layers. -*/ -layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { - case _MOV: - rgb_matrix_sethsv_noeeprom_user(HSV_SPRINGGREEN); - break; - case _RGB: - rgb_matrix_sethsv_noeeprom_user(HSV_GREEN); - break; - default: // for any other layer - rgb_matrix_set_default_color(); - break; - } - return state; -} - -void matrix_scan_user(void) { - matrix_scan_user_rgb(); -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user_rgb(keycode, record)) { - return false; - } - - switch (keycode) { - case QK_BOOT: // when activating QK_BOOT mode for flashing - if (record->event.pressed) { - rgb_matrix_set_color_all(63, 0, 0); - rgb_matrix_driver.flush(); - } - return true; - } - return true; // Process all other keycodes normally -} -#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/readme.adoc b/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/readme.adoc deleted file mode 100644 index c34887ebd2..0000000000 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/readme.adoc +++ /dev/null @@ -1,104 +0,0 @@ -= ViToni's keymap for GMMK Pro ISO - -== Layout -Based on the stock layout but making use of CAPS as FN similar to laptop keyboards. -This frees up the left row for other uses (although not remapped yet). -Since both Delete and Insert are used for coding they are part of the CAPS layer as well. - -The differences are as follows: - -=== Layer 0 (`_BASE`) -Mostly stock + CAPS goes to layer `_MOV`. -FN toggles the layer `_RGB`. - -=== Layer 1 (`_MOV`), accessed by pressing `CAPS` on layer `_BASE` -[%header] -|=== -| Key / Action | Mapped to -| ESC | _RESET_ -| F1 | KC_MYCM -| F2 | KC_WHOM -| F3 | KC_CALC -| F4 | KC_MSEL -| F5 | KC_MPRV -| F6 | KC_MPLY -| F7 | KC_MSTP -| F8 | KC_MNXT -| F9 | KC_MUTE -| F10 | KC_VOLD -| F11 | KC_VOLU -| N | NK_TOGG -| Delete | Insert -| Left | Home -| Right | End -| Up | PgUp -| Down | PgDn -|=== - -=== Layer 2 (`_RGB`), accessed by pressing `FN` on layer `_BASE` -Revamped the stock FN layer to focus on RGB only. - -[%header] -|=== -| Key / Action | Mapped to -| Knob clockwise | Value/Brightness up -| Knob anti-clockwise | Value/Brightness down -| Backspace | _RESET_ -| Enter | RGB_TOG -| Del | RGB_MOD -| PgUp | RGB_RMOD -| PgDn | RGB_SPI -| End | RGB_SPD -| Left | RGB_HUD -| Right | RGB_HUI -| Up | RGB_SAI -| Down | RGB_SAD -|=== - -No other changes have been made. - -== RGB light - -The code customizing RGB light usage is decribed here: - -* link:../../../../../../users/vitoni/readme.adoc[/users/vitoni/readme.adoc] - -When using `RGB_MATRIX_TIMEOUT` addtional options are available: - -* `RGB_FADE_IN` makes the RGB lights fade in instead of setting the value/brightness to 100% (implicitly due to HSV including the brightness) when resuming after RGB lights have been turned off. -Fade in occurs when the keyboard is initialized and when the RGB brightness has been changed (e.g. suspending, fade out, etc.). -* `RGB_DISABLE_WITH_FADE_OUT` activates fade out before the keyboard is disabled by `RGB_MATRIX_TIMEOUT`. - -Parameters used to define the behavior are: -[%header] -|=== -|Key | Default | Description - -| RGB_MATRIX_MAXIMUM_BRIGHTNESS -| 200 (<= UNIT8_MAX) -| Maximum assumed value for brightness. -Used to calculate lead time for fade out before suspend timeout. - -|=== - -`RGB_IDLE_TIMEOUT` enables fading out after being idle for the defined time and allows -* `RGB_IDLE_BREATHE` also activates a brethe effect while idling. - -[%header] -|=== -|Key | Default | Description - -|RGB_IDLE_TIMEOUT -|4500 -|Time in milliseconds without activity before considered to be idle. - -|RGB_IDLE_MINIMUM_BRIGHTNESS -|`RGB_MATRIX_MAXIMUM_BRIGHTNESS` / 5 -|Brightness value RGB is dimmed to when starting to idle. + -When breathing used as the lower bound of the brightness value. - -|RGB_IDLE_MAXIMUM_BRIGHTNESS -|`RGB_MATRIX_MAXIMUM_BRIGHTNESS` * 2/5 -|Upper bound of brightness value of the RGB light while breathing. - -|=== diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/keymap.c b/keyboards/gopolar/gg86/keymaps/horrortroll/keymap.c deleted file mode 100644 index fc725ad3f0..0000000000 --- a/keyboards/gopolar/gg86/keymaps/horrortroll/keymap.c +++ /dev/null @@ -1,89 +0,0 @@ -/* Copyright 2023 HorrorTroll - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -#include "horrortroll.h" -#include "oled/oled_stuff.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* - ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ - │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ - └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ - ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ - │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Bckspc│ │Hom│Scr│Pse│ - ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ - │ Tab │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] │ \ │ │End│Scr│Pse│ - ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ - │ Caps │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ Enter│ - ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ - │LSft│ \ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RSft │RSt│ │ ↑ │ - ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ - │LCrl │GUI│ LAlt│ Space │ RAlt│ Fn│ RCrl│ │ ← │ ↓ │ → │ - └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ - ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ - │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ - ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ - │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │ │ │ │ │ - ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ - │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ | │ │ │ │ │ - ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ - │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ │ - ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ - │LSft│ | │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ RSft │RSt│ │ │ - ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ - │ │ │ │ │ │ │ │ │ │ │ │ - └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ -*/ - /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - [_BASE] = LAYOUT_all( - KC_ESC, 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_PSCR, KC_SCRL, KC_PAUSE, - KC_GRV, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_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_RSFT, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT - ), - -/* - ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ - │Rst│ │MeP│VoD│VoU│Mut│ │Stp│Prv│Ply│Nxt│ │Mai│Hom│Cal│Sch│ │Rod│Mod│Tog│ - └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ - ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ - │NKO│ │ │ │ │ │ │ │ │ │ │Spd│Spi│ │ │C_E│ │ │ - ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ - │ │1Hd│1Hi│1Sd│1Si│1Vd│1Vi│ │ │ │ │ │ │ │ │ │ │ │ - ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ - │ │2Hd│2Hi│2Sd│2Si│2Vd│2Vi│ │ │ │ │ │ │ - ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ - │ │ │Pre│Ref│Flp│ │ │ │ │ │ │ │ │ │ │Vai│ - ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ - │ │ │ │ │ │ Fn│ │ │Hud│Vad│Hui│ - └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ -*/ - /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - [_FN] = LAYOUT_all( - QK_BOOT, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, RGB_RMOD, RGB_MOD, RGB_TOG, - NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, RGB_C_E, _______, _______, - _______, G1_HUD, G1_HUI, G1_SAD, G1_SAI, G1_VAD, G1_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, G2_HUD, G2_HUI, G2_SAD, G2_SAI, G2_VAD, G2_VAI, _______, _______, _______, _______, _______, _______, - _______, _______, G_PRE, REF_G, G_FLIP, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, - _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_VAD, RGB_HUI - ), -}; diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/oled/oled_stuff.h b/keyboards/gopolar/gg86/keymaps/horrortroll/oled/oled_stuff.h deleted file mode 100644 index d67e5a18c5..0000000000 --- a/keyboards/gopolar/gg86/keymaps/horrortroll/oled/oled_stuff.h +++ /dev/null @@ -1,68 +0,0 @@ -/* Copyright 2021 HorrorTroll - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -// OLED animation -#include "lib/wave.h" - -#ifdef OLED_ENABLE - static void render_layer_info(void) { - switch (get_highest_layer(layer_state)) { - case 0: - oled_write_P(PSTR(" QWERTY "), false); - break; - case 1: - oled_write_P(PSTR(" Function "), false); - break; - default: - oled_write_P(PSTR(" Undefined "), false); - } - } - - static void render_layer_number(void) { - switch (get_highest_layer(layer_state)) { - case 0: - oled_write_P(PSTR("0"), false); - break; - case 1: - oled_write_P(PSTR("1"), false); - break; - default: - oled_write_P(PSTR("X"), false); - } - } - - bool oled_task_user(void) { - render_layer_info(); - - // sleep if it has been long enough since we last got a char - if (timer_elapsed32(wave_sleep) > OLED_TIMEOUT) { - oled_off(); - } else { - oled_on(); - } - // time for the next frame? - if (timer_elapsed(wave_timer) > FRAME_TIMEOUT) { - wave_timer = timer_read(); - render_frame(); - } - - oled_set_cursor(0, 3); - oled_write_P(PSTR(" Layer: "), false); - render_layer_number(); - - return true; - } -#endif diff --git a/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/config.h b/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/config.h deleted file mode 100644 index 9b3ecffef1..0000000000 --- a/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/config.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright 2019 Brandon Schlack - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define RGBLIGHT_EFFECT_BREATHING // Only have Breathing Animation - -#undef RGBLIGHT_EFFECT_RAINBOW_MOOD -#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL -#undef RGBLIGHT_EFFECT_SNAKE -#undef RGBLIGHT_EFFECT_KNIGHT -#undef RGBLIGHT_EFFECT_CHRISTMAS -#undef RGBLIGHT_EFFECT_STATIC_GRADIENT -#undef RGBLIGHT_EFFECT_RGB_TEST -#undef RGBLIGHT_EFFECT_ALTERNATING -#undef RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/keymap.c b/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/keymap.c deleted file mode 100644 index a71389707d..0000000000 --- a/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/keymap.c +++ /dev/null @@ -1,80 +0,0 @@ -/* Copyright 2019 Brandon Schlack - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H -#include "brandonschlack.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Base Layer - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ - * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ Bckspc│PgU│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ - * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│| \│PgD│ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ - * │HyCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│ │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ │ - * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift│ Up│ │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ - * │Ctrl│ Opt│ Cmd│ Space │Cmd │FnPy│ │Lef│Dow│Rig│ - * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘ - */ -[_BASE] = LAYOUT_65_ansi_blocker( - KC_ESC, 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_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, - HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, XXXXXXX, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, XXXXXXX, - KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, PLY_FN1, KC_LEFT, KC_DOWN, KC_RGHT -), -/* Function Layer - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ - * │` ~│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│ Delete│VlU│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ - * │RMod │RH+│RS+│RV+│ │ │ │ │ │ │F13│F14│F15│ SlpD│VlD│ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ - * │RTgl │RH-│RS-│RV-│ │ │ │ │ │ │MNC│LHP│ │ │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ │ - * │ │LYR│Thm│ │ │RST│ │Mke│Prv│Nxt│Ply│MteSft│PgU│ │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ - * │ │ │ │ │ │ │ │Hom│PgD│End│ - * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘ - */ -[_FN1] = LAYOUT_65_ansi_blocker( - 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_DEL, KC_VOLU, - RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, KC_F13, KC_F14, KC_F15, MC_SLPD, KC_VOLD, - RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, MC_MSSN, MC_LHPD, _______, XXXXXXX, - _______, RGB_LYR, RGB_THM, _______, _______, QK_BOOT, _______, QM_MAKE, KC_MPRV, KC_MNXT, KC_MPLY, MUT_SFT, KC_PGUP, XXXXXXX, - _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END -), -/* Blank Layout - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ │ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ - * │ │ │ │ │ │ │ │ │ │ │ - * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘ -[X] = LAYOUT_65_ansi_blocker( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______ -), -*/ -}; diff --git a/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/readme.md b/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/readme.md deleted file mode 100644 index 76174061a9..0000000000 --- a/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -# brandonschlack's Think6.5 keymap - -My keymap for the Think6.5. Using the `LAYOUT_65_ansi_blocker` LAYOUT and based on my keyboard-agnostic layout, some small changes for the navigation keys not present due to the badge. - -## [Base Layer](http://www.keyboard-layout-editor.com/#/gists/b396fee9f49d6e9493876e82a8ee99ac) -![Base Layer](https://i.imgur.com/AZYVuZS.jpg) - -## [Function Layer](http://www.keyboard-layout-editor.com/#/gists/06e684133399bb63d8b72ac6982e0e68) -![Function Layer](https://i.imgur.com/GbOOxME.jpg) diff --git a/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/rules.mk b/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/rules.mk deleted file mode 100644 index 4ce80104ef..0000000000 --- a/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Build Options -MOUSEKEY_ENABLE = no # Don't need mouse keys diff --git a/keyboards/hadron/ver3/keymaps/ishtob/keymap.c b/keyboards/hadron/ver3/keymaps/ishtob/keymap.c deleted file mode 100644 index a3b522fa04..0000000000 --- a/keyboards/hadron/ver3/keymaps/ishtob/keymap.c +++ /dev/null @@ -1,241 +0,0 @@ -#include QMK_KEYBOARD_H -#include "ishtob.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Qwerty - * ,------+------+------+------+------+------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | PSCR | - * |------+------+------+------+------+------+------+------+------+------+------+------+--------------------. - * | Tab | Q | W | E | R | T | 7 | 8 | 9 | Y | U | I | O | P | Bksp | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | LCTL | A | S | D | F | G | 4 | 5 | 6 | H | J | K | L | ;/Nav|Ctl/Et| - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | 1 | 2 | 3 | N | M | , | . | / | - | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | Esc | Ctrl | GUI | Alt |Lower |Space | 0 | . | = |Space |Raise | Alt | NumL | App | Del | - * `--------------------------------------------------------------------------------------------------------' - */ -[_QWERTY] = LAYOUT_wrapper( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_PSCR, - LT_FN(KC_TAB), _________________QWERTY_L1_________________, KC_P7, KC_P8, KC_P9, _________________QWERTY_R1_________________, KC_BSPC, - KC_CAPS, _________________QWERTY_L2_________________, KC_P4, KC_P5, KC_P6, _________________QWERTY_R2_________________, CTL_ENT, - KC_LSFT, _________________QWERTY_L3_________________, KC_P1, KC_P2, KC_P3, _________________QWERTY_R3_________________, LT_RAI(KC_MINS), - KC_ESC, KC_LCTL, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_P0, KC_DOT, KC_EQL, KC_SPC, RAISE, KC_RALT, KC_RGUI, KC_APP, KC_DEL -), - -/* Colemak - * ,------+------+------+------+------+------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | PSCR | - * |------+------+------+------+------+------+------+------+------+------+------+------+--------------------. - * | Tab | Q | W | F | P | G | 7 | 8 | 9 | J | L | U | Y | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------+------+------+------| - * | CAPS | A | R | S | T | D | 4 | 5 | 6 | H | N | E | I | O |Ctl/Et| - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | 1 | 2 | 3 | K | M | , | . | / | - | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | Esc | Ctrl | GUI | Alt |Lower |Space | 0 | . | = |Space |Raise | Alt | NumL | App | Del | - * `--------------------------------------------------------------------------------------------------------' - */ -[_COLEMAK] = LAYOUT_wrapper( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_PSCR, - LT_FN(KC_TAB), _________________COLEMAK_L1________________, KC_P7, KC_P8, KC_P9, _________________COLEMAK_R1________________, KC_BSPC, - KC_LCTL, _________________COLEMAK_L2________________, KC_P4, KC_P5, KC_P6, _________________COLEMAK_R2________________, CTL_ENT, - KC_LSFT, _________________COLEMAK_L3________________, KC_P1, KC_P2, KC_P3, _________________COLEMAK_R3________________, LT_RAI(KC_MINS), - KC_ESC, KC_CAPS, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_P0, KC_DOT, KC_EQL, KC_SPC, RAISE, KC_RALT, KC_RGUI, KC_APP, KC_DEL - ), - -/* Dvorak - * ,------+------+------+------+------+------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | PSCR | - * |------+------+------+------+------+------+------+------+------+------+------+------+--------------------. - * | Tab | " | , | . | P | Y | 7 | 8 | 9 | F | G | C | R | L | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------+------+------+------| - * | Esc | A | O | E | U | I | 4 | 5 | 6 | D | H | T | N | S | / | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | Shift| ; | Q | J | K | X | 1 | 2 | 3 | B | M | W | V | Z |Ctl/Et| - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | Esc | Ctrl | GUI | Alt |Lower |Space | 0 | . | = |Space |Raise | Alt | NumL | App | Del | - * `--------------------------------------------------------------------------------------------------------' - */ -[_DVORAK] = LAYOUT_wrapper( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_PSCR, - LT_FN(KC_TAB), _________________DVORAK_L1_________________, KC_P7, KC_P8, KC_P9, _________________DVORAK_R1_________________, KC_BSPC, - KC_LCTL, _________________DVORAK_L2_________________, KC_P4, KC_P5, KC_P6, _________________DVORAK_R2_________________, CTL_ENT, - KC_LSFT, _________________DVORAK_L3_________________, KC_P1, KC_P2, KC_P3, _________________DVORAK_R3_________________, LT_RAI(KC_MINS), - KC_ESC, KC_CAPS, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_P0, KC_DOT, KC_EQL, KC_SPC, RAISE, KC_RALT, KC_RGUI, KC_APP, KC_DEL -), - -/* Lower - * ,------+------+------+------+------+------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+------+------+------+------+------+------+------+--------------------. - * | ~ | ! | @ | # | $ | % | | | | ^ | & | * | ( | ) | Del | - * |------+------+------+------+------+-------------+------+------+------+------+------+------+------+------| - * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | _ | + | { | } | | | - * |------+------+------+------+------+------|------+------+------+------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | | | | F12 |ISO ~ |ISO | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | Next | Vol- | Vol+ | Play | - * `--------------------------------------------------------------------------------------------------------' - */ -[_LOWER] = LAYOUT_wrapper( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_UNDS, KC_EQL, KC_LBRC, KC_RBRC, KC_PIPE, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, _______, KC_F12,S(KC_NUHS),S(KC_NUBS),_______,_______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY -), - -/* Raise - * ,------+------+------+------+------+------------------------------------------------. - * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | - * |------+------+------+------+------+------+------+------+------+------+------+------+--------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | Del | - * |------+------+------+------+------+-------------+------+------+------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | | | | F6 | - | = | [ | ] | \ | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | | | | F12 |ISO # |ISO / | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | Next | Vol- | Vol+ | Play | - * `--------------------------------------------------------------------------------------------------------' - */ -[_RAISE] = LAYOUT_wrapper( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - ________________NUMBER_LEFT________________, KC_6, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, KC_PLUS, KC_BSLS, - KC_DEL, KC_A, KC_UP, KC_D, KC_PSCR, KC_VOLU, _______, _______, _______, KC_4, KC_5, KC_6, KC_PAST, KC_COLN, KC_QUOT, - _______, KC_LEFT, KC_DOWN, KC_RIGHT,KC_MUTE, KC_VOLD, _______, _______, _______, KC_1, KC_2, KC_3, KC_UP, KC_SLSH, _______, - _______, _______, _______, _______, _______, KC_SPC, _______, _______, KC_SPC, KC_0, _______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NUM -), - -/* FN layer on Esc key - * ,------+------+------+------+------+------------------------------------------------. - * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | - * |------+------+------+------+------+------+------+------+------+------+------+------+--------------------. - * | | ! | @ | # | $ | % | | | | ^ | & | * | ( | ) | + | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | _ | = | [ | ] | ' | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | | | | F12 |ISO ~ |ISO | | { | } |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | Next | Vol- | Vol+ | Play | - * '------+------+------+------+------+------+------+------+------+------+------+------+--------------------' - */ -[_FNLAYER] = LAYOUT_wrapper( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS, - _______, __________________LONG_FUNC_LEFT___________________, _______, _______, _______, KC_UNDS, KC_EQL, KC_LBRC, KC_RBRC, KC_QUOT, - _______, __________________LONG_FUNC_RIGHT__________________, _______, _______, _______,S(KC_NUHS),S(KC_NUBS),KC_LCBR, KC_RCBR, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY -), - -/* Mouse Layer (semi-col) - * ,------+------+------+------+------+------------------------------------------------. - * | ACCL0| ACCL1| ACCL2| | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------+--------------------. - * | | | | | | | | | Home | Wh_Up| WHL_L| M_Up | WHL_R| Macro| | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | End | Wh_Dn| M_Lft| M_Dn | M_Rt | | | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | BTN2 | BTN3 | BTN4 | BTN5 | | | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | BTN1 | | | | BTN1 | | | | | | - * `--------------------------------------------------------------------------------------------------------' - */ - -[_MOUSECURSOR] = LAYOUT_wrapper( - KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, M_EMAIL,M_EMAIL2, _______, _______, _______, KC_HOME, KC_PGUP, KC_WH_L, KC_MS_U, KC_WH_R, P_MPASS, P_META, - _______, _______, _______, _______, O_RTQ6H, _______, _______, _______, KC_END , KC_PGDN, KC_MS_L, KC_MS_D, KC_MS_R, _______, O_DAYRN, - _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN2, KC_BTN3, KC_BTN4, KC_BTN5, _______, _______, - _______, _______, _______, _______, _______, KC_BTN1, _______, _______, _______, KC_BTN1, _______, _______, _______, P_CITRIX, O_AUTODC -), - -/* Adjust (Lower + Raise) - * ,------+------+------+------+------+------------------------------------------------. - * | Reset|HPT TG|HPT FB|HPT M+|HPT M-|HPT RS| | | | | |EEP RS| - * |------+------+------+------+------+------+------+------+------+------+------+------+--------------------. - * | |RGB TG|RGB ST|RGBH -|RGBH +|RGBS -|RGBS +|RGBV -|RGBV +| | | | | | Del | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | |Aud on|Audoff|AGnorm| | | |AGswap|Qwerty|Colemk| | | | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff| | | | | | |BL - | BL + |BL ST |BL TG | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | |CK RS |CK - |CK + |CK TG | - * `--------------------------------------------------------------------------------------------------------' - */ -[_ADJUST] = LAYOUT_wrapper( - _______, HF_TOGG, HF_FDBK, HF_NEXT, HF_PREV, HF_RST, _______, _______, _______, _______, _______, EE_CLR, - QK_BOOT, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, KC_DEL, - _______, MAGIC_TOGGLE_NKRO, _______, AU_ON, AU_OFF, AG_NORM, _______, _______, _______, AG_SWAP, QWERTY, COLEMAK, _______, _______, _______, - _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, BL_DOWN, BL_UP, BL_STEP, BL_TOGG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CK_RST, CK_DOWN, CK_UP, CK_TOGG -) - - - -}; - -layer_state_t layer_state_set_user(layer_state_t state) { - return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); -} - - -bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; - case LOWER: - if (record->event.pressed) { - //not sure how to have keyboard check mode and set it to a variable, so my work around - //uses another variable that would be set to true after the first time a reactive key is pressed. - layer_on(_LOWER); - } else { - layer_off(_LOWER); - } - return false; - break; - case RAISE: - if (record->event.pressed) { - //not sure how to have keyboard check mode and set it to a variable, so my work around - //uses another variable that would be set to true after the first time a reactive key is pressed. - layer_on(_RAISE); - } else { - layer_off(_RAISE); - } - return false; - break; - case BACKLIT: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - return false; - break; - } - return true; -} - -bool music_mask_user(uint16_t keycode) { - switch (keycode) { - case RAISE: - case LOWER: - return false; - default: - return true; - } -} diff --git a/keyboards/hadron/ver3/keymaps/ishtob/readme.md b/keyboards/hadron/ver3/keymaps/ishtob/readme.md deleted file mode 100644 index 88b958ec42..0000000000 --- a/keyboards/hadron/ver3/keymaps/ishtob/readme.md +++ /dev/null @@ -1,2 +0,0 @@ -# The Default Hadron Layout - diff --git a/keyboards/hadron/ver3/keymaps/xulkal/config.h b/keyboards/hadron/ver3/keymaps/xulkal/config.h deleted file mode 100644 index 6f70f09bee..0000000000 --- a/keyboards/hadron/ver3/keymaps/xulkal/config.h +++ /dev/null @@ -1 +0,0 @@ -#pragma once diff --git a/keyboards/hadron/ver3/keymaps/xulkal/keymap.c b/keyboards/hadron/ver3/keymaps/xulkal/keymap.c deleted file mode 100644 index 4ae1d07170..0000000000 --- a/keyboards/hadron/ver3/keymaps/xulkal/keymap.c +++ /dev/null @@ -1,73 +0,0 @@ -#include QMK_KEYBOARD_H -#include "xulkal.h" - -#define EXPAND_LAYOUT(...) LAYOUT(__VA_ARGS__) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Qwerty Layout - * ,-----------------------------------------------------------------------------------. - * | GESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | BkSp | - * |------+------+------+------+------+------|------+------+------+------+------+------+--------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | \ | 7 | 8 | 9 | - * |------+------+------+------+------+------|------+------+------+------+------+------+------+------+------| - * |FN(CAPS)| A | S | D | F | G | H | J | K | L | ; | Enter| 4 | 5 | 6 | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | Sft[ | Z | X | C | V | B | N | M | , | . | / | Sft] | 1 | 2 | 3 | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctl- | Win | LOWER| RAISE| Alt | Space| Space| Left | Up | Down | Right| Ctl= | 0 | . | = | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------' - */ - [_QWERTY] = EXPAND_LAYOUT( - _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, - _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_P7, KC_P8, KC_P9, - _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_P4, KC_P5, KC_P6, - _________________QWERTY_L4_________________, _________________QWERTY_R4_________________, KC_P1, KC_P2, KC_P3, - _________________QWERTY_L5_________________, _________________QWERTY_R5_________________, KC_P0, KC_DOT, KC_EQL - ), - -#ifndef GAMELAYER_DISABLE - [_GAME] = EXPAND_LAYOUT( - ___________________GAME_L1_________________, ___________________GAME_R1_________________, - ___________________GAME_L2_________________, ___________________GAME_R2_________________, _______, _______, _______, - ___________________GAME_L3_________________, ___________________GAME_R3_________________, _______, _______, _______, - ___________________GAME_L4_________________, ___________________GAME_R4_________________, _______, _______, _______, - ___________________GAME_L5_________________, ___________________GAME_R5_________________, _______, _______, _______ - ), -#endif - - [_LOWER] = EXPAND_LAYOUT( - __________________LOWER_L1_________________, __________________LOWER_R1_________________, - __________________LOWER_L2_________________, __________________LOWER_R2_________________, _______, _______, _______, - __________________LOWER_L3_________________, __________________LOWER_R3_________________, _______, _______, _______, - __________________LOWER_L4_________________, __________________LOWER_R4_________________, _______, _______, _______, - __________________LOWER_L5_________________, __________________LOWER_R5_________________, _______, _______, _______ - ), - - [_RAISE] = EXPAND_LAYOUT( - __________________RAISE_L1_________________, __________________RAISE_R1_________________, - __________________RAISE_L2_________________, __________________RAISE_R2_________________, _______, _______, _______, - __________________RAISE_L3_________________, __________________RAISE_R3_________________, _______, _______, _______, - __________________RAISE_L4_________________, __________________RAISE_R4_________________, _______, _______, _______, - __________________RAISE_L5_________________, __________________RAISE_R5_________________, _______, _______, _______ - ), - -#ifdef TRILAYER_ENABLED - [_ADJUST] = EXPAND_LAYOUT( - _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, - _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, _______, _______, _______, - _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, _______, _______, _______, - _________________ADJUST_L4_________________, _________________ADJUST_R4_________________, _______, _______, _______, - _________________ADJUST_L5_________________, _________________ADJUST_R5_________________, _______, _______, _______ - ), -#endif -}; - -bool music_mask_user(uint16_t keycode) { - switch (keycode) { - case RAISE: - case LOWER: - return false; - default: - return true; - } -} diff --git a/keyboards/hadron/ver3/keymaps/xulkal/rules.mk b/keyboards/hadron/ver3/keymaps/xulkal/rules.mk deleted file mode 100644 index 0305226b32..0000000000 --- a/keyboards/hadron/ver3/keymaps/xulkal/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -# Overridden build options - -COMMAND_ENABLE = no -ENCODER_ENABLER = no diff --git a/keyboards/handwired/atreus50/keymaps/ajp10304/config.h b/keyboards/handwired/atreus50/keymaps/ajp10304/config.h deleted file mode 100644 index 4f15c56269..0000000000 --- a/keyboards/handwired/atreus50/keymaps/ajp10304/config.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright 2021 Alan Pocklington - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include "../../config.h" - -#undef MATRIX_ROW_PINS -#undef MATRIX_COL_PINS - -#define MATRIX_ROW_PINS { D4, D5, C7, C6 } -#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, D7, D1, B7, D0, B3, B2, B1, B0 } - -#endif diff --git a/keyboards/handwired/atreus50/keymaps/ajp10304/keymap.c b/keyboards/handwired/atreus50/keymaps/ajp10304/keymap.c deleted file mode 100644 index d807df047d..0000000000 --- a/keyboards/handwired/atreus50/keymaps/ajp10304/keymap.c +++ /dev/null @@ -1,222 +0,0 @@ -/* Copyright 2021 Alan Pocklington - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H -#include "keymap_uk.h" -#include "ajp10304.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Qwerty - * ,-----------------------------------------| |-----------------------------------------. - * | Esc | Q | W | E | R | T | | Y | U | I | O | P | Bksp | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Tab | A | S | D | F | G | | H | J | K | L | ;: | Enter| - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Shft | Z | X | C | V | B | | N | M | ,< | .> | /? | Shft | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | Fn | Ctrl | Alt | GUI |Lower | Bksp | Ctrl | Alt |Space |Raise | Shift| MENU | Ctrl | Fn2 | - * `-------------------------------------------------------------------------------------------------' - */ -[_QWERTY] = LAYOUT( - LT(_NUMPAD, KC_ESC), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC , - MT(MOD_LSFT, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MT(MOD_RSFT, KC_ENT) , - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT , - MO(_FUNC), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, RAISE, KC_LSFT, KC_BTN2, KC_RCTL, MO(_FUNC2) -), - -/* Colemak-DHm - * ,-----------------------------------------| |-----------------------------------------. - * | Esc | Q | W | F | P | B | | J | L | U | Y | ;: | Bksp | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Tab | A | R | S | T | G | | M | N | E | I | O | Enter| - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Shft | Z | X | C | D | V | | K | H | ,< | .> | /? | Shft | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | Fn | Ctrl | Alt | GUI |Lower | Bksp | Ctrl | Alt |Space |Raise | Shift| MENU | Ctrl | Fn2 | - * `-------------------------------------------------------------------------------------------------' - */ -[_QWERTY] = LAYOUT( - LT(_NUMPAD, KC_ESC), KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC , - MT(MOD_LSFT, KC_TAB), KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, MT(MOD_RSFT, KC_ENT) , - KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT , - MO(_FUNC), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, RAISE, KC_LSFT, KC_BTN2, KC_RCTL, MO(_FUNC2) -), - -/* Function - * ,------------------------------------------ |-----------------------------------------. - * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | - * |------+------+------+------+------+------- |------+------+------+------+------+------| - * | 1! | 2" | 3£ | 4$ | 5% | 6^ | | 7& | 8* | 9( | 0) | ~ |INSERT| - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Shift| \| | `¬ | #~ | * | -_ | | =+ | \| | [{ | ]} | '@ |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | Fn | Ctrl | Alt | GUI |Lower | Bksp | Ctrl | Alt |Space |Mouse | MENU | Alt | Ctrl | Fn | - * `-------------------------------------------------------------------------------------------------' - */ -[_FUNC] = LAYOUT( - 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT , - KC_LSFT, KC_NUBS, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL, KC_BSLS, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) , - _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(_MOUSE), _______, _______, _______, _______ -), - -/* Lower - * ,------------------------------------------ |-----------------------------------------. - * | 1! | 2" | 3£ | 4$ | 5% | 6^ | | 7& | 8* | 9( | 0) | DEL | Bksp | - * |------+------+------+------+------+------- |------+------+------+------+------+------| - * | ! | " | £ | $ | % | ^ | | & | * | ( | ) |WrdDel|WrdBks| - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Shift| \| | `¬ | #~ | '@ | -_ | | =+ | #~ | [{ | ]} | '@ |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | |Lower | Del | Ctrl | Alt |Space | | Next | Vol- | Vol+ | Play | - * `-------------------------------------------------------------------------------------------------' - */ -[_LOWER] = LAYOUT( - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_BSPC , - LSFT(KC_1), LSFT(KC_2), LSFT(KC_3), LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LSFT(KC_0), LCTL(KC_DEL), LCTL(KC_BSPC) , - SC_LSPO, KC_NUBS, KC_GRAVE, KC_NONUS_HASH, KC_QUOT, KC_MINS, KC_EQL, KC_NONUS_HASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) , - _______, _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY -), - -/* Raise - * ,------------------------------------------ |-----------------------------------------. - * | ` | |WRDSEL| [ | ] | | | | PGUP | HOME |PGDOWN| |PRNTSC| - * |------+------+------+------+------+------- |------+------+------+------+------+------| - * | ` | | | ( | ) | | | | HOME | UP | END | |ZOOM +| - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | | | { | } | | | |< | LEFT | DOWN |RIGHT | >| |ZOOM -| - * |------+------+------+------+------+------|------+------+------+------+------+------+------+------| - * | Mouse| | | | | Alt | Ctrl | Alt |Enter |Raise | | | | | - * `-------------------------------------------------------------------------------------------------' - */ -[_RAISE] = LAYOUT( - KC_GRV, XXXXXXX, M_WORD_SEL, KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDN, XXXXXXX, KC_PSCR , - KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) , - _______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) , - MO(_MOUSE), _______, _______, _______, _______, KC_LALT, _______, _______, KC_ENT, _______, XXXXXXX, _______, _______, _______ -), - -/* Adjust (Lower + Raise) - * ,------------------------------------------ |------------------------------------------. - * | ???? | Reset|Qwerty| | | REC1 | | REC2 | | | | | Del | - * |------+------+------+------+------+------- |------+------+------+------+------+-------| - * | CAPS | | | | | PLAY1| | PLAY2| Mute | Vol+ | Play | |Qwerty | - * |------+------+------+------+------+------| |------+------+------+------+------+-------| - * | PC/MC| | | | | STOP | | STOP | Prev | Vol- | Next | |Colemak| - * |------+------+------+------+------+------+------+------+------+------+------+------+------+-------| - * | | | | | | | | | | | | | | | - * `--------------------------------------------------------------------------------------------------' - */ -[_ADJUST] = LAYOUT( - M_CUSTOM, QK_BOOT, QWERTY, _______, _______, DM_REC1, DM_REC2, _______, _______, _______, _______, KC_DEL , - KC_CAPS, _______, _______, _______, _______, DM_PLY1, DM_PLY2, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, QWERTY , - TG(_MAC), _______, _______, _______, _______, DM_RSTP, DM_RSTP, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, COLEMAK , - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), - -/* Mouse - * ,------------------------------------------ |-----------------------------------------. - * | ESC | | | | | | | WH_L | WH_UP| BTN3 | WH_D | WH_R | | - * |------+------+------+------+------+------- |------+------+------+------+------+------| - * | ACC0 | ACC1 | ACC2 | | | | | | BTN1 | UP | BTN2 | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ACC0 | ACC1 | ACC2 | | | | | | LEFT | DOWN |RIGHT | | | - * |------+------+------+------+------+------|------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | | | - * `-------------------------------------------------------------------------------------------------' - */ -[_MOUSE] = LAYOUT( - KC_ESC , _______, _______, _______, _______, _______, KC_MS_WH_LEFT, KC_MS_WH_UP, KC_MS_BTN3, KC_MS_WH_DOWN, KC_MS_WH_RIGHT, _______ , - KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _______, _______ , - KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______ , - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), - - -/* Num Pad - * ,------------------------------------------ |-----------------------------------------. - * | ESC | | | | | | |NMLOCK| 7 | 8 | 9 | / | | - * |------+------+------+------+------+------- |------+------+------+------+------+------| - * | | | | | | | | | 4 | 5 | 6 | * | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | | | | | | | | 1 | 2 | 3 | + | | - * |------+------+------+------+------+------|------+------+------+------+------+------+------+------| - * | | | | | | | | | | 0 | . | , | - | | - * `-------------------------------------------------------------------------------------------------' - */ -[_NUMPAD] = LAYOUT( - _______, _______, _______, _______, _______, _______, KC_NUM, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_SLASH, _______, - _______, _______, _______, _______, _______, _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_ASTERISK, _______, - _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_PLUS, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_0, KC_KP_DOT, KC_COMM, KC_KP_MINUS, _______ -), - - -/* Function 2 (Right hand side) - * ,------------------------------------------ |-----------------------------------------. - * | | |WRDSEL| | | | | LNDEL| | | | | | - * |------+------+------+------+------+------- |------+------+------+------+------+------| - * | | | LNSEL| DUP | | | | | |LNJOIN| | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | UNDO | CUT | COPY | PASTE| | | | | | | | MODE | - * |------+------+------+------+------+------|------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | | | - * `-------------------------------------------------------------------------------------------------' - */ -[_FUNC2] = LAYOUT( - _______, _______, M_WORD_SEL, _______, _______, _______, M_LINE_DEL, _______, _______, _______, _______, _______, - _______, _______, M_LINE_SEL, M_DUP, _______, _______, _______, M_JOIN, _______, _______, _______, _______, - _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______, _______, _______, _______, _______, M_MODE, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), - -[_MAC] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - MFNC, _______, _______, _______, MLWR, _______, _______, _______, _______, MRSE, _______, _______, _______, MFNC2 -), - -[_MLWR] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), - -[_MRSE] = LAYOUT( - _______, _______, M_WORD_SEL_MAC, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - _______, _______, _______, _______, _______, _______, _______, LCTL(KC_A), _______, LCTL(KC_E), _______, LGUI(KC_EQL) , - _______, _______, _______, _______, _______, _______, LALT(KC_LEFT), _______, _______, _______, LALT(KC_RIGHT), LGUI(KC_MINS) , - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), - -[_MFNC] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT) , - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), - -[_MFNC2] = LAYOUT( - _______, _______, M_WORD_SEL_MAC, _______, _______, _______, M_LINE_DEL_MAC, _______, _______, _______, _______, _______, - _______, _______, M_LINE_SEL_MAC, M_DUP_MAC, _______, _______, _______, M_JOIN_MAC, _______, _______, _______, _______, - _______, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), _______, _______, _______, _______, _______, _______, M_MODE_MAC, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -) - -}; diff --git a/keyboards/handwired/atreus50/keymaps/ajp10304/readme.md b/keyboards/handwired/atreus50/keymaps/ajp10304/readme.md deleted file mode 100644 index 6ba052065d..0000000000 --- a/keyboards/handwired/atreus50/keymaps/ajp10304/readme.md +++ /dev/null @@ -1,130 +0,0 @@ -# AJP10304 Custom Atreus50 Layout -# Also available for the Planck, Shark, Quark and JJ40 - -**Note:** In the tables below where there are two characters on a key, -the second is the output when shift is applied. - -**Note:** The below tables assume a UK layout. - -#### Flashing -Refer to the README.md of the keyboard you want to flash. - -##### Main Qwerty Layer - -* Tab: when held, operates as shift. -* Enter: when held, operates as shift. -* MENU: perform right-click - -| | | | | | | | | | | | | | | -| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:| -| Esc | Q | W | E | R | T | | | Y | U | I | O | P | Bksp | -| Tab | A | S | D | F | G | | | H | J | K | L | ;: | Enter| -| Shft | Z | X | C | V | B | | | N | M | ,< | .> | /? | Shft | -| Fn | Ctrl | Alt | GUI |Lower | Bksp | Ctrl | Alt |Space |Raise | Shift| MENU | Ctrl | Fn2 | - -##### Main Colemak-DHm Layer - -| | | | | | | | | | | | | | | -| ---- |:----:| :---:|:---:|:-----:|:----:| :---:| :---:|:-----:|:-----:|:-----:|:----:|:----:| ----:| -| Esc | Q | W | F | P | B | | | J | L | U | Y | ;: | Bksp | -| Tab | A | R | S | T | G | | | M | N | E | I | O | Enter| -| Shft | Z | X | C | D | V | | | K | H | ,< | .> | /? | Shft | -| Fn | Ctrl | Alt | GUI | Lower | Bksp | Ctrl | Alt | Space | Raise | Shift | MENU | Ctrl | Fn2 | - - -##### Function Layer -Activated when `fn` held in the above `qwerty` layer. - -| | | | | | | | | | | | | | | -| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| -| F1 | F2 | F3 | F4 | F5 | F6 | | | F7 | F8 | F9 | F10 | F11 | F12 | -| 1! | 2" | 3£ | 4$ | 5% | 6^ | | | 7& | 8* | 9( | 0) | ~ |INSERT| -| Shift | \| | `¬ | #~ | * | -_ | | | =+ | \| | [{ | ]} | '@ |Shift | -| Fn | Ctrl | Alt | GUI |Lower | Bksp | Ctrl | Alt |Space |Mouse | MENU | Alt | Ctrl | Fn2 | - -##### Lower Layer -Activated when `Lower` is held in the above `qwerty` layer. - -* Numbers are along the top row, their shifted counterparts are on row 2. -* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word. -* WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word. - -| | | | | | | | | | | | | | | -| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| -| 1! | 2" | 3£ | 4$ | 5% | 6^ | | | 7& | 8* | 9( | 0) | DEL | Bksp | -| ! | " | £ | $ | % | ^ | | | & | * | ( | ) |WrdDel|WrdBks| -| Shift | \| | `¬ | #~ | '@ | -_ | | | =+ | #~ | [{ | ]} | '@ |Shift | -| | | | |Lower | Del | Ctrl | Alt |Space | | Next | Vol- | Vol+ | Play | - -##### Raise Layer -Activated when `Raise` is held in the above `qwerty` layer. - -* Preferred layer for typing brackets. -* Allows for cursor navigation to be used solely with the right hand. -* WRDSEL: Select the word where the cursor is. -* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping. - -| | | | | | | | | | | | | | | -| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:| -| ` | |WRDSEL| [ | ] | | | | | PGUP | HOME |PGDOWN| |PRNTSC| -| ` | | | ( | ) | | | | | HOME | UP | END | |ZOOM +| -| | | | { | } | | | ||<| LEFT | DOWN |RIGHT |>||ZOOM -| -| Mouse | | | | | Alt | Ctrl | Alt | Enter |Raise | | | | | - -##### Lower + Raise -Activated when `Lower` and `Raise` are held together in the above `qwerty` layer. - -* Audio controls in the same position as cursor keys from the `Raise` layer. -* ????: Runs a macro for outputting a text string. Do not use this store passwords. -* Reset: Enter bootloader for flashing firmware to the keyboard. -* CAPS: Toggle caps lock. -* Macro functions: Allows recording of macros. To start recording the macro, press either REC1 or REC2. -To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2. -* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER, -MRSE with RAISE, MFNC with FUNC and MFNC2 with FUNC2 respectively. - -| | | | | | | | | | | | | | | -| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|:-------:| -| ???? | Reset|Qwerty| | | REC1 | | | REC2 | | | | | Del | -| CAPS | | | | | PLAY1| | |PLAY2 | Mute | Vol+ | Play | | Qwerty | -| MAC | | | | | STOP1| | |STOP2 | Prev | Vol- | Next | | Colemak | -| | | | | | | Ctrl | Alt | | | DYN | | | | - -##### Function 2 Layer -Activated when `fn` held in the above `qwerty` layer. -* WRDSEL: Select the word where the cursor is. -* LNDEL: Delete the line where the cursor is. -* LNSEL: Select the line where the cursor is. -* DUP: Duplicate the selected text. -* LNJOIN: Join the line where the cursor is with the following line. -* MODE: Print either `PC` or `OSX` depending on what layer mode is active. - -| | | | | | | | | | | | | | | -| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| -| | |WRDSEL| | | | | | LNDEL| | | | | | -| | | LNSEL| DUP | | | | | | |LNJOIN| | | | -| | UNDO | CUT | COPY | PASTE| | | | | | | | | MODE | -| | | | | | | Ctrl | Alt | | | | | | | - -##### Mouse Layer -Activated when `fn` and `raise` held together. - -| | | | | | | | | | | | | | | -| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| -| ESC | | | | | | | | W_L | W_UP | BTN3 | W_DWN| W_R | | -| ACC0 | ACC1 | ACC2 | | | | | | | BTN1 | UP | BTN2 | | | -| ACC0 | ACC1 | ACC2 | | | | | | | LEFT | DOWN | RIGHT| | | -| | | | | | | Ctrl | Alt | | | | | | | - -##### Number Pad Layout -Activated when holding `Esc` key. - -| | | | | | | | | | | | | | | -| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| -| | | | | | | | |NMLOCK| 7 | 8 | 9 | / | | -| | | | | | | | | | 4 | 5 | 6 | * | | -| | | | | | | | | | 1 | 2 | 3 | + | | -| | | | | | | Ctrl | Alt | | 0 | . | , | - | | - - - diff --git a/keyboards/handwired/atreus50/keymaps/ajp10304/rules.mk b/keyboards/handwired/atreus50/keymaps/ajp10304/rules.mk deleted file mode 100644 index 900dbaed11..0000000000 --- a/keyboards/handwired/atreus50/keymaps/ajp10304/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -AUDIO_ENABLE = no -MOUSEKEY_ENABLE = yes -BOOTLOADER = halfkay diff --git a/keyboards/handwired/brain/keymaps/klackygears/config.h b/keyboards/handwired/brain/keymaps/klackygears/config.h deleted file mode 100644 index b572858448..0000000000 --- a/keyboards/handwired/brain/keymaps/klackygears/config.h +++ /dev/null @@ -1,40 +0,0 @@ -/* -Copyright 2020 James Smith - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define PERMISSIVE_HOLD -#define TAPPING_TERM 150 - -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#undef RGBLIGHT_RAINBOW_SWIRL_RANGE -#define RGBLIGHT_RAINBOW_SWIRL_RANGE 75 -#define RGBLIGHT_EFFECT_SNAKE -#undef RGBLIGHT_EFFECT_SNAKE_LENGTH -#define RGBLIGHT_EFFECT_SNAKE_LENGTH 20 -#define RGBLIGHT_EFFECT_KNIGHT -#undef RGBLIGHT_EFFECT_KNIGHT_LENGTH -#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 20 - -// #define RGBLIGHT_EFFECT_CHRISTMAS -// #define RGBLIGHT_EFFECT_STATIC_GRADIENT -// #define RGBLIGHT_EFFECT_RGB_TEST -// #define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLIGHT_EFFECT_TWINKLE_PROBABILITY 1 / 127 diff --git a/keyboards/handwired/brain/keymaps/klackygears/keymap.c b/keyboards/handwired/brain/keymaps/klackygears/keymap.c deleted file mode 100644 index 07185446db..0000000000 --- a/keyboards/handwired/brain/keymaps/klackygears/keymap.c +++ /dev/null @@ -1,99 +0,0 @@ -#include QMK_KEYBOARD_H -#include "klackygears.h" - -//For an explanation of what's going on here with the keymap wrappers, check out drashna's user folder. - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_WINBASE] = LAYOUT_wrapper( - _______________DVORAK_L1___________________, KC_ESC, KC_GAMER, _______________DVORAK_R1___________________, - RGB_TOG, _______________DVORAK_L2___________________, _______, KC_GAMR1, _______________DVORAK_R2___________________, RGB_TOG, - RGB_MOD, _______________WINDVK_L3___________________, _______, KC_GAMR2, _______________WINDVK_R3___________________, RGB_MOD, - _______, _______, __________________WIN_THUMB_CLUSTER_V2______________ , _______, _______, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO - ), - - [_MACBASE] = LAYOUT_wrapper( - _______________DVORAK_L1___________________, KC_ESC, _______, _______________DVORAK_R1___________________, - RGB_TOG, _______________DVORAK_L2___________________, _______, _______, _______________DVORAK_R2___________________, RGB_TOG, - RGB_MOD, _______________MACDVK_L3___________________, _______, _______, _______________MACDVK_R3___________________, RGB_MOD, - _______, _______, __________________MAC_THUMB_CLUSTER_V2______________ , _______, _______, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO - ), - - - [_QWERTY] = LAYOUT_wrapper( - _________________QWERTY_L1_________________, KC_ESC, _______, _________________QWERTY_R1_________________, - KC_CAPS, _________________QWERTY_L2_________________, _______, _______, _________________QWERTY_R2_________________, KC_ENT, - KC_LSFT, _________________QWERTY_L3_________________, _______, _______, _________________QWERTY_R3_________________, KC_RSFT, - KC_LCTL, KC_LALT, KC_LGUI, MO(_MNMB), MO(_SYMB), MO(_SYMB), MO(_MNMB), KC_RGUI, MO(_MDIA), MO(_FUNC), - KC_LSFT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RSFT - ), - //Jedi - Fallen Order - [_GAMER] = LAYOUT_wrapper( - KC_R, KC_Q, KC_W, KC_E, KC_1, KC_ESC, KC_WINBASE, _________________RGB_1_____________________, - KC_TAB, KC_F, KC_A, KC_S, KC_D, KC_2, LSFT(KC_F2), KC_GAMR1, _________________RGB_2_____________________, RGB_TOG, - KC_TAB, KC_TAB, KC_X, KC_Z, KC_C, KC_3, KC_M, KC_GAMR2, _________________MEDIA_____________________, RGB_MOD, - KC_LCTL, KC_LALT, KC_LCTL, KC_LSFT, KC_SPC, _______, KC_UP, _______, _______, _______, - KC_NO, KC_LSFT, KC_LSFT, KC_LEFT, KC_DOWN, KC_RIGHT - ), - //Borderlands - [_GAMR1] = LAYOUT_wrapper( - KC_R, KC_G, KC_W, KC_E, KC_1, KC_ESC, KC_WINBASE, _________________RGB_1_____________________, - KC_TAB, KC_V, KC_A, KC_S, KC_D, KC_2, KC_L, KC_GAMR1, _________________RGB_2_____________________, RGB_TOG, - KC_T, KC_I, KC_F, KC_Q, KC_4, KC_3, KC_M, KC_GAMR2, _________________MEDIA_____________________, RGB_MOD, - KC_X, KC_K, KC_C, KC_LSFT, KC_SPC, _______, KC_UP, _______, _______, _______, - KC_Z, KC_LSFT, KC_LSFT, KC_LEFT, KC_DOWN, KC_RIGHT - ), - //Witcher - [_GAMR2] = LAYOUT_wrapper( - KC_R, KC_Q, KC_W, KC_E, KC_1, KC_ESC, KC_WINBASE, _________________RGB_1_____________________, - KC_TAB, KC_LALT, KC_A, KC_S, KC_D, KC_2, KC_J, KC_GAMR1, _________________RGB_2_____________________, RGB_TOG, - KC_X, KC_I, KC_F, KC_C, KC_V, KC_3, KC_M, KC_GAMR2, _________________MEDIA_____________________, RGB_MOD, - KC_LCTL, KC_V, KC_HOME, KC_LSFT, KC_SPC, _______, KC_UP, _______, _______, _______, - KC_ENT, KC_LCTL, KC_LSFT, KC_LEFT, KC_DOWN, KC_RIGHT - ), - - [_SYMB] = LAYOUT_wrapper( - _________________PUNC_L1_ALT_______________, _______, _______, _________________PUNC_R1___________________, - _______, _________________PUNC_L3___________________, _______, _______, _________________PUNC_R2___________________, _______, - RGB_MOD, _________________PUNC_L3_ALT_______________, _______, _______, _________________PUNC_R3___________________, _______, - _______, _______, _______, _______, KC_DEL, KC_CAPS, _______, _______, _______, _______, - _______, _______, KC_DEL, KC_CAPS, _______, _______ - ), - - [_FUNC] = LAYOUT_wrapper( - _____________FUNC_L1_______________________, _______, _______, _______, _____________FUNC_1_______________, - _______, ________MAC_MISSION_CTRL__________, LGUI(KC_L), _______, _______, _______, _____________FUNC_2_______________, _______, - RGB_MOD, _____________FUNC_L3_______________________, _______, _______, _______, _____________FUNC_3_______________, _______, - _______, _______, _______, _______, _______, KC_CAPS, _______, _______, _______, _______, - _______, _______, _______, KC_CAPS, _______, _______ - ), - - [_MNMB] = LAYOUT_wrapper( - _________________MACNAV_L1_________________, _______, _______, _________________NUMB_R1___________________, - _______, _________________MACNAV_L2_________________, _______, _______, _________________NUMB_R2___________________, _______, - RGB_MOD, _________________MACNAV_L3_________________, _______, _______, _________________NUMB_R3_MAC_______________, _______, - _______, _______, _______, _______, _______, _______, RSFT_T(KC_ENT), KC_RSFT, _______, _______, - _______, _______, _______, _______, RSFT_T(KC_ENT), KC_RSFT - ), - - - [_NUMB] = LAYOUT_wrapper( - _________________WINNAV_L1_________________, _______, _______, _________________NUMB_R1___________________, - _______, _________________WINNAV_L2_________________, _______, _______, _________________NUMB_R2___________________, _______, - RGB_MOD, _________________WINNAV_L3_________________, _______, _______, _________________NUMB_R3_WIN_______________, _______, - _______, _______, _______, _______, _______, _______, RSFT_T(KC_ENT), KC_RSFT, _______, _______, - _______, _______, _______, _______, RSFT_T(KC_ENT), KC_RSFT - ), - - [_MDIA] = LAYOUT_wrapper( - _________________LYOUT_____________________, _______, RGB_TOG, _________________RGB_1_____________________, - _______, _________________KC_BLANK__________________, _______, _______, _________________RGB_2_____________________, _______, - RGB_MOD, _________________KC_BLANK__________________, _______, _______, _________________MEDIA_____________________, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______ - ) - - }; diff --git a/keyboards/handwired/brain/keymaps/klackygears/rules.mk b/keyboards/handwired/brain/keymaps/klackygears/rules.mk deleted file mode 100644 index 26c9daf6ad..0000000000 --- a/keyboards/handwired/brain/keymaps/klackygears/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ - -RGBLIGHT_ENABLE = yes #Enable WS2812 RGB underlight. -TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/d48/keymaps/anderson/keymap.c b/keyboards/handwired/d48/keymaps/anderson/keymap.c deleted file mode 100644 index 5ae92d2360..0000000000 --- a/keyboards/handwired/d48/keymaps/anderson/keymap.c +++ /dev/null @@ -1,342 +0,0 @@ -#include QMK_KEYBOARD_H -#include "taphold.h" -#include "seq.h" -#include "ds1307.h" -#include "lightmode.h" -#include - -/* Note: don't forget there's some more code in qmk_firmware/users/anderson dir */ - -#define _MAIN 0 -#define _ALPHA 1 -#define _BETA 2 - -enum custom_keycodes { - KC_MAIN = SAFE_RANGE, - KC_ALPHA, - KC_BETA, -#ifdef LIGHTMODE_ENABLE - KC_LIGHT_MODE, -#endif - KC_SEQ, - KC_SET_TIME, -}; -#ifdef LIGHTMODE_ENABLE -#endif - -/* TapHold is my own implementation of the `LT` macro. It's processed in `process_record_user()`. */ -#define TAPHOLD_CONFIG_SIZE 3 -taphold_t taphold_config[TAPHOLD_CONFIG_SIZE] = { - {.key=KC_ALPHA, .mode=TAPHOLD_LAYER, .shortAction=KC_ESC, .longAction=_ALPHA}, - {.key=KC_BETA, .mode=TAPHOLD_LAYER, .shortAction=KC_EQL, .longAction=_BETA}, - {.key=KC_RCTL, .mode=TAPHOLD_MOD, .shortAction=KC_MINS, .longAction=KC_LCTL}, -}; -uint16_t taphold_config_size = TAPHOLD_CONFIG_SIZE; -uint32_t taphold_timeout = 90; - -/* Seq is implementation of unicode macros similar to UCIS, but with unicode strings. */ -#define SEQ_CONFIG_SIZE 3 -seq_t seq_config[SEQ_CONFIG_SIZE] = { - {.sequence="temp", .result="42°C"}, - {.sequence="table", .result="┳━━┳"}, - {.sequence="shrug", .result="¯\\_(ツ)_/¯"} -}; -uint16_t seq_config_size = SEQ_CONFIG_SIZE; - -/* Colors */ -uint32_t layer_colors[3] = { - [_MAIN] = 0xFF0010, - [_ALPHA] = 0x4020FF, - [_BETA] = 0x20FF00, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Main layer - │MUTE │ │L_MOD│ - ┏━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┓ - ┃ TAB ┃ Q │ W │ E │ R │ T ┃ Y │ U │ I │ O │ P ┃ BSP ┃ - ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ - ┃𝛼/ESC┃ A │ S │ D │ F │ G ┃ H │ J │ K │ L │ ; ┃ RET ┃ - ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ - ┃SHIFT┃ Z │ X │ C │ V │ B ┃ N │ M │ , │ . │ / ┃CTL/-┃ - ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ - ┃LCTRL┃ │ │ ALT │ GUI │SPACE┃SPACE│ 𝛽/= │ ' │ │ ┃ \ ┃ - ┗━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┛ - */ - [_MAIN] = LAYOUT( - KC_MUTE, LCTL(KC_D), - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_ALPHA,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTL, - KC_LCTL, _______, _______, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_BETA, KC_QUOT, _______, _______, KC_BSLS - ), - - /* Alpha layer (𝛼) - │ │ │ │ - ┏━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┓ - ┃ ┃PREV │PLAY │NEXT │ │NUMLK┃ - │ ^^^ │ ^ │ vvv │ ~ ┃ DEL ┃ - ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ - ┃ ┃ │VOL -│VOL +│ │CPSLK┃HOME │ <-- │ v │ --> │ ` ┃ \ ┃ - ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ - ┃ ┃ │ │ │ │SCRLK┃ END │ = │ [ │ ] │ ( ┃ ) ┃ - ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ - ┃ ┃ │ │ │ │ ┃ │ │ │ │ ┃ ┃ - ┗━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┛ - */ - [_ALPHA] = LAYOUT( - _______, _______, - _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_NUM, KC_MINS, KC_PGUP, KC_UP, KC_PGDN, KC_TILD, KC_DEL, - _______, _______, KC_VOLD, KC_VOLU, _______, KC_CAPS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT,KC_GRV, KC_BSLS, - _______, _______, _______, _______, _______, KC_SCRL, KC_END, KC_EQL, KC_LBRC, KC_RBRC, KC_LPRN ,KC_RPRN, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - /* Beta layer (𝛽) - │ │ │ │ - ┏━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┓ - ┃ RGB ┃ 1 │ 2 │ 3 │ 4 │ 5 ┃ 6 │ 7 │ 8 │ 9 │ 0 ┃ F12 ┃ - ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ - ┃L_MOD┃ F1 │ F2 │ F3 │ F4 │ F5 ┃ F6 │ F7 │ F8 │ F9 │ F10 ┃ F11 ┃ - ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ - ┃ ┃Boot │Debug│ │ │TIME ┃SLEEP│ SEQ │ { │ } │PTSCR┃ ┃ - ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫ - ┃ ┃ │ │ │ │ ┃ │ │ │ │ ┃ ┃ - ┗━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┛ - */ - [_BETA] = LAYOUT( - _______, _______, - RGB_TOG, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12, -#ifdef LIGHTMODE_ENABLE - KC_LIGHT_MODE, -#else - _______, -#endif - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - _______, QK_BOOT, DB_TOGG, _______, _______, KC_SET_TIME,KC_SLEP,KC_SEQ,KC_LCBR, KC_RCBR, KC_PSCR, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; - -static bool alpha_pressed = false; -static bool beta_pressed = false; - -static bool ctrl_pressed = false; -static bool alt_pressed = false; -static bool shift_pressed = false; -static bool gui_pressed = false; - -static bool is_in_seq = false; - -void keyboard_post_init_user(void) { - /* debug_enable = true; */ - /* debug_matrix = true; */ -} - -void eeconfig_init_user(void) { - set_unicode_input_mode(UNICODE_MODE_LINUX); -} - -void matrix_init_user(void) { -#ifdef LIGHTMODE_ENABLE - set_light_mode(SMOOTHLED, layer_colors[_MAIN]); -#endif -} - -static uint32_t last_update = 0; -static uint8_t hours, minutes, seconds; - -void matrix_scan_user(void) { - uint32_t now = timer_read32(); - if (now - last_update > 500) { - ds1307_get_time(&hours, &minutes, &seconds); - last_update = now; - } -} - -static bool is_in_set_time = false; -static char new_time[6]; -static uint8_t new_time_index = 0; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (keycode == KC_SEQ && record->event.pressed) { - seq_start(); - layer_off(_BETA); - is_in_seq = true; - return false; - } else if (is_in_seq) { - if (record->event.pressed) { - if (!seq_feed(keycode)) { - is_in_seq = false; - } - } - return false; - } - if (keycode == KC_SET_TIME && record->event.pressed) { - is_in_set_time = true; - new_time_index = 0; - } else if (is_in_set_time) { - if (!record->event.pressed && keycode >= KC_1 && keycode <= KC_0) { - new_time[new_time_index++] = (keycode == KC_0) ? 0 : keycode - KC_1 + 1; - if (new_time_index == 6) { - is_in_set_time = false; - ds1307_set_time( - (new_time[0]) * 10 + (new_time[1]), - (new_time[2]) * 10 + (new_time[3]), - (new_time[4]) * 10 + (new_time[5]) - ); - for (int i = 0; i < 6; i++) { - tap_code(KC_BACKSPACE); - } - } - } - } - - if (keycode == KC_LCTL || keycode == KC_RCTL) { - ctrl_pressed = record->event.pressed; - } else if (keycode == KC_LALT) { - alt_pressed = record->event.pressed; - } else if (keycode == KC_LSFT) { - shift_pressed = record->event.pressed; - } else if (keycode == KC_LGUI) { - gui_pressed = record->event.pressed; - } else if (keycode == KC_ALPHA) { - alpha_pressed = record->event.pressed; - } else if (keycode == KC_BETA) { - beta_pressed = record->event.pressed; - } - - if (keycode == QK_BOOT) { - rgblight_setrgb(255, 255, 0); - } -#ifdef LIGHTMODE_ENABLE - if (record->event.pressed && keycode == KC_LIGHT_MODE) { - next_light_mode(layer_colors[_MAIN]); - } -#endif - if (keycode == KC_LCTL) { - /* Some Overlay1_Enable fuckery! */ - (record->event.pressed ? register_code : unregister_code)(KC_LCTL); - return false; - } - return taphold_process(keycode, record); -} - -layer_state_t layer_state_set_user(layer_state_t state) { -#ifdef LIGHTMODE_ENABLE - uint8_t layer = get_highest_layer(state); - update_light_mode(layer_colors[layer]); -#endif - return state; -} - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { - if (!alpha_pressed) { - tap_code(clockwise ? KC_VOLD : KC_VOLU); - } else { - tap_code(clockwise ? KC_MPRV : KC_MNXT); - } - } else if (index == 1) { - if (!alpha_pressed) { - tap_code(clockwise ? KC_UP : KC_DOWN); - } else { - tap_code(clockwise ? KC_PGUP : KC_PGDN); - } - } - return true; -} - -#ifdef OLED_ENABLE -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return OLED_ROTATION_0; -} - -bool oled_task_user(void) { - /* Host Keyboard Layer Status */ - uint8_t current_layer = get_highest_layer(layer_state); - - /* Layer */ - static const char PROGMEM icons[4][3][6] = { - { - { 0x80, 0x81, 0x82, 0x83, 0x84, 0 }, - { 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0 }, - { 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0 } - }, - { - { 0x85, 0x86, 0x87, 0x88, 0x89, 0 }, - { 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0 }, - { 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0 } - }, - { - { 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0 }, - { 0xaa, 0xab, 0xac, 0xad, 0xae, 0 }, - { 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0 } - }, - { - { 0x8f, 0x90, 0x91, 0x92, 0x93, 0 }, - { 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0 }, - { 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0 } - } - }; - - uint8_t icon_index = current_layer == _MAIN ? 3 : current_layer == _ALPHA ? 1 : 2; - for (int i = 0; i < 3; i++) { - oled_set_cursor(0, i + 1); - oled_write_P(icons[icon_index][i], false); - } - - /* Time */ - oled_set_cursor(6, 0); - // oled_write_P(PSTR("-D48 Custom-\n"), false); - char buf[16]; - sprintf( - buf, - "%02d:%02d:%02d", hours, minutes, seconds - ); - oled_write(buf, false); - - /* Modifiers */ - static const char PROGMEM mods[][2] = { - {0x94, 0x95}, // CTL - {0x96, 0x97}, // ALT - {0x98, 0x99}, // GUI - {0x9a, 0x9b}, // SFT - /* {0x9c, 0x9d}, // EMPTY */ - }; - - char mod_data[13] = "\x9c\x9d\x9c\x9d\x9c\x9d\x9c\x9d \x07\x07\x07\0"; - if (ctrl_pressed) strncpy(mod_data, mods[0], 2); - if (alt_pressed) strncpy(mod_data + 2, mods[1], 2); - if (gui_pressed) strncpy(mod_data + 4, mods[2], 2); - if (shift_pressed) strncpy(mod_data + 6, mods[3], 2); - led_t led_usb_state = host_keyboard_led_state(); - if (led_usb_state.num_lock) mod_data[9] = 'N'; - if (led_usb_state.caps_lock) mod_data[10] = 'C'; - if (led_usb_state.scroll_lock) mod_data[11] = 'S'; - - oled_set_cursor(6, 1); - oled_write(mod_data, false); - - /* Matrix */ - static const char PROGMEM matrix_chars[] = { - 0xb4, // None - 0xb5, // Upper - 0xb6, // Lower - 0xb7 // Both - }; - - for (uint8_t row = 1; row < MATRIX_ROWS; row += 2) { - // Skip first row because it's used by the encoders. - uint16_t bits1 = matrix_get_row(row); - uint16_t bits2 = matrix_get_row(row + 1); - - for (uint8_t col = 0; col < MATRIX_COLS; col++) { - uint8_t matrix_char = matrix_chars[((bits1 & (1 << col)) ? 1 : 0) | ((bits2 & (1 << col)) ? 2 : 0)]; - oled_set_cursor(6 + col, 2 + (row - 1) / 2); - oled_write_char(matrix_char, false); - } - } - - return false; -} -#endif diff --git a/keyboards/handwired/d48/keymaps/anderson/lightmode.c b/keyboards/handwired/d48/keymaps/anderson/lightmode.c deleted file mode 100644 index bc05956214..0000000000 --- a/keyboards/handwired/d48/keymaps/anderson/lightmode.c +++ /dev/null @@ -1,44 +0,0 @@ -#include "lightmode.h" - -#ifdef LIGHTMODE_ENABLE - -/* Light modes switcher */ - -uint8_t light_mode = SMOOTHLED; - -void set_light_mode(light_mode_t value, uint32_t color) { - light_mode = value; - if (light_mode == SMOOTHLED) { - smoothled_set(color); - } else { - dmc12_start(color, true); - } -} - -void process_light_mode(void) { - if (light_mode == SMOOTHLED) { - smoothled_process(); - } else { - dmc12_process(); - } -} - -void update_light_mode(uint32_t color) { - if (light_mode == SMOOTHLED) { - smoothled_set(color); - } else { - dmc12_start(color, false); - } -} - -void next_light_mode(uint32_t color) { - light_mode = (light_mode + 1) % LIGHT_MODE_SIZE; - set_light_mode(light_mode, color); -} - -void matrix_scan_kb(void) { - process_light_mode(); - matrix_scan_user(); -} - -#endif diff --git a/keyboards/handwired/d48/keymaps/anderson/lightmode.h b/keyboards/handwired/d48/keymaps/anderson/lightmode.h deleted file mode 100644 index 0c81e476bb..0000000000 --- a/keyboards/handwired/d48/keymaps/anderson/lightmode.h +++ /dev/null @@ -1,12 +0,0 @@ -#include "smoothled.h" -#include "dmc12.h" -#include "quantum.h" - -/* Light modes */ -enum light_mode_enum { SMOOTHLED, DMC12, LIGHT_MODE_SIZE }; -typedef enum light_mode_enum light_mode_t; - -void set_light_mode(light_mode_t value, uint32_t color); -void process_light_mode(void); -void update_light_mode(uint32_t color); -void next_light_mode(uint32_t color); diff --git a/keyboards/handwired/d48/keymaps/anderson/rules.mk b/keyboards/handwired/d48/keymaps/anderson/rules.mk deleted file mode 100644 index e925b9a89f..0000000000 --- a/keyboards/handwired/d48/keymaps/anderson/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -OPT_DEFS += -DLIGHTMODE_ENABLE -SRC += smoothled.c dmc12.c seq.c lightmode.c diff --git a/keyboards/handwired/dactyl_manuform/4x5/keymaps/ibnuda/config.h b/keyboards/handwired/dactyl_manuform/4x5/keymaps/ibnuda/config.h deleted file mode 100644 index a597d848e2..0000000000 --- a/keyboards/handwired/dactyl_manuform/4x5/keymaps/ibnuda/config.h +++ /dev/null @@ -1,27 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS diff --git a/keyboards/handwired/dactyl_manuform/4x5/keymaps/ibnuda/keymap.c b/keyboards/handwired/dactyl_manuform/4x5/keymaps/ibnuda/keymap.c deleted file mode 100644 index 9d613042c9..0000000000 --- a/keyboards/handwired/dactyl_manuform/4x5/keymaps/ibnuda/keymap.c +++ /dev/null @@ -1,60 +0,0 @@ -#include QMK_KEYBOARD_H - -#include "ibnuda.h" - -#define TAB KC_TAB -#define GUI KC_LGUI -#define MIN KC_MINS -#define SLS KC_SLSH -#define CTL KC_LCTL -#define DEL KC_DEL -#define QUE KC_QUES -#define ___ KC_NO - -// clang-format off -#define LAYOUT_dm_base( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ - K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ - K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \ - KTA, KTB, KTC, KTD, KTE, KTF \ - ) \ - LAYOUT_wrapper( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ - K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ - K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \ - TAB, KTA, KTF, SLS, \ - KTB, KTC, KTD, KTE, \ - CTL, DEL, QUE, CTL, \ - ___, ___, ___, ___ \ - ) - -#define LAYOUT_dm_base_wrapper(...) LAYOUT_dm_base(__VA_ARGS__) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_BASE] = LAYOUT_dm_base_wrapper( - LUP, LUR, LUM, LUI, LUII, RUII, RUI, RUM, RUR, RUP, - SHLP, CTLR, ALLM, LMI, GULII, GURII, RMI, ALRM, CTRR, SHRP, - LLP, LLR, LLM, LLI, LLII, RLII, RLI, RLM, RLR, RLP, - CT_ESC, LW_E, SF_BSPC, AL_ENT, RS_SPC, TRAISE -), - -[_RAISE] = LAYOUT_dm_base_wrapper( - KC_EXLM,KC_AT, KC_UP, KC_LCBR,KC_RCBR, KC_BSLS,KC_7, KC_8, KC_9, KC_ASTR , - KC_HASH,CT_LEFT,AL_DOWN,KC_RGHT,KC_DLR, GU_EQL, KC_4, AL_FIVE,CT_SIX, SH_ZERO , - KC_LBRC,KC_RBRC,KC_LPRN,KC_RPRN,KC_AMPR, KC_GRV, KC_1, KC_2, KC_3, KC_PLUS , - _______,ADDDD ,_______, _______,RS_SPC, _______ -), -[_LOWER] = LAYOUT_dm_base_wrapper( - KC_ESC, KC_QUES,KC_UNDS,KC_F1, KC_F2, KC_F3, KC_F4, KC_MINS,KC_SLSH,KC_BSPC , - KC_LSFT,KC_PSCR,KC_PGUP,KC_F5, KC_F6, KC_F7, KC_F8, KC_HOME,KC_LALT,KC_ENT , - KC_CAPS,KC_SCRL,KC_PGDN,KC_F9, KC_F10, KC_F11, KC_F12, KC_END, KC_INS, KC_SLSH , - _______,_______,_______, _______,ADDDD, _______ -), -[_ADJUST] = LAYOUT_dm_base_wrapper( - _______,EXPLR, KC_UP, PRVTAB, PRVWIN, NXTWIN, NXTTAB, _______,_______,LCKGUI, - TSKMGR, KC_LEFT,KC_DOWN,KC_RGHT,UPTAB, DNTAB, KC_ENT, KC_LGUI,_______,CALDL, - _______,CLSGUI, _______,CONPST, QK_BOOT, _______,_______,_______,_______,_______, - _______,_______,_______, _______,_______,_______ -),}; -// clang-format on - diff --git a/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h b/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h deleted file mode 100644 index 3860a696c8..0000000000 --- a/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT( \ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ - XXX, XXX, XXX, XXX, \ - K32, K33, K36, K37, \ - K34, XXX, XXX, K35, \ - XXX, XXX, XXX, XXX \ -) diff --git a/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c deleted file mode 100644 index dbab7f9820..0000000000 --- a/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/manna-harbour_miryoku/config.h b/keyboards/handwired/dactyl_manuform/4x6/keymaps/manna-harbour_miryoku/config.h deleted file mode 100644 index f50033a046..0000000000 --- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/manna-harbour_miryoku/config.h +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2022 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku(\ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT( \ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ -XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX, \ - XXX, XXX, XXX, XXX, \ - K32, K33, K36, K37, \ - K34, XXX, XXX, K35, \ - XXX, XXX, XXX, XXX \ -) diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/handwired/dactyl_manuform/4x6/keymaps/manna-harbour_miryoku/keymap.c deleted file mode 100644 index dbab7f9820..0000000000 --- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/manna-harbour_miryoku/keymap.c +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/README.md b/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/README.md deleted file mode 100644 index b7f7cbf938..0000000000 --- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/README.md +++ /dev/null @@ -1,8 +0,0 @@ -#### compile with - -`make handwired/dactyl_manuform/4x6:scheikled` - - -#### flash with - -`qmk flash -kb handwired/dactyl_manuform/4x6 -km scheikled` diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/config.h b/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/config.h deleted file mode 100644 index a68c21b215..0000000000 --- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/config.h +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2021 Paul Maria Scheikl (@ScheiklP) -// SPDX-License-Identifier: GPL-2.0-or-later - - -#pragma once - -#define USE_I2C - -#define SPLIT_HAND_PIN F6 - -// WS2812 RGB LED strip input and number of LEDs -#undef WS2812_DI_PIN -#undef RGBLED_NUM -#define WS2812_DI_PIN F4 -#define RGBLED_NUM 52 -#define RGBLED_SPLIT {26, 26} -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_SNAKE - -// Amoeba royale PCBs (https://github.com/mtl/keyboard-pcbs/tree/master/amoeba-royale) use row to column layout (current can flow from row pin to column pin). -#undef DIODE_DIRECTION -#define DIODE_DIRECTION ROW2COL - -#define DEBOUNCE 5 - -#define AUTO_SHIFT_TIMEOUT 100 -#define NO_AUTO_SHIFT_SPECIAL -#define NO_AUTO_SHIFT_NUMERIC - -// require two taps for a TT layer switch (default 5) -#define TAPPING_TOGGLE 2 - -// Mouse control -// constant mode (velocity) -#define MK_3_SPEED -// KC_ACL0 < KC_ACL1 < unmodified < KC_ACL2 - -// Cursor offset per movement (unmodified) -#define MK_C_OFFSET_UNMOD 16 -// Time between cursor movements (unmodified) -#define MK_C_INTERVAL_UNMOD 10 -/* #define MK_C_INTERVAL_UNMOD 16 */ - -// Cursor offset per movement (KC_ACL0) -#define MK_C_OFFSET_0 1 -// Time between cursor movements (KC_ACL0) -#define MK_C_INTERVAL_0 32 - -// Cursor offset per movement (KC_ACL1) -#define MK_C_OFFSET_1 4 -// Time between cursor movements (KC_ACL1) -#define MK_C_INTERVAL_1 16 - -// Cursor offset per movement (KC_ACL2) -#define MK_C_OFFSET_2 20 -/* #define MK_C_OFFSET_2 32 */ -// Time between cursor movements (KC_ACL2) -#define MK_C_INTERVAL_2 16 diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/keymap.c b/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/keymap.c deleted file mode 100644 index 24f6b35f57..0000000000 --- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/keymap.c +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2021 Paul Maria Scheikl (@ScheiklP) -// SPDX-License-Identifier: GPL-2.0-or-later - -/* A K.O,Y layout for the Dactyl Manuform 4x6 Keyboard */ - -#include QMK_KEYBOARD_H -#include "koy_keys_on_quertz_de_latin1.h" - -enum custom_layers { - _1, - _3, - _4, - _7, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_1] = LAYOUT( - KC_TAB , KC_K , KC_DOT , KC_O , KC_COMM , N_Y , KC_V , KC_G , KC_C , KC_L , N_SS , N_Z , - MO(_3) , KC_H , KC_A , KC_E , KC_I , KC_U , KC_D , KC_T , KC_R , KC_N , KC_S , KC_F , - KC_LSFT , KC_X , KC_Q , N_AE , N_UE , N_OE , KC_B , KC_P , KC_W , KC_M , KC_J , KC_RSFT , - KC_LCTL , KC_LGUI , KC_CAPS , TT(_7) , - KC_LALT , KC_SPC , MO(_3) , MO(_4) , - N_COPY , N_CUT , KC_ESC , KC_ENTER , - N_PASTE , N_UNDO , KC_BSPC , KC_DEL - ), - - [_3] = LAYOUT( - - KC_TAB , N_DOTS , N_USC , N_LSQBR , N_RSQBR , N_CIRC , N_EXKL , N_LT , N_GT , N_EQ , N_AMP , N_ACUT , - KC_TRNS , N_BSLS , N_SLSH , N_LCUBR , N_RCUBR , N_ASTR , N_QUES , N_LPARN , N_RPARN , N_MINS , N_COLN , N_AT , - KC_LSFT , N_HASH , N_DLR , N_PIPE , N_TILD , N_GRAVE , N_PLUS , N_PERC , N_QUOT , N_SING , N_SEMI , KC_RSFT , - KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , - KC_LALT , KC_SPC , KC_TRNS , KC_TRNS , - N_COPY , N_CUT , KC_ESC , KC_ENTER , - N_PASTE , N_UNDO , KC_BSPC , KC_DEL - - ), - - [_4] = LAYOUT( - - KC_TAB , KC_PGUP , KC_BSPC , KC_UP , KC_DEL , KC_PGDN , KC_KP_SLASH , KC_7 , KC_8 , KC_9 , KC_KP_MINUS , KC_TRNS , - KC_TRNS , KC_HOME , KC_LEFT , KC_DOWN , KC_RIGHT , KC_END , KC_KP_ASTERISK , KC_4 , KC_5 , KC_6 , KC_KP_PLUS , KC_TRNS , - KC_LSFT , KC_ESC , KC_TAB , KC_INS , KC_ENTER , N_UNDO , KC_KP_ENTER , KC_1 , KC_2 , KC_3 , KC_KP_DOT , KC_RSFT , - KC_TRNS , KC_TRNS , KC_0 , KC_TRNS , - KC_LALT , KC_0 , KC_TRNS , KC_TRNS , - N_COPY , N_CUT , KC_ESC , KC_ENTER , - N_PASTE , N_UNDO , KC_BSPC , KC_DEL - - ), - - [_7] = LAYOUT( - - KC_TAB , KC_MS_WH_UP , KC_MS_BTN2 , KC_MS_UP , KC_MS_BTN1 , KC_MS_WH_DOWN , KC_TRNS , KC_F7 , KC_F8 , KC_F9 , RGB_HUI , QK_BOOT , - KC_TRNS , KC_MS_ACCEL0 , KC_MS_LEFT , KC_MS_DOWN , KC_MS_RIGHT , KC_TRNS , KC_TRNS , KC_F4 , KC_F5 , KC_F6 , RGB_SAI , RGB_TOG , - KC_LSFT , KC_MS_ACCEL1 , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_F1 , KC_F2 , KC_F3 , RGB_VAI , RGB_MODE_FORWARD , - KC_TRNS , KC_PSCR , KC_F10 , KC_TRNS , - KC_LALT , KC_F10 , KC_TRNS , KC_TRNS , - N_COPY , N_CUT , KC_ESC , KC_ENTER , - N_PASTE , N_UNDO , KC_BSPC , KC_DEL - - ), -}; diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/rules.mk b/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/rules.mk deleted file mode 100644 index 53ce5a3190..0000000000 --- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/rules.mk +++ /dev/null @@ -1,11 +0,0 @@ -# Copyright 2021 Paul Maria Scheikl (@ScheiklP) -# SPDX-License-Identifier: GPL-2.0-or-later - -BOOTLOADER = atmel-dfu -AUTO_SHIFT_ENABLE = yes -CONSOLE_ENABLE = no -COMMAND_ENABLE = no -NKRO_ENABLE = yes -RGBLIGHT_ENABLE = yes -DEBOUNCE_TYPE = asym_eager_defer_pk -USER_NAME := scheiklp diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/README.md b/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/README.md deleted file mode 100644 index 18c4d8e78d..0000000000 --- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/README.md +++ /dev/null @@ -1,8 +0,0 @@ -#### compile with - -`make handwired/dactyl_manuform/4x6:scheiklp` - - -#### flash with - -`qmk flash -kb handwired/dactyl_manuform/4x6 -km scheiklp` diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/config.h b/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/config.h deleted file mode 100644 index 2db9052799..0000000000 --- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/config.h +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2021 Paul Maria Scheikl (@ScheiklP) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - - -#define USE_I2C -#define SPLIT_HAND_PIN F6 - -#undef WS2812_DI_PIN -#undef RGBLED_NUM - -#define DEBOUNCE 5 - -#define AUTO_SHIFT_TIMEOUT 100 -#define NO_AUTO_SHIFT_SPECIAL -#define NO_AUTO_SHIFT_NUMERIC - -// require two taps for a TT layer switch (default 5) -#define TAPPING_TOGGLE 2 - -// Mouse control -// constant mode (velocity) -#define MK_3_SPEED -// KC_ACL0 < KC_ACL1 < unmodified < KC_ACL2 - -// Cursor offset per movement (unmodified) -#define MK_C_OFFSET_UNMOD 16 -// Time between cursor movements (unmodified) -#define MK_C_INTERVAL_UNMOD 10 -/* #define MK_C_INTERVAL_UNMOD 16 */ - -// Cursor offset per movement (KC_ACL0) -#define MK_C_OFFSET_0 1 -// Time between cursor movements (KC_ACL0) -#define MK_C_INTERVAL_0 32 - -// Cursor offset per movement (KC_ACL1) -#define MK_C_OFFSET_1 4 -// Time between cursor movements (KC_ACL1) -#define MK_C_INTERVAL_1 16 - -// Cursor offset per movement (KC_ACL2) -#define MK_C_OFFSET_2 20 -/* #define MK_C_OFFSET_2 32 */ -// Time between cursor movements (KC_ACL2) -#define MK_C_INTERVAL_2 16 diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/keymap.c b/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/keymap.c deleted file mode 100644 index 86a34c4f04..0000000000 --- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/keymap.c +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2021 Paul Maria Scheikl (@ScheiklP) -// SPDX-License-Identifier: GPL-2.0-or-later - -/* A K.O,Y layout for the Dactyl Manuform 4x6 Keyboard */ - -#include QMK_KEYBOARD_H -#include "koy_keys_on_quertz_de_latin1.h" - -enum custom_layers { - _1, - _3, - _4, - _7, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_1] = LAYOUT( - KC_TAB , KC_K , KC_DOT , KC_O , KC_COMM , N_Y , KC_V , KC_G , KC_C , KC_L , N_SS , N_Z , - MO(_3) , KC_H , KC_A , KC_E , KC_I , KC_U , KC_D , KC_T , KC_R , KC_N , KC_S , KC_F , - KC_LSFT , KC_X , KC_Q , N_AE , N_UE , N_OE , KC_B , KC_P , KC_W , KC_M , KC_J , KC_RSFT , - KC_LCTL , KC_LGUI , KC_CAPS , TT(_7) , - KC_LALT , KC_SPC , MO(_3) , MO(_4) , - N_COPY , N_CUT , KC_ESC , KC_ENTER , - N_PASTE , N_UNDO , KC_BSPC , KC_DEL - ), - - [_3] = LAYOUT( - - KC_TAB , N_DOTS , N_USC , N_LSQBR , N_RSQBR , N_CIRC , N_EXKL , N_LT , N_GT , N_EQ , N_AMP , N_ACUT , - KC_TRNS , N_BSLS , N_SLSH , N_LCUBR , N_RCUBR , N_ASTR , N_QUES , N_LPARN , N_RPARN , N_MINS , N_COLN , N_AT , - KC_LSFT , N_HASH , N_DLR , N_PIPE , N_TILD , N_GRAVE , N_PLUS , N_PERC , N_QUOT , N_SING , N_SEMI , KC_RSFT , - KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , - KC_LALT , KC_SPC , KC_TRNS , KC_TRNS , - N_COPY , N_CUT , KC_ESC , KC_ENTER , - N_PASTE , N_UNDO , KC_BSPC , KC_DEL - - ), - - [_4] = LAYOUT( - - KC_TAB , KC_PGUP , KC_BSPC , KC_UP , KC_DEL , KC_PGDN , KC_KP_SLASH , KC_7 , KC_8 , KC_9 , KC_KP_MINUS , KC_TRNS , - KC_TRNS , KC_HOME , KC_LEFT , KC_DOWN , KC_RIGHT , KC_END , KC_KP_ASTERISK , KC_4 , KC_5 , KC_6 , KC_KP_PLUS , KC_TRNS , - KC_LSFT , KC_ESC , KC_TAB , KC_INS , KC_ENTER , N_UNDO , KC_KP_ENTER , KC_1 , KC_2 , KC_3 , KC_KP_DOT , KC_RSFT , - KC_TRNS , KC_TRNS , KC_0 , KC_TRNS , - KC_LALT , KC_0 , KC_TRNS , KC_TRNS , - N_COPY , N_CUT , KC_ESC , KC_ENTER , - N_PASTE , N_UNDO , KC_BSPC , KC_DEL - - ), - - [_7] = LAYOUT( - - KC_TAB , KC_MS_WH_UP , KC_MS_BTN2 , KC_MS_UP , KC_MS_BTN1 , KC_MS_WH_DOWN , KC_TRNS , KC_F7 , KC_F8 , KC_F9 , KC_TRNS , KC_TRNS , - KC_TRNS , KC_MS_ACCEL0 , KC_MS_LEFT , KC_MS_DOWN , KC_MS_RIGHT , KC_TRNS , KC_TRNS , KC_F4 , KC_F5 , KC_F6 , KC_TRNS , KC_TRNS , - KC_LSFT , KC_MS_ACCEL1 , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_F1 , KC_F2 , KC_F3 , KC_TRNS , KC_TRNS , - KC_TRNS , KC_PSCR , KC_F10 , KC_TRNS , - KC_LALT , KC_F10 , KC_TRNS , KC_TRNS , - N_COPY , N_CUT , KC_ESC , KC_ENTER , - N_PASTE , N_UNDO , KC_BSPC , KC_DEL - - ), - -}; diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/rules.mk b/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/rules.mk deleted file mode 100644 index db873a7522..0000000000 --- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/rules.mk +++ /dev/null @@ -1,9 +0,0 @@ -# Copyright 2021 Paul Maria Scheikl (@ScheiklP) -# SPDX-License-Identifier: GPL-2.0-or-later - -BOOTLOADER = atmel-dfu -AUTO_SHIFT_ENABLE = yes -CONSOLE_ENABLE = no -COMMAND_ENABLE = no -NKRO_ENABLE = yes -DEBOUNCE_TYPE = asym_eager_defer_pk diff --git a/keyboards/handwired/dactyl_manuform/4x6_5/keymaps/manna-harbour_miryoku/config.h b/keyboards/handwired/dactyl_manuform/4x6_5/keymaps/manna-harbour_miryoku/config.h deleted file mode 100644 index 9532d1f67c..0000000000 --- a/keyboards/handwired/dactyl_manuform/4x6_5/keymaps/manna-harbour_miryoku/config.h +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT( \ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ -XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX, \ - XXX, XXX, XXX, XXX, \ - K32, K33, K34, K35, K36, K37, \ - XXX, XXX, XXX, XXX \ -) diff --git a/keyboards/handwired/dactyl_manuform/4x6_5/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/handwired/dactyl_manuform/4x6_5/keymaps/manna-harbour_miryoku/keymap.c deleted file mode 100644 index 7c5717a0fe..0000000000 --- a/keyboards/handwired/dactyl_manuform/4x6_5/keymaps/manna-harbour_miryoku/keymap.c +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/config.h b/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/config.h deleted file mode 100644 index 9ee1c3e3cb..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/config.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - Copyright (c) 2020 Fred Silberberg - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. -*/ - -#pragma once - -#define EE_HANDS - -#undef TAPPING_TERM -#define TAPPING_TERM 200 diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/keymap.c b/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/keymap.c deleted file mode 100644 index 326eded640..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/keymap.c +++ /dev/null @@ -1,76 +0,0 @@ -/* - Copyright (c) 2020 Fred Silberberg - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. -*/ - -#include QMK_KEYBOARD_H -#include "333fred.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [BASE] = LAYOUT_5x6( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - OSM(MOD_LSFT), CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, OSM(MOD_RSFT), - KC_F4, KC_F5, TG(CODEFLOW), KC_EQL, - KC_LALT, KC_BSPC, KC_SPC, OSL(VIM), - TD(TD_COPY_PASTE), TD(TD_SYM_VIM), KC_ENT, KC_RGUI, - KC_LCTL, KC_DEL, KC_UP, KC_DOWN - ), - - [CODEFLOW] = LAYOUT_5x6( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_F7, KC_F8, _______, _______, - _______, _______, _______, _______, - _______, _______, _______, _______, - _______, _______, _______, _______ - ), - - [SYMB] = LAYOUT_5x6( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - _______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, _______, KC_7, KC_8, KC_9, _______, KC_F12, - _______, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_GRV, _______, KC_4, KC_5, KC_6, _______, _______, - _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, _______, KC_1, KC_2, KC_3, _______, _______, - KC_F7, KC_F8, KC_0, KC_ENT, - _______, _______, KC_MPLY, KC_MNXT, - _______, _______, KC_MPRV, _______, - _______, _______, KC_VOLU, KC_VOLD - ), - - [VIM] = LAYOUT_5x6( - _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, - _______, _______, _______, _______, KC_LSFT, _______, _______, _______, _______, _______, _______, _______, - _______, DLEFT, DRIGHT, KC_LCTL, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, - _______, _______, _______, _______, - _______, _______, _______, _______, - _______, _______, _______, _______ - ), -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - tap_dance_process_keycode(keycode); - return !try_handle_macro(keycode, record); -} diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/rules.mk b/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/rules.mk deleted file mode 100644 index 5ad63b02b7..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -KEY_LOCK_ENABLE = yes -CONSOLE_ENABLE = no -LTO_ENABLE = yes diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h b/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h deleted file mode 100644 index a213d43d39..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku(\ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT_5x6( \ -XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, \ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ -XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX, \ - XXX, XXX, XXX, XXX, \ - K32, K33, K36, K37, \ - K34, XXX, XXX, K35, \ - XXX, XXX, XXX, XXX \ -) diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c deleted file mode 100644 index dbab7f9820..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/config.h b/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/config.h deleted file mode 100644 index 7eaeceb44a..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/config.h +++ /dev/null @@ -1,47 +0,0 @@ -/* -Copyright 2012 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - - -#pragma once - -#define USE_I2C -// #define MASTER_LEFT -// #define MASTER_RIGHT -#define EE_HANDS -// Rows are doubled-up -// #define DEBOUNCE 5 -#define TAPPING_TOGGLE 3 -#define ONESHOT_TAP_TOGGLE 3 -#define PERMISSIVE_HOLD -#define TAPPING_TERM 300 -#ifdef RGBLED_NUM -# undef RGBLED_NUM -#endif -#define RGBLED_NUM 54 -#define RGBLIGHT_LIMIT_VAL 200 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -// #define RGBLIGHT_LED_MAP { 11,10,9,8,7,6,5,4,3,2,1,0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 } -#define RGBLIGHT_SPLIT 27 diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/keymap.c b/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/keymap.c deleted file mode 100644 index 83b47f3ca9..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/keymap.c +++ /dev/null @@ -1,61 +0,0 @@ -/* A standard layout for the Dactyl Manuform 5x6 Keyboard */ - -#include QMK_KEYBOARD_H -#include "rishka.h" - -enum layers { - BASE, // default layer - WIN, // Switch keys that are needed in windows - SYMB, // symbols - MDIA // media keys -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [BASE] = LAYOUT_5x6_wrapper( - KC_EQL , ________________NUMBERS_L__________________, ________________NUMBERS_R__________________, KC_MINS, - KC_ESC , _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSLS, - KC_F1 , _____________MOD_QWERTY_L2_________________, _____________MOD_QWERTY_R2_________________, KC_QUOT, - OS_LSFT, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, OS_RSFT, - KC_LEFT,KC_RGHT, KC_UP, KC_DOWN, - KC_BSPC, KC_SPC, KC_TAB, KC_ENT, - KC_LGUI, MO(SYMB), MO(SYMB), TT(MDIA), - KC_DEL, KC_GRV, TT(WIN), KC_LALT - ), - [WIN] = LAYOUT_5x6_wrapper( - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _________________QWERTY_L2_________________, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, - _______, _______, _______, _______, - KC_LCTL, _______, _______, _______, - _______, _______, _______, _______ - ), - - [SYMB] = LAYOUT_5x6_wrapper( - KC_F12 , ______________________F_L__________________, ______________________F_R__________________, KC_F11, - _______, _________________SYMBOL_L1_________________, _________________SYMBOL_R1_________________, KC_NUM, - _______, _________________SYMBOL_L2_________________, _________________SYMBOL_R2_________________, _______, - _______, _________________SYMBOL_L3_________________, _________________SYMBOL_R3_________________, _______, - _______, _______, KC_P0 , KC_PDOT, - _______, _______, _______, _______, - QK_BOOT, _______, _______, _______, - RGB_TOG, _______, _______, _______ - ), - [MDIA] = LAYOUT_5x6_wrapper( - - RGB_MOD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RGB_M_SN, RGB_HUD, _______, KC_MS_U, _______, KC_WH_U, _______, _______, KC_WH_U, _______, _______, _______, - RGB_VAI, RGB_SAI, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, MOUSE_L, KC_WH_D, MOUSE_R, _______, _______, - RGB_VAD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, - KC_BTN1, KC_BTN2, _______, _______, - KC_BTN3, KC_BTN4, _______, _______, - KC_BTN5, _______, _______, _______ - - ), -}; - - diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/rules.mk b/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/rules.mk deleted file mode 100644 index 7084862d13..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -BOOTLOADER=qmk-dfu -RGBLIGHT_ENABLE = yes - diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/README.md b/keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/README.md deleted file mode 100644 index 81a8004f7b..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/README.md +++ /dev/null @@ -1,8 +0,0 @@ -#### compile with - -`make handwired/dactyl_manuform/5x6:scheiklp` - - -#### flash with - -`qmk flash -kb handwired/dactyl_manuform/5x6 -km scheiklp` diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/config.h b/keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/config.h deleted file mode 100644 index 613d8ae47f..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/config.h +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2021 Paul Maria Scheikl (@ScheiklP) -// SPDX-License-Identifier: GPL-2.0-or-later - - -#pragma once - - -#define USE_I2C - -/* #define MASTER_LEFT */ - /* #define MASTER_RIGHT */ -#define EE_HANDS -// Rows are doubled-up - -#define AUTO_SHIFT_TIMEOUT 125 -#define NO_AUTO_SHIFT_SPECIAL -#define NO_AUTO_SHIFT_NUMERIC - -// require two taps for a TT layer switch (default 5) -#define TAPPING_TOGGLE 2 - -// Mouse control -// constant mode (velocity) -#define MK_3_SPEED -// KC_ACL0 < KC_ACL1 < unmodified < KC_ACL2 - -// Cursor offset per movement (unmodified) -#define MK_C_OFFSET_UNMOD 16 -// Time between cursor movements (unmodified) -#define MK_C_INTERVAL_UNMOD 10 -/* #define MK_C_INTERVAL_UNMOD 16 */ - -// Cursor offset per movement (KC_ACL0) -#define MK_C_OFFSET_0 1 -// Time between cursor movements (KC_ACL0) -#define MK_C_INTERVAL_0 32 - -// Cursor offset per movement (KC_ACL1) -#define MK_C_OFFSET_1 4 -// Time between cursor movements (KC_ACL1) -#define MK_C_INTERVAL_1 16 - -// Cursor offset per movement (KC_ACL2) -#define MK_C_OFFSET_2 20 -/* #define MK_C_OFFSET_2 32 */ -// Time between cursor movements (KC_ACL2) -#define MK_C_INTERVAL_2 16 diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/keymap.c b/keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/keymap.c deleted file mode 100644 index 1f9102e829..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/keymap.c +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2021 Paul Maria Scheikl (@ScheiklP) -// SPDX-License-Identifier: GPL-2.0-or-later - -/* A K.O,Y layout for the Dactyl Manuform 5x6 Keyboard */ - -#include QMK_KEYBOARD_H -#include "koy_keys_on_quertz_de_latin1.h" - - -enum custom_layers { - _1, - _3, - _4, - _7, -}; - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_1] = LAYOUT_5x6( - KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_BSPC , - KC_TAB , KC_K , KC_DOT , KC_O , KC_COMM , N_Y , KC_V , KC_G , KC_C , KC_L , N_SS , N_Z , - MO(_3) , KC_H , KC_A , KC_E , KC_I , KC_U , KC_D , KC_T , KC_R , KC_N , KC_S , KC_F , - KC_LSFT , KC_X , KC_Q , N_AE , N_UE , N_OE , KC_B , KC_P , KC_W , KC_M , KC_J , KC_RSFT , - KC_LCTL , KC_LGUI , KC_CAPS , TT(_7), - KC_LALT, KC_SPC, MO(_3), MO(_4), - N_COPY, N_CUT, DM_RSTP, KC_ENTER, - N_PASTE, N_UNDO, DM_REC1, DM_PLY1 - ), - - [_3] = LAYOUT_5x6( - - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_BSPC, - KC_TAB, N_DOTS, N_USC, N_LSQBR, N_RSQBR, N_CIRC, N_EXKL, N_LT, N_GT, N_EQ, N_AMP, N_ACUT, - KC_TRNS, N_BSLS, N_SLSH, N_LCUBR, N_RCUBR, N_ASTR, N_QUES, N_LPARN, N_RPARN, N_MINS, N_COLN, N_AT, - KC_LSFT, N_HASH, N_DLR, N_PIPE, N_TILD, N_GRAVE, N_PLUS, N_PERC, N_QUOT, N_SING, N_SEMI, KC_RSFT, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LALT,KC_SPC, KC_TRNS,KC_TRNS, - N_COPY, N_CUT, DM_RSTP, KC_ENTER, - N_PASTE, N_UNDO, DM_REC1, DM_PLY1 - - ), - - [_4] = LAYOUT_5x6( - - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_BSPC, - KC_TAB, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_KP_SLASH, KC_7, KC_8, KC_9, KC_KP_MINUS, KC_TRNS, - KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, KC_KP_ASTERISK, KC_4, KC_5, KC_6, KC_KP_PLUS, KC_TRNS, - KC_LSFT, KC_ESC, KC_TAB, KC_INS, KC_ENTER, N_UNDO, KC_KP_ENTER, KC_1, KC_2, KC_3, KC_KP_DOT, KC_RSFT, - KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, - KC_LALT,KC_0, KC_TRNS,KC_TRNS, - N_COPY, N_CUT, DM_RSTP, KC_ENTER, - N_PASTE, N_UNDO, DM_REC1, DM_PLY1 - - ), - - [_7] = LAYOUT_5x6( - - KC_ESC, KC_TRNS, KC_TRNS, KC_MS_BTN3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, - KC_TAB, KC_MS_WH_UP, KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, KC_MS_WH_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_MS_ACCEL0, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LSFT, KC_MS_ACCEL1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS,KC_PSCR, KC_TRNS, KC_TRNS, - KC_LALT,KC_0, KC_TRNS,KC_TRNS, - N_COPY, N_CUT, DM_RSTP, KC_ENTER, - N_PASTE, N_UNDO, DM_REC1, DM_PLY1 - - ), - -}; diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/rules.mk b/keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/rules.mk deleted file mode 100644 index a0b983c7ab..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/rules.mk +++ /dev/null @@ -1,10 +0,0 @@ -# Copyright 2021 Paul Maria Scheikl (@ScheiklP) -# SPDX-License-Identifier: GPL-2.0-or-later - -AUTO_SHIFT_ENABLE = yes -CONSOLE_ENABLE = no -COMMAND_ENABLE = no -NKRO_ENABLE = yes -BOOTLOADER = atmel-dfu -DYNAMIC_MACRO_ENABLE = yes - diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/uqs/config.h b/keyboards/handwired/dactyl_manuform/5x6/keymaps/uqs/config.h deleted file mode 100644 index af5842e602..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/uqs/config.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2022 Ulrich Spörlein (@uqs) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#define RGBLED_NUM 12 -#define RGBLED_SPLIT {6,6} -#define RGBLIGHT_LIMIT_VAL 127 - -#define EE_HANDS diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/uqs/keymap.c b/keyboards/handwired/dactyl_manuform/5x6/keymaps/uqs/keymap.c deleted file mode 100644 index 620994fc37..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/uqs/keymap.c +++ /dev/null @@ -1,170 +0,0 @@ -// Copyright 2022 Ulrich Spörlein (@uqs) -// SPDX-License-Identifier: GPL-2.0-or-later -// vi:et sw=4 cc=5,15,25,35,45,55,65: - -#include "uqs.h" - -/* - * My custom layout macro that allows for easy diff(1) operations between - * various keyboards. It probably doesn't make sense to you. - */ -#define LAYOUT_uqs( \ - L00, L01, L02, L03, L04, L05, \ - L10, L11, L12, L13, L14, L15, \ - L20, L21, L22, L23, L24, L25, \ - L30, L31, L32, L33, L34, L35, \ - L42, L43, \ - L44, L45, L54, \ - L55, L52, L53, \ - R00, R01, R02, R03, R04, R05, \ - R10, R11, R12, R13, R14, R15, \ - R20, R21, R22, R23, R24, R25, \ - R30, R31, R32, R33, R34, R35, \ - R42, R43, \ - R51, R40, R41, \ - R50, R52, R53 \ -) \ -LAYOUT_5x6( \ - L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ - L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ - L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ - L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, \ - L42, L43, R42, R43, \ - L44, L45, R40, R41, \ - L54, L55, R50, R51, \ - L52, L53, R52, R53 \ -) - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [L_QWER] = LAYOUT_uqs( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, - KC_LBRC, KC_RBRC, - /*thumb*/ LT_EXTD_ESC, KC_SPC, LT_MOUSE_ALT_SHIFT_INS, - /*aux*/ QK_LEAD, OSM_GUI, KC_LALT, - KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, - KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_GRV), - KC_MINS, KC_EQL, - /*thumb*/ LT_FUNC_SHIFT_INS, KC_ENT, LT_NUM_BSPC, - /*aux*/ KC_RALT, KC_APP, QK_LEAD - ), - - [L_WASD] = LAYOUT_uqs( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, - KC_T, KC_TAB, KC_Q, KC_W, KC_E, KC_R, - KC_G, KC_LSFT, KC_A, KC_S, KC_D, KC_F, - KC_B, KC_GRV, KC_Z, KC_X, KC_C, KC_V, - KC_LBRC, KC_RBRC, - /*thumb*/ KC_LCTL, KC_SPC, KC_R, - /*aux*/ A(KC_M), KC_LGUI, KC_LALT, - KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_GRV), - KC_MINS, KC_EQL, - /*thumb*/ DF(L_COLM), KC_ENT, KC_BSPC, - /*aux*/ KC_F5, KC_RALT, KC_APP - ), - - [L_COLM] = LAYOUT_uqs( - KC_NO, KC_NO, KC_BTN2, KC_BTN3, KC_BTN1, KC_NO, - KC_BTN2, KC_Q, KC_W, KC_F, KC_P, KC_B, - KC_BTN1, KC_G_A, KC_A_R, KC_S_S, KC_C_T, KC_G, - KC_BTN3, KC_Z, KC_X, KC_C, KC_D, KC_V, - MS_WHUP, MS_WHDN, - /*thumb*/ LT_EXTD_ESC, SFT_T(KC_SPC), LT(L_MOUSE, KC_TAB), - /*aux*/ QK_LEAD, OSM_GUI, KC_LALT, - KC_NO, KC_BTN1, KC_BTN2, KC_BTN3, KC_NO, KC_NO, - KC_J, KC_L, KC_U, KC_Y, KC_QUOT, KC_NO, - KC_M, KC_C_N, KC_S_E, KC_A_I, KC_G_O, KC_NO, - KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_NO, - KC_NO, KC_NO, - /*thumb*/ LT_FUNC_SHIFT_INS, KC_ENT, LT_NUM_BSPC, - /*aux*/ QK_LEAD, KC_RALT, KC_APP - ), - - // Updated with inspiration from https://forum.colemak.com/topic/2014-extend-extra-extreme/ - // I like the AltGr trick from https://stevep99.github.io/seniply/ and should probably incorporate some stuff from it. - [L_EXTD] = LAYOUT_uqs( - _______, _______, _______, _______, _______, _______, - _______, KC_BTN1, KC_SCTAB, KC_PGUP, KC_CTAB, QK_LEAD, - _______, OSM_GUI, OSM_ALT, OSM_SFT, OSM_CTL, KC_RALT, - _______, ALT_TAB, MS_WHUP, MS_WHDN, KC_PGDN, INS_HARD, - _______, _______, - /*thumb*/ _______, _______, _______, - /*aux*/ _______, _______, _______, - /* ^^^^ can't be used */ - _______, _______, _______, _______, _______, _______, - KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_INS, KC_NO, - KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, KC_NO, - WIN_LEFT, WIN_DN, WIN_UP, WIN_RGHT, KC_PSTE, KC_NO, // KC_PSTE works in XTerm to emulate middle-click - _______, _______, - /*thumb*/ _______, _______, KC_BSPC, - /*aux*/ _______, _______, _______ - /* ^^^^ use these */ - ), - - // TODO: maybe swap # with ;, that way I can roll :w or :wq which I need - // often ... probably better to add a combo? - [L_NUM] = LAYOUT_uqs( - _______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, - _______, KC_SCLN, KC_COLN, KC_LCBR, KC_LPRN, KC_LBRC, - _______, KC_CIRC, KC_AMPR, KC_RCBR, KC_RPRN, KC_RBRC, - KC_GRV, KC_TILDE, - /*thumb*/ KC_ESC, KC_SPC, KC_0, - /*aux*/ _______, _______, _______, - /* ^^^^ use these */ - KC_NUM, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_EQUAL, KC_7, KC_8, KC_9, KC_KP_PLUS,_______, - KC_KP_ASTERISK,KC_4,KC_5, KC_6, MINS_UNDSCR,_______, - KC_COMM, KC_1, KC_2, KC_3, KC_KP_SLASH,KC_KP_ENTER, // Enter here, because thumb is occupied - KC_0, KC_KP_DOT, - /*thumb*/ _______, _______, _______, - /*aux*/ _______, _______, _______ - /* ^^^^ can't be used */ - ), - - [L_FUNC] = LAYOUT_uqs( - _______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - _______, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, DF(L_WASD), - _______, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, DF(L_QWER), - _______, KC_NO, KC_NO, KC_NO, KC_NO, DF(L_COLM), - KC_NO, KC_NO, - /*thumb*/ _______, _______, _______, - /*aux*/ _______, _______, _______, - /* ^^^^ use these */ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO, - KC_SCRL, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO, - KC_PAUS, KC_F1, KC_F2, KC_F3, KC_F12, KC_NO, - KC_NO, KC_NO, - /*thumb*/ _______, _______, _______, - /*aux*/ _______, _______, _______ - /* ^^^^ can't be used */ - ), - - [L_MOUSE] = LAYOUT_uqs( - _______, _______, _______, _______, _______, _______, - _______, KC_NO, KC_BTN2, KC_BTN3, KC_BTN1, KC_VOLU, - _______, KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_VOLD, - _______, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, - KC_NO, KC_NO, - /*thumb*/ _______, _______, _______, - /*aux*/ _______, _______, _______, - /* ^^^^ can't be used */ - _______, _______, _______, _______, _______, _______, - _______, _______, KC_MS_UP, MS_WHUP, _______, _______, - MS_WHLEFT,KC_MS_L, KC_MS_D, KC_MS_R, MS_WHRGHT,_______, - _______, MS_WHDN, KC_BTN3, KC_BTN4, KC_BTN5, _______, - KC_NO, KC_NO, - /*thumb*/ KC_NO, KC_BTN1, KC_BTN2, - /*aux*/ _______, _______, _______ - /* use these ^^^^ */ - ), -}; diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/uqs/rules.mk b/keyboards/handwired/dactyl_manuform/5x6/keymaps/uqs/rules.mk deleted file mode 100644 index 2cd3745fa1..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/uqs/rules.mk +++ /dev/null @@ -1 +0,0 @@ -#VIA_ENABLE = yes # doesn't fit with 7 layers :/ diff --git a/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/config.h b/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/config.h deleted file mode 100644 index 68ea3f1933..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/config.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - Copyright (c) 2020 Fred Silberberg - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. -*/ - -#pragma once - -#define EE_HANDS - -#undef TAPPING_TERM -#define TAPPING_TERM 200 - -#define OLED_DISPLAY_128X64 - -#define ENCODERS_PAD_A { F4 } -#define ENCODERS_PAD_B { F5 } - -#undef SOFT_SERIAL_PIN -#define SOFT_SERIAL_PIN D2 - -#undef OLED_TIMEOUT -#define OLED_TIMEOUT 240000 diff --git a/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/keymap.c b/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/keymap.c deleted file mode 100644 index 139cd1f510..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/keymap.c +++ /dev/null @@ -1,581 +0,0 @@ -/* - Copyright (c) 2020 Fred Silberberg - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. -*/ - -#include QMK_KEYBOARD_H -#include "333fred.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [BASE] = LAYOUT_5x6_5( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - OSM(MOD_LSFT), CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), OSM(MOD_RSFT), - KC_F4, KC_LALT, KC_BSPC, TD(TD_SYM_VIM), KC_DEL, KC_UP, KC_ENT, KC_SPC, OSL(VIM), KC_EQL, - KC_LGUI, TD(TD_COPY_PASTE), KC_DOWN, OSM(MOD_RCTL) - ), - - [SYMB] = LAYOUT_5x6_5( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - _______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, _______, KC_7, KC_8, KC_9, _______, KC_F12, - _______, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_GRV, _______, KC_4, KC_5, KC_6, _______, _______, - _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, _______, KC_1, KC_2, KC_3, _______, _______, - KC_F7, _______, _______, _______, _______, KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, KC_ENT, - _______, _______, KC_VOLD, _______ - ), - - [VIM] = LAYOUT_5x6_5( - _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, - _______, _______, _______, _______, KC_LSFT, _______, _______, _______, _______, _______, _______, _______, - _______, DLEFT, DRIGHT, KC_LCTL, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______,_______, _______, TG(GAME), _______, _______, _______, _______, - _______, _______, _______, _______ - ), - - [GAME] = LAYOUT_5x6_5( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_T, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_G, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_B, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - QK_LOCK, KC_LALT, KC_SPC, KC_ENT, KC_GRV, TG(GAME), _______, _______, _______, KC_EQL, - KC_BSPC, KC_F5, KC_F6, _______ - ), -}; - -uint32_t quote_timer; - -void keyboard_post_init_user(void) { quote_timer = 0; } - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - tap_dance_process_keycode(keycode); - return !try_handle_macro(keycode, record); -} - -static void render_logo(void) { - static const char PROGMEM qmk_logo[] = {0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00}; - - oled_write_P(qmk_logo, false); -} - -void render_led_status(void) { - led_t led_state = host_keyboard_led_state(); - if (led_state.num_lock || led_state.caps_lock || led_state.scroll_lock) { - oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); - oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); - oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); - } -} - -void render_mods_status(void) { - uint8_t mods = get_mods() | get_oneshot_mods(); - bool ctrl = mods & MOD_MASK_CTRL; - bool shft = mods & MOD_MASK_SHIFT; - bool alt = mods & MOD_MASK_ALT; - bool gui = mods & MOD_MASK_GUI; - - oled_write_P(ctrl ? PSTR("CTRL ") : PSTR(" "), false); - oled_write_P(shft ? PSTR("SHIFT ") : PSTR(" "), false); - oled_write_P(alt ? PSTR("ALT ") : PSTR(" "), false); - oled_write_ln_P(gui ? PSTR("GUI ") : PSTR(" "), false); -} - -#define MAX_LINES 8 - -void write_quote(const char* data, const uint8_t num_lines) { - uint8_t current_line = 0; - for (; current_line < (MAX_LINES - num_lines) / 2; current_line++) { - oled_advance_page(true); - } - - oled_write_ln_P(data, false); - - for (current_line += num_lines; current_line < MAX_LINES; current_line++) - { - oled_advance_page(true); - } -} - -bool oled_task_user(void) { - if (is_keyboard_master()) { - render_logo(); - oled_advance_page(/* clearPageRemainder */ true); - oled_write_P(PSTR("Layer: "), false); - switch (get_highest_layer(layer_state)) { - case BASE: - oled_write_ln_P(PSTR("Base"), false); - break; - case SYMB: - oled_write_ln_P(PSTR("Symbols"), false); - break; - case VIM: - oled_write_ln_P(PSTR("Vim"), false); - break; - case GAME: - oled_write_ln_P(PSTR("Gaming"), false); - break; - } - - render_mods_status(); - render_led_status(); - } else { - if ((quote_timer != 0 && timer_elapsed32(quote_timer) < 300000 /* 5 minutes */) || !is_oled_on()) { - return; - } - - srand(timer_read32()); - int currentQuote = rand() % 63; - quote_timer = timer_read32(); - - // Max character count on my screen is 20 characters per line. - // Quotes are from various fantasy books, mostly either from - // The Stormlight Archive or from The Wheel of Time. - switch (currentQuote) { - case 0: - write_quote(PSTR(" Life before Death \n" - " Strength before \n" - " Weakness \n" - " Journey before \n" - " Destination"), - 5); - break; - case 1: - write_quote(PSTR(" Honor is dead, but \n" - "I'll see what I can \n" - " do."), - 3); - break; - case 2: - write_quote(PSTR(" You cannot have my \n" - " pain!"), - 2); - break; - case 3: - write_quote(PSTR(" Pride doesn't win \n" - " battles"), - 2); - break; - case 4: - write_quote(PSTR(" I have practice \n" - " following fools in \n" - " their reckless \n" - " pursuits."), - 4); - break; - case 5: - write_quote(PSTR(" What is the most \n" - " important step a \n" - " man can take?"), - 3); - break; - case 6: - write_quote(PSTR(" It's the next one. \n" - " Always the next \n" - " step, Dalinar."), - 3); - break; - case 7: - write_quote(PSTR(" NO MATING."), 1); - break; - case 8: - write_quote(PSTR(" Inappropriate? \n" - "Such as... dividing \n" - " by zero?"), - 3); - break; - case 9: - write_quote(PSTR(" I am a stick!"), 1); - break; - case 10: - write_quote(PSTR(" But you could be \n" - " fire!"), - 1); - break; - case 11: - write_quote(PSTR(" Sometimes a \n" - " hyprocrite is \n" - " nothing more than \n" - " than a man in the \n" - "process of changing"), - 5); - break; - case 12: - write_quote(PSTR(" You surrender when \n" - " you are dead. Many \n" - "a man has been given\n" - " less."), - 4); - break; - case 13: - write_quote(PSTR(" Kneel and swear to \n" - " the Lord Dragon,...\n" - " or you will be \n" - " knelt."), - 4); - break; - case 14: - write_quote(PSTR("I'm right, anyway. I\n" - "wish I wasn't, but I\n" - " am. I bloody am."), - 3); - break; - case 15: - write_quote(PSTR(" Death rides on my \n" - " shoulder,. Death \n" - " walks in my \n" - " footsteps. I am \n" - " death."), - 5); - break; - case 16: - write_quote(PSTR(" The Golden Crane \n" - " flies for Tarmon \n" - " Gai'don"), - 3); - break; - case 17: - write_quote(PSTR("You humans are very \n" - " excitable"), - 2); - break; - case 18: - write_quote(PSTR(" Phaw!"), 1); - break; - case 19: - write_quote(PSTR("I may be a fool, but\n" - " I intend to be a \n" - " live fool."), - 3); - break; - case 20: - write_quote(PSTR(" Anyone who claimed \n" - " that old age had \n" - " brought them \n" - "patience was either \n" - " lying or senile."), - 5); - break; - case 21: - write_quote(PSTR("Death is light as a \n" - "feather; duty, heavy\n" - " as a mountain"), - 3); - break; - case 22: - write_quote(PSTR("Dovie'andi se tovya \n" - " sagain."), - 2); - break; - case 23: - write_quote(PSTR(" Carai an Caldazar! \n" - "Carai an Ellisande! \n" - " Al Ellisande!"), - 3); - break; - case 24: - write_quote(PSTR(" Mia dovienya \n" - " nesodhin soende."), - 2); - break; - case 25: - write_quote(PSTR(" The Wheel of Time \n" - "turns, and Ages come\n" - " and pass, leaving \n" - "memories that become\n" - " legend."), - 5); - break; - case 26: - write_quote(PSTR(" Legend fades to \n" - "myth, and even myth \n" - " is long forgotten \n" - " when the Age that \n" - "gave it birth comes \n" - " again."), - 6); - break; - case 27: - write_quote(PSTR(" What is too absurd \n" - " to believe is \n" - "believed because it \n" - "is too absurd to be \n" - " a lie."), - 5); - break; - case 28: - write_quote(PSTR("And you gave me the \n" - " way out! Chew on \n" - "that bitterness for \n" - "lunch, you flaming, \n" - "burning, misbegotten\n" - " liars!"), - 6); - break; - case 29: - write_quote(PSTR(" He was going to \n" - "start having, 'I am \n" - "not a bloody Lord', \n" - " embroidered on his \n" - " coats."), - 5); - break; - case 30: - write_quote(PSTR("All was not lost, of\n" - " course. All was \n" - " never lost as long \n" - " as you were alive."), - 4); - break; - case 31: - write_quote(PSTR(" Everything is just \n" - " bloody fine!"), - 2); - break; - case 32: - write_quote(PSTR("The wheel weaves as \n" - " the wheel wills"), - 2); - break; - case 33: - write_quote(PSTR(" Time to toss the \n" - " dice"), - 2); - break; - case 34: - write_quote(PSTR("Always plan for the \n" - " worst, child, that \n" - " way all your \n" - " surprises are \n" - " pleasant ones."), - 5); - break; - case 35: - write_quote(PSTR("'Pessimism, she is a\n" - " fond friend of \n" - "yours, yes?' 'That's\n" - " uncalled for. I \n" - " barely know her. \n" - "Mere acquaintances, \n" - " at best.'"), - 7); - break; - case 36: - write_quote(PSTR(" Do not trouble \n" - "trouble till trouble\n" - " troubles you."), - 3); - break; - case 37: - write_quote(PSTR("If your enemy offers\n" - " you two targets, \n" - " strike at a third."), - 3); - break; - case 38: - write_quote(PSTR("The wind was not the\n" - "beginning. There are\n" - " neither beginnings \n" - " nor endings to the \n" - " turning of the \n" - " Wheel of Time. But \n" - " it was _a_ \n" - " beginning."), - 8); - break; - case 39: - write_quote(PSTR("Bloody flaming ashes"), 1); - break; - case 40: - write_quote(PSTR("Then follow Lord Mat\n" - " whenever he calls \n" - "To dance with Jak O'\n" - " the Shadows."), - 4); - break; - case 41: - write_quote(PSTR(" There are no \n" - " endings, and never \n" - "will be endings, to \n" - " the turning of the \n" - " Wheel of Time. But \n" - " it was an ending."), - 6); - break; - case 42: - write_quote(PSTR(" TAI'SHAR MALKIER!"), 1); - break; - case 43: - write_quote(PSTR("I would not mind you\n" - " in my head, if you \n" - "were not so clearly \n" - " mad."), - 4); - break; - case 44: - write_quote(PSTR(" ILYENA, MY LOVE, \n" - " FORGIVE ME!"), - 2); - break; - case 45: - write_quote(PSTR(" Oh, Light. That's \n" - "impossible! We can't\n" - " use it! Cast it \n" - "away! That is death \n" - " we hold, death and \n" - "betrayal. It is HIM."), - 6); - break; - case 46: - write_quote(PSTR("Nothing ever goes as\n" - " you expect. Expect \n" - " nothing, and you \n" - " will not be \n" - " surprised. Expect \n" - " nothing. Hope for \n" - " nothing. Nothing."), - 7); - break; - case 47: - write_quote(PSTR(" Distant Weeping"), 1); - break; - case 48: - write_quote(PSTR("Are you real? Am I?"), 1); - break; - case 49: - write_quote(PSTR(" I'm just an old \n" - "gleeman, who could I\n" - " possibly be \n" - " dangerous to?"), - 4); - break; - case 50: - write_quote(PSTR(" Mat bloody Cauthon \n" - " is no bloody hero!"), - 2); - break; - case 51: - write_quote(PSTR("You are a coward and\n" - " a tyrant. I'd name \n" - " you Darkfriend as \n" - "well, but I suspect \n" - " that the Dark One \n" - " would perhaps be \n" - " embarrassed to \n" - "associate with you."), - 8); - break; - case 52: - write_quote(PSTR(" I win again, Lews \n" - " Therin."), - 2); - break; - case 53: - write_quote(PSTR("May you always find \n" - " water and shade."), - 2); - break; - case 54: - write_quote(PSTR(" I will never serve \n" - "you, Father of Lies.\n" - "In a thousand lives,\n" - "I never have. I know\n" - " that. I'm sure of \n" - "it. Come. It is time\n" - " to die."), - 7); - break; - case 55: - write_quote(PSTR(" There may be more \n" - "than one way to skin\n" - " a cat, but the cat \n" - "isn't going to like \n" - " any of them."), - 5); - break; - case 56: - write_quote(PSTR("Please see that they\n" - " know, although the \n" - "word Black may brand\n" - "my name forever, my \n" - "soul is Brown. Tell \n" - " them..."), - 6); - break; - case 57: - write_quote(PSTR(" 'Your soul is of a \n" - "pure white, Verin,' \n" - "Egwene said softly. \n" - " 'Like the Light \n" - " itself.'"), - 5); - break; - case 58: - write_quote(PSTR(" Asha'man, Kill!"), 1); - break; - case 59: - write_quote(PSTR(" Let the lord of \n" - " chaos rule."), - 2); - break; - case 60: - write_quote(PSTR(" There's always \n" - " another secret."), - 2); - break; - case 61: - write_quote(PSTR(" You see the great \n" - "thing about madness \n" - "is that it's all in \n" - " your head."), - 4); - break; - case 62: - write_quote(PSTR(" In one Age, called \n" - " the Third Age by \n" - "some, an Age yet to \n" - " come, an Age long \n" - " past, a wind rose \n" - " above..."), - 6); - break; - } - } - return false; -} - -bool encoder_update_user(uint8_t index, bool clockwise) { - // On the left, control the volume. On the right, scroll the page - if (index == 0) { - if (clockwise) { - tap_code(KC_WH_U); - } else { - tap_code(KC_WH_D); - } - } else { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - return true; -} diff --git a/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/rules.mk b/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/rules.mk deleted file mode 100644 index c83f96e102..0000000000 --- a/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -KEY_LOCK_ENABLE = yes -CONSOLE_ENABLE = no -OLED_ENABLE = yes -ENCODER_ENABLE = yes diff --git a/keyboards/handwired/minorca/keymaps/ridingqwerty/config.h b/keyboards/handwired/minorca/keymaps/ridingqwerty/config.h deleted file mode 100644 index c54aac3189..0000000000 --- a/keyboards/handwired/minorca/keymaps/ridingqwerty/config.h +++ /dev/null @@ -1,7 +0,0 @@ -#pragma once - -#undef MATRIX_COL_PINS -#define MATRIX_COL_PINS { B3, B7, D0, D1, D2, D3, C6, C7, B5, B6, F7, F6 } - -#undef MATRIX_ROW_PINS -#define MATRIX_ROW_PINS { F0, F1, F4, F5 } diff --git a/keyboards/handwired/minorca/keymaps/ridingqwerty/keymap.c b/keyboards/handwired/minorca/keymaps/ridingqwerty/keymap.c deleted file mode 100644 index 26e6fc630c..0000000000 --- a/keyboards/handwired/minorca/keymaps/ridingqwerty/keymap.c +++ /dev/null @@ -1,123 +0,0 @@ -/* Copyright 2019 George Koenig - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H -#include "ridingqwerty.h" - -/* MinOrca - ┏━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┓ - ┃ ⎋ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ ❦ ⌫ ┃ - ┠────────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴────────┨ - ┃ ¶ ⇥ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ 🔢 ↵ ┃ - ┠──────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬───────────┨ - ┃ " ⇧ │ Z │ X │ C │ V │ B │ N │ M │ , │ 𝔽 . │ ⇧ / ┃ - ┠──────────┬───┴──────┬─┴────────┼────────┴────────┴──┬─────┴────────┴─────┬──┴───────┬┴───────┬┴───────────┨ - ┃ { ⎈ │ [ ⌘ │ ( ⌥ │ 🔢 ␣ │ ★ ␣ │ ) ⌥ │ ] ⌘ │ } ⎈ ┃ - ┗━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━┷━━━━━━━━━━━━┛ -*/ - -#define LAYOUT_minorca( \ - KA00, KA01, KA02, KA03, KA04, KA05, KA06, KA07, KA08, KA09, KA10, KA11, \ - KB00, KB01, KB02, KB03, KB04, KB05, KB06, KB07, KB08, KB09, KB11, \ - KC00, KC02, KC03, KC04, KC05, KC06, KC07, KC08, KC09, KC10, KC11, \ - KD00, KD02, KD03, KD04, KD07, KD09, KD10, KD11 \ -) { \ - { KA00, KA01, KA02, KA03, KA04, KA05, KA06, KA07, KA08, KA09, KA10, KA11 }, \ - { KB00, KB01, KB02, KB03, KB04, KB05, KB06, KB07, KB08, KB09, KC_NO, KB11 }, \ - { KC00, KC_NO, KC02, KC03, KC04, KC05, KC06, KC07, KC08, KC09, KC10, KC11 }, \ - { KD00, KC_NO, KD02, KD03, KD04, KC_NO, KC_NO, KD07, KC_NO, KD09, KD10, KD11 } \ -} - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = { - {QK_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, SC(BSPC) }, - {ED(TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, XXXXXXX, NM(SCLN) }, - {LS(QUOT), XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, FK(DOT), RS(SLSH) }, - {LC(ESC), XXXXXXX, LG(LBRC), LA(RBRC), NM(BSPC), XXXXXXX, XXXXXXX, SM(SPC), XXXXXXX, RA(MINS), RG(EQL), RC(ENT) } -/* - //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ - //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤ - //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤ - //├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤ - //└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘ -*/ - - - }, -#ifdef UNICODE_H - [_RUNE] = { - {KC_ESC, UM(INGWZ), UM(WUNJO), UM(EHWAZ), UM(RAIDO), UM(TIWAZ), UM(IWAZ), UM(UR), UM(ISAZ), UM(ETHEL), UM(PERTH), SC(BSPC) }, - {ED(TAB), UM(ANSUZ), UM(SOWIL), UM(DAGAZ), UM(FE), UM(GEBO), UM(HAGLZ), UM(JERAN), UM(KAUNA), UM(LAUKZ), XXXXXXX, NM(SCLN) }, - {MT_QUOT, XXXXXXX, UM(ALGIZ), UM(THURS), UM(KAUNA), UM(WUNJO), UM(BEORC), UM(NAUDZ), UM(MANNZ), KC_COMM, FK(DOT), RS(SLSH) }, - {LC(ESC), XXXXXXX, LG(LBRC), LA(RBRC), NM(BSPC), XXXXXXX, XXXXXXX, SM(SPC), XXXXXXX, RA(MINS), RG(EQL), RC(ENT) } - }, -#endif - [_EDITOR] = { - //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ - {KC_GRV, _______, _______, KC_END, _______, KC_F5, _______, _______, KC_INS, _______, KC_PGUP, KC_DEL }, - //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤ - {_______, KC_HOME, _______, KC_DEL, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, KC_SCLN }, - //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤ - {_______, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PGDN, _______, KC_SCLN, KC_QUOT, KC_BSLS }, - //├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤ - {_______, XXXXXXX, _______, _______, KC_EQL, XXXXXXX, XXXXXXX, KC_MINS, XXXXXXX, KC_COLN, KC_DQUO, KC_PIPE } - //└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘ - }, - [_NUMBER] = { - //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ - {KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC }, - //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤ - {_______, KC_4, KC_5, KC_6, KC_PAST, _______, KC_PPLS, KC_4, KC_5, KC_6, XXXXXXX, _______ }, - //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤ - {_______, KC_7, KC_8, KC_9, KC_SLSH, _______, _______, KC_MINS, KC_1, KC_2, KC_3, _______ }, - //├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤ - {_______, XXXXXXX, KC_0, _______, _______, XXXXXXX, XXXXXXX, KC_0, XXXXXXX, KC_DOT, _______, _______ } - //└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘ - }, - [_SYMBOL] = { - //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ - {KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL }, - //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤ - {_______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, XXXXXXX, _______ }, - //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤ - {_______, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, KC_SCLN, KC_QUOT, KC_BSLS }, - //├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤ - {_______, XXXXXXX, _______, _______, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_COLN, KC_DQUO, KC_PIPE } - //└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘ - }, - [_SECRET] = { - //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ - {QK_BOOT, _______, _______, _______, SECRET0, SECRET1, _______, _______, _______, _______, VERSION, _______ }, - //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤ - {_______, SECRET4, SECRET8, DB_TOGG, _______, _______, _______, _______, _______, SECRET7, XXXXXXX, MAKE }, - //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤ - {_______, XXXXXXX, SECRET6, _______, SECRET2, SECRET5, _______, _______, SECRET3, _______, _______, _______ }, - //├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤ - {_______, XXXXXXX, _______, _______, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, _______, _______, _______ } - //└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘ - }, - [_F_KEYS] = { - //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ - {KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11 }, - //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤ - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______ }, - //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤ - {_______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - //├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤ - {_______, XXXXXXX, _______, _______, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, _______, _______, _______ } - //└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘ - }, -}; diff --git a/keyboards/handwired/minorca/keymaps/ridingqwerty/readme.md b/keyboards/handwired/minorca/keymaps/ridingqwerty/readme.md deleted file mode 100644 index 4f0b3564b9..0000000000 --- a/keyboards/handwired/minorca/keymaps/ridingqwerty/readme.md +++ /dev/null @@ -1 +0,0 @@ -# Handwire of Minorca using teensy 2.0 diff --git a/keyboards/handwired/minorca/keymaps/ridingqwerty/rules.mk b/keyboards/handwired/minorca/keymaps/ridingqwerty/rules.mk deleted file mode 100644 index 10f2309f01..0000000000 --- a/keyboards/handwired/minorca/keymaps/ridingqwerty/rules.mk +++ /dev/null @@ -1,6 +0,0 @@ -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -UNICODEMAP_ENABLE = yes # Unicode Map diff --git a/keyboards/handwired/reclined/keymaps/pdl/config.h b/keyboards/handwired/reclined/keymaps/pdl/config.h deleted file mode 100644 index 3a89a0a4d2..0000000000 --- a/keyboards/handwired/reclined/keymaps/pdl/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define TAPPING_TERM 200 diff --git a/keyboards/handwired/reclined/keymaps/pdl/keymap.c b/keyboards/handwired/reclined/keymaps/pdl/keymap.c deleted file mode 100644 index bb6976de9b..0000000000 --- a/keyboards/handwired/reclined/keymaps/pdl/keymap.c +++ /dev/null @@ -1,69 +0,0 @@ -/* -This is the keymap for the reclined keyboard - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert -Copyright 2017 Art Ortenburger -Copyright 2018 Daniel Perrett - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H -#include "pdl.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_wrapper( - KC_TAB, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC, - MY_SESC, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, MY_SQUO, - MY_CBSL, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, MY_SQUO, - KC_LCTL, KC_LGUI, KC_LALT, NUMBRS, NAVIGN, KC_SPC, MY_SSPC, NUMBRS, NAVIGN, MY_AMNU, FUNCTN, MY_CENT - ), - [_PROXIM] = LAYOUT_wrapper( - MY_FESC, _________________PROXIM_L1_________________, _________________PROXIM_R1_________________, KC_BSPC, - KC_TAB, _________________PROXIM_L2_________________, _________________PROXIM_R2_________________, MY_ASCL, - MY_SBSL, _________________PROXIM_L3_________________, _________________PROXIM_R3_________________, MY_SENT, - KC_LCTL, KC_LGUI, KC_LALT, NUMBRS, NAVIGN, KC_SPC, MY_SSPC, NUMBRS, NAVIGN, MY_AMNU, FUNCTN, MY_CENT - ), - [_NAVIGN] = LAYOUT_wrapper( - _______, _________________NAVIGN_L1_________________, _______, _______, _______, _______, _______, _______, - _______, _________________NAVIGN_L2_________________, _______, _______, _______, _______, _______, _______, - _______, _________________NAVIGN_L3_________________, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_PUNCTN] = LAYOUT_wrapper( - _______, _______, _______, _______, _______, _______, _________________PUNCTN_R1_________________, _______, - _______, _______, _______, _______, _______, _______, _________________PUNCTN_R2_________________, _______, - _______, _______, _______, _______, _______, _______, _________________PUNCTN_R3_________________, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_NUMBRS] = LAYOUT_wrapper( - _______, _________________NUMBRS_L1_________________, _______, _______, _______, _______, _______, _______, - _______, _________________NUMBRS_L2_________________, _______, _______, _______, _______, _______, _______, - _______, _________________NUMBRS_L3_________________, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_CODING] = LAYOUT_wrapper( - _______, _______, _______, _______, _______, _______, _________________CODING_R1_________________, _______, - _______, _______, _______, _______, _______, _______, _________________CODING_R2_________________, _______, - _______, _______, _______, _______, _______, _______, _________________CODING_R3_________________, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_FUNCTN] = LAYOUT_wrapper( - _______, _________________FUNCTN_L1_________________, _________________FUNCTN_R1_________________, MY_CAD, - _______, _________________FUNCTN_L2_________________, _________________FUNCTN_R2_________________, KC_PSCR, - _______, _________________FUNCTN_L3_________________, _________________FUNCTN_R3_________________, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; diff --git a/keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/config.h deleted file mode 100644 index 1a6512052c..0000000000 --- a/keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -// Define options -#define TAPPING_TERM 135 -#define PERMISSIVE_HOLD -#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/keymap.c deleted file mode 100644 index f65f6aa17a..0000000000 --- a/keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/keymap.c +++ /dev/null @@ -1,196 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -// Tap dance declarations -enum { - TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI, - TD_ESC_LCTL_LALT_WINDOWS_EMOJI -}; - -// Custom tapping term for multi function keys -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TD(TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI) : - case TD(TD_ESC_LCTL_LALT_WINDOWS_EMOJI) : - case LGUI_T(KC_SPC) : - case LT(1, KC_SPC) : - case LT(1, KC_TAB) : - case LT(2, KC_ENT) : - return 200; - default: - return TAPPING_TERM; - } -}; - -// Begin quad TD -typedef enum { - TD_NONE, - TD_UNKNOWN, - TD_SINGLE_HOLD, - TD_DOUBLE_HOLD, - TD_TRIPLE_HOLD, - TD_SINGLE_TAP, - TD_DOUBLE_TAP, - TD_TRIPLE_TAP -} td_state_t; - -typedef struct { - bool is_press_action; - td_state_t state; -} td_tap_t; - -// Create an instance of 'td_tap_t' for the 'x' tap dance. -static td_tap_t xtap_state = { - .is_press_action = true, - .state = TD_NONE -}; - -td_state_t cur_dance(tap_dance_state_t *state) { - if (state->count == 1) { - if (state->interrupted || !state->pressed) { - return TD_SINGLE_TAP; - } else { - return TD_SINGLE_HOLD; - } - } else if (state->count == 2) { - if (state->interrupted || !state->pressed) { - return TD_DOUBLE_TAP; - } else { - return TD_DOUBLE_HOLD; - } - } else if (state->count == 3) { - if (state->interrupted || !state->pressed) { - return TD_TRIPLE_TAP; - } else { - return TD_TRIPLE_HOLD; - } - } - - return TD_UNKNOWN; -} - -void td_esc_lalt_lctl_spotlight_emoji_finished(tap_dance_state_t *state, void *user_data) { - xtap_state.state = cur_dance(state); - switch (xtap_state.state) { - case TD_SINGLE_TAP: tap_code(KC_ESC); break; - case TD_SINGLE_HOLD: register_code(KC_LALT); break; - case TD_DOUBLE_HOLD: register_code(KC_LCTL); break; - case TD_DOUBLE_TAP: tap_code16(G(KC_SPC)); break; - case TD_TRIPLE_TAP: tap_code16(C(G(KC_SPC))); break; - default: break; - } -} - -void td_esc_lalt_lctl_spotlight_emoji_reset(tap_dance_state_t *state, void *user_data) { - switch (xtap_state.state) { - case TD_SINGLE_TAP: unregister_code(KC_ESC); break; - case TD_SINGLE_HOLD: unregister_code(KC_LALT); break; - case TD_DOUBLE_HOLD: unregister_code(KC_LCTL); break; - default: break; - } - xtap_state.state = TD_NONE; -} - -void td_esc_lctl_lalt_windows_emoji_finished(tap_dance_state_t *state, void *user_data) { - xtap_state.state = cur_dance(state); - switch (xtap_state.state) { - case TD_SINGLE_TAP: tap_code16(KC_ESC); break; - case TD_SINGLE_HOLD: register_code(KC_LCTL); break; - case TD_DOUBLE_HOLD: register_code(KC_LALT); break; - case TD_DOUBLE_TAP: tap_code(KC_LGUI); break; - case TD_TRIPLE_TAP: tap_code16(G(KC_DOT)); break; - default: break; - } -} - -void td_esc_lctl_lalt_windows_emoji_reset(tap_dance_state_t *state, void *user_data) { - switch (xtap_state.state) { - case TD_SINGLE_TAP: unregister_code(KC_ESC); break; - case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break; - case TD_DOUBLE_HOLD: unregister_code(KC_LALT); break; - default: break; - } - xtap_state.state = TD_NONE; -} - - // Tap Dance definitions -tap_dance_action_t tap_dance_actions[] = { - [TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_esc_lalt_lctl_spotlight_emoji_finished, td_esc_lalt_lctl_spotlight_emoji_reset), - [TD_ESC_LCTL_LALT_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_esc_lctl_lalt_windows_emoji_finished, td_esc_lctl_lalt_windows_emoji_reset) -}; -// For the x tap dance. Put it here so it can be used in any keymap -void x_finished(tap_dance_state_t *state, void *user_data); -void x_reset(tap_dance_state_t *state, void *user_data); - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_split_3x5_2( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - TD(TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI), LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT) - ), - [1] = LAYOUT_split_3x5_2( - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - [2] = LAYOUT_split_3x5_2( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - [3] = LAYOUT_split_3x5_2( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), TO(5), TO(4), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - [4] = LAYOUT_split_3x5_2( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - TD(TD_ESC_LCTL_LALT_WINDOWS_EMOJI), KC_SPC, LT(6, KC_TAB), LT(7, KC_ENT) - ), - [5] = LAYOUT_split_3x5_2( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, KC_SLSH, - KC_LCTL, KC_SPC, LT(6, KC_TAB), LT(7, KC_ENT) - ), - [6] = LAYOUT_split_3x5_2( - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - [7] = LAYOUT_split_3x5_2( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(8), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - [8] = LAYOUT_split_3x5_2( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), TO(5), TO(0), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), -}; \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/rules.mk deleted file mode 100644 index e5ddcae8d9..0000000000 --- a/keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/rules.mk +++ /dev/null @@ -1 +0,0 @@ -TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/config.h deleted file mode 100644 index 1a6512052c..0000000000 --- a/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -// Define options -#define TAPPING_TERM 135 -#define PERMISSIVE_HOLD -#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/keymap.c deleted file mode 100644 index 293082af66..0000000000 --- a/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/keymap.c +++ /dev/null @@ -1,281 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -#include -char wpm_str[10]; - -// Tap Dance declarations -enum { - TD_ESC_SPOTLIGHT_EMOJI, - TD_ESC_WINDOWS_EMOJI -}; - -void td_esc_spotlight_emoji (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - tap_code(KC_ESC); - } else if (state->count == 2) { - tap_code16(G(KC_SPC)); - } else if (state->count == 3) { - tap_code16(C(G(KC_SPC))); - } -} - -void td_esc_windows_emoji (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - tap_code(KC_ESC); - } else if (state->count == 2) { - tap_code(KC_LGUI); - } else if (state->count == 3) { - tap_code16(G(KC_DOT)); - } -}; - - // Tap Dance definitions -tap_dance_action_t tap_dance_actions[] = { - [TD_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_spotlight_emoji), - [TD_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_windows_emoji) -}; - -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TD(TD_ESC_SPOTLIGHT_EMOJI) : - case TD(TD_ESC_WINDOWS_EMOJI) : - case LGUI_T(KC_SPC) : - case LT(1, KC_TAB) : - case LT(2, KC_ENT) : - return 200; - default: - return TAPPING_TERM; - } -}; - -// Layer Names -enum layer_names { - _MAC_DEFAULT, - _MAC_CODE, - _MAC_NUM, - _MAC_FUNC, - _WIN_DEFAULT, - _WIN_CODE, - _WIN_NUM, - _WIN_FUNC -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_split_3x5_3( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_ESC_SPOTLIGHT_EMOJI) - ), - [1] = LAYOUT_split_3x5_3( - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) - ), - [2] = LAYOUT_split_3x5_3( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) - ), - [3] = LAYOUT_split_3x5_3( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) - ), - [4] = LAYOUT_split_3x5_3( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI) - ), - [5] = LAYOUT_split_3x5_3( - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE,KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI) - ), - [6] = LAYOUT_split_3x5_3( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI) - ), - [7] = LAYOUT_split_3x5_3( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI) - ) -}; - -// OLED -#ifdef OLED_ENABLE -// WPM responsiveness -#define IDLE_FRAMES 5 -#define IDLE_SPEED 20 // Speed at which animation goes into idle -#define TAP_FRAMES 2 -#define TAP_SPEED 40 // WPM to trigger Bongo -#define ANIM_FRAME_DURATION 200 // Frame MS -#define ANIM_SIZE 636 // Number of bytes in array, max 1024 - -uint32_t anim_timer = 0; -uint32_t anim_sleep = 0; -uint8_t current_idle_frame = 0; -uint8_t current_tap_frame = 0; - -static void render_animation(void) { - static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x82, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x01, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x34, 0xc4, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0d, 0x31, 0xc1, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; - static const char PROGMEM prep[][ANIM_SIZE] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; - static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = { - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x98, 0xc0, 0x88, 0x88, 0x8c, 0x9c, 0x1c, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x0f, 0x07, 0x03, 0x03, 0x61, 0xf0, 0xf8, 0xfc, 0x60, 0x01, 0x01, 0x01, 0x3c, 0x78, 0xf8, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - }; - - void animation_phase(void) { - if (get_current_wpm() <= IDLE_SPEED) { - current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES; - oled_write_raw_P(idle[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIM_SIZE); - } - - if (get_current_wpm() > IDLE_SPEED && get_current_wpm() < TAP_SPEED) { - oled_write_raw_P(prep[0], ANIM_SIZE); - } - - if (get_current_wpm() >= TAP_SPEED) { - current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; - oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE); - } - } - if (get_current_wpm() != 000) { - oled_on(); // Enables OLED on any alpha keypress - - if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { - anim_timer = timer_read32(); - animation_phase(); - } - - anim_sleep = timer_read32(); - } else { - if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { - oled_off(); - } else { - if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { - anim_timer = timer_read32(); - animation_phase(); - } - } - } -} - -// Draw to OLED -bool oled_task_user(void) { - // Render Bongo Cat - render_animation(); - - // WPM text - oled_set_cursor(0, 0); - sprintf(wpm_str, "%03d", get_current_wpm()); // %03d defines digits to display - oled_write(wpm_str, false); - - // Layer text - oled_set_cursor(0, 1); - switch (get_highest_layer(layer_state)) { - case _MAC_DEFAULT : - oled_write_P(PSTR("MAC"), false); - oled_set_cursor(0, 2); - oled_write_P(PSTR("MAIN"), false); - break; - case _MAC_CODE : - oled_write_P(PSTR("MAC"), false); - oled_set_cursor(0, 2); - oled_write_P(PSTR("CODE"), false); - break; - case _MAC_NUM : - oled_write_P(PSTR("MAC"), false); - oled_set_cursor(0, 2); - oled_write_P(PSTR("NUM"), false); - break; - case _MAC_FUNC : - oled_write_P(PSTR("MAC"), false); - oled_set_cursor(0, 2); - oled_write_P(PSTR("FUNC"), false); - break; - case _WIN_DEFAULT : - oled_write_P(PSTR("WIN"), false); - oled_set_cursor(0, 2); - oled_write_P(PSTR("MAIN"), false); - break; - case _WIN_CODE : - oled_write_P(PSTR("WIN"), false); - oled_set_cursor(0, 2); - oled_write_P(PSTR("CODE"), false); - break; - case _WIN_NUM : - oled_write_P(PSTR("WIN"), false); - oled_set_cursor(0, 2); - oled_write_P(PSTR("NUM"), false); - break; - case _WIN_FUNC : - oled_write_P(PSTR("WIN"), false); - oled_set_cursor(0, 2); - oled_write_P(PSTR("FUNC"), false); - break; - } - - // Caps lock text - led_t led_state = host_keyboard_led_state(); - oled_set_cursor(0, 3); - oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR(""), false); - - return false; -} -#endif - diff --git a/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/rules.mk deleted file mode 100644 index 6e339da6c6..0000000000 --- a/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -OLED_ENABLE = yes -WPM_ENABLE = yes -LTO_ENABLE = yes -TAP_DANCE_ENABLE = yes \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/config.h deleted file mode 100644 index 1a6512052c..0000000000 --- a/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -// Define options -#define TAPPING_TERM 135 -#define PERMISSIVE_HOLD -#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/keymap.c deleted file mode 100644 index ba5f7bc7a8..0000000000 --- a/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/keymap.c +++ /dev/null @@ -1,114 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -// Tap Dance declarations -enum { - TD_ESC_SPOTLIGHT_EMOJI, - TD_ESC_WINDOWS_EMOJI -}; - -void td_esc_spotlight_emoji (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - tap_code(KC_ESC); - } else if (state->count == 2) { - tap_code16(G(KC_SPC)); - } else if (state->count == 3) { - tap_code16(C(G(KC_SPC))); - } -} - -void td_esc_windows_emoji (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - tap_code(KC_ESC); - } else if (state->count == 2) { - tap_code(KC_LGUI); - } else if (state->count == 3) { - tap_code16(G(KC_DOT)); - } -}; - - // Tap Dance definitions -tap_dance_action_t tap_dance_actions[] = { - [TD_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_spotlight_emoji), - [TD_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_windows_emoji) -}; - -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TD(TD_ESC_SPOTLIGHT_EMOJI) : - case TD(TD_ESC_WINDOWS_EMOJI) : - case LGUI_T(KC_SPC) : - case LT(1, KC_TAB) : - case LT(2, KC_ENT) : - return 200; - default: - return TAPPING_TERM; - } -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ortho_3x10_7( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_ESC_SPOTLIGHT_EMOJI) - ), - [1] = LAYOUT_ortho_3x10_7( - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) - ), - [2] = LAYOUT_ortho_3x10_7( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) - ), - [3] = LAYOUT_ortho_3x10_7( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) - ), - [4] = LAYOUT_ortho_3x10_7( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI) - ), - [5] = LAYOUT_ortho_3x10_7( - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI) - ), - [6] = LAYOUT_ortho_3x10_7( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI) - ), - [7] = LAYOUT_ortho_3x10_7( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI) - ) -}; diff --git a/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/rules.mk deleted file mode 100644 index e5ddcae8d9..0000000000 --- a/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/rules.mk +++ /dev/null @@ -1 +0,0 @@ -TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/config.h deleted file mode 100644 index 1a6512052c..0000000000 --- a/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -// Define options -#define TAPPING_TERM 135 -#define PERMISSIVE_HOLD -#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/keymap.c deleted file mode 100644 index dfe688267e..0000000000 --- a/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/keymap.c +++ /dev/null @@ -1,174 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -// Tap dance declarations -enum { - TD_LCTL_ESC_SPOTLIGHT_EMOJI, - TD_LALT_ESC_WINDOWS_EMOJI -}; - -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) : - case TD(TD_LALT_ESC_WINDOWS_EMOJI) : - case LGUI_T(KC_SPC) : - case LT(1, KC_TAB) : - case LT(2, KC_ENT) : - return 200; - default: - return TAPPING_TERM; - } -}; - -// Begin quad TD -typedef enum { - TD_NONE, - TD_UNKNOWN, - TD_SINGLE_HOLD, - TD_SINGLE_TAP, - TD_DOUBLE_TAP, - TD_TRIPLE_TAP -} td_state_t; - -typedef struct { - bool is_press_action; - td_state_t state; -} td_tap_t; - -// Create an instance of 'td_tap_t' for the 'x' tap dance. -static td_tap_t xtap_state = { - .is_press_action = true, - .state = TD_NONE -}; - -td_state_t cur_dance(tap_dance_state_t *state) { - if (state->count == 1) { - if (state->interrupted || !state->pressed) { - return TD_SINGLE_TAP; - } else { - return TD_SINGLE_HOLD; - } - } else if (state->count == 2) { - return TD_DOUBLE_TAP; - } else if (state->count == 3) { - return TD_TRIPLE_TAP; - } - - return TD_UNKNOWN; -} - -void td_lctl_esc_spotlight_emoji_finished(tap_dance_state_t *state, void *user_data) { - xtap_state.state = cur_dance(state); - switch (xtap_state.state) { - case TD_SINGLE_TAP: register_code(KC_ESC); break; - case TD_SINGLE_HOLD: register_code(KC_LCTL); break; - case TD_DOUBLE_TAP: tap_code16(G(KC_SPC)); break; - case TD_TRIPLE_TAP: tap_code16(C(G(KC_SPC))); break; - default: break; - } -} - -void td_lctl_esc_spotlight_emoji_reset(tap_dance_state_t *state, void *user_data) { - switch (xtap_state.state) { - case TD_SINGLE_TAP: unregister_code(KC_ESC); break; - case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break; - default: break; - } - xtap_state.state = TD_NONE; -} - -void td_lalt_esc_windowr_emoji_finished(tap_dance_state_t *state, void *user_data) { - xtap_state.state = cur_dance(state); - switch (xtap_state.state) { - case TD_SINGLE_TAP: register_code(KC_ESC); break; - case TD_SINGLE_HOLD: register_code(KC_LALT); break; - case TD_DOUBLE_TAP: tap_code(KC_LGUI); break; - case TD_TRIPLE_TAP: tap_code16(G(KC_DOT)); break; - default: break; - } -} - -void td_lalt_esc_windowr_emoji_reset(tap_dance_state_t *state, void *user_data) { - switch (xtap_state.state) { - case TD_SINGLE_TAP: unregister_code(KC_ESC); break; - case TD_SINGLE_HOLD: unregister_code(KC_LALT); break; - default: break; - } - xtap_state.state = TD_NONE; -} - - // Tap Dance definitions -tap_dance_action_t tap_dance_actions[] = { - [TD_LCTL_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lctl_esc_spotlight_emoji_finished, td_lctl_esc_spotlight_emoji_reset), - [TD_LALT_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lalt_esc_windowr_emoji_finished, td_lalt_esc_windowr_emoji_reset), -}; -// For the x tap dance. Put it here so it can be used in any keymap -void x_finished(tap_dance_state_t *state, void *user_data); -void x_reset(tap_dance_state_t *state, void *user_data); - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ortho_3x10_5( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT) - ), - [1] = LAYOUT_ortho_3x10_5( - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS - ), - [2] = LAYOUT_ortho_3x10_5( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS - ), - [3] = LAYOUT_ortho_3x10_5( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS - ), - [4] = LAYOUT_ortho_3x10_5( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT) - ), - [5] = LAYOUT_ortho_3x10_5( - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT) - ), - [6] = LAYOUT_ortho_3x10_5( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT) - ), - [7] = LAYOUT_ortho_3x10_5( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT) - ) -}; \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/rules.mk deleted file mode 100644 index e5ddcae8d9..0000000000 --- a/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/rules.mk +++ /dev/null @@ -1 +0,0 @@ -TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/config.h deleted file mode 100644 index 1a6512052c..0000000000 --- a/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -// Define options -#define TAPPING_TERM 135 -#define PERMISSIVE_HOLD -#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/keymap.c deleted file mode 100644 index c196c3b1e9..0000000000 --- a/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/keymap.c +++ /dev/null @@ -1,511 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -#include -char wpm_str[10]; - -// Tap Dance declarations -enum { - TD_ESC_SPOTLIGHT_EMOJI, - TD_ESC_WINDOWS_EMOJI -}; - -void td_esc_spotlight_emoji (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - tap_code(KC_ESC); - } else if (state->count == 2) { - tap_code16(G(KC_SPC)); - } else if (state->count == 3) { - tap_code16(C(G(KC_SPC))); - } -} - -void td_esc_windows_emoji (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - tap_code(KC_ESC); - } else if (state->count == 2) { - tap_code(KC_LGUI); - } else if (state->count == 3) { - tap_code16(G(KC_DOT)); - } -}; - - // Tap Dance definitions -tap_dance_action_t tap_dance_actions[] = { - [TD_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_spotlight_emoji), - [TD_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_windows_emoji) -}; - -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TD(TD_ESC_SPOTLIGHT_EMOJI) : - case TD(TD_ESC_WINDOWS_EMOJI) : - case LGUI_T(KC_SPC) : - case LT(1, KC_TAB) : - case LT(2, KC_ENT) : - return 200; - default: - return TAPPING_TERM; - } -}; - -// Layer Names -enum layer_names { - _MAC_DEFAULT, - _MAC_CODE, - _MAC_NUM, - _MAC_FUNC, - _WIN_DEFAULT, - _WIN_CODE, - _WIN_NUM, - _WIN_FUNC -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ortho_4_3x10_4( - KC_LCTL, KC_2, KC_3, TD(TD_ESC_SPOTLIGHT_EMOJI), - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_ENT, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT) - ), - [1] = LAYOUT_ortho_4_3x10_4( - KC_LCTL, KC_2, KC_3, TD(TD_ESC_SPOTLIGHT_EMOJI), - KC_TAB, KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_ENT, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS - ), - [2] = LAYOUT_ortho_4_3x10_4( - KC_LCTL, KC_2, KC_3, TD(TD_ESC_SPOTLIGHT_EMOJI), - KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_ENT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS - ), - [3] = LAYOUT_ortho_4_3x10_4( - KC_LCTL, KC_2, KC_3, TD(TD_ESC_SPOTLIGHT_EMOJI), - KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), - KC_ENT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS - ), - [4] = LAYOUT_ortho_4_3x10_4( - KC_1, KC_2, KC_3, TD(TD_ESC_WINDOWS_EMOJI), - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_ENT, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT) - ), - [5] = LAYOUT_ortho_4_3x10_4( - KC_1, KC_2, KC_3, TD(TD_ESC_WINDOWS_EMOJI), - KC_TAB, KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_ENT, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS - ), - [6] = LAYOUT_ortho_4_3x10_4( - KC_1, KC_2, KC_3, TD(TD_ESC_WINDOWS_EMOJI), - KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_ENT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS - ), - [7] = LAYOUT_ortho_4_3x10_4( - KC_1, KC_2, KC_3, TD(TD_ESC_WINDOWS_EMOJI), - KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), - KC_ENT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS - ) -}; - -// OLED -#ifdef OLED_ENABLE -// WPM responsiveness -#define IDLE_FRAMES 5 // How many idle frames in animation -#define IDLE_SPEED 20 // Speed at which animation idles -#define TAP_FRAMES 2 // How many tapping frames -#define TAP_SPEED 40 // WPM to trigger Bongo -#define ANIMATION_FRAME_DURATION 200 // MS duration of each frame -#define ANIMATION_SIZE 256 // Number of bytes per animation frame - -uint32_t anim_timer = 0; -uint32_t anim_sleep = 0; -uint8_t current_idle_frame = 0; -uint8_t current_tap_frame = 0; - -static void render_animation(void) { - static const char PROGMEM idle[IDLE_FRAMES][ANIMATION_SIZE] = { - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, - 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0d, 0x31, 0xc1, 0x01, 0x01, 0x01, 0x02, 0x02, - 0x02, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, - 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, - 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, - 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, - 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, - 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, - 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x34, 0xc4, 0x04, 0x04, 0x04, 0x08, 0x08, - 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, - 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, - 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, - 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, - 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, - 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, - 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x82, 0x02, 0x02, 0x04, 0x04, 0x08, - 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x01, 0x01, 0x02, 0x04, 0x04, 0x08, - 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, - 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, - 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, - 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x10, 0x08, - 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, - 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, - 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, - 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, - 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, - 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, - 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, - 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, - 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, - 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, - 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, - 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, - 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - } - }; - static const char PROGMEM prep[][ANIMATION_SIZE] = { - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, - 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, - 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, - 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, - 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, - 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, - 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, - 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, - 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - } - }; - static const char PROGMEM tap[TAP_FRAMES][ANIMATION_SIZE] = { - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, - 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, - 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, - 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, - 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, - 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, - 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, - 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x98, 0xc0, 0x88, 0x88, 0x8c, 0x9c, - 0x1c, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, - 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, - 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, - 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, - 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, - 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, - 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, - 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, - 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x0f, 0x07, 0x03, 0x03, 0x61, - 0xf0, 0xf8, 0xfc, 0x60, 0x01, 0x01, 0x01, 0x3c, 0x78, 0xf8, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00 - } - }; - - void animation_phase(void) { - // Set cursor to draw from the bottom up - oled_set_cursor(128, 0); - - if (get_current_wpm() <= IDLE_SPEED) { - current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES; - oled_write_raw_P(idle[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIMATION_SIZE); - } - - // Start prep image - if (get_current_wpm() > IDLE_SPEED && get_current_wpm() < TAP_SPEED) { - oled_write_raw_P(prep[0], ANIMATION_SIZE); - } - - // Start tap animation - if (get_current_wpm() >= TAP_SPEED) { - current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; - oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIMATION_SIZE); - } - } - if (get_current_wpm() != 000) { - oled_on(); // Enables OLED on any alpha keypress - - if (timer_elapsed32(anim_timer) > ANIMATION_FRAME_DURATION) { - anim_timer = timer_read32(); - animation_phase(); - } - - anim_sleep = timer_read32(); - } else { - if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { - oled_off(); - } else { - if (timer_elapsed32(anim_timer) > ANIMATION_FRAME_DURATION) { - anim_timer = timer_read32(); - animation_phase(); - } - } - } -} - -// Draw to OLED -bool oled_task_user(void) { - // Caps lock text - led_t led_state = host_keyboard_led_state(); - oled_set_cursor(0,1); - oled_write_P(led_state.caps_lock ? PSTR(" Caps Lock "): PSTR(" ScottoCMD "), false); - - //WPM text - oled_set_cursor(0, 9); - oled_write(get_u8_str(get_current_wpm(), '0'), false); - oled_write_P(PSTR(" WPM"), false); - - static const char PROGMEM logos[][256] = { - // Apple - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x70, 0x78, 0x7c, 0x3e, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, - 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3e, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x7f, - 0x7f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x3f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - }, - - // Windows - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, - 0xf8, 0xf8, 0x00, 0x80, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0x40, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xb8, 0x9f, 0x9f, 0x9f, 0x9f, 0x8f, 0x9f, 0x9f, 0x9f, 0x1f, 0x3f, 0x3f, - 0x07, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x07, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xe0, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x03, 0xe0, - 0xfc, 0xfc, 0xf9, 0xf9, 0xf9, 0xf3, 0xf3, 0xf3, 0xfb, 0xfb, 0xf9, 0x19, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x07, 0x01, 0x00, 0x1e, 0x1f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - }, - - // Code - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x80, 0xc0, 0xe0, 0xf0, 0x78, 0x3c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, - 0xf8, 0xfc, 0x3f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x03, 0x07, 0x0f, 0x3e, 0x3c, 0x38, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xfc, 0x7e, 0x1f, 0x07, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x3c, 0x3e, 0x0f, 0x07, 0x03, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - - // Number - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x1f, - 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x1e, 0x1e, 0x1e, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x1e, - 0x1e, 0x1e, 0xbe, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x78, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x78, 0x78, - 0x78, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x78, 0x78, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, - 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - }, - - // Function - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, - 0xf8, 0xfc, 0xfe, 0xfe, 0xff, 0x9f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0x8f, 0x3f, - 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf8, 0xfc, 0xfe, 0x7f, 0x3f, 0x0f, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3e, - 0x1e, 0x0c, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x78, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - - // Caps Lock - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xe0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x0f, 0x1f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7f, 0x7f, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf8, 0xf8, 0xf0, 0xe0, 0xe0, 0xc0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x01, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - } - }; - - // Layer images - oled_set_cursor(32, 0); - switch (get_highest_layer(layer_state)) { - case _MAC_DEFAULT : - oled_write_raw_P(logos[0], sizeof(logos[0])); - break; - case _WIN_DEFAULT : - oled_write_raw_P(logos[1], sizeof(logos[1])); - break; - case _MAC_CODE : - case _WIN_CODE : - oled_write_raw_P(logos[2], sizeof(logos[2])); - break; - case _MAC_NUM : - case _WIN_NUM : - oled_write_raw_P(logos[3], sizeof(logos[3])); - break; - case _MAC_FUNC : - case _WIN_FUNC : - oled_write_raw_P(logos[4], sizeof(logos[4])); - break; - } - - // Render Bongo Cat - render_animation(); - - return false; -} -#endif diff --git a/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/rules.mk deleted file mode 100644 index bcee933e75..0000000000 --- a/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -WPM_ENABLE = yes -TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/config.h deleted file mode 100644 index 1a6512052c..0000000000 --- a/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -// Define options -#define TAPPING_TERM 135 -#define PERMISSIVE_HOLD -#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/keymap.c deleted file mode 100644 index f4d0a0c7bb..0000000000 --- a/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/keymap.c +++ /dev/null @@ -1,174 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -// Tap dance declarations -enum { - TD_LCTL_ESC_SPOTLIGHT_EMOJI, - TD_LALT_ESC_WINDOWS_EMOJI -}; - -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) : - case TD(TD_LALT_ESC_WINDOWS_EMOJI) : - case LGUI_T(KC_SPC) : - case LT(1, KC_TAB) : - case LT(2, KC_ENT) : - return 200; - default: - return TAPPING_TERM; - } -}; - -// Begin quad TD -typedef enum { - TD_NONE, - TD_UNKNOWN, - TD_SINGLE_HOLD, - TD_SINGLE_TAP, - TD_DOUBLE_TAP, - TD_TRIPLE_TAP -} td_state_t; - -typedef struct { - bool is_press_action; - td_state_t state; -} td_tap_t; - -// Create an instance of 'td_tap_t' for the 'x' tap dance. -static td_tap_t xtap_state = { - .is_press_action = true, - .state = TD_NONE -}; - -td_state_t cur_dance(tap_dance_state_t *state) { - if (state->count == 1) { - if (state->interrupted || !state->pressed) { - return TD_SINGLE_TAP; - } else { - return TD_SINGLE_HOLD; - } - } else if (state->count == 2) { - return TD_DOUBLE_TAP; - } else if (state->count == 3) { - return TD_TRIPLE_TAP; - } - - return TD_UNKNOWN; -} - -void td_lctl_esc_spotlight_emoji_finished(tap_dance_state_t *state, void *user_data) { - xtap_state.state = cur_dance(state); - switch (xtap_state.state) { - case TD_SINGLE_TAP: register_code(KC_ESC); break; - case TD_SINGLE_HOLD: register_code(KC_LCTL); break; - case TD_DOUBLE_TAP: tap_code16(G(KC_SPC)); break; - case TD_TRIPLE_TAP: tap_code16(C(G(KC_SPC))); break; - default: break; - } -} - -void td_lctl_esc_spotlight_emoji_reset(tap_dance_state_t *state, void *user_data) { - switch (xtap_state.state) { - case TD_SINGLE_TAP: unregister_code(KC_ESC); break; - case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break; - default: break; - } - xtap_state.state = TD_NONE; -} - -void td_lalt_esc_windowr_emoji_finished(tap_dance_state_t *state, void *user_data) { - xtap_state.state = cur_dance(state); - switch (xtap_state.state) { - case TD_SINGLE_TAP: register_code(KC_ESC); break; - case TD_SINGLE_HOLD: register_code(KC_LALT); break; - case TD_DOUBLE_TAP: tap_code(KC_LGUI); break; - case TD_TRIPLE_TAP: tap_code16(G(KC_DOT)); break; - default: break; - } -} - -void td_lalt_esc_windowr_emoji_reset(tap_dance_state_t *state, void *user_data) { - switch (xtap_state.state) { - case TD_SINGLE_TAP: unregister_code(KC_ESC); break; - case TD_SINGLE_HOLD: unregister_code(KC_LALT); break; - default: break; - } - xtap_state.state = TD_NONE; -} - - // Tap Dance definitions -tap_dance_action_t tap_dance_actions[] = { - [TD_LCTL_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lctl_esc_spotlight_emoji_finished, td_lctl_esc_spotlight_emoji_reset), - [TD_LALT_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lalt_esc_windowr_emoji_finished, td_lalt_esc_windowr_emoji_reset), -}; -// For the x tap dance. Put it here so it can be used in any keymap -void x_finished(tap_dance_state_t *state, void *user_data); -void x_reset(tap_dance_state_t *state, void *user_data); - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_split_3x5_3( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) - ), - [1] = LAYOUT_split_3x5_3( - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) - ), - [2] = LAYOUT_split_3x5_3( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) - ), - [3] = LAYOUT_split_3x5_3( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) - ), - [4] = LAYOUT_split_3x5_3( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_LALT_ESC_WINDOWS_EMOJI) - ), - [5] = LAYOUT_split_3x5_3( - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI) - ), - [6] = LAYOUT_split_3x5_3( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI) - ), - [7] = LAYOUT_split_3x5_3( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI) - ) -}; \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/rules.mk deleted file mode 100644 index e5ddcae8d9..0000000000 --- a/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/rules.mk +++ /dev/null @@ -1 +0,0 @@ -TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/config.h deleted file mode 100644 index 1a6512052c..0000000000 --- a/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -// Define options -#define TAPPING_TERM 135 -#define PERMISSIVE_HOLD -#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/keymap.c deleted file mode 100644 index 09fdf5dd9a..0000000000 --- a/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/keymap.c +++ /dev/null @@ -1,289 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -#include - -// Tap Dance declarations -enum { - TD_ESC_SPOTLIGHT_EMOJI, - TD_ESC_WINDOWS_EMOJI -}; - -void td_esc_spotlight_emoji (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - tap_code(KC_ESC); - } else if (state->count == 2) { - tap_code16(G(KC_SPC)); - } else if (state->count == 3) { - tap_code16(C(G(KC_SPC))); - } -} - -void td_esc_windows_emoji (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - tap_code(KC_ESC); - } else if (state->count == 2) { - tap_code(KC_LGUI); - } else if (state->count == 3) { - tap_code16(G(KC_DOT)); - } -}; - - // Tap Dance definitions -tap_dance_action_t tap_dance_actions[] = { - [TD_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_spotlight_emoji), - [TD_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_windows_emoji) -}; - -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TD(TD_ESC_SPOTLIGHT_EMOJI) : - case TD(TD_ESC_WINDOWS_EMOJI) : - case LGUI_T(KC_SPC) : - case LT(1, KC_TAB) : - case LT(2, KC_ENT) : - return 200; - default: - return TAPPING_TERM; - } -}; - -// Layer Names -enum layer_names { - _MAC_DEFAULT, - _MAC_CODE, - _MAC_NUM, - _MAC_FUNC, - _WIN_DEFAULT, - _WIN_CODE, - _WIN_NUM, - _WIN_FUNC -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ortho_6_3x10_6( - KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_ESC_SPOTLIGHT_EMOJI), - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_ESC_SPOTLIGHT_EMOJI) - ), - [1] = LAYOUT_ortho_6_3x10_6( - KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_ESC_SPOTLIGHT_EMOJI), - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) - ), - [2] = LAYOUT_ortho_6_3x10_6( - KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_ESC_SPOTLIGHT_EMOJI), - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) - ), - [3] = LAYOUT_ortho_6_3x10_6( - KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_ESC_SPOTLIGHT_EMOJI), - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) - ), - [4] = LAYOUT_ortho_6_3x10_6( - KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_ESC_WINDOWS_EMOJI), - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI) - ), - [5] = LAYOUT_ortho_6_3x10_6( - KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_ESC_WINDOWS_EMOJI), - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI) - ), - [6] = LAYOUT_ortho_6_3x10_6( - KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_ESC_WINDOWS_EMOJI), - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI) - ), - [7] = LAYOUT_ortho_6_3x10_6( - KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_ESC_WINDOWS_EMOJI), - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI) - ) -}; - -#ifdef OLED_ENABLE -// WPM responsiveness -#define IDLE_FRAMES 5 -#define IDLE_SPEED 20 // Speed at which animation goes into idle -#define TAP_FRAMES 2 -#define TAP_SPEED 40 // WPM to trigger Bongo -#define ANIM_FRAME_DURATION 200 // Frame MS -#define ANIM_SIZE 636 // Number of bytes in array, max 1024 - -uint32_t anim_timer = 0; -uint32_t anim_sleep = 0; -uint8_t current_idle_frame = 0; -uint8_t current_tap_frame = 0; - -static void render_animation(void) { - static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x82, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x01, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x34, 0xc4, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0d, 0x31, 0xc1, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; - static const char PROGMEM prep[][ANIM_SIZE] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; - static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = { - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x98, 0xc0, 0x88, 0x88, 0x8c, 0x9c, 0x1c, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x0f, 0x07, 0x03, 0x03, 0x61, 0xf0, 0xf8, 0xfc, 0x60, 0x01, 0x01, 0x01, 0x3c, 0x78, 0xf8, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - }; - - void animation_phase(void) { - if (get_current_wpm() <= IDLE_SPEED) { - current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES; - oled_write_raw_P(idle[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIM_SIZE); - } - - if (get_current_wpm() > IDLE_SPEED && get_current_wpm() < TAP_SPEED) { - oled_write_raw_P(prep[0], ANIM_SIZE); - } - - if (get_current_wpm() >= TAP_SPEED) { - current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; - oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE); - } - } - if (get_current_wpm() != 000) { - oled_on(); // Enables OLED on any alpha keypress - - if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { - anim_timer = timer_read32(); - animation_phase(); - } - - anim_sleep = timer_read32(); - } else { - if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { - oled_off(); - } else { - if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { - anim_timer = timer_read32(); - animation_phase(); - } - } - } -} - -// Draw to OLED -bool oled_task_user() { - oled_set_cursor(0, 0); - oled_write(" ScottoGame ", false); - - // Render Bongo Cat - oled_set_cursor(86, 0); - render_animation(); - - // WPM text - oled_set_cursor(0,5); - oled_write(get_u8_str(get_current_wpm(), '0'), false); - - // Layer text - oled_set_cursor(0, 6); - switch (get_highest_layer(layer_state)) { - case _MAC_DEFAULT : - oled_write_P(PSTR("MAC"), false); - oled_set_cursor(0, 7); - oled_write_P(PSTR("MAIN"), false); - break; - case _MAC_CODE : - oled_write_P(PSTR("MAC"), false); - oled_set_cursor(0, 7); - oled_write_P(PSTR("CODE"), false); - break; - case _MAC_NUM : - oled_write_P(PSTR("MAC"), false); - oled_set_cursor(0, 7); - oled_write_P(PSTR("NUM"), false); - break; - case _MAC_FUNC : - oled_write_P(PSTR("MAC"), false); - oled_set_cursor(0, 7); - oled_write_P(PSTR("FUNC"), false); - break; - case _WIN_DEFAULT : - oled_write_P(PSTR("WIN"), false); - oled_set_cursor(0, 7); - oled_write_P(PSTR("MAIN"), false); - break; - case _WIN_CODE : - oled_write_P(PSTR("WIN"), false); - oled_set_cursor(0, 7); - oled_write_P(PSTR("CODE"), false); - break; - case _WIN_NUM : - oled_write_P(PSTR("WIN"), false); - oled_set_cursor(0, 7); - oled_write_P(PSTR("NUM"), false); - break; - case _WIN_FUNC : - oled_write_P(PSTR("WIN"), false); - oled_set_cursor(0, 7); - oled_write_P(PSTR("FUNC"), false); - break; - } - - // Caps lock text - led_t led_state = host_keyboard_led_state(); - oled_set_cursor(0, 4); - oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR(" "), false); - - return false; -} -#endif diff --git a/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/rules.mk deleted file mode 100644 index bcee933e75..0000000000 --- a/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -WPM_ENABLE = yes -TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/config.h deleted file mode 100644 index 1a6512052c..0000000000 --- a/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -// Define options -#define TAPPING_TERM 135 -#define PERMISSIVE_HOLD -#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/keymap.c deleted file mode 100644 index f4d0a0c7bb..0000000000 --- a/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/keymap.c +++ /dev/null @@ -1,174 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -// Tap dance declarations -enum { - TD_LCTL_ESC_SPOTLIGHT_EMOJI, - TD_LALT_ESC_WINDOWS_EMOJI -}; - -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) : - case TD(TD_LALT_ESC_WINDOWS_EMOJI) : - case LGUI_T(KC_SPC) : - case LT(1, KC_TAB) : - case LT(2, KC_ENT) : - return 200; - default: - return TAPPING_TERM; - } -}; - -// Begin quad TD -typedef enum { - TD_NONE, - TD_UNKNOWN, - TD_SINGLE_HOLD, - TD_SINGLE_TAP, - TD_DOUBLE_TAP, - TD_TRIPLE_TAP -} td_state_t; - -typedef struct { - bool is_press_action; - td_state_t state; -} td_tap_t; - -// Create an instance of 'td_tap_t' for the 'x' tap dance. -static td_tap_t xtap_state = { - .is_press_action = true, - .state = TD_NONE -}; - -td_state_t cur_dance(tap_dance_state_t *state) { - if (state->count == 1) { - if (state->interrupted || !state->pressed) { - return TD_SINGLE_TAP; - } else { - return TD_SINGLE_HOLD; - } - } else if (state->count == 2) { - return TD_DOUBLE_TAP; - } else if (state->count == 3) { - return TD_TRIPLE_TAP; - } - - return TD_UNKNOWN; -} - -void td_lctl_esc_spotlight_emoji_finished(tap_dance_state_t *state, void *user_data) { - xtap_state.state = cur_dance(state); - switch (xtap_state.state) { - case TD_SINGLE_TAP: register_code(KC_ESC); break; - case TD_SINGLE_HOLD: register_code(KC_LCTL); break; - case TD_DOUBLE_TAP: tap_code16(G(KC_SPC)); break; - case TD_TRIPLE_TAP: tap_code16(C(G(KC_SPC))); break; - default: break; - } -} - -void td_lctl_esc_spotlight_emoji_reset(tap_dance_state_t *state, void *user_data) { - switch (xtap_state.state) { - case TD_SINGLE_TAP: unregister_code(KC_ESC); break; - case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break; - default: break; - } - xtap_state.state = TD_NONE; -} - -void td_lalt_esc_windowr_emoji_finished(tap_dance_state_t *state, void *user_data) { - xtap_state.state = cur_dance(state); - switch (xtap_state.state) { - case TD_SINGLE_TAP: register_code(KC_ESC); break; - case TD_SINGLE_HOLD: register_code(KC_LALT); break; - case TD_DOUBLE_TAP: tap_code(KC_LGUI); break; - case TD_TRIPLE_TAP: tap_code16(G(KC_DOT)); break; - default: break; - } -} - -void td_lalt_esc_windowr_emoji_reset(tap_dance_state_t *state, void *user_data) { - switch (xtap_state.state) { - case TD_SINGLE_TAP: unregister_code(KC_ESC); break; - case TD_SINGLE_HOLD: unregister_code(KC_LALT); break; - default: break; - } - xtap_state.state = TD_NONE; -} - - // Tap Dance definitions -tap_dance_action_t tap_dance_actions[] = { - [TD_LCTL_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lctl_esc_spotlight_emoji_finished, td_lctl_esc_spotlight_emoji_reset), - [TD_LALT_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lalt_esc_windowr_emoji_finished, td_lalt_esc_windowr_emoji_reset), -}; -// For the x tap dance. Put it here so it can be used in any keymap -void x_finished(tap_dance_state_t *state, void *user_data); -void x_reset(tap_dance_state_t *state, void *user_data); - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_split_3x5_3( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) - ), - [1] = LAYOUT_split_3x5_3( - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) - ), - [2] = LAYOUT_split_3x5_3( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) - ), - [3] = LAYOUT_split_3x5_3( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) - ), - [4] = LAYOUT_split_3x5_3( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_LALT_ESC_WINDOWS_EMOJI) - ), - [5] = LAYOUT_split_3x5_3( - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI) - ), - [6] = LAYOUT_split_3x5_3( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI) - ), - [7] = LAYOUT_split_3x5_3( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI) - ) -}; \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/rules.mk deleted file mode 100644 index e5ddcae8d9..0000000000 --- a/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/rules.mk +++ /dev/null @@ -1 +0,0 @@ -TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/config.h deleted file mode 100644 index 4b0d2cd2fb..0000000000 --- a/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/config.h +++ /dev/null @@ -1,26 +0,0 @@ -/* -Copyright 2023 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -// Mouse key speed and acceleration. -#define MOUSEKEY_DELAY 0 -#define MOUSEKEY_INTERVAL 16 -#define MOUSEKEY_WHEEL_DELAY 0 -#define MOUSEKEY_MAX_SPEED 6 -#define MOUSEKEY_TIME_TO_MAX 64 - diff --git a/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/keymap.c deleted file mode 100644 index d17ed1f28a..0000000000 --- a/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/keymap.c +++ /dev/null @@ -1,33 +0,0 @@ -/* -Copyright 2023 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM scroll_down[] = {KC_MS_BTN1, KC_MS_BTN2, KC_MS_DOWN, COMBO_END}; -const uint16_t PROGMEM scroll_up[] = {KC_MS_BTN1, KC_MS_BTN2, KC_MS_UP, COMBO_END}; -const uint16_t PROGMEM middle_click[] = {KC_MS_BTN1, KC_MS_BTN2, COMBO_END}; -combo_t key_combos[] = { - COMBO(scroll_down, KC_MS_WH_DOWN), - COMBO(scroll_up, KC_MS_WH_UP), - COMBO(middle_click, KC_MS_BTN3) -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_MS_BTN1, KC_MS_BTN2, KC_MS_LEFT, KC_MS_UP, KC_MS_DOWN, KC_MS_RIGHT - ) -}; \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/rules.mk deleted file mode 100644 index ab1e438182..0000000000 --- a/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/rules.mk +++ /dev/null @@ -1 +0,0 @@ -COMBO_ENABLE = yes diff --git a/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/config.h deleted file mode 100644 index 1a6512052c..0000000000 --- a/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -// Define options -#define TAPPING_TERM 135 -#define PERMISSIVE_HOLD -#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/keymap.c deleted file mode 100644 index dc2d08d910..0000000000 --- a/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/keymap.c +++ /dev/null @@ -1,69 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), KC_ESC - ), - [1] = LAYOUT( - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, KC_ESC - ), - [2] = LAYOUT( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, KC_ESC - ), - [3] = LAYOUT( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, KC_ESC - ), - [4] = LAYOUT( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), KC_ESC - ), - [5] = LAYOUT( - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), KC_ESC - ), - [6] = LAYOUT( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), KC_ESC - ), - [7] = LAYOUT( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), KC_ESC - ) -}; diff --git a/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/rules.mk deleted file mode 100644 index e5ddcae8d9..0000000000 --- a/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/rules.mk +++ /dev/null @@ -1 +0,0 @@ -TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/config.h deleted file mode 100644 index 1a6512052c..0000000000 --- a/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -// Define options -#define TAPPING_TERM 135 -#define PERMISSIVE_HOLD -#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/keymap.c deleted file mode 100644 index f4d0a0c7bb..0000000000 --- a/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/keymap.c +++ /dev/null @@ -1,174 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H - -// Tap dance declarations -enum { - TD_LCTL_ESC_SPOTLIGHT_EMOJI, - TD_LALT_ESC_WINDOWS_EMOJI -}; - -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) : - case TD(TD_LALT_ESC_WINDOWS_EMOJI) : - case LGUI_T(KC_SPC) : - case LT(1, KC_TAB) : - case LT(2, KC_ENT) : - return 200; - default: - return TAPPING_TERM; - } -}; - -// Begin quad TD -typedef enum { - TD_NONE, - TD_UNKNOWN, - TD_SINGLE_HOLD, - TD_SINGLE_TAP, - TD_DOUBLE_TAP, - TD_TRIPLE_TAP -} td_state_t; - -typedef struct { - bool is_press_action; - td_state_t state; -} td_tap_t; - -// Create an instance of 'td_tap_t' for the 'x' tap dance. -static td_tap_t xtap_state = { - .is_press_action = true, - .state = TD_NONE -}; - -td_state_t cur_dance(tap_dance_state_t *state) { - if (state->count == 1) { - if (state->interrupted || !state->pressed) { - return TD_SINGLE_TAP; - } else { - return TD_SINGLE_HOLD; - } - } else if (state->count == 2) { - return TD_DOUBLE_TAP; - } else if (state->count == 3) { - return TD_TRIPLE_TAP; - } - - return TD_UNKNOWN; -} - -void td_lctl_esc_spotlight_emoji_finished(tap_dance_state_t *state, void *user_data) { - xtap_state.state = cur_dance(state); - switch (xtap_state.state) { - case TD_SINGLE_TAP: register_code(KC_ESC); break; - case TD_SINGLE_HOLD: register_code(KC_LCTL); break; - case TD_DOUBLE_TAP: tap_code16(G(KC_SPC)); break; - case TD_TRIPLE_TAP: tap_code16(C(G(KC_SPC))); break; - default: break; - } -} - -void td_lctl_esc_spotlight_emoji_reset(tap_dance_state_t *state, void *user_data) { - switch (xtap_state.state) { - case TD_SINGLE_TAP: unregister_code(KC_ESC); break; - case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break; - default: break; - } - xtap_state.state = TD_NONE; -} - -void td_lalt_esc_windowr_emoji_finished(tap_dance_state_t *state, void *user_data) { - xtap_state.state = cur_dance(state); - switch (xtap_state.state) { - case TD_SINGLE_TAP: register_code(KC_ESC); break; - case TD_SINGLE_HOLD: register_code(KC_LALT); break; - case TD_DOUBLE_TAP: tap_code(KC_LGUI); break; - case TD_TRIPLE_TAP: tap_code16(G(KC_DOT)); break; - default: break; - } -} - -void td_lalt_esc_windowr_emoji_reset(tap_dance_state_t *state, void *user_data) { - switch (xtap_state.state) { - case TD_SINGLE_TAP: unregister_code(KC_ESC); break; - case TD_SINGLE_HOLD: unregister_code(KC_LALT); break; - default: break; - } - xtap_state.state = TD_NONE; -} - - // Tap Dance definitions -tap_dance_action_t tap_dance_actions[] = { - [TD_LCTL_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lctl_esc_spotlight_emoji_finished, td_lctl_esc_spotlight_emoji_reset), - [TD_LALT_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lalt_esc_windowr_emoji_finished, td_lalt_esc_windowr_emoji_reset), -}; -// For the x tap dance. Put it here so it can be used in any keymap -void x_finished(tap_dance_state_t *state, void *user_data); -void x_reset(tap_dance_state_t *state, void *user_data); - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_split_3x5_3( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) - ), - [1] = LAYOUT_split_3x5_3( - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) - ), - [2] = LAYOUT_split_3x5_3( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) - ), - [3] = LAYOUT_split_3x5_3( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) - ), - [4] = LAYOUT_split_3x5_3( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_LALT_ESC_WINDOWS_EMOJI) - ), - [5] = LAYOUT_split_3x5_3( - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI) - ), - [6] = LAYOUT_split_3x5_3( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI) - ), - [7] = LAYOUT_split_3x5_3( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI) - ) -}; \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/rules.mk deleted file mode 100644 index e5ddcae8d9..0000000000 --- a/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/rules.mk +++ /dev/null @@ -1 +0,0 @@ -TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/config.h b/keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/config.h deleted file mode 100644 index d7bc0f5bd5..0000000000 --- a/keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/config.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -// #define USE_I2C -// #define SELECT_SOFT_SERIAL_SPEED 1 -#define SPLIT_MODS_ENABLE -#define EE_HANDS - -#define TRACKBALL_DPI_OPTIONS { 1200, 1800, 2600, 3400 } - -#define RGBLIGHT_MAX_BRIGHTNESS 60 - -#undef DEBOUNCE -#define DEBOUNCE 10 - -#define SOLENOID_PIN F1 -#define SOLENOID_DEFAULT_DWELL 8 - -#define OLED_DISPLAY_128X64 -#define OLED_BRIGHTNESS 50 diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/keymap.c b/keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/keymap.c deleted file mode 100644 index a7d7528dfb..0000000000 --- a/keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/keymap.c +++ /dev/null @@ -1,117 +0,0 @@ -/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "drashna.h" - -// clang-format off -#define LAYOUT_4x6_right_wrapper(...) LAYOUT_4x6_right(__VA_ARGS__) -#define LAYOUT_4x6_right_base( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ - K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ - K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \ - ) \ - LAYOUT_4x6_right_wrapper( \ - SH_TT, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, SH_TT, \ - LALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(K1B), \ - OS_LSFT, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \ - OS_LGUI, OS_LALT, OS_RGUI, OS_RALT, \ - KC_PSCR, KC_GRV, MEH_T(KC_BTN3), \ - KC_SPC, OS_LGUI, KC_ENT, \ - BK_LWER, TT(_MOUSE), TT(_MOUSE), DL_RAIS \ - ) -#define LAYOUT_base_wrapper(...) LAYOUT_4x6_right_base(__VA_ARGS__) - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper( - _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, - _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, - _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ - ), - - [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper( - ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________, - ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________, - ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________ - ), - [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper( - _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, - _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, - _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ - ), - - [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper( - _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, - _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, - _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ - ), - - [_MOUSE] = LAYOUT_4x6_right( - _______, _______, _______, _______, _______, _______, KC_WH_U, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, SNP_TOG, - _______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, SNIPING, - _______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______, - _______, _______, _______, _______, - _______, _______, _______, - _______, _______, _______, - _______, _______, _______, _______ - ), - [_GAMEPAD] = LAYOUT_4x6_right( - KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, _______, _______, _______, _______, _______, _______, - KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, _______, _______, _______, _______, _______, _______, - KC_LCTL, KC_LSFT, KC_Z, KC_X, KC_C, KC_H, _______, _______, _______, _______, _______, _______, - KC_I, KC_T, TG_GAME, KC_NO, - KC_V, KC_O, _______, - KC_SPC, KC_P, _______, - KC_H, KC_LGUI, _______, _______ - ), - [_DIABLO] = LAYOUT_4x6_right( - KC_TAB, KC_S, KC_I, KC_F, KC_M, KC_T, _______, _______, _______, _______, _______, _______, - KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, _______, _______, _______, _______, _______, _______, - KC_LCTL, KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, KC_Z, _______, _______, _______, _______, _______, _______, - KC_F, KC_L, KC_NO, TG_DBLO, - KC_DIABLO_CLEAR, KC_F, _______, - SFT_T(KC_SPC), KC_J, _______, - ALT_T(KC_Q), KC_LGUI, _______, _______ - ), - [_LOWER] = LAYOUT_4x6_right_wrapper( - KC_F12, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F11, - _______, _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE, - _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______, - _______, _______, _______, _______, - _______, _______, _______, - _______, _______, _______, - _______, _______, _______, _______ - ), - [_RAISE] = LAYOUT_4x6_right_wrapper( - KC_F12, _________________RAISE_L1__________________, _________________RAISE_R1__________________, KC_F11, - _______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS, - _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______, - _______, _______, _______, _______, - _______, _______, _______, - _______, _______, _______, - _______, _______, _______, _______ - ), - [_ADJUST] = LAYOUT_4x6_right_wrapper( - QK_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, QK_BOOT, - VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EE_CLR, - UC_NEXT, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, TG_MODS, - HF_DWLU, HF_DWLD, TG_GAME, TG_DBLO, - HF_TOGG, HF_BUZZ, KC_NUKE, - _______, _______, _______, - _______, _______, KC_NUKE, _______ - ), -}; -// clang-format on diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/rules.mk b/keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/rules.mk deleted file mode 100644 index d2d2a9b874..0000000000 --- a/keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/rules.mk +++ /dev/null @@ -1,8 +0,0 @@ -RGBLIGHT_STARTUP_ANIMATION = yes -AUDIO_ENABLE = yes -HAPTIC_ENABLE = no -COMMAND_ENABLE = no -TAP_DANCE_ENABLE = yes -UNICODE_ENABLE = yes -OLED_ENABLE = yes -WPM_ENABLE = yes diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/config.h deleted file mode 100644 index 5cb2a76de2..0000000000 --- a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/config.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#undef OLED_DISPLAY_128X64 -#define OLED_DISPLAY_128X128 -#define OLED_BRIGHTNESS 200 - -#define CHARYBDIS_MINIMUM_DEFAULT_DPI 1200 -#define CHARYBDIS_DEFAULT_DPI_CONFIG_STEP 200 -#define CHARYBDIS_MINIMUM_SNIPING_DPI 400 -#define CHARYBDIS_SNIPING_DPI_CONFIG_STEP 200 - -#define BOOTMAGIC_LITE_EEPROM_ROW 1 -#define BOOTMAGIC_LITE_EEPROM_COLUMN 0 -#define BOOTMAGIC_LITE_EEPROM_ROW_RIGHT 7 -#define BOOTMAGIC_LITE_EEPROM_COLUMN_RIGHT 5 - - -#define DRV2605L_FB_ERM_LRA 0 -#define DRV2605L_GREETING DRV2605L_EFFECT_750_MS_ALERT_100 -#define DRV2605L_DEFAULT_MODE DRV2605L_EFFECT_BUZZ_1_100 diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/keymap.c b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/keymap.c deleted file mode 100644 index 380e17fb09..0000000000 --- a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/keymap.c +++ /dev/null @@ -1,161 +0,0 @@ -/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "drashna.h" - -// clang-format off -#define LAYOUT_5x6_right_wrapper(...) LAYOUT_5x6_right(__VA_ARGS__) -#define LAYOUT_5x6_right_base( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ - K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ - K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \ - ) \ - LAYOUT_5x6_right_wrapper( \ - KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, UC_CLUE, \ - SH_TT, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, SH_TT, \ - LALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(K1B), \ - OS_LSFT, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \ - OS_LALT, OS_LGUI, OS_RGUI, OS_RALT, \ - KC_MUTE, KC_GRV, KC_BTN3, \ - KC_SPC, UC_IRNY, KC_ENT, \ - BK_LWER, TT(_MOUSE), TT(_MOUSE), DL_RAIS \ - ) -#define LAYOUT_base_wrapper(...) LAYOUT_5x6_right_base(__VA_ARGS__) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper( - _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, - _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, - _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ - ), - - [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper( - ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________, - ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________, - ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________ - ), - [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper( - _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, - _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, - _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ - ), - - [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper( - _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, - _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, - _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ - ), - - [_GAMEPAD] = LAYOUT_5x6_right( - KC_ESC, KC_NO, KC_1, KC_2, KC_3, KC_4, _______, _______, _______, _______, _______, _______, - KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, _______, _______, _______, _______, _______, _______, - KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, _______, _______, _______, _______, _______, _______, - KC_LCTL, KC_LSFT, KC_Z, KC_X, KC_C, KC_H, _______, _______, _______, _______, _______, _______, - KC_I, KC_T, TG_GAME, KC_NO, - KC_V, KC_O, _______, - KC_SPC, KC_P, _______, - KC_H, KC_LGUI, _______, _______ - ), - [_DIABLO] = LAYOUT_5x6_right( - KC_ESC, KC_V, KC_D, KC_LALT, KC_NO, KC_NO, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, - KC_TAB, KC_S, KC_I, KC_F, KC_M, KC_T, _______, _______, _______, _______, _______, _______, - KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, _______, _______, _______, _______, _______, _______, - KC_LCTL, KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, KC_Z, _______, _______, _______, _______, _______, _______, - KC_F, KC_L, KC_NO, TG_DBLO, - KC_DIABLO_CLEAR, KC_F, _______, - SFT_T(KC_SPC), KC_J, _______, - ALT_T(KC_Q), KC_LGUI, _______, _______ - ), - [_DIABLOII] = LAYOUT_5x6_right( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_GRV, _______, _______, _______, _______, _______, _______, - KC_TAB, KC_A, KC_T, KC_Q, KC_I, KC_M, _______, _______, _______, _______, _______, _______, - KC_S, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, _______, _______, _______, - KC_LCTL, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, _______, _______, - KC_F, KC_L, KC_NO, TG(_DIABLOII), - _______, KC_G, _______, - KC_LSFT, _______, _______, - KC_LCTL, KC_V, _______, _______ - ), - [_MOUSE] = LAYOUT_5x6_right( - _______, _______, _______, _______, _______, _______, _______, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, PD_JIGGLER, - _______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, _______, DRGSCRL, - _______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, SNIPING, - _______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______, - _______, _______, _______, _______, - _______, _______, KC_BTN3, - _______, _______, _______, - _______, _______, _______, _______ - ), - [_LOWER] = LAYOUT_5x6_right_wrapper( - KC_F12, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, KC_F11, - _______, _________________LOWER_L1__________________, _________________LOWER_R1__________________, _______, - _______, _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE, - _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______, - _______, _______, _______, _______, - _______, _______, _______, - _______, _______, _______, - _______, _______, _______, _______ - ), - [_RAISE] = LAYOUT_5x6_right_wrapper( - KC_F12, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, KC_F11, - KC_GRV, _________________RAISE_L1__________________, _________________RAISE_R1__________________, _______, - _______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS, - _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______, - _______, _______, _______, _______, - OL_LOCK, _______, _______, - _______, _______, _______, - _______, _______, _______, _______ - ), - [_ADJUST] = LAYOUT_5x6_right_wrapper( - QK_MAKE, KC_WIDE,KC_AUSSIE,KC_SCRIPT,KC_ZALGO,KC_NOMODE, KC_NOMODE,KC_BLOCKS,KC_REGIONAL,_______,_______, QK_BOOT, - VRSN, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, EE_CLR, - KEYLOCK, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, TG_MODS, - UC_NEXT, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, KC_MPLY, - TG(_DIABLOII), AUTO_CTN, TG_GAME, TG_DBLO, - _______, QK_RBT, KC_NUKE, - HF_TOGG, _______, _______, - _______, _______, KC_NUKE, _______ - ), -}; -// clang-format on - -#ifdef ENCODER_MAP_ENABLE -// clang-format off -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_DEFAULT_LAYER_1] = { ENCODER_CCW_CW( KC_VOLU, KC_VOLD ), ENCODER_CCW_CW( KC_WH_U, KC_WH_D ) }, - [_DEFAULT_LAYER_2] = { ENCODER_CCW_CW( _______, _______ ), ENCODER_CCW_CW( _______, _______ ) }, - [_DEFAULT_LAYER_3] = { ENCODER_CCW_CW( _______, _______ ), ENCODER_CCW_CW( _______, _______ ) }, - [_DEFAULT_LAYER_4] = { ENCODER_CCW_CW( _______, _______ ), ENCODER_CCW_CW( _______, _______ ) }, - [_GAMEPAD] = { ENCODER_CCW_CW( _______, _______ ), ENCODER_CCW_CW( _______, _______ ) }, - [_DIABLO] = { ENCODER_CCW_CW( _______, _______ ), ENCODER_CCW_CW( _______, _______ ) }, - [_MOUSE] = { ENCODER_CCW_CW( _______, _______ ), ENCODER_CCW_CW( _______, _______ ) }, - [_MEDIA] = { ENCODER_CCW_CW( _______, _______ ), ENCODER_CCW_CW( _______, _______ ) }, - [_RAISE] = { ENCODER_CCW_CW( OL_BINC, OL_BDEC ), ENCODER_CCW_CW( KC_PGDN, KC_PGUP ) }, - [_LOWER] = { ENCODER_CCW_CW( RGB_MOD, RGB_RMOD), ENCODER_CCW_CW( RGB_HUI, RGB_HUD ) }, - [_ADJUST] = { ENCODER_CCW_CW( CK_UP, CK_DOWN ), ENCODER_CCW_CW( _______, _______ ) }, -}; -// clang-format on -#endif - -#ifdef OLED_ENABLE -oled_rotation_t oled_init_keymap(oled_rotation_t rotation) { - return OLED_ROTATION_180; -} - -void render_oled_title(bool side) { - oled_write_P(side ? PSTR(" Tractyl ") : PSTR(" Manuform "), true); -} -#endif diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rgblight_breathe_table.h b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rgblight_breathe_table.h deleted file mode 100644 index fb921079bf..0000000000 --- a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rgblight_breathe_table.h +++ /dev/null @@ -1,117 +0,0 @@ -#pragma once - -#define RGBLIGHT_EFFECT_BREATHE_TABLE - -// clang-format off - -// Breathing center: 1.85 -// Breathing max: 100 - -const uint8_t PROGMEM rgblight_effect_breathe_table[] = { -#if RGBLIGHT_BREATHE_TABLE_SIZE == 256 - 0x0D, 0x0E, 0x0E, 0x0F, 0x0F, 0x10, 0x10, 0x11, - 0x11, 0x12, 0x13, 0x13, 0x14, 0x14, 0x15, 0x16, - 0x16, 0x17, 0x18, 0x18, 0x19, 0x19, 0x1A, 0x1B, - 0x1B, 0x1C, 0x1D, 0x1E, 0x1E, 0x1F, 0x20, 0x20, - 0x21, 0x22, 0x22, 0x23, 0x24, 0x25, 0x25, 0x26, - 0x27, 0x28, 0x28, 0x29, 0x2A, 0x2B, 0x2B, 0x2C, - 0x2D, 0x2E, 0x2E, 0x2F, 0x30, 0x31, 0x31, 0x32, - 0x33, 0x34, 0x34, 0x35, 0x36, 0x37, 0x38, 0x38, - 0x39, 0x3A, 0x3B, 0x3B, 0x3C, 0x3D, 0x3D, 0x3E, - 0x3F, 0x40, 0x40, 0x41, 0x42, 0x42, 0x43, 0x44, - 0x44, 0x45, 0x46, 0x46, 0x47, 0x48, 0x48, 0x49, - 0x4A, 0x4A, 0x4B, 0x4B, 0x4C, 0x4C, 0x4D, 0x4D, - 0x4E, 0x4E, 0x4F, 0x4F, 0x50, 0x50, 0x51, 0x51, - 0x51, 0x52, 0x52, 0x53, 0x53, 0x53, 0x54, 0x54, - 0x54, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, - 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, - 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, - 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0x54, - 0x54, 0x54, 0x53, 0x53, 0x53, 0x52, 0x52, 0x51, - 0x51, 0x51, 0x50, 0x50, 0x4F, 0x4F, 0x4E, 0x4E, - 0x4D, 0x4D, 0x4C, 0x4C, 0x4B, 0x4B, 0x4A, 0x4A, - 0x49, 0x48, 0x48, 0x47, 0x46, 0x46, 0x45, 0x44, - 0x44, 0x43, 0x42, 0x42, 0x41, 0x40, 0x40, 0x3F, - 0x3E, 0x3D, 0x3D, 0x3C, 0x3B, 0x3B, 0x3A, 0x39, - 0x38, 0x38, 0x37, 0x36, 0x35, 0x34, 0x34, 0x33, - 0x32, 0x31, 0x31, 0x30, 0x2F, 0x2E, 0x2E, 0x2D, - 0x2C, 0x2B, 0x2B, 0x2A, 0x29, 0x28, 0x28, 0x27, - 0x26, 0x25, 0x25, 0x24, 0x23, 0x22, 0x22, 0x21, - 0x20, 0x20, 0x1F, 0x1E, 0x1E, 0x1D, 0x1C, 0x1B, - 0x1B, 0x1A, 0x19, 0x19, 0x18, 0x18, 0x17, 0x16, - 0x16, 0x15, 0x14, 0x14, 0x13, 0x13, 0x12, 0x11, - 0x11, 0x10, 0x10, 0x0F, 0x0F, 0x0E, 0x0E, 0x0D -#endif - -#if RGBLIGHT_BREATHE_TABLE_SIZE == 128 - 0x0D, 0x0E, 0x0F, 0x10, - 0x11, 0x13, 0x14, 0x15, - 0x16, 0x18, 0x19, 0x1A, - 0x1B, 0x1D, 0x1E, 0x20, - 0x21, 0x22, 0x24, 0x25, - 0x27, 0x28, 0x2A, 0x2B, - 0x2D, 0x2E, 0x30, 0x31, - 0x33, 0x34, 0x36, 0x38, - 0x39, 0x3B, 0x3C, 0x3D, - 0x3F, 0x40, 0x42, 0x43, - 0x44, 0x46, 0x47, 0x48, - 0x4A, 0x4B, 0x4C, 0x4D, - 0x4E, 0x4F, 0x50, 0x51, - 0x51, 0x52, 0x53, 0x54, - 0x54, 0x55, 0x55, 0x55, - 0x56, 0x56, 0x56, 0x56, - 0x56, 0x56, 0x56, 0x56, - 0x56, 0x55, 0x55, 0x54, - 0x54, 0x53, 0x53, 0x52, - 0x51, 0x50, 0x4F, 0x4E, - 0x4D, 0x4C, 0x4B, 0x4A, - 0x49, 0x48, 0x46, 0x45, - 0x44, 0x42, 0x41, 0x40, - 0x3E, 0x3D, 0x3B, 0x3A, - 0x38, 0x37, 0x35, 0x34, - 0x32, 0x31, 0x2F, 0x2E, - 0x2C, 0x2B, 0x29, 0x28, - 0x26, 0x25, 0x23, 0x22, - 0x20, 0x1F, 0x1E, 0x1C, - 0x1B, 0x19, 0x18, 0x17, - 0x16, 0x14, 0x13, 0x12, - 0x11, 0x10, 0x0F, 0x0E -#endif - -#if RGBLIGHT_BREATHE_TABLE_SIZE == 64 - 0x0D, 0x0F, - 0x11, 0x14, - 0x16, 0x19, - 0x1B, 0x1E, - 0x21, 0x24, - 0x27, 0x2A, - 0x2D, 0x30, - 0x33, 0x36, - 0x39, 0x3C, - 0x3F, 0x42, - 0x44, 0x47, - 0x4A, 0x4C, - 0x4E, 0x50, - 0x51, 0x53, - 0x54, 0x55, - 0x56, 0x56, - 0x56, 0x56, - 0x56, 0x55, - 0x54, 0x53, - 0x51, 0x4F, - 0x4D, 0x4B, - 0x49, 0x46, - 0x44, 0x41, - 0x3E, 0x3B, - 0x38, 0x35, - 0x32, 0x2F, - 0x2C, 0x29, - 0x26, 0x23, - 0x20, 0x1E, - 0x1B, 0x18, - 0x16, 0x13, - 0x11, 0x0F -#endif -}; - -static const int table_scale = 256 / sizeof(rgblight_effect_breathe_table); diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rules.mk b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rules.mk deleted file mode 100644 index 1cf7a3fccf..0000000000 --- a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rules.mk +++ /dev/null @@ -1,54 +0,0 @@ -AUTOCORRECT_ENABLE = no -AUDIO_ENABLE = no -ENCODER_ENABLE = no -CUSTOM_BOOTMAGIC_ENABLE = no -CUSTOM_UNICODE_ENABLE = no -HAPTIC_ENABLE = no -OLED_ENABLE = no -RGBLIGHT_ENABLE = no -SWAP_HANDS_ENABLE = no -TAP_DANCE_ENABLE = no -WPM_ENABLE = no - -ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/elite_c) - BOOTLOADER = qmk-hid - BOOTLOADER_SIZE = 512 - CUSTOM_SPLIT_TRANSPORT_SYNC = no - LTO_ENABLE = yes - MOUSEKEY_ENABLE = no -endif -ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/arduinomicro) - BOOTLOADER = qmk-hid - BOOTLOADER_SIZE = 512 - CUSTOM_SPLIT_TRANSPORT_SYNC = no - LTO_ENABLE = yes - MOUSEKEY_ENABLE = no -endif -ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/teensy2pp) - AUTOCORRECT_ENABLE = no - OVERLOAD_FEATURES = yes - LTO_ENABLE = yes -endif -ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/f411) - BOOTLOADER = tinyuf2 - AUTOCORRECT_ENABLE = yes - LTO_SUPPORTED = no - OVERLOAD_FEATURES = yes - HAPTIC_ENABLE = yes - HAPTIC_DRIVER = drv2605l -endif - -ifeq ($(strip $(OVERLOAD_FEATURES)), yes) - AUDIO_ENABLE = yes - CAPS_WORD_ENABLE = yes - CUSTOM_BOOTMAGIC_ENABLE = yes - CUSTOM_UNICODE_ENABLE = yes - ENCODER_ENABLE = yes - ENCODER_MAP_ENABLE = yes - OLED_ENABLE = yes - RGBLIGHT_ENABLE = yes - RGBLIGHT_STARTUP_ANIMATION = yes - TAP_DANCE_ENABLE = yes - SWAP_HANDS_ENABLE = yes - WPM_ENABLE = yes -endif diff --git a/keyboards/handwired/wabi/keymaps/rossman360/keymap.c b/keyboards/handwired/wabi/keymaps/rossman360/keymap.c deleted file mode 100644 index 3bd46bf191..0000000000 --- a/keyboards/handwired/wabi/keymaps/rossman360/keymap.c +++ /dev/null @@ -1,68 +0,0 @@ -/* -Copyright 2020 Ross Montsinger -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include QMK_KEYBOARD_H -#include "rossman360.h" - -#define PGMOD LT(_NUM, KC_PGDN) -#define TABMOD LT(_FN1, KC_TAB) -#define SPCMOD LT(_FN1, KC_SPACE) -#define ENTMOD LT(_FN2, KC_ENTER) -#define RSMOD LT(_FN1, KC_MINS) - -enum layer_names { - _BASE, - _DEL, - _FN1, - _FN2, - _NUM, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_BASE] = LAYOUT( - KC_ESC, 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_BSPC, - 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, - JUMPBACK,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSMOD , KC_UP, - CMDBSP, ALTDEL, CTRLSP, TABMOD, PGMOD , ENTMOD , SPCMOD , MO(_DEL), KC_LEFT, KC_DOWN, KC_RGHT - ), -[_DEL] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - REMCAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, BLINE , KC_BSPC, BWORD , KC_NO , KC_NO , _______, _______, _______, _______ - ), -[_FN1] = LAYOUT( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NTAB, - _______, _______, _______, _______, _______, _______, _______, UNDO , _______, _______, _______, _______, _______, KC_SLSH, - _______, _______, _______, _______, _______, _______, KC_HOME, KC_LEFT, KC_UP , KC_RIGHT,KC_END , _______, CTAB, - _______, _______, XPANDR , _______, PMERGE , _______, _______, PMERGE , KC_DOWN, _______, _______, _______, _______, - _______, _______, _______, LWORD , RWORD , KC_NO , _______, KC_NO , _______, _______, _______ - ), -[_FN2] = LAYOUT( - _______, SPEAK1 , SPEAK2 , SPEAK3 , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, PARADOWN, CSPEAK, _______, _______, _______, _______, _______, _______ - ), -[_NUM] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_7 , KC_8 , KC_9 , _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, KC_MINS, KC_4 , KC_5 , KC_6 , KC_COLN, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_1 , KC_2 , KC_3 , KC_BSLS, _______, _______, - _______, _______, _______, KC_0 , _______, KC_NO , KC_SPC , KC_0 , _______, _______, _______ - ), -}; diff --git a/keyboards/hazel/bad_wings/keymaps/miketronic/config.h b/keyboards/hazel/bad_wings/keymaps/miketronic/config.h deleted file mode 100644 index 1f5c059c00..0000000000 --- a/keyboards/hazel/bad_wings/keymaps/miketronic/config.h +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2023 @miketronic -- Mike B -// SPDX-License-Identifier: GPL-2.0+ - -#pragma once - -# define TAPPING_TERM 160 -# define TAPPING_TERM_PER_KEY -# define HOLD_ON_OTHER_KEY_PRESS -# define QUICK_TAP_TERM TAPPING_TERM / 2 -# define QUICK_TAP_TERM_PER_KEY - -# define CIRQUE_PINNACLE_TAP_ENABLE -# define CIRQUE_PINNACLE_SECONDARY_TAP_ENABLE -# define CIRQUE_PINNACLE_ATTENUATION_4X -# define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_RELATIVE_MODE -//# define CIRQUE_DEVICE_GESTURES_SCROLL_ENABLE diff --git a/keyboards/hazel/bad_wings/keymaps/miketronic/keymap.c b/keyboards/hazel/bad_wings/keymaps/miketronic/keymap.c deleted file mode 100644 index 3ebcc79fde..0000000000 --- a/keyboards/hazel/bad_wings/keymaps/miketronic/keymap.c +++ /dev/null @@ -1,258 +0,0 @@ -// Copyright 2023 @miketronic -- Mike B -// SPDX-License-Identifier: GPL-2.0+ - -#include "miketronic.h" - - -/* -layer_state_t layer_state_set_user(layer_state_t state) { - return update_tri_layer_state(state, 1, 2, 3); -} - - - [0] = LAYOUT_split_3x5_3( - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \ - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, \ - KC_Z, LGUI_T(KC_X), LALT_T(KC_C), KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \ - KC_LCTL, OSL(1), OSM(MOD_LSFT), KC_SPC, LT(2, KC_BSPC), KC_ENT - ), - [1] = LAYOUT_split_3x5_3( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_RBRC, KC_RCBR, KC_RPRN, KC_RABK, KC_NO, \ - KC_GRV, KC_TILD, KC_UNDS, KC_EQL, KC_NO, KC_LBRC, KC_LCBR, KC_LPRN, KC_LABK, KC_BACKSLASH, \ - KC_NO, KC_NO, KC_PLUS, KC_MINS, KC_NO, KC_NO, KC_NO, KC_COLN, KC_DOT, KC_SCLN, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - [2] = LAYOUT_split_3x5_3( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_PIPE, KC_NO, \ - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DOT, KC_NO, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - [3] = LAYOUT_split_3x5_3( - KC_ESC, KC_F1, KC_F4, KC_F7, KC_F10, KC_NO, KC_HOME, KC_UP, KC_END, KC_BSPC, \ - KC_TAB, KC_F2, KC_F5, KC_F8, KC_F11, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_ENT, \ - KC_NO, KC_F3, KC_F6, KC_F9, KC_F12, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_DEL, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -*/ - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* WORKMAN - * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐ - * │ Q │ D │ R │ W │ B │ │ J │ F │ U │ P │ BSPC│ - * │ ESC │ │ │ │ SYM │ │ SYM │ │ │ │ │ - * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤ - * │ A │ S │ H ┃ T ┃ G │ │ Y ┃ N ┃ E │ O │ I │ - * │SHIFT│ │ ┃ EX ┃ │ │ ┃ ┃ │ │ │ - * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤ - * │ Z │ X │ M │ C │ V │ │ K │ L │ SPC │ SPC │ENTER│ - * │ FN │ CTRL│ OS │ ALT │LOWER│ │RAISE│ │ , │ . │ │ - * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘ - * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │ - * │SHIFT│ │ │ │ │ │PASTE│ - * └─────┴─────┴─────┘ └─────┴─────┴─────┘ -*/ - [_WM] = LAYOUT_split_3x5_3_wrapper ( - _____________WORKMAN_310_001_L_____________, _____________WORKMAN_310_001_R_____________, - _____________WORKMAN_310_002_L_____________, _____________WORKMAN_310_002_R_____________, - _____________WORKMAN_310_003_L_____________, _____________WORKMAN_310_003_R_____________, - _________3KEY_LEFT___________, _________3KEY_RIGHT__________ - ), - - [_QW] = LAYOUT_split_3x5_3_wrapper ( - _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, - _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, - _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, - _________3KEY_LEFT___________, _________3KEY_RIGHT__________ - ), - - - - /* LOWER - * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐ - * │ () │ [] │ /\ │ │ │ │ │ 7 │ 8 │ 9 │ │ - * │ │ <> │ │ │ │ │ │ │ │ │ │ - * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤ - * │ @ # │ & % │ ┃ ┃ │ │ . ┃ 4 ┃ 5 │ 6 │ UP │ - * │ │ │ ┃ ┃ │ │ENTER┃ ┃ │ │RIGHT│ - * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤ - * │ │ │ │ │ │ │ 0 │ 1 │ 2 │ 3 │ DOWN│ - * │ │ │ │ │LOWER│ │ │ │ 0 │ │ LEFT│ - * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘ - * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │ - * │SHIFT│ │ │ │ │ │PASTE│ - * └─────┴─────┴─────┘ └─────┴─────┴─────┘ -*/ - [_LOWER] = LAYOUT_split_3x5_3_wrapper ( - _______________LOWER_310_L1________________, _______________LOWER_310_R1________________, - _______________LOWER_310_L2________________, _______________LOWER_310_R2________________, - _______________LOWER_310_L3________________, _______________LOWER_310_R3________________, - _________3KEY_LEFT___________, _________3KEY_RIGHT__________ - ), - - - - /* RAISE - * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐ - * │ BOOT│DEBUG│ │ │ MAKE│ │ │ F7 │ F8 │ F9 │ F10 │ - * │ │ │ │ │ │ │ │ │ │ │ │ - * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤ - * │ │ RGB │ RGB ┃ RGB ┃ RGB │ │ _ ┃ F4 ┃ F5 │ F6 │ F11 │ - * │ │ TOG │ MOD ┃ HUI ┃ HUD │ │ - ┃ ┃ │ │ │ - * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤ - * │ │ RGB │ RGB │ RGB │ RGB │ │ │ F1 │ F2 │ F3 │ F12 │ - * │ │ SAI │ SAD │ VAI │ VAD │ │RAISE│ │ │ │ │ - * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘ - * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │ - * │SHIFT│ │ │ │ │ │PASTE│ - * └─────┴─────┴─────┘ └─────┴─────┴─────┘ -*/ - [_RAISE] = LAYOUT_split_3x5_3_wrapper ( - _______________RAISE_310_L1________________, _______________RAISE_310_R1________________, - _______________RAISE_310_L2________________, _______________RAISE_310_R2________________, - _______________RAISE_310_L3________________, _______________RAISE_310_R3________________, - _________3KEY_LEFT___________, _________3KEY_RIGHT__________ - ), - - - - /* EXTRAS - * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐ - * │ ! │ │ │ │ │ │ │ /\ | () | [] | ; │ - * │ │ │ │ │ │ │ │ │ │ │ │ - * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤ - * │ │ │ ┃EXTRA┃ │ │ ┃ @ # ┃ & % | │ ' │ - * │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │ - * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤ - * │ │ │ │ │ │ │ │ │ , │ . │ ? │ - * │ │ │ │ │ │ │ │ │ │ │ │ - * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘ - * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │ - * │SHIFT│ │ │ │ │ │PASTE│ - * └─────┴─────┴─────┘ └─────┴─────┴─────┘ -*/ - [_EX] = LAYOUT_split_3x5_3_wrapper ( - ______________EXTRAS_310_L1________________, ______________EXTRAS_310_R1________________, - ______________EXTRAS_310_L2________________, ______________EXTRAS_310_R2________________, - ______________EXTRAS_310_L3________________, ______________EXTRAS_310_R3________________, - _________3KEY_LEFT___________, _________3KEY_RIGHT__________ - ), - - - - /* FUNCTION - * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐ - * │COPY │CLIP │ SS │ │ │ │ │ /\ │ UP │ │ DEL │ - * │PASTE│ │ │ │ │ │ │ │ │ │ │ - * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤ - * │ TAB │ M05 │ M06 ┃ M07 ┃ M08 │ │ ┃ LEFT┃ DOWN│RIGHT│ UP │ - * │ │ │ ┃ ┃ │ │ ┃ ┃ │ │RIGHT│ - * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤ - * │ │ M01 │ M02 │ M03 │ M04 │ │ │ │ , │ . │DOWN │ - * │ FN │ │ │ │ │ │ │ │ │ │LEFT │ - * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘ - * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │ - * │SHIFT│ │ │ │ │ │PASTE│ - * └─────┴─────┴─────┘ └─────┴─────┴─────┘ -*/ - [_FN] = LAYOUT_split_3x5_3_wrapper ( - _____________FUNCTION_310_L1_______________, _____________FUNCTION_310_R1_______________, - _____________FUNCTION_310_L2_______________, _____________FUNCTION_310_R2_______________, - _____________FUNCTION_310_L3_______________, _____________FUNCTION_310_R3_______________, - _________3KEY_LEFT___________, _________3KEY_RIGHT__________ - ), - - - - /* SYMBOLS - * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐ - * │ $ │ ^ │ < │ > │ │ │ │ | │ [ │ ] │ - │ - * │ │ │ │ │ SYMB│ │ SYMB│ │ │ │ │ - * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤ - * │ % │ : │ ; ┃ + ┃ = │ │ ┃ ┃ ( │ ) │ _ │ - * │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │ - * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤ - * │ & │ ' │ " │ * │ # │ │ ! │ ? │ / │ \ │ @ │ - * │ │ │ │ │ │ │ │ │ │ │ │ - * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘ - * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │ - * │SHIFT│ │ │ │ │ │PASTE│ - * └─────┴─────┴─────┘ └─────┴─────┴─────┘ -*/ - [_SYMB] = LAYOUT_split_3x5_3_wrapper ( - KC_DLR, KC_CIRC, KC_LABK, KC_RABK, XXXX, XXXX, KC_PIPE, KC_LBRC, KC_RBRC, KC_MINS, - KC_PERC, KC_COLN, KC_SCLN, KC_PLUS, KC_EQL, XXXX, XXXX, KC_LPRN, KC_RPRN, KC_UNDS, - KC_AMPR, KC_QUOT, KC_DQUO, KC_ASTR, KC_HASH, KC_EXLM, KC_QUES, KC_SLSH, KC_BSLS, KC_AT, - _________3KEY_LEFT___________, _________3KEY_RIGHT__________ - ), - -}; - - -bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case SFT_T(KC_A): - // Do not force the mod-tap key press to be handled as a modifier - // if any other key was pressed while the mod-tap key is held down. - return false; - case TEX: - return false; - case CTRLX: - return false; - case FNZ: - return false; - case MGUI: - return false; - case VLOWER: - return false; - case KRAISE: - return false; - default: - // Force the dual-role key press to be handled as a modifier if any - // other key was pressed while the mod-tap key is held down. - return true; - } -} - - -#ifdef AUDIO_ENABLE -float leader_start_song[][2] = SONG(ONE_UP_SOUND); -float leader_succeed_song[][2] = SONG(ALL_STAR); -float leader_fail_song[][2] = SONG(RICK_ROLL); -#endif - -void matrix_scan_user(void); - -void leader_start_user(void) { -#ifdef AUDIO_ENABLE - PLAY_SONG(leader_start_song); -#endif -} - -bool did_leader_succeed; - -void leader_end_user(void) { - did_leader_succeed = false; - - if (leader_sequence_one_key(KC_E)) { - SEND_STRING(SS_LCTL(SS_LSFT("t"))); - did_leader_succeed = true; - } else if (leader_sequence_two_keys(KC_E, KC_D)) { - SEND_STRING(SS_LGUI("r") "cmd\n" SS_LCTL("c")); - did_leader_succeed = true; - } else if (leader_sequence_two_keys(KC_A, KC_T)) { - SEND_STRING("@guidehouse.com"); - did_leader_succeed = true; - } - - -#ifdef AUDIO_ENABLE - if (did_leader_succeed) { - PLAY_SONG(leader_succeed_song); - } else { - PLAY_SONG(leader_fail_song); - } -#endif -} - diff --git a/keyboards/hazel/bad_wings/keymaps/miketronic/rules.mk b/keyboards/hazel/bad_wings/keymaps/miketronic/rules.mk deleted file mode 100644 index 72c338c157..0000000000 --- a/keyboards/hazel/bad_wings/keymaps/miketronic/rules.mk +++ /dev/null @@ -1,31 +0,0 @@ -# Common feature for all keyboards -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -EXTRAKEY_ENABLE = yes # Audio control and System control -TAP_DANCE_ENABLE = yes # Tap Dance keys -NKRO_ENABLE = yes # Enable N-Key Rollover -MACROS_ENABLED = yes - -# Keyboard specific -MOUSEKEY_ENABLE = yes # Mouse keys -CAPS_WORD_ENABLE = yes -KEY_OVERRIDE_ENABLE = yes -LEADER_ENABLE = yes - - - LTO_ENABLE = no # Enabled this causes longer build time, but smaller file. - AUTO_SHIFT_ENABLE = no - UNICODE_ENABLE = no # Unicode - CONSOLE_ENABLE = no # Console for debug - COMMAND_ENABLE = no # Commands for debug and configuration - RGBLIGHT_ENABLE = no - BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality - SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend (it uses the same timer as BACKLIGHT_ENABLE) - AUDIO_ENABLE = no # Audio output on port C6 - MIDI_ENABLE = no # MIDI support - BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID - GRAVE_ESC_ENABLE = no - SPACE_CADET_ENABLE = no - COMBO_ENABLE = no - OLED_ENABLE = no - ENCODER_ENABLE = no - ENCODER_MAP_ENABLE = no diff --git a/keyboards/helix/pico/keymaps/mtei/config.h b/keyboards/helix/pico/keymaps/mtei/config.h deleted file mode 100644 index a633105ff9..0000000000 --- a/keyboards/helix/pico/keymaps/mtei/config.h +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2022 Takeshi Ishii (mtei@github) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -// place overrides here - -#ifdef AUDIO_ENABLE - #define STARTUP_SONG SONG(STARTUP_SOUND) - #define AUDIO_CLICKY -#endif - -#undef TAPPING_TERM -#define TAPPING_TERM 300 -#define PERMISSIVE_HOLD - -// If you need more program area, try select and reduce rgblight modes to use. - diff --git a/keyboards/helix/pico/keymaps/mtei/keymap.c b/keyboards/helix/pico/keymaps/mtei/keymap.c deleted file mode 100644 index 9bf479df6f..0000000000 --- a/keyboards/helix/pico/keymaps/mtei/keymap.c +++ /dev/null @@ -1,335 +0,0 @@ -/* Copyright 2018 mtei - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H -#include "key_blocks.h" - -#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) -#define kc5(a,b,c,d,e) KC_##a, KC_##b, KC_##c, KC_##d, KC_##e - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -enum layer_number { - _QWERTY = 0, - _COLEMAK, - _DVORAK, - _EUCALYN, - _NUML, - _NUMR, - _LOWER, - _RAISE, - _ADJUST, -}; - -enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - EUCALYN, - NUML, - NUMR, - xEISU, - xKANA, - ZERO2, - RGBRST -}; - -// clang-format off - -//Macros -#define LT_NUML_SP LT(_NUML,KC_SPC) -#define LT_NUMR_SP LT(_NUMR,KC_SPC) -#define LT_RA_BSPC LT(_RAISE,KC_BSPC) -#define LT_RA_ENT LT(_RAISE,KC_ENT) -#define ___ _______ - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* Qwerty */ -#define LOWER___LOWER__CAPS__LALT__LGUI__NUML__RABS MO(_LOWER), MO(_LOWER), KC_CAPS, KC_LALT, KC_LGUI, LT_NUML_SP, LT_RA_BSPC -#define RAEN_NUMR__RGUI__RALT___APP_LOWER__LOWER LT_RA_ENT, LT_NUMR_SP, KC_RGUI, KC_RALT, KC_APP, MO(_LOWER), MO(_LOWER) - /* ,-----------------------------------------. ,-----------------------------------------. - * | ESC | Q | W | E | R | T | | Y | U | I | O | P | \ | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Ctrl | A | S | D | F | G | | H | J | K | L | ; | Ctrl | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | | N | M | , | . | / | Shift| - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * |Lower | Lower| Caps | Alt | GUI | Space| BS | Enter| Space| GUI | Alt | Menu |Lower |Lower | - * `-------------------------------------------------------------------------------------------------' - */ - [_QWERTY] = LAYOUT_wrapper( - KC_ESC, Q_____W_____E_____R_____T, Y_____U_____I_____O_____P, KC_BSLS, - KC_LCTL, A_____S_____D_____F_____G, H_____J_____K_____L____SCLN, KC_RCTL, - KC_LSFT, Z_____X_____C_____V_____B, N_____M____COMM__DOT___SLSH, KC_RSFT, - LOWER___LOWER__CAPS__LALT__LGUI__NUML__RABS, RAEN_NUMR__RGUI__RALT___APP_LOWER__LOWER - ), - - /* Colemak */ - /* ,-----------------------------------------. ,-----------------------------------------. - * | ESC | Q | W | F | P | G | | J | L | U | Y | ; | \ | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Ctrl | A | R | S | T | D | | H | N | E | I | O | Ctrl | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | | K | M | , | . | / | Shift| - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * |Lower | Lower| Caps | Alt | GUI | Space| BS | Enter| Space| GUI | Alt | Menu |Lower |Lower | - * `-------------------------------------------------------------------------------------------------' - */ - [_COLEMAK] = LAYOUT_wrapper( - KC_ESC, Q_____W_____F_____P_____G, J_____L_____U_____Y____SCLN, KC_BSLS, - KC_LCTL, A_____R_____S_____T_____D, H_____N_____E_____I_____O, KC_RCTL, - KC_LSFT, Z_____X_____C_____V_____B, K_____M____COMM__DOT___SLSH, KC_RSFT, - LOWER___LOWER__CAPS__LALT__LGUI__NUML__RABS, RAEN_NUMR__RGUI__RALT___APP_LOWER__LOWER - ), - - /* Dvorak */ - /* ,-----------------------------------------. ,-----------------------------------------. - * | ESC | ' | , | . | P | Y | | F | G | C | R | L | \ | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Ctrl | A | O | E | U | I | | D | H | T | N | S | Ctrl | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Shift| ; | Q | J | K | X | | B | M | W | V | Z | Shift| - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * |Lower | Lower| Caps | Alt | GUI | Space| BS | Enter| Space| GUI | Alt | Menu |Lower |Lower | - * `-------------------------------------------------------------------------------------------------' - */ - [_DVORAK] = LAYOUT_wrapper( - KC_ESC, QUOT_COMM___DOT____P_____Y, F_____G_____C_____R_____L, KC_BSLS, - KC_LCTL, A_____O_____E_____U_____I, D_____H_____T_____N_____S, KC_RCTL, - KC_LSFT, SCLN___Q_____J_____K_____X, B_____M_____W_____V_____Z, KC_RSFT, - LOWER___LOWER__CAPS__LALT__LGUI__NUML__RABS, RAEN_NUMR__RGUI__RALT___APP_LOWER__LOWER - ), - - /* Eucalyn (http://eucalyn.hatenadiary.jp/entry/about-eucalyn-layout) */ - /* ,-----------------------------------------. ,-----------------------------------------. - * | ESC | Q | W | , | . | ; | | M | R | D | Y | P | \ | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Ctrl | A | O | E | I | U | | G | T | K | S | N | Ctrl | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Shift| Z | X | C | V | F | | B | H | J | L | / | Shift| - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * |Lower | Lower| Caps | Alt | GUI | Space| BS | Enter| Space| GUI | Alt | Menu |Lower |Lower | - * `-------------------------------------------------------------------------------------------------' - */ - [_EUCALYN] = LAYOUT_wrapper( - KC_ESC, Q_____W___COMM___DOT__SCLN, M_____R_____D_____Y_____P, KC_BSLS, - KC_LCTL, A_____O_____E_____I_____U, G_____T_____K_____S_____N, KC_RCTL, - KC_LSFT, Z_____X_____C_____V_____F, B_____H_____J_____L____SLSH, KC_RSFT, - LOWER___LOWER__CAPS__LALT__LGUI__NUML__RABS, RAEN_NUMR__RGUI__RALT___APP_LOWER__LOWER - ), - - /* Num */ -#define EXLM__AT__HASH___DLR__PERC kc5( EXLM, AT, HASH, DLR, PERC ) -#define CIRC_AMPR_ASTR__LPRN__RPRN kc5( CIRC, AMPR, ASTR, LPRN, RPRN ) -#define ____z_____z_____z_____z _______, _______, _______, _______ -#define ____z_____z_____z _______, _______, _______ -#define ____z_____z _______, _______ - /* ,-----------------------------------------. ,-----------------------------------------. - * | | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | | | - * `-------------------------------------------------------------------------------------------------' - */ - [_NUML] = LAYOUT_wrapper( - _______, EXLM__AT__HASH___DLR__PERC, CIRC_AMPR_ASTR__LPRN__RPRN, _______, - _______, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_F12, - _______, F1____F2____F3____F4____F5, F6____F7____F8____F9____F10, KC_F11, - _______, ____z_____z_____z_____z,____z_____z_____z,KC_SPC, ____z_____z_____z_____z, _______ - ), - [_NUMR] = LAYOUT_wrapper( - _______, EXLM__AT__HASH___DLR__PERC, CIRC_AMPR_ASTR__LPRN__RPRN, _______, - _______, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_F12, - _______, F1____F2____F3____F4____F5, F6____F7____F8____F9____F10, KC_F11, - _______, ____z_____z_____z_____z,KC_SPC, ____z_____z_____z,____z_____z_____z_____z, _______ - ), - /* Lower */ -#define XXXX__PAUS__SLCK___INS__XXXX XXXXXXX, KC_PAUS, KC_SCRL, KC_INS, XXXXXXX -#define XXXX___INS__SLCK__PAUS__XXXX XXXXXXX, KC_INS, KC_SCRL, KC_PAUS, XXXXXXX -#define HOME__XXXX____UP___DEL__PGUP KC_HOME, XXXXXXX, KC_UP, KC_DEL, KC_PGUP -#define PGUP___DEL____UP__XXXX__HOME KC_PGUP, KC_DEL, KC_UP, XXXXXXX, KC_HOME -#define END___LEFT__DOWN__RGHT__PGDN kc5( END, LEFT, DOWN, RGHT, PGDN ) -#define PGDN__LEFT__DOWN__RGHT___END kc5( PGDN, LEFT, DOWN, RGHT, END ) -#define ______PSCR__________________ _______, KC_PSCR, _______, _______, _______ -#define __________________PSCR______ _______, _______, _______, KC_PSCR, _______ -#define ADJ___ADJ MO(_ADJUST), MO(_ADJUST) - /* ,-----------------------------------------. ,-----------------------------------------. - * | | |Pause | ScrLk| Ins | | | | Ins | ScrLk|Pause | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | Home | | Up |Delete| PgUp | | PgUp |Delete| Up | | Home | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | End | Left | Down | Right| PgDn | | PgDn | Left | Down | Right| End | | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | PrtSc| | | |Adjust|Adjust| | | | PrtSc| | | - * `-------------------------------------------------------------------------------------------------' - */ - [_LOWER] = LAYOUT_wrapper( - XXXXXXX, XXXX__PAUS__SLCK___INS__XXXX, XXXX___INS__SLCK__PAUS__XXXX, _______, - _______, HOME__XXXX____UP___DEL__PGUP, PGUP___DEL____UP__XXXX__HOME, _______, - _______, END___LEFT__DOWN__RGHT__PGDN, PGDN__LEFT__DOWN__RGHT___END, _______, - _______, ______PSCR__________________, ADJ___ADJ, __________________PSCR______, _______ - ), - /* Raise */ -#define XXXX__XXXX__XXXX__UNDS__MINS XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_MINS -#define EQL__PLUS__XXXX__XXXX__XXXX KC_EQL, KC_PLUS, XXXXXXX, XXXXXXX, XXXXXXX -#define XXXX__XXXX__XXXX__LCBR__LBRC XXXXXXX, XXXXXXX, XXXXXXX, KC_LCBR, KC_LBRC -#define RBRC__RCBR__XXXX__XXXX__XXXX KC_RBRC, KC_RCBR, XXXXXXX, XXXXXXX, XXXXXXX -#define XXXX__XXXX__XXXX__TILD___GRV XXXXXXX, XXXXXXX, XXXXXXX, KC_TILD, KC_GRV -#define QUOT___DQT__XXXX__XXXX__XXXX KC_QUOT, KC_DQT, XXXXXXX, XXXXXXX, XXXXXXX -#define XXXX______________XXXX XXXXXXX, _______, _______, XXXXXXX - /* ,-----------------------------------------. ,-----------------------------------------. - * | TAB | | | | _ | - | | = | + | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | EISU | | | | { | [ | | ] | } | | | | KANA | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | | | | ~ | ` | | ' | " | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | | | - * `-------------------------------------------------------------------------------------------------' - */ - [_RAISE] = LAYOUT_wrapper( - KC_TAB, XXXX__XXXX__XXXX__UNDS__MINS, EQL__PLUS__XXXX__XXXX__XXXX, XXXXXXX, - xEISU, XXXX__XXXX__XXXX__LCBR__LBRC, RBRC__RCBR__XXXX__XXXX__XXXX, xKANA, - XXXXXXX, XXXX__XXXX__XXXX__TILD___GRV, QUOT___DQT__XXXX__XXXX__XXXX, XXXXXXX, - ADJ___ADJ, XXXX______________XXXX, ____z_____z, XXXX______________XXXX, ADJ___ADJ - ), - /* Adjust (Lower + Raise) - * ,-----------------------------------------. ,-----------------------------------------. - * | | Reset|RGBRST|RGB ON|Aud on| Win | | Win | |Qwerty|Euclyn|Colemk|Dvorak| - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | HUE+ | SAT+ | VAL+ |RGB md|Audoff| Mac | | Mac | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | HUE- | SAT- | VAL- | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | | | - * `-------------------------------------------------------------------------------------------------' - */ - [_ADJUST] = LAYOUT( - XXXXXXX, QK_BOOT, RGBRST, RGB_TOG, AU_ON, AG_SWAP, AG_SWAP, XXXXXXX, QWERTY, EUCALYN, COLEMAK, DVORAK, - RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, AU_OFF, AG_NORM, AG_NORM, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, ___,___, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______ - ) -}; - -#ifdef AUDIO_ENABLE - -float tone_qwerty[][2] = SONG(QWERTY_SOUND); -float tone_dvorak[][2] = SONG(DVORAK_SOUND); -float tone_colemak[][2] = SONG(COLEMAK_SOUND); -float tone_plover[][2] = SONG(PLOVER_SOUND); -float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); -#endif - -static int current_default_layer; - -layer_state_t default_layer_state_set_kb(layer_state_t state) { - // 1<<_QWERTY - 1 == 1 - 1 == _QWERTY (=0) - // 1<<_COLEMAK - 1 == 2 - 1 == _COLEMAK (=1) - current_default_layer = state - 1; - // 1<<_DVORAK - 2 == 4 - 2 == _DVORAK (=2) - if ( current_default_layer == 3 ) current_default_layer -= 1; - // 1<<_EUCALYN - 5 == 8 - 5 == _EUCALYN (=3) - if ( current_default_layer == 7 ) current_default_layer -= 4; - return state; -} - -void update_base_layer(int base) -{ - if( current_default_layer != base ) { - eeconfig_update_default_layer(1UL<event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_SONG(tone_qwerty); - #endif - update_base_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_SONG(tone_colemak); - #endif - update_base_layer(_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_SONG(tone_dvorak); - #endif - update_base_layer(_DVORAK); - } - return false; - break; - case EUCALYN: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_SONG(tone_dvorak); - #endif - update_base_layer(_EUCALYN); - } - return false; - break; - case xEISU: - if (record->event.pressed) { - if(keymap_config.swap_lalt_lgui==false){ - register_code(KC_LNG2); - }else{ - SEND_STRING(SS_LALT("`")); - } - } else { - unregister_code(KC_LNG2); - } - return false; - break; - case xKANA: - if (record->event.pressed) { - if(keymap_config.swap_lalt_lgui==false){ - register_code(KC_LNG1); - }else{ - SEND_STRING(SS_LALT("`")); - } - } else { - unregister_code(KC_LNG1); - } - return false; - break; - case RGBRST: - #ifdef RGBLIGHT_ENABLE - if (record->event.pressed) { - eeconfig_update_rgblight_default(); - rgblight_enable(); - } - #endif - break; - } - return true; -} diff --git a/keyboards/helix/pico/keymaps/mtei/rules.mk b/keyboards/helix/pico/keymaps/mtei/rules.mk deleted file mode 100644 index 413d0519d6..0000000000 --- a/keyboards/helix/pico/keymaps/mtei/rules.mk +++ /dev/null @@ -1,18 +0,0 @@ -# QMK Standard Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -# See TOP/keyboards/helix/rules.mk for a list of options that can be set. -# See TOP/docs/config_options.md for more information. -# -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -AUDIO_ENABLE = yes # Audio output on port B5 -LTO_ENABLE = no # if firmware size over limit, try this option - -# Helix Spacific Build Options -# you can uncomment and edit follows 4 Variables -# jp: 以下の4つの変数を必要に応じて編集し、コメントアウトをはずします。 -# LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) -# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) -# LED_ANIMATIONS = yes # LED animations -# IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/config.h b/keyboards/helix/rev2/keymaps/edvorakjp/config.h deleted file mode 100644 index 0dff4b59ca..0000000000 --- a/keyboards/helix/rev2/keymaps/edvorakjp/config.h +++ /dev/null @@ -1,22 +0,0 @@ -#pragma once - -#define SWAP_SCLN - -#undef QUICK_TAP_TERM -#undef TAPPING_TERM -#define TAPPING_TERM 300 - -// If you need more program area, try select and reduce rgblight modes to use. - -// Selection of RGBLIGHT MODE to use. -#if defined(LED_ANIMATIONS) -// # define RGBLIGHT_EFFECT_BREATHING -// # define RGBLIGHT_EFFECT_RAINBOW_MOOD -// # define RGBLIGHT_EFFECT_RAINBOW_SWIRL -// # define RGBLIGHT_EFFECT_SNAKE -// # define RGBLIGHT_EFFECT_KNIGHT -// # define RGBLIGHT_EFFECT_CHRISTMAS -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -// # define RGBLIGHT_EFFECT_RGB_TEST -// # define RGBLIGHT_EFFECT_ALTERNATING -#endif // LED_ANIMATIONS diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/keymap.c b/keyboards/helix/rev2/keymaps/edvorakjp/keymap.c deleted file mode 100644 index 6910bef535..0000000000 --- a/keyboards/helix/rev2/keymaps/edvorakjp/keymap.c +++ /dev/null @@ -1,75 +0,0 @@ -#include QMK_KEYBOARD_H -#include "split_util.h" -#include "edvorakjp.h" - -#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) - -#define __KC_TRNS_x4__ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS -#define __KC_TRNS_x6__ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [L_EDVORAKJP_BASE] = LAYOUT_wrapper( - //,-----------------------------------------------------. ,-----------------------------------------------------. - KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_GRV, __EDVORAKJP_BASE_L1__ , __EDVORAKJP_BASE_R1__ , KC_BSLS, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_EQL, __EDVORAKJP_BASE_L2__ , __EDVORAKJP_BASE_R2__ , KC_MINS, - //|--------+--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------+--------| - KC_ESC, __EDVORAKJP_BASE_L3__ , XXXXXXX, XXXXXXX, __EDVORAKJP_BASE_R3__ , KC_SLSH, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - __EDVORAKJP_PAGE__ , LA_TAB, LS_SPC,LOWER_TD, RAISE_TD, RC_BSPC, RG_ENT, __EDVORAKJP_CURSOR__ - //`--------------------------------------------------------------' `--------------------------------------------------------------' - ), - - [L_EDVORAKJP_LOWER] = LAYOUT_wrapper( - //,-----------------------------------------------------. ,-----------------------------------------------------. - __KC_TRNS_x6__ , __KC_TRNS_x6__ , - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_L__ , XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_R__ , XXXXXXX, XXXXXXX, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - __EDVORAKJP_FUNCTION_L__ , __EDVORAKJP_FUNCTION_R__ , - //|--------+--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------+--------| - KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , KC_TRNS, KC_TRNS, __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - __KC_TRNS_x4__ , KC_TRNS, KC_TRNS, XXXXXXX, KC_MAC, RC_DEL, KC_TRNS, __KC_TRNS_x4__ - //`--------------------------------------------------------------' `--------------------------------------------------------------' - ), - - [L_EDVORAKJP_RAISE] = LAYOUT_wrapper( - //,-----------------------------------------------------. ,-----------------------------------------------------. - __KC_TRNS_x6__ , __KC_TRNS_x6__ , - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - XXXXXXX, XXXXXXX, __EDVORAKJP_SYMBOL_L__ , __EDVORAKJP_SYMBOL_R__ , XXXXXXX, XXXXXXX, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - XXXXXXX, __EDVORAKJP_NUMBER_L__ , __EDVORAKJP_NUMBER_R__ , XXXXXXX, - //|--------+--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------+--------| - KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , KC_TRNS, KC_TRNS, __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - __KC_TRNS_x4__ , KC_TRNS, KC_TRNS, KC_WIN, XXXXXXX, KC_TRNS, KC_TRNS, __KC_TRNS_x4__ - //`--------------------------------------------------------------' `--------------------------------------------------------------' - ) -}; -// clang-format on - -// keymaps definitions are moved to keymap_Xrows.c. - -#ifdef RGBLIGHT_ENABLE -layer_state_t layer_state_set_keymap(layer_state_t state) { - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); - switch (get_highest_layer(state)) { - case L_EDVORAKJP_LOWER: - rgblight_sethsv_noeeprom(HSV_RED); - break; - case L_EDVORAKJP_RAISE: - rgblight_sethsv_noeeprom(HSV_GREEN); - break; - default: // for any other layers, or the default layer - rgblight_mode(RGBLIGHT_MODE_STATIC_GRADIENT + 3); - rgblight_sethsv(HSV_RED); - break; - } - return state; -} -#endif diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/oled.c b/keyboards/helix/rev2/keymaps/edvorakjp/oled.c deleted file mode 100644 index 38a91c1639..0000000000 --- a/keyboards/helix/rev2/keymaps/edvorakjp/oled.c +++ /dev/null @@ -1,65 +0,0 @@ -#include -#include -#include "oled.h" - -#ifdef OLED_ENABLE -void render_host_led_state(void) { - char led_state_str[24]; - led_t led_state = host_keyboard_led_state(); - - snprintf(led_state_str, sizeof(led_state_str), "NL:%s CL:%s SL:%s", led_state.num_lock ? "on" : "- ", led_state.caps_lock ? "on" : "- ", led_state.scroll_lock ? "on" : "- "); - oled_write(led_state_str, false); -} - -void render_layer_state(void) { - char layer_name[17]; - oled_write_P(PSTR("Layer: "), false); - - switch (get_highest_layer(layer_state)) { - case L_EDVORAKJP_BASE: - oled_write_ln_P(PSTR("Default"), false); - break; - case L_EDVORAKJP_LOWER: - oled_write_ln_P(PSTR("Lower"), false); - break; - case L_EDVORAKJP_RAISE: - oled_write_ln_P(PSTR("Raise"), false); - break; - default: - snprintf(layer_name, sizeof(layer_name), "Undef-%ld", layer_state); - oled_write_ln(layer_name, false); - } -} - -void render_logo(void) { - static const char helix_logo[] PROGMEM = {0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0}; - oled_write_P(helix_logo, false); -} - -void render_mode_icon(bool is_windows) { - static const char logo[][2][3] = { - {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, - {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, - }; - static char mode_icon[10]; - - snprintf(mode_icon, sizeof(mode_icon), "%s\n%s ", logo[is_windows][0], logo[is_windows][1]); - oled_write(mode_icon, false); -} - -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - // flips the display 180 degrees if offhand - return is_keyboard_left() ? rotation : rotation ^ OLED_ROTATION_180; -} - -bool oled_task_user(void) { - if (is_keyboard_left()) { - render_mode_icon(!get_enable_kc_lang()); - render_layer_state(); - render_host_led_state(); - } else { - render_logo(); - } - return false; -} -#endif // OLED_ENABLE diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/oled.h b/keyboards/helix/rev2/keymaps/edvorakjp/oled.h deleted file mode 100644 index d0c5685283..0000000000 --- a/keyboards/helix/rev2/keymaps/edvorakjp/oled.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once - -#include "edvorakjp.h" - -extern bool japanese_mode; - -void render_host_led_state(void); -void render_layer_state(void); -void render_logo(void); -void render_mode_icon(bool is_windows); -oled_rotation_t oled_init_user(oled_rotation_t rotation); -bool oled_task_user(void); diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/readme.md b/keyboards/helix/rev2/keymaps/edvorakjp/readme.md deleted file mode 100644 index dd406523d2..0000000000 --- a/keyboards/helix/rev2/keymaps/edvorakjp/readme.md +++ /dev/null @@ -1,21 +0,0 @@ -# edvorakjp - -Epaew's Enhanced Dvorak layout for Japanese Programmer -see [here](/users/edvorakjp) for more informations. - -## License - -Copyright 2018 Ryo Maeda epaew.333@gmail.com @epaew - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/rules.mk b/keyboards/helix/rev2/keymaps/edvorakjp/rules.mk deleted file mode 100644 index 66d33e5e46..0000000000 --- a/keyboards/helix/rev2/keymaps/edvorakjp/rules.mk +++ /dev/null @@ -1,33 +0,0 @@ -# QMK Standard Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -# See TOP/keyboards/helix/rules.mk for a list of options that can be set. -# See TOP/docs/config_options.md for more information. -# -SPLIT_KEYBOARD = yes -LTO_ENABLE = no # if firmware size over limit, try this option -TAP_DANCE_ENABLE = yes - -# Helix Spacific Build Options -# you can uncomment and edit follows 7 Variables -# jp: 以下の7つの変数を必要に応じて編集し、コメントアウトをはずします。 -# OLED_ENABLE = no # OLED_ENABLE -# LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" instead of "common/glcdfont.c" -# LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) -# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) -# LED_ANIMATIONS = yes # LED animations -# IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) -OLED_SELECT = core - -# convert Helix-specific options (that represent combinations of standard options) -# into QMK standard options. -include $(strip $(KEYBOARD_LOCAL_FEATURES_MK)) - -ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes) - OPT_DEFS += -DRGBLED_BACK -endif - -ifeq ($(strip $(OLED_ENABLE)), yes) - SRC += oled.c -endif diff --git a/keyboards/helix/rev2/keymaps/five_rows/README.md b/keyboards/helix/rev2/keymaps/five_rows/README.md deleted file mode 100644 index 10a4fa942c..0000000000 --- a/keyboards/helix/rev2/keymaps/five_rows/README.md +++ /dev/null @@ -1,84 +0,0 @@ -# Keymap for 5 rows Helix keyboard - -This keymap is only for 5 rows Helix keyboard. - -## Layout - -![fig1](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3.png) - -## Layer - -|Priority|Number|Name|Discription| -| ---- | ---- | --- | --- | -|high|9|Adjust| keyboard local functions (violet)| -||8|KFunction| TenkeyPad function keys (bule)| -||7|Extra char| some charactors (red)| -||6|Function| function keys (blue)| -||2|Keypad|TenkeyPad| -||2|Dvorak|Dvorak| -||1|Colemak|Colemak| -|low|0|Qwerty|QWERTY (base)| - -### Adjust Layer - -Adjust Layer has keyboard local function keys. - -* LED control. -* Mac/Win mode change. -* Qwerty/Colemak/Dvorak/TenkeyPad change. - -![fig2](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3adj.png) - -### Mac mode and Win mode - -Mac mode swap Alt/Win(GUI) key. - -|mode|key|code| -| ---- | ---- | --- | -|Mac mode|Adjust + g(Qwerty)|AG_NORM| -| |Adjust + h(Qwerty)| | -|Win mode|Adjust + t(Qwerty)|AG_SWAP| -| |Adjust + y(Qwerty)| | - -### LED control - -|command|key|code| -| ---- | ---- | --- | -|on/off|Adjust + e(Qwerty)|RGB_TOG| -| |Adjust + i(Qwerty)| | -|change mode|Adjust + d(Qwerty) |RGB_MOD| -| |Adjust + k(Qwerty)| | -|HUE +|Adjust + Left Control|RGB_HUI| -| |Adjust + Right Control| | -|HUE -|Adjust + Left Shift |RGB_HUD| -| |Adjust + Right Shift | | -|SAT +|Adjust + ;(Qwerty) |RGB_SAI| -| |Adjust + a(Qwerty) | | -|SAT -|Adjust + z(Qwerty) |RGB_SAD| -| |Adjust + /(Qwerty) | | -|Bright +|Adjust + s(Qwerty) |RGB_VAI| -| |Adjust + l(Qwerty) | | -|Bright -|Adjust + x(Qwerty) |RGB_VAD| -| |Adjust + >(Qwerty) | | -|reset|Adjust + w|RGBRST| - -### Qwerty, Colemak, Dvorak, TenkeyPad selection - -|char layout|key| -| ---- | ---- | -|Qwerty | Adjust + 5 | -| | Adjust + 6 | -|Calemak| Adjust + 4 | -| | Adjust + 7 | -|Dvorak | Adjust + 3 | -| | Adjust + 8 | -|Keypad | Adjust + 2 | -| | Adjust + 9 | - -## TenkeyPad layout - -![fig3](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3key.png) - -## Note - -![fig4](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/d6e9af7684c051de4744b9dee9cd96b762bf4e2d/five_rows_making2.jpg) diff --git a/keyboards/helix/rev2/keymaps/five_rows/README_jp.md b/keyboards/helix/rev2/keymaps/five_rows/README_jp.md deleted file mode 100644 index 317ffdd71d..0000000000 --- a/keyboards/helix/rev2/keymaps/five_rows/README_jp.md +++ /dev/null @@ -1,121 +0,0 @@ -# Keymap for 5 rows Helix keyboard - -本キーマップは、Helix キーボードの5行版専用のキーマップです。 - -普通のキーボード使用者が、Helix キーボードを使うときになるべく違いが少なく戸惑いが少なくなるように意図したキーマップです。(意図通り成功しているかどうかは使用する人の判断で、、、) - -## キー配置 -以下に、Qwerty配列時の、文字配列の図を示します。 - -![fig1](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3.png) - -## レイヤー - -|優先順位|番号|名称|内容| -| ---- | ---- | --- | --- | -|高い|9|Adjust|機能キー(紫)| -||8|KFunction|テンキーパッド用ファンクションキー類(青)| -||7|Extra char|記号類(赤)| -||6|Function|ファンクションキー類(青)| -||3|Keypad|テンキーパッド配列| -||2|Dvorak|Dvorak配列| -||1|Colemak|Colemak配列| -|低い|0|Qwerty|QWERTY配列(ベース)| - -Qwerty/Colemak/Dvorak/Keypad の各レイヤーは、後述する、Ajuestレイヤーの キーによる選択で、いずれか一つだけが有効になり、標準のキーマップとなります。 - -Function レイヤーは、下段両端の4つのFnキーのどれかひとつを押している間だけ有効になり、矢印キー等のナビゲーションキーや F1, F2, ...F12キーなどが配置されています。 -上の図の青色の刻印のキーのあるレイヤーです。 - -Extra レイヤーは、下段中央部の Enter キーか BS キーを一定時間(0.2秒)以上押していると押している間だけ有効になり、'+=-_[]{}' の 8つの記号と「英数」キー、「かな」キーが配置されています。 -このため、Enter/BS キーで Enter/BS を入力するには、Enter/BSキーを押して短時間ですぐ離してください。 -上の図の赤色の刻印のキーのあるレイヤーです。 - -Adjust レイヤーは、Adjust キーを押している間有効になります。 -Adjust キーは Function レイヤーに有り、下段両端の4つのFnキーのどれか一つを押しながら、下段中央部の Enter キーか BS キーを押すことで Adjust レイヤーが有効になります。 -Adjust キー (Enter/BS)を押した後は、Fnキーは離して構いません。 - -### Adjust レイヤー -Ajust レイヤーは、LEDのコントロール、Mac/Win モードの切り替え、Qwerty配列, Colemak配列, Dvorak配列, TenkeyPad配列の切り替えが行えます。 - -![fig2](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3adj.png) - -### MacモードとWinモード -キーボードには、Mac モードと、Win モードの二つのモードがあります。 - -現在のモードはOLEDにアイコンとして表示されます。 -(以下の指定キーは、Qwerty配列時の文字を使ってキーを表示しています) - -|コマンド|指定キー|コード| -| ---- | ---- | --- | -|Macモード|Adjust + g(Qwerty)|AG_NORM| -| |Adjust + h(Qwerty)| | -|Winモード|Adjust + t(Qwerty)|AG_SWAP| -| |Adjust + y(Qwerty)| | - -Mac モードと Win モードでは、AltキーとWin(GUI)キーが入れ替わります。 - -Mac モードでは、Extra レイヤー の「英数」キーと「かな」キーで英語モードと日本語モードの切り替えができます。 - -Winモードでは、該当のキーはどちらも共に Alt + `(日本語IMEの切り替え)として入力されます。 - -### LEDコントロール - -バックライトやUnderglowをコントロールするにはAdjustレイヤーにある機能キーを使います。 -(以下の指定キーは、Qwerty配列時の文字を使ってキーを表示しています) - -|コマンド|指定キー|コード| -| ---- | ---- | --- | -|オン/オフ|Adjust + e(Qwerty)|RGB_TOG| -| |Adjust + i(Qwerty)| | -|モード切り替え|Adjust + d(Qwerty) |RGB_MOD| -| |Adjust + k(Qwerty)| | -|色相 +|Adjust + Left Control|RGB_HUI| -| |Adjust + Right Control| | -|色相 -|Adjust + Left Shift |RGB_HUD| -| |Adjust + Right Shift | | -|彩度 +|Adjust + ;(Qwerty) |RGB_SAI| -| |Adjust + a(Qwerty) | | -|彩度 -|Adjust + z(Qwerty) |RGB_SAD| -| |Adjust + /(Qwerty) | | -|明度 +|Adjust + s(Qwerty) |RGB_VAI| -| |Adjust + l(Qwerty) | | -|明度 -|Adjust + x(Qwerty) |RGB_VAD| -| |Adjust + >(Qwerty) | | -|リセット|Adjust + w|RGBRST| - -### 文字配列選択 -Qwerty, Colemak, Dvorak, Keypad それぞれの文字配列の選択は以下のキーを使います。 - -|選択配列|指定キー| -| ---- | ---- | -|Qwerty | Adjust + 5 | -| | Adjust + 6 | -|Calemak| Adjust + 4 | -| | Adjust + 7 | -|Dvorak | Adjust + 3 | -| | Adjust + 8 | -|Keypad | Adjust + 2 | -| | Adjust + 9 | - -## テンキーパッドのキー配置 -以下に、テンキーパッド配列時の、文字配列の図を示します。 - -![fig3](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3key.png) - -図でわかるように、テンキーと F1,F2..F12 のキー入力ができる配列です。 -F12キーは一定時間(0.2秒)以上押していると KFunc キーとして働き、押している間は、青色の刻印のキー入力を行えます。 -F12 そのものを入力するときは押して短時間ですぐ離してください。 -F12キーを押しているときは、F11キー は Adjust キーとなり、Adjust レイヤーが有効になります。 -これによって、Qwerty 配列などに戻すことが可能になります。 - -## 備考 -本キーマップは、通常のキーボードの主要部分のホームポジション周辺をなるべくそのまま踏襲する方針で作成しました。 -変更点は以下の通りです。 - - * 右手小指により多く割り当たっていた5つの記号と左上の1つの記号を中央に集め人差し指の担当とする。 - * Enter キーを親指担当として中央手前に移動。 - * Control キーを左右共にホームポジションの行に移動。 - * 左手親指に BackSpace キーを割り当てる。 - -![fig4](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/d6e9af7684c051de4744b9dee9cd96b762bf4e2d/five_rows_making2.jpg) diff --git a/keyboards/helix/rev2/keymaps/five_rows/config.h b/keyboards/helix/rev2/keymaps/five_rows/config.h deleted file mode 100644 index 43f14aaf2c..0000000000 --- a/keyboards/helix/rev2/keymaps/five_rows/config.h +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) 2022 Takeshi Ishii (mtei@github) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#undef TAPPING_TERM -#define TAPPING_TERM 300 -#define PERMISSIVE_HOLD - -#undef OLED_UPDATE_INTERVAL -#ifdef DEBUG_MATRIX_SCAN_RATE -# define OLED_UPDATE_INTERVAL 500 -#else -# define OLED_UPDATE_INTERVAL 50 -#endif - diff --git a/keyboards/helix/rev2/keymaps/five_rows/keymap.c b/keyboards/helix/rev2/keymaps/five_rows/keymap.c deleted file mode 100644 index dc2759d5b6..0000000000 --- a/keyboards/helix/rev2/keymaps/five_rows/keymap.c +++ /dev/null @@ -1,474 +0,0 @@ -/* Copyright 2020 mtei - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -#include "key_blocks.h" -#include "layer_number_util.h" - -#ifdef ENABLE_COLEMAK -# define COLEMAK_Colemak (COLEMAK, " Colemak"), -#else -# define COLEMAK_Colemak -#endif -#ifdef ENABLE_DVORAK -# define DVORAK_Dvorak (DVORAK, " Dvorak"), -#else -# define DVORAK_Dvorak -#endif -#ifdef ENABLE_EUCALYN -# define EUCALYN_Eucalyn (EUCALYN, " Eucalyn"), -#else -# define EUCALYN_Eucalyn -#endif - -#define LAYER_NAME_LIST \ - (QWERTY, " Qwerty"), \ - COLEMAK_Colemak \ - DVORAK_Dvorak \ - EUCALYN_Eucalyn \ - (KEYPAD, " Keypad"), \ - (AUX, ":AUX"), \ - (KAUX, ":00"), \ - (LOWER, ":Func"), \ - (RAISE, ":Extra"), \ - (PADFUNC, ":PadFunc"), \ - (ADJUST, ":Adjust") - -enum layer_number { - // _QWERTY, _COLEMAK, ... - MAP(BUILD_LAYER_ENUM_NUMBER, LAYER_NAME_LIST) -}; - -#ifdef OLED_ENABLE -// static const char QWERTY_name[] PROGMEM = " Qwerty"; ... -MAP(BUILD_LAYER_NAME_STR, LAYER_NAME_LIST) - -const char *layer_names[] = { - // [_QWERTY] = QWERTY_name, ... - MAP(BUILD_LAYER_NAME_TABLE, LAYER_NAME_LIST) -}; -#endif - -const size_t num_of_layer_names = GET_ITEM_COUNT(LAYER_NAME_LIST); - -extern keymap_config_t keymap_config; - -extern uint8_t is_master; - -enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - EUCALYN, - KEYPAD, - xEISU, - xKANA, - ZERO2, - RGBRST -}; - -// clang-format off - -#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) - -//Macros -#define KC_LOWER MO(_LOWER) -#define XXXX XXXXXXX -#define ____ _______ -#define KC_ADJ MO(_ADJUST) - -#define LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS \ - KC_LOWER, KC_LOWER, KC_CAPS, KC_LALT, KC_LGUI, KC_SPC, LT(_RAISE,KC_BSPC) -#define RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER \ - LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP, KC_LOWER, KC_LOWER -#define GRV__QUOT KC_GRV, KC_QUOT - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* Qwerty */ - /* ,-----------------------------------. ,-----------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS | - * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ | - * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - * | Ctrl| A | S | D | F | G | | H | J | K | L | ; |Ctrl | - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * |Shift| Z | X | C | V | B | ` | ' | N | M | , | . | / |Shift| - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower| - * `-----------------------------------------------------------------------------------' - */ - [_QWERTY] = LAYOUT_wrapper( - KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC, - KC_TAB, Q_____W_____E_____R_____T, Y_____U_____I_____O_____P, KC_BSLS, - KC_LCTL, A_____S_____D_____F_____G, H_____J_____K_____L____SCLN, KC_RCTL, - KC_LSFT, Z_____X_____C_____V_____B, GRV__QUOT, N_____M____COMM__DOT___SLSH, KC_RSFT, - LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER - ), - - /* Colemak */ - /* ,-----------------------------------. ,-----------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS | - * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ | - * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - * | Ctrl| A | R | S | T | D | | H | N | E | I | O |Ctrl | - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * |Shift| Z | X | C | V | B | ` | ' | K | M | , | . | / |Shift| - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower| - * `-----------------------------------------------------------------------------------' - */ -#ifdef ENABLE_COLEMAK - [_COLEMAK] = LAYOUT_wrapper( - KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC, - KC_TAB, Q_____W_____F_____P_____G, J_____L_____U_____Y____SCLN, KC_BSLS, - KC_LCTL, A_____R_____S_____T_____D, H_____N_____E_____I_____O, KC_RCTL, - KC_LSFT, Z_____X_____C_____V_____B, GRV__QUOT, K_____M____COMM__DOT___SLSH, KC_RSFT, - LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER - ), -#endif - - /* Dvorak */ -#define GRV__SLSH KC_GRV, KC_SLSH - /* ,-----------------------------------. ,-----------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS | - * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - * | Tab | ' | , | . | P | Y | | F | G | C | R | L | \ | - * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - * | Ctrl| A | O | E | U | I | | D | H | T | N | S |Ctrl | - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * |Shift| ; | Q | J | K | X | ` | / | B | M | W | V | Z |Shift| - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower| - * `-----------------------------------------------------------------------------------' - */ -#ifdef ENABLE_DVORAK - [_DVORAK] = LAYOUT_wrapper( - KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC, - KC_TAB, QUOT_COMM___DOT____P_____Y, F_____G_____C_____R_____L, KC_BSLS, - KC_LCTL, A_____O_____E_____U_____I, D_____H_____T_____N_____S, KC_RCTL, - KC_LSFT, SCLN___Q_____J_____K_____X, GRV__SLSH, B_____M_____W_____V_____Z, KC_RSFT, - LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER - ), -#endif - - /* Eucalyn (http://eucalyn.hatenadiary.jp/entry/about-eucalyn-layout) */ - /* ,-----------------------------------. ,-----------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS | - * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - * | Tab | Q | W | , | . | ; | | M | R | D | Y | P | \ | - * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - * | Ctrl| A | O | E | I | U | | G | T | K | S | N |Ctrl | - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * |Shift| Z | X | C | V | F | ` | ' | B | H | J | L | / |Shift| - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower| - * `-----------------------------------------------------------------------------------' - */ -#ifdef ENABLE_EUCALYN - [_EUCALYN] = LAYOUT_wrapper( - KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC, - KC_TAB, Q_____W___COMM___DOT__SCLN, M_____R_____D_____Y_____P, KC_BSLS, - KC_LCTL, A_____O_____E_____I_____U, G_____T_____K_____S_____N, KC_RCTL, - KC_LSFT, Z_____X_____C_____V_____F, GRV__QUOT, B_____H_____J_____L____SLSH, KC_RSFT, - LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER - ), -#endif - - /* Keypad */ -#define KP_TAB__PSLS_PAST KC_TAB, KC_PSLS, KC_PAST -#define KP__7_____8_____9 KC_KP_7, KC_KP_8, KC_KP_9 -#define KP__4_____5_____6 KC_KP_4, KC_KP_5, KC_KP_6 -#define KP__1_____2_____3 KC_KP_1, KC_KP_2, KC_KP_3 -#define KP__0___COMM_PDOT KC_KP_0, KC_COMM, KC_PDOT -#define F1___F6 KC_F1, KC_F6 -#define F2___F7 KC_F2, KC_F7 -#define F3___F8 KC_F3, KC_F8 -#define F4___F9 KC_F4, KC_F9 -#define F5__F10 KC_F5, KC_F10 -#define FF12 LT(_PADFUNC,KC_F12) - /* ,-----------------------------------. ,-----------------------------------. - * | Tab | / | * | Del | F1 | F6 | | F1 | F6 | Del | Tab | / | * | - * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - * | 7 | 8 | 9 | BS | F2 | F7 | | F2 | F7 | BS | 7 | 8 | 9 | - * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - * | 4 | 5 | 6 | - | F3 | F8 | | F3 | F8 | - | 4 | 5 | 6 | - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * | 1 | 2 | 3 | + | F4 | F9 | F11 | F11 | F4 | F9 | + | 1 | 2 | 3 | - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * | 0 | , | . |Enter| F5 | F10| F12 | F12 | F5 | F10|Enter| 0 | , | . | - * `-----------------------------------------------------------------------------------' - */ - [_KEYPAD] = LAYOUT_wrapper( - KP_TAB__PSLS_PAST, KC_DEL, F1___F6, F1___F6, KC_DEL, KP_TAB__PSLS_PAST, - KP__7_____8_____9, KC_BSPC, F2___F7, F2___F7, KC_BSPC, KP__7_____8_____9, - KP__4_____5_____6, KC_PMNS, F3___F8, F3___F8, KC_PMNS, KP__4_____5_____6, - KP__1_____2_____3, KC_PPLS, F4___F9, KC_F11,KC_F11, F4___F9, KC_PPLS, KP__1_____2_____3, - KP__0___COMM_PDOT, KC_PENT, F5__F10, FF12, FF12, F5__F10, KC_PENT, KP__0___COMM_PDOT - ), - - /* AUX modifier key layer - * ,-----------------------------------. ,-----------------------------------. - * | | | | | | | | | | | | | | - * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - * | | | | | | | | | | | | | | - * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - * | | | | | | | | | | | | | | - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * | | | | | | | | | | | | | | | - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * | | 00 | | | | | | | | | | | 00 | | - * `-----------------------------------------------------------------------------------' - */ - [_KAUX] = LAYOUT( - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, - ____,ZERO2, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,ZERO2, ____ - ), - - /* Keypad function layer */ -#define PAUS__SLCK__PSCR KC_PAUS, KC_SCRL, KC_PSCR -#define PSCR__SLCK__PAUS KC_PSCR, KC_SCRL, KC_PAUS -#define HOME___UP___PGUP KC_HOME, KC_UP, KC_PGUP -#define PGUP___UP___HOME KC_PGUP, KC_UP, KC_HOME -#define DEL____INS__LEFT__DOWN__RGHT KC_DEL, KC_INS, KC_LEFT, KC_DOWN, KC_RGHT -#define LEFT__DOWN__RGHT___INS___DEL KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_DEL -#define PGDN___ADJ___ADJ__PGDN KC_PGDN, KC_ADJ, KC_ADJ, KC_PGDN - /* ,-----------------------------------------. ,-----------------------------------------. - * | | | | Pause| ScrLk| PtrSc| | PtrSc| ScrLk| Pause| | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | | | Home | Up | PgUp | | PgUp | Up | Home | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | |Delete|Insert| Left | Down | Right| | Left | Down | Right|Insert|Delete| | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | End | | PgDn |Adjust|Adjust| PgDn | | End | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | | | - * `-------------------------------------------------------------------------------------------------' - */ - [_PADFUNC] = LAYOUT_wrapper( - XXXX, XXXX, XXXX, PAUS__SLCK__PSCR, PSCR__SLCK__PAUS, XXXX, XXXX, XXXX, - XXXX, XXXX, XXXX, HOME___UP___PGUP, PGUP___UP___HOME, XXXX, XXXX, XXXX, - XXXX, DEL____INS__LEFT__DOWN__RGHT, LEFT__DOWN__RGHT___INS___DEL, XXXX, - XXXX, XXXX, XXXX,KC_END,XXXX, PGDN___ADJ___ADJ__PGDN, XXXX,KC_END,XXXX, XXXX, XXXX, - XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, ____, ____, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX - ), - - /* Lower */ -#define XXXX__PAUS__SLCK___INS XXXX, KC_PAUS, KC_SCRL, KC_INS -#define XXXX___INS__SLCK__PAUS__XXXX XXXX, KC_INS, KC_SCRL, KC_PAUS, XXXX -#define ADJ___ADJ KC_ADJ, KC_ADJ -#define HOME__XXXX___UP____DEL__PGUP KC_HOME, XXXX, KC_UP, KC_DEL, KC_PGUP -#define PGUP___DEL___UP___XXXX__HOME KC_PGUP, KC_DEL, KC_UP, XXXX, KC_HOME -#define END__LEFT__DOWN__RGHT__PGDN KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN -#define PGDN__LEFT__DOWN__RGHT___END KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END - /* ,-----------------------------------------. ,-----------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | |Pause | ScrLk| Ins | | | | Ins | ScrLk|Pause | | F12 | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | Home | | Up |Delete| PgUp | | PgUp |Delete| Up | | Home | | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | End | Left | Down | Right| PgDn |Adjust|Adjust| PgDn | Left | Down | Right| End | | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | PrtSc| | | | | | | | | PrtSc| | | - * `-------------------------------------------------------------------------------------------------' - */ - [_LOWER] = LAYOUT_wrapper( - XXXX, F1____F2____F3____F4____F5, F6____F7____F8____F9____F10, KC_F11, - XXXX, XXXX__PAUS__SLCK___INS, XXXX, XXXX___INS__SLCK__PAUS__XXXX, KC_F12, - ____, HOME__XXXX___UP____DEL__PGUP, PGUP___DEL___UP___XXXX__HOME, ____, - ____, END__LEFT__DOWN__RGHT__PGDN, XXXX, XXXX, PGDN__LEFT__DOWN__RGHT___END, ____, - ____, ____,KC_PSCR,____, ____, ____, ADJ___ADJ, ____, ____, ____,KC_PSCR,____, ____ - ), - - /* Raise */ -#define UNDS__MINS KC_UNDS, KC_MINS -#define EQL___PLUS KC_EQL, KC_PLUS -#define LCBR__LBRC KC_LCBR, KC_LBRC -#define RBRC__RCBR KC_RBRC, KC_RCBR -#define MNXT__VOLD__VOLU__MPLY KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY -#define EISU__EISU xEISU, xEISU -#define KANA__KANA xKANA, xKANA - /* ,-----------------------------------------. ,-----------------------------------------. - * | | | | | | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | | | | _ | - | | = | + | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | | | | { | [ | | ] | } | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | EISU | EISU | KANA | KANA | Next | Vol- | Vol+ | Play | | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | | | - * `-------------------------------------------------------------------------------------------------' - */ - [_RAISE] = LAYOUT_wrapper( - XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, - XXXX, XXXX, XXXX, XXXX, UNDS__MINS, EQL___PLUS, XXXX, XXXX, XXXX, XXXX, - ____, XXXX, XXXX, XXXX, LCBR__LBRC, RBRC__RCBR, XXXX, XXXX, XXXX, ____, - ____, XXXX, XXXX, XXXX, XXXX, EISU__EISU, KANA__KANA, MNXT__VOLD__VOLU__MPLY, ____, - ADJ___ADJ, XXXX, ____, ____, XXXX, ____, ____, XXXX, ____, ____, XXXX, ADJ___ADJ - ), - - /* Adjust (Lower + Raise) - * ,-----------------------------------------. ,-----------------------------------------. - * | |Keypad|Dvorak|Colemk|Euclyn|Qwerty| |Qwerty|Euclyn|Colemk|Dvorak|Keypad| | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | Reset|RGBRST|RGB ON|Aud on| Win | | Win |Aud on|RGB ON|RGBRST| | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | HUE+ | SAT+ | VAL+ |RGB md|Audoff| Mac | | Mac |Audoff|RGB md| VAL+ | SAT+ | HUE+ | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | HUE- | SAT- | VAL- | | | | | | | | | VAL- | SAT- | HUE- | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | | | - * `-------------------------------------------------------------------------------------------------' - */ - [_ADJUST] = LAYOUT( - XXXXXXX, KEYPAD, DVORAK, COLEMAK, EUCALYN, QWERTY, QWERTY, EUCALYN, COLEMAK, DVORAK, KEYPAD, XXXXXXX, - XXXXXXX, QK_BOOT, RGBRST, RGB_TOG, AU_ON, AG_SWAP, AG_SWAP, AU_ON, RGB_TOG, RGBRST, XXXXXXX, XXXXXXX, - RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, AU_OFF, AG_NORM, AG_NORM, AU_OFF, RGB_MOD, RGB_VAI, RGB_SAI, RGB_HUI, - RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX,____,____,XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_SAD, RGB_HUD, - _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,____,____,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______ - ), - - /* AUX modifier key layer */ -#define BSPC__RAEN KC_BSPC, LT(_RAISE,KC_ENT) - /* ,-----------------------------------------. ,-----------------------------------------. - * | | | | | | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | | | | | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | BS | Enter| | | | | | | | - * `-------------------------------------------------------------------------------------------------' - */ - [_AUX] = LAYOUT_wrapper( - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, - ____, ____, ____, ____, ____, BSPC__RAEN, ____, ____, ____, ____, ____, ____, ____ - ) -}; - -int current_default_layer; - -layer_state_t default_layer_state_set_user(layer_state_t state) { - current_default_layer = get_highest_layer(state); - return state; -} - -void update_base_layer(int base) -{ - if( current_default_layer != base ) { - eeconfig_update_default_layer(1UL<event.pressed) { - update_base_layer(_QWERTY); - } - return false; - break; - case COLEMAK: -#ifdef ENABLE_COLEMAK - if (record->event.pressed) { - update_base_layer(_COLEMAK); - } -#endif - return false; - break; - case DVORAK: -#ifdef ENABLE_DVORAK - if (record->event.pressed) { - update_base_layer(_DVORAK); - } -#endif - return false; - break; - case EUCALYN: -#ifdef ENABLE_EUCALYN - if (record->event.pressed) { - update_base_layer(_EUCALYN); - } -#endif - return false; - break; - case KEYPAD: - if (record->event.pressed) { - update_base_layer(_KEYPAD); - } - return false; - break; - case ZERO2: - if (record->event.pressed) { - SEND_STRING("00"); - } - return false; - break; - case xEISU: - if (record->event.pressed) { - if(keymap_config.swap_lalt_lgui==false){ - register_code(KC_LNG2); - }else{ - SEND_STRING(SS_LALT("`")); - } - } else { - unregister_code(KC_LNG2); - } - return false; - break; - case xKANA: - if (record->event.pressed) { - if(keymap_config.swap_lalt_lgui==false){ - register_code(KC_LNG1); - }else{ - SEND_STRING(SS_LALT("`")); - } - } else { - unregister_code(KC_LNG1); - } - return false; - break; - case RGBRST: - #ifdef RGBLIGHT_ENABLE - if (record->event.pressed) { - eeconfig_update_rgblight_default(); - rgblight_enable(); - } - #endif - break; - } - return true; -} diff --git a/keyboards/helix/rev2/keymaps/five_rows/rules.mk b/keyboards/helix/rev2/keymaps/five_rows/rules.mk deleted file mode 100644 index 3097316fba..0000000000 --- a/keyboards/helix/rev2/keymaps/five_rows/rules.mk +++ /dev/null @@ -1,24 +0,0 @@ -USER_NAME := mtei -SPLIT_KEYBOARD = yes - - CONSOLE_ENABLE = no # Console for debug - COMMAND_ENABLE = no # Commands for debug and configuration - # CONSOLE_ENABLE and COMMAND_ENABLE - # yes, no +1500 - # yes, yes +3200 - # no, yes +400 -LTO_ENABLE = no # if firmware size over limit, try this option -LED_ANIMATIONS = yes - -# Helix Spacific Build Options -# you can uncomment and edit follows 7 Variables -# jp: 以下の7つの変数を必要に応じて編集し、コメントアウトをはずします。 -# OLED_ENABLE = no # OLED_ENABLE -# LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c" -# LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) -# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) -# LED_ANIMATIONS = yes # LED animations -# IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) -OLED_SELECT = core - -SRC += oled_display.c diff --git a/keyboards/helix/rev2/keymaps/xulkal/config.h b/keyboards/helix/rev2/keymaps/xulkal/config.h deleted file mode 100644 index e2b325450a..0000000000 --- a/keyboards/helix/rev2/keymaps/xulkal/config.h +++ /dev/null @@ -1,38 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -// place overrides here - -// If you need more program area, try select and reduce rgblight modes to use. - -// Selection of RGBLIGHT MODE to use. -#if defined(LED_ANIMATIONS) -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_SNAKE -# define RGBLIGHT_EFFECT_KNIGHT -# define RGBLIGHT_EFFECT_CHRISTMAS -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -//#define RGBLIGHT_EFFECT_RGB_TEST -//#define RGBLIGHT_EFFECT_ALTERNATING -#endif diff --git a/keyboards/helix/rev2/keymaps/xulkal/keymap.c b/keyboards/helix/rev2/keymaps/xulkal/keymap.c deleted file mode 100644 index 28ca2e807b..0000000000 --- a/keyboards/helix/rev2/keymaps/xulkal/keymap.c +++ /dev/null @@ -1,69 +0,0 @@ -#include QMK_KEYBOARD_H -#include "xulkal.h" - -#ifdef PROTOCOL_LUFA -#include "lufa.h" -#include "split_util.h" -#endif - -#define EXPAND_LAYOUT(...) LAYOUT(__VA_ARGS__) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* Qwerty - * ,-----------------------------------------. ,-----------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BkSp | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * |FN(CAPS)| A | S | D | F | G | | H | J | K | L | ; | Enter| - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | Sft[ | Z | X | C | V | B |RGBTOG|RGBRST| N | M | , | . | / | Sft] | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctl- | Win | LOWER| RAISE| Alt | Space|RGBRMOD|RGBMOD|Space| Left | Up | Down | Right| Ctl= | - * `-------------------------------------------------------------------------------------------------' - */ - [_QWERTY] = EXPAND_LAYOUT( - _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, - _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, - _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, - _________________QWERTY_L4_________________, KC_MINS, KC_EQL, _________________QWERTY_R4_________________, - _________________QWERTY_L5_________________, KC_LBRC, KC_RBRC, _________________QWERTY_R5_________________ - ), - -#ifndef GAMELAYER_DISABLE - [_GAME] = EXPAND_LAYOUT( - ___________________GAME_L1_________________, ___________________GAME_R1_________________, - ___________________GAME_L2_________________, ___________________GAME_R2_________________, - ___________________GAME_L3_________________, ___________________GAME_R3_________________, - ___________________GAME_L4_________________, KC_MINS, KC_EQL, ___________________GAME_R4_________________, - ___________________GAME_L5_________________, KC_LBRC, KC_RBRC, ___________________GAME_R5_________________ - ), -#endif - - [_LOWER] = EXPAND_LAYOUT( - __________________LOWER_L1_________________, __________________LOWER_R1_________________, - __________________LOWER_L2_________________, __________________LOWER_R2_________________, - __________________LOWER_L3_________________, __________________LOWER_R3_________________, - __________________LOWER_L4_________________, _______, _______, __________________LOWER_R4_________________, - __________________LOWER_L5_________________, _______, _______, __________________LOWER_R5_________________ - ), - - [_RAISE] = EXPAND_LAYOUT( - __________________RAISE_L1_________________, __________________RAISE_R1_________________, - __________________RAISE_L2_________________, __________________RAISE_R2_________________, - __________________RAISE_L3_________________, __________________RAISE_R3_________________, - __________________RAISE_L4_________________, _______, _______, __________________RAISE_R4_________________, - __________________RAISE_L5_________________, _______, _______, __________________RAISE_R5_________________ - ), - -#ifdef TRILAYER_ENABLED - [_ADJUST] = EXPAND_LAYOUT( - _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, - _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, - _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, - _________________ADJUST_L4_________________, _______, _______, _________________ADJUST_R4_________________, - _________________ADJUST_L5_________________, _______, _______, _________________ADJUST_R5_________________ - ), -#endif -}; diff --git a/keyboards/helix/rev2/keymaps/xulkal/rules.mk b/keyboards/helix/rev2/keymaps/xulkal/rules.mk deleted file mode 100644 index 09e14f46ee..0000000000 --- a/keyboards/helix/rev2/keymaps/xulkal/rules.mk +++ /dev/null @@ -1,14 +0,0 @@ -RGBLIGHT_ENABLE = yes -# Helix specific define for correct RGBLED_NUM -OPT_DEFS += -DRGBLED_BACK - -OLED_ENABLE = yes -# Helix specific font file -OPT_DEFS += -DOLED_FONT_H=\"common/glcdfont.c\" -# Xulkal specific oled define -OPT_DEFS += -DOLED_90ROTATION - -SPLIT_KEYBOARD = yes - -# Explicitly disable helix standard post-processing -KEYBOARD_LOCAL_FEATURES_MK := diff --git a/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h b/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h deleted file mode 100644 index a6fd32c613..0000000000 --- a/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2022 Takeshi Ishii (mtei@github) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#undef TAPPING_TERM -#define TAPPING_TERM 300 -#define PERMISSIVE_HOLD - -#undef OLED_UPDATE_INTERVAL -#ifdef DEBUG_MATRIX_SCAN_RATE -# define OLED_UPDATE_INTERVAL 500 -#else -# define OLED_UPDATE_INTERVAL 50 -#endif - -#define PSEUDO_SPRINTF_DEFINED - diff --git a/keyboards/helix/rev3_5rows/keymaps/five_rows/keymap.c b/keyboards/helix/rev3_5rows/keymaps/five_rows/keymap.c deleted file mode 100644 index dc2759d5b6..0000000000 --- a/keyboards/helix/rev3_5rows/keymaps/five_rows/keymap.c +++ /dev/null @@ -1,474 +0,0 @@ -/* Copyright 2020 mtei - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -#include "key_blocks.h" -#include "layer_number_util.h" - -#ifdef ENABLE_COLEMAK -# define COLEMAK_Colemak (COLEMAK, " Colemak"), -#else -# define COLEMAK_Colemak -#endif -#ifdef ENABLE_DVORAK -# define DVORAK_Dvorak (DVORAK, " Dvorak"), -#else -# define DVORAK_Dvorak -#endif -#ifdef ENABLE_EUCALYN -# define EUCALYN_Eucalyn (EUCALYN, " Eucalyn"), -#else -# define EUCALYN_Eucalyn -#endif - -#define LAYER_NAME_LIST \ - (QWERTY, " Qwerty"), \ - COLEMAK_Colemak \ - DVORAK_Dvorak \ - EUCALYN_Eucalyn \ - (KEYPAD, " Keypad"), \ - (AUX, ":AUX"), \ - (KAUX, ":00"), \ - (LOWER, ":Func"), \ - (RAISE, ":Extra"), \ - (PADFUNC, ":PadFunc"), \ - (ADJUST, ":Adjust") - -enum layer_number { - // _QWERTY, _COLEMAK, ... - MAP(BUILD_LAYER_ENUM_NUMBER, LAYER_NAME_LIST) -}; - -#ifdef OLED_ENABLE -// static const char QWERTY_name[] PROGMEM = " Qwerty"; ... -MAP(BUILD_LAYER_NAME_STR, LAYER_NAME_LIST) - -const char *layer_names[] = { - // [_QWERTY] = QWERTY_name, ... - MAP(BUILD_LAYER_NAME_TABLE, LAYER_NAME_LIST) -}; -#endif - -const size_t num_of_layer_names = GET_ITEM_COUNT(LAYER_NAME_LIST); - -extern keymap_config_t keymap_config; - -extern uint8_t is_master; - -enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - EUCALYN, - KEYPAD, - xEISU, - xKANA, - ZERO2, - RGBRST -}; - -// clang-format off - -#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) - -//Macros -#define KC_LOWER MO(_LOWER) -#define XXXX XXXXXXX -#define ____ _______ -#define KC_ADJ MO(_ADJUST) - -#define LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS \ - KC_LOWER, KC_LOWER, KC_CAPS, KC_LALT, KC_LGUI, KC_SPC, LT(_RAISE,KC_BSPC) -#define RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER \ - LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP, KC_LOWER, KC_LOWER -#define GRV__QUOT KC_GRV, KC_QUOT - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* Qwerty */ - /* ,-----------------------------------. ,-----------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS | - * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ | - * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - * | Ctrl| A | S | D | F | G | | H | J | K | L | ; |Ctrl | - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * |Shift| Z | X | C | V | B | ` | ' | N | M | , | . | / |Shift| - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower| - * `-----------------------------------------------------------------------------------' - */ - [_QWERTY] = LAYOUT_wrapper( - KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC, - KC_TAB, Q_____W_____E_____R_____T, Y_____U_____I_____O_____P, KC_BSLS, - KC_LCTL, A_____S_____D_____F_____G, H_____J_____K_____L____SCLN, KC_RCTL, - KC_LSFT, Z_____X_____C_____V_____B, GRV__QUOT, N_____M____COMM__DOT___SLSH, KC_RSFT, - LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER - ), - - /* Colemak */ - /* ,-----------------------------------. ,-----------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS | - * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ | - * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - * | Ctrl| A | R | S | T | D | | H | N | E | I | O |Ctrl | - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * |Shift| Z | X | C | V | B | ` | ' | K | M | , | . | / |Shift| - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower| - * `-----------------------------------------------------------------------------------' - */ -#ifdef ENABLE_COLEMAK - [_COLEMAK] = LAYOUT_wrapper( - KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC, - KC_TAB, Q_____W_____F_____P_____G, J_____L_____U_____Y____SCLN, KC_BSLS, - KC_LCTL, A_____R_____S_____T_____D, H_____N_____E_____I_____O, KC_RCTL, - KC_LSFT, Z_____X_____C_____V_____B, GRV__QUOT, K_____M____COMM__DOT___SLSH, KC_RSFT, - LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER - ), -#endif - - /* Dvorak */ -#define GRV__SLSH KC_GRV, KC_SLSH - /* ,-----------------------------------. ,-----------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS | - * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - * | Tab | ' | , | . | P | Y | | F | G | C | R | L | \ | - * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - * | Ctrl| A | O | E | U | I | | D | H | T | N | S |Ctrl | - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * |Shift| ; | Q | J | K | X | ` | / | B | M | W | V | Z |Shift| - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower| - * `-----------------------------------------------------------------------------------' - */ -#ifdef ENABLE_DVORAK - [_DVORAK] = LAYOUT_wrapper( - KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC, - KC_TAB, QUOT_COMM___DOT____P_____Y, F_____G_____C_____R_____L, KC_BSLS, - KC_LCTL, A_____O_____E_____U_____I, D_____H_____T_____N_____S, KC_RCTL, - KC_LSFT, SCLN___Q_____J_____K_____X, GRV__SLSH, B_____M_____W_____V_____Z, KC_RSFT, - LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER - ), -#endif - - /* Eucalyn (http://eucalyn.hatenadiary.jp/entry/about-eucalyn-layout) */ - /* ,-----------------------------------. ,-----------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS | - * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - * | Tab | Q | W | , | . | ; | | M | R | D | Y | P | \ | - * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - * | Ctrl| A | O | E | I | U | | G | T | K | S | N |Ctrl | - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * |Shift| Z | X | C | V | F | ` | ' | B | H | J | L | / |Shift| - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower| - * `-----------------------------------------------------------------------------------' - */ -#ifdef ENABLE_EUCALYN - [_EUCALYN] = LAYOUT_wrapper( - KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC, - KC_TAB, Q_____W___COMM___DOT__SCLN, M_____R_____D_____Y_____P, KC_BSLS, - KC_LCTL, A_____O_____E_____I_____U, G_____T_____K_____S_____N, KC_RCTL, - KC_LSFT, Z_____X_____C_____V_____F, GRV__QUOT, B_____H_____J_____L____SLSH, KC_RSFT, - LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER - ), -#endif - - /* Keypad */ -#define KP_TAB__PSLS_PAST KC_TAB, KC_PSLS, KC_PAST -#define KP__7_____8_____9 KC_KP_7, KC_KP_8, KC_KP_9 -#define KP__4_____5_____6 KC_KP_4, KC_KP_5, KC_KP_6 -#define KP__1_____2_____3 KC_KP_1, KC_KP_2, KC_KP_3 -#define KP__0___COMM_PDOT KC_KP_0, KC_COMM, KC_PDOT -#define F1___F6 KC_F1, KC_F6 -#define F2___F7 KC_F2, KC_F7 -#define F3___F8 KC_F3, KC_F8 -#define F4___F9 KC_F4, KC_F9 -#define F5__F10 KC_F5, KC_F10 -#define FF12 LT(_PADFUNC,KC_F12) - /* ,-----------------------------------. ,-----------------------------------. - * | Tab | / | * | Del | F1 | F6 | | F1 | F6 | Del | Tab | / | * | - * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - * | 7 | 8 | 9 | BS | F2 | F7 | | F2 | F7 | BS | 7 | 8 | 9 | - * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - * | 4 | 5 | 6 | - | F3 | F8 | | F3 | F8 | - | 4 | 5 | 6 | - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * | 1 | 2 | 3 | + | F4 | F9 | F11 | F11 | F4 | F9 | + | 1 | 2 | 3 | - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * | 0 | , | . |Enter| F5 | F10| F12 | F12 | F5 | F10|Enter| 0 | , | . | - * `-----------------------------------------------------------------------------------' - */ - [_KEYPAD] = LAYOUT_wrapper( - KP_TAB__PSLS_PAST, KC_DEL, F1___F6, F1___F6, KC_DEL, KP_TAB__PSLS_PAST, - KP__7_____8_____9, KC_BSPC, F2___F7, F2___F7, KC_BSPC, KP__7_____8_____9, - KP__4_____5_____6, KC_PMNS, F3___F8, F3___F8, KC_PMNS, KP__4_____5_____6, - KP__1_____2_____3, KC_PPLS, F4___F9, KC_F11,KC_F11, F4___F9, KC_PPLS, KP__1_____2_____3, - KP__0___COMM_PDOT, KC_PENT, F5__F10, FF12, FF12, F5__F10, KC_PENT, KP__0___COMM_PDOT - ), - - /* AUX modifier key layer - * ,-----------------------------------. ,-----------------------------------. - * | | | | | | | | | | | | | | - * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - * | | | | | | | | | | | | | | - * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - * | | | | | | | | | | | | | | - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * | | | | | | | | | | | | | | | - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * | | 00 | | | | | | | | | | | 00 | | - * `-----------------------------------------------------------------------------------' - */ - [_KAUX] = LAYOUT( - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, - ____,ZERO2, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,ZERO2, ____ - ), - - /* Keypad function layer */ -#define PAUS__SLCK__PSCR KC_PAUS, KC_SCRL, KC_PSCR -#define PSCR__SLCK__PAUS KC_PSCR, KC_SCRL, KC_PAUS -#define HOME___UP___PGUP KC_HOME, KC_UP, KC_PGUP -#define PGUP___UP___HOME KC_PGUP, KC_UP, KC_HOME -#define DEL____INS__LEFT__DOWN__RGHT KC_DEL, KC_INS, KC_LEFT, KC_DOWN, KC_RGHT -#define LEFT__DOWN__RGHT___INS___DEL KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_DEL -#define PGDN___ADJ___ADJ__PGDN KC_PGDN, KC_ADJ, KC_ADJ, KC_PGDN - /* ,-----------------------------------------. ,-----------------------------------------. - * | | | | Pause| ScrLk| PtrSc| | PtrSc| ScrLk| Pause| | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | | | Home | Up | PgUp | | PgUp | Up | Home | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | |Delete|Insert| Left | Down | Right| | Left | Down | Right|Insert|Delete| | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | End | | PgDn |Adjust|Adjust| PgDn | | End | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | | | - * `-------------------------------------------------------------------------------------------------' - */ - [_PADFUNC] = LAYOUT_wrapper( - XXXX, XXXX, XXXX, PAUS__SLCK__PSCR, PSCR__SLCK__PAUS, XXXX, XXXX, XXXX, - XXXX, XXXX, XXXX, HOME___UP___PGUP, PGUP___UP___HOME, XXXX, XXXX, XXXX, - XXXX, DEL____INS__LEFT__DOWN__RGHT, LEFT__DOWN__RGHT___INS___DEL, XXXX, - XXXX, XXXX, XXXX,KC_END,XXXX, PGDN___ADJ___ADJ__PGDN, XXXX,KC_END,XXXX, XXXX, XXXX, - XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, ____, ____, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX - ), - - /* Lower */ -#define XXXX__PAUS__SLCK___INS XXXX, KC_PAUS, KC_SCRL, KC_INS -#define XXXX___INS__SLCK__PAUS__XXXX XXXX, KC_INS, KC_SCRL, KC_PAUS, XXXX -#define ADJ___ADJ KC_ADJ, KC_ADJ -#define HOME__XXXX___UP____DEL__PGUP KC_HOME, XXXX, KC_UP, KC_DEL, KC_PGUP -#define PGUP___DEL___UP___XXXX__HOME KC_PGUP, KC_DEL, KC_UP, XXXX, KC_HOME -#define END__LEFT__DOWN__RGHT__PGDN KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN -#define PGDN__LEFT__DOWN__RGHT___END KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END - /* ,-----------------------------------------. ,-----------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | |Pause | ScrLk| Ins | | | | Ins | ScrLk|Pause | | F12 | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | Home | | Up |Delete| PgUp | | PgUp |Delete| Up | | Home | | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | End | Left | Down | Right| PgDn |Adjust|Adjust| PgDn | Left | Down | Right| End | | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | PrtSc| | | | | | | | | PrtSc| | | - * `-------------------------------------------------------------------------------------------------' - */ - [_LOWER] = LAYOUT_wrapper( - XXXX, F1____F2____F3____F4____F5, F6____F7____F8____F9____F10, KC_F11, - XXXX, XXXX__PAUS__SLCK___INS, XXXX, XXXX___INS__SLCK__PAUS__XXXX, KC_F12, - ____, HOME__XXXX___UP____DEL__PGUP, PGUP___DEL___UP___XXXX__HOME, ____, - ____, END__LEFT__DOWN__RGHT__PGDN, XXXX, XXXX, PGDN__LEFT__DOWN__RGHT___END, ____, - ____, ____,KC_PSCR,____, ____, ____, ADJ___ADJ, ____, ____, ____,KC_PSCR,____, ____ - ), - - /* Raise */ -#define UNDS__MINS KC_UNDS, KC_MINS -#define EQL___PLUS KC_EQL, KC_PLUS -#define LCBR__LBRC KC_LCBR, KC_LBRC -#define RBRC__RCBR KC_RBRC, KC_RCBR -#define MNXT__VOLD__VOLU__MPLY KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY -#define EISU__EISU xEISU, xEISU -#define KANA__KANA xKANA, xKANA - /* ,-----------------------------------------. ,-----------------------------------------. - * | | | | | | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | | | | _ | - | | = | + | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | | | | { | [ | | ] | } | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | EISU | EISU | KANA | KANA | Next | Vol- | Vol+ | Play | | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | | | - * `-------------------------------------------------------------------------------------------------' - */ - [_RAISE] = LAYOUT_wrapper( - XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, - XXXX, XXXX, XXXX, XXXX, UNDS__MINS, EQL___PLUS, XXXX, XXXX, XXXX, XXXX, - ____, XXXX, XXXX, XXXX, LCBR__LBRC, RBRC__RCBR, XXXX, XXXX, XXXX, ____, - ____, XXXX, XXXX, XXXX, XXXX, EISU__EISU, KANA__KANA, MNXT__VOLD__VOLU__MPLY, ____, - ADJ___ADJ, XXXX, ____, ____, XXXX, ____, ____, XXXX, ____, ____, XXXX, ADJ___ADJ - ), - - /* Adjust (Lower + Raise) - * ,-----------------------------------------. ,-----------------------------------------. - * | |Keypad|Dvorak|Colemk|Euclyn|Qwerty| |Qwerty|Euclyn|Colemk|Dvorak|Keypad| | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | Reset|RGBRST|RGB ON|Aud on| Win | | Win |Aud on|RGB ON|RGBRST| | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | HUE+ | SAT+ | VAL+ |RGB md|Audoff| Mac | | Mac |Audoff|RGB md| VAL+ | SAT+ | HUE+ | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | HUE- | SAT- | VAL- | | | | | | | | | VAL- | SAT- | HUE- | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | | | - * `-------------------------------------------------------------------------------------------------' - */ - [_ADJUST] = LAYOUT( - XXXXXXX, KEYPAD, DVORAK, COLEMAK, EUCALYN, QWERTY, QWERTY, EUCALYN, COLEMAK, DVORAK, KEYPAD, XXXXXXX, - XXXXXXX, QK_BOOT, RGBRST, RGB_TOG, AU_ON, AG_SWAP, AG_SWAP, AU_ON, RGB_TOG, RGBRST, XXXXXXX, XXXXXXX, - RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, AU_OFF, AG_NORM, AG_NORM, AU_OFF, RGB_MOD, RGB_VAI, RGB_SAI, RGB_HUI, - RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX,____,____,XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_SAD, RGB_HUD, - _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,____,____,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______ - ), - - /* AUX modifier key layer */ -#define BSPC__RAEN KC_BSPC, LT(_RAISE,KC_ENT) - /* ,-----------------------------------------. ,-----------------------------------------. - * | | | | | | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | | | | | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | BS | Enter| | | | | | | | - * `-------------------------------------------------------------------------------------------------' - */ - [_AUX] = LAYOUT_wrapper( - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, - ____, ____, ____, ____, ____, BSPC__RAEN, ____, ____, ____, ____, ____, ____, ____ - ) -}; - -int current_default_layer; - -layer_state_t default_layer_state_set_user(layer_state_t state) { - current_default_layer = get_highest_layer(state); - return state; -} - -void update_base_layer(int base) -{ - if( current_default_layer != base ) { - eeconfig_update_default_layer(1UL<event.pressed) { - update_base_layer(_QWERTY); - } - return false; - break; - case COLEMAK: -#ifdef ENABLE_COLEMAK - if (record->event.pressed) { - update_base_layer(_COLEMAK); - } -#endif - return false; - break; - case DVORAK: -#ifdef ENABLE_DVORAK - if (record->event.pressed) { - update_base_layer(_DVORAK); - } -#endif - return false; - break; - case EUCALYN: -#ifdef ENABLE_EUCALYN - if (record->event.pressed) { - update_base_layer(_EUCALYN); - } -#endif - return false; - break; - case KEYPAD: - if (record->event.pressed) { - update_base_layer(_KEYPAD); - } - return false; - break; - case ZERO2: - if (record->event.pressed) { - SEND_STRING("00"); - } - return false; - break; - case xEISU: - if (record->event.pressed) { - if(keymap_config.swap_lalt_lgui==false){ - register_code(KC_LNG2); - }else{ - SEND_STRING(SS_LALT("`")); - } - } else { - unregister_code(KC_LNG2); - } - return false; - break; - case xKANA: - if (record->event.pressed) { - if(keymap_config.swap_lalt_lgui==false){ - register_code(KC_LNG1); - }else{ - SEND_STRING(SS_LALT("`")); - } - } else { - unregister_code(KC_LNG1); - } - return false; - break; - case RGBRST: - #ifdef RGBLIGHT_ENABLE - if (record->event.pressed) { - eeconfig_update_rgblight_default(); - rgblight_enable(); - } - #endif - break; - } - return true; -} diff --git a/keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk b/keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk deleted file mode 100644 index a6ce7de118..0000000000 --- a/keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk +++ /dev/null @@ -1,11 +0,0 @@ -USER_NAME := mtei - - CONSOLE_ENABLE = no # Console for debug - COMMAND_ENABLE = no # Commands for debug and configuration - # CONSOLE_ENABLE and COMMAND_ENABLE - # yes, no +1500 - # yes, yes +3200 - # no, yes +400 -ENCODER_ENABLE = no -LTO_ENABLE = no # if firmware size over limit, try this option -LED_ANIMATIONS = yes diff --git a/keyboards/hhkb/ansi/keymaps/brett/config.h b/keyboards/hhkb/ansi/keymaps/brett/config.h deleted file mode 100644 index 0711122d74..0000000000 --- a/keyboards/hhkb/ansi/keymaps/brett/config.h +++ /dev/null @@ -1,14 +0,0 @@ -#pragma once - -// Define mousekey settings -#define MOUSEKEY_DELAY 0 -#define MOUSEKEY_INTERVAL 20 -#define MOUSEKEY_MAX_SPEED 2 -#define MOUSEKEY_TIME_TO_MAX 5 -#define MOUSEKEY_WHEEL_DELAY 0 - -#define LSPO_KEY KC_9 -#define RSPC_KEY KC_0 -#define LSPO_MOD KC_LSFT -#define RSPC_MOD KC_RSFT - diff --git a/keyboards/hhkb/ansi/keymaps/brett/keymap.c b/keyboards/hhkb/ansi/keymaps/brett/keymap.c deleted file mode 100644 index 04e3517a95..0000000000 --- a/keyboards/hhkb/ansi/keymaps/brett/keymap.c +++ /dev/null @@ -1,119 +0,0 @@ -/* -*- eval: (turn-on-orgtbl); -*- - * Brettm12345 HHKB Layout - */ -#include QMK_KEYBOARD_H -#include "brett.h" - -enum layers { - BASE = 0, - HHKB = 1, - PROG = 2, - MOUSE = 3 -}; - -// Tap for tab hold for MOUSE -#define TAB_MOUSE LT(MOUSE, KC_TAB) - -// Tap for space hold for PROG -#define SPACE_PROG LT(PROG, KC_SPC) - -// Tap for ESC hold for CTRL -#define CTL_ESC CTL_T(KC_ESC) - -// Tab for ; hold for PROG -#define PROG_SCLN LT(PROG, KC_SCLN) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* BASE Level: Default Layer - |---------+---+---+---+---+---+---+---+---+---+---+--------+--------+-----------+---| - | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | - |---------+---+---+---+---+---+---+---+---+---+---+--------+--------+-----------+---| - | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backspace | * | - |---------+---+---+---+---+---+---+---+---+---+---+--------+--------+-----------+---| - | Control | A | S | D | F | G | H | J | K | L | ; | ' | Return | ****** | * | - |---------+---+---+---+---+---+---+---+---+---+---+--------+--------+-----------+---| - | LShift | Z | X | C | V | B | N | M | , | . | / | RShift | HHKB | ****** | * | - |---------+---+---+---+---+---+---+---+---+---+---+--------+--------+-----------+---| - - |------+------+----------------------------+------+------| - | LAlt | LGUI | ******* Space/Prog ******* | RGUI | RAlt | - |------+------+----------------------------+------+------| - */ - - [BASE] = LAYOUT( - QK_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_BSLS, KC_GRV, - TAB_MOUSE, 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_BSPC, - CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, PROG_SCLN, KC_QUOT, KC_ENT, - SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, MO(HHKB), - KC_LALT, KC_LGUI, SPACE_PROG, KC_RGUI, KC_RALT), - - /* HHKB Level: Function Layer - |---------+------+------+--------+---------+-------+-----------+---------+---------+---------+----------------+--------+------+--------+-----| - | Flash | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | - |---------+------+------+--------+---------+-------+-----------+---------+---------+---------+----------------+--------+------+--------+-----| - | Caps | Calc | Mail | Media | Browser | My PC | Browser | u | i | o | Print | [ | ] | Backsp | * | - | | | | Player | Refresh | | Favorites | | | | Screen | | | | | - |---------+------+------+--------+---------+-------+-----------+---------+---------+---------+----------------+--------+------+--------+-----| - | Control | Prev | Next | Find | f | g | Browser | Browser | Browser | Browser | ; | ' | Exec | ****** | * | - | | | | | | | Back | Home | Search | Forward | | | | | | - |---------+------+------+--------+---------+-------+-----------+---------+---------+---------+----------------+--------+------+--------+-----| - | LShift | Vol+ | Vol- | Mute | Select | b | n | m | , | Again | Browser Search | RShift | HHKB | ****** | * | - |---------+------+------+--------+---------+-------+-----------+---------+---------+---------+----------------+--------+------+--------+-----| - - |------+------+----------------------+------+------| - | Menu | LGUI | ******* Play ******* | RGUI | Menu | - |------+------+----------------------+------+------| - */ - [HHKB] = LAYOUT( - FLASH, 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_INS, KC_DEL, - KC_CAPS, KC_CALC, KC_MAIL, KC_MSEL, KC_WREF, KC_MYCM, KC_WFAV, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_BSPC, - KC_TRNS, KC_MPRV, KC_MNXT, KC_FIND, KC_TRNS, KC_TRNS, KC_WBAK, KC_WHOM, KC_WSCH, KC_WFWD, KC_TRNS, KC_TRNS, KC_EXEC, - KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_SLCT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AGIN, KC_WSCH, KC_TRNS, KC_TRNS, - KC_MENU, KC_TRNS, KC_MPLY, KC_TRNS, KC_MENU), - - - /* Programming Level: Symbols Layer - |--------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+--------+--------+--------+--------+---| - | Esc | TTY 1 | TTY 2 | TTY 3 | TTY 4 | TTY 5 | TTY 6 | TTY 7 | TTY 8 | TTY 9 | TTY 10 | TTY 11 | TTY 12 | \ | ` | - |--------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+--------+--------+--------+--------+---| - | Tab/Mouse | => | @ | >>= | =<< | ‖ | <> | <|> | <*> | <@> | |> | <$ | $> | Backsp | * | - |--------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+--------+--------+--------+--------+---| - | Toggle Mouse | -> | * | <$> | <#> | && | Left | Down | Up | Right | :: | ` | Return | ****** | * | - |--------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+--------+--------+--------+--------+---| - | LShift | z | x | c | v | b | n | m | <- | -> | <> | Shift | HHKB | ****** | * | - |--------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+--------+--------+--------+--------+---| - - |------+------+----------------------------+------+------| - | LAlt | LGUI | ******* Space/Prog ******* | RGUI | RAlt | - |------+------+----------------------------+------+------| - */ - [PROG] = LAYOUT( - QK_GESC, LCA(KC_F1), LCA(KC_F2), LCA(KC_F3), LCA(KC_F4), LCA(KC_F5), LCA(KC_F6), LCA(KC_F7), LCA(KC_F8), LCA(KC_F9), LCA(KC_F10), LCA(KC_F11), LCA(KC_F12), KC_TRNS, KC_TRNS, - KC_TRNS, FAT_ARROW, KC_AT, BIND, BIND_FLIPPED, OR, CONCAT, ALT, APPLY, FLAP, PIPE, VOID_LEFT, VOID_RIGHT, KC_TRNS, - TG(MOUSE), SKINNY_ARROW, KC_ASTR, MAP, MAP_FLIPPED, AND, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, DOUBLE_COLON, KC_GRV, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, REVERSE_ARROW, SKINNY_ARROW, CONCAT, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - - - /* Mouse Level: Mouse Layer - |--------------+---------+---------+---------+---------+---------+-------+-------+---------+---------+---------+-----------+-----------------+--------+---| - | Esc | Speed 1 | Speed 2 | Speed 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | - |--------------+---------+---------+---------+---------+---------+-------+-------+---------+---------+---------+-----------+-----------------+--------+---| - | Mouse(Tab) | Q | Up | Button3 | Button4 | Button5 | Y | U | Button3 | Button4 | Button5 | [ | ] | Backsp | * | - |--------------+---------+---------+---------+---------+---------+-------+-------+---------+---------+---------+-----------+-----------------+--------+---| - | Control(Esc) | Left | Down | Right | Button1 | Button2 | SLeft | SDown | SUp | SRight | Button1 | Button2 | Control(Return) | ****** | * | - |--------------+---------+---------+---------+---------+---------+-------+-------+---------+---------+---------+-----------+-----------------+--------+---| - | LShift(() | Z | X | C | V | B | N | M | Button5 | Button4 | Button3 | RShift()) | HHKB | ****** | * | - |--------------+---------+---------+---------+---------+---------+-------+-------+---------+---------+---------+-----------+-----------------+--------+---| - - |---------+---------+----------------------------+---------+---------| - | LAlt([) | LGUI({) | ******* Space/Prog ******* | RGUI(}) | RAlt(]) | - |---------+---------+----------------------------+---------+---------| - */ - [MOUSE] = LAYOUT( - KC_TRNS, KC_ACL0, KC_ACL1, KC_ACL2, 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_MS_U, KC_BTN3, KC_BTN4, KC_BTN5, KC_TRNS, KC_TRNS, KC_BTN3, KC_BTN4, KC_BTN5, KC_TRNS, KC_TRNS, KC_TRNS, - TG(MOUSE), KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN1, KC_BTN2, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_BTN1, KC_BTN2, 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), -}; diff --git a/keyboards/hhkb/ansi/keymaps/brett/readme.md b/keyboards/hhkb/ansi/keymaps/brett/readme.md deleted file mode 100644 index fd07b155fb..0000000000 --- a/keyboards/hhkb/ansi/keymaps/brett/readme.md +++ /dev/null @@ -1,13 +0,0 @@ -# Generated Keymap Layout - -This layout was generated by the QMK API. You can find the JSON data used to -generate this keymap in the file layers.json. - -To make use of this file you will need follow the following steps: - -* Download or Clone QMK Firmware: -* Extract QMK Firmware to a location on your hard drive -* Copy this folder into %s -* You are now ready to compile or use your keymap with the source - -More information can be found in the QMK docs: \ No newline at end of file diff --git a/keyboards/hhkb/ansi/keymaps/brett/rules.mk b/keyboards/hhkb/ansi/keymaps/brett/rules.mk deleted file mode 100644 index 88f57515f1..0000000000 --- a/keyboards/hhkb/ansi/keymaps/brett/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -MOUSEKEY_ENABLE = yes -TAP_DANCE_ENABLE = no -LEADER_ENABLE = no -UNICODE_ENABLE = no diff --git a/keyboards/hhkb/ansi/keymaps/tominabox1/.gitignore b/keyboards/hhkb/ansi/keymaps/tominabox1/.gitignore deleted file mode 100644 index 4b8c99bfb8..0000000000 --- a/keyboards/hhkb/ansi/keymaps/tominabox1/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*.h -matrix.c -rules.mk diff --git a/keyboards/hhkb/ansi/keymaps/tominabox1/keymap.c b/keyboards/hhkb/ansi/keymaps/tominabox1/keymap.c deleted file mode 100644 index 61688d399a..0000000000 --- a/keyboards/hhkb/ansi/keymaps/tominabox1/keymap.c +++ /dev/null @@ -1,12 +0,0 @@ -#include QMK_KEYBOARD_H -#include "tominabox1.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT(QK_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_BSLS, KC_DEL, KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSPC, KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, TD(TD_SFT_CPS), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(2)), - - [1] = LAYOUT(KC_ESC, 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_INS, KC_DEL, KC_CAPS, KC_MFFD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - - [2] = LAYOUT(KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS), - - [3] = LAYOUT(QK_GESC, KC_EXLM, KC_EML, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGDN, KC_UP, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_TRNS) -}; diff --git a/keyboards/hhkb/jp/keymaps/dhertz/config.h b/keyboards/hhkb/jp/keymaps/dhertz/config.h deleted file mode 100644 index af2fb9d8a5..0000000000 --- a/keyboards/hhkb/jp/keymaps/dhertz/config.h +++ /dev/null @@ -1 +0,0 @@ -#define USB_MAX_POWER_CONSUMPTION 100 diff --git a/keyboards/hhkb/jp/keymaps/dhertz/keymap.c b/keyboards/hhkb/jp/keymaps/dhertz/keymap.c deleted file mode 100644 index 5c2511df64..0000000000 --- a/keyboards/hhkb/jp/keymaps/dhertz/keymap.c +++ /dev/null @@ -1,84 +0,0 @@ -#include QMK_KEYBOARD_H -#include "keymap.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Layer 0: Default Layer - * ,-----------------------------------------------------------. - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Del|Bsp| - * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Enter | - * |------------------------------------------------------` | - * |SrCtl | A| S| D| F| G| H| J| K| L| ;| '| \| | - * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /| `|Up |Shi| - * |-----------------------------------------------------------| - * |NCt|| #|Alt|CmT|CmT| LyrSpc |CGv|Iso|Gui|CSL||Rig|Dow|Lef| - * `-----------------------------------------------------------' - */ - [0] = LAYOUT_jp( - KC_ESC, 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_DEL,KC_BSPC, - 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, - SRCH_CTL, 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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT, KC_SLSH,KC_NUBS, KC_UP, KC_RSFT, - NC_CTL, HSH_TLD,KC_LALT,CMD_TAB_CMD,CMD_TAB_CMD, LT(2, KC_SPC) , CMD_GRV_CMD, ISO_COUNTRY_CODE,KC_RGUI, CMD_SFT_L, KC_LEFT,KC_DOWN,KC_RGHT - ), - - /* Layer 1: iPad mode (Fixed) - * ,-----------------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| - * | | | | | | | | | | | | | | | - * |------------------------------------------------------` | - * |CmdSpc| | | | | | | | | | | | | | - * |-----------------------------------------------------------| - * | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| - * | || ~| |CAD| | |CmH| | | || | | | - * `-----------------------------------------------------------' - */ - [1] = LAYOUT_jp( - 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_TRNS, KC_TRNS,KC_TRNS, - CMD_SPC,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_TRNS,KC_TRNS, - KC_TRNS, KC_TRNS,KC_TRNS,CMD_ALT_D,KC_TRNS, KC_TRNS ,CMD_H,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS - ), - - /* Layer 2: HHKB mode (Space) - * ,-----------------------------------------------------------. - * |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| - * |-----------------------------------------------------------| - * |Caps |DL0|DL1| | | | | |Psc|Slk|Pus|Up | | | - * |------------------------------------------------------` | - * | |VoD|VoU|Mut| | | |Bsp|Del|CSL|Lef|Rig| | | - * |-----------------------------------------------------------| - * | | | |CAC| | | | | | |Dow| |PgU| | - * |-----------------------------------------------------------| - * | || ~| | | | | | | | ||Hom|PgD|End| - * `-----------------------------------------------------------' - */ - [2] = LAYOUT_jp( - KC_PWR, 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_INS,KC_DEL, - KC_CAPS, DF(0), DF(1),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_SCRL,KC_PAUS, KC_UP,KC_TRNS, - KC_TRNS, KC_VOLD,KC_VOLU,KC_MUTE,KC_TRNS,KC_TRNS,KC_TRNS,KC_BSPC, KC_DEL,CMD_SFT_L,KC_LEFT,KC_RGHT,KC_TRNS,KC_PENT, - KC_TRNS, KC_TRNS,KC_TRNS,CMD_ALT_C,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_DOWN,KC_TRNS,KC_PGUP,KC_TRNS, - KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS ,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_HOME,KC_PGDN, KC_END - ), -}; - -bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { - switch(keycode) { - case CMD_SPC: - mod_or_mod_with_macro(record, KC_LGUI, " "); - break; - case CMD_H: - mod_or_mod_with_macro(record, KC_RGUI, "H"); - break; - case CMD_ALT_D: - mod_or_mod_with_macro(record, KC_LGUI, SS_LALT("D")); - break; - default: - return true; - } - return false; -} diff --git a/keyboards/hhkb/jp/keymaps/dhertz/keymap.h b/keyboards/hhkb/jp/keymaps/dhertz/keymap.h deleted file mode 100644 index dbefc63800..0000000000 --- a/keyboards/hhkb/jp/keymaps/dhertz/keymap.h +++ /dev/null @@ -1,7 +0,0 @@ -#include "dhertz.h" - -enum dhertz_keycodes { - CMD_SPC = NEW_SAFE_RANGE, - CMD_H, - CMD_ALT_D, -}; diff --git a/keyboards/hhkb/jp/keymaps/dhertz/rules.mk b/keyboards/hhkb/jp/keymaps/dhertz/rules.mk deleted file mode 100644 index 5656057b43..0000000000 --- a/keyboards/hhkb/jp/keymaps/dhertz/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -OPT_DEFS += -DHHKB_JP - diff --git a/keyboards/hidtech/bastyl/keymaps/nstickney/keymap.c b/keyboards/hidtech/bastyl/keymaps/nstickney/keymap.c deleted file mode 100644 index e068f81a73..0000000000 --- a/keyboards/hidtech/bastyl/keymaps/nstickney/keymap.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2020 Quentin LEBASTARD - * Copyright 2020 Anthony MARIN - * Copyright 2021 Stick - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include "nstickney.h" -#include "unicodemap.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [BASE] = LAYOUT(KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - //-------------------------------// - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, - //-------------------------------// - CC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, CC_QUOT, - //-------------------------------// - SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, - //-------------------------------// - AC_SLSH, FC_BSLS, KC_SPC, KC_ENT, FC_MINS, AC_EQL, - //-------------------------------// - KC_LBRC, TD(LOCKS), TD(LAYERS), KC_RBRC), - - [SYMB] = LAYOUT(_______, UP(IEX, SS1), UM(SS2), UM(SS3), UP(CUR, GBP), UM(EUR), UM(V14), UM(V12), UM(V34), UP(LSQ, LDQ), UP(RSQ, RDQ), _______, - //-------------------------------// - _______, UP(A_D, AXD), UP(A_R, ACR), UP(E_A, ECA), UP(REG, CPL), UM(THR), UP(U_D, UCD), UP(U_A, UCA), UP(I_A, ICA), UP(O_A, OCA), UP(O_D, OCD), _______, - //-------------------------------// - _______, UP(A_A, ACA), UP(S_S, SEC), UP(ETH, ETC), UM(EMD), _______, _______, _______, _______, UP(O_S, OCS), UP(PLC, DEG), UP(ACT, DIS), - //-------------------------------// - _______, UP(AEL, AEC), _______, UP(CPR, CNT), _______, _______, _______, _______, UP(N_T, NCT), UM(MCR), UP(C_C, CCC), _______, - //-------------------------------// - UM(IQM), UP(NOT, BKB), _______, _______, UM(YEN), UP(MLT, DIV), - //-------------------------------// - _______, _______, _______, _______), - - [NUMP] = LAYOUT(_______, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______, - //-------------------------------// - _______, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______, - //-------------------------------// - _______, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, - //-------------------------------// - _______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______, - //-------------------------------// - _______, _______, _______, KC_PENT, _______, _______, - //-------------------------------// - _______, _______, _______, _______), - - [FCTN] = LAYOUT(KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_SYRQ, - //-------------------------------// - KC_PSCR, RGB_TOG, KC_HOME, KC_UP, KC_END, KC_PGUP, QK_LOCK, KC_LBRC, KC_RBRC, S(KC_LBRC), S(KC_RBRC), KC_INS, - //-------------------------------// - KC_PAUS, RGB_VAI, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BRIU, KC_CLR, - //-------------------------------// - _______, KC_MPRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_MNXT, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_BRID, _______, - //-------------------------------// - QK_BOOT, _______, _______, _______, _______, QK_BOOT, - //-------------------------------// - _______, KC_F11, KC_F12, _______)}; diff --git a/keyboards/hillside/46/keymaps/manna-harbour_miryoku/config.h b/keyboards/hillside/46/keymaps/manna-harbour_miryoku/config.h deleted file mode 100644 index fa808ef681..0000000000 --- a/keyboards/hillside/46/keymaps/manna-harbour_miryoku/config.h +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2022 Davide Masserut (@mssdvd) -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . - -#pragma once - -#define XXX KC_NO - -// clang-format off -#if defined MIRYOKU_MAPPING_EXTENDED_THUMBS -#define LAYOUT_miryoku( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT( \ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ -XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ - XXX, K32, K33, K34, K35, K36, K37, XXX \ -) -#else -#define LAYOUT_miryoku( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT( \ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ -XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ - K32, K33, K34, XXX, XXX, K35, K36, K37 \ -) -#endif diff --git a/keyboards/hillside/46/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/hillside/46/keymaps/manna-harbour_miryoku/keymap.c deleted file mode 100644 index dbab7f9820..0000000000 --- a/keyboards/hillside/46/keymaps/manna-harbour_miryoku/keymap.c +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/hillside/48/keymaps/manna-harbour_miryoku/config.h b/keyboards/hillside/48/keymaps/manna-harbour_miryoku/config.h deleted file mode 100644 index e779de8a99..0000000000 --- a/keyboards/hillside/48/keymaps/manna-harbour_miryoku/config.h +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2022 Davide Masserut (@mssdvd) -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . - -#pragma once - -#define XXX KC_NO - -// clang-format off -#if defined MIRYOKU_MAPPING_EXTENDED_THUMBS -#define LAYOUT_miryoku( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT( \ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ -XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ - XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX \ -) -#else -#define LAYOUT_miryoku( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT( \ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ -XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ - XXX, K32, K33, K34, XXX, XXX, K35, K36, K37, XXX \ -) -#endif diff --git a/keyboards/hillside/48/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/hillside/48/keymaps/manna-harbour_miryoku/keymap.c deleted file mode 100644 index dbab7f9820..0000000000 --- a/keyboards/hillside/48/keymaps/manna-harbour_miryoku/keymap.c +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/hillside/52/keymaps/manna-harbour_miryoku/config.h b/keyboards/hillside/52/keymaps/manna-harbour_miryoku/config.h deleted file mode 100644 index 388f6b9a91..0000000000 --- a/keyboards/hillside/52/keymaps/manna-harbour_miryoku/config.h +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2022 Davide Masserut (@mssdvd) -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . - -#pragma once - -#define XXX KC_NO - -// clang-format off -#if defined MIRYOKU_MAPPING_EXTENDED_THUMBS -#define LAYOUT_miryoku( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT( \ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ -XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ -XXX, XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX, XXX \ -) -#else -#define LAYOUT_miryoku( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT( \ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ -XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ -XXX, XXX, XXX, K32, K33, K34, XXX, XXX, K35, K36, K37, XXX, XXX, XXX \ -) -#endif diff --git a/keyboards/hillside/52/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/hillside/52/keymaps/manna-harbour_miryoku/keymap.c deleted file mode 100644 index dbab7f9820..0000000000 --- a/keyboards/hillside/52/keymaps/manna-harbour_miryoku/keymap.c +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2019 Manna Harbour -// https://github.com/manna-harbour/miryoku - -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/hotdox/keymaps/imchipwood/keymap.c b/keyboards/hotdox/keymaps/imchipwood/keymap.c deleted file mode 100644 index 497a038ad3..0000000000 --- a/keyboards/hotdox/keymaps/imchipwood/keymap.c +++ /dev/null @@ -1,151 +0,0 @@ -/* Copyright 2021 imchipwood - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H -#include "imchipwood.h" - -// Layer names -enum custom_layers { - _QWERTY, - _NUM, - _MED -}; - -// Layer definitions -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_ergodox_pretty( -/* Keymap 0: Basic layer - * ,--------------------------------------------------. ,--------------------------------------------------. - * | = | 1 | 2 | 3 | 4 | 5 | ESC | |BkTick| 6 | 7 | 8 | 9 | 0 | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | MEH | | | Y | U | I | O | P | [ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | BkSlsh | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | - * |--------+------+------+------+------+------|MO(2) | |MO(2) |------+------+------+------+------+--------| - * | LSHIFT | Z | X | C | V | B | | | | N | M | , | . | / |SHFT/CAP| - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |RCTRL | LALT | GUI |L/HOME|R/END | | Up | Down | LEFT |RIGHT |PRSCR | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | DEL | INS | | Ctrl | Alt | - * ,------|------|------| |------+--------+------. - * | | | Home | | PgUp | | | - * |Enter |MO(1) |------| |------| Bksp |Space | - * | | | End | | PgDn | | | - * `--------------------' `----------------------' - */ -// Left hand Right hand -// ,------------------------------------------------------------------------------------------. ,------------------------------------------------------------------------------------------. - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, KC_GRV, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, -// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------| - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MEH, KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, -// |------------+------------+------------+------------+------------+------------+ | | +------------+------------+------------+------------+------------+------------| - KC_BSLS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, -// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------| - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(_MED), MO(_MED), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, TD(TD_RSFT_CAPS), -// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------| - KC_LCTL, KC_LALT, KC_LGUI, TD(TD_LOME), TD(TD_REND), KC_UP, KC_DOWN, KC_LEFT, KC_RGHT, KC_PSCR, -// `---------------------------------------------------------------' `----------------------------------------------------------------' -// ,-------------------------. ,-------------------------. - KC_DEL, KC_INS, KC_TRNS, KC_TRNS, -// ,------------+------------+------------| |------------+------------+------------. - KC_TRNS, KC_TRNS, -// | | +------------| |------------+ | | - KC_ENT, MO(_NUM), KC_TRNS, KC_TRNS, KC_BSPC, KC_SPC -// `--------------------------------------' `--------------------------------------' - ), - [_NUM] = LAYOUT_ergodox_pretty( -/* Keymap 1: Numpad, function keys, and some convenience keys - * ,---------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | | F12 | F6 | F7 | F8 | F9 | F10 | F11 | - * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| - * | | | up | | | | | | | 7 | 8 | 9 | * | / | ] | - * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | left | down |right | | |------| |------| 4 | 5 | 6 | + | - | | - * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | 1 | 2 | 3 | = | up | enter | - * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | PgUp | PgDn | | 0 | . | left | down |right | - * `-----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| Del | Esc | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// Left hand Right hand -// ,------------------------------------------------------------------------------------------. ,------------------------------------------------------------------------------------------. - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, TD(CTL_F5), KC_TRNS, KC_F12, KC_F6, TD(ALT_F7), KC_F8, KC_F9, KC_F10, KC_F11, -// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------| - KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_7, KC_8, KC_9, KC_PAST, KC_PSLS, KC_RBRC, -// |------------+------------+------------+------------+------------+------------+ | | +------------+------------+------------+------------+------------+------------| - KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_4, KC_5, KC_6, KC_PPLS, KC_PMNS, KC_TRNS, -// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------| - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_1, KC_2, KC_3, KC_PEQL, KC_UP, KC_PENT, -// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------| - KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, -// `---------------------------------------------------------------' `----------------------------------------------------------------' -// ,-------------------------. ,-------------------------. - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, -// ,------------+------------+------------| |------------+------------+------------. - KC_TRNS, KC_TRNS, -// | | +------------| |------------+ | | - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_ESC -// `--------------------------------------' `--------------------------------------' - ), - [_MED] = LAYOUT_ergodox_pretty( -/* Keymap 2: Media and mouse keys - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | Mute | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | MsUp | | | | | | | MP7 | MP8 | MP9 | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | |MsLeft|MsDown|MsRght| | |------| |------| MP4 | MP5 | MP6 | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | MP1 | MP2 | MP3 | |VolUp | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | Lclk | Rclk | | | | Prev |VolDn | Next | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * |QK_BOOT | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * |MPENT | |------| |------| |Play | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// Left hand Right hand -// ,------------------------------------------------------------------------------------------. ,------------------------------------------------------------------------------------------. - 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_MUTE, -// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------| - KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MEH(KC_P7), MEH(KC_P8), MEH(KC_P9), KC_TRNS, KC_TRNS, KC_TRNS, -// |------------+------------+------------+------------+------------+------------+ | | +------------+------------+------------+------------+------------+------------| - KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, MEH(KC_P4), MEH(KC_P5), MEH(KC_P6), KC_TRNS, KC_TRNS, KC_TRNS, -// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------| - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MEH(KC_P1), MEH(KC_P2), MEH(KC_P3), KC_TRNS, KC_VOLU, KC_TRNS, -// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------| - KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT, -// `---------------------------------------------------------------' `----------------------------------------------------------------' -// ,-------------------------. ,-------------------------. - QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, -// ,------------+------------+------------| |------------+------------+------------. - KC_TRNS, KC_TRNS, -// | | +------------| |------------+ | | - MEH(KC_PENT), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY -// `--------------------------------------' `--------------------------------------' - ) -}; diff --git a/keyboards/hotdox/keymaps/ninjonas/README.md b/keyboards/hotdox/keymaps/ninjonas/README.md deleted file mode 100644 index be733fde2d..0000000000 --- a/keyboards/hotdox/keymaps/ninjonas/README.md +++ /dev/null @@ -1,106 +0,0 @@ -# ninjonas Keymap for [ErgoDox (HotDox)](https://www.alpacakeyboards.com/) - -## Setup -- Ensure you've cloned the [qmk](https://github.com/qmk/qmk_firmware) repo -- Create directory `ninjonas` on `/keyboards/hotdox/keymaps/` -- Run `copy_keymap.sh`. This copies the contents of this repo into `%qmk_firmware%/ninjonas/` directory -- To push your keymap to your keyboard run this command `make clean hotdox:ninjonas:dfu` - - this compiles your keymap and creates a `hotdox_ninjonas.hex` file and will atempt to flash your board - - if you get the following message: - ``` - dfu-programmer: no device present. - Error: Bootloader not found. Trying again in 5s. - ``` - - Press the reset button underneath your ErgoDox keyboard - - The following messages should show up and your board has successfuly been flashed - ``` - Bootloader Version: 0x00 (0) - Erasing flash... Success - Checking memory from 0x0 to 0x6FFF... Empty. - Checking memory from 0x0 to 0x5D7F... Empty. - 0% 100% Programming 0x5D80 bytes... - [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success - 0% 100% Reading 0x7000 bytes... - [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success - Validating... Success - 0x5D80 bytes written into 0x7000 bytes memory (83.48%). - ``` - - The alterenative is follow the steps on [Hotdox flashing guide](https://www.alpacakeyboards.com/flash/hot-dox-ergodox-76-flashing-instructions) - -## Keymap -This keymap is designed based off my typing habits and is subject to change. Information about custom user macros and tap dances can be found [here](https://github.com/ninjonas/qmk-yonas/tree/master/users/ninjonas). - -### QWERTY -```c -/* QWERTY - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | Play | |K_LOCK | 6 | 7 | 8 | 9 | 0 | - | - * |--------+------+------+------+------+-------------| |-------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | Esc | A | S | D | F | G |------| |-------| H | J | K | L | ; | ' | - * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | = | - * `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------' - * | | | Alt | Cmd | Ctl | | BkSP | Del |LOWER | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | Up | Down | | Left | Right| - * ,------|------|------| |------+------+------. - * | | | Home | | PgUp | | | - * | Space|Backsp|------| |------| Del |Enter | - * | |ace | End | | PgDn | | | - * `--------------------' `--------------------' - */ -``` - -### LOWER -```c -/* LOWER - * - * ,--------------------------------------------------. ,----------------------------------------------------. - * | F11 | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F12 | - * |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------| - * | | |KC_BRU| Play | Mute | | | | | PgUp | Home | Up | End | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------| - * | | |KC_BRD| Next |VolUp | |------| |-------| PgDn | Left | Down |Right |K_LOCK | | - * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------| - * | | | | Prev |VolDn | | | | | | | | | | | - * `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------' - * | | | | | | | | | |M_CODE | | - * `----------------------------------' `-----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -``` - -### RAISE -```c -/* RAISE - * - * ,--------------------------------------------------. ,----------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------| - * | | | MS_1 | MS_U | MS_2 | WH_U | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------| - * | | | MS_L | MS_D | MS_R | WH_D |------| |-------| | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------| - * | | | | | | | | | | | | | | | | - * `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `-----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -``` \ No newline at end of file diff --git a/keyboards/hotdox/keymaps/ninjonas/keymap.c b/keyboards/hotdox/keymaps/ninjonas/keymap.c deleted file mode 100644 index 2f9609c5c5..0000000000 --- a/keyboards/hotdox/keymaps/ninjonas/keymap.c +++ /dev/null @@ -1,348 +0,0 @@ -/* Copyright 2019 @ninjonas - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H -#include "ninjonas.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* QWERTY - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | Play | |K_LOCK | 6 | 7 | 8 | 9 | 0 | - | - * |--------+------+------+------+------+-------------| |-------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | Esc | A | S | D | F | G |------| |-------| H | J | K | L | ; | ' | - * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | = | - * `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------' - * | | | Alt | Cmd | Ctl | | BkSP | Del |LOWER | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | Up | Down | | Left | Right| - * ,------|------|------| |------+------+------. - * | | | Home | | PgUp | | | - * | Space|Backsp|------| |------| Del |Enter | - * | |ace | End | | PgDn | | | - * `--------------------' `--------------------' - */ - [_QWERTY] = LAYOUT_ergodox_wrapper( - // LEFT HAND - _____________________NUM_LEFT_______________________, KC_MPLY, - _____________________QWERTY_L1______________________, XXXXXXX, - _____________________QWERTY_L2______________________, - _____________________QWERTY_L3______________________, T_LBRC, - XXXXXXX, XXXXXXX, ________MOD_LEFT_________, - // LEFT THUMB - KC_UP, KC_DOWN, - KC_HOME, - LT_RAI, KC_BSPC, - KC_END, - - //RIGHT HAND - K_LOCK, _____________________NUM_RIGHT______________________, - XXXXXXX,_____________________QWERTY_R1______________________, - _____________________QWERTY_R2______________________, - T_RBRC, _____________________QWERTY_R3______________________, - ________MOD_RIGHT________, XXXXXXX, XXXXXXX, - // RIGHT THUMB - KC_LEFT, KC_RGHT, - KC_PGUP, - KC_PGDN, - MT_DEL, LT_LOW - ), - -/* DVORAK - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | Play | |K_LOCK | 6 | 7 | 8 | 9 | 0 | - | - * |--------+------+------+------+------+-------------| |-------+------+------+------+------+------+--------| - * | Tab | ' | , | . | P | Y | | | | F | G | C | R | L | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | Esc | A | O | E | U | I |------| |-------| D | H | T | N | S | / | - * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| - * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | = | - * `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------' - * | | | Alt | Cmd | Ctl | | BkSP | Del |LOWER | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | Up | Down | | Left | Right| - * ,------|------|------| |------+------+------. - * | | | Home | | PgUp | | | - * | Space|Backsp|------| |------| Del |Enter | - * | |ace | End | | PgDn | | | - * `--------------------' `--------------------' - */ - [_DVORAK] = LAYOUT_ergodox_wrapper( - // LEFT HAND - _____________________NUM_LEFT_______________________, KC_MPLY, - _____________________DVORAK_L1______________________, XXXXXXX, - _____________________DVORAK_L2______________________, - _____________________DVORAK_L3______________________, T_LBRC, - XXXXXXX, XXXXXXX, ________MOD_LEFT_________, - // LEFT THUMB - KC_UP, KC_DOWN, - KC_HOME, - LT_RAI, KC_BSPC, - KC_END, - - //RIGHT HAND - K_LOCK, _____________________NUM_RIGHT______________________, - XXXXXXX,_____________________DVORAK_R1______________________, - _____________________DVORAK_R2______________________, - T_RBRC, _____________________DVORAK_R3______________________, - ________MOD_RIGHT________, XXXXXXX, XXXXXXX, - // RIGHT THUMB - KC_LEFT, KC_RGHT, - KC_PGUP, - KC_PGDN, - MT_DEL, LT_LOW - ), - -/* COLEMAK - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | Play | |K_LOCK | 6 | 7 | 8 | 9 | 0 | - | - * |--------+------+------+------+------+-------------| |-------+------+------+------+------+------+--------| - * | Tab | Q | W | F | P | G | | | | J | L | U | Y | ; | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | Esc | A | R | S | T | D |------| |-------| H | N | E | I | O | ' | - * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | | | | K | M | , | . | / | = | - * `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------' - * | | | Alt | Cmd | Ctl | | BkSP | Del |LOWER | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | Up | Down | | Left | Right| - * ,------|------|------| |------+------+------. - * | | | Home | | PgUp | | | - * | Space|Backsp|------| |------| Del |Enter | - * | |ace | End | | PgDn | | | - * `--------------------' `--------------------' - */ - [_COLEMAK] = LAYOUT_ergodox_wrapper( - // LEFT HAND - _____________________NUM_LEFT_______________________, KC_MPLY, - _____________________COLEMAK_L1_____________________, XXXXXXX, - _____________________COLEMAK_L2_____________________, - _____________________COLEMAK_L3_____________________, T_LBRC, - XXXXXXX, XXXXXXX, ________MOD_LEFT_________, - // LEFT THUMB - KC_UP, KC_DOWN, - KC_HOME, - LT_RAI, KC_BSPC, - KC_END, - - //RIGHT HAND - K_LOCK, _____________________NUM_RIGHT______________________, - XXXXXXX,_____________________COLEMAK_R1_____________________, - _____________________COLEMAK_R2_____________________, - T_RBRC, _____________________COLEMAK_R3_____________________, - ________MOD_RIGHT________, XXXXXXX, XXXXXXX, - // RIGHT THUMB - KC_LEFT, KC_RGHT, - KC_PGUP, - KC_PGDN, - MT_DEL, LT_LOW - ), - -/* LOWER - * - * ,--------------------------------------------------. ,----------------------------------------------------. - * | F11 | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F12 | - * |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------| - * | | |KC_BRU| Play | Mute | | | | | PgUp | Home | Up | End | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------| - * | | |KC_BRD| Next |VolUp | |------| |-------| PgDn | Left | Down |Right |K_LOCK | | - * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------| - * | | | | Prev |VolDn | | | | | | | | | | | - * `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------' - * | | | | | | | | | |M_CODE | | - * `----------------------------------' `-----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ - [_LOWER] = LAYOUT_ergodox_wrapper( - //LEFT HAND - _____________________FUNC_LEFT______________________, _______, - _____________________LOWER_L1_______________________, _______, - _____________________LOWER_L2_______________________, - _____________________LOWER_L3_______________________, _______, - _______, _______, _______, _______, _______, - // LEFT THUMB - _______, _______, - _______, - _______, _______, - _______, - - //RIGHT HAND - _______, _____________________FUNC_RIGHT_____________________, - _______, _____________________LOWER_R1_______________________, - _____________________LOWER_R2_______________________, - _______, _____________________LOWER_R3_______________________, - _______, _______, _______, M_CODE, _______, - // RIGHT THUMB - _______, _______, - _______, - _______, - _______, _______ - ), - -/* RAISE - * - * ,--------------------------------------------------. ,----------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------| - * | | | MS_1 | MS_U | MS_2 | WH_U | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------| - * | | | MS_L | MS_D | MS_R | WH_D |------| |-------| | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------| - * | | | | | | | | | | | | | | | | - * `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `-----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ - [_RAISE] = LAYOUT_ergodox_wrapper( - //LEFT HAND - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, _____________MOUSE_1______________, XXXXXXX, - XXXXXXX, XXXXXXX, _____________MOUSE_2______________, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - // LEFT THUMB - _______, _______, - _______, - _______, _______, - _______, - - //RIGHT HAND - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - // RIGHT THUMB - _______, _______, - _______, - _______, - _______, _______ - ), - -/* ADJUST - * - * ,--------------------------------------------------. ,----------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------| - * | M_MAKE |QK_BOOT | | | | | | | | | | |COLMAK|DVORAK |QWERTY | - * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------| - * | M_VRSN |M_MALL| | | | |------| |-------| | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------| - * | M_FLSH | | | | | | | | | | | | | | | - * `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `-----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ - [_ADJUST] = LAYOUT_ergodox_wrapper( - //LEFT HAND - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - _____________________ADJUST_L1______________________, XXXXXXX, - _____________________ADJUST_L1______________________, - _____________________ADJUST_L1______________________, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - // LEFT THUMB - _______, _______, - _______, - _______, _______, - _______, - - //RIGHT HAND - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, _____________________ADJUST_R1______________________, - _____________________ADJUST_R1______________________, - XXXXXXX, _____________________ADJUST_R1______________________, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - // RIGHT THUMB - _______, _______, - _______, - _______, - _______, _______ - ), -/* Keymap XX: TEMPLATE - * - * ,--------------------------------------------------. ,----------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------| - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------| - * | | | | | | |------| |-------| | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------| - * | | | | | | | | | | | | | | | | - * `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `-----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' -[_XXLAYER] = LAYOUT_ergodox_wrapper( - //LEFT HAND - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, - // LEFT THUMB - _______, _______, - _______, - _______, _______, - _______, - - //RIGHT HAND - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, - // RIGHT THUMB - _______, _______, - _______, - _______, - _______, _______ - ), - - */ -}; \ No newline at end of file diff --git a/keyboards/hotdox/keymaps/ninjonas/rules.mk b/keyboards/hotdox/keymaps/ninjonas/rules.mk deleted file mode 100644 index 4da205a168..0000000000 --- a/keyboards/hotdox/keymaps/ninjonas/rules.mk +++ /dev/null @@ -1 +0,0 @@ -LTO_ENABLE = yes diff --git a/keyboards/hs60/v2/ansi/keymaps/stanrc85/config.h b/keyboards/hs60/v2/ansi/keymaps/stanrc85/config.h deleted file mode 100644 index bf39aae3a2..0000000000 --- a/keyboards/hs60/v2/ansi/keymaps/stanrc85/config.h +++ /dev/null @@ -1,38 +0,0 @@ -#pragma once - -// disable backlight after timeout in minutes, 0 = no timeout -#undef RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT -#define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 20 - -#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 -#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 -#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 -#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 -#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 - -#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0010000000000001 -#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0000000000000001 -#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0011000000000001 //Setting \ key to "MOD" instead of "ALPHA" for lighting -#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0010000000000001 -#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0011110000000111 - -#undef RGB_BACKLIGHT_CAPS_LOCK_INDICATOR -#undef RGB_BACKLIGHT_LAYER_1_INDICATOR -#undef RGB_BACKLIGHT_LAYER_2_INDICATOR -#undef RGB_BACKLIGHT_LAYER_3_INDICATOR - -#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 200, .s = 255 }, .index = 3-1 } //purple -#define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 100, .s = 255 }, .index = 60-1 } //green -#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 150, .s = 255 }, .index = 60-1 } //blue -#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 60-1 } //white - -#undef RGB_BACKLIGHT_BRIGHTNESS -#define RGB_BACKLIGHT_BRIGHTNESS 175 - -#undef RGB_BACKLIGHT_COLOR_1 -#undef RGB_BACKLIGHT_COLOR_2 - -#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } -#define RGB_BACKLIGHT_COLOR_2 { .h = 150, .s = 255 } - -#define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/hs60/v2/ansi/keymaps/stanrc85/keymap.c b/keyboards/hs60/v2/ansi/keymaps/stanrc85/keymap.c deleted file mode 100644 index 13fb7f005b..0000000000 --- a/keyboards/hs60/v2/ansi/keymaps/stanrc85/keymap.c +++ /dev/null @@ -1,59 +0,0 @@ -/* Copyright 2018 Stanrc85 - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include QMK_KEYBOARD_H -#include "stanrc85.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_60_ansi( - TD_TESC, 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_BSPC, - 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_CTLE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, LT_SPCF, KC_RALT, TD_TWIN, MO(_FN2_60), TD_TCTL), - - [_DEFAULT] = LAYOUT_60_ansi( - QK_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_BSPC, - 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1_60), MO(_FN2_60), KC_RCTL), - - [_FN1_60] = LAYOUT_60_ansi( - KC_TILD, 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_DEL, - _______, _______, CA_QUOT, KC_VOLU, CA_SCLN, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_PSCR, _______, _______, KC_INS, - KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_MPLY, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, - _______, KC_RDP, _______, _______, _______, _______, _______, _______, KC_WBAK, KC_WFWD, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______), - - [_FN2_60] = LAYOUT_60_ansi( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, - _______, EF_INC, ES_INC, S1_INC, H1_INC, S2_INC, H2_INC, BR_INC, _______, _______, _______, _______, _______, QK_BOOT, - _______, EF_DEC, ES_DEC, S1_DEC, H1_DEC, S2_DEC, H2_DEC, BR_DEC, _______, _______, _______, _______, KC_MAKE, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, TG(_DEFAULT)) -}; - -// Backlight specific keys: -// EF_INC, EF_DEC, // next/previous backlight effect -// H1_INC, H1_DEC, // Color 1 hue increase/decrease -// S1_INC, S1_DEC, // Color 1 saturation increase/decrease -// H2_INC, H2_DEC, // Color 2 hue increase/decrease -// S2_INC, S2_DEC, // Color 2 saturation increase/decrease -// BR_INC, BR_DEC, // backlight brightness increase/decrease - -bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { - return true; -} diff --git a/keyboards/hs60/v2/ansi/keymaps/stanrc85/readme.md b/keyboards/hs60/v2/ansi/keymaps/stanrc85/readme.md deleted file mode 100644 index 430d363f37..0000000000 --- a/keyboards/hs60/v2/ansi/keymaps/stanrc85/readme.md +++ /dev/null @@ -1,48 +0,0 @@ - - -# Stanrc85's Standard ANSI 60% Layout - -## Keymap Notes -- Layer 0 is default QWERTY layout with additional custom features: - - SpaceFN to function layer 2 on `Space` - - `CTRL` when held and `ESC` when tapped on `CAPS LOCK` - - Tap Dance on `Fn1` for `CTRL+ALT+DEL` and `WIN+L` - - Tap Dance on `ESC` for `ESC` and ` ` ` - -![Base QWERTY Layer](https://imgur.com/lGcyLJx.png) - -- Layer 1 is default QWERTY with no custom features used mostly for gaming - - Enabled by `Fn2+CAPS` from base layer - -![Default ANSI Layer](https://imgur.com/M7T9PNT.png) - -- Layer 2 is Function layer: - - F keys - - Arrows - - Volume and Media controls - - AutoHotkey shortcuts based on [Speaker Control](https://github.com/stanrc85/Speaker-Control) script - - AHK Mic is used to mute/unmute microphone - - AHK Speaker switches audio output between headphones and speakers - -![Function Layer](https://imgur.com/YPl0JrU.png) - -- Layer 3 is Backlight control and RESET - - `Fn2+CAPS` used to toggle Default QWERTY layer on and off - -![RGB and RESET Layer](https://imgur.com/mMHoJPa.png) - -### Build -To build the firmware file associated with this keymap, simply run `make your_keyboard:stanrc85`. diff --git a/keyboards/hs60/v2/ansi/keymaps/stanrc85/rules.mk b/keyboards/hs60/v2/ansi/keymaps/stanrc85/rules.mk deleted file mode 100644 index 1e5b99807c..0000000000 --- a/keyboards/hs60/v2/ansi/keymaps/stanrc85/rules.mk +++ /dev/null @@ -1 +0,0 @@ -VIA_ENABLE = yes diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c deleted file mode 100644 index 595e76cbb3..0000000000 --- a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c +++ /dev/null @@ -1,80 +0,0 @@ -/* Copyright 2021 Robert Verst @rverst - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "rverst.h" - -//#define CLOSED_CASE // no underglow RGB visible - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ansi( - KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , MO(4) , KC_DEL , - KC_GRV , 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_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_ESC , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , - KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC , OSL(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_ansi( - RV_SNAP, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_F21 , KC_F22 , KC_F23 , KC_F24 , KC_TRNS, KC_MUTE, - RV_DEG , RV_SUP1, RV_SUP2, RV_SUP3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_UNEQ, RV_PM , KC_TRNS, KC_VOLU, - KC_TRNS, KC_TRNS, KC_TRNS, RV_EUR , RV_RT , RV_TM , KC_TRNS, RV_UUML, KC_TRNS, RV_OUML, KC_TRNS, RV_VDEC, RV_VINC, RV_SEQU, KC_VOLD, - KC_CAPS, RV_AUML, RV_SZ , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_LOCK, KC_TRNS, RV_SINC, KC_PENT, - KC_TRNS, KC_TRNS, KC_TRNS, RV_CC , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_SDEC, KC_TRNS, KC_MSTP, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RGUI, KC_MPRV, KC_MPLY, KC_MNXT - ), - [2] = LAYOUT_ansi( - KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_TRNS, MO(4) , KC_MUTE, - KC_GRV , 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_BSPC, KC_VOLU, - KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_VOLD, - KC_ESC , KC_A , KC_R , KC_S , KC_T , KC_D , KC_H , KC_N , KC_E , KC_I , KC_O , KC_QUOT, KC_ENT, - KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_K , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC , OSL(3) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - [3] = LAYOUT_ansi( - RV_SNAP, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_F21 , KC_F22 , KC_F23 , KC_F24 , KC_TRNS, KC_MUTE, - RV_DEG , RV_SUP1, RV_SUP2, RV_SUP3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_UNEQ, RV_PM , KC_TRNS, KC_VOLU, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_LOCK, RV_UUML, KC_TRNS, KC_TRNS, RV_VDEC, RV_VINC, RV_SEQU, KC_VOLD, - KC_CAPS, RV_AUML, RV_RT , RV_SZ , RV_TM , KC_TRNS, KC_TRNS, KC_TRNS, RV_EUR , KC_TRNS, RV_OUML, RV_SINC, KC_PENT, - KC_TRNS, KC_TRNS, KC_TRNS, RV_CC , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_SDEC, KC_TRNS, KC_MSTP, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RGUI, KC_MPRV, KC_MPLY, KC_MNXT - ), - [4] = LAYOUT_ansi( - DB_TOGG, RV_SM0 , RV_SM1 , RV_SM2 , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , DF(0) , DF(2) , KC_TRNS, MO(5) , - RV_SAYM, RV_SM3 , RV_SM4 , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , - KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , - KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , - KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , RGB_TOG, - KC_NO , KC_NO , GUI_ON , KC_NO , KC_NO , RCG_SWP, RGB_RMOD,RGB_M_P, RGB_MOD - ), - [5] = LAYOUT_ansi( - QK_BOOT, RV_SM0S, RV_SM1S, RV_SM2S, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_TRNS, - KC_NO , RV_SM3S, RV_SM4S, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , - KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , - KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , - KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , - KC_NO , KC_NO , GUI_OFF, KC_NO , KC_NO , RCG_NRM, KC_NO , KC_NO , KC_NO - ) -}; -// clang-format on - -void keyboard_post_init_keymap(void) { -#ifdef CLOSED_CASE - if (rgblight_is_enabled()) { - rgblight_disable(); - } -#endif -} diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/readme.md b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/readme.md deleted file mode 100644 index 66dd2b5287..0000000000 --- a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/readme.md +++ /dev/null @@ -1,23 +0,0 @@ -# IDOBAO ID80 - -This is my layout for the IDOBAO ID80. It depends of my [user files](../../../../users/rverst) -and the main goal is to give an convenient and unified access to some special keys -(umlauts, ß, €) for different operating systems (Mac, Windows and Linux). - -## Overview - -- Layer 0 is the base US-ANSI layout with Mac-style system keys and a OSL-Key for Layer 1 right of the space bar. -- Layer 1 has the special keys and some media-functions like mute, volume up/down etc. -- Layer 2 and 3 are basically the same as Layer 0 and 1 but in Colemak-Layout -- Layer 4 and 5 has some functions like switching the keyboard mode, switching the default layer etc. - - -## Keyboard modes - -- *F1:* Mac Unicode mode (use 'Unicode Hex Input' as input source) -- *F2:* Windows Unicode mode (use [WinCompse](https://github.com/SamHocevar/wincompose) software) -- *F3:* Linux Unicode mode (not tested yet but should work out of the box) -- *1:* Mac legacy mode (uses option-sequences, e.g. `